text: /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ ! function(n) { "function" == typeof define && define.amd ? define(["jquery"], n) : "object" == typeof module && module.exports ? module.exports = function(e, t) { return void 0 === t && (t = "undefined" != typeof window ? require("jquery") : require("jquery")(e)), n(t), t } : n(jQuery) }(function(u) {
      var e = function() {
              if (u && u.fn && u.fn.select2 && u.fn.select2.amd) var e = u.fn.select2.amd;
              var t, n, r, h, o, s, f, g, m, v, y, _, i, a, b;
  
              function w(e, t) { return i.call(e, t) }
  
              function l(e, t) {
                  var n, r, i, o, s, a, l, c, u, d, p, h = t && t.split("/"),
                      f = y.map,
                      g = f && f["*"] || {};
                  if (e) {
                      for (s = (e = e.split("/")).length - 1, y.nodeIdCompat && b.test(e[s]) && (e[s] = e[s].replace(b, "")), "." === e[0].charAt(0) && h && (e = h.slice(0, h.length - 1).concat(e)), u = 0; u < e.length; u++)
                          if ("." === (p = e[u])) e.splice(u, 1), --u;
                          else if (".." === p) {
                          if (0 === u || 1 === u && ".." === e[2] || ".." === e[u - 1]) continue;
                          0 < u && (e.splice(u - 1, 2), u -= 2)
                      }
                      e = e.join("/")
                  }
                  if ((h || g) && f) {
                      for (u = (n = e.split("/")).length; 0 < u; --u) {
                          if (r = n.slice(0, u).join("/"), h)
                              for (d = h.length; 0 < d; --d)
                                  if (i = (i = f[h.slice(0, d).join("/")]) && i[r]) { o = i, a = u; break }
                          if (o) break;
                          !l && g && g[r] && (l = g[r], c = u)
                      }!o && l && (o = l, a = c), o && (n.splice(0, a, o), e = n.join("/"))
                  }
                  return e
              }
  
              function A(t, n) { return function() { var e = a.call(arguments, 0); return "string" != typeof e[0] && 1 === e.length && e.push(null), s.apply(h, e.concat([t, n])) } }
  
              function x(t) { return function(e) { m[t] = e } }
  
              function D(e) {
                  if (w(v, e)) {
                      var t = v[e];
                      delete v[e], _[e] = !0, o.apply(h, t)
                  }
                  if (!w(m, e) && !w(_, e)) throw new Error("No " + e);
                  return m[e]
              }
  
              function c(e) { var t, n = e ? e.indexOf("!") : -1; return -1 < n && (t = e.substring(0, n), e = e.substring(n + 1, e.length)), [t, e] }
  
              function S(e) { return e ? c(e) : [] }
              return e && e.requirejs || (e ? n = e : e = {}, m = {}, v = {}, y = {}, _ = {}, i = Object.prototype.hasOwnProperty, a = [].slice, b = /\.js$/, f = function(e, t) {
                  var n, r, i = c(e),
                      o = i[0],
                      s = t[1];
                  return e = i[1], o && (n = D(o = l(o, s))), o ? e = n && n.normalize ? n.normalize(e, (r = s, function(e) { return l(e, r) })) : l(e, s) : (o = (i = c(e = l(e, s)))[0], e = i[1], o && (n = D(o))), { f: o ? o + "!" + e : e, n: e, pr: o, p: n }
              }, g = { require: function(e) { return A(e) }, exports: function(e) { var t = m[e]; return void 0 !== t ? t : m[e] = {} }, module: function(e) { return { id: e, uri: "", exports: m[e], config: (t = e, function() { return y && y.config && y.config[t] || {} }) }; var t } }, o = function(e, t, n, r) {
                  var i, o, s, a, l, c, u, d = [],
                      p = typeof n;
                  if (c = S(r = r || e), "undefined" == p || "function" == p) {
                      for (t = !t.length && n.length ? ["require", "exports", "module"] : t, l = 0; l < t.length; l += 1)
                          if ("require" === (o = (a = f(t[l], c)).f)) d[l] = g.require(e);
                          else if ("exports" === o) d[l] = g.exports(e), u = !0;
                      else if ("module" === o) i = d[l] = g.module(e);
                      else if (w(m, o) || w(v, o) || w(_, o)) d[l] = D(o);
                      else {
                          if (!a.p) throw new Error(e + " missing " + o);
                          a.p.load(a.n, A(r, !0), x(o), {}), d[l] = m[o]
                      }
                      s = n ? n.apply(m[e], d) : void 0, e && (i && i.exports !== h && i.exports !== m[e] ? m[e] = i.exports : s === h && u || (m[e] = s))
                  } else e && (m[e] = n)
              }, t = n = s = function(e, t, n, r, i) {
                  if ("string" == typeof e) return g[e] ? g[e](t) : D(f(e, S(t)).f);
                  if (!e.splice) {
                      if ((y = e).deps && s(y.deps, y.callback), !t) return;
                      t.splice ? (e = t, t = n, n = null) : e = h
                  }
                  return t = t || function() {}, "function" == typeof n && (n = r, r = i), r ? o(h, e, t, n) : setTimeout(function() { o(h, e, t, n) }, 4), s
              }, s.config = function(e) { return s(e) }, t._defined = m, (r = function(e, t, n) {
                  if ("string" != typeof e) throw new Error("See almond README: incorrect module build, no module name");
                  t.splice || (n = t, t = []), w(m, e) || w(v, e) || (v[e] = [e, t, n])
              }).amd = { jQuery: !0 }, e.requirejs = t, e.require = n, e.define = r), e.define("almond", function() {}), e.define("jquery", [], function() { var e = u || $; return null == e && 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."), e }), e.define("select2/utils", ["jquery"], function(o) {
                  var i = {};
  
                  function u(e) {
                      var t = e.prototype,
                          n = [];
                      for (var r in t) { "function" == typeof t[r] && "constructor" !== r && n.push(r) }
                      return n
                  }
                  i.Extend = function(e, t) {
                      var n = {}.hasOwnProperty;
  
                      function r() { this.constructor = e }
                      for (var i in t) n.call(t, i) && (e[i] = t[i]);
                      return r.prototype = t.prototype, e.prototype = new r, e.__super__ = t.prototype, e
                  }, i.Decorate = function(r, i) {
                      var e = u(i),
                          t = u(r);
  
                      function o() {
                          var e = Array.prototype.unshift,
                              t = i.prototype.constructor.length,
                              n = r.prototype.constructor;
                          0 < t && (e.call(arguments, r.prototype.constructor), n = i.prototype.constructor), n.apply(this, arguments)
                      }
                      i.displayName = r.displayName, o.prototype = new function() { this.constructor = o };
                      for (var n = 0; n < t.length; n++) {
                          var s = t[n];
                          o.prototype[s] = r.prototype[s]
                      }
  
                      function a(e) {
                          var t = function() {};
                          e in o.prototype && (t = o.prototype[e]);
                          var n = i.prototype[e];
                          return function() { return Array.prototype.unshift.call(arguments, t), n.apply(this, arguments) }
                      }
                      for (var l = 0; l < e.length; l++) {
                          var c = e[l];
                          o.prototype[c] = a(c)
                      }
                      return o
                  };
  
                  function e() { this.listeners = {} }
                  e.prototype.on = function(e, t) { this.listeners = this.listeners || {}, e in this.listeners ? this.listeners[e].push(t) : this.listeners[e] = [t] }, e.prototype.trigger = function(e) {
                      var t = Array.prototype.slice,
                          n = t.call(arguments, 1);
                      this.listeners = this.listeners || {}, null == n && (n = []), 0 === n.length && n.push({}), (n[0]._type = e) in this.listeners && this.invoke(this.listeners[e], t.call(arguments, 1)), "*" in this.listeners && this.invoke(this.listeners["*"], arguments)
                  }, e.prototype.invoke = function(e, t) { for (var n = 0, r = e.length; n < r; n++) e[n].apply(this, t) }, i.Observable = e, i.generateChars = function(e) { for (var t = "", n = 0; n < e; n++) { t += Math.floor(36 * Math.random()).toString(36) } return t }, i.bind = function(e, t) { return function() { e.apply(t, arguments) } }, i._convertData = function(e) {
                      for (var t in e) {
                          var n = t.split("-"),
                              r = e;
                          if (1 !== n.length) {
                              for (var i = 0; i < n.length; i++) {
                                  var o = n[i];
                                  (o = o.substring(0, 1).toLowerCase() + o.substring(1)) in r || (r[o] = {}), i == n.length - 1 && (r[o] = e[t]), r = r[o]
                              }
                              delete e[t]
                          }
                      }
                      return e
                  }, i.hasScroll = function(e, t) {
                      var n = o(t),
                          r = t.style.overflowX,
                          i = t.style.overflowY;
                      return (r !== i || "hidden" !== i && "visible" !== i) && ("scroll" === r || "scroll" === i || (n.innerHeight() < t.scrollHeight || n.innerWidth() < t.scrollWidth))
                  }, i.escapeMarkup = function(e) { var t = { "\\": "&#92;", "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;", "/": "&#47;" }; return "string" != typeof e ? e : String(e).replace(/[&<>"'\/\\]/g, function(e) { return t[e] }) }, i.appendMany = function(e, t) {
                      if ("1.7" === o.fn.jquery.substr(0, 3)) {
                          var n = o();
                          o.map(t, function(e) { n = n.add(e) }), t = n
                      }
                      e.append(t)
                  }, i.__cache = {};
                  var n = 0;
                  return i.GetUniqueElementId = function(e) { var t = e.getAttribute("data-select2-id"); return null == t && (e.id ? (t = e.id, e.setAttribute("data-select2-id", t)) : (e.setAttribute("data-select2-id", ++n), t = n.toString())), t }, i.StoreData = function(e, t, n) {
                      var r = i.GetUniqueElementId(e);
                      i.__cache[r] || (i.__cache[r] = {}), i.__cache[r][t] = n
                  }, i.GetData = function(e, t) { var n = i.GetUniqueElementId(e); return t ? i.__cache[n] && null != i.__cache[n][t] ? i.__cache[n][t] : o(e).data(t) : i.__cache[n] }, i.RemoveData = function(e) {
                      var t = i.GetUniqueElementId(e);
                      null != i.__cache[t] && delete i.__cache[t], e.removeAttribute("data-select2-id")
                  }, i
              }), e.define("select2/results", ["jquery", "./utils"], function(h, f) {
                  function r(e, t, n) { this.$element = e, this.data = n, this.options = t, r.__super__.constructor.call(this) }
                  return f.Extend(r, f.Observable), r.prototype.render = function() { var e = h('<ul class="select2-results__options" role="listbox"></ul>'); return this.options.get("multiple") && e.attr("aria-multiselectable", "true"), this.$results = e }, r.prototype.clear = function() { this.$results.empty() }, r.prototype.displayMessage = function(e) {
                      var t = this.options.get("escapeMarkup");
                      this.clear(), this.hideLoading();
                      var n = h('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),
                          r = this.options.get("translations").get(e.message);
                      n.append(t(r(e.args))), n[0].className += " select2-results__message", this.$results.append(n)
                  }, r.prototype.hideMessages = function() { this.$results.find(".select2-results__message").remove() }, r.prototype.append = function(e) {
                      this.hideLoading();
                      var t = [];
                      if (null != e.results && 0 !== e.results.length) {
                          e.results = this.sort(e.results);
                          for (var n = 0; n < e.results.length; n++) {
                              var r = e.results[n],
                                  i = this.option(r);
                              t.push(i)
                          }
                          this.$results.append(t)
                      } else 0 === this.$results.children().length && this.trigger("results:message", { message: "noResults" })
                  }, r.prototype.position = function(e, t) { t.find(".select2-results").append(e) }, r.prototype.sort = function(e) { return this.options.get("sorter")(e) }, r.prototype.highlightFirstItem = function() {
                      var e = this.$results.find(".select2-results__option[aria-selected]"),
                          t = e.filter("[aria-selected=true]");
                      0 < t.length ? t.first().trigger("mouseenter") : e.first().trigger("mouseenter"), this.ensureHighlightVisible()
                  }, r.prototype.setClasses = function() {
                      var t = this;
                      this.data.current(function(e) {
                          var r = h.map(e, function(e) { return e.id.toString() });
                          t.$results.find(".select2-results__option[aria-selected]").each(function() {
                              var e = h(this),
                                  t = f.GetData(this, "data"),
                                  n = "" + t.id;
                              null != t.element && t.element.selected || null == t.element && -1 < h.inArray(n, r) ? e.attr("aria-selected", "true") : e.attr("aria-selected", "false")
                          })
                      })
                  }, r.prototype.showLoading = function(e) {
                      this.hideLoading();
                      var t = { disabled: !0, loading: !0, text: this.options.get("translations").get("searching")(e) },
                          n = this.option(t);
                      n.className += " loading-results", this.$results.prepend(n)
                  }, r.prototype.hideLoading = function() { this.$results.find(".loading-results").remove() }, r.prototype.option = function(e) {
                      var t = document.createElement("li");
                      t.className = "select2-results__option";
                      var n = { role: "option", "aria-selected": "false" },
                          r = window.Element.prototype.matches || window.Element.prototype.msMatchesSelector || window.Element.prototype.webkitMatchesSelector;
                      for (var i in (null != e.element && r.call(e.element, ":disabled") || null == e.element && e.disabled) && (delete n["aria-selected"], n["aria-disabled"] = "true"), null == e.id && delete n["aria-selected"], null != e._resultId && (t.id = e._resultId), e.title && (t.title = e.title), e.children && (n.role = "group", n["aria-label"] = e.text, delete n["aria-selected"]), n) {
                          var o = n[i];
                          t.setAttribute(i, o)
                      }
                      if (e.children) {
                          var s = h(t),
                              a = document.createElement("strong");
                          a.className = "select2-results__group";
                          h(a);
                          this.template(e, a);
                          for (var l = [], c = 0; c < e.children.length; c++) {
                              var u = e.children[c],
                                  d = this.option(u);
                              l.push(d)
                          }
                          var p = h("<ul></ul>", { class: "select2-results__options select2-results__options--nested" });
                          p.append(l), s.append(a), s.append(p)
                      } else this.template(e, t);
                      return f.StoreData(t, "data", e), t
                  }, r.prototype.bind = function(t, e) {
                      var l = this,
                          n = t.id + "-results";
                      this.$results.attr("id", n), t.on("results:all", function(e) { l.clear(), l.append(e.data), t.isOpen() && (l.setClasses(), l.highlightFirstItem()) }), t.on("results:append", function(e) { l.append(e.data), t.isOpen() && l.setClasses() }), t.on("query", function(e) { l.hideMessages(), l.showLoading(e) }), t.on("select", function() { t.isOpen() && (l.setClasses(), l.options.get("scrollAfterSelect") && l.highlightFirstItem()) }), t.on("unselect", function() { t.isOpen() && (l.setClasses(), l.options.get("scrollAfterSelect") && l.highlightFirstItem()) }), t.on("open", function() { l.$results.attr("aria-expanded", "true"), l.$results.attr("aria-hidden", "false"), l.setClasses(), l.ensureHighlightVisible() }), t.on("close", function() { l.$results.attr("aria-expanded", "false"), l.$results.attr("aria-hidden", "true"), l.$results.removeAttr("aria-activedescendant") }), t.on("results:toggle", function() {
                          var e = l.getHighlightedResults();
                          0 !== e.length && e.trigger("mouseup")
                      }), t.on("results:select", function() { var e = l.getHighlightedResults(); if (0 !== e.length) { var t = f.GetData(e[0], "data"); "true" == e.attr("aria-selected") ? l.trigger("close", {}) : l.trigger("select", { data: t }) } }), t.on("results:previous", function() {
                          var e = l.getHighlightedResults(),
                              t = l.$results.find("[aria-selected]"),
                              n = t.index(e);
                          if (!(n <= 0)) {
                              var r = n - 1;
                              0 === e.length && (r = 0);
                              var i = t.eq(r);
                              i.trigger("mouseenter");
                              var o = l.$results.offset().top,
                                  s = i.offset().top,
                                  a = l.$results.scrollTop() + (s - o);
                              0 === r ? l.$results.scrollTop(0) : s - o < 0 && l.$results.scrollTop(a)
                          }
                      }), t.on("results:next", function() {
                          var e = l.getHighlightedResults(),
                              t = l.$results.find("[aria-selected]"),
                              n = t.index(e) + 1;
                          if (!(n >= t.length)) {
                              var r = t.eq(n);
                              r.trigger("mouseenter");
                              var i = l.$results.offset().top + l.$results.outerHeight(!1),
                                  o = r.offset().top + r.outerHeight(!1),
                                  s = l.$results.scrollTop() + o - i;
                              0 === n ? l.$results.scrollTop(0) : i < o && l.$results.scrollTop(s)
                          }
                      }), t.on("results:focus", function(e) { e.element.addClass("select2-results__option--highlighted") }), t.on("results:message", function(e) { l.displayMessage(e) }), h.fn.mousewheel && this.$results.on("mousewheel", function(e) {
                          var t = l.$results.scrollTop(),
                              n = l.$results.get(0).scrollHeight - t + e.deltaY,
                              r = 0 < e.deltaY && t - e.deltaY <= 0,
                              i = e.deltaY < 0 && n <= l.$results.height();
                          r ? (l.$results.scrollTop(0), e.preventDefault(), e.stopPropagation()) : i && (l.$results.scrollTop(l.$results.get(0).scrollHeight - l.$results.height()), e.preventDefault(), e.stopPropagation())
                      }), this.$results.on("mouseup", ".select2-results__option[aria-selected]", function(e) {
                          var t = h(this),
                              n = f.GetData(this, "data");
                          "true" !== t.attr("aria-selected") ? l.trigger("select", { originalEvent: e, data: n }) : l.options.get("multiple") ? l.trigger("unselect", { originalEvent: e, data: n }) : l.trigger("close", {})
                      }), this.$results.on("mouseenter", ".select2-results__option[aria-selected]", function(e) {
                          var t = f.GetData(this, "data");
                          l.getHighlightedResults().removeClass("select2-results__option--highlighted"), l.trigger("results:focus", { data: t, element: h(this) })
                      })
                  }, r.prototype.getHighlightedResults = function() { return this.$results.find(".select2-results__option--highlighted") }, r.prototype.destroy = function() { this.$results.remove() }, r.prototype.ensureHighlightVisible = function() {
                      var e = this.getHighlightedResults();
                      if (0 !== e.length) {
                          var t = this.$results.find("[aria-selected]").index(e),
                              n = this.$results.offset().top,
                              r = e.offset().top,
                              i = this.$results.scrollTop() + (r - n),
                              o = r - n;
                          i -= 2 * e.outerHeight(!1), t <= 2 ? this.$results.scrollTop(0) : (o > this.$results.outerHeight() || o < 0) && this.$results.scrollTop(i)
                      }
                  }, r.prototype.template = function(e, t) {
                      var n = this.options.get("templateResult"),
                          r = this.options.get("escapeMarkup"),
                          i = n(e, t);
                      null == i ? t.style.display = "none" : "string" == typeof i ? t.innerHTML = r(i) : h(t).append(i)
                  }, r
              }), e.define("select2/keys", [], function() { return { 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 } }), e.define("select2/selection/base", ["jquery", "../utils", "../keys"], function(n, r, i) {
                  function o(e, t) { this.$element = e, this.options = t, o.__super__.constructor.call(this) }
                  return r.Extend(o, r.Observable), o.prototype.render = function() { var e = n('<span class="select2-selection" role="combobox"  aria-haspopup="true" aria-expanded="false"></span>'); return this._tabindex = 0, null != r.GetData(this.$element[0], "old-tabindex") ? this._tabindex = r.GetData(this.$element[0], "old-tabindex") : null != this.$element.attr("tabindex") && (this._tabindex = this.$element.attr("tabindex")), e.attr("title", this.$element.attr("title")), e.attr("tabindex", this._tabindex), e.attr("aria-disabled", "false"), this.$selection = e }, o.prototype.bind = function(e, t) {
                      var n = this,
                          r = e.id + "-results";
                      this.container = e, this.$selection.on("focus", function(e) { n.trigger("focus", e) }), this.$selection.on("blur", function(e) { n._handleBlur(e) }), this.$selection.on("keydown", function(e) { n.trigger("keypress", e), e.which === i.SPACE && e.preventDefault() }), e.on("results:focus", function(e) { n.$selection.attr("aria-activedescendant", e.data._resultId) }), e.on("selection:update", function(e) { n.update(e.data) }), e.on("open", function() { n.$selection.attr("aria-expanded", "true"), n.$selection.attr("aria-owns", r), n._attachCloseHandler(e) }), e.on("close", function() { n.$selection.attr("aria-expanded", "false"), n.$selection.removeAttr("aria-activedescendant"), n.$selection.removeAttr("aria-owns"), n.$selection.trigger("focus"), n._detachCloseHandler(e) }), e.on("enable", function() { n.$selection.attr("tabindex", n._tabindex), n.$selection.attr("aria-disabled", "false") }), e.on("disable", function() { n.$selection.attr("tabindex", "-1"), n.$selection.attr("aria-disabled", "true") })
                  }, o.prototype._handleBlur = function(e) {
                      var t = this;
                      window.setTimeout(function() { document.activeElement == t.$selection[0] || n.contains(t.$selection[0], document.activeElement) || t.trigger("blur", e) }, 1)
                  }, o.prototype._attachCloseHandler = function(e) {
                      n(document.body).on("mousedown.select2." + e.id, function(e) {
                          var t = n(e.target).closest(".select2");
                          n(".select2.select2-container--open").each(function() { this != t[0] && r.GetData(this, "element").select2("close") })
                      })
                  }, o.prototype._detachCloseHandler = function(e) { n(document.body).off("mousedown.select2." + e.id) }, o.prototype.position = function(e, t) { t.find(".selection").append(e) }, o.prototype.destroy = function() { this._detachCloseHandler(this.container) }, o.prototype.update = function(e) { throw new Error("The `update` method must be defined in child classes.") }, o.prototype.isEnabled = function() { return !this.isDisabled() }, o.prototype.isDisabled = function() { return this.options.get("disabled") }, o
              }), e.define("select2/selection/single", ["jquery", "./base", "../utils", "../keys"], function(e, t, n, r) {
                  function i() { i.__super__.constructor.apply(this, arguments) }
                  return n.Extend(i, t), i.prototype.render = function() { var e = i.__super__.render.call(this); return e.addClass("select2-selection--single"), e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'), e }, i.prototype.bind = function(t, e) {
                      var n = this;
                      i.__super__.bind.apply(this, arguments);
                      var r = t.id + "-container";
                      this.$selection.find(".select2-selection__rendered").attr("id", r).attr("role", "textbox").attr("aria-readonly", "true"), this.$selection.attr("aria-labelledby", r), this.$selection.on("mousedown", function(e) { 1 === e.which && n.trigger("toggle", { originalEvent: e }) }), this.$selection.on("focus", function(e) {}), this.$selection.on("blur", function(e) {}), t.on("focus", function(e) { t.isOpen() || n.$selection.trigger("focus") })
                  }, i.prototype.clear = function() {
                      var e = this.$selection.find(".select2-selection__rendered");
                      e.empty(), e.removeAttr("title")
                  }, i.prototype.display = function(e, t) { var n = this.options.get("templateSelection"); return this.options.get("escapeMarkup")(n(e, t)) }, i.prototype.selectionContainer = function() { return e("<span></span>") }, i.prototype.update = function(e) {
                      if (0 !== e.length) {
                          var t = e[0],
                              n = this.$selection.find(".select2-selection__rendered"),
                              r = this.display(t, n);
                          n.empty().append(r);
                          var i = t.title || t.text;
                          i ? n.attr("title", i) : n.removeAttr("title")
                      } else this.clear()
                  }, i
              }), e.define("select2/selection/multiple", ["jquery", "./base", "../utils"], function(i, e, l) {
                  function n(e, t) { n.__super__.constructor.apply(this, arguments) }
                  return l.Extend(n, e), n.prototype.render = function() { var e = n.__super__.render.call(this); return e.addClass("select2-selection--multiple"), e.html('<ul class="select2-selection__rendered"></ul>'), e }, n.prototype.bind = function(e, t) {
                      var r = this;
                      n.__super__.bind.apply(this, arguments), this.$selection.on("click", function(e) { r.trigger("toggle", { originalEvent: e }) }), this.$selection.on("click", ".select2-selection__choice__remove", function(e) {
                          if (!r.isDisabled()) {
                              var t = i(this).parent(),
                                  n = l.GetData(t[0], "data");
                              r.trigger("unselect", { originalEvent: e, data: n })
                          }
                      })
                  }, n.prototype.clear = function() {
                      var e = this.$selection.find(".select2-selection__rendered");
                      e.empty(), e.removeAttr("title")
                  }, n.prototype.display = function(e, t) { var n = this.options.get("templateSelection"); return this.options.get("escapeMarkup")(n(e, t)) }, n.prototype.selectionContainer = function() { return i('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>') }, n.prototype.update = function(e) {
                      if (this.clear(), 0 !== e.length) {
                          for (var t = [], n = 0; n < e.length; n++) {
                              var r = e[n],
                                  i = this.selectionContainer(),
                                  o = this.display(r, i);
                              i.append(o);
                              var s = r.title || r.text;
                              s && i.attr("title", s), l.StoreData(i[0], "data", r), t.push(i)
                          }
                          var a = this.$selection.find(".select2-selection__rendered");
                          l.appendMany(a, t)
                      }
                  }, n
              }), e.define("select2/selection/placeholder", ["../utils"], function(e) {
                  function t(e, t, n) { this.placeholder = this.normalizePlaceholder(n.get("placeholder")), e.call(this, t, n) }
                  return t.prototype.normalizePlaceholder = function(e, t) { return "string" == typeof t && (t = { id: "", text: t }), t }, t.prototype.createPlaceholder = function(e, t) { var n = this.selectionContainer(); return n.html(this.display(t)), n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"), n }, t.prototype.update = function(e, t) {
                      var n = 1 == t.length && t[0].id != this.placeholder.id;
                      if (1 < t.length || n) return e.call(this, t);
                      this.clear();
                      var r = this.createPlaceholder(this.placeholder);
                      this.$selection.find(".select2-selection__rendered").append(r)
                  }, t
              }), e.define("select2/selection/allowClear", ["jquery", "../keys", "../utils"], function(i, r, a) {
                  function e() {}
                  return e.prototype.bind = function(e, t, n) {
                      var r = this;
                      e.call(this, t, n), 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(e) { r._handleClear(e) }), t.on("keypress", function(e) { r._handleKeyboardClear(e, t) })
                  }, e.prototype._handleClear = function(e, t) {
                      if (!this.isDisabled()) {
                          var n = this.$selection.find(".select2-selection__clear");
                          if (0 !== n.length) {
                              t.stopPropagation();
                              var r = a.GetData(n[0], "data"),
                                  i = this.$element.val();
                              this.$element.val(this.placeholder.id);
                              var o = { data: r };
                              if (this.trigger("clear", o), o.prevented) this.$element.val(i);
                              else {
                                  for (var s = 0; s < r.length; s++)
                                      if (o = { data: r[s] }, this.trigger("unselect", o), o.prevented) return void this.$element.val(i);
                                  this.$element.trigger("input").trigger("change"), this.trigger("toggle", {})
                              }
                          }
                      }
                  }, e.prototype._handleKeyboardClear = function(e, t, n) { n.isOpen() || t.which != r.DELETE && t.which != r.BACKSPACE || this._handleClear(t) }, e.prototype.update = function(e, t) {
                      if (e.call(this, t), !(0 < this.$selection.find(".select2-selection__placeholder").length || 0 === t.length)) {
                          var n = this.options.get("translations").get("removeAllItems"),
                              r = i('<span class="select2-selection__clear" title="' + n() + '">&times;</span>');
                          a.StoreData(r[0], "data", t), this.$selection.find(".select2-selection__rendered").prepend(r)
                      }
                  }, e
              }), e.define("select2/selection/search", ["jquery", "../utils", "../keys"], function(r, a, l) {
                  function e(e, t, n) { e.call(this, t, n) }
                  return e.prototype.render = function(e) {
                      var t = r('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></li>');
                      this.$searchContainer = t, this.$search = t.find("input");
                      var n = e.call(this);
                      return this._transferTabIndex(), n
                  }, e.prototype.bind = function(e, t, n) {
                      var r = this,
                          i = t.id + "-results";
                      e.call(this, t, n), t.on("open", function() { r.$search.attr("aria-controls", i), r.$search.trigger("focus") }), t.on("close", function() { r.$search.val(""), r.$search.removeAttr("aria-controls"), r.$search.removeAttr("aria-activedescendant"), r.$search.trigger("focus") }), t.on("enable", function() { r.$search.prop("disabled", !1), r._transferTabIndex() }), t.on("disable", function() { r.$search.prop("disabled", !0) }), t.on("focus", function(e) { r.$search.trigger("focus") }), t.on("results:focus", function(e) { e.data._resultId ? r.$search.attr("aria-activedescendant", e.data._resultId) : r.$search.removeAttr("aria-activedescendant") }), this.$selection.on("focusin", ".select2-search--inline", function(e) { r.trigger("focus", e) }), this.$selection.on("focusout", ".select2-search--inline", function(e) { r._handleBlur(e) }), this.$selection.on("keydown", ".select2-search--inline", function(e) {
                          if (e.stopPropagation(), r.trigger("keypress", e), r._keyUpPrevented = e.isDefaultPrevented(), e.which === l.BACKSPACE && "" === r.$search.val()) {
                              var t = r.$searchContainer.prev(".select2-selection__choice");
                              if (0 < t.length) {
                                  var n = a.GetData(t[0], "data");
                                  r.searchRemoveChoice(n), e.preventDefault()
                              }
                          }
                      }), this.$selection.on("click", ".select2-search--inline", function(e) { r.$search.val() && e.stopPropagation() });
                      var o = document.documentMode,
                          s = o && o <= 11;
                      this.$selection.on("input.searchcheck", ".select2-search--inline", function(e) { s ? r.$selection.off("input.search input.searchcheck") : r.$selection.off("keyup.search") }), this.$selection.on("keyup.search input.search", ".select2-search--inline", function(e) {
                          if (s && "input" === e.type) r.$selection.off("input.search input.searchcheck");
                          else {
                              var t = e.which;
                              t != l.SHIFT && t != l.CTRL && t != l.ALT && t != l.TAB && r.handleSearch(e)
                          }
                      })
                  }, e.prototype._transferTabIndex = function(e) { this.$search.attr("tabindex", this.$selection.attr("tabindex")), this.$selection.attr("tabindex", "-1") }, e.prototype.createPlaceholder = function(e, t) { this.$search.attr("placeholder", t.text) }, e.prototype.update = function(e, t) {
                      var n = this.$search[0] == document.activeElement;
                      this.$search.attr("placeholder", ""), e.call(this, t), this.$selection.find(".select2-selection__rendered").append(this.$searchContainer), this.resizeSearch(), n && this.$search.trigger("focus")
                  }, e.prototype.handleSearch = function() {
                      if (this.resizeSearch(), !this._keyUpPrevented) {
                          var e = this.$search.val();
                          this.trigger("query", { term: e })
                      }
                      this._keyUpPrevented = !1
                  }, e.prototype.searchRemoveChoice = function(e, t) { this.trigger("unselect", { data: t }), this.$search.val(t.text), this.handleSearch() }, e.prototype.resizeSearch = function() {
                      this.$search.css("width", "25px");
                      var e = "";
                      "" !== this.$search.attr("placeholder") ? e = this.$selection.find(".select2-selection__rendered").width() : e = .75 * (this.$search.val().length + 1) + "em";
                      this.$search.css("width", e)
                  }, e
              }), e.define("select2/selection/eventRelay", ["jquery"], function(s) {
                  function e() {}
                  return e.prototype.bind = function(e, t, n) {
                      var r = this,
                          i = ["open", "opening", "close", "closing", "select", "selecting", "unselect", "unselecting", "clear", "clearing"],
                          o = ["opening", "closing", "selecting", "unselecting", "clearing"];
                      e.call(this, t, n), t.on("*", function(e, t) {
                          if (-1 !== s.inArray(e, i)) {
                              t = t || {};
                              var n = s.Event("select2:" + e, { params: t });
                              r.$element.trigger(n), -1 !== s.inArray(e, o) && (t.prevented = n.isDefaultPrevented())
                          }
                      })
                  }, e
              }), e.define("select2/translation", ["jquery", "require"], function(t, n) {
                  function r(e) { this.dict = e || {} }
                  return r.prototype.all = function() { return this.dict }, r.prototype.get = function(e) { return this.dict[e] }, r.prototype.extend = function(e) { this.dict = t.extend({}, e.all(), this.dict) }, r._cache = {}, r.loadPath = function(e) {
                      if (!(e in r._cache)) {
                          var t = n(e);
                          r._cache[e] = t
                      }
                      return new r(r._cache[e])
                  }, r
              }), e.define("select2/diacritics", [], function() { return { "â’¶": "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", "Ç±": "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", "â’¼": "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", "â’¾": "I", "ï¼©": "I", "ÃŒ": "I", "Ã": "I", "ÃŽ": "I", "Ä¨": "I", "Äª": "I", "Ä¬": "I", "Ä°": "I", "Ã": "I", "á¸®": "I", "á»ˆ": "I", "Ç": "I", "Èˆ": "I", "ÈŠ": "I", "á»Š": "I", "Ä®": "I", "á¸¬": "I", "Æ—": "I", "â’¿": "J", "ï¼ª": "J", "Ä´": "J", "Éˆ": "J", "â“€": "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", "Ç‡": "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", "Å’": "OE", "Æ¢": "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", "ê ": "VY", "â“Œ": "W", "ï¼·": "W", "áº€": "W", "áº‚": "W", "Å´": "W", "áº†": "W", "áº„": "W", "áºˆ": "W", "â±²": "W", "â“": "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", "â“": "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", "â†„": "c", "â““": "d", "ï½„": "d", "á¸‹": "d", "Ä": "d", "á¸": "d", "á¸‘": "d", "á¸“": "d", "á¸": "d", "Ä‘": "d", "ÆŒ": "d", "É–": "d", "É—": "d", "êº": "d", "Ç³": "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", "Ç": "e", "â“•": "f", "ï½†": "f", "á¸Ÿ": "f", "Æ’": "f", "ê¼": "f", "â“–": "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", "Æ•": "hv", "â“˜": "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", "â“›": "l", "ï½Œ": "l", "Å€": "l", "Äº": "l", "Ä¾": "l", "á¸·": "l", "á¸¹": "l", "Ä¼": "l", "á¸½": "l", "á¸»": "l", "Å¿": "l", "Å‚": "l", "Æš": "l", "É«": "l", "â±¡": "l", "ê‰": "l", "êž": "l", "ê‡": "l", "Ç‰": "lj", "â“œ": "m", "ï½": "m", "á¸¿": "m", "á¹": "m", "á¹ƒ": "m", "É±": "m", "É¯": "m", "â“": "n", "ï½Ž": "n", "Ç¹": "n", "Å„": "n", "Ã±": "n", "á¹…": "n", "Åˆ": "n", "á¹‡": "n", "Å†": "n", "á¹‹": "n", "á¹‰": "n", "Æž": "n", "É²": "n", "Å‰": "n", "êž‘": "n", "êž¥": "n", "ÇŒ": "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", "Å“": "oe", "Æ£": "oi", "È£": "ou", "ê": "oo", "â“Ÿ": "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", "áº›": "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", "â“¥": "v", "ï½–": "v", "á¹½": "v", "á¹¿": "v", "Ê‹": "v", "êŸ": "v", "ÊŒ": "v", "ê¡": "vy", "â“¦": "w", "ï½—": "w", "áº": "w", "áºƒ": "w", "Åµ": "w", "áº‡": "w", "áº…": "w", "áº˜": "w", "áº‰": "w", "â±³": "w", "â“§": "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", "Î†": "Î‘", "Îˆ": "Î•", "Î‰": "Î—", "ÎŠ": "Î™", "Îª": "Î™", "ÎŒ": "ÎŸ", "ÎŽ": "Î¥", "Î«": "Î¥", "Î": "Î©", "Î¬": "Î±", "Î­": "Îµ", "Î®": "Î·", "Î¯": "Î¹", "ÏŠ": "Î¹", "Î": "Î¹", "ÏŒ": "Î¿", "Ï": "Ï…", "Ï‹": "Ï…", "Î°": "Ï…", "ÏŽ": "Ï‰", "Ï‚": "Ïƒ", "â€™": "'" } }), e.define("select2/data/base", ["../utils"], function(r) {
                  function n(e, t) { n.__super__.constructor.call(this) }
                  return r.Extend(n, r.Observable), n.prototype.current = function(e) { throw new Error("The `current` method must be defined in child classes.") }, n.prototype.query = function(e, t) { throw new Error("The `query` method must be defined in child classes.") }, n.prototype.bind = function(e, t) {}, n.prototype.destroy = function() {}, n.prototype.generateResultId = function(e, t) { var n = e.id + "-result-"; return n += r.generateChars(4), null != t.id ? n += "-" + t.id.toString() : n += "-" + r.generateChars(4), n }, n
              }), e.define("select2/data/select", ["./base", "../utils", "jquery"], function(e, a, l) {
                  function n(e, t) { this.$element = e, this.options = t, n.__super__.constructor.call(this) }
                  return a.Extend(n, e), n.prototype.current = function(e) {
                      var n = [],
                          r = this;
                      this.$element.find(":selected").each(function() {
                          var e = l(this),
                              t = r.item(e);
                          n.push(t)
                      }), e(n)
                  }, n.prototype.select = function(i) {
                      var o = this;
                      if (i.selected = !0, l(i.element).is("option")) return i.element.selected = !0, void this.$element.trigger("input").trigger("change");
                      if (this.$element.prop("multiple")) this.current(function(e) {
                          var t = [];
                          (i = [i]).push.apply(i, e);
                          for (var n = 0; n < i.length; n++) { var r = i[n].id; - 1 === l.inArray(r, t) && t.push(r) }
                          o.$element.val(t), o.$element.trigger("input").trigger("change")
                      });
                      else {
                          var e = i.id;
                          this.$element.val(e), this.$element.trigger("input").trigger("change")
                      }
                  }, n.prototype.unselect = function(i) {
                      var o = this;
                      if (this.$element.prop("multiple")) {
                          if (i.selected = !1, l(i.element).is("option")) return i.element.selected = !1, void this.$element.trigger("input").trigger("change");
                          this.current(function(e) {
                              for (var t = [], n = 0; n < e.length; n++) {
                                  var r = e[n].id;
                                  r !== i.id && -1 === l.inArray(r, t) && t.push(r)
                              }
                              o.$element.val(t), o.$element.trigger("input").trigger("change")
                          })
                      }
                  }, n.prototype.bind = function(e, t) {
                      var n = this;
                      (this.container = e).on("select", function(e) { n.select(e.data) }), e.on("unselect", function(e) { n.unselect(e.data) })
                  }, n.prototype.destroy = function() { this.$element.find("*").each(function() { a.RemoveData(this) }) }, n.prototype.query = function(r, e) {
                      var i = [],
                          o = this;
                      this.$element.children().each(function() {
                          var e = l(this);
                          if (e.is("option") || e.is("optgroup")) {
                              var t = o.item(e),
                                  n = o.matches(r, t);
                              null !== n && i.push(n)
                          }
                      }), e({ results: i })
                  }, n.prototype.addOptions = function(e) { a.appendMany(this.$element, e) }, n.prototype.option = function(e) {
                      var t;
                      e.children ? (t = document.createElement("optgroup")).label = e.text : void 0 !== (t = document.createElement("option")).textContent ? t.textContent = e.text : t.innerText = e.text, void 0 !== e.id && (t.value = e.id), e.disabled && (t.disabled = !0), e.selected && (t.selected = !0), e.title && (t.title = e.title);
                      var n = l(t),
                          r = this._normalizeItem(e);
                      return r.element = t, a.StoreData(t, "data", r), n
                  }, n.prototype.item = function(e) {
                      var t = {};
                      if (null != (t = a.GetData(e[0], "data"))) return t;
                      if (e.is("option")) t = { id: e.val(), text: e.text(), disabled: e.prop("disabled"), selected: e.prop("selected"), title: e.prop("title") };
                      else if (e.is("optgroup")) {
                          t = { text: e.prop("label"), children: [], title: e.prop("title") };
                          for (var n = e.children("option"), r = [], i = 0; i < n.length; i++) {
                              var o = l(n[i]),
                                  s = this.item(o);
                              r.push(s)
                          }
                          t.children = r
                      }
                      return (t = this._normalizeItem(t)).element = e[0], a.StoreData(e[0], "data", t), t
                  }, n.prototype._normalizeItem = function(e) { e !== Object(e) && (e = { id: e, text: e }); return null != (e = l.extend({}, { text: "" }, e)).id && (e.id = e.id.toString()), null != e.text && (e.text = e.text.toString()), null == e._resultId && e.id && null != this.container && (e._resultId = this.generateResultId(this.container, e)), l.extend({}, { selected: !1, disabled: !1 }, e) }, n.prototype.matches = function(e, t) { return this.options.get("matcher")(e, t) }, n
              }), e.define("select2/data/array", ["./select", "../utils", "jquery"], function(e, f, g) {
                  function r(e, t) { this._dataToConvert = t.get("data") || [], r.__super__.constructor.call(this, e, t) }
                  return f.Extend(r, e), r.prototype.bind = function(e, t) { r.__super__.bind.call(this, e, t), this.addOptions(this.convertToOptions(this._dataToConvert)) }, r.prototype.select = function(n) {
                      var e = this.$element.find("option").filter(function(e, t) { return t.value == n.id.toString() });
                      0 === e.length && (e = this.option(n), this.addOptions(e)), r.__super__.select.call(this, n)
                  }, r.prototype.convertToOptions = function(e) {
                      var t = this,
                          n = this.$element.find("option"),
                          r = n.map(function() { return t.item(g(this)).id }).get(),
                          i = [];
  
                      function o(e) { return function() { return g(this).val() == e.id } }
                      for (var s = 0; s < e.length; s++) {
                          var a = this._normalizeItem(e[s]);
                          if (0 <= g.inArray(a.id, r)) {
                              var l = n.filter(o(a)),
                                  c = this.item(l),
                                  u = g.extend(!0, {}, a, c),
                                  d = this.option(u);
                              l.replaceWith(d)
                          } else {
                              var p = this.option(a);
                              if (a.children) {
                                  var h = this.convertToOptions(a.children);
                                  f.appendMany(p, h)
                              }
                              i.push(p)
                          }
                      }
                      return i
                  }, r
              }), e.define("select2/data/ajax", ["./array", "../utils", "jquery"], function(e, t, o) {
                  function n(e, t) { this.ajaxOptions = this._applyDefaults(t.get("ajax")), null != this.ajaxOptions.processResults && (this.processResults = this.ajaxOptions.processResults), n.__super__.constructor.call(this, e, t) }
                  return t.Extend(n, e), n.prototype._applyDefaults = function(e) { var t = { data: function(e) { return o.extend({}, e, { q: e.term }) }, transport: function(e, t, n) { var r = o.ajax(e); return r.then(t), r.fail(n), r } }; return o.extend({}, t, e, !0) }, n.prototype.processResults = function(e) { return e }, n.prototype.query = function(n, r) {
                      var i = this;
                      null != this._request && (o.isFunction(this._request.abort) && this._request.abort(), this._request = null);
                      var t = o.extend({ type: "GET" }, this.ajaxOptions);
  
                      function e() {
                          var e = t.transport(t, function(e) {
                              var t = i.processResults(e, n);
                              i.options.get("debug") && window.console && console.error && (t && t.results && o.isArray(t.results) || console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")), r(t)
                          }, function() { "status" in e && (0 === e.status || "0" === e.status) || i.trigger("results:message", { message: "errorLoading" }) });
                          i._request = e
                      }
                      "function" == typeof t.url && (t.url = t.url.call(this.$element, n)), "function" == typeof t.data && (t.data = t.data.call(this.$element, n)), this.ajaxOptions.delay && null != n.term ? (this._queryTimeout && window.clearTimeout(this._queryTimeout), this._queryTimeout = window.setTimeout(e, this.ajaxOptions.delay)) : e()
                  }, n
              }), e.define("select2/data/tags", ["jquery"], function(u) {
                  function e(e, t, n) {
                      var r = n.get("tags"),
                          i = n.get("createTag");
                      void 0 !== i && (this.createTag = i);
                      var o = n.get("insertTag");
                      if (void 0 !== o && (this.insertTag = o), e.call(this, t, n), u.isArray(r))
                          for (var s = 0; s < r.length; s++) {
                              var a = r[s],
                                  l = this._normalizeItem(a),
                                  c = this.option(l);
                              this.$element.append(c)
                          }
                  }
                  return e.prototype.query = function(e, c, u) {
                      var d = this;
                      this._removeOldTags(), null != c.term && null == c.page ? e.call(this, c, function e(t, n) {
                          for (var r = t.results, i = 0; i < r.length; i++) {
                              var o = r[i],
                                  s = null != o.children && !e({ results: o.children }, !0);
                              if ((o.text || "").toUpperCase() === (c.term || "").toUpperCase() || s) return !n && (t.data = r, void u(t))
                          }
                          if (n) return !0;
                          var a = d.createTag(c);
                          if (null != a) {
                              var l = d.option(a);
                              l.attr("data-select2-tag", !0), d.addOptions([l]), d.insertTag(r, a)
                          }
                          t.results = r, u(t)
                      }) : e.call(this, c, u)
                  }, e.prototype.createTag = function(e, t) { var n = u.trim(t.term); return "" === n ? null : { id: n, text: n } }, e.prototype.insertTag = function(e, t, n) { t.unshift(n) }, e.prototype._removeOldTags = function(e) { this.$element.find("option[data-select2-tag]").each(function() { this.selected || u(this).remove() }) }, e
              }), e.define("select2/data/tokenizer", ["jquery"], function(d) {
                  function e(e, t, n) {
                      var r = n.get("tokenizer");
                      void 0 !== r && (this.tokenizer = r), e.call(this, t, n)
                  }
                  return e.prototype.bind = function(e, t, n) { e.call(this, t, n), this.$search = t.dropdown.$search || t.selection.$search || n.find(".select2-search__field") }, e.prototype.query = function(e, t, n) {
                      var i = this;
                      t.term = t.term || "";
                      var r = this.tokenizer(t, this.options, function(e) {
                          var t, n = i._normalizeItem(e);
                          if (!i.$element.find("option").filter(function() { return d(this).val() === n.id }).length) {
                              var r = i.option(n);
                              r.attr("data-select2-tag", !0), i._removeOldTags(), i.addOptions([r])
                          }
                          t = n, i.trigger("select", { data: t })
                      });
                      r.term !== t.term && (this.$search.length && (this.$search.val(r.term), this.$search.trigger("focus")), t.term = r.term), e.call(this, t, n)
                  }, e.prototype.tokenizer = function(e, t, n, r) {
                      for (var i = n.get("tokenSeparators") || [], o = t.term, s = 0, a = this.createTag || function(e) { return { id: e.term, text: e.term } }; s < o.length;) {
                          var l = o[s];
                          if (-1 !== d.inArray(l, i)) {
                              var c = o.substr(0, s),
                                  u = a(d.extend({}, t, { term: c }));
                              null != u ? (r(u), o = o.substr(s + 1) || "", s = 0) : s++
                          } else s++
                      }
                      return { term: o }
                  }, e
              }), e.define("select2/data/minimumInputLength", [], function() {
                  function e(e, t, n) { this.minimumInputLength = n.get("minimumInputLength"), e.call(this, t, n) }
                  return e.prototype.query = function(e, t, n) { t.term = t.term || "", t.term.length < this.minimumInputLength ? this.trigger("results:message", { message: "inputTooShort", args: { minimum: this.minimumInputLength, input: t.term, params: t } }) : e.call(this, t, n) }, e
              }), e.define("select2/data/maximumInputLength", [], function() {
                  function e(e, t, n) { this.maximumInputLength = n.get("maximumInputLength"), e.call(this, t, n) }
                  return e.prototype.query = function(e, t, n) { t.term = t.term || "", 0 < this.maximumInputLength && t.term.length > this.maximumInputLength ? this.trigger("results:message", { message: "inputTooLong", args: { maximum: this.maximumInputLength, input: t.term, params: t } }) : e.call(this, t, n) }, e
              }), e.define("select2/data/maximumSelectionLength", [], function() {
                  function e(e, t, n) { this.maximumSelectionLength = n.get("maximumSelectionLength"), e.call(this, t, n) }
                  return e.prototype.bind = function(e, t, n) {
                      var r = this;
                      e.call(this, t, n), t.on("select", function() { r._checkIfMaximumSelected() })
                  }, e.prototype.query = function(e, t, n) {
                      var r = this;
                      this._checkIfMaximumSelected(function() { e.call(r, t, n) })
                  }, e.prototype._checkIfMaximumSelected = function(e, n) {
                      var r = this;
                      this.current(function(e) {
                          var t = null != e ? e.length : 0;
                          0 < r.maximumSelectionLength && t >= r.maximumSelectionLength ? r.trigger("results:message", { message: "maximumSelected", args: { maximum: r.maximumSelectionLength } }) : n && n()
                      })
                  }, e
              }), e.define("select2/dropdown", ["jquery", "./utils"], function(t, e) {
                  function n(e, t) { this.$element = e, this.options = t, n.__super__.constructor.call(this) }
                  return e.Extend(n, e.Observable), n.prototype.render = function() { var e = t('<span class="select2-dropdown"><span class="select2-results"></span></span>'); return e.attr("dir", this.options.get("dir")), this.$dropdown = e }, n.prototype.bind = function() {}, n.prototype.position = function(e, t) {}, n.prototype.destroy = function() { this.$dropdown.remove() }, n
              }), e.define("select2/dropdown/search", ["jquery", "../utils"], function(o, e) {
                  function t() {}
                  return t.prototype.render = function(e) {
                      var t = e.call(this),
                          n = o('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>');
                      return this.$searchContainer = n, this.$search = n.find("input"), t.prepend(n), t
                  }, t.prototype.bind = function(e, t, n) {
                      var r = this,
                          i = t.id + "-results";
                      e.call(this, t, n), this.$search.on("keydown", function(e) { r.trigger("keypress", e), r._keyUpPrevented = e.isDefaultPrevented() }), this.$search.on("input", function(e) { o(this).off("keyup") }), this.$search.on("keyup input", function(e) { r.handleSearch(e) }), t.on("open", function() { r.$search.attr("tabindex", 0), r.$search.attr("aria-controls", i), r.$search.trigger("focus"), window.setTimeout(function() { r.$search.trigger("focus") }, 0) }), t.on("close", function() { r.$search.attr("tabindex", -1), r.$search.removeAttr("aria-controls"), r.$search.removeAttr("aria-activedescendant"), r.$search.val(""), r.$search.trigger("blur") }), t.on("focus", function() { t.isOpen() || r.$search.trigger("focus") }), t.on("results:all", function(e) { null != e.query.term && "" !== e.query.term || (r.showSearch(e) ? r.$searchContainer.removeClass("select2-search--hide") : r.$searchContainer.addClass("select2-search--hide")) }), t.on("results:focus", function(e) { e.data._resultId ? r.$search.attr("aria-activedescendant", e.data._resultId) : r.$search.removeAttr("aria-activedescendant") })
                  }, t.prototype.handleSearch = function(e) {
                      if (!this._keyUpPrevented) {
                          var t = this.$search.val();
                          this.trigger("query", { term: t })
                      }
                      this._keyUpPrevented = !1
                  }, t.prototype.showSearch = function(e, t) { return !0 }, t
              }), e.define("select2/dropdown/hidePlaceholder", [], function() {
                  function e(e, t, n, r) { this.placeholder = this.normalizePlaceholder(n.get("placeholder")), e.call(this, t, n, r) }
                  return e.prototype.append = function(e, t) { t.results = this.removePlaceholder(t.results), e.call(this, t) }, e.prototype.normalizePlaceholder = function(e, t) { return "string" == typeof t && (t = { id: "", text: t }), t }, e.prototype.removePlaceholder = function(e, t) {
                      for (var n = t.slice(0), r = t.length - 1; 0 <= r; r--) {
                          var i = t[r];
                          this.placeholder.id === i.id && n.splice(r, 1)
                      }
                      return n
                  }, e
              }), e.define("select2/dropdown/infiniteScroll", ["jquery"], function(n) {
                  function e(e, t, n, r) { this.lastParams = {}, e.call(this, t, n, r), this.$loadingMore = this.createLoadingMore(), this.loading = !1 }
                  return e.prototype.append = function(e, t) { this.$loadingMore.remove(), this.loading = !1, e.call(this, t), this.showLoadingMore(t) && (this.$results.append(this.$loadingMore), this.loadMoreIfNeeded()) }, e.prototype.bind = function(e, t, n) {
                      var r = this;
                      e.call(this, t, n), t.on("query", function(e) { r.lastParams = e, r.loading = !0 }), t.on("query:append", function(e) { r.lastParams = e, r.loading = !0 }), this.$results.on("scroll", this.loadMoreIfNeeded.bind(this))
                  }, e.prototype.loadMoreIfNeeded = function() {
                      var e = n.contains(document.documentElement, this.$loadingMore[0]);
                      if (!this.loading && e) {
                          var t = this.$results.offset().top + this.$results.outerHeight(!1);
                          this.$loadingMore.offset().top + this.$loadingMore.outerHeight(!1) <= t + 50 && this.loadMore()
                      }
                  }, e.prototype.loadMore = function() {
                      this.loading = !0;
                      var e = n.extend({}, { page: 1 }, this.lastParams);
                      e.page++, this.trigger("query:append", e)
                  }, e.prototype.showLoadingMore = function(e, t) { return t.pagination && t.pagination.more }, e.prototype.createLoadingMore = function() {
                      var e = n('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),
                          t = this.options.get("translations").get("loadingMore");
                      return e.html(t(this.lastParams)), e
                  }, e
              }), e.define("select2/dropdown/attachBody", ["jquery", "../utils"], function(f, a) {
                  function e(e, t, n) { this.$dropdownParent = f(n.get("dropdownParent") || document.body), e.call(this, t, n) }
                  return e.prototype.bind = function(e, t, n) {
                      var r = this;
                      e.call(this, t, n), t.on("open", function() { r._showDropdown(), r._attachPositioningHandler(t), r._bindContainerResultHandlers(t) }), t.on("close", function() { r._hideDropdown(), r._detachPositioningHandler(t) }), this.$dropdownContainer.on("mousedown", function(e) { e.stopPropagation() })
                  }, e.prototype.destroy = function(e) { e.call(this), this.$dropdownContainer.remove() }, e.prototype.position = function(e, t, n) { t.attr("class", n.attr("class")), t.removeClass("select2"), t.addClass("select2-container--open"), t.css({ position: "absolute", top: -999999 }), this.$container = n }, e.prototype.render = function(e) {
                      var t = f("<span></span>"),
                          n = e.call(this);
                      return t.append(n), this.$dropdownContainer = t
                  }, e.prototype._hideDropdown = function(e) { this.$dropdownContainer.detach() }, e.prototype._bindContainerResultHandlers = function(e, t) {
                      if (!this._containerResultsHandlersBound) {
                          var n = this;
                          t.on("results:all", function() { n._positionDropdown(), n._resizeDropdown() }), t.on("results:append", function() { n._positionDropdown(), n._resizeDropdown() }), t.on("results:message", function() { n._positionDropdown(), n._resizeDropdown() }), t.on("select", function() { n._positionDropdown(), n._resizeDropdown() }), t.on("unselect", function() { n._positionDropdown(), n._resizeDropdown() }), this._containerResultsHandlersBound = !0
                      }
                  }, e.prototype._attachPositioningHandler = function(e, t) {
                      var n = this,
                          r = "scroll.select2." + t.id,
                          i = "resize.select2." + t.id,
                          o = "orientationchange.select2." + t.id,
                          s = this.$container.parents().filter(a.hasScroll);
                      s.each(function() { a.StoreData(this, "select2-scroll-position", { x: f(this).scrollLeft(), y: f(this).scrollTop() }) }), s.on(r, function(e) {
                          var t = a.GetData(this, "select2-scroll-position");
                          f(this).scrollTop(t.y)
                      }), f(window).on(r + " " + i + " " + o, function(e) { n._positionDropdown(), n._resizeDropdown() })
                  }, e.prototype._detachPositioningHandler = function(e, t) {
                      var n = "scroll.select2." + t.id,
                          r = "resize.select2." + t.id,
                          i = "orientationchange.select2." + t.id;
                      this.$container.parents().filter(a.hasScroll).off(n), f(window).off(n + " " + r + " " + i)
                  }, e.prototype._positionDropdown = function() {
                      var e = f(window),
                          t = this.$dropdown.hasClass("select2-dropdown--above"),
                          n = this.$dropdown.hasClass("select2-dropdown--below"),
                          r = null,
                          i = this.$container.offset();
                      i.bottom = i.top + this.$container.outerHeight(!1);
                      var o = { height: this.$container.outerHeight(!1) };
                      o.top = i.top, o.bottom = i.top + o.height;
                      var s = this.$dropdown.outerHeight(!1),
                          a = e.scrollTop(),
                          l = e.scrollTop() + e.height(),
                          c = a < i.top - s,
                          u = l > i.bottom + s,
                          d = { left: i.left, top: o.bottom },
                          p = this.$dropdownParent;
                      "static" === p.css("position") && (p = p.offsetParent());
                      var h = { top: 0, left: 0 };
                      (f.contains(document.body, p[0]) || p[0].isConnected) && (h = p.offset()), d.top -= h.top, d.left -= h.left, t || n || (r = "below"), u || !c || t ? !c && u && t && (r = "below") : r = "above", ("above" == r || t && "below" !== r) && (d.top = o.top - h.top - s), null != r && (this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--" + r), this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--" + r)), this.$dropdownContainer.css(d)
                  }, e.prototype._resizeDropdown = function() {
                      var e = { width: this.$container.outerWidth(!1) + "px" };
                      this.options.get("dropdownAutoWidth") && (e.minWidth = e.width, e.position = "relative", e.width = "auto"), this.$dropdown.css(e)
                  }, e.prototype._showDropdown = function(e) { this.$dropdownContainer.appendTo(this.$dropdownParent), this._positionDropdown(), this._resizeDropdown() }, e
              }), e.define("select2/dropdown/minimumResultsForSearch", [], function() {
                  function e(e, t, n, r) { this.minimumResultsForSearch = n.get("minimumResultsForSearch"), this.minimumResultsForSearch < 0 && (this.minimumResultsForSearch = 1 / 0), e.call(this, t, n, r) }
                  return e.prototype.showSearch = function(e, t) {
                      return !(function e(t) {
                          for (var n = 0, r = 0; r < t.length; r++) {
                              var i = t[r];
                              i.children ? n += e(i.children) : n++
                          }
                          return n
                      }(t.data.results) < this.minimumResultsForSearch) && e.call(this, t)
                  }, e
              }), e.define("select2/dropdown/selectOnClose", ["../utils"], function(o) {
                  function e() {}
                  return e.prototype.bind = function(e, t, n) {
                      var r = this;
                      e.call(this, t, n), t.on("close", function(e) { r._handleSelectOnClose(e) })
                  }, e.prototype._handleSelectOnClose = function(e, t) {
                      if (t && null != t.originalSelect2Event) { var n = t.originalSelect2Event; if ("select" === n._type || "unselect" === n._type) return }
                      var r = this.getHighlightedResults();
                      if (!(r.length < 1)) {
                          var i = o.GetData(r[0], "data");
                          null != i.element && i.element.selected || null == i.element && i.selected || this.trigger("select", { data: i })
                      }
                  }, e
              }), e.define("select2/dropdown/closeOnSelect", [], function() {
                  function e() {}
                  return e.prototype.bind = function(e, t, n) {
                      var r = this;
                      e.call(this, t, n), t.on("select", function(e) { r._selectTriggered(e) }), t.on("unselect", function(e) { r._selectTriggered(e) })
                  }, e.prototype._selectTriggered = function(e, t) {
                      var n = t.originalEvent;
                      n && (n.ctrlKey || n.metaKey) || this.trigger("close", { originalEvent: n, originalSelect2Event: t })
                  }, e
              }), e.define("select2/i18n/en", [], function() {
                  return {
                      errorLoading: function() { return "The results could not be loaded." },
                      inputTooLong: function(e) {
                          var t = e.input.length - e.maximum,
                              n = "Please delete " + t + " character";
                          return 1 != t && (n += "s"), n
                      },
                      inputTooShort: function(e) { return "Please enter " + (e.minimum - e.input.length) + " or more characters" },
                      loadingMore: function() { return "Loading more resultsâ€¦" },
                      maximumSelected: function(e) { var t = "You can only select " + e.maximum + " item"; return 1 != e.maximum && (t += "s"), t },
                      noResults: function() { return "No results found" },
                      searching: function() { return "Searchingâ€¦" },
                      removeAllItems: function() { return "Remove all items" }
                  }
              }), e.define("select2/defaults", ["jquery", "require", "./results", "./selection/single", "./selection/multiple", "./selection/placeholder", "./selection/allowClear", "./selection/search", "./selection/eventRelay", "./utils", "./translation", "./diacritics", "./data/select", "./data/array", "./data/ajax", "./data/tags", "./data/tokenizer", "./data/minimumInputLength", "./data/maximumInputLength", "./data/maximumSelectionLength", "./dropdown", "./dropdown/search", "./dropdown/hidePlaceholder", "./dropdown/infiniteScroll", "./dropdown/attachBody", "./dropdown/minimumResultsForSearch", "./dropdown/selectOnClose", "./dropdown/closeOnSelect", "./i18n/en"], function(c, u, d, p, h, f, g, m, v, y, s, t, _, $, b, w, A, x, D, S, E, C, O, T, q, L, I, j, e) {
                  function n() { this.reset() }
                  return n.prototype.apply = function(e) {
                      if (null == (e = c.extend(!0, {}, this.defaults, e)).dataAdapter) {
                          if (null != e.ajax ? e.dataAdapter = b : null != e.data ? e.dataAdapter = $ : e.dataAdapter = _, 0 < e.minimumInputLength && (e.dataAdapter = y.Decorate(e.dataAdapter, x)), 0 < e.maximumInputLength && (e.dataAdapter = y.Decorate(e.dataAdapter, D)), 0 < e.maximumSelectionLength && (e.dataAdapter = y.Decorate(e.dataAdapter, S)), e.tags && (e.dataAdapter = y.Decorate(e.dataAdapter, w)), null == e.tokenSeparators && null == e.tokenizer || (e.dataAdapter = y.Decorate(e.dataAdapter, A)), null != e.query) {
                              var t = u(e.amdBase + "compat/query");
                              e.dataAdapter = y.Decorate(e.dataAdapter, t)
                          }
                          if (null != e.initSelection) {
                              var n = u(e.amdBase + "compat/initSelection");
                              e.dataAdapter = y.Decorate(e.dataAdapter, n)
                          }
                      }
                      if (null == e.resultsAdapter && (e.resultsAdapter = d, null != e.ajax && (e.resultsAdapter = y.Decorate(e.resultsAdapter, T)), null != e.placeholder && (e.resultsAdapter = y.Decorate(e.resultsAdapter, O)), e.selectOnClose && (e.resultsAdapter = y.Decorate(e.resultsAdapter, I))), null == e.dropdownAdapter) {
                          if (e.multiple) e.dropdownAdapter = E;
                          else {
                              var r = y.Decorate(E, C);
                              e.dropdownAdapter = r
                          }
                          if (0 !== e.minimumResultsForSearch && (e.dropdownAdapter = y.Decorate(e.dropdownAdapter, L)), e.closeOnSelect && (e.dropdownAdapter = y.Decorate(e.dropdownAdapter, j)), null != e.dropdownCssClass || null != e.dropdownCss || null != e.adaptDropdownCssClass) {
                              var i = u(e.amdBase + "compat/dropdownCss");
                              e.dropdownAdapter = y.Decorate(e.dropdownAdapter, i)
                          }
                          e.dropdownAdapter = y.Decorate(e.dropdownAdapter, q)
                      }
                      if (null == e.selectionAdapter) {
                          if (e.multiple ? e.selectionAdapter = h : e.selectionAdapter = p, null != e.placeholder && (e.selectionAdapter = y.Decorate(e.selectionAdapter, f)), e.allowClear && (e.selectionAdapter = y.Decorate(e.selectionAdapter, g)), e.multiple && (e.selectionAdapter = y.Decorate(e.selectionAdapter, m)), null != e.containerCssClass || null != e.containerCss || null != e.adaptContainerCssClass) {
                              var o = u(e.amdBase + "compat/containerCss");
                              e.selectionAdapter = y.Decorate(e.selectionAdapter, o)
                          }
                          e.selectionAdapter = y.Decorate(e.selectionAdapter, v)
                      }
                      e.language = this._resolveLanguage(e.language), e.language.push("en");
                      for (var s = [], a = 0; a < e.language.length; a++) { var l = e.language[a]; - 1 === s.indexOf(l) && s.push(l) }
                      return e.language = s, e.translations = this._processTranslations(e.language, e.debug), e
                  }, n.prototype.reset = function() {
                      function a(e) { return e.replace(/[^\u0000-\u007E]/g, function(e) { return t[e] || e }) }
                      this.defaults = {
                          amdBase: "./",
                          amdLanguageBase: "./i18n/",
                          closeOnSelect: !0,
                          debug: !1,
                          dropdownAutoWidth: !1,
                          escapeMarkup: y.escapeMarkup,
                          language: {},
                          matcher: function e(t, n) {
                              if ("" === c.trim(t.term)) return n;
                              if (n.children && 0 < n.children.length) { for (var r = c.extend(!0, {}, n), i = n.children.length - 1; 0 <= i; i--) null == e(t, n.children[i]) && r.children.splice(i, 1); return 0 < r.children.length ? r : e(t, r) }
                              var o = a(n.text).toUpperCase(),
                                  s = a(t.term).toUpperCase();
                              return -1 < o.indexOf(s) ? n : null
                          },
                          minimumInputLength: 0,
                          maximumInputLength: 0,
                          maximumSelectionLength: 0,
                          minimumResultsForSearch: 0,
                          selectOnClose: !1,
                          scrollAfterSelect: !1,
                          sorter: function(e) { return e },
                          templateResult: function(e) { return e.text },
                          templateSelection: function(e) { return e.text },
                          theme: "default",
                          width: "resolve"
                      }
                  }, n.prototype.applyFromElement = function(e, t) {
                      var n = e.language,
                          r = this.defaults.language,
                          i = t.prop("lang"),
                          o = t.closest("[lang]").prop("lang"),
                          s = Array.prototype.concat.call(this._resolveLanguage(i), this._resolveLanguage(n), this._resolveLanguage(r), this._resolveLanguage(o));
                      return e.language = s, e
                  }, n.prototype._resolveLanguage = function(e) {
                      if (!e) return [];
                      if (c.isEmptyObject(e)) return [];
                      if (c.isPlainObject(e)) return [e];
                      var t;
                      t = c.isArray(e) ? e : [e];
                      for (var n = [], r = 0; r < t.length; r++)
                          if (n.push(t[r]), "string" == typeof t[r] && 0 < t[r].indexOf("-")) {
                              var i = t[r].split("-")[0];
                              n.push(i)
                          }
                      return n
                  }, n.prototype._processTranslations = function(e, t) {
                      for (var n = new s, r = 0; r < e.length; r++) {
                          var i = new s,
                              o = e[r];
                          if ("string" == typeof o) try { i = s.loadPath(o) } catch (e) { try { o = this.defaults.amdLanguageBase + o, i = s.loadPath(o) } catch (e) { t && window.console && console.warn && console.warn('Select2: The language file for "' + o + '" could not be automatically loaded. A fallback will be used instead.') } } else i = c.isPlainObject(o) ? new s(o) : o;
                          n.extend(i)
                      }
                      return n
                  }, n.prototype.set = function(e, t) {
                      var n = {};
                      n[c.camelCase(e)] = t;
                      var r = y._convertData(n);
                      c.extend(!0, this.defaults, r)
                  }, new n
              }), e.define("select2/options", ["require", "jquery", "./defaults", "./utils"], function(r, d, i, p) {
                  function e(e, t) {
                      if (this.options = e, null != t && this.fromElement(t), null != t && (this.options = i.applyFromElement(this.options, t)), this.options = i.apply(this.options), t && t.is("input")) {
                          var n = r(this.get("amdBase") + "compat/inputData");
                          this.options.dataAdapter = p.Decorate(this.options.dataAdapter, n)
                      }
                  }
                  return e.prototype.fromElement = function(e) {
                      var t = ["select2"];
                      null == this.options.multiple && (this.options.multiple = e.prop("multiple")), null == this.options.disabled && (this.options.disabled = e.prop("disabled")), null == this.options.dir && (e.prop("dir") ? this.options.dir = e.prop("dir") : e.closest("[dir]").prop("dir") ? this.options.dir = e.closest("[dir]").prop("dir") : this.options.dir = "ltr"), e.prop("disabled", this.options.disabled), e.prop("multiple", this.options.multiple), p.GetData(e[0], "select2Tags") && (this.options.debug && window.console && console.warn && console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'), p.StoreData(e[0], "data", p.GetData(e[0], "select2Tags")), p.StoreData(e[0], "tags", !0)), p.GetData(e[0], "ajaxUrl") && (this.options.debug && window.console && console.warn && console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."), e.attr("ajax--url", p.GetData(e[0], "ajaxUrl")), p.StoreData(e[0], "ajax-Url", p.GetData(e[0], "ajaxUrl")));
                      var n = {};
  
                      function r(e, t) { return t.toUpperCase() }
                      for (var i = 0; i < e[0].attributes.length; i++) {
                          var o = e[0].attributes[i].name,
                              s = "data-";
                          if (o.substr(0, s.length) == s) {
                              var a = o.substring(s.length),
                                  l = p.GetData(e[0], a);
                              n[a.replace(/-([a-z])/g, r)] = l
                          }
                      }
                      d.fn.jquery && "1." == d.fn.jquery.substr(0, 2) && e[0].dataset && (n = d.extend(!0, {}, e[0].dataset, n));
                      var c = d.extend(!0, {}, p.GetData(e[0]), n);
                      for (var u in c = p._convertData(c)) - 1 < d.inArray(u, t) || (d.isPlainObject(this.options[u]) ? d.extend(this.options[u], c[u]) : this.options[u] = c[u]);
                      return this
                  }, e.prototype.get = function(e) { return this.options[e] }, e.prototype.set = function(e, t) { this.options[e] = t }, e
              }), e.define("select2/core", ["jquery", "./options", "./utils", "./keys"], function(o, c, u, r) {
                  var d = function(e, t) {
                      null != u.GetData(e[0], "select2") && u.GetData(e[0], "select2").destroy(), this.$element = e, this.id = this._generateId(e), t = t || {}, this.options = new c(t, e), d.__super__.constructor.call(this);
                      var n = e.attr("tabindex") || 0;
                      u.StoreData(e[0], "old-tabindex", n), e.attr("tabindex", "-1");
                      var r = this.options.get("dataAdapter");
                      this.dataAdapter = new r(e, this.options);
                      var i = this.render();
                      this._placeContainer(i);
                      var o = this.options.get("selectionAdapter");
                      this.selection = new o(e, this.options), this.$selection = this.selection.render(), this.selection.position(this.$selection, i);
                      var s = this.options.get("dropdownAdapter");
                      this.dropdown = new s(e, this.options), this.$dropdown = this.dropdown.render(), this.dropdown.position(this.$dropdown, i);
                      var a = this.options.get("resultsAdapter");
                      this.results = new a(e, this.options, this.dataAdapter), this.$results = this.results.render(), this.results.position(this.$results, this.$dropdown);
                      var l = this;
                      this._bindAdapters(), this._registerDomEvents(), this._registerDataEvents(), this._registerSelectionEvents(), this._registerDropdownEvents(), this._registerResultsEvents(), this._registerEvents(), this.dataAdapter.current(function(e) { l.trigger("selection:update", { data: e }) }), e.addClass("select2-hidden-accessible"), e.attr("aria-hidden", "true"), this._syncAttributes(), u.StoreData(e[0], "select2", this), e.data("select2", this)
                  };
                  return u.Extend(d, u.Observable), d.prototype._generateId = function(e) { return "select2-" + (null != e.attr("id") ? e.attr("id") : null != e.attr("name") ? e.attr("name") + "-" + u.generateChars(2) : u.generateChars(4)).replace(/(:|\.|\[|\]|,)/g, "") }, d.prototype._placeContainer = function(e) {
                      e.insertAfter(this.$element);
                      var t = this._resolveWidth(this.$element, this.options.get("width"));
                      null != t && e.css("width", t)
                  }, d.prototype._resolveWidth = function(e, t) { var n = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; if ("resolve" == t) { var r = this._resolveWidth(e, "style"); return null != r ? r : this._resolveWidth(e, "element") } if ("element" == t) { var i = e.outerWidth(!1); return i <= 0 ? "auto" : i + "px" } if ("style" != t) return "computedstyle" != t ? t : window.getComputedStyle(e[0]).width; var o = e.attr("style"); if ("string" != typeof o) return null; for (var s = o.split(";"), a = 0, l = s.length; a < l; a += 1) { var c = s[a].replace(/\s/g, "").match(n); if (null !== c && 1 <= c.length) return c[1] } return null }, d.prototype._bindAdapters = function() { this.dataAdapter.bind(this, this.$container), this.selection.bind(this, this.$container), this.dropdown.bind(this, this.$container), this.results.bind(this, this.$container) }, d.prototype._registerDomEvents = function() {
                      var t = this;
                      this.$element.on("change.select2", function() { t.dataAdapter.current(function(e) { t.trigger("selection:update", { data: e }) }) }), this.$element.on("focus.select2", function(e) { t.trigger("focus", e) }), this._syncA = u.bind(this._syncAttributes, this), this._syncS = u.bind(this._syncSubtree, this), this.$element[0].attachEvent && this.$element[0].attachEvent("onpropertychange", this._syncA);
                      var e = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
                      null != e ? (this._observer = new e(function(e) { t._syncA(), t._syncS(null, e) }), this._observer.observe(this.$element[0], { attributes: !0, childList: !0, subtree: !1 })) : this.$element[0].addEventListener && (this.$element[0].addEventListener("DOMAttrModified", t._syncA, !1), this.$element[0].addEventListener("DOMNodeInserted", t._syncS, !1), this.$element[0].addEventListener("DOMNodeRemoved", t._syncS, !1))
                  }, d.prototype._registerDataEvents = function() {
                      var n = this;
                      this.dataAdapter.on("*", function(e, t) { n.trigger(e, t) })
                  }, d.prototype._registerSelectionEvents = function() {
                      var n = this,
                          r = ["toggle", "focus"];
                      this.selection.on("toggle", function() { n.toggleDropdown() }), this.selection.on("focus", function(e) { n.focus(e) }), this.selection.on("*", function(e, t) {-1 === o.inArray(e, r) && n.trigger(e, t) })
                  }, d.prototype._registerDropdownEvents = function() {
                      var n = this;
                      this.dropdown.on("*", function(e, t) { n.trigger(e, t) })
                  }, d.prototype._registerResultsEvents = function() {
                      var n = this;
                      this.results.on("*", function(e, t) { n.trigger(e, t) })
                  }, d.prototype._registerEvents = function() {
                      var n = this;
                      this.on("open", function() { n.$container.addClass("select2-container--open") }), this.on("close", function() { n.$container.removeClass("select2-container--open") }), this.on("enable", function() { n.$container.removeClass("select2-container--disabled") }), this.on("disable", function() { n.$container.addClass("select2-container--disabled") }), this.on("blur", function() { n.$container.removeClass("select2-container--focus") }), this.on("query", function(t) { n.isOpen() || n.trigger("open", {}), this.dataAdapter.query(t, function(e) { n.trigger("results:all", { data: e, query: t }) }) }), this.on("query:append", function(t) { this.dataAdapter.query(t, function(e) { n.trigger("results:append", { data: e, query: t }) }) }), this.on("keypress", function(e) {
                          var t = e.which;
                          n.isOpen() ? t === r.ESC || t === r.TAB || t === r.UP && e.altKey ? (n.close(e), e.preventDefault()) : t === r.ENTER ? (n.trigger("results:select", {}), e.preventDefault()) : t === r.SPACE && e.ctrlKey ? (n.trigger("results:toggle", {}), e.preventDefault()) : t === r.UP ? (n.trigger("results:previous", {}), e.preventDefault()) : t === r.DOWN && (n.trigger("results:next", {}), e.preventDefault()) : (t === r.ENTER || t === r.SPACE || t === r.DOWN && e.altKey) && (n.open(), e.preventDefault())
                      })
                  }, d.prototype._syncAttributes = function() { this.options.set("disabled", this.$element.prop("disabled")), this.isDisabled() ? (this.isOpen() && this.close(), this.trigger("disable", {})) : this.trigger("enable", {}) }, d.prototype._isChangeMutation = function(e, t) {
                      var n = !1,
                          r = this;
                      if (!e || !e.target || "OPTION" === e.target.nodeName || "OPTGROUP" === e.target.nodeName) {
                          if (t)
                              if (t.addedNodes && 0 < t.addedNodes.length)
                                  for (var i = 0; i < t.addedNodes.length; i++) { t.addedNodes[i].selected && (n = !0) } else t.removedNodes && 0 < t.removedNodes.length ? n = !0 : o.isArray(t) && o.each(t, function(e, t) { if (r._isChangeMutation(e, t)) return !(n = !0) });
                              else n = !0;
                          return n
                      }
                  }, d.prototype._syncSubtree = function(e, t) {
                      var n = this._isChangeMutation(e, t),
                          r = this;
                      n && this.dataAdapter.current(function(e) { r.trigger("selection:update", { data: e }) })
                  }, d.prototype.trigger = function(e, t) {
                      var n = d.__super__.trigger,
                          r = { open: "opening", close: "closing", select: "selecting", unselect: "unselecting", clear: "clearing" };
                      if (void 0 === t && (t = {}), e in r) {
                          var i = r[e],
                              o = { prevented: !1, name: e, args: t };
                          if (n.call(this, i, o), o.prevented) return void(t.prevented = !0)
                      }
                      n.call(this, e, t)
                  }, d.prototype.toggleDropdown = function() { this.isDisabled() || (this.isOpen() ? this.close() : this.open()) }, d.prototype.open = function() { this.isOpen() || this.isDisabled() || this.trigger("query", {}) }, d.prototype.close = function(e) { this.isOpen() && this.trigger("close", { originalEvent: e }) }, d.prototype.isEnabled = function() { return !this.isDisabled() }, d.prototype.isDisabled = function() { return this.options.get("disabled") }, d.prototype.isOpen = function() { return this.$container.hasClass("select2-container--open") }, d.prototype.hasFocus = function() { return this.$container.hasClass("select2-container--focus") }, d.prototype.focus = function(e) { this.hasFocus() || (this.$container.addClass("select2-container--focus"), this.trigger("focus", {})) }, d.prototype.enable = function(e) {
                      this.options.get("debug") && window.console && console.warn && console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'), null != e && 0 !== e.length || (e = [!0]);
                      var t = !e[0];
                      this.$element.prop("disabled", t)
                  }, d.prototype.data = function() { this.options.get("debug") && 0 < arguments.length && window.console && console.warn && console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.'); var t = []; return this.dataAdapter.current(function(e) { t = e }), t }, d.prototype.val = function(e) {
                      if (this.options.get("debug") && window.console && console.warn && console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'), null == e || 0 === e.length) return this.$element.val();
                      var t = e[0];
                      o.isArray(t) && (t = o.map(t, function(e) { return e.toString() })), this.$element.val(t).trigger("input").trigger("change")
                  }, d.prototype.destroy = function() { this.$container.remove(), this.$element[0].detachEvent && this.$element[0].detachEvent("onpropertychange", this._syncA), null != this._observer ? (this._observer.disconnect(), this._observer = null) : this.$element[0].removeEventListener && (this.$element[0].removeEventListener("DOMAttrModified", this._syncA, !1), this.$element[0].removeEventListener("DOMNodeInserted", this._syncS, !1), this.$element[0].removeEventListener("DOMNodeRemoved", this._syncS, !1)), this._syncA = null, this._syncS = null, this.$element.off(".select2"), this.$element.attr("tabindex", u.GetData(this.$element[0], "old-tabindex")), this.$element.removeClass("select2-hidden-accessible"), this.$element.attr("aria-hidden", "false"), u.RemoveData(this.$element[0]), this.$element.removeData("select2"), this.dataAdapter.destroy(), this.selection.destroy(), this.dropdown.destroy(), this.results.destroy(), this.dataAdapter = null, this.selection = null, this.dropdown = null, this.results = null }, d.prototype.render = function() { var e = o('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>'); return e.attr("dir", this.options.get("dir")), this.$container = e, this.$container.addClass("select2-container--" + this.options.get("theme")), u.StoreData(e[0], "element", this.$element), e }, d
              }), e.define("jquery-mousewheel", ["jquery"], function(e) { return e }), e.define("jquery.select2", ["jquery", "jquery-mousewheel", "./select2/core", "./select2/defaults", "./select2/utils"], function(i, e, o, t, s) {
                  if (null == i.fn.select2) {
                      var a = ["open", "close", "destroy"];
                      i.fn.select2 = function(t) {
                          if ("object" == typeof(t = t || {})) return this.each(function() {
                              var e = i.extend(!0, {}, t);
                              new o(i(this), e)
                          }), this;
                          if ("string" != typeof t) throw new Error("Invalid arguments for Select2: " + t);
                          var n, r = Array.prototype.slice.call(arguments, 1);
                          return this.each(function() {
                              var e = s.GetData(this, "select2");
                              null == e && window.console && console.error && console.error("The select2('" + t + "') method was called on an element that is not using Select2."), n = e[t].apply(e, r)
                          }), -1 < i.inArray(t, a) ? this : n
                      }
                  }
                  return null == i.fn.select2.defaults && (i.fn.select2.defaults = t), o
              }), { define: e.define, require: e.require }
          }(),
          t = e.require("jquery.select2");
      return u.fn.select2.amd = e, t
  });