2025-02-08 13:13:57
var requirejs,
require,
define;
!function (global, setTimeout) {
  function commentReplace(a, b) {
    return b || ''
  }
  function isFunction(a) {
    return '[object Function]' === ostring.call(a)
  }
  function isArray(a) {
    return '[object Array]' === ostring.call(a)
  }
  function each(a, b) {
    if (a) {
      var c;
      for (c = 0; c < a.length && (!a[c] || !b(a[c], c, a)); c += 1);
    }
  }
  function eachReverse(a, b) {
    if (a) {
      var c;
      for (c = a.length - 1; c > - 1 && (!a[c] || !b(a[c], c, a)); c -= 1);
    }
  }
  function hasProp(a, b) {
    return hasOwn.call(a, b)
  }
  function getOwn(a, b) {
    return hasProp(a, b) && a[b]
  }
  function eachProp(a, b) {
    var c;
    for (c in a) if (hasProp(a, c) && b(a[c], c)) break
  }
  function mixin(a, b, c, d) {
    return b && eachProp(b, function (b, e) {
      !c && hasProp(a, e) || (!d || 'object' != typeof b || !b || isArray(b) || isFunction(b) || b instanceof RegExp ? a[e] = b : (a[e] || (a[e] = {
      }), mixin(a[e], b, c, d)))
    }),
    a
  }
  function bind(a, b) {
    return function () {
      return b.apply(a, arguments)
    }
  }
  function scripts() {
    return document.getElementsByTagName('script')
  }
  function defaultOnError(a) {
    throw a
  }
  function getGlobal(a) {
    if (!a) return a;
    var b = global;
    return each(a.split('.'), function (a) {
      b = b[a]
    }),
    b
  }
  function makeError(a, b, c, d) {
    var e = new Error(b + '\nhttp://requirejs.org/docs/errors.html#' + a);
    return e.requireType = a,
    e.requireModules = d,
    c && (e.originalError = c),
    e
  }
  function newContext(a) {
    function b(a) {
      var b,
      c;
      for (b = 0; b < a.length; b++) if (c = a[b], '.' === c) a.splice(b, 1),
      b -= 1;
       else if ('..' === c) {
        if (0 === b || 1 === b && '..' === a[2] || '..' === a[b - 1]) continue;
        b > 0 && (a.splice(b - 1, 2), b -= 2)
      }
    }
    function c(a, c, d) {
      var e,
      f,
      g,
      h,
      i,
      j,
      k,
      l,
      m,
      n,
      o,
      p,
      q = c && c.split('/'),
      r = x.map,
      s = r && r['*'];
      if (a && (a = a.split('/'), k = a.length - 1, x.nodeIdCompat && jsSuffixRegExp.test(a[k]) && (a[k] = a[k].replace(jsSuffixRegExp, '')), '.' === a[0].charAt(0) && q && (p = q.slice(0, q.length - 1), a = p.concat(a)), b(a), a = a.join('/')), d && r && (q || s)) {
        g = a.split('/');
        a: for (h = g.length; h > 0; h -= 1) {
          if (j = g.slice(0, h).join('/'), q) for (i = q.length; i > 0; i -= 1) if (f = getOwn(r, q.slice(0, i).join('/')), f && (f = getOwn(f, j))) {
            l = f,
            m = h;
            break a
          }
          !n && s && getOwn(s, j) && (n = getOwn(s, j), o = h)
        }
        !l && n && (l = n, m = o),
        l && (g.splice(0, m, l), a = g.join('/'))
      }
      return e = getOwn(x.pkgs, a),
      e ? e : a
    }
    function d(a) {
      isBrowser && each(scripts(), function (b) {
        if (b.getAttribute('data-requiremodule') === a && b.getAttribute('data-requirecontext') === u.contextName) return b.parentNode.removeChild(b),
        !0
      })
    }
    function e(a) {
      var b = getOwn(x.paths, a);
      if (b && isArray(b) && b.length > 1) return b.shift(),
      u.require.undef(a),
      u.makeRequire(null, {
        skipMap: !0
      }) ([a]),
      !0
    }
    function f(a) {
      var b,
      c = a ? a.indexOf('!') : - 1;
      return c > - 1 && (b = a.substring(0, c), a = a.substring(c + 1, a.length)),
      [
        b,
        a
      ]
    }
    function g(a, b, d, e) {
      var g,
      h,
      i,
      j,
      k = null,
      l = b ? b.name : null,
      m = a,
      n = !0,
      o = '';
      return a || (n = !1, a = '_@r' + (F += 1)),
      j = f(a),
      k = j[0],
      a = j[1],
      k && (k = c(k, l, e), h = getOwn(C, k)),
      a && (k ? o = d ? a : h && h.normalize ? h.normalize(a, function (a) {
        return c(a, l, e)
      }) : a.indexOf('!') === - 1 ? c(a, l, e) : a : (o = c(a, l, e), j = f(o), k = j[0], o = j[1], d = !0, g = u.nameToUrl(o))),
      i = !k || h || d ? '' : '_unnormalized' + (G += 1),
      {
        prefix: k,
        name: o,
        parentMap: b,
        unnormalized: !!i,
        url: g,
        originalName: m,
        isDefine: n,
        id: (k ? k + '!' + o : o) + i
      }
    }
    function h(a) {
      var b = a.id,
      c = getOwn(y, b);
      return c || (c = y[b] = new u.Module(a)),
      c
    }
    function i(a, b, c) {
      var d = a.id,
      e = getOwn(y, d);
      !hasProp(C, d) || e && !e.defineEmitComplete ? (e = h(a), e.error && 'error' === b ? c(e.error) : e.on(b, c)) : 'defined' === b && c(C[d])
    }
    function j(a, b) {
      var c = a.requireModules,
      d = !1;
      b ? b(a) : (each(c, function (b) {
        var c = getOwn(y, b);
        c && (c.error = a, c.events.error && (d = !0, c.emit('error', a)))
      }), d || req.onError(a))
    }
    function k() {
      globalDefQueue.length && (each(globalDefQueue, function (a) {
        var b = a[0];
        'string' == typeof b && (u.defQueueMap[b] = !0),
        B.push(a)
      }), globalDefQueue = [
      ])
    }
    function l(a) {
      delete y[a],
      delete z[a]
    }
    function m(a, b, c) {
      var d = a.map.id;
      a.error ? a.emit('error', a.error) : (b[d] = !0, each(a.depMaps, function (d, e) {
        var f = d.id,
        g = getOwn(y, f);
        !g || a.depMatched[e] || c[f] || (getOwn(b, f) ? (a.defineDep(e, C[f]), a.check()) : m(g, b, c))
      }), c[d] = !0)
    }
    function n() {
      var a,
      b,
      c = 1000 * x.waitSeconds,
      f = c && u.startTime + c < (new Date).getTime(),
      g = [
      ],
      h = [
      ],
      i = !1,
      k = !0;
      if (!s) {
        if (s = !0, eachProp(z, function (a) {
          var c = a.map,
          j = c.id;
          if (a.enabled && (c.isDefine || h.push(a), !a.error)) if (!a.inited && f) e(j) ? (b = !0, i = !0) : (g.push(j), d(j));
           else if (!a.inited && a.fetched && c.isDefine && (i = !0, !c.prefix)) return k = !1
        }), f && g.length) return a = makeError('timeout', 'Load timeout for modules: ' + g, null, g),
        a.contextName = u.contextName,
        j(a);
        k && each(h, function (a) {
          m(a, {
          }, {
          })
        }),
        f && !b || !i || !isBrowser && !isWebWorker || w || (w = setTimeout(function () {
          w = 0,
          n()
        }, 50)),
        s = !1
      }
    }
    function o(a) {
      hasProp(C, a[0]) || h(g(a[0], null, !0)).init(a[1], a[2])
    }
    function p(a, b, c, d) {
      a.detachEvent && !isOpera ? d && a.detachEvent(d, b) : a.removeEventListener(c, b, !1)
    }
    function q(a) {
      var b = a.currentTarget || a.srcElement;
      return p(b, u.onScriptLoad, 'load', 'onreadystatechange'),
      p(b, u.onScriptError, 'error'),
      {
        node: b,
        id: b && b.getAttribute('data-requiremodule')
      }
    }
    function r() {
      var a;
      for (k(); B.length; ) {
        if (a = B.shift(), null === a[0]) return j(makeError('mismatch', 'Mismatched anonymous define() module: ' + a[a.length - 1]));
        o(a)
      }
      u.defQueueMap = {
      }
    }
    var s,
    t,
    u,
    v,
    w,
    x = {
      waitSeconds: 7,
      baseUrl: './',
      paths: {
      },
      bundles: {
      },
      pkgs: {
      },
      shim: {
      },
      config: {
      }
    },
    y = {
    },
    z = {
    },
    A = {
    },
    B = [
    ],
    C = {
    },
    D = {
    },
    E = {
    },
    F = 1,
    G = 1;
    return v = {
      require: function (a) {
        return a.require ? a.require : a.require = u.makeRequire(a.map)
      },
      exports: function (a) {
        if (a.usingExports = !0, a.map.isDefine) return a.exports ? C[a.map.id] = a.exports : a.exports = C[a.map.id] = {
        }
      },
      module: function (a) {
        return a.module ? a.module : a.module = {
          id: a.map.id,
          uri: a.map.url,
          config: function () {
            return getOwn(x.config, a.map.id) || {
            }
          },
          exports: a.exports || (a.exports = {
          })
        }
      }
    },
    t = function (a) {
      this.events = getOwn(A, a.id) || {
      },
      this.map = a,
      this.shim = getOwn(x.shim, a.id),
      this.depExports = [
      ],
      this.depMaps = [
      ],
      this.depMatched = [
      ],
      this.pluginMaps = {
      },
      this.depCount = 0
    },
    t.prototype = {
      init: function (a, b, c, d) {
        d = d || {
        },
        this.inited || (this.factory = b, c ? this.on('error', c) : this.events.error && (c = bind(this, function (a) {
          this.emit('error', a)
        })), this.depMaps = a && a.slice(0), this.errback = c, this.inited = !0, this.ignore = d.ignore, d.enabled || this.enabled ? this.enable() : this.check())
      },
      defineDep: function (a, b) {
        this.depMatched[a] || (this.depMatched[a] = !0, this.depCount -= 1, this.depExports[a] = b)
      },
      fetch: function () {
        if (!this.fetched) {
          this.fetched = !0,
          u.startTime = (new Date).getTime();
          var a = this.map;
          return this.shim ? void u.makeRequire(this.map, {
            enableBuildCallback: !0
          }) (this.shim.deps || [
          ], bind(this, function () {
            return a.prefix ? this.callPlugin() : this.load()
          })) : a.prefix ? this.callPlugin() : this.load()
        }
      },
      load: function () {
        var a = this.map.url;
        D[a] || (D[a] = !0, u.load(this.map.id, a))
      },
      check: function () {
        if (this.enabled && !this.enabling) {
          var a,
          b,
          c = this.map.id,
          d = this.depExports,
          e = this.exports,
          f = this.factory;
          if (this.inited) {
            if (this.error) this.emit('error', this.error);
             else if (!this.defining) {
              if (this.defining = !0, this.depCount < 1 && !this.defined) {
                if (isFunction(f)) {
                  if (this.events.error && this.map.isDefine || req.onError !== defaultOnError) try {
                    e = u.execCb(c, f, d, e)
                  } catch (g) {
                    a = g
                  } else e = u.execCb(c, f, d, e);
                  if (this.map.isDefine && void 0 === e && (b = this.module, b ? e = b.exports : this.usingExports && (e = this.exports)), a) return a.requireMap = this.map,
                  a.requireModules = this.map.isDefine ? [
                    this.map.id
                  ] : null,
                  a.requireType = this.map.isDefine ? 'define' : 'require',
                  j(this.error = a)
                } else e = f;
                if (this.exports = e, this.map.isDefine && !this.ignore && (C[c] = e, req.onResourceLoad)) {
                  var h = [
                  ];
                  each(this.depMaps, function (a) {
                    h.push(a.normalizedMap || a)
                  }),
                  req.onResourceLoad(u, this.map, h)
                }
                l(c),
                this.defined = !0
              }
              this.defining = !1,
              this.defined && !this.defineEmitted && (this.defineEmitted = !0, this.emit('defined', this.exports), this.defineEmitComplete = !0)
            }
          } else hasProp(u.defQueueMap, c) || this.fetch()
        }
      },
      callPlugin: function () {
        var a = this.map,
        b = a.id,
        d = g(a.prefix);
        this.depMaps.push(d),
        i(d, 'defined', bind(this, function (d) {
          var e,
          f,
          k,
          m = getOwn(E, this.map.id),
          n = this.map.name,
          o = this.map.parentMap ? this.map.parentMap.name : null,
          p = u.makeRequire(a.parentMap, {
            enableBuildCallback: !0
          });
          return this.map.unnormalized ? (d.normalize && (n = d.normalize(n, function (a) {
            return c(a, o, !0)
          }) || ''), f = g(a.prefix + '!' + n, this.map.parentMap, !0), i(f, 'defined', bind(this, function (a) {
            this.map.normalizedMap = f,
            this.init([], function () {
              return a
            }, null, {
              enabled: !0,
              ignore: !0
            })
          })), k = getOwn(y, f.id), void (k && (this.depMaps.push(f), this.events.error && k.on('error', bind(this, function (a) {
            this.emit('error', a)
          })), k.enable()))) : m ? (this.map.url = u.nameToUrl(m), void this.load()) : (e = bind(this, function (a) {
            this.init([], function () {
              return a
            }, null, {
              enabled: !0
            })
          }), e.error = bind(this, function (a) {
            this.inited = !0,
            this.error = a,
            a.requireModules = [
              b
            ],
            eachProp(y, function (a) {
              0 === a.map.id.indexOf(b + '_unnormalized') && l(a.map.id)
            }),
            j(a)
          }), e.fromText = bind(this, function (c, d) {
            var f = a.name,
            i = g(f),
            k = useInteractive;
            d && (c = d),
            k && (useInteractive = !1),
            h(i),
            hasProp(x.config, b) && (x.config[f] = x.config[b]);
            try {
              req.exec(c)
            } catch (l) {
              return j(makeError('fromtexteval', 'fromText eval for ' + b + ' failed: ' + l, l, [
                b
              ]))
            }
            k && (useInteractive = !0),
            this.depMaps.push(i),
            u.completeLoad(f),
            p([f], e)
          }), void d.load(a.name, p, e, x))
        })),
        u.enable(d, this),
        this.pluginMaps[d.id] = d
      },
      enable: function () {
        z[this.map.id] = this,
        this.enabled = !0,
        this.enabling = !0,
        each(this.depMaps, bind(this, function (a, b) {
          var c,
          d,
          e;
          if ('string' == typeof a) {
            if (a = g(a, this.map.isDefine ? this.map : this.map.parentMap, !1, !this.skipMap), this.depMaps[b] = a, e = getOwn(v, a.id)) return void (this.depExports[b] = e(this));
            this.depCount += 1,
            i(a, 'defined', bind(this, function (a) {
              this.undefed || (this.defineDep(b, a), this.check())
            })),
            this.errback ? i(a, 'error', bind(this, this.errback)) : this.events.error && i(a, 'error', bind(this, function (a) {
              this.emit('error', a)
            }))
          }
          c = a.id,
          d = y[c],
          hasProp(v, c) || !d || d.enabled || u.enable(a, this)
        })),
        eachProp(this.pluginMaps, bind(this, function (a) {
          var b = getOwn(y, a.id);
          b && !b.enabled && u.enable(a, this)
        })),
        this.enabling = !1,
        this.check()
      },
      on: function (a, b) {
        var c = this.events[a];
        c || (c = this.events[a] = [
        ]),
        c.push(b)
      },
      emit: function (a, b) {
        each(this.events[a], function (a) {
          a(b)
        }),
        'error' === a && delete this.events[a]
      }
    },
    u = {
      config: x,
      contextName: a,
      registry: y,
      defined: C,
      urlFetched: D,
      defQueue: B,
      defQueueMap: {
      },
      Module: t,
      makeModuleMap: g,
      nextTick: req.nextTick,
      onError: j,
      configure: function (a) {
        if (a.baseUrl && '/' !== a.baseUrl.charAt(a.baseUrl.length - 1) && (a.baseUrl += '/'), 'string' == typeof a.urlArgs) {
          var b = a.urlArgs;
          a.urlArgs = function (a, c) {
            return (c.indexOf('?') === - 1 ? '?' : '&') + b
          }
        }
        var c = x.shim,
        d = {
          paths: !0,
          bundles: !0,
          config: !0,
          map: !0
        };
        eachProp(a, function (a, b) {
          d[b] ? (x[b] || (x[b] = {
          }), mixin(x[b], a, !0, !0)) : x[b] = a
        }),
        a.bundles && eachProp(a.bundles, function (a, b) {
          each(a, function (a) {
            a !== b && (E[a] = b)
          })
        }),
        a.shim && (eachProp(a.shim, function (a, b) {
          isArray(a) && (a = {
            deps: a
          }),
          !a.exports && !a.init || a.exportsFn || (a.exportsFn = u.makeShimExports(a)),
          c[b] = a
        }), x.shim = c),
        a.packages && each(a.packages, function (a) {
          var b,
          c;
          a = 'string' == typeof a ? {
            name: a
          }
           : a,
          c = a.name,
          b = a.location,
          b && (x.paths[c] = a.location),
          x.pkgs[c] = a.name + '/' + (a.main || 'main').replace(currDirRegExp, '').replace(jsSuffixRegExp, '')
        }),
        eachProp(y, function (a, b) {
          a.inited || a.map.unnormalized || (a.map = g(b, null, !0))
        }),
        (a.deps || a.callback) && u.require(a.deps || [
        ], a.callback)
      },
      makeShimExports: function (a) {
        function b() {
          var b;
          return a.init && (b = a.init.apply(global, arguments)),
          b || a.exports && getGlobal(a.exports)
        }
        return b
      },
      makeRequire: function (b, e) {
        function f(c, d, i) {
          var k,
          l,
          m;
          return e.enableBuildCallback && d && isFunction(d) && (d.__requireJsBuild = !0),
          'string' == typeof c ? isFunction(d) ? j(makeError('requireargs', 'Invalid require call'), i) : b && hasProp(v, c) ? v[c](y[b.id]) : req.get ? req.get(u, c, b, f) : (l = g(c, b, !1, !0), k = l.id, hasProp(C, k) ? C[k] : j(makeError('notloaded', 'Module name "' + k + '" has not been loaded yet for context: ' + a + (b ? '' : '. Use require([])')))) : (r(), u.nextTick(function () {
            r(),
            m = h(g(null, b)),
            m.skipMap = e.skipMap,
            m.init(c, d, i, {
              enabled: !0
            }),
            n()
          }), f)
        }
        return e = e || {
        },
        mixin(f, {
          isBrowser: isBrowser,
          toUrl: function (a) {
            var d,
            e = a.lastIndexOf('.'),
            f = a.split('/') [0],
            g = '.' === f || '..' === f;
            return e !== - 1 && (!g || e > 1) && (d = a.substring(e, a.length), a = a.substring(0, e)),
            u.nameToUrl(c(a, b && b.id, !0), d, !0)
          },
          defined: function (a) {
            return hasProp(C, g(a, b, !1, !0).id)
          },
          specified: function (a) {
            return a = g(a, b, !1, !0).id,
            hasProp(C, a) || hasProp(y, a)
          }
        }),
        b || (f.undef = function (a) {
          k();
          var c = g(a, b, !0),
          e = getOwn(y, a);
          e.undefed = !0,
          d(a),
          delete C[a],
          delete D[c.url],
          delete A[a],
          eachReverse(B, function (b, c) {
            b[0] === a && B.splice(c, 1)
          }),
          delete u.defQueueMap[a],
          e && (e.events.defined && (A[a] = e.events), l(a))
        }),
        f
      },
      enable: function (a) {
        var b = getOwn(y, a.id);
        b && h(a).enable()
      },
      completeLoad: function (a) {
        var b,
        c,
        d,
        f = getOwn(x.shim, a) || {
        },
        g = f.exports;
        for (k(); B.length; ) {
          if (c = B.shift(), null === c[0]) {
            if (c[0] = a, b) break;
            b = !0
          } else c[0] === a && (b = !0);
          o(c)
        }
        if (u.defQueueMap = {
        }, d = getOwn(y, a), !b && !hasProp(C, a) && d && !d.inited) {
          if (!(!x.enforceDefine || g && getGlobal(g))) return e(a) ? void 0 : j(makeError('nodefine', 'No define call for ' + a, null, [
            a
          ]));
          o([a,
          f.deps || [
          ],
          f.exportsFn])
        }
        n()
      },
      nameToUrl: function (a, b, c) {
        var d,
        e,
        f,
        g,
        h,
        i,
        j,
        k = getOwn(x.pkgs, a);
        if (k && (a = k), j = getOwn(E, a)) return u.nameToUrl(j, b, c);
        if (req.jsExtRegExp.test(a)) h = a + (b || '');
         else {
          for (d = x.paths, e = a.split('/'), f = e.length; f > 0; f -= 1) if (g = e.slice(0, f).join('/'), i = getOwn(d, g)) {
            isArray(i) && (i = i[0]),
            e.splice(0, f, i);
            break
          }
          h = e.join('/'),
          h += b || (/^data\:|^blob\:|\?/.test(h) || c ? '' : '.js'),
          h = ('/' === h.charAt(0) || h.match(/^[\w\+\.\-]+:/) ? '' : x.baseUrl) + h
        }
        return x.urlArgs && !/^blob\:/.test(h) ? h + x.urlArgs(a, h) : h
      },
      load: function (a, b) {
        req.load(u, a, b)
      },
      execCb: function (a, b, c, d) {
        return b.apply(d, c)
      },
      onScriptLoad: function (a) {
        if ('load' === a.type || readyRegExp.test((a.currentTarget || a.srcElement).readyState)) {
          interactiveScript = null;
          var b = q(a);
          u.completeLoad(b.id)
        }
      },
      onScriptError: function (a) {
        var b = q(a);
        if (!e(b.id)) {
          var c = [
          ];
          return eachProp(y, function (a, d) {
            0 !== d.indexOf('_@r') && each(a.depMaps, function (a) {
              if (a.id === b.id) return c.push(d),
              !0
            })
          }),
          j(makeError('scripterror', 'Script error for "' + b.id + (c.length ? '", needed by: ' + c.join(', ') : '"'), a, [
            b.id
          ]))
        }
      }
    },
    u.require = u.makeRequire(),
    u
  }
  function getInteractiveScript() {
    return interactiveScript && 'interactive' === interactiveScript.readyState ? interactiveScript : (eachReverse(scripts(), function (a) {
      if ('interactive' === a.readyState) return interactiveScript = a
    }), interactiveScript)
  }
  var req,
  s,
  head,
  baseElement,
  dataMain,
  src,
  interactiveScript,
  currentlyAddingScript,
  mainScript,
  subPath,
  version = '2.3.3',
  commentRegExp = /\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/gm,
  cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
  jsSuffixRegExp = /\.js$/,
  currDirRegExp = /^\.\//,
  op = Object.prototype,
  ostring = op.toString,
  hasOwn = op.hasOwnProperty,
  isBrowser = !('undefined' == typeof window || 'undefined' == typeof navigator || !window.document),
  isWebWorker = !isBrowser && 'undefined' != typeof importScripts,
  readyRegExp = isBrowser && 'PLAYSTATION 3' === navigator.platform ? /^complete$/ : /^(complete|loaded)$/,
  defContextName = '_',
  isOpera = 'undefined' != typeof opera && '[object Opera]' === opera.toString(),
  contexts = {
  },
  cfg = {
  },
  globalDefQueue = [
  ],
  useInteractive = !1;
  if ('undefined' == typeof define) {
    if ('undefined' != typeof requirejs) {
      if (isFunction(requirejs)) return;
      cfg = requirejs,
      requirejs = void 0
    }
    'undefined' == typeof require || isFunction(require) || (cfg = require, require = void 0),
    req = requirejs = function (a, b, c, d) {
      var e,
      f,
      g = defContextName;
      return isArray(a) || 'string' == typeof a || (f = a, isArray(b) ? (a = b, b = c, c = d) : a = [
      ]),
      f && f.context && (g = f.context),
      e = getOwn(contexts, g),
      e || (e = contexts[g] = req.s.newContext(g)),
      f && e.configure(f),
      e.require(a, b, c)
    },
    req.config = function (a) {
      return req(a)
    },
    req.nextTick = 'undefined' != typeof setTimeout ? function (a) {
      setTimeout(a, 4)
    }
     : function (a) {
      a()
    },
    require || (require = req),
    req.version = version,
    req.jsExtRegExp = /^\/|:|\?|\.js$/,
    req.isBrowser = isBrowser,
    s = req.s = {
      contexts: contexts,
      newContext: newContext
    },
    req({
    }),
    each(['toUrl',
    'undef',
    'defined',
    'specified'], function (a) {
      req[a] = function () {
        var b = contexts[defContextName];
        return b.require[a].apply(b, arguments)
      }
    }),
    isBrowser && (head = s.head = document.getElementsByTagName('head') [0], baseElement = document.getElementsByTagName('base') [0], baseElement && (head = s.head = baseElement.parentNode)),
    req.onError = defaultOnError,
    req.createNode = function (a, b, c) {
      var d = a.xhtml ? document.createElementNS('http://www.w3.org/1999/xhtml', 'html:script') : document.createElement('script');
      return d.type = a.scriptType || 'text/javascript',
      d.charset = 'utf-8',
      d.async = !0,
      d
    },
    req.load = function (a, b, c) {
      var d,
      e = a && a.config || {
      };
      if (isBrowser) return d = req.createNode(e, b, c),
      d.setAttribute('data-requirecontext', a.contextName),
      d.setAttribute('data-requiremodule', b),
      !d.attachEvent || d.attachEvent.toString && d.attachEvent.toString().indexOf('[native code') < 0 || isOpera ? (d.addEventListener('load', a.onScriptLoad, !1), d.addEventListener('error', a.onScriptError, !1)) : (useInteractive = !0, d.attachEvent('onreadystatechange', a.onScriptLoad)),
      d.src = c,
      e.onNodeCreated && e.onNodeCreated(d, e, b, c),
      currentlyAddingScript = d,
      baseElement ? head.insertBefore(d, baseElement) : head.appendChild(d),
      currentlyAddingScript = null,
      d;
      if (isWebWorker) try {
        setTimeout(function () {
        }, 0),
        importScripts(c),
        a.completeLoad(b)
      } catch (f) {
        a.onError(makeError('importscripts', 'importScripts failed for ' + b + ' at ' + c, f, [
          b
        ]))
      }
    },
    isBrowser && !cfg.skipDataMain && eachReverse(scripts(), function (a) {
      if (head || (head = a.parentNode), dataMain = a.getAttribute('data-main')) return mainScript = dataMain,
      cfg.baseUrl || mainScript.indexOf('!') !== - 1 || (src = mainScript.split('/'), mainScript = src.pop(), subPath = src.length ? src.join('/') + '/' : './', cfg.baseUrl = subPath),
      mainScript = mainScript.replace(jsSuffixRegExp, ''),
      req.jsExtRegExp.test(mainScript) && (mainScript = dataMain),
      cfg.deps = cfg.deps ? cfg.deps.concat(mainScript) : [
        mainScript
      ],
      !0
    }),
    define = function (a, b, c) {
      var d,
      e;
      'string' != typeof a && (c = b, b = a, a = null),
      isArray(b) || (c = b, b = null),
      !b && isFunction(c) && (b = [
      ], c.length && (c.toString().replace(commentRegExp, commentReplace).replace(cjsRequireRegExp, function (a, c) {
        b.push(c)
      }), b = (1 === c.length ? [
        'require'
      ] : [
        'require',
        'exports',
        'module'
      ]).concat(b))),
      useInteractive && (d = currentlyAddingScript || getInteractiveScript(), d && (a || (a = d.getAttribute('data-requiremodule')), e = contexts[d.getAttribute('data-requirecontext')])),
      e ? (e.defQueue.push([a,
      b,
      c]), e.defQueueMap[a] = !0) : globalDefQueue.push([a,
      b,
      c])
    },
    define.amd = {
      jQuery: !0
    },
    req.exec = function (text) {
      return eval(text)
    },
    req(cfg)
  }
}(this, 'undefined' == typeof setTimeout ? void 0 : setTimeout),
define('../../../node_modules/requirejs/require', function () {
}),
function (a, b, c) {
  b[a] = b[a] || c(),
  'undefined' != typeof module && module.exports ? module.exports = b[a] : 'function' == typeof define && define.amd && define('native-promise-only', [
  ], function () {
    return b[a]
  })
}('Promise', 'undefined' != typeof global ? global : this, function () {
  'use strict';
  function a(a, b) {
    m.add(a, b),
    l || (l = o(m.drain))
  }
  function b(a) {
    var b,
    c = typeof a;
    return null == a || 'object' != c && 'function' != c || (b = a.then),
    'function' == typeof b && b
  }
  function c() {
    for (var a = 0; a < this.chain.length; a++) d(this, 1 === this.state ? this.chain[a].success : this.chain[a].failure, this.chain[a]);
    this.chain.length = 0
  }
  function d(a, c, d) {
    var e,
    f;
    try {
      c === !1 ? d.reject(a.msg) : (e = c === !0 ? a.msg : c.call(void 0, a.msg), e === d.promise ? d.reject(TypeError('Promise-chain cycle')) : (f = b(e)) ? f.call(e, d.resolve, d.reject) : d.resolve(e))
    } catch (g) {
      d.reject(g)
    }
  }
  function e(d) {
    var g,
    i = this;
    if (!i.triggered) {
      i.triggered = !0,
      i.def && (i = i.def);
      try {
        (g = b(d)) ? a(function () {
          var a = new h(i);
          try {
            g.call(d, function () {
              e.apply(a, arguments)
            }, function () {
              f.apply(a, arguments)
            })
          } catch (b) {
            f.call(a, b)
          }
        }) : (i.msg = d, i.state = 1, i.chain.length > 0 && a(c, i))
      } catch (j) {
        f.call(new h(i), j)
      }
    }
  }
  function f(b) {
    var d = this;
    d.triggered || (d.triggered = !0, d.def && (d = d.def), d.msg = b, d.state = 2, d.chain.length > 0 && a(c, d))
  }
  function g(a, b, c, d) {
    for (var e = 0; e < b.length; e++) !function (e) {
      a.resolve(b[e]).then(function (a) {
        c(e, a)
      }, d)
    }(e)
  }
  function h(a) {
    this.def = a,
    this.triggered = !1
  }
  function i(a) {
    this.promise = a,
    this.state = 0,
    this.triggered = !1,
    this.chain = [
    ],
    this.msg = void 0
  }
  function j(b) {
    if ('function' != typeof b) throw TypeError('Not a function');
    if (0 !== this.__NPO__) throw TypeError('Not a promise');
    this.__NPO__ = 1;
    var d = new i(this);
    this.then = function (b, e) {
      var f = {
        success: 'function' != typeof b || b,
        failure: 'function' == typeof e && e
      };
      return f.promise = new this.constructor(function (a, b) {
        if ('function' != typeof a || 'function' != typeof b) throw TypeError('Not a function');
        f.resolve = a,
        f.reject = b
      }),
      d.chain.push(f),
      0 !== d.state && a(c, d),
      f.promise
    },
    this['catch'] = function (a) {
      return this.then(void 0, a)
    };
    try {
      b.call(void 0, function (a) {
        e.call(d, a)
      }, function (a) {
        f.call(d, a)
      })
    } catch (g) {
      f.call(d, g)
    }
  }
  var k,
  l,
  m,
  n = Object.prototype.toString,
  o = 'undefined' != typeof setImmediate ? function (a) {
    return setImmediate(a)
  }
   : setTimeout;
  try {
    Object.defineProperty({
    }, 'x', {
    }),
    k = function (a, b, c, d) {
      return Object.defineProperty(a, b, {
        value: c,
        writable: !0,
        configurable: d !== !1
      })
    }
  } catch (p) {
    k = function (a, b, c) {
      return a[b] = c,
      a
    }
  }
  m = function () {
    function a(a, b) {
      this.fn = a,
      this.self = b,
      this.next = void 0
    }
    var b,
    c,
    d;
    return {
      add: function (e, f) {
        d = new a(e, f),
        c ? c.next = d : b = d,
        c = d,
        d = void 0
      },
      drain: function () {
        var a = b;
        for (b = c = l = void 0; a; ) a.fn.call(a.self),
        a = a.next
      }
    }
  }();
  var q = k({
  }, 'constructor', j, !1);
  return j.prototype = q,
  k(q, '__NPO__', 0, !1),
  k(j, 'resolve', function (a) {
    var b = this;
    return a && 'object' == typeof a && 1 === a.__NPO__ ? a : new b(function (b, c) {
      if ('function' != typeof b || 'function' != typeof c) throw TypeError('Not a function');
      b(a)
    })
  }),
  k(j, 'reject', function (a) {
    return new this(function (b, c) {
      if ('function' != typeof b || 'function' != typeof c) throw TypeError('Not a function');
      c(a)
    })
  }),
  k(j, 'all', function (a) {
    var b = this;
    return '[object Array]' != n.call(a) ? b.reject(TypeError('Not an array')) : 0 === a.length ? b.resolve([]) : new b(function (c, d) {
      if ('function' != typeof c || 'function' != typeof d) throw TypeError('Not a function');
      var e = a.length,
      f = Array(e),
      h = 0;
      g(b, a, function (a, b) {
        f[a] = b,
        ++h === e && c(f)
      }, d)
    })
  }),
  k(j, 'race', function (a) {
    var b = this;
    return '[object Array]' != n.call(a) ? b.reject(TypeError('Not an array')) : new b(function (c, d) {
      if ('function' != typeof c || 'function' != typeof d) throw TypeError('Not a function');
      g(b, a, function (a, b) {
        c(b)
      }, d)
    })
  }),
  j
}),
function (a, b) {
  'object' == typeof module && 'object' == typeof module.exports ? module.exports = a.document ? b(a, !0) : function (a) {
    if (!a.document) throw new Error('jQuery requires a window with a document');
    return b(a)
  }
   : b(a)
}('undefined' != typeof window ? window : this, function (a, b) {
  function c(a) {
    var b = !!a && 'length' in a && a.length,
    c = fa.type(a);
    return 'function' !== c && !fa.isWindow(a) && ('array' === c || 0 === b || 'number' == typeof b && b > 0 && b - 1 in a)
  }
  function d(a, b, c) {
    if (fa.isFunction(b)) return fa.grep(a, function (a, d) {
      return !!b.call(a, d, a) !== c
    });
    if (b.nodeType) return fa.grep(a, function (a) {
      return a === b !== c
    });
    if ('string' == typeof b) {
      if (pa.test(b)) return fa.filter(b, a, c);
      b = fa.filter(b, a)
    }
    return fa.grep(a, function (a) {
      return _.call(b, a) > - 1 !== c
    })
  }
  function e(a, b) {
    for (; (a = a[b]) && 1 !== a.nodeType; );
    return a
  }
  function f(a) {
    var b = {
    };
    return fa.each(a.match(va) || [
    ], function (a, c) {
      b[c] = !0
    }),
    b
  }
  function g() {
    X.removeEventListener('DOMContentLoaded', g),
    a.removeEventListener('load', g),
    fa.ready()
  }
  function h() {
    this.expando = fa.expando + h.uid++
  }
  function i(a, b, c) {
    var d;
    if (void 0 === c && 1 === a.nodeType) if (d = 'data-' + b.replace(Ca, '-$&').toLowerCase(), c = a.getAttribute(d), 'string' == typeof c) {
      try {
        c = 'true' === c || 'false' !== c && ('null' === c ? null : + c + '' === c ? + c : Ba.test(c) ? fa.parseJSON(c) : c)
      } catch (e) {
      }
      Aa.set(a, b, c)
    } else c = void 0;
    return c
  }
  function j(a, b, c, d) {
    var e,
    f = 1,
    g = 20,
    h = d ? function () {
      return d.cur()
    }
     : function () {
      return fa.css(a, b, '')
    },
    i = h(),
    j = c && c[3] || (fa.cssNumber[b] ? '' : 'px'),
    k = (fa.cssNumber[b] || 'px' !== j && + i) && Ea.exec(fa.css(a, b));
    if (k && k[3] !== j) {
      j = j || k[3],
      c = c || [
      ],
      k = + i || 1;
      do f = f || '.5',
      k /= f,
      fa.style(a, b, k + j);
      while (f !== (f = h() / i) && 1 !== f && --g)
    }
    return c && (k = + k || + i || 0, e = c[1] ? k + (c[1] + 1) * c[2] : + c[2], d && (d.unit = j, d.start = k, d.end = e)),
    e
  }
  function k(a, b) {
    var c = 'undefined' != typeof a.getElementsByTagName ? a.getElementsByTagName(b || '*') : 'undefined' != typeof a.querySelectorAll ? a.querySelectorAll(b || '*') : [
    ];
    return void 0 === b || b && fa.nodeName(a, b) ? fa.merge([a], c) : c
  }
  function l(a, b) {
    for (var c = 0, d = a.length; c < d; c++) za.set(a[c], 'globalEval', !b || za.get(b[c], 'globalEval'))
  }
  function m(a, b, c, d, e) {
    for (var f, g, h, i, j, m, n = b.createDocumentFragment(), o = [
    ], p = 0, q = a.length; p < q; p++) if (f = a[p], f || 0 === f) if ('object' === fa.type(f)) fa.merge(o, f.nodeType ? [
      f
    ] : f);
     else if (La.test(f)) {
      for (g = g || n.appendChild(b.createElement('div')), h = (Ia.exec(f) || [
        '',
        ''
      ]) [1].toLowerCase(), i = Ka[h] || Ka._default, g.innerHTML = i[1] + fa.htmlPrefilter(f) + i[2], m = i[0]; m--; ) g = g.lastChild;
      fa.merge(o, g.childNodes),
      g = n.firstChild,
      g.textContent = ''
    } else o.push(b.createTextNode(f));
    for (n.textContent = '', p = 0; f = o[p++]; ) if (d && fa.inArray(f, d) > - 1) e && e.push(f);
     else if (j = fa.contains(f.ownerDocument, f), g = k(n.appendChild(f), 'script'), j && l(g), c) for (m = 0; f = g[m++]; ) Ja.test(f.type || '') && c.push(f);
    return n
  }
  function n() {
    return !0
  }
  function o() {
    return !1
  }
  function p() {
    try {
      return X.activeElement
    } catch (a) {
    }
  }
  function q(a, b, c, d, e, f) {
    var g,
    h;
    if ('object' == typeof b) {
      'string' != typeof c && (d = d || c, c = void 0);
      for (h in b) q(a, h, c, d, b[h], f);
      return a
    }
    if (null == d && null == e ? (e = c, d = c = void 0) : null == e && ('string' == typeof c ? (e = d, d = void 0) : (e = d, d = c, c = void 0)), e === !1) e = o;
     else if (!e) return a;
    return 1 === f && (g = e, e = function (a) {
      return fa().off(a),
      g.apply(this, arguments)
    }, e.guid = g.guid || (g.guid = fa.guid++)),
    a.each(function () {
      fa.event.add(this, b, e, d, c)
    })
  }
  function r(a, b) {
    return fa.nodeName(a, 'table') && fa.nodeName(11 !== b.nodeType ? b : b.firstChild, 'tr') ? a.getElementsByTagName('tbody') [0] || a.appendChild(a.ownerDocument.createElement('tbody')) : a
  }
  function s(a) {
    return a.type = (null !== a.getAttribute('type')) + '/' + a.type,
    a
  }
  function t(a) {
    var b = Sa.exec(a.type);
    return b ? a.type = b[1] : a.removeAttribute('type'),
    a
  }
  function u(a, b) {
    var c,
    d,
    e,
    f,
    g,
    h,
    i,
    j;
    if (1 === b.nodeType) {
      if (za.hasData(a) && (f = za.access(a), g = za.set(b, f), j = f.events)) {
        delete g.handle,
        g.events = {
        };
        for (e in j) for (c = 0, d = j[e].length; c < d; c++) fa.event.add(b, e, j[e][c])
      }
      Aa.hasData(a) && (h = Aa.access(a), i = fa.extend({
      }, h), Aa.set(b, i))
    }
  }
  function v(a, b) {
    var c = b.nodeName.toLowerCase();
    'input' === c && Ha.test(a.type) ? b.checked = a.checked : 'input' !== c && 'textarea' !== c || (b.defaultValue = a.defaultValue)
  }
  function w(a, b, c, d) {
    b = Z.apply([], b);
    var e,
    f,
    g,
    h,
    i,
    j,
    l = 0,
    n = a.length,
    o = n - 1,
    p = b[0],
    q = fa.isFunction(p);
    if (q || n > 1 && 'string' == typeof p && !da.checkClone && Ra.test(p)) return a.each(function (e) {
      var f = a.eq(e);
      q && (b[0] = p.call(this, e, f.html())),
      w(f, b, c, d)
    });
    if (n && (e = m(b, a[0].ownerDocument, !1, a, d), f = e.firstChild, 1 === e.childNodes.length && (e = f), f || d)) {
      for (g = fa.map(k(e, 'script'), s), h = g.length; l < n; l++) i = e,
      l !== o && (i = fa.clone(i, !0, !0), h && fa.merge(g, k(i, 'script'))),
      c.call(a[l], i, l);
      if (h) for (j = g[g.length - 1].ownerDocument, fa.map(g, t), l = 0; l < h; l++) i = g[l],
      Ja.test(i.type || '') && !za.access(i, 'globalEval') && fa.contains(j, i) && (i.src ? fa._evalUrl && fa._evalUrl(i.src) : fa.globalEval(i.textContent.replace(Ta, '')))
    }
    return a
  }
  function x(a, b, c) {
    for (var d, e = b ? fa.filter(b, a) : a, f = 0; null != (d = e[f]); f++) c || 1 !== d.nodeType || fa.cleanData(k(d)),
    d.parentNode && (c && fa.contains(d.ownerDocument, d) && l(k(d, 'script')), d.parentNode.removeChild(d));
    return a
  }
  function y(a, b) {
    var c = fa(b.createElement(a)).appendTo(b.body),
    d = fa.css(c[0], 'display');
    return c.detach(),
    d
  }
  function z(a) {
    var b = X,
    c = Va[a];
    return c || (c = y(a, b), 'none' !== c && c || (Ua = (Ua || fa('<iframe frameborder=\'0\' width=\'0\' height=\'0\'/>')).appendTo(b.documentElement), b = Ua[0].contentDocument, b.write(), b.close(), c = y(a, b), Ua.detach()), Va[a] = c),
    c
  }
  function A(a, b, c) {
    var d,
    e,
    f,
    g,
    h = a.style;
    return c = c || Ya(a),
    g = c ? c.getPropertyValue(b) || c[b] : void 0,
    '' !== g && void 0 !== g || fa.contains(a.ownerDocument, a) || (g = fa.style(a, b)),
    c && !da.pixelMarginRight() && Xa.test(g) && Wa.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f),
    void 0 !== g ? g + '' : g
  }
  function B(a, b) {
    return {
      get: function () {
        return a() ? void delete this.get : (this.get = b).apply(this, arguments)
      }
    }
  }
  function C(a) {
    if (a in db) return a;
    for (var b = a[0].toUpperCase() + a.slice(1), c = cb.length; c--; ) if (a = cb[c] + b, a in db) return a
  }
  function D(a, b, c) {
    var d = Ea.exec(b);
    return d ? Math.max(0, d[2] - (c || 0)) + (d[3] || 'px') : b
  }
  function E(a, b, c, d, e) {
    for (var f = c === (d ? 'border' : 'content') ? 4 : 'width' === b ? 1 : 0, g = 0; f < 4; f += 2) 'margin' === c && (g += fa.css(a, c + Fa[f], !0, e)),
    d ? ('content' === c && (g -= fa.css(a, 'padding' + Fa[f], !0, e)), 'margin' !== c && (g -= fa.css(a, 'border' + Fa[f] + 'Width', !0, e))) : (g += fa.css(a, 'padding' + Fa[f], !0, e), 'padding' !== c && (g += fa.css(a, 'border' + Fa[f] + 'Width', !0, e)));
    return g
  }
  function F(a, b, c) {
    var d = !0,
    e = 'width' === b ? a.offsetWidth : a.offsetHeight,
    f = Ya(a),
    g = 'border-box' === fa.css(a, 'boxSizing', !1, f);
    if (e <= 0 || null == e) {
      if (e = A(a, b, f), (e < 0 || null == e) && (e = a.style[b]), Xa.test(e)) return e;
      d = g && (da.boxSizingReliable() || e === a.style[b]),
      e = parseFloat(e) || 0
    }
    return e + E(a, b, c || (g ? 'border' : 'content'), d, f) + 'px'
  }
  function G(a, b) {
    for (var c, d, e, f = [
    ], g = 0, h = a.length; g < h; g++) d = a[g],
    d.style && (f[g] = za.get(d, 'olddisplay'), c = d.style.display, b ? (f[g] || 'none' !== c || (d.style.display = ''), '' === d.style.display && Ga(d) && (f[g] = za.access(d, 'olddisplay', z(d.nodeName)))) : (e = Ga(d), 'none' === c && e || za.set(d, 'olddisplay', e ? c : fa.css(d, 'display'))));
    for (g = 0; g < h; g++) d = a[g],
    d.style && (b && 'none' !== d.style.display && '' !== d.style.display || (d.style.display = b ? f[g] || '' : 'none'));
    return a
  }
  function H(a, b, c, d, e) {
    return new H.prototype.init(a, b, c, d, e)
  }
  function I() {
    return a.setTimeout(function () {
      eb = void 0
    }),
    eb = fa.now()
  }
  function J(a, b) {
    var c,
    d = 0,
    e = {
      height: a
    };
    for (b = b ? 1 : 0; d < 4; d += 2 - b) c = Fa[d],
    e['margin' + c] = e['padding' + c] = a;
    return b && (e.opacity = e.width = a),
    e
  }
  function K(a, b, c) {
    for (var d, e = (N.tweeners[b] || [
    ]).concat(N.tweeners['*']), f = 0, g = e.length; f < g; f++) if (d = e[f].call(c, b, a)) return d
  }
  function L(a, b, c) {
    var d,
    e,
    f,
    g,
    h,
    i,
    j,
    k,
    l = this,
    m = {
    },
    n = a.style,
    o = a.nodeType && Ga(a),
    p = za.get(a, 'fxshow');
    c.queue || (h = fa._queueHooks(a, 'fx'), null == h.unqueued && (h.unqueued = 0, i = h.empty.fire, h.empty.fire = function () {
      h.unqueued || i()
    }), h.unqueued++, l.always(function () {
      l.always(function () {
        h.unqueued--,
        fa.queue(a, 'fx').length || h.empty.fire()
      })
    })),
    1 === a.nodeType && ('height' in b || 'width' in b) && (c.overflow = [
      n.overflow,
      n.overflowX,
      n.overflowY
    ], j = fa.css(a, 'display'), k = 'none' === j ? za.get(a, 'olddisplay') || z(a.nodeName) : j, 'inline' === k && 'none' === fa.css(a, 'float') && (n.display = 'inline-block')),
    c.overflow && (n.overflow = 'hidden', l.always(function () {
      n.overflow = c.overflow[0],
      n.overflowX = c.overflow[1],
      n.overflowY = c.overflow[2]
    }));
    for (d in b) if (e = b[d], gb.exec(e)) {
      if (delete b[d], f = f || 'toggle' === e, e === (o ? 'hide' : 'show')) {
        if ('show' !== e || !p || void 0 === p[d]) continue;
        o = !0
      }
      m[d] = p && p[d] || fa.style(a, d)
    } else j = void 0;
    if (fa.isEmptyObject(m)) 'inline' === ('none' === j ? z(a.nodeName) : j) && (n.display = j);
     else {
      p ? 'hidden' in p && (o = p.hidden) : p = za.access(a, 'fxshow', {
      }),
      f && (p.hidden = !o),
      o ? fa(a).show() : l.done(function () {
        fa(a).hide()
      }),
      l.done(function () {
        var b;
        za.remove(a, 'fxshow');
        for (b in m) fa.style(a, b, m[b])
      });
      for (d in m) g = K(o ? p[d] : 0, d, l),
      d in p || (p[d] = g.start, o && (g.end = g.start, g.start = 'width' === d || 'height' === d ? 1 : 0))
    }
  }
  function M(a, b) {
    var c,
    d,
    e,
    f,
    g;
    for (c in a) if (d = fa.camelCase(c), e = b[d], f = a[c], fa.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = fa.cssHooks[d], g && 'expand' in g) {
      f = g.expand(f),
      delete a[d];
      for (c in f) c in a || (a[c] = f[c], b[c] = e)
    } else b[d] = e
  }
  function N(a, b, c) {
    var d,
    e,
    f = 0,
    g = N.prefilters.length,
    h = fa.Deferred().always(function () {
      delete i.elem
    }),
    i = function () {
      if (e) return !1;
      for (var b = eb || I(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; g < i; g++) j.tweens[g].run(f);
      return h.notifyWith(a, [
        j,
        f,
        c
      ]),
      f < 1 && i ? c : (h.resolveWith(a, [
        j
      ]), !1)
    },
    j = h.promise({
      elem: a,
      props: fa.extend({
      }, b),
      opts: fa.extend(!0, {
        specialEasing: {
        },
        easing: fa.easing._default
      }, c),
      originalProperties: b,
      originalOptions: c,
      startTime: eb || I(),
      duration: c.duration,
      tweens: [
      ],
      createTween: function (b, c) {
        var d = fa.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing);
        return j.tweens.push(d),
        d
      },
      stop: function (b) {
        var c = 0,
        d = b ? j.tweens.length : 0;
        if (e) return this;
        for (e = !0; c < d; c++) j.tweens[c].run(1);
        return b ? (h.notifyWith(a, [
          j,
          1,
          0
        ]), h.resolveWith(a, [
          j,
          b
        ])) : h.rejectWith(a, [
          j,
          b
        ]),
        this
      }
    }),
    k = j.props;
    for (M(k, j.opts.specialEasing); f < g; f++) if (d = N.prefilters[f].call(j, a, k, j.opts)) return fa.isFunction(d.stop) && (fa._queueHooks(j.elem, j.opts.queue).stop = fa.proxy(d.stop, d)),
    d;
    return fa.map(k, K, j),
    fa.isFunction(j.opts.start) && j.opts.start.call(a, j),
    fa.fx.timer(fa.extend(i, {
      elem: a,
      anim: j,
      queue: j.opts.queue
    })),
    j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always)
  }
  function O(a) {
    return a.getAttribute && a.getAttribute('class') || ''
  }
  function P(a) {
    return function (b, c) {
      'string' != typeof b && (c = b, b = '*');
      var d,
      e = 0,
      f = b.toLowerCase().match(va) || [
      ];
      if (fa.isFunction(c)) for (; d = f[e++]; ) '+' === d[0] ? (d = d.slice(1) || '*', (a[d] = a[d] || [
      ]).unshift(c)) : (a[d] = a[d] || [
      ]).push(c)
    }
  }
  function Q(a, b, c, d) {
    function e(h) {
      var i;
      return f[h] = !0,
      fa.each(a[h] || [
      ], function (a, h) {
        var j = h(b, c, d);
        return 'string' != typeof j || g || f[j] ? g ? !(i = j) : void 0 : (b.dataTypes.unshift(j), e(j), !1)
      }),
      i
    }
    var f = {
    },
    g = a === Ab;
    return e(b.dataTypes[0]) || !f['*'] && e('*')
  }
  function R(a, b) {
    var c,
    d,
    e = fa.ajaxSettings.flatOptions || {
    };
    for (c in b) void 0 !== b[c] && ((e[c] ? a : d || (d = {
    })) [c] = b[c]);
    return d && fa.extend(!0, a, d),
    a
  }
  function S(a, b, c) {
    for (var d, e, f, g, h = a.contents, i = a.dataTypes; '*' === i[0]; ) i.shift(),
    void 0 === d && (d = a.mimeType || b.getResponseHeader('Content-Type'));
    if (d) for (e in h) if (h[e] && h[e].test(d)) {
      i.unshift(e);
      break
    }
    if (i[0] in c) f = i[0];
     else {
      for (e in c) {
        if (!i[0] || a.converters[e + ' ' + i[0]]) {
          f = e;
          break
        }
        g || (g = e)
      }
      f = f || g
    }
    if (f) return f !== i[0] && i.unshift(f),
    c[f]
  }
  function T(a, b, c, d) {
    var e,
    f,
    g,
    h,
    i,
    j = {
    },
    k = a.dataTypes.slice();
    if (k[1]) for (g in a.converters) j[g.toLowerCase()] = a.converters[g];
    for (f = k.shift(); f; ) if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift()) if ('*' === f) f = i;
     else if ('*' !== i && i !== f) {
      if (g = j[i + ' ' + f] || j['* ' + f], !g) for (e in j) if (h = e.split(' '), h[1] === f && (g = j[i + ' ' + h[0]] || j['* ' + h[0]])) {
        g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1]));
        break
      }
      if (g !== !0) if (g && a['throws']) b = g(b);
       else try {
        b = g(b)
      } catch (l) {
        return {
          state: 'parsererror',
          error: g ? l : 'No conversion from ' + i + ' to ' + f
        }
      }
    }
    return {
      state: 'success',
      data: b
    }
  }
  function U(a, b, c, d) {
    var e;
    if (fa.isArray(b)) fa.each(b, function (b, e) {
      c || Eb.test(a) ? d(a, e) : U(a + '[' + ('object' == typeof e && null != e ? b : '') + ']', e, c, d)
    });
     else if (c || 'object' !== fa.type(b)) d(a, b);
     else for (e in b) U(a + '[' + e + ']', b[e], c, d)
  }
  function V(a) {
    return fa.isWindow(a) ? a : 9 === a.nodeType && a.defaultView
  }
  var W = [
  ],
  X = a.document,
  Y = W.slice,
  Z = W.concat,
  $ = W.push,
  _ = W.indexOf,
  aa = {
  },
  ba = aa.toString,
  ca = aa.hasOwnProperty,
  da = {
  },
  ea = '2.2.4',
  fa = function (a, b) {
    return new fa.fn.init(a, b)
  },
  ga = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
  ha = /^-ms-/,
  ia = /-([\da-z])/gi,
  ja = function (a, b) {
    return b.toUpperCase()
  };
  fa.fn = fa.prototype = {
    jquery: ea,
    constructor: fa,
    selector: '',
    length: 0,
    toArray: function () {
      return Y.call(this)
    },
    get: function (a) {
      return null != a ? a < 0 ? this[a + this.length] : this[a] : Y.call(this)
    },
    pushStack: function (a) {
      var b = fa.merge(this.constructor(), a);
      return b.prevObject = this,
      b.context = this.context,
      b
    },
    each: function (a) {
      return fa.each(this, a)
    },
    map: function (a) {
      return this.pushStack(fa.map(this, function (b, c) {
        return a.call(b, c, b)
      }))
    },
    slice: function () {
      return this.pushStack(Y.apply(this, arguments))
    },
    first: function () {
      return this.eq(0)
    },
    last: function () {
      return this.eq( - 1)
    },
    eq: function (a) {
      var b = this.length,
      c = + a + (a < 0 ? b : 0);
      return this.pushStack(c >= 0 && c < b ? [
        this[c]
      ] : [
      ])
    },
    end: function () {
      return this.prevObject || this.constructor()
    },
    push: $,
    sort: W.sort,
    splice: W.splice
  },
  fa.extend = fa.fn.extend = function () {
    var a,
    b,
    c,
    d,
    e,
    f,
    g = arguments[0] || {
    },
    h = 1,
    i = arguments.length,
    j = !1;
    for ('boolean' == typeof g && (j = g, g = arguments[h] || {
    }, h++), 'object' == typeof g || fa.isFunction(g) || (g = {
    }), h === i && (g = this, h--); h < i; h++) if (null != (a = arguments[h])) for (b in a) c = g[b],
    d = a[b],
    g !== d && (j && d && (fa.isPlainObject(d) || (e = fa.isArray(d))) ? (e ? (e = !1, f = c && fa.isArray(c) ? c : [
    ]) : f = c && fa.isPlainObject(c) ? c : {
    }, g[b] = fa.extend(j, f, d)) : void 0 !== d && (g[b] = d));
    return g
  },
  fa.extend({
    expando: 'jQuery' + (ea + Math.random()).replace(/\D/g, ''),
    isReady: !0,
    error: function (a) {
      throw new Error(a)
    },
    noop: function () {
    },
    isFunction: function (a) {
      return 'function' === fa.type(a)
    },
    isArray: Array.isArray,
    isWindow: function (a) {
      return null != a && a === a.window
    },
    isNumeric: function (a) {
      var b = a && a.toString();
      return !fa.isArray(a) && b - parseFloat(b) + 1 >= 0
    },
    isPlainObject: function (a) {
      var b;
      if ('object' !== fa.type(a) || a.nodeType || fa.isWindow(a)) return !1;
      if (a.constructor && !ca.call(a, 'constructor') && !ca.call(a.constructor.prototype || {
      }, 'isPrototypeOf')) return !1;
      for (b in a);
      return void 0 === b || ca.call(a, b)
    },
    isEmptyObject: function (a) {
      var b;
      for (b in a) return !1;
      return !0
    },
    type: function (a) {
      return null == a ? a + '' : 'object' == typeof a || 'function' == typeof a ? aa[ba.call(a)] || 'object' : typeof a
    },
    globalEval: function (a) {
      var b,
      c = eval;
      a = fa.trim(a),
      a && (1 === a.indexOf('use strict') ? (b = X.createElement('script'), b.text = a, X.head.appendChild(b).parentNode.removeChild(b)) : c(a))
    },
    camelCase: function (a) {
      return a.replace(ha, 'ms-').replace(ia, ja)
    },
    nodeName: function (a, b) {
      return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase()
    },
    each: function (a, b) {
      var d,
      e = 0;
      if (c(a)) for (d = a.length; e < d && b.call(a[e], e, a[e]) !== !1; e++);
       else for (e in a) if (b.call(a[e], e, a[e]) === !1) break;
      return a
    },
    trim: function (a) {
      return null == a ? '' : (a + '').replace(ga, '')
    },
    makeArray: function (a, b) {
      var d = b || [
      ];
      return null != a && (c(Object(a)) ? fa.merge(d, 'string' == typeof a ? [
        a
      ] : a) : $.call(d, a)),
      d
    },
    inArray: function (a, b, c) {
      return null == b ? - 1 : _.call(b, a, c)
    },
    merge: function (a, b) {
      for (var c = + b.length, d = 0, e = a.length; d < c; d++) a[e++] = b[d];
      return a.length = e,
      a
    },
    grep: function (a, b, c) {
      for (var d, e = [
      ], f = 0, g = a.length, h = !c; f < g; f++) d = !b(a[f], f),
      d !== h && e.push(a[f]);
      return e
    },
    map: function (a, b, d) {
      var e,
      f,
      g = 0,
      h = [
      ];
      if (c(a)) for (e = a.length; g < e; g++) f = b(a[g], g, d),
      null != f && h.push(f);
       else for (g in a) f = b(a[g], g, d),
      null != f && h.push(f);
      return Z.apply([], h)
    },
    guid: 1,
    proxy: function (a, b) {
      var c,
      d,
      e;
      if ('string' == typeof b && (c = a[b], b = a, a = c), fa.isFunction(a)) return d = Y.call(arguments, 2),
      e = function () {
        return a.apply(b || this, d.concat(Y.call(arguments)))
      },
      e.guid = a.guid = a.guid || fa.guid++,
      e
    },
    now: Date.now,
    support: da
  }),
  'function' == typeof Symbol && (fa.fn[Symbol.iterator] = W[Symbol.iterator]),
  fa.each('Boolean Number String Function Array Date RegExp Object Error Symbol'.split(' '), function (a, b) {
    aa['[object ' + b + ']'] = b.toLowerCase()
  });
  var ka = function (a) {
    function b(a, b, c, d) {
      var e,
      f,
      g,
      h,
      i,
      j,
      l,
      n,
      o = b && b.ownerDocument,
      p = b ? b.nodeType : 9;
      if (c = c || [
      ], 'string' != typeof a || !a || 1 !== p && 9 !== p && 11 !== p) return c;
      if (!d && ((b ? b.ownerDocument || b : O) !== G && F(b), b = b || G, I)) {
        if (11 !== p && (j = ra.exec(a))) if (e = j[1]) {
          if (9 === p) {
            if (!(g = b.getElementById(e))) return c;
            if (g.id === e) return c.push(g),
            c
          } else if (o && (g = o.getElementById(e)) && M(b, g) && g.id === e) return c.push(g),
          c
        } else {
          if (j[2]) return $.apply(c, b.getElementsByTagName(a)),
          c;
          if ((e = j[3]) && v.getElementsByClassName && b.getElementsByClassName) return $.apply(c, b.getElementsByClassName(e)),
          c
        }
        if (v.qsa && !T[a + ' '] && (!J || !J.test(a))) {
          if (1 !== p) o = b,
          n = a;
           else if ('object' !== b.nodeName.toLowerCase()) {
            for ((h = b.getAttribute('id')) ? h = h.replace(ta, '\\$&') : b.setAttribute('id', h = N), l = z(a), f = l.length, i = ma.test(h) ? '#' + h : '[id=\'' + h + '\']'; f--; ) l[f] = i + ' ' + m(l[f]);
            n = l.join(','),
            o = sa.test(a) && k(b.parentNode) || b
          }
          if (n) try {
            return $.apply(c, o.querySelectorAll(n)),
            c
          } catch (q) {
          } finally {
            h === N && b.removeAttribute('id')
          }
        }
      }
      return B(a.replace(ha, '$1'), b, c, d)
    }
    function c() {
      function a(c, d) {
        return b.push(c + ' ') > w.cacheLength && delete a[b.shift()],
        a[c + ' '] = d
      }
      var b = [
      ];
      return a
    }
    function d(a) {
      return a[N] = !0,
      a
    }
    function e(a) {
      var b = G.createElement('div');
      try {
        return !!a(b)
      } catch (c) {
        return !1
      } finally {
        b.parentNode && b.parentNode.removeChild(b),
        b = null
      }
    }
    function f(a, b) {
      for (var c = a.split('|'), d = c.length; d--; ) w.attrHandle[c[d]] = b
    }
    function g(a, b) {
      var c = b && a,
      d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || V) - (~a.sourceIndex || V);
      if (d) return d;
      if (c) for (; c = c.nextSibling; ) if (c === b) return - 1;
      return a ? 1 : - 1
    }
    function h(a) {
      return function (b) {
        var c = b.nodeName.toLowerCase();
        return 'input' === c && b.type === a
      }
    }
    function i(a) {
      return function (b) {
        var c = b.nodeName.toLowerCase();
        return ('input' === c || 'button' === c) && b.type === a
      }
    }
    function j(a) {
      return d(function (b) {
        return b = + b,
        d(function (c, d) {
          for (var e, f = a([], c.length, b), g = f.length; g--; ) c[e = f[g]] && (c[e] = !(d[e] = c[e]))
        })
      })
    }
    function k(a) {
      return a && 'undefined' != typeof a.getElementsByTagName && a
    }
    function l() {
    }
    function m(a) {
      for (var b = 0, c = a.length, d = ''; b < c; b++) d += a[b].value;
      return d
    }
    function n(a, b, c) {
      var d = b.dir,
      e = c && 'parentNode' === d,
      f = Q++;
      return b.first ? function (b, c, f) {
        for (; b = b[d]; ) if (1 === b.nodeType || e) return a(b, c, f)
      }
       : function (b, c, g) {
        var h,
        i,
        j,
        k = [
          P,
          f
        ];
        if (g) {
          for (; b = b[d]; ) if ((1 === b.nodeType || e) && a(b, c, g)) return !0
        } else for (; b = b[d]; ) if (1 === b.nodeType || e) {
          if (j = b[N] || (b[N] = {
          }), i = j[b.uniqueID] || (j[b.uniqueID] = {
          }), (h = i[d]) && h[0] === P && h[1] === f) return k[2] = h[2];
          if (i[d] = k, k[2] = a(b, c, g)) return !0
        }
      }
    }
    function o(a) {
      return a.length > 1 ? function (b, c, d) {
        for (var e = a.length; e--; ) if (!a[e](b, c, d)) return !1;
        return !0
      }
       : a[0]
    }
    function p(a, c, d) {
      for (var e = 0, f = c.length; e < f; e++) b(a, c[e], d);
      return d
    }
    function q(a, b, c, d, e) {
      for (var f, g = [
      ], h = 0, i = a.length, j = null != b; h < i; h++) (f = a[h]) && (c && !c(f, d, e) || (g.push(f), j && b.push(h)));
      return g
    }
    function r(a, b, c, e, f, g) {
      return e && !e[N] && (e = r(e)),
      f && !f[N] && (f = r(f, g)),
      d(function (d, g, h, i) {
        var j,
        k,
        l,
        m = [
        ],
        n = [
        ],
        o = g.length,
        r = d || p(b || '*', h.nodeType ? [
          h
        ] : h, [
        ]),
        s = !a || !d && b ? r : q(r, m, a, h, i),
        t = c ? f || (d ? a : o || e) ? [
        ] : g : s;
        if (c && c(s, t, h, i), e) for (j = q(t, n), e(j, [
        ], h, i), k = j.length; k--; ) (l = j[k]) && (t[n[k]] = !(s[n[k]] = l));
        if (d) {
          if (f || a) {
            if (f) {
              for (j = [
              ], k = t.length; k--; ) (l = t[k]) && j.push(s[k] = l);
              f(null, t = [
              ], j, i)
            }
            for (k = t.length; k--; ) (l = t[k]) && (j = f ? aa(d, l) : m[k]) > - 1 && (d[j] = !(g[j] = l))
          }
        } else t = q(t === g ? t.splice(o, t.length) : t),
        f ? f(null, g, t, i) : $.apply(g, t)
      })
    }
    function s(a) {
      for (var b, c, d, e = a.length, f = w.relative[a[0].type], g = f || w.relative[' '], h = f ? 1 : 0, i = n(function (a) {
        return a === b
      }, g, !0), j = n(function (a) {
        return aa(b, a) > - 1
      }, g, !0), k = [
        function (a, c, d) {
          var e = !f && (d || c !== C) || ((b = c).nodeType ? i(a, c, d) : j(a, c, d));
          return b = null,
          e
        }
      ]; h < e; h++) if (c = w.relative[a[h].type]) k = [
        n(o(k), c)
      ];
       else {
        if (c = w.filter[a[h].type].apply(null, a[h].matches), c[N]) {
          for (d = ++h; d < e && !w.relative[a[d].type]; d++);
          return r(h > 1 && o(k), h > 1 && m(a.slice(0, h - 1).concat({
            value: ' ' === a[h - 2].type ? '*' : ''
          })).replace(ha, '$1'), c, h < d && s(a.slice(h, d)), d < e && s(a = a.slice(d)), d < e && m(a))
        }
        k.push(c)
      }
      return o(k)
    }
    function t(a, c) {
      var e = c.length > 0,
      f = a.length > 0,
      g = function (d, g, h, i, j) {
        var k,
        l,
        m,
        n = 0,
        o = '0',
        p = d && [
        ],
        r = [
        ],
        s = C,
        t = d || f && w.find.TAG('*', j),
        u = P += null == s ? 1 : Math.random() || 0.1,
        v = t.length;
        for (j && (C = g === G || g || j); o !== v && null != (k = t[o]); o++) {
          if (f && k) {
            for (l = 0, g || k.ownerDocument === G || (F(k), h = !I); m = a[l++]; ) if (m(k, g || G, h)) {
              i.push(k);
              break
            }
            j && (P = u)
          }
          e && ((k = !m && k) && n--, d && p.push(k))
        }
        if (n += o, e && o !== n) {
          for (l = 0; m = c[l++]; ) m(p, r, g, h);
          if (d) {
            if (n > 0) for (; o--; ) p[o] || r[o] || (r[o] = Y.call(i));
            r = q(r)
          }
          $.apply(i, r),
          j && !d && r.length > 0 && n + c.length > 1 && b.uniqueSort(i)
        }
        return j && (P = u, C = s),
        p
      };
      return e ? d(g) : g
    }
    var u,
    v,
    w,
    x,
    y,
    z,
    A,
    B,
    C,
    D,
    E,
    F,
    G,
    H,
    I,
    J,
    K,
    L,
    M,
    N = 'sizzle' + 1 * new Date,
    O = a.document,
    P = 0,
    Q = 0,
    R = c(),
    S = c(),
    T = c(),
    U = function (a, b) {
      return a === b && (E = !0),
      0
    },
    V = 1 << 31,
    W = {
    }.hasOwnProperty,
    X = [
    ],
    Y = X.pop,
    Z = X.push,
    $ = X.push,
    _ = X.slice,
    aa = function (a, b) {
      for (var c = 0, d = a.length; c < d; c++) if (a[c] === b) return c;
      return - 1
    },
    ba = 'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped',
    ca = '[\\x20\\t\\r\\n\\f]',
    da = '(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+',
    ea = '\\[' + ca + '*(' + da + ')(?:' + ca + '*([*^$|!~]?=)' + ca + '*(?:\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)"|(' + da + '))|)' + ca + '*\\]',
    fa = ':(' + da + ')(?:\\(((\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|' + ea + ')*)|.*)\\)|)',
    ga = new RegExp(ca + '+', 'g'),
    ha = new RegExp('^' + ca + '+|((?:^|[^\\\\])(?:\\\\.)*)' + ca + '+$', 'g'),
    ia = new RegExp('^' + ca + '*,' + ca + '*'),
    ja = new RegExp('^' + ca + '*([>+~]|' + ca + ')' + ca + '*'),
    ka = new RegExp('=' + ca + '*([^\\]\'"]*?)' + ca + '*\\]', 'g'),
    la = new RegExp(fa),
    ma = new RegExp('^' + da + '$'),
    na = {
      ID: new RegExp('^#(' + da + ')'),
      CLASS: new RegExp('^\\.(' + da + ')'),
      TAG: new RegExp('^(' + da + '|[*])'),
      ATTR: new RegExp('^' + ea),
      PSEUDO: new RegExp('^' + fa),
      CHILD: new RegExp('^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(' + ca + '*(even|odd|(([+-]|)(\\d*)n|)' + ca + '*(?:([+-]|)' + ca + '*(\\d+)|))' + ca + '*\\)|)', 'i'),
      bool: new RegExp('^(?:' + ba + ')$', 'i'),
      needsContext: new RegExp('^' + ca + '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(' + ca + '*((?:-\\d)?\\d*)' + ca + '*\\)|)(?=[^-]|$)', 'i')
    },
    oa = /^(?:input|select|textarea|button)$/i,
    pa = /^h\d$/i,
    qa = /^[^{]+\{\s*\[native \w/,
    ra = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
    sa = /[+~]/,
    ta = /'|\\/g,
    ua = new RegExp('\\\\([\\da-f]{1,6}' + ca + '?|(' + ca + ')|.)', 'ig'),
    va = function (a, b, c) {
      var d = '0x' + b - 65536;
      return d !== d || c ? b : d < 0 ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320)
    },
    wa = function () {
      F()
    };
    try {
      $.apply(X = _.call(O.childNodes), O.childNodes),
      X[O.childNodes.length].nodeType
    } catch (xa) {
      $ = {
        apply: X.length ? function (a, b) {
          Z.apply(a, _.call(b))
        }
         : function (a, b) {
          for (var c = a.length, d = 0; a[c++] = b[d++]; );
          a.length = c - 1
        }
      }
    }
    v = b.support = {
    },
    y = b.isXML = function (a) {
      var b = a && (a.ownerDocument || a).documentElement;
      return !!b && 'HTML' !== b.nodeName
    },
    F = b.setDocument = function (a) {
      var b,
      c,
      d = a ? a.ownerDocument || a : O;
      return d !== G && 9 === d.nodeType && d.documentElement ? (G = d, H = G.documentElement, I = !y(G), (c = G.defaultView) && c.top !== c && (c.addEventListener ? c.addEventListener('unload', wa, !1) : c.attachEvent && c.attachEvent('onunload', wa)), v.attributes = e(function (a) {
        return a.className = 'i',
        !a.getAttribute('className')
      }), v.getElementsByTagName = e(function (a) {
        return a.appendChild(G.createComment('')),
        !a.getElementsByTagName('*').length
      }), v.getElementsByClassName = qa.test(G.getElementsByClassName), v.getById = e(function (a) {
        return H.appendChild(a).id = N,
        !G.getElementsByName || !G.getElementsByName(N).length
      }), v.getById ? (w.find.ID = function (a, b) {
        if ('undefined' != typeof b.getElementById && I) {
          var c = b.getElementById(a);
          return c ? [
            c
          ] : [
          ]
        }
      }, w.filter.ID = function (a) {
        var b = a.replace(ua, va);
        return function (a) {
          return a.getAttribute('id') === b
        }
      }) : (delete w.find.ID, w.filter.ID = function (a) {
        var b = a.replace(ua, va);
        return function (a) {
          var c = 'undefined' != typeof a.getAttributeNode && a.getAttributeNode('id');
          return c && c.value === b
        }
      }), w.find.TAG = v.getElementsByTagName ? function (a, b) {
        return 'undefined' != typeof b.getElementsByTagName ? b.getElementsByTagName(a) : v.qsa ? b.querySelectorAll(a) : void 0
      }
       : function (a, b) {
        var c,
        d = [
        ],
        e = 0,
        f = b.getElementsByTagName(a);
        if ('*' === a) {
          for (; c = f[e++]; ) 1 === c.nodeType && d.push(c);
          return d
        }
        return f
      }, w.find.CLASS = v.getElementsByClassName && function (a, b) {
        if ('undefined' != typeof b.getElementsByClassName && I) return b.getElementsByClassName(a)
      }, K = [
      ], J = [
      ], (v.qsa = qa.test(G.querySelectorAll)) && (e(function (a) {
        H.appendChild(a).innerHTML = '<a id=\'' + N + '\'></a><select id=\'' + N + '-\r\\\' msallowcapture=\'\'><option selected=\'\'></option></select>',
        a.querySelectorAll('[msallowcapture^=\'\']').length && J.push('[*^$]=' + ca + '*(?:\'\'|"")'),
        a.querySelectorAll('[selected]').length || J.push('\\[' + ca + '*(?:value|' + ba + ')'),
        a.querySelectorAll('[id~=' + N + '-]').length || J.push('~='),
        a.querySelectorAll(':checked').length || J.push(':checked'),
        a.querySelectorAll('a#' + N + '+*').length || J.push('.#.+[+~]')
      }), e(function (a) {
        var b = G.createElement('input');
        b.setAttribute('type', 'hidden'),
        a.appendChild(b).setAttribute('name', 'D'),
        a.querySelectorAll('[name=d]').length && J.push('name' + ca + '*[*^$|!~]?='),
        a.querySelectorAll(':enabled').length || J.push(':enabled', ':disabled'),
        a.querySelectorAll('*,:x'),
        J.push(',.*:')
      })), (v.matchesSelector = qa.test(L = H.matches || H.webkitMatchesSelector || H.mozMatchesSelector || H.oMatchesSelector || H.msMatchesSelector)) && e(function (a) {
        v.disconnectedMatch = L.call(a, 'div'),
        L.call(a, '[s!=\'\']:x'),
        K.push('!=', fa)
      }), J = J.length && new RegExp(J.join('|')), K = K.length && new RegExp(K.join('|')), b = qa.test(H.compareDocumentPosition), M = b || qa.test(H.contains) ? function (a, b) {
        var c = 9 === a.nodeType ? a.documentElement : a,
        d = b && b.parentNode;
        return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d)))
      }
       : function (a, b) {
        if (b) for (; b = b.parentNode; ) if (b === a) return !0;
        return !1
      }, U = b ? function (a, b) {
        if (a === b) return E = !0,
        0;
        var c = !a.compareDocumentPosition - !b.compareDocumentPosition;
        return c ? c : (c = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & c || !v.sortDetached && b.compareDocumentPosition(a) === c ? a === G || a.ownerDocument === O && M(O, a) ? - 1 : b === G || b.ownerDocument === O && M(O, b) ? 1 : D ? aa(D, a) - aa(D, b) : 0 : 4 & c ? - 1 : 1)
      }
       : function (a, b) {
        if (a === b) return E = !0,
        0;
        var c,
        d = 0,
        e = a.parentNode,
        f = b.parentNode,
        h = [
          a
        ],
        i = [
          b
        ];
        if (!e || !f) return a === G ? - 1 : b === G ? 1 : e ? - 1 : f ? 1 : D ? aa(D, a) - aa(D, b) : 0;
        if (e === f) return g(a, b);
        for (c = a; c = c.parentNode; ) h.unshift(c);
        for (c = b; c = c.parentNode; ) i.unshift(c);
        for (; h[d] === i[d]; ) d++;
        return d ? g(h[d], i[d]) : h[d] === O ? - 1 : i[d] === O ? 1 : 0
      }, G) : G
    },
    b.matches = function (a, c) {
      return b(a, null, null, c)
    },
    b.matchesSelector = function (a, c) {
      if ((a.ownerDocument || a) !== G && F(a), c = c.replace(ka, '=\'$1\']'), v.matchesSelector && I && !T[c + ' '] && (!K || !K.test(c)) && (!J || !J.test(c))) try {
        var d = L.call(a, c);
        if (d || v.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d
      } catch (e) {
      }
      return b(c, G, null, [
        a
      ]).length > 0
    },
    b.contains = function (a, b) {
      return (a.ownerDocument || a) !== G && F(a),
      M(a, b)
    },
    b.attr = function (a, b) {
      (a.ownerDocument || a) !== G && F(a);
      var c = w.attrHandle[b.toLowerCase()],
      d = c && W.call(w.attrHandle, b.toLowerCase()) ? c(a, b, !I) : void 0;
      return void 0 !== d ? d : v.attributes || !I ? a.getAttribute(b) : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
    },
    b.error = function (a) {
      throw new Error('Syntax error, unrecognized expression: ' + a)
    },
    b.uniqueSort = function (a) {
      var b,
      c = [
      ],
      d = 0,
      e = 0;
      if (E = !v.detectDuplicates, D = !v.sortStable && a.slice(0), a.sort(U), E) {
        for (; b = a[e++]; ) b === a[e] && (d = c.push(e));
        for (; d--; ) a.splice(c[d], 1)
      }
      return D = null,
      a
    },
    x = b.getText = function (a) {
      var b,
      c = '',
      d = 0,
      e = a.nodeType;
      if (e) {
        if (1 === e || 9 === e || 11 === e) {
          if ('string' == typeof a.textContent) return a.textContent;
          for (a = a.firstChild; a; a = a.nextSibling) c += x(a)
        } else if (3 === e || 4 === e) return a.nodeValue
      } else for (; b = a[d++]; ) c += x(b);
      return c
    },
    w = b.selectors = {
      cacheLength: 50,
      createPseudo: d,
      match: na,
      attrHandle: {
      },
      find: {
      },
      relative: {
        '>': {
          dir: 'parentNode',
          first: !0
        },
        ' ': {
          dir: 'parentNode'
        },
        '+': {
          dir: 'previousSibling',
          first: !0
        },
        '~': {
          dir: 'previousSibling'
        }
      },
      preFilter: {
        ATTR: function (a) {
          return a[1] = a[1].replace(ua, va),
          a[3] = (a[3] || a[4] || a[5] || '').replace(ua, va),
          '~=' === a[2] && (a[3] = ' ' + a[3] + ' '),
          a.slice(0, 4)
        },
        CHILD: function (a) {
          return a[1] = a[1].toLowerCase(),
          'nth' === a[1].slice(0, 3) ? (a[3] || b.error(a[0]), a[4] = + (a[4] ? a[5] + (a[6] || 1) : 2 * ('even' === a[3] || 'odd' === a[3])), a[5] = + (a[7] + a[8] || 'odd' === a[3])) : a[3] && b.error(a[0]),
          a
        },
        PSEUDO: function (a) {
          var b,
          c = !a[6] && a[2];
          return na.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || '' : c && la.test(c) && (b = z(c, !0)) && (b = c.indexOf(')', c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3))
        }
      },
      filter: {
        TAG: function (a) {
          var b = a.replace(ua, va).toLowerCase();
          return '*' === a ? function () {
            return !0
          }
           : function (a) {
            return a.nodeName && a.nodeName.toLowerCase() === b
          }
        },
        CLASS: function (a) {
          var b = R[a + ' '];
          return b || (b = new RegExp('(^|' + ca + ')' + a + '(' + ca + '|$)')) && R(a, function (a) {
            return b.test('string' == typeof a.className && a.className || 'undefined' != typeof a.getAttribute && a.getAttribute('class') || '')
          })
        },
        ATTR: function (a, c, d) {
          return function (e) {
            var f = b.attr(e, a);
            return null == f ? '!=' === c : !c || (f += '', '=' === c ? f === d : '!=' === c ? f !== d : '^=' === c ? d && 0 === f.indexOf(d) : '*=' === c ? d && f.indexOf(d) > - 1 : '$=' === c ? d && f.slice( - d.length) === d : '~=' === c ? (' ' + f.replace(ga, ' ') + ' ').indexOf(d) > - 1 : '|=' === c && (f === d || f.slice(0, d.length + 1) === d + '-'))
          }
        },
        CHILD: function (a, b, c, d, e) {
          var f = 'nth' !== a.slice(0, 3),
          g = 'last' !== a.slice( - 4),
          h = 'of-type' === b;
          return 1 === d && 0 === e ? function (a) {
            return !!a.parentNode
          }
           : function (b, c, i) {
            var j,
            k,
            l,
            m,
            n,
            o,
            p = f !== g ? 'nextSibling' : 'previousSibling',
            q = b.parentNode,
            r = h && b.nodeName.toLowerCase(),
            s = !i && !h,
            t = !1;
            if (q) {
              if (f) {
                for (; p; ) {
                  for (m = b; m = m[p]; ) if (h ? m.nodeName.toLowerCase() === r : 1 === m.nodeType) return !1;
                  o = p = 'only' === a && !o && 'nextSibling'
                }
                return !0
              }
              if (o = [
                g ? q.firstChild : q.lastChild
              ], g && s) {
                for (m = q, l = m[N] || (m[N] = {
                }), k = l[m.uniqueID] || (l[m.uniqueID] = {
                }), j = k[a] || [
                ], n = j[0] === P && j[1], t = n && j[2], m = n && q.childNodes[n]; m = ++n && m && m[p] || (t = n = 0) || o.pop(); ) if (1 === m.nodeType && ++t && m === b) {
                  k[a] = [
                    P,
                    n,
                    t
                  ];
                  break
                }
              } else if (s && (m = b, l = m[N] || (m[N] = {
              }), k = l[m.uniqueID] || (l[m.uniqueID] = {
              }), j = k[a] || [
              ], n = j[0] === P && j[1], t = n), t === !1) for (; (m = ++n && m && m[p] || (t = n = 0) || o.pop()) && ((h ? m.nodeName.toLowerCase() !== r : 1 !== m.nodeType) || !++t || (s && (l = m[N] || (m[N] = {
              }), k = l[m.uniqueID] || (l[m.uniqueID] = {
              }), k[a] = [
                P,
                t
              ]), m !== b)); );
              return t -= e,
              t === d || t % d === 0 && t / d >= 0
            }
          }
        },
        PSEUDO: function (a, c) {
          var e,
          f = w.pseudos[a] || w.setFilters[a.toLowerCase()] || b.error('unsupported pseudo: ' + a);
          return f[N] ? f(c) : f.length > 1 ? (e = [
            a,
            a,
            '',
            c
          ], w.setFilters.hasOwnProperty(a.toLowerCase()) ? d(function (a, b) {
            for (var d, e = f(a, c), g = e.length; g--; ) d = aa(a, e[g]),
            a[d] = !(b[d] = e[g])
          }) : function (a) {
            return f(a, 0, e)
          }) : f
        }
      },
      pseudos: {
        not: d(function (a) {
          var b = [
          ],
          c = [
          ],
          e = A(a.replace(ha, '$1'));
          return e[N] ? d(function (a, b, c, d) {
            for (var f, g = e(a, null, d, [
            ]), h = a.length; h--; ) (f = g[h]) && (a[h] = !(b[h] = f))
          }) : function (a, d, f) {
            return b[0] = a,
            e(b, null, f, c),
            b[0] = null,
            !c.pop()
          }
        }),
        has: d(function (a) {
          return function (c) {
            return b(a, c).length > 0
          }
        }),
        contains: d(function (a) {
          return a = a.replace(ua, va),
          function (b) {
            return (b.textContent || b.innerText || x(b)).indexOf(a) > - 1
          }
        }),
        lang: d(function (a) {
          return ma.test(a || '') || b.error('unsupported lang: ' + a),
          a = a.replace(ua, va).toLowerCase(),
          function (b) {
            var c;
            do if (c = I ? b.lang : b.getAttribute('xml:lang') || b.getAttribute('lang')) return c = c.toLowerCase(),
            c === a || 0 === c.indexOf(a + '-');
            while ((b = b.parentNode) && 1 === b.nodeType);
            return !1
          }
        }),
        target: function (b) {
          var c = a.location && a.location.hash;
          return c && c.slice(1) === b.id
        },
        root: function (a) {
          return a === H
        },
        focus: function (a) {
          return a === G.activeElement && (!G.hasFocus || G.hasFocus()) && !!(a.type || a.href || ~a.tabIndex)
        },
        enabled: function (a) {
          return a.disabled === !1
        },
        disabled: function (a) {
          return a.disabled === !0
        },
        checked: function (a) {
          var b = a.nodeName.toLowerCase();
          return 'input' === b && !!a.checked || 'option' === b && !!a.selected
        },
        selected: function (a) {
          return a.parentNode && a.parentNode.selectedIndex,
          a.selected === !0
        },
        empty: function (a) {
          for (a = a.firstChild; a; a = a.nextSibling) if (a.nodeType < 6) return !1;
          return !0
        },
        parent: function (a) {
          return !w.pseudos.empty(a)
        },
        header: function (a) {
          return pa.test(a.nodeName)
        },
        input: function (a) {
          return oa.test(a.nodeName)
        },
        button: function (a) {
          var b = a.nodeName.toLowerCase();
          return 'input' === b && 'button' === a.type || 'button' === b
        },
        text: function (a) {
          var b;
          return 'input' === a.nodeName.toLowerCase() && 'text' === a.type && (null == (b = a.getAttribute('type')) || 'text' === b.toLowerCase())
        },
        first: j(function () {
          return [0]
        }),
        last: j(function (a, b) {
          return [b - 1]
        }),
        eq: j(function (a, b, c) {
          return [c < 0 ? c + b : c]
        }),
        even: j(function (a, b) {
          for (var c = 0; c < b; c += 2) a.push(c);
          return a
        }),
        odd: j(function (a, b) {
          for (var c = 1; c < b; c += 2) a.push(c);
          return a
        }),
        lt: j(function (a, b, c) {
          for (var d = c < 0 ? c + b : c; --d >= 0; ) a.push(d);
          return a
        }),
        gt: j(function (a, b, c) {
          for (var d = c < 0 ? c + b : c; ++d < b; ) a.push(d);
          return a
        })
      }
    },
    w.pseudos.nth = w.pseudos.eq;
    for (u in {
      radio: !0,
      checkbox: !0,
      file: !0,
      password: !0,
      image: !0
    }) w.pseudos[u] = h(u);
    for (u in {
      submit: !0,
      reset: !0
    }) w.pseudos[u] = i(u);
    return l.prototype = w.filters = w.pseudos,
    w.setFilters = new l,
    z = b.tokenize = function (a, c) {
      var d,
      e,
      f,
      g,
      h,
      i,
      j,
      k = S[a + ' '];
      if (k) return c ? 0 : k.slice(0);
      for (h = a, i = [
      ], j = w.preFilter; h; ) {
        d && !(e = ia.exec(h)) || (e && (h = h.slice(e[0].length) || h), i.push(f = [
        ])),
        d = !1,
        (e = ja.exec(h)) && (d = e.shift(), f.push({
          value: d,
          type: e[0].replace(ha, ' ')
        }), h = h.slice(d.length));
        for (g in w.filter) !(e = na[g].exec(h)) || j[g] && !(e = j[g](e)) || (d = e.shift(), f.push({
          value: d,
          type: g,
          matches: e
        }), h = h.slice(d.length));
        if (!d) break
      }
      return c ? h.length : h ? b.error(a) : S(a, i).slice(0)
    },
    A = b.compile = function (a, b) {
      var c,
      d = [
      ],
      e = [
      ],
      f = T[a + ' '];
      if (!f) {
        for (b || (b = z(a)), c = b.length; c--; ) f = s(b[c]),
        f[N] ? d.push(f) : e.push(f);
        f = T(a, t(e, d)),
        f.selector = a
      }
      return f
    },
    B = b.select = function (a, b, c, d) {
      var e,
      f,
      g,
      h,
      i,
      j = 'function' == typeof a && a,
      l = !d && z(a = j.selector || a);
      if (c = c || [
      ], 1 === l.length) {
        if (f = l[0] = l[0].slice(0), f.length > 2 && 'ID' === (g = f[0]).type && v.getById && 9 === b.nodeType && I && w.relative[f[1].type]) {
          if (b = (w.find.ID(g.matches[0].replace(ua, va), b) || [
          ]) [0], !b) return c;
          j && (b = b.parentNode),
          a = a.slice(f.shift().value.length)
        }
        for (e = na.needsContext.test(a) ? 0 : f.length; e-- && (g = f[e], !w.relative[h = g.type]); ) if ((i = w.find[h]) && (d = i(g.matches[0].replace(ua, va), sa.test(f[0].type) && k(b.parentNode) || b))) {
          if (f.splice(e, 1), a = d.length && m(f), !a) return $.apply(c, d),
          c;
          break
        }
      }
      return (j || A(a, l)) (d, b, !I, c, !b || sa.test(a) && k(b.parentNode) || b),
      c
    },
    v.sortStable = N.split('').sort(U).join('') === N,
    v.detectDuplicates = !!E,
    F(),
    v.sortDetached = e(function (a) {
      return 1 & a.compareDocumentPosition(G.createElement('div'))
    }),
    e(function (a) {
      return a.innerHTML = '<a href=\'#\'></a>',
      '#' === a.firstChild.getAttribute('href')
    }) || f('type|href|height|width', function (a, b, c) {
      if (!c) return a.getAttribute(b, 'type' === b.toLowerCase() ? 1 : 2)
    }),
    v.attributes && e(function (a) {
      return a.innerHTML = '<input/>',
      a.firstChild.setAttribute('value', ''),
      '' === a.firstChild.getAttribute('value')
    }) || f('value', function (a, b, c) {
      if (!c && 'input' === a.nodeName.toLowerCase()) return a.defaultValue
    }),
    e(function (a) {
      return null == a.getAttribute('disabled')
    }) || f(ba, function (a, b, c) {
      var d;
      if (!c) return a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
    }),
    b
  }(a);
  fa.find = ka,
  fa.expr = ka.selectors,
  fa.expr[':'] = fa.expr.pseudos,
  fa.uniqueSort = fa.unique = ka.uniqueSort,
  fa.text = ka.getText,
  fa.isXMLDoc = ka.isXML,
  fa.contains = ka.contains;
  var la = function (a, b, c) {
    for (var d = [
    ], e = void 0 !== c; (a = a[b]) && 9 !== a.nodeType; ) if (1 === a.nodeType) {
      if (e && fa(a).is(c)) break;
      d.push(a)
    }
    return d
  },
  ma = function (a, b) {
    for (var c = [
    ]; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a);
    return c
  },
  na = fa.expr.match.needsContext,
  oa = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,
  pa = /^.[^:#\[\.,]*$/;
  fa.filter = function (a, b, c) {
    var d = b[0];
    return c && (a = ':not(' + a + ')'),
    1 === b.length && 1 === d.nodeType ? fa.find.matchesSelector(d, a) ? [
      d
    ] : [
    ] : fa.find.matches(a, fa.grep(b, function (a) {
      return 1 === a.nodeType
    }))
  },
  fa.fn.extend({
    find: function (a) {
      var b,
      c = this.length,
      d = [
      ],
      e = this;
      if ('string' != typeof a) return this.pushStack(fa(a).filter(function () {
        for (b = 0; b < c; b++) if (fa.contains(e[b], this)) return !0
      }));
      for (b = 0; b < c; b++) fa.find(a, e[b], d);
      return d = this.pushStack(c > 1 ? fa.unique(d) : d),
      d.selector = this.selector ? this.selector + ' ' + a : a,
      d
    },
    filter: function (a) {
      return this.pushStack(d(this, a || [
      ], !1))
    },
    not: function (a) {
      return this.pushStack(d(this, a || [
      ], !0))
    },
    is: function (a) {
      return !!d(this, 'string' == typeof a && na.test(a) ? fa(a) : a || [
      ], !1).length
    }
  });
  var qa,
  ra = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
  sa = fa.fn.init = function (a, b, c) {
    var d,
    e;
    if (!a) return this;
    if (c = c || qa, 'string' == typeof a) {
      if (d = '<' === a[0] && '>' === a[a.length - 1] && a.length >= 3 ? [
        null,
        a,
        null
      ] : ra.exec(a), !d || !d[1] && b) return !b || b.jquery ? (b || c).find(a) : this.constructor(b).find(a);
      if (d[1]) {
        if (b = b instanceof fa ? b[0] : b, fa.merge(this, fa.parseHTML(d[1], b && b.nodeType ? b.ownerDocument || b : X, !0)), oa.test(d[1]) && fa.isPlainObject(b)) for (d in b) fa.isFunction(this[d]) ? this[d](b[d]) : this.attr(d, b[d]);
        return this
      }
      return e = X.getElementById(d[2]),
      e && e.parentNode && (this.length = 1, this[0] = e),
      this.context = X,
      this.selector = a,
      this
    }
    return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : fa.isFunction(a) ? void 0 !== c.ready ? c.ready(a) : a(fa) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), fa.makeArray(a, this))
  };
  sa.prototype = fa.fn,
  qa = fa(X);
  var ta = /^(?:parents|prev(?:Until|All))/,
  ua = {
    children: !0,
    contents: !0,
    next: !0,
    prev: !0
  };
  fa.fn.extend({
    has: function (a) {
      var b = fa(a, this),
      c = b.length;
      return this.filter(function () {
        for (var a = 0; a < c; a++) if (fa.contains(this, b[a])) return !0
      })
    },
    closest: function (a, b) {
      for (var c, d = 0, e = this.length, f = [
      ], g = na.test(a) || 'string' != typeof a ? fa(a, b || this.context) : 0; d < e; d++) for (c = this[d]; c && c !== b; c = c.parentNode) if (c.nodeType < 11 && (g ? g.index(c) > - 1 : 1 === c.nodeType && fa.find.matchesSelector(c, a))) {
        f.push(c);
        break
      }
      return this.pushStack(f.length > 1 ? fa.uniqueSort(f) : f)
    },
    index: function (a) {
      return a ? 'string' == typeof a ? _.call(fa(a), this[0]) : _.call(this, a.jquery ? a[0] : a) : this[0] && this[0].parentNode ? this.first().prevAll().length : - 1
    },
    add: function (a, b) {
      return this.pushStack(fa.uniqueSort(fa.merge(this.get(), fa(a, b))))
    },
    addBack: function (a) {
      return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
    }
  }),
  fa.each({
    parent: function (a) {
      var b = a.parentNode;
      return b && 11 !== b.nodeType ? b : null
    },
    parents: function (a) {
      return la(a, 'parentNode')
    },
    parentsUntil: function (a, b, c) {
      return la(a, 'parentNode', c)
    },
    next: function (a) {
      return e(a, 'nextSibling')
    },
    prev: function (a) {
      return e(a, 'previousSibling')
    },
    nextAll: function (a) {
      return la(a, 'nextSibling')
    },
    prevAll: function (a) {
      return la(a, 'previousSibling')
    },
    nextUntil: function (a, b, c) {
      return la(a, 'nextSibling', c)
    },
    prevUntil: function (a, b, c) {
      return la(a, 'previousSibling', c)
    },
    siblings: function (a) {
      return ma((a.parentNode || {
      }).firstChild, a)
    },
    children: function (a) {
      return ma(a.firstChild)
    },
    contents: function (a) {
      return a.contentDocument || fa.merge([], a.childNodes)
    }
  }, function (a, b) {
    fa.fn[a] = function (c, d) {
      var e = fa.map(this, b, c);
      return 'Until' !== a.slice( - 5) && (d = c),
      d && 'string' == typeof d && (e = fa.filter(d, e)),
      this.length > 1 && (ua[a] || fa.uniqueSort(e), ta.test(a) && e.reverse()),
      this.pushStack(e)
    }
  });
  var va = /\S+/g;
  fa.Callbacks = function (a) {
    a = 'string' == typeof a ? f(a) : fa.extend({
    }, a);
    var b,
    c,
    d,
    e,
    g = [
    ],
    h = [
    ],
    i = - 1,
    j = function () {
      for (e = a.once, d = b = !0; h.length; i = - 1) for (c = h.shift(); ++i < g.length; ) g[i].apply(c[0], c[1]) === !1 && a.stopOnFalse && (i = g.length, c = !1);
      a.memory || (c = !1),
      b = !1,
      e && (g = c ? [
      ] : '')
    },
    k = {
      add: function () {
        return g && (c && !b && (i = g.length - 1, h.push(c)), function d(b) {
          fa.each(b, function (b, c) {
            fa.isFunction(c) ? a.unique && k.has(c) || g.push(c) : c && c.length && 'string' !== fa.type(c) && d(c)
          })
        }(arguments), c && !b && j()),
        this
      },
      remove: function () {
        return fa.each(arguments, function (a, b) {
          for (var c; (c = fa.inArray(b, g, c)) > - 1; ) g.splice(c, 1),
          c <= i && i--
        }),
        this
      },
      has: function (a) {
        return a ? fa.inArray(a, g) > - 1 : g.length > 0
      },
      empty: function () {
        return g && (g = [
        ]),
        this
      },
      disable: function () {
        return e = h = [
        ],
        g = c = '',
        this
      },
      disabled: function () {
        return !g
      },
      lock: function () {
        return e = h = [
        ],
        c || (g = c = ''),
        this
      },
      locked: function () {
        return !!e
      },
      fireWith: function (a, c) {
        return e || (c = c || [
        ], c = [
          a,
          c.slice ? c.slice() : c
        ], h.push(c), b || j()),
        this
      },
      fire: function () {
        return k.fireWith(this, arguments),
        this
      },
      fired: function () {
        return !!d
      }
    };
    return k
  },
  fa.extend({
    Deferred: function (a) {
      var b = [
        ['resolve',
        'done',
        fa.Callbacks('once memory'),
        'resolved'],
        [
          'reject',
          'fail',
          fa.Callbacks('once memory'),
          'rejected'
        ],
        [
          'notify',
          'progress',
          fa.Callbacks('memory')
        ]
      ],
      c = 'pending',
      d = {
        state: function () {
          return c
        },
        always: function () {
          return e.done(arguments).fail(arguments),
          this
        },
        then: function () {
          var a = arguments;
          return fa.Deferred(function (c) {
            fa.each(b, function (b, f) {
              var g = fa.isFunction(a[b]) && a[b];
              e[f[1]](function () {
                var a = g && g.apply(this, arguments);
                a && fa.isFunction(a.promise) ? a.promise().progress(c.notify).done(c.resolve).fail(c.reject) : c[f[0] + 'With'](this === d ? c.promise() : this, g ? [
                  a
                ] : arguments)
              })
            }),
            a = null
          }).promise()
        },
        promise: function (a) {
          return null != a ? fa.extend(a, d) : d
        }
      },
      e = {
      };
      return d.pipe = d.then,
      fa.each(b, function (a, f) {
        var g = f[2],
        h = f[3];
        d[f[1]] = g.add,
        h && g.add(function () {
          c = h
        }, b[1 ^ a][2].disable, b[2][2].lock),
        e[f[0]] = function () {
          return e[f[0] + 'With'](this === e ? d : this, arguments),
          this
        },
        e[f[0] + 'With'] = g.fireWith
      }),
      d.promise(e),
      a && a.call(e, e),
      e
    },
    when: function (a) {
      var b,
      c,
      d,
      e = 0,
      f = Y.call(arguments),
      g = f.length,
      h = 1 !== g || a && fa.isFunction(a.promise) ? g : 0,
      i = 1 === h ? a : fa.Deferred(),
      j = function (a, c, d) {
        return function (e) {
          c[a] = this,
          d[a] = arguments.length > 1 ? Y.call(arguments) : e,
          d === b ? i.notifyWith(c, d) : --h || i.resolveWith(c, d)
        }
      };
      if (g > 1) for (b = new Array(g), c = new Array(g), d = new Array(g); e < g; e++) f[e] && fa.isFunction(f[e].promise) ? f[e].promise().progress(j(e, c, b)).done(j(e, d, f)).fail(i.reject) : --h;
      return h || i.resolveWith(d, f),
      i.promise()
    }
  });
  var wa;
  fa.fn.ready = function (a) {
    return fa.ready.promise().done(a),
    this
  },
  fa.extend({
    isReady: !1,
    readyWait: 1,
    holdReady: function (a) {
      a ? fa.readyWait++ : fa.ready(!0)
    },
    ready: function (a) {
      (a === !0 ? --fa.readyWait : fa.isReady) || (fa.isReady = !0, a !== !0 && --fa.readyWait > 0 || (wa.resolveWith(X, [
        fa
      ]), fa.fn.triggerHandler && (fa(X).triggerHandler('ready'), fa(X).off('ready'))))
    }
  }),
  fa.ready.promise = function (b) {
    return wa || (wa = fa.Deferred(), 'complete' === X.readyState || 'loading' !== X.readyState && !X.documentElement.doScroll ? a.setTimeout(fa.ready) : (X.addEventListener('DOMContentLoaded', g), a.addEventListener('load', g))),
    wa.promise(b)
  },
  fa.ready.promise();
  var xa = function (a, b, c, d, e, f, g) {
    var h = 0,
    i = a.length,
    j = null == c;
    if ('object' === fa.type(c)) {
      e = !0;
      for (h in c) xa(a, b, h, c[h], !0, f, g)
    } else if (void 0 !== d && (e = !0, fa.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function (a, b, c) {
      return j.call(fa(a), c)
    })), b)) for (; h < i; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c)));
    return e ? a : j ? b.call(a) : i ? b(a[0], c) : f
  },
  ya = function (a) {
    return 1 === a.nodeType || 9 === a.nodeType || ! + a.nodeType
  };
  h.uid = 1,
  h.prototype = {
    register: function (a, b) {
      var c = b || {
      };
      return a.nodeType ? a[this.expando] = c : Object.defineProperty(a, this.expando, {
        value: c,
        writable: !0,
        configurable: !0
      }),
      a[this.expando]
    },
    cache: function (a) {
      if (!ya(a)) return {
      };
      var b = a[this.expando];
      return b || (b = {
      }, ya(a) && (a.nodeType ? a[this.expando] = b : Object.defineProperty(a, this.expando, {
        value: b,
        configurable: !0
      }))),
      b
    },
    set: function (a, b, c) {
      var d,
      e = this.cache(a);
      if ('string' == typeof b) e[b] = c;
       else for (d in b) e[d] = b[d];
      return e
    },
    get: function (a, b) {
      return void 0 === b ? this.cache(a) : a[this.expando] && a[this.expando][b]
    },
    access: function (a, b, c) {
      var d;
      return void 0 === b || b && 'string' == typeof b && void 0 === c ? (d = this.get(a, b), void 0 !== d ? d : this.get(a, fa.camelCase(b))) : (this.set(a, b, c), void 0 !== c ? c : b)
    },
    remove: function (a, b) {
      var c,
      d,
      e,
      f = a[this.expando];
      if (void 0 !== f) {
        if (void 0 === b) this.register(a);
         else {
          fa.isArray(b) ? d = b.concat(b.map(fa.camelCase)) : (e = fa.camelCase(b), b in f ? d = [
            b,
            e
          ] : (d = e, d = d in f ? [
            d
          ] : d.match(va) || [
          ])),
          c = d.length;
          for (; c--; ) delete f[d[c]];
        }(void 0 === b || fa.isEmptyObject(f)) && (a.nodeType ? a[this.expando] = void 0 : delete a[this.expando])
      }
    },
    hasData: function (a) {
      var b = a[this.expando];
      return void 0 !== b && !fa.isEmptyObject(b)
    }
  };
  var za = new h,
  Aa = new h,
  Ba = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
  Ca = /[A-Z]/g;
  fa.extend({
    hasData: function (a) {
      return Aa.hasData(a) || za.hasData(a)
    },
    data: function (a, b, c) {
      return Aa.access(a, b, c)
    },
    removeData: function (a, b) {
      Aa.remove(a, b)
    },
    _data: function (a, b, c) {
      return za.access(a, b, c)
    },
    _removeData: function (a, b) {
      za.remove(a, b)
    }
  }),
  fa.fn.extend({
    data: function (a, b) {
      var c,
      d,
      e,
      f = this[0],
      g = f && f.attributes;
      if (void 0 === a) {
        if (this.length && (e = Aa.get(f), 1 === f.nodeType && !za.get(f, 'hasDataAttrs'))) {
          for (c = g.length; c--; ) g[c] && (d = g[c].name, 0 === d.indexOf('data-') && (d = fa.camelCase(d.slice(5)), i(f, d, e[d])));
          za.set(f, 'hasDataAttrs', !0)
        }
        return e
      }
      return 'object' == typeof a ? this.each(function () {
        Aa.set(this, a)
      }) : xa(this, function (b) {
        var c,
        d;
        if (f && void 0 === b) {
          if (c = Aa.get(f, a) || Aa.get(f, a.replace(Ca, '-$&').toLowerCase()), void 0 !== c) return c;
          if (d = fa.camelCase(a), c = Aa.get(f, d), void 0 !== c) return c;
          if (c = i(f, d, void 0), void 0 !== c) return c
        } else d = fa.camelCase(a),
        this.each(function () {
          var c = Aa.get(this, d);
          Aa.set(this, d, b),
          a.indexOf('-') > - 1 && void 0 !== c && Aa.set(this, a, b)
        })
      }, null, b, arguments.length > 1, null, !0)
    },
    removeData: function (a) {
      return this.each(function () {
        Aa.remove(this, a)
      })
    }
  }),
  fa.extend({
    queue: function (a, b, c) {
      var d;
      if (a) return b = (b || 'fx') + 'queue',
      d = za.get(a, b),
      c && (!d || fa.isArray(c) ? d = za.access(a, b, fa.makeArray(c)) : d.push(c)),
      d || [
      ]
    },
    dequeue: function (a, b) {
      b = b || 'fx';
      var c = fa.queue(a, b),
      d = c.length,
      e = c.shift(),
      f = fa._queueHooks(a, b),
      g = function () {
        fa.dequeue(a, b)
      };
      'inprogress' === e && (e = c.shift(), d--),
      e && ('fx' === b && c.unshift('inprogress'), delete f.stop, e.call(a, g, f)),
      !d && f && f.empty.fire()
    },
    _queueHooks: function (a, b) {
      var c = b + 'queueHooks';
      return za.get(a, c) || za.access(a, c, {
        empty: fa.Callbacks('once memory').add(function () {
          za.remove(a, [
            b + 'queue',
            c
          ])
        })
      })
    }
  }),
  fa.fn.extend({
    queue: function (a, b) {
      var c = 2;
      return 'string' != typeof a && (b = a, a = 'fx', c--),
      arguments.length < c ? fa.queue(this[0], a) : void 0 === b ? this : this.each(function () {
        var c = fa.queue(this, a, b);
        fa._queueHooks(this, a),
        'fx' === a && 'inprogress' !== c[0] && fa.dequeue(this, a)
      })
    },
    dequeue: function (a) {
      return this.each(function () {
        fa.dequeue(this, a)
      })
    },
    clearQueue: function (a) {
      return this.queue(a || 'fx', [
      ])
    },
    promise: function (a, b) {
      var c,
      d = 1,
      e = fa.Deferred(),
      f = this,
      g = this.length,
      h = function () {
        --d || e.resolveWith(f, [
          f
        ])
      };
      for ('string' != typeof a && (b = a, a = void 0), a = a || 'fx'; g--; ) c = za.get(f[g], a + 'queueHooks'),
      c && c.empty && (d++, c.empty.add(h));
      return h(),
      e.promise(b)
    }
  });
  var Da = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
  Ea = new RegExp('^(?:([+-])=|)(' + Da + ')([a-z%]*)$', 'i'),
  Fa = [
    'Top',
    'Right',
    'Bottom',
    'Left'
  ],
  Ga = function (a, b) {
    return a = b || a,
    'none' === fa.css(a, 'display') || !fa.contains(a.ownerDocument, a)
  },
  Ha = /^(?:checkbox|radio)$/i,
  Ia = /<([\w:-]+)/,
  Ja = /^$|\/(?:java|ecma)script/i,
  Ka = {
    option: [
      1,
      '<select multiple=\'multiple\'>',
      '</select>'
    ],
    thead: [
      1,
      '<table>',
      '</table>'
    ],
    col: [
      2,
      '<table><colgroup>',
      '</colgroup></table>'
    ],
    tr: [
      2,
      '<table><tbody>',
      '</tbody></table>'
    ],
    td: [
      3,
      '<table><tbody><tr>',
      '</tr></tbody></table>'
    ],
    _default: [
      0,
      '',
      ''
    ]
  };
  Ka.optgroup = Ka.option,
  Ka.tbody = Ka.tfoot = Ka.colgroup = Ka.caption = Ka.thead,
  Ka.th = Ka.td;
  var La = /<|&#?\w+;/;
  !function () {
    var a = X.createDocumentFragment(),
    b = a.appendChild(X.createElement('div')),
    c = X.createElement('input');
    c.setAttribute('type', 'radio'),
    c.setAttribute('checked', 'checked'),
    c.setAttribute('name', 't'),
    b.appendChild(c),
    da.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked,
    b.innerHTML = '<textarea>x</textarea>',
    da.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue
  }();
  var Ma = /^key/,
  Na = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
  Oa = /^([^.]*)(?:\.(.+)|)/;
  fa.event = {
    global: {
    },
    add: function (a, b, c, d, e) {
      var f,
      g,
      h,
      i,
      j,
      k,
      l,
      m,
      n,
      o,
      p,
      q = za.get(a);
      if (q) for (c.handler && (f = c, c = f.handler, e = f.selector), c.guid || (c.guid = fa.guid++), (i = q.events) || (i = q.events = {
      }), (g = q.handle) || (g = q.handle = function (b) {
        return 'undefined' != typeof fa && fa.event.triggered !== b.type ? fa.event.dispatch.apply(a, arguments) : void 0
      }), b = (b || '').match(va) || [
        ''
      ], j = b.length; j--; ) h = Oa.exec(b[j]) || [
      ],
      n = p = h[1],
      o = (h[2] || '').split('.').sort(),
      n && (l = fa.event.special[n] || {
      }, n = (e ? l.delegateType : l.bindType) || n, l = fa.event.special[n] || {
      }, k = fa.extend({
        type: n,
        origType: p,
        data: d,
        handler: c,
        guid: c.guid,
        selector: e,
        needsContext: e && fa.expr.match.needsContext.test(e),
        namespace: o.join('.')
      }, f), (m = i[n]) || (m = i[n] = [
      ], m.delegateCount = 0, l.setup && l.setup.call(a, d, o, g) !== !1 || a.addEventListener && a.addEventListener(n, g)), l.add && (l.add.call(a, k), k.handler.guid || (k.handler.guid = c.guid)), e ? m.splice(m.delegateCount++, 0, k) : m.push(k), fa.event.global[n] = !0)
    },
    remove: function (a, b, c, d, e) {
      var f,
      g,
      h,
      i,
      j,
      k,
      l,
      m,
      n,
      o,
      p,
      q = za.hasData(a) && za.get(a);
      if (q && (i = q.events)) {
        for (b = (b || '').match(va) || [
          ''
        ], j = b.length; j--; ) if (h = Oa.exec(b[j]) || [
        ], n = p = h[1], o = (h[2] || '').split('.').sort(), n) {
          for (l = fa.event.special[n] || {
          }, n = (d ? l.delegateType : l.bindType) || n, m = i[n] || [
          ], h = h[2] && new RegExp('(^|\\.)' + o.join('\\.(?:.*\\.|)') + '(\\.|$)'), g = f = m.length; f--; ) k = m[f],
          !e && p !== k.origType || c && c.guid !== k.guid || h && !h.test(k.namespace) || d && d !== k.selector && ('**' !== d || !k.selector) || (m.splice(f, 1), k.selector && m.delegateCount--, l.remove && l.remove.call(a, k));
          g && !m.length && (l.teardown && l.teardown.call(a, o, q.handle) !== !1 || fa.removeEvent(a, n, q.handle), delete i[n])
        } else for (n in i) fa.event.remove(a, n + b[j], c, d, !0);
        fa.isEmptyObject(i) && za.remove(a, 'handle events')
      }
    },
    dispatch: function (a) {
      a = fa.event.fix(a);
      var b,
      c,
      d,
      e,
      f,
      g = [
      ],
      h = Y.call(arguments),
      i = (za.get(this, 'events') || {
      }) [a.type] || [
      ],
      j = fa.event.special[a.type] || {
      };
      if (h[0] = a, a.delegateTarget = this, !j.preDispatch || j.preDispatch.call(this, a) !== !1) {
        for (g = fa.event.handlers.call(this, a, i), b = 0; (e = g[b++]) && !a.isPropagationStopped(); ) for (a.currentTarget = e.elem, c = 0; (f = e.handlers[c++]) && !a.isImmediatePropagationStopped(); ) a.rnamespace && !a.rnamespace.test(f.namespace) || (a.handleObj = f, a.data = f.data, d = ((fa.event.special[f.origType] || {
        }).handle || f.handler).apply(e.elem, h), void 0 !== d && (a.result = d) === !1 && (a.preventDefault(), a.stopPropagation()));
        return j.postDispatch && j.postDispatch.call(this, a),
        a.result
      }
    },
    handlers: function (a, b) {
      var c,
      d,
      e,
      f,
      g = [
      ],
      h = b.delegateCount,
      i = a.target;
      if (h && i.nodeType && ('click' !== a.type || isNaN(a.button) || a.button < 1)) for (; i !== this; i = i.parentNode || this) if (1 === i.nodeType && (i.disabled !== !0 || 'click' !== a.type)) {
        for (d = [
        ], c = 0; c < h; c++) f = b[c],
        e = f.selector + ' ',
        void 0 === d[e] && (d[e] = f.needsContext ? fa(e, this).index(i) > - 1 : fa.find(e, this, null, [
          i
        ]).length),
        d[e] && d.push(f);
        d.length && g.push({
          elem: i,
          handlers: d
        })
      }
      return h < b.length && g.push({
        elem: this,
        handlers: b.slice(h)
      }),
      g
    },
    props: 'altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which'.split(' '),
    fixHooks: {
    },
    keyHooks: {
      props: 'char charCode key keyCode'.split(' '),
      filter: function (a, b) {
        return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode),
        a
      }
    },
    mouseHooks: {
      props: 'button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement'.split(' '),
      filter: function (a, b) {
        var c,
        d,
        e,
        f = b.button;
        return null == a.pageX && null != b.clientX && (c = a.target.ownerDocument || X, d = c.documentElement, e = c.body, a.pageX = b.clientX + (d && d.scrollLeft || e && e.scrollLeft || 0) - (d && d.clientLeft || e && e.clientLeft || 0), a.pageY = b.clientY + (d && d.scrollTop || e && e.scrollTop || 0) - (d && d.clientTop || e && e.clientTop || 0)),
        a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0),
        a
      }
    },
    fix: function (a) {
      if (a[fa.expando]) return a;
      var b,
      c,
      d,
      e = a.type,
      f = a,
      g = this.fixHooks[e];
      for (g || (this.fixHooks[e] = g = Na.test(e) ? this.mouseHooks : Ma.test(e) ? this.keyHooks : {
      }), d = g.props ? this.props.concat(g.props) : this.props, a = new fa.Event(f), b = d.length; b--; ) c = d[b],
      a[c] = f[c];
      return a.target || (a.target = X),
      3 === a.target.nodeType && (a.target = a.target.parentNode),
      g.filter ? g.filter(a, f) : a
    },
    special: {
      load: {
        noBubble: !0
      },
      focus: {
        trigger: function () {
          if (this !== p() && this.focus) return this.focus(),
          !1
        },
        delegateType: 'focusin'
      },
      blur: {
        trigger: function () {
          if (this === p() && this.blur) return this.blur(),
          !1
        },
        delegateType: 'focusout'
      },
      click: {
        trigger: function () {
          if ('checkbox' === this.type && this.click && fa.nodeName(this, 'input')) return this.click(),
          !1
        },
        _default: function (a) {
          return fa.nodeName(a.target, 'a')
        }
      },
      beforeunload: {
        postDispatch: function (a) {
          void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result)
        }
      }
    }
  },
  fa.removeEvent = function (a, b, c) {
    a.removeEventListener && a.removeEventListener(b, c)
  },
  fa.Event = function (a, b) {
    return this instanceof fa.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? n : o) : this.type = a, b && fa.extend(this, b), this.timeStamp = a && a.timeStamp || fa.now(), void (this[fa.expando] = !0)) : new fa.Event(a, b)
  },
  fa.Event.prototype = {
    constructor: fa.Event,
    isDefaultPrevented: o,
    isPropagationStopped: o,
    isImmediatePropagationStopped: o,
    isSimulated: !1,
    preventDefault: function () {
      var a = this.originalEvent;
      this.isDefaultPrevented = n,
      a && !this.isSimulated && a.preventDefault()
    },
    stopPropagation: function () {
      var a = this.originalEvent;
      this.isPropagationStopped = n,
      a && !this.isSimulated && a.stopPropagation()
    },
    stopImmediatePropagation: function () {
      var a = this.originalEvent;
      this.isImmediatePropagationStopped = n,
      a && !this.isSimulated && a.stopImmediatePropagation(),
      this.stopPropagation()
    }
  },
  fa.each({
    mouseenter: 'mouseover',
    mouseleave: 'mouseout',
    pointerenter: 'pointerover',
    pointerleave: 'pointerout'
  }, function (a, b) {
    fa.event.special[a] = {
      delegateType: b,
      bindType: b,
      handle: function (a) {
        var c,
        d = this,
        e = a.relatedTarget,
        f = a.handleObj;
        return e && (e === d || fa.contains(d, e)) || (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b),
        c
      }
    }
  }),
  fa.fn.extend({
    on: function (a, b, c, d) {
      return q(this, a, b, c, d)
    },
    one: function (a, b, c, d) {
      return q(this, a, b, c, d, 1)
    },
    off: function (a, b, c) {
      var d,
      e;
      if (a && a.preventDefault && a.handleObj) return d = a.handleObj,
      fa(a.delegateTarget).off(d.namespace ? d.origType + '.' + d.namespace : d.origType, d.selector, d.handler),
      this;
      if ('object' == typeof a) {
        for (e in a) this.off(e, b, a[e]);
        return this
      }
      return b !== !1 && 'function' != typeof b || (c = b, b = void 0),
      c === !1 && (c = o),
      this.each(function () {
        fa.event.remove(this, a, c, b)
      })
    }
  });
  var Pa = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
  Qa = /<script|<style|<link/i,
  Ra = /checked\s*(?:[^=]|=\s*.checked.)/i,
  Sa = /^true\/(.*)/,
  Ta = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
  fa.extend({
    htmlPrefilter: function (a) {
      return a.replace(Pa, '<$1></$2>')
    },
    clone: function (a, b, c) {
      var d,
      e,
      f,
      g,
      h = a.cloneNode(!0),
      i = fa.contains(a.ownerDocument, a);
      if (!(da.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || fa.isXMLDoc(a))) for (g = k(h), f = k(a), d = 0, e = f.length; d < e; d++) v(f[d], g[d]);
      if (b) if (c) for (f = f || k(a), g = g || k(h), d = 0, e = f.length; d < e; d++) u(f[d], g[d]);
       else u(a, h);
      return g = k(h, 'script'),
      g.length > 0 && l(g, !i && k(a, 'script')),
      h
    },
    cleanData: function (a) {
      for (var b, c, d, e = fa.event.special, f = 0; void 0 !== (c = a[f]); f++) if (ya(c)) {
        if (b = c[za.expando]) {
          if (b.events) for (d in b.events) e[d] ? fa.event.remove(c, d) : fa.removeEvent(c, d, b.handle);
          c[za.expando] = void 0
        }
        c[Aa.expando] && (c[Aa.expando] = void 0)
      }
    }
  }),
  fa.fn.extend({
    domManip: w,
    detach: function (a) {
      return x(this, a, !0)
    },
    remove: function (a) {
      return x(this, a)
    },
    text: function (a) {
      return xa(this, function (a) {
        return void 0 === a ? fa.text(this) : this.empty().each(function () {
          1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = a)
        })
      }, null, a, arguments.length)
    },
    append: function () {
      return w(this, arguments, function (a) {
        if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
          var b = r(this, a);
          b.appendChild(a)
        }
      })
    },
    prepend: function () {
      return w(this, arguments, function (a) {
        if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
          var b = r(this, a);
          b.insertBefore(a, b.firstChild)
        }
      })
    },
    before: function () {
      return w(this, arguments, function (a) {
        this.parentNode && this.parentNode.insertBefore(a, this)
      })
    },
    after: function () {
      return w(this, arguments, function (a) {
        this.parentNode && this.parentNode.insertBefore(a, this.nextSibling)
      })
    },
    empty: function () {
      for (var a, b = 0; null != (a = this[b]); b++) 1 === a.nodeType && (fa.cleanData(k(a, !1)), a.textContent = '');
      return this
    },
    clone: function (a, b) {
      return a = null != a && a,
      b = null == b ? a : b,
      this.map(function () {
        return fa.clone(this, a, b)
      })
    },
    html: function (a) {
      return xa(this, function (a) {
        var b = this[0] || {
        },
        c = 0,
        d = this.length;
        if (void 0 === a && 1 === b.nodeType) return b.innerHTML;
        if ('string' == typeof a && !Qa.test(a) && !Ka[(Ia.exec(a) || [
          '',
          ''
        ]) [1].toLowerCase()]) {
          a = fa.htmlPrefilter(a);
          try {
            for (; c < d; c++) b = this[c] || {
            },
            1 === b.nodeType && (fa.cleanData(k(b, !1)), b.innerHTML = a);
            b = 0
          } catch (e) {
          }
        }
        b && this.empty().append(a)
      }, null, a, arguments.length)
    },
    replaceWith: function () {
      var a = [
      ];
      return w(this, arguments, function (b) {
        var c = this.parentNode;
        fa.inArray(this, a) < 0 && (fa.cleanData(k(this)), c && c.replaceChild(b, this))
      }, a)
    }
  }),
  fa.each({
    appendTo: 'append',
    prependTo: 'prepend',
    insertBefore: 'before',
    insertAfter: 'after',
    replaceAll: 'replaceWith'
  }, function (a, b) {
    fa.fn[a] = function (a) {
      for (var c, d = [
      ], e = fa(a), f = e.length - 1, g = 0; g <= f; g++) c = g === f ? this : this.clone(!0),
      fa(e[g]) [b](c),
      $.apply(d, c.get());
      return this.pushStack(d)
    }
  });
  var Ua,
  Va = {
    HTML: 'block',
    BODY: 'block'
  },
  Wa = /^margin/,
  Xa = new RegExp('^(' + Da + ')(?!px)[a-z%]+$', 'i'),
  Ya = function (b) {
    var c = b.ownerDocument.defaultView;
    return c && c.opener || (c = a),
    c.getComputedStyle(b)
  },
  Za = function (a, b, c, d) {
    var e,
    f,
    g = {
    };
    for (f in b) g[f] = a.style[f],
    a.style[f] = b[f];
    e = c.apply(a, d || [
    ]);
    for (f in b) a.style[f] = g[f];
    return e
  },
  $a = X.documentElement;
  !function () {
    function b() {
      h.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%',
      h.innerHTML = '',
      $a.appendChild(g);
      var b = a.getComputedStyle(h);
      c = '1%' !== b.top,
      f = '2px' === b.marginLeft,
      d = '4px' === b.width,
      h.style.marginRight = '50%',
      e = '4px' === b.marginRight,
      $a.removeChild(g)
    }
    var c,
    d,
    e,
    f,
    g = X.createElement('div'),
    h = X.createElement('div');
    h.style && (h.style.backgroundClip = 'content-box', h.cloneNode(!0).style.backgroundClip = '', da.clearCloneStyle = 'content-box' === h.style.backgroundClip, g.style.cssText = 'border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute', g.appendChild(h), fa.extend(da, {
      pixelPosition: function () {
        return b(),
        c
      },
      boxSizingReliable: function () {
        return null == d && b(),
        d
      },
      pixelMarginRight: function () {
        return null == d && b(),
        e
      },
      reliableMarginLeft: function () {
        return null == d && b(),
        f
      },
      reliableMarginRight: function () {
        var b,
        c = h.appendChild(X.createElement('div'));
        return c.style.cssText = h.style.cssText = '-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0',
        c.style.marginRight = c.style.width = '0',
        h.style.width = '1px',
        $a.appendChild(g),
        b = !parseFloat(a.getComputedStyle(c).marginRight),
        $a.removeChild(g),
        h.removeChild(c),
        b
      }
    }))
  }();
  var _a = /^(none|table(?!-c[ea]).+)/,
  ab = {
    position: 'absolute',
    visibility: 'hidden',
    display: 'block'
  },
  bb = {
    letterSpacing: '0',
    fontWeight: '400'
  },
  cb = [
    'Webkit',
    'O',
    'Moz',
    'ms'
  ],
  db = X.createElement('div').style;
  fa.extend({
    cssHooks: {
      opacity: {
        get: function (a, b) {
          if (b) {
            var c = A(a, 'opacity');
            return '' === c ? '1' : c
          }
        }
      }
    },
    cssNumber: {
      animationIterationCount: !0,
      columnCount: !0,
      fillOpacity: !0,
      flexGrow: !0,
      flexShrink: !0,
      fontWeight: !0,
      lineHeight: !0,
      opacity: !0,
      order: !0,
      orphans: !0,
      widows: !0,
      zIndex: !0,
      zoom: !0
    },
    cssProps: {
      'float': 'cssFloat'
    },
    style: function (a, b, c, d) {
      if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
        var e,
        f,
        g,
        h = fa.camelCase(b),
        i = a.style;
        return b = fa.cssProps[h] || (fa.cssProps[h] = C(h) || h),
        g = fa.cssHooks[b] || fa.cssHooks[h],
        void 0 === c ? g && 'get' in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b] : (f = typeof c, 'string' === f && (e = Ea.exec(c)) && e[1] && (c = j(a, b, e), f = 'number'), null != c && c === c && ('number' === f && (c += e && e[3] || (fa.cssNumber[h] ? '' : 'px')), da.clearCloneStyle || '' !== c || 0 !== b.indexOf('background') || (i[b] = 'inherit'), g && 'set' in g && void 0 === (c = g.set(a, c, d)) || (i[b] = c)), void 0)
      }
    },
    css: function (a, b, c, d) {
      var e,
      f,
      g,
      h = fa.camelCase(b);
      return b = fa.cssProps[h] || (fa.cssProps[h] = C(h) || h),
      g = fa.cssHooks[b] || fa.cssHooks[h],
      g && 'get' in g && (e = g.get(a, !0, c)),
      void 0 === e && (e = A(a, b, d)),
      'normal' === e && b in bb && (e = bb[b]),
      '' === c || c ? (f = parseFloat(e), c === !0 || isFinite(f) ? f || 0 : e) : e
    }
  }),
  fa.each(['height',
  'width'], function (a, b) {
    fa.cssHooks[b] = {
      get: function (a, c, d) {
        if (c) return _a.test(fa.css(a, 'display')) && 0 === a.offsetWidth ? Za(a, ab, function () {
          return F(a, b, d)
        }) : F(a, b, d)
      },
      set: function (a, c, d) {
        var e,
        f = d && Ya(a),
        g = d && E(a, b, d, 'border-box' === fa.css(a, 'boxSizing', !1, f), f);
        return g && (e = Ea.exec(c)) && 'px' !== (e[3] || 'px') && (a.style[b] = c, c = fa.css(a, b)),
        D(a, c, g)
      }
    }
  }),
  fa.cssHooks.marginLeft = B(da.reliableMarginLeft, function (a, b) {
    if (b) return (parseFloat(A(a, 'marginLeft')) || a.getBoundingClientRect().left - Za(a, {
      marginLeft: 0
    }, function () {
      return a.getBoundingClientRect().left
    })) + 'px'
  }),
  fa.cssHooks.marginRight = B(da.reliableMarginRight, function (a, b) {
    if (b) return Za(a, {
      display: 'inline-block'
    }, A, [
      a,
      'marginRight'
    ])
  }),
  fa.each({
    margin: '',
    padding: '',
    border: 'Width'
  }, function (a, b) {
    fa.cssHooks[a + b] = {
      expand: function (c) {
        for (var d = 0, e = {
        }, f = 'string' == typeof c ? c.split(' ') : [
          c
        ]; d < 4; d++) e[a + Fa[d] + b] = f[d] || f[d - 2] || f[0];
        return e
      }
    },
    Wa.test(a) || (fa.cssHooks[a + b].set = D)
  }),
  fa.fn.extend({
    css: function (a, b) {
      return xa(this, function (a, b, c) {
        var d,
        e,
        f = {
        },
        g = 0;
        if (fa.isArray(b)) {
          for (d = Ya(a), e = b.length; g < e; g++) f[b[g]] = fa.css(a, b[g], !1, d);
          return f
        }
        return void 0 !== c ? fa.style(a, b, c) : fa.css(a, b)
      }, a, b, arguments.length > 1)
    },
    show: function () {
      return G(this, !0)
    },
    hide: function () {
      return G(this)
    },
    toggle: function (a) {
      return 'boolean' == typeof a ? a ? this.show() : this.hide() : this.each(function () {
        Ga(this) ? fa(this).show() : fa(this).hide()
      })
    }
  }),
  fa.Tween = H,
  H.prototype = {
    constructor: H,
    init: function (a, b, c, d, e, f) {
      this.elem = a,
      this.prop = c,
      this.easing = e || fa.easing._default,
      this.options = b,
      this.start = this.now = this.cur(),
      this.end = d,
      this.unit = f || (fa.cssNumber[c] ? '' : 'px')
    },
    cur: function () {
      var a = H.propHooks[this.prop];
      return a && a.get ? a.get(this) : H.propHooks._default.get(this)
    },
    run: function (a) {
      var b,
      c = H.propHooks[this.prop];
      return this.options.duration ? this.pos = b = fa.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : this.pos = b = a,
      this.now = (this.end - this.start) * b + this.start,
      this.options.step && this.options.step.call(this.elem, this.now, this),
      c && c.set ? c.set(this) : H.propHooks._default.set(this),
      this
    }
  },
  H.prototype.init.prototype = H.prototype,
  H.propHooks = {
    _default: {
      get: function (a) {
        var b;
        return 1 !== a.elem.nodeType || null != a.elem[a.prop] && null == a.elem.style[a.prop] ? a.elem[a.prop] : (b = fa.css(a.elem, a.prop, ''), b && 'auto' !== b ? b : 0)
      },
      set: function (a) {
        fa.fx.step[a.prop] ? fa.fx.step[a.prop](a) : 1 !== a.elem.nodeType || null == a.elem.style[fa.cssProps[a.prop]] && !fa.cssHooks[a.prop] ? a.elem[a.prop] = a.now : fa.style(a.elem, a.prop, a.now + a.unit)
      }
    }
  },
  H.propHooks.scrollTop = H.propHooks.scrollLeft = {
    set: function (a) {
      a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now)
    }
  },
  fa.easing = {
    linear: function (a) {
      return a
    },
    swing: function (a) {
      return 0.5 - Math.cos(a * Math.PI) / 2
    },
    _default: 'swing'
  },
  fa.fx = H.prototype.init,
  fa.fx.step = {
  };
  var eb,
  fb,
  gb = /^(?:toggle|show|hide)$/,
  hb = /queueHooks$/;
  fa.Animation = fa.extend(N, {
    tweeners: {
      '*': [
        function (a, b) {
          var c = this.createTween(a, b);
          return j(c.elem, a, Ea.exec(b), c),
          c
        }
      ]
    },
    tweener: function (a, b) {
      fa.isFunction(a) ? (b = a, a = [
        '*'
      ]) : a = a.match(va);
      for (var c, d = 0, e = a.length; d < e; d++) c = a[d],
      N.tweeners[c] = N.tweeners[c] || [
      ],
      N.tweeners[c].unshift(b)
    },
    prefilters: [
      L
    ],
    prefilter: function (a, b) {
      b ? N.prefilters.unshift(a) : N.prefilters.push(a)
    }
  }),
  fa.speed = function (a, b, c) {
    var d = a && 'object' == typeof a ? fa.extend({
    }, a) : {
      complete: c || !c && b || fa.isFunction(a) && a,
      duration: a,
      easing: c && b || b && !fa.isFunction(b) && b
    };
    return d.duration = fa.fx.off ? 0 : 'number' == typeof d.duration ? d.duration : d.duration in fa.fx.speeds ? fa.fx.speeds[d.duration] : fa.fx.speeds._default,
    null != d.queue && d.queue !== !0 || (d.queue = 'fx'),
    d.old = d.complete,
    d.complete = function () {
      fa.isFunction(d.old) && d.old.call(this),
      d.queue && fa.dequeue(this, d.queue)
    },
    d
  },
  fa.fn.extend({
    fadeTo: function (a, b, c, d) {
      return this.filter(Ga).css('opacity', 0).show().end().animate({
        opacity: b
      }, a, c, d)
    },
    animate: function (a, b, c, d) {
      var e = fa.isEmptyObject(a),
      f = fa.speed(b, c, d),
      g = function () {
        var b = N(this, fa.extend({
        }, a), f);
        (e || za.get(this, 'finish')) && b.stop(!0)
      };
      return g.finish = g,
      e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g)
    },
    stop: function (a, b, c) {
      var d = function (a) {
        var b = a.stop;
        delete a.stop,
        b(c)
      };
      return 'string' != typeof a && (c = b, b = a, a = void 0),
      b && a !== !1 && this.queue(a || 'fx', [
      ]),
      this.each(function () {
        var b = !0,
        e = null != a && a + 'queueHooks',
        f = fa.timers,
        g = za.get(this);
        if (e) g[e] && g[e].stop && d(g[e]);
         else for (e in g) g[e] && g[e].stop && hb.test(e) && d(g[e]);
        for (e = f.length; e--; ) f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1));
        !b && c || fa.dequeue(this, a)
      })
    },
    finish: function (a) {
      return a !== !1 && (a = a || 'fx'),
      this.each(function () {
        var b,
        c = za.get(this),
        d = c[a + 'queue'],
        e = c[a + 'queueHooks'],
        f = fa.timers,
        g = d ? d.length : 0;
        for (c.finish = !0, fa.queue(this, a, [
        ]), e && e.stop && e.stop.call(this, !0), b = f.length; b--; ) f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1));
        for (b = 0; b < g; b++) d[b] && d[b].finish && d[b].finish.call(this);
        delete c.finish
      })
    }
  }),
  fa.each(['toggle',
  'show',
  'hide'], function (a, b) {
    var c = fa.fn[b];
    fa.fn[b] = function (a, d, e) {
      return null == a || 'boolean' == typeof a ? c.apply(this, arguments) : this.animate(J(b, !0), a, d, e)
    }
  }),
  fa.each({
    slideDown: J('show'),
    slideUp: J('hide'),
    slideToggle: J('toggle'),
    fadeIn: {
      opacity: 'show'
    },
    fadeOut: {
      opacity: 'hide'
    },
    fadeToggle: {
      opacity: 'toggle'
    }
  }, function (a, b) {
    fa.fn[a] = function (a, c, d) {
      return this.animate(b, a, c, d)
    }
  }),
  fa.timers = [
  ],
  fa.fx.tick = function () {
    var a,
    b = 0,
    c = fa.timers;
    for (eb = fa.now(); b < c.length; b++) a = c[b],
    a() || c[b] !== a || c.splice(b--, 1);
    c.length || fa.fx.stop(),
    eb = void 0
  },
  fa.fx.timer = function (a) {
    fa.timers.push(a),
    a() ? fa.fx.start() : fa.timers.pop()
  },
  fa.fx.interval = 13,
  fa.fx.start = function () {
    fb || (fb = a.setInterval(fa.fx.tick, fa.fx.interval))
  },
  fa.fx.stop = function () {
    a.clearInterval(fb),
    fb = null
  },
  fa.fx.speeds = {
    slow: 600,
    fast: 200,
    _default: 400
  },
  fa.fn.delay = function (b, c) {
    return b = fa.fx ? fa.fx.speeds[b] || b : b,
    c = c || 'fx',
    this.queue(c, function (c, d) {
      var e = a.setTimeout(c, b);
      d.stop = function () {
        a.clearTimeout(e)
      }
    })
  },
  function () {
    var a = X.createElement('input'),
    b = X.createElement('select'),
    c = b.appendChild(X.createElement('option'));
    a.type = 'checkbox',
    da.checkOn = '' !== a.value,
    da.optSelected = c.selected,
    b.disabled = !0,
    da.optDisabled = !c.disabled,
    a = X.createElement('input'),
    a.value = 't',
    a.type = 'radio',
    da.radioValue = 't' === a.value
  }();
  var ib,
  jb = fa.expr.attrHandle;
  fa.fn.extend({
    attr: function (a, b) {
      return xa(this, fa.attr, a, b, arguments.length > 1)
    },
    removeAttr: function (a) {
      return this.each(function () {
        fa.removeAttr(this, a)
      })
    }
  }),
  fa.extend({
    attr: function (a, b, c) {
      var d,
      e,
      f = a.nodeType;
      if (3 !== f && 8 !== f && 2 !== f) return 'undefined' == typeof a.getAttribute ? fa.prop(a, b, c) : (1 === f && fa.isXMLDoc(a) || (b = b.toLowerCase(), e = fa.attrHooks[b] || (fa.expr.match.bool.test(b) ? ib : void 0)), void 0 !== c ? null === c ? void fa.removeAttr(a, b) : e && 'set' in e && void 0 !== (d = e.set(a, c, b)) ? d : (a.setAttribute(b, c + ''), c) : e && 'get' in e && null !== (d = e.get(a, b)) ? d : (d = fa.find.attr(a, b), null == d ? void 0 : d))
    },
    attrHooks: {
      type: {
        set: function (a, b) {
          if (!da.radioValue && 'radio' === b && fa.nodeName(a, 'input')) {
            var c = a.value;
            return a.setAttribute('type', b),
            c && (a.value = c),
            b
          }
        }
      }
    },
    removeAttr: function (a, b) {
      var c,
      d,
      e = 0,
      f = b && b.match(va);
      if (f && 1 === a.nodeType) for (; c = f[e++]; ) d = fa.propFix[c] || c,
      fa.expr.match.bool.test(c) && (a[d] = !1),
      a.removeAttribute(c)
    }
  }),
  ib = {
    set: function (a, b, c) {
      return b === !1 ? fa.removeAttr(a, c) : a.setAttribute(c, c),
      c
    }
  },
  fa.each(fa.expr.match.bool.source.match(/\w+/g), function (a, b) {
    var c = jb[b] || fa.find.attr;
    jb[b] = function (a, b, d) {
      var e,
      f;
      return d || (f = jb[b], jb[b] = e, e = null != c(a, b, d) ? b.toLowerCase() : null, jb[b] = f),
      e
    }
  });
  var kb = /^(?:input|select|textarea|button)$/i,
  lb = /^(?:a|area)$/i;
  fa.fn.extend({
    prop: function (a, b) {
      return xa(this, fa.prop, a, b, arguments.length > 1)
    },
    removeProp: function (a) {
      return this.each(function () {
        delete this[fa.propFix[a] || a]
      })
    }
  }),
  fa.extend({
    prop: function (a, b, c) {
      var d,
      e,
      f = a.nodeType;
      if (3 !== f && 8 !== f && 2 !== f) return 1 === f && fa.isXMLDoc(a) || (b = fa.propFix[b] || b, e = fa.propHooks[b]),
      void 0 !== c ? e && 'set' in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && 'get' in e && null !== (d = e.get(a, b)) ? d : a[b]
    },
    propHooks: {
      tabIndex: {
        get: function (a) {
          var b = fa.find.attr(a, 'tabindex');
          return b ? parseInt(b, 10) : kb.test(a.nodeName) || lb.test(a.nodeName) && a.href ? 0 : - 1
        }
      }
    },
    propFix: {
      'for': 'htmlFor',
      'class': 'className'
    }
  }),
  da.optSelected || (fa.propHooks.selected = {
    get: function (a) {
      var b = a.parentNode;
      return b && b.parentNode && b.parentNode.selectedIndex,
      null
    },
    set: function (a) {
      var b = a.parentNode;
      b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex)
    }
  }),
  fa.each(['tabIndex',
  'readOnly',
  'maxLength',
  'cellSpacing',
  'cellPadding',
  'rowSpan',
  'colSpan',
  'useMap',
  'frameBorder',
  'contentEditable'], function () {
    fa.propFix[this.toLowerCase()] = this
  });
  var mb = /[\t\r\n\f]/g;
  fa.fn.extend({
    addClass: function (a) {
      var b,
      c,
      d,
      e,
      f,
      g,
      h,
      i = 0;
      if (fa.isFunction(a)) return this.each(function (b) {
        fa(this).addClass(a.call(this, b, O(this)))
      });
      if ('string' == typeof a && a) for (b = a.match(va) || [
      ]; c = this[i++]; ) if (e = O(c), d = 1 === c.nodeType && (' ' + e + ' ').replace(mb, ' ')) {
        for (g = 0; f = b[g++]; ) d.indexOf(' ' + f + ' ') < 0 && (d += f + ' ');
        h = fa.trim(d),
        e !== h && c.setAttribute('class', h)
      }
      return this
    },
    removeClass: function (a) {
      var b,
      c,
      d,
      e,
      f,
      g,
      h,
      i = 0;
      if (fa.isFunction(a)) return this.each(function (b) {
        fa(this).removeClass(a.call(this, b, O(this)))
      });
      if (!arguments.length) return this.attr('class', '');
      if ('string' == typeof a && a) for (b = a.match(va) || [
      ]; c = this[i++]; ) if (e = O(c), d = 1 === c.nodeType && (' ' + e + ' ').replace(mb, ' ')) {
        for (g = 0; f = b[g++]; ) for (; d.indexOf(' ' + f + ' ') > - 1; ) d = d.replace(' ' + f + ' ', ' ');
        h = fa.trim(d),
        e !== h && c.setAttribute('class', h)
      }
      return this
    },
    toggleClass: function (a, b) {
      var c = typeof a;
      return 'boolean' == typeof b && 'string' === c ? b ? this.addClass(a) : this.removeClass(a) : fa.isFunction(a) ? this.each(function (c) {
        fa(this).toggleClass(a.call(this, c, O(this), b), b)
      }) : this.each(function () {
        var b,
        d,
        e,
        f;
        if ('string' === c) for (d = 0, e = fa(this), f = a.match(va) || [
        ]; b = f[d++]; ) e.hasClass(b) ? e.removeClass(b) : e.addClass(b);
         else void 0 !== a && 'boolean' !== c || (b = O(this), b && za.set(this, '__className__', b), this.setAttribute && this.setAttribute('class', b || a === !1 ? '' : za.get(this, '__className__') || ''))
      })
    },
    hasClass: function (a) {
      var b,
      c,
      d = 0;
      for (b = ' ' + a + ' '; c = this[d++]; ) if (1 === c.nodeType && (' ' + O(c) + ' ').replace(mb, ' ').indexOf(b) > - 1) return !0;
      return !1
    }
  });
  var nb = /\r/g,
  ob = /[\x20\t\r\n\f]+/g;
  fa.fn.extend({
    val: function (a) {
      var b,
      c,
      d,
      e = this[0];
      {
        if (arguments.length) return d = fa.isFunction(a),
        this.each(function (c) {
          var e;
          1 === this.nodeType && (e = d ? a.call(this, c, fa(this).val()) : a, null == e ? e = '' : 'number' == typeof e ? e += '' : fa.isArray(e) && (e = fa.map(e, function (a) {
            return null == a ? '' : a + ''
          })), b = fa.valHooks[this.type] || fa.valHooks[this.nodeName.toLowerCase()], b && 'set' in b && void 0 !== b.set(this, e, 'value') || (this.value = e))
        });
        if (e) return b = fa.valHooks[e.type] || fa.valHooks[e.nodeName.toLowerCase()],
        b && 'get' in b && void 0 !== (c = b.get(e, 'value')) ? c : (c = e.value, 'string' == typeof c ? c.replace(nb, '') : null == c ? '' : c)
      }
    }
  }),
  fa.extend({
    valHooks: {
      option: {
        get: function (a) {
          var b = fa.find.attr(a, 'value');
          return null != b ? b : fa.trim(fa.text(a)).replace(ob, ' ')
        }
      },
      select: {
        get: function (a) {
          for (var b, c, d = a.options, e = a.selectedIndex, f = 'select-one' === a.type || e < 0, g = f ? null : [
          ], h = f ? e + 1 : d.length, i = e < 0 ? h : f ? e : 0; i < h; i++) if (c = d[i], (c.selected || i === e) && (da.optDisabled ? !c.disabled : null === c.getAttribute('disabled')) && (!c.parentNode.disabled || !fa.nodeName(c.parentNode, 'optgroup'))) {
            if (b = fa(c).val(), f) return b;
            g.push(b)
          }
          return g
        },
        set: function (a, b) {
          for (var c, d, e = a.options, f = fa.makeArray(b), g = e.length; g--; ) d = e[g],
          (d.selected = fa.inArray(fa.valHooks.option.get(d), f) > - 1) && (c = !0);
          return c || (a.selectedIndex = - 1),
          f
        }
      }
    }
  }),
  fa.each(['radio',
  'checkbox'], function () {
    fa.valHooks[this] = {
      set: function (a, b) {
        if (fa.isArray(b)) return a.checked = fa.inArray(fa(a).val(), b) > - 1
      }
    },
    da.checkOn || (fa.valHooks[this].get = function (a) {
      return null === a.getAttribute('value') ? 'on' : a.value
    })
  });
  var pb = /^(?:focusinfocus|focusoutblur)$/;
  fa.extend(fa.event, {
    trigger: function (b, c, d, e) {
      var f,
      g,
      h,
      i,
      j,
      k,
      l,
      m = [
        d || X
      ],
      n = ca.call(b, 'type') ? b.type : b,
      o = ca.call(b, 'namespace') ? b.namespace.split('.') : [
      ];
      if (g = h = d = d || X, 3 !== d.nodeType && 8 !== d.nodeType && !pb.test(n + fa.event.triggered) && (n.indexOf('.') > - 1 && (o = n.split('.'), n = o.shift(), o.sort()), j = n.indexOf(':') < 0 && 'on' + n, b = b[fa.expando] ? b : new fa.Event(n, 'object' == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = o.join('.'), b.rnamespace = b.namespace ? new RegExp('(^|\\.)' + o.join('\\.(?:.*\\.|)') + '(\\.|$)') : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [
        b
      ] : fa.makeArray(c, [
        b
      ]), l = fa.event.special[n] || {
      }, e || !l.trigger || l.trigger.apply(d, c) !== !1)) {
        if (!e && !l.noBubble && !fa.isWindow(d)) {
          for (i = l.delegateType || n, pb.test(i + n) || (g = g.parentNode); g; g = g.parentNode) m.push(g),
          h = g;
          h === (d.ownerDocument || X) && m.push(h.defaultView || h.parentWindow || a)
        }
        for (f = 0; (g = m[f++]) && !b.isPropagationStopped(); ) b.type = f > 1 ? i : l.bindType || n,
        k = (za.get(g, 'events') || {
        }) [b.type] && za.get(g, 'handle'),
        k && k.apply(g, c),
        k = j && g[j],
        k && k.apply && ya(g) && (b.result = k.apply(g, c), b.result === !1 && b.preventDefault());
        return b.type = n,
        e || b.isDefaultPrevented() || l._default && l._default.apply(m.pop(), c) !== !1 || !ya(d) || j && fa.isFunction(d[n]) && !fa.isWindow(d) && (h = d[j], h && (d[j] = null), fa.event.triggered = n, d[n](), fa.event.triggered = void 0, h && (d[j] = h)),
        b.result
      }
    },
    simulate: function (a, b, c) {
      var d = fa.extend(new fa.Event, c, {
        type: a,
        isSimulated: !0
      });
      fa.event.trigger(d, null, b)
    }
  }),
  fa.fn.extend({
    trigger: function (a, b) {
      return this.each(function () {
        fa.event.trigger(a, b, this)
      })
    },
    triggerHandler: function (a, b) {
      var c = this[0];
      if (c) return fa.event.trigger(a, b, c, !0)
    }
  }),
  fa.each('blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu'.split(' '), function (a, b) {
    fa.fn[b] = function (a, c) {
      return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b)
    }
  }),
  fa.fn.extend({
    hover: function (a, b) {
      return this.mouseenter(a).mouseleave(b || a)
    }
  }),
  da.focusin = 'onfocusin' in a,
  da.focusin || fa.each({
    focus: 'focusin',
    blur: 'focusout'
  }, function (a, b) {
    var c = function (a) {
      fa.event.simulate(b, a.target, fa.event.fix(a))
    };
    fa.event.special[b] = {
      setup: function () {
        var d = this.ownerDocument || this,
        e = za.access(d, b);
        e || d.addEventListener(a, c, !0),
        za.access(d, b, (e || 0) + 1)
      },
      teardown: function () {
        var d = this.ownerDocument || this,
        e = za.access(d, b) - 1;
        e ? za.access(d, b, e) : (d.removeEventListener(a, c, !0), za.remove(d, b))
      }
    }
  });
  var qb = a.location,
  rb = fa.now(),
  sb = /\?/;
  fa.parseJSON = function (a) {
    return JSON.parse(a + '')
  },
  fa.parseXML = function (b) {
    var c;
    if (!b || 'string' != typeof b) return null;
    try {
      c = (new a.DOMParser).parseFromString(b, 'text/xml')
    } catch (d) {
      c = void 0
    }
    return c && !c.getElementsByTagName('parsererror').length || fa.error('Invalid XML: ' + b),
    c
  };
  var tb = /#.*$/,
  ub = /([?&])_=[^&]*/,
  vb = /^(.*?):[ \t]*([^\r\n]*)$/gm,
  wb = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
  xb = /^(?:GET|HEAD)$/,
  yb = /^\/\//,
  zb = {
  },
  Ab = {
  },
  Bb = '*/'.concat('*'),
  Cb = X.createElement('a');
  Cb.href = qb.href,
  fa.extend({
    active: 0,
    lastModified: {
    },
    etag: {
    },
    ajaxSettings: {
      url: qb.href,
      type: 'GET',
      isLocal: wb.test(qb.protocol),
      global: !0,
      processData: !0,
      async: !0,
      contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
      accepts: {
        '*': Bb,
        text: 'text/plain',
        html: 'text/html',
        xml: 'application/xml, text/xml',
        json: 'application/json, text/javascript'
      },
      contents: {
        xml: /\bxml\b/,
        html: /\bhtml/,
        json: /\bjson\b/
      },
      responseFields: {
        xml: 'responseXML',
        text: 'responseText',
        json: 'responseJSON'
      },
      converters: {
        '* text': String,
        'text html': !0,
        'text json': fa.parseJSON,
        'text xml': fa.parseXML
      },
      flatOptions: {
        url: !0,
        context: !0
      }
    },
    ajaxSetup: function (a, b) {
      return b ? R(R(a, fa.ajaxSettings), b) : R(fa.ajaxSettings, a)
    },
    ajaxPrefilter: P(zb),
    ajaxTransport: P(Ab),
    ajax: function (b, c) {
      function d(b, c, d, h) {
        var j,
        l,
        s,
        t,
        v,
        x = c;
        2 !== u && (u = 2, i && a.clearTimeout(i), e = void 0, g = h || '', w.readyState = b > 0 ? 4 : 0, j = b >= 200 && b < 300 || 304 === b, d && (t = S(m, w, d)), t = T(m, t, w, j), j ? (m.ifModified && (v = w.getResponseHeader('Last-Modified'), v && (fa.lastModified[f] = v), v = w.getResponseHeader('etag'), v && (fa.etag[f] = v)), 204 === b || 'HEAD' === m.type ? x = 'nocontent' : 304 === b ? x = 'notmodified' : (x = t.state, l = t.data, s = t.error, j = !s)) : (s = x, !b && x || (x = 'error', b < 0 && (b = 0))), w.status = b, w.statusText = (c || x) + '', j ? p.resolveWith(n, [
          l,
          x,
          w
        ]) : p.rejectWith(n, [
          w,
          x,
          s
        ]), w.statusCode(r), r = void 0, k && o.trigger(j ? 'ajaxSuccess' : 'ajaxError', [
          w,
          m,
          j ? l : s
        ]), q.fireWith(n, [
          w,
          x
        ]), k && (o.trigger('ajaxComplete', [
          w,
          m
        ]), --fa.active || fa.event.trigger('ajaxStop')))
      }
      'object' == typeof b && (c = b, b = void 0),
      c = c || {
      };
      var e,
      f,
      g,
      h,
      i,
      j,
      k,
      l,
      m = fa.ajaxSetup({
      }, c),
      n = m.context || m,
      o = m.context && (n.nodeType || n.jquery) ? fa(n) : fa.event,
      p = fa.Deferred(),
      q = fa.Callbacks('once memory'),
      r = m.statusCode || {
      },
      s = {
      },
      t = {
      },
      u = 0,
      v = 'canceled',
      w = {
        readyState: 0,
        getResponseHeader: function (a) {
          var b;
          if (2 === u) {
            if (!h) for (h = {
            }; b = vb.exec(g); ) h[b[1].toLowerCase()] = b[2];
            b = h[a.toLowerCase()]
          }
          return null == b ? null : b
        },
        getAllResponseHeaders: function () {
          return 2 === u ? g : null
        },
        setRequestHeader: function (a, b) {
          var c = a.toLowerCase();
          return u || (a = t[c] = t[c] || a, s[a] = b),
          this
        },
        overrideMimeType: function (a) {
          return u || (m.mimeType = a),
          this
        },
        statusCode: function (a) {
          var b;
          if (a) if (u < 2) for (b in a) r[b] = [
            r[b],
            a[b]
          ];
           else w.always(a[w.status]);
          return this
        },
        abort: function (a) {
          var b = a || v;
          return e && e.abort(b),
          d(0, b),
          this
        }
      };
      if (p.promise(w).complete = q.add, w.success = w.done, w.error = w.fail, m.url = ((b || m.url || qb.href) + '').replace(tb, '').replace(yb, qb.protocol + '//'), m.type = c.method || c.type || m.method || m.type, m.dataTypes = fa.trim(m.dataType || '*').toLowerCase().match(va) || [
        ''
      ], null == m.crossDomain) {
        j = X.createElement('a');
        try {
          j.href = m.url,
          j.href = j.href,
          m.crossDomain = Cb.protocol + '//' + Cb.host != j.protocol + '//' + j.host
        } catch (x) {
          m.crossDomain = !0
        }
      }
      if (m.data && m.processData && 'string' != typeof m.data && (m.data = fa.param(m.data, m.traditional)), Q(zb, m, c, w), 2 === u) return w;
      k = fa.event && m.global,
      k && 0 === fa.active++ && fa.event.trigger('ajaxStart'),
      m.type = m.type.toUpperCase(),
      m.hasContent = !xb.test(m.type),
      f = m.url,
      m.hasContent || (m.data && (f = m.url += (sb.test(f) ? '&' : '?') + m.data, delete m.data), m.cache === !1 && (m.url = ub.test(f) ? f.replace(ub, '$1_=' + rb++) : f + (sb.test(f) ? '&' : '?') + '_=' + rb++)),
      m.ifModified && (fa.lastModified[f] && w.setRequestHeader('If-Modified-Since', fa.lastModified[f]), fa.etag[f] && w.setRequestHeader('If-None-Match', fa.etag[f])),
      (m.data && m.hasContent && m.contentType !== !1 || c.contentType) && w.setRequestHeader('Content-Type', m.contentType),
      w.setRequestHeader('Accept', m.dataTypes[0] && m.accepts[m.dataTypes[0]] ? m.accepts[m.dataTypes[0]] + ('*' !== m.dataTypes[0] ? ', ' + Bb + '; q=0.01' : '') : m.accepts['*']);
      for (l in m.headers) w.setRequestHeader(l, m.headers[l]);
      if (m.beforeSend && (m.beforeSend.call(n, w, m) === !1 || 2 === u)) return w.abort();
      v = 'abort';
      for (l in {
        success: 1,
        error: 1,
        complete: 1
      }) w[l](m[l]);
      if (e = Q(Ab, m, c, w)) {
        if (w.readyState = 1, k && o.trigger('ajaxSend', [
          w,
          m
        ]), 2 === u) return w;
        m.async && m.timeout > 0 && (i = a.setTimeout(function () {
          w.abort('timeout')
        }, m.timeout));
        try {
          u = 1,
          e.send(s, d)
        } catch (x) {
          if (!(u < 2)) throw x;
          d( - 1, x)
        }
      } else d( - 1, 'No Transport');
      return w
    },
    getJSON: function (a, b, c) {
      return fa.get(a, b, c, 'json')
    },
    getScript: function (a, b) {
      return fa.get(a, void 0, b, 'script')
    }
  }),
  fa.each(['get',
  'post'], function (a, b) {
    fa[b] = function (a, c, d, e) {
      return fa.isFunction(c) && (e = e || d, d = c, c = void 0),
      fa.ajax(fa.extend({
        url: a,
        type: b,
        dataType: e,
        data: c,
        success: d
      }, fa.isPlainObject(a) && a))
    }
  }),
  fa._evalUrl = function (a) {
    return fa.ajax({
      url: a,
      type: 'GET',
      dataType: 'script',
      async: !1,
      global: !1,
      'throws': !0
    })
  },
  fa.fn.extend({
    wrapAll: function (a) {
      var b;
      return fa.isFunction(a) ? this.each(function (b) {
        fa(this).wrapAll(a.call(this, b))
      }) : (this[0] && (b = fa(a, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && b.insertBefore(this[0]), b.map(function () {
        for (var a = this; a.firstElementChild; ) a = a.firstElementChild;
        return a
      }).append(this)), this)
    },
    wrapInner: function (a) {
      return fa.isFunction(a) ? this.each(function (b) {
        fa(this).wrapInner(a.call(this, b))
      }) : this.each(function () {
        var b = fa(this),
        c = b.contents();
        c.length ? c.wrapAll(a) : b.append(a)
      })
    },
    wrap: function (a) {
      var b = fa.isFunction(a);
      return this.each(function (c) {
        fa(this).wrapAll(b ? a.call(this, c) : a)
      })
    },
    unwrap: function () {
      return this.parent().each(function () {
        fa.nodeName(this, 'body') || fa(this).replaceWith(this.childNodes)
      }).end()
    }
  }),
  fa.expr.filters.hidden = function (a) {
    return !fa.expr.filters.visible(a)
  },
  fa.expr.filters.visible = function (a) {
    return a.offsetWidth > 0 || a.offsetHeight > 0 || a.getClientRects().length > 0
  };
  var Db = /%20/g,
  Eb = /\[\]$/,
  Fb = /\r?\n/g,
  Gb = /^(?:submit|button|image|reset|file)$/i,
  Hb = /^(?:input|select|textarea|keygen)/i;
  fa.param = function (a, b) {
    var c,
    d = [
    ],
    e = function (a, b) {
      b = fa.isFunction(b) ? b() : null == b ? '' : b,
      d[d.length] = encodeURIComponent(a) + '=' + encodeURIComponent(b)
    };
    if (void 0 === b && (b = fa.ajaxSettings && fa.ajaxSettings.traditional), fa.isArray(a) || a.jquery && !fa.isPlainObject(a)) fa.each(a, function () {
      e(this.name, this.value)
    });
     else for (c in a) U(c, a[c], b, e);
    return d.join('&').replace(Db, '+')
  },
  fa.fn.extend({
    serialize: function () {
      return fa.param(this.serializeArray())
    },
    serializeArray: function () {
      return this.map(function () {
        var a = fa.prop(this, 'elements');
        return a ? fa.makeArray(a) : this
      }).filter(function () {
        var a = this.type;
        return this.name && !fa(this).is(':disabled') && Hb.test(this.nodeName) && !Gb.test(a) && (this.checked || !Ha.test(a))
      }).map(function (a, b) {
        var c = fa(this).val();
        return null == c ? null : fa.isArray(c) ? fa.map(c, function (a) {
          return {
            name: b.name,
            value: a.replace(Fb, '\r\n')
          }
        }) : {
          name: b.name,
          value: c.replace(Fb, '\r\n')
        }
      }).get()
    }
  }),
  fa.ajaxSettings.xhr = function () {
    try {
      return new a.XMLHttpRequest
    } catch (b) {
    }
  };
  var Ib = {
    0: 200,
    1223: 204
  },
  Jb = fa.ajaxSettings.xhr();
  da.cors = !!Jb && 'withCredentials' in Jb,
  da.ajax = Jb = !!Jb,
  fa.ajaxTransport(function (b) {
    var c,
    d;
    if (da.cors || Jb && !b.crossDomain) return {
      send: function (e, f) {
        var g,
        h = b.xhr();
        if (h.open(b.type, b.url, b.async, b.username, b.password), b.xhrFields) for (g in b.xhrFields) h[g] = b.xhrFields[g];
        b.mimeType && h.overrideMimeType && h.overrideMimeType(b.mimeType),
        b.crossDomain || e['X-Requested-With'] || (e['X-Requested-With'] = 'XMLHttpRequest');
        for (g in e) h.setRequestHeader(g, e[g]);
        c = function (a) {
          return function () {
            c && (c = d = h.onload = h.onerror = h.onabort = h.onreadystatechange = null, 'abort' === a ? h.abort() : 'error' === a ? 'number' != typeof h.status ? f(0, 'error') : f(h.status, h.statusText) : f(Ib[h.status] || h.status, h.statusText, 'text' !== (h.responseType || 'text') || 'string' != typeof h.responseText ? {
              binary: h.response
            }
             : {
              text: h.responseText
            }, h.getAllResponseHeaders()))
          }
        },
        h.onload = c(),
        d = h.onerror = c('error'),
        void 0 !== h.onabort ? h.onabort = d : h.onreadystatechange = function () {
          4 === h.readyState && a.setTimeout(function () {
            c && d()
          })
        },
        c = c('abort');
        try {
          h.send(b.hasContent && b.data || null)
        } catch (i) {
          if (c) throw i
        }
      },
      abort: function () {
        c && c()
      }
    }
  }),
  fa.ajaxSetup({
    accepts: {
      script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'
    },
    contents: {
      script: /\b(?:java|ecma)script\b/
    },
    converters: {
      'text script': function (a) {
        return fa.globalEval(a),
        a
      }
    }
  }),
  fa.ajaxPrefilter('script', function (a) {
    void 0 === a.cache && (a.cache = !1),
    a.crossDomain && (a.type = 'GET')
  }),
  fa.ajaxTransport('script', function (a) {
    if (a.crossDomain) {
      var b,
      c;
      return {
        send: function (d, e) {
          b = fa('<script>').prop({
            charset: a.scriptCharset,
            src: a.url
          }).on('load error', c = function (a) {
            b.remove(),
            c = null,
            a && e('error' === a.type ? 404 : 200, a.type)
          }),
          X.head.appendChild(b[0])
        },
        abort: function () {
          c && c()
        }
      }
    }
  });
  var Kb = [
  ],
  Lb = /(=)\?(?=&|$)|\?\?/;
  fa.ajaxSetup({
    jsonp: 'callback',
    jsonpCallback: function () {
      var a = Kb.pop() || fa.expando + '_' + rb++;
      return this[a] = !0,
      a
    }
  }),
  fa.ajaxPrefilter('json jsonp', function (b, c, d) {
    var e,
    f,
    g,
    h = b.jsonp !== !1 && (Lb.test(b.url) ? 'url' : 'string' == typeof b.data && 0 === (b.contentType || '').indexOf('application/x-www-form-urlencoded') && Lb.test(b.data) && 'data');
    if (h || 'jsonp' === b.dataTypes[0]) return e = b.jsonpCallback = fa.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback,
    h ? b[h] = b[h].replace(Lb, '$1' + e) : b.jsonp !== !1 && (b.url += (sb.test(b.url) ? '&' : '?') + b.jsonp + '=' + e),
    b.converters['script json'] = function () {
      return g || fa.error(e + ' was not called'),
      g[0]
    },
    b.dataTypes[0] = 'json',
    f = a[e],
    a[e] = function () {
      g = arguments
    },
    d.always(function () {
      void 0 === f ? fa(a).removeProp(e) : a[e] = f,
      b[e] && (b.jsonpCallback = c.jsonpCallback, Kb.push(e)),
      g && fa.isFunction(f) && f(g[0]),
      g = f = void 0
    }),
    'script'
  }),
  fa.parseHTML = function (a, b, c) {
    if (!a || 'string' != typeof a) return null;
    'boolean' == typeof b && (c = b, b = !1),
    b = b || X;
    var d = oa.exec(a),
    e = !c && [
    ];
    return d ? [
      b.createElement(d[1])
    ] : (d = m([a], b, e), e && e.length && fa(e).remove(), fa.merge([], d.childNodes))
  };
  var Mb = fa.fn.load;
  fa.fn.load = function (a, b, c) {
    if ('string' != typeof a && Mb) return Mb.apply(this, arguments);
    var d,
    e,
    f,
    g = this,
    h = a.indexOf(' ');
    return h > - 1 && (d = fa.trim(a.slice(h)), a = a.slice(0, h)),
    fa.isFunction(b) ? (c = b, b = void 0) : b && 'object' == typeof b && (e = 'POST'),
    g.length > 0 && fa.ajax({
      url: a,
      type: e || 'GET',
      dataType: 'html',
      data: b
    }).done(function (a) {
      f = arguments,
      g.html(d ? fa('<div>').append(fa.parseHTML(a)).find(d) : a)
    }).always(c && function (a, b) {
      g.each(function () {
        c.apply(this, f || [
          a.responseText,
          b,
          a
        ])
      })
    }),
    this
  },
  fa.each(['ajaxStart',
  'ajaxStop',
  'ajaxComplete',
  'ajaxError',
  'ajaxSuccess',
  'ajaxSend'], function (a, b) {
    fa.fn[b] = function (a) {
      return this.on(b, a)
    }
  }),
  fa.expr.filters.animated = function (a) {
    return fa.grep(fa.timers, function (b) {
      return a === b.elem
    }).length
  },
  fa.offset = {
    setOffset: function (a, b, c) {
      var d,
      e,
      f,
      g,
      h,
      i,
      j,
      k = fa.css(a, 'position'),
      l = fa(a),
      m = {
      };
      'static' === k && (a.style.position = 'relative'),
      h = l.offset(),
      f = fa.css(a, 'top'),
      i = fa.css(a, 'left'),
      j = ('absolute' === k || 'fixed' === k) && (f + i).indexOf('auto') > - 1,
      j ? (d = l.position(), g = d.top, e = d.left) : (g = parseFloat(f) || 0, e = parseFloat(i) || 0),
      fa.isFunction(b) && (b = b.call(a, c, fa.extend({
      }, h))),
      null != b.top && (m.top = b.top - h.top + g),
      null != b.left && (m.left = b.left - h.left + e),
      'using' in b ? b.using.call(a, m) : l.css(m)
    }
  },
  fa.fn.extend({
    offset: function (a) {
      if (arguments.length) return void 0 === a ? this : this.each(function (b) {
        fa.offset.setOffset(this, a, b)
      });
      var b,
      c,
      d = this[0],
      e = {
        top: 0,
        left: 0
      },
      f = d && d.ownerDocument;
      if (f) return b = f.documentElement,
      fa.contains(b, d) ? (e = d.getBoundingClientRect(), c = V(f), {
        top: e.top + c.pageYOffset - b.clientTop,
        left: e.left + c.pageXOffset - b.clientLeft
      }) : e
    },
    position: function () {
      if (this[0]) {
        var a,
        b,
        c = this[0],
        d = {
          top: 0,
          left: 0
        };
        return 'fixed' === fa.css(c, 'position') ? b = c.getBoundingClientRect() : (a = this.offsetParent(), b = this.offset(), fa.nodeName(a[0], 'html') || (d = a.offset()), d.top += fa.css(a[0], 'borderTopWidth', !0), d.left += fa.css(a[0], 'borderLeftWidth', !0)),
        {
          top: b.top - d.top - fa.css(c, 'marginTop', !0),
          left: b.left - d.left - fa.css(c, 'marginLeft', !0)
        }
      }
    },
    offsetParent: function () {
      return this.map(function () {
        for (var a = this.offsetParent; a && 'static' === fa.css(a, 'position'); ) a = a.offsetParent;
        return a || $a
      })
    }
  }),
  fa.each({
    scrollLeft: 'pageXOffset',
    scrollTop: 'pageYOffset'
  }, function (a, b) {
    var c = 'pageYOffset' === b;
    fa.fn[a] = function (d) {
      return xa(this, function (a, d, e) {
        var f = V(a);
        return void 0 === e ? f ? f[b] : a[d] : void (f ? f.scrollTo(c ? f.pageXOffset : e, c ? e : f.pageYOffset) : a[d] = e)
      }, a, d, arguments.length)
    }
  }),
  fa.each(['top',
  'left'], function (a, b) {
    fa.cssHooks[b] = B(da.pixelPosition, function (a, c) {
      if (c) return c = A(a, b),
      Xa.test(c) ? fa(a).position() [b] + 'px' : c
    })
  }),
  fa.each({
    Height: 'height',
    Width: 'width'
  }, function (a, b) {
    fa.each({
      padding: 'inner' + a,
      content: b,
      '': 'outer' + a
    }, function (c, d) {
      fa.fn[d] = function (d, e) {
        var f = arguments.length && (c || 'boolean' != typeof d),
        g = c || (d === !0 || e === !0 ? 'margin' : 'border');
        return xa(this, function (b, c, d) {
          var e;
          return fa.isWindow(b) ? b.document.documentElement['client' + a] : 9 === b.nodeType ? (e = b.documentElement, Math.max(b.body['scroll' + a], e['scroll' + a], b.body['offset' + a], e['offset' + a], e['client' + a])) : void 0 === d ? fa.css(b, c, g) : fa.style(b, c, d, g)
        }, b, f ? d : void 0, f, null)
      }
    })
  }),
  fa.fn.extend({
    bind: function (a, b, c) {
      return this.on(a, null, b, c)
    },
    unbind: function (a, b) {
      return this.off(a, null, b)
    },
    delegate: function (a, b, c, d) {
      return this.on(b, a, c, d)
    },
    undelegate: function (a, b, c) {
      return 1 === arguments.length ? this.off(a, '**') : this.off(b, a || '**', c)
    },
    size: function () {
      return this.length
    }
  }),
  fa.fn.andSelf = fa.fn.addBack,
  'function' == typeof define && define.amd && define('jquery', [
  ], function () {
    return fa
  });
  var Nb = a.jQuery,
  Ob = a.$;
  return fa.noConflict = function (b) {
    return a.$ === fa && (a.$ = Ob),
    b && a.jQuery === fa && (a.jQuery = Nb),
    fa
  },
  b || (a.jQuery = a.$ = fa),
  fa
}),
function () {
  function a(a) {
    function b(b, c, d, e, f, g) {
      for (; f >= 0 && f < g; f += a) {
        var h = e ? e[f] : f;
        d = c(d, b[h], h, b)
      }
      return d
    }
    return function (c, d, e, f) {
      d = t(d, f, 4);
      var g = !A(c) && s.keys(c),
      h = (g || c).length,
      i = a > 0 ? 0 : h - 1;
      return arguments.length < 3 && (e = c[g ? g[i] : i], i += a),
      b(c, d, e, g, i, h)
    }
  }
  function b(a) {
    return function (b, c, d) {
      c = u(c, d);
      for (var e = z(b), f = a > 0 ? 0 : e - 1; f >= 0 && f < e; f += a) if (c(b[f], f, b)) return f;
      return - 1
    }
  }
  function c(a, b, c) {
    return function (d, e, f) {
      var g = 0,
      h = z(d);
      if ('number' == typeof f) a > 0 ? g = f >= 0 ? f : Math.max(f + h, g) : h = f >= 0 ? Math.min(f + 1, h) : f + h + 1;
       else if (c && f && h) return f = c(d, e),
      d[f] === e ? f : - 1;
      if (e !== e) return f = b(k.call(d, g, h), s.isNaN),
      f >= 0 ? f + g : - 1;
      for (f = a > 0 ? g : h - 1; f >= 0 && f < h; f += a) if (d[f] === e) return f;
      return - 1
    }
  }
  function d(a, b) {
    var c = F.length,
    d = a.constructor,
    e = s.isFunction(d) && d.prototype || h,
    f = 'constructor';
    for (s.has(a, f) && !s.contains(b, f) && b.push(f); c--; ) f = F[c],
    f in a && a[f] !== e[f] && !s.contains(b, f) && b.push(f)
  }
  var e = this,
  f = e._,
  g = Array.prototype,
  h = Object.prototype,
  i = Function.prototype,
  j = g.push,
  k = g.slice,
  l = h.toString,
  m = h.hasOwnProperty,
  n = Array.isArray,
  o = Object.keys,
  p = i.bind,
  q = Object.create,
  r = function () {
  },
  s = function (a) {
    return a instanceof s ? a : this instanceof s ? void (this._wrapped = a) : new s(a)
  };
  'undefined' != typeof exports ? ('undefined' != typeof module && module.exports && (exports = module.exports = s), exports._ = s) : e._ = s,
  s.VERSION = '1.8.3';
  var t = function (a, b, c) {
    if (void 0 === b) return a;
    switch (null == c ? 3 : c) {
      case 1:
        return function (c) {
          return a.call(b, c)
        };
      case 2:
        return function (c, d) {
          return a.call(b, c, d)
        };
      case 3:
        return function (c, d, e) {
          return a.call(b, c, d, e)
        };
      case 4:
        return function (c, d, e, f) {
          return a.call(b, c, d, e, f)
        }
    }
    return function () {
      return a.apply(b, arguments)
    }
  },
  u = function (a, b, c) {
    return null == a ? s.identity : s.isFunction(a) ? t(a, b, c) : s.isObject(a) ? s.matcher(a) : s.property(a)
  };
  s.iteratee = function (a, b) {
    return u(a, b, 1 / 0)
  };
  var v = function (a, b) {
    return function (c) {
      var d = arguments.length;
      if (d < 2 || null == c) return c;
      for (var e = 1; e < d; e++) for (var f = arguments[e], g = a(f), h = g.length, i = 0; i < h; i++) {
        var j = g[i];
        b && void 0 !== c[j] || (c[j] = f[j])
      }
      return c
    }
  },
  w = function (a) {
    if (!s.isObject(a)) return {
    };
    if (q) return q(a);
    r.prototype = a;
    var b = new r;
    return r.prototype = null,
    b
  },
  x = function (a) {
    return function (b) {
      return null == b ? void 0 : b[a]
    }
  },
  y = Math.pow(2, 53) - 1,
  z = x('length'),
  A = function (a) {
    var b = z(a);
    return 'number' == typeof b && b >= 0 && b <= y
  };
  s.each = s.forEach = function (a, b, c) {
    b = t(b, c);
    var d,
    e;
    if (A(a)) for (d = 0, e = a.length; d < e; d++) b(a[d], d, a);
     else {
      var f = s.keys(a);
      for (d = 0, e = f.length; d < e; d++) b(a[f[d]], f[d], a)
    }
    return a
  },
  s.map = s.collect = function (a, b, c) {
    b = u(b, c);
    for (var d = !A(a) && s.keys(a), e = (d || a).length, f = Array(e), g = 0; g < e; g++) {
      var h = d ? d[g] : g;
      f[g] = b(a[h], h, a)
    }
    return f
  },
  s.reduce = s.foldl = s.inject = a(1),
  s.reduceRight = s.foldr = a( - 1),
  s.find = s.detect = function (a, b, c) {
    var d;
    if (d = A(a) ? s.findIndex(a, b, c) : s.findKey(a, b, c), void 0 !== d && d !== - 1) return a[d]
  },
  s.filter = s.select = function (a, b, c) {
    var d = [
    ];
    return b = u(b, c),
    s.each(a, function (a, c, e) {
      b(a, c, e) && d.push(a)
    }),
    d
  },
  s.reject = function (a, b, c) {
    return s.filter(a, s.negate(u(b)), c)
  },
  s.every = s.all = function (a, b, c) {
    b = u(b, c);
    for (var d = !A(a) && s.keys(a), e = (d || a).length, f = 0; f < e; f++) {
      var g = d ? d[f] : f;
      if (!b(a[g], g, a)) return !1
    }
    return !0
  },
  s.some = s.any = function (a, b, c) {
    b = u(b, c);
    for (var d = !A(a) && s.keys(a), e = (d || a).length, f = 0; f < e; f++) {
      var g = d ? d[f] : f;
      if (b(a[g], g, a)) return !0
    }
    return !1
  },
  s.contains = s.includes = s.include = function (a, b, c, d) {
    return A(a) || (a = s.values(a)),
    ('number' != typeof c || d) && (c = 0),
    s.indexOf(a, b, c) >= 0
  },
  s.invoke = function (a, b) {
    var c = k.call(arguments, 2),
    d = s.isFunction(b);
    return s.map(a, function (a) {
      var e = d ? b : a[b];
      return null == e ? e : e.apply(a, c)
    })
  },
  s.pluck = function (a, b) {
    return s.map(a, s.property(b))
  },
  s.where = function (a, b) {
    return s.filter(a, s.matcher(b))
  },
  s.findWhere = function (a, b) {
    return s.find(a, s.matcher(b))
  },
  s.max = function (a, b, c) {
    var d,
    e,
    f = - (1 / 0),
    g = - (1 / 0);
    if (null == b && null != a) {
      a = A(a) ? a : s.values(a);
      for (var h = 0, i = a.length; h < i; h++) d = a[h],
      d > f && (f = d)
    } else b = u(b, c),
    s.each(a, function (a, c, d) {
      e = b(a, c, d),
      (e > g || e === - (1 / 0) && f === - (1 / 0)) && (f = a, g = e)
    });
    return f
  },
  s.min = function (a, b, c) {
    var d,
    e,
    f = 1 / 0,
    g = 1 / 0;
    if (null == b && null != a) {
      a = A(a) ? a : s.values(a);
      for (var h = 0, i = a.length; h < i; h++) d = a[h],
      d < f && (f = d)
    } else b = u(b, c),
    s.each(a, function (a, c, d) {
      e = b(a, c, d),
      (e < g || e === 1 / 0 && f === 1 / 0) && (f = a, g = e)
    });
    return f
  },
  s.shuffle = function (a) {
    for (var b, c = A(a) ? a : s.values(a), d = c.length, e = Array(d), f = 0; f < d; f++) b = s.random(0, f),
    b !== f && (e[f] = e[b]),
    e[b] = c[f];
    return e
  },
  s.sample = function (a, b, c) {
    return null == b || c ? (A(a) || (a = s.values(a)), a[s.random(a.length - 1)]) : s.shuffle(a).slice(0, Math.max(0, b))
  },
  s.sortBy = function (a, b, c) {
    return b = u(b, c),
    s.pluck(s.map(a, function (a, c, d) {
      return {
        value: a,
        index: c,
        criteria: b(a, c, d)
      }
    }).sort(function (a, b) {
      var c = a.criteria,
      d = b.criteria;
      if (c !== d) {
        if (c > d || void 0 === c) return 1;
        if (c < d || void 0 === d) return - 1
      }
      return a.index - b.index
    }), 'value')
  };
  var B = function (a) {
    return function (b, c, d) {
      var e = {
      };
      return c = u(c, d),
      s.each(b, function (d, f) {
        var g = c(d, f, b);
        a(e, d, g)
      }),
      e
    }
  };
  s.groupBy = B(function (a, b, c) {
    s.has(a, c) ? a[c].push(b) : a[c] = [
      b
    ]
  }),
  s.indexBy = B(function (a, b, c) {
    a[c] = b
  }),
  s.countBy = B(function (a, b, c) {
    s.has(a, c) ? a[c]++ : a[c] = 1
  }),
  s.toArray = function (a) {
    return a ? s.isArray(a) ? k.call(a) : A(a) ? s.map(a, s.identity) : s.values(a) : [
    ]
  },
  s.size = function (a) {
    return null == a ? 0 : A(a) ? a.length : s.keys(a).length
  },
  s.partition = function (a, b, c) {
    b = u(b, c);
    var d = [
    ],
    e = [
    ];
    return s.each(a, function (a, c, f) {
      (b(a, c, f) ? d : e).push(a)
    }),
    [
      d,
      e
    ]
  },
  s.first = s.head = s.take = function (a, b, c) {
    if (null != a) return null == b || c ? a[0] : s.initial(a, a.length - b)
  },
  s.initial = function (a, b, c) {
    return k.call(a, 0, Math.max(0, a.length - (null == b || c ? 1 : b)))
  },
  s.last = function (a, b, c) {
    if (null != a) return null == b || c ? a[a.length - 1] : s.rest(a, Math.max(0, a.length - b))
  },
  s.rest = s.tail = s.drop = function (a, b, c) {
    return k.call(a, null == b || c ? 1 : b)
  },
  s.compact = function (a) {
    return s.filter(a, s.identity)
  };
  var C = function (a, b, c, d) {
    for (var e = [
    ], f = 0, g = d || 0, h = z(a); g < h; g++) {
      var i = a[g];
      if (A(i) && (s.isArray(i) || s.isArguments(i))) {
        b || (i = C(i, b, c));
        var j = 0,
        k = i.length;
        for (e.length += k; j < k; ) e[f++] = i[j++]
      } else c || (e[f++] = i)
    }
    return e
  };
  s.flatten = function (a, b) {
    return C(a, b, !1)
  },
  s.without = function (a) {
    return s.difference(a, k.call(arguments, 1))
  },
  s.uniq = s.unique = function (a, b, c, d) {
    s.isBoolean(b) || (d = c, c = b, b = !1),
    null != c && (c = u(c, d));
    for (var e = [
    ], f = [
    ], g = 0, h = z(a); g < h; g++) {
      var i = a[g],
      j = c ? c(i, g, a) : i;
      b ? (g && f === j || e.push(i), f = j) : c ? s.contains(f, j) || (f.push(j), e.push(i)) : s.contains(e, i) || e.push(i)
    }
    return e
  },
  s.union = function () {
    return s.uniq(C(arguments, !0, !0))
  },
  s.intersection = function (a) {
    for (var b = [
    ], c = arguments.length, d = 0, e = z(a); d < e; d++) {
      var f = a[d];
      if (!s.contains(b, f)) {
        for (var g = 1; g < c && s.contains(arguments[g], f); g++);
        g === c && b.push(f)
      }
    }
    return b
  },
  s.difference = function (a) {
    var b = C(arguments, !0, !0, 1);
    return s.filter(a, function (a) {
      return !s.contains(b, a)
    })
  },
  s.zip = function () {
    return s.unzip(arguments)
  },
  s.unzip = function (a) {
    for (var b = a && s.max(a, z).length || 0, c = Array(b), d = 0; d < b; d++) c[d] = s.pluck(a, d);
    return c
  },
  s.object = function (a, b) {
    for (var c = {
    }, d = 0, e = z(a); d < e; d++) b ? c[a[d]] = b[d] : c[a[d][0]] = a[d][1];
    return c
  },
  s.findIndex = b(1),
  s.findLastIndex = b( - 1),
  s.sortedIndex = function (a, b, c, d) {
    c = u(c, d, 1);
    for (var e = c(b), f = 0, g = z(a); f < g; ) {
      var h = Math.floor((f + g) / 2);
      c(a[h]) < e ? f = h + 1 : g = h
    }
    return f
  },
  s.indexOf = c(1, s.findIndex, s.sortedIndex),
  s.lastIndexOf = c( - 1, s.findLastIndex),
  s.range = function (a, b, c) {
    null == b && (b = a || 0, a = 0),
    c = c || 1;
    for (var d = Math.max(Math.ceil((b - a) / c), 0), e = Array(d), f = 0; f < d; f++, a += c) e[f] = a;
    return e
  };
  var D = function (a, b, c, d, e) {
    if (!(d instanceof b)) return a.apply(c, e);
    var f = w(a.prototype),
    g = a.apply(f, e);
    return s.isObject(g) ? g : f
  };
  s.bind = function (a, b) {
    if (p && a.bind === p) return p.apply(a, k.call(arguments, 1));
    if (!s.isFunction(a)) throw new TypeError('Bind must be called on a function');
    var c = k.call(arguments, 2),
    d = function () {
      return D(a, d, b, this, c.concat(k.call(arguments)))
    };
    return d
  },
  s.partial = function (a) {
    var b = k.call(arguments, 1),
    c = function () {
      for (var d = 0, e = b.length, f = Array(e), g = 0; g < e; g++) f[g] = b[g] === s ? arguments[d++] : b[g];
      for (; d < arguments.length; ) f.push(arguments[d++]);
      return D(a, c, this, this, f)
    };
    return c
  },
  s.bindAll = function (a) {
    var b,
    c,
    d = arguments.length;
    if (d <= 1) throw new Error('bindAll must be passed function names');
    for (b = 1; b < d; b++) c = arguments[b],
    a[c] = s.bind(a[c], a);
    return a
  },
  s.memoize = function (a, b) {
    var c = function (d) {
      var e = c.cache,
      f = '' + (b ? b.apply(this, arguments) : d);
      return s.has(e, f) || (e[f] = a.apply(this, arguments)),
      e[f]
    };
    return c.cache = {
    },
    c
  },
  s.delay = function (a, b) {
    var c = k.call(arguments, 2);
    return setTimeout(function () {
      return a.apply(null, c)
    }, b)
  },
  s.defer = s.partial(s.delay, s, 1),
  s.throttle = function (a, b, c) {
    var d,
    e,
    f,
    g = null,
    h = 0;
    c || (c = {
    });
    var i = function () {
      h = c.leading === !1 ? 0 : s.now(),
      g = null,
      f = a.apply(d, e),
      g || (d = e = null)
    };
    return function () {
      var j = s.now();
      h || c.leading !== !1 || (h = j);
      var k = b - (j - h);
      return d = this,
      e = arguments,
      k <= 0 || k > b ? (g && (clearTimeout(g), g = null), h = j, f = a.apply(d, e), g || (d = e = null)) : g || c.trailing === !1 || (g = setTimeout(i, k)),
      f
    }
  },
  s.debounce = function (a, b, c) {
    var d,
    e,
    f,
    g,
    h,
    i = function () {
      var j = s.now() - g;
      j < b && j >= 0 ? d = setTimeout(i, b - j) : (d = null, c || (h = a.apply(f, e), d || (f = e = null)))
    };
    return function () {
      f = this,
      e = arguments,
      g = s.now();
      var j = c && !d;
      return d || (d = setTimeout(i, b)),
      j && (h = a.apply(f, e), f = e = null),
      h
    }
  },
  s.wrap = function (a, b) {
    return s.partial(b, a)
  },
  s.negate = function (a) {
    return function () {
      return !a.apply(this, arguments)
    }
  },
  s.compose = function () {
    var a = arguments,
    b = a.length - 1;
    return function () {
      for (var c = b, d = a[b].apply(this, arguments); c--; ) d = a[c].call(this, d);
      return d
    }
  },
  s.after = function (a, b) {
    return function () {
      if (--a < 1) return b.apply(this, arguments)
    }
  },
  s.before = function (a, b) {
    var c;
    return function () {
      return --a > 0 && (c = b.apply(this, arguments)),
      a <= 1 && (b = null),
      c
    }
  },
  s.once = s.partial(s.before, 2);
  var E = !{
    toString: null
  }.propertyIsEnumerable('toString'),
  F = [
    'valueOf',
    'isPrototypeOf',
    'toString',
    'propertyIsEnumerable',
    'hasOwnProperty',
    'toLocaleString'
  ];
  s.keys = function (a) {
    if (!s.isObject(a)) return [];
    if (o) return o(a);
    var b = [
    ];
    for (var c in a) s.has(a, c) && b.push(c);
    return E && d(a, b),
    b
  },
  s.allKeys = function (a) {
    if (!s.isObject(a)) return [];
    var b = [
    ];
    for (var c in a) b.push(c);
    return E && d(a, b),
    b
  },
  s.values = function (a) {
    for (var b = s.keys(a), c = b.length, d = Array(c), e = 0; e < c; e++) d[e] = a[b[e]];
    return d
  },
  s.mapObject = function (a, b, c) {
    b = u(b, c);
    for (var d, e = s.keys(a), f = e.length, g = {
    }, h = 0; h < f; h++) d = e[h],
    g[d] = b(a[d], d, a);
    return g
  },
  s.pairs = function (a) {
    for (var b = s.keys(a), c = b.length, d = Array(c), e = 0; e < c; e++) d[e] = [
      b[e],
      a[b[e]]
    ];
    return d
  },
  s.invert = function (a) {
    for (var b = {
    }, c = s.keys(a), d = 0, e = c.length; d < e; d++) b[a[c[d]]] = c[d];
    return b
  },
  s.functions = s.methods = function (a) {
    var b = [
    ];
    for (var c in a) s.isFunction(a[c]) && b.push(c);
    return b.sort()
  },
  s.extend = v(s.allKeys),
  s.extendOwn = s.assign = v(s.keys),
  s.findKey = function (a, b, c) {
    b = u(b, c);
    for (var d, e = s.keys(a), f = 0, g = e.length; f < g; f++) if (d = e[f], b(a[d], d, a)) return d
  },
  s.pick = function (a, b, c) {
    var d,
    e,
    f = {
    },
    g = a;
    if (null == g) return f;
    s.isFunction(b) ? (e = s.allKeys(g), d = t(b, c)) : (e = C(arguments, !1, !1, 1), d = function (a, b, c) {
      return b in c
    }, g = Object(g));
    for (var h = 0, i = e.length; h < i; h++) {
      var j = e[h],
      k = g[j];
      d(k, j, g) && (f[j] = k)
    }
    return f
  },
  s.omit = function (a, b, c) {
    if (s.isFunction(b)) b = s.negate(b);
     else {
      var d = s.map(C(arguments, !1, !1, 1), String);
      b = function (a, b) {
        return !s.contains(d, b)
      }
    }
    return s.pick(a, b, c)
  },
  s.defaults = v(s.allKeys, !0),
  s.create = function (a, b) {
    var c = w(a);
    return b && s.extendOwn(c, b),
    c
  },
  s.clone = function (a) {
    return s.isObject(a) ? s.isArray(a) ? a.slice() : s.extend({
    }, a) : a
  },
  s.tap = function (a, b) {
    return b(a),
    a
  },
  s.isMatch = function (a, b) {
    var c = s.keys(b),
    d = c.length;
    if (null == a) return !d;
    for (var e = Object(a), f = 0; f < d; f++) {
      var g = c[f];
      if (b[g] !== e[g] || !(g in e)) return !1
    }
    return !0
  };
  var G = function (a, b, c, d) {
    if (a === b) return 0 !== a || 1 / a === 1 / b;
    if (null == a || null == b) return a === b;
    a instanceof s && (a = a._wrapped),
    b instanceof s && (b = b._wrapped);
    var e = l.call(a);
    if (e !== l.call(b)) return !1;
    switch (e) {
      case '[object RegExp]':
      case '[object String]':
        return '' + a == '' + b;
      case '[object Number]':
        return + a !== + a ? + b !== + b : 0 === + a ? 1 / + a === 1 / b : + a === + b;
      case '[object Date]':
      case '[object Boolean]':
        return + a === + b
    }
    var f = '[object Array]' === e;
    if (!f) {
      if ('object' != typeof a || 'object' != typeof b) return !1;
      var g = a.constructor,
      h = b.constructor;
      if (g !== h && !(s.isFunction(g) && g instanceof g && s.isFunction(h) && h instanceof h) && 'constructor' in a && 'constructor' in b) return !1
    }
    c = c || [
    ],
    d = d || [
    ];
    for (var i = c.length; i--; ) if (c[i] === a) return d[i] === b;
    if (c.push(a), d.push(b), f) {
      if (i = a.length, i !== b.length) return !1;
      for (; i--; ) if (!G(a[i], b[i], c, d)) return !1
    } else {
      var j,
      k = s.keys(a);
      if (i = k.length, s.keys(b).length !== i) return !1;
      for (; i--; ) if (j = k[i], !s.has(b, j) || !G(a[j], b[j], c, d)) return !1
    }
    return c.pop(),
    d.pop(),
    !0
  };
  s.isEqual = function (a, b) {
    return G(a, b)
  },
  s.isEmpty = function (a) {
    return null == a || (A(a) && (s.isArray(a) || s.isString(a) || s.isArguments(a)) ? 0 === a.length : 0 === s.keys(a).length)
  },
  s.isElement = function (a) {
    return !(!a || 1 !== a.nodeType)
  },
  s.isArray = n || function (a) {
    return '[object Array]' === l.call(a)
  },
  s.isObject = function (a) {
    var b = typeof a;
    return 'function' === b || 'object' === b && !!a
  },
  s.each(['Arguments',
  'Function',
  'String',
  'Number',
  'Date',
  'RegExp',
  'Error'], function (a) {
    s['is' + a] = function (b) {
      return l.call(b) === '[object ' + a + ']'
    }
  }),
  s.isArguments(arguments) || (s.isArguments = function (a) {
    return s.has(a, 'callee')
  }),
  'function' != typeof /./ && 'object' != typeof Int8Array && (s.isFunction = function (a) {
    return 'function' == typeof a || !1
  }),
  s.isFinite = function (a) {
    return isFinite(a) && !isNaN(parseFloat(a))
  },
  s.isNaN = function (a) {
    return s.isNumber(a) && a !== + a
  },
  s.isBoolean = function (a) {
    return a === !0 || a === !1 || '[object Boolean]' === l.call(a)
  },
  s.isNull = function (a) {
    return null === a
  },
  s.isUndefined = function (a) {
    return void 0 === a
  },
  s.has = function (a, b) {
    return null != a && m.call(a, b)
  },
  s.noConflict = function () {
    return e._ = f,
    this
  },
  s.identity = function (a) {
    return a
  },
  s.constant = function (a) {
    return function () {
      return a
    }
  },
  s.noop = function () {
  },
  s.property = x,
  s.propertyOf = function (a) {
    return null == a ? function () {
    }
     : function (b) {
      return a[b]
    }
  },
  s.matcher = s.matches = function (a) {
    return a = s.extendOwn({
    }, a),
    function (b) {
      return s.isMatch(b, a)
    }
  },
  s.times = function (a, b, c) {
    var d = Array(Math.max(0, a));
    b = t(b, c, 1);
    for (var e = 0; e < a; e++) d[e] = b(e);
    return d
  },
  s.random = function (a, b) {
    return null == b && (b = a, a = 0),
    a + Math.floor(Math.random() * (b - a + 1))
  },
  s.now = Date.now || function () {
    return (new Date).getTime()
  };
  var H = {
    '&': '&',
    '<': '<',
    '>': '>',
    '"': '"',
    '\'': '&#x27;',
    '`': '&#x60;'
  },
  I = s.invert(H),
  J = function (a) {
    var b = function (b) {
      return a[b]
    },
    c = '(?:' + s.keys(a).join('|') + ')',
    d = RegExp(c),
    e = RegExp(c, 'g');
    return function (a) {
      return a = null == a ? '' : '' + a,
      d.test(a) ? a.replace(e, b) : a
    }
  };
  s.escape = J(H),
  s.unescape = J(I),
  s.result = function (a, b, c) {
    var d = null == a ? void 0 : a[b];
    return void 0 === d && (d = c),
    s.isFunction(d) ? d.call(a) : d
  };
  var K = 0;
  s.uniqueId = function (a) {
    var b = ++K + '';
    return a ? a + b : b
  },
  s.templateSettings = {
    evaluate: /<%([\s\S]+?)%>/g,
    interpolate: /<%=([\s\S]+?)%>/g,
    escape: /<%-([\s\S]+?)%>/g
  };
  var L = /(.)^/,
  M = {
    '\'': '\'',
    '\\': '\\',
    '\r': 'r',
    '\n': 'n',
    '\u2028': 'u2028',
    '\u2029': 'u2029'
  },
  N = /\\|'|\r|\n|\u2028|\u2029/g,
  O = function (a) {
    return '\\' + M[a]
  };
  s.template = function (a, b, c) {
    !b && c && (b = c),
    b = s.defaults({
    }, b, s.templateSettings);
    var d = RegExp([(b.escape || L).source,
    (b.interpolate || L).source,
    (b.evaluate || L).source].join('|') + '|$', 'g'),
    e = 0,
    f = '__p+=\'';
    a.replace(d, function (b, c, d, g, h) {
      return f += a.slice(e, h).replace(N, O),
      e = h + b.length,
      c ? f += '\'+\n((__t=(' + c + '))==null?\'\':_.escape(__t))+\n\'' : d ? f += '\'+\n((__t=(' + d + '))==null?\'\':__t)+\n\'' : g && (f += '\';\n' + g + '\n__p+=\''),
      b
    }),
    f += '\';\n',
    b.variable || (f = 'with(obj||{}){\n' + f + '}\n'),
    f = 'var __t,__p=\'\',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,\'\');};\n' + f + 'return __p;\n';
    try {
      var g = new Function(b.variable || 'obj', '_', f)
    } catch (h) {
      throw h.source = f,
      h
    }
    var i = function (a) {
      return g.call(this, a, s)
    },
    j = b.variable || 'obj';
    return i.source = 'function(' + j + '){\n' + f + '}',
    i
  },
  s.chain = function (a) {
    var b = s(a);
    return b._chain = !0,
    b
  };
  var P = function (a, b) {
    return a._chain ? s(b).chain() : b
  };
  s.mixin = function (a) {
    s.each(s.functions(a), function (b) {
      var c = s[b] = a[b];
      s.prototype[b] = function () {
        var a = [
          this._wrapped
        ];
        return j.apply(a, arguments),
        P(this, c.apply(s, a))
      }
    })
  },
  s.mixin(s),
  s.each(['pop',
  'push',
  'reverse',
  'shift',
  'sort',
  'splice',
  'unshift'], function (a) {
    var b = g[a];
    s.prototype[a] = function () {
      var c = this._wrapped;
      return b.apply(c, arguments),
      'shift' !== a && 'splice' !== a || 0 !== c.length || delete c[0],
      P(this, c)
    }
  }),
  s.each(['concat',
  'join',
  'slice'], function (a) {
    var b = g[a];
    s.prototype[a] = function () {
      return P(this, b.apply(this._wrapped, arguments))
    }
  }),
  s.prototype.value = function () {
    return this._wrapped
  },
  s.prototype.valueOf = s.prototype.toJSON = s.prototype.value,
  s.prototype.toString = function () {
    return '' + this._wrapped
  },
  'function' == typeof define && define.amd && define('underscore', [
  ], function () {
    return s
  })
}.call(this),
function (a, b) {
  if ('function' == typeof define && define.amd) define('backbone.original', [
    'underscore',
    'jquery',
    'exports'
  ], function (c, d, e) {
    a.Backbone = b(a, e, c, d)
  });
   else if ('undefined' != typeof exports) {
    var c = require('underscore');
    b(a, exports, c)
  } else a.Backbone = b(a, {
  }, a._, a.jQuery || a.Zepto || a.ender || a.$)
}(this, function (a, b, c, d) {
  var e = a.Backbone,
  f = [
  ],
  g = (f.push, f.slice);
  f.splice;
  b.VERSION = '1.1.2',
  b.$ = d,
  b.noConflict = function () {
    return a.Backbone = e,
    this
  },
  b.emulateHTTP = !1,
  b.emulateJSON = !1;
  var h = b.Events = {
    on: function (a, b, c) {
      if (!j(this, 'on', a, [
        b,
        c
      ]) || !b) return this;
      this._events || (this._events = {
      });
      var d = this._events[a] || (this._events[a] = [
      ]);
      return d.push({
        callback: b,
        context: c,
        ctx: c || this
      }),
      this
    },
    once: function (a, b, d) {
      if (!j(this, 'once', a, [
        b,
        d
      ]) || !b) return this;
      var e = this,
      f = c.once(function () {
        e.off(a, f),
        b.apply(this, arguments)
      });
      return f._callback = b,
      this.on(a, f, d)
    },
    off: function (a, b, d) {
      var e,
      f,
      g,
      h,
      i,
      k,
      l,
      m;
      if (!this._events || !j(this, 'off', a, [
        b,
        d
      ])) return this;
      if (!a && !b && !d) return this._events = void 0,
      this;
      for (h = a ? [
        a
      ] : c.keys(this._events), i = 0, k = h.length; i < k; i++) if (a = h[i], g = this._events[a]) {
        if (this._events[a] = e = [
        ], b || d) for (l = 0, m = g.length; l < m; l++) f = g[l],
        (b && b !== f.callback && b !== f.callback._callback || d && d !== f.context) && e.push(f);
        e.length || delete this._events[a]
      }
      return this
    },
    trigger: function (a) {
      if (!this._events) return this;
      var b = g.call(arguments, 1);
      if (!j(this, 'trigger', a, b)) return this;
      var c = this._events[a],
      d = this._events.all;
      return c && k(c, b),
      d && k(d, arguments),
      this
    },
    stopListening: function (a, b, d) {
      var e = this._listeningTo;
      if (!e) return this;
      var f = !b && !d;
      d || 'object' != typeof b || (d = this),
      a && ((e = {
      }) [a._listenId] = a);
      for (var g in e) a = e[g],
      a.off(b, d, this),
      (f || c.isEmpty(a._events)) && delete this._listeningTo[g];
      return this
    }
  },
  i = /\s+/,
  j = function (a, b, c, d) {
    if (!c) return !0;
    if ('object' == typeof c) {
      for (var e in c) a[b].apply(a, [
        e,
        c[e]
      ].concat(d));
      return !1
    }
    if (i.test(c)) {
      for (var f = c.split(i), g = 0, h = f.length; g < h; g++) a[b].apply(a, [
        f[g]
      ].concat(d));
      return !1
    }
    return !0
  },
  k = function (a, b) {
    var c,
    d = - 1,
    e = a.length,
    f = b[0],
    g = b[1],
    h = b[2];
    switch (b.length) {
      case 0:
        for (; ++d < e; ) (c = a[d]).callback.call(c.ctx);
        return;
      case 1:
        for (; ++d < e; ) (c = a[d]).callback.call(c.ctx, f);
        return;
      case 2:
        for (; ++d < e; ) (c = a[d]).callback.call(c.ctx, f, g);
        return;
      case 3:
        for (; ++d < e; ) (c = a[d]).callback.call(c.ctx, f, g, h);
        return;
      default:
        for (; ++d < e; ) (c = a[d]).callback.apply(c.ctx, b);
        return
    }
  },
  l = {
    listenTo: 'on',
    listenToOnce: 'once'
  };
  c.each(l, function (a, b) {
    h[b] = function (b, d, e) {
      var f = this._listeningTo || (this._listeningTo = {
      }),
      g = b._listenId || (b._listenId = c.uniqueId('l'));
      return f[g] = b,
      e || 'object' != typeof d || (e = this),
      b[a](d, e, this),
      this
    }
  }),
  h.bind = h.on,
  h.unbind = h.off,
  c.extend(b, h);
  var m = b.Model = function (a, b) {
    var d = a || {
    };
    b || (b = {
    }),
    this.cid = c.uniqueId('c'),
    this.attributes = {
    },
    b.collection && (this.collection = b.collection),
    b.parse && (d = this.parse(d, b) || {
    }),
    d = c.defaults({
    }, d, c.result(this, 'defaults')),
    this.set(d, b),
    this.changed = {
    },
    this.initialize.apply(this, arguments)
  };
  c.extend(m.prototype, h, {
    changed: null,
    validationError: null,
    idAttribute: 'id',
    initialize: function () {
    },
    toJSON: function (a) {
      return c.clone(this.attributes)
    },
    sync: function () {
      return b.sync.apply(this, arguments)
    },
    get: function (a) {
      return this.attributes[a]
    },
    escape: function (a) {
      return c.escape(this.get(a))
    },
    has: function (a) {
      return null != this.get(a)
    },
    set: function (a, b, d) {
      var e,
      f,
      g,
      h,
      i,
      j,
      k,
      l;
      if (null == a) return this;
      if ('object' == typeof a ? (f = a, d = b) : (f = {
      }) [a] = b, d || (d = {
      }), !this._validate(f, d)) return !1;
      g = d.unset,
      i = d.silent,
      h = [
      ],
      j = this._changing,
      this._changing = !0,
      j || (this._previousAttributes = c.clone(this.attributes), this.changed = {
      }),
      l = this.attributes,
      k = this._previousAttributes,
      this.idAttribute in f && (this.id = f[this.idAttribute]);
      for (e in f) b = f[e],
      c.isEqual(l[e], b) || h.push(e),
      c.isEqual(k[e], b) ? delete this.changed[e] : this.changed[e] = b,
      g ? delete l[e] : l[e] = b;
      if (!i) {
        h.length && (this._pending = d);
        for (var m = 0, n = h.length; m < n; m++) this.trigger('change:' + h[m], this, l[h[m]], d)
      }
      if (j) return this;
      if (!i) for (; this._pending; ) d = this._pending,
      this._pending = !1,
      this.trigger('change', this, d);
      return this._pending = !1,
      this._changing = !1,
      this
    },
    unset: function (a, b) {
      return this.set(a, void 0, c.extend({
      }, b, {
        unset: !0
      }))
    },
    clear: function (a) {
      var b = {
      };
      for (var d in this.attributes) b[d] = void 0;
      return this.set(b, c.extend({
      }, a, {
        unset: !0
      }))
    },
    hasChanged: function (a) {
      return null == a ? !c.isEmpty(this.changed) : c.has(this.changed, a)
    },
    changedAttributes: function (a) {
      if (!a) return !!this.hasChanged() && c.clone(this.changed);
      var b,
      d = !1,
      e = this._changing ? this._previousAttributes : this.attributes;
      for (var f in a) c.isEqual(e[f], b = a[f]) || ((d || (d = {
      })) [f] = b);
      return d
    },
    previous: function (a) {
      return null != a && this._previousAttributes ? this._previousAttributes[a] : null
    },
    previousAttributes: function () {
      return c.clone(this._previousAttributes)
    },
    fetch: function (a) {
      a = a ? c.clone(a) : {
      },
      void 0 === a.parse && (a.parse = !0);
      var b = this,
      d = a.success;
      return a.success = function (c) {
        return !!b.set(b.parse(c, a), a) && (d && d(b, c, a), void b.trigger('sync', b, c, a))
      },
      L(this, a),
      this.sync('read', this, a)
    },
    save: function (a, b, d) {
      var e,
      f,
      g,
      h = this.attributes;
      if (null == a || 'object' == typeof a ? (e = a, d = b) : (e = {
      }) [a] = b, d = c.extend({
        validate: !0
      }, d), e && !d.wait) {
        if (!this.set(e, d)) return !1
      } else if (!this._validate(e, d)) return !1;
      e && d.wait && (this.attributes = c.extend({
      }, h, e)),
      void 0 === d.parse && (d.parse = !0);
      var i = this,
      j = d.success;
      return d.success = function (a) {
        i.attributes = h;
        var b = i.parse(a, d);
        return d.wait && (b = c.extend(e || {
        }, b)),
        !(c.isObject(b) && !i.set(b, d)) && (j && j(i, a, d), void i.trigger('sync', i, a, d))
      },
      L(this, d),
      f = this.isNew() ? 'create' : d.patch ? 'patch' : 'update',
      'patch' === f && (d.attrs = e),
      g = this.sync(f, this, d),
      e && d.wait && (this.attributes = h),
      g
    },
    destroy: function (a) {
      a = a ? c.clone(a) : {
      };
      var b = this,
      d = a.success,
      e = function () {
        b.trigger('destroy', b, b.collection, a)
      };
      if (a.success = function (c) {
        (a.wait || b.isNew()) && e(),
        d && d(b, c, a),
        b.isNew() || b.trigger('sync', b, c, a)
      }, this.isNew()) return a.success(),
      !1;
      L(this, a);
      var f = this.sync('delete', this, a);
      return a.wait || e(),
      f
    },
    url: function () {
      var a = c.result(this, 'urlRoot') || c.result(this.collection, 'url') || K();
      return this.isNew() ? a : a.replace(/([^\/])$/, '$1/') + encodeURIComponent(this.id)
    },
    parse: function (a, b) {
      return a
    },
    clone: function () {
      return new this.constructor(this.attributes)
    },
    isNew: function () {
      return !this.has(this.idAttribute)
    },
    isValid: function (a) {
      return this._validate({
      }, c.extend(a || {
      }, {
        validate: !0
      }))
    },
    _validate: function (a, b) {
      if (!b.validate || !this.validate) return !0;
      a = c.extend({
      }, this.attributes, a);
      var d = this.validationError = this.validate(a, b) || null;
      return !d || (this.trigger('invalid', this, d, c.extend(b, {
        validationError: d
      })), !1)
    }
  });
  var n = [
    'keys',
    'values',
    'pairs',
    'invert',
    'pick',
    'omit'
  ];
  c.each(n, function (a) {
    m.prototype[a] = function () {
      var b = g.call(arguments);
      return b.unshift(this.attributes),
      c[a].apply(c, b)
    }
  });
  var o = b.Collection = function (a, b) {
    b || (b = {
    }),
    b.model && (this.model = b.model),
    void 0 !== b.comparator && (this.comparator = b.comparator),
    this._reset(),
    this.initialize.apply(this, arguments),
    a && this.reset(a, c.extend({
      silent: !0
    }, b))
  },
  p = {
    add: !0,
    remove: !0,
    merge: !0
  },
  q = {
    add: !0,
    remove: !1
  };
  c.extend(o.prototype, h, {
    model: m,
    initialize: function () {
    },
    toJSON: function (a) {
      return this.map(function (b) {
        return b.toJSON(a)
      })
    },
    sync: function () {
      return b.sync.apply(this, arguments)
    },
    add: function (a, b) {
      return this.set(a, c.extend({
        merge: !1
      }, b, q))
    },
    remove: function (a, b) {
      var d = !c.isArray(a);
      a = d ? [
        a
      ] : c.clone(a),
      b || (b = {
      });
      var e,
      f,
      g,
      h;
      for (e = 0, f = a.length; e < f; e++) h = a[e] = this.get(a[e]),
      h && (delete this._byId[h.id], delete this._byId[h.cid], g = this.indexOf(h), this.models.splice(g, 1), this.length--, b.silent || (b.index = g, h.trigger('remove', h, this, b)), this._removeReference(h, b));
      return d ? a[0] : a
    },
    set: function (a, b) {
      b = c.defaults({
      }, b, p),
      b.parse && (a = this.parse(a, b));
      var d = !c.isArray(a);
      a = d ? a ? [
        a
      ] : [
      ] : c.clone(a);
      var e,
      f,
      g,
      h,
      i,
      j,
      k,
      l = b.at,
      n = this.model,
      o = this.comparator && null == l && b.sort !== !1,
      q = c.isString(this.comparator) ? this.comparator : null,
      r = [
      ],
      s = [
      ],
      t = {
      },
      u = b.add,
      v = b.merge,
      w = b.remove,
      x = !(o || !u || !w) && [
      ];
      for (e = 0, f = a.length; e < f; e++) {
        if (i = a[e] || {
        }, g = i instanceof m ? h = i : i[n.prototype.idAttribute || 'id'], j = this.get(g)) w && (t[j.cid] = !0),
        v && (i = i === h ? h.attributes : i, b.parse && (i = j.parse(i, b)), j.set(i, b), o && !k && j.hasChanged(q) && (k = !0)),
        a[e] = j;
         else if (u) {
          if (h = a[e] = this._prepareModel(i, b), !h) continue;
          r.push(h),
          this._addReference(h, b)
        }
        h = j || h,
        !x || !h.isNew() && t[h.id] || x.push(h),
        t[h.id] = !0
      }
      if (w) {
        for (e = 0, f = this.length; e < f; ++e) t[(h = this.models[e]).cid] || s.push(h);
        s.length && this.remove(s, b)
      }
      if (r.length || x && x.length) if (o && (k = !0), this.length += r.length, null != l) for (e = 0, f = r.length; e < f; e++) this.models.splice(l + e, 0, r[e]);
       else {
        x && (this.models.length = 0);
        var y = x || r;
        for (e = 0, f = y.length; e < f; e++) this.models.push(y[e])
      }
      if (k && this.sort({
        silent: !0
      }), !b.silent) {
        for (e = 0, f = r.length; e < f; e++) (h = r[e]).trigger('add', h, this, b);
        (k || x && x.length) && this.trigger('sort', this, b)
      }
      return d ? a[0] : a
    },
    reset: function (a, b) {
      b || (b = {
      });
      for (var d = 0, e = this.models.length; d < e; d++) this._removeReference(this.models[d], b);
      return b.previousModels = this.models,
      this._reset(),
      a = this.add(a, c.extend({
        silent: !0
      }, b)),
      b.silent || this.trigger('reset', this, b),
      a
    },
    push: function (a, b) {
      return this.add(a, c.extend({
        at: this.length
      }, b))
    },
    pop: function (a) {
      var b = this.at(this.length - 1);
      return this.remove(b, a),
      b
    },
    unshift: function (a, b) {
      return this.add(a, c.extend({
        at: 0
      }, b))
    },
    shift: function (a) {
      var b = this.at(0);
      return this.remove(b, a),
      b
    },
    slice: function () {
      return g.apply(this.models, arguments)
    },
    get: function (a) {
      if (null != a) return this._byId[a] || this._byId[a.id] || this._byId[a.cid]
    },
    at: function (a) {
      return this.models[a]
    },
    where: function (a, b) {
      return c.isEmpty(a) ? b ? void 0 : [
      ] : this[b ? 'find' : 'filter'](function (b) {
        for (var c in a) if (a[c] !== b.get(c)) return !1;
        return !0
      })
    },
    findWhere: function (a) {
      return this.where(a, !0)
    },
    sort: function (a) {
      if (!this.comparator) throw new Error('Cannot sort a set without a comparator');
      return a || (a = {
      }),
      c.isString(this.comparator) || 1 === this.comparator.length ? this.models = this.sortBy(this.comparator, this) : this.models.sort(c.bind(this.comparator, this)),
      a.silent || this.trigger('sort', this, a),
      this
    },
    pluck: function (a) {
      return c.invoke(this.models, 'get', a)
    },
    fetch: function (a) {
      a = a ? c.clone(a) : {
      },
      void 0 === a.parse && (a.parse = !0);
      var b = a.success,
      d = this;
      return a.success = function (c) {
        var e = a.reset ? 'reset' : 'set';
        d[e](c, a),
        b && b(d, c, a),
        d.trigger('sync', d, c, a)
      },
      L(this, a),
      this.sync('read', this, a)
    },
    create: function (a, b) {
      if (b = b ? c.clone(b) : {
      }, !(a = this._prepareModel(a, b))) return !1;
      b.wait || this.add(a, b);
      var d = this,
      e = b.success;
      return b.success = function (a, c) {
        b.wait && d.add(a, b),
        e && e(a, c, b)
      },
      a.save(null, b),
      a
    },
    parse: function (a, b) {
      return a
    },
    clone: function () {
      return new this.constructor(this.models)
    },
    _reset: function () {
      this.length = 0,
      this.models = [
      ],
      this._byId = {
      }
    },
    _prepareModel: function (a, b) {
      if (a instanceof m) return a;
      b = b ? c.clone(b) : {
      },
      b.collection = this;
      var d = new this.model(a, b);
      return d.validationError ? (this.trigger('invalid', this, d.validationError, b), !1) : d
    },
    _addReference: function (a, b) {
      this._byId[a.cid] = a,
      null != a.id && (this._byId[a.id] = a),
      a.collection || (a.collection = this),
      a.on('all', this._onModelEvent, this)
    },
    _removeReference: function (a, b) {
      this === a.collection && delete a.collection,
      a.off('all', this._onModelEvent, this)
    },
    _onModelEvent: function (a, b, c, d) {
      ('add' !== a && 'remove' !== a || c === this) && ('destroy' === a && this.remove(b, d), b && a === 'change:' + b.idAttribute && (delete this._byId[b.previous(b.idAttribute)], null != b.id && (this._byId[b.id] = b)), this.trigger.apply(this, arguments))
    }
  });
  var r = [
    'forEach',
    'each',
    'map',
    'collect',
    'reduce',
    'foldl',
    'inject',
    'reduceRight',
    'foldr',
    'find',
    'detect',
    'filter',
    'select',
    'reject',
    'every',
    'all',
    'some',
    'any',
    'include',
    'contains',
    'invoke',
    'max',
    'min',
    'toArray',
    'size',
    'first',
    'head',
    'take',
    'initial',
    'rest',
    'tail',
    'drop',
    'last',
    'without',
    'difference',
    'indexOf',
    'shuffle',
    'lastIndexOf',
    'isEmpty',
    'chain',
    'sample'
  ];
  c.each(r, function (a) {
    o.prototype[a] = function () {
      var b = g.call(arguments);
      return b.unshift(this.models),
      c[a].apply(c, b)
    }
  });
  var s = [
    'groupBy',
    'countBy',
    'sortBy',
    'indexBy'
  ];
  c.each(s, function (a) {
    o.prototype[a] = function (b, d) {
      var e = c.isFunction(b) ? b : function (a) {
        return a.get(b)
      };
      return c[a](this.models, e, d)
    }
  });
  var t = b.View = function (a) {
    this.cid = c.uniqueId('view'),
    a || (a = {
    }),
    c.extend(this, c.pick(a, v)),
    this._ensureElement(),
    this.initialize.apply(this, arguments),
    this.delegateEvents()
  },
  u = /^(\S+)\s*(.*)$/,
  v = [
    'model',
    'collection',
    'el',
    'id',
    'attributes',
    'className',
    'tagName',
    'events'
  ];
  c.extend(t.prototype, h, {
    tagName: 'div',
    $: function (a) {
      return this.$el.find(a)
    },
    initialize: function () {
    },
    render: function () {
      return this
    },
    remove: function () {
      return this.$el.remove(),
      this.stopListening(),
      this
    },
    setElement: function (a, c) {
      return this.$el && this.undelegateEvents(),
      this.$el = a instanceof b.$ ? a : b.$(a),
      this.el = this.$el[0],
      c !== !1 && this.delegateEvents(),
      this
    },
    delegateEvents: function (a) {
      if (!a && !(a = c.result(this, 'events'))) return this;
      this.undelegateEvents();
      for (var b in a) {
        var d = a[b];
        if (c.isFunction(d) || (d = this[a[b]]), d) {
          var e = b.match(u),
          f = e[1],
          g = e[2];
          d = c.bind(d, this),
          f += '.delegateEvents' + this.cid,
          '' === g ? this.$el.on(f, d) : this.$el.on(f, g, d)
        }
      }
      return this
    },
    undelegateEvents: function () {
      return this.$el.off('.delegateEvents' + this.cid),
      this
    },
    _ensureElement: function () {
      if (this.el) this.setElement(c.result(this, 'el'), !1);
       else {
        var a = c.extend({
        }, c.result(this, 'attributes'));
        this.id && (a.id = c.result(this, 'id')),
        this.className && (a['class'] = c.result(this, 'className'));
        var d = b.$('<' + c.result(this, 'tagName') + '>').attr(a);
        this.setElement(d, !1)
      }
    }
  }),
  b.sync = function (a, d, e) {
    var f = x[a];
    c.defaults(e || (e = {
    }), {
      emulateHTTP: b.emulateHTTP,
      emulateJSON: b.emulateJSON
    });
    var g = {
      type: f,
      dataType: 'json'
    };
    if (e.url || (g.url = c.result(d, 'url') || K()), null != e.data || !d || 'create' !== a && 'update' !== a && 'patch' !== a || (g.contentType = 'application/json', g.data = JSON.stringify(e.attrs || d.toJSON(e))), e.emulateJSON && (g.contentType = 'application/x-www-form-urlencoded', g.data = g.data ? {
      model: g.data
    }
     : {
    }), e.emulateHTTP && ('PUT' === f || 'DELETE' === f || 'PATCH' === f)) {
      g.type = 'POST',
      e.emulateJSON && (g.data._method = f);
      var h = e.beforeSend;
      e.beforeSend = function (a) {
        if (a.setRequestHeader('X-HTTP-Method-Override', f), h) return h.apply(this, arguments)
      }
    }
    'GET' === g.type || e.emulateJSON || (g.processData = !1),
    'PATCH' === g.type && w && (g.xhr = function () {
      return new ActiveXObject('Microsoft.XMLHTTP')
    });
    var i = e.xhr = b.ajax(c.extend(g, e));
    return d.trigger('request', d, i, e),
    i
  };
  var w = !('undefined' == typeof window || !window.ActiveXObject || window.XMLHttpRequest && (new XMLHttpRequest).dispatchEvent),
  x = {
    create: 'POST',
    update: 'PUT',
    patch: 'PATCH',
    'delete': 'DELETE',
    read: 'GET'
  };
  b.ajax = function () {
    return b.$.ajax.apply(b.$, arguments)
  };
  var y = b.Router = function (a) {
    a || (a = {
    }),
    a.routes && (this.routes = a.routes),
    this._bindRoutes(),
    this.initialize.apply(this, arguments)
  },
  z = /\((.*?)\)/g,
  A = /(\(\?)?:\w+/g,
  B = /\*\w+/g,
  C = /[\-{}\[\]+?.,\\\^$|#\s]/g;
  c.extend(y.prototype, h, {
    initialize: function () {
    },
    route: function (a, d, e) {
      c.isRegExp(a) || (a = this._routeToRegExp(a)),
      c.isFunction(d) && (e = d, d = ''),
      e || (e = this[d]);
      var f = this;
      return b.history.route(a, function (c) {
        var g = f._extractParameters(a, c);
        f.execute(e, g),
        f.trigger.apply(f, [
          'route:' + d
        ].concat(g)),
        f.trigger('route', d, g),
        b.history.trigger('route', f, d, g)
      }),
      this
    },
    execute: function (a, b) {
      a && a.apply(this, b)
    },
    navigate: function (a, c) {
      return b.history.navigate(a, c),
      this
    },
    _bindRoutes: function () {
      if (this.routes) {
        this.routes = c.result(this, 'routes');
        for (var a, b = c.keys(this.routes); null != (a = b.pop()); ) this.route(a, this.routes[a])
      }
    },
    _routeToRegExp: function (a) {
      return a = a.replace(C, '\\$&').replace(z, '(?:$1)?').replace(A, function (a, b) {
        return b ? a : '([^/?]+)'
      }).replace(B, '([^?]*?)'),
      new RegExp('^' + a + '(?:\\?([\\s\\S]*))?$')
    },
    _extractParameters: function (a, b) {
      var d = a.exec(b).slice(1);
      return c.map(d, function (a, b) {
        return b === d.length - 1 ? a || null : a ? decodeURIComponent(a) : null
      })
    }
  });
  var D = b.History = function () {
    this.handlers = [
    ],
    c.bindAll(this, 'checkUrl'),
    'undefined' != typeof window && (this.location = window.location, this.history = window.history)
  },
  E = /^[#\/]|\s+$/g,
  F = /^\/+|\/+$/g,
  G = /msie [\w.]+/,
  H = /\/$/,
  I = /#.*$/;
  D.started = !1,
  c.extend(D.prototype, h, {
    interval: 50,
    atRoot: function () {
      return this.location.pathname.replace(/[^\/]$/, '$&/') === this.root
    },
    getHash: function (a) {
      var b = (a || this).location.href.match(/#(.*)$/);
      return b ? b[1] : ''
    },
    getFragment: function (a, b) {
      if (null == a) if (this._hasPushState || !this._wantsHashChange || b) {
        a = decodeURI(this.location.pathname + this.location.search);
        var c = this.root.replace(H, '');
        a.indexOf(c) || (a = a.slice(c.length))
      } else a = this.getHash();
      return a.replace(E, '')
    },
    start: function (a) {
      if (D.started) throw new Error('Backbone.history has already been started');
      D.started = !0,
      this.options = c.extend({
        root: '/'
      }, this.options, a),
      this.root = this.options.root,
      this._wantsHashChange = this.options.hashChange !== !1,
      this._wantsPushState = !!this.options.pushState,
      this._hasPushState = !!(this.options.pushState && this.history && this.history.pushState);
      var d = this.getFragment(),
      e = document.documentMode,
      f = G.exec(navigator.userAgent.toLowerCase()) && (!e || e <= 7);
      if (this.root = ('/' + this.root + '/').replace(F, '/'), f && this._wantsHashChange) {
        var g = b.$('<iframe src="javascript:0" tabindex="-1">');
        this.iframe = g.hide().appendTo('body') [0].contentWindow,
        this.navigate(d)
      }
      this._hasPushState ? b.$(window).on('popstate', this.checkUrl) : this._wantsHashChange && 'onhashchange' in window && !f ? b.$(window).on('hashchange', this.checkUrl) : this._wantsHashChange && (this._checkUrlInterval = setInterval(this.checkUrl, this.interval)),
      this.fragment = d;
      var h = this.location;
      if (this._wantsHashChange && this._wantsPushState) {
        if (!this._hasPushState && !this.atRoot()) return this.fragment = this.getFragment(null, !0),
        this.location.replace(this.root + '#' + this.fragment),
        !0;
        this._hasPushState && this.atRoot() && h.hash && (this.fragment = this.getHash().replace(E, ''), this.history.replaceState({
        }, document.title, this.root + this.fragment))
      }
      if (!this.options.silent) return this.loadUrl()
    },
    stop: function () {
      b.$(window).off('popstate', this.checkUrl).off('hashchange', this.checkUrl),
      this._checkUrlInterval && clearInterval(this._checkUrlInterval),
      D.started = !1
    },
    route: function (a, b) {
      this.handlers.unshift({
        route: a,
        callback: b
      })
    },
    checkUrl: function (a) {
      var b = this.getFragment();
      return b === this.fragment && this.iframe && (b = this.getFragment(this.getHash(this.iframe))),
      b !== this.fragment && (this.iframe && this.navigate(b), void this.loadUrl())
    },
    loadUrl: function (a) {
      return a = this.fragment = this.getFragment(a),
      c.any(this.handlers, function (b) {
        if (b.route.test(a)) return b.callback(a),
        !0
      })
    },
    navigate: function (a, b) {
      if (!D.started) return !1;
      b && b !== !0 || (b = {
        trigger: !!b
      });
      var c = this.root + (a = this.getFragment(a || ''));
      if (a = a.replace(I, ''), this.fragment !== a) {
        if (this.fragment = a, '' === a && '/' !== c && (c = c.slice(0, - 1)), this._hasPushState) this.history[b.replace ? 'replaceState' : 'pushState']({
        }, document.title, c);
         else {
          if (!this._wantsHashChange) return this.location.assign(c);
          this._updateHash(this.location, a, b.replace),
          this.iframe && a !== this.getFragment(this.getHash(this.iframe)) && (b.replace || this.iframe.document.open().close(), this._updateHash(this.iframe.location, a, b.replace))
        }
        return b.trigger ? this.loadUrl(a) : void 0
      }
    },
    _updateHash: function (a, b, c) {
      if (c) {
        var d = a.href.replace(/(javascript:|#).*$/, '');
        a.replace(d + '#' + b)
      } else a.hash = '#' + b
    }
  }),
  b.history = new D;
  var J = function (a, b) {
    var d,
    e = this;
    d = a && c.has(a, 'constructor') ? a.constructor : function () {
      return e.apply(this, arguments)
    },
    c.extend(d, e, b);
    var f = function () {
      this.constructor = d
    };
    return f.prototype = e.prototype,
    d.prototype = new f,
    a && c.extend(d.prototype, a),
    d.__super__ = e.prototype,
    d
  };
  m.extend = o.extend = y.extend = t.extend = D.extend = J;
  var K = function () {
    throw new Error('A "url" property or function must be specified')
  },
  L = function (a, b) {
    var c = b.error;
    b.error = function (d) {
      c && c(a, d, b),
      a.trigger('error', a, d, b)
    }
  };
  return b
}),
define('core/vendor_extensions/backbone.overrides', [
  'backbone.original'
], function (a) {
  'use strict';
  return a.ajax = function (a) {
    return 'jsonp' === a.dataType && (a.cache = !0),
    require('core/api').ajax(a)
  },
  a.Collection.prototype.parse = function (a) {
    return a.response
  },
  a
}),
define('core/vendor_extensions/backbone.extensions', [
  'backbone.original',
  'underscore'
], function (a, b) {
  'use strict';
  return a.collectionAddNormalizer = function (a, c) {
    return function (d) {
      return function (e, f, g) {
        var h;
        if (e instanceof a) g = f,
        f = e,
        h = f.models;
         else if (e instanceof c) h = [
          e
        ];
         else {
          if (!b.isArray(e)) throw new Error('Unknown model: ' + typeof e);
          h = e
        }
        return d.call(this, h, f, g || {
        })
      }
    }
  },
  a
}),
define('backbone', [
  'backbone.original',
  'core/vendor_extensions/backbone.overrides',
  'core/vendor_extensions/backbone.extensions'
], function (a) {
  'use strict';
  return a
}),
function (a, b) {
  if ('function' == typeof define && define.amd) define('backbone.uniquemodel', [
    'backbone'
  ], function (a) {
    a.UniqueModel = b(a)
  });
   else if ('undefined' != typeof exports) {
    var c = require('backbone');
    c.UniqueModel = b(c)
  } else a.Backbone.UniqueModel = b(a.Backbone)
}(this, function (a) {
  'use strict';
  function b(a, c, d) {
    c = c || _.uniqueId('UniqueModel_'),
    d = d || b.STORAGE_DEFAULT_ADAPTER;
    var e = b.addModel(a, c, d);
    return e.modelConstructor
  }
  function c(b, c, e) {
    var f = this;
    this.instances = {
    },
    this.Model = b,
    this.modelName = c,
    this.storage = null,
    'localStorage' === e ? this.storage = new d(this.modelName, localStorage) : 'sessionStorage' === e && (this.storage = new d(this.modelName, sessionStorage)),
    this.storage && (this.storage.on('sync', this.storageSync, this), this.storage.on('destroy', this.storageDestroy, this));
    var g = function (a, b) {
      return f.get(a, b)
    };
    _.extend(g, b),
    _.extend(g, a.Events),
    g.prototype = this.Model.prototype,
    this.modelConstructor = g
  }
  function d(a, b) {
    this.modelName = a,
    this.store = b,
    d.instances[a] = this,
    d.listener || (d.listener = window.addEventListener ? window.addEventListener('storage', d.onStorage, !1) : window.attachEvent('onstorage', d.onStorage))
  }
  var e = {
  };
  return b.STORAGE_DEFAULT_ADAPTER = 'memory',
  b.STORAGE_KEY_DELIMETER = '.',
  b.STORAGE_NAMESPACE = 'UniqueModel',
  b.getModelCache = function (a) {
    var b = e[a];
    if (!b) throw 'Unrecognized model: ' + a;
    return b
  },
  b.addModel = function (a, b, d) {
    if (e[b]) return e[b];
    var f = new c(a, b, d);
    return e[b] = f,
    f
  },
  b.clear = function () {
    for (var a in e) e.hasOwnProperty(a) && delete e[a]
  },
  _.extend(c.prototype, {
    newModel: function (a, b) {
      var c = new this.Model(a, b);
      return c.id || c.once('change:' + c.idAttribute, function () {
        this.instances[c.id] || (this.instances[c.id] = c)
      }, this),
      this.storage && c.id && this.storage.save(c.id, c.attributes),
      c.on('sync', this.instanceSync, this),
      c.on('destroy', this.instanceDestroy, this),
      c
    },
    instanceSync: function (a) {
      this.storage && this.storage.save(a.id, a.attributes)
    },
    instanceDestroy: function (a) {
      var b = a.id;
      this.storage && this.storage.remove(b),
      this.instances[b] && delete this.instances[b]
    },
    storageSync: function (a, b) {
      this.get(b, {
        fromStorage: !0
      })
    },
    storageDestroy: function (a) {
      var b = this.instances[a];
      b && (b.trigger('destroy', b), delete this.instances[a])
    },
    add: function (a, b, c) {
      var d = this.newModel(b, c);
      return this.instances[a] = d,
      d
    },
    get: function (a, b) {
      b = b || {
      };
      var c = this.Model,
      d = a && a[c.prototype.idAttribute];
      if (!d) return this.newModel(a, b);
      var e = this.instances[d];
      if (this.storage && !b.fromStorage && !e) {
        var f = this.storage.getFromStorage(this.storage.getStorageKey(d));
        f && (e = this.add(d, f, b))
      }
      return e ? (e.set(a), b.fromStorage || this.instanceSync(e)) : (e = this.add(d, a, b), b.fromStorage && this.modelConstructor.trigger('uniquemodel.add', e)),
      e
    }
  }),
  d.instances = {
  },
  d.listener = null,
  d.onStorage = function (a) {
    var c = a.key,
    e = new RegExp([b.STORAGE_NAMESPACE,
    '(\\w+)',
    '(.+)'].join('\\' + b.STORAGE_KEY_DELIMETER)),
    f = c.match(e);
    if (f) {
      var g = f[1],
      h = f[2],
      i = d.instances[g];
      i && i.handleStorageEvent(c, h)
    }
  },
  _.extend(d.prototype, {
    handleStorageEvent: function (a, b) {
      var c = this.getFromStorage(a);
      c ? this.trigger('sync', b, c) : this.trigger('destroy', b)
    },
    getFromStorage: function (a) {
      try {
        return JSON.parse(this.store.getItem(a))
      } catch (b) {
        return
      }
    },
    getStorageKey: function (a) {
      var c = [
        b.STORAGE_NAMESPACE,
        this.modelName,
        a
      ].join(b.STORAGE_KEY_DELIMETER);
      return c
    },
    save: function (a, b) {
      if (!a) throw 'Cannot save without id';
      var c = JSON.stringify(b);
      this.store.setItem(this.getStorageKey(a), c)
    },
    remove: function (a) {
      if (!a) throw 'Cannot remove without id';
      this.store.removeItem(this.getStorageKey(a))
    }
  }, a.Events),
  _.extend(b, {
    ModelCache: c,
    StorageAdapter: d
  }),
  b
}),
function (a, b) {
  'object' == typeof exports && 'undefined' != typeof module ? module.exports = b() : 'function' == typeof define && define.amd ? define('moment', b) : a.moment = b()
}(this, function () {
  'use strict';
  function a() {
    return Uc.apply(null, arguments)
  }
  function b(a) {
    Uc = a
  }
  function c(a) {
    return '[object Array]' === Object.prototype.toString.call(a)
  }
  function d(a) {
    return a instanceof Date || '[object Date]' === Object.prototype.toString.call(a)
  }
  function e(a, b) {
    var c,
    d = [
    ];
    for (c = 0; c < a.length; ++c) d.push(b(a[c], c));
    return d
  }
  function f(a, b) {
    return Object.prototype.hasOwnProperty.call(a, b)
  }
  function g(a, b) {
    for (var c in b) f(b, c) && (a[c] = b[c]);
    return f(b, 'toString') && (a.toString = b.toString),
    f(b, 'valueOf') && (a.valueOf = b.valueOf),
    a
  }
  function h(a, b, c, d) {
    return Da(a, b, c, d, !0).utc()
  }
  function i() {
    return {
      empty: !1,
      unusedTokens: [
      ],
      unusedInput: [
      ],
      overflow: - 2,
      charsLeftOver: 0,
      nullInput: !1,
      invalidMonth: null,
      invalidFormat: !1,
      userInvalidated: !1,
      iso: !1
    }
  }
  function j(a) {
    return null == a._pf && (a._pf = i()),
    a._pf
  }
  function k(a) {
    if (null == a._isValid) {
      var b = j(a);
      a._isValid = !(isNaN(a._d.getTime()) || !(b.overflow < 0) || b.empty || b.invalidMonth || b.invalidWeekday || b.nullInput || b.invalidFormat || b.userInvalidated),
      a._strict && (a._isValid = a._isValid && 0 === b.charsLeftOver && 0 === b.unusedTokens.length && void 0 === b.bigHour)
    }
    return a._isValid
  }
  function l(a) {
    var b = h(NaN);
    return null != a ? g(j(b), a) : j(b).userInvalidated = !0,
    b
  }
  function m(a) {
    return void 0 === a
  }
  function n(a, b) {
    var c,
    d,
    e;
    if (m(b._isAMomentObject) || (a._isAMomentObject = b._isAMomentObject), m(b._i) || (a._i = b._i), m(b._f) || (a._f = b._f), m(b._l) || (a._l = b._l), m(b._strict) || (a._strict = b._strict), m(b._tzm) || (a._tzm = b._tzm), m(b._isUTC) || (a._isUTC = b._isUTC), m(b._offset) || (a._offset = b._offset), m(b._pf) || (a._pf = j(b)), m(b._locale) || (a._locale = b._locale), Wc.length > 0) for (c in Wc) d = Wc[c],
    e = b[d],
    m(e) || (a[d] = e);
    return a
  }
  function o(b) {
    n(this, b),
    this._d = new Date(null != b._d ? b._d.getTime() : NaN),
    Xc === !1 && (Xc = !0, a.updateOffset(this), Xc = !1)
  }
  function p(a) {
    return a instanceof o || null != a && null != a._isAMomentObject
  }
  function q(a) {
    return a < 0 ? Math.ceil(a) : Math.floor(a)
  }
  function r(a) {
    var b = + a,
    c = 0;
    return 0 !== b && isFinite(b) && (c = q(b)),
    c
  }
  function s(a, b, c) {
    var d,
    e = Math.min(a.length, b.length),
    f = Math.abs(a.length - b.length),
    g = 0;
    for (d = 0; d < e; d++) (c && a[d] !== b[d] || !c && r(a[d]) !== r(b[d])) && g++;
    return g + f
  }
  function t() {
  }
  function u(a) {
    return a ? a.toLowerCase().replace('_', '-') : a
  }
  function v(a) {
    for (var b, c, d, e, f = 0; f < a.length; ) {
      for (e = u(a[f]).split('-'), b = e.length, c = u(a[f + 1]), c = c ? c.split('-') : null; b > 0; ) {
        if (d = w(e.slice(0, b).join('-'))) return d;
        if (c && c.length >= b && s(e, c, !0) >= b - 1) break;
        b--
      }
      f++
    }
    return null
  }
  function w(a) {
    var b = null;
    if (!Yc[a] && 'undefined' != typeof module && module && module.exports) try {
      b = Vc._abbr,
      require('./locale/' + a),
      x(b)
    } catch (c) {
    }
    return Yc[a]
  }
  function x(a, b) {
    var c;
    return a && (c = m(b) ? z(a) : y(a, b), c && (Vc = c)),
    Vc._abbr
  }
  function y(a, b) {
    return null !== b ? (b.abbr = a, Yc[a] = Yc[a] || new t, Yc[a].set(b), x(a), Yc[a]) : (delete Yc[a], null)
  }
  function z(a) {
    var b;
    if (a && a._locale && a._locale._abbr && (a = a._locale._abbr), !a) return Vc;
    if (!c(a)) {
      if (b = w(a)) return b;
      a = [
        a
      ]
    }
    return v(a)
  }
  function A(a, b) {
    var c = a.toLowerCase();
    Zc[c] = Zc[c + 's'] = Zc[b] = a
  }
  function B(a) {
    return 'string' == typeof a ? Zc[a] || Zc[a.toLowerCase()] : void 0
  }
  function C(a) {
    var b,
    c,
    d = {
    };
    for (c in a) f(a, c) && (b = B(c), b && (d[b] = a[c]));
    return d
  }
  function D(a) {
    return a instanceof Function || '[object Function]' === Object.prototype.toString.call(a)
  }
  function E(b, c) {
    return function (d) {
      return null != d ? (G(this, b, d), a.updateOffset(this, c), this) : F(this, b)
    }
  }
  function F(a, b) {
    return a.isValid() ? a._d['get' + (a._isUTC ? 'UTC' : '') + b]() : NaN
  }
  function G(a, b, c) {
    a.isValid() && a._d['set' + (a._isUTC ? 'UTC' : '') + b](c)
  }
  function H(a, b) {
    var c;
    if ('object' == typeof a) for (c in a) this.set(c, a[c]);
     else if (a = B(a), D(this[a])) return this[a](b);
    return this
  }
  function I(a, b, c) {
    var d = '' + Math.abs(a),
    e = b - d.length,
    f = a >= 0;
    return (f ? c ? '+' : '' : '-') + Math.pow(10, Math.max(0, e)).toString().substr(1) + d
  }
  function J(a, b, c, d) {
    var e = d;
    'string' == typeof d && (e = function () {
      return this[d]()
    }),
    a && (bd[a] = e),
    b && (bd[b[0]] = function () {
      return I(e.apply(this, arguments), b[1], b[2])
    }),
    c && (bd[c] = function () {
      return this.localeData().ordinal(e.apply(this, arguments), a)
    })
  }
  function K(a) {
    return a.match(/\[[\s\S]/) ? a.replace(/^\[|\]$/g, '') : a.replace(/\\/g, '')
  }
  function L(a) {
    var b,
    c,
    d = a.match($c);
    for (b = 0, c = d.length; b < c; b++) bd[d[b]] ? d[b] = bd[d[b]] : d[b] = K(d[b]);
    return function (e) {
      var f = '';
      for (b = 0; b < c; b++) f += d[b] instanceof Function ? d[b].call(e, a) : d[b];
      return f
    }
  }
  function M(a, b) {
    return a.isValid() ? (b = N(b, a.localeData()), ad[b] = ad[b] || L(b), ad[b](a)) : a.localeData().invalidDate()
  }
  function N(a, b) {
    function c(a) {
      return b.longDateFormat(a) || a
    }
    var d = 5;
    for (_c.lastIndex = 0; d >= 0 && _c.test(a); ) a = a.replace(_c, c),
    _c.lastIndex = 0,
    d -= 1;
    return a
  }
  function O(a, b, c) {
    td[a] = D(b) ? b : function (a, d) {
      return a && c ? c : b
    }
  }
  function P(a, b) {
    return f(td, a) ? td[a](b._strict, b._locale) : new RegExp(Q(a))
  }
  function Q(a) {
    return R(a.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (a, b, c, d, e) {
      return b || c || d || e
    }))
  }
  function R(a) {
    return a.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')
  }
  function S(a, b) {
    var c,
    d = b;
    for ('string' == typeof a && (a = [
      a
    ]), 'number' == typeof b && (d = function (a, c) {
      c[b] = r(a)
    }), c = 0; c < a.length; c++) ud[a[c]] = d
  }
  function T(a, b) {
    S(a, function (a, c, d, e) {
      d._w = d._w || {
      },
      b(a, d._w, d, e)
    })
  }
  function U(a, b, c) {
    null != b && f(ud, a) && ud[a](b, c._a, c, a)
  }
  function V(a, b) {
    return new Date(Date.UTC(a, b + 1, 0)).getUTCDate()
  }
  function W(a, b) {
    return c(this._months) ? this._months[a.month()] : this._months[Ed.test(b) ? 'format' : 'standalone'][a.month()]
  }
  function X(a, b) {
    return c(this._monthsShort) ? this._monthsShort[a.month()] : this._monthsShort[Ed.test(b) ? 'format' : 'standalone'][a.month()]
  }
  function Y(a, b, c) {
    var d,
    e,
    f;
    for (this._monthsParse || (this._monthsParse = [
    ], this._longMonthsParse = [
    ], this._shortMonthsParse = [
    ]), d = 0; d < 12; d++) {
      if (e = h([2000,
      d]), c && !this._longMonthsParse[d] && (this._longMonthsParse[d] = new RegExp('^' + this.months(e, '').replace('.', '') + '$', 'i'), this._shortMonthsParse[d] = new RegExp('^' + this.monthsShort(e, '').replace('.', '') + '$', 'i')), c || this._monthsParse[d] || (f = '^' + this.months(e, '') + '|^' + this.monthsShort(e, ''), this._monthsParse[d] = new RegExp(f.replace('.', ''), 'i')), c && 'MMMM' === b && this._longMonthsParse[d].test(a)) return d;
      if (c && 'MMM' === b && this._shortMonthsParse[d].test(a)) return d;
      if (!c && this._monthsParse[d].test(a)) return d
    }
  }
  function Z(a, b) {
    var c;
    return a.isValid() ? 'string' == typeof b && (b = a.localeData().monthsParse(b), 'number' != typeof b) ? a : (c = Math.min(a.date(), V(a.year(), b)), a._d['set' + (a._isUTC ? 'UTC' : '') + 'Month'](b, c), a) : a
  }
  function $(b) {
    return null != b ? (Z(this, b), a.updateOffset(this, !0), this) : F(this, 'Month')
  }
  function _() {
    return V(this.year(), this.month())
  }
  function aa(a) {
    return this._monthsParseExact ? (f(this, '_monthsRegex') || ca.call(this), a ? this._monthsShortStrictRegex : this._monthsShortRegex) : this._monthsShortStrictRegex && a ? this._monthsShortStrictRegex : this._monthsShortRegex
  }
  function ba(a) {
    return this._monthsParseExact ? (f(this, '_monthsRegex') || ca.call(this), a ? this._monthsStrictRegex : this._monthsRegex) : this._monthsStrictRegex && a ? this._monthsStrictRegex : this._monthsRegex
  }
  function ca() {
    function a(a, b) {
      return b.length - a.length
    }
    var b,
    c,
    d = [
    ],
    e = [
    ],
    f = [
    ];
    for (b = 0; b < 12; b++) c = h([2000,
    b]),
    d.push(this.monthsShort(c, '')),
    e.push(this.months(c, '')),
    f.push(this.months(c, '')),
    f.push(this.monthsShort(c, ''));
    for (d.sort(a), e.sort(a), f.sort(a), b = 0; b < 12; b++) d[b] = R(d[b]),
    e[b] = R(e[b]),
    f[b] = R(f[b]);
    this._monthsRegex = new RegExp('^(' + f.join('|') + ')', 'i'),
    this._monthsShortRegex = this._monthsRegex,
    this._monthsStrictRegex = new RegExp('^(' + e.join('|') + ')$', 'i'),
    this._monthsShortStrictRegex = new RegExp('^(' + d.join('|') + ')$', 'i')
  }
  function da(a) {
    var b,
    c = a._a;
    return c && j(a).overflow === - 2 && (b = c[wd] < 0 || c[wd] > 11 ? wd : c[xd] < 1 || c[xd] > V(c[vd], c[wd]) ? xd : c[yd] < 0 || c[yd] > 24 || 24 === c[yd] && (0 !== c[zd] || 0 !== c[Ad] || 0 !== c[Bd]) ? yd : c[zd] < 0 || c[zd] > 59 ? zd : c[Ad] < 0 || c[Ad] > 59 ? Ad : c[Bd] < 0 || c[Bd] > 999 ? Bd : - 1, j(a)._overflowDayOfYear && (b < vd || b > xd) && (b = xd), j(a)._overflowWeeks && b === - 1 && (b = Cd), j(a)._overflowWeekday && b === - 1 && (b = Dd), j(a).overflow = b),
    a
  }
  function ea(b) {
    a.suppressDeprecationWarnings === !1 && 'undefined' != typeof console && console.warn && console.warn('Deprecation warning: ' + b)
  }
  function fa(a, b) {
    var c = !0;
    return g(function () {
      return c && (ea(a + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error).stack), c = !1),
      b.apply(this, arguments)
    }, b)
  }
  function ga(a, b) {
    Jd[a] || (ea(b), Jd[a] = !0)
  }
  function ha(a) {
    var b,
    c,
    d,
    e,
    f,
    g,
    h = a._i,
    i = Kd.exec(h) || Ld.exec(h);
    if (i) {
      for (j(a).iso = !0, b = 0, c = Nd.length; b < c; b++) if (Nd[b][1].exec(i[1])) {
        e = Nd[b][0],
        d = Nd[b][2] !== !1;
        break
      }
      if (null == e) return void (a._isValid = !1);
      if (i[3]) {
        for (b = 0, c = Od.length; b < c; b++) if (Od[b][1].exec(i[3])) {
          f = (i[2] || ' ') + Od[b][0];
          break
        }
        if (null == f) return void (a._isValid = !1)
      }
      if (!d && null != f) return void (a._isValid = !1);
      if (i[4]) {
        if (!Md.exec(i[4])) return void (a._isValid = !1);
        g = 'Z'
      }
      a._f = e + (f || '') + (g || ''),
      wa(a)
    } else a._isValid = !1
  }
  function ia(b) {
    var c = Pd.exec(b._i);
    return null !== c ? void (b._d = new Date(( + c[1]))) : (ha(b), void (b._isValid === !1 && (delete b._isValid, a.createFromInputFallback(b))))
  }
  function ja(a, b, c, d, e, f, g) {
    var h = new Date(a, b, c, d, e, f, g);
    return a < 100 && a >= 0 && isFinite(h.getFullYear()) && h.setFullYear(a),
    h
  }
  function ka(a) {
    var b = new Date(Date.UTC.apply(null, arguments));
    return a < 100 && a >= 0 && isFinite(b.getUTCFullYear()) && b.setUTCFullYear(a),
    b
  }
  function la(a) {
    return ma(a) ? 366 : 365
  }
  function ma(a) {
    return a % 4 === 0 && a % 100 !== 0 || a % 400 === 0
  }
  function na() {
    return ma(this.year())
  }
  function oa(a, b, c) {
    var d = 7 + b - c,
    e = (7 + ka(a, 0, d).getUTCDay() - b) % 7;
    return - e + d - 1
  }
  function pa(a, b, c, d, e) {
    var f,
    g,
    h = (7 + c - d) % 7,
    i = oa(a, d, e),
    j = 1 + 7 * (b - 1) + h + i;
    return j <= 0 ? (f = a - 1, g = la(f) + j) : j > la(a) ? (f = a + 1, g = j - la(a)) : (f = a, g = j),
    {
      year: f,
      dayOfYear: g
    }
  }
  function qa(a, b, c) {
    var d,
    e,
    f = oa(a.year(), b, c),
    g = Math.floor((a.dayOfYear() - f - 1) / 7) + 1;
    return g < 1 ? (e = a.year() - 1, d = g + ra(e, b, c)) : g > ra(a.year(), b, c) ? (d = g - ra(a.year(), b, c), e = a.year() + 1) : (e = a.year(), d = g),
    {
      week: d,
      year: e
    }
  }
  function ra(a, b, c) {
    var d = oa(a, b, c),
    e = oa(a + 1, b, c);
    return (la(a) - d + e) / 7
  }
  function sa(a, b, c) {
    return null != a ? a : null != b ? b : c
  }
  function ta(b) {
    var c = new Date(a.now());
    return b._useUTC ? [
      c.getUTCFullYear(),
      c.getUTCMonth(),
      c.getUTCDate()
    ] : [
      c.getFullYear(),
      c.getMonth(),
      c.getDate()
    ]
  }
  function ua(a) {
    var b,
    c,
    d,
    e,
    f = [
    ];
    if (!a._d) {
      for (d = ta(a), a._w && null == a._a[xd] && null == a._a[wd] && va(a), a._dayOfYear && (e = sa(a._a[vd], d[vd]), a._dayOfYear > la(e) && (j(a)._overflowDayOfYear = !0), c = ka(e, 0, a._dayOfYear), a._a[wd] = c.getUTCMonth(), a._a[xd] = c.getUTCDate()), b = 0; b < 3 && null == a._a[b]; ++b) a._a[b] = f[b] = d[b];
      for (; b < 7; b++) a._a[b] = f[b] = null == a._a[b] ? 2 === b ? 1 : 0 : a._a[b];
      24 === a._a[yd] && 0 === a._a[zd] && 0 === a._a[Ad] && 0 === a._a[Bd] && (a._nextDay = !0, a._a[yd] = 0),
      a._d = (a._useUTC ? ka : ja).apply(null, f),
      null != a._tzm && a._d.setUTCMinutes(a._d.getUTCMinutes() - a._tzm),
      a._nextDay && (a._a[yd] = 24)
    }
  }
  function va(a) {
    var b,
    c,
    d,
    e,
    f,
    g,
    h,
    i;
    b = a._w,
    null != b.GG || null != b.W || null != b.E ? (f = 1, g = 4, c = sa(b.GG, a._a[vd], qa(Ea(), 1, 4).year), d = sa(b.W, 1), e = sa(b.E, 1), (e < 1 || e > 7) && (i = !0)) : (f = a._locale._week.dow, g = a._locale._week.doy, c = sa(b.gg, a._a[vd], qa(Ea(), f, g).year), d = sa(b.w, 1), null != b.d ? (e = b.d, (e < 0 || e > 6) && (i = !0)) : null != b.e ? (e = b.e + f, (b.e < 0 || b.e > 6) && (i = !0)) : e = f),
    d < 1 || d > ra(c, f, g) ? j(a)._overflowWeeks = !0 : null != i ? j(a)._overflowWeekday = !0 : (h = pa(c, d, e, f, g), a._a[vd] = h.year, a._dayOfYear = h.dayOfYear)
  }
  function wa(b) {
    if (b._f === a.ISO_8601) return void ha(b);
    b._a = [
    ],
    j(b).empty = !0;
    var c,
    d,
    e,
    f,
    g,
    h = '' + b._i,
    i = h.length,
    k = 0;
    for (e = N(b._f, b._locale).match($c) || [
    ], c = 0; c < e.length; c++) f = e[c],
    d = (h.match(P(f, b)) || [
    ]) [0],
    d && (g = h.substr(0, h.indexOf(d)), g.length > 0 && j(b).unusedInput.push(g), h = h.slice(h.indexOf(d) + d.length), k += d.length),
    bd[f] ? (d ? j(b).empty = !1 : j(b).unusedTokens.push(f), U(f, d, b)) : b._strict && !d && j(b).unusedTokens.push(f);
    j(b).charsLeftOver = i - k,
    h.length > 0 && j(b).unusedInput.push(h),
    j(b).bigHour === !0 && b._a[yd] <= 12 && b._a[yd] > 0 && (j(b).bigHour = void 0),
    b._a[yd] = xa(b._locale, b._a[yd], b._meridiem),
    ua(b),
    da(b)
  }
  function xa(a, b, c) {
    var d;
    return null == c ? b : null != a.meridiemHour ? a.meridiemHour(b, c) : null != a.isPM ? (d = a.isPM(c), d && b < 12 && (b += 12), d || 12 !== b || (b = 0), b) : b
  }
  function ya(a) {
    var b,
    c,
    d,
    e,
    f;
    if (0 === a._f.length) return j(a).invalidFormat = !0,
    void (a._d = new Date(NaN));
    for (e = 0; e < a._f.length; e++) f = 0,
    b = n({
    }, a),
    null != a._useUTC && (b._useUTC = a._useUTC),
    b._f = a._f[e],
    wa(b),
    k(b) && (f += j(b).charsLeftOver, f += 10 * j(b).unusedTokens.length, j(b).score = f, (null == d || f < d) && (d = f, c = b));
    g(a, c || b)
  }
  function za(a) {
    if (!a._d) {
      var b = C(a._i);
      a._a = e([b.year,
      b.month,
      b.day || b.date,
      b.hour,
      b.minute,
      b.second,
      b.millisecond], function (a) {
        return a && parseInt(a, 10)
      }),
      ua(a)
    }
  }
  function Aa(a) {
    var b = new o(da(Ba(a)));
    return b._nextDay && (b.add(1, 'd'), b._nextDay = void 0),
    b
  }
  function Ba(a) {
    var b = a._i,
    e = a._f;
    return a._locale = a._locale || z(a._l),
    null === b || void 0 === e && '' === b ? l({
      nullInput: !0
    }) : ('string' == typeof b && (a._i = b = a._locale.preparse(b)), p(b) ? new o(da(b)) : (c(e) ? ya(a) : e ? wa(a) : d(b) ? a._d = b : Ca(a), k(a) || (a._d = null), a))
  }
  function Ca(b) {
    var f = b._i;
    void 0 === f ? b._d = new Date(a.now()) : d(f) ? b._d = new Date(( + f)) : 'string' == typeof f ? ia(b) : c(f) ? (b._a = e(f.slice(0), function (a) {
      return parseInt(a, 10)
    }), ua(b)) : 'object' == typeof f ? za(b) : 'number' == typeof f ? b._d = new Date(f) : a.createFromInputFallback(b)
  }
  function Da(a, b, c, d, e) {
    var f = {
    };
    return 'boolean' == typeof c && (d = c, c = void 0),
    f._isAMomentObject = !0,
    f._useUTC = f._isUTC = e,
    f._l = c,
    f._i = a,
    f._f = b,
    f._strict = d,
    Aa(f)
  }
  function Ea(a, b, c, d) {
    return Da(a, b, c, d, !1)
  }
  function Fa(a, b) {
    var d,
    e;
    if (1 === b.length && c(b[0]) && (b = b[0]), !b.length) return Ea();
    for (d = b[0], e = 1; e < b.length; ++e) b[e].isValid() && !b[e][a](d) || (d = b[e]);
    return d
  }
  function Ga() {
    var a = [
    ].slice.call(arguments, 0);
    return Fa('isBefore', a)
  }
  function Ha() {
    var a = [
    ].slice.call(arguments, 0);
    return Fa('isAfter', a)
  }
  function Ia(a) {
    var b = C(a),
    c = b.year || 0,
    d = b.quarter || 0,
    e = b.month || 0,
    f = b.week || 0,
    g = b.day || 0,
    h = b.hour || 0,
    i = b.minute || 0,
    j = b.second || 0,
    k = b.millisecond || 0;
    this._milliseconds = + k + 1000 * j + 60000 * i + 3600000 * h,
    this._days = + g + 7 * f,
    this._months = + e + 3 * d + 12 * c,
    this._data = {
    },
    this._locale = z(),
    this._bubble()
  }
  function Ja(a) {
    return a instanceof Ia
  }
  function Ka(a, b) {
    J(a, 0, 0, function () {
      var a = this.utcOffset(),
      c = '+';
      return a < 0 && (a = - a, c = '-'),
      c + I(~~(a / 60), 2) + b + I(~~a % 60, 2)
    })
  }
  function La(a, b) {
    var c = (b || '').match(a) || [
    ],
    d = c[c.length - 1] || [
    ],
    e = (d + '').match(Ud) || [
      '-',
      0,
      0
    ],
    f = + (60 * e[1]) + r(e[2]);
    return '+' === e[0] ? f : - f
  }
  function Ma(b, c) {
    var e,
    f;
    return c._isUTC ? (e = c.clone(), f = (p(b) || d(b) ? + b : + Ea(b)) - + e, e._d.setTime( + e._d + f), a.updateOffset(e, !1), e) : Ea(b).local()
  }
  function Na(a) {
    return 15 * - Math.round(a._d.getTimezoneOffset() / 15)
  }
  function Oa(b, c) {
    var d,
    e = this._offset || 0;
    return this.isValid() ? null != b ? ('string' == typeof b ? b = La(qd, b) : Math.abs(b) < 16 && (b = 60 * b), !this._isUTC && c && (d = Na(this)), this._offset = b, this._isUTC = !0, null != d && this.add(d, 'm'), e !== b && (!c || this._changeInProgress ? cb(this, Za(b - e, 'm'), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, a.updateOffset(this, !0), this._changeInProgress = null)), this) : this._isUTC ? e : Na(this) : null != b ? this : NaN
  }
  function Pa(a, b) {
    return null != a ? ('string' != typeof a && (a = - a), this.utcOffset(a, b), this) : - this.utcOffset()
  }
  function Qa(a) {
    return this.utcOffset(0, a)
  }
  function Ra(a) {
    return this._isUTC && (this.utcOffset(0, a), this._isUTC = !1, a && this.subtract(Na(this), 'm')),
    this
  }
  function Sa() {
    return this._tzm ? this.utcOffset(this._tzm) : 'string' == typeof this._i && this.utcOffset(La(pd, this._i)),
    this
  }
  function Ta(a) {
    return !!this.isValid() && (a = a ? Ea(a).utcOffset() : 0, (this.utcOffset() - a) % 60 === 0)
  }
  function Ua() {
    return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset()
  }
  function Va() {
    if (!m(this._isDSTShifted)) return this._isDSTShifted;
    var a = {
    };
    if (n(a, this), a = Ba(a), a._a) {
      var b = a._isUTC ? h(a._a) : Ea(a._a);
      this._isDSTShifted = this.isValid() && s(a._a, b.toArray()) > 0
    } else this._isDSTShifted = !1;
    return this._isDSTShifted
  }
  function Wa() {
    return !!this.isValid() && !this._isUTC
  }
  function Xa() {
    return !!this.isValid() && this._isUTC
  }
  function Ya() {
    return !!this.isValid() && (this._isUTC && 0 === this._offset)
  }
  function Za(a, b) {
    var c,
    d,
    e,
    g = a,
    h = null;
    return Ja(a) ? g = {
      ms: a._milliseconds,
      d: a._days,
      M: a._months
    }
     : 'number' == typeof a ? (g = {
    }, b ? g[b] = a : g.milliseconds = a) : (h = Vd.exec(a)) ? (c = '-' === h[1] ? - 1 : 1, g = {
      y: 0,
      d: r(h[xd]) * c,
      h: r(h[yd]) * c,
      m: r(h[zd]) * c,
      s: r(h[Ad]) * c,
      ms: r(h[Bd]) * c
    }) : (h = Wd.exec(a)) ? (c = '-' === h[1] ? - 1 : 1, g = {
      y: $a(h[2], c),
      M: $a(h[3], c),
      d: $a(h[4], c),
      h: $a(h[5], c),
      m: $a(h[6], c),
      s: $a(h[7], c),
      w: $a(h[8], c)
    }) : null == g ? g = {
    }
     : 'object' == typeof g && ('from' in g || 'to' in g) && (e = ab(Ea(g.from), Ea(g.to)), g = {
    }, g.ms = e.milliseconds, g.M = e.months),
    d = new Ia(g),
    Ja(a) && f(a, '_locale') && (d._locale = a._locale),
    d
  }
  function $a(a, b) {
    var c = a && parseFloat(a.replace(',', '.'));
    return (isNaN(c) ? 0 : c) * b
  }
  function _a(a, b) {
    var c = {
      milliseconds: 0,
      months: 0
    };
    return c.months = b.month() - a.month() + 12 * (b.year() - a.year()),
    a.clone().add(c.months, 'M').isAfter(b) && --c.months,
    c.milliseconds = + b - + a.clone().add(c.months, 'M'),
    c
  }
  function ab(a, b) {
    var c;
    return a.isValid() && b.isValid() ? (b = Ma(b, a), a.isBefore(b) ? c = _a(a, b) : (c = _a(b, a), c.milliseconds = - c.milliseconds, c.months = - c.months), c) : {
      milliseconds: 0,
      months: 0
    }
  }
  function bb(a, b) {
    return function (c, d) {
      var e,
      f;
      return null === d || isNaN( + d) || (ga(b, 'moment().' + b + '(period, number) is deprecated. Please use moment().' + b + '(number, period).'), f = c, c = d, d = f),
      c = 'string' == typeof c ? + c : c,
      e = Za(c, d),
      cb(this, e, a),
      this
    }
  }
  function cb(b, c, d, e) {
    var f = c._milliseconds,
    g = c._days,
    h = c._months;
    b.isValid() && (e = null == e || e, f && b._d.setTime( + b._d + f * d), g && G(b, 'Date', F(b, 'Date') + g * d), h && Z(b, F(b, 'Month') + h * d), e && a.updateOffset(b, g || h))
  }
  function db(a, b) {
    var c = a || Ea(),
    d = Ma(c, this).startOf('day'),
    e = this.diff(d, 'days', !0),
    f = e < - 6 ? 'sameElse' : e < - 1 ? 'lastWeek' : e < 0 ? 'lastDay' : e < 1 ? 'sameDay' : e < 2 ? 'nextDay' : e < 7 ? 'nextWeek' : 'sameElse',
    g = b && (D(b[f]) ? b[f]() : b[f]);
    return this.format(g || this.localeData().calendar(f, this, Ea(c)))
  }
  function eb() {
    return new o(this)
  }
  function fb(a, b) {
    var c = p(a) ? a : Ea(a);
    return !(!this.isValid() || !c.isValid()) && (b = B(m(b) ? 'millisecond' : b), 'millisecond' === b ? + this > + c : + c < + this.clone().startOf(b))
  }
  function gb(a, b) {
    var c = p(a) ? a : Ea(a);
    return !(!this.isValid() || !c.isValid()) && (b = B(m(b) ? 'millisecond' : b), 'millisecond' === b ? + this < + c : + this.clone().endOf(b) < + c)
  }
  function hb(a, b, c) {
    return this.isAfter(a, c) && this.isBefore(b, c)
  }
  function ib(a, b) {
    var c,
    d = p(a) ? a : Ea(a);
    return !(!this.isValid() || !d.isValid()) && (b = B(b || 'millisecond'), 'millisecond' === b ? + this === + d : (c = + d, + this.clone().startOf(b) <= c && c <= + this.clone().endOf(b)))
  }
  function jb(a, b) {
    return this.isSame(a, b) || this.isAfter(a, b)
  }
  function kb(a, b) {
    return this.isSame(a, b) || this.isBefore(a, b)
  }
  function lb(a, b, c) {
    var d,
    e,
    f,
    g;
    return this.isValid() ? (d = Ma(a, this), d.isValid() ? (e = 60000 * (d.utcOffset() - this.utcOffset()), b = B(b), 'year' === b || 'month' === b || 'quarter' === b ? (g = mb(this, d), 'quarter' === b ? g /= 3 : 'year' === b && (g /= 12)) : (f = this - d, g = 'second' === b ? f / 1000 : 'minute' === b ? f / 60000 : 'hour' === b ? f / 3600000 : 'day' === b ? (f - e) / 86400000 : 'week' === b ? (f - e) / 604800000 : f), c ? g : q(g)) : NaN) : NaN
  }
  function mb(a, b) {
    var c,
    d,
    e = 12 * (b.year() - a.year()) + (b.month() - a.month()),
    f = a.clone().add(e, 'months');
    return b - f < 0 ? (c = a.clone().add(e - 1, 'months'), d = (b - f) / (f - c)) : (c = a.clone().add(e + 1, 'months'), d = (b - f) / (c - f)),
    - (e + d)
  }
  function nb() {
    return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ')
  }
  function ob() {
    var a = this.clone().utc();
    return 0 < a.year() && a.year() <= 9999 ? D(Date.prototype.toISOString) ? this.toDate().toISOString() : M(a, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]') : M(a, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]')
  }
  function pb(b) {
    var c = M(this, b || a.defaultFormat);
    return this.localeData().postformat(c)
  }
  function qb(a, b) {
    return this.isValid() && (p(a) && a.isValid() || Ea(a).isValid()) ? Za({
      to: this,
      from: a
    }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate()
  }
  function rb(a) {
    return this.from(Ea(), a)
  }
  function sb(a, b) {
    return this.isValid() && (p(a) && a.isValid() || Ea(a).isValid()) ? Za({
      from: this,
      to: a
    }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate()
  }
  function tb(a) {
    return this.to(Ea(), a)
  }
  function ub(a) {
    var b;
    return void 0 === a ? this._locale._abbr : (b = z(a), null != b && (this._locale = b), this)
  }
  function vb() {
    return this._locale
  }
  function wb(a) {
    switch (a = B(a)) {
      case 'year':
        this.month(0);
      case 'quarter':
      case 'month':
        this.date(1);
      case 'week':
      case 'isoWeek':
      case 'day':
        this.hours(0);
      case 'hour':
        this.minutes(0);
      case 'minute':
        this.seconds(0);
      case 'second':
        this.milliseconds(0)
    }
    return 'week' === a && this.weekday(0),
    'isoWeek' === a && this.isoWeekday(1),
    'quarter' === a && this.month(3 * Math.floor(this.month() / 3)),
    this
  }
  function xb(a) {
    return a = B(a),
    void 0 === a || 'millisecond' === a ? this : this.startOf(a).add(1, 'isoWeek' === a ? 'week' : a).subtract(1, 'ms')
  }
  function yb() {
    return + this._d - 60000 * (this._offset || 0)
  }
  function zb() {
    return Math.floor( + this / 1000)
  }
  function Ab() {
    return this._offset ? new Date(( + this)) : this._d
  }
  function Bb() {
    var a = this;
    return [a.year(),
    a.month(),
    a.date(),
    a.hour(),
    a.minute(),
    a.second(),
    a.millisecond()]
  }
  function Cb() {
    var a = this;
    return {
      years: a.year(),
      months: a.month(),
      date: a.date(),
      hours: a.hours(),
      minutes: a.minutes(),
      seconds: a.seconds(),
      milliseconds: a.milliseconds()
    }
  }
  function Db() {
    return this.isValid() ? this.toISOString() : 'null'
  }
  function Eb() {
    return k(this)
  }
  function Fb() {
    return g({
    }, j(this))
  }
  function Gb() {
    return j(this).overflow
  }
  function Hb() {
    return {
      input: this._i,
      format: this._f,
      locale: this._locale,
      isUTC: this._isUTC,
      strict: this._strict
    }
  }
  function Ib(a, b) {
    J(0, [
      a,
      a.length
    ], 0, b)
  }
  function Jb(a) {
    return Nb.call(this, a, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy)
  }
  function Kb(a) {
    return Nb.call(this, a, this.isoWeek(), this.isoWeekday(), 1, 4)
  }
  function Lb() {
    return ra(this.year(), 1, 4)
  }
  function Mb() {
    var a = this.localeData()._week;
    return ra(this.year(), a.dow, a.doy)
  }
  function Nb(a, b, c, d, e) {
    var f;
    return null == a ? qa(this, d, e).year : (f = ra(a, d, e), b > f && (b = f), Ob.call(this, a, b, c, d, e))
  }
  function Ob(a, b, c, d, e) {
    var f = pa(a, b, c, d, e),
    g = ka(f.year, 0, f.dayOfYear);
    return this.year(g.getUTCFullYear()),
    this.month(g.getUTCMonth()),
    this.date(g.getUTCDate()),
    this
  }
  function Pb(a) {
    return null == a ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (a - 1) + this.month() % 3)
  }
  function Qb(a) {
    return qa(a, this._week.dow, this._week.doy).week
  }
  function Rb() {
    return this._week.dow
  }
  function Sb() {
    return this._week.doy
  }
  function Tb(a) {
    var b = this.localeData().week(this);
    return null == a ? b : this.add(7 * (a - b), 'd')
  }
  function Ub(a) {
    var b = qa(this, 1, 4).week;
    return null == a ? b : this.add(7 * (a - b), 'd')
  }
  function Vb(a, b) {
    return 'string' != typeof a ? a : isNaN(a) ? (a = b.weekdaysParse(a), 'number' == typeof a ? a : null) : parseInt(a, 10)
  }
  function Wb(a, b) {
    return c(this._weekdays) ? this._weekdays[a.day()] : this._weekdays[this._weekdays.isFormat.test(b) ? 'format' : 'standalone'][a.day()]
  }
  function Xb(a) {
    return this._weekdaysShort[a.day()]
  }
  function Yb(a) {
    return this._weekdaysMin[a.day()]
  }
  function Zb(a, b, c) {
    var d,
    e,
    f;
    for (this._weekdaysParse || (this._weekdaysParse = [
    ], this._minWeekdaysParse = [
    ], this._shortWeekdaysParse = [
    ], this._fullWeekdaysParse = [
    ]), d = 0; d < 7; d++) {
      if (e = Ea([2000,
      1]).day(d), c && !this._fullWeekdaysParse[d] && (this._fullWeekdaysParse[d] = new RegExp('^' + this.weekdays(e, '').replace('.', '.?') + '$', 'i'), this._shortWeekdaysParse[d] = new RegExp('^' + this.weekdaysShort(e, '').replace('.', '.?') + '$', 'i'), this._minWeekdaysParse[d] = new RegExp('^' + this.weekdaysMin(e, '').replace('.', '.?') + '$', 'i')), this._weekdaysParse[d] || (f = '^' + this.weekdays(e, '') + '|^' + this.weekdaysShort(e, '') + '|^' + this.weekdaysMin(e, ''), this._weekdaysParse[d] = new RegExp(f.replace('.', ''), 'i')), c && 'dddd' === b && this._fullWeekdaysParse[d].test(a)) return d;
      if (c && 'ddd' === b && this._shortWeekdaysParse[d].test(a)) return d;
      if (c && 'dd' === b && this._minWeekdaysParse[d].test(a)) return d;
      if (!c && this._weekdaysParse[d].test(a)) return d
    }
  }
  function $b(a) {
    if (!this.isValid()) return null != a ? this : NaN;
    var b = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
    return null != a ? (a = Vb(a, this.localeData()), this.add(a - b, 'd')) : b
  }
  function _b(a) {
    if (!this.isValid()) return null != a ? this : NaN;
    var b = (this.day() + 7 - this.localeData()._week.dow) % 7;
    return null == a ? b : this.add(a - b, 'd')
  }
  function ac(a) {
    return this.isValid() ? null == a ? this.day() || 7 : this.day(this.day() % 7 ? a : a - 7) : null != a ? this : NaN
  }
  function bc(a) {
    var b = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 86400000) + 1;
    return null == a ? b : this.add(a - b, 'd')
  }
  function cc() {
    return this.hours() % 12 || 12
  }
  function dc(a, b) {
    J(a, 0, 0, function () {
      return this.localeData().meridiem(this.hours(), this.minutes(), b)
    })
  }
  function ec(a, b) {
    return b._meridiemParse
  }
  function fc(a) {
    return 'p' === (a + '').toLowerCase().charAt(0)
  }
  function gc(a, b, c) {
    return a > 11 ? c ? 'pm' : 'PM' : c ? 'am' : 'AM'
  }
  function hc(a, b) {
    b[Bd] = r(1000 * ('0.' + a))
  }
  function ic() {
    return this._isUTC ? 'UTC' : ''
  }
  function jc() {
    return this._isUTC ? 'Coordinated Universal Time' : ''
  }
  function kc(a) {
    return Ea(1000 * a)
  }
  function lc() {
    return Ea.apply(null, arguments).parseZone()
  }
  function mc(a, b, c) {
    var d = this._calendar[a];
    return D(d) ? d.call(b, c) : d
  }
  function nc(a) {
    var b = this._longDateFormat[a],
    c = this._longDateFormat[a.toUpperCase()];
    return b || !c ? b : (this._longDateFormat[a] = c.replace(/MMMM|MM|DD|dddd/g, function (a) {
      return a.slice(1)
    }), this._longDateFormat[a])
  }
  function oc() {
    return this._invalidDate
  }
  function pc(a) {
    return this._ordinal.replace('%d', a)
  }
  function qc(a) {
    return a
  }
  function rc(a, b, c, d) {
    var e = this._relativeTime[c];
    return D(e) ? e(a, b, c, d) : e.replace(/%d/i, a)
  }
  function sc(a, b) {
    var c = this._relativeTime[a > 0 ? 'future' : 'past'];
    return D(c) ? c(b) : c.replace(/%s/i, b)
  }
  function tc(a) {
    var b,
    c;
    for (c in a) b = a[c],
    D(b) ? this[c] = b : this['_' + c] = b;
    this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + /\d{1,2}/.source)
  }
  function uc(a, b, c, d) {
    var e = z(),
    f = h().set(d, b);
    return e[c](f, a)
  }
  function vc(a, b, c, d, e) {
    if ('number' == typeof a && (b = a, a = void 0), a = a || '', null != b) return uc(a, b, c, e);
    var f,
    g = [
    ];
    for (f = 0; f < d; f++) g[f] = uc(a, f, c, e);
    return g
  }
  function wc(a, b) {
    return vc(a, b, 'months', 12, 'month')
  }
  function xc(a, b) {
    return vc(a, b, 'monthsShort', 12, 'month')
  }
  function yc(a, b) {
    return vc(a, b, 'weekdays', 7, 'day')
  }
  function zc(a, b) {
    return vc(a, b, 'weekdaysShort', 7, 'day')
  }
  function Ac(a, b) {
    return vc(a, b, 'weekdaysMin', 7, 'day')
  }
  function Bc() {
    var a = this._data;
    return this._milliseconds = se(this._milliseconds),
    this._days = se(this._days),
    this._months = se(this._months),
    a.milliseconds = se(a.milliseconds),
    a.seconds = se(a.seconds),
    a.minutes = se(a.minutes),
    a.hours = se(a.hours),
    a.months = se(a.months),
    a.years = se(a.years),
    this
  }
  function Cc(a, b, c, d) {
    var e = Za(b, c);
    return a._milliseconds += d * e._milliseconds,
    a._days += d * e._days,
    a._months += d * e._months,
    a._bubble()
  }
  function Dc(a, b) {
    return Cc(this, a, b, 1)
  }
  function Ec(a, b) {
    return Cc(this, a, b, - 1)
  }
  function Fc(a) {
    return a < 0 ? Math.floor(a) : Math.ceil(a)
  }
  function Gc() {
    var a,
    b,
    c,
    d,
    e,
    f = this._milliseconds,
    g = this._days,
    h = this._months,
    i = this._data;
    return f >= 0 && g >= 0 && h >= 0 || f <= 0 && g <= 0 && h <= 0 || (f += 86400000 * Fc(Ic(h) + g), g = 0, h = 0),
    i.milliseconds = f % 1000,
    a = q(f / 1000),
    i.seconds = a % 60,
    b = q(a / 60),
    i.minutes = b % 60,
    c = q(b / 60),
    i.hours = c % 24,
    g += q(c / 24),
    e = q(Hc(g)),
    h += e,
    g -= Fc(Ic(e)),
    d = q(h / 12),
    h %= 12,
    i.days = g,
    i.months = h,
    i.years = d,
    this
  }
  function Hc(a) {
    return 4800 * a / 146097
  }
  function Ic(a) {
    return 146097 * a / 4800
  }
  function Jc(a) {
    var b,
    c,
    d = this._milliseconds;
    if (a = B(a), 'month' === a || 'year' === a) return b = this._days + d / 86400000,
    c = this._months + Hc(b),
    'month' === a ? c : c / 12;
    switch (b = this._days + Math.round(Ic(this._months)), a) {
      case 'week':
        return b / 7 + d / 604800000;
      case 'day':
        return b + d / 86400000;
      case 'hour':
        return 24 * b + d / 3600000;
      case 'minute':
        return 1440 * b + d / 60000;
      case 'second':
        return 86400 * b + d / 1000;
      case 'millisecond':
        return Math.floor(86400000 * b) + d;
      default:
        throw new Error('Unknown unit ' + a)
    }
  }
  function Kc() {
    return this._milliseconds + 86400000 * this._days + this._months % 12 * 2592000000 + 31536000000 * r(this._months / 12)
  }
  function Lc(a) {
    return function () {
      return this.as(a)
    }
  }
  function Mc(a) {
    return a = B(a),
    this[a + 's']()
  }
  function Nc(a) {
    return function () {
      return this._data[a]
    }
  }
  function Oc() {
    return q(this.days() / 7)
  }
  function Pc(a, b, c, d, e) {
    return e.relativeTime(b || 1, !!c, a, d)
  }
  function Qc(a, b, c) {
    var d = Za(a).abs(),
    e = Ie(d.as('s')),
    f = Ie(d.as('m')),
    g = Ie(d.as('h')),
    h = Ie(d.as('d')),
    i = Ie(d.as('M')),
    j = Ie(d.as('y')),
    k = e < Je.s && [
      's',
      e
    ] || f <= 1 && [
      'm'
    ] || f < Je.m && [
      'mm',
      f
    ] || g <= 1 && [
      'h'
    ] || g < Je.h && [
      'hh',
      g
    ] || h <= 1 && [
      'd'
    ] || h < Je.d && [
      'dd',
      h
    ] || i <= 1 && [
      'M'
    ] || i < Je.M && [
      'MM',
      i
    ] || j <= 1 && [
      'y'
    ] || [
      'yy',
      j
    ];
    return k[2] = b,
    k[3] = + a > 0,
    k[4] = c,
    Pc.apply(null, k)
  }
  function Rc(a, b) {
    return void 0 !== Je[a] && (void 0 === b ? Je[a] : (Je[a] = b, !0))
  }
  function Sc(a) {
    var b = this.localeData(),
    c = Qc(this, !a, b);
    return a && (c = b.pastFuture( + this, c)),
    b.postformat(c)
  }
  function Tc() {
    var a,
    b,
    c,
    d = Ke(this._milliseconds) / 1000,
    e = Ke(this._days),
    f = Ke(this._months);
    a = q(d / 60),
    b = q(a / 60),
    d %= 60,
    a %= 60,
    c = q(f / 12),
    f %= 12;
    var g = c,
    h = f,
    i = e,
    j = b,
    k = a,
    l = d,
    m = this.asSeconds();
    return m ? (m < 0 ? '-' : '') + 'P' + (g ? g + 'Y' : '') + (h ? h + 'M' : '') + (i ? i + 'D' : '') + (j || k || l ? 'T' : '') + (j ? j + 'H' : '') + (k ? k + 'M' : '') + (l ? l + 'S' : '') : 'P0D'
  }
  var Uc,
  Vc,
  Wc = a.momentProperties = [
  ],
  Xc = !1,
  Yc = {
  },
  Zc = {
  },
  $c = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
  _c = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
  ad = {
  },
  bd = {
  },
  cd = /\d/,
  dd = /\d\d/,
  ed = /\d{3}/,
  fd = /\d{4}/,
  gd = /[+-]?\d{6}/,
  hd = /\d\d?/,
  id = /\d\d\d\d?/,
  jd = /\d\d\d\d\d\d?/,
  kd = /\d{1,3}/,
  ld = /\d{1,4}/,
  md = /[+-]?\d{1,6}/,
  nd = /\d+/,
  od = /[+-]?\d+/,
  pd = /Z|[+-]\d\d:?\d\d/gi,
  qd = /Z|[+-]\d\d(?::?\d\d)?/gi,
  rd = /[+-]?\d+(\.\d{1,3})?/,
  sd = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,
  td = {
  },
  ud = {
  },
  vd = 0,
  wd = 1,
  xd = 2,
  yd = 3,
  zd = 4,
  Ad = 5,
  Bd = 6,
  Cd = 7,
  Dd = 8;
  J('M', [
    'MM',
    2
  ], 'Mo', function () {
    return this.month() + 1
  }),
  J('MMM', 0, 0, function (a) {
    return this.localeData().monthsShort(this, a)
  }),
  J('MMMM', 0, 0, function (a) {
    return this.localeData().months(this, a)
  }),
  A('month', 'M'),
  O('M', hd),
  O('MM', hd, dd),
  O('MMM', function (a, b) {
    return b.monthsShortRegex(a)
  }),
  O('MMMM', function (a, b) {
    return b.monthsRegex(a)
  }),
  S(['M',
  'MM'], function (a, b) {
    b[wd] = r(a) - 1
  }),
  S(['MMM',
  'MMMM'], function (a, b, c, d) {
    var e = c._locale.monthsParse(a, d, c._strict);
    null != e ? b[wd] = e : j(c).invalidMonth = a
  });
  var Ed = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,
  Fd = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
  Gd = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
  Hd = sd,
  Id = sd,
  Jd = {
  };
  a.suppressDeprecationWarnings = !1;
  var Kd = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,
  Ld = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,
  Md = /Z|[+-]\d\d(?::?\d\d)?/,
  Nd = [
    ['YYYYYY-MM-DD',
    /[+-]\d{6}-\d\d-\d\d/],
    [
      'YYYY-MM-DD',
      /\d{4}-\d\d-\d\d/
    ],
    [
      'GGGG-[W]WW-E',
      /\d{4}-W\d\d-\d/
    ],
    [
      'GGGG-[W]WW',
      /\d{4}-W\d\d/,
      !1
    ],
    [
      'YYYY-DDD',
      /\d{4}-\d{3}/
    ],
    [
      'YYYY-MM',
      /\d{4}-\d\d/,
      !1
    ],
    [
      'YYYYYYMMDD',
      /[+-]\d{10}/
    ],
    [
      'YYYYMMDD',
      /\d{8}/
    ],
    [
      'GGGG[W]WWE',
      /\d{4}W\d{3}/
    ],
    [
      'GGGG[W]WW',
      /\d{4}W\d{2}/,
      !1
    ],
    [
      'YYYYDDD',
      /\d{7}/
    ]
  ],
  Od = [
    ['HH:mm:ss.SSSS',
    /\d\d:\d\d:\d\d\.\d+/],
    [
      'HH:mm:ss,SSSS',
      /\d\d:\d\d:\d\d,\d+/
    ],
    [
      'HH:mm:ss',
      /\d\d:\d\d:\d\d/
    ],
    [
      'HH:mm',
      /\d\d:\d\d/
    ],
    [
      'HHmmss.SSSS',
      /\d\d\d\d\d\d\.\d+/
    ],
    [
      'HHmmss,SSSS',
      /\d\d\d\d\d\d,\d+/
    ],
    [
      'HHmmss',
      /\d\d\d\d\d\d/
    ],
    [
      'HHmm',
      /\d\d\d\d/
    ],
    [
      'HH',
      /\d\d/
    ]
  ],
  Pd = /^\/?Date\((\-?\d+)/i;
  a.createFromInputFallback = fa('moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.', function (a) {
    a._d = new Date(a._i + (a._useUTC ? ' UTC' : ''))
  }),
  J('Y', 0, 0, function () {
    var a = this.year();
    return a <= 9999 ? '' + a : '+' + a
  }),
  J(0, [
    'YY',
    2
  ], 0, function () {
    return this.year() % 100
  }),
  J(0, [
    'YYYY',
    4
  ], 0, 'year'),
  J(0, [
    'YYYYY',
    5
  ], 0, 'year'),
  J(0, [
    'YYYYYY',
    6,
    !0
  ], 0, 'year'),
  A('year', 'y'),
  O('Y', od),
  O('YY', hd, dd),
  O('YYYY', ld, fd),
  O('YYYYY', md, gd),
  O('YYYYYY', md, gd),
  S(['YYYYY',
  'YYYYYY'], vd),
  S('YYYY', function (b, c) {
    c[vd] = 2 === b.length ? a.parseTwoDigitYear(b) : r(b)
  }),
  S('YY', function (b, c) {
    c[vd] = a.parseTwoDigitYear(b)
  }),
  S('Y', function (a, b) {
    b[vd] = parseInt(a, 10)
  }),
  a.parseTwoDigitYear = function (a) {
    return r(a) + (r(a) > 68 ? 1900 : 2000)
  };
  var Qd = E('FullYear', !1);
  a.ISO_8601 = function () {
  };
  var Rd = fa('moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', function () {
    var a = Ea.apply(null, arguments);
    return this.isValid() && a.isValid() ? a < this ? this : a : l()
  }),
  Sd = fa('moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', function () {
    var a = Ea.apply(null, arguments);
    return this.isValid() && a.isValid() ? a > this ? this : a : l()
  }),
  Td = function () {
    return Date.now ? Date.now() : + new Date
  };
  Ka('Z', ':'),
  Ka('ZZ', ''),
  O('Z', qd),
  O('ZZ', qd),
  S(['Z',
  'ZZ'], function (a, b, c) {
    c._useUTC = !0,
    c._tzm = La(qd, a)
  });
  var Ud = /([\+\-]|\d\d)/gi;
  a.updateOffset = function () {
  };
  var Vd = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,
  Wd = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;
  Za.fn = Ia.prototype;
  var Xd = bb(1, 'add'),
  Yd = bb( - 1, 'subtract');
  a.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
  var Zd = fa('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (a) {
    return void 0 === a ? this.localeData() : this.locale(a)
  });
  J(0, [
    'gg',
    2
  ], 0, function () {
    return this.weekYear() % 100
  }),
  J(0, [
    'GG',
    2
  ], 0, function () {
    return this.isoWeekYear() % 100
  }),
  Ib('gggg', 'weekYear'),
  Ib('ggggg', 'weekYear'),
  Ib('GGGG', 'isoWeekYear'),
  Ib('GGGGG', 'isoWeekYear'),
  A('weekYear', 'gg'),
  A('isoWeekYear', 'GG'),
  O('G', od),
  O('g', od),
  O('GG', hd, dd),
  O('gg', hd, dd),
  O('GGGG', ld, fd),
  O('gggg', ld, fd),
  O('GGGGG', md, gd),
  O('ggggg', md, gd),
  T(['gggg',
  'ggggg',
  'GGGG',
  'GGGGG'], function (a, b, c, d) {
    b[d.substr(0, 2)] = r(a)
  }),
  T(['gg',
  'GG'], function (b, c, d, e) {
    c[e] = a.parseTwoDigitYear(b)
  }),
  J('Q', 0, 'Qo', 'quarter'),
  A('quarter', 'Q'),
  O('Q', cd),
  S('Q', function (a, b) {
    b[wd] = 3 * (r(a) - 1)
  }),
  J('w', [
    'ww',
    2
  ], 'wo', 'week'),
  J('W', [
    'WW',
    2
  ], 'Wo', 'isoWeek'),
  A('week', 'w'),
  A('isoWeek', 'W'),
  O('w', hd),
  O('ww', hd, dd),
  O('W', hd),
  O('WW', hd, dd),
  T(['w',
  'ww',
  'W',
  'WW'], function (a, b, c, d) {
    b[d.substr(0, 1)] = r(a)
  });
  var $d = {
    dow: 0,
    doy: 6
  };
  J('D', [
    'DD',
    2
  ], 'Do', 'date'),
  A('date', 'D'),
  O('D', hd),
  O('DD', hd, dd),
  O('Do', function (a, b) {
    return a ? b._ordinalParse : b._ordinalParseLenient
  }),
  S(['D',
  'DD'], xd),
  S('Do', function (a, b) {
    b[xd] = r(a.match(hd) [0], 10)
  });
  var _d = E('Date', !0);
  J('d', 0, 'do', 'day'),
  J('dd', 0, 0, function (a) {
    return this.localeData().weekdaysMin(this, a)
  }),
  J('ddd', 0, 0, function (a) {
    return this.localeData().weekdaysShort(this, a)
  }),
  J('dddd', 0, 0, function (a) {
    return this.localeData().weekdays(this, a)
  }),
  J('e', 0, 0, 'weekday'),
  J('E', 0, 0, 'isoWeekday'),
  A('day', 'd'),
  A('weekday', 'e'),
  A('isoWeekday', 'E'),
  O('d', hd),
  O('e', hd),
  O('E', hd),
  O('dd', sd),
  O('ddd', sd),
  O('dddd', sd),
  T(['dd',
  'ddd',
  'dddd'], function (a, b, c, d) {
    var e = c._locale.weekdaysParse(a, d, c._strict);
    null != e ? b.d = e : j(c).invalidWeekday = a
  }),
  T(['d',
  'e',
  'E'], function (a, b, c, d) {
    b[d] = r(a)
  });
  var ae = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
  be = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
  ce = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
  J('DDD', [
    'DDDD',
    3
  ], 'DDDo', 'dayOfYear'),
  A('dayOfYear', 'DDD'),
  O('DDD', kd),
  O('DDDD', ed),
  S(['DDD',
  'DDDD'], function (a, b, c) {
    c._dayOfYear = r(a)
  }),
  J('H', [
    'HH',
    2
  ], 0, 'hour'),
  J('h', [
    'hh',
    2
  ], 0, cc),
  J('hmm', 0, 0, function () {
    return '' + cc.apply(this) + I(this.minutes(), 2)
  }),
  J('hmmss', 0, 0, function () {
    return '' + cc.apply(this) + I(this.minutes(), 2) + I(this.seconds(), 2)
  }),
  J('Hmm', 0, 0, function () {
    return '' + this.hours() + I(this.minutes(), 2)
  }),
  J('Hmmss', 0, 0, function () {
    return '' + this.hours() + I(this.minutes(), 2) + I(this.seconds(), 2)
  }),
  dc('a', !0),
  dc('A', !1),
  A('hour', 'h'),
  O('a', ec),
  O('A', ec),
  O('H', hd),
  O('h', hd),
  O('HH', hd, dd),
  O('hh', hd, dd),
  O('hmm', id),
  O('hmmss', jd),
  O('Hmm', id),
  O('Hmmss', jd),
  S(['H',
  'HH'], yd),
  S(['a',
  'A'], function (a, b, c) {
    c._isPm = c._locale.isPM(a),
    c._meridiem = a
  }),
  S(['h',
  'hh'], function (a, b, c) {
    b[yd] = r(a),
    j(c).bigHour = !0
  }),
  S('hmm', function (a, b, c) {
    var d = a.length - 2;
    b[yd] = r(a.substr(0, d)),
    b[zd] = r(a.substr(d)),
    j(c).bigHour = !0
  }),
  S('hmmss', function (a, b, c) {
    var d = a.length - 4,
    e = a.length - 2;
    b[yd] = r(a.substr(0, d)),
    b[zd] = r(a.substr(d, 2)),
    b[Ad] = r(a.substr(e)),
    j(c).bigHour = !0
  }),
  S('Hmm', function (a, b, c) {
    var d = a.length - 2;
    b[yd] = r(a.substr(0, d)),
    b[zd] = r(a.substr(d))
  }),
  S('Hmmss', function (a, b, c) {
    var d = a.length - 4,
    e = a.length - 2;
    b[yd] = r(a.substr(0, d)),
    b[zd] = r(a.substr(d, 2)),
    b[Ad] = r(a.substr(e))
  });
  var de = /[ap]\.?m?\.?/i,
  ee = E('Hours', !0);
  J('m', [
    'mm',
    2
  ], 0, 'minute'),
  A('minute', 'm'),
  O('m', hd),
  O('mm', hd, dd),
  S(['m',
  'mm'], zd);
  var fe = E('Minutes', !1);
  J('s', [
    'ss',
    2
  ], 0, 'second'),
  A('second', 's'),
  O('s', hd),
  O('ss', hd, dd),
  S(['s',
  'ss'], Ad);
  var ge = E('Seconds', !1);
  J('S', 0, 0, function () {
    return ~~(this.millisecond() / 100)
  }),
  J(0, [
    'SS',
    2
  ], 0, function () {
    return ~~(this.millisecond() / 10)
  }),
  J(0, [
    'SSS',
    3
  ], 0, 'millisecond'),
  J(0, [
    'SSSS',
    4
  ], 0, function () {
    return 10 * this.millisecond()
  }),
  J(0, [
    'SSSSS',
    5
  ], 0, function () {
    return 100 * this.millisecond()
  }),
  J(0, [
    'SSSSSS',
    6
  ], 0, function () {
    return 1000 * this.millisecond()
  }),
  J(0, [
    'SSSSSSS',
    7
  ], 0, function () {
    return 10000 * this.millisecond()
  }),
  J(0, [
    'SSSSSSSS',
    8
  ], 0, function () {
    return 100000 * this.millisecond()
  }),
  J(0, [
    'SSSSSSSSS',
    9
  ], 0, function () {
    return 1000000 * this.millisecond()
  }),
  A('millisecond', 'ms'),
  O('S', kd, cd),
  O('SS', kd, dd),
  O('SSS', kd, ed);
  var he;
  for (he = 'SSSS'; he.length <= 9; he += 'S') O(he, nd);
  for (he = 'S'; he.length <= 9; he += 'S') S(he, hc);
  var ie = E('Milliseconds', !1);
  J('z', 0, 0, 'zoneAbbr'),
  J('zz', 0, 0, 'zoneName');
  var je = o.prototype;
  je.add = Xd,
  je.calendar = db,
  je.clone = eb,
  je.diff = lb,
  je.endOf = xb,
  je.format = pb,
  je.from = qb,
  je.fromNow = rb,
  je.to = sb,
  je.toNow = tb,
  je.get = H,
  je.invalidAt = Gb,
  je.isAfter = fb,
  je.isBefore = gb,
  je.isBetween = hb,
  je.isSame = ib,
  je.isSameOrAfter = jb,
  je.isSameOrBefore = kb,
  je.isValid = Eb,
  je.lang = Zd,
  je.locale = ub,
  je.localeData = vb,
  je.max = Sd,
  je.min = Rd,
  je.parsingFlags = Fb,
  je.set = H,
  je.startOf = wb,
  je.subtract = Yd,
  je.toArray = Bb,
  je.toObject = Cb,
  je.toDate = Ab,
  je.toISOString = ob,
  je.toJSON = Db,
  je.toString = nb,
  je.unix = zb,
  je.valueOf = yb,
  je.creationData = Hb,
  je.year = Qd,
  je.isLeapYear = na,
  je.weekYear = Jb,
  je.isoWeekYear = Kb,
  je.quarter = je.quarters = Pb,
  je.month = $,
  je.daysInMonth = _,
  je.week = je.weeks = Tb,
  je.isoWeek = je.isoWeeks = Ub,
  je.weeksInYear = Mb,
  je.isoWeeksInYear = Lb,
  je.date = _d,
  je.day = je.days = $b,
  je.weekday = _b,
  je.isoWeekday = ac,
  je.dayOfYear = bc,
  je.hour = je.hours = ee,
  je.minute = je.minutes = fe,
  je.second = je.seconds = ge,
  je.millisecond = je.milliseconds = ie,
  je.utcOffset = Oa,
  je.utc = Qa,
  je.local = Ra,
  je.parseZone = Sa,
  je.hasAlignedHourOffset = Ta,
  je.isDST = Ua,
  je.isDSTShifted = Va,
  je.isLocal = Wa,
  je.isUtcOffset = Xa,
  je.isUtc = Ya,
  je.isUTC = Ya,
  je.zoneAbbr = ic,
  je.zoneName = jc,
  je.dates = fa('dates accessor is deprecated. Use date instead.', _d),
  je.months = fa('months accessor is deprecated. Use month instead', $),
  je.years = fa('years accessor is deprecated. Use year instead', Qd),
  je.zone = fa('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', Pa);
  var ke = je,
  le = {
    sameDay: '[Today at] LT',
    nextDay: '[Tomorrow at] LT',
    nextWeek: 'dddd [at] LT',
    lastDay: '[Yesterday at] LT',
    lastWeek: '[Last] dddd [at] LT',
    sameElse: 'L'
  },
  me = {
    LTS: 'h:mm:ss A',
    LT: 'h:mm A',
    L: 'MM/DD/YYYY',
    LL: 'MMMM D, YYYY',
    LLL: 'MMMM D, YYYY h:mm A',
    LLLL: 'dddd, MMMM D, YYYY h:mm A'
  },
  ne = 'Invalid date',
  oe = '%d',
  pe = /\d{1,2}/,
  qe = {
    future: 'in %s',
    past: '%s ago',
    s: 'a few seconds',
    m: 'a minute',
    mm: '%d minutes',
    h: 'an hour',
    hh: '%d hours',
    d: 'a day',
    dd: '%d days',
    M: 'a month',
    MM: '%d months',
    y: 'a year',
    yy: '%d years'
  },
  re = t.prototype;
  re._calendar = le,
  re.calendar = mc,
  re._longDateFormat = me,
  re.longDateFormat = nc,
  re._invalidDate = ne,
  re.invalidDate = oc,
  re._ordinal = oe,
  re.ordinal = pc,
  re._ordinalParse = pe,
  re.preparse = qc,
  re.postformat = qc,
  re._relativeTime = qe,
  re.relativeTime = rc,
  re.pastFuture = sc,
  re.set = tc,
  re.months = W,
  re._months = Fd,
  re.monthsShort = X,
  re._monthsShort = Gd,
  re.monthsParse = Y,
  re._monthsRegex = Id,
  re.monthsRegex = ba,
  re._monthsShortRegex = Hd,
  re.monthsShortRegex = aa,
  re.week = Qb,
  re._week = $d,
  re.firstDayOfYear = Sb,
  re.firstDayOfWeek = Rb,
  re.weekdays = Wb,
  re._weekdays = ae,
  re.weekdaysMin = Yb,
  re._weekdaysMin = ce,
  re.weekdaysShort = Xb,
  re._weekdaysShort = be,
  re.weekdaysParse = Zb,
  re.isPM = fc,
  re._meridiemParse = de,
  re.meridiem = gc,
  x('en', {
    ordinalParse: /\d{1,2}(th|st|nd|rd)/,
    ordinal: function (a) {
      var b = a % 10,
      c = 1 === r(a % 100 / 10) ? 'th' : 1 === b ? 'st' : 2 === b ? 'nd' : 3 === b ? 'rd' : 'th';
      return a + c
    }
  }),
  a.lang = fa('moment.lang is deprecated. Use moment.locale instead.', x),
  a.langData = fa('moment.langData is deprecated. Use moment.localeData instead.', z);
  var se = Math.abs,
  te = Lc('ms'),
  ue = Lc('s'),
  ve = Lc('m'),
  we = Lc('h'),
  xe = Lc('d'),
  ye = Lc('w'),
  ze = Lc('M'),
  Ae = Lc('y'),
  Be = Nc('milliseconds'),
  Ce = Nc('seconds'),
  De = Nc('minutes'),
  Ee = Nc('hours'),
  Fe = Nc('days'),
  Ge = Nc('months'),
  He = Nc('years'),
  Ie = Math.round,
  Je = {
    s: 45,
    m: 45,
    h: 22,
    d: 26,
    M: 11
  },
  Ke = Math.abs,
  Le = Ia.prototype;
  Le.abs = Bc,
  Le.add = Dc,
  Le.subtract = Ec,
  Le.as = Jc,
  Le.asMilliseconds = te,
  Le.asSeconds = ue,
  Le.asMinutes = ve,
  Le.asHours = we,
  Le.asDays = xe,
  Le.asWeeks = ye,
  Le.asMonths = ze,
  Le.asYears = Ae,
  Le.valueOf = Kc,
  Le._bubble = Gc,
  Le.get = Mc,
  Le.milliseconds = Be,
  Le.seconds = Ce,
  Le.minutes = De,
  Le.hours = Ee,
  Le.days = Fe,
  Le.weeks = Oc,
  Le.months = Ge,
  Le.years = He,
  Le.humanize = Sc,
  Le.toISOString = Tc,
  Le.toString = Tc,
  Le.toJSON = Tc,
  Le.locale = ub,
  Le.localeData = vb,
  Le.toIsoString = fa('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', Tc),
  Le.lang = Zd,
  J('X', 0, 0, 'unix'),
  J('x', 0, 0, 'valueOf'),
  O('x', od),
  O('X', rd),
  S('X', function (a, b, c) {
    c._d = new Date(1000 * parseFloat(a, 10))
  }),
  S('x', function (a, b, c) {
    c._d = new Date(r(a))
  }),
  a.version = '2.11.2',
  b(Ea),
  a.fn = ke,
  a.min = Ga,
  a.max = Ha,
  a.now = Td,
  a.utc = h,
  a.unix = kc,
  a.months = wc,
  a.isDate = d,
  a.locale = x,
  a.invalid = l,
  a.duration = Za,
  a.isMoment = p,
  a.weekdays = yc,
  a.parseZone = lc,
  a.localeData = z,
  a.isDuration = Ja,
  a.monthsShort = xc,
  a.weekdaysMin = Ac,
  a.defineLocale = y,
  a.weekdaysShort = zc,
  a.normalizeUnits = B,
  a.relativeTimeThreshold = Rc,
  a.prototype = ke;
  var Me = a;
  return Me
}),
function (a, b) {
  'use strict';
  'object' == typeof module && module.exports && 'function' == typeof require ? module.exports = b() : 'function' == typeof define && 'object' == typeof define.amd ? define('loglevel', b) : a.log = b()
}(this, function () {
  'use strict';
  function a(a) {
    return typeof console !== h && (void 0 !== console[a] ? b(console, a) : void 0 !== console.log ? b(console, 'log') : g)
  }
  function b(a, b) {
    var c = a[b];
    if ('function' == typeof c.bind) return c.bind(a);
    try {
      return Function.prototype.bind.call(c, a)
    } catch (d) {
      return function () {
        return Function.prototype.apply.apply(c, [
          a,
          arguments
        ])
      }
    }
  }
  function c(a, b, c) {
    return function () {
      typeof console !== h && (d.call(this, b, c), this[a].apply(this, arguments))
    }
  }
  function d(a, b) {
    for (var c = 0; c < i.length; c++) {
      var d = i[c];
      this[d] = c < a ? g : this.methodFactory(d, a, b)
    }
  }
  function e(b, d, e) {
    return a(b) || c.apply(this, arguments)
  }
  function f(a, b, c) {
    function f(a) {
      var b = (i[a] || 'silent').toUpperCase();
      try {
        return void (window.localStorage[l] = b)
      } catch (c) {
      }
      try {
        window.document.cookie = encodeURIComponent(l) + '=' + b + ';'
      } catch (c) {
      }
    }
    function g() {
      var a;
      try {
        a = window.localStorage[l]
      } catch (b) {
      }
      if (typeof a === h) try {
        var c = window.document.cookie,
        d = c.indexOf(encodeURIComponent(l) + '=');
        d && (a = /^([^;]+)/.exec(c.slice(d)) [1])
      } catch (b) {
      }
      return void 0 === k.levels[a] && (a = void 0),
      a
    }
    var j,
    k = this,
    l = 'loglevel';
    a && (l += ':' + a),
    k.levels = {
      TRACE: 0,
      DEBUG: 1,
      INFO: 2,
      WARN: 3,
      ERROR: 4,
      SILENT: 5
    },
    k.methodFactory = c || e,
    k.getLevel = function () {
      return j
    },
    k.setLevel = function (b, c) {
      if ('string' == typeof b && void 0 !== k.levels[b.toUpperCase()] && (b = k.levels[b.toUpperCase()]), !('number' == typeof b && b >= 0 && b <= k.levels.SILENT)) throw 'log.setLevel() called with invalid level: ' + b;
      if (j = b, c !== !1 && f(b), d.call(k, b, a), typeof console === h && b < k.levels.SILENT) return 'No console available for logging'
    },
    k.setDefaultLevel = function (a) {
      g() || k.setLevel(a, !1)
    },
    k.enableAll = function (a) {
      k.setLevel(k.levels.TRACE, a)
    },
    k.disableAll = function (a) {
      k.setLevel(k.levels.SILENT, a)
    };
    var m = g();
    null == m && (m = null == b ? 'WARN' : b),
    k.setLevel(m, !1)
  }
  var g = function () {
  },
  h = 'undefined',
  i = [
    'trace',
    'debug',
    'info',
    'warn',
    'error'
  ],
  j = new f,
  k = {
  };
  j.getLogger = function (a) {
    if ('string' != typeof a || '' === a) throw new TypeError('You must supply a name when creating a logger.');
    var b = k[a];
    return b || (b = k[a] = new f(a, j.getLevel(), j.methodFactory)),
    b
  };
  var l = typeof window !== h ? window.log : void 0;
  return j.noConflict = function () {
    return typeof window !== h && window.log === j && (window.log = l),
    j
  },
  j
}),
window.Modernizr = function (a, b, c) {
  function d(a) {
    o.cssText = a
  }
  function e(a, b) {
    return typeof a === b
  }
  var f,
  g,
  h,
  i = '2.6.2',
  j = {
  },
  k = !0,
  l = b.documentElement,
  m = 'modernizr',
  n = b.createElement(m),
  o = n.style,
  p = ({
  }.toString, ' -webkit- -moz- -o- -ms- '.split(' ')),
  q = {
  },
  r = [
  ],
  s = r.slice,
  t = function (a, c, d, e) {
    var f,
    g,
    h,
    i,
    j = b.createElement('div'),
    k = b.body,
    n = k || b.createElement('body');
    if (parseInt(d, 10)) for (; d--; ) h = b.createElement('div'),
    h.id = e ? e[d] : m + (d + 1),
    j.appendChild(h);
    return f = [
      '&#173;',
      '<style id="s',
      m,
      '">',
      a,
      '</style>'
    ].join(''),
    j.id = m,
    (k ? j : n).innerHTML += f,
    n.appendChild(j),
    k || (n.style.background = '', n.style.overflow = 'hidden', i = l.style.overflow, l.style.overflow = 'hidden', l.appendChild(n)),
    g = c(j, a),
    k ? j.parentNode.removeChild(j) : (n.parentNode.removeChild(n), l.style.overflow = i),
    !!g
  },
  u = {
  }.hasOwnProperty;
  h = e(u, 'undefined') || e(u.call, 'undefined') ? function (a, b) {
    return b in a && e(a.constructor.prototype[b], 'undefined')
  }
   : function (a, b) {
    return u.call(a, b)
  },
  Function.prototype.bind || (Function.prototype.bind = function (a) {
    var b = this;
    if ('function' != typeof b) throw new TypeError;
    var c = s.call(arguments, 1),
    d = function () {
      if (this instanceof d) {
        var e = function () {
        };
        e.prototype = b.prototype;
        var f = new e,
        g = b.apply(f, c.concat(s.call(arguments)));
        return Object(g) === g ? g : f
      }
      return b.apply(a, c.concat(s.call(arguments)))
    };
    return d
  }),
  q.touch = function () {
    var c;
    return 'ontouchstart' in a || a.DocumentTouch && b instanceof DocumentTouch ? c = !0 : t(['@media (',
    p.join('touch-enabled),('),
    m,
    ')',
    '{#modernizr{top:9px;position:absolute}}'].join(''), function (a) {
      c = 9 === a.offsetTop
    }),
    c
  },
  q.localstorage = function () {
    try {
      return localStorage.setItem(m, m),
      localStorage.removeItem(m),
      !0
    } catch (a) {
      return !1
    }
  },
  q.sessionstorage = function () {
    try {
      return sessionStorage.setItem(m, m),
      sessionStorage.removeItem(m),
      !0
    } catch (a) {
      return !1
    }
  };
  for (var v in q) h(q, v) && (g = v.toLowerCase(), j[g] = q[v](), r.push((j[g] ? '' : 'no-') + g));
  return j.addTest = function (a, b) {
    if ('object' == typeof a) for (var d in a) h(a, d) && j.addTest(d, a[d]);
     else {
      if (a = a.toLowerCase(), j[a] !== c) return j;
      b = 'function' == typeof b ? b() : b,
      'undefined' != typeof k && k && (l.className += ' ' + (b ? '' : 'no-') + a),
      j[a] = b
    }
    return j
  },
  d(''),
  n = f = null,
  j._version = i,
  j._prefixes = p,
  j.testStyles = t,
  l.className = l.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') + (k ? ' js ' + r.join(' ') : ''),
  j
}(this, this.document),
Modernizr.addTest('contenteditable', 'contentEditable' in document.documentElement),
define('modernizr', function (a) {
  return function () {
    var b;
    return b || a.Modernizr
  }
}(this)),
function (a, b) {
  'object' == typeof exports && 'object' == typeof module ? module.exports = b() : 'function' == typeof define && define.amd ? define('handlebars', [
  ], b) : 'object' == typeof exports ? exports.Handlebars = b() : a.Handlebars = b()
}(this, function () {
  return function (a) {
    function b(d) {
      if (c[d]) return c[d].exports;
      var e = c[d] = {
        exports: {
        },
        id: d,
        loaded: !1
      };
      return a[d].call(e.exports, e, e.exports, b),
      e.loaded = !0,
      e.exports
    }
    var c = {
    };
    return b.m = a,
    b.c = c,
    b.p = '',
    b(0)
  }([function (a, b, c) {
    'use strict';
    function d() {
      var a = new h.HandlebarsEnvironment;
      return n.extend(a, h),
      a.SafeString = j['default'],
      a.Exception = l['default'],
      a.Utils = n,
      a.escapeExpression = n.escapeExpression,
      a.VM = p,
      a.template = function (b) {
        return p.template(b, a)
      },
      a
    }
    var e = c(1) ['default'],
    f = c(2) ['default'];
    b.__esModule = !0;
    var g = c(3),
    h = e(g),
    i = c(32),
    j = f(i),
    k = c(5),
    l = f(k),
    m = c(4),
    n = e(m),
    o = c(33),
    p = e(o),
    q = c(38),
    r = f(q),
    s = d();
    s.create = d,
    r['default'](s),
    s['default'] = s,
    b['default'] = s,
    a.exports = b['default']
  },
  function (a, b) {
    'use strict';
    b['default'] = function (a) {
      if (a && a.__esModule) return a;
      var b = {
      };
      if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]);
      return b['default'] = a,
      b
    },
    b.__esModule = !0
  },
  function (a, b) {
    'use strict';
    b['default'] = function (a) {
      return a && a.__esModule ? a : {
        'default': a
      }
    },
    b.__esModule = !0
  },
  function (a, b, c) {
    'use strict';
    function d(a, b, c) {
      this.helpers = a || {
      },
      this.partials = b || {
      },
      this.decorators = c || {
      },
      i.registerDefaultHelpers(this),
      j.registerDefaultDecorators(this)
    }
    var e = c(2) ['default'];
    b.__esModule = !0,
    b.HandlebarsEnvironment = d;
    var f = c(4),
    g = c(5),
    h = e(g),
    i = c(9),
    j = c(29),
    k = c(31),
    l = e(k),
    m = '4.5.3';
    b.VERSION = m;
    var n = 8;
    b.COMPILER_REVISION = n;
    var o = 7;
    b.LAST_COMPATIBLE_COMPILER_REVISION = o;
    var p = {
      1: '<= 1.0.rc.2',
      2: '== 1.0.0-rc.3',
      3: '== 1.0.0-rc.4',
      4: '== 1.x.x',
      5: '== 2.0.0-alpha.x',
      6: '>= 2.0.0-beta.1',
      7: '>= 4.0.0 <4.3.0',
      8: '>= 4.3.0'
    };
    b.REVISION_CHANGES = p;
    var q = '[object Object]';
    d.prototype = {
      constructor: d,
      logger: l['default'],
      log: l['default'].log,
      registerHelper: function (a, b) {
        if (f.toString.call(a) === q) {
          if (b) throw new h['default']('Arg not supported with multiple helpers');
          f.extend(this.helpers, a)
        } else this.helpers[a] = b
      },
      unregisterHelper: function (a) {
        delete this.helpers[a]
      },
      registerPartial: function (a, b) {
        if (f.toString.call(a) === q) f.extend(this.partials, a);
         else {
          if ('undefined' == typeof b) throw new h['default']('Attempting to register a partial called "' + a + '" as undefined');
          this.partials[a] = b
        }
      },
      unregisterPartial: function (a) {
        delete this.partials[a]
      },
      registerDecorator: function (a, b) {
        if (f.toString.call(a) === q) {
          if (b) throw new h['default']('Arg not supported with multiple decorators');
          f.extend(this.decorators, a)
        } else this.decorators[a] = b
      },
      unregisterDecorator: function (a) {
        delete this.decorators[a]
      }
    };
    var r = l['default'].log;
    b.log = r,
    b.createFrame = f.createFrame,
    b.logger = l['default']
  },
  function (a, b) {
    'use strict';
    function c(a) {
      return k[a]
    }
    function d(a) {
      for (var b = 1; b < arguments.length; b++) for (var c in arguments[b]) Object.prototype.hasOwnProperty.call(arguments[b], c) && (a[c] = arguments[b][c]);
      return a
    }
    function e(a, b) {
      for (var c = 0, d = a.length; c < d; c++) if (a[c] === b) return c;
      return - 1
    }
    function f(a) {
      if ('string' != typeof a) {
        if (a && a.toHTML) return a.toHTML();
        if (null == a) return '';
        if (!a) return a + '';
        a = '' + a
      }
      return m.test(a) ? a.replace(l, c) : a
    }
    function g(a) {
      return !a && 0 !== a || !(!p(a) || 0 !== a.length)
    }
    function h(a) {
      var b = d({
      }, a);
      return b._parent = a,
      b
    }
    function i(a, b) {
      return a.path = b,
      a
    }
    function j(a, b) {
      return (a ? a + '.' : '') + b
    }
    b.__esModule = !0,
    b.extend = d,
    b.indexOf = e,
    b.escapeExpression = f,
    b.isEmpty = g,
    b.createFrame = h,
    b.blockParams = i,
    b.appendContextPath = j;
    var k = {
      '&': '&',
      '<': '<',
      '>': '>',
      '"': '"',
      '\'': '&#x27;',
      '`': '&#x60;',
      '=': '&#x3D;'
    },
    l = /[&<>"'`=]/g,
    m = /[&<>"'`=]/,
    n = Object.prototype.toString;
    b.toString = n;
    var o = function (a) {
      return 'function' == typeof a
    };
    o(/x/) && (b.isFunction = o = function (a) {
      return 'function' == typeof a && '[object Function]' === n.call(a)
    }),
    b.isFunction = o;
    var p = Array.isArray || function (a) {
      return !(!a || 'object' != typeof a) && '[object Array]' === n.call(a)
    };
    b.isArray = p
  },
  function (a, b, c) {
    'use strict';
    function d(a, b) {
      var c = b && b.loc,
      g = void 0,
      h = void 0,
      i = void 0,
      j = void 0;
      c && (g = c.start.line, h = c.end.line, i = c.start.column, j = c.end.column, a += ' - ' + g + ':' + i);
      for (var k = Error.prototype.constructor.call(this, a), l = 0; l < f.length; l++) this[f[l]] = k[f[l]];
      Error.captureStackTrace && Error.captureStackTrace(this, d);
      try {
        c && (this.lineNumber = g, this.endLineNumber = h, e ? (Object.defineProperty(this, 'column', {
          value: i,
          enumerable: !0
        }), Object.defineProperty(this, 'endColumn', {
          value: j,
          enumerable: !0
        })) : (this.column = i, this.endColumn = j))
      } catch (m) {
      }
    }
    var e = c(6) ['default'];
    b.__esModule = !0;
    var f = [
      'description',
      'fileName',
      'lineNumber',
      'endLineNumber',
      'message',
      'name',
      'number',
      'stack'
    ];
    d.prototype = new Error,
    b['default'] = d,
    a.exports = b['default']
  },
  function (a, b, c) {
    a.exports = {
      'default': c(7),
      __esModule: !0
    }
  },
  function (a, b, c) {
    var d = c(8);
    a.exports = function (a, b, c) {
      return d.setDesc(a, b, c)
    }
  },
  function (a, b) {
    var c = Object;
    a.exports = {
      create: c.create,
      getProto: c.getPrototypeOf,
      isEnum: {
      }.propertyIsEnumerable,
      getDesc: c.getOwnPropertyDescriptor,
      setDesc: c.defineProperty,
      setDescs: c.defineProperties,
      getKeys: c.keys,
      getNames: c.getOwnPropertyNames,
      getSymbols: c.getOwnPropertySymbols,
      each: [
      ].forEach
    }
  },
  function (a, b, c) {
    'use strict';
    function d(a) {
      h['default'](a),
      j['default'](a),
      l['default'](a),
      n['default'](a),
      p['default'](a),
      r['default'](a),
      t['default'](a)
    }
    function e(a, b, c) {
      a.helpers[b] && (a.hooks[b] = a.helpers[b], c || delete a.helpers[b])
    }
    var f = c(2) ['default'];
    b.__esModule = !0,
    b.registerDefaultHelpers = d,
    b.moveHelperToHooks = e;
    var g = c(10),
    h = f(g),
    i = c(11),
    j = f(i),
    k = c(24),
    l = f(k),
    m = c(25),
    n = f(m),
    o = c(26),
    p = f(o),
    q = c(27),
    r = f(q),
    s = c(28),
    t = f(s)
  },
  function (a, b, c) {
    'use strict';
    b.__esModule = !0;
    var d = c(4);
    b['default'] = function (a) {
      a.registerHelper('blockHelperMissing', function (b, c) {
        var e = c.inverse,
        f = c.fn;
        if (b === !0) return f(this);
        if (b === !1 || null == b) return e(this);
        if (d.isArray(b)) return b.length > 0 ? (c.ids && (c.ids = [
          c.name
        ]), a.helpers.each(b, c)) : e(this);
        if (c.data && c.ids) {
          var g = d.createFrame(c.data);
          g.contextPath = d.appendContextPath(c.data.contextPath, c.name),
          c = {
            data: g
          }
        }
        return f(b, c)
      })
    },
    a.exports = b['default']
  },
  function (a, b, c) {
    (function (d) {
      'use strict';
      var e = c(12) ['default'],
      f = c(2) ['default'];
      b.__esModule = !0;
      var g = c(4),
      h = c(5),
      i = f(h);
      b['default'] = function (a) {
        a.registerHelper('each', function (a, b) {
          function c(b, c, d) {
            l && (l.key = b, l.index = c, l.first = 0 === c, l.last = !!d, m && (l.contextPath = m + b)),
            k += f(a[b], {
              data: l,
              blockParams: g.blockParams([a[b],
              b], [
                m + b,
                null
              ])
            })
          }
          if (!b) throw new i['default']('Must pass iterator to #each');
          var f = b.fn,
          h = b.inverse,
          j = 0,
          k = '',
          l = void 0,
          m = void 0;
          if (b.data && b.ids && (m = g.appendContextPath(b.data.contextPath, b.ids[0]) + '.'), g.isFunction(a) && (a = a.call(this)), b.data && (l = g.createFrame(b.data)), a && 'object' == typeof a) if (g.isArray(a)) for (var n = a.length; j < n; j++) j in a && c(j, j, j === a.length - 1);
           else if (d.Symbol && a[d.Symbol.iterator]) {
            for (var o = [
            ], p = a[d.Symbol.iterator](), q = p.next(); !q.done; q = p.next()) o.push(q.value);
            a = o;
            for (var n = a.length; j < n; j++) c(j, j, j === a.length - 1)
          } else !function () {
            var b = void 0;
            e(a).forEach(function (a) {
              void 0 !== b && c(b, j - 1),
              b = a,
              j++
            }),
            void 0 !== b && c(b, j - 1, !0)
          }();
          return 0 === j && (k = h(this)),
          k
        })
      },
      a.exports = b['default']
    }).call(b, function () {
      return this
    }())
  },
  function (a, b, c) {
    a.exports = {
      'default': c(13),
      __esModule: !0
    }
  },
  function (a, b, c) {
    c(14),
    a.exports = c(20).Object.keys
  },
  function (a, b, c) {
    var d = c(15);
    c(17) ('keys', function (a) {
      return function (b) {
        return a(d(b))
      }
    })
  },
  function (a, b, c) {
    var d = c(16);
    a.exports = function (a) {
      return Object(d(a))
    }
  },
  function (a, b) {
    a.exports = function (a) {
      if (void 0 == a) throw TypeError('Can\'t call method on  ' + a);
      return a
    }
  },
  function (a, b, c) {
    var d = c(18),
    e = c(20),
    f = c(23);
    a.exports = function (a, b) {
      var c = (e.Object || {
      }) [a] || Object[a],
      g = {
      };
      g[a] = b(c),
      d(d.S + d.F * f(function () {
        c(1)
      }), 'Object', g)
    }
  },
  function (a, b, c) {
    var d = c(19),
    e = c(20),
    f = c(21),
    g = 'prototype',
    h = function (a, b, c) {
      var i,
      j,
      k,
      l = a & h.F,
      m = a & h.G,
      n = a & h.S,
      o = a & h.P,
      p = a & h.B,
      q = a & h.W,
      r = m ? e : e[b] || (e[b] = {
      }),
      s = m ? d : n ? d[b] : (d[b] || {
      }) [g];
      m && (c = b);
      for (i in c) j = !l && s && i in s,
      j && i in r || (k = j ? s[i] : c[i], r[i] = m && 'function' != typeof s[i] ? c[i] : p && j ? f(k, d) : q && s[i] == k ? function (a) {
        var b = function (b) {
          return this instanceof a ? new a(b) : a(b)
        };
        return b[g] = a[g],
        b
      }(k) : o && 'function' == typeof k ? f(Function.call, k) : k, o && ((r[g] || (r[g] = {
      })) [i] = k))
    };
    h.F = 1,
    h.G = 2,
    h.S = 4,
    h.P = 8,
    h.B = 16,
    h.W = 32,
    a.exports = h
  },
  function (a, b) {
    var c = a.exports = 'undefined' != typeof window && window.Math == Math ? window : 'undefined' != typeof self && self.Math == Math ? self : Function('return this') ();
    'number' == typeof __g && (__g = c)
  },
  function (a, b) {
    var c = a.exports = {
      version: '1.2.6'
    };
    'number' == typeof __e && (__e = c)
  },
  function (a, b, c) {
    var d = c(22);
    a.exports = function (a, b, c) {
      if (d(a), void 0 === b) return a;
      switch (c) {
        case 1:
          return function (c) {
            return a.call(b, c)
          };
        case 2:
          return function (c, d) {
            return a.call(b, c, d)
          };
        case 3:
          return function (c, d, e) {
            return a.call(b, c, d, e)
          }
      }
      return function () {
        return a.apply(b, arguments)
      }
    }
  },
  function (a, b) {
    a.exports = function (a) {
      if ('function' != typeof a) throw TypeError(a + ' is not a function!');
      return a
    }
  },
  function (a, b) {
    a.exports = function (a) {
      try {
        return !!a()
      } catch (b) {
        return !0
      }
    }
  },
  function (a, b, c) {
    'use strict';
    var d = c(2) ['default'];
    b.__esModule = !0;
    var e = c(5),
    f = d(e);
    b['default'] = function (a) {
      a.registerHelper('helperMissing', function () {
        if (1 !== arguments.length) throw new f['default']('Missing helper: "' + arguments[arguments.length - 1].name + '"')
      })
    },
    a.exports = b['default']
  },
  function (a, b, c) {
    'use strict';
    var d = c(2) ['default'];
    b.__esModule = !0;
    var e = c(4),
    f = c(5),
    g = d(f);
    b['default'] = function (a) {
      a.registerHelper('if', function (a, b) {
        if (2 != arguments.length) throw new g['default']('#if requires exactly one argument');
        return e.isFunction(a) && (a = a.call(this)),
        !b.hash.includeZero && !a || e.isEmpty(a) ? b.inverse(this) : b.fn(this)
      }),
      a.registerHelper('unless', function (b, c) {
        if (2 != arguments.length) throw new g['default']('#unless requires exactly one argument');
        return a.helpers['if'].call(this, b, {
          fn: c.inverse,
          inverse: c.fn,
          hash: c.hash
        })
      })
    },
    a.exports = b['default']
  },
  function (a, b) {
    'use strict';
    b.__esModule = !0,
    b['default'] = function (a) {
      a.registerHelper('log', function () {
        for (var b = [
          void 0
        ], c = arguments[arguments.length - 1], d = 0; d < arguments.length - 1; d++) b.push(arguments[d]);
        var e = 1;
        null != c.hash.level ? e = c.hash.level : c.data && null != c.data.level && (e = c.data.level),
        b[0] = e,
        a.log.apply(a, b)
      })
    },
    a.exports = b['default']
  },
  function (a, b) {
    'use strict';
    b.__esModule = !0;
    var c = /^(constructor|__defineGetter__|__defineSetter__|__lookupGetter__|__proto__)$/;
    b.dangerousPropertyRegex = c,
    b['default'] = function (a) {
      a.registerHelper('lookup', function (a, b) {
        if (!a) return a;
        if (!c.test(String(b)) || Object.prototype.propertyIsEnumerable.call(a, b)) return a[b]
      })
    }
  },
  function (a, b, c) {
    'use strict';
    var d = c(2) ['default'];
    b.__esModule = !0;
    var e = c(4),
    f = c(5),
    g = d(f);
    b['default'] = function (a) {
      a.registerHelper('with', function (a, b) {
        if (2 != arguments.length) throw new g['default']('#with requires exactly one argument');
        e.isFunction(a) && (a = a.call(this));
        var c = b.fn;
        if (e.isEmpty(a)) return b.inverse(this);
        var d = b.data;
        return b.data && b.ids && (d = e.createFrame(b.data), d.contextPath = e.appendContextPath(b.data.contextPath, b.ids[0])),
        c(a, {
          data: d,
          blockParams: e.blockParams([a], [
            d && d.contextPath
          ])
        })
      })
    },
    a.exports = b['default']
  },
  function (a, b, c) {
    'use strict';
    function d(a) {
      g['default'](a)
    }
    var e = c(2) ['default'];
    b.__esModule = !0,
    b.registerDefaultDecorators = d;
    var f = c(30),
    g = e(f)
  },
  function (a, b, c) {
    'use strict';
    b.__esModule = !0;
    var d = c(4);
    b['default'] = function (a) {
      a.registerDecorator('inline', function (a, b, c, e) {
        var f = a;
        return b.partials || (b.partials = {
        }, f = function (e, f) {
          var g = c.partials;
          c.partials = d.extend({
          }, g, b.partials);
          var h = a(e, f);
          return c.partials = g,
          h
        }),
        b.partials[e.args[0]] = e.fn,
        f
      })
    },
    a.exports = b['default']
  },
  function (a, b, c) {
    'use strict';
    b.__esModule = !0;
    var d = c(4),
    e = {
      methodMap: [
        'debug',
        'info',
        'warn',
        'error'
      ],
      level: 'info',
      lookupLevel: function (a) {
        if ('string' == typeof a) {
          var b = d.indexOf(e.methodMap, a.toLowerCase());
          a = b >= 0 ? b : parseInt(a, 10)
        }
        return a
      },
      log: function (a) {
        if (a = e.lookupLevel(a), 'undefined' != typeof console && e.lookupLevel(e.level) <= a) {
          var b = e.methodMap[a];
          console[b] || (b = 'log');
          for (var c = arguments.length, d = Array(c > 1 ? c - 1 : 0), f = 1; f < c; f++) d[f - 1] = arguments[f];
          console[b].apply(console, d)
        }
      }
    };
    b['default'] = e,
    a.exports = b['default']
  },
  function (a, b) {
    'use strict';
    function c(a) {
      this.string = a
    }
    b.__esModule = !0,
    c.prototype.toString = c.prototype.toHTML = function () {
      return '' + this.string
    },
    b['default'] = c,
    a.exports = b['default']
  },
  function (a, b, c) {
    'use strict';
    function d(a) {
      var b = a && a[0] || 1,
      c = s.COMPILER_REVISION;
      if (!(b >= s.LAST_COMPATIBLE_COMPILER_REVISION && b <= s.COMPILER_REVISION)) {
        if (b < s.LAST_COMPATIBLE_COMPILER_REVISION) {
          var d = s.REVISION_CHANGES[c],
          e = s.REVISION_CHANGES[b];
          throw new r['default']('Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (' + d + ') or downgrade your runtime to an older version (' + e + ').')
        }
        throw new r['default']('Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version (' + a[1] + ').')
      }
    }
    function e(a, b) {
      function c(c, d, e) {
        e.hash && (d = p.extend({
        }, d, e.hash), e.ids && (e.ids[0] = !0)),
        c = b.VM.resolvePartial.call(this, c, d, e);
        var f = p.extend({
        }, e, {
          hooks: this.hooks
        }),
        g = b.VM.invokePartial.call(this, c, d, f);
        if (null == g && b.compile && (e.partials[e.name] = b.compile(c, a.compilerOptions, b), g = e.partials[e.name](d, f)), null != g) {
          if (e.indent) {
            for (var h = g.split('\n'), i = 0, j = h.length; i < j && (h[i] || i + 1 !== j); i++) h[i] = e.indent + h[i];
            g = h.join('\n')
          }
          return g
        }
        throw new r['default']('The partial ' + e.name + ' could not be compiled when running in runtime-only mode')
      }
      function d(b) {
        function c(b) {
          return '' + a.main(g, b, g.helpers, g.partials, f, i, h)
        }
        var e = arguments.length <= 1 || void 0 === arguments[1] ? {
        }
         : arguments[1],
        f = e.data;
        d._setup(e),
        !e.partial && a.useData && (f = j(b, f));
        var h = void 0,
        i = a.useBlockParams ? [
        ] : void 0;
        return a.useDepths && (h = e.depths ? b != e.depths[0] ? [
          b
        ].concat(e.depths) : e.depths : [
          b
        ]),
        (c = k(a.main, c, g, e.depths || [
        ], f, i)) (b, e)
      }
      if (!b) throw new r['default']('No environment passed to template');
      if (!a || !a.main) throw new r['default']('Unknown template object: ' + typeof a);
      a.main.decorator = a.main_d,
      b.VM.checkRevision(a.compiler);
      var e = a.compiler && 7 === a.compiler[0],
      g = {
        strict: function (a, b, c) {
          if (!(a && b in a)) throw new r['default']('"' + b + '" not defined in ' + a, {
            loc: c
          });
          return a[b]
        },
        lookup: function (a, b) {
          for (var c = a.length, d = 0; d < c; d++) if (a[d] && null != a[d][b]) return a[d][b]
        },
        lambda: function (a, b) {
          return 'function' == typeof a ? a.call(b) : a
        },
        escapeExpression: p.escapeExpression,
        invokePartial: c,
        fn: function (b) {
          var c = a[b];
          return c.decorator = a[b + '_d'],
          c
        },
        programs: [
        ],
        program: function (a, b, c, d, e) {
          var g = this.programs[a],
          h = this.fn(a);
          return b || e || d || c ? g = f(this, a, h, b, c, d, e) : g || (g = this.programs[a] = f(this, a, h)),
          g
        },
        data: function (a, b) {
          for (; a && b--; ) a = a._parent;
          return a
        },
        nullContext: l({
        }),
        noop: b.VM.noop,
        compilerInfo: a.compiler
      };
      return d.isTop = !0,
      d._setup = function (c) {
        if (c.partial) g.helpers = c.helpers,
        g.partials = c.partials,
        g.decorators = c.decorators,
        g.hooks = c.hooks;
         else {
          g.helpers = p.extend({
          }, b.helpers, c.helpers),
          a.usePartial && (g.partials = p.extend({
          }, b.partials, c.partials)),
          (a.usePartial || a.useDecorators) && (g.decorators = p.extend({
          }, b.decorators, c.decorators)),
          g.hooks = {
          };
          var d = c.allowCallsToHelperMissing || e;
          t.moveHelperToHooks(g, 'helperMissing', d),
          t.moveHelperToHooks(g, 'blockHelperMissing', d)
        }
      },
      d._child = function (b, c, d, e) {
        if (a.useBlockParams && !d) throw new r['default']('must pass block params');
        if (a.useDepths && !e) throw new r['default']('must pass parent depths');
        return f(g, b, a[b], c, 0, d, e)
      },
      d
    }
    function f(a, b, c, d, e, f, g) {
      function h(b) {
        var e = arguments.length <= 1 || void 0 === arguments[1] ? {
        }
         : arguments[1],
        h = g;
        return !g || b == g[0] || b === a.nullContext && null === g[0] || (h = [
          b
        ].concat(g)),
        c(a, b, a.helpers, a.partials, e.data || d, f && [
          e.blockParams
        ].concat(f), h)
      }
      return h = k(c, h, a, g, d, f),
      h.program = b,
      h.depth = g ? g.length : 0,
      h.blockParams = e || 0,
      h
    }
    function g(a, b, c) {
      return a ? a.call || c.name || (c.name = a, a = c.partials[a]) : a = '@partial-block' === c.name ? c.data['partial-block'] : c.partials[c.name],
      a
    }
    function h(a, b, c) {
      var d = c.data && c.data['partial-block'];
      c.partial = !0,
      c.ids && (c.data.contextPath = c.ids[0] || c.data.contextPath);
      var e = void 0;
      if (c.fn && c.fn !== i && !function () {
        c.data = s.createFrame(c.data);
        var a = c.fn;
        e = c.data['partial-block'] = function (b) {
          var c = arguments.length <= 1 || void 0 === arguments[1] ? {
          }
           : arguments[1];
          return c.data = s.createFrame(c.data),
          c.data['partial-block'] = d,
          a(b, c)
        },
        a.partials && (c.partials = p.extend({
        }, c.partials, a.partials))
      }(), void 0 === a && e && (a = e), void 0 === a) throw new r['default']('The partial ' + c.name + ' could not be found');
      if (a instanceof Function) return a(b, c)
    }
    function i() {
      return ''
    }
    function j(a, b) {
      return b && 'root' in b || (b = b ? s.createFrame(b) : {
      }, b.root = a),
      b
    }
    function k(a, b, c, d, e, f) {
      if (a.decorator) {
        var g = {
        };
        b = a.decorator(b, g, c, d && d[0], e, f, d),
        p.extend(b, g)
      }
      return b
    }
    var l = c(34) ['default'],
    m = c(1) ['default'],
    n = c(2) ['default'];
    b.__esModule = !0,
    b.checkRevision = d,
    b.template = e,
    b.wrapProgram = f,
    b.resolvePartial = g,
    b.invokePartial = h,
    b.noop = i;
    var o = c(4),
    p = m(o),
    q = c(5),
    r = n(q),
    s = c(3),
    t = c(9)
  },
  function (a, b, c) {
    a.exports = {
      'default': c(35),
      __esModule: !0
    }
  },
  function (a, b, c) {
    c(36),
    a.exports = c(20).Object.seal
  },
  function (a, b, c) {
    var d = c(37);
    c(17) ('seal', function (a) {
      return function (b) {
        return a && d(b) ? a(b) : b
      }
    })
  },
  function (a, b) {
    a.exports = function (a) {
      return 'object' == typeof a ? null !== a : 'function' == typeof a
    }
  },
  function (a, b) {
    (function (c) {
      'use strict';
      b.__esModule = !0,
      b['default'] = function (a) {
        var b = 'undefined' != typeof c ? c : window,
        d = b.Handlebars;
        a.noConflict = function () {
          return b.Handlebars === a && (b.Handlebars = d),
          a
        }
      },
      a.exports = b['default']
    }).call(b, function () {
      return this
    }())
  }
  ])
}),
function (a) {
  if ('object' == typeof exports && 'undefined' != typeof module) module.exports = a();
   else if ('function' == typeof define && define.amd) define('raven', [
  ], a);
   else {
    var b;
    b = 'undefined' != typeof window ? window : 'undefined' != typeof global ? global : 'undefined' != typeof self ? self : this,
    b.Raven = a()
  }
}(function () {
  return function a(b, c, d) {
    function e(g, h) {
      if (!c[g]) {
        if (!b[g]) {
          var i = 'function' == typeof require && require;
          if (!h && i) return i(g, !0);
          if (f) return f(g, !0);
          var j = new Error('Cannot find module \'' + g + '\'');
          throw j.code = 'MODULE_NOT_FOUND',
          j
        }
        var k = c[g] = {
          exports: {
          }
        };
        b[g][0].call(k.exports, function (a) {
          var c = b[g][1][a];
          return e(c ? c : a)
        }, k, k.exports, a, b, c, d)
      }
      return c[g].exports
    }
    for (var f = 'function' == typeof require && require, g = 0; g < d.length; g++) e(d[g]);
    return e
  }({
    1: [
      function (a, b, c) {
        function d(a) {
          this.name = 'RavenConfigError',
          this.message = a
        }
        d.prototype = new Error,
        d.prototype.constructor = d,
        b.exports = d
      },
      {
      }
    ],
    2: [
      function (a, b, c) {
        var d = a(5),
        e = function (a, b, c) {
          var e = a[b],
          f = a;
          if (b in a) {
            var g = 'warn' === b ? 'warning' : b;
            a[b] = function () {
              var a = [
              ].slice.call(arguments),
              h = d.safeJoin(a, ' '),
              i = {
                level: g,
                logger: 'console',
                extra: {
                  arguments: a
                }
              };
              'assert' === b ? a[0] === !1 && (h = 'Assertion failed: ' + (d.safeJoin(a.slice(1), ' ') || 'console.assert'), i.extra.arguments = a.slice(1), c && c(h, i)) : c && c(h, i),
              e && Function.prototype.apply.call(e, f, a)
            }
          }
        };
        b.exports = {
          wrapMethod: e
        }
      },
      {
        5: 5
      }
    ],
    3: [
      function (a, b, c) {
        (function (c) {
          function d() {
            return + new Date
          }
          function e(a, b) {
            return s(b) ? function (c) {
              return b(c, a)
            }
             : b
          }
          function f() {
            this._hasJSON = !('object' != typeof JSON || !JSON.stringify),
            this._hasDocument = !r(S),
            this._hasNavigator = !r(T),
            this._lastCapturedException = null,
            this._lastData = null,
            this._lastEventId = null,
            this._globalServer = null,
            this._globalKey = null,
            this._globalProject = null,
            this._globalContext = {
            },
            this._globalOptions = {
              release: R.SENTRY_RELEASE && R.SENTRY_RELEASE.id,
              logger: 'javascript',
              ignoreErrors: [
              ],
              ignoreUrls: [
              ],
              whitelistUrls: [
              ],
              includePaths: [
              ],
              headers: null,
              collectWindowErrors: !0,
              captureUnhandledRejections: !0,
              maxMessageLength: 0,
              maxUrlLength: 250,
              stackTraceLimit: 50,
              autoBreadcrumbs: !0,
              instrument: !0,
              sampleRate: 1,
              sanitizeKeys: [
              ]
            },
            this._fetchDefaults = {
              method: 'POST',
              referrerPolicy: K() ? 'origin' : ''
            },
            this._ignoreOnError = 0,
            this._isRavenInstalled = !1,
            this._originalErrorStackTraceLimit = Error.stackTraceLimit,
            this._originalConsole = R.console || {
            },
            this._originalConsoleMethods = {
            },
            this._plugins = [
            ],
            this._startTime = d(),
            this._wrappedBuiltIns = [
            ],
            this._breadcrumbs = [
            ],
            this._lastCapturedEvent = null,
            this._keypressTimeout,
            this._location = R.location,
            this._lastHref = this._location && this._location.href,
            this._resetBackoff();
            for (var a in this._originalConsole) this._originalConsoleMethods[a] = this._originalConsole[a]
          }
          var g = a(6),
          h = a(7),
          i = a(8),
          j = a(1),
          k = a(5),
          l = k.isErrorEvent,
          m = k.isDOMError,
          n = k.isDOMException,
          o = k.isError,
          p = k.isObject,
          q = k.isPlainObject,
          r = k.isUndefined,
          s = k.isFunction,
          t = k.isString,
          u = k.isArray,
          v = k.isEmptyObject,
          w = k.each,
          x = k.objectMerge,
          y = k.truncate,
          z = k.objectFrozen,
          A = k.hasKey,
          B = k.joinRegExp,
          C = k.urlencode,
          D = k.uuid4,
          E = k.htmlTreeAsString,
          F = k.isSameException,
          G = k.isSameStacktrace,
          H = k.parseUrl,
          I = k.fill,
          J = k.supportsFetch,
          K = k.supportsReferrerPolicy,
          L = k.serializeKeysForMessage,
          M = k.serializeException,
          N = k.sanitize,
          O = a(2).wrapMethod,
          P = 'source protocol user pass host port path'.split(' '),
          Q = /^(?:(\w+):)?\/\/(?:(\w+)(:\w+)?@)?([\w\.-]+)(?::(\d+))?(\/.*)/,
          R = 'undefined' != typeof window ? window : 'undefined' != typeof c ? c : 'undefined' != typeof self ? self : {
          },
          S = R.document,
          T = R.navigator;
          f.prototype = {
            VERSION: '3.27.0',
            debug: !1,
            TraceKit: g,
            config: function (a, b) {
              var c = this;
              if (c._globalServer) return this._logDebug('error', 'Error: Raven has already been configured'),
              c;
              if (!a) return c;
              var d = c._globalOptions;
              b && w(b, function (a, b) {
                'tags' === a || 'extra' === a || 'user' === a ? c._globalContext[a] = b : d[a] = b
              }),
              c.setDSN(a),
              d.ignoreErrors.push(/^Script error\.?$/),
              d.ignoreErrors.push(/^Javascript error: Script error\.? on line 0$/),
              d.ignoreErrors = B(d.ignoreErrors),
              d.ignoreUrls = !!d.ignoreUrls.length && B(d.ignoreUrls),
              d.whitelistUrls = !!d.whitelistUrls.length && B(d.whitelistUrls),
              d.includePaths = B(d.includePaths),
              d.maxBreadcrumbs = Math.max(0, Math.min(d.maxBreadcrumbs || 100, 100));
              var e = {
                xhr: !0,
                console: !0,
                dom: !0,
                location: !0,
                sentry: !0
              },
              f = d.autoBreadcrumbs;
              '[object Object]' === {
              }.toString.call(f) ? f = x(e, f) : f !== !1 && (f = e),
              d.autoBreadcrumbs = f;
              var h = {
                tryCatch: !0
              },
              i = d.instrument;
              return '[object Object]' === {
              }.toString.call(i) ? i = x(h, i) : i !== !1 && (i = h),
              d.instrument = i,
              g.collectWindowErrors = !!d.collectWindowErrors,
              c
            },
            install: function () {
              var a = this;
              return a.isSetup() && !a._isRavenInstalled && (g.report.subscribe(function () {
                a._handleOnErrorStackInfo.apply(a, arguments)
              }), a._globalOptions.captureUnhandledRejections && a._attachPromiseRejectionHandler(), a._patchFunctionToString(), a._globalOptions.instrument && a._globalOptions.instrument.tryCatch && a._instrumentTryCatch(), a._globalOptions.autoBreadcrumbs && a._instrumentBreadcrumbs(), a._drainPlugins(), a._isRavenInstalled = !0),
              Error.stackTraceLimit = a._globalOptions.stackTraceLimit,
              this
            },
            setDSN: function (a) {
              var b = this,
              c = b._parseDSN(a),
              d = c.path.lastIndexOf('/'),
              e = c.path.substr(1, d);
              b._dsn = a,
              b._globalKey = c.user,
              b._globalSecret = c.pass && c.pass.substr(1),
              b._globalProject = c.path.substr(d + 1),
              b._globalServer = b._getGlobalServer(c),
              b._globalEndpoint = b._globalServer + '/' + e + 'api/' + b._globalProject + '/store/',
              this._resetBackoff()
            },
            context: function (a, b, c) {
              return s(a) && (c = b || [
              ], b = a, a = {
              }),
              this.wrap(a, b).apply(this, c)
            },
            wrap: function (a, b, c) {
              function d() {
                var d = [
                ],
                f = arguments.length,
                g = !a || a && a.deep !== !1;
                for (c && s(c) && c.apply(this, arguments); f--; ) d[f] = g ? e.wrap(a, arguments[f]) : arguments[f];
                try {
                  return b.apply(this, d)
                } catch (h) {
                  throw e._ignoreNextOnError(),
                  e.captureException(h, a),
                  h
                }
              }
              var e = this;
              if (r(b) && !s(a)) return a;
              if (s(a) && (b = a, a = void 0), !s(b)) return b;
              try {
                if (b.__raven__) return b;
                if (b.__raven_wrapper__) return b.__raven_wrapper__
              } catch (f) {
                return b
              }
              for (var g in b) A(b, g) && (d[g] = b[g]);
              return d.prototype = b.prototype,
              b.__raven_wrapper__ = d,
              d.__raven__ = !0,
              d.__orig__ = b,
              d
            },
            uninstall: function () {
              return g.report.uninstall(),
              this._detachPromiseRejectionHandler(),
              this._unpatchFunctionToString(),
              this._restoreBuiltIns(),
              this._restoreConsole(),
              Error.stackTraceLimit = this._originalErrorStackTraceLimit,
              this._isRavenInstalled = !1,
              this
            },
            _promiseRejectionHandler: function (a) {
              this._logDebug('debug', 'Raven caught unhandled promise rejection:', a),
              this.captureException(a.reason, {
                mechanism: {
                  type: 'onunhandledrejection',
                  handled: !1
                }
              })
            },
            _attachPromiseRejectionHandler: function () {
              return this._promiseRejectionHandler = this._promiseRejectionHandler.bind(this),
              R.addEventListener && R.addEventListener('unhandledrejection', this._promiseRejectionHandler),
              this
            },
            _detachPromiseRejectionHandler: function () {
              return R.removeEventListener && R.removeEventListener('unhandledrejection', this._promiseRejectionHandler),
              this
            },
            captureException: function (a, b) {
              if (b = x({
                trimHeadFrames: 0
              }, b ? b : {
              }), l(a) && a.error) a = a.error;
               else {
                if (m(a) || n(a)) {
                  var c = a.name || (m(a) ? 'DOMError' : 'DOMException'),
                  d = a.message ? c + ': ' + a.message : c;
                  return this.captureMessage(d, x(b, {
                    stacktrace: !0,
                    trimHeadFrames: b.trimHeadFrames + 1
                  }))
                }
                if (o(a)) a = a;
                 else {
                  if (!q(a)) return this.captureMessage(a, x(b, {
                    stacktrace: !0,
                    trimHeadFrames: b.trimHeadFrames + 1
                  }));
                  b = this._getCaptureExceptionOptionsFromPlainObject(b, a),
                  a = new Error(b.message)
                }
              }
              this._lastCapturedException = a;
              try {
                var e = g.computeStackTrace(a);
                this._handleStackInfo(e, b)
              } catch (f) {
                if (a !== f) throw f
              }
              return this
            },
            _getCaptureExceptionOptionsFromPlainObject: function (a, b) {
              var c = Object.keys(b).sort(),
              d = x(a, {
                message: 'Non-Error exception captured with keys: ' + L(c),
                fingerprint: [
                  i(c)
                ],
                extra: a.extra || {
                }
              });
              return d.extra.__serialized__ = M(b),
              d
            },
            captureMessage: function (a, b) {
              if (!this._globalOptions.ignoreErrors.test || !this._globalOptions.ignoreErrors.test(a)) {
                b = b || {
                },
                a += '';
                var c,
                d = x({
                  message: a
                }, b);
                try {
                  throw new Error(a)
                } catch (e) {
                  c = e
                }
                c.name = null;
                var f = g.computeStackTrace(c),
                h = u(f.stack) && f.stack[1];
                h && 'Raven.captureException' === h.func && (h = f.stack[2]);
                var i = h && h.url || '';
                if ((!this._globalOptions.ignoreUrls.test || !this._globalOptions.ignoreUrls.test(i)) && (!this._globalOptions.whitelistUrls.test || this._globalOptions.whitelistUrls.test(i))) {
                  if (this._globalOptions.stacktrace || b.stacktrace || '' === d.message) {
                    d.fingerprint = null == d.fingerprint ? a : d.fingerprint,
                    b = x({
                      trimHeadFrames: 0
                    }, b),
                    b.trimHeadFrames += 1;
                    var j = this._prepareFrames(f, b);
                    d.stacktrace = {
                      frames: j.reverse()
                    }
                  }
                  return d.fingerprint && (d.fingerprint = u(d.fingerprint) ? d.fingerprint : [
                    d.fingerprint
                  ]),
                  this._send(d),
                  this
                }
              }
            },
            captureBreadcrumb: function (a) {
              var b = x({
                timestamp: d() / 1000
              }, a);
              if (s(this._globalOptions.breadcrumbCallback)) {
                var c = this._globalOptions.breadcrumbCallback(b);
                if (p(c) && !v(c)) b = c;
                 else if (c === !1) return this
              }
              return this._breadcrumbs.push(b),
              this._breadcrumbs.length > this._globalOptions.maxBreadcrumbs && this._breadcrumbs.shift(),
              this
            },
            addPlugin: function (a) {
              var b = [
              ].slice.call(arguments, 1);
              return this._plugins.push([a,
              b]),
              this._isRavenInstalled && this._drainPlugins(),
              this
            },
            setUserContext: function (a) {
              return this._globalContext.user = a,
              this
            },
            setExtraContext: function (a) {
              return this._mergeContext('extra', a),
              this
            },
            setTagsContext: function (a) {
              return this._mergeContext('tags', a),
              this
            },
            clearContext: function () {
              return this._globalContext = {
              },
              this
            },
            getContext: function () {
              return JSON.parse(h(this._globalContext))
            },
            setEnvironment: function (a) {
              return this._globalOptions.environment = a,
              this
            },
            setRelease: function (a) {
              return this._globalOptions.release = a,
              this
            },
            setDataCallback: function (a) {
              var b = this._globalOptions.dataCallback;
              return this._globalOptions.dataCallback = e(b, a),
              this
            },
            setBreadcrumbCallback: function (a) {
              var b = this._globalOptions.breadcrumbCallback;
              return this._globalOptions.breadcrumbCallback = e(b, a),
              this
            },
            setShouldSendCallback: function (a) {
              var b = this._globalOptions.shouldSendCallback;
              return this._globalOptions.shouldSendCallback = e(b, a),
              this
            },
            setTransport: function (a) {
              return this._globalOptions.transport = a,
              this
            },
            lastException: function () {
              return this._lastCapturedException
            },
            lastEventId: function () {
              return this._lastEventId
            },
            isSetup: function () {
              return !!this._hasJSON && (!!this._globalServer || (this.ravenNotConfiguredError || (this.ravenNotConfiguredError = !0, this._logDebug('error', 'Error: Raven has not been configured.')), !1))
            },
            afterLoad: function () {
              var a = R.RavenConfig;
              a && this.config(a.dsn, a.config).install()
            },
            showReportDialog: function (a) {
              if (S) {
                if (a = x({
                  eventId: this.lastEventId(),
                  dsn: this._dsn,
                  user: this._globalContext.user || {
                  }
                }, a), !a.eventId) throw new j('Missing eventId');
                if (!a.dsn) throw new j('Missing DSN');
                var b = encodeURIComponent,
                c = [
                ];
                for (var d in a) if ('user' === d) {
                  var e = a.user;
                  e.name && c.push('name=' + b(e.name)),
                  e.email && c.push('email=' + b(e.email))
                } else c.push(b(d) + '=' + b(a[d]));
                var f = this._getGlobalServer(this._parseDSN(a.dsn)),
                g = S.createElement('script');
                g.async = !0,
                g.src = f + '/api/embed/error-page/?' + c.join('&'),
                (S.head || S.body).appendChild(g)
              }
            },
            _ignoreNextOnError: function () {
              var a = this;
              this._ignoreOnError += 1,
              setTimeout(function () {
                a._ignoreOnError -= 1
              })
            },
            _triggerEvent: function (a, b) {
              var c,
              d;
              if (this._hasDocument) {
                b = b || {
                },
                a = 'raven' + a.substr(0, 1).toUpperCase() + a.substr(1),
                S.createEvent ? (c = S.createEvent('HTMLEvents'), c.initEvent(a, !0, !0)) : (c = S.createEventObject(), c.eventType = a);
                for (d in b) A(b, d) && (c[d] = b[d]);
                if (S.createEvent) S.dispatchEvent(c);
                 else try {
                  S.fireEvent('on' + c.eventType.toLowerCase(), c)
                } catch (e) {
                }
              }
            },
            _breadcrumbEventHandler: function (a) {
              var b = this;
              return function (c) {
                if (b._keypressTimeout = null, b._lastCapturedEvent !== c) {
                  b._lastCapturedEvent = c;
                  var d;
                  try {
                    d = E(c.target)
                  } catch (e) {
                    d = '<unknown>'
                  }
                  b.captureBreadcrumb({
                    category: 'ui.' + a,
                    message: d
                  })
                }
              }
            },
            _keypressEventHandler: function () {
              var a = this,
              b = 1000;
              return function (c) {
                var d;
                try {
                  d = c.target
                } catch (e) {
                  return
                }
                var f = d && d.tagName;
                if (f && ('INPUT' === f || 'TEXTAREA' === f || d.isContentEditable)) {
                  var g = a._keypressTimeout;
                  g || a._breadcrumbEventHandler('input') (c),
                  clearTimeout(g),
                  a._keypressTimeout = setTimeout(function () {
                    a._keypressTimeout = null
                  }, b)
                }
              }
            },
            _captureUrlChange: function (a, b) {
              var c = H(this._location.href),
              d = H(b),
              e = H(a);
              this._lastHref = b,
              c.protocol === d.protocol && c.host === d.host && (b = d.relative),
              c.protocol === e.protocol && c.host === e.host && (a = e.relative),
              this.captureBreadcrumb({
                category: 'navigation',
                data: {
                  to: b,
                  from: a
                }
              })
            },
            _patchFunctionToString: function () {
              var a = this;
              a._originalFunctionToString = Function.prototype.toString,
              Function.prototype.toString = function () {
                return 'function' == typeof this && this.__raven__ ? a._originalFunctionToString.apply(this.__orig__, arguments) : a._originalFunctionToString.apply(this, arguments)
              }
            },
            _unpatchFunctionToString: function () {
              this._originalFunctionToString && (Function.prototype.toString = this._originalFunctionToString)
            },
            _instrumentTryCatch: function () {
              function a(a) {
                return function (b, d) {
                  for (var e = new Array(arguments.length), f = 0; f < e.length; ++f) e[f] = arguments[f];
                  var g = e[0];
                  return s(g) && (e[0] = c.wrap({
                    mechanism: {
                      type: 'instrument',
                      data: {
                        'function': a.name || '<anonymous>'
                      }
                    }
                  }, g)),
                  a.apply ? a.apply(this, e) : a(e[0], e[1])
                }
              }
              function b(a) {
                var b = R[a] && R[a].prototype;
                b && b.hasOwnProperty && b.hasOwnProperty('addEventListener') && (I(b, 'addEventListener', function (b) {
                  return function (d, f, g, h) {
                    try {
                      f && f.handleEvent && (f.handleEvent = c.wrap({
                        mechanism: {
                          type: 'instrument',
                          data: {
                            target: a,
                            'function': 'handleEvent',
                            handler: f && f.name || '<anonymous>'
                          }
                        }
                      }, f.handleEvent))
                    } catch (i) {
                    }
                    var j,
                    k,
                    l;
                    return e && e.dom && ('EventTarget' === a || 'Node' === a) && (k = c._breadcrumbEventHandler('click'), l = c._keypressEventHandler(), j = function (a) {
                      if (a) {
                        var b;
                        try {
                          b = a.type
                        } catch (c) {
                          return
                        }
                        return 'click' === b ? k(a) : 'keypress' === b ? l(a) : void 0
                      }
                    }),
                    b.call(this, d, c.wrap({
                      mechanism: {
                        type: 'instrument',
                        data: {
                          target: a,
                          'function': 'addEventListener',
                          handler: f && f.name || '<anonymous>'
                        }
                      }
                    }, f, j), g, h)
                  }
                }, d), I(b, 'removeEventListener', function (a) {
                  return function (b, c, d, e) {
                    try {
                      c = c && (c.__raven_wrapper__ ? c.__raven_wrapper__ : c)
                    } catch (f) {
                    }
                    return a.call(this, b, c, d, e)
                  }
                }, d))
              }
              var c = this,
              d = c._wrappedBuiltIns,
              e = this._globalOptions.autoBreadcrumbs;
              I(R, 'setTimeout', a, d),
              I(R, 'setInterval', a, d),
              R.requestAnimationFrame && I(R, 'requestAnimationFrame', function (a) {
                return function (b) {
                  return a(c.wrap({
                    mechanism: {
                      type: 'instrument',
                      data: {
                        'function': 'requestAnimationFrame',
                        handler: a && a.name || '<anonymous>'
                      }
                    }
                  }, b))
                }
              }, d);
              for (var f = [
                'EventTarget',
                'Window',
                'Node',
                'ApplicationCache',
                'AudioTrackList',
                'ChannelMergerNode',
                'CryptoOperation',
                'EventSource',
                'FileReader',
                'HTMLUnknownElement',
                'IDBDatabase',
                'IDBRequest',
                'IDBTransaction',
                'KeyOperation',
                'MediaController',
                'MessagePort',
                'ModalWindow',
                'Notification',
                'SVGElementInstance',
                'Screen',
                'TextTrack',
                'TextTrackCue',
                'TextTrackList',
                'WebSocket',
                'WebSocketWorker',
                'Worker',
                'XMLHttpRequest',
                'XMLHttpRequestEventTarget',
                'XMLHttpRequestUpload'
              ], g = 0; g < f.length; g++) b(f[g])
            },
            _instrumentBreadcrumbs: function () {
              function a(a, c) {
                a in c && s(c[a]) && I(c, a, function (c) {
                  return b.wrap({
                    mechanism: {
                      type: 'instrument',
                      data: {
                        'function': a,
                        handler: c && c.name || '<anonymous>'
                      }
                    }
                  }, c)
                })
              }
              var b = this,
              c = this._globalOptions.autoBreadcrumbs,
              d = b._wrappedBuiltIns;
              if (c.xhr && 'XMLHttpRequest' in R) {
                var e = R.XMLHttpRequest && R.XMLHttpRequest.prototype;
                I(e, 'open', function (a) {
                  return function (c, d) {
                    return t(d) && d.indexOf(b._globalKey) === - 1 && (this.__raven_xhr = {
                      method: c,
                      url: d,
                      status_code: null
                    }),
                    a.apply(this, arguments)
                  }
                }, d),
                I(e, 'send', function (c) {
                  return function () {
                    function d() {
                      if (e.__raven_xhr && 4 === e.readyState) {
                        try {
                          e.__raven_xhr.status_code = e.status
                        } catch (a) {
                        }
                        b.captureBreadcrumb({
                          type: 'http',
                          category: 'xhr',
                          data: e.__raven_xhr
                        })
                      }
                    }
                    for (var e = this, f = [
                      'onload',
                      'onerror',
                      'onprogress'
                    ], g = 0; g < f.length; g++) a(f[g], e);
                    return 'onreadystatechange' in e && s(e.onreadystatechange) ? I(e, 'onreadystatechange', function (a) {
                      return b.wrap({
                        mechanism: {
                          type: 'instrument',
                          data: {
                            'function': 'onreadystatechange',
                            handler: a && a.name || '<anonymous>'
                          }
                        }
                      }, a, d)
                    }) : e.onreadystatechange = d,
                    c.apply(this, arguments)
                  }
                }, d)
              }
              c.xhr && J() && I(R, 'fetch', function (a) {
                return function () {
                  for (var c = new Array(arguments.length), d = 0; d < c.length; ++d) c[d] = arguments[d];
                  var e,
                  f = c[0],
                  g = 'GET';
                  if ('string' == typeof f ? e = f : 'Request' in R && f instanceof R.Request ? (e = f.url, f.method && (g = f.method)) : e = '' + f, e.indexOf(b._globalKey) !== - 1) return a.apply(this, c);
                  c[1] && c[1].method && (g = c[1].method);
                  var h = {
                    method: g,
                    url: e,
                    status_code: null
                  };
                  return a.apply(this, c).then(function (a) {
                    return h.status_code = a.status,
                    b.captureBreadcrumb({
                      type: 'http',
                      category: 'fetch',
                      data: h
                    }),
                    a
                  }) ['catch'](function (a) {
                    throw b.captureBreadcrumb({
                      type: 'http',
                      category: 'fetch',
                      data: h,
                      level: 'error'
                    }),
                    a
                  })
                }
              }, d),
              c.dom && this._hasDocument && (S.addEventListener ? (S.addEventListener('click', b._breadcrumbEventHandler('click'), !1), S.addEventListener('keypress', b._keypressEventHandler(), !1)) : S.attachEvent && (S.attachEvent('onclick', b._breadcrumbEventHandler('click')), S.attachEvent('onkeypress', b._keypressEventHandler())));
              var f = R.chrome,
              g = f && f.app && f.app.runtime,
              h = !g && R.history && R.history.pushState && R.history.replaceState;
              if (c.location && h) {
                var i = R.onpopstate;
                R.onpopstate = function () {
                  var a = b._location.href;
                  if (b._captureUrlChange(b._lastHref, a), i) return i.apply(this, arguments)
                };
                var j = function (a) {
                  return function () {
                    var c = arguments.length > 2 ? arguments[2] : void 0;
                    return c && b._captureUrlChange(b._lastHref, c + ''),
                    a.apply(this, arguments)
                  }
                };
                I(R.history, 'pushState', j, d),
                I(R.history, 'replaceState', j, d)
              }
              if (c.console && 'console' in R && console.log) {
                var k = function (a, c) {
                  b.captureBreadcrumb({
                    message: a,
                    level: c.level,
                    category: 'console'
                  })
                };
                w(['debug',
                'info',
                'warn',
                'error',
                'log'], function (a, b) {
                  O(console, b, k)
                })
              }
            },
            _restoreBuiltIns: function () {
              for (var a; this._wrappedBuiltIns.length; ) {
                a = this._wrappedBuiltIns.shift();
                var b = a[0],
                c = a[1],
                d = a[2];
                b[c] = d
              }
            },
            _restoreConsole: function () {
              for (var a in this._originalConsoleMethods) this._originalConsole[a] = this._originalConsoleMethods[a]
            },
            _drainPlugins: function () {
              var a = this;
              w(this._plugins, function (b, c) {
                var d = c[0],
                e = c[1];
                d.apply(a, [
                  a
                ].concat(e))
              })
            },
            _parseDSN: function (a) {
              var b = Q.exec(a),
              c = {
              },
              d = 7;
              try {
                for (; d--; ) c[P[d]] = b[d] || ''
              } catch (e) {
                throw new j('Invalid DSN: ' + a)
              }
              if (c.pass && !this._globalOptions.allowSecretKey) throw new j('Do not specify your secret key in the DSN. See: http://bit.ly/raven-secret-key');
              return c
            },
            _getGlobalServer: function (a) {
              var b = '//' + a.host + (a.port ? ':' + a.port : '');
              return a.protocol && (b = a.protocol + ':' + b),
              b
            },
            _handleOnErrorStackInfo: function (a, b) {
              b = b || {
              },
              b.mechanism = b.mechanism || {
                type: 'onerror',
                handled: !1
              },
              this._ignoreOnError || this._handleStackInfo(a, b)
            },
            _handleStackInfo: function (a, b) {
              var c = this._prepareFrames(a, b);
              this._triggerEvent('handle', {
                stackInfo: a,
                options: b
              }),
              this._processException(a.name, a.message, a.url, a.lineno, c, b)
            },
            _prepareFrames: function (a, b) {
              var c = this,
              d = [
              ];
              if (a.stack && a.stack.length && (w(a.stack, function (b, e) {
                var f = c._normalizeFrame(e, a.url);
                f && d.push(f)
              }), b && b.trimHeadFrames)) for (var e = 0; e < b.trimHeadFrames && e < d.length; e++) d[e].in_app = !1;
              return d = d.slice(0, this._globalOptions.stackTraceLimit)
            },
            _normalizeFrame: function (a, b) {
              var c = {
                filename: a.url,
                lineno: a.line,
                colno: a.column,
                'function': a.func || '?'
              };
              return a.url || (c.filename = b),
              c.in_app = !(this._globalOptions.includePaths.test && !this._globalOptions.includePaths.test(c.filename) || /(Raven|TraceKit)\./.test(c['function']) || /raven\.(min\.)?js$/.test(c.filename)),
              c
            },
            _processException: function (a, b, c, d, e, f) {
              var g = (a ? a + ': ' : '') + (b || '');
              if (!this._globalOptions.ignoreErrors.test || !this._globalOptions.ignoreErrors.test(b) && !this._globalOptions.ignoreErrors.test(g)) {
                var h;
                if (e && e.length ? (c = e[0].filename || c, e.reverse(), h = {
                  frames: e
                }) : c && (h = {
                  frames: [
                    {
                      filename: c,
                      lineno: d,
                      in_app: !0
                    }
                  ]
                }), (!this._globalOptions.ignoreUrls.test || !this._globalOptions.ignoreUrls.test(c)) && (!this._globalOptions.whitelistUrls.test || this._globalOptions.whitelistUrls.test(c))) {
                  var i = x({
                    exception: {
                      values: [
                        {
                          type: a,
                          value: b,
                          stacktrace: h
                        }
                      ]
                    },
                    transaction: c
                  }, f),
                  j = i.exception.values[0];
                  null == j.type && '' === j.value && (j.value = 'Unrecoverable error caught'),
                  !i.exception.mechanism && i.mechanism && (i.exception.mechanism = i.mechanism, delete i.mechanism),
                  i.exception.mechanism = x({
                    type: 'generic',
                    handled: !0
                  }, i.exception.mechanism || {
                  }),
                  this._send(i)
                }
              }
            },
            _trimPacket: function (a) {
              var b = this._globalOptions.maxMessageLength;
              if (a.message && (a.message = y(a.message, b)), a.exception) {
                var c = a.exception.values[0];
                c.value = y(c.value, b)
              }
              var d = a.request;
              return d && (d.url && (d.url = y(d.url, this._globalOptions.maxUrlLength)), d.Referer && (d.Referer = y(d.Referer, this._globalOptions.maxUrlLength))),
              a.breadcrumbs && a.breadcrumbs.values && this._trimBreadcrumbs(a.breadcrumbs),
              a
            },
            _trimBreadcrumbs: function (a) {
              for (var b, c, d, e = [
                'to',
                'from',
                'url'
              ], f = 0; f < a.values.length; ++f) if (c = a.values[f], c.hasOwnProperty('data') && p(c.data) && !z(c.data)) {
                d = x({
                }, c.data);
                for (var g = 0; g < e.length; ++g) b = e[g],
                d.hasOwnProperty(b) && d[b] && (d[b] = y(d[b], this._globalOptions.maxUrlLength));
                a.values[f].data = d
              }
            },
            _getHttpData: function () {
              if (this._hasNavigator || this._hasDocument) {
                var a = {
                };
                return this._hasNavigator && T.userAgent && (a.headers = {
                  'User-Agent': T.userAgent
                }),
                R.location && R.location.href && (a.url = R.location.href),
                this._hasDocument && S.referrer && (a.headers || (a.headers = {
                }), a.headers.Referer = S.referrer),
                a
              }
            },
            _resetBackoff: function () {
              this._backoffDuration = 0,
              this._backoffStart = null
            },
            _shouldBackoff: function () {
              return this._backoffDuration && d() - this._backoffStart < this._backoffDuration
            },
            _isRepeatData: function (a) {
              var b = this._lastData;
              return !(!b || a.message !== b.message || a.transaction !== b.transaction) && (a.stacktrace || b.stacktrace ? G(a.stacktrace, b.stacktrace) : !a.exception && !b.exception || F(a.exception, b.exception))
            },
            _setBackoffState: function (a) {
              if (!this._shouldBackoff()) {
                var b = a.status;
                if (400 === b || 401 === b || 429 === b) {
                  var c;
                  try {
                    c = J() ? a.headers.get('Retry-After') : a.getResponseHeader('Retry-After'),
                    c = 1000 * parseInt(c, 10)
                  } catch (e) {
                  }
                  this._backoffDuration = c ? c : 2 * this._backoffDuration || 1000,
                  this._backoffStart = d()
                }
              }
            },
            _send: function (a) {
              var b = this._globalOptions,
              c = {
                project: this._globalProject,
                logger: b.logger,
                platform: 'javascript'
              },
              e = this._getHttpData();
              if (e && (c.request = e), a.trimHeadFrames && delete a.trimHeadFrames, a = x(c, a), a.tags = x(x({
              }, this._globalContext.tags), a.tags), a.extra = x(x({
              }, this._globalContext.extra), a.extra), a.extra['session:duration'] = d() - this._startTime, this._breadcrumbs && this._breadcrumbs.length > 0 && (a.breadcrumbs = {
                values: [
                ].slice.call(this._breadcrumbs, 0)
              }), this._globalContext.user && (a.user = this._globalContext.user), b.environment && (a.environment = b.environment), b.release && (a.release = b.release), b.serverName && (a.server_name = b.serverName), a = this._sanitizeData(a), Object.keys(a).forEach(function (b) {
                (null == a[b] || '' === a[b] || v(a[b])) && delete a[b]
              }), s(b.dataCallback) && (a = b.dataCallback(a) || a), a && !v(a) && (!s(b.shouldSendCallback) || b.shouldSendCallback(a))) return this._shouldBackoff() ? void this._logDebug('warn', 'Raven dropped error due to backoff: ', a) : void ('number' == typeof b.sampleRate ? Math.random() < b.sampleRate && this._sendProcessedPayload(a) : this._sendProcessedPayload(a))
            },
            _sanitizeData: function (a) {
              return N(a, this._globalOptions.sanitizeKeys)
            },
            _getUuid: function () {
              return D()
            },
            _sendProcessedPayload: function (a, b) {
              var c = this,
              d = this._globalOptions;
              if (this.isSetup()) {
                if (a = this._trimPacket(a), !this._globalOptions.allowDuplicates && this._isRepeatData(a)) return void this._logDebug('warn', 'Raven dropped repeat event: ', a);
                this._lastEventId = a.event_id || (a.event_id = this._getUuid()),
                this._lastData = a,
                this._logDebug('debug', 'Raven about to send:', a);
                var e = {
                  sentry_version: '7',
                  sentry_client: 'raven-js/' + this.VERSION,
                  sentry_key: this._globalKey
                };
                this._globalSecret && (e.sentry_secret = this._globalSecret);
                var f = a.exception && a.exception.values[0];
                this._globalOptions.autoBreadcrumbs && this._globalOptions.autoBreadcrumbs.sentry && this.captureBreadcrumb({
                  category: 'sentry',
                  message: f ? (f.type ? f.type + ': ' : '') + f.value : a.message,
                  event_id: a.event_id,
                  level: a.level || 'error'
                });
                var g = this._globalEndpoint;
                (d.transport || this._makeRequest).call(this, {
                  url: g,
                  auth: e,
                  data: a,
                  options: d,
                  onSuccess: function () {
                    c._resetBackoff(),
                    c._triggerEvent('success', {
                      data: a,
                      src: g
                    }),
                    b && b()
                  },
                  onError: function (d) {
                    c._logDebug('error', 'Raven transport failed to send: ', d),
                    d.request && c._setBackoffState(d.request),
                    c._triggerEvent('failure', {
                      data: a,
                      src: g
                    }),
                    d = d || new Error('Raven send failed (no additional details provided)'),
                    b && b(d)
                  }
                })
              }
            },
            _makeRequest: function (a) {
              var b = a.url + '?' + C(a.auth),
              c = null,
              d = {
              };
              if (a.options.headers && (c = this._evaluateHash(a.options.headers)), a.options.fetchParameters && (d = this._evaluateHash(a.options.fetchParameters)), J()) {
                d.body = h(a.data);
                var e = x({
                }, this._fetchDefaults),
                f = x(e, d);
                return c && (f.headers = c),
                R.fetch(b, f).then(function (b) {
                  if (b.ok) a.onSuccess && a.onSuccess();
                   else {
                    var c = new Error('Sentry error code: ' + b.status);
                    c.request = b,
                    a.onError && a.onError(c)
                  }
                }) ['catch'](function () {
                  a.onError && a.onError(new Error('Sentry error code: network unavailable'))
                })
              }
              var g = R.XMLHttpRequest && new R.XMLHttpRequest;
              if (g) {
                var i = 'withCredentials' in g || 'undefined' != typeof XDomainRequest;
                i && ('withCredentials' in g ? g.onreadystatechange = function () {
                  if (4 === g.readyState) if (200 === g.status) a.onSuccess && a.onSuccess();
                   else if (a.onError) {
                    var b = new Error('Sentry error code: ' + g.status);
                    b.request = g,
                    a.onError(b)
                  }
                }
                 : (g = new XDomainRequest, b = b.replace(/^https?:/, ''), a.onSuccess && (g.onload = a.onSuccess), a.onError && (g.onerror = function () {
                  var b = new Error('Sentry error code: XDomainRequest');
                  b.request = g,
                  a.onError(b)
                })), g.open('POST', b), c && w(c, function (a, b) {
                  g.setRequestHeader(a, b)
                }), g.send(h(a.data)))
              }
            },
            _evaluateHash: function (a) {
              var b = {
              };
              for (var c in a) if (a.hasOwnProperty(c)) {
                var d = a[c];
                b[c] = 'function' == typeof d ? d() : d
              }
              return b
            },
            _logDebug: function (a) {
              this._originalConsoleMethods[a] && (this.debug || this._globalOptions.debug) && Function.prototype.apply.call(this._originalConsoleMethods[a], this._originalConsole, [
              ].slice.call(arguments, 1))
            },
            _mergeContext: function (a, b) {
              r(b) ? delete this._globalContext[a] : this._globalContext[a] = x(this._globalContext[a] || {
              }, b)
            }
          },
          f.prototype.setUser = f.prototype.setUserContext,
          f.prototype.setReleaseContext = f.prototype.setRelease,
          b.exports = f
        }).call(this, 'undefined' != typeof global ? global : 'undefined' != typeof self ? self : 'undefined' != typeof window ? window : {
        })
      },
      {
        1: 1,
        2: 2,
        5: 5,
        6: 6,
        7: 7,
        8: 8
      }
    ],
    4: [
      function (a, b, c) {
        (function (c) {
          var d = a(3),
          e = 'undefined' != typeof window ? window : 'undefined' != typeof c ? c : 'undefined' != typeof self ? self : {
          },
          f = e.Raven,
          g = new d;
          g.noConflict = function () {
            return e.Raven = f,
            g
          },
          g.afterLoad(),
          b.exports = g,
          b.exports.Client = d
        }).call(this, 'undefined' != typeof global ? global : 'undefined' != typeof self ? self : 'undefined' != typeof window ? window : {
        })
      },
      {
        3: 3
      }
    ],
    5: [
      function (a, b, c) {
        (function (c) {
          function d(a) {
            return 'object' == typeof a && null !== a
          }
          function e(a) {
            switch (Object.prototype.toString.call(a)) {
              case '[object Error]':
                return !0;
              case '[object Exception]':
                return !0;
              case '[object DOMException]':
                return !0;
              default:
                return a instanceof Error
            }
          }
          function f(a) {
            return '[object ErrorEvent]' === Object.prototype.toString.call(a)
          }
          function g(a) {
            return '[object DOMError]' === Object.prototype.toString.call(a)
          }
          function h(a) {
            return '[object DOMException]' === Object.prototype.toString.call(a)
          }
          function i(a) {
            return void 0 === a
          }
          function j(a) {
            return 'function' == typeof a
          }
          function k(a) {
            return '[object Object]' === Object.prototype.toString.call(a)
          }
          function l(a) {
            return '[object String]' === Object.prototype.toString.call(a)
          }
          function m(a) {
            return '[object Array]' === Object.prototype.toString.call(a)
          }
          function n(a) {
            if (!k(a)) return !1;
            for (var b in a) if (a.hasOwnProperty(b)) return !1;
            return !0
          }
          function o() {
            try {
              return new ErrorEvent(''),
              !0
            } catch (a) {
              return !1
            }
          }
          function p() {
            try {
              return new DOMError(''),
              !0
            } catch (a) {
              return !1
            }
          }
          function q() {
            try {
              return new DOMException(''),
              !0
            } catch (a) {
              return !1
            }
          }
          function r() {
            if (!('fetch' in U)) return !1;
            try {
              return new Headers,
              new Request(''),
              new Response,
              !0
            } catch (a) {
              return !1
            }
          }
          function s() {
            if (!r()) return !1;
            try {
              return new Request('pickleRick', {
                referrerPolicy: 'origin'
              }),
              !0
            } catch (a) {
              return !1
            }
          }
          function t() {
            return 'function' == typeof PromiseRejectionEvent
          }
          function u(a) {
            function b(b, c) {
              var d = a(b) || b;
              return c ? c(d) || d : d
            }
            return b
          }
          function v(a, b) {
            var c,
            d;
            if (i(a.length)) for (c in a) z(a, c) && b.call(null, c, a[c]);
             else if (d = a.length) for (c = 0; c < d; c++) b.call(null, c, a[c])
          }
          function w(a, b) {
            return b ? (v(b, function (b, c) {
              a[b] = c
            }), a) : a
          }
          function x(a) {
            return !!Object.isFrozen && Object.isFrozen(a)
          }
          function y(a, b) {
            if ('number' != typeof b) throw new Error('2nd argument to `truncate` function should be a number');
            return 'string' != typeof a || 0 === b ? a : a.length <= b ? a : a.substr(0, b) + '…'
          }
          function z(a, b) {
            return Object.prototype.hasOwnProperty.call(a, b)
          }
          function A(a) {
            for (var b, c = [
            ], d = 0, e = a.length; d < e; d++) b = a[d],
            l(b) ? c.push(b.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1')) : b && b.source && c.push(b.source);
            return new RegExp(c.join('|'), 'i')
          }
          function B(a) {
            var b = [
            ];
            return v(a, function (a, c) {
              b.push(encodeURIComponent(a) + '=' + encodeURIComponent(c))
            }),
            b.join('&')
          }
          function C(a) {
            if ('string' != typeof a) return {
            };
            var b = a.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/),
            c = b[6] || '',
            d = b[8] || '';
            return {
              protocol: b[2],
              host: b[4],
              path: b[5],
              relative: b[5] + c + d
            }
          }
          function D() {
            var a = U.crypto || U.msCrypto;
            if (!i(a) && a.getRandomValues) {
              var b = new Uint16Array(8);
              a.getRandomValues(b),
              b[3] = 4095 & b[3] | 16384,
              b[4] = 16383 & b[4] | 32768;
              var c = function (a) {
                for (var b = a.toString(16); b.length < 4; ) b = '0' + b;
                return b
              };
              return c(b[0]) + c(b[1]) + c(b[2]) + c(b[3]) + c(b[4]) + c(b[5]) + c(b[6]) + c(b[7])
            }
            return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (a) {
              var b = 16 * Math.random() | 0,
              c = 'x' === a ? b : 3 & b | 8;
              return c.toString(16)
            })
          }
          function E(a) {
            for (var b, c = 5, d = 80, e = [
            ], f = 0, g = 0, h = ' > ', i = h.length; a && f++ < c && (b = F(a), !('html' === b || f > 1 && g + e.length * i + b.length >= d)); ) e.push(b),
            g += b.length,
            a = a.parentNode;
            return e.reverse().join(h)
          }
          function F(a) {
            var b,
            c,
            d,
            e,
            f,
            g = [
            ];
            if (!a || !a.tagName) return '';
            if (g.push(a.tagName.toLowerCase()), a.id && g.push('#' + a.id), b = a.className, b && l(b)) for (c = b.split(/\s+/), f = 0; f < c.length; f++) g.push('.' + c[f]);
            var h = [
              'type',
              'name',
              'title',
              'alt'
            ];
            for (f = 0; f < h.length; f++) d = h[f],
            e = a.getAttribute(d),
            e && g.push('[' + d + '="' + e + '"]');
            return g.join('')
          }
          function G(a, b) {
            return !!(!!a ^ !!b)
          }
          function H(a, b) {
            return i(a) && i(b)
          }
          function I(a, b) {
            return !G(a, b) && (a = a.values[0], b = b.values[0], a.type === b.type && a.value === b.value && (!H(a.stacktrace, b.stacktrace) && J(a.stacktrace, b.stacktrace)))
          }
          function J(a, b) {
            if (G(a, b)) return !1;
            var c = a.frames,
            d = b.frames;
            if (void 0 === c || void 0 === d) return !1;
            if (c.length !== d.length) return !1;
            for (var e, f, g = 0; g < c.length; g++) if (e = c[g], f = d[g], e.filename !== f.filename || e.lineno !== f.lineno || e.colno !== f.colno || e['function'] !== f['function']) return !1;
            return !0
          }
          function K(a, b, c, d) {
            if (null != a) {
              var e = a[b];
              a[b] = c(e),
              a[b].__raven__ = !0,
              a[b].__orig__ = e,
              d && d.push([a,
              b,
              e])
            }
          }
          function L(a, b) {
            if (!m(a)) return '';
            for (var c = [
            ], d = 0; d < a.length; d++) try {
              c.push(String(a[d]))
            } catch (e) {
              c.push('[value cannot be serialized]')
            }
            return c.join(b)
          }
          function M(a) {
            return ~ - encodeURI(a).split(/%..|./).length
          }
          function N(a) {
            return M(JSON.stringify(a))
          }
          function O(a) {
            if ('string' == typeof a) {
              var b = 40;
              return y(a, b)
            }
            if ('number' == typeof a || 'boolean' == typeof a || 'undefined' == typeof a) return a;
            var c = Object.prototype.toString.call(a);
            return '[object Object]' === c ? '[Object]' : '[object Array]' === c ? '[Array]' : '[object Function]' === c ? a.name ? '[Function: ' + a.name + ']' : '[Function]' : a
          }
          function P(a, b) {
            return 0 === b ? O(a) : k(a) ? Object.keys(a).reduce(function (c, d) {
              return c[d] = P(a[d], b - 1),
              c
            }, {
            }) : Array.isArray(a) ? a.map(function (a) {
              return P(a, b - 1)
            }) : O(a)
          }
          function Q(a, b, c) {
            if (!k(a)) return a;
            b = 'number' != typeof b ? V : b,
            c = 'number' != typeof b ? W : c;
            var d = P(a, b);
            return N(T(d)) > c ? Q(a, b - 1) : d
          }
          function R(a, b) {
            if ('number' == typeof a || 'string' == typeof a) return a.toString();
            if (!Array.isArray(a)) return '';
            if (a = a.filter(function (a) {
              return 'string' == typeof a
            }), 0 === a.length) return '[object has no keys]';
            if (b = 'number' != typeof b ? X : b, a[0].length >= b) return a[0];
            for (var c = a.length; c > 0; c--) {
              var d = a.slice(0, c).join(', ');
              if (!(d.length > b)) return c === a.length ? d : d + '…'
            }
            return ''
          }
          function S(a, b) {
            function c(a) {
              return m(a) ? a.map(function (a) {
                return c(a)
              }) : k(a) ? Object.keys(a).reduce(function (b, d) {
                return e.test(d) ? b[d] = f : b[d] = c(a[d]),
                b
              }, {
              }) : a
            }
            if (!m(b) || m(b) && 0 === b.length) return a;
            var d,
            e = A(b),
            f = '********';
            try {
              d = JSON.parse(T(a))
            } catch (g) {
              return a
            }
            return c(d)
          }
          var T = a(7),
          U = 'undefined' != typeof window ? window : 'undefined' != typeof c ? c : 'undefined' != typeof self ? self : {
          },
          V = 3,
          W = 51200,
          X = 40;
          b.exports = {
            isObject: d,
            isError: e,
            isErrorEvent: f,
            isDOMError: g,
            isDOMException: h,
            isUndefined: i,
            isFunction: j,
            isPlainObject: k,
            isString: l,
            isArray: m,
            isEmptyObject: n,
            supportsErrorEvent: o,
            supportsDOMError: p,
            supportsDOMException: q,
            supportsFetch: r,
            supportsReferrerPolicy: s,
            supportsPromiseRejectionEvent: t,
            wrappedCallback: u,
            each: v,
            objectMerge: w,
            truncate: y,
            objectFrozen: x,
            hasKey: z,
            joinRegExp: A,
            urlencode: B,
            uuid4: D,
            htmlTreeAsString: E,
            htmlElementAsString: F,
            isSameException: I,
            isSameStacktrace: J,
            parseUrl: C,
            fill: K,
            safeJoin: L,
            serializeException: Q,
            serializeKeysForMessage: R,
            sanitize: S
          }
        }).call(this, 'undefined' != typeof global ? global : 'undefined' != typeof self ? self : 'undefined' != typeof window ? window : {
        })
      },
      {
        7: 7
      }
    ],
    6: [
      function (a, b, c) {
        (function (c) {
          function d() {
            return 'undefined' == typeof document || null == document.location ? '' : document.location.href
          }
          function e() {
            return 'undefined' == typeof document || null == document.location ? '' : document.location.origin ? document.location.origin : document.location.protocol + '//' + document.location.hostname + (document.location.port ? ':' + document.location.port : '')
          }
          var f = a(5),
          g = {
            collectWindowErrors: !0,
            debug: !1
          },
          h = 'undefined' != typeof window ? window : 'undefined' != typeof c ? c : 'undefined' != typeof self ? self : {
          },
          i = [
          ].slice,
          j = '?',
          k = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/;
          g.report = function () {
            function a(a) {
              m(),
              s.push(a)
            }
            function b(a) {
              for (var b = s.length - 1; b >= 0; --b) s[b] === a && s.splice(b, 1)
            }
            function c() {
              n(),
              s = [
              ]
            }
            function e(a, b) {
              var c = null;
              if (!b || g.collectWindowErrors) {
                for (var d in s) if (s.hasOwnProperty(d)) try {
                  s[d].apply(null, [
                    a
                  ].concat(i.call(arguments, 2)))
                } catch (e) {
                  c = e
                }
                if (c) throw c
              }
            }
            function l(a, b, c, h, i) {
              var l = null,
              m = f.isErrorEvent(i) ? i.error : i,
              n = f.isErrorEvent(a) ? a.message : a;
              if (v) g.computeStackTrace.augmentStackTraceWithInitialElement(v, b, c, n),
              o();
               else if (m && f.isError(m)) l = g.computeStackTrace(m),
              e(l, !0);
               else {
                var p,
                r = {
                  url: b,
                  line: c,
                  column: h
                },
                s = void 0;
                if ('[object String]' === {
                }.toString.call(n)) {
                  var p = n.match(k);
                  p && (s = p[1], n = p[2])
                }
                r.func = j,
                l = {
                  name: s,
                  message: n,
                  url: d(),
                  stack: [
                    r
                  ]
                },
                e(l, !0)
              }
              return !!q && q.apply(this, arguments)
            }
            function m() {
              r || (q = h.onerror, h.onerror = l, r = !0)
            }
            function n() {
              r && (h.onerror = q, r = !1, q = void 0)
            }
            function o() {
              var a = v,
              b = t;
              t = null,
              v = null,
              u = null,
              e.apply(null, [
                a,
                !1
              ].concat(b))
            }
            function p(a, b) {
              var c = i.call(arguments, 1);
              if (v) {
                if (u === a) return;
                o()
              }
              var d = g.computeStackTrace(a);
              if (v = d, u = a, t = c, setTimeout(function () {
                u === a && o()
              }, d.incomplete ? 2000 : 0), b !== !1) throw a
            }
            var q,
            r,
            s = [
            ],
            t = null,
            u = null,
            v = null;
            return p.subscribe = a,
            p.unsubscribe = b,
            p.uninstall = c,
            p
          }(),
          g.computeStackTrace = function () {
            function a(a) {
              if ('undefined' != typeof a.stack && a.stack) {
                for (var b, c, f, g = /^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|[a-z]:|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i, h = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx(?:-web)|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i, i = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\/.*?|\[native code\]|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i, k = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i, l = /\((\S*)(?::(\d+))(?::(\d+))\)/, m = a.stack.split('\n'), n = [
                ], o = (/^(.*) is undefined$/.exec(a.message), 0), p = m.length; o < p; ++o) {
                  if (c = g.exec(m[o])) {
                    var q = c[2] && 0 === c[2].indexOf('native'),
                    r = c[2] && 0 === c[2].indexOf('eval');
                    r && (b = l.exec(c[2])) && (c[2] = b[1], c[3] = b[2], c[4] = b[3]),
                    f = {
                      url: q ? null : c[2],
                      func: c[1] || j,
                      args: q ? [
                        c[2]
                      ] : [
                      ],
                      line: c[3] ? + c[3] : null,
                      column: c[4] ? + c[4] : null
                    }
                  } else if (c = h.exec(m[o])) f = {
                    url: c[2],
                    func: c[1] || j,
                    args: [
                    ],
                    line: + c[3],
                    column: c[4] ? + c[4] : null
                  };
                   else {
                    if (!(c = i.exec(m[o]))) continue;
                    var r = c[3] && c[3].indexOf(' > eval') > - 1;
                    r && (b = k.exec(c[3])) ? (c[3] = b[1], c[4] = b[2], c[5] = null) : 0 !== o || c[5] || 'undefined' == typeof a.columnNumber || (n[0].column = a.columnNumber + 1),
                    f = {
                      url: c[3],
                      func: c[1] || j,
                      args: c[2] ? c[2].split(',') : [
                      ],
                      line: c[4] ? + c[4] : null,
                      column: c[5] ? + c[5] : null
                    }
                  }
                  if (!f.func && f.line && (f.func = j), f.url && 'blob:' === f.url.substr(0, 5)) {
                    var s = new XMLHttpRequest;
                    if (s.open('GET', f.url, !1), s.send(null), 200 === s.status) {
                      var t = s.responseText || '';
                      t = t.slice( - 300);
                      var u = t.match(/\/\/# sourceMappingURL=(.*)$/);
                      if (u) {
                        var v = u[1];
                        '~' === v.charAt(0) && (v = e() + v.slice(1)),
                        f.url = v.slice(0, - 4)
                      }
                    }
                  }
                  n.push(f)
                }
                return n.length ? {
                  name: a.name,
                  message: a.message,
                  url: d(),
                  stack: n
                }
                 : null
              }
            }
            function b(a, b, c, d) {
              var e = {
                url: b,
                line: c
              };
              if (e.url && e.line) {
                if (a.incomplete = !1, e.func || (e.func = j), a.stack.length > 0 && a.stack[0].url === e.url) {
                  if (a.stack[0].line === e.line) return !1;
                  if (!a.stack[0].line && a.stack[0].func === e.func) return a.stack[0].line = e.line,
                  !1
                }
                return a.stack.unshift(e),
                a.partial = !0,
                !0
              }
              return a.incomplete = !0,
              !1
            }
            function c(a, e) {
              for (var h, i, k = /function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i, l = [
              ], m = {
              }, n = !1, o = c.caller; o && !n; o = o.caller) if (o !== f && o !== g.report) {
                if (i = {
                  url: null,
                  func: j,
                  line: null,
                  column: null
                }, o.name ? i.func = o.name : (h = k.exec(o.toString())) && (i.func = h[1]), 'undefined' == typeof i.func) try {
                  i.func = h.input.substring(0, h.input.indexOf('{'))
                } catch (p) {
                }
                m['' + o] ? n = !0 : m['' + o] = !0,
                l.push(i)
              }
              e && l.splice(0, e);
              var q = {
                name: a.name,
                message: a.message,
                url: d(),
                stack: l
              };
              return b(q, a.sourceURL || a.fileName, a.line || a.lineNumber, a.message || a.description),
              q
            }
            function f(b, e) {
              var f = null;
              e = null == e ? 0 : + e;
              try {
                if (f = a(b)) return f
              } catch (h) {
                if (g.debug) throw h
              }
              try {
                if (f = c(b, e + 1)) return f
              } catch (h) {
                if (g.debug) throw h
              }
              return {
                name: b.name,
                message: b.message,
                url: d()
              }
            }
            return f.augmentStackTraceWithInitialElement = b,
            f.computeStackTraceFromStackProp = a,
            f
          }(),
          b.exports = g
        }).call(this, 'undefined' != typeof global ? global : 'undefined' != typeof self ? self : 'undefined' != typeof window ? window : {
        })
      },
      {
        5: 5
      }
    ],
    7: [
      function (a, b, c) {
        function d(a, b) {
          for (var c = 0; c < a.length; ++c) if (a[c] === b) return c;
          return - 1
        }
        function e(a, b, c, d) {
          return JSON.stringify(a, g(b, d), c)
        }
        function f(a) {
          var b = {
            stack: a.stack,
            message: a.message,
            name: a.name
          };
          for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]);
          return b
        }
        function g(a, b) {
          var c = [
          ],
          e = [
          ];
          return null == b && (b = function (a, b) {
            return c[0] === b ? '[Circular ~]' : '[Circular ~.' + e.slice(0, d(c, b)).join('.') + ']'
          }),
          function (g, h) {
            if (c.length > 0) {
              var i = d(c, this);
              ~i ? c.splice(i + 1) : c.push(this),
              ~i ? e.splice(i, 1 / 0, g) : e.push(g),
              ~d(c, h) && (h = b.call(this, g, h))
            } else c.push(h);
            return null == a ? h instanceof Error ? f(h) : h : a.call(this, g, h)
          }
        }
        c = b.exports = e,
        c.getSerialize = g
      },
      {
      }
    ],
    8: [
      function (a, b, c) {
        function d(a, b) {
          var c = (65535 & a) + (65535 & b),
          d = (a >> 16) + (b >> 16) + (c >> 16);
          return d << 16 | 65535 & c
        }
        function e(a, b) {
          return a << b | a >>> 32 - b
        }
        function f(a, b, c, f, g, h) {
          return d(e(d(d(b, a), d(f, h)), g), c)
        }
        function g(a, b, c, d, e, g, h) {
          return f(b & c | ~b & d, a, b, e, g, h)
        }
        function h(a, b, c, d, e, g, h) {
          return f(b & d | c & ~d, a, b, e, g, h)
        }
        function i(a, b, c, d, e, g, h) {
          return f(b ^ c ^ d, a, b, e, g, h)
        }
        function j(a, b, c, d, e, g, h) {
          return f(c ^ (b | ~d), a, b, e, g, h)
        }
        function k(a, b) {
          a[b >> 5] |= 128 << b % 32,
          a[(b + 64 >>> 9 << 4) + 14] = b;
          var c,
          e,
          f,
          k,
          l,
          m = 1732584193,
          n = - 271733879,
          o = - 1732584194,
          p = 271733878;
          for (c = 0; c < a.length; c += 16) e = m,
          f = n,
          k = o,
          l = p,
          m = g(m, n, o, p, a[c], 7, - 680876936),
          p = g(p, m, n, o, a[c + 1], 12, - 389564586),
          o = g(o, p, m, n, a[c + 2], 17, 606105819),
          n = g(n, o, p, m, a[c + 3], 22, - 1044525330),
          m = g(m, n, o, p, a[c + 4], 7, - 176418897),
          p = g(p, m, n, o, a[c + 5], 12, 1200080426),
          o = g(o, p, m, n, a[c + 6], 17, - 1473231341),
          n = g(n, o, p, m, a[c + 7], 22, - 45705983),
          m = g(m, n, o, p, a[c + 8], 7, 1770035416),
          p = g(p, m, n, o, a[c + 9], 12, - 1958414417),
          o = g(o, p, m, n, a[c + 10], 17, - 42063),
          n = g(n, o, p, m, a[c + 11], 22, - 1990404162),
          m = g(m, n, o, p, a[c + 12], 7, 1804603682),
          p = g(p, m, n, o, a[c + 13], 12, - 40341101),
          o = g(o, p, m, n, a[c + 14], 17, - 1502002290),
          n = g(n, o, p, m, a[c + 15], 22, 1236535329),
          m = h(m, n, o, p, a[c + 1], 5, - 165796510),
          p = h(p, m, n, o, a[c + 6], 9, - 1069501632),
          o = h(o, p, m, n, a[c + 11], 14, 643717713),
          n = h(n, o, p, m, a[c], 20, - 373897302),
          m = h(m, n, o, p, a[c + 5], 5, - 701558691),
          p = h(p, m, n, o, a[c + 10], 9, 38016083),
          o = h(o, p, m, n, a[c + 15], 14, - 660478335),
          n = h(n, o, p, m, a[c + 4], 20, - 405537848),
          m = h(m, n, o, p, a[c + 9], 5, 568446438),
          p = h(p, m, n, o, a[c + 14], 9, - 1019803690),
          o = h(o, p, m, n, a[c + 3], 14, - 187363961),
          n = h(n, o, p, m, a[c + 8], 20, 1163531501),
          m = h(m, n, o, p, a[c + 13], 5, - 1444681467),
          p = h(p, m, n, o, a[c + 2], 9, - 51403784),
          o = h(o, p, m, n, a[c + 7], 14, 1735328473),
          n = h(n, o, p, m, a[c + 12], 20, - 1926607734),
          m = i(m, n, o, p, a[c + 5], 4, - 378558),
          p = i(p, m, n, o, a[c + 8], 11, - 2022574463),
          o = i(o, p, m, n, a[c + 11], 16, 1839030562),
          n = i(n, o, p, m, a[c + 14], 23, - 35309556),
          m = i(m, n, o, p, a[c + 1], 4, - 1530992060),
          p = i(p, m, n, o, a[c + 4], 11, 1272893353),
          o = i(o, p, m, n, a[c + 7], 16, - 155497632),
          n = i(n, o, p, m, a[c + 10], 23, - 1094730640),
          m = i(m, n, o, p, a[c + 13], 4, 681279174),
          p = i(p, m, n, o, a[c], 11, - 358537222),
          o = i(o, p, m, n, a[c + 3], 16, - 722521979),
          n = i(n, o, p, m, a[c + 6], 23, 76029189),
          m = i(m, n, o, p, a[c + 9], 4, - 640364487),
          p = i(p, m, n, o, a[c + 12], 11, - 421815835),
          o = i(o, p, m, n, a[c + 15], 16, 530742520),
          n = i(n, o, p, m, a[c + 2], 23, - 995338651),
          m = j(m, n, o, p, a[c], 6, - 198630844),
          p = j(p, m, n, o, a[c + 7], 10, 1126891415),
          o = j(o, p, m, n, a[c + 14], 15, - 1416354905),
          n = j(n, o, p, m, a[c + 5], 21, - 57434055),
          m = j(m, n, o, p, a[c + 12], 6, 1700485571),
          p = j(p, m, n, o, a[c + 3], 10, - 1894986606),
          o = j(o, p, m, n, a[c + 10], 15, - 1051523),
          n = j(n, o, p, m, a[c + 1], 21, - 2054922799),
          m = j(m, n, o, p, a[c + 8], 6, 1873313359),
          p = j(p, m, n, o, a[c + 15], 10, - 30611744),
          o = j(o, p, m, n, a[c + 6], 15, - 1560198380),
          n = j(n, o, p, m, a[c + 13], 21, 1309151649),
          m = j(m, n, o, p, a[c + 4], 6, - 145523070),
          p = j(p, m, n, o, a[c + 11], 10, - 1120210379),
          o = j(o, p, m, n, a[c + 2], 15, 718787259),
          n = j(n, o, p, m, a[c + 9], 21, - 343485551),
          m = d(m, e),
          n = d(n, f),
          o = d(o, k),
          p = d(p, l);
          return [m,
          n,
          o,
          p]
        }
        function l(a) {
          var b,
          c = '',
          d = 32 * a.length;
          for (b = 0; b < d; b += 8) c += String.fromCharCode(a[b >> 5] >>> b % 32 & 255);
          return c
        }
        function m(a) {
          var b,
          c = [
          ];
          for (c[(a.length >> 2) - 1] = void 0, b = 0; b < c.length; b += 1) c[b] = 0;
          var d = 8 * a.length;
          for (b = 0; b < d; b += 8) c[b >> 5] |= (255 & a.charCodeAt(b / 8)) << b % 32;
          return c
        }
        function n(a) {
          return l(k(m(a), 8 * a.length))
        }
        function o(a, b) {
          var c,
          d,
          e = m(a),
          f = [
          ],
          g = [
          ];
          for (f[15] = g[15] = void 0, e.length > 16 && (e = k(e, 8 * a.length)), c = 0; c < 16; c += 1) f[c] = 909522486 ^ e[c],
          g[c] = 1549556828 ^ e[c];
          return d = k(f.concat(m(b)), 512 + 8 * b.length),
          l(k(g.concat(d), 640))
        }
        function p(a) {
          var b,
          c,
          d = '0123456789abcdef',
          e = '';
          for (c = 0; c < a.length; c += 1) b = a.charCodeAt(c),
          e += d.charAt(b >>> 4 & 15) + d.charAt(15 & b);
          return e
        }
        function q(a) {
          return unescape(encodeURIComponent(a))
        }
        function r(a) {
          return n(q(a))
        }
        function s(a) {
          return p(r(a))
        }
        function t(a, b) {
          return o(q(a), q(b))
        }
        function u(a, b) {
          return p(t(a, b))
        }
        function v(a, b, c) {
          return b ? c ? t(b, a) : u(b, a) : c ? r(a) : s(a)
        }
        b.exports = v
      },
      {
      }
    ]
  }, {
  }, [
    4
  ]) (4)
}),
define('core/utils/object/has', [
], function () {
  'use strict';
  return function (a, b) {
    return Object.prototype.hasOwnProperty.call(a, b)
  }
}),
define('core/utils/collection/each', [
  'core/utils/object/has'
], function (a) {
  'use strict';
  return function (b, c) {
    var d = b.length,
    e = Array.prototype.forEach;
    if (isNaN(d)) for (var f in b) a(b, f) && c(b[f], f, b);
     else if (e) e.call(b, c);
     else for (var g = 0; g < d; g++) c(b[g], g, b)
  }
}),
define('core/utils/uniqueId', [
], function () {
  'use strict';
  var a = 10000,
  b = Math.floor(Math.random() * a + 1);
  return function (a) {
    b += 1;
    var c = String(b);
    return a ? a + c : c
  }
}),
define('core/Events', [
  'require',
  'core/utils/collection/each',
  'core/utils/object/has',
  'core/utils/uniqueId'
], function (a) {
  'use strict';
  var b = a('core/utils/collection/each'),
  c = a('core/utils/object/has'),
  d = a('core/utils/uniqueId'),
  e = function (a) {
    var b,
    c = !1;
    return function () {
      return c ? b : (c = !0, b = a.apply(this, arguments), a = null, b)
    }
  },
  f = Object.keys || function (a) {
    if (a !== Object(a)) throw new TypeError('Invalid object');
    var b = [
    ];
    for (var d in a) c(a, d) && (b[b.length] = d);
    return b
  },
  g = [
  ].slice,
  h = {
    on: function (a, b, c) {
      if (!j(this, 'on', a, [
        b,
        c
      ]) || !b) return this;
      this._events = this._events || {
      };
      var d = this._events[a] || (this._events[a] = [
      ]);
      return d.push({
        callback: b,
        context: c,
        ctx: c || this
      }),
      this
    },
    once: function (a, b, c) {
      if (!j(this, 'once', a, [
        b,
        c
      ]) || !b) return this;
      var d = this,
      f = e(function () {
        d.off(a, f),
        b.apply(this, arguments)
      });
      return f._callback = b,
      this.on(a, f, c)
    },
    off: function (a, b, c) {
      var d,
      e,
      g,
      h,
      i,
      k,
      l,
      m;
      if (!this._events || !j(this, 'off', a, [
        b,
        c
      ])) return this;
      if (!a && !b && !c) return this._events = {
      },
      this;
      for (h = a ? [
        a
      ] : f(this._events), i = 0, k = h.length; i < k; i++) if (a = h[i], g = this._events[a]) {
        if (this._events[a] = d = [
        ], b || c) for (l = 0, m = g.length; l < m; l++) e = g[l],
        (c && c !== e.context || b && b !== e.callback && b !== e.callback._callback) && d.push(e);
        d.length || delete this._events[a]
      }
      return this
    },
    trigger: function (a) {
      if (!this._events) return this;
      var b = g.call(arguments, 1);
      if (!j(this, 'trigger', a, b)) return this;
      var c = this._events[a],
      d = this._events.all;
      return c && k(c, b),
      d && k(d, arguments),
      this
    },
    stopListening: function (a, b, c) {
      var d = this._listeners;
      if (!d) return this;
      var e = !b && !c;
      'object' == typeof b && (c = this),
      a && ((d = {
      }) [a._listenerId] = a);
      for (var f in d) d[f].off(b, c, this),
      e && delete this._listeners[f];
      return this
    }
  },
  i = /\s+/,
  j = function (a, b, c, d) {
    if (!c) return !0;
    if ('object' == typeof c) {
      for (var e in c) a[b].apply(a, [
        e,
        c[e]
      ].concat(d));
      return !1
    }
    if (i.test(c)) {
      for (var f = c.split(i), g = 0, h = f.length; g < h; g++) a[b].apply(a, [
        f[g]
      ].concat(d));
      return !1
    }
    return !0
  },
  k = function (a, b) {
    var c,
    d,
    e = a.length,
    f = b[0],
    g = b[1],
    h = b[2];
    switch (b.length) {
      case 0:
        for (d = 0; d < e; d++) (c = a[d]).callback.call(c.ctx);
        return;
      case 1:
        for (d = 0; d < e; d++) (c = a[d]).callback.call(c.ctx, f);
        return;
      case 2:
        for (d = 0; d < e; d++) (c = a[d]).callback.call(c.ctx, f, g);
        return;
      case 3:
        for (d = 0; d < e; d++) (c = a[d]).callback.call(c.ctx, f, g, h);
        return;
      default:
        for (d = 0; d < e; d++) (c = a[d]).callback.apply(c.ctx, b)
    }
  },
  l = {
    listenTo: 'on',
    listenToOnce: 'once'
  };
  return b(l, function (a, b) {
    h[b] = function (b, c, e) {
      var f = this._listeners || (this._listeners = {
      }),
      g = b._listenerId || (b._listenerId = d('l'));
      return f[g] = b,
      'object' == typeof c && (e = this),
      b[a](c, e, this),
      this
    }
  }),
  h.bind = h.on,
  h.unbind = h.off,
  h
}),
define('core/utils/function/debounce', [
], function () {
  'use strict';
  return function (a, b, c) {
    var d,
    e,
    f,
    g,
    h,
    i = function () {
      var j = (new Date).getTime() - g;
      j < b && j >= 0 ? d = setTimeout(i, b - j) : (d = null, c || (h = a.apply(f, e), d || (f = e = null)))
    };
    return function () {
      f = this,
      e = arguments,
      g = (new Date).getTime();
      var j = c && !d;
      return d || (d = setTimeout(i, b)),
      j && (h = a.apply(f, e), f = e = null),
      h
    }
  }
}),
define('core/utils/function/throttle', [
], function () {
  'use strict';
  return function (a, b, c) {
    c || (c = 0);
    var d,
    e,
    f,
    g,
    h = 0,
    i = function () {
      h = new Date,
      f = null,
      g = a.apply(d, e)
    };
    return function () {
      var j = new Date,
      k = b - (j - h);
      return d = this,
      e = arguments,
      k <= 0 ? (clearTimeout(f), f = null, h = j, g = a.apply(d, e)) : f || (f = setTimeout(i, k + c)),
      g
    }
  }
}),
define('core/utils/object/extend', [
  'core/utils/collection/each',
  'core/utils/object/has'
], function (a, b) {
  'use strict';
  return function (c) {
    return a(Array.prototype.slice.call(arguments, 1), function (a) {
      for (var d in a) b(a, d) && (c[d] = a[d])
    }),
    c
  }
}),
define('core/utils/array/indexOf', [
], function () {
  'use strict';
  return function (a, b) {
    for (var c = 0; c < a.length; ++c) if (a[c] === b) return c;
    return - 1
  }
}),
define('core/utils/array/some', [
], function () {
  'use strict';
  return function (a, b, c) {
    for (var d = 0; d < a.length; ++d) if (b.call(c, a[d], d, a)) return !0;
    return !1
  }
}),
define('core/utils/html/getCurrentStyle', [
], function () {
  'use strict';
  return window.getComputedStyle ? function (a, b, c) {
    try {
      return window.document.defaultView.getComputedStyle(a, null).getPropertyValue(b)
    } catch (d) {
      return null
    }
  }
   : function (a, b, c) {
    return a.currentStyle[b] || a.currentStyle[c]
  }
}),
define('core/utils/html/isVisible', [
  'core/utils/html/getCurrentStyle'
], function (a) {
  'use strict';
  return function (b) {
    return Boolean(b && (b.offsetWidth || b.offsetHeight || b.getClientRects().length) && 'hidden' !== a(b, 'visibility'))
  }
}),
define('core/utils/lang/isFunction', [
], function () {
  'use strict';
  return function (a) {
    return '[object Function]' === Object.prototype.toString.call(a)
  }
}),
define('core/utils/object/result', [
  'core/utils/lang/isFunction'
], function (a) {
  'use strict';
  return function (b, c, d) {
    var e = null === b || void 0 === b ? void 0 : b[c];
    return void 0 === e && (e = d),
    a(e) ? e.call(b) : e
  }
}),
define('core/utils/lang/isElement', [
], function () {
  'use strict';
  return function (a) {
    return Boolean(a && 1 === a.nodeType)
  }
}),
define('stance/utils', [
  'exports',
  'core/utils/lang/isElement',
  'core/utils/uniqueId'
], function (a, b, c) {
  'use strict';
  a.getElement = function (a) {
    return b(a) ? a : a && a.el
  },
  a.EL_ID_ATTR = 'data-visibility-id',
  a.OBJ_ID_PROP = '_visibility_id',
  a.getId = function (d) {
    var e = null;
    return b(d) ? (e = d.getAttribute(a.EL_ID_ATTR) || null, e || (e = c(), d.setAttribute(a.EL_ID_ATTR, e))) : d && (e = d[a.OBJ_ID_PROP] || null, e || (e = d[a.OBJ_ID_PROP] = c())),
    e
  },
  a.visiblePercent = function (a, b) {
    var c = 0;
    if (!b) return c;
    var d = a.top,
    e = d + a.height,
    f = b.visibleTop < d,
    g = b.visibleBottom > e;
    return !f && !g || f && g ? c = 1 : f ? c = (b.height - (d - b.visibleTop)) / b.height : g && (c = (e - b.visibleTop) / b.height),
    Math.round(100 * c)
  }
}),
define('stance/tracking', [
  'core/utils/array/indexOf',
  'core/utils/array/some',
  'core/utils/html/isVisible',
  'core/utils/object/result',
  './utils',
  'exports'
], function (a, b, c, d, e, f) {
  'use strict';
  f.events = [
  ],
  f.lastPos = null,
  f.clearCache = function (a) {
    if (void 0 === a) f.getElementOffset.cache = {
    };
     else {
      var b = e.getId(a);
      b && (f.getElementOffset.cache[b] = null)
    }
  },
  f.calculateOffset = function (a) {
    if (!a) return null;
    if (!c(a)) return null;
    var b = a.ownerDocument.documentElement;
    return {
      height: a.offsetHeight,
      top: a.getBoundingClientRect().top + window.pageYOffset - (b.clientTop || 0)
    }
  },
  f._getElementOffset = function (a) {
    var b = e.getElement(a);
    if (!b) return null;
    var c = f.calculateOffset(b);
    return c ? {
      visibleTop: c.top + (d(a, 'topEdgeOffset') || 0),
      visibleBottom: c.top + c.height - (d(a, 'bottomEdgeOffset') || 0),
      offsetTop: c.top,
      height: c.height
    }
     : null
  },
  f.getElementOffset = function () {
    var a = function (b) {
      var c = a.cache,
      d = e.getId(b);
      if (d && c[d]) return c[d];
      var g = f._getElementOffset(b);
      return d && g && (c[d] = g),
      g
    };
    return a.cache = {
    },
    a
  }(),
  f.EVENT_NAMES = [
    'enter',
    'exit',
    'visible',
    'invisible',
    'all'
  ],
  f.updateTracking = function (c) {
    var d,
    e = function (a) {
      return a ? function (b) {
        return a[b]
      }
       : function () {
      }
    };
    b(f.EVENT_NAMES, e(c._events)) ? (d = a(f.events, c), d === - 1 && f.events.push(c)) : (d = a(f.events, c), d !== - 1 && f.events.splice(d, 1))
  },
  f.processEvents = function (a) {
    f.lastPos = a;
    var b = f.events;
    if (b.length) for (var c = b.length - 1; c >= 0; --c) {
      var d = b[c],
      e = d.isVisible(a);
      null !== e && (e !== d.lastVisible && d.trigger(e ? 'enter' : 'exit', d, a), d.trigger(e ? 'visible' : 'invisible', d, a), d.lastVisible = e)
    }
  }
}),
define('stance/main', [
  'core/Events',
  'core/utils/function/debounce',
  'core/utils/function/throttle',
  'core/utils/object/extend',
  './tracking'
], function (a, b, c, d, e) {
  'use strict';
  function f(a) {
    return this instanceof f ? (this.obj = a, void (this.lastVisible = !1)) : new f(a)
  }
  var g = b(function () {
    e.processEvents(e.lastPos)
  }, 250);
  return d(f.prototype, a, {
    on: function (b) {
      var c = !(this._events && this._events[b]),
      d = a.on.apply(this, arguments);
      return c && e.updateTracking(this),
      g(),
      d
    },
    off: function (b) {
      var c = a.off.apply(this, arguments);
      return this._events && this._events[b] || e.updateTracking(this),
      c
    },
    offset: function () {
      return e.getElementOffset(this.obj)
    },
    isVisible: function (a) {
      if (a = a || e.lastPos, !a) return null;
      var b = a.top,
      c = b + a.height,
      d = this.offset();
      return !!d && (d.offsetTop >= b && d.visibleTop < c || d.offsetTop + d.height <= c && d.visibleBottom > b)
    },
    invalidate: function () {
      return e.clearCache(this.obj),
      this
    }
  }),
  d(f, {
    invalidate: e.clearCache,
    scroll: e.processEvents,
    _windowScrollHandlerBound: !1,
    _ignoreCache: !1,
    _windowScrollHandler: c(function () {
      f._ignoreCache && f.invalidate(),
      e.processEvents({
        top: window.pageYOffset,
        height: window.document.documentElement.clientHeight
      })
    }, 250),
    bindWindowEvents: function (a) {
      this._windowScrollHandlerBound || ('undefined' != typeof a && (f._ignoreCache = a), window.addEventListener('scroll', this._windowScrollHandler), window.addEventListener('resize', this._windowScrollHandler), this._windowScrollHandlerBound = !0, this._windowScrollHandler())
    },
    unbindWindowEvents: function () {
      f._ignoreCache = !1,
      window.removeEventListener('scroll', this._windowScrollHandler),
      window.removeEventListener('resize', this._windowScrollHandler),
      this._windowScrollHandlerBound = !1
    }
  }),
  f
}),
define('stance', [
  'stance/main'
], function (a) {
  return a
}),
define('core/strings', [
  'loglevel',
  'translations'
], function (a, b) {
  'use strict';
  var c = {
    translations: b
  };
  return c.get = function (a) {
    var b = c.translations[a];
    return void 0 === b ? a : b
  },
  c.interpolate = function (b, c) {
    function d(d) {
      var e = '';
      return d in c ? e = void 0 !== c[d] && null !== c[d] ? c[d].toString() : '' : a.error('Key `' + d + '` not found in context for: ', b),
      e
    }
    return b.replace(/%\(\w+\)s/g, function (a) {
      return d(a.slice(2, - 2))
    })
  },
  c.gettext = function (b, d) {
    return b = c.get(b),
    d = d || {
    },
    b.split(/(%\(\w+\)s)/g).map(function (c) {
      var e = c.match(/%\((\w+)\)s/);
      return e && (e[1] in d ? c = d[e[1]] : a.error('Key `' + e[1] + '` not found in context for: ' + b)),
      '' === c ? null : c
    })
  },
  c
}),
define('core/UniqueModel', [
  'underscore'
], function (a) {
  'use strict';
  function b(a, c, d) {
    var e = b.pool(a),
    f = c && c[a.prototype.idAttribute];
    if (!f) return new a(c, d);
    var g = b.get(a, f);
    return g ? e[f].set(c) : e[f] = new a(c, d),
    e[f]
  }
  return b.pool = {
  },
  b.pool = function (a) {
    var c = b.pool[a.__type__];
    if (!c) throw new Error('Model not registered. Use UniqueModel.addType');
    return c
  },
  b.get = function (a, c) {
    return b.pool(a) [c]
  },
  b.set = function (a, c) {
    var d = b.pool(a),
    e = c && c.get(a.prototype.idAttribute);
    if (!e) return c;
    var f = b.get(a, e);
    return f ? f.set(c.attributes) : f = d[e] = c,
    f
  },
  b.addType = function (a, c) {
    c.__type__ && b.pool[a] || (c.__type__ = a, b.pool[a] = {
    })
  },
  b.boundModel = function (c) {
    var d = a.bind(b, b, c);
    return d.prototype = c.prototype,
    d
  },
  b.wrap = b.boundModel,
  b
}),
define('common/urls', [
  'core/utils/object/extend'
], function (a) {
  'use strict';
  var b = 'https:' === window.location.protocol,
  c = {
    root: 'https://disqus.com',
    shortener: 'http://disq.us',
    logger: 'https://x.disq.us',
    media: 'https://c.disquscdn.com/next/current/embed',
    realertime: '//realtime.services.disqus.com',
    jester: 'https://referrer.disqus.com/juggler',
    glitter: 'https://glitter.services.disqus.com/urls/',
    login: 'https://disqus.com/next/login/',
    dotcomLogin: 'https://disqus.com/profile/login/',
    api: 'https://disqus.com/api/3.0/',
    logout: 'http://disqus.com/logout/',
    editProfile: 'https://disqus.com/home/settings/account/',
    verifyEmail: 'https://disqus.com/next/verify/',
    authorize: 'https://disqus.com/api/oauth/2.0/authorize/',
    home: 'https://disqus.com/home/',
    homeInbox: 'https://disqus.com/home/notifications/',
    moderate: 'https://disqus.com/admin/moderate/',
    oauth: {
      twitter: 'https://disqus.com/_ax/twitter/begin/',
      google: 'https://disqus.com/_ax/google/begin/',
      facebook: 'https://disqus.com/_ax/facebook/begin/',
      microsoft: 'https://disqus.com/_ax/microsoft/begin/',
      apple: 'https://disqus.com/_ax/apple/begin/'
    },
    avatar: {
      generic: 'https://c.disquscdn.com/next/embed/assets/img/noavatar92.b5e491fa31234c53d6aaf029f9b0c34e.png'
    },
    linkAffiliatorClientV4: 'https://c.disquscdn.com/next/embed/alfie_v4.63f1ab6d6b9d5807dc0c94ef3fe0b851.js',
    linkAffiliatorClientV5: 'https://c.disquscdn.com/next/embed/alfie_v5.c2cfb63e352676d3870fc7a1c5d2bd0b.js',
    linkAffiliatorAPI: 'https://links.services.disqus.com/api',
    liveRampAts: 'https://ats.rlcdn.com/ats.js',
    liveRampAtsV2: 'https://launchpad-wrapper.privacymanager.io/876583a8-81cb-4d63-9d57-50a52a0bd20a/launchpad-liveramp.js',
    zyncPixelImage: 'https://live.rezync.com/pixel.gif?c=4656c20ee35215f78e9273796625d90b',
    liveConnectTag: 'https://d-code.liadm.com/did-0049.min.js'
  };
  return b && (c = a(c, {
    logout: 'https://disqus.com/logout/',
    editProfile: 'https://disqus.com/home/settings/account/',
    moderate: 'https://disqus.com/admin/moderate/'
  })),
  c
}),
define('common/keys', [
], function () {
  'use strict';
  var a = {
    embedAPI: 'E8Uh5l5fHZ6gD8U3KycjAIAk46f68Zw7C6eW8WSjZvCLXebZ7p0r1yrYDrLilk2F',
    viglinkAPI: 'cfdfcf52dffd0a702a61bad27507376d',
    googleAnalytics: 'UA-1410476-6',
    facebook: '52254943976',
    google: '508198334196-bgmagrg0a2rub674g0shidj8fnd50dji.apps.googleusercontent.com'
  };
  return a
}),
define('common/defines', [
], function () {
  'use strict';
  return {
    debug: !1
  }
}),
define('core/config', [
  'common/urls',
  'common/keys',
  'common/defines'
], function (a, b, c) {
  'use strict';
  return {
    urls: {
      avatar: {
        generic: a.avatar.generic
      },
      api: a.api,
      media: a.media,
      verifyEmail: a.verifyEmail,
      login: a.login,
      oauth: a.oauth
    },
    keys: {
      api: b.embedAPI,
      segmentIO: 'WskYYFRdZvvOmLhuFN9r7ZygELBNKkvH'
    },
    TLDS: 'aaa|aarp|abb|abbott|abbvie|abc|able|abogado|abudhabi|ac|academy|accenture|accountant|accountants|aco|actor|ad|ads|adult|ae|aeg|aero|aetna|af|afl|africa|ag|agakhan|agency|ai|aig|airbus|airforce|airtel|akdn|al|alibaba|alipay|allfinanz|allstate|ally|alsace|alstom|am|amazon|americanexpress|americanfamily|amex|amfam|amica|amsterdam|analytics|android|anquan|anz|ao|aol|apartments|app|apple|aq|aquarelle|ar|arab|aramco|archi|army|arpa|art|arte|as|asda|asia|associates|at|athleta|attorney|au|auction|audi|audible|audio|auspost|author|auto|autos|aw|aws|ax|axa|az|azure|ba|baby|baidu|banamex|band|bank|bar|barcelona|barclaycard|barclays|barefoot|bargains|baseball|basketball|bauhaus|bayern|bb|bbc|bbt|bbva|bcg|bcn|bd|be|beats|beauty|beer|bentley|berlin|best|bestbuy|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|blockbuster|blog|bloomberg|blue|bm|bms|bmw|bn|bnpparibas|bo|boats|boehringer|bofa|bom|bond|boo|book|booking|bosch|bostik|boston|bot|boutique|box|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|calvinklein|cam|camera|camp|canon|capetown|capital|capitalone|car|caravan|cards|care|career|careers|cars|casa|case|cash|casino|cat|catering|catholic|cba|cbn|cbre|cc|cd|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|charity|chase|chat|cheap|chintai|christmas|chrome|church|ci|cipriani|circle|cisco|citadel|citi|citic|city|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cool|coop|corsica|country|coupon|coupons|courses|cpa|cr|credit|creditcard|creditunion|cricket|crown|crs|cruise|cruises|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dad|dance|data|date|dating|datsun|day|dclk|dds|de|deal|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|dhl|diamonds|diet|digital|direct|directory|discount|discover|dish|diy|dj|dk|dm|dnp|do|docs|doctor|dog|domains|dot|download|drive|dtv|dubai|dunlop|dupont|durban|dvag|dvr|dz|earth|eat|ec|eco|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epson|equipment|er|ericsson|erni|es|esq|estate|et|eu|eurovision|eus|events|exchange|expert|exposed|express|extraspace|fage|fail|fairwinds|faith|family|fan|fans|farm|farmers|fashion|fast|fedex|feedback|ferrari|ferrero|fi|fidelity|fido|film|final|finance|financial|fire|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|flir|florist|flowers|fly|fm|fo|foo|food|football|ford|forex|forsale|forum|foundation|fox|fr|free|fresenius|frl|frogans|frontier|ftr|fujitsu|fun|fund|furniture|futbol|fyi|ga|gal|gallery|gallo|gallup|game|games|gap|garden|gay|gb|gbiz|gd|gdn|ge|gea|gent|genting|george|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|godaddy|gold|goldpoint|golf|goo|goodyear|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|grocery|group|gs|gt|gu|gucci|guge|guide|guitars|guru|gw|gy|hair|hamburg|hangout|haus|hbo|hdfc|hdfcbank|health|healthcare|help|helsinki|here|hermes|hiphop|hisamitsu|hitachi|hiv|hk|hkt|hm|hn|hockey|holdings|holiday|homedepot|homegoods|homes|homesense|honda|horse|hospital|host|hosting|hot|hotels|hotmail|house|how|hr|hsbc|ht|hu|hughes|hyatt|hyundai|ibm|icbc|ice|icu|id|ie|ieee|ifm|ikano|il|im|imamat|imdb|immo|immobilien|in|inc|industries|infiniti|info|ing|ink|institute|insurance|insure|int|international|intuit|investments|io|ipiranga|iq|ir|irish|is|ismaili|ist|istanbul|it|itau|itv|jaguar|java|jcb|je|jeep|jetzt|jewelry|jio|jll|jm|jmp|jnj|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|juniper|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kids|kim|kindle|kitchen|kiwi|km|kn|koeln|komatsu|kosher|kp|kpmg|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|lamborghini|lamer|lancaster|land|landrover|lanxess|lasalle|lat|latino|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|lefrak|legal|lego|lexus|lgbt|li|lidl|life|lifeinsurance|lifestyle|lighting|like|lilly|limited|limo|lincoln|link|lipsy|live|living|lk|llc|llp|loan|loans|locker|locus|lol|london|lotte|lotto|love|lpl|lplfinancial|lr|ls|lt|ltd|ltda|lu|lundbeck|luxe|luxury|lv|ly|ma|madrid|maif|maison|makeup|man|management|mango|map|market|marketing|markets|marriott|marshalls|mattel|mba|mc|mckinsey|md|me|med|media|meet|melbourne|meme|memorial|men|menu|merckmsd|mg|mh|miami|microsoft|mil|mini|mint|mit|mitsubishi|mk|ml|mlb|mls|mm|mma|mn|mo|mobi|mobile|moda|moe|moi|mom|monash|money|monster|mormon|mortgage|moscow|moto|motorcycles|mov|movie|mp|mq|mr|ms|msd|mt|mtn|mtr|mu|museum|music|mv|mw|mx|my|mz|na|nab|nagoya|name|navy|nba|nc|ne|nec|net|netbank|netflix|network|neustar|new|news|next|nextdirect|nexus|nf|nfl|ng|ngo|nhk|ni|nico|nike|nikon|ninja|nissan|nissay|nl|no|nokia|norton|now|nowruz|nowtv|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|observer|office|okinawa|olayan|olayangroup|ollo|om|omega|one|ong|onl|online|ooo|open|oracle|orange|org|organic|origins|osaka|otsuka|ott|ovh|pa|page|panasonic|paris|pars|partners|parts|party|pay|pccw|pe|pet|pf|pfizer|pg|ph|pharmacy|phd|philips|phone|photo|photography|photos|physio|pics|pictet|pictures|pid|pin|ping|pink|pioneer|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pnc|pohl|poker|politie|porn|post|pr|pramerica|praxi|press|prime|pro|prod|productions|prof|progressive|promo|properties|property|protection|pru|prudential|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|racing|radio|re|read|realestate|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|reliance|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|richardli|ricoh|ril|rio|rip|ro|rocks|rodeo|rogers|room|rs|rsvp|ru|rugby|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsclub|samsung|sandvik|sandvikcoromant|sanofi|sap|sarl|sas|save|saxo|sb|sbi|sbs|sc|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scot|sd|se|search|seat|secure|security|seek|select|sener|services|seven|sew|sex|sexy|sfr|sg|sh|shangrila|sharp|shell|shia|shiksha|shoes|shop|shopping|shouji|show|si|silk|sina|singles|site|sj|sk|ski|skin|sky|skype|sl|sling|sm|smart|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|spa|space|sport|spot|sr|srl|ss|st|stada|staples|star|statebank|statefarm|stc|stcgroup|stockholm|storage|store|stream|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiss|sx|sy|sydney|systems|sz|tab|taipei|talk|taobao|target|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|tdk|team|tech|technology|tel|temasek|tennis|teva|tf|tg|th|thd|theater|theatre|tiaa|tickets|tienda|tips|tires|tirol|tj|tjmaxx|tjx|tk|tkmaxx|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tr|trade|trading|training|travel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubank|ubs|ug|uk|unicom|university|uno|uol|ups|us|uy|uz|va|vacations|vana|vanguard|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|vig|viking|villas|vin|vip|virgin|visa|vision|viva|vivo|vlaanderen|vn|vodka|volvo|vote|voting|voto|voyage|vu|wales|walmart|walter|wang|wanggou|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weibo|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|winners|wme|wolterskluwer|woodside|work|works|world|wow|ws|wtc|wtf|xbox|xerox|xihuan|xin|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--30rr7y|xn--3bst00m|xn--3ds443g|xn--3e0b707e|xn--3hcrj9c|xn--3pxu8k|xn--42c2d9a|xn--45br5cyl|xn--45brj9c|xn--45q11c|xn--4dbrk0ce|xn--4gbrim|xn--54b7fta0cc|xn--55qw42g|xn--55qx5d|xn--5su34j936bgsg|xn--5tzm5g|xn--6frz82g|xn--6qq986b3xl|xn--80adxhks|xn--80ao21a|xn--80aqecdr1a|xn--80asehdb|xn--80aswg|xn--8y0a063a|xn--90a3ac|xn--90ae|xn--90ais|xn--9dbq2a|xn--9et52u|xn--9krt00a|xn--b4w605ferd|xn--bck1b9a5dre4c|xn--c1avg|xn--c2br7g|xn--cck2b3b|xn--cckwcxetd|xn--cg4bki|xn--clchc0ea0b2g2a9gcd|xn--czr694b|xn--czrs0t|xn--czru2d|xn--d1acj3b|xn--d1alf|xn--e1a4c|xn--eckvdtc9d|xn--efvy88h|xn--fct429k|xn--fhbei|xn--fiq228c5hs|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--fjq720a|xn--flw351e|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--fzys8d69uvgm|xn--g2xx48c|xn--gckr3f0f|xn--gecrj9c|xn--gk3at1e|xn--h2breg3eve|xn--h2brj9c|xn--h2brj9c8c|xn--hxt814e|xn--i1b6b1a6a2e|xn--imr513n|xn--io0a7i|xn--j1aef|xn--j1amh|xn--j6w193g|xn--jlq480n2rg|xn--jvr189m|xn--kcrx77d1x4a|xn--kprw13d|xn--kpry57d|xn--kput3i|xn--l1acc|xn--lgbbat1ad8j|xn--mgb9awbf|xn--mgba3a3ejt|xn--mgba3a4f16a|xn--mgba7c0bbn0a|xn--mgbaam7a8h|xn--mgbab2bd|xn--mgbah1a3hjkrd|xn--mgbai9azgqp6j|xn--mgbayh7gpa|xn--mgbbh1a|xn--mgbbh1a71e|xn--mgbc0a9azcg|xn--mgbca7dzdo|xn--mgbcpq6gpa1a|xn--mgberp4a5d4ar|xn--mgbgu82a|xn--mgbi4ecexp|xn--mgbpl2fh|xn--mgbt3dhd|xn--mgbtx2b|xn--mgbx4cd0ab|xn--mix891f|xn--mk1bu44c|xn--mxtq1m|xn--ngbc5azd|xn--ngbe9e0a|xn--ngbrx|xn--node|xn--nqv7f|xn--nqv7fs00ema|xn--nyqy26a|xn--o3cw4h|xn--ogbpf8fl|xn--otu796d|xn--p1acf|xn--p1ai|xn--pgbs0dh|xn--pssy2u|xn--q7ce6a|xn--q9jyb4c|xn--qcka1pmc|xn--qxa6a|xn--qxam|xn--rhqv96g|xn--rovu88b|xn--rvc1e0am3e|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--tckwe|xn--tiq49xqyj|xn--unup4y|xn--vermgensberater-ctb|xn--vermgensberatung-pwb|xn--vhquv|xn--vuq861b|xn--w4r85el8fhu5dnra|xn--w4rs40l|xn--wgbh1c|xn--wgbl6a|xn--xhq521b|xn--xkc2al3hye2a|xn--xkc2dl3a5ee0h|xn--y9a3aq|xn--yfro4i67o|xn--ygbi2ammx|xn--zfr164b|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|you|youtube|yt|yun|za|zappos|zara|zero|zip|zm|zone|zuerich|zw',
    feedApiVersion: 12,
    debug: c.debug
  }
}),
define('core/utils/browser', [
], function () {
  'use strict';
  var a = {
    isIE: function () {
      return Boolean(window.document.documentMode)
    },
    isSafari: function () {
      var a = window.navigator.userAgent.toLowerCase();
      return a.indexOf('safari') > - 1 && a.indexOf('chrome') === - 1
    },
    isFirefox: function () {
      var a = window.navigator.userAgent.toLowerCase();
      return a.indexOf('firefox') > - 1 && a.indexOf('chrome') === - 1
    },
    isChrome: function () {
      var a = window.navigator.userAgent.toLowerCase();
      return a.indexOf('crios') > - 1 || Boolean(window.chrome) && 'Google Inc.' === window.navigator.vendor && void 0 === window.opr && a.indexOf('edge') === - 1
    },
    isEdge: function () {
      var a = window.navigator.userAgent.toLowerCase();
      return a.indexOf('edge') > - 1
    },
    isOpera: function () {
      var a = window.navigator.userAgent.toLowerCase();
      return a.indexOf('opera') > - 1 || a.indexOf('opr') > - 1
    },
    isCrawler: function (a) {
      void 0 === a && (a = window);
      var b = a.navigator.userAgent;
      return /bot|crawl|slurp|spider|facebookexternalhit|embedly|feedly|pinterest/i.test(b)
    }
  };
  return a
}),
define('core/utils/isMobileUserAgent', [
], function () {
  'use strict';
  return function (a) {
    return a = a || window,
    /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(a.navigator.userAgent || a.navigator.vendor || a.opera)
  }
}),
define('core/utils', [
  'jquery',
  'underscore',
  'core/config',
  'core/utils/browser',
  'core/utils/isMobileUserAgent'
], function (a, b, c, d, e) {
  'use strict';
  function f(a) {
    return function (b) {
      return b && b.preventDefault && b.preventDefault(),
      a.apply(this, arguments)
    }
  }
  function g(a) {
    return function (b) {
      return b && b.stopPropagation && b.stopPropagation(),
      a.apply(this, arguments)
    }
  }
  function h(a) {
    return f(g(a))
  }
  function i(a) {
    if (!a) return '';
    a = 'http://' + a.replace(/^([a-z+.-]+:)?\/+/i, '');
    var b = r.createElement('a');
    b.href = a;
    var c = b.hostname.replace(/^www\d*\./i, '');
    return c = c.toLowerCase()
  }
  function j(a) {
    var c = [
    ];
    return b.each(a, function (a, b) {
      void 0 !== a && c.push(b + (null === a ? '' : '=' + encodeURIComponent(a)))
    }),
    c.join('&')
  }
  function k(a, b, c) {
    if (b && (a.indexOf('?') === - 1 ? a += '?' : '&' !== a.charAt(a.length - 1) && (a += '&'), a += this.serializeArgs(b)), c) {
      var d = {
      };
      return d[(new Date).getTime()] = null,
      this.serialize(a, d)
    }
    var e = a.length;
    return '&' === a.charAt(e - 1) ? a.slice(0, e - 1) : a
  }
  function l(a, c, d) {
    d ? b.extend(d, {
      location: 1,
      status: 1,
      resizable: 1,
      scrollbars: 1
    }) : d = {
    },
    d.width && d.height && b.defaults(d, {
      left: window.screen.width / 2 - d.width / 2,
      top: window.screen.height / 2 - d.height / 2
    });
    var e = b.map(d, function (a, b) {
      return b + '=' + a
    }).join(',');
    return window.open(a, c, e)
  }
  function m(a, b, c) {
    b < 0 && (b = 0);
    var d = a.substring(0, b),
    e = a.substring(b);
    return d.length && !/\s$/.test(d) && (d += ' '),
    /^\s/.test(e) || (e = ' ' + e),
    d + c + e
  }
  function n(a) {
    return 'undefined' == typeof a ? null : JSON.parse(JSON.stringify(a))
  }
  function o(a) {
    return a.split(' ').slice(0, 2).map(function (a) {
      return a.charAt(0).toUpperCase()
    }).join('')
  }
  function p(a) {
    a = a || '';
    var b = 'noavatar92.png';
    return a.slice(a.length - b.length) === b
  }
  function q(a) {
    const b = window.document.createElement('textarea');
    b.value = a,
    b.setAttribute('readonly', ''),
    b.style.position = 'absolute',
    b.style.left = '-9999px',
    window.document.body.appendChild(b),
    b.select(),
    window.document.execCommand('copy'),
    b.remove()
  }
  var r = window.document,
  s = /^[a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/,
  t = function (a) {
    return s.test(a)
  },
  u = c.TLDS || 'zw|zuerich|zone|zm|zip|za|yt|youtube|yokohama|yoga|yodobashi|ye|yandex|yachts|xyz|xxx|xin|xerox|wtf|wtc|ws|world|works|work|wme|win|williamhill|wiki|wien|whoswho|wf|weir|wedding|wed|website|webcam|watch|wang|wales|vu|voyage|voto|voting|vote|vodka|vn|vlaanderen|vision|villas|video|viajes|vi|vg|vet|versicherung|ventures|vegas|ve|vc|vacations|va|uz|uy|us|uol|uno|university|uk|ug|ua|tz|tw|tv|tui|tt|trust|travel|training|trading|trade|tr|toys|town|tours|toshiba|toray|top|tools|tokyo|today|to|tn|tm|tl|tk|tj|tirol|tires|tips|tienda|tickets|theater|th|tg|tf|tennis|temasek|tel|technology|tech|team|td|tc|taxi|tax|tattoo|tatar|taipei|sz|systems|sydney|sy|sx|swiss|sv|suzuki|surgery|surf|support|supply|supplies|sucks|su|style|study|st|sr|spreadbetting|spiegel|space|soy|sony|solutions|solar|sohu|software|social|so|sn|sm|sl|sky|sk|sj|site|singles|si|shriram|show|shoes|shiksha|sh|sg|sexy|sex|sew|services|sener|seat|se|sd|scot|science|schwarz|schule|school|scholarships|schmidt|scb|sca|sc|sb|saxo|sarl|sap|samsung|sale|saarland|sa|ryukyu|rw|run|ruhr|ru|rsvp|rs|rodeo|rocks|ro|rip|rio|rich|reviews|review|restaurant|rest|republican|report|repair|rentals|rent|ren|reit|reisen|reise|rehab|redstone|red|recipes|realtor|re|racing|quebec|qpon|qa|py|pw|pub|pt|ps|property|properties|prof|productions|prod|pro|press|praxi|pr|post|porn|poker|pohl|pn|pm|plus|plumbing|place|pl|pk|pizza|pink|pictures|pictet|pics|piaget|physio|photos|photography|photo|philips|pharmacy|ph|pg|pf|pe|party|parts|partners|paris|panerai|page|pa|ovh|otsuka|osaka|organic|org|oracle|ooo|online|onl|ong|one|om|okinawa|nz|nyc|nu|ntt|nrw|nra|nr|np|no|nl|nissan|ninja|nico|ni|nhk|ngo|ng|nf|nexus|news|new|neustar|network|net|nec|ne|nc|navy|name|nagoya|nadex|na|mz|my|mx|mw|mv|museum|mu|mtpc|mtn|mt|ms|mr|mq|mp|movie|mov|motorcycles|moscow|mortgage|mormon|money|monash|moe|moda|mobi|mo|mn|mma|mm|ml|mk|mini|mil|miami|mh|mg|menu|memorial|meme|melbourne|meet|media|me|md|mc|marriott|markets|marketing|market|mango|management|maison|maif|madrid|ma|ly|lv|luxury|luxe|lu|ltda|lt|ls|lr|love|lotto|lotte|london|lol|loans|loan|lk|link|limo|limited|lighting|life|lidl|liaison|li|lgbt|legal|leclerc|lease|lds|lc|lb|lawyer|latrobe|lat|land|lacaixa|la|kz|kyoto|ky|kw|kred|krd|kr|kp|komatsu|koeln|kn|km|kiwi|kitchen|kim|ki|kh|kg|ke|kddi|kaufen|juegos|jp|joburg|jobs|jo|jm|jewelry|jetzt|je|jcb|java|iwc|it|is|irish|ir|iq|io|investments|international|int|insure|institute|ink|ing|info|infiniti|industries|in|immobilien|immo|im|il|ifm|ie|id|icu|ibm|hu|ht|hr|how|house|hosting|host|horse|honda|homes|holiday|holdings|hockey|hn|hm|hk|hiv|hitachi|hiphop|hermes|here|help|healthcare|haus|hangout|hamburg|gy|gw|guru|guitars|guide|guge|gu|gt|gs|gripe|green|gratis|graphics|gr|gq|gp|gov|gop|google|goog|goo|golf|goldpoint|gold|gn|gmx|gmo|gmail|gm|globo|global|gle|glass|gl|gives|gifts|gift|gi|gh|ggee|gg|gf|gent|ge|gdn|gd|gbiz|gb|garden|gallery|gal|ga|futbol|furniture|fund|frogans|frl|fr|foundation|forsale|forex|football|foo|fo|fm|fly|flsmidth|flowers|florist|flights|fk|fj|fitness|fit|fishing|fish|firmdale|financial|finance|film|fi|feedback|fashion|farm|fans|fan|faith|fail|express|exposed|expert|exchange|everbank|events|eus|eurovision|eu|et|estate|esq|es|erni|er|equipment|epson|enterprises|engineering|engineer|energy|emerck|email|eg|ee|education|edu|ec|eat|dz|dvag|durban|download|doosan|domains|doha|dog|docs|do|dnp|dm|dk|dj|discount|directory|direct|digital|diet|diamonds|dev|design|desi|dentist|dental|democrat|delivery|degree|deals|de|dclk|day|datsun|dating|date|dance|dad|dabur|cz|cyou|cymru|cy|cx|cw|cv|cuisinella|cu|cruises|crs|cricket|creditcard|credit|cr|courses|country|coop|cool|cooking|contractors|consulting|construction|condos|computer|company|community|com|cologne|college|coffee|codes|coach|co|cn|cm|club|clothing|clinic|click|cleaning|claims|cl|ck|city|citic|ci|church|chrome|christmas|chloe|cheap|chat|channel|ch|cg|cfd|cfa|cf|cern|ceo|center|cd|cc|cbn|catering|cat|casino|cash|casa|cartier|cars|careers|career|care|cards|caravan|capital|capetown|canon|cancerresearch|camp|camera|cal|cafe|cab|ca|bzh|bz|by|bw|bv|buzz|business|builders|build|budapest|bt|bs|brussels|brother|broker|bridgestone|br|boutique|boo|bond|boats|bo|bnpparibas|bn|bmw|bm|blue|bloomberg|blackfriday|black|bj|biz|bio|bingo|bike|bid|bi|bh|bg|bf|best|berlin|beer|be|bd|bbc|bb|bayern|bauhaus|bargains|barclays|barclaycard|bar|bank|band|ba|az|axa|ax|aw|autos|auto|audio|auction|au|attorney|at|associates|asia|as|arpa|army|archi|ar|aquarelle|aq|apartments|ao|android|an|amsterdam|am|alsace|allfinanz|al|airforce|aig|ai|agency|ag|afl|af|aero|ae|adult|ads|ad|actor|active|accountants|accountant|accenture|academy|ac|abogado|abbott|abb',
  v = new RegExp('([^@.]|^)\\b(?:\\w[\\w-]*:/{0,3}(?:(?:\\w+:)?\\w+@)?)?([\\w-]+\\.)+(?:' + u + ')(?!\\.\\w)\\b(?::\\d+)?(?:[/?][^\\s\\{\\}\\|\\\\\\^\\[\\]`<>"\\x80-\\xFF\\x00-\\x1F\\x7F]*)?', 'g'),
  w = function (a) {
    return Boolean(a.match(v))
  },
  x = /^[\w-]+:\/{0,3}/,
  y = /([.,]+)$/g,
  z = function (a) {
    var b,
    c,
    d,
    e,
    f,
    g = [
    ];
    if (!a) return g;
    for (; b = v.exec(a); ) {
      c = b[0],
      f = b[1],
      c = c.slice(f.length),
      y.lastIndex = 0,
      d = y.exec(c),
      d && (c = c.slice(0, c.length - d[0].length)),
      e = x.test(c) ? c : 'http://' + c;
      var h = b.index + f.length;
      g.push({
        text: c,
        url: e,
        index: h,
        endIndex: h + c.length
      })
    }
    return g
  },
  A = new RegExp('[\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E\\u00A1-\\u00BF\\u2010-\\u2027\\u2030-\\u205E\\u2300-\\u23FF\\u2E00-\\u2E7F\\u3001-\\u303F\\uFE10-\\uFE19\\uFE30-\\uFE4F\\uFE50-\\uFE6B\\uFF01-\\uFF0F\\uFF1A-\\uFF20\\uFF3B-\\uFF40\\uFF5B-\\uFF60\\uFF5F-\\uFF64]+$'),
  B = 0.5,
  C = function (a, b) {
    if (a.length <= b) return a;
    a = a.slice(0, b - 1);
    var c = a,
    d = /(^.*\S)\s/.exec(a);
    d && (a = d[1]);
    var e = A.exec(a);
    return e && (a = a.slice(0, a.length - e[0].length)),
    a.length < B * c.length && (a = c),
    a + '…'
  },
  D = function () {
    var a = r.createElement('fakeelement');
    return function (b, c) {
      return void 0 !== a.style[c]
    }
  }(),
  E = function () {
    var a = {
      transition: 'transitionend',
      OTransition: 'otransitionend',
      MozTransition: 'transitionend',
      WebkitTransition: 'webkitTransitionEnd'
    };
    return b.find(a, D) || null
  }(),
  F = function () {
    var a = {
      animation: 'animationend',
      OAnimation: 'oAnimationEnd',
      MozAnimation: 'animationend',
      WebkitAnimation: 'webkitAnimationEnd'
    };
    return b.find(a, D) || null
  }(),
  G = function (b, c) {
    return c || (c = a(b.currentTarget)),
    '_blank' === c.attr('target') || b.ctrlKey || b.metaKey || b.shiftKey || b.altKey
  },
  H = 500,
  I = function () {
    var a = {
    },
    c = /#.*$/,
    d = function (a) {
      var c = a.attr('data-tid');
      return c || (c = b.uniqueId(), a.attr('data-tid', c)),
      c
    };
    return function (b, e) {
      if (b.isDefaultPrevented()) return !1;
      if (!e.is('a')) return !1;
      var f = (e.attr('href') || '').replace(c, '');
      if (!f) return !1;
      var g = d(e),
      h = (new Date).getTime();
      return !(a[g] && h - a[g] < H) && (a[g] = h, !0)
    }
  }();
  return {
    validateEmail: t,
    isUrl: w,
    bleachFindUrls: z,
    niceTruncate: C,
    transitionEndEvent: E,
    animationEndEvent: F,
    isMobileUserAgent: e,
    preventDefaultHandler: f,
    stopPropagationHandler: g,
    stopEventHandler: h,
    getDomain: i,
    serializeArgs: j,
    serialize: k,
    openWindow: l,
    insertWithWhitespace: m,
    willOpenNewWindow: G,
    clickShouldBeLogged: I,
    deepClone: n,
    browser: d,
    getInitials: o,
    isDefaultAvatar: p,
    copyToClipboard: q
  }
}),
require.config({
  waitSeconds: 0,
  enforceDefine: !0,
  paths: {
    ga: 'https://ssl.google-analytics.com/ga',
    'ga-debug': 'https://ssl.google-analytics.com/u/ga_debug',
    fb: 'https://connect.facebook.net/en_US/sdk',
    gapi: 'https://apis.google.com/js/api'
  },
  shim: {
    ga: {
      exports: '_gat'
    },
    'ga-debug': {
      exports: '_gat'
    },
    fb: {
      exports: 'FB'
    },
    gapi: {
      exports: 'gapi'
    }
  }
}),
define('require/config', function () {
}),
define('common/main', [
  'require',
  'exports'
], function (a, b) {
  'use strict';
  var c = function () {
    return Number(new Date)
  },
  d = window.document;
  b.ready = !1,
  b.timings = {
  };
  var e = function (a) {
    for (var b = {
    }, c = a.substr(1).split('&'), d = c.length - 1; d >= 0; d--) {
      var e = c[d].split('=');
      b[e[0]] = decodeURIComponent((e[1] || '').replace(/\+/g, '%20'))
    }
    return b
  }(window.location.search);
  b.params = e,
  b.version = e.version,
  b.loadCss = function (a) {
    var b = d.createElement('link');
    return b.rel = 'stylesheet',
    b.href = a,
    d.getElementsByTagName('head') [0].appendChild(b),
    b
  },
  b.setReady = function () {
    a(['core/bus'], function (a) {
      a.frame.sendHostMessage('ready'),
      b.ready = !0
    })
  },
  b.setFailure = function (b) {
    var c = d.getElementById('error');
    c && (c.style.display = 'block');
    var e = window.opener || window.parent;
    e && (a.defined('core/bus') ? a('core/bus').frame.sendHostMessage('fail', b) : e.postMessage(JSON.stringify({
      scope: 'host',
      name: 'fail',
      data: b,
      sender: window.name
    }), '*'))
  },
  b.init = function (f, g) {
    function h(a, e, f, g, h) {
      b.timings.downloadEnd = c(),
      d.body.style.display = '',
      f.setDefaultLevel('SILENT');
      var i = h.lounge.sentry_rate_limit || 0,
      j = '//[email protected]/27';
      g.debug = !1;
      var k = d.documentMode && d.documentMode < 10;
      j && !k && g.config(j, {
        whitelistUrls: [
          'https://c.disquscdn.com/next/embed'
        ],
        release: b.version,
        shouldSendCallback: function () {
          return i > 0 && Math.random() <= 1 / i
        }
      }).install();
      var l;
      try {
        l = (e.init || a.noop) (b)
      } catch (m) {
        j && g.captureException(m),
        l = {
          code: 'js_exception'
        }
      }
      l ? b.setFailure(l) : b.setReady()
    }
    function i(b, c) {
      require.undef(b),
      define(b, c),
      a([b])
    }
    function j(a) {
      'undefined' != typeof console && 'function' == typeof console.log && console.log(a.toString());
      for (var c, d, e = a.requireModules || [
      ], f = 0; f < e.length; ++f) c = e[f],
      d = m[c],
      'undefined' == typeof d ? b.setFailure({
        code: 'module_load_error.' + c.replace(/\W/g, '_')
      }) : i(c, d)
    }
    if (e.n_s) return void (d.documentElement.className += ' not-supported type-' + e.n_s);
    b.timings.initStart = c();
    var k = '../lang/',
    l = d.documentElement.lang;
    require.config({
      paths: {
        translations: k + l
      }
    }),
    l && 'en' !== l || define('translations', {
    }),
    b.loadCss(g['rtl' === d.documentElement.dir ? 'RTL_STYLES' : 'STYLES']);
    var m = {
      translations: {
      },
      'remote/config': {
        lounge: {
        },
        experiments: {
        }
      }
    };
    a(['jquery',
    f + '/main',
    'loglevel',
    'raven',
    'remote/config'], h, j)
  }
}),
define('common.bundle', function () {
});
Invalid Email or Password