2025-02-14 17:23:15
!function (a) {
  var b,
  c = {
    _breaker: {
    },
    _start: null,
    each: function () {
      var a,
      b = function (b, d) {
        return b === c._breaker || Boolean(d) && c.elapsed() > a
      };
      return function (d, e, f) {
        var g,
        h,
        i = c.type(d);
        if (1 === arguments.length) return void (a = arguments[0]);
        if (f = c.extend({
          timeout: !1
        }, f), 'object' === i && d.hasOwnProperty) {
          for (g in d) if (d.hasOwnProperty(g) && b(e(d[g], g), f.timeout)) return
        } else if (d) for (g = 0, h = d.length; g < h; g++) if (b(e(d[g], g), f.timeout)) return
      }
    }(),
    extend: function (a) {
      var b,
      c,
      d,
      e,
      f = arguments.length;
      for (a = a || {
      }, c = 1; c < f; c++) if (e = arguments[c], void 0 !== e && null !== e) for (d in e) b = e[d],
      a !== b && void 0 !== b && (a[d] = b);
      return a
    },
    noop: function () {
    },
    type: function () {
      var a = function (a, b) {
        try {
          return ('function' == typeof window[b] || 'object' == typeof window[b]) && a instanceof window[b]
        } catch (c) {
        }
        return !1
      },
      b = function (b) {
        return a(b, 'HTMLDocument') || 'object' == typeof b && ('defaultView' in b || 'parentWindow' in b)
      },
      c = function (b) {
        return a(b, 'HTMLElement') || 'object' == typeof b && 1 === b.nodeType && 'string' == typeof b.nodeName
      },
      d = function (a) {
        return a == a.window
      },
      e = function (a) {
        return Object.prototype.toString.call(a).slice(8, - 1).toLowerCase()
      };
      return function (a) {
        return null === a ? 'null' : void 0 === a ? 'undefined' : c(a) ? 'element' : d(a) ? 'window' : b(a) ? 'document' : e(a)
      }
    }()
  };
  c.extend(c, {
    addClass: function (a, b) {
      c.hasClass(a, b) || (a.className = (a.className ? a.className + ' ' : '') + b)
    },
    all: function (a, b) {
      var d = 'array' === c.type(a) ? [
      ] : {
      };
      return c.each(a, function (a, e) {
        b(a, e) && ('array' === c.type(d) ? d.push(a) : d[e] = a)
      }),
      d
    },
    ancestors: function (a) {
      for (var b = [
        a
      ]; (a = a.parentNode) && 1 === a.nodeType; ) b.push(a);
      return b
    },
    apiCallback: function (a, b) {
      return function (d) {
        'string' === c.type(d) && (d = {
          response: [
            d
          ]
        }),
        a.apply(b, d.response.concat(d.data))
      }
    },
    attributes: function (a, b) {
      var d;
      b = b || {
      };
      for (d in b) 'function' === c.type(a.setAttribute) ? a.setAttribute(d, b[d]) : a['class' === d ? 'className' : d] = b[d]
    },
    attrValues: function (a, b, c) {
      return c = c || ' ',
      b = a[b],
      b && b.split ? b.split(c) : [
      ]
    },
    batchable: function (a, b) {
      b = b || c.noop;
      var d = function () {
        return c.extend({
          batch: !0,
          timeout: 100
        }, b())
      },
      e = c.traits.cors && c.traits.json,
      f = [
      ],
      g = null,
      h = function (b) {
        a.apply(null, b)
      },
      i = function () {
        null !== g && (clearTimeout(g), g = null),
        1 === f.length ? h(f[0].arguments) : f.length > 1 && h(f),
        f = [
        ]
      },
      j = function () {
        f.push({
          arguments: c.toArray(arguments),
          batch: !0
        }),
        e && d().batch ? null === g && (g = setTimeout(c.entryPoint(c.bind(function () {
          i()
        }, this)), d().timeout)) : i()
      };
      return c.extend(j, {
        flush: i,
        now: a
      }),
      j
    },
    batchArgs: function (a, b) {
      return c.map(a, function (a) {
        return void 0 === b ? a.arguments : a.arguments[b]
      })
    },
    batchCallType: function (a) {
      var b;
      return c.reduce(null, a, function (a, c) {
        return b = c[0],
        null !== a && b !== a ? 'batch' : b
      })
    },
    batched: function (a) {
      if (a = c.toArray(a), 'array' === c.type(a)) return c.all(a, function (a) {
        return 'object' === c.type(a) && a.batch && 'array' === c.type(a.arguments)
      }).length === a.length
    },
    bind: function (a, b) {
      return function () {
        return a.apply(b, arguments)
      }
    },
    cache: function () {
      var a = {
      },
      b = 'vglnk_' + (new Date).getTime(),
      d = 0;
      return function (e, f, g) {
        e && 'string' !== c.type(e) || (g = f, f = e, e = a);
        var h = e[b];
        if (h || void 0 !== g) return h || (h = ++d),
        a[h] || (e[b] = h, a[h] = {
        }),
        void 0 !== g && (a[h][f] = g),
        'string' == typeof f ? a[h][f] : a[h]
      }
    }(),
    canonicalizeHostname: function () {
      var a = {
      };
      return function (b) {
        'string' == typeof b && (b = c.createA(b));
        try {
          return a[b.hostname] || (a[b.hostname] = b.hostname ? b.hostname.toString().toLowerCase().replace(/^www\./, '').replace(/:.*$/, '') : ''),
          a[b.hostname]
        } catch (d) {
          return ''
        }
      }
    }(),
    clone: function (a) {
      return c.extend({
      }, a)
    },
    commonParams: function (a, b) {
      var d;
      return b = b || {
      },
      d = {
        drKey: b.key ? null : b.dr_key,
        key: b.key,
        libId: b.library_id,
        subId: b.sub_id
      },
      'click' !== a && 'ping' !== a || c.extend(d, {
        cuid: b.cuid,
        loc: window.document.location.href,
        v: 1
      }, d),
      d
    },
    contains: function (a, b, d) {
      return Boolean(c.find(a, function (a) {
        return a === b
      }, d))
    },
    context: function (a) {
      if ('element' === c.type(a) && (a = a.ownerDocument), 'document' === c.type(a) && (a = a.defaultView || a.parentWindow), 'window' === c.type(a)) return a
    },
    contextIsAncestor: function (a, b) {
      for (var c = a.self; c.parent && c.parent !== c; ) if (c = c.parent, c === b) return !0;
      return !1
    },
    cors: function (a, b, d) {
      var e,
      f = function () {
        var a,
        b = c.noop,
        f = [
        ];
        d ? d(e.responseText) : 'string' === c.type(e.responseText) && (a = e.responseText.match(/^\s*(?:\/\*\*\/)?([^(\s]+)\s*\((.*)\);?\s*$/)) && (b = a[1].replace(/(^\s+|\s+$)/g, ''), f = c.fromJSON('[' + a[2] + ']'), window[b].apply(window, f))
      };
      e = new window.XMLHttpRequest,
      e.onreadystatechange = function () {
        4 === e.readyState && 200 === e.status && f()
      };
      try {
        return e.open('POST', a),
        e.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'),
        e.withCredentials = !0,
        e.send(b),
        !0
      } catch (g) {
        return !1
      }
    },
    createA: function (a, b) {
      return c.createEl('a', {
        href: a,
        target: b
      })
    },
    createEl: function (a, b, d, e) {
      var f = (e || document).createElement(a);
      return c.attributes(f, b),
      c.css(f, d),
      f
    },
    css: function (a, b) {
      var d,
      e,
      f,
      g;
      if ('object' === c.type(b)) for (d in b) try {
        a.style[d] = b[d]
      } catch (h) {
      } else try {
        return e = window.getComputedStyle(a),
        f = c.toArray(arguments).slice(1),
        g = c.reduce({
        }, f, function (a, b) {
          return a[b] = e.getPropertyValue(b),
          a
        }),
        1 === f.length ? g[f[0]] : g
      } catch (h) {
        return
      }
      return a
    },
    destructing: function (a) {
      return function (a) {
        var b,
        c = !1;
        return function () {
          return c || (b = a.apply(null, arguments), c = !0),
          b
        }
      }(a)
    },
    elapsed: function (a) {
      var b = a || this._start;
      return b ? (new Date).getTime() - b.getTime() : 0
    },
    entryPoint: function (a) {
      return c.exceptionLogger(function () {
        var b;
        return c._start = new Date,
        c.observer.pause(),
        b = a.apply(this, arguments),
        c.observer.resume(),
        b
      })
    },
    escapeRegExp: function () {
      var a;
      return function (b) {
        return a = a || new RegExp('([.*+?^${}()|[\\]\\\\])', 'g'),
        b.replace(a, '\\$1')
      }
    }(),
    eventLink: function (a) {
      var b,
      c,
      d = a.target || a.srcElement;
      do {
        try {
          b = d.nodeType
        } catch (e) {
          return
        }
        if (1 === b && (c = d.tagName.toUpperCase(), 'A' === c || 'AREA' === c)) return d;
        d = d.parentNode
      } while (d)
    },
    every: function (a, b) {
      return Boolean(!c.some(a, function (a) {
        return !b(a)
      }))
    },
    exceptionLogger: function () {
      var a = !1,
      b = c.noop;
      return function (c, d) {
        return void 0 === d ? function () {
          if (!a) return c.apply(this, arguments);
          try {
            return c.apply(this, arguments)
          } catch (d) {
            b(d)
          }
        }
         : (a = d, void (b = c))
      }
    }(),
    find: function (a, b, d) {
      var e;
      return c.each(a, function (a, d) {
        if (b(a, d)) return e = a,
        c._breaker
      }, d),
      e
    },
    generateNodeFilter: function () {
      var a = function (a, c) {
        var d,
        e;
        for (c = ',' + c.join(',') + ',', d = 0, e = a.length; d < e; d++) if (b(a[d], c)) return !0;
        return !1
      },
      b = function (a, b) {
        return b.indexOf(',' + a + ',') !== - 1
      },
      d = function (b, d) {
        var e = c.attrValues(b, 'className');
        return a(d, e)
      },
      e = function (a, c) {
        return b(a.nodeName.toLowerCase(), c)
      },
      f = function (b, d) {
        var f = c.attrValues(b, 'rel');
        return e(b, ',a,') && a(d, f)
      },
      g = function (a, b) {
        return b && b.length && c.contains(b, a)
      };
      return function (a) {
        var b;
        return a = c.extend({
          custom: null,
          classes: [
          ],
          rels: [
          ],
          selectors: [
          ],
          tags: [
          ]
        }, a),
        a.tags.length && (a.tags = ',' + a.tags.join(',').toLowerCase() + ','),
        c.isArray(a.selectors) && (a.selectors = a.selectors.join(',')),
        a.selectors && a.selectors.length && (b = c.select(a.selectors)),
        function (b, h, i) {
          h = c.extend({
            ancestors: !0,
            self: !0
          }, h),
          i = c.extend({
          }, i);
          var j,
          k = {
            passed: !0
          },
          l = function (b, h, i, k) {
            return !(j && g(b, j) || a.tags && a.tags.length && e(b, a.tags) || a.classes && a.classes.length && d(b, a.classes) || a.rels && a.rels.length && f(b, a.rels) || 'function' === c.type(a.custom) && a.custom(b, h, i, k))
          };
          if (h.self && !l(b, !0, k, i)) return !1;
          if (h.ancestors) for (; b.parentNode; ) if (b = b.parentNode, 1 === b.nodeType && !l(b, !1, k, i)) return !1;
          return k.passed
        }
      }
    }(),
    fromJSON: function (a) {
      if (c.traits.json) try {
        return window.JSON.parse(a)
      } catch (b) {
      }
    },
    fromQuery: function (a) {
      '?' === a.substr(0, 1) && (a = a.substr(1));
      var b = a.split('&'),
      d = {
      };
      return c.each(b, function (a) {
        var b = a.split('=');
        d[decodeURIComponent(b[0])] = decodeURIComponent(b[1])
      }),
      d
    },
    geometry: function () {
      var a,
      b,
      d = arguments.length,
      e = 1 / 0,
      f = 1 / 0,
      g = - (1 / 0),
      h = - (1 / 0);
      for (a = 0; a < d; a++) b = c.position(arguments[a]),
      e = Math.min(e, b.x),
      f = Math.min(f, b.y),
      g = Math.max(g, b.x + arguments[a].offsetWidth),
      h = Math.max(h, b.y + arguments[a].offsetHeight);
      return {
        x: e,
        y: f,
        w: g - e,
        h: h - f,
        x1: e,
        y1: f,
        x2: g,
        y2: h
      }
    },
    getActualHref: function (a) {
      return c.cache(a, 'href') || a.href
    },
    hasAttrValue: function (a, b, d, e) {
      return !!b && c.contains(c.attrValues(a, b, e), d)
    },
    hasClass: function (a, b) {
      return c.hasAttrValue(a, 'className', b)
    },
    hasRel: function (a, b) {
      return c.hasAttrValue(a, 'rel', b)
    },
    isArray: function (a) {
      return 'array' === c.type(a)
    },
    isDefaultPrevented: function (a) {
      return a.isDefaultPrevented && a.isDefaultPrevented() || a.returnValue === !1 || a.defaultPrevented === !0
    },
    isInDom: function (a) {
      return Boolean(a && a.offsetParent)
    },
    isVisible: function (a) {
      return Boolean(a.offsetHeight || a.offsetWidth || !a.getClientRects || a.getClientRects().length)
    },
    jsonp: function (a) {
      var b = document.getElementsByTagName('script') [0],
      d = c.createEl('script', {
        type: 'text/javascript',
        src: a
      });
      b.parentNode.insertBefore(d, b)
    },
    links: function () {
      var a = [
        'http:',
        'https:'
      ],
      b = function (b, d) {
        return c.all(b, function (b) {
          return b.href && (!d.filter_by_scheme || c.contains(a, b.protocol)) && (!d.filter_homepages || '/' !== b.pathname) && (!d.filter_internal || b.hostname !== c.context(b).location.hostname)
        })
      };
      return function (a, d, e) {
        d = d || '';
        var f = c.extend({
          filter_homepages: !0,
          filter_internal: !0,
          filter_by_scheme: !0
        }, e),
        g = c.map(d.split(','), function (a) {
          return a + ' a[href]'
        }).join(',');
        return b(c.withScope(a, g, {
          ancestors: !1,
          consolidate: !0
        }), f)
      }
    }(),
    map: function (a, b, d) {
      return c.reduce([], a, function (a, c, d) {
        return a.push(b(c, d)),
        a
      }, d)
    },
    matches: function (a, b) {
      if ('element' !== c.type(a)) return !1;
      try {
        return this.Sizzle.matchesSelector(a, b)
      } catch (d) {
        return !0
      }
    },
    mergeable: function (a) {
      var b = function () {
        return c.extend({
          batchable: !0,
          batchFn: c.noop,
          nonBatchFn: c.noop,
          timeout: 100
        }, a())
      };
      return c.batchable(function () {
        c.batched(arguments) && b().batchable ? c.each(c.batchArgs(arguments), function (a) {
          b().batchFn.apply(this, a)
        }) : b().nonBatchFn.apply(this, arguments)
      }, function () {
        return {
          batch: !0,
          timeout: b().timeout
        }
      })
    },
    mergeParams: function (a) {
      var b,
      d,
      e,
      f = arguments.length,
      g = function (d, e) {
        b = a[e],
        a.hasOwnProperty(e) && c.isArray(d) && c.isArray(b) ? a[e] = c.unique(b.concat(d)) : a[e] = d
      };
      for (d = 1; d < f; d++) e = arguments[d],
      c.each(e, g);
      return c.prune(a)
    },
    nodesOfType: function (a) {
      var b = c.toArray(arguments).slice(1);
      return c.all(a, function (a) {
        return c.contains(b, a.nodeType)
      })
    },
    on: function () {
      var a;
      return function (b, d, e) {
        var f,
        g,
        h;
        if (1 === arguments.length) return void (a = b);
        if (2 === arguments.length) {
          if (!a) return;
          e = d,
          d = b,
          b = a
        } else f = c.toArray(arguments).slice(3, arguments.length);
        try {
          g = b['on' + d]
        } catch (i) {
        }
        'function' == typeof g && (b['on' + d] = c.bind(function (a) {
          a = a || window.event;
          var d = g.apply(b, arguments);
          this.exceptionLogger(function () {
            return a ? (void 0 !== d && a.returnValue !== !1 && (a.returnValue = d), c.isDefaultPrevented(a) && 'function' === c.type(a.preventDefault) && a.preventDefault(), a.returnValue) : d
          }) ()
        }, this)),
        h = c.entryPoint(function () {
          if (a.enabled()) return e.apply(null, c.toArray(arguments).concat(f || [
          ]))
        }),
        b.addEventListener ? b.addEventListener(d, h, !1) : b.attachEvent && b.attachEvent('on' + d, h)
      }
    }(),
    packageArgs: function () {
      return c.toArray(arguments)
    },
    position: function (a, b) {
      var d,
      e = 0,
      f = 0,
      g = 0,
      h = 0;
      if (b = b || document, !c.isInDom(a)) return !1;
      d = a;
      do e += d.offsetLeft,
      f += d.offsetTop,
      d = d.offsetParent;
      while (d);
      d = a;
      do g += d.scrollLeft,
      h += d.scrollTop,
      d = d.parentNode;
      while (d && d !== b.body);
      return {
        x: e - g,
        y: f - h
      }
    },
    preventDefault: function (a) {
      return a.preventDefault && a.preventDefault(),
      a.returnValue = !1,
      !1
    },
    prune: function (a) {
      return c.each(a, function (b, c) {
        null !== b && void 0 !== b || delete a[c]
      }),
      a
    },
    ready: function () {
      var a,
      b,
      d,
      e,
      f,
      g = !1,
      h = [
      ],
      i = !1;
      return document.addEventListener ? d = function () {
        document.removeEventListener('DOMContentLoaded', d, !1),
        f()
      }
       : document.attachEvent && (e = function () {
        'complete' === document.readyState && (document.detachEvent('onreadystatechange', e), f())
      }),
      a = function () {
        if (!g) {
          if (g = !0, 'interactive' === document.readyState || 'complete' === document.readyState) return f();
          if (document.addEventListener) document.addEventListener('DOMContentLoaded', d, !1);
           else if (document.attachEvent) {
            document.attachEvent('onreadystatechange', e);
            var a = !1;
            try {
              a = null === window.frameElement
            } catch (h) {
            }
            document.documentElement.doScroll && a && b()
          }
          c.on(window, 'load', f)
        }
      },
      b = function () {
        if (!i) {
          try {
            document.documentElement.doScroll('left')
          } catch (a) {
            return void setTimeout(c.entryPoint(b), 1)
          }
          f()
        }
      },
      f = function () {
        if (!i) {
          if (!document.body) return setTimeout(c.entryPoint(f), 13);
          i = !0,
          h && (c.each(h, function (a) {
            a()
          }), h = null)
        }
      },
      function (b) {
        a(),
        i ? b() : h.push(b)
      }
    }(),
    reduce: function (a, b, d, e) {
      return c.each(b, function (b, c) {
        a = d(a, b, c)
      }, e),
      a
    },
    reformatKeys: function (a) {
      var b,
      d,
      e = function (a) {
        return '_' + a.toLowerCase()
      };
      for (b in a) d = b.replace(/([A-Z])/g, e),
      'object' === c.type(a[b]) && (a[b] = c.reformatKeys(a[b])),
      d !== b && (a[d] = a[b], delete a[b]);
      return a
    },
    removeClass: function (a, b) {
      if (c.hasClass(a, b)) {
        var d,
        e,
        f = c.attrValues(a, 'className');
        for (d = 0, e = f.length; d < e; d++) f[d] === b && delete f[d];
        a.className = f.join(' ')
      }
    },
    request: function (a, b, d) {
      var e,
      f,
      g,
      h = c.uniqid('vglnk_'),
      i = c.toArray(arguments).slice(3, arguments.length),
      j = function (a, b, d) {
        var e,
        f,
        g = {
        },
        h = !!b.length,
        i = d === !0 || d === !1;
        return (h || i) && (e = c.createA(a), h && (g.search = '?' + b), i && (f = e.protocol || c.context(e).location.protocol || 'http:', g.protocol = f.replace(/s?:$/, function () {
          return d ? 's:' : ':'
        })), a = c.extend(e, g).href),
        a
      },
      k = function (a, b) {
        var d = {
        },
        e = c.commonParams();
        return d[b] = {
        },
        c.each(a, function (a, c) {
          c in e ? d[c] = a : d[b][c] = a
        }),
        d[b] = c.toJSON(d[b]),
        c.prune(d)
      };
      return d = c.extend({
        fn: c.noop,
        json_payload: null,
        jsonp: !0,
        'return': !1,
        ssl: null,
        timeout: null
      }, d),
      'string' == typeof d.fn ? (e = window[d.fn], h = d.fn) : 'function' == typeof d.fn && (e = d.fn),
      'function' === c.type(e) && (g = c.entryPoint(c.destructing(function () {
        var a,
        f;
        d.json_payload && (f = d.json_payload, a = c.fromJSON(b[f]), b = c.extend(b, a), delete b[f]),
        e({
          response: c.toArray(arguments),
          data: i,
          args: b
        }),
        window[h] && (window[h] = void 0)
      })), null !== d.timeout && setTimeout(g, d.timeout)),
      d.json_payload && c.traits.cors && (b = k(b, d.json_payload)),
      d.jsonp === !0 && (window[h] = g, b = c.extend({
        format: 'jsonp',
        jsonp: h
      }, b)),
      f = c.toQuery(b),
      d['return'] ? j(a, f, d.ssl) : !!(c.traits.json && c.traits.cors && c.cors(j(a, '', d.ssl), f, d.jsonp ? null : g)) || c.jsonp(j(a, f, d.ssl))
    },
    rootContext: function (a) {
      var b = this.context(a);
      try {
        for (; b && b.parent !== b; ) b = b.parent
      } catch (c) {
      }
      return b
    },
    select: function () {
      try {
        return this.Sizzle.apply(this.Sizzle, arguments)
      } catch (a) {
        return []
      }
    },
    some: function (a, b) {
      return Boolean(c.find(a, function (a) {
        return b(a)
      }))
    },
    stopPropagation: function (a) {
      a && a.stopPropagation && a.stopPropagation(),
      a.cancelBubble = !0
    },
    time: function () {
      return (new Date).getTime()
    },
    toArray: function (a) {
      if (a && void 0 !== a.length) try {
        return Array.prototype.slice.call(a, 0)
      } catch (b) {
        var c,
        d,
        e = [
        ];
        for (c = 0, d = a.length; c < d; c++) e[c] = a[c];
        return e
      }
    },
    toJSON: function (a) {
      if (c.traits.json) try {
        return window.JSON.stringify(a)
      } catch (b) {
      }
    },
    toQuery: function (a) {
      var b = '';
      return c.each(c.prune(a), function (a, c) {
        b += '&' + encodeURIComponent(c) + '=' + encodeURIComponent(a)
      }),
      b.substr(1)
    },
    updateUrl: function (a, b) {
      return c.extend(c.createA(a), b).href
    },
    uniqid: function () {
      var a = 0;
      return function (b) {
        return (b || '') + (new Date).getTime() + a++
      }
    }(),
    unique: function (a) {
      return c.reduce([], a, function (a, b) {
        return c.contains(a, b) || a.push(b),
        a
      })
    },
    unlink: function (a) {
      var b,
      c = document.createDocumentFragment();
      if (a.parentNode) {
        for (; null !== (b = a.firstChild); ) c.appendChild(b);
        a.parentNode.insertBefore(c, a),
        a.parentNode.removeChild(a)
      }
    },
    withScope: function () {
      var a = function (a, b, d) {
        return d.self && c.contains(b, a, {
          timeout: !0
        }) ? a : d.ancestors ? c.find(c.ancestors(a).slice(0), function (a) {
          return c.contains(b, a, {
            timeout: !0
          })
        }, {
          timeout: !0
        }) : void 0
      };
      return function (b, d, e) {
        var f,
        g,
        h = c.select(d);
        return e = c.extend({
          ancestors: !0,
          consolidate: !1,
          descendants: !0,
          self: !0
        }, e),
        e.descendants && (g = c.map(h, function (a) {
          return [a,
          c.ancestors(a)]
        }, {
          timeout: !0
        })),
        f = c.all(c.map(b, function (b) {
          var d,
          f = [
          ];
          return (d = a(b, h, e)) ? f.push(d) : 1 === b.nodeType && e.descendants && c.each(g, function (a) {
            var d = a[0],
            e = a[1];
            c.contains(e, b, {
              timeout: !0
            }) && f.push(d)
          }, {
            timeout: !0
          }),
          [
            b,
            f
          ]
        }, {
          timeout: !0
        }), function (a) {
          return a[1].length > 0
        }, {
          timeout: !0
        }),
        e.consolidate ? c.unique(c.reduce([], f, function (a, b) {
          return a.concat(b[1])
        }, {
          timeout: !0
        })) : f
      }
    }()
  });
  var d = function () {
    var a = c.find(c.toArray(arguments), function (a) {
      return 'function' === c.type(a)
    });
    a && (c.Sizzle = a())
  };
  d.amd = !0,
  function (a) {
    function b(a, b, c, d) {
      var e,
      f,
      g,
      h,
      i,
      j,
      k,
      m,
      o,
      p;
      if ((b ? b.ownerDocument || b : P) !== H && G(b), b = b || H, c = c || [
      ], !a || 'string' != typeof a) return c;
      if (1 !== (h = b.nodeType) && 9 !== h) return [];
      if (J && !d) {
        if (e = sa.exec(a)) if (g = e[1]) {
          if (9 === h) {
            if (f = b.getElementById(g), !f || !f.parentNode) return c;
            if (f.id === g) return c.push(f),
            c
          } else if (b.ownerDocument && (f = b.ownerDocument.getElementById(g)) && N(b, f) && f.id === g) return c.push(f),
          c
        } else {
          if (e[2]) return aa.apply(c, b.getElementsByTagName(a)),
          c;
          if ((g = e[3]) && w.getElementsByClassName && b.getElementsByClassName) return aa.apply(c, b.getElementsByClassName(g)),
          c
        }
        if (w.qsa && (!K || !K.test(a))) {
          if (m = k = O, o = b, p = 9 === h && a, 1 === h && 'object' !== b.nodeName.toLowerCase()) {
            for (j = A(a), (k = b.getAttribute('id')) ? m = k.replace(ua, '\\$&') : b.setAttribute('id', m), m = '[id=\'' + m + '\'] ', i = j.length; i--; ) j[i] = m + n(j[i]);
            o = ta.test(a) && l(b.parentNode) || b,
            p = j.join(',')
          }
          if (p) try {
            return aa.apply(c, o.querySelectorAll(p)),
            c
          } catch (q) {
          } finally {
            k || b.removeAttribute('id')
          }
        }
      }
      return C(a.replace(ia, '$1'), b, c, d)
    }
    function c() {
      function a(c, d) {
        return b.push(c + ' ') > x.cacheLength && delete a[b.shift()],
        a[c + ' '] = d
      }
      var b = [
      ];
      return a
    }
    function e(a) {
      return a[O] = !0,
      a
    }
    function f(a) {
      var b = H.createElement('div');
      try {
        return !!a(b)
      } catch (c) {
        return !1
      } finally {
        b.parentNode && b.parentNode.removeChild(b),
        b = null
      }
    }
    function g(a, b) {
      for (var c = a.split('|'), d = a.length; d--; ) x.attrHandle[c[d]] = b
    }
    function h(a, b) {
      var c = b && a,
      d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || X) - (~a.sourceIndex || X);
      if (d) return d;
      if (c) for (; c = c.nextSibling; ) if (c === b) return - 1;
      return a ? 1 : - 1
    }
    function i(a) {
      return function (b) {
        var c = b.nodeName.toLowerCase();
        return 'input' === c && b.type === a
      }
    }
    function j(a) {
      return function (b) {
        var c = b.nodeName.toLowerCase();
        return ('input' === c || 'button' === c) && b.type === a
      }
    }
    function k(a) {
      return e(function (b) {
        return b = + b,
        e(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 l(a) {
      return a && typeof a.getElementsByTagName !== W && a
    }
    function m() {
    }
    function n(a) {
      for (var b = 0, c = a.length, d = ''; b < c; b++) d += a[b].value;
      return d
    }
    function o(a, b, c) {
      var d = b.dir,
      e = c && 'parentNode' === d,
      f = R++;
      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 = [
          Q,
          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 (i = b[O] || (b[O] = {
          }), (h = i[d]) && h[0] === Q && h[1] === f) return j[2] = h[2];
          if (i[d] = j, j[2] = a(b, c, g)) return !0
        }
      }
    }
    function p(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 q(a, c, d) {
      for (var e = 0, f = c.length; e < f; e++) b(a, c[e], d);
      return d
    }
    function r(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 s(a, b, c, d, f, g) {
      return d && !d[O] && (d = s(d)),
      f && !f[O] && (f = s(f, g)),
      e(function (e, g, h, i) {
        var j,
        k,
        l,
        m = [
        ],
        n = [
        ],
        o = g.length,
        p = e || q(b || '*', h.nodeType ? [
          h
        ] : h, [
        ]),
        s = !a || !e && b ? p : r(p, m, a, h, i),
        t = c ? f || (e ? a : o || d) ? [
        ] : g : s;
        if (c && c(s, t, h, i), d) for (j = r(t, n), d(j, [
        ], h, i), k = j.length; k--; ) (l = j[k]) && (t[n[k]] = !(s[n[k]] = l));
        if (e) {
          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 ? ca.call(e, l) : m[k]) > - 1 && (e[j] = !(g[j] = l))
          }
        } else t = r(t === g ? t.splice(o, t.length) : t),
        f ? f(null, g, t, i) : aa.apply(g, t)
      })
    }
    function t(a) {
      for (var b, c, d, e = a.length, f = x.relative[a[0].type], g = f || x.relative[' '], h = f ? 1 : 0, i = o(function (a) {
        return a === b
      }, g, !0), j = o(function (a) {
        return ca.call(b, a) > - 1
      }, g, !0), k = [
        function (a, c, d) {
          return !f && (d || c !== D) || ((b = c).nodeType ? i(a, c, d) : j(a, c, d))
        }
      ]; h < e; h++) if (c = x.relative[a[h].type]) k = [
        o(p(k), c)
      ];
       else {
        if (c = x.filter[a[h].type].apply(null, a[h].matches), c[O]) {
          for (d = ++h; d < e && !x.relative[a[d].type]; d++);
          return s(h > 1 && p(k), h > 1 && n(a.slice(0, h - 1).concat({
            value: ' ' === a[h - 2].type ? '*' : ''
          })).replace(ia, '$1'), c, h < d && t(a.slice(h, d)), d < e && t(a = a.slice(d)), d < e && n(a))
        }
        k.push(c)
      }
      return p(k)
    }
    function u(a, c) {
      var d = c.length > 0,
      f = a.length > 0,
      g = function (e, g, h, i, j) {
        var k,
        l,
        m,
        n = 0,
        o = '0',
        p = e && [
        ],
        q = [
        ],
        s = D,
        t = e || f && x.find.TAG('*', j),
        u = Q += null == s ? 1 : Math.random() || 0.1,
        v = t.length;
        for (j && (D = g !== H && g); o !== v && null != (k = t[o]); o++) {
          if (f && k) {
            for (l = 0; m = a[l++]; ) if (m(k, g, h)) {
              i.push(k);
              break
            }
            j && (Q = u)
          }
          d && ((k = !m && k) && n--, e && p.push(k))
        }
        if (n += o, d && o !== n) {
          for (l = 0; m = c[l++]; ) m(p, q, g, h);
          if (e) {
            if (n > 0) for (; o--; ) p[o] || q[o] || (q[o] = $.call(i));
            q = r(q)
          }
          aa.apply(i, q),
          j && !e && q.length > 0 && n + c.length > 1 && b.uniqueSort(i)
        }
        return j && (Q = u, D = s),
        p
      };
      return d ? e(g) : g
    }
    var v,
    w,
    x,
    y,
    z,
    A,
    B,
    C,
    D,
    E,
    F,
    G,
    H,
    I,
    J,
    K,
    L,
    M,
    N,
    O = 'sizzle' + - new Date,
    P = a.document,
    Q = 0,
    R = 0,
    S = c(),
    T = c(),
    U = c(),
    V = function (a, b) {
      return a === b && (F = !0),
      0
    },
    W = 'undefined',
    X = 1 << 31,
    Y = {
    }.hasOwnProperty,
    Z = [
    ],
    $ = Z.pop,
    _ = Z.push,
    aa = Z.push,
    ba = Z.slice,
    ca = Z.indexOf || function (a) {
      for (var b = 0, c = this.length; b < c; b++) if (this[b] === a) return b;
      return - 1
    },
    da = 'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped',
    ea = '[\\x20\\t\\r\\n\\f]',
    fa = '(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+',
    ga = '\\[' + ea + '*(' + fa + ')(?:' + ea + '*([*^$|!~]?=)' + ea + '*(?:\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)"|(' + fa + '))|)' + ea + '*\\]',
    ha = ':(' + fa + ')(?:\\(((\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|' + ga + ')*)|.*)\\)|)',
    ia = new RegExp('^' + ea + '+|((?:^|[^\\\\])(?:\\\\.)*)' + ea + '+$', 'g'),
    ja = new RegExp('^' + ea + '*,' + ea + '*'),
    ka = new RegExp('^' + ea + '*([>+~]|' + ea + ')' + ea + '*'),
    la = new RegExp('=' + ea + '*([^\\]\'"]*?)' + ea + '*\\]', 'g'),
    ma = new RegExp(ha),
    na = new RegExp('^' + fa + '$'),
    oa = {
      ID: new RegExp('^#(' + fa + ')'),
      CLASS: new RegExp('^\\.(' + fa + ')'),
      TAG: new RegExp('^(' + fa + '|[*])'),
      ATTR: new RegExp('^' + ga),
      PSEUDO: new RegExp('^' + ha),
      CHILD: new RegExp('^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(' + ea + '*(even|odd|(([+-]|)(\\d*)n|)' + ea + '*(?:([+-]|)' + ea + '*(\\d+)|))' + ea + '*\\)|)', 'i'),
      bool: new RegExp('^(?:' + da + ')$', 'i'),
      needsContext: new RegExp('^' + ea + '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(' + ea + '*((?:-\\d)?\\d*)' + ea + '*\\)|)(?=[^-]|$)', 'i')
    },
    pa = /^(?:input|select|textarea|button)$/i,
    qa = /^h\d$/i,
    ra = /^[^{]+\{\s*\[native \w/,
    sa = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
    ta = /[+~]/,
    ua = /'|\\/g,
    va = new RegExp('\\\\([\\da-f]{1,6}' + ea + '?|(' + ea + ')|.)', 'ig'),
    wa = 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)
    };
    try {
      aa.apply(Z = ba.call(P.childNodes), P.childNodes),
      Z[P.childNodes.length].nodeType
    } catch (xa) {
      aa = {
        apply: Z.length ? function (a, b) {
          _.apply(a, ba.call(b))
        }
         : function (a, b) {
          for (var c = a.length, d = 0; a[c++] = b[d++]; );
          a.length = c - 1
        }
      }
    }
    w = b.support = {
    },
    z = b.isXML = function (a) {
      var b = a && (a.ownerDocument || a).documentElement;
      return !!b && 'HTML' !== b.nodeName
    },
    G = b.setDocument = function (a) {
      var b,
      c = a ? a.ownerDocument || a : P,
      d = c.defaultView;
      return c !== H && 9 === c.nodeType && c.documentElement ? (H = c, I = c.documentElement, J = !z(c), d && d !== d.top && (d.addEventListener ? d.addEventListener('unload', function () {
        G()
      }, !1) : d.attachEvent && d.attachEvent('onunload', function () {
        G()
      })), w.attributes = f(function (a) {
        return a.className = 'i',
        !a.getAttribute('className')
      }), w.getElementsByTagName = f(function (a) {
        return a.appendChild(c.createComment('')),
        !a.getElementsByTagName('*').length
      }), w.getElementsByClassName = ra.test(c.getElementsByClassName) && f(function (a) {
        return a.innerHTML = '<div class=\'a\'></div><div class=\'a i\'></div>',
        a.firstChild.className = 'i',
        2 === a.getElementsByClassName('i').length
      }), w.getById = f(function (a) {
        return I.appendChild(a).id = O,
        !c.getElementsByName || !c.getElementsByName(O).length
      }), w.getById ? (x.find.ID = function (a, b) {
        if (typeof b.getElementById !== W && J) {
          var c = b.getElementById(a);
          return c && c.parentNode ? [
            c
          ] : [
          ]
        }
      }, x.filter.ID = function (a) {
        var b = a.replace(va, wa);
        return function (a) {
          return a.getAttribute('id') === b
        }
      }) : (delete x.find.ID, x.filter.ID = function (a) {
        var b = a.replace(va, wa);
        return function (a) {
          var c = typeof a.getAttributeNode !== W && a.getAttributeNode('id');
          return c && c.value === b
        }
      }), x.find.TAG = w.getElementsByTagName ? function (a, b) {
        if (typeof b.getElementsByTagName !== W) return b.getElementsByTagName(a)
      }
       : 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
      }, x.find.CLASS = w.getElementsByClassName && function (a, b) {
        if (typeof b.getElementsByClassName !== W && J) return b.getElementsByClassName(a)
      }, L = [
      ], K = [
      ], (w.qsa = ra.test(c.querySelectorAll)) && (f(function (a) {
        a.innerHTML = '<select msallowclip=\'\'><option selected=\'\'></option></select>',
        a.querySelectorAll('[msallowclip^=\'\']').length && K.push('[*^$]=' + ea + '*(?:\'\'|"")'),
        a.querySelectorAll('[selected]').length || K.push('\\[' + ea + '*(?:value|' + da + ')'),
        a.querySelectorAll(':checked').length || K.push(':checked')
      }), f(function (a) {
        var b = c.createElement('input');
        b.setAttribute('type', 'hidden'),
        a.appendChild(b).setAttribute('name', 'D'),
        a.querySelectorAll('[name=d]').length && K.push('name' + ea + '*[*^$|!~]?='),
        a.querySelectorAll(':enabled').length || K.push(':enabled', ':disabled'),
        a.querySelectorAll('*,:x'),
        K.push(',.*:')
      })), (w.matchesSelector = ra.test(M = I.matches || I.webkitMatchesSelector || I.mozMatchesSelector || I.oMatchesSelector || I.msMatchesSelector)) && f(function (a) {
        w.disconnectedMatch = M.call(a, 'div'),
        M.call(a, '[s!=\'\']:x'),
        L.push('!=', ha)
      }), K = K.length && new RegExp(K.join('|')), L = L.length && new RegExp(L.join('|')), b = ra.test(I.compareDocumentPosition), N = b || ra.test(I.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
      }, V = b ? function (a, b) {
        if (a === b) return F = !0,
        0;
        var d = !a.compareDocumentPosition - !b.compareDocumentPosition;
        return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & d || !w.sortDetached && b.compareDocumentPosition(a) === d ? a === c || a.ownerDocument === P && N(P, a) ? - 1 : b === c || b.ownerDocument === P && N(P, b) ? 1 : E ? ca.call(E, a) - ca.call(E, b) : 0 : 4 & d ? - 1 : 1)
      }
       : function (a, b) {
        if (a === b) return F = !0,
        0;
        var d,
        e = 0,
        f = a.parentNode,
        g = b.parentNode,
        i = [
          a
        ],
        j = [
          b
        ];
        if (!f || !g) return a === c ? - 1 : b === c ? 1 : f ? - 1 : g ? 1 : E ? ca.call(E, a) - ca.call(E, b) : 0;
        if (f === g) return h(a, b);
        for (d = a; d = d.parentNode; ) i.unshift(d);
        for (d = b; d = d.parentNode; ) j.unshift(d);
        for (; i[e] === j[e]; ) e++;
        return e ? h(i[e], j[e]) : i[e] === P ? - 1 : j[e] === P ? 1 : 0
      }, c) : H
    },
    b.matches = function (a, c) {
      return b(a, null, null, c)
    },
    b.matchesSelector = function (a, c) {
      if ((a.ownerDocument || a) !== H && G(a), c = c.replace(la, '=\'$1\']'), w.matchesSelector && J && (!L || !L.test(c)) && (!K || !K.test(c))) try {
        var d = M.call(a, c);
        if (d || w.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d
      } catch (e) {
      }
      return b(c, H, null, [
        a
      ]).length > 0
    },
    b.contains = function (a, b) {
      return (a.ownerDocument || a) !== H && G(a),
      N(a, b)
    },
    b.attr = function (a, b) {
      (a.ownerDocument || a) !== H && G(a);
      var c = x.attrHandle[b.toLowerCase()],
      d = c && Y.call(x.attrHandle, b.toLowerCase()) ? c(a, b, !J) : void 0;
      return void 0 !== d ? d : w.attributes || !J ? 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 (F = !w.detectDuplicates, E = !w.sortStable && a.slice(0), a.sort(V), F) {
        for (; b = a[e++]; ) b === a[e] && (d = c.push(e));
        for (; d--; ) a.splice(c[d], 1)
      }
      return E = null,
      a
    },
    y = 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 += y(a)
        } else if (3 === e || 4 === e) return a.nodeValue
      } else for (; b = a[d++]; ) c += y(b);
      return c
    },
    x = b.selectors = {
      cacheLength: 50,
      createPseudo: e,
      match: oa,
      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(va, wa),
          a[3] = (a[3] || a[4] || a[5] || '').replace(va, wa),
          '~=' === 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 oa.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || '' : c && ma.test(c) && (b = A(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(va, wa).toLowerCase();
          return '*' === a ? function () {
            return !0
          }
           : function (a) {
            return a.nodeName && a.nodeName.toLowerCase() === b
          }
        },
        CLASS: function (a) {
          var b = S[a + ' '];
          return b || (b = new RegExp('(^|' + ea + ')' + a + '(' + ea + '|$)')) && S(a, function (a) {
            return b.test('string' == typeof a.className && a.className || typeof a.getAttribute !== W && 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 + ' ').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;
            if (q) {
              if (f) {
                for (; p; ) {
                  for (l = b; l = l[p]; ) if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) return !1;
                  o = p = 'only' === a && !o && 'nextSibling'
                }
                return !0
              }
              if (o = [
                g ? q.firstChild : q.lastChild
              ], g && s) {
                for (k = q[O] || (q[O] = {
                }), j = k[a] || [
                ], n = j[0] === Q && j[1], m = j[0] === Q && j[2], l = n && q.childNodes[n]; l = ++n && l && l[p] || (m = n = 0) || o.pop(); ) if (1 === l.nodeType && ++m && l === b) {
                  k[a] = [
                    Q,
                    n,
                    m
                  ];
                  break
                }
              } else if (s && (j = (b[O] || (b[O] = {
              })) [a]) && j[0] === Q) m = j[1];
               else for (; (l = ++n && l && l[p] || (m = n = 0) || o.pop()) && ((h ? l.nodeName.toLowerCase() !== r : 1 !== l.nodeType) || !++m || (s && ((l[O] || (l[O] = {
              })) [a] = [
                Q,
                m
              ]), l !== b)); );
              return m -= e,
              m === d || m % d === 0 && m / d >= 0
            }
          }
        },
        PSEUDO: function (a, c) {
          var d,
          f = x.pseudos[a] || x.setFilters[a.toLowerCase()] || b.error('unsupported pseudo: ' + a);
          return f[O] ? f(c) : f.length > 1 ? (d = [
            a,
            a,
            '',
            c
          ], x.setFilters.hasOwnProperty(a.toLowerCase()) ? e(function (a, b) {
            for (var d, e = f(a, c), g = e.length; g--; ) d = ca.call(a, e[g]),
            a[d] = !(b[d] = e[g])
          }) : function (a) {
            return f(a, 0, d)
          }) : f
        }
      },
      pseudos: {
        not: e(function (a) {
          var b = [
          ],
          c = [
          ],
          d = B(a.replace(ia, '$1'));
          return d[O] ? e(function (a, b, c, e) {
            for (var f, g = d(a, null, e, [
            ]), h = a.length; h--; ) (f = g[h]) && (a[h] = !(b[h] = f))
          }) : function (a, e, f) {
            return b[0] = a,
            d(b, null, f, c),
            !c.pop()
          }
        }),
        has: e(function (a) {
          return function (c) {
            return b(a, c).length > 0
          }
        }),
        contains: e(function (a) {
          return a = a.replace(va, wa),
          function (b) {
            return (b.textContent || b.innerText || y(b)).indexOf(a) > - 1
          }
        }),
        lang: e(function (a) {
          return na.test(a || '') || b.error('unsupported lang: ' + a),
          a = a.replace(va, wa).toLowerCase(),
          function (b) {
            var c;
            do if (c = J ? 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 === I
        },
        focus: function (a) {
          return a === H.activeElement && (!H.hasFocus || H.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 !x.pseudos.empty(a)
        },
        header: function (a) {
          return qa.test(a.nodeName)
        },
        input: function (a) {
          return pa.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: k(function () {
          return [0]
        }),
        last: k(function (a, b) {
          return [b - 1]
        }),
        eq: k(function (a, b, c) {
          return [c < 0 ? c + b : c]
        }),
        even: k(function (a, b) {
          for (var c = 0; c < b; c += 2) a.push(c);
          return a
        }),
        odd: k(function (a, b) {
          for (var c = 1; c < b; c += 2) a.push(c);
          return a
        }),
        lt: k(function (a, b, c) {
          for (var d = c < 0 ? c + b : c; --d >= 0; ) a.push(d);
          return a
        }),
        gt: k(function (a, b, c) {
          for (var d = c < 0 ? c + b : c; ++d < b; ) a.push(d);
          return a
        })
      }
    },
    x.pseudos.nth = x.pseudos.eq;
    for (v in {
      radio: !0,
      checkbox: !0,
      file: !0,
      password: !0,
      image: !0
    }) x.pseudos[v] = i(v);
    for (v in {
      submit: !0,
      reset: !0
    }) x.pseudos[v] = j(v);
    m.prototype = x.filters = x.pseudos,
    x.setFilters = new m,
    A = b.tokenize = function (a, c) {
      var d,
      e,
      f,
      g,
      h,
      i,
      j,
      k = T[a + ' '];
      if (k) return c ? 0 : k.slice(0);
      for (h = a, i = [
      ], j = x.preFilter; h; ) {
        d && !(e = ja.exec(h)) || (e && (h = h.slice(e[0].length) || h), i.push(f = [
        ])),
        d = !1,
        (e = ka.exec(h)) && (d = e.shift(), f.push({
          value: d,
          type: e[0].replace(ia, ' ')
        }), h = h.slice(d.length));
        for (g in x.filter) !(e = oa[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) : T(a, i).slice(0)
    },
    B = b.compile = function (a, b) {
      var c,
      d = [
      ],
      e = [
      ],
      f = U[a + ' '];
      if (!f) {
        for (b || (b = A(a)), c = b.length; c--; ) f = t(b[c]),
        f[O] ? d.push(f) : e.push(f);
        f = U(a, u(e, d)),
        f.selector = a
      }
      return f
    },
    C = b.select = function (a, b, c, d) {
      var e,
      f,
      g,
      h,
      i,
      j = 'function' == typeof a && a,
      k = !d && A(a = j.selector || a);
      if (c = c || [
      ], 1 === k.length) {
        if (f = k[0] = k[0].slice(0), f.length > 2 && 'ID' === (g = f[0]).type && w.getById && 9 === b.nodeType && J && x.relative[f[1].type]) {
          if (b = (x.find.ID(g.matches[0].replace(va, wa), b) || [
          ]) [0], !b) return c;
          j && (b = b.parentNode),
          a = a.slice(f.shift().value.length)
        }
        for (e = oa.needsContext.test(a) ? 0 : f.length; e-- && (g = f[e], !x.relative[h = g.type]); ) if ((i = x.find[h]) && (d = i(g.matches[0].replace(va, wa), ta.test(f[0].type) && l(b.parentNode) || b))) {
          if (f.splice(e, 1), a = d.length && n(f), !a) return aa.apply(c, d),
          c;
          break
        }
      }
      return (j || B(a, k)) (d, b, !J, c, ta.test(a) && l(b.parentNode) || b),
      c
    },
    w.sortStable = O.split('').sort(V).join('') === O,
    w.detectDuplicates = !!F,
    G(),
    w.sortDetached = f(function (a) {
      return 1 & a.compareDocumentPosition(H.createElement('div'))
    }),
    f(function (a) {
      return a.innerHTML = '<a href=\'#\'></a>',
      '#' === a.firstChild.getAttribute('href')
    }) || g('type|href|height|width', function (a, b, c) {
      if (!c) return a.getAttribute(b, 'type' === b.toLowerCase() ? 1 : 2)
    }),
    w.attributes && f(function (a) {
      return a.innerHTML = '<input/>',
      a.firstChild.setAttribute('value', ''),
      '' === a.firstChild.getAttribute('value')
    }) || g('value', function (a, b, c) {
      if (!c && 'input' === a.nodeName.toLowerCase()) return a.defaultValue
    }),
    f(function (a) {
      return null == a.getAttribute('disabled')
    }) || g(da, function (a, b, c) {
      var d;
      if (!c) return a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
    }),
    'function' == typeof d && d.amd ? d(function () {
      return b
    }) : 'undefined' != typeof module && module.exports ? module.exports = b : a.Sizzle = b
  }(window),
  c.browser = function () {
    var a,
    b = {
    },
    d = navigator.userAgent.toLowerCase().replace(/\s*[()]\s*/g, '; ').replace(/(\/[\w.]+)\s+/g, '$1; ').replace(/\;\s*$/, '').split(/;\s*/);
    return c.each(d, function (c) {
      a = (/[\/ :]([^\/ :]+)$/.exec(c) || [
      ]) [1],
      b[a ? c.substr(0, c.length - a.length - 1).replace(/\d*$/, '') : c] = a || !0
    }),
    {
      aol: b.aol,
      blackberry: b.blackberry,
      firefox: b.firefox,
      ie: Boolean(b.msie || b.trident),
      ios: Boolean(b.applewebkit && b.mobile),
      opera: b.opera,
      playstation: b.playstation,
      version: parseFloat(b.version || b.crios || b.msie || b.rv || b.firefox) || !1
    }
  }(),
  c.page = function () {
    var a,
    b = c.rootContext(window),
    d = function () {
      return c.map(c.select('meta[name=\'description\' i]').slice(0, 1), function (a) {
        return a.getAttribute('content')
      }) [0]
    },
    e = function () {
      var a = c.css(document.body, 'font-size');
      if (a) return parseFloat(a)
    },
    f = {
      description: d(),
      font_size: e(),
      referrer: b.document.referrer,
      title: b.document.title
    };
    for (a in f) f[a] = f[a] || null;
    return f
  }(),
  c.harmony = {
    PASSIVE: 1,
    UNSAFE_QUIRKSMODE_EVENTS: 0.5,
    COMMERCIAL_LINK_EVENTS: 0.1,
    LINK_EVENTS: - 1,
    AGGRESSIVE: - 1
  },
  c.harmony.DEFAULT = 0,
  c.pii = function () {
    var a = {
      email: /[A-Z0-9._%+-]+(?:%(?:25)*40|@)[A-Z0-9.-]+\.[A-Z]{2,4}/,
      numeric: /\d([^0-9A-Z]{0,4}\d){6,18}/
    },
    b = {
      contains: function (a, b) {
        return this.regexp(b).test(a)
      },
      redact: function (a, b) {
        return a.replace(this.regexp(b), '___')
      },
      regexp: function (b) {
        var b = c.extend({
        }, b),
        d = c.map(c.all(a, function (a, c) {
          return b[c] !== !1
        }), function (a) {
          return a.source
        });
        return new RegExp('(\\b' + d.join('\\b|\\b') + '\\b)', 'gi')
      },
      transmits: function (a, b) {
        return this.contains(a + ' ' + document.referrer, b || {
          numeric: !1
        })
      }
    };
    return {
      contains: c.bind(b.contains, b),
      redact: c.bind(b.redact, b),
      transmits: c.bind(b.transmits, b)
    }
  }(),
  c.platforms = function () {
    var a = ' ',
    b = {
      NONE: {
        id: 'full',
        scope: 'body',
        spec: {
          selector: 'body'
        }
      },
      bbp: {
        spec: {
          parser: /^post-(\d+)$/,
          selector: 'div[id^=\'post-\']'
        },
        scope: 'li .post'
      },
      hdlr: {
        spec: {
          parser: /^post_(\d+)$/,
          selector: 'div[id^=\'post_\']'
        },
        scope: '.post-content-area'
      },
      ipb: {
        spec: {
          parser: /^post_id_(\d+)$/,
          selector: 'div[id^=\'post_id_\']'
        },
        scope: '.post_body .post'
      },
      phpb: {
        spec: {
          parser: /^p(\d+)$/,
          selector: 'div.post[id^=\'p\']'
        },
        scope: [
          '.postbody .content',
          '.postbody .signature'
        ].join(',')
      },
      ubb: {
        spec: {
          parser: /^number(\d+)$/,
          parse_el: 'span[id^=number]',
          selector: 'a[name^=\'Post\'] ~ table'
        },
        scope: [
          '.post_inner *[id^=\'body\']',
          '.post_inner .signature'
        ].join(',')
      },
      vb3: {
        spec: {
          parser: /^post_message_(\d+)$/,
          selector: [
            'div[id^=\'post_message_\'], table[id^=\'post_message_\']',
            'section[id^=\'post_message_\']'
          ].join(',')
        },
        scope: [
          'div[id^=\'post_message_\']',
          'div[id^=\'post_message_\'] ~ div:not([class])'
        ].join(',')
      },
      vb4: {
        spec: {
          parser: /^post_(\d+)$/,
          selector: 'li[id^=\'post_\']'
        },
        scope: [
          '.post-content',
          '.postbody .content',
          '.postbody .signature',
          'ul.conversation-list .list-item-body'
        ].join(',')
      },
      wppr: {
        spec: {
          attributes: [
            'id',
            'className'
          ],
          parser: /(?:^|\s)post-(\d+)(?:\s|$)/,
          selector: 'article[class*=\'post-\'], div[id^=\'post-\']'
        }
      }
    },
    d = {
      getPostId: function (b) {
        var d,
        e;
        return this === c.platforms.NONE ? a : (e = this.spec.parse_el ? c.select(this.spec.parse_el, b) [0] : b, c.find(this.spec.attributes || [
          'id'
        ], c.bind(function (a) {
          return d = e[a] ? e[a].match(this.spec.parser) : null,
          Boolean(d)
        }, this)), d ? d[1] : void 0)
      },
      getPostIds: function (a) {
        var b = [
        ];
        return c.each(this.getPosts(a), c.bind(function (a) {
          var d = this.getPostId(a);
          d && !c.contains(b, d) && b.push(d)
        }, this)),
        b.length ? b : null
      },
      getPosts: function (a) {
        var b = [
        ];
        return !a && document && document.body && (a = [
          document.body
        ]),
        a && this.spec && (b = c.withScope(a, this.spec.selector, {
          consolidate: !0
        })),
        b
      }
    };
    return c.each(b, function (a, e) {
      a.id = a.id || e,
      c.each(d, function (b, d) {
        a[d] = c.bind(b, a)
      }),
      b[e] = a
    }),
    b.DEFAULT_POST_ID = a,
    b.findById = function (a) {
      return c.find(c.platforms, function (b) {
        return b.id === a
      })
    },
    b
  }(),
  c.observer = function () {
    var a,
    b = [
    ],
    d = 0,
    e = function () {
      a || (a = new MutationObserver(c.entryPoint(function (a) {
        var d = [
        ];
        c.each(a, function (a) {
          var b = [
          ];
          'characterData' === a.type ? a.target && (b = [
            a.target
          ]) : 'attributes' === a.type ? b = [
            a.target
          ] : a.addedNodes && a.addedNodes.length && (b = c.toArray(a.addedNodes)),
          b.length && (d = d.concat(b))
        }),
        d.length > 0 && c.each(b, function (a) {
          a.callback(d)
        })
      })))
    },
    f = function (b) {
      var f = {
        attributes: !1,
        characterData: !1,
        childList: !1,
        subtree: !0
      };
      d || (e(), b.opts.attributes && (f = c.extend(f, {
        attributes: !0
      }), 'array' === c.type(b.opts.attributes) && (f = c.extend(f, {
        attributeFilter: b.opts.attributes
      }))), b.opts.content && (f = c.extend(f, {
        characterData: !0,
        childList: !0
      })), a.observe(b.context, f))
    };
    return {
      start: function (a, d, e) {
        a.document && (a = a.document);
        var g,
        d = c.extend({
          attributes: !1,
          content: !0
        }, d);
        c.traits.mutation && c.contains(['document',
        'element'], c.type(a)) && (g = {
          callback: e,
          context: a,
          opts: d
        }, b.push(g), f(g))
      },
      pause: function () {
        d++,
        a && a.disconnect()
      },
      resume: function () {
        d--,
        c.each(b, f)
      }
    }
  }(),
  c.traits = {
    basicCompatibility: !(c.browser.blackberry || c.browser.playstation),
    cors: window.XMLHttpRequest && void 0 !== (new window.XMLHttpRequest).withCredentials,
    crossWindowCommunication: !c.browser.ios,
    fastRegexp: !c.browser.firefox,
    json: Boolean(window.JSON) && Boolean(window.JSON.stringify) && Boolean(window.JSON.parse),
    jsRedirectSetsReferrer: c.browser.aol || !(c.browser.ie || c.browser.opera),
    mutation: window.MutationObserver && !c.browser.ie,
    performanceTimingApi: Boolean(window.performance && window.performance.mark && window.performance.measure && window.performance.now && window.performance.getEntriesByName),
    performanceNavigationTiming: Boolean(window.performance && window.performance.getEntriesByType && window.performance.getEntriesByType('navigation') && window.performance.getEntriesByType('navigation') [0] && window.performance.getEntriesByType('navigation') [0].domInteractive),
    referrerPolicy: !c.browser.ie,
    quirksMode: !Boolean(window.addEventListener),
    windowLevelHandlers: Boolean(window.addEventListener)
  };
  var e,
  f,
  g,
  h,
  b;
  b = {
    EVENT_LEVEL_LINK: 1,
    EVENT_LEVEL_TOP: 2,
    PLUGIN_MANUAL: 1,
    TYPE_ACCEPTABLE: 'l',
    allowed: function () {
      var a;
      return function () {
        return a || (a = c.generateNodeFilter({
          classes: [
            'novig'
          ],
          rels: [
            'novig'
          ],
          selectors: e.exclude_scope,
          tags: [
            'applet',
            'embed',
            'noscript',
            'object',
            'head',
            'img',
            'input',
            'link',
            'meta',
            'param',
            'select',
            'button',
            'iframe',
            'option',
            'script',
            'style',
            'svg',
            'textarea',
            'title'
          ],
          custom: function (a, d, f, g) {
            if (!e.whitelist || g.skipWhitelist) return !1;
            if (d) f.passed = !1;
             else if (f.passed) return !1;
            var h = b.whitelistNodes();
            return f.passed = f.passed || h && h.length && c.contains(h, a),
            !1
          }
        })),
        a.apply(b, arguments)
      }
    }(),
    api: function () {
      var a,
      b = function () {
        var a = {
          optimize: 'content',
          domains: 'content'
        },
        b = function (a, b) {
          return b = c.extend(c.commonParams(a, e), b),
          b.subId && b.key !== e.key && (b.subId = null),
          b
        };
        return function (d, e, g) {
          var h = c.toArray(arguments).slice(3, arguments.length),
          i = a[d];
          return Boolean(i) && (g = c.extend({
          }, g, {
            json_payload: i
          })),
          {
            data: h,
            method: d,
            opts: f(g),
            params: b(d, e)
          }
        }
      }(),
      d = function (a) {
        var b = {
        },
        d = {
        };
        return c.each(a, function (a) {
          var g = a[0],
          h = a[1],
          i = a[2] || {
          },
          j = c.toArray(a).slice(3, a.length);
          d[g] = c.mergeParams(d[g] || c.commonParams(g, e), h),
          b[g] = b[g] || [
          ],
          b[g].push({
            data: j,
            opts: f(i)
          })
        }),
        {
          calls: b,
          params: d
        }
      },
      f = function (a) {
        return a = a || {
        },
        'function' === c.type(a.fn) && (a.fn = function (b) {
          return function (d) {
            var e,
            f = d.response ? d.response[0] : null;
            return 'object' === c.type(f) && 'array' === c.type(f.crawl) && 'object' === c.type(h.crawler) && 'function' === c.type(h.crawler.crawl) && (e = c.map(f.crawl, function (a) {
              return a + ''
            }), delete f.crawl, h.crawler.crawl(e)),
            b.apply(a, arguments)
          }
        }(a.fn)),
        a
      },
      g = function (a) {
        var b,
        d = a.opts.base_url || e.api_url,
        f = a.opts.path || '/' + a.method;
        return delete a.opts.base_url,
        b = [
          d + f,
          a.params,
          a.opts
        ],
        c.request.apply(c, b.concat(a.data))
      },
      i = function (a, b, d) {
        c.each(b, function (b) {
          b && b.opts && b.opts.fn && a && b.opts.fn({
            response: c.packageArgs(a),
            data: b.data,
            args: d
          })
        })
      };
      return a = {
        batch: function () {
          var a = function (a) {
            var b = a.data[0].params,
            d = a.data[0].calls,
            e = c.fromJSON(a.response[0]) || {
            };
            c.each(e, function (a, e) {
              var f,
              g = b[e],
              h = d[e];
              'string' === c.type(a) && (f = a.match(/^[^(]+\((.*)\);?\s*$/)) && (a = c.fromJSON(f[1])),
              i(a, h, g)
            })
          };
          return function (b) {
            var f = d(b, !0);
            g({
              data: f,
              method: 'batch',
              params: c.extend(c.commonParams('batch', e), f.params),
              opts: {
                json_payload: 'batch',
                jsonp: !1,
                fn: c.bind(a, window)
              }
            })
          }
        }(),
        merge: function (a, e, f) {
          var h,
          j = d(a, !1);
          return h = c.reduce({
          }, j.calls[f], function (a, b) {
            return {
              jsonp: a.jsonp || !b.opts || b.opts.jsonp !== !1,
              ssl: a.ssl || !b.opts || b.opts.ssl !== !1
            }
          }),
          g(b(e, j.params[e], {
            fn: function (a) {
              i(a.response[0], j.calls[e], j.params[e])
            },
            jsonp: h.jsonp,
            ssl: h.ssl
          }, j))
        },
        single: function () {
          return g(b.apply(this, arguments))
        }
      },
      c.batchable(function () {
        var b,
        d;
        return c.batched(arguments) ? (b = c.batchArgs(arguments), d = c.batchCallType(b), 'batch' === d ? a.batch.call(this, b) : a.merge.call(this, b, d)) : a.single.apply(this, arguments)
      }, function () {
        return {
          batch: e.batch_calls,
          timeout: e.batch_call_timeout
        }
      })
    }(),
    addEventListener: function (a, b) {
      this.fire(a, b)
    },
    click: function () {
      var a = function (a, b) {
        if (!('_self' === b || c.traits.crossWindowCommunication && c.traits.jsRedirectSetsReferrer)) return 'go';
        try {
          if (void 0 === a.document) throw !0;
          return 'jsonp'
        } catch (d) {
          return 'go'
        }
      },
      d = function (a, b) {
        if ('_self' === b) return a;
        if (c.traits.crossWindowCommunication && c.traits.jsRedirectSetsReferrer) {
          var d = a.open('', b);
          return d.focus(),
          d
        }
      },
      f = function (a) {
        var d,
        e = a.previousSibling,
        f = a.nextSibling,
        g = [
          '',
          a.textContent,
          ''
        ],
        h = 10,
        i = function (a, b) {
          for (var c = a, d = c.data; (c = c[b + 'Sibling']) && 3 === c.nodeType; ) d += c.data;
          return d
        },
        j = function (a, b, c) {
          var d = function (a) {
            return a.replace(/\s+/g, ' ')
          };
          return a = d(a),
          b = d(b),
          c = d(c),
          a = a.replace(/^\s+/, ''),
          ' ' === b.substr(0, 1) && (b = b.substr(1), a += ' ' !== a.substr(a.length - 1, 1) ? ' ' : ''),
          ' ' === b.substr(b.length - 1, 1) && (b = b.substr(0, b.length - 1), c = (' ' !== c.substr(0, 1) ? ' ' : '') + c),
          c = c.replace(/\s+$/, ''),
          [
            a,
            b,
            c
          ]
        };
        void 0 !== g[1] && (g[0] = e && 3 === e.nodeType ? i(e, 'previous') : '', g[2] = f && 3 === f.nodeType ? i(f, 'next') : '', g = j.apply(this, g), '' !== g[0] && '' !== g[2] && (g[0] = g[0].split(' ').reverse().slice(0, h + (' ' === g[0].substr(g[0].length - 1, 1) ? 1 : 0)).reverse().join(' '), g[2] = g[2].split(' ').slice(0, h).join(' '), d = {
          type: 'context',
          itype: (c.cache(a, 'params') || {
          }).type,
          before: g[0],
          after: g[2],
          txt: g[1],
          loc: window.document.location.href,
          out: c.getActualHref(a),
          v: 2
        }, b.log('info', c.toQuery(d))))
      };
      return function (b, g) {
        var h,
        i,
        j,
        k,
        l,
        m = {
        },
        n = c.context(b) || window;
        if (g = b.target || g, g = !g || g === n.name || '_top' === g && n.top === n || '_parent' === g && n.parent === n ? '_self' : g, k = d(n, g), l = a(k, g), h = c.destructing(c.apiCallback(function () {
          this.eventTimer.stop('clk');
          var a = c.toArray(arguments);
          a.unshift(b, k, g),
          this.onApiClick.apply(this, a)
        }, this)), c.cache(this, 'link', 'string' == typeof b ? b : c.getActualHref(b)), 'string' == typeof b && (b = c.createA(b, g), !this.processLink(b))) return h();
        if (!e.enabled) return h();
        if (!c.traits.referrerPolicy && this.isPrivate(b) && (l = 'go'), i = this.clickParams(b, l), this.eventTimer.start('clk'), e.log_context && f(b), 'go' === l) j = this.redirectUrl(i, m),
        this.redirect(j, n, k, g);
         else if (k === n) this.api.now('click', i, c.extend(m, {
          fn: h,
          timeout: e.click_timeout
        }));
         else {
          if (c.contextIsAncestor(n, k)) return this.redirect(c.getActualHref(b), n, k, g);
          h = c.entryPoint(h),
          setTimeout(function () {
            h()
          }, e.click_timeout),
          k.document.open(),
          k.callback = h,
          k.document.write('<html><head><title>' + c.getActualHref(b) + '</title><script type="text/javascript" src="' + this.api.now('click', i, c.extend(m, {
            fn: 'callback',
            'return': !0
          })) + '"></script></head></html>'),
          k.document.close()
        }
      }
    }(),
    clickParams: function (a, b) {
      var d = c.extend(c.cache(a, 'params'), c.cache('opt_params'), {
        format: b,
        out: c.getActualHref(a),
        reaf: e.reaffiliate || null,
        ref: c.page.referrer || null,
        rewrit: c.cache(a, 'rewrit'),
        title: c.page.title,
        txt: a.innerHTML
      });
      return d.txt.length > 128 && (d.txt = d.txt.replace(/<[^>]+>/g, ''), d.txt = d.txt.length > 128 ? d.txt.substr(0, 125) + '...' : d.txt),
      d
    },
    detectFiltering: function () {
      var a;
      try {
        a = {
        },
        a = new function () {
          this.detect = function (a, b) {
            function c(a, b) {
              0 == f || b > 1000 ? a(0 == f && e) : setTimeout(function () {
                c(a, 2 * b)
              }, 2 * b)
            }
            function d() {
              --f || (e = !g && h)
            }
            var e = !1,
            f = 2,
            g = !1,
            h = !1;
            if ('function' == typeof b) {
              a += '?ch=*&rn=*';
              var i = 11 * Math.random(),
              j = new Image;
              j.onload = d,
              j.onerror = function () {
                g = !0,
                d()
              },
              j.src = a.replace(/\*/, 1).replace(/\*/, i);
              var k = new Image;
              k.onload = d,
              k.onerror = function () {
                h = !0,
                d()
              },
              k.src = a.replace(/\*/, 2).replace(/\*/, i),
              c(b, 250)
            }
          }
        }
      } catch (b) {
        a = {
          detect: function (a, b) {
            b(!0)
          }
        }
      }
      return function (b) {
        var d = c.updateUrl(e.asset_url, {
          pathname: '/images/pixel.gif'
        });
        a.detect(d, b)
      }
    }(),
    enabled: function () {
      return e.enabled && g !== window && window.vglnk && (window.vglnk.key || 'function' == typeof window.vglnk) && (e.enabled = !1),
      e.enabled
    },
    expose: function () {
      var a = function (a, b) {
        return 'function' === c.type(a) ? c.entryPoint(c.bind(a, b)) : a
      };
      return function (c, d) {
        d = d || this[c],
        d && !h[c] && (h[c] = a(d, b))
      }
    }(),
    fire: function () {
      var a = {
      };
      return function (b, d) {
        b = b.toLowerCase();
        var e = a[b] || {
          fired: !1,
          listeners: [
          ]
        },
        f = function (a) {
          a({
            type: b
          })
        };
        'function' == typeof d ? e.fired ? setTimeout(function () {
          f(d)
        }, 0) : e.listeners.push(d) : (e.fired = !0, c.each(e.listeners, function (a) {
          'function' == typeof a && f(a)
        }), e.listeners = [
        ]),
        a[b] = e
      }
    }(),
    handleRightClick: function (a, b) {
      if (e.rewrite_modified && a && b) switch (b) {
        case 'setup':
          c.cache(a, 'href') || c.cache(a, 'href', a.href),
          a.href = this.redirectUrl(this.clickParams(a, 'go')),
          setTimeout(c.entryPoint(c.bind(function () {
            this.handleRightClick(a, 'teardown')
          }, this)), 0);
          break;
        case 'teardown':
          c.cache(a, 'href') && (a.href = c.cache(a, 'href'))
      }
    },
    harmony: function (a) {
      return e.harmony_level <= a
    },
    init: function () {
      var a = function () {
        var a = '__v5k',
        b = c.rootContext(window),
        d = b[a] === !0;
        return b[a] = !0,
        !d
      };
      return function () {
        var b = this;
        if (f = {
        }, a()) {
          try {
            b.initLibEvents(),
            b.initNamespace(),
            b.initOptions()
          } catch (d) {
          }
          return c.exceptionLogger(c.bind(b.logException, b), !e.dev),
          c.each(e.script_timeout),
          c.entryPoint(function () {
            b.initProcessors(),
            b.initDRApi(),
            b.initApi(),
            b.enabled() && (b.initLegacyCallbacks(), b.ping())
          }) ()
        }
      }
    }(),
    initApi: function () {
      var d,
      f = {
      };
      if (window.vglnk) for (d in window.vglnk) '_plugin' === d.substr( - 7) && (f[d] = window.vglnk[d]);
      h = g[a] = c.noop,
      this.expose('click'),
      this.expose('link', c.bind(function (a) {
        'element' === c.type(a) && a.href && (this.initContext(c.context(a)), this.processLink(a))
      }, this)),
      this.expose('open', c.bind(this.click, this)),
      this.expose('$', c.clone(c)),
      this.expose('allowed'),
      this.expose('api'),
      this.expose('apiNow', c.bind(this.api.now, this.api)),
      this.expose('harmony'),
      this.expose('isBlacklisted'),
      this.expose('isCommercial'),
      this.expose('initLinks'),
      this.expose('opt'),
      this.expose('platform'),
      this.expose('sendLinks'),
      this.expose('clickParams', function () {
        return c.extend(c.commonParams('click', e), b.clickParams.apply(b, arguments))
      }),
      this.expose('registerProcessor', function () {
        if (arguments.length > 0) return b.registerProcessor.apply(b, arguments)
      }),
      c.extend(h, h === window.vglnk ? f : {
      })
    },
    initContext: function () {
      var a = [
      ];
      return function (b) {
        return void 0 === b ? a : void (b && !c.contains(a, b) && (a.push(b), this.initLinks(b), this.initEvents(b)))
      }
    }(),
    initDomObserver: function (a, d) {
      c.observer.start(a, d, c.batchable(function (a) {
        c.batched(arguments) && (a = c.reduce([], c.batchArgs(arguments, 0), function (a, b) {
          return a.concat(b)
        })),
        e.whitelist && b.whitelistNodes(!0),
        a = c.all(c.unique(a), function (a) {
          return Boolean(a.parentNode) && b.allowed(a)
        }),
        a.length > 0 && (b.processLinks(c.links(a)), c.each(f, function (c, d) {
          c.opts.mode !== b.PLUGIN_MANUAL && b.runPlugin(d, a)
        }))
      }, function () {
        return {
          batch: e.batch_mutation,
          timeout: e.batch_mutation_timeout
        }
      }))
    },
    initDRApi: function () {
      var a = !1;
      window.DrivingRevenue = c.entryPoint(c.destructing(c.bind(function () {
        a = !0,
        e.dr_key = window.DR_id,
        this.enabled() && this.ping()
      }, this))),
      c.on('DOMReady', function () {
        if (!a) try {
          delete window.DrivingRevenue
        } catch (b) {
          window.DrivingRevenue = void 0
        }
      })
    },
    initEvents: function (a) {
      var d = c.traits.windowLevelHandlers ? a : a.document,
      f = function (d) {
        d = d || a.event;
        var e = c.eventLink(d);
        e && !c.cache(e, 'evented') && (h(b.EVENT_LEVEL_LINK, e), c.cache(e, 'evented', !0))
      },
      g = function (a, d) {
        return function () {
          var e = [
            a
          ].concat(c.toArray(arguments));
          d.apply(b, e)
        }
      },
      h = function (a, d) {
        c.on(d, 'click', g(a, b.onClick)),
        c.on(d, 'contextmenu', g(a, b.onContextmenu))
      };
      e.dynamic && c.on('DOMReady', function () {
        b.initDomObserver(a),
        e.dynamic_scope && c.each(c.select(e.dynamic_scope, a.document), function (a) {
          b.initDomObserver(a, {
            attributes: [
              'class',
              'id',
              'style'
            ],
            content: !1
          })
        })
      }),
      c.on(d, 'copy', c.bind(b.onCopy, b)),
      c.on(d, 'mousedown', f),
      c.on('DOMReady', function () {
        c.each(a.document.links, function (a) {
          c.on(a, 'mousedown', f)
        })
      }),
      c.traits.quirksMode && !b.harmony(c.harmony.UNSAFE_QUIRKSMODE_EVENTS) || h(b.EVENT_LEVEL_TOP, d)
    },
    initLegacyOptions: function () {
      var a,
      b = {
        DR_id: 'dr_key',
        vglnk_api_key: 'key',
        vglnk_cuid: 'cuid',
        vglnk_domain: 'api_url',
        vglnk_reaf: 'reaffiliate',
        vglnk_subid: 'sub_id'
      };
      for (a in b) void 0 !== window[a] && (h[b[a]] = window[a], 'vglnk_domain' === a && (h[b[a]] += '/api'))
    },
    initLegacyCallbacks: function () {
      var a,
      b = {
        vl_cB: c.bind(this.onApiClick, this),
        vl_disable: function () {
          e.enabled = !1
        }
      };
      for (a in b) window[a] = b[a]
    },
    initLibEvents: function () {
      c.on(b),
      c.ready(c.bind(function () {
        this.fire('DOMReady')
      }, this))
    },
    initLinks: function (a) {
      var b = c.bind(function (a) {
        this.processLinks(c.toArray(a.document.links))
      }, this);
      void 0 === a ? c.each(this.initContext(), b) : b(a)
    },
    initNamespace: function () {
      window.vglnk && window.vglnk.key && (a = 'vglnk');
      var b,
      c = window,
      d = a.split('.');
      for (a = d.pop(); d.length > 0; ) b = d.shift(),
      c[b] = c[b] || {
      },
      c = c[b];
      g = c,
      h = g[a] = g[a] || {
      }
    },
    initOptions: function () {
      var a;
      this.initLegacyOptions(),
      e = c.extend(this.publicOptions({
        anywhere_url: '//redirect.viglink.com',
        api_url: '//api.viglink.com/api',
        asset_url: '//cdn.viglink.com/api',
        cuid: null,
        dev: !1,
        dr_key: null,
        enabled: c.traits.basicCompatibility,
        key: null,
        link_urls: !0,
        partner: null,
        platform: c.platforms.NONE.id,
        reaffiliate: !1,
        sub_id: null,
        sync_url: '//api.viglink.com/api',
        whitelist: !1,
        blacklist_domains: null,
        commercial_domains: null,
        harmony_level: c.harmony.DEFAULT,
        link_target: null,
        private_domains: null,
        rewrite_any: !0,
        rewrite_modified: !1,
        rewrite_original: !0
      }), e, h, {
        batch_calls: !0,
        batch_call_timeout: 100,
        batch_links: !1,
        batch_mutation: !0,
        batch_mutation_timeout: 250,
        click_timeout: 1000,
        debug: !1,
        debug_performance: !1,
        declare_handler: !1,
        dynamic: !0,
        dynamic_scope: null,
        exclude_scope: null,
        hop_timeout: 2000,
        insert_host: 'i.viglink.com',
        library_id: null,
        links_merge_timeout: 75,
        links_version: '3.2',
        log_context: !0,
        nofollow: {
        },
        norewrite: {
        },
        script_timeout: 2000,
        testing_js: [
        ],
        time: !1,
        time_log_timeout: 3000,
        plugins: {
          crawler: {
          },
          harmony: {
          },
          link_affiliation: {
          },
          modified_clicks: {
          }
        }
      }),
      e.sync_url = e.sync_url || e.api_url;
      for (a in e) '_plugin' === a.substr( - 7) && delete e[a]
    },
    initPlugins: function () {
      var a,
      d = 100,
      g = 5000,
      i = 1,
      j = {
        link_affiliation: 'convert',
        link_optimization: 'optimize',
        page_harmony: 'harmony',
        partner_integration: 'partners',
        product_linker: 'insert',
        product_widget: 'spotlight'
      },
      k = [
        'spotlight'
      ],
      l = [
        'harmony'
      ],
      m = function (b) {
        return function (b) {
          return function () {
            delete f[b].opts.mode,
            i = 1,
            clearTimeout(a),
            o()
          }
        }(b)
      },
      n = function (a) {
        var b;
        return c.find(j, function (a, c) {
          return 'insert' === a && (b = c)
        }),
        a[b] || (a[b] = {
          enabled: !0,
          key: e.key,
          link_phrases: !1
        }),
        a[b].link_urls = e.link_urls,
        a
      },
      o = function () {
        var j = {
          _ran: !1,
          init: c.noop,
          initDocuments: c.noop,
          initNodes: c.noop,
          'public': {
          }
        },
        k = function (a, d) {
          a.setup = a.setup || (window.vglnk ? window.vglnk[d + '_plugin'] : null),
          n(a) && (p(a) || (a = c.extend(a, j, a.setup(c.reformatKeys(a.opts), c.clone(c), h, m(e.key))), a['public'] && b.expose(d, a['public'], !1)), a.opts.mode !== b.PLUGIN_MANUAL && b.runPlugin(d))
        },
        m = function (a) {
          var d = function () {
            if (a) {
              var d = c.toArray(arguments);
              d.unshift('custom', a),
              b.log.apply(this, d)
            }
          };
          return d.eventTimer = b.eventTimer,
          d
        },
        n = function (a) {
          return 'function' === c.type(a.setup)
        },
        p = function (a) {
          return Boolean(a.initDocuments)
        },
        q = function (a) {
          return Boolean(a._ran)
        },
        r = function (a) {
          return !q(a)
        };
        a = null,
        c.each(l, function (a) {
          var b = f[a];
          b && r(b) && k(b, a)
        }),
        c.each(c.all(f, r), k),
        c.find(f, r) && (a = setTimeout(c.entryPoint(o), Math.min(Math.max(Math.pow(2, ++i), d), g)))
      },
      p = function () {
        var a = !1,
        d = 100;
        setTimeout(function () {
          b.api.flush()
        }, d),
        o(),
        c.on('DOMReady', function () {
          a = !0,
          setTimeout(b.api.flush, 0)
        })
      };
      return function (a) {
        a = n(a),
        c.each(a, c.bind(function (a, b) {
          b = j[b] || b,
          'object' == typeof a && a.enabled !== !1 && (f[b] = {
            opts: a
          }, c.contains(k, b) && c.jsonp(this.opt('asset_url') + '/plugins/' + b + '.js'), a.mode === this.PLUGIN_MANUAL && this.expose('init_' + b, m(b)))
        }, this)),
        p()
      }
    }(),
    initProcessors: function () {
      this.registerProcessor(function (a) {
        var b,
        d = c.createA(e.api_url);
        '/api/click' !== a.pathname || a.hostname !== d.hostname && !a.hostname.match(/(^|\.)(api|cdn|apicdn)\.viglink\.com$/) || (b = c.fromQuery(a.search), void 0 !== b.out && (a.href = b.out, delete b.out, c.cache(a, 'params', b)))
      }),
      this.registerProcessor(function (a) {
        e.nofollow[a.href] && !c.hasRel(a, 'nofollow') && (a.rel = (a.rel ? a.rel + ' ' : '') + 'nofollow')
      }),
      this.registerProcessor(function (a) {
        e.declare_handler && c.attributes(a, {
          'data-hl': 'viglink'
        })
      }),
      this.registerProcessor(function (a) {
        window.IPBoard && window.IPBoard.prototype && window.IPBoard.prototype.delegate && c.hasRel(a, 'external') && (a.rel = a.rel.replace(/(^| )external( |$)/, ''), a.target = '_blank')
      }),
      this.registerProcessor(function () {
        c.each(c.select('.vl_disclosure'), function (a) {
          var b,
          d;
          b = c.createEl(a.tagName, {
            height: 0,
            visibility: 'hidden'
          }),
          document.body.appendChild(b),
          d = c.css(b, 'display'),
          document.body.removeChild(b),
          c.css(a, {
            display: d
          })
        })
      })
    },
    isAuctionLink: function (a) {
      return c.cache(a, 'auctioned') === !0
    },
    isBlacklisted: function (a) {
      return 'object' === c.type(e.blacklist_domains) && e.blacklist_domains[c.canonicalizeHostname(a)]
    },
    isCommercial: function (a) {
      return this.loadedCommercial() && e.commercial_domains[c.canonicalizeHostname(a)]
    },
    isPrivate: function (a) {
      if ('array' !== c.type(e.private_domains)) return !1;
      var b = c.canonicalizeHostname(a);
      return c.find(e.private_domains, function (a) {
        return new RegExp('(^|\\.)' + c.escapeRegExp(a) + '$', 'i').test(b)
      })
    },
    isRewritable: function () {
      var a = c.canonicalizeHostname(document.location),
      d = function (a) {
        var b = c.cache(a, 'type'),
        d = c.cache(a, 'params') || {
        };
        return Boolean(b || d.type)
      },
      f = c.generateNodeFilter({
        classes: [
          'norewrite'
        ],
        rels: [
          'norewrite',
          'noskim'
        ],
        custom: function (f, g) {
          if (!g) return !1;
          var h = c.canonicalizeHostname(f),
          i = '',
          j = !1;
          try {
            i = f.protocol,
            h.charAt(0)
          } catch (k) {
            return !0
          }
          return j = Boolean('' === h || !i.match(/^https?:$/i) || e.norewrite[h]),
          j || d(f) || (j = Boolean(a === h || !e.rewrite_original || !e.rewrite_any && !b.isCommercial(f))),
          j
        }
      });
      return function (a) {
        return f(a)
      }
    }(),
    loadedCommercial: function () {
      return 'object' === c.type(e.commercial_domains)
    },
    log: function (a, b, d, f) {
      var g,
      h,
      i,
      j = c.toQuery({
        libId: e.library_id,
        nocache: c.uniqid()
      }),
      k = 'pixel.gif';
      if ('custom' === a) h = b,
      a = d,
      j += '&' + c.toQuery({
        key: h,
        type: a
      }),
      c.each('array' === c.type(f) ? f : [
        f
      ], function (a) {
        c.each(['e',
        'i',
        'o'], function (b) {
          delete a[b]
        }),
        j += '&' + c.toQuery(a)
      });
       else {
        if (j += '&' + c.toQuery({
          key: e.key,
          drKey: e.key ? null : e.dr_key,
          subId: e.sub_id
        }), 'time' === a && c.traits.json) k = 'time.gif',
        g = {
          e: c.toJSON(b),
          v: 2
        };
         else if ('exception' === a) g = {
          e: b,
          o: d
        };
         else {
          if ('info' !== a) return;
          g = {
            i: b
          }
        }
        j += '&' + c.toQuery(g)
      }
      i = e.api_url + '/' + k + '?' + j,
      c.pii.transmits(i) || (c.createEl('img').src = i)
    },
    eventTimer: function () {
      var a,
      d,
      f = !1,
      g = {
      },
      h = 'viglink-',
      i = '-start',
      j = '-stop',
      k = function (a, b) {
        return function () {
          if (c.traits[b]) return a.apply(this, arguments)
        }
      },
      l = function (a, b) {
        return function () {
          var d = c.reduce(!1, b, function (a, b) {
            return a || e[b]
          });
          if (d) return a.apply(this, arguments)
        }
      },
      m = c.batchable(function () {
        var a,
        d = c.batched(arguments) ? c.batchArgs(arguments) : [
          arguments
        ];
        a = c.map(d, function (a) {
          return c.prune({
            event: a[0],
            time: a[1],
            total: a[2]
          })
        }),
        a.length && b.log('time', a)
      }, function () {
        return {
          timeout: e.time_log_timeout
        }
      }),
      n = l(m, [
        'time'
      ]),
      o = function (a) {
        var b = h + a + i;
        window.performance.mark(b)
      },
      p = function (b, e) {
        var k,
        l = g[b] || 0,
        m = h + b,
        o = h + b + i,
        p = h + b + j;
        window.performance.mark(p),
        window.performance.measure(m, o, p),
        k = window.performance.getEntriesByName(m, 'measure'),
        k = k.slice(l),
        g[b] = l + k.length,
        e || c.each(k, function (c) {
          var d = c.duration,
          e = c.startTime - a;
          n(b, d, e)
        }),
        f || (f = !0, n('load', d - a, d - a))
      };
      return a = c.traits.performanceNavigationTiming ? window.performance.getEntriesByType('navigation') [0].domInteractive : 0,
      c.traits.performanceTimingApi && (d = window.performance.now()),
      {
        force: k(o, 'performanceTimingApi'),
        start: k(l(o, [
          'debug_performance',
          'time'
        ]), 'performanceTimingApi'),
        stop: k(l(p, [
          'debug_performance',
          'time'
        ]), 'performanceTimingApi')
      }
    }(),
    logException: function (a) {
      if (e.debug) {
        var b = {
          link: c.cache(this, 'link'),
          loc: window.document.location.href,
          UA: navigator.userAgent
        };
        'string' == typeof a ? b.message = a : b = c.extend(b, a),
        this.log('exception', a, c.toQuery(b))
      }
    },
    onApiClick: function (a, b, d, f, g) {
      var h,
      i = f || c.getActualHref(a),
      j = c.bind(function () {
        this.redirect(i, c.context(a), b, d)
      }, this);
      'object' == typeof g && (g.tracking || g.image) ? (h = c.createEl(g.tracking ? 'iframe' : 'img', {
        src: g.tracking || g.image
      }, {
        height: 0,
        width: 0,
        visibility: 'hidden'
      }), document.body.appendChild(h), setTimeout(c.entryPoint(j), g.timeout || e.hop_timeout)) : j()
    },
    onApiPing: function (a, d, f, g, h, i) {
      e.rewrite_original = !1,
      h = c.reformatKeys(h || {
      });
      var j,
      k,
      l,
      m;
      k = function (a) {
        var b = {
        },
        d = function (a) {
          c.isArray(a) ? b[a[0]] = a[1] : b[a] = 1
        };
        return c.isArray(a) && c.each(a, d),
        b
      },
      c.exceptionLogger(function () {
        c.canonicalizeHostname(window.location).match(/(^|\.)cnn\.com$/) && (e.exclude_scope = [
          '#optanon',
          '.OUTBRAIN',
          '*[class*=outbrain]',
          '*[class*=partner]',
          '*[class*=sponsored]'
        ].join(','))
      }) (),
      c.exceptionLogger(function () {
        c.canonicalizeHostname(window.location).match(/^(www\.)?msn\.com$/) && (e.dynamic_scope = [
          '.gallery-container > .gallerydata',
          'section.gallery:first-child ~ .gallerydata'
        ].join(','), e.exclude_scope = [
          '*[class^=stb-]',
          '.sticky-footer'
        ].join(','), e.declare_handler = !0)
      }) (),
      l = c.extend(e.plugins, h.plugins),
      e = c.extend(e, h),
      delete e.plugins,
      e.click_timeout = d,
      e.library_id = a,
      this.eventTimer.stop('png'),
      'array' === c.type(e.testing_js) && e.testing_js.length > 0 && c.each(e.testing_js, function (a) {
        c.jsonp(a)
      }),
      c.extend(e.nofollow, k(i)),
      c.extend(e.norewrite, k(f));
      for (j in e) 'on' === j.toLowerCase().substr(0, 2) && j.length > 2 && 'function' === c.type(e[j]) && (c.on(b, j.toLowerCase().substr(2), c.bind(e[j], window)), delete e[j]);
      this.initPlugins(l),
      this.initContext(window),
      (m = c.rootContext(window)) && m !== window && this.initContext(m),
      this.fire('libready')
    },
    onClick: function (a, b) {
      b = b || window.event;
      var d = b.ctrlKey || b.metaKey || b.altKey || b.shiftKey,
      e = b.which && 1 === b.which || 0 === b.button,
      f = c.eventLink(b);
      if (f && e && !d && !c.isDefaultPrevented(b) && this.allowed(f) && this.isRewritable(f) && !this.isAuctionLink(f) && this.shouldHandleClick(a, f)) return this.click(f),
      c.preventDefault(b)
    },
    onContextmenu: function (a, b) {
      var d = c.eventLink(b || window.event);
      d && this.allowed(d) && this.isRewritable(d) && !this.isAuctionLink(d) && this.shouldHandleClick(a, d) && this.handleRightClick(d, 'setup')
    },
    onCopy: function (a) {
      a = a || window.event;
      var d,
      e,
      f,
      g,
      h = [
      ],
      i = 128;
      if (window.getSelection) for (f = window.getSelection(), d = 0, e = f.rangeCount; d < e; d++) {
        try {
          g = f.getRangeAt(d).toString().replace(/((^)\s+|\s+$|\r)/g, '').replace(/\s*\n\s*/g, '\n')
        } catch (j) {
        }
        g.length > 0 && g.length <= i && h.push(g)
      }
      c.each(h, function (a) {
        b.log('info', c.toQuery({
          type: 'selection',
          txt: a,
          loc: location.href
        }))
      })
    },
    opt: function (a, b) {
      return void 0 !== b && void 0 !== this.publicOptions() [a] && (e[a] = b),
      e[a]
    },
    ping: function () {
      var a = !1;
      return function () {
        if (!a && (e.key || e.dr_key)) {
          var b = {
            ref: document.referrer || null,
            v: 2
          };
          if (a = !0, c.pii.transmits(this.api.now('ping', b, {
            'return': !0
          }))) return;
          this.eventTimer.force('png'),
          this.detectFiltering(c.bind(function (a) {
            a && (e.batch_calls = !1, b.type = this.TYPE_ACCEPTABLE),
            this.api.now('ping', b, {
              fn: c.apiCallback(this.onApiPing, this)
            })
          }, this))
        }
      }
    }(),
    platform: function () {
      return c.platforms.findById(e.platform) || c.platforms.NONE
    },
    processLink: function (a) {
      var d = c.cache(a, 'processors') || {
      },
      f = this.allowed(a),
      g = this.isRewritable(a);
      return c.each(this.registerProcessor(), function (h) {
        if (h.opts.any || e.rewrite_any || b.loadedCommercial()) {
          if (!d[h.id] && f && (g || h.opts.any)) {
            var i;
            h.opts.scope && 'body' !== h.opts.scope && (i = c.some([h.opts.scope + ' a',
            h.opts.scope], function (b) {
              return c.matches(a, b)
            })),
            i !== !1 && h.fn(a)
          }
          d[h.id] = !0
        }
      }),
      c.cache(a, 'processors', d),
      a
    },
    processLinks: function (a) {
      c.each(a, c.bind(this.processLink, this))
    },
    publicOptions: function () {
      var a = {
      };
      return function (b) {
        return 'object' === c.type(b) && (a = b),
        c.extend({
        }, a)
      }
    }(),
    redirect: function (a, d, e, f) {
      var g,
      h,
      i = function (a, d, e) {
        var f,
        g = [
        ];
        if (c.traits.referrerPolicy) {
          f = function (a) {
            var b = d.document.createElement('meta');
            b.name = 'referrer',
            b.content = a,
            d.document.getElementsByTagName('head') [0].appendChild(b)
          },
          b.isPrivate(a) && (g = [
            f('no-referrer'),
            f('never')
          ]),
          e();
          try {
            c.each(g, function (a) {
              a.parentNode.removeChild(a)
            })
          } catch (h) {
          }
        } else e()
      };
      d = d || window.top,
      c.traits.crossWindowCommunication || e ? c.traits.jsRedirectSetsReferrer ? setTimeout(c.entryPoint(function () {
        e && e !== d ? c.contextIsAncestor(d, e) ? e.location = a : e.location.replace(a) : i(a, d, function () {
          d.location = a
        })
      }), 0) : ('_blank' === f && (f = c.uniqid('win_')), g = c.createA(a, f), g.rel = 'norewrite', d.document.body.appendChild(g), g.click(), g.parentNode.removeChild(g)) : (h = d.open(a, f), h.focus())
    },
    redirectUrl: function (a, b) {
      return b = b || {
      },
      this.api.now('click', a, c.extend(b, {
        base_url: e.anywhere_url,
        path: '/'
      }, {
        'return': !0
      }))
    },
    runPlugin: function (a, b) {
      var d = window.document,
      e = f[a];
      e && e.initDocuments && (b ? e.initNodes(b) : (e.init(), 'function' === c.type(e.initDocuments) && 'document' === c.type(d) && e.initDocuments([d]), 'function' === c.type(e.initNodes) && 'element' === c.type(d.body) && c.on('DOMReady', function () {
        e.initNodes([d.body])
      })), e._ran = !0)
    },
    registerProcessor: function () {
      var a = !1,
      b = [
      ],
      d = function (d, e) {
        return void 0 === d ? b : void ('function' === c.type(d) && (e = c.extend({
          any: !1,
          scope: null
        }, e), b.push({
          fn: d,
          id: c.uniqid(),
          opts: e
        }), a && this.initLinks()))
      };
      return d(function () {
        a = !0
      }, {
        any: !0
      }),
      d
    }(),
    sendLinks: c.mergeable(function () {
      return {
        batchFn: b.api,
        nonBatchFn: b.api.now,
        batchable: e.batch_links,
        timeout: e.links_merge_timeout
      }
    }),
    shouldHandleClick: function (a, b) {
      var d = !0,
      e = 'inserted' === c.cache(b, 'type');
      return a === this.EVENT_LEVEL_LINK && (d = this.harmony(c.harmony.LINK_EVENTS) || (this.isCommercial(b) || e) && this.harmony(c.harmony.COMMERCIAL_LINK_EVENTS)),
      d
    },
    whitelistNodes: function () {
      var a,
      b = '.allowvig';
      return function (d) {
        return a && !d || (a = c.select(b)),
        a
      }
    }()
  },
  b.init();
  try {
    delete window.vglnk_self
  } catch (i) {
  }
}('undefined' == typeof vglnk_self ? 'vglnk' : vglnk_self),
window.vglnk = window.vglnk || {
},
window.vglnk.convert_plugin = function (a, b, c) {
  var d,
  e,
  f = {
  },
  g = {
    seen: 1,
    called: 2
  };
  return a = b.extend({
    any: !0,
    convert_minimum_bid: !1,
    check_exp_domains: !0
  }, a),
  e = {
    getDomains: function () {
      var a = [
      ];
      b.each(f, function (b, c) {
        f[c] !== g.called && (a.push(c), f[c] = g.called)
      }),
      a.length > 0 && c.apiNow('domains', {
        domains: a.join('|'),
        v: '2'
      }, {
        fn: b.apiCallback(e.onDomainApi, e)
      })
    },
    init: function () {
      c.opt('link_target', a.link_target),
      c.opt('rewrite_any', a.any),
      c.opt('rewrite_original', !0),
      d = !a.any || c.harmony(b.harmony.COMMERCIAL_LINK_EVENTS) || a.convert_minimum_bid || a.check_exp_domains,
      d && c.registerProcessor(b.bind(function (a) {
        this.initDomainLookup(),
        this.saveDomain(a)
      }, this), {
        any: !0
      })
    },
    initDomainLookup: function () {
      var a = !1;
      return function () {
        a || (a = !0, b.on('DOMReady', b.bind(this.getDomains, this)))
      }
    }(),
    onDomainApi: function () {
      var a = b.destructing(function () {
        c.initLinks()
      });
      return function (d) {
        var e = c.opt('blacklist_domains'),
        f = c.opt('commercial_domains') || {
        },
        g = b.destructing(function () {
          e = e || {
          }
        });
        b.each(d.results, function (a, b) {
          f[b] = !0,
          a.unlink && (g(), e[b] = !0)
        }),
        c.opt('commercial_domains', f),
        c.opt('blacklist_domains', e),
        a()
      }
    }(),
    saveDomain: function (a) {
      var c = b.canonicalizeHostname(a);
      f[c] = f[c] || g.seen
    },
    unlinkBlacklisted: function (a) {
      c.isBlacklisted(a) && b.unlink(a)
    }
  },
  {
    init: b.bind(e.init, e),
    initNodes: function () {
      e.getDomains()
    }
  }
},
window.vglnk = window.vglnk || {
},
window.vglnk.crawler_plugin = function (a, b, c) {
  var d = [
  ],
  e = c.platform(),
  f = {
    crawl: function (a) {
      if (e && 'array' === b.type(a) && 0 !== a.length) {
        a = b.all(a, function (a) {
          return !b.contains(d, a)
        });
        var c = this.findPostsById(a);
        b.each(c, b.bind(function (a) {
          a.content = this.redact(a.el.innerHTML.replace(/(^\s+|\s+$)/g, '')),
          delete a.el
        }, this)),
        c = b.all(c, function (a) {
          return Boolean(a.content && a.id)
        }),
        c.length > 0 && this.processPosts(c)
      }
    },
    findPostsById: function (a) {
      return b.all(b.map(e.getPosts(), function (a) {
        return {
          el: a,
          id: e.getPostId(a)
        }
      }), function (c) {
        return b.contains(a, c.id)
      })
    },
    processPosts: function (a) {
      a = b.map(a, function (a) {
        return d.push(a.id),
        {
          c: a.content,
          i: a.id
        }
      }),
      c.api('content', {
        content: b.toJSON({
          ct: a,
          pt: e.id,
          u: window.document.location.href
        })
      }, {
        jsonp: !1
      })
    },
    redact: function (a) {
      return b.pii.redact(a)
    }
  };
  return {
    'public': {
      crawl: b.bind(f.crawl, f)
    }
  }
},
window.vglnk = window.vglnk || {
},
window.vglnk.modified_clicks_plugin = function (a, b, c) {
  return {
    init: function () {
      c.opt('rewrite_modified', !0)
    }
  }
},
window.vglnk = window.vglnk || {
},
window.vglnk.privacy_plugin = function (a, b, c) {
  return {
    init: function () {
      a.domains && c.opt('private_domains', a.domains)
    }
  }
},
window.vglnk = window.vglnk || {
},
window.vglnk.dr_search_box_plugin = function (a, b, c) {
  a = b.extend({
    key: null
  }, a);
  var d = {
    init: function (a) {
      b.each(this.getDRSearchForms(a), function (a) {
        if (!b.cache(a, 'evented')) {
          var c = d.getInput(a),
          e = function () {
            c.value || b.css(c, {
              'background-image': 'url(http://cdn.viglink.com/images/ebay_watermark.gif)'
            })
          };
          b.cache(a, 'evented', !0),
          a.onsubmit = null,
          c.onfocus = null,
          c.onblur = null,
          b.on(c, 'focus', function () {
            b.css(c, {
              'background-image': 'none'
            })
          }),
          b.on(c, 'blur', e),
          e(),
          b.on(a, 'submit', function (b) {
            d.onSubmit(b, a)
          })
        }
      })
    },
    getDRSearchForms: function (a) {
      var c = [
      ];
      return b.each(a, function (a) {
        'element' === b.type(a) && b.each(a.getElementsByTagName('form'), function (a) {
          d.getInput(a) && a.id.match(/^DR-ebay-search(CSS|2)?$/i) && c.push(a)
        })
      }),
      c
    },
    getInput: function (a) {
      return a.p || a.q2
    },
    onSubmit: function (e, f) {
      e = e || window.event;
      var g = 'http://shop.ebay.com/i.html?' + b.toQuery({
        _nkw: d.getInput(f).value
      }),
      h = b.createA(g, '_blank');
      return b.cache(h, 'params', {
        key: a.key
      }),
      c.click(h),
      b.preventDefault(e)
    }
  };
  if (a.key) return {
    init: b.bind(d.init, d),
    initNodes: function (a) {
      d.init(a)
    }
  }
},
window.vglnk = window.vglnk || {
},
window.vglnk.harmony_plugin = function (a, b, c) {
  return a = b.extend({
    level: b.harmony.DEFAULT
  }, a),
  {
    init: function () {
      var b = parseFloat(a.level, 10);
      isFinite(b) && c.opt('harmony_level', b)
    }
  }
},
window.vglnk = window.vglnk || {
},
window.vglnk.optimize_plugin = function (a, b) {
  var a = b.extend({
    exclude_page_title: null,
    exclude_link_text: null
  }, a);
  return {
    init: function () {
      var c = {
        opt: !0
      };
      null !== a.exclude_page_title && b.extend(c, {
        optExTitle: a.exclude_page_title
      }),
      null !== a.exclude_link_text && b.extend(c, {
        optExText: a.exclude_link_text
      }),
      b.cache('opt_params', c)
    }
  }
},
window.vglnk = window.vglnk || {
},
window.vglnk.insert_plugin = function (a, b, c, d) {
  var e,
  f,
  g,
  h,
  i = {
    API: 'api',
    DOM_TRAVERSAL: 'dom'
  },
  j = {
    LITE: 'L',
    HEAVY: 'H',
    URL: 'U',
    SEARCH: 'S',
    MANUAL: '0'
  },
  k = {
    UNLINKED_URL_KEY: '&!UNLINKED!&',
    DEFAULT_IMP_ID: '-'
  },
  l = '2.0',
  m = null,
  n = !1,
  o = null;
  if (a = b.extend({
    cat: null,
    dynamic_sample_rate: 1,
    heading_threshold: 2,
    insertion_order: i.API,
    key: null,
    link_headings: !1,
    link_phrases: !0,
    link_target: null,
    link_urls: !0,
    manual_mode: 1 === a.mode,
    per_page: null,
    per_phrase: 5,
    proximity: null,
    same_proximity: 100,
    scope: null,
    ui: !0
  }, a), a.insertion_order !== i.API && a.insertion_order !== i.DOM_TRAVERSAL && (a.insertion_order = i.API), a.key) return e = c.platform(),
  f = {
    cache: function () {
      var c,
      d = function () {
        c = {
          impressions: {
          },
          post_mappings: {
          }
        }
      },
      e = function (a, d) {
        var e,
        f = c.post_mappings,
        g = c.impressions,
        h = {
        };
        return d = d || [
          b.platforms.DEFAULT_POST_ID
        ],
        e = b.all(b.unique(b.map(d, function (a) {
          return f[a]
        })), function (a) {
          return null !== a
        }),
        b.find(e, function (c) {
          if (g[c] && g[c].data && g[c].order) {
            if (a) return h[a] = g[c].data[a],
            !0;
            b.each(g[c].order, function (a) {
              var b = g[c].data[a];
              h[a] || (h[a] = b)
            })
          }
        }),
        a ? h[a] : h
      },
      f = function (a, d, e, f) {
        var g = c.impressions,
        h = c.post_mappings;
        return e = e || k.DEFAULT_IMP_ID,
        f = f || [
          b.platforms.DEFAULT_POST_ID
        ],
        g[e] = g[e] || {
          data: {
          },
          order: [
          ]
        },
        g[e].data[a] || (g[e].data[a] = d, g[e].order.push(a)),
        b.each(f, function (a) {
          h[a] = e
        }),
        !0
      },
      g = function (a, c, d, g) {
        var h = b.all(b.toArray(arguments), function (a) {
          return Boolean(a)
        });
        return 'array' === b.type(h[h.length - 1]) && (g = h.pop()),
        a = h[0],
        c = h[1],
        h.length <= 1 ? e(a, g) : h.length >= 2 ? f(a, c, d, g) : void 0
      };
      return a.manual_mode && b.extend(g, {
        reset: d
      }),
      d(),
      g
    }(),
    enabled: function () {
      return a.link_phrases || a.link_urls
    },
    focusLink: function (a) {
      a.id || (a.id = b.uniqid('vl-link-')),
      location.href.hash = '#' + a.id,
      window.scrollBy(0, - 150)
    },
    getPartnerParams: function () {
      var a,
      b,
      d = c.opt('partner'),
      e = {
      };
      for (a in d) break;
      if (a) for (b in d[a]) e[a + '_' + b] = d[a][b];
      return e
    },
    getPhrases: function (g, h) {
      d.eventTimer.start('ins'),
      c.api('insert', b.extend(f.getPartnerParams(), {
        cat: a.cat,
        i: h ? h.join('|') : null,
        mode: a.mode,
        pt: e.id,
        ps: a.product_source,
        u: window.document.location.href,
        v: l
      }), {
        fn: b.apiCallback(f.onInsertApi, f)
      }, g, h)
    },
    hasCalled: function () {
      var c = {
      },
      d = Math.random() < a.dynamic_sample_rate,
      e = function (a) {
        return d && b.isArray(a) ? b.map(a, function (a) {
          return e(a)
        }) : d && a === b.platforms.DEFAULT_POST_ID ? window.document.location.href : a
      },
      f = function (a) {
        return a = e(a),
        b.isArray(a) && a.length ? Boolean(b.all(a, function (a) {
          return c[a]
        }).length === a.length) : Boolean(c[b.platforms.DEFAULT_POST_ID])
      },
      g = function (a) {
        a = e(a),
        b.isArray(a) && a.length ? b.each(a, function (a) {
          c[a] = !0
        }) : c[b.platforms.DEFAULT_POST_ID] = !0
      };
      return function (a, b) {
        return b ? g(a) : f(a)
      }
    }(),
    init: function () {
      d.eventTimer.start('insert-init-run'),
      a.scope = a.scope || e.scope,
      a.link_urls && (h = function () {
        var a = {
          http_scheme: 'https?://',
          www_domain_part: 'www\\d{0,3}\\.',
          domain_part: '[a-z0-9-]+',
          tld: '[a-z]{2,4}',
          nonparen_path_char: '[^\\s()<>]',
          hard_start: '(?:^|\\s)\\W*',
          soft_start: '\\b'
        };
        return a.balanced_parens = '\\((?:' + a.nonparen_path_char + '|(?:\\(' + a.nonparen_path_char + '+\\)))*\\)',
        a.domain_parts = '(?:' + a.domain_part + '\\.)+',
        new RegExp('(?:(?:' + a.soft_start + '(' + a.http_scheme + ')|' + a.hard_start + '(' + a.www_domain_part + '|' + a.domain_parts + a.tld + '/))((?:' + a.nonparen_path_char + '+|' + a.balanced_parens + ')+(?:' + a.balanced_parens + '|[^\\s`!()\\[\\]{};:\'".,<>?«»“”‘’]))|' + a.hard_start + '(' + a.domain_parts + 'com\\b/?)(?!\\.' + a.domain_part + '))', 'i')
      }())
    },
    initLink: function () {
      var d = function (a) {
        var d = b.fromQuery(a.search),
        e = d.u || d.out;
        e && (delete d.format, delete d.out, delete d.u, b.extend(d, c.clickParams(a), {
          out: e
        }), a.search = '?' + b.toQuery(d))
      },
      e = function (a) {
        return a.auc === !0
      };
      return function (f, g, h) {
        var i = a.link_target;
        i = g.type === j.URL ? c.opt('link_target') : i || h,
        i && (f.target = i),
        f.href || (f.href = g.url),
        f.rel = 'nofollow',
        b.cache(f, 'params', {
          exp: m,
          iid: g.iid,
          key: a.key,
          mid: g.mid,
          type: g.type || null
        }),
        e(g) && (d(f), b.cache(f, 'auctioned', !0)),
        b.cache(f, 'href', f.href),
        c.link(f)
      }
    }(),
    insertLinks: function () {
      var e = b.generateNodeFilter({
        classes: [
          'nolinks',
          'atma-nolink',
          'atma-nolinks'
        ],
        tags: [
          'map'
        ],
        custom: function (a) {
          return b.matches(a, 'a') && Boolean(a.href)
        }
      }),
      g = function (c, d, e, f) {
        var g = {
          phrase_to_nodes: {
          },
          regexp_cache: {
          },
          stats: {
          }
        };
        return b.each(d, function (a) {
          m(c, a, e, f, g)
        }, {
          timeout: !0
        }),
        a.insertion_order === i.API && l(e, g),
        g.stats
      },
      l = function (a, c) {
        var d = q(a);
        d.push(k.UNLINKED_URL_KEY),
        b.each(d, function (d) {
          var e = c.phrase_to_nodes[d];
          e && b.each(e, function (b) {
            s(b, b.data, a, c)
          })
        })
      },
      m = function (a, b, d, f, g) {
        c.allowed(b, {
        }, {
          skipWhitelist: !0
        }) && e(b, {
          ancestors: !Boolean(f),
          self: !0
        }) && (3 === b.nodeType ? p(a, b, d, g) : 1 === b.nodeType && o(a, b, d, g))
      },
      o = function (a, b, c, d) {
        var e;
        for (b = b.firstChild; b; ) e = b.nextSibling,
        m(a, b, c, !0, d),
        b = e
      },
      p = function () {
        var d = function (c, d) {
          var e = [
          ];
          return b.each(c, function (a) {
            var c,
            f;
            d[a] ? c = d[a] : (f = b.escapeRegExp(a).split(' ').join('\\s+'), f = '(?:^|[\\s"\'\\(])(' + f + ')(?=\\s|\\W*$|\\W{2})', c = new RegExp(f, 'i'), d[a] = c),
            e.push(c)
          }),
          a.link_urls && h && e.push(h),
          e
        },
        e = function (a, c) {
          var d = q(c);
          return a = f.normalizePhrase(a),
          b.all(d, function (b) {
            return a.indexOf(b) !== - 1
          })
        },
        g = function (a, b, c) {
          a[b] || (a[b] = [
          ]),
          a[b].push(c)
        };
        return function (h, j, l, m) {
          var n,
          o,
          p,
          q = !1,
          s = j.parentNode,
          t = m.phrase_to_nodes,
          u = m.regexp_cache;
          !s || c.opt('whitelist') && !c.allowed(j) || (j.data && (q = h.test(j.data.replace(/\s+/, ' '))), q && a.insertion_order === i.DOM_TRAVERSAL ? r(h, j, l, m) : q && a.insertion_order === i.API && (n = e(j.data, l), o = d(n, u), p = [
            j
          ], b.each(o, function (a) {
            var c = [
            ];
            b.each(p, function (d) {
              for (var e, h, i, j, l, m; d && d.data && '' !== d.data && (Boolean(!b.traits.fastRegexp && (i = d.data.match(/^\s+/))) || Boolean(i = d.data.match(a))) && i.input !== e; ) e = i.input,
              h = i.slice(1).join(''),
              l = f.normalizePhrase(h),
              j = v(d, i),
              j.previous && j.previous.data && c.push(j.previous),
              d = j.next,
              m = b.contains(n, l) ? l : k.UNLINKED_URL_KEY,
              g(t, m, j.match);
              d && !i && c.push(d)
            }, {
              timeout: !0
            }),
            p = c
          })))
        }
      }(),
      q = function (a) {
        var c = f.cache(a);
        return b.map(c, function (a, b) {
          return b
        })
      },
      r = function (a, c, d, e) {
        for (var f, g, h, i; c && c.data && '' !== c.data && (Boolean(!b.traits.fastRegexp && (h = c.data.match(/^\s+/))) || Boolean(h = c.data.match(a))) && h.input !== f; ) f = h.input,
        g = h.slice(1).join(''),
        i = v(c, h),
        s(i.match, g, d, e),
        c = i.next
      },
      s = function () {
        var d = function (c) {
          var d;
          return !(!a.link_headings && (d = b.css(c.parentElement, 'font-size'))) || (d = parseFloat(d), d <= 0 || d / b.page.font_size < a.heading_threshold)
        },
        e = function (c, d) {
          var e,
          f;
          return !(!c || c.type !== j.URL) || (e = !c || !a.per_phrase || !d[c.phrase] || d[c.phrase].count < a.per_phrase, f = !a.per_page && 0 !== a.per_page || b.reduce(0, d, function (a, b) {
            var c = b.type !== j.URL ? b.count : 0;
            return a + c
          }) < a.per_page, e && f)
        },
        g = function (d, e, g) {
          var h,
          i = Boolean(c.opt('dynamic_scope')),
          j = function (a) {
            return h.parentNode.insertBefore(e, h),
            h.parentNode.removeChild(h),
            a
          },
          k = function () {
            var c,
            e,
            i = function (a, c, d) {
              return a = b.extend({
              }, a),
              a.x1 -= d,
              a.y1 -= d,
              a.x2 += d,
              a.y2 += d,
              a.x1 < c.x2 && a.x2 > c.x1 && a.y1 < c.y2 && a.y2 > c.y1
            };
            return !g.phrase || ((a.proximity || a.same_proximity) && (e = b.geometry(h), b.find(f.cache(d), function (d) {
              var h,
              j;
              if (d.links) return h = f.normalizePhrase(d.phrase) === f.normalizePhrase(g.phrase),
              !(h && !a.same_proximity || !h && !a.proximity) && (j = h ? Math.max(a.same_proximity, a.proximity) : a.proximity, d.links = b.all(d.links, function (a) {
                var d = b.isInDom(a.el);
                return !c && d && (c = b.find(a.segments, function (a) {
                  if (i(a.geometry, e, j)) return !0
                })),
                d
              }), c)
            })), !c)
          };
          return !!e.parentNode && (h = b.createEl('span'), e.parentNode.insertBefore(h, e), h.appendChild(e), j((!i || b.isVisible(h)) && k()))
        },
        h = function (a, c) {
          var d,
          e,
          f,
          g,
          h = {
            el: a,
            segments: [
            ]
          },
          i = a.getElementsByTagName('span'),
          j = {
            els: [
            ]
          };
          for (d = 0, e = i.length; d < e; d++) f = i[d],
          void 0 === g || f.offsetTop === g.offsetTop ? j.els.push(f) : (h.segments.push(j), j = {
            els: [
              f
            ]
          }),
          g = f;
          return j.geometry = b.geometry.apply(b, j.els),
          h.segments.push(j),
          c.links = c.links || [
          ],
          c.links.push(h),
          c
        };
        return function (a, i, k, l) {
          var m,
          n,
          o = l.stats,
          p = f.normalizePhrase(i),
          q = i ? f.cache(p, k) : null;
          i && !q && (q = {
            url: i.match(/^https?:\/\//i) ? i : 'http://' + i,
            type: j.URL
          }),
          q && q.url.match(/https?:\/\//i) && i && e(q, o) && g(k, a, q) && d(a) && (m = t(i, q), b.cache(m, 'unlinked') || c.isBlacklisted(m) || (u(m, a), h(m, q), n = q.phrase || q.url, o[n] = o[n] || {
            count: 0,
            iid: q.iid,
            imp: q.imp,
            phrase: q.phrase,
            url: q.url,
            type: q.type
          }, o[n].count++))
        }
      }(),
      t = function (c, d) {
        var e;
        return e = b.createEl('a'),
        e.innerHTML = c.replace(/([a-z0-9]+ *|[^a-z0-9]+)/gi, '<span>$1</span>'),
        e.className = 'vglnk',
        b.cache(e, 'type', 'inserted'),
        b.cache(e, 'phrase', c),
        a.ui && d.type !== j.URL && (e.title = 'Link added by VigLink'),
        f.initLink(e, d),
        e
      },
      u = function (a, b) {
        var c = b.parentNode;
        c.insertBefore(a, b),
        c.removeChild(b)
      },
      v = function (a, b) {
        var c,
        d,
        e = b.slice(1).join(''),
        f = b[0],
        g = b.index + f.length - e.length;
        return g > 0 ? c = a.splitText(g) : (c = a, a = null),
        d = c.length <= e.length ? null : c.splitText(e.length),
        {
          previous: a,
          match: c,
          next: d
        }
      };
      return function (c, h) {
        var i,
        j = {
        };
        d.eventTimer.start('insert-run'),
        i = f.regexp(h),
        i && (c = b.all(c, e), c && c.length && (j = g(i, c, h, !1)), a.link_phrases && f.sendInsertedTerms(j)),
        d.eventTimer.stop('insert-run', !0),
        n || (n = !0, d.eventTimer.stop('insert-init-run', !0))
      }
    }(),
    insertManually: function () {
      var c = !1,
      d = b.clone(a),
      e = function (a) {
        return b.map(a, function (a, b) {
          return {
            iid: '00000000',
            phrase: b,
            type: j.MANUAL,
            url: a
          }
        })
      },
      h = function (b) {
        a.same_proximity = b.same_proximity || a.same_proximity,
        a.proximity = b.proximity || a.proximity,
        a.per_page = b.per_page || a.per_page,
        a.per_phrase = b.per_phrase || a.per_phrase
      };
      return function (i, j, k) {
        var l,
        m,
        n = !1;
        g.init(),
        a.manual_mode && !c && (c = !0, j = j || {
        }, h(j), m = j.target_node || document.body, l = e(i), f.loadPhrases(l, null, [
          m
        ]), a = d, f.cache.reset(), n = !0, c = !1),
        'function' === b.type(k) && k(n, m)
      }
    }(),
    loadPhrases: function (a, c, d, e) {
      b.each(a, function (a) {
        a.phrase && a.url && a.iid && (a.phrase = f.normalizePhrase(a.phrase), f.cache(a.phrase, {
          auc: a.auc,
          count: 0,
          iid: a.iid,
          imp: c,
          phrase: a.phrase,
          mid: a.mid,
          url: a.url,
          type: a.type || ''
        }, c, e))
      }),
      f.hasCalled(e, !0),
      this.insertLinks(d, e)
    },
    normalizePhrase: function (a) {
      return a.toLowerCase().replace(/(^\s+|\s+$)/g, '').split(/\s+/).join(' ')
    },
    onInsertApi: function (a, c, e) {
      d.eventTimer.stop('ins'),
      'object' === b.type(a) && (m = a.exp, o = a.imp_id, a.results && this.loadPhrases(a.results, o, c, e))
    },
    regexp: function (a) {
      var c,
      d,
      e,
      g = f.cache(a);
      return d = b.map(g, function (a, c) {
        return b.escapeRegExp(c).split(' ').join('\\s+')
      }),
      d.length > 0 && (c = '(?:^|[\\s"\'\\(])(' + d.join('|') + ')(?=\\s|\\W*$|\\W{2})', e = new RegExp(h ? '(?:' + c + '|' + h.source + ')' : c, 'i')),
      e || h
    },
    sendInsertedTerms: function (d) {
      var e = b.map(d, function (a, b) {
        return {
          count: a.count,
          phrase: b,
          iid: a.iid,
          impId: a.imp,
          url: a.url,
          type: a.type
        }
      });
      e.length && c.apiNow('inserted', {
        cat: a.cat,
        exp: m,
        terms: b.toJSON(e),
        u: window.document.location.href,
        v: l
      })
    }
  },
  g = {
    init: b.destructing(b.bind(f.init, f)),
    initNodes: function (d) {
      var g = [
      ],
      h = [
      ],
      i = [
      ];
      f.enabled() && (a.scope ? (b.each(d, function (c) {
        var d,
        e = b.withScope([c], a.scope, {
          ancestors: !0,
          consolidate: !0,
          descendants: !1,
          self: !0
        });
        e.length ? (i.push(c), h = h.concat(e)) : (d = b.withScope([c], a.scope, {
          ancestors: !1,
          consolidate: !0,
          descendants: !0,
          self: !1
        }), d.length && (i = i.concat(d), h = h.concat(d)))
      }, {
        timeout: !0
      }), i = b.unique(i), h = b.unique(h)) : (i = d, h = d), Boolean(c.opt('dynamic_scope')) && (i = b.all(i, function (a) {
        return !b.matches(a, ':has(a.vglnk)')
      }, {
        timeout: !0
      })), i.length && (h.length && (g = e.getPostIds(h)), a.link_phrases && !f.hasCalled(g) ? f.getPhrases(i, g) : f.insertLinks(i, g)))
    }
  },
  a.manual_mode && b.extend(g, {
    'public': {
      run: f.insertManually
    }
  }),
  g
},
window.vglnk = window.vglnk || {
},
window.vglnk.partners_plugin = function (a, b, c) {
  var d,
  e = '/api/sync/status.gif',
  f = '/api/sync.gif',
  g = '/api/sync.js';
  return a = b.extend({
    log_links: !0,
    log_status: !1,
    pai_type: null,
    sync_type: null,
    scope: 'body'
  }, a),
  d = {
    initLinkLogger: function () {
      c.registerProcessor(function (a) {
        c.sendLinks('optimize', {
          desc: b.page.description,
          links: [
            a.href
          ],
          mode: [
            'P'
          ],
          title: b.page.title,
          u: b.context(a).document.location.href,
          ver: c.opt('links_version')
        }, {
          jsonp: !1
        })
      }, {
        scope: a.scope
      })
    },
    logStatus: function (a) {
      b.createEl('img').src = b.updateUrl(c.opt('sync_url'), {
        pathname: e,
        search: '?' + b.toQuery({
          st: a
        })
      })
    },
    run: function () {
      a.log_links && d.initLinkLogger(),
      a.pai_type ? d.sync('partner', a.pai_type) : a.sync_type && d.sync(a.sync_type)
    },
    sync: function () {
      var e = function (b, c, e) {
        a.log_status && d.logStatus(c),
        e && d.sync(b, e)
      };
      return function (h, i) {
        var j,
        k,
        l,
        m,
        n = 'pixel';
        if ('partner' === h) {
          if (!b.isArray(i) || !i.length) return;
          k = {
            partner_id: i.shift()
          },
          l = f
        } else {
          if (!b.contains(['pixel',
          'script'], h)) return;
          i = null,
          k = {
            key: c.opt('key')
          },
          'pixel' === h ? l = f : (n = 'script', l = g)
        }
        m = b.updateUrl(c.opt('sync_url'), {
          pathname: l,
          search: '?' + b.toQuery(k)
        }),
        a.log_status && d.logStatus('bg'),
        'script' === n ? (d.sync('pixel', i), b.jsonp(m)) : (j = b.createEl('img'), b.on(j, 'load', function () {
          e(h, 'su', i)
        }), b.on(j, 'error', function () {
          e(h, 'fa', i)
        }), j.src = m)
      }
    }()
  },
  {
    init: function () {
      d.run()
    }
  }
};
 
Invalid Email or Password