text: /*
  Copyright 2012 Igor Vaynberg
   
  Version: 3.2 Timestamp: Mon Sep 10 10:38:04 PDT 2012
  
  Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in
  compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:
  
  http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing, software distributed under the License is
  distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and limitations under the License.
  */
  (function (e) {
    "undefined" == typeof e.fn.each2 &&
      e.fn.extend({
        each2: function (g) {
          for (
            var i = e([0]), m = -1, s = this.length;
            ++m < s && (i.context = i[0] = this[m]) && !1 !== g.call(i[0], m, i);
  
          );
          return this;
        },
      });
  })(jQuery);
  (function (e, g) {
    function i(a, b) {
      var c = 0,
        d = b.length,
        j;
      if ("undefined" === typeof a) return -1;
      if (a.constructor === String)
        for (; c < d; c += 1) {
          if (0 === a.localeCompare(b[c])) return c;
        }
      else
        for (; c < d; c += 1)
          if (((j = b[c]), j.constructor === String)) {
            if (0 === j.localeCompare(a)) return c;
          } else if (j === a) return c;
      return -1;
    }
    function m(a, b) {
      return a === b
        ? !0
        : a === g || b === g || null === a || null === b
        ? !1
        : a.constructor === String
        ? 0 === a.localeCompare(b)
        : b.constructor === String
        ? 0 === b.localeCompare(a)
        : !1;
    }
    function s(a, b) {
      var c, d, j;
      if (null === a || 1 > a.length) return [];
      c = a.split(b);
      d = 0;
      for (j = c.length; d < j; d += 1) c[d] = e.trim(c[d]);
      return c;
    }
    function A(a, b, c) {
      var c = c || g,
        d;
      return function () {
        var j = arguments;
        window.clearTimeout(d);
        d = window.setTimeout(function () {
          b.apply(c, j);
        }, a);
      };
    }
    function l(a) {
      a.preventDefault();
      a.stopPropagation();
    }
    function B(a, b, c) {
      var d = a.toUpperCase().indexOf(b.toUpperCase()),
        b = b.length;
      0 > d
        ? c.push(a)
        : (c.push(a.substring(0, d)),
          c.push("<span class='select2-match'>"),
          c.push(a.substring(d, d + b)),
          c.push("</span>"),
          c.push(a.substring(d + b, a.length)));
    }
    function C(a) {
      var b,
        c = 0,
        d = null,
        j = a.quietMillis || 100;
      return function (h) {
        window.clearTimeout(b);
        b = window.setTimeout(function () {
          var b = (c += 1),
            j = a.data,
            n = a.transport || e.ajax,
            f = a.traditional || !1,
            g = a.type || "GET",
            j = j.call(this, h.term, h.page, h.context);
          null !== d && d.abort();
          d = n.call(null, {
            url: a.url,
            dataType: a.dataType,
            data: j,
            type: g,
            traditional: f,
            success: function (d) {
              b < c || ((d = a.results(d, h.page)), h.callback(d));
            },
          });
        }, j);
      };
    }
    function D(a) {
      var b = a,
        c,
        d = function (a) {
          return "" + a.text;
        };
      e.isArray(b) ||
        ((d = b.text),
        e.isFunction(d) ||
          ((c = b.text),
          (d = function (a) {
            return a[c];
          })),
        (b = b.results));
      return function (a) {
        var c = a.term,
          f = { results: [] },
          k;
        if (c === "") a.callback({ results: b });
        else {
          k = function (b, f) {
            var g,
              t,
              b = b[0];
            if (b.children) {
              g = {};
              for (t in b) b.hasOwnProperty(t) && (g[t] = b[t]);
              g.children = [];
              e(b.children).each2(function (a, b) {
                k(b, g.children);
              });
              g.children.length && f.push(g);
            } else a.matcher(c, d(b)) && f.push(b);
          };
          e(b).each2(function (a, b) {
            k(b, f.results);
          });
          a.callback(f);
        }
      };
    }
    function E(a) {
      return e.isFunction(a)
        ? a
        : function (b) {
            var c = b.term,
              d = { results: [] };
            e(a).each(function () {
              var a = this.text !== g,
                e = a ? this.text : this;
              if ("" === c || b.matcher(c, e))
                d.results.push(a ? this : { id: this, text: this });
            });
            b.callback(d);
          };
    }
    function u(a) {
      if (e.isFunction(a)) return !0;
      if (!a) return !1;
      throw Error("formatterName must be a function or a falsy value");
    }
    function v(a) {
      return e.isFunction(a) ? a() : a;
    }
    function F(a) {
      var b = 0;
      e.each(a, function (a, d) {
        d.children ? (b += F(d.children)) : b++;
      });
      return b;
    }
    function H(a, b, c, d) {
      var e = a,
        h = !1,
        f,
        k,
        n,
        o;
      if (
        !d.createSearchChoice ||
        !d.tokenSeparators ||
        1 > d.tokenSeparators.length
      )
        return g;
      for (;;) {
        h = -1;
        k = 0;
        for (
          n = d.tokenSeparators.length;
          k < n && !((o = d.tokenSeparators[k]), (h = a.indexOf(o)), 0 <= h);
          k++
        );
        if (0 > h) break;
        f = a.substring(0, h);
        a = a.substring(h + o.length);
        if (
          0 < f.length &&
          ((f = d.createSearchChoice(f, b)),
          f !== g && null !== f && d.id(f) !== g && null !== d.id(f))
        ) {
          h = !1;
          k = 0;
          for (n = b.length; k < n; k++)
            if (m(d.id(f), d.id(b[k]))) {
              h = !0;
              break;
            }
          h || c(f);
        }
      }
      if (0 != e.localeCompare(a)) return a;
    }
    function x(a, b) {
      var c = function () {};
      c.prototype = new a();
      c.prototype.constructor = c;
      c.prototype.parent = a.prototype;
      c.prototype = e.extend(c.prototype, b);
      return c;
    }
    if (window.Select2 === g) {
      var f, w, y, z, G, q;
      f = {
        TAB: 9,
        ENTER: 13,
        ESC: 27,
        SPACE: 32,
        LEFT: 37,
        UP: 38,
        RIGHT: 39,
        DOWN: 40,
        SHIFT: 16,
        CTRL: 17,
        ALT: 18,
        PAGE_UP: 33,
        PAGE_DOWN: 34,
        HOME: 36,
        END: 35,
        BACKSPACE: 8,
        DELETE: 46,
        isArrow: function (a) {
          a = a.which ? a.which : a;
          switch (a) {
            case f.LEFT:
            case f.RIGHT:
            case f.UP:
            case f.DOWN:
              return !0;
          }
          return !1;
        },
        isControl: function (a) {
          switch (a.which) {
            case f.SHIFT:
            case f.CTRL:
            case f.ALT:
              return !0;
          }
          return a.metaKey ? !0 : !1;
        },
        isFunctionKey: function (a) {
          a = a.which ? a.which : a;
          return 112 <= a && 123 >= a;
        },
      };
      var I = 1;
      G = function () {
        return I++;
      };
      e(document).delegate("body", "mousemove", function (a) {
        e.data(document, "select2-lastpos", { x: a.pageX, y: a.pageY });
      });
      e(document).ready(function () {
        e(document).delegate("body", "mousedown touchend", function (a) {
          var b = e(a.target).closest("div.select2-container").get(0),
            c;
          b
            ? e(document)
                .find("div.select2-container-active")
                .each(function () {
                  this !== b && e(this).data("select2").blur();
                })
            : ((b = e(a.target).closest("div.select2-drop").get(0)),
              e(document)
                .find("div.select2-drop-active")
                .each(function () {
                  this !== b && e(this).data("select2").blur();
                }));
          b = e(a.target);
          c = b.attr("for");
          "LABEL" === a.target.tagName &&
            c &&
            0 < c.length &&
            ((b = e("#" + c)),
            (b = b.data("select2")),
            b !== g && (b.focus(), a.preventDefault()));
        });
      });
      w = x(Object, {
        bind: function (a) {
          var b = this;
          return function () {
            a.apply(b, arguments);
          };
        },
        init: function (a) {
          var b, c;
          this.opts = a = this.prepareOpts(a);
          this.id = a.id;
          a.element.data("select2") !== g &&
            null !== a.element.data("select2") &&
            this.destroy();
          this.enabled = !0;
          this.container = this.createContainer();
          this.containerId = "s2id_" + (a.element.attr("id") || "autogen" + G());
          this.containerSelector =
            "#" +
            this.containerId.replace(
              /([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,
              "\\$1"
            );
          this.container.attr("id", this.containerId);
          var d = !1,
            j;
          this.body = function () {
            !1 === d && ((j = a.element.closest("body")), (d = !0));
            return j;
          };
          a.element.attr("class") !== g &&
            this.container.addClass(
              a.element.attr("class").replace(/validate\[[\S ]+] ?/, "")
            );
          this.container.css(v(a.containerCss));
          this.container.addClass(v(a.containerCssClass));
          this.opts.element.data("select2", this).hide().before(this.container);
          this.container.data("select2", this);
          this.dropdown = this.container.find(".select2-drop");
          this.dropdown.addClass(v(a.dropdownCssClass));
          this.dropdown.data("select2", this);
          this.results = b = this.container.find(".select2-results");
          this.search = c = this.container.find("input.select2-input");
          c.attr("tabIndex", this.opts.element.attr("tabIndex"));
          this.resultsPage = 0;
          this.context = null;
          this.initContainer();
          this.initContainerWidth();
          this.results.bind("mousemove", function (a) {
            var b = e.data(document, "select2-lastpos");
            (b === g || b.x !== a.pageX || b.y !== a.pageY) &&
              e(a.target).trigger("mousemove-filtered", a);
          });
          this.dropdown.delegate(
            ".select2-results",
            "mousemove-filtered",
            this.bind(this.highlightUnderEvent)
          );
          var h = this.results,
            f = A(80, function (a) {
              h.trigger("scroll-debounced", a);
            });
          h.bind("scroll", function (a) {
            0 <= i(a.target, h.get()) && f(a);
          });
          this.dropdown.delegate(
            ".select2-results",
            "scroll-debounced",
            this.bind(this.loadMoreIfNeeded)
          );
          e.fn.mousewheel &&
            b.mousewheel(function (a, c, d, e) {
              c = b.scrollTop();
              0 < e && 0 >= c - e
                ? (b.scrollTop(0), l(a))
                : 0 > e &&
                  b.get(0).scrollHeight - b.scrollTop() + e <= b.height() &&
                  (b.scrollTop(b.get(0).scrollHeight - b.height()), l(a));
            });
          c.bind("keydown", function () {
            e.data(c, "keyup-change-value") === g &&
              e.data(c, "keyup-change-value", c.val());
          });
          c.bind("keyup", function () {
            var a = e.data(c, "keyup-change-value");
            a !== g &&
              c.val() !== a &&
              (e.removeData(c, "keyup-change-value"), c.trigger("keyup-change"));
          });
          c.bind("keyup-change", this.bind(this.updateResults));
          c.bind("focus", function () {
            c.addClass("select2-focused");
            " " === c.val() && c.val("");
          });
          c.bind("blur", function () {
            c.removeClass("select2-focused");
          });
          this.dropdown.delegate(
            ".select2-results",
            "mouseup",
            this.bind(function (a) {
              0 <
              e(a.target).closest(
                ".select2-result-selectable:not(.select2-disabled)"
              ).length
                ? (this.highlightUnderEvent(a), this.selectHighlighted(a))
                : this.focusSearch();
              l(a);
            })
          );
          this.dropdown.bind("click mouseup mousedown", function (a) {
            a.stopPropagation();
          });
          e.isFunction(this.opts.initSelection) &&
            (this.initSelection(), this.monitorSource());
          (a.element.is(":disabled") || a.element.is("[readonly='readonly']")) &&
            this.disable();
        },
        destroy: function () {
          var a = this.opts.element.data("select2");
          a !== g &&
            (a.container.remove(),
            a.dropdown.remove(),
            a.opts.element.removeData("select2").unbind(".select2").show());
        },
        prepareOpts: function (a) {
          var b, c, d;
          b = a.element;
          "select" === b.get(0).tagName.toLowerCase() &&
            (this.select = c = a.element);
          c &&
            e.each(
              "id multiple ajax query createSearchChoice initSelection data tags".split(
                " "
              ),
              function () {
                if (this in a)
                  throw Error(
                    "Option '" +
                      this +
                      "' is not allowed for Select2 when attached to a <select> element."
                  );
              }
            );
          a = e.extend(
            {},
            {
              populateResults: function (b, c, d) {
                var f,
                  n = this.opts.id,
                  o = this;
                f = function (b, c, j) {
                  var h, l, i, m, r, p, q;
                  h = 0;
                  for (l = b.length; h < l; h = h + 1) {
                    i = b[h];
                    m = n(i) !== g;
                    r = i.children && i.children.length > 0;
                    p = e("<li></li>");
                    p.addClass("select2-results-dept-" + j);
                    p.addClass("select2-result");
                    p.addClass(
                      m
                        ? "select2-result-selectable"
                        : "select2-result-unselectable"
                    );
                    r && p.addClass("select2-result-with-children");
                    p.addClass(o.opts.formatResultCssClass(i));
                    m = e("<div></div>");
                    m.addClass("select2-result-label");
                    q = a.formatResult(i, m, d);
                    q !== g && m.html(o.opts.escapeMarkup(q));
                    p.append(m);
                    if (r) {
                      r = e("<ul></ul>");
                      r.addClass("select2-result-sub");
                      f(i.children, r, j + 1);
                      p.append(r);
                    }
                    p.data("select2-data", i);
                    c.append(p);
                  }
                };
                f(c, b, 0);
              },
            },
            e.fn.select2.defaults,
            a
          );
          "function" !== typeof a.id &&
            ((d = a.id),
            (a.id = function (a) {
              return a[d];
            }));
          if (c)
            (a.query = this.bind(function (a) {
              var c = { results: [], more: false },
                d = a.term,
                f,
                n,
                o;
              o = function (b, c) {
                var e;
                if (b.is("option"))
                  a.matcher(d, b.text(), b) &&
                    c.push({
                      id: b.attr("value"),
                      text: b.text(),
                      element: b.get(),
                      css: b.attr("class"),
                    });
                else if (b.is("optgroup")) {
                  e = {
                    text: b.attr("label"),
                    children: [],
                    element: b.get(),
                    css: b.attr("class"),
                  };
                  b.children().each2(function (a, b) {
                    o(b, e.children);
                  });
                  e.children.length > 0 && c.push(e);
                }
              };
              f = b.children();
              if (this.getPlaceholder() !== g && f.length > 0) {
                n = f[0];
                e(n).text() === "" && (f = f.not(n));
              }
              f.each2(function (a, b) {
                o(b, c.results);
              });
              a.callback(c);
            })),
              (a.id = function (a) {
                return a.id;
              }),
              (a.formatResultCssClass = function (a) {
                return a.css;
              });
          else if (!("query" in a))
            if ("ajax" in a) {
              if ((c = a.element.data("ajax-url")) && 0 < c.length)
                a.ajax.url = c;
              a.query = C(a.ajax);
            } else
              "data" in a
                ? (a.query = D(a.data))
                : "tags" in a &&
                  ((a.query = E(a.tags)),
                  (a.createSearchChoice = function (a) {
                    return { id: a, text: a };
                  }),
                  (a.initSelection = function (b, c) {
                    var d = [];
                    e(s(b.val(), a.separator)).each(function () {
                      var b = this,
                        c = this,
                        j = a.tags;
                      e.isFunction(j) && (j = j());
                      e(j).each(function () {
                        if (m(this.id, b)) {
                          c = this.text;
                          return false;
                        }
                      });
                      d.push({ id: b, text: c });
                    });
                    c(d);
                  }));
          if ("function" !== typeof a.query)
            throw (
              "query function not defined for Select2 " + a.element.attr("id")
            );
          return a;
        },
        monitorSource: function () {
          this.opts.element.bind(
            "change.select2",
            this.bind(function () {
              !0 !== this.opts.element.data("select2-change-triggered") &&
                this.initSelection();
            })
          );
        },
        triggerChange: function (a) {
          a = a || {};
          a = e.extend({}, a, { type: "change", val: this.val() });
          this.opts.element.data("select2-change-triggered", !0);
          this.opts.element.trigger(a);
          this.opts.element.data("select2-change-triggered", !1);
          this.opts.element.click();
          this.opts.blurOnChange && this.opts.element.blur();
        },
        enable: function () {
          this.enabled ||
            ((this.enabled = !0),
            this.container.removeClass("select2-container-disabled"));
        },
        disable: function () {
          this.enabled &&
            (this.close(),
            (this.enabled = !1),
            this.container.addClass("select2-container-disabled"));
        },
        opened: function () {
          return this.container.hasClass("select2-dropdown-open");
        },
        positionDropdown: function () {
          var a = this.container.offset(),
            b = this.container.outerHeight(),
            c = this.container.outerWidth(),
            d = this.dropdown.outerHeight(),
            j = e(window).scrollTop() + document.documentElement.clientHeight,
            b = a.top + b,
            f = a.left,
            j = b + d <= j,
            g = a.top - d >= this.body().scrollTop(),
            k = this.dropdown.hasClass("select2-drop-above"),
            n;
          "static" !== this.body().css("position") &&
            ((n = this.body().offset()), (b -= n.top), (f -= n.left));
          k ? ((k = !0), !g && j && (k = !1)) : ((k = !1), !j && g && (k = !0));
          k
            ? ((b = a.top - d),
              this.container.addClass("select2-drop-above"),
              this.dropdown.addClass("select2-drop-above"))
            : (this.container.removeClass("select2-drop-above"),
              this.dropdown.removeClass("select2-drop-above"));
          a = e.extend({ top: b, left: f, width: c }, v(this.opts.dropdownCss));
          this.dropdown.css(a);
        },
        shouldOpen: function () {
          var a;
          if (this.opened()) return !1;
          a = e.Event("open");
          this.opts.element.trigger(a);
          return !a.isDefaultPrevented();
        },
        clearDropdownAlignmentPreference: function () {
          this.container.removeClass("select2-drop-above");
          this.dropdown.removeClass("select2-drop-above");
        },
        open: function () {
          if (!this.shouldOpen()) return !1;
          window.setTimeout(this.bind(this.opening), 1);
          return !0;
        },
        opening: function () {
          var a = this.containerId,
            b = this.containerSelector,
            c = "scroll." + a,
            d = "resize." + a;
          this.container.parents().each(function () {
            e(this).bind(c, function () {
              var a = e(b);
              0 == a.length && e(this).unbind(c);
              a.select2("close");
            });
          });
          e(window).bind(d, function () {
            var a = e(b);
            0 == a.length && e(window).unbind(d);
            a.select2("close");
          });
          this.clearDropdownAlignmentPreference();
          " " === this.search.val() && this.search.val("");
          this.container
            .addClass("select2-dropdown-open")
            .addClass("select2-container-active");
          this.updateResults(!0);
          this.dropdown[0] !== this.body().children().last()[0] &&
            this.dropdown.detach().appendTo(this.body());
          this.dropdown.show();
          this.positionDropdown();
          this.dropdown.addClass("select2-drop-active");
          this.ensureHighlightVisible();
          this.focusSearch();
        },
        close: function () {
          if (this.opened()) {
            var a = this;
            this.container.parents().each(function () {
              e(this).unbind("scroll." + a.containerId);
            });
            e(window).unbind("resize." + this.containerId);
            this.clearDropdownAlignmentPreference();
            this.dropdown.hide();
            this.container
              .removeClass("select2-dropdown-open")
              .removeClass("select2-container-active");
            this.results.empty();
            this.clearSearch();
            this.opts.element.trigger(e.Event("close"));
          }
        },
        clearSearch: function () {},
        ensureHighlightVisible: function () {
          var a = this.results,
            b,
            c,
            d,
            f;
          c = this.highlight();
          0 > c ||
            (0 == c
              ? a.scrollTop(0)
              : ((b = a.find(".select2-result-selectable")),
                (d = e(b[c])),
                (f = d.offset().top + d.outerHeight()),
                c === b.length - 1 &&
                  ((b = a.find("li.select2-more-results")),
                  0 < b.length && (f = b.offset().top + b.outerHeight())),
                (b = a.offset().top + a.outerHeight()),
                f > b && a.scrollTop(a.scrollTop() + (f - b)),
                (d = d.offset().top - a.offset().top),
                0 > d && a.scrollTop(a.scrollTop() + d)));
        },
        moveHighlight: function (a) {
          for (
            var b = this.results.find(".select2-result-selectable"),
              c = this.highlight();
            -1 < c && c < b.length;
  
          ) {
            var c = c + a,
              d = e(b[c]);
            if (
              d.hasClass("select2-result-selectable") &&
              !d.hasClass("select2-disabled")
            ) {
              this.highlight(c);
              break;
            }
          }
        },
        highlight: function (a) {
          var b = this.results
            .find(".select2-result-selectable")
            .not(".select2-disabled");
          if (0 === arguments.length)
            return i(b.filter(".select2-highlighted")[0], b.get());
          a >= b.length && (a = b.length - 1);
          0 > a && (a = 0);
          b.removeClass("select2-highlighted");
          e(b[a]).addClass("select2-highlighted");
          this.ensureHighlightVisible();
        },
        countSelectableResults: function () {
          return this.results
            .find(".select2-result-selectable")
            .not(".select2-disabled").length;
        },
        highlightUnderEvent: function (a) {
          a = e(a.target).closest(".select2-result-selectable");
          if (0 < a.length && !a.is(".select2-highlighted")) {
            var b = this.results.find(".select2-result-selectable");
            this.highlight(b.index(a));
          } else
            0 == a.length &&
              this.results
                .find(".select2-highlighted")
                .removeClass("select2-highlighted");
        },
        loadMoreIfNeeded: function () {
          var a = this.results,
            b = a.find("li.select2-more-results"),
            c,
            d = this.resultsPage + 1,
            e = this,
            f = this.search.val(),
            g = this.context;
          0 !== b.length &&
            ((c = b.offset().top - a.offset().top - a.height()),
            0 >= c &&
              (b.addClass("select2-active"),
              this.opts.query({
                term: f,
                page: d,
                context: g,
                matcher: this.opts.matcher,
                callback: this.bind(function (c) {
                  e.opened() &&
                    (e.opts.populateResults.call(this, a, c.results, {
                      term: f,
                      page: d,
                      context: g,
                    }),
                    !0 === c.more
                      ? (b
                          .detach()
                          .appendTo(a)
                          .text(e.opts.formatLoadMore(d + 1)),
                        window.setTimeout(function () {
                          e.loadMoreIfNeeded();
                        }, 10))
                      : b.remove(),
                    e.positionDropdown(),
                    (e.resultsPage = d));
                }),
              })));
        },
        tokenize: function () {},
        updateResults: function (a) {
          function b() {
            f.scrollTop(0);
            d.removeClass("select2-active");
            k.positionDropdown();
          }
          function c(a) {
            f.html(k.opts.escapeMarkup(a));
            b();
          }
          var d = this.search,
            f = this.results,
            h = this.opts,
            i,
            k = this;
          if (!(!0 !== a && (!1 === this.showSearchInput || !this.opened()))) {
            d.addClass("select2-active");
            if (
              1 <= h.maximumSelectionSize &&
              ((i = this.data()),
              e.isArray(i) &&
                i.length >= h.maximumSelectionSize &&
                u(h.formatSelectionTooBig, "formatSelectionTooBig"))
            ) {
              c(
                "<li class='select2-selection-limit'>" +
                  h.formatSelectionTooBig(h.maximumSelectionSize) +
                  "</li>"
              );
              return;
            }
            d.val().length < h.minimumInputLength &&
            u(h.formatInputTooShort, "formatInputTooShort")
              ? c(
                  "<li class='select2-no-results'>" +
                    h.formatInputTooShort(d.val(), h.minimumInputLength) +
                    "</li>"
                )
              : (c(
                  "<li class='select2-searching'>" + h.formatSearching() + "</li>"
                ),
                (i = this.tokenize()),
                i != g && null != i && d.val(i),
                (this.resultsPage = 1),
                h.query({
                  term: d.val(),
                  page: this.resultsPage,
                  context: null,
                  matcher: h.matcher,
                  callback: this.bind(function (i) {
                    var l;
                    this.opened() &&
                      (((this.context = i.context === g ? null : i.context),
                      this.opts.createSearchChoice &&
                        "" !== d.val() &&
                        ((l = this.opts.createSearchChoice.call(
                          null,
                          d.val(),
                          i.results
                        )),
                        l !== g &&
                          null !== l &&
                          k.id(l) !== g &&
                          null !== k.id(l) &&
                          0 ===
                            e(i.results).filter(function () {
                              return m(k.id(this), k.id(l));
                            }).length &&
                          i.results.unshift(l)),
                      0 === i.results.length &&
                        u(h.formatNoMatches, "formatNoMatches"))
                        ? c(
                            "<li class='select2-no-results'>" +
                              h.formatNoMatches(d.val()) +
                              "</li>"
                          )
                        : (f.empty(),
                          k.opts.populateResults.call(this, f, i.results, {
                            term: d.val(),
                            page: this.resultsPage,
                            context: null,
                          }),
                          !0 === i.more &&
                            u(h.formatLoadMore, "formatLoadMore") &&
                            (f.append(
                              "<li class='select2-more-results'>" +
                                k.opts.escapeMarkup(
                                  h.formatLoadMore(this.resultsPage)
                                ) +
                                "</li>"
                            ),
                            window.setTimeout(function () {
                              k.loadMoreIfNeeded();
                            }, 10)),
                          this.postprocessResults(i, a),
                          b()));
                  }),
                }));
          }
        },
        cancel: function () {
          this.close();
        },
        blur: function () {
          this.close();
          this.container.removeClass("select2-container-active");
          this.dropdown.removeClass("select2-drop-active");
          this.search[0] === document.activeElement && this.search.blur();
          this.clearSearch();
          this.selection
            .find(".select2-search-choice-focus")
            .removeClass("select2-search-choice-focus");
        },
        focusSearch: function () {
          this.search.show();
          this.search.focus();
          window.setTimeout(
            this.bind(function () {
              this.search.show();
              this.search.focus();
              this.search.val(this.search.val());
            }),
            10
          );
        },
        selectHighlighted: function () {
          var a = this.highlight(),
            b = this.results
              .find(".select2-highlighted")
              .not(".select2-disabled"),
            c = b.closest(".select2-result-selectable").data("select2-data");
          c &&
            (b.addClass("select2-disabled"), this.highlight(a), this.onSelect(c));
        },
        getPlaceholder: function () {
          return (
            this.opts.element.attr("placeholder") ||
            this.opts.element.attr("data-placeholder") ||
            this.opts.element.data("placeholder") ||
            this.opts.placeholder
          );
        },
        initContainerWidth: function () {
          var a = function () {
            var a, c, d, f;
            if ("off" === this.opts.width) return null;
            if ("element" === this.opts.width)
              return 0 === this.opts.element.outerWidth()
                ? "auto"
                : this.opts.element.outerWidth() + "px";
            if ("copy" === this.opts.width || "resolve" === this.opts.width) {
              a = this.opts.element.attr("style");
              if (a !== g) {
                a = a.split(";");
                d = 0;
                for (f = a.length; d < f; d += 1)
                  if (
                    ((c = a[d]
                      .replace(/\s/g, "")
                      .match(
                        /width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/
                      )),
                    null !== c && 1 <= c.length)
                  )
                    return c[1];
              }
              return "resolve" === this.opts.width
                ? ((a = this.opts.element.css("width")),
                  0 < a.indexOf("%")
                    ? a
                    : 0 === this.opts.element.outerWidth()
                    ? "auto"
                    : this.opts.element.outerWidth() + "px")
                : null;
            }
            return e.isFunction(this.opts.width)
              ? this.opts.width()
              : this.opts.width;
          }.call(this);
          null !== a && this.container.attr("style", "width: " + a);
        },
      });
      y = x(w, {
        createContainer: function () {
          return e("<div></div>", { class: "select2-container" }).html(
            "    <a href='#' onclick='return false;' class='select2-choice'>   <span></span><abbr class='select2-search-choice-close' style='display:none;'></abbr>   <div><b></b></div></a>    <div class='select2-drop select2-offscreen'>   <div class='select2-search'>       <input type='text' autocomplete='off' class='select2-input'/>   </div>   <ul class='select2-results'>   </ul></div>"
          );
        },
        opening: function () {
          this.search.show();
          this.parent.opening.apply(this, arguments);
          this.dropdown.removeClass("select2-offscreen");
        },
        close: function () {
          this.opened() &&
            (this.parent.close.apply(this, arguments),
            this.dropdown
              .removeAttr("style")
              .addClass("select2-offscreen")
              .insertAfter(this.selection)
              .show());
        },
        focus: function () {
          this.close();
          this.selection.focus();
        },
        isFocused: function () {
          return this.selection[0] === document.activeElement;
        },
        cancel: function () {
          this.parent.cancel.apply(this, arguments);
          this.selection.focus();
        },
        initContainer: function () {
          var a,
            b = this.dropdown;
          this.selection = a = this.container.find(".select2-choice");
          this.search.bind(
            "keydown",
            this.bind(function (a) {
              if (this.enabled)
                if (a.which === f.PAGE_UP || a.which === f.PAGE_DOWN) l(a);
                else if (this.opened())
                  switch (a.which) {
                    case f.UP:
                    case f.DOWN:
                      this.moveHighlight(a.which === f.UP ? -1 : 1);
                      l(a);
                      break;
                    case f.TAB:
                    case f.ENTER:
                      this.selectHighlighted();
                      l(a);
                      break;
                    case f.ESC:
                      this.cancel(a), l(a);
                  }
                else
                  a.which === f.TAB ||
                    f.isControl(a) ||
                    f.isFunctionKey(a) ||
                    a.which === f.ESC ||
                    (!1 === this.opts.openOnEnter && a.which === f.ENTER) ||
                    this.open();
            })
          );
          this.search.bind(
            "focus",
            this.bind(function () {
              this.selection.attr("tabIndex", "-1");
            })
          );
          this.search.bind(
            "blur",
            this.bind(function () {
              this.opened() ||
                this.container.removeClass("select2-container-active");
              window.setTimeout(
                this.bind(function () {
                  this.selection.attr(
                    "tabIndex",
                    this.opts.element.attr("tabIndex")
                  );
                }),
                10
              );
            })
          );
          a.bind(
            "mousedown",
            this.bind(function () {
              this.opened()
                ? (this.close(), this.selection.focus())
                : this.enabled && this.open();
            })
          );
          b.bind(
            "mousedown",
            this.bind(function () {
              this.search.focus();
            })
          );
          a.bind(
            "focus",
            this.bind(function () {
              this.container.addClass("select2-container-active");
              this.search.attr("tabIndex", "-1");
            })
          );
          a.bind(
            "blur",
            this.bind(function () {
              this.opened() ||
                this.container.removeClass("select2-container-active");
              window.setTimeout(
                this.bind(function () {
                  this.search.attr(
                    "tabIndex",
                    this.opts.element.attr("tabIndex")
                  );
                }),
                10
              );
            })
          );
          a.bind(
            "keydown",
            this.bind(function (a) {
              if (this.enabled)
                if (a.which === f.PAGE_UP || a.which === f.PAGE_DOWN) l(a);
                else if (
                  !(
                    a.which === f.TAB ||
                    f.isControl(a) ||
                    f.isFunctionKey(a) ||
                    a.which === f.ESC
                  ) &&
                  !(!1 === this.opts.openOnEnter && a.which === f.ENTER)
                )
                  if (a.which == f.DELETE) this.opts.allowClear && this.clear();
                  else {
                    this.open();
                    if (a.which !== f.ENTER && !(48 > a.which)) {
                      var b = String.fromCharCode(a.which).toLowerCase();
                      a.shiftKey && (b = b.toUpperCase());
                      this.search.focus();
                      this.search.val(b);
                    }
                    l(a);
                  }
            })
          );
          a.delegate(
            "abbr",
            "mousedown",
            this.bind(function (a) {
              this.enabled &&
                (this.clear(),
                l(a),
                this.close(),
                this.triggerChange(),
                this.selection.focus());
            })
          );
          this.setPlaceholder();
          this.search.bind(
            "focus",
            this.bind(function () {
              this.container.addClass("select2-container-active");
            })
          );
        },
        clear: function () {
          this.opts.element.val("");
          this.selection.find("span").empty();
          this.selection.removeData("select2-data");
          this.setPlaceholder();
        },
        initSelection: function () {
          if ("" === this.opts.element.val()) this.close(), this.setPlaceholder();
          else {
            var a = this;
            this.opts.initSelection.call(null, this.opts.element, function (b) {
              b !== g &&
                null !== b &&
                (a.updateSelection(b), a.close(), a.setPlaceholder());
            });
          }
        },
        prepareOpts: function () {
          var a = this.parent.prepareOpts.apply(this, arguments);
          "select" === a.element.get(0).tagName.toLowerCase() &&
            (a.initSelection = function (a, c) {
              var d = a.find(":selected");
              e.isFunction(c) && c({ id: d.attr("value"), text: d.text() });
            });
          return a;
        },
        setPlaceholder: function () {
          var a = this.getPlaceholder();
          "" === this.opts.element.val() &&
            a !== g &&
            !(this.select && "" !== this.select.find("option:first").text()) &&
            (this.selection.find("span").html(this.opts.escapeMarkup(a)),
            this.selection.addClass("select2-default"),
            this.selection.find("abbr").hide());
        },
        postprocessResults: function (a, b) {
          var c = 0,
            d = this,
            f = !0;
          this.results.find(".select2-result-selectable").each2(function (a, b) {
            if (m(d.id(b.data("select2-data")), d.opts.element.val()))
              return (c = a), !1;
          });
          this.highlight(c);
          !0 === b &&
            ((f = this.showSearchInput =
              F(a.results) >= this.opts.minimumResultsForSearch),
            this.dropdown
              .find(".select2-search")
              [f ? "removeClass" : "addClass"]("select2-search-hidden"),
            e(this.dropdown, this.container)[f ? "addClass" : "removeClass"](
              "select2-with-searchbox"
            ));
        },
        onSelect: function (a) {
          var b = this.opts.element.val();
          this.opts.element.val(this.id(a));
          this.updateSelection(a);
          this.close();
          this.selection.focus();
          m(b, this.id(a)) || this.triggerChange();
        },
        updateSelection: function (a) {
          var b = this.selection.find("span");
          this.selection.data("select2-data", a);
          b.empty();
          a = this.opts.formatSelection(a, b);
          a !== g && b.append(this.opts.escapeMarkup(a));
          this.selection.removeClass("select2-default");
          this.opts.allowClear &&
            this.getPlaceholder() !== g &&
            this.selection.find("abbr").show();
        },
        val: function () {
          var a,
            b = null,
            c = this;
          if (0 === arguments.length) return this.opts.element.val();
          a = arguments[0];
          if (this.select)
            this.select
              .val(a)
              .find(":selected")
              .each2(function (a, c) {
                b = { id: c.attr("value"), text: c.text() };
                return !1;
              }),
              this.updateSelection(b),
              this.setPlaceholder();
          else {
            if (this.opts.initSelection === g)
              throw Error("cannot call val() if initSelection() is not defined");
            a
              ? (this.opts.element.val(a),
                this.opts.initSelection(this.opts.element, function (a) {
                  c.opts.element.val(!a ? "" : c.id(a));
                  c.updateSelection(a);
                  c.setPlaceholder();
                }))
              : this.clear();
          }
        },
        clearSearch: function () {
          this.search.val("");
        },
        data: function (a) {
          var b;
          if (0 === arguments.length)
            return (
              (b = this.selection.data("select2-data")), b == g && (b = null), b
            );
          !a || "" === a
            ? this.clear()
            : (this.opts.element.val(!a ? "" : this.id(a)),
              this.updateSelection(a));
        },
      });
      z = x(w, {
        createContainer: function () {
          return e("<div></div>", {
            class: "select2-container select2-container-multi",
          }).html(
            "    <ul class='select2-choices'>  <li class='select2-search-field'>    <input type='text' autocomplete='off' class='select2-input'>  </li></ul><div class='select2-drop select2-drop-multi' style='display:none;'>   <ul class='select2-results'>   </ul></div>"
          );
        },
        prepareOpts: function () {
          var a = this.parent.prepareOpts.apply(this, arguments);
          "select" === a.element.get(0).tagName.toLowerCase() &&
            (a.initSelection = function (a, c) {
              var d = [];
              a.find(":selected").each2(function (a, b) {
                d.push({ id: b.attr("value"), text: b.text() });
              });
              e.isFunction(c) && c(d);
            });
          return a;
        },
        initContainer: function () {
          var a;
          this.searchContainer = this.container.find(".select2-search-field");
          this.selection = a = this.container.find(".select2-choices");
          this.search.bind(
            "keydown",
            this.bind(function (b) {
              if (this.enabled) {
                if (b.which === f.BACKSPACE && "" === this.search.val()) {
                  this.close();
                  var c;
                  c = a.find(".select2-search-choice-focus");
                  if (0 < c.length) {
                    this.unselect(c.first());
                    this.search.width(10);
                    l(b);
                    return;
                  }
                  c = a.find(".select2-search-choice");
                  0 < c.length &&
                    c.last().addClass("select2-search-choice-focus");
                } else
                  a.find(".select2-search-choice-focus").removeClass(
                    "select2-search-choice-focus"
                  );
                if (this.opened())
                  switch (b.which) {
                    case f.UP:
                    case f.DOWN:
                      this.moveHighlight(b.which === f.UP ? -1 : 1);
                      l(b);
                      return;
                    case f.ENTER:
                    case f.TAB:
                      this.selectHighlighted();
                      l(b);
                      return;
                    case f.ESC:
                      this.cancel(b);
                      l(b);
                      return;
                  }
                if (
                  !(
                    b.which === f.TAB ||
                    f.isControl(b) ||
                    f.isFunctionKey(b) ||
                    b.which === f.BACKSPACE ||
                    b.which === f.ESC
                  ) &&
                  !(!1 === this.opts.openOnEnter && b.which === f.ENTER)
                )
                  this.open(),
                    (b.which === f.PAGE_UP || b.which === f.PAGE_DOWN) && l(b);
              }
            })
          );
          this.search.bind("keyup", this.bind(this.resizeSearch));
          this.search.bind(
            "blur",
            this.bind(function (a) {
              this.container.removeClass("select2-container-active");
              this.search.removeClass("select2-focused");
              this.clearSearch();
              a.stopImmediatePropagation();
            })
          );
          this.container.delegate(
            ".select2-choices",
            "mousedown",
            this.bind(function (a) {
              this.enabled &&
                !(0 < e(a.target).closest(".select2-search-choice").length) &&
                (this.clearPlaceholder(),
                this.open(),
                this.focusSearch(),
                a.preventDefault());
            })
          );
          this.container.delegate(
            ".select2-choices",
            "focus",
            this.bind(function () {
              this.enabled &&
                (this.container.addClass("select2-container-active"),
                this.dropdown.addClass("select2-drop-active"),
                this.clearPlaceholder());
            })
          );
          this.clearSearch();
        },
        enable: function () {
          this.enabled ||
            (this.parent.enable.apply(this, arguments),
            this.search.removeAttr("disabled"));
        },
        disable: function () {
          this.enabled &&
            (this.parent.disable.apply(this, arguments),
            this.search.attr("disabled", !0));
        },
        initSelection: function () {
          "" === this.opts.element.val() &&
            (this.updateSelection([]), this.close(), this.clearSearch());
          if (this.select || "" !== this.opts.element.val()) {
            var a = this;
            this.opts.initSelection.call(null, this.opts.element, function (b) {
              if (b !== g && b !== null) {
                a.updateSelection(b);
                a.close();
                a.clearSearch();
              }
            });
          }
        },
        clearSearch: function () {
          var a = this.getPlaceholder();
          a !== g &&
          0 === this.getVal().length &&
          !1 === this.search.hasClass("select2-focused")
            ? (this.search.val(a).addClass("select2-default"),
              this.resizeSearch())
            : this.search.val(" ").width(10);
        },
        clearPlaceholder: function () {
          this.search.hasClass("select2-default")
            ? this.search.val("").removeClass("select2-default")
            : " " === this.search.val() && this.search.val("");
        },
        opening: function () {
          this.parent.opening.apply(this, arguments);
          this.clearPlaceholder();
          this.resizeSearch();
          this.focusSearch();
        },
        close: function () {
          this.opened() && this.parent.close.apply(this, arguments);
        },
        focus: function () {
          this.close();
          this.search.focus();
        },
        isFocused: function () {
          return this.search.hasClass("select2-focused");
        },
        updateSelection: function (a) {
          var b = [],
            c = [],
            d = this;
          e(a).each(function () {
            0 > i(d.id(this), b) && (b.push(d.id(this)), c.push(this));
          });
          a = c;
          this.selection.find(".select2-search-choice").remove();
          e(a).each(function () {
            d.addSelectedChoice(this);
          });
          d.postprocessResults();
        },
        tokenize: function () {
          var a = this.search.val(),
            a = this.opts.tokenizer(
              a,
              this.data(),
              this.bind(this.onSelect),
              this.opts
            );
          null != a &&
            a != g &&
            (this.search.val(a), 0 < a.length && this.open());
        },
        onSelect: function (a) {
          this.addSelectedChoice(a);
          this.select && this.postprocessResults();
          this.opts.closeOnSelect
            ? (this.close(), this.search.width(10))
            : 0 < this.countSelectableResults()
            ? (this.search.width(10),
              this.resizeSearch(),
              this.positionDropdown())
            : this.close();
          this.triggerChange({ added: a });
          this.focusSearch();
        },
        cancel: function () {
          this.close();
          this.focusSearch();
        },
        addSelectedChoice: function (a) {
          var b = e(
              "<li class='select2-search-choice'>    <div></div>    <a href='#' onclick='return false;' class='select2-search-choice-close' tabindex='-1'></a></li>"
            ),
            c = this.id(a),
            d = this.getVal(),
            f;
          f = this.opts.formatSelection(a, b);
          b.find("div").replaceWith(
            "<div>" + this.opts.escapeMarkup(f) + "</div>"
          );
          b.find(".select2-search-choice-close")
            .bind("mousedown", l)
            .bind(
              "click dblclick",
              this.bind(function (a) {
                this.enabled &&
                  (e(a.target)
                    .closest(".select2-search-choice")
                    .fadeOut(
                      "fast",
                      this.bind(function () {
                        this.unselect(e(a.target));
                        this.selection
                          .find(".select2-search-choice-focus")
                          .removeClass("select2-search-choice-focus");
                        this.close();
                        this.focusSearch();
                      })
                    )
                    .dequeue(),
                  l(a));
              })
            )
            .bind(
              "focus",
              this.bind(function () {
                this.enabled &&
                  (this.container.addClass("select2-container-active"),
                  this.dropdown.addClass("select2-drop-active"));
              })
            );
          b.data("select2-data", a);
          b.insertBefore(this.searchContainer);
          d.push(c);
          this.setVal(d);
        },
        unselect: function (a) {
          var b = this.getVal(),
            c,
            d,
            a = a.closest(".select2-search-choice");
          if (0 === a.length)
            throw "Invalid argument: " + a + ". Must be .select2-search-choice";
          c = a.data("select2-data");
          d = i(this.id(c), b);
          0 <= d &&
            (b.splice(d, 1),
            this.setVal(b),
            this.select && this.postprocessResults());
          a.remove();
          this.triggerChange({ removed: c });
        },
        postprocessResults: function () {
          var a = this.getVal(),
            b = this.results.find(".select2-result-selectable"),
            c = this.results.find(".select2-result-with-children"),
            d = this;
          b.each2(function (b, c) {
            var e = d.id(c.data("select2-data"));
            0 <= i(e, a)
              ? c
                  .addClass("select2-disabled")
                  .removeClass("select2-result-selectable")
              : c
                  .removeClass("select2-disabled")
                  .addClass("select2-result-selectable");
          });
          c.each2(function (a, b) {
            0 == b.find(".select2-result-selectable").length
              ? b.addClass("select2-disabled")
              : b.removeClass("select2-disabled");
          });
          b.each2(function (a, b) {
            if (
              !b.hasClass("select2-disabled") &&
              b.hasClass("select2-result-selectable")
            )
              return d.highlight(0), !1;
          });
        },
        resizeSearch: function () {
          var a,
            b,
            c,
            d,
            f = this.search.outerWidth() - this.search.width();
          a = this.search;
          q ||
            ((c = a[0].currentStyle || window.getComputedStyle(a[0], null)),
            (q = e("<div></div>").css({
              position: "absolute",
              left: "-10000px",
              top: "-10000px",
              display: "none",
              fontSize: c.fontSize,
              fontFamily: c.fontFamily,
              fontStyle: c.fontStyle,
              fontWeight: c.fontWeight,
              letterSpacing: c.letterSpacing,
              textTransform: c.textTransform,
              whiteSpace: "nowrap",
            })),
            e("body").append(q));
          q.text(a.val());
          a = q.width() + 10;
          b = this.search.offset().left;
          c = this.selection.width();
          d = this.selection.offset().left;
          b = c - (b - d) - f;
          b < a && (b = c - f);
          40 > b && (b = c - f);
          this.search.width(b);
        },
        getVal: function () {
          var a;
          if (this.select) return (a = this.select.val()), null === a ? [] : a;
          a = this.opts.element.val();
          return s(a, this.opts.separator);
        },
        setVal: function (a) {
          var b;
          this.select
            ? this.select.val(a)
            : ((b = []),
              e(a).each(function () {
                0 > i(this, b) && b.push(this);
              }),
              this.opts.element.val(
                0 === b.length ? "" : b.join(this.opts.separator)
              ));
        },
        val: function () {
          var a,
            b = [],
            c = this;
          if (0 === arguments.length) return this.getVal();
          if ((a = arguments[0]))
            if ((this.setVal(a), this.select))
              this.select.find(":selected").each(function () {
                b.push({ id: e(this).attr("value"), text: e(this).text() });
              }),
                this.updateSelection(b);
            else {
              if (this.opts.initSelection === g)
                throw Error(
                  "val() cannot be called if initSelection() is not defined"
                );
              this.opts.initSelection(this.opts.element, function (a) {
                var b = e(a).map(c.id);
                c.setVal(b);
                c.updateSelection(a);
                c.clearSearch();
              });
            }
          else this.opts.element.val(""), this.updateSelection([]);
          this.clearSearch();
        },
        onSortStart: function () {
          if (this.select)
            throw Error(
              "Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead."
            );
          this.search.width(0);
          this.searchContainer.hide();
        },
        onSortEnd: function () {
          var a = [],
            b = this;
          this.searchContainer.show();
          this.searchContainer.appendTo(this.searchContainer.parent());
          this.resizeSearch();
          this.selection.find(".select2-search-choice").each(function () {
            a.push(b.opts.id(e(this).data("select2-data")));
          });
          this.setVal(a);
          this.triggerChange();
        },
        data: function (a) {
          var b = this,
            c;
          if (0 === arguments.length)
            return this.selection
              .find(".select2-search-choice")
              .map(function () {
                return e(this).data("select2-data");
              })
              .get();
          a || (a = []);
          c = e.map(a, function (a) {
            return b.opts.id(a);
          });
          this.setVal(c);
          this.updateSelection(a);
          this.clearSearch();
        },
      });
      e.fn.select2 = function () {
        var a = Array.prototype.slice.call(arguments, 0),
          b,
          c,
          d,
          f,
          h =
            "val destroy opened open close focus isFocused container onSortStart onSortEnd enable disable positionDropdown data".split(
              " "
            );
        this.each(function () {
          if (0 === a.length || "object" === typeof a[0])
            (b = 0 === a.length ? {} : e.extend({}, a[0])),
              (b.element = e(this)),
              "select" === b.element.get(0).tagName.toLowerCase()
                ? (f = b.element.attr("multiple"))
                : ((f = b.multiple || !1), "tags" in b && (b.multiple = f = !0)),
              (c = f ? new z() : new y()),
              c.init(b);
          else if ("string" === typeof a[0]) {
            if (0 > i(a[0], h)) throw "Unknown method: " + a[0];
            d = g;
            c = e(this).data("select2");
            if (
              c !== g &&
              ((d =
                "container" === a[0]
                  ? c.container
                  : c[a[0]].apply(c, a.slice(1))),
              d !== g)
            )
              return !1;
          } else throw "Invalid arguments to select2 plugin: " + a;
        });
        return d === g ? this : d;
      };
      e.fn.select2.defaults = {
        width: "copy",
        closeOnSelect: !0,
        openOnEnter: !0,
        containerCss: {},
        dropdownCss: {},
        containerCssClass: "",
        dropdownCssClass: "",
        formatResult: function (a, b, c) {
          b = [];
          B(a.text, c.term, b);
          return b.join("");
        },
        formatSelection: function (a) {
          return a ? a.text : g;
        },
        formatResultCssClass: function () {
          return g;
        },
        formatNoMatches: function () {
          return "No matches found";
        },
        formatInputTooShort: function (a, b) {
          return "Please enter " + (b - a.length) + " more characters";
        },
        formatSelectionTooBig: function (a) {
          return "You can only select " + a + " item" + (1 == a ? "" : "s");
        },
        formatLoadMore: function () {
          return "Loading more results...";
        },
        formatSearching: function () {
          return "Searching...";
        },
        minimumResultsForSearch: 0,
        minimumInputLength: 0,
        maximumSelectionSize: 0,
        id: function (a) {
          return a.id;
        },
        matcher: function (a, b) {
          return 0 <= b.toUpperCase().indexOf(a.toUpperCase());
        },
        separator: ",",
        tokenSeparators: [],
        tokenizer: H,
        escapeMarkup: function (a) {
          return a && "string" === typeof a ? a.replace(/&/g, "&amp;") : a;
        },
        blurOnChange: !1,
      };
      window.Select2 = {
        query: { ajax: C, local: D, tags: E },
        util: { debounce: A, markMatch: B },
        class: { abstract: w, single: y, multi: z },
      };
    }
  })(jQuery);
  