File: //home/arjun/projects/buyercall_forms/buyercall/build/public/vendor_js.2cc0938e4b62c94a86d6.js
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "http://localhost:2992/assets/";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 23);
/******/ })
/************************************************************************/
/******/ ({
/***/ "./buyercall/assets/scripts/vendor/bootstrap-colorpicker.js":
/*!******************************************************************!*\
!*** ./buyercall/assets/scripts/vendor/bootstrap-colorpicker.js ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*! Bootstrap Colorpicker 2.1.0 - http://mjolnic.github.io/bootstrap-colorpicker/ */\n!function (a) {\n \"use strict\";\n\n true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ \"jquery\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (a),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined;\n}(function (a) {\n \"use strict\";\n\n var b = function b(a) {\n this.value = {\n h: 0,\n s: 0,\n b: 0,\n a: 1\n }, this.origFormat = null, a && (void 0 !== a.toLowerCase ? (a += \"\", \"#\" === a.charAt(0) || 3 !== a.length && 6 !== a.length || (a = \"#\" + a), this.setColor(a)) : void 0 !== a.h && (this.value = a));\n };\n b.prototype = {\n constructor: b,\n colors: {\n aliceblue: \"#f0f8ff\",\n antiquewhite: \"#faebd7\",\n aqua: \"#00ffff\",\n aquamarine: \"#7fffd4\",\n azure: \"#f0ffff\",\n beige: \"#f5f5dc\",\n bisque: \"#ffe4c4\",\n black: \"#000000\",\n blanchedalmond: \"#ffebcd\",\n blue: \"#0000ff\",\n blueviolet: \"#8a2be2\",\n brown: \"#a52a2a\",\n burlywood: \"#deb887\",\n cadetblue: \"#5f9ea0\",\n chartreuse: \"#7fff00\",\n chocolate: \"#d2691e\",\n coral: \"#ff7f50\",\n cornflowerblue: \"#6495ed\",\n cornsilk: \"#fff8dc\",\n crimson: \"#dc143c\",\n cyan: \"#00ffff\",\n darkblue: \"#00008b\",\n darkcyan: \"#008b8b\",\n darkgoldenrod: \"#b8860b\",\n darkgray: \"#a9a9a9\",\n darkgreen: \"#006400\",\n darkkhaki: \"#bdb76b\",\n darkmagenta: \"#8b008b\",\n darkolivegreen: \"#556b2f\",\n darkorange: \"#ff8c00\",\n darkorchid: \"#9932cc\",\n darkred: \"#8b0000\",\n darksalmon: \"#e9967a\",\n darkseagreen: \"#8fbc8f\",\n darkslateblue: \"#483d8b\",\n darkslategray: \"#2f4f4f\",\n darkturquoise: \"#00ced1\",\n darkviolet: \"#9400d3\",\n deeppink: \"#ff1493\",\n deepskyblue: \"#00bfff\",\n dimgray: \"#696969\",\n dodgerblue: \"#1e90ff\",\n firebrick: \"#b22222\",\n floralwhite: \"#fffaf0\",\n forestgreen: \"#228b22\",\n fuchsia: \"#ff00ff\",\n gainsboro: \"#dcdcdc\",\n ghostwhite: \"#f8f8ff\",\n gold: \"#ffd700\",\n goldenrod: \"#daa520\",\n gray: \"#808080\",\n green: \"#008000\",\n greenyellow: \"#adff2f\",\n honeydew: \"#f0fff0\",\n hotpink: \"#ff69b4\",\n \"indianred \": \"#cd5c5c\",\n \"indigo \": \"#4b0082\",\n ivory: \"#fffff0\",\n khaki: \"#f0e68c\",\n lavender: \"#e6e6fa\",\n lavenderblush: \"#fff0f5\",\n lawngreen: \"#7cfc00\",\n lemonchiffon: \"#fffacd\",\n lightblue: \"#add8e6\",\n lightcoral: \"#f08080\",\n lightcyan: \"#e0ffff\",\n lightgoldenrodyellow: \"#fafad2\",\n lightgrey: \"#d3d3d3\",\n lightgreen: \"#90ee90\",\n lightpink: \"#ffb6c1\",\n lightsalmon: \"#ffa07a\",\n lightseagreen: \"#20b2aa\",\n lightskyblue: \"#87cefa\",\n lightslategray: \"#778899\",\n lightsteelblue: \"#b0c4de\",\n lightyellow: \"#ffffe0\",\n lime: \"#00ff00\",\n limegreen: \"#32cd32\",\n linen: \"#faf0e6\",\n magenta: \"#ff00ff\",\n maroon: \"#800000\",\n mediumaquamarine: \"#66cdaa\",\n mediumblue: \"#0000cd\",\n mediumorchid: \"#ba55d3\",\n mediumpurple: \"#9370d8\",\n mediumseagreen: \"#3cb371\",\n mediumslateblue: \"#7b68ee\",\n mediumspringgreen: \"#00fa9a\",\n mediumturquoise: \"#48d1cc\",\n mediumvioletred: \"#c71585\",\n midnightblue: \"#191970\",\n mintcream: \"#f5fffa\",\n mistyrose: \"#ffe4e1\",\n moccasin: \"#ffe4b5\",\n navajowhite: \"#ffdead\",\n navy: \"#000080\",\n oldlace: \"#fdf5e6\",\n olive: \"#808000\",\n olivedrab: \"#6b8e23\",\n orange: \"#ffa500\",\n orangered: \"#ff4500\",\n orchid: \"#da70d6\",\n palegoldenrod: \"#eee8aa\",\n palegreen: \"#98fb98\",\n paleturquoise: \"#afeeee\",\n palevioletred: \"#d87093\",\n papayawhip: \"#ffefd5\",\n peachpuff: \"#ffdab9\",\n peru: \"#cd853f\",\n pink: \"#ffc0cb\",\n plum: \"#dda0dd\",\n powderblue: \"#b0e0e6\",\n purple: \"#800080\",\n red: \"#ff0000\",\n rosybrown: \"#bc8f8f\",\n royalblue: \"#4169e1\",\n saddlebrown: \"#8b4513\",\n salmon: \"#fa8072\",\n sandybrown: \"#f4a460\",\n seagreen: \"#2e8b57\",\n seashell: \"#fff5ee\",\n sienna: \"#a0522d\",\n silver: \"#c0c0c0\",\n skyblue: \"#87ceeb\",\n slateblue: \"#6a5acd\",\n slategray: \"#708090\",\n snow: \"#fffafa\",\n springgreen: \"#00ff7f\",\n steelblue: \"#4682b4\",\n tan: \"#d2b48c\",\n teal: \"#008080\",\n thistle: \"#d8bfd8\",\n tomato: \"#ff6347\",\n turquoise: \"#40e0d0\",\n violet: \"#ee82ee\",\n wheat: \"#f5deb3\",\n white: \"#ffffff\",\n whitesmoke: \"#f5f5f5\",\n yellow: \"#ffff00\",\n yellowgreen: \"#9acd32\",\n transparent: \"transparent\"\n },\n _sanitizeNumber: function _sanitizeNumber(a) {\n return \"number\" == typeof a ? a : isNaN(a) || null === a || \"\" === a || void 0 === a ? 1 : void 0 !== a.toLowerCase ? parseFloat(a) : 1;\n },\n isTransparent: function isTransparent(a) {\n return a ? (a = a.toLowerCase().trim(), \"transparent\" == a || a.match(/#?00000000/) || a.match(/(rgba|hsla)\\(0,0,0,0?\\.?0\\)/)) : !1;\n },\n rgbaIsTransparent: function rgbaIsTransparent(a) {\n return 0 == a.r && 0 == a.g && 0 == a.b && 0 == a.a;\n },\n setColor: function setColor(a) {\n a = a.toLowerCase().trim(), a && (this.value = this.isTransparent(a) ? {\n h: 0,\n s: 0,\n b: 0,\n a: 0\n } : this.stringToHSB(a) || {\n h: 0,\n s: 0,\n b: 0,\n a: 1\n });\n },\n stringToHSB: function stringToHSB(b) {\n b = b.toLowerCase();\n var c = this,\n d = !1;\n return a.each(this.stringParsers, function (a, e) {\n var f = e.re.exec(b),\n g = f && e.parse.apply(c, [f]),\n h = e.format || \"rgba\";\n return g ? (d = h.match(/hsla?/) ? c.RGBtoHSB.apply(c, c.HSLtoRGB.apply(c, g)) : c.RGBtoHSB.apply(c, g), c.origFormat = h, !1) : !0;\n }), d;\n },\n setHue: function setHue(a) {\n this.value.h = 1 - a;\n },\n setSaturation: function setSaturation(a) {\n this.value.s = a;\n },\n setBrightness: function setBrightness(a) {\n this.value.b = 1 - a;\n },\n setAlpha: function setAlpha(a) {\n this.value.a = parseInt(100 * (1 - a), 10) / 100;\n },\n toRGB: function toRGB(a, b, c, d) {\n a || (a = this.value.h, b = this.value.s, c = this.value.b), a *= 360;\n var e, f, g, h, i;\n return a = a % 360 / 60, i = c * b, h = i * (1 - Math.abs(a % 2 - 1)), e = f = g = c - i, a = ~~a, e += [i, h, 0, 0, h, i][a], f += [h, i, i, h, 0, 0][a], g += [0, 0, h, i, i, h][a], {\n r: Math.round(255 * e),\n g: Math.round(255 * f),\n b: Math.round(255 * g),\n a: d || this.value.a\n };\n },\n toHex: function toHex(a, b, c, d) {\n var e = this.toRGB(a, b, c, d);\n return this.rgbaIsTransparent(e) ? \"transparent\" : \"#\" + (1 << 24 | parseInt(e.r) << 16 | parseInt(e.g) << 8 | parseInt(e.b)).toString(16).substr(1);\n },\n toHSL: function toHSL(a, b, c, d) {\n a = a || this.value.h, b = b || this.value.s, c = c || this.value.b, d = d || this.value.a;\n var e = a,\n f = (2 - b) * c,\n g = b * c;\n return g /= f > 0 && 1 >= f ? f : 2 - f, f /= 2, g > 1 && (g = 1), {\n h: isNaN(e) ? 0 : e,\n s: isNaN(g) ? 0 : g,\n l: isNaN(f) ? 0 : f,\n a: isNaN(d) ? 0 : d\n };\n },\n toAlias: function toAlias(a, b, c, d) {\n var e = this.toHex(a, b, c, d);\n for (var f in this.colors) if (this.colors[f] == e) return f;\n return !1;\n },\n RGBtoHSB: function RGBtoHSB(a, b, c, d) {\n a /= 255, b /= 255, c /= 255;\n var e, f, g, h;\n return g = Math.max(a, b, c), h = g - Math.min(a, b, c), e = 0 === h ? null : g === a ? (b - c) / h : g === b ? (c - a) / h + 2 : (a - b) / h + 4, e = (e + 360) % 6 * 60 / 360, f = 0 === h ? 0 : h / g, {\n h: this._sanitizeNumber(e),\n s: f,\n b: g,\n a: this._sanitizeNumber(d)\n };\n },\n HueToRGB: function HueToRGB(a, b, c) {\n return 0 > c ? c += 1 : c > 1 && (c -= 1), 1 > 6 * c ? a + (b - a) * c * 6 : 1 > 2 * c ? b : 2 > 3 * c ? a + (b - a) * (2 / 3 - c) * 6 : a;\n },\n HSLtoRGB: function HSLtoRGB(a, b, c, d) {\n 0 > b && (b = 0);\n var e;\n e = .5 >= c ? c * (1 + b) : c + b - c * b;\n var f = 2 * c - e,\n g = a + 1 / 3,\n h = a,\n i = a - 1 / 3,\n j = Math.round(255 * this.HueToRGB(f, e, g)),\n k = Math.round(255 * this.HueToRGB(f, e, h)),\n l = Math.round(255 * this.HueToRGB(f, e, i));\n return [j, k, l, this._sanitizeNumber(d)];\n },\n toString: function toString(a) {\n switch (a = a || \"rgba\") {\n case \"rgb\":\n var b = this.toRGB();\n return this.rgbaIsTransparent(b) ? \"transparent\" : \"rgb(\" + b.r + \",\" + b.g + \",\" + b.b + \")\";\n case \"rgba\":\n var b = this.toRGB();\n return \"rgba(\" + b.r + \",\" + b.g + \",\" + b.b + \",\" + b.a + \")\";\n case \"hsl\":\n var c = this.toHSL();\n return \"hsl(\" + Math.round(360 * c.h) + \",\" + Math.round(100 * c.s) + \"%,\" + Math.round(100 * c.l) + \"%)\";\n case \"hsla\":\n var c = this.toHSL();\n return \"hsla(\" + Math.round(360 * c.h) + \",\" + Math.round(100 * c.s) + \"%,\" + Math.round(100 * c.l) + \"%,\" + c.a + \")\";\n case \"hex\":\n return this.toHex();\n case \"alias\":\n return this.toAlias() || this.toHex();\n default:\n return !1;\n }\n },\n stringParsers: [{\n re: /rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*?\\)/,\n format: \"rgb\",\n parse: function parse(a) {\n return [a[1], a[2], a[3], 1];\n }\n }, {\n re: /rgb\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*?\\)/,\n format: \"rgb\",\n parse: function parse(a) {\n return [2.55 * a[1], 2.55 * a[2], 2.55 * a[3], 1];\n }\n }, {\n re: /rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(?:,\\s*(\\d+(?:\\.\\d+)?)\\s*)?\\)/,\n format: \"rgba\",\n parse: function parse(a) {\n return [a[1], a[2], a[3], a[4]];\n }\n }, {\n re: /rgba\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d+(?:\\.\\d+)?)\\s*)?\\)/,\n format: \"rgba\",\n parse: function parse(a) {\n return [2.55 * a[1], 2.55 * a[2], 2.55 * a[3], a[4]];\n }\n }, {\n re: /hsl\\(\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*?\\)/,\n format: \"hsl\",\n parse: function parse(a) {\n return [a[1] / 360, a[2] / 100, a[3] / 100, a[4]];\n }\n }, {\n re: /hsla\\(\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d+(?:\\.\\d+)?)\\s*)?\\)/,\n format: \"hsla\",\n parse: function parse(a) {\n return [a[1] / 360, a[2] / 100, a[3] / 100, a[4]];\n }\n }, {\n re: /#?([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,\n format: \"hex\",\n parse: function parse(a) {\n return [parseInt(a[1], 16), parseInt(a[2], 16), parseInt(a[3], 16), 1];\n }\n }, {\n re: /#?([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/,\n format: \"hex\",\n parse: function parse(a) {\n return [parseInt(a[1] + a[1], 16), parseInt(a[2] + a[2], 16), parseInt(a[3] + a[3], 16), 1];\n }\n }, {\n re: /^([a-z]{3,})$/,\n format: \"alias\",\n parse: function parse(a) {\n var b = this.colorNameToHex(a[0]) || \"#000000\",\n c = this.stringParsers[0].re.exec(b),\n d = c && this.stringParsers[0].parse.apply(this, [c]);\n return d;\n }\n }],\n colorNameToHex: function colorNameToHex(a) {\n return \"undefined\" != typeof this.colors[a.toLowerCase()] ? this.colors[a.toLowerCase()] : !1;\n }\n };\n var c = {\n horizontal: !1,\n inline: !1,\n color: !1,\n format: !1,\n input: \"input\",\n container: !1,\n component: \".add-on, .input-group-addon\",\n sliders: {\n saturation: {\n maxLeft: 100,\n maxTop: 100,\n callLeft: \"setSaturation\",\n callTop: \"setBrightness\"\n },\n hue: {\n maxLeft: 0,\n maxTop: 100,\n callLeft: !1,\n callTop: \"setHue\"\n },\n alpha: {\n maxLeft: 0,\n maxTop: 100,\n callLeft: !1,\n callTop: \"setAlpha\"\n }\n },\n slidersHorz: {\n saturation: {\n maxLeft: 100,\n maxTop: 100,\n callLeft: \"setSaturation\",\n callTop: \"setBrightness\"\n },\n hue: {\n maxLeft: 100,\n maxTop: 0,\n callLeft: \"setHue\",\n callTop: !1\n },\n alpha: {\n maxLeft: 100,\n maxTop: 0,\n callLeft: \"setAlpha\",\n callTop: !1\n }\n },\n template: '<div class=\"colorpicker dropdown-menu\"><div class=\"colorpicker-saturation\"><i><b></b></i></div><div class=\"colorpicker-hue\"><i></i></div><div class=\"colorpicker-alpha\"><i></i></div><div class=\"colorpicker-color\"><div /></div></div>'\n },\n d = function d(_d, e) {\n this.element = a(_d).addClass(\"colorpicker-element\"), this.options = a.extend({}, c, this.element.data(), e), this.component = this.options.component, this.component = this.component !== !1 ? this.element.find(this.component) : !1, this.component && 0 === this.component.length && (this.component = !1), this.container = this.options.container === !0 ? this.element : this.options.container, this.container = this.container !== !1 ? a(this.container) : !1, this.input = this.element.is(\"input\") ? this.element : this.options.input ? this.element.find(this.options.input) : !1, this.input && 0 === this.input.length && (this.input = !1), this.color = new b(this.options.color !== !1 ? this.options.color : this.getValue()), this.format = this.options.format !== !1 ? this.options.format : this.color.origFormat, this.picker = a(this.options.template), this.picker.addClass(this.options.inline ? \"colorpicker-inline colorpicker-visible\" : \"colorpicker-hidden\"), this.options.horizontal && this.picker.addClass(\"colorpicker-horizontal\"), (\"rgba\" === this.format || \"hsla\" === this.format) && this.picker.addClass(\"colorpicker-with-alpha\"), \"right\" === this.options.align && this.picker.addClass(\"colorpicker-right\"), this.picker.on(\"mousedown.colorpicker touchstart.colorpicker\", a.proxy(this.mousedown, this)), this.picker.appendTo(this.container ? this.container : a(\"body\")), this.input !== !1 && (this.input.on({\n \"keyup.colorpicker\": a.proxy(this.keyup, this)\n }), this.component === !1 && this.element.on({\n \"focus.colorpicker\": a.proxy(this.show, this)\n }), this.options.inline === !1 && this.element.on({\n \"focusout.colorpicker\": a.proxy(this.hide, this)\n })), this.component !== !1 && this.component.on({\n \"click.colorpicker\": a.proxy(this.show, this)\n }), this.input === !1 && this.component === !1 && this.element.on({\n \"click.colorpicker\": a.proxy(this.show, this)\n }), this.input !== !1 && this.component !== !1 && \"color\" === this.input.attr(\"type\") && this.input.on({\n \"click.colorpicker\": a.proxy(this.show, this),\n \"focus.colorpicker\": a.proxy(this.show, this)\n }), this.update(), a(a.proxy(function () {\n this.element.trigger(\"create\");\n }, this));\n };\n d.Color = b, d.prototype = {\n constructor: d,\n destroy: function destroy() {\n this.picker.remove(), this.element.removeData(\"colorpicker\").off(\".colorpicker\"), this.input !== !1 && this.input.off(\".colorpicker\"), this.component !== !1 && this.component.off(\".colorpicker\"), this.element.removeClass(\"colorpicker-element\"), this.element.trigger({\n type: \"destroy\"\n });\n },\n reposition: function reposition() {\n if (this.options.inline !== !1 || this.options.container) return !1;\n var a = this.container && this.container[0] !== document.body ? \"position\" : \"offset\",\n b = this.component || this.element,\n c = b[a]();\n \"right\" === this.options.align && (c.left -= this.picker.outerWidth() - b.outerWidth()), this.picker.css({\n top: c.top + b.outerHeight(),\n left: c.left\n });\n },\n show: function show(b) {\n return this.isDisabled() ? !1 : (this.picker.addClass(\"colorpicker-visible\").removeClass(\"colorpicker-hidden\"), this.reposition(), a(window).on(\"resize.colorpicker\", a.proxy(this.reposition, this)), !b || this.hasInput() && \"color\" !== this.input.attr(\"type\") || b.stopPropagation && b.preventDefault && (b.stopPropagation(), b.preventDefault()), this.options.inline === !1 && a(window.document).on({\n \"mousedown.colorpicker\": a.proxy(this.hide, this)\n }), void this.element.trigger({\n type: \"showPicker\",\n color: this.color\n }));\n },\n hide: function hide() {\n this.picker.addClass(\"colorpicker-hidden\").removeClass(\"colorpicker-visible\"), a(window).off(\"resize.colorpicker\", this.reposition), a(document).off({\n \"mousedown.colorpicker\": this.hide\n }), this.update(), this.element.trigger({\n type: \"hidePicker\",\n color: this.color\n });\n },\n updateData: function updateData(a) {\n return a = a || this.color.toString(this.format), this.element.data(\"color\", a), a;\n },\n updateInput: function updateInput(a) {\n return a = a || this.color.toString(this.format), this.input !== !1 && this.input.prop(\"value\", a), a;\n },\n updatePicker: function updatePicker(a) {\n void 0 !== a && (this.color = new b(a));\n var c = this.options.horizontal === !1 ? this.options.sliders : this.options.slidersHorz,\n d = this.picker.find(\"i\");\n return 0 !== d.length ? (this.options.horizontal === !1 ? (c = this.options.sliders, d.eq(1).css(\"top\", c.hue.maxTop * (1 - this.color.value.h)).end().eq(2).css(\"top\", c.alpha.maxTop * (1 - this.color.value.a))) : (c = this.options.slidersHorz, d.eq(1).css(\"left\", c.hue.maxLeft * (1 - this.color.value.h)).end().eq(2).css(\"left\", c.alpha.maxLeft * (1 - this.color.value.a))), d.eq(0).css({\n top: c.saturation.maxTop - this.color.value.b * c.saturation.maxTop,\n left: this.color.value.s * c.saturation.maxLeft\n }), this.picker.find(\".colorpicker-saturation\").css(\"backgroundColor\", this.color.toHex(this.color.value.h, 1, 1, 1)), this.picker.find(\".colorpicker-alpha\").css(\"backgroundColor\", this.color.toHex()), this.picker.find(\".colorpicker-color, .colorpicker-color div\").css(\"backgroundColor\", this.color.toString(this.format)), a) : void 0;\n },\n updateComponent: function updateComponent(a) {\n if (a = a || this.color.toString(this.format), this.component !== !1) {\n var b = this.component.find(\"i\").eq(0);\n b.length > 0 ? b.css({\n backgroundColor: a\n }) : this.component.css({\n backgroundColor: a\n });\n }\n return a;\n },\n update: function update(a) {\n var b;\n return (this.getValue(!1) !== !1 || a === !0) && (b = this.updateComponent(), this.updateInput(b), this.updateData(b), this.updatePicker()), b;\n },\n setValue: function setValue(a) {\n this.color = new b(a), this.update(), this.element.trigger({\n type: \"changeColor\",\n color: this.color,\n value: a\n });\n },\n getValue: function getValue(a) {\n a = void 0 === a ? \"#000000\" : a;\n var b;\n return b = this.hasInput() ? this.input.val() : this.element.data(\"color\"), (void 0 === b || \"\" === b || null === b) && (b = a), b;\n },\n hasInput: function hasInput() {\n return this.input !== !1;\n },\n isDisabled: function isDisabled() {\n return this.hasInput() ? this.input.prop(\"disabled\") === !0 : !1;\n },\n disable: function disable() {\n return this.hasInput() ? (this.input.prop(\"disabled\", !0), this.element.trigger({\n type: \"disable\",\n color: this.color,\n value: this.getValue()\n }), !0) : !1;\n },\n enable: function enable() {\n return this.hasInput() ? (this.input.prop(\"disabled\", !1), this.element.trigger({\n type: \"enable\",\n color: this.color,\n value: this.getValue()\n }), !0) : !1;\n },\n currentSlider: null,\n mousePointer: {\n left: 0,\n top: 0\n },\n mousedown: function mousedown(b) {\n b.pageX || b.pageY || !b.originalEvent || (b.pageX = b.originalEvent.touches[0].pageX, b.pageY = b.originalEvent.touches[0].pageY), b.stopPropagation(), b.preventDefault();\n var c = a(b.target),\n d = c.closest(\"div\"),\n e = this.options.horizontal ? this.options.slidersHorz : this.options.sliders;\n if (!d.is(\".colorpicker\")) {\n if (d.is(\".colorpicker-saturation\")) this.currentSlider = a.extend({}, e.saturation);else if (d.is(\".colorpicker-hue\")) this.currentSlider = a.extend({}, e.hue);else {\n if (!d.is(\".colorpicker-alpha\")) return !1;\n this.currentSlider = a.extend({}, e.alpha);\n }\n var f = d.offset();\n this.currentSlider.guide = d.find(\"i\")[0].style, this.currentSlider.left = b.pageX - f.left, this.currentSlider.top = b.pageY - f.top, this.mousePointer = {\n left: b.pageX,\n top: b.pageY\n }, a(document).on({\n \"mousemove.colorpicker\": a.proxy(this.mousemove, this),\n \"touchmove.colorpicker\": a.proxy(this.mousemove, this),\n \"mouseup.colorpicker\": a.proxy(this.mouseup, this),\n \"touchend.colorpicker\": a.proxy(this.mouseup, this)\n }).trigger(\"mousemove\");\n }\n return !1;\n },\n mousemove: function mousemove(a) {\n a.pageX || a.pageY || !a.originalEvent || (a.pageX = a.originalEvent.touches[0].pageX, a.pageY = a.originalEvent.touches[0].pageY), a.stopPropagation(), a.preventDefault();\n var b = Math.max(0, Math.min(this.currentSlider.maxLeft, this.currentSlider.left + ((a.pageX || this.mousePointer.left) - this.mousePointer.left))),\n c = Math.max(0, Math.min(this.currentSlider.maxTop, this.currentSlider.top + ((a.pageY || this.mousePointer.top) - this.mousePointer.top)));\n return this.currentSlider.guide.left = b + \"px\", this.currentSlider.guide.top = c + \"px\", this.currentSlider.callLeft && this.color[this.currentSlider.callLeft].call(this.color, b / this.currentSlider.maxLeft), this.currentSlider.callTop && this.color[this.currentSlider.callTop].call(this.color, c / this.currentSlider.maxTop), this.update(!0), this.element.trigger({\n type: \"changeColor\",\n color: this.color\n }), !1;\n },\n mouseup: function mouseup(b) {\n return b.stopPropagation(), b.preventDefault(), a(document).off({\n \"mousemove.colorpicker\": this.mousemove,\n \"touchmove.colorpicker\": this.mousemove,\n \"mouseup.colorpicker\": this.mouseup,\n \"touchend.colorpicker\": this.mouseup\n }), !1;\n },\n keyup: function keyup(a) {\n if (38 === a.keyCode) this.color.value.a < 1 && (this.color.value.a = Math.round(100 * (this.color.value.a + .01)) / 100), this.update(!0);else if (40 === a.keyCode) this.color.value.a > 0 && (this.color.value.a = Math.round(100 * (this.color.value.a - .01)) / 100), this.update(!0);else {\n var c = this.input.val();\n this.color = new b(c), this.getValue(!1) !== !1 && (this.updateData(), this.updateComponent(), this.updatePicker());\n }\n this.element.trigger({\n type: \"changeColor\",\n color: this.color,\n value: c\n });\n }\n }, a.colorpicker = d, a.fn.colorpicker = function (b) {\n var c,\n e = arguments,\n f = this.each(function () {\n var f = a(this),\n g = f.data(\"colorpicker\"),\n h = \"object\" == _typeof(b) ? b : {};\n g || \"string\" == typeof b ? \"string\" == typeof b && (c = g[b].apply(g, Array.prototype.slice.call(e, 1))) : f.data(\"colorpicker\", new d(this, h));\n });\n return \"getValue\" === b ? c : f;\n }, a.fn.colorpicker.constructor = d;\n});\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/bootstrap-colorpicker.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/bootstrap-datetimepicker.js":
/*!*********************************************************************!*\
!*** ./buyercall/assets/scripts/vendor/bootstrap-datetimepicker.js ***!
\*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*! version : 4.17.37\n =========================================================\n bootstrap-datetimejs\n https://github.com/Eonasdan/bootstrap-datetimepicker\n Copyright (c) 2015 Jonathan Peterson\n =========================================================\n */\n/*\n The MIT License (MIT)\n\n Copyright (c) 2015 Jonathan Peterson\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n/*global define:false */\n/*global exports:false */\n/*global require:false */\n/*global jQuery:false */\n/*global moment:false */\n\n/*\n\n\n Creative Tim Modifications\n\n Line: 298 - we added class btn-primary for custom styling button.\n\n\n*/\n(function (factory) {\n 'use strict';\n\n if (true) {\n // AMD is used - Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ \"jquery\"), __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n})(function ($, moment) {\n 'use strict';\n\n if (!moment) {\n throw new Error('bootstrap-datetimepicker requires Moment.js to be loaded first');\n }\n var dateTimePicker = function dateTimePicker(element, options) {\n var picker = {},\n date,\n viewDate,\n unset = true,\n input,\n component = false,\n widget = false,\n use24Hours,\n minViewModeNumber = 0,\n actualFormat,\n parseFormats,\n currentViewMode,\n datePickerModes = [{\n clsName: 'days',\n navFnc: 'M',\n navStep: 1\n }, {\n clsName: 'months',\n navFnc: 'y',\n navStep: 1\n }, {\n clsName: 'years',\n navFnc: 'y',\n navStep: 10\n }, {\n clsName: 'decades',\n navFnc: 'y',\n navStep: 100\n }],\n viewModes = ['days', 'months', 'years', 'decades'],\n verticalModes = ['top', 'bottom', 'auto'],\n horizontalModes = ['left', 'right', 'auto'],\n toolbarPlacements = ['default', 'top', 'bottom'],\n keyMap = {\n 'up': 38,\n 38: 'up',\n 'down': 40,\n 40: 'down',\n 'left': 37,\n 37: 'left',\n 'right': 39,\n 39: 'right',\n 'tab': 9,\n 9: 'tab',\n 'escape': 27,\n 27: 'escape',\n 'enter': 13,\n 13: 'enter',\n 'pageUp': 33,\n 33: 'pageUp',\n 'pageDown': 34,\n 34: 'pageDown',\n 'shift': 16,\n 16: 'shift',\n 'control': 17,\n 17: 'control',\n 'space': 32,\n 32: 'space',\n 't': 84,\n 84: 't',\n 'delete': 46,\n 46: 'delete'\n },\n keyState = {},\n /********************************************************************************\n *\n * Private functions\n *\n ********************************************************************************/\n getMoment = function getMoment(d) {\n var tzEnabled = false,\n returnMoment,\n currentZoneOffset,\n incomingZoneOffset,\n timeZoneIndicator,\n dateWithTimeZoneInfo;\n if (moment.tz !== undefined && options.timeZone !== undefined && options.timeZone !== null && options.timeZone !== '') {\n tzEnabled = true;\n }\n if (d === undefined || d === null) {\n if (tzEnabled) {\n returnMoment = moment().tz(options.timeZone).startOf('d');\n } else {\n returnMoment = moment().startOf('d');\n }\n } else {\n if (tzEnabled) {\n currentZoneOffset = moment().tz(options.timeZone).utcOffset();\n incomingZoneOffset = moment(d, parseFormats, options.useStrict).utcOffset();\n if (incomingZoneOffset !== currentZoneOffset) {\n timeZoneIndicator = moment().tz(options.timeZone).format('Z');\n dateWithTimeZoneInfo = moment(d, parseFormats, options.useStrict).format('YYYY-MM-DD[T]HH:mm:ss') + timeZoneIndicator;\n returnMoment = moment(dateWithTimeZoneInfo, parseFormats, options.useStrict).tz(options.timeZone);\n } else {\n returnMoment = moment(d, parseFormats, options.useStrict).tz(options.timeZone);\n }\n } else {\n returnMoment = moment(d, parseFormats, options.useStrict);\n }\n }\n return returnMoment;\n },\n isEnabled = function isEnabled(granularity) {\n if (typeof granularity !== 'string' || granularity.length > 1) {\n throw new TypeError('isEnabled expects a single character string parameter');\n }\n switch (granularity) {\n case 'y':\n return actualFormat.indexOf('Y') !== -1;\n case 'M':\n return actualFormat.indexOf('M') !== -1;\n case 'd':\n return actualFormat.toLowerCase().indexOf('d') !== -1;\n case 'h':\n case 'H':\n return actualFormat.toLowerCase().indexOf('h') !== -1;\n case 'm':\n return actualFormat.indexOf('m') !== -1;\n case 's':\n return actualFormat.indexOf('s') !== -1;\n default:\n return false;\n }\n },\n hasTime = function hasTime() {\n return isEnabled('h') || isEnabled('m') || isEnabled('s');\n },\n hasDate = function hasDate() {\n return isEnabled('y') || isEnabled('M') || isEnabled('d');\n },\n getDatePickerTemplate = function getDatePickerTemplate() {\n var headTemplate = $('<thead>').append($('<tr>').append($('<th>').addClass('prev').attr('data-action', 'previous').append($('<span>').addClass(options.icons.previous))).append($('<th>').addClass('picker-switch').attr('data-action', 'pickerSwitch').attr('colspan', options.calendarWeeks ? '6' : '5')).append($('<th>').addClass('next').attr('data-action', 'next').append($('<span>').addClass(options.icons.next)))),\n contTemplate = $('<tbody>').append($('<tr>').append($('<td>').attr('colspan', options.calendarWeeks ? '8' : '7')));\n return [$('<div>').addClass('datepicker-days').append($('<table>').addClass('table-condensed').append(headTemplate).append($('<tbody>'))), $('<div>').addClass('datepicker-months').append($('<table>').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('<div>').addClass('datepicker-years').append($('<table>').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('<div>').addClass('datepicker-decades').append($('<table>').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone()))];\n },\n getTimePickerMainTemplate = function getTimePickerMainTemplate() {\n var topRow = $('<tr>'),\n middleRow = $('<tr>'),\n bottomRow = $('<tr>');\n if (isEnabled('h')) {\n topRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.incrementHour\n }).addClass('btn').attr('data-action', 'incrementHours').append($('<span>').addClass(options.icons.up))));\n middleRow.append($('<td>').append($('<span>').addClass('timepicker-hour').attr({\n 'data-time-component': 'hours',\n 'title': options.tooltips.pickHour\n }).attr('data-action', 'showHours')));\n bottomRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.decrementHour\n }).addClass('btn').attr('data-action', 'decrementHours').append($('<span>').addClass(options.icons.down))));\n }\n if (isEnabled('m')) {\n if (isEnabled('h')) {\n topRow.append($('<td>').addClass('separator'));\n middleRow.append($('<td>').addClass('separator').html(':'));\n bottomRow.append($('<td>').addClass('separator'));\n }\n topRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.incrementMinute\n }).addClass('btn').attr('data-action', 'incrementMinutes').append($('<span>').addClass(options.icons.up))));\n middleRow.append($('<td>').append($('<span>').addClass('timepicker-minute').attr({\n 'data-time-component': 'minutes',\n 'title': options.tooltips.pickMinute\n }).attr('data-action', 'showMinutes')));\n bottomRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.decrementMinute\n }).addClass('btn').attr('data-action', 'decrementMinutes').append($('<span>').addClass(options.icons.down))));\n }\n if (isEnabled('s')) {\n if (isEnabled('m')) {\n topRow.append($('<td>').addClass('separator'));\n middleRow.append($('<td>').addClass('separator').html(':'));\n bottomRow.append($('<td>').addClass('separator'));\n }\n topRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.incrementSecond\n }).addClass('btn').attr('data-action', 'incrementSeconds').append($('<span>').addClass(options.icons.up))));\n middleRow.append($('<td>').append($('<span>').addClass('timepicker-second').attr({\n 'data-time-component': 'seconds',\n 'title': options.tooltips.pickSecond\n }).attr('data-action', 'showSeconds')));\n bottomRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.decrementSecond\n }).addClass('btn').attr('data-action', 'decrementSeconds').append($('<span>').addClass(options.icons.down))));\n }\n if (!use24Hours) {\n topRow.append($('<td>').addClass('separator'));\n middleRow.append($('<td>').append($('<button>').addClass('btn btn-primary btn-round').attr({\n 'data-action': 'togglePeriod',\n tabindex: '-1',\n 'title': options.tooltips.togglePeriod\n })));\n bottomRow.append($('<td>').addClass('separator'));\n }\n return $('<div>').addClass('timepicker-picker').append($('<table>').addClass('table-condensed').append([topRow, middleRow, bottomRow]));\n },\n getTimePickerTemplate = function getTimePickerTemplate() {\n var hoursView = $('<div>').addClass('timepicker-hours').append($('<table>').addClass('table-condensed')),\n minutesView = $('<div>').addClass('timepicker-minutes').append($('<table>').addClass('table-condensed')),\n secondsView = $('<div>').addClass('timepicker-seconds').append($('<table>').addClass('table-condensed')),\n ret = [getTimePickerMainTemplate()];\n if (isEnabled('h')) {\n ret.push(hoursView);\n }\n if (isEnabled('m')) {\n ret.push(minutesView);\n }\n if (isEnabled('s')) {\n ret.push(secondsView);\n }\n return ret;\n },\n getToolbar = function getToolbar() {\n var row = [];\n if (options.showTodayButton) {\n row.push($('<td>').append($('<a>').attr({\n 'data-action': 'today',\n 'title': options.tooltips.today\n }).append($('<span>').addClass(options.icons.today))));\n }\n if (!options.sideBySide && hasDate() && hasTime()) {\n row.push($('<td>').append($('<a>').attr({\n 'data-action': 'togglePicker',\n 'title': options.tooltips.selectTime\n }).append($('<span>').addClass(options.icons.time))));\n }\n if (options.showClear) {\n row.push($('<td>').append($('<a>').attr({\n 'data-action': 'clear',\n 'title': options.tooltips.clear\n }).append($('<span>').addClass(options.icons.clear))));\n }\n if (options.showClose) {\n row.push($('<td>').append($('<a>').attr({\n 'data-action': 'close',\n 'title': options.tooltips.close\n }).append($('<span>').addClass(options.icons.close))));\n }\n return $('<table>').addClass('table-condensed').append($('<tbody>').append($('<tr>').append(row)));\n },\n getTemplate = function getTemplate() {\n var template = $('<div>').addClass('bootstrap-datetimepicker-widget dropdown-menu'),\n dateView = $('<div>').addClass('datepicker').append(getDatePickerTemplate()),\n timeView = $('<div>').addClass('timepicker').append(getTimePickerTemplate()),\n content = $('<ul>').addClass('list-unstyled'),\n toolbar = $('<li>').addClass('picker-switch' + (options.collapse ? ' accordion-toggle' : '')).append(getToolbar());\n if (options.inline) {\n template.removeClass('dropdown-menu');\n }\n if (use24Hours) {\n template.addClass('usetwentyfour');\n }\n if (isEnabled('s') && !use24Hours) {\n template.addClass('wider');\n }\n if (options.sideBySide && hasDate() && hasTime()) {\n template.addClass('timepicker-sbs');\n if (options.toolbarPlacement === 'top') {\n template.append(toolbar);\n }\n template.append($('<div>').addClass('row').append(dateView.addClass('col-md-6')).append(timeView.addClass('col-md-6')));\n if (options.toolbarPlacement === 'bottom') {\n template.append(toolbar);\n }\n return template;\n }\n if (options.toolbarPlacement === 'top') {\n content.append(toolbar);\n }\n if (hasDate()) {\n content.append($('<li>').addClass(options.collapse && hasTime() ? 'collapse in' : '').append(dateView));\n }\n if (options.toolbarPlacement === 'default') {\n content.append(toolbar);\n }\n if (hasTime()) {\n content.append($('<li>').addClass(options.collapse && hasDate() ? 'collapse' : '').append(timeView));\n }\n if (options.toolbarPlacement === 'bottom') {\n content.append(toolbar);\n }\n return template.append(content);\n },\n dataToOptions = function dataToOptions() {\n var eData,\n dataOptions = {};\n if (element.is('input') || options.inline) {\n eData = element.data();\n } else {\n eData = element.find('input').data();\n }\n if (eData.dateOptions && eData.dateOptions instanceof Object) {\n dataOptions = $.extend(true, dataOptions, eData.dateOptions);\n }\n $.each(options, function (key) {\n var attributeName = 'date' + key.charAt(0).toUpperCase() + key.slice(1);\n if (eData[attributeName] !== undefined) {\n dataOptions[key] = eData[attributeName];\n }\n });\n return dataOptions;\n },\n place = function place() {\n var position = (component || element).position(),\n offset = (component || element).offset(),\n vertical = options.widgetPositioning.vertical,\n horizontal = options.widgetPositioning.horizontal,\n parent;\n if (options.widgetParent) {\n parent = options.widgetParent.append(widget);\n } else if (element.is('input')) {\n parent = element.after(widget).parent();\n } else if (options.inline) {\n parent = element.append(widget);\n return;\n } else {\n parent = element;\n element.children().first().after(widget);\n }\n\n // Top and bottom logic\n if (vertical === 'auto') {\n if (offset.top + widget.height() * 1.5 >= $(window).height() + $(window).scrollTop() && widget.height() + element.outerHeight() < offset.top) {\n vertical = 'top';\n } else {\n vertical = 'bottom';\n }\n }\n\n // Left and right logic\n if (horizontal === 'auto') {\n if (parent.width() < offset.left + widget.outerWidth() / 2 && offset.left + widget.outerWidth() > $(window).width()) {\n horizontal = 'right';\n } else {\n horizontal = 'left';\n }\n }\n if (vertical === 'top') {\n widget.addClass('top').removeClass('bottom');\n } else {\n widget.addClass('bottom').removeClass('top');\n }\n if (horizontal === 'right') {\n widget.addClass('pull-right');\n } else {\n widget.removeClass('pull-right');\n }\n\n // find the first parent element that has a relative css positioning\n if (parent.css('position') !== 'relative') {\n parent = parent.parents().filter(function () {\n return $(this).css('position') === 'relative';\n }).first();\n }\n if (parent.length === 0) {\n throw new Error('datetimepicker component should be placed within a relative positioned container');\n }\n widget.css({\n top: vertical === 'top' ? 'auto' : position.top + element.outerHeight(),\n bottom: vertical === 'top' ? position.top + element.outerHeight() : 'auto',\n left: horizontal === 'left' ? parent === element ? 0 : position.left : 'auto',\n right: horizontal === 'left' ? 'auto' : parent.outerWidth() - element.outerWidth() - (parent === element ? 0 : position.left)\n });\n\n // Creative Tim Changes - we add after 180 ms the \".open\" class, in this way the animations will be the same with the other dropdowns from the\n setTimeout(function () {\n widget.addClass('open');\n }, 180);\n },\n notifyEvent = function notifyEvent(e) {\n if (e.type === 'dp.change' && (e.date && e.date.isSame(e.oldDate) || !e.date && !e.oldDate)) {\n return;\n }\n element.trigger(e);\n },\n viewUpdate = function viewUpdate(e) {\n if (e === 'y') {\n e = 'YYYY';\n }\n notifyEvent({\n type: 'dp.update',\n change: e,\n viewDate: viewDate.clone()\n });\n },\n showMode = function showMode(dir) {\n if (!widget) {\n return;\n }\n if (dir) {\n currentViewMode = Math.max(minViewModeNumber, Math.min(3, currentViewMode + dir));\n }\n widget.find('.datepicker > div').hide().filter('.datepicker-' + datePickerModes[currentViewMode].clsName).show();\n },\n fillDow = function fillDow() {\n var row = $('<tr>'),\n currentDate = viewDate.clone().startOf('w').startOf('d');\n if (options.calendarWeeks === true) {\n row.append($('<th>').addClass('cw').text('#'));\n }\n while (currentDate.isBefore(viewDate.clone().endOf('w'))) {\n row.append($('<th>').addClass('dow').text(currentDate.format('dd')));\n currentDate.add(1, 'd');\n }\n widget.find('.datepicker-days thead').append(row);\n },\n isInDisabledDates = function isInDisabledDates(testDate) {\n return options.disabledDates[testDate.format('YYYY-MM-DD')] === true;\n },\n isInEnabledDates = function isInEnabledDates(testDate) {\n return options.enabledDates[testDate.format('YYYY-MM-DD')] === true;\n },\n isInDisabledHours = function isInDisabledHours(testDate) {\n return options.disabledHours[testDate.format('H')] === true;\n },\n isInEnabledHours = function isInEnabledHours(testDate) {\n return options.enabledHours[testDate.format('H')] === true;\n },\n isValid = function isValid(targetMoment, granularity) {\n if (!targetMoment.isValid()) {\n return false;\n }\n if (options.disabledDates && granularity === 'd' && isInDisabledDates(targetMoment)) {\n return false;\n }\n if (options.enabledDates && granularity === 'd' && !isInEnabledDates(targetMoment)) {\n return false;\n }\n if (options.minDate && targetMoment.isBefore(options.minDate, granularity)) {\n return false;\n }\n if (options.maxDate && targetMoment.isAfter(options.maxDate, granularity)) {\n return false;\n }\n if (options.daysOfWeekDisabled && granularity === 'd' && options.daysOfWeekDisabled.indexOf(targetMoment.day()) !== -1) {\n return false;\n }\n if (options.disabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && isInDisabledHours(targetMoment)) {\n return false;\n }\n if (options.enabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && !isInEnabledHours(targetMoment)) {\n return false;\n }\n if (options.disabledTimeIntervals && (granularity === 'h' || granularity === 'm' || granularity === 's')) {\n var found = false;\n $.each(options.disabledTimeIntervals, function () {\n if (targetMoment.isBetween(this[0], this[1])) {\n found = true;\n return false;\n }\n });\n if (found) {\n return false;\n }\n }\n return true;\n },\n fillMonths = function fillMonths() {\n var spans = [],\n monthsShort = viewDate.clone().startOf('y').startOf('d');\n while (monthsShort.isSame(viewDate, 'y')) {\n spans.push($('<span>').attr('data-action', 'selectMonth').addClass('month').text(monthsShort.format('MMM')));\n monthsShort.add(1, 'M');\n }\n widget.find('.datepicker-months td').empty().append(spans);\n },\n updateMonths = function updateMonths() {\n var monthsView = widget.find('.datepicker-months'),\n monthsViewHeader = monthsView.find('th'),\n months = monthsView.find('tbody').find('span');\n monthsViewHeader.eq(0).find('span').attr('title', options.tooltips.prevYear);\n monthsViewHeader.eq(1).attr('title', options.tooltips.selectYear);\n monthsViewHeader.eq(2).find('span').attr('title', options.tooltips.nextYear);\n monthsView.find('.disabled').removeClass('disabled');\n if (!isValid(viewDate.clone().subtract(1, 'y'), 'y')) {\n monthsViewHeader.eq(0).addClass('disabled');\n }\n monthsViewHeader.eq(1).text(viewDate.year());\n if (!isValid(viewDate.clone().add(1, 'y'), 'y')) {\n monthsViewHeader.eq(2).addClass('disabled');\n }\n months.removeClass('active');\n if (date.isSame(viewDate, 'y') && !unset) {\n months.eq(date.month()).addClass('active');\n }\n months.each(function (index) {\n if (!isValid(viewDate.clone().month(index), 'M')) {\n $(this).addClass('disabled');\n }\n });\n },\n updateYears = function updateYears() {\n var yearsView = widget.find('.datepicker-years'),\n yearsViewHeader = yearsView.find('th'),\n startYear = viewDate.clone().subtract(5, 'y'),\n endYear = viewDate.clone().add(6, 'y'),\n html = '';\n yearsViewHeader.eq(0).find('span').attr('title', options.tooltips.prevDecade);\n yearsViewHeader.eq(1).attr('title', options.tooltips.selectDecade);\n yearsViewHeader.eq(2).find('span').attr('title', options.tooltips.nextDecade);\n yearsView.find('.disabled').removeClass('disabled');\n if (options.minDate && options.minDate.isAfter(startYear, 'y')) {\n yearsViewHeader.eq(0).addClass('disabled');\n }\n yearsViewHeader.eq(1).text(startYear.year() + '-' + endYear.year());\n if (options.maxDate && options.maxDate.isBefore(endYear, 'y')) {\n yearsViewHeader.eq(2).addClass('disabled');\n }\n while (!startYear.isAfter(endYear, 'y')) {\n html += '<span data-action=\"selectYear\" class=\"year' + (startYear.isSame(date, 'y') && !unset ? ' active' : '') + (!isValid(startYear, 'y') ? ' disabled' : '') + '\">' + startYear.year() + '</span>';\n startYear.add(1, 'y');\n }\n yearsView.find('td').html(html);\n },\n updateDecades = function updateDecades() {\n var decadesView = widget.find('.datepicker-decades'),\n decadesViewHeader = decadesView.find('th'),\n startDecade = moment({\n y: viewDate.year() - viewDate.year() % 100 - 1\n }),\n endDecade = startDecade.clone().add(100, 'y'),\n startedAt = startDecade.clone(),\n html = '';\n decadesViewHeader.eq(0).find('span').attr('title', options.tooltips.prevCentury);\n decadesViewHeader.eq(2).find('span').attr('title', options.tooltips.nextCentury);\n decadesView.find('.disabled').removeClass('disabled');\n if (startDecade.isSame(moment({\n y: 1900\n })) || options.minDate && options.minDate.isAfter(startDecade, 'y')) {\n decadesViewHeader.eq(0).addClass('disabled');\n }\n decadesViewHeader.eq(1).text(startDecade.year() + '-' + endDecade.year());\n if (startDecade.isSame(moment({\n y: 2000\n })) || options.maxDate && options.maxDate.isBefore(endDecade, 'y')) {\n decadesViewHeader.eq(2).addClass('disabled');\n }\n while (!startDecade.isAfter(endDecade, 'y')) {\n html += '<span data-action=\"selectDecade\" class=\"decade' + (startDecade.isSame(date, 'y') ? ' active' : '') + (!isValid(startDecade, 'y') ? ' disabled' : '') + '\" data-selection=\"' + (startDecade.year() + 6) + '\">' + (startDecade.year() + 1) + ' - ' + (startDecade.year() + 12) + '</span>';\n startDecade.add(12, 'y');\n }\n html += '<span></span><span></span><span></span>'; //push the dangling block over, at least this way it's even\n\n decadesView.find('td').html(html);\n decadesViewHeader.eq(1).text(startedAt.year() + 1 + '-' + startDecade.year());\n },\n fillDate = function fillDate() {\n var daysView = widget.find('.datepicker-days'),\n daysViewHeader = daysView.find('th'),\n currentDate,\n html = [],\n row,\n clsName,\n i;\n if (!hasDate()) {\n return;\n }\n daysViewHeader.eq(0).find('span').attr('title', options.tooltips.prevMonth);\n daysViewHeader.eq(1).attr('title', options.tooltips.selectMonth);\n daysViewHeader.eq(2).find('span').attr('title', options.tooltips.nextMonth);\n daysView.find('.disabled').removeClass('disabled');\n daysViewHeader.eq(1).text(viewDate.format(options.dayViewHeaderFormat));\n if (!isValid(viewDate.clone().subtract(1, 'M'), 'M')) {\n daysViewHeader.eq(0).addClass('disabled');\n }\n if (!isValid(viewDate.clone().add(1, 'M'), 'M')) {\n daysViewHeader.eq(2).addClass('disabled');\n }\n currentDate = viewDate.clone().startOf('M').startOf('w').startOf('d');\n for (i = 0; i < 42; i++) {\n //always display 42 days (should show 6 weeks)\n if (currentDate.weekday() === 0) {\n row = $('<tr>');\n if (options.calendarWeeks) {\n row.append('<td class=\"cw\">' + currentDate.week() + '</td>');\n }\n html.push(row);\n }\n clsName = '';\n if (currentDate.isBefore(viewDate, 'M')) {\n clsName += ' old';\n }\n if (currentDate.isAfter(viewDate, 'M')) {\n clsName += ' new';\n }\n if (currentDate.isSame(date, 'd') && !unset) {\n clsName += ' active';\n }\n if (!isValid(currentDate, 'd')) {\n clsName += ' disabled';\n }\n if (currentDate.isSame(getMoment(), 'd')) {\n clsName += ' today';\n }\n if (currentDate.day() === 0 || currentDate.day() === 6) {\n clsName += ' weekend';\n }\n\n // Creative Tim - we added a div inside each td for design purposes\n\n row.append('<td data-action=\"selectDay\" data-day=\"' + currentDate.format('L') + '\" class=\"day' + clsName + '\"><div>' + currentDate.date() + '</div></td>');\n currentDate.add(1, 'd');\n }\n daysView.find('tbody').empty().append(html);\n updateMonths();\n updateYears();\n updateDecades();\n },\n fillHours = function fillHours() {\n var table = widget.find('.timepicker-hours table'),\n currentHour = viewDate.clone().startOf('d'),\n html = [],\n row = $('<tr>');\n if (viewDate.hour() > 11 && !use24Hours) {\n currentHour.hour(12);\n }\n while (currentHour.isSame(viewDate, 'd') && (use24Hours || viewDate.hour() < 12 && currentHour.hour() < 12 || viewDate.hour() > 11)) {\n if (currentHour.hour() % 4 === 0) {\n row = $('<tr>');\n html.push(row);\n }\n\n // Creative Tim - we added a div inside each class minute for design purposes\n\n row.append('<td data-action=\"selectHour\" class=\"hour' + (!isValid(currentHour, 'h') ? ' disabled' : '') + '\"><div>' + currentHour.format(use24Hours ? 'HH' : 'hh') + '</div></td>');\n currentHour.add(1, 'h');\n }\n table.empty().append(html);\n },\n fillMinutes = function fillMinutes() {\n var table = widget.find('.timepicker-minutes table'),\n currentMinute = viewDate.clone().startOf('h'),\n html = [],\n row = $('<tr>'),\n step = options.stepping === 1 ? 5 : options.stepping;\n while (viewDate.isSame(currentMinute, 'h')) {\n if (currentMinute.minute() % (step * 4) === 0) {\n row = $('<tr>');\n html.push(row);\n }\n\n // Creative Tim - we added a div inside each class minute for design purposes\n\n row.append('<td data-action=\"selectMinute\" class=\"minute' + (!isValid(currentMinute, 'm') ? ' disabled' : '') + '\"><div>' + currentMinute.format('mm') + '</div></td>');\n currentMinute.add(step, 'm');\n }\n table.empty().append(html);\n },\n fillSeconds = function fillSeconds() {\n var table = widget.find('.timepicker-seconds table'),\n currentSecond = viewDate.clone().startOf('m'),\n html = [],\n row = $('<tr>');\n while (viewDate.isSame(currentSecond, 'm')) {\n if (currentSecond.second() % 20 === 0) {\n row = $('<tr>');\n html.push(row);\n }\n\n // Creative Tim - we added a div inside each class minute for design purposes\n\n row.append('<td data-action=\"selectSecond\" class=\"second' + (!isValid(currentSecond, 's') ? ' disabled' : '') + '\"><div>' + currentSecond.format('ss') + '</div></td>');\n currentSecond.add(5, 's');\n }\n table.empty().append(html);\n },\n fillTime = function fillTime() {\n var toggle,\n newDate,\n timeComponents = widget.find('.timepicker span[data-time-component]');\n if (!use24Hours) {\n toggle = widget.find('.timepicker [data-action=togglePeriod]');\n newDate = date.clone().add(date.hours() >= 12 ? -12 : 12, 'h');\n toggle.text(date.format('A'));\n if (isValid(newDate, 'h')) {\n toggle.removeClass('disabled');\n } else {\n toggle.addClass('disabled');\n }\n }\n timeComponents.filter('[data-time-component=hours]').text(date.format(use24Hours ? 'HH' : 'hh'));\n timeComponents.filter('[data-time-component=minutes]').text(date.format('mm'));\n timeComponents.filter('[data-time-component=seconds]').text(date.format('ss'));\n fillHours();\n fillMinutes();\n fillSeconds();\n },\n update = function update() {\n if (!widget) {\n return;\n }\n fillDate();\n fillTime();\n },\n setValue = function setValue(targetMoment) {\n var oldDate = unset ? null : date;\n\n // case of calling setValue(null or false)\n if (!targetMoment) {\n unset = true;\n input.val('');\n element.data('date', '');\n notifyEvent({\n type: 'dp.change',\n date: false,\n oldDate: oldDate\n });\n update();\n return;\n }\n targetMoment = targetMoment.clone().locale(options.locale);\n if (options.stepping !== 1) {\n targetMoment.minutes(Math.round(targetMoment.minutes() / options.stepping) * options.stepping % 60).seconds(0);\n }\n if (isValid(targetMoment)) {\n date = targetMoment;\n viewDate = date.clone();\n input.val(date.format(actualFormat));\n element.data('date', date.format(actualFormat));\n unset = false;\n update();\n notifyEvent({\n type: 'dp.change',\n date: date.clone(),\n oldDate: oldDate\n });\n } else {\n if (!options.keepInvalid) {\n input.val(unset ? '' : date.format(actualFormat));\n }\n notifyEvent({\n type: 'dp.error',\n date: targetMoment\n });\n }\n },\n hide = function hide() {\n ///<summary>Hides the widget. Possibly will emit dp.hide</summary>\n var transitioning = false;\n if (!widget) {\n return picker;\n }\n // Ignore event if in the middle of a picker transition\n widget.find('.collapse').each(function () {\n var collapseData = $(this).data('collapse');\n if (collapseData && collapseData.transitioning) {\n transitioning = true;\n return false;\n }\n return true;\n });\n if (transitioning) {\n return picker;\n }\n if (component && component.hasClass('btn')) {\n component.toggleClass('active');\n }\n $(window).off('resize', place);\n widget.off('click', '[data-action]');\n widget.off('mousedown', false);\n\n // Creative Tim Changes - we remove the \".open\" class, then, fter 400 ms call the .hide() method, in this way the animations will be the same with the other dropdowns from the dashboard\n\n widget.removeClass('open');\n setTimeout(function () {\n widget.hide();\n widget.remove();\n widget = false;\n notifyEvent({\n type: 'dp.hide',\n date: date.clone()\n });\n input.blur();\n return picker;\n }, 400);\n },\n clear = function clear() {\n setValue(null);\n },\n /********************************************************************************\n *\n * Widget UI interaction functions\n *\n ********************************************************************************/\n actions = {\n next: function next() {\n var navFnc = datePickerModes[currentViewMode].navFnc;\n viewDate.add(datePickerModes[currentViewMode].navStep, navFnc);\n fillDate();\n viewUpdate(navFnc);\n },\n previous: function previous() {\n var navFnc = datePickerModes[currentViewMode].navFnc;\n viewDate.subtract(datePickerModes[currentViewMode].navStep, navFnc);\n fillDate();\n viewUpdate(navFnc);\n },\n pickerSwitch: function pickerSwitch() {\n showMode(1);\n },\n selectMonth: function selectMonth(e) {\n var month = $(e.target).closest('tbody').find('span').index($(e.target));\n viewDate.month(month);\n if (currentViewMode === minViewModeNumber) {\n setValue(date.clone().year(viewDate.year()).month(viewDate.month()));\n if (!options.inline) {\n hide();\n }\n } else {\n showMode(-1);\n fillDate();\n }\n viewUpdate('M');\n },\n selectYear: function selectYear(e) {\n var year = parseInt($(e.target).text(), 10) || 0;\n viewDate.year(year);\n if (currentViewMode === minViewModeNumber) {\n setValue(date.clone().year(viewDate.year()));\n if (!options.inline) {\n hide();\n }\n } else {\n showMode(-1);\n fillDate();\n }\n viewUpdate('YYYY');\n },\n selectDecade: function selectDecade(e) {\n var year = parseInt($(e.target).data('selection'), 10) || 0;\n viewDate.year(year);\n if (currentViewMode === minViewModeNumber) {\n setValue(date.clone().year(viewDate.year()));\n if (!options.inline) {\n hide();\n }\n } else {\n showMode(-1);\n fillDate();\n }\n viewUpdate('YYYY');\n },\n selectDay: function selectDay(e) {\n var day = viewDate.clone();\n if ($(e.target).is('.old')) {\n day.subtract(1, 'M');\n }\n if ($(e.target).is('.new')) {\n day.add(1, 'M');\n }\n setValue(day.date(parseInt($(e.target).text(), 10)));\n if (!hasTime() && !options.keepOpen && !options.inline) {\n hide();\n }\n },\n incrementHours: function incrementHours() {\n var newDate = date.clone().add(1, 'h');\n if (isValid(newDate, 'h')) {\n setValue(newDate);\n }\n },\n incrementMinutes: function incrementMinutes() {\n var newDate = date.clone().add(options.stepping, 'm');\n if (isValid(newDate, 'm')) {\n setValue(newDate);\n }\n },\n incrementSeconds: function incrementSeconds() {\n var newDate = date.clone().add(1, 's');\n if (isValid(newDate, 's')) {\n setValue(newDate);\n }\n },\n decrementHours: function decrementHours() {\n var newDate = date.clone().subtract(1, 'h');\n if (isValid(newDate, 'h')) {\n setValue(newDate);\n }\n },\n decrementMinutes: function decrementMinutes() {\n var newDate = date.clone().subtract(options.stepping, 'm');\n if (isValid(newDate, 'm')) {\n setValue(newDate);\n }\n },\n decrementSeconds: function decrementSeconds() {\n var newDate = date.clone().subtract(1, 's');\n if (isValid(newDate, 's')) {\n setValue(newDate);\n }\n },\n togglePeriod: function togglePeriod() {\n setValue(date.clone().add(date.hours() >= 12 ? -12 : 12, 'h'));\n },\n togglePicker: function togglePicker(e) {\n var $this = $(e.target),\n $parent = $this.closest('ul'),\n expanded = $parent.find('.in'),\n closed = $parent.find('.collapse:not(.in)'),\n collapseData;\n if (expanded && expanded.length) {\n collapseData = expanded.data('collapse');\n if (collapseData && collapseData.transitioning) {\n return;\n }\n if (expanded.collapse) {\n // if collapse plugin is available through bootstrap.js then use it\n expanded.collapse('hide');\n closed.collapse('show');\n } else {\n // otherwise just toggle in class on the two views\n expanded.removeClass('in');\n closed.addClass('in');\n }\n if ($this.is('span')) {\n $this.toggleClass(options.icons.time + ' ' + options.icons.date);\n } else {\n $this.find('span').toggleClass(options.icons.time + ' ' + options.icons.date);\n }\n\n // NOTE: uncomment if toggled state will be restored in show()\n //if (component) {\n // component.find('span').toggleClass(options.icons.time + ' ' + options.icons.date);\n //}\n }\n },\n\n showPicker: function showPicker() {\n widget.find('.timepicker > div:not(.timepicker-picker)').hide();\n widget.find('.timepicker .timepicker-picker').show();\n },\n showHours: function showHours() {\n widget.find('.timepicker .timepicker-picker').hide();\n widget.find('.timepicker .timepicker-hours').show();\n },\n showMinutes: function showMinutes() {\n widget.find('.timepicker .timepicker-picker').hide();\n widget.find('.timepicker .timepicker-minutes').show();\n },\n showSeconds: function showSeconds() {\n widget.find('.timepicker .timepicker-picker').hide();\n widget.find('.timepicker .timepicker-seconds').show();\n },\n selectHour: function selectHour(e) {\n var hour = parseInt($(e.target).text(), 10);\n if (!use24Hours) {\n if (date.hours() >= 12) {\n if (hour !== 12) {\n hour += 12;\n }\n } else {\n if (hour === 12) {\n hour = 0;\n }\n }\n }\n setValue(date.clone().hours(hour));\n actions.showPicker.call(picker);\n },\n selectMinute: function selectMinute(e) {\n setValue(date.clone().minutes(parseInt($(e.target).text(), 10)));\n actions.showPicker.call(picker);\n },\n selectSecond: function selectSecond(e) {\n setValue(date.clone().seconds(parseInt($(e.target).text(), 10)));\n actions.showPicker.call(picker);\n },\n clear: clear,\n today: function today() {\n var todaysDate = getMoment();\n if (isValid(todaysDate, 'd')) {\n setValue(todaysDate);\n }\n },\n close: hide\n },\n doAction = function doAction(e) {\n if ($(e.currentTarget).is('.disabled')) {\n return false;\n }\n actions[$(e.currentTarget).data('action')].apply(picker, arguments);\n return false;\n },\n show = function show() {\n ///<summary>Shows the widget. Possibly will emit dp.show and dp.change</summary>\n var currentMoment,\n useCurrentGranularity = {\n 'year': function year(m) {\n return m.month(0).date(1).hours(0).seconds(0).minutes(0);\n },\n 'month': function month(m) {\n return m.date(1).hours(0).seconds(0).minutes(0);\n },\n 'day': function day(m) {\n return m.hours(0).seconds(0).minutes(0);\n },\n 'hour': function hour(m) {\n return m.seconds(0).minutes(0);\n },\n 'minute': function minute(m) {\n return m.seconds(0);\n }\n };\n if (input.prop('disabled') || !options.ignoreReadonly && input.prop('readonly') || widget) {\n return picker;\n }\n if (input.val() !== undefined && input.val().trim().length !== 0) {\n setValue(parseInputDate(input.val().trim()));\n } else if (options.useCurrent && unset && (input.is('input') && input.val().trim().length === 0 || options.inline)) {\n currentMoment = getMoment();\n if (typeof options.useCurrent === 'string') {\n currentMoment = useCurrentGranularity[options.useCurrent](currentMoment);\n }\n if (input.context.id != \"alDateFrom\" && input.context.id != 'alDateTo' || input.context.id != \"reDateFrom\" && input.context.id != 'reDateTo') setValue(currentMoment);\n }\n widget = getTemplate();\n fillDow();\n fillMonths();\n widget.find('.timepicker-hours').hide();\n widget.find('.timepicker-minutes').hide();\n widget.find('.timepicker-seconds').hide();\n update();\n showMode();\n $(window).on('resize', place);\n widget.on('click', '[data-action]', doAction); // this handles clicks on the widget\n widget.on('mousedown', false);\n if (component && component.hasClass('btn')) {\n component.toggleClass('active');\n }\n widget.show();\n place();\n if (options.focusOnShow && !input.is(':focus')) {\n input.focus();\n }\n notifyEvent({\n type: 'dp.show'\n });\n return picker;\n },\n toggle = function toggle() {\n /// <summary>Shows or hides the widget</summary>\n return widget ? hide() : show();\n },\n parseInputDate = function parseInputDate(inputDate) {\n if (options.parseInputDate === undefined) {\n if (moment.isMoment(inputDate) || inputDate instanceof Date) {\n inputDate = moment(inputDate);\n } else {\n inputDate = getMoment(inputDate);\n }\n } else {\n inputDate = options.parseInputDate(inputDate);\n }\n inputDate.locale(options.locale);\n return inputDate;\n },\n keydown = function keydown(e) {\n var handler = null,\n index,\n index2,\n pressedKeys = [],\n pressedModifiers = {},\n currentKey = e.which,\n keyBindKeys,\n allModifiersPressed,\n pressed = 'p';\n keyState[currentKey] = pressed;\n for (index in keyState) {\n if (keyState.hasOwnProperty(index) && keyState[index] === pressed) {\n pressedKeys.push(index);\n if (parseInt(index, 10) !== currentKey) {\n pressedModifiers[index] = true;\n }\n }\n }\n for (index in options.keyBinds) {\n if (options.keyBinds.hasOwnProperty(index) && typeof options.keyBinds[index] === 'function') {\n keyBindKeys = index.split(' ');\n if (keyBindKeys.length === pressedKeys.length && keyMap[currentKey] === keyBindKeys[keyBindKeys.length - 1]) {\n allModifiersPressed = true;\n for (index2 = keyBindKeys.length - 2; index2 >= 0; index2--) {\n if (!(keyMap[keyBindKeys[index2]] in pressedModifiers)) {\n allModifiersPressed = false;\n break;\n }\n }\n if (allModifiersPressed) {\n handler = options.keyBinds[index];\n break;\n }\n }\n }\n }\n if (handler) {\n handler.call(picker, widget);\n e.stopPropagation();\n e.preventDefault();\n }\n },\n keyup = function keyup(e) {\n keyState[e.which] = 'r';\n e.stopPropagation();\n e.preventDefault();\n },\n change = function change(e) {\n var val = $(e.target).val().trim(),\n parsedDate = val ? parseInputDate(val) : null;\n setValue(parsedDate);\n e.stopImmediatePropagation();\n return false;\n },\n attachDatePickerElementEvents = function attachDatePickerElementEvents() {\n input.on({\n 'change': change,\n 'blur': options.debug ? '' : hide,\n 'keydown': keydown,\n 'keyup': keyup,\n 'focus': options.allowInputToggle ? show : ''\n });\n if (element.is('input')) {\n input.on({\n 'focus': show\n });\n } else if (component) {\n component.on('click', toggle);\n component.on('mousedown', false);\n }\n },\n detachDatePickerElementEvents = function detachDatePickerElementEvents() {\n input.off({\n 'change': change,\n 'blur': blur,\n 'keydown': keydown,\n 'keyup': keyup,\n 'focus': options.allowInputToggle ? hide : ''\n });\n if (element.is('input')) {\n input.off({\n 'focus': show\n });\n } else if (component) {\n component.off('click', toggle);\n component.off('mousedown', false);\n }\n },\n indexGivenDates = function indexGivenDates(givenDatesArray) {\n // Store given enabledDates and disabledDates as keys.\n // This way we can check their existence in O(1) time instead of looping through whole array.\n // (for example: options.enabledDates['2014-02-27'] === true)\n var givenDatesIndexed = {};\n $.each(givenDatesArray, function () {\n var dDate = parseInputDate(this);\n if (dDate.isValid()) {\n givenDatesIndexed[dDate.format('YYYY-MM-DD')] = true;\n }\n });\n return Object.keys(givenDatesIndexed).length ? givenDatesIndexed : false;\n },\n indexGivenHours = function indexGivenHours(givenHoursArray) {\n // Store given enabledHours and disabledHours as keys.\n // This way we can check their existence in O(1) time instead of looping through whole array.\n // (for example: options.enabledHours['2014-02-27'] === true)\n var givenHoursIndexed = {};\n $.each(givenHoursArray, function () {\n givenHoursIndexed[this] = true;\n });\n return Object.keys(givenHoursIndexed).length ? givenHoursIndexed : false;\n },\n initFormatting = function initFormatting() {\n var format = options.format || 'L LT';\n actualFormat = format.replace(/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput) {\n var newinput = date.localeData().longDateFormat(formatInput) || formatInput;\n return newinput.replace(/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput2) {\n //temp fix for #740\n return date.localeData().longDateFormat(formatInput2) || formatInput2;\n });\n });\n parseFormats = options.extraFormats ? options.extraFormats.slice() : [];\n if (parseFormats.indexOf(format) < 0 && parseFormats.indexOf(actualFormat) < 0) {\n parseFormats.push(actualFormat);\n }\n use24Hours = actualFormat.toLowerCase().indexOf('a') < 1 && actualFormat.replace(/\\[.*?\\]/g, '').indexOf('h') < 1;\n if (isEnabled('y')) {\n minViewModeNumber = 2;\n }\n if (isEnabled('M')) {\n minViewModeNumber = 1;\n }\n if (isEnabled('d')) {\n minViewModeNumber = 0;\n }\n currentViewMode = Math.max(minViewModeNumber, currentViewMode);\n if (!unset) {\n setValue(date);\n }\n };\n\n /********************************************************************************\n *\n * Public API functions\n * =====================\n *\n * Important: Do not expose direct references to private objects or the options\n * object to the outer world. Always return a clone when returning values or make\n * a clone when setting a private variable.\n *\n ********************************************************************************/\n picker.destroy = function () {\n ///<summary>Destroys the widget and removes all attached event listeners</summary>\n hide();\n detachDatePickerElementEvents();\n element.removeData('DateTimePicker');\n element.removeData('date');\n };\n picker.toggle = toggle;\n picker.show = show;\n picker.hide = hide;\n picker.disable = function () {\n ///<summary>Disables the input element, the component is attached to, by adding a disabled=\"true\" attribute to it.\n ///If the widget was visible before that call it is hidden. Possibly emits dp.hide</summary>\n hide();\n if (component && component.hasClass('btn')) {\n component.addClass('disabled');\n }\n input.prop('disabled', true);\n return picker;\n };\n picker.enable = function () {\n ///<summary>Enables the input element, the component is attached to, by removing disabled attribute from it.</summary>\n if (component && component.hasClass('btn')) {\n component.removeClass('disabled');\n }\n input.prop('disabled', false);\n return picker;\n };\n picker.ignoreReadonly = function (ignoreReadonly) {\n if (arguments.length === 0) {\n return options.ignoreReadonly;\n }\n if (typeof ignoreReadonly !== 'boolean') {\n throw new TypeError('ignoreReadonly () expects a boolean parameter');\n }\n options.ignoreReadonly = ignoreReadonly;\n return picker;\n };\n picker.options = function (newOptions) {\n if (arguments.length === 0) {\n return $.extend(true, {}, options);\n }\n if (!(newOptions instanceof Object)) {\n throw new TypeError('options() options parameter should be an object');\n }\n $.extend(true, options, newOptions);\n $.each(options, function (key, value) {\n if (picker[key] !== undefined) {\n picker[key](value);\n } else {\n throw new TypeError('option ' + key + ' is not recognized!');\n }\n });\n return picker;\n };\n picker.date = function (newDate) {\n ///<signature helpKeyword=\"$.fn.datetimepicker.date\">\n ///<summary>Returns the component's model current date, a moment object or null if not set.</summary>\n ///<returns type=\"Moment\">date.clone()</returns>\n ///</signature>\n ///<signature>\n ///<summary>Sets the components model current moment to it. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration.</summary>\n ///<param name=\"newDate\" locid=\"$.fn.datetimepicker.date_p:newDate\">Takes string, Date, moment, null parameter.</param>\n ///</signature>\n if (arguments.length === 0) {\n if (unset) {\n return null;\n }\n return date.clone();\n }\n if (newDate !== null && typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\n throw new TypeError('date() parameter must be one of [null, string, moment or Date]');\n }\n setValue(newDate === null ? null : parseInputDate(newDate));\n return picker;\n };\n picker.format = function (newFormat) {\n ///<summary>test su</summary>\n ///<param name=\"newFormat\">info about para</param>\n ///<returns type=\"string|boolean\">returns foo</returns>\n if (arguments.length === 0) {\n return options.format;\n }\n if (typeof newFormat !== 'string' && (typeof newFormat !== 'boolean' || newFormat !== false)) {\n throw new TypeError('format() expects a sting or boolean:false parameter ' + newFormat);\n }\n options.format = newFormat;\n if (actualFormat) {\n initFormatting(); // reinit formatting\n }\n\n return picker;\n };\n picker.timeZone = function (newZone) {\n if (arguments.length === 0) {\n return options.timeZone;\n }\n options.timeZone = newZone;\n return picker;\n };\n picker.dayViewHeaderFormat = function (newFormat) {\n if (arguments.length === 0) {\n return options.dayViewHeaderFormat;\n }\n if (typeof newFormat !== 'string') {\n throw new TypeError('dayViewHeaderFormat() expects a string parameter');\n }\n options.dayViewHeaderFormat = newFormat;\n return picker;\n };\n picker.extraFormats = function (formats) {\n if (arguments.length === 0) {\n return options.extraFormats;\n }\n if (formats !== false && !(formats instanceof Array)) {\n throw new TypeError('extraFormats() expects an array or false parameter');\n }\n options.extraFormats = formats;\n if (parseFormats) {\n initFormatting(); // reinit formatting\n }\n\n return picker;\n };\n picker.disabledDates = function (dates) {\n ///<signature helpKeyword=\"$.fn.datetimepicker.disabledDates\">\n ///<summary>Returns an array with the currently set disabled dates on the component.</summary>\n ///<returns type=\"array\">options.disabledDates</returns>\n ///</signature>\n ///<signature>\n ///<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\n ///options.enabledDates if such exist.</summary>\n ///<param name=\"dates\" locid=\"$.fn.datetimepicker.disabledDates_p:dates\">Takes an [ string or Date or moment ] of values and allows the user to select only from those days.</param>\n ///</signature>\n if (arguments.length === 0) {\n return options.disabledDates ? $.extend({}, options.disabledDates) : options.disabledDates;\n }\n if (!dates) {\n options.disabledDates = false;\n update();\n return picker;\n }\n if (!(dates instanceof Array)) {\n throw new TypeError('disabledDates() expects an array parameter');\n }\n options.disabledDates = indexGivenDates(dates);\n options.enabledDates = false;\n update();\n return picker;\n };\n picker.enabledDates = function (dates) {\n ///<signature helpKeyword=\"$.fn.datetimepicker.enabledDates\">\n ///<summary>Returns an array with the currently set enabled dates on the component.</summary>\n ///<returns type=\"array\">options.enabledDates</returns>\n ///</signature>\n ///<signature>\n ///<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledDates if such exist.</summary>\n ///<param name=\"dates\" locid=\"$.fn.datetimepicker.enabledDates_p:dates\">Takes an [ string or Date or moment ] of values and allows the user to select only from those days.</param>\n ///</signature>\n if (arguments.length === 0) {\n return options.enabledDates ? $.extend({}, options.enabledDates) : options.enabledDates;\n }\n if (!dates) {\n options.enabledDates = false;\n update();\n return picker;\n }\n if (!(dates instanceof Array)) {\n throw new TypeError('enabledDates() expects an array parameter');\n }\n options.enabledDates = indexGivenDates(dates);\n options.disabledDates = false;\n update();\n return picker;\n };\n picker.daysOfWeekDisabled = function (daysOfWeekDisabled) {\n if (arguments.length === 0) {\n return options.daysOfWeekDisabled.splice(0);\n }\n if (typeof daysOfWeekDisabled === 'boolean' && !daysOfWeekDisabled) {\n options.daysOfWeekDisabled = false;\n update();\n return picker;\n }\n if (!(daysOfWeekDisabled instanceof Array)) {\n throw new TypeError('daysOfWeekDisabled() expects an array parameter');\n }\n options.daysOfWeekDisabled = daysOfWeekDisabled.reduce(function (previousValue, currentValue) {\n currentValue = parseInt(currentValue, 10);\n if (currentValue > 6 || currentValue < 0 || isNaN(currentValue)) {\n return previousValue;\n }\n if (previousValue.indexOf(currentValue) === -1) {\n previousValue.push(currentValue);\n }\n return previousValue;\n }, []).sort();\n if (options.useCurrent && !options.keepInvalid) {\n var tries = 0;\n while (!isValid(date, 'd')) {\n date.add(1, 'd');\n if (tries === 7) {\n throw 'Tried 7 times to find a valid date';\n }\n tries++;\n }\n setValue(date);\n }\n update();\n return picker;\n };\n picker.maxDate = function (maxDate) {\n if (arguments.length === 0) {\n return options.maxDate ? options.maxDate.clone() : options.maxDate;\n }\n if (typeof maxDate === 'boolean' && maxDate === false) {\n options.maxDate = false;\n update();\n return picker;\n }\n if (typeof maxDate === 'string') {\n if (maxDate === 'now' || maxDate === 'moment') {\n maxDate = getMoment();\n }\n }\n var parsedDate = parseInputDate(maxDate);\n if (!parsedDate.isValid()) {\n throw new TypeError('maxDate() Could not parse date parameter: ' + maxDate);\n }\n if (options.minDate && parsedDate.isBefore(options.minDate)) {\n throw new TypeError('maxDate() date parameter is before options.minDate: ' + parsedDate.format(actualFormat));\n }\n options.maxDate = parsedDate;\n if (options.useCurrent && !options.keepInvalid && date.isAfter(maxDate)) {\n setValue(options.maxDate);\n }\n if (viewDate.isAfter(parsedDate)) {\n viewDate = parsedDate.clone().subtract(options.stepping, 'm');\n }\n update();\n return picker;\n };\n picker.minDate = function (minDate) {\n if (arguments.length === 0) {\n return options.minDate ? options.minDate.clone() : options.minDate;\n }\n if (typeof minDate === 'boolean' && minDate === false) {\n options.minDate = false;\n update();\n return picker;\n }\n if (typeof minDate === 'string') {\n if (minDate === 'now' || minDate === 'moment') {\n minDate = getMoment();\n }\n }\n var parsedDate = parseInputDate(minDate);\n if (!parsedDate.isValid()) {\n throw new TypeError('minDate() Could not parse date parameter: ' + minDate);\n }\n if (options.maxDate && parsedDate.isAfter(options.maxDate)) {\n throw new TypeError('minDate() date parameter is after options.maxDate: ' + parsedDate.format(actualFormat));\n }\n options.minDate = parsedDate;\n if (options.useCurrent && !options.keepInvalid && date.isBefore(minDate)) {\n setValue(options.minDate);\n }\n if (viewDate.isBefore(parsedDate)) {\n viewDate = parsedDate.clone().add(options.stepping, 'm');\n }\n update();\n return picker;\n };\n picker.defaultDate = function (defaultDate) {\n ///<signature helpKeyword=\"$.fn.datetimepicker.defaultDate\">\n ///<summary>Returns a moment with the options.defaultDate option configuration or false if not set</summary>\n ///<returns type=\"Moment\">date.clone()</returns>\n ///</signature>\n ///<signature>\n ///<summary>Will set the picker's inital date. If a boolean:false value is passed the options.defaultDate parameter is cleared.</summary>\n ///<param name=\"defaultDate\" locid=\"$.fn.datetimepicker.defaultDate_p:defaultDate\">Takes a string, Date, moment, boolean:false</param>\n ///</signature>\n if (arguments.length === 0) {\n return options.defaultDate ? options.defaultDate.clone() : options.defaultDate;\n }\n if (!defaultDate) {\n options.defaultDate = false;\n return picker;\n }\n if (typeof defaultDate === 'string') {\n if (defaultDate === 'now' || defaultDate === 'moment') {\n defaultDate = getMoment();\n }\n }\n var parsedDate = parseInputDate(defaultDate);\n if (!parsedDate.isValid()) {\n throw new TypeError('defaultDate() Could not parse date parameter: ' + defaultDate);\n }\n if (!isValid(parsedDate)) {\n throw new TypeError('defaultDate() date passed is invalid according to component setup validations');\n }\n options.defaultDate = parsedDate;\n if (options.defaultDate && options.inline || input.val().trim() === '') {\n setValue(options.defaultDate);\n }\n return picker;\n };\n picker.locale = function (locale) {\n if (arguments.length === 0) {\n return options.locale;\n }\n if (!moment.localeData(locale)) {\n throw new TypeError('locale() locale ' + locale + ' is not loaded from moment locales!');\n }\n options.locale = locale;\n date.locale(options.locale);\n viewDate.locale(options.locale);\n if (actualFormat) {\n initFormatting(); // reinit formatting\n }\n\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.stepping = function (stepping) {\n if (arguments.length === 0) {\n return options.stepping;\n }\n stepping = parseInt(stepping, 10);\n if (isNaN(stepping) || stepping < 1) {\n stepping = 1;\n }\n options.stepping = stepping;\n return picker;\n };\n picker.useCurrent = function (useCurrent) {\n var useCurrentOptions = ['year', 'month', 'day', 'hour', 'minute'];\n if (arguments.length === 0) {\n return options.useCurrent;\n }\n if (typeof useCurrent !== 'boolean' && typeof useCurrent !== 'string') {\n throw new TypeError('useCurrent() expects a boolean or string parameter');\n }\n if (typeof useCurrent === 'string' && useCurrentOptions.indexOf(useCurrent.toLowerCase()) === -1) {\n throw new TypeError('useCurrent() expects a string parameter of ' + useCurrentOptions.join(', '));\n }\n options.useCurrent = useCurrent;\n return picker;\n };\n picker.collapse = function (collapse) {\n if (arguments.length === 0) {\n return options.collapse;\n }\n if (typeof collapse !== 'boolean') {\n throw new TypeError('collapse() expects a boolean parameter');\n }\n if (options.collapse === collapse) {\n return picker;\n }\n options.collapse = collapse;\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.icons = function (icons) {\n if (arguments.length === 0) {\n return $.extend({}, options.icons);\n }\n if (!(icons instanceof Object)) {\n throw new TypeError('icons() expects parameter to be an Object');\n }\n $.extend(options.icons, icons);\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.tooltips = function (tooltips) {\n if (arguments.length === 0) {\n return $.extend({}, options.tooltips);\n }\n if (!(tooltips instanceof Object)) {\n throw new TypeError('tooltips() expects parameter to be an Object');\n }\n $.extend(options.tooltips, tooltips);\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.useStrict = function (useStrict) {\n if (arguments.length === 0) {\n return options.useStrict;\n }\n if (typeof useStrict !== 'boolean') {\n throw new TypeError('useStrict() expects a boolean parameter');\n }\n options.useStrict = useStrict;\n return picker;\n };\n picker.sideBySide = function (sideBySide) {\n if (arguments.length === 0) {\n return options.sideBySide;\n }\n if (typeof sideBySide !== 'boolean') {\n throw new TypeError('sideBySide() expects a boolean parameter');\n }\n options.sideBySide = sideBySide;\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.viewMode = function (viewMode) {\n if (arguments.length === 0) {\n return options.viewMode;\n }\n if (typeof viewMode !== 'string') {\n throw new TypeError('viewMode() expects a string parameter');\n }\n if (viewModes.indexOf(viewMode) === -1) {\n throw new TypeError('viewMode() parameter must be one of (' + viewModes.join(', ') + ') value');\n }\n options.viewMode = viewMode;\n currentViewMode = Math.max(viewModes.indexOf(viewMode), minViewModeNumber);\n showMode();\n return picker;\n };\n picker.toolbarPlacement = function (toolbarPlacement) {\n if (arguments.length === 0) {\n return options.toolbarPlacement;\n }\n if (typeof toolbarPlacement !== 'string') {\n throw new TypeError('toolbarPlacement() expects a string parameter');\n }\n if (toolbarPlacements.indexOf(toolbarPlacement) === -1) {\n throw new TypeError('toolbarPlacement() parameter must be one of (' + toolbarPlacements.join(', ') + ') value');\n }\n options.toolbarPlacement = toolbarPlacement;\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.widgetPositioning = function (widgetPositioning) {\n if (arguments.length === 0) {\n return $.extend({}, options.widgetPositioning);\n }\n if ({}.toString.call(widgetPositioning) !== '[object Object]') {\n throw new TypeError('widgetPositioning() expects an object variable');\n }\n if (widgetPositioning.horizontal) {\n if (typeof widgetPositioning.horizontal !== 'string') {\n throw new TypeError('widgetPositioning() horizontal variable must be a string');\n }\n widgetPositioning.horizontal = widgetPositioning.horizontal.toLowerCase();\n if (horizontalModes.indexOf(widgetPositioning.horizontal) === -1) {\n throw new TypeError('widgetPositioning() expects horizontal parameter to be one of (' + horizontalModes.join(', ') + ')');\n }\n options.widgetPositioning.horizontal = widgetPositioning.horizontal;\n }\n if (widgetPositioning.vertical) {\n if (typeof widgetPositioning.vertical !== 'string') {\n throw new TypeError('widgetPositioning() vertical variable must be a string');\n }\n widgetPositioning.vertical = widgetPositioning.vertical.toLowerCase();\n if (verticalModes.indexOf(widgetPositioning.vertical) === -1) {\n throw new TypeError('widgetPositioning() expects vertical parameter to be one of (' + verticalModes.join(', ') + ')');\n }\n options.widgetPositioning.vertical = widgetPositioning.vertical;\n }\n update();\n return picker;\n };\n picker.calendarWeeks = function (calendarWeeks) {\n if (arguments.length === 0) {\n return options.calendarWeeks;\n }\n if (typeof calendarWeeks !== 'boolean') {\n throw new TypeError('calendarWeeks() expects parameter to be a boolean value');\n }\n options.calendarWeeks = calendarWeeks;\n update();\n return picker;\n };\n picker.showTodayButton = function (showTodayButton) {\n if (arguments.length === 0) {\n return options.showTodayButton;\n }\n if (typeof showTodayButton !== 'boolean') {\n throw new TypeError('showTodayButton() expects a boolean parameter');\n }\n options.showTodayButton = showTodayButton;\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.showClear = function (showClear) {\n if (arguments.length === 0) {\n return options.showClear;\n }\n if (typeof showClear !== 'boolean') {\n throw new TypeError('showClear() expects a boolean parameter');\n }\n options.showClear = showClear;\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.widgetParent = function (widgetParent) {\n if (arguments.length === 0) {\n return options.widgetParent;\n }\n if (typeof widgetParent === 'string') {\n widgetParent = $(widgetParent);\n }\n if (widgetParent !== null && typeof widgetParent !== 'string' && !(widgetParent instanceof $)) {\n throw new TypeError('widgetParent() expects a string or a jQuery object parameter');\n }\n options.widgetParent = widgetParent;\n if (widget) {\n hide();\n show();\n }\n return picker;\n };\n picker.keepOpen = function (keepOpen) {\n if (arguments.length === 0) {\n return options.keepOpen;\n }\n if (typeof keepOpen !== 'boolean') {\n throw new TypeError('keepOpen() expects a boolean parameter');\n }\n options.keepOpen = keepOpen;\n return picker;\n };\n picker.focusOnShow = function (focusOnShow) {\n if (arguments.length === 0) {\n return options.focusOnShow;\n }\n if (typeof focusOnShow !== 'boolean') {\n throw new TypeError('focusOnShow() expects a boolean parameter');\n }\n options.focusOnShow = focusOnShow;\n return picker;\n };\n picker.inline = function (inline) {\n if (arguments.length === 0) {\n return options.inline;\n }\n if (typeof inline !== 'boolean') {\n throw new TypeError('inline() expects a boolean parameter');\n }\n options.inline = inline;\n return picker;\n };\n picker.clear = function () {\n clear();\n return picker;\n };\n picker.keyBinds = function (keyBinds) {\n options.keyBinds = keyBinds;\n return picker;\n };\n picker.getMoment = function (d) {\n return getMoment(d);\n };\n picker.debug = function (debug) {\n if (typeof debug !== 'boolean') {\n throw new TypeError('debug() expects a boolean parameter');\n }\n options.debug = debug;\n return picker;\n };\n picker.allowInputToggle = function (allowInputToggle) {\n if (arguments.length === 0) {\n return options.allowInputToggle;\n }\n if (typeof allowInputToggle !== 'boolean') {\n throw new TypeError('allowInputToggle() expects a boolean parameter');\n }\n options.allowInputToggle = allowInputToggle;\n return picker;\n };\n picker.showClose = function (showClose) {\n if (arguments.length === 0) {\n return options.showClose;\n }\n if (typeof showClose !== 'boolean') {\n throw new TypeError('showClose() expects a boolean parameter');\n }\n options.showClose = showClose;\n return picker;\n };\n picker.keepInvalid = function (keepInvalid) {\n if (arguments.length === 0) {\n return options.keepInvalid;\n }\n if (typeof keepInvalid !== 'boolean') {\n throw new TypeError('keepInvalid() expects a boolean parameter');\n }\n options.keepInvalid = keepInvalid;\n return picker;\n };\n picker.datepickerInput = function (datepickerInput) {\n if (arguments.length === 0) {\n return options.datepickerInput;\n }\n if (typeof datepickerInput !== 'string') {\n throw new TypeError('datepickerInput() expects a string parameter');\n }\n options.datepickerInput = datepickerInput;\n return picker;\n };\n picker.parseInputDate = function (parseInputDate) {\n if (arguments.length === 0) {\n return options.parseInputDate;\n }\n if (typeof parseInputDate !== 'function') {\n throw new TypeError('parseInputDate() sholud be as function');\n }\n options.parseInputDate = parseInputDate;\n return picker;\n };\n picker.disabledTimeIntervals = function (disabledTimeIntervals) {\n ///<signature helpKeyword=\"$.fn.datetimepicker.disabledTimeIntervals\">\n ///<summary>Returns an array with the currently set disabled dates on the component.</summary>\n ///<returns type=\"array\">options.disabledTimeIntervals</returns>\n ///</signature>\n ///<signature>\n ///<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\n ///options.enabledDates if such exist.</summary>\n ///<param name=\"dates\" locid=\"$.fn.datetimepicker.disabledTimeIntervals_p:dates\">Takes an [ string or Date or moment ] of values and allows the user to select only from those days.</param>\n ///</signature>\n if (arguments.length === 0) {\n return options.disabledTimeIntervals ? $.extend({}, options.disabledTimeIntervals) : options.disabledTimeIntervals;\n }\n if (!disabledTimeIntervals) {\n options.disabledTimeIntervals = false;\n update();\n return picker;\n }\n if (!(disabledTimeIntervals instanceof Array)) {\n throw new TypeError('disabledTimeIntervals() expects an array parameter');\n }\n options.disabledTimeIntervals = disabledTimeIntervals;\n update();\n return picker;\n };\n picker.disabledHours = function (hours) {\n ///<signature helpKeyword=\"$.fn.datetimepicker.disabledHours\">\n ///<summary>Returns an array with the currently set disabled hours on the component.</summary>\n ///<returns type=\"array\">options.disabledHours</returns>\n ///</signature>\n ///<signature>\n ///<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\n ///options.enabledHours if such exist.</summary>\n ///<param name=\"hours\" locid=\"$.fn.datetimepicker.disabledHours_p:hours\">Takes an [ int ] of values and disallows the user to select only from those hours.</param>\n ///</signature>\n if (arguments.length === 0) {\n return options.disabledHours ? $.extend({}, options.disabledHours) : options.disabledHours;\n }\n if (!hours) {\n options.disabledHours = false;\n update();\n return picker;\n }\n if (!(hours instanceof Array)) {\n throw new TypeError('disabledHours() expects an array parameter');\n }\n options.disabledHours = indexGivenHours(hours);\n options.enabledHours = false;\n if (options.useCurrent && !options.keepInvalid) {\n var tries = 0;\n while (!isValid(date, 'h')) {\n date.add(1, 'h');\n if (tries === 24) {\n throw 'Tried 24 times to find a valid date';\n }\n tries++;\n }\n setValue(date);\n }\n update();\n return picker;\n };\n picker.enabledHours = function (hours) {\n ///<signature helpKeyword=\"$.fn.datetimepicker.enabledHours\">\n ///<summary>Returns an array with the currently set enabled hours on the component.</summary>\n ///<returns type=\"array\">options.enabledHours</returns>\n ///</signature>\n ///<signature>\n ///<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledHours if such exist.</summary>\n ///<param name=\"hours\" locid=\"$.fn.datetimepicker.enabledHours_p:hours\">Takes an [ int ] of values and allows the user to select only from those hours.</param>\n ///</signature>\n if (arguments.length === 0) {\n return options.enabledHours ? $.extend({}, options.enabledHours) : options.enabledHours;\n }\n if (!hours) {\n options.enabledHours = false;\n update();\n return picker;\n }\n if (!(hours instanceof Array)) {\n throw new TypeError('enabledHours() expects an array parameter');\n }\n options.enabledHours = indexGivenHours(hours);\n options.disabledHours = false;\n if (options.useCurrent && !options.keepInvalid) {\n var tries = 0;\n while (!isValid(date, 'h')) {\n date.add(1, 'h');\n if (tries === 24) {\n throw 'Tried 24 times to find a valid date';\n }\n tries++;\n }\n setValue(date);\n }\n update();\n return picker;\n };\n picker.viewDate = function (newDate) {\n ///<signature helpKeyword=\"$.fn.datetimepicker.viewDate\">\n ///<summary>Returns the component's model current viewDate, a moment object or null if not set.</summary>\n ///<returns type=\"Moment\">viewDate.clone()</returns>\n ///</signature>\n ///<signature>\n ///<summary>Sets the components model current moment to it. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration.</summary>\n ///<param name=\"newDate\" locid=\"$.fn.datetimepicker.date_p:newDate\">Takes string, viewDate, moment, null parameter.</param>\n ///</signature>\n if (arguments.length === 0) {\n return viewDate.clone();\n }\n if (!newDate) {\n viewDate = date.clone();\n return picker;\n }\n if (typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\n throw new TypeError('viewDate() parameter must be one of [string, moment or Date]');\n }\n viewDate = parseInputDate(newDate);\n viewUpdate();\n return picker;\n };\n\n // initializing element and component attributes\n if (element.is('input')) {\n input = element;\n } else {\n input = element.find(options.datepickerInput);\n if (input.size() === 0) {\n input = element.find('input');\n } else if (!input.is('input')) {\n throw new Error('CSS class \"' + options.datepickerInput + '\" cannot be applied to non input element');\n }\n }\n if (element.hasClass('input-group')) {\n // in case there is more then one 'input-group-addon' Issue #48\n if (element.find('.datepickerbutton').size() === 0) {\n component = element.find('.input-group-addon');\n } else {\n component = element.find('.datepickerbutton');\n }\n }\n if (!options.inline && !input.is('input')) {\n throw new Error('Could not initialize DateTimePicker without an input element');\n }\n\n // Set defaults for date here now instead of in var declaration\n date = getMoment();\n viewDate = date.clone();\n $.extend(true, options, dataToOptions());\n picker.options(options);\n initFormatting();\n attachDatePickerElementEvents();\n if (input.prop('disabled')) {\n picker.disable();\n }\n if (input.is('input') && input.val().trim().length !== 0) {\n setValue(parseInputDate(input.val().trim()));\n } else if (options.defaultDate && input.attr('placeholder') === undefined) {\n setValue(options.defaultDate);\n }\n if (options.inline) {\n show();\n }\n return picker;\n };\n\n /********************************************************************************\n *\n * jQuery plugin constructor and defaults object\n *\n ********************************************************************************/\n\n $.fn.datetimepicker = function (options) {\n return this.each(function () {\n var $this = $(this);\n if (!$this.data('DateTimePicker')) {\n // create a private copy of the defaults object\n options = $.extend(true, {}, $.fn.datetimepicker.defaults, options);\n $this.data('DateTimePicker', dateTimePicker($this, options));\n }\n });\n };\n $.fn.datetimepicker.defaults = {\n timeZone: 'Etc/UTC',\n format: false,\n dayViewHeaderFormat: 'MMMM YYYY',\n extraFormats: false,\n stepping: 1,\n minDate: false,\n maxDate: false,\n useCurrent: true,\n collapse: true,\n locale: moment.locale(),\n defaultDate: false,\n disabledDates: false,\n enabledDates: false,\n icons: {\n time: 'glyphicon glyphicon-time',\n date: 'glyphicon glyphicon-calendar',\n up: 'glyphicon glyphicon-chevron-up',\n down: 'glyphicon glyphicon-chevron-down',\n previous: 'glyphicon glyphicon-chevron-left',\n next: 'glyphicon glyphicon-chevron-right',\n today: 'glyphicon glyphicon-screenshot',\n clear: 'glyphicon glyphicon-trash',\n close: 'glyphicon glyphicon-remove'\n },\n tooltips: {\n today: 'Go to today',\n clear: 'Clear selection',\n close: 'Close the picker',\n selectMonth: 'Select Month',\n prevMonth: 'Previous Month',\n nextMonth: 'Next Month',\n selectYear: 'Select Year',\n prevYear: 'Previous Year',\n nextYear: 'Next Year',\n selectDecade: 'Select Decade',\n prevDecade: 'Previous Decade',\n nextDecade: 'Next Decade',\n prevCentury: 'Previous Century',\n nextCentury: 'Next Century',\n pickHour: 'Pick Hour',\n incrementHour: 'Increment Hour',\n decrementHour: 'Decrement Hour',\n pickMinute: 'Pick Minute',\n incrementMinute: 'Increment Minute',\n decrementMinute: 'Decrement Minute',\n pickSecond: 'Pick Second',\n incrementSecond: 'Increment Second',\n decrementSecond: 'Decrement Second',\n togglePeriod: 'Toggle Period',\n selectTime: 'Select Time'\n },\n useStrict: false,\n sideBySide: false,\n daysOfWeekDisabled: false,\n calendarWeeks: false,\n viewMode: 'days',\n toolbarPlacement: 'default',\n showTodayButton: false,\n showClear: false,\n showClose: false,\n widgetPositioning: {\n horizontal: 'auto',\n vertical: 'auto'\n },\n widgetParent: null,\n ignoreReadonly: false,\n keepOpen: false,\n focusOnShow: true,\n inline: false,\n keepInvalid: false,\n datepickerInput: '.datepickerinput',\n keyBinds: {\n up: function up(widget) {\n if (!widget) {\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(7, 'd'));\n } else {\n this.date(d.clone().add(this.stepping(), 'm'));\n }\n },\n down: function down(widget) {\n if (!widget) {\n this.show();\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(7, 'd'));\n } else {\n this.date(d.clone().subtract(this.stepping(), 'm'));\n }\n },\n 'control up': function controlUp(widget) {\n if (!widget) {\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(1, 'y'));\n } else {\n this.date(d.clone().add(1, 'h'));\n }\n },\n 'control down': function controlDown(widget) {\n if (!widget) {\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(1, 'y'));\n } else {\n this.date(d.clone().subtract(1, 'h'));\n }\n },\n left: function left(widget) {\n if (!widget) {\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(1, 'd'));\n }\n },\n right: function right(widget) {\n if (!widget) {\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(1, 'd'));\n }\n },\n pageUp: function pageUp(widget) {\n if (!widget) {\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(1, 'M'));\n }\n },\n pageDown: function pageDown(widget) {\n if (!widget) {\n return;\n }\n var d = this.date() || this.getMoment();\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(1, 'M'));\n }\n },\n enter: function enter() {\n this.hide();\n },\n escape: function escape() {\n this.hide();\n },\n //tab: function (widget) { //this break the flow of the form. disabling for now\n // var toggle = widget.find('.picker-switch a[data-action=\"togglePicker\"]');\n // if(toggle.length > 0) toggle.click();\n //},\n 'control space': function controlSpace(widget) {\n if (widget.find('.timepicker').is(':visible')) {\n widget.find('.btn[data-action=\"togglePeriod\"]').click();\n }\n },\n t: function t() {\n this.date(this.getMoment());\n },\n 'delete': function _delete() {\n this.clear();\n }\n },\n debug: false,\n allowInputToggle: false,\n disabledTimeIntervals: false,\n disabledHours: false,\n enabledHours: false,\n viewDate: false\n };\n});\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/bootstrap-datetimepicker.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/bootstrap-notify.js":
/*!*************************************************************!*\
!*** ./buyercall/assets/scripts/vendor/bootstrap-notify.js ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*\n\n\n\n Creative Tim Modifications\n\n Lines: 236 was changed from top: 5px to top: 50% and we added margin-top: -9px. In this way the close button will be aligned vertically\n Line:219 - modified when the icon is set, we add the class \"alert-with-icon\", so there will be enough space for the icon.\n\t Lines: 179/222 - class() was changed to html() so we can add the Material Design Icons\n\n\n\n*/\n\n/*\n* Project: Bootstrap Notify = v3.1.5\n* Description: Turns standard Bootstrap alerts into \"Growl-like\" notifications.\n* Author: Mouse0270 aka Robert McIntosh\n* License: MIT License\n* Website: https://github.com/mouse0270/bootstrap-growl\n*/\n\n/* global define:false, require: false, jQuery:false */\n\n(function (factory) {\n if (true) {\n // AMD. Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ \"jquery\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n})(function ($) {\n // Create the defaults once\n var defaults = {\n element: 'body',\n position: null,\n type: \"info\",\n allow_dismiss: true,\n allow_duplicates: true,\n newest_on_top: false,\n showProgressbar: false,\n placement: {\n from: \"top\",\n align: \"right\"\n },\n offset: 20,\n spacing: 10,\n z_index: 1031,\n delay: 5000,\n timer: 1000,\n url_target: '_blank',\n mouse_over: null,\n animate: {\n enter: 'animated fadeInDown',\n exit: 'animated fadeOutUp'\n },\n onShow: null,\n onShown: null,\n onClose: null,\n onClosed: null,\n icon_type: 'class',\n template: '<div data-notify=\"container\" class=\"col-xs-11 col-sm-4 alert alert-{0}\" role=\"alert\"><button type=\"button\" aria-hidden=\"true\" class=\"close\" data-notify=\"dismiss\"><i class=\"material-icons\">close</i></button><i data-notify=\"icon\" class=\"material-icons\"></i><span data-notify=\"title\">{1}</span> <span data-notify=\"message\">{2}</span><div class=\"progress\" data-notify=\"progressbar\"><div class=\"progress-bar progress-bar-{0}\" role=\"progressbar\" aria-valuenow=\"0\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 0%;\"></div></div><a href=\"{3}\" target=\"{4}\" data-notify=\"url\"></a></div>'\n };\n String.format = function () {\n var str = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n str = str.replace(RegExp(\"\\\\{\" + (i - 1) + \"\\\\}\", \"gm\"), arguments[i]);\n }\n return str;\n };\n function isDuplicateNotification(notification) {\n var isDupe = false;\n $('[data-notify=\"container\"]').each(function (i, el) {\n var $el = $(el);\n var title = $el.find('[data-notify=\"title\"]').text().trim();\n var message = $el.find('[data-notify=\"message\"]').html().trim();\n\n // The input string might be different than the actual parsed HTML string!\n // (<br> vs <br /> for example)\n // So we have to force-parse this as HTML here!\n var isSameTitle = title === $(\"<div>\" + notification.settings.content.title + \"</div>\").html().trim();\n var isSameMsg = message === $(\"<div>\" + notification.settings.content.message + \"</div>\").html().trim();\n var isSameType = $el.hasClass('alert-' + notification.settings.type);\n if (isSameTitle && isSameMsg && isSameType) {\n //we found the dupe. Set the var and stop checking.\n isDupe = true;\n }\n return !isDupe;\n });\n return isDupe;\n }\n function Notify(element, content, options) {\n // Setup Content of Notify\n var contentObj = {\n content: {\n message: _typeof(content) === 'object' ? content.message : content,\n title: content.title ? content.title : '',\n icon: content.icon ? content.icon : '',\n url: content.url ? content.url : '#',\n target: content.target ? content.target : '-'\n }\n };\n options = $.extend(true, {}, contentObj, options);\n this.settings = $.extend(true, {}, defaults, options);\n this._defaults = defaults;\n if (this.settings.content.target === \"-\") {\n this.settings.content.target = this.settings.url_target;\n }\n this.animations = {\n start: 'webkitAnimationStart oanimationstart MSAnimationStart animationstart',\n end: 'webkitAnimationEnd oanimationend MSAnimationEnd animationend'\n };\n if (typeof this.settings.offset === 'number') {\n this.settings.offset = {\n x: this.settings.offset,\n y: this.settings.offset\n };\n }\n\n //if duplicate messages are not allowed, then only continue if this new message is not a duplicate of one that it already showing\n if (this.settings.allow_duplicates || !this.settings.allow_duplicates && !isDuplicateNotification(this)) {\n this.init();\n }\n }\n $.extend(Notify.prototype, {\n init: function init() {\n var self = this;\n this.buildNotify();\n if (this.settings.content.icon) {\n this.setIcon();\n }\n if (this.settings.content.url != \"#\") {\n this.styleURL();\n }\n this.styleDismiss();\n this.placement();\n this.bind();\n this.notify = {\n $ele: this.$ele,\n update: function update(command, _update) {\n var commands = {};\n if (typeof command === \"string\") {\n commands[command] = _update;\n } else {\n commands = command;\n }\n for (var cmd in commands) {\n switch (cmd) {\n case \"type\":\n this.$ele.removeClass('alert-' + self.settings.type);\n this.$ele.find('[data-notify=\"progressbar\"] > .progress-bar').removeClass('progress-bar-' + self.settings.type);\n self.settings.type = commands[cmd];\n this.$ele.addClass('alert-' + commands[cmd]).find('[data-notify=\"progressbar\"] > .progress-bar').addClass('progress-bar-' + commands[cmd]);\n break;\n case \"icon\":\n var $icon = this.$ele.find('[data-notify=\"icon\"]');\n if (self.settings.icon_type.toLowerCase() === 'class') {\n $icon.html(commands[cmd]);\n } else {\n if (!$icon.is('img')) {\n $icon.find('img');\n }\n $icon.attr('src', commands[cmd]);\n }\n break;\n case \"progress\":\n var newDelay = self.settings.delay - self.settings.delay * (commands[cmd] / 100);\n this.$ele.data('notify-delay', newDelay);\n this.$ele.find('[data-notify=\"progressbar\"] > div').attr('aria-valuenow', commands[cmd]).css('width', commands[cmd] + '%');\n break;\n case \"url\":\n this.$ele.find('[data-notify=\"url\"]').attr('href', commands[cmd]);\n break;\n case \"target\":\n this.$ele.find('[data-notify=\"url\"]').attr('target', commands[cmd]);\n break;\n default:\n this.$ele.find('[data-notify=\"' + cmd + '\"]').html(commands[cmd]);\n }\n }\n var posX = this.$ele.outerHeight() + parseInt(self.settings.spacing) + parseInt(self.settings.offset.y);\n self.reposition(posX);\n },\n close: function close() {\n self.close();\n }\n };\n },\n buildNotify: function buildNotify() {\n var content = this.settings.content;\n this.$ele = $(String.format(this.settings.template, this.settings.type, content.title, content.message, content.url, content.target));\n this.$ele.attr('data-notify-position', this.settings.placement.from + '-' + this.settings.placement.align);\n if (!this.settings.allow_dismiss) {\n this.$ele.find('[data-notify=\"dismiss\"]').css('display', 'none');\n }\n if (this.settings.delay <= 0 && !this.settings.showProgressbar || !this.settings.showProgressbar) {\n this.$ele.find('[data-notify=\"progressbar\"]').remove();\n }\n },\n setIcon: function setIcon() {\n this.$ele.addClass('alert-with-icon');\n if (this.settings.icon_type.toLowerCase() === 'class') {\n this.$ele.find('[data-notify=\"icon\"]').html(this.settings.content.icon);\n } else {\n if (this.$ele.find('[data-notify=\"icon\"]').is('img')) {\n this.$ele.find('[data-notify=\"icon\"]').attr('src', this.settings.content.icon);\n } else {\n this.$ele.find('[data-notify=\"icon\"]').append('<img src=\"' + this.settings.content.icon + '\" alt=\"Notify Icon\" />');\n }\n }\n },\n styleDismiss: function styleDismiss() {\n this.$ele.find('[data-notify=\"dismiss\"]').css({\n position: 'absolute',\n right: '10px',\n top: '50%',\n marginTop: '-9px',\n zIndex: this.settings.z_index + 2\n });\n },\n styleURL: function styleURL() {\n this.$ele.find('[data-notify=\"url\"]').css({\n backgroundImage: 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)',\n height: '100%',\n left: 0,\n position: 'absolute',\n top: 0,\n width: '100%',\n zIndex: this.settings.z_index + 1\n });\n },\n placement: function placement() {\n var self = this,\n offsetAmt = this.settings.offset.y,\n css = {\n display: 'inline-block',\n margin: '15px auto',\n position: this.settings.position ? this.settings.position : this.settings.element === 'body' ? 'fixed' : 'absolute',\n transition: 'all .5s ease-in-out',\n zIndex: this.settings.z_index\n },\n hasAnimation = false,\n settings = this.settings;\n $('[data-notify-position=\"' + this.settings.placement.from + '-' + this.settings.placement.align + '\"]:not([data-closing=\"true\"])').each(function () {\n offsetAmt = Math.max(offsetAmt, parseInt($(this).css(settings.placement.from)) + parseInt($(this).outerHeight()) + parseInt(settings.spacing));\n });\n if (this.settings.newest_on_top === true) {\n offsetAmt = this.settings.offset.y;\n }\n css[this.settings.placement.from] = offsetAmt + 'px';\n switch (this.settings.placement.align) {\n case \"left\":\n case \"right\":\n css[this.settings.placement.align] = this.settings.offset.x + 'px';\n break;\n case \"center\":\n css.left = 0;\n css.right = 0;\n break;\n }\n this.$ele.css(css).addClass(this.settings.animate.enter);\n $.each(Array('webkit-', 'moz-', 'o-', 'ms-', ''), function (index, prefix) {\n self.$ele[0].style[prefix + 'AnimationIterationCount'] = 1;\n });\n $(this.settings.element).append(this.$ele);\n if (this.settings.newest_on_top === true) {\n offsetAmt = parseInt(offsetAmt) + parseInt(this.settings.spacing) + this.$ele.outerHeight();\n this.reposition(offsetAmt);\n }\n if ($.isFunction(self.settings.onShow)) {\n self.settings.onShow.call(this.$ele);\n }\n this.$ele.one(this.animations.start, function () {\n hasAnimation = true;\n }).one(this.animations.end, function () {\n if ($.isFunction(self.settings.onShown)) {\n self.settings.onShown.call(this);\n }\n });\n setTimeout(function () {\n if (!hasAnimation) {\n if ($.isFunction(self.settings.onShown)) {\n self.settings.onShown.call(this);\n }\n }\n }, 600);\n },\n bind: function bind() {\n var self = this;\n this.$ele.find('[data-notify=\"dismiss\"]').on('click', function () {\n self.close();\n });\n this.$ele.mouseover(function () {\n $(this).data('data-hover', \"true\");\n }).mouseout(function () {\n $(this).data('data-hover', \"false\");\n });\n this.$ele.data('data-hover', \"false\");\n if (this.settings.delay > 0) {\n self.$ele.data('notify-delay', self.settings.delay);\n var timer = setInterval(function () {\n var delay = parseInt(self.$ele.data('notify-delay')) - self.settings.timer;\n if (self.$ele.data('data-hover') === 'false' && self.settings.mouse_over === \"pause\" || self.settings.mouse_over != \"pause\") {\n var percent = (self.settings.delay - delay) / self.settings.delay * 100;\n self.$ele.data('notify-delay', delay);\n self.$ele.find('[data-notify=\"progressbar\"] > div').attr('aria-valuenow', percent).css('width', percent + '%');\n }\n if (delay <= -self.settings.timer) {\n clearInterval(timer);\n self.close();\n }\n }, self.settings.timer);\n }\n },\n close: function close() {\n var self = this,\n posX = parseInt(this.$ele.css(this.settings.placement.from)),\n hasAnimation = false;\n this.$ele.data('closing', 'true').addClass(this.settings.animate.exit);\n self.reposition(posX);\n if ($.isFunction(self.settings.onClose)) {\n self.settings.onClose.call(this.$ele);\n }\n this.$ele.one(this.animations.start, function () {\n hasAnimation = true;\n }).one(this.animations.end, function () {\n $(this).remove();\n if ($.isFunction(self.settings.onClosed)) {\n self.settings.onClosed.call(this);\n }\n });\n setTimeout(function () {\n if (!hasAnimation) {\n self.$ele.remove();\n if (self.settings.onClosed) {\n self.settings.onClosed(self.$ele);\n }\n }\n }, 600);\n },\n reposition: function reposition(posX) {\n var self = this,\n notifies = '[data-notify-position=\"' + this.settings.placement.from + '-' + this.settings.placement.align + '\"]:not([data-closing=\"true\"])',\n $elements = this.$ele.nextAll(notifies);\n if (this.settings.newest_on_top === true) {\n $elements = this.$ele.prevAll(notifies);\n }\n $elements.each(function () {\n $(this).css(self.settings.placement.from, posX);\n posX = parseInt(posX) + parseInt(self.settings.spacing) + $(this).outerHeight();\n });\n }\n });\n $.notify = function (content, options) {\n var plugin = new Notify(this, content, options);\n return plugin.notify;\n };\n $.notifyDefaults = function (options) {\n defaults = $.extend(true, {}, defaults, options);\n return defaults;\n };\n $.notifyClose = function (command) {\n if (typeof command === \"undefined\" || command === \"all\") {\n $('[data-notify]').find('[data-notify=\"dismiss\"]').trigger('click');\n } else {\n $('[data-notify-position=\"' + command + '\"]').find('[data-notify=\"dismiss\"]').trigger('click');\n }\n };\n});\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/bootstrap-notify.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/chartist.min.js":
/*!*********************************************************!*\
!*** ./buyercall/assets/scripts/vendor/chartist.min.js ***!
\*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* Chartist.js 0.9.4\n * Copyright © 2015 Gion Kunz\n * Free to use under the WTFPL license.\n * http://www.wtfpl.net/\n */\n\n!function (a, b) {\n true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n return window.Chartist = b();\n }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined;\n}(this, function () {\n var a = {\n version: \"0.9.4\"\n };\n return function (a, b, c) {\n \"use strict\";\n\n c.noop = function (a) {\n return a;\n }, c.alphaNumerate = function (a) {\n return String.fromCharCode(97 + a % 26);\n }, c.extend = function (a) {\n a = a || {};\n var b = Array.prototype.slice.call(arguments, 1);\n return b.forEach(function (b) {\n for (var d in b) \"object\" != _typeof(b[d]) || null === b[d] || b[d] instanceof Array ? a[d] = b[d] : a[d] = c.extend({}, a[d], b[d]);\n }), a;\n }, c.replaceAll = function (a, b, c) {\n return a.replace(new RegExp(b, \"g\"), c);\n }, c.stripUnit = function (a) {\n return \"string\" == typeof a && (a = a.replace(/[^0-9\\+-\\.]/g, \"\")), +a;\n }, c.ensureUnit = function (a, b) {\n return \"number\" == typeof a && (a += b), a;\n }, c.querySelector = function (a) {\n return a instanceof Node ? a : b.querySelector(a);\n }, c.times = function (a) {\n return Array.apply(null, new Array(a));\n }, c.sum = function (a, b) {\n return a + (b ? b : 0);\n }, c.mapMultiply = function (a) {\n return function (b) {\n return b * a;\n };\n }, c.mapAdd = function (a) {\n return function (b) {\n return b + a;\n };\n }, c.serialMap = function (a, b) {\n var d = [],\n e = Math.max.apply(null, a.map(function (a) {\n return a.length;\n }));\n return c.times(e).forEach(function (c, e) {\n var f = a.map(function (a) {\n return a[e];\n });\n d[e] = b.apply(null, f);\n }), d;\n }, c.roundWithPrecision = function (a, b) {\n var d = Math.pow(10, b || c.precision);\n return Math.round(a * d) / d;\n }, c.precision = 8, c.escapingMap = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\"\n }, c.serialize = function (a) {\n return null === a || void 0 === a ? a : (\"number\" == typeof a ? a = \"\" + a : \"object\" == _typeof(a) && (a = JSON.stringify({\n data: a\n })), Object.keys(c.escapingMap).reduce(function (a, b) {\n return c.replaceAll(a, b, c.escapingMap[b]);\n }, a));\n }, c.deserialize = function (a) {\n if (\"string\" != typeof a) return a;\n a = Object.keys(c.escapingMap).reduce(function (a, b) {\n return c.replaceAll(a, c.escapingMap[b], b);\n }, a);\n try {\n a = JSON.parse(a), a = void 0 !== a.data ? a.data : a;\n } catch (b) {}\n return a;\n }, c.createSvg = function (a, b, d, e) {\n var f;\n return b = b || \"100%\", d = d || \"100%\", Array.prototype.slice.call(a.querySelectorAll(\"svg\")).filter(function (a) {\n return a.getAttributeNS(\"http://www.w3.org/2000/xmlns/\", c.xmlNs.prefix);\n }).forEach(function (b) {\n a.removeChild(b);\n }), f = new c.Svg(\"svg\").attr({\n width: b,\n height: d\n }).addClass(e).attr({\n style: \"width: \" + b + \"; height: \" + d + \";\"\n }), a.appendChild(f._node), f;\n }, c.reverseData = function (a) {\n a.labels.reverse(), a.series.reverse();\n for (var b = 0; b < a.series.length; b++) \"object\" == _typeof(a.series[b]) && void 0 !== a.series[b].data ? a.series[b].data.reverse() : a.series[b] instanceof Array && a.series[b].reverse();\n }, c.getDataArray = function (a, b, d) {\n function e(a) {\n if (c.isFalseyButZero(a)) return void 0;\n if ((a.data || a) instanceof Array) return (a.data || a).map(e);\n if (a.hasOwnProperty(\"value\")) return e(a.value);\n if (d) {\n var b = {};\n return \"string\" == typeof d ? b[d] = c.getNumberOrUndefined(a) : b.y = c.getNumberOrUndefined(a), b.x = a.hasOwnProperty(\"x\") ? c.getNumberOrUndefined(a.x) : b.x, b.y = a.hasOwnProperty(\"y\") ? c.getNumberOrUndefined(a.y) : b.y, b;\n }\n return c.getNumberOrUndefined(a);\n }\n return (b && !a.reversed || !b && a.reversed) && (c.reverseData(a), a.reversed = !a.reversed), a.series.map(e);\n }, c.normalizePadding = function (a, b) {\n return b = b || 0, \"number\" == typeof a ? {\n top: a,\n right: a,\n bottom: a,\n left: a\n } : {\n top: \"number\" == typeof a.top ? a.top : b,\n right: \"number\" == typeof a.right ? a.right : b,\n bottom: \"number\" == typeof a.bottom ? a.bottom : b,\n left: \"number\" == typeof a.left ? a.left : b\n };\n }, c.getMetaData = function (a, b) {\n var d = a.data ? a.data[b] : a[b];\n return d ? c.serialize(d.meta) : void 0;\n }, c.orderOfMagnitude = function (a) {\n return Math.floor(Math.log(Math.abs(a)) / Math.LN10);\n }, c.projectLength = function (a, b, c) {\n return b / c.range * a;\n }, c.getAvailableHeight = function (a, b) {\n return Math.max((c.stripUnit(b.height) || a.height()) - (b.chartPadding.top + b.chartPadding.bottom) - b.axisX.offset, 0);\n }, c.getHighLow = function (a, b, d) {\n function e(a) {\n if (void 0 === a) return void 0;\n if (a instanceof Array) for (var b = 0; b < a.length; b++) e(a[b]);else {\n var c = d ? +a[d] : +a;\n g && c > f.high && (f.high = c), h && c < f.low && (f.low = c);\n }\n }\n b = c.extend({}, b, d ? b[\"axis\" + d.toUpperCase()] : {});\n var f = {\n high: void 0 === b.high ? -Number.MAX_VALUE : +b.high,\n low: void 0 === b.low ? Number.MAX_VALUE : +b.low\n },\n g = void 0 === b.high,\n h = void 0 === b.low;\n return (g || h) && e(a), (b.referenceValue || 0 === b.referenceValue) && (f.high = Math.max(b.referenceValue, f.high), f.low = Math.min(b.referenceValue, f.low)), f.high <= f.low && (0 === f.low ? f.high = 1 : f.low < 0 ? f.high = 0 : f.low = 0), f;\n }, c.isNum = function (a) {\n return !isNaN(a) && isFinite(a);\n }, c.isFalseyButZero = function (a) {\n return !a && 0 !== a;\n }, c.getNumberOrUndefined = function (a) {\n return isNaN(+a) ? void 0 : +a;\n }, c.getMultiValue = function (a, b) {\n return c.isNum(a) ? +a : a ? a[b || \"y\"] || 0 : 0;\n }, c.rho = function (a) {\n function b(a, c) {\n return a % c === 0 ? c : b(c, a % c);\n }\n function c(a) {\n return a * a + 1;\n }\n if (1 === a) return a;\n var d,\n e = 2,\n f = 2;\n if (a % 2 === 0) return 2;\n do e = c(e) % a, f = c(c(f)) % a, d = b(Math.abs(e - f), a); while (1 === d);\n return d;\n }, c.getBounds = function (a, b, d, e) {\n var f,\n g,\n h,\n i = 0,\n j = {\n high: b.high,\n low: b.low\n };\n j.valueRange = j.high - j.low, j.oom = c.orderOfMagnitude(j.valueRange), j.step = Math.pow(10, j.oom), j.min = Math.floor(j.low / j.step) * j.step, j.max = Math.ceil(j.high / j.step) * j.step, j.range = j.max - j.min, j.numberOfSteps = Math.round(j.range / j.step);\n var k = c.projectLength(a, j.step, j),\n l = d > k,\n m = e ? c.rho(j.range) : 0;\n if (e && c.projectLength(a, 1, j) >= d) j.step = 1;else if (e && m < j.step && c.projectLength(a, m, j) >= d) j.step = m;else for (;;) {\n if (l && c.projectLength(a, j.step, j) <= d) j.step *= 2;else {\n if (l || !(c.projectLength(a, j.step / 2, j) >= d)) break;\n if (j.step /= 2, e && j.step % 1 !== 0) {\n j.step *= 2;\n break;\n }\n }\n if (i++ > 1e3) throw new Error(\"Exceeded maximum number of iterations while optimizing scale step!\");\n }\n for (g = j.min, h = j.max; g + j.step <= j.low;) g += j.step;\n for (; h - j.step >= j.high;) h -= j.step;\n for (j.min = g, j.max = h, j.range = j.max - j.min, j.values = [], f = j.min; f <= j.max; f += j.step) j.values.push(c.roundWithPrecision(f));\n return j;\n }, c.polarToCartesian = function (a, b, c, d) {\n var e = (d - 90) * Math.PI / 180;\n return {\n x: a + c * Math.cos(e),\n y: b + c * Math.sin(e)\n };\n }, c.createChartRect = function (a, b, d) {\n var e = !(!b.axisX && !b.axisY),\n f = e ? b.axisY.offset : 0,\n g = e ? b.axisX.offset : 0,\n h = a.width() || c.stripUnit(b.width) || 0,\n i = a.height() || c.stripUnit(b.height) || 0,\n j = c.normalizePadding(b.chartPadding, d);\n h = Math.max(h, f + j.left + j.right), i = Math.max(i, g + j.top + j.bottom);\n var k = {\n padding: j,\n width: function width() {\n return this.x2 - this.x1;\n },\n height: function height() {\n return this.y1 - this.y2;\n }\n };\n return e ? (\"start\" === b.axisX.position ? (k.y2 = j.top + g, k.y1 = Math.max(i - j.bottom, k.y2 + 1)) : (k.y2 = j.top, k.y1 = Math.max(i - j.bottom - g, k.y2 + 1)), \"start\" === b.axisY.position ? (k.x1 = j.left + f, k.x2 = Math.max(h - j.right, k.x1 + 1)) : (k.x1 = j.left, k.x2 = Math.max(h - j.right - f, k.x1 + 1))) : (k.x1 = j.left, k.x2 = Math.max(h - j.right, k.x1 + 1), k.y2 = j.top, k.y1 = Math.max(i - j.bottom, k.y2 + 1)), k;\n }, c.createGrid = function (a, b, d, e, f, g, h, i) {\n var j = {};\n j[d.units.pos + \"1\"] = a, j[d.units.pos + \"2\"] = a, j[d.counterUnits.pos + \"1\"] = e, j[d.counterUnits.pos + \"2\"] = e + f;\n var k = g.elem(\"line\", j, h.join(\" \"));\n i.emit(\"draw\", c.extend({\n type: \"grid\",\n axis: d,\n index: b,\n group: g,\n element: k\n }, j));\n }, c.createLabel = function (a, b, d, e, f, g, h, i, j, k, l) {\n var m,\n n = {};\n if (n[f.units.pos] = a + h[f.units.pos], n[f.counterUnits.pos] = h[f.counterUnits.pos], n[f.units.len] = b, n[f.counterUnits.len] = g - 10, k) {\n var o = '<span class=\"' + j.join(\" \") + '\" style=\"' + f.units.len + \": \" + Math.round(n[f.units.len]) + \"px; \" + f.counterUnits.len + \": \" + Math.round(n[f.counterUnits.len]) + 'px\">' + e[d] + \"</span>\";\n m = i.foreignObject(o, c.extend({\n style: \"overflow: visible;\"\n }, n));\n } else m = i.elem(\"text\", n, j.join(\" \")).text(e[d]);\n l.emit(\"draw\", c.extend({\n type: \"label\",\n axis: f,\n index: d,\n group: i,\n element: m,\n text: e[d]\n }, n));\n }, c.getSeriesOption = function (a, b, c) {\n if (a.name && b.series && b.series[a.name]) {\n var d = b.series[a.name];\n return d.hasOwnProperty(c) ? d[c] : b[c];\n }\n return b[c];\n }, c.optionsProvider = function (b, d, e) {\n function f(b) {\n var f = h;\n if (h = c.extend({}, j), d) for (i = 0; i < d.length; i++) {\n var g = a.matchMedia(d[i][0]);\n g.matches && (h = c.extend(h, d[i][1]));\n }\n e && !b && e.emit(\"optionsChanged\", {\n previousOptions: f,\n currentOptions: h\n });\n }\n function g() {\n k.forEach(function (a) {\n a.removeListener(f);\n });\n }\n var h,\n i,\n j = c.extend({}, b),\n k = [];\n if (!a.matchMedia) throw \"window.matchMedia not found! Make sure you're using a polyfill.\";\n if (d) for (i = 0; i < d.length; i++) {\n var l = a.matchMedia(d[i][0]);\n l.addListener(f), k.push(l);\n }\n return f(!0), {\n removeMediaQueryListeners: g,\n getCurrentOptions: function getCurrentOptions() {\n return c.extend({}, h);\n }\n };\n };\n }(window, document, a), function (a, b, c) {\n \"use strict\";\n\n c.Interpolation = {}, c.Interpolation.none = function () {\n return function (a, b) {\n for (var d = new c.Svg.Path(), e = !0, f = 1; f < a.length; f += 2) {\n var g = b[(f - 1) / 2];\n void 0 === g.value ? e = !0 : e ? (d.move(a[f - 1], a[f], !1, g), e = !1) : d.line(a[f - 1], a[f], !1, g);\n }\n return d;\n };\n }, c.Interpolation.simple = function (a) {\n var b = {\n divisor: 2\n };\n a = c.extend({}, b, a);\n var d = 1 / Math.max(1, a.divisor);\n return function (a, b) {\n for (var e = new c.Svg.Path(), f = !0, g = 2; g < a.length; g += 2) {\n var h = a[g - 2],\n i = a[g - 1],\n j = a[g],\n k = a[g + 1],\n l = (j - h) * d,\n m = b[g / 2 - 1],\n n = b[g / 2];\n void 0 === m.value ? f = !0 : (f && e.move(h, i, !1, m), void 0 !== n.value && (e.curve(h + l, i, j - l, k, j, k, !1, n), f = !1));\n }\n return e;\n };\n }, c.Interpolation.cardinal = function (a) {\n function b(a, b) {\n for (var c = [], d = !0, e = 0; e < a.length; e += 2) void 0 === b[e / 2].value ? d = !0 : (d && (c.push({\n pathCoordinates: [],\n valueData: []\n }), d = !1), c[c.length - 1].pathCoordinates.push(a[e], a[e + 1]), c[c.length - 1].valueData.push(b[e / 2]));\n return c;\n }\n var d = {\n tension: 1\n };\n a = c.extend({}, d, a);\n var e = Math.min(1, Math.max(0, a.tension)),\n f = 1 - e;\n return function g(a, d) {\n var h = b(a, d);\n if (h.length > 1) {\n var i = [];\n return h.forEach(function (a) {\n i.push(g(a.pathCoordinates, a.valueData));\n }), c.Svg.Path.join(i);\n }\n if (a = h[0].pathCoordinates, d = h[0].valueData, a.length <= 4) return c.Interpolation.none()(a, d);\n for (var j, k = new c.Svg.Path().move(a[0], a[1], !1, d[0]), l = 0, m = a.length; m - 2 * !j > l; l += 2) {\n var n = [{\n x: +a[l - 2],\n y: +a[l - 1]\n }, {\n x: +a[l],\n y: +a[l + 1]\n }, {\n x: +a[l + 2],\n y: +a[l + 3]\n }, {\n x: +a[l + 4],\n y: +a[l + 5]\n }];\n j ? l ? m - 4 === l ? n[3] = {\n x: +a[0],\n y: +a[1]\n } : m - 2 === l && (n[2] = {\n x: +a[0],\n y: +a[1]\n }, n[3] = {\n x: +a[2],\n y: +a[3]\n }) : n[0] = {\n x: +a[m - 2],\n y: +a[m - 1]\n } : m - 4 === l ? n[3] = n[2] : l || (n[0] = {\n x: +a[l],\n y: +a[l + 1]\n }), k.curve(e * (-n[0].x + 6 * n[1].x + n[2].x) / 6 + f * n[2].x, e * (-n[0].y + 6 * n[1].y + n[2].y) / 6 + f * n[2].y, e * (n[1].x + 6 * n[2].x - n[3].x) / 6 + f * n[2].x, e * (n[1].y + 6 * n[2].y - n[3].y) / 6 + f * n[2].y, n[2].x, n[2].y, !1, d[(l + 2) / 2]);\n }\n return k;\n };\n }, c.Interpolation.step = function (a) {\n var b = {\n postpone: !0\n };\n return a = c.extend({}, b, a), function (b, d) {\n for (var e = new c.Svg.Path(), f = !0, g = 2; g < b.length; g += 2) {\n var h = b[g - 2],\n i = b[g - 1],\n j = b[g],\n k = b[g + 1],\n l = d[g / 2 - 1],\n m = d[g / 2];\n void 0 === l.value ? f = !0 : (f && e.move(h, i, !1, l), void 0 !== m.value && (a.postpone ? e.line(j, i, !1, l) : e.line(h, k, !1, m), e.line(j, k, !1, m), f = !1));\n }\n return e;\n };\n };\n }(window, document, a), function (a, b, c) {\n \"use strict\";\n\n c.EventEmitter = function () {\n function a(a, b) {\n d[a] = d[a] || [], d[a].push(b);\n }\n function b(a, b) {\n d[a] && (b ? (d[a].splice(d[a].indexOf(b), 1), 0 === d[a].length && delete d[a]) : delete d[a]);\n }\n function c(a, b) {\n d[a] && d[a].forEach(function (a) {\n a(b);\n }), d[\"*\"] && d[\"*\"].forEach(function (c) {\n c(a, b);\n });\n }\n var d = [];\n return {\n addEventHandler: a,\n removeEventHandler: b,\n emit: c\n };\n };\n }(window, document, a), function (a, b, c) {\n \"use strict\";\n\n function d(a) {\n var b = [];\n if (a.length) for (var c = 0; c < a.length; c++) b.push(a[c]);\n return b;\n }\n function e(a, b) {\n var d = b || this.prototype || c.Class,\n e = Object.create(d);\n c.Class.cloneDefinitions(e, a);\n var f = function f() {\n var a,\n b = e.constructor || function () {};\n return a = this === c ? Object.create(e) : this, b.apply(a, Array.prototype.slice.call(arguments, 0)), a;\n };\n return f.prototype = e, f[\"super\"] = d, f.extend = this.extend, f;\n }\n function f() {\n var a = d(arguments),\n b = a[0];\n return a.splice(1, a.length - 1).forEach(function (a) {\n Object.getOwnPropertyNames(a).forEach(function (c) {\n delete b[c], Object.defineProperty(b, c, Object.getOwnPropertyDescriptor(a, c));\n });\n }), b;\n }\n c.Class = {\n extend: e,\n cloneDefinitions: f\n };\n }(window, document, a), function (a, b, c) {\n \"use strict\";\n\n function d(a, b, d) {\n return a && (this.data = a, this.eventEmitter.emit(\"data\", {\n type: \"update\",\n data: this.data\n })), b && (this.options = c.extend({}, d ? this.options : this.defaultOptions, b), this.initializeTimeoutId || (this.optionsProvider.removeMediaQueryListeners(), this.optionsProvider = c.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter))), this.initializeTimeoutId || this.createChart(this.optionsProvider.getCurrentOptions()), this;\n }\n function e() {\n return this.initializeTimeoutId ? a.clearTimeout(this.initializeTimeoutId) : (a.removeEventListener(\"resize\", this.resizeListener), this.optionsProvider.removeMediaQueryListeners()), this;\n }\n function f(a, b) {\n return this.eventEmitter.addEventHandler(a, b), this;\n }\n function g(a, b) {\n return this.eventEmitter.removeEventHandler(a, b), this;\n }\n function h() {\n a.addEventListener(\"resize\", this.resizeListener), this.optionsProvider = c.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter), this.eventEmitter.addEventHandler(\"optionsChanged\", function () {\n this.update();\n }.bind(this)), this.options.plugins && this.options.plugins.forEach(function (a) {\n a instanceof Array ? a[0](this, a[1]) : a(this);\n }.bind(this)), this.eventEmitter.emit(\"data\", {\n type: \"initial\",\n data: this.data\n }), this.createChart(this.optionsProvider.getCurrentOptions()), this.initializeTimeoutId = void 0;\n }\n function i(a, b, d, e, f) {\n this.container = c.querySelector(a), this.data = b, this.defaultOptions = d, this.options = e, this.responsiveOptions = f, this.eventEmitter = c.EventEmitter(), this.supportsForeignObject = c.Svg.isSupported(\"Extensibility\"), this.supportsAnimations = c.Svg.isSupported(\"AnimationEventsAttribute\"), this.resizeListener = function () {\n this.update();\n }.bind(this), this.container && (this.container.__chartist__ && this.container.__chartist__.detach(), this.container.__chartist__ = this), this.initializeTimeoutId = setTimeout(h.bind(this), 0);\n }\n c.Base = c.Class.extend({\n constructor: i,\n optionsProvider: void 0,\n container: void 0,\n svg: void 0,\n eventEmitter: void 0,\n createChart: function createChart() {\n throw new Error(\"Base chart type can't be instantiated!\");\n },\n update: d,\n detach: e,\n on: f,\n off: g,\n version: c.version,\n supportsForeignObject: !1\n });\n }(window, document, a), function (a, b, c) {\n \"use strict\";\n\n function d(a, d, e, f, g) {\n a instanceof Element ? this._node = a : (this._node = b.createElementNS(z, a), \"svg\" === a && this._node.setAttributeNS(A, c.xmlNs.qualifiedName, c.xmlNs.uri)), d && this.attr(d), e && this.addClass(e), f && (g && f._node.firstChild ? f._node.insertBefore(this._node, f._node.firstChild) : f._node.appendChild(this._node));\n }\n function e(a, b) {\n return \"string\" == typeof a ? b ? this._node.getAttributeNS(b, a) : this._node.getAttribute(a) : (Object.keys(a).forEach(function (d) {\n void 0 !== a[d] && (b ? this._node.setAttributeNS(b, [c.xmlNs.prefix, \":\", d].join(\"\"), a[d]) : this._node.setAttribute(d, a[d]));\n }.bind(this)), this);\n }\n function f(a, b, d, e) {\n return new c.Svg(a, b, d, this, e);\n }\n function g() {\n return this._node.parentNode instanceof SVGElement ? new c.Svg(this._node.parentNode) : null;\n }\n function h() {\n for (var a = this._node; \"svg\" !== a.nodeName;) a = a.parentNode;\n return new c.Svg(a);\n }\n function i(a) {\n var b = this._node.querySelector(a);\n return b ? new c.Svg(b) : null;\n }\n function j(a) {\n var b = this._node.querySelectorAll(a);\n return b.length ? new c.Svg.List(b) : null;\n }\n function k(a, c, d, e) {\n if (\"string\" == typeof a) {\n var f = b.createElement(\"div\");\n f.innerHTML = a, a = f.firstChild;\n }\n a.setAttribute(\"xmlns\", B);\n var g = this.elem(\"foreignObject\", c, d, e);\n return g._node.appendChild(a), g;\n }\n function l(a) {\n return this._node.appendChild(b.createTextNode(a)), this;\n }\n function m() {\n for (; this._node.firstChild;) this._node.removeChild(this._node.firstChild);\n return this;\n }\n function n() {\n return this._node.parentNode.removeChild(this._node), this.parent();\n }\n function o(a) {\n return this._node.parentNode.replaceChild(a._node, this._node), a;\n }\n function p(a, b) {\n return b && this._node.firstChild ? this._node.insertBefore(a._node, this._node.firstChild) : this._node.appendChild(a._node), this;\n }\n function q() {\n return this._node.getAttribute(\"class\") ? this._node.getAttribute(\"class\").trim().split(/\\s+/) : [];\n }\n function r(a) {\n return this._node.setAttribute(\"class\", this.classes(this._node).concat(a.trim().split(/\\s+/)).filter(function (a, b, c) {\n return c.indexOf(a) === b;\n }).join(\" \")), this;\n }\n function s(a) {\n var b = a.trim().split(/\\s+/);\n return this._node.setAttribute(\"class\", this.classes(this._node).filter(function (a) {\n return -1 === b.indexOf(a);\n }).join(\" \")), this;\n }\n function t() {\n return this._node.setAttribute(\"class\", \"\"), this;\n }\n function u(a, b) {\n try {\n return a.getBBox()[b];\n } catch (c) {}\n return 0;\n }\n function v() {\n return this._node.clientHeight || Math.round(u(this._node, \"height\")) || this._node.parentNode.clientHeight;\n }\n function w() {\n return this._node.clientWidth || Math.round(u(this._node, \"width\")) || this._node.parentNode.clientWidth;\n }\n function x(a, b, d) {\n return void 0 === b && (b = !0), Object.keys(a).forEach(function (e) {\n function f(a, b) {\n var f,\n g,\n h,\n i = {};\n a.easing && (h = a.easing instanceof Array ? a.easing : c.Svg.Easing[a.easing], delete a.easing), a.begin = c.ensureUnit(a.begin, \"ms\"), a.dur = c.ensureUnit(a.dur, \"ms\"), h && (a.calcMode = \"spline\", a.keySplines = h.join(\" \"), a.keyTimes = \"0;1\"), b && (a.fill = \"freeze\", i[e] = a.from, this.attr(i), g = c.stripUnit(a.begin || 0), a.begin = \"indefinite\"), f = this.elem(\"animate\", c.extend({\n attributeName: e\n }, a)), b && setTimeout(function () {\n try {\n f._node.beginElement();\n } catch (b) {\n i[e] = a.to, this.attr(i), f.remove();\n }\n }.bind(this), g), d && f._node.addEventListener(\"beginEvent\", function () {\n d.emit(\"animationBegin\", {\n element: this,\n animate: f._node,\n params: a\n });\n }.bind(this)), f._node.addEventListener(\"endEvent\", function () {\n d && d.emit(\"animationEnd\", {\n element: this,\n animate: f._node,\n params: a\n }), b && (i[e] = a.to, this.attr(i), f.remove());\n }.bind(this));\n }\n a[e] instanceof Array ? a[e].forEach(function (a) {\n f.bind(this)(a, !1);\n }.bind(this)) : f.bind(this)(a[e], b);\n }.bind(this)), this;\n }\n function y(a) {\n var b = this;\n this.svgElements = [];\n for (var d = 0; d < a.length; d++) this.svgElements.push(new c.Svg(a[d]));\n Object.keys(c.Svg.prototype).filter(function (a) {\n return -1 === [\"constructor\", \"parent\", \"querySelector\", \"querySelectorAll\", \"replace\", \"append\", \"classes\", \"height\", \"width\"].indexOf(a);\n }).forEach(function (a) {\n b[a] = function () {\n var d = Array.prototype.slice.call(arguments, 0);\n return b.svgElements.forEach(function (b) {\n c.Svg.prototype[a].apply(b, d);\n }), b;\n };\n });\n }\n var z = \"http://www.w3.org/2000/svg\",\n A = \"http://www.w3.org/2000/xmlns/\",\n B = \"http://www.w3.org/1999/xhtml\";\n c.xmlNs = {\n qualifiedName: \"xmlns:ct\",\n prefix: \"ct\",\n uri: \"http://gionkunz.github.com/chartist-js/ct\"\n }, c.Svg = c.Class.extend({\n constructor: d,\n attr: e,\n elem: f,\n parent: g,\n root: h,\n querySelector: i,\n querySelectorAll: j,\n foreignObject: k,\n text: l,\n empty: m,\n remove: n,\n replace: o,\n append: p,\n classes: q,\n addClass: r,\n removeClass: s,\n removeAllClasses: t,\n height: v,\n width: w,\n animate: x\n }), c.Svg.isSupported = function (a) {\n return b.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#\" + a, \"1.1\");\n };\n var C = {\n easeInSine: [.47, 0, .745, .715],\n easeOutSine: [.39, .575, .565, 1],\n easeInOutSine: [.445, .05, .55, .95],\n easeInQuad: [.55, .085, .68, .53],\n easeOutQuad: [.25, .46, .45, .94],\n easeInOutQuad: [.455, .03, .515, .955],\n easeInCubic: [.55, .055, .675, .19],\n easeOutCubic: [.215, .61, .355, 1],\n easeInOutCubic: [.645, .045, .355, 1],\n easeInQuart: [.895, .03, .685, .22],\n easeOutQuart: [.165, .84, .44, 1],\n easeInOutQuart: [.77, 0, .175, 1],\n easeInQuint: [.755, .05, .855, .06],\n easeOutQuint: [.23, 1, .32, 1],\n easeInOutQuint: [.86, 0, .07, 1],\n easeInExpo: [.95, .05, .795, .035],\n easeOutExpo: [.19, 1, .22, 1],\n easeInOutExpo: [1, 0, 0, 1],\n easeInCirc: [.6, .04, .98, .335],\n easeOutCirc: [.075, .82, .165, 1],\n easeInOutCirc: [.785, .135, .15, .86],\n easeInBack: [.6, -.28, .735, .045],\n easeOutBack: [.175, .885, .32, 1.275],\n easeInOutBack: [.68, -.55, .265, 1.55]\n };\n c.Svg.Easing = C, c.Svg.List = c.Class.extend({\n constructor: y\n });\n }(window, document, a), function (a, b, c) {\n \"use strict\";\n\n function d(a, b, d, e, f, g) {\n var h = c.extend({\n command: f ? a.toLowerCase() : a.toUpperCase()\n }, b, g ? {\n data: g\n } : {});\n d.splice(e, 0, h);\n }\n function e(a, b) {\n a.forEach(function (c, d) {\n u[c.command.toLowerCase()].forEach(function (e, f) {\n b(c, e, d, f, a);\n });\n });\n }\n function f(a, b) {\n this.pathElements = [], this.pos = 0, this.close = a, this.options = c.extend({}, v, b);\n }\n function g(a) {\n return void 0 !== a ? (this.pos = Math.max(0, Math.min(this.pathElements.length, a)), this) : this.pos;\n }\n function h(a) {\n return this.pathElements.splice(this.pos, a), this;\n }\n function i(a, b, c, e) {\n return d(\"M\", {\n x: +a,\n y: +b\n }, this.pathElements, this.pos++, c, e), this;\n }\n function j(a, b, c, e) {\n return d(\"L\", {\n x: +a,\n y: +b\n }, this.pathElements, this.pos++, c, e), this;\n }\n function k(a, b, c, e, f, g, h, i) {\n return d(\"C\", {\n x1: +a,\n y1: +b,\n x2: +c,\n y2: +e,\n x: +f,\n y: +g\n }, this.pathElements, this.pos++, h, i), this;\n }\n function l(a, b, c, e, f, g, h, i, j) {\n return d(\"A\", {\n rx: +a,\n ry: +b,\n xAr: +c,\n lAf: +e,\n sf: +f,\n x: +g,\n y: +h\n }, this.pathElements, this.pos++, i, j), this;\n }\n function m(a) {\n var b = a.replace(/([A-Za-z])([0-9])/g, \"$1 $2\").replace(/([0-9])([A-Za-z])/g, \"$1 $2\").split(/[\\s,]+/).reduce(function (a, b) {\n return b.match(/[A-Za-z]/) && a.push([]), a[a.length - 1].push(b), a;\n }, []);\n \"Z\" === b[b.length - 1][0].toUpperCase() && b.pop();\n var d = b.map(function (a) {\n var b = a.shift(),\n d = u[b.toLowerCase()];\n return c.extend({\n command: b\n }, d.reduce(function (b, c, d) {\n return b[c] = +a[d], b;\n }, {}));\n }),\n e = [this.pos, 0];\n return Array.prototype.push.apply(e, d), Array.prototype.splice.apply(this.pathElements, e), this.pos += d.length, this;\n }\n function n() {\n var a = Math.pow(10, this.options.accuracy);\n return this.pathElements.reduce(function (b, c) {\n var d = u[c.command.toLowerCase()].map(function (b) {\n return this.options.accuracy ? Math.round(c[b] * a) / a : c[b];\n }.bind(this));\n return b + c.command + d.join(\",\");\n }.bind(this), \"\") + (this.close ? \"Z\" : \"\");\n }\n function o(a, b) {\n return e(this.pathElements, function (c, d) {\n c[d] *= \"x\" === d[0] ? a : b;\n }), this;\n }\n function p(a, b) {\n return e(this.pathElements, function (c, d) {\n c[d] += \"x\" === d[0] ? a : b;\n }), this;\n }\n function q(a) {\n return e(this.pathElements, function (b, c, d, e, f) {\n var g = a(b, c, d, e, f);\n (g || 0 === g) && (b[c] = g);\n }), this;\n }\n function r(a) {\n var b = new c.Svg.Path(a || this.close);\n return b.pos = this.pos, b.pathElements = this.pathElements.slice().map(function (a) {\n return c.extend({}, a);\n }), b.options = c.extend({}, this.options), b;\n }\n function s(a) {\n var b = [new c.Svg.Path()];\n return this.pathElements.forEach(function (d) {\n d.command === a.toUpperCase() && 0 !== b[b.length - 1].pathElements.length && b.push(new c.Svg.Path()), b[b.length - 1].pathElements.push(d);\n }), b;\n }\n function t(a, b, d) {\n for (var e = new c.Svg.Path(b, d), f = 0; f < a.length; f++) for (var g = a[f], h = 0; h < g.pathElements.length; h++) e.pathElements.push(g.pathElements[h]);\n return e;\n }\n var u = {\n m: [\"x\", \"y\"],\n l: [\"x\", \"y\"],\n c: [\"x1\", \"y1\", \"x2\", \"y2\", \"x\", \"y\"],\n a: [\"rx\", \"ry\", \"xAr\", \"lAf\", \"sf\", \"x\", \"y\"]\n },\n v = {\n accuracy: 3\n };\n c.Svg.Path = c.Class.extend({\n constructor: f,\n position: g,\n remove: h,\n move: i,\n line: j,\n curve: k,\n arc: l,\n scale: o,\n translate: p,\n transform: q,\n parse: m,\n stringify: n,\n clone: r,\n splitByCommand: s\n }), c.Svg.Path.elementDescriptions = u, c.Svg.Path.join = t;\n }(window, document, a), function (a, b, c) {\n \"use strict\";\n\n function d(a, b, c, d) {\n this.units = a, this.counterUnits = a === f.x ? f.y : f.x, this.chartRect = b, this.axisLength = b[a.rectEnd] - b[a.rectStart], this.gridOffset = b[a.rectOffset], this.ticks = c, this.options = d;\n }\n function e(a, b, d, e, f) {\n var g = e[\"axis\" + this.units.pos.toUpperCase()],\n h = this.ticks.map(this.projectValue.bind(this)),\n i = this.ticks.map(g.labelInterpolationFnc);\n h.forEach(function (j, k) {\n var l,\n m = {\n x: 0,\n y: 0\n };\n l = h[k + 1] ? h[k + 1] - j : Math.max(this.axisLength - j, 30), (i[k] || 0 === i[k]) && (\"x\" === this.units.pos ? (j = this.chartRect.x1 + j, m.x = e.axisX.labelOffset.x, \"start\" === e.axisX.position ? m.y = this.chartRect.padding.top + e.axisX.labelOffset.y + (d ? 5 : 20) : m.y = this.chartRect.y1 + e.axisX.labelOffset.y + (d ? 5 : 20)) : (j = this.chartRect.y1 - j, m.y = e.axisY.labelOffset.y - (d ? l : 0), \"start\" === e.axisY.position ? m.x = d ? this.chartRect.padding.left + e.axisY.labelOffset.x : this.chartRect.x1 - 10 : m.x = this.chartRect.x2 + e.axisY.labelOffset.x + 10), g.showGrid && c.createGrid(j, k, this, this.gridOffset, this.chartRect[this.counterUnits.len](), a, [e.classNames.grid, e.classNames[this.units.dir]], f), g.showLabel && c.createLabel(j, l, k, i, this, g.offset, m, b, [e.classNames.label, e.classNames[this.units.dir], e.classNames[g.position]], d, f));\n }.bind(this));\n }\n var f = {\n x: {\n pos: \"x\",\n len: \"width\",\n dir: \"horizontal\",\n rectStart: \"x1\",\n rectEnd: \"x2\",\n rectOffset: \"y2\"\n },\n y: {\n pos: \"y\",\n len: \"height\",\n dir: \"vertical\",\n rectStart: \"y2\",\n rectEnd: \"y1\",\n rectOffset: \"x1\"\n }\n };\n c.Axis = c.Class.extend({\n constructor: d,\n createGridAndLabels: e,\n projectValue: function projectValue(a, b, c) {\n throw new Error(\"Base axis can't be instantiated!\");\n }\n }), c.Axis.units = f;\n }(window, document, a), function (a, b, c) {\n \"use strict\";\n\n function d(a, b, d, e) {\n var f = e.highLow || c.getHighLow(b.normalized, e, a.pos);\n this.bounds = c.getBounds(d[a.rectEnd] - d[a.rectStart], f, e.scaleMinSpace || 20, e.onlyInteger), this.range = {\n min: this.bounds.min,\n max: this.bounds.max\n }, c.AutoScaleAxis[\"super\"].constructor.call(this, a, d, this.bounds.values, e);\n }\n function e(a) {\n return this.axisLength * (+c.getMultiValue(a, this.units.pos) - this.bounds.min) / this.bounds.range;\n }\n c.AutoScaleAxis = c.Axis.extend({\n constructor: d,\n projectValue: e\n });\n }(window, document, a), function (a, b, c) {\n \"use strict\";\n\n function d(a, b, d, e) {\n var f = e.highLow || c.getHighLow(b.normalized, e, a.pos);\n this.divisor = e.divisor || 1, this.ticks = e.ticks || c.times(this.divisor).map(function (a, b) {\n return f.low + (f.high - f.low) / this.divisor * b;\n }.bind(this)), this.range = {\n min: f.low,\n max: f.high\n }, c.FixedScaleAxis[\"super\"].constructor.call(this, a, d, this.ticks, e), this.stepLength = this.axisLength / this.divisor;\n }\n function e(a) {\n return this.axisLength * (+c.getMultiValue(a, this.units.pos) - this.range.min) / (this.range.max - this.range.min);\n }\n c.FixedScaleAxis = c.Axis.extend({\n constructor: d,\n projectValue: e\n });\n }(window, document, a), function (a, b, c) {\n \"use strict\";\n\n function d(a, b, d, e) {\n c.StepAxis[\"super\"].constructor.call(this, a, d, e.ticks, e), this.stepLength = this.axisLength / (e.ticks.length - (e.stretch ? 1 : 0));\n }\n function e(a, b) {\n return this.stepLength * b;\n }\n c.StepAxis = c.Axis.extend({\n constructor: d,\n projectValue: e\n });\n }(window, document, a), function (a, b, c) {\n \"use strict\";\n\n function d(a) {\n var b = {\n raw: this.data,\n normalized: c.getDataArray(this.data, a.reverseData, !0)\n };\n this.svg = c.createSvg(this.container, a.width, a.height, a.classNames.chart);\n var d,\n e,\n g = this.svg.elem(\"g\").addClass(a.classNames.gridGroup),\n h = this.svg.elem(\"g\"),\n i = this.svg.elem(\"g\").addClass(a.classNames.labelGroup),\n j = c.createChartRect(this.svg, a, f.padding);\n d = void 0 === a.axisX.type ? new c.StepAxis(c.Axis.units.x, b, j, c.extend({}, a.axisX, {\n ticks: b.raw.labels,\n stretch: a.fullWidth\n })) : a.axisX.type.call(c, c.Axis.units.x, b, j, a.axisX), e = void 0 === a.axisY.type ? new c.AutoScaleAxis(c.Axis.units.y, b, j, c.extend({}, a.axisY, {\n high: c.isNum(a.high) ? a.high : a.axisY.high,\n low: c.isNum(a.low) ? a.low : a.axisY.low\n })) : a.axisY.type.call(c, c.Axis.units.y, b, j, a.axisY), d.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), e.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), b.raw.series.forEach(function (f, g) {\n var i = h.elem(\"g\");\n i.attr({\n \"series-name\": f.name,\n meta: c.serialize(f.meta)\n }, c.xmlNs.uri), i.addClass([a.classNames.series, f.className || a.classNames.series + \"-\" + c.alphaNumerate(g)].join(\" \"));\n var k = [],\n l = [];\n b.normalized[g].forEach(function (a, h) {\n var i = {\n x: j.x1 + d.projectValue(a, h, b.normalized[g]),\n y: j.y1 - e.projectValue(a, h, b.normalized[g])\n };\n k.push(i.x, i.y), l.push({\n value: a,\n valueIndex: h,\n meta: c.getMetaData(f, h)\n });\n }.bind(this));\n var m = {\n lineSmooth: c.getSeriesOption(f, a, \"lineSmooth\"),\n showPoint: c.getSeriesOption(f, a, \"showPoint\"),\n showLine: c.getSeriesOption(f, a, \"showLine\"),\n showArea: c.getSeriesOption(f, a, \"showArea\"),\n areaBase: c.getSeriesOption(f, a, \"areaBase\")\n },\n n = \"function\" == typeof m.lineSmooth ? m.lineSmooth : m.lineSmooth ? c.Interpolation.cardinal() : c.Interpolation.none(),\n o = n(k, l);\n if (m.showPoint && o.pathElements.forEach(function (b) {\n var h = i.elem(\"line\", {\n x1: b.x,\n y1: b.y,\n x2: b.x + .01,\n y2: b.y\n }, a.classNames.point).attr({\n value: [b.data.value.x, b.data.value.y].filter(function (a) {\n return a;\n }).join(\",\"),\n meta: b.data.meta\n }, c.xmlNs.uri);\n this.eventEmitter.emit(\"draw\", {\n type: \"point\",\n value: b.data.value,\n index: b.data.valueIndex,\n meta: b.data.meta,\n series: f,\n seriesIndex: g,\n axisX: d,\n axisY: e,\n group: i,\n element: h,\n x: b.x,\n y: b.y\n });\n }.bind(this)), m.showLine) {\n var p = i.elem(\"path\", {\n d: o.stringify()\n }, a.classNames.line, !0);\n this.eventEmitter.emit(\"draw\", {\n type: \"line\",\n values: b.normalized[g],\n path: o.clone(),\n chartRect: j,\n index: g,\n series: f,\n seriesIndex: g,\n axisX: d,\n axisY: e,\n group: i,\n element: p\n });\n }\n if (m.showArea && e.range) {\n var q = Math.max(Math.min(m.areaBase, e.range.max), e.range.min),\n r = j.y1 - e.projectValue(q);\n o.splitByCommand(\"M\").filter(function (a) {\n return a.pathElements.length > 1;\n }).map(function (a) {\n var b = a.pathElements[0],\n c = a.pathElements[a.pathElements.length - 1];\n return a.clone(!0).position(0).remove(1).move(b.x, r).line(b.x, b.y).position(a.pathElements.length + 1).line(c.x, r);\n }).forEach(function (h) {\n var k = i.elem(\"path\", {\n d: h.stringify()\n }, a.classNames.area, !0).attr({\n values: b.normalized[g]\n }, c.xmlNs.uri);\n this.eventEmitter.emit(\"draw\", {\n type: \"area\",\n values: b.normalized[g],\n path: h.clone(),\n series: f,\n seriesIndex: g,\n axisX: d,\n axisY: e,\n chartRect: j,\n index: g,\n group: i,\n element: k\n });\n }.bind(this));\n }\n }.bind(this)), this.eventEmitter.emit(\"created\", {\n bounds: e.bounds,\n chartRect: j,\n axisX: d,\n axisY: e,\n svg: this.svg,\n options: a\n });\n }\n function e(a, b, d, e) {\n c.Line[\"super\"].constructor.call(this, a, b, f, c.extend({}, f, d), e);\n }\n var f = {\n axisX: {\n offset: 30,\n position: \"end\",\n labelOffset: {\n x: 0,\n y: 0\n },\n showLabel: !0,\n showGrid: !0,\n labelInterpolationFnc: c.noop,\n type: void 0\n },\n axisY: {\n offset: 40,\n position: \"start\",\n labelOffset: {\n x: 0,\n y: 0\n },\n showLabel: !0,\n showGrid: !0,\n labelInterpolationFnc: c.noop,\n type: void 0,\n scaleMinSpace: 20,\n onlyInteger: !1\n },\n width: void 0,\n height: void 0,\n showLine: !0,\n showPoint: !0,\n showArea: !1,\n areaBase: 0,\n lineSmooth: !0,\n low: void 0,\n high: void 0,\n chartPadding: {\n top: 15,\n right: 15,\n bottom: 5,\n left: 10\n },\n fullWidth: !1,\n reverseData: !1,\n classNames: {\n chart: \"ct-chart-line\",\n label: \"ct-label\",\n labelGroup: \"ct-labels\",\n series: \"ct-series\",\n line: \"ct-line\",\n point: \"ct-point\",\n area: \"ct-area\",\n grid: \"ct-grid\",\n gridGroup: \"ct-grids\",\n vertical: \"ct-vertical\",\n horizontal: \"ct-horizontal\",\n start: \"ct-start\",\n end: \"ct-end\"\n }\n };\n c.Line = c.Base.extend({\n constructor: e,\n createChart: d\n });\n }(window, document, a), function (a, b, c) {\n \"use strict\";\n\n function d(a) {\n var b,\n d = {\n raw: this.data,\n normalized: a.distributeSeries ? c.getDataArray(this.data, a.reverseData, a.horizontalBars ? \"x\" : \"y\").map(function (a) {\n return [a];\n }) : c.getDataArray(this.data, a.reverseData, a.horizontalBars ? \"x\" : \"y\")\n };\n this.svg = c.createSvg(this.container, a.width, a.height, a.classNames.chart + (a.horizontalBars ? \" \" + a.classNames.horizontalBars : \"\"));\n var e = this.svg.elem(\"g\").addClass(a.classNames.gridGroup),\n g = this.svg.elem(\"g\"),\n h = this.svg.elem(\"g\").addClass(a.classNames.labelGroup);\n if (a.stackBars) {\n var i = c.serialMap(d.normalized, function () {\n return Array.prototype.slice.call(arguments).map(function (a) {\n return a;\n }).reduce(function (a, b) {\n return {\n x: a.x + b.x || 0,\n y: a.y + b.y || 0\n };\n }, {\n x: 0,\n y: 0\n });\n });\n b = c.getHighLow([i], c.extend({}, a, {\n referenceValue: 0\n }), a.horizontalBars ? \"x\" : \"y\");\n } else b = c.getHighLow(d.normalized, c.extend({}, a, {\n referenceValue: 0\n }), a.horizontalBars ? \"x\" : \"y\");\n b.high = +a.high || (0 === a.high ? 0 : b.high), b.low = +a.low || (0 === a.low ? 0 : b.low);\n var j,\n k,\n l,\n m,\n n,\n o = c.createChartRect(this.svg, a, f.padding);\n k = a.distributeSeries && a.stackBars ? d.raw.labels.slice(0, 1) : d.raw.labels, a.horizontalBars ? (j = m = void 0 === a.axisX.type ? new c.AutoScaleAxis(c.Axis.units.x, d, o, c.extend({}, a.axisX, {\n highLow: b,\n referenceValue: 0\n })) : a.axisX.type.call(c, c.Axis.units.x, d, o, c.extend({}, a.axisX, {\n highLow: b,\n referenceValue: 0\n })), l = n = void 0 === a.axisY.type ? new c.StepAxis(c.Axis.units.y, d, o, {\n ticks: k\n }) : a.axisY.type.call(c, c.Axis.units.y, d, o, a.axisY)) : (l = m = void 0 === a.axisX.type ? new c.StepAxis(c.Axis.units.x, d, o, {\n ticks: k\n }) : a.axisX.type.call(c, c.Axis.units.x, d, o, a.axisX), j = n = void 0 === a.axisY.type ? new c.AutoScaleAxis(c.Axis.units.y, d, o, c.extend({}, a.axisY, {\n highLow: b,\n referenceValue: 0\n })) : a.axisY.type.call(c, c.Axis.units.y, d, o, c.extend({}, a.axisY, {\n highLow: b,\n referenceValue: 0\n })));\n var p = a.horizontalBars ? o.x1 + j.projectValue(0) : o.y1 - j.projectValue(0),\n q = [];\n l.createGridAndLabels(e, h, this.supportsForeignObject, a, this.eventEmitter), j.createGridAndLabels(e, h, this.supportsForeignObject, a, this.eventEmitter), d.raw.series.forEach(function (b, e) {\n var f,\n h,\n i = e - (d.raw.series.length - 1) / 2;\n f = a.distributeSeries && !a.stackBars ? l.axisLength / d.normalized.length / 2 : a.distributeSeries && a.stackBars ? l.axisLength / 2 : l.axisLength / d.normalized[e].length / 2, h = g.elem(\"g\"), h.attr({\n \"series-name\": b.name,\n meta: c.serialize(b.meta)\n }, c.xmlNs.uri), h.addClass([a.classNames.series, b.className || a.classNames.series + \"-\" + c.alphaNumerate(e)].join(\" \")), d.normalized[e].forEach(function (g, k) {\n var r, s, t, u;\n if (u = a.distributeSeries && !a.stackBars ? e : a.distributeSeries && a.stackBars ? 0 : k, r = a.horizontalBars ? {\n x: o.x1 + j.projectValue(g && g.x ? g.x : 0, k, d.normalized[e]),\n y: o.y1 - l.projectValue(g && g.y ? g.y : 0, u, d.normalized[e])\n } : {\n x: o.x1 + l.projectValue(g && g.x ? g.x : 0, u, d.normalized[e]),\n y: o.y1 - j.projectValue(g && g.y ? g.y : 0, k, d.normalized[e])\n }, l instanceof c.StepAxis && (l.options.stretch || (r[l.units.pos] += f * (a.horizontalBars ? -1 : 1)), r[l.units.pos] += a.stackBars || a.distributeSeries ? 0 : i * a.seriesBarDistance * (a.horizontalBars ? -1 : 1)), t = q[k] || p, q[k] = t - (p - r[l.counterUnits.pos]), void 0 !== g) {\n var v = {};\n v[l.units.pos + \"1\"] = r[l.units.pos], v[l.units.pos + \"2\"] = r[l.units.pos], v[l.counterUnits.pos + \"1\"] = a.stackBars ? t : p, v[l.counterUnits.pos + \"2\"] = a.stackBars ? q[k] : r[l.counterUnits.pos], v.x1 = Math.min(Math.max(v.x1, o.x1), o.x2), v.x2 = Math.min(Math.max(v.x2, o.x1), o.x2), v.y1 = Math.min(Math.max(v.y1, o.y2), o.y1), v.y2 = Math.min(Math.max(v.y2, o.y2), o.y1), s = h.elem(\"line\", v, a.classNames.bar).attr({\n value: [g.x, g.y].filter(function (a) {\n return a;\n }).join(\",\"),\n meta: c.getMetaData(b, k)\n }, c.xmlNs.uri), this.eventEmitter.emit(\"draw\", c.extend({\n type: \"bar\",\n value: g,\n index: k,\n meta: c.getMetaData(b, k),\n series: b,\n seriesIndex: e,\n axisX: m,\n axisY: n,\n chartRect: o,\n group: h,\n element: s\n }, v));\n }\n }.bind(this));\n }.bind(this)), this.eventEmitter.emit(\"created\", {\n bounds: j.bounds,\n chartRect: o,\n axisX: m,\n axisY: n,\n svg: this.svg,\n options: a\n });\n }\n function e(a, b, d, e) {\n c.Bar[\"super\"].constructor.call(this, a, b, f, c.extend({}, f, d), e);\n }\n var f = {\n axisX: {\n offset: 30,\n position: \"end\",\n labelOffset: {\n x: 0,\n y: 0\n },\n showLabel: !0,\n showGrid: !0,\n labelInterpolationFnc: c.noop,\n scaleMinSpace: 30,\n onlyInteger: !1\n },\n axisY: {\n offset: 40,\n position: \"start\",\n labelOffset: {\n x: 0,\n y: 0\n },\n showLabel: !0,\n showGrid: !0,\n labelInterpolationFnc: c.noop,\n scaleMinSpace: 20,\n onlyInteger: !1\n },\n width: void 0,\n height: void 0,\n high: void 0,\n low: void 0,\n onlyInteger: !1,\n chartPadding: {\n top: 15,\n right: 15,\n bottom: 5,\n left: 10\n },\n seriesBarDistance: 15,\n stackBars: !1,\n horizontalBars: !1,\n distributeSeries: !1,\n reverseData: !1,\n classNames: {\n chart: \"ct-chart-bar\",\n horizontalBars: \"ct-horizontal-bars\",\n label: \"ct-label\",\n labelGroup: \"ct-labels\",\n series: \"ct-series\",\n bar: \"ct-bar\",\n grid: \"ct-grid\",\n gridGroup: \"ct-grids\",\n vertical: \"ct-vertical\",\n horizontal: \"ct-horizontal\",\n start: \"ct-start\",\n end: \"ct-end\"\n }\n };\n c.Bar = c.Base.extend({\n constructor: e,\n createChart: d\n });\n }(window, document, a), function (a, b, c) {\n \"use strict\";\n\n function d(a, b, c) {\n var d = b.x > a.x;\n return d && \"explode\" === c || !d && \"implode\" === c ? \"start\" : d && \"implode\" === c || !d && \"explode\" === c ? \"end\" : \"middle\";\n }\n function e(a) {\n var b,\n e,\n f,\n h,\n i,\n j = [],\n k = a.startAngle,\n l = c.getDataArray(this.data, a.reverseData);\n this.svg = c.createSvg(this.container, a.width, a.height, a.donut ? a.classNames.chartDonut : a.classNames.chartPie), e = c.createChartRect(this.svg, a, g.padding), f = Math.min(e.width() / 2, e.height() / 2), i = a.total || l.reduce(function (a, b) {\n return a + b;\n }, 0), f -= a.donut ? a.donutWidth / 2 : 0, h = \"outside\" === a.labelPosition || a.donut ? f : \"center\" === a.labelPosition ? 0 : f / 2, h += a.labelOffset;\n var m = {\n x: e.x1 + e.width() / 2,\n y: e.y2 + e.height() / 2\n },\n n = 1 === this.data.series.filter(function (a) {\n return a.hasOwnProperty(\"value\") ? 0 !== a.value : 0 !== a;\n }).length;\n a.showLabel && (b = this.svg.elem(\"g\", null, null, !0));\n for (var o = 0; o < this.data.series.length; o++) {\n var p = this.data.series[o];\n j[o] = this.svg.elem(\"g\", null, null, !0), j[o].attr({\n \"series-name\": p.name\n }, c.xmlNs.uri), j[o].addClass([a.classNames.series, p.className || a.classNames.series + \"-\" + c.alphaNumerate(o)].join(\" \"));\n var q = k + l[o] / i * 360;\n q - k === 360 && (q -= .01);\n var r = c.polarToCartesian(m.x, m.y, f, k - (0 === o || n ? 0 : .2)),\n s = c.polarToCartesian(m.x, m.y, f, q),\n t = new c.Svg.Path(!a.donut).move(s.x, s.y).arc(f, f, 0, q - k > 180, 0, r.x, r.y);\n a.donut || t.line(m.x, m.y);\n var u = j[o].elem(\"path\", {\n d: t.stringify()\n }, a.donut ? a.classNames.sliceDonut : a.classNames.slicePie);\n if (u.attr({\n value: l[o],\n meta: c.serialize(p.meta)\n }, c.xmlNs.uri), a.donut && u.attr({\n style: \"stroke-width: \" + +a.donutWidth + \"px\"\n }), this.eventEmitter.emit(\"draw\", {\n type: \"slice\",\n value: l[o],\n totalDataSum: i,\n index: o,\n meta: p.meta,\n series: p,\n group: j[o],\n element: u,\n path: t.clone(),\n center: m,\n radius: f,\n startAngle: k,\n endAngle: q\n }), a.showLabel) {\n var v = c.polarToCartesian(m.x, m.y, h, k + (q - k) / 2),\n w = a.labelInterpolationFnc(this.data.labels ? this.data.labels[o] : l[o], o);\n if (w || 0 === w) {\n var x = b.elem(\"text\", {\n dx: v.x,\n dy: v.y,\n \"text-anchor\": d(m, v, a.labelDirection)\n }, a.classNames.label).text(\"\" + w);\n this.eventEmitter.emit(\"draw\", {\n type: \"label\",\n index: o,\n group: b,\n element: x,\n text: \"\" + w,\n x: v.x,\n y: v.y\n });\n }\n }\n k = q;\n }\n this.eventEmitter.emit(\"created\", {\n chartRect: e,\n svg: this.svg,\n options: a\n });\n }\n function f(a, b, d, e) {\n c.Pie[\"super\"].constructor.call(this, a, b, g, c.extend({}, g, d), e);\n }\n var g = {\n width: void 0,\n height: void 0,\n chartPadding: 5,\n classNames: {\n chartPie: \"ct-chart-pie\",\n chartDonut: \"ct-chart-donut\",\n series: \"ct-series\",\n slicePie: \"ct-slice-pie\",\n sliceDonut: \"ct-slice-donut\",\n label: \"ct-label\"\n },\n startAngle: 0,\n total: void 0,\n donut: !1,\n donutWidth: 60,\n showLabel: !0,\n labelOffset: 0,\n labelPosition: \"inside\",\n labelInterpolationFnc: c.noop,\n labelDirection: \"neutral\",\n reverseData: !1\n };\n c.Pie = c.Base.extend({\n constructor: f,\n createChart: e,\n determineAnchorPosition: d\n });\n }(window, document, a), a;\n});\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/chartist.min.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/fullcalendar.min.js":
/*!*************************************************************!*\
!*** ./buyercall/assets/scripts/vendor/fullcalendar.min.js ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\n * FullCalendar v3.0.1\n * Docs & License: http://fullcalendar.io/\n * (c) 2016 Adam Shaw\n */\n!function (t) {\n true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ \"jquery\"), __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (t),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined;\n}(function (t, e) {\n function n(t) {\n return q(t, qt);\n }\n function i(t, e) {\n e.left && t.css({\n \"border-left-width\": 1,\n \"margin-left\": e.left - 1\n }), e.right && t.css({\n \"border-right-width\": 1,\n \"margin-right\": e.right - 1\n });\n }\n function r(t) {\n t.css({\n \"margin-left\": \"\",\n \"margin-right\": \"\",\n \"border-left-width\": \"\",\n \"border-right-width\": \"\"\n });\n }\n function s() {\n t(\"body\").addClass(\"fc-not-allowed\");\n }\n function o() {\n t(\"body\").removeClass(\"fc-not-allowed\");\n }\n function l(e, n, i) {\n var r = Math.floor(n / e.length),\n s = Math.floor(n - r * (e.length - 1)),\n o = [],\n l = [],\n u = [],\n d = 0;\n a(e), e.each(function (n, i) {\n var a = n === e.length - 1 ? s : r,\n c = t(i).outerHeight(!0);\n c < a ? (o.push(i), l.push(c), u.push(t(i).height())) : d += c;\n }), i && (n -= d, r = Math.floor(n / o.length), s = Math.floor(n - r * (o.length - 1))), t(o).each(function (e, n) {\n var i = e === o.length - 1 ? s : r,\n a = l[e],\n d = u[e],\n c = i - (a - d);\n a < i && t(n).height(c);\n });\n }\n function a(t) {\n t.height(\"\");\n }\n function u(e) {\n var n = 0;\n return e.find(\"> *\").each(function (e, i) {\n var r = t(i).outerWidth();\n r > n && (n = r);\n }), n++, e.width(n), n;\n }\n function d(t, e) {\n var n,\n i = t.add(e);\n return i.css({\n position: \"relative\",\n left: -1\n }), n = t.outerHeight() - e.outerHeight(), i.css({\n position: \"\",\n left: \"\"\n }), n;\n }\n function c(e) {\n var n = e.css(\"position\"),\n i = e.parents().filter(function () {\n var e = t(this);\n return /(auto|scroll)/.test(e.css(\"overflow\") + e.css(\"overflow-y\") + e.css(\"overflow-x\"));\n }).eq(0);\n return \"fixed\" !== n && i.length ? i : t(e[0].ownerDocument || document);\n }\n function h(t, e) {\n var n = t.offset(),\n i = n.left - (e ? e.left : 0),\n r = n.top - (e ? e.top : 0);\n return {\n left: i,\n right: i + t.outerWidth(),\n top: r,\n bottom: r + t.outerHeight()\n };\n }\n function f(t, e) {\n var n = t.offset(),\n i = p(t),\n r = n.left + y(t, \"border-left-width\") + i.left - (e ? e.left : 0),\n s = n.top + y(t, \"border-top-width\") + i.top - (e ? e.top : 0);\n return {\n left: r,\n right: r + t[0].clientWidth,\n top: s,\n bottom: s + t[0].clientHeight\n };\n }\n function g(t, e) {\n var n = t.offset(),\n i = n.left + y(t, \"border-left-width\") + y(t, \"padding-left\") - (e ? e.left : 0),\n r = n.top + y(t, \"border-top-width\") + y(t, \"padding-top\") - (e ? e.top : 0);\n return {\n left: i,\n right: i + t.width(),\n top: r,\n bottom: r + t.height()\n };\n }\n function p(t) {\n var e = t.innerWidth() - t[0].clientWidth,\n n = {\n left: 0,\n right: 0,\n top: 0,\n bottom: t.innerHeight() - t[0].clientHeight\n };\n return v() && \"rtl\" == t.css(\"direction\") ? n.left = e : n.right = e, n;\n }\n function v() {\n return null === Zt && (Zt = m()), Zt;\n }\n function m() {\n var e = t(\"<div><div/></div>\").css({\n position: \"absolute\",\n top: -1e3,\n left: 0,\n border: 0,\n padding: 0,\n overflow: \"scroll\",\n direction: \"rtl\"\n }).appendTo(\"body\"),\n n = e.children(),\n i = n.offset().left > e.offset().left;\n return e.remove(), i;\n }\n function y(t, e) {\n return parseFloat(t.css(e)) || 0;\n }\n function S(t) {\n return 1 == t.which && !t.ctrlKey;\n }\n function w(t) {\n if (void 0 !== t.pageX) return t.pageX;\n var e = t.originalEvent.touches;\n return e ? e[0].pageX : void 0;\n }\n function E(t) {\n if (void 0 !== t.pageY) return t.pageY;\n var e = t.originalEvent.touches;\n return e ? e[0].pageY : void 0;\n }\n function D(t) {\n return /^touch/.test(t.type);\n }\n function b(t) {\n t.addClass(\"fc-unselectable\").on(\"selectstart\", C);\n }\n function C(t) {\n t.preventDefault();\n }\n function H(t) {\n return !!window.addEventListener && (window.addEventListener(\"scroll\", t, !0), !0);\n }\n function T(t) {\n return !!window.removeEventListener && (window.removeEventListener(\"scroll\", t, !0), !0);\n }\n function x(t, e) {\n var n = {\n left: Math.max(t.left, e.left),\n right: Math.min(t.right, e.right),\n top: Math.max(t.top, e.top),\n bottom: Math.min(t.bottom, e.bottom)\n };\n return n.left < n.right && n.top < n.bottom && n;\n }\n function R(t, e) {\n return {\n left: Math.min(Math.max(t.left, e.left), e.right),\n top: Math.min(Math.max(t.top, e.top), e.bottom)\n };\n }\n function I(t) {\n return {\n left: (t.left + t.right) / 2,\n top: (t.top + t.bottom) / 2\n };\n }\n function k(t, e) {\n return {\n left: t.left - e.left,\n top: t.top - e.top\n };\n }\n function M(e) {\n var n,\n i,\n r = [],\n s = [];\n for (\"string\" == typeof e ? s = e.split(/\\s*,\\s*/) : \"function\" == typeof e ? s = [e] : t.isArray(e) && (s = e), n = 0; n < s.length; n++) i = s[n], \"string\" == typeof i ? r.push(\"-\" == i.charAt(0) ? {\n field: i.substring(1),\n order: -1\n } : {\n field: i,\n order: 1\n }) : \"function\" == typeof i && r.push({\n func: i\n });\n return r;\n }\n function L(t, e, n) {\n var i, r;\n for (i = 0; i < n.length; i++) if (r = B(t, e, n[i])) return r;\n return 0;\n }\n function B(t, e, n) {\n return n.func ? n.func(t, e) : z(t[n.field], e[n.field]) * (n.order || 1);\n }\n function z(e, n) {\n return e || n ? null == n ? -1 : null == e ? 1 : \"string\" === t.type(e) || \"string\" === t.type(n) ? String(e).localeCompare(String(n)) : e - n : 0;\n }\n function F(t, e) {\n var n,\n i,\n r,\n s,\n o = t.start,\n l = t.end,\n a = e.start,\n u = e.end;\n if (l > a && o < u) return o >= a ? (n = o.clone(), r = !0) : (n = a.clone(), r = !1), l <= u ? (i = l.clone(), s = !0) : (i = u.clone(), s = !1), {\n start: n,\n end: i,\n isStart: r,\n isEnd: s\n };\n }\n function N(t, n) {\n return e.duration({\n days: t.clone().stripTime().diff(n.clone().stripTime(), \"days\"),\n ms: t.time() - n.time()\n });\n }\n function G(t, n) {\n return e.duration({\n days: t.clone().stripTime().diff(n.clone().stripTime(), \"days\")\n });\n }\n function A(t, n, i) {\n return e.duration(Math.round(t.diff(n, i, !0)), i);\n }\n function O(t, e) {\n var n, i, r;\n for (n = 0; n < Xt.length && (i = Xt[n], r = V(i, t, e), !(r >= 1 && ot(r))); n++);\n return i;\n }\n function V(t, n, i) {\n return null != i ? i.diff(n, t, !0) : e.isDuration(n) ? n.as(t) : n.end.diff(n.start, t, !0);\n }\n function P(t, e, n) {\n var i;\n return W(n) ? (e - t) / n : (i = n.asMonths(), Math.abs(i) >= 1 && ot(i) ? e.diff(t, \"months\", !0) / i : e.diff(t, \"days\", !0) / n.asDays());\n }\n function _(t, e) {\n var n, i;\n return W(t) || W(e) ? t / e : (n = t.asMonths(), i = e.asMonths(), Math.abs(n) >= 1 && ot(n) && Math.abs(i) >= 1 && ot(i) ? n / i : t.asDays() / e.asDays());\n }\n function Y(t, n) {\n var i;\n return W(t) ? e.duration(t * n) : (i = t.asMonths(), Math.abs(i) >= 1 && ot(i) ? e.duration({\n months: i * n\n }) : e.duration({\n days: t.asDays() * n\n }));\n }\n function W(t) {\n return Boolean(t.hours() || t.minutes() || t.seconds() || t.milliseconds());\n }\n function j(t) {\n return \"[object Date]\" === Object.prototype.toString.call(t) || t instanceof Date;\n }\n function U(t) {\n return /^\\d+\\:\\d+(?:\\:\\d+\\.?(?:\\d{3})?)?$/.test(t);\n }\n function q(t, e) {\n var n,\n i,\n r,\n s,\n o,\n l,\n a = {};\n if (e) for (n = 0; n < e.length; n++) {\n for (i = e[n], r = [], s = t.length - 1; s >= 0; s--) if (o = t[s][i], \"object\" == _typeof(o)) r.unshift(o);else if (void 0 !== o) {\n a[i] = o;\n break;\n }\n r.length && (a[i] = q(r));\n }\n for (n = t.length - 1; n >= 0; n--) {\n l = t[n];\n for (i in l) i in a || (a[i] = l[i]);\n }\n return a;\n }\n function Z(t) {\n var e = function e() {};\n return e.prototype = t, new e();\n }\n function $(t, e) {\n for (var n in t) X(t, n) && (e[n] = t[n]);\n }\n function X(t, e) {\n return Kt.call(t, e);\n }\n function K(e) {\n return /undefined|null|boolean|number|string/.test(t.type(e));\n }\n function Q(e, n, i) {\n if (t.isFunction(e) && (e = [e]), e) {\n var r, s;\n for (r = 0; r < e.length; r++) s = e[r].apply(n, i) || s;\n return s;\n }\n }\n function J() {\n for (var t = 0; t < arguments.length; t++) if (void 0 !== arguments[t]) return arguments[t];\n }\n function tt(t) {\n return (t + \"\").replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/'/g, \"'\").replace(/\"/g, \""\").replace(/\\n/g, \"<br />\");\n }\n function et(t) {\n return t.replace(/&.*?;/g, \"\");\n }\n function nt(e) {\n var n = [];\n return t.each(e, function (t, e) {\n null != e && n.push(t + \":\" + e);\n }), n.join(\";\");\n }\n function it(e) {\n var n = [];\n return t.each(e, function (t, e) {\n null != e && n.push(t + '=\"' + tt(e) + '\"');\n }), n.join(\" \");\n }\n function rt(t) {\n return t.charAt(0).toUpperCase() + t.slice(1);\n }\n function st(t, e) {\n return t - e;\n }\n function ot(t) {\n return t % 1 === 0;\n }\n function lt(t, e) {\n var n = t[e];\n return function () {\n return n.apply(t, arguments);\n };\n }\n function at(t, e, n) {\n var i,\n r,\n s,\n o,\n l,\n a = function a() {\n var u = +new Date() - o;\n u < e ? i = setTimeout(a, e - u) : (i = null, n || (l = t.apply(s, r), s = r = null));\n };\n return function () {\n s = this, r = arguments, o = +new Date();\n var u = n && !i;\n return i || (i = setTimeout(a, e)), u && (l = t.apply(s, r), s = r = null), l;\n };\n }\n function ut(e, n) {\n return e && e.then && \"resolved\" !== e.state() ? n ? e.then(n) : void 0 : t.when(n());\n }\n function dt(n, i, r) {\n var s,\n o,\n l,\n a,\n u = n[0],\n d = 1 == n.length && \"string\" == typeof u;\n return e.isMoment(u) || j(u) || void 0 === u ? a = e.apply(null, n) : (s = !1, o = !1, d ? Qt.test(u) ? (u += \"-01\", n = [u], s = !0, o = !0) : (l = Jt.exec(u)) && (s = !l[5], o = !0) : t.isArray(u) && (o = !0), a = i || s ? e.utc.apply(e, n) : e.apply(null, n), s ? (a._ambigTime = !0, a._ambigZone = !0) : r && (o ? a._ambigZone = !0 : d && a.utcOffset(u))), a._fullCalendar = !0, a;\n }\n function ct(t, e) {\n return ee.format.call(t, e);\n }\n function ht(t, e) {\n return ft(t, yt(e));\n }\n function ft(t, e) {\n var n,\n i = \"\";\n for (n = 0; n < e.length; n++) i += gt(t, e[n]);\n return i;\n }\n function gt(t, e) {\n var n, i;\n return \"string\" == typeof e ? e : (n = e.token) ? ie[n] ? ie[n](t) : ct(t, n) : e.maybe && (i = ft(t, e.maybe), i.match(/[1-9]/)) ? i : \"\";\n }\n function pt(t, e, n, i, r) {\n var s;\n return t = jt.moment.parseZone(t), e = jt.moment.parseZone(e), s = t.localeData(), n = s.longDateFormat(n) || n, i = i || \" - \", vt(t, e, yt(n), i, r);\n }\n function vt(t, e, n, i, r) {\n var s,\n o,\n l,\n a,\n u = t.clone().stripZone(),\n d = e.clone().stripZone(),\n c = \"\",\n h = \"\",\n f = \"\",\n g = \"\",\n p = \"\";\n for (o = 0; o < n.length && (s = mt(t, e, u, d, n[o]), s !== !1); o++) c += s;\n for (l = n.length - 1; l > o && (s = mt(t, e, u, d, n[l]), s !== !1); l--) h = s + h;\n for (a = o; a <= l; a++) f += gt(t, n[a]), g += gt(e, n[a]);\n return (f || g) && (p = r ? g + i + f : f + i + g), c + p + h;\n }\n function mt(t, e, n, i, r) {\n var s, o;\n return \"string\" == typeof r ? r : !!((s = r.token) && (o = re[s.charAt(0)], o && n.isSame(i, o))) && ct(t, s);\n }\n function yt(t) {\n return t in se ? se[t] : se[t] = St(t);\n }\n function St(t) {\n for (var e, n = [], i = /\\[([^\\]]*)\\]|\\(([^\\)]*)\\)|(LTS|LT|(\\w)\\4*o?)|([^\\w\\[\\(]+)/g; e = i.exec(t);) e[1] ? n.push(e[1]) : e[2] ? n.push({\n maybe: St(e[2])\n }) : e[3] ? n.push({\n token: e[3]\n }) : e[5] && n.push(e[5]);\n return n;\n }\n function wt() {}\n function Et(t, e) {\n var n;\n return X(e, \"constructor\") && (n = e.constructor), \"function\" != typeof n && (n = e.constructor = function () {\n t.apply(this, arguments);\n }), n.prototype = Z(t.prototype), $(e, n.prototype), $(t, n), n;\n }\n function Dt(t, e) {\n $(e, t.prototype);\n }\n function bt(t, e) {\n return !t && !e || !(!t || !e) && t.component === e.component && Ct(t, e) && Ct(e, t);\n }\n function Ct(t, e) {\n for (var n in t) if (!/^(component|left|right|top|bottom)$/.test(n) && t[n] !== e[n]) return !1;\n return !0;\n }\n function Ht(t) {\n return {\n start: t.start.clone(),\n end: t.end ? t.end.clone() : null,\n allDay: t.allDay\n };\n }\n function Tt(t) {\n var e = Rt(t);\n return \"background\" === e || \"inverse-background\" === e;\n }\n function xt(t) {\n return \"inverse-background\" === Rt(t);\n }\n function Rt(t) {\n return J((t.source || {}).rendering, t.rendering);\n }\n function It(t) {\n var e,\n n,\n i = {};\n for (e = 0; e < t.length; e++) n = t[e], (i[n._id] || (i[n._id] = [])).push(n);\n return i;\n }\n function kt(t, e) {\n return t.start - e.start;\n }\n function Mt(n) {\n var i,\n r,\n s,\n o,\n l = jt.dataAttrPrefix;\n return l && (l += \"-\"), i = n.data(l + \"event\") || null, i && (i = \"object\" == _typeof(i) ? t.extend({}, i) : {}, r = i.start, null == r && (r = i.time), s = i.duration, o = i.stick, delete i.start, delete i.time, delete i.duration, delete i.stick), null == r && (r = n.data(l + \"start\")), null == r && (r = n.data(l + \"time\")), null == s && (s = n.data(l + \"duration\")), null == o && (o = n.data(l + \"stick\")), r = null != r ? e.duration(r) : null, s = null != s ? e.duration(s) : null, o = Boolean(o), {\n eventProps: i,\n startTime: r,\n duration: s,\n stick: o\n };\n }\n function Lt(t, e) {\n var n, i;\n for (n = 0; n < e.length; n++) if (i = e[n], i.leftCol <= t.rightCol && i.rightCol >= t.leftCol) return !0;\n return !1;\n }\n function Bt(t, e) {\n return t.leftCol - e.leftCol;\n }\n function zt(t) {\n var e,\n n,\n i,\n r = [];\n for (e = 0; e < t.length; e++) {\n for (n = t[e], i = 0; i < r.length && Gt(n, r[i]).length; i++);\n n.level = i, (r[i] || (r[i] = [])).push(n);\n }\n return r;\n }\n function Ft(t) {\n var e, n, i, r, s;\n for (e = 0; e < t.length; e++) for (n = t[e], i = 0; i < n.length; i++) for (r = n[i], r.forwardSegs = [], s = e + 1; s < t.length; s++) Gt(r, t[s], r.forwardSegs);\n }\n function Nt(t) {\n var e,\n n,\n i = t.forwardSegs,\n r = 0;\n if (void 0 === t.forwardPressure) {\n for (e = 0; e < i.length; e++) n = i[e], Nt(n), r = Math.max(r, 1 + n.forwardPressure);\n t.forwardPressure = r;\n }\n }\n function Gt(t, e, n) {\n n = n || [];\n for (var i = 0; i < e.length; i++) At(t, e[i]) && n.push(e[i]);\n return n;\n }\n function At(t, e) {\n return t.bottom > e.top && t.top < e.bottom;\n }\n function Ot(n, i) {\n function r(t) {\n t._locale = U;\n }\n function s() {\n $ ? u() && (g(), d()) : o();\n }\n function o() {\n n.addClass(\"fc\"), n.on(\"click.fc\", \"a[data-goto]\", function (e) {\n var n = t(this),\n i = n.data(\"goto\"),\n r = j.moment(i.date),\n s = i.type,\n o = K.opt(\"navLink\" + rt(s) + \"Click\");\n \"function\" == typeof o ? o(r, e) : (\"string\" == typeof o && (s = o), N(r, s));\n }), j.bindOption(\"theme\", function (t) {\n X = t ? \"ui\" : \"fc\", n.toggleClass(\"ui-widget\", t), n.toggleClass(\"fc-unthemed\", !t);\n }), j.bindOptions([\"isRTL\", \"locale\"], function (t) {\n n.toggleClass(\"fc-ltr\", !t), n.toggleClass(\"fc-rtl\", t);\n }), $ = t(\"<div class='fc-view-container'/>\").prependTo(n), q = j.header = new _t(j), l(), d(j.options.defaultView), j.options.handleWindowResize && (J = at(m, j.options.windowResizeDelay), t(window).resize(J));\n }\n function l() {\n q.render(), q.el && n.prepend(q.el);\n }\n function a() {\n K && K.removeElement(), q.removeElement(), $.remove(), n.removeClass(\"fc fc-ltr fc-rtl fc-unthemed ui-widget\"), n.off(\".fc\"), J && t(window).unbind(\"resize\", J);\n }\n function u() {\n return n.is(\":visible\");\n }\n function d(e, n) {\n lt++, K && e && K.type !== e && (A(), c()), !K && e && (K = j.view = ot[e] || (ot[e] = j.instantiateView(e)), K.setElement(t(\"<div class='fc-view fc-\" + e + \"-view' />\").appendTo($)), q.activateButton(e)), K && (tt = K.massageCurrentDate(tt), K.displaying && tt >= K.intervalStart && tt < K.intervalEnd || u() && (K.display(tt, n), O(), H(), T(), E())), O(), lt--;\n }\n function c() {\n q.deactivateButton(K.type), K.removeElement(), K = j.view = null;\n }\n function h() {\n lt++, A();\n var t = K.type,\n e = K.queryScroll();\n c(), d(t, e), O(), lt--;\n }\n function f(t) {\n if (u()) return t && p(), lt++, K.updateSize(!0), lt--, !0;\n }\n function g() {\n u() && p();\n }\n function p() {\n var t = j.options.contentHeight,\n e = j.options.height;\n Q = \"number\" == typeof t ? t : \"function\" == typeof t ? t() : \"number\" == typeof e ? e - v() : \"function\" == typeof e ? e() - v() : \"parent\" === e ? n.parent().height() - v() : Math.round($.width() / Math.max(j.options.aspectRatio, .5));\n }\n function v() {\n return q.el ? q.el.outerHeight(!0) : 0;\n }\n function m(t) {\n !lt && t.target === window && K.start && f(!0) && K.trigger(\"windowResize\", st);\n }\n function y() {\n D();\n }\n function S(t) {\n it(j.getEventSourcesByMatchArray(t));\n }\n function w() {\n u() && (A(), K.displayEvents(ut), O());\n }\n function E() {\n !j.options.lazyFetching || et(K.start, K.end) ? D() : w();\n }\n function D() {\n nt(K.start, K.end);\n }\n function b(t) {\n ut = t, w();\n }\n function C() {\n w();\n }\n function H() {\n q.updateTitle(K.title);\n }\n function T() {\n var t = j.getNow();\n t >= K.intervalStart && t < K.intervalEnd ? q.disableButton(\"today\") : q.enableButton(\"today\");\n }\n function x(t, e) {\n K.select(j.buildSelectSpan.apply(j, arguments));\n }\n function R() {\n K && K.unselect();\n }\n function I() {\n tt = K.computePrevDate(tt), d();\n }\n function k() {\n tt = K.computeNextDate(tt), d();\n }\n function M() {\n tt.add(-1, \"years\"), d();\n }\n function L() {\n tt.add(1, \"years\"), d();\n }\n function B() {\n tt = j.getNow(), d();\n }\n function z(t) {\n tt = j.moment(t).stripZone(), d();\n }\n function F(t) {\n tt.add(e.duration(t)), d();\n }\n function N(t, e) {\n var n;\n e = e || \"day\", n = j.getViewSpec(e) || j.getUnitViewSpec(e), tt = t.clone(), d(n ? n.type : null);\n }\n function G() {\n return j.applyTimezone(tt);\n }\n function A() {\n $.css({\n width: \"100%\",\n height: $.height(),\n overflow: \"hidden\"\n });\n }\n function O() {\n $.css({\n width: \"\",\n height: \"\",\n overflow: \"\"\n });\n }\n function V() {\n return j;\n }\n function P() {\n return K;\n }\n function _(t, e) {\n var n;\n if (\"string\" == typeof t) {\n if (void 0 === e) return j.options[t];\n n = {}, n[t] = e, Y(n);\n } else \"object\" == _typeof(t) && Y(t);\n }\n function Y(t) {\n var e,\n n = 0;\n for (e in t) j.dynamicOverrides[e] = t[e];\n j.viewSpecCache = {}, j.populateOptionsHash();\n for (e in t) j.triggerOptionHandlers(e), n++;\n if (1 === n) {\n if (\"height\" === e || \"contentHeight\" === e || \"aspectRatio\" === e) return void f(!0);\n if (\"defaultDate\" === e) return;\n if (\"businessHours\" === e) return void (K && (K.unrenderBusinessHours(), K.renderBusinessHours()));\n if (\"timezone\" === e) return j.rezoneArrayEventSources(), void y();\n }\n l(), ot = {}, h();\n }\n function W(t, e) {\n var n = Array.prototype.slice.call(arguments, 2);\n if (e = e || st, this.triggerWith(t, e, n), j.options[t]) return j.options[t].apply(e, n);\n }\n var j = this;\n j.render = s, j.destroy = a, j.refetchEvents = y, j.refetchEventSources = S, j.reportEvents = b, j.reportEventChange = C, j.rerenderEvents = w, j.changeView = d, j.select = x, j.unselect = R, j.prev = I, j.next = k, j.prevYear = M, j.nextYear = L, j.today = B, j.gotoDate = z, j.incrementDate = F, j.zoomTo = N, j.getDate = G, j.getCalendar = V, j.getView = P, j.option = _, j.trigger = W, j.dynamicOverrides = {}, j.viewSpecCache = {}, j.optionHandlers = {}, j.overrides = t.extend({}, i), j.populateOptionsHash();\n var U;\n j.bindOptions([\"locale\", \"monthNames\", \"monthNamesShort\", \"dayNames\", \"dayNamesShort\", \"firstDay\", \"weekNumberCalculation\"], function (t, e, n, i, s, o, l) {\n if (\"iso\" === l && (l = \"ISO\"), U = Z(Pt(t)), e && (U._months = e), n && (U._monthsShort = n), i && (U._weekdays = i), s && (U._weekdaysShort = s), null == o && \"ISO\" === l && (o = 1), null != o) {\n var a = Z(U._week);\n a.dow = o, U._week = a;\n }\n \"ISO\" !== l && \"local\" !== l && \"function\" != typeof l || (U._fullCalendar_weekCalc = l), tt && r(tt);\n }), j.defaultAllDayEventDuration = e.duration(j.options.defaultAllDayEventDuration), j.defaultTimedEventDuration = e.duration(j.options.defaultTimedEventDuration), j.moment = function () {\n var t;\n return \"local\" === j.options.timezone ? (t = jt.moment.apply(null, arguments), t.hasTime() && t.local()) : t = \"UTC\" === j.options.timezone ? jt.moment.utc.apply(null, arguments) : jt.moment.parseZone.apply(null, arguments), r(t), t;\n }, j.localizeMoment = r, j.getIsAmbigTimezone = function () {\n return \"local\" !== j.options.timezone && \"UTC\" !== j.options.timezone;\n }, j.applyTimezone = function (t) {\n if (!t.hasTime()) return t.clone();\n var e,\n n = j.moment(t.toArray()),\n i = t.time() - n.time();\n return i && (e = n.clone().add(i), t.time() - e.time() === 0 && (n = e)), n;\n }, j.getNow = function () {\n var t = j.options.now;\n return \"function\" == typeof t && (t = t()), j.moment(t).stripZone();\n }, j.getEventEnd = function (t) {\n return t.end ? t.end.clone() : j.getDefaultEventEnd(t.allDay, t.start);\n }, j.getDefaultEventEnd = function (t, e) {\n var n = e.clone();\n return t ? n.stripTime().add(j.defaultAllDayEventDuration) : n.add(j.defaultTimedEventDuration), j.getIsAmbigTimezone() && n.stripZone(), n;\n }, j.humanizeDuration = function (t) {\n return t.locale(j.options.locale).humanize();\n }, Yt.call(j);\n var q,\n $,\n X,\n K,\n Q,\n J,\n tt,\n et = j.isFetchNeeded,\n nt = j.fetchEvents,\n it = j.fetchEventSources,\n st = n[0],\n ot = {},\n lt = 0,\n ut = [];\n tt = null != j.options.defaultDate ? j.moment(j.options.defaultDate).stripZone() : j.getNow(), j.getSuggestedViewHeight = function () {\n return void 0 === Q && g(), Q;\n }, j.isHeightAuto = function () {\n return \"auto\" === j.options.contentHeight || \"auto\" === j.options.height;\n }, j.freezeContentHeight = A, j.unfreezeContentHeight = O, j.initialize();\n }\n function Vt(e) {\n t.each(He, function (t, n) {\n null == e[t] && (e[t] = n(e));\n });\n }\n function Pt(t) {\n return e.localeData(t) || e.localeData(\"en\");\n }\n function _t(e) {\n function n() {\n var n = e.options,\n s = n.header;\n f = n.theme ? \"ui\" : \"fc\", s ? (h ? h.empty() : h = this.el = t(\"<div class='fc-toolbar'/>\"), h.append(r(\"left\")).append(r(\"right\")).append(r(\"center\")).append('<div class=\"fc-clear\"/>')) : i();\n }\n function i() {\n h && (h.remove(), h = c.el = null);\n }\n function r(n) {\n var i = t('<div class=\"fc-' + n + '\"/>'),\n r = e.options,\n s = r.header[n];\n return s && t.each(s.split(\" \"), function (n) {\n var s,\n o = t(),\n l = !0;\n t.each(this.split(\",\"), function (n, i) {\n var s, a, u, d, c, h, p, v, m, y;\n \"title\" == i ? (o = o.add(t(\"<h2> </h2>\")), l = !1) : ((s = (r.customButtons || {})[i]) ? (u = function u(t) {\n s.click && s.click.call(y[0], t);\n }, d = \"\", c = s.text) : (a = e.getViewSpec(i)) ? (u = function u() {\n e.changeView(i);\n }, g.push(i), d = a.buttonTextOverride, c = a.buttonTextDefault) : e[i] && (u = function u() {\n e[i]();\n }, d = (e.overrides.buttonText || {})[i], c = r.buttonText[i]), u && (h = s ? s.themeIcon : r.themeButtonIcons[i], p = s ? s.icon : r.buttonIcons[i], v = d ? tt(d) : h && r.theme ? \"<span class='ui-icon ui-icon-\" + h + \"'></span>\" : p && !r.theme ? \"<span class='fc-icon fc-icon-\" + p + \"'></span>\" : tt(c), m = [\"fc-\" + i + \"-button\", f + \"-button\", f + \"-state-default\"], y = t('<button type=\"button\" class=\"' + m.join(\" \") + '\">' + v + \"</button>\").click(function (t) {\n y.hasClass(f + \"-state-disabled\") || (u(t), (y.hasClass(f + \"-state-active\") || y.hasClass(f + \"-state-disabled\")) && y.removeClass(f + \"-state-hover\"));\n }).mousedown(function () {\n y.not(\".\" + f + \"-state-active\").not(\".\" + f + \"-state-disabled\").addClass(f + \"-state-down\");\n }).mouseup(function () {\n y.removeClass(f + \"-state-down\");\n }).hover(function () {\n y.not(\".\" + f + \"-state-active\").not(\".\" + f + \"-state-disabled\").addClass(f + \"-state-hover\");\n }, function () {\n y.removeClass(f + \"-state-hover\").removeClass(f + \"-state-down\");\n }), o = o.add(y)));\n }), l && o.first().addClass(f + \"-corner-left\").end().last().addClass(f + \"-corner-right\").end(), o.length > 1 ? (s = t(\"<div/>\"), l && s.addClass(\"fc-button-group\"), s.append(o), i.append(s)) : i.append(o);\n }), i;\n }\n function s(t) {\n h && h.find(\"h2\").text(t);\n }\n function o(t) {\n h && h.find(\".fc-\" + t + \"-button\").addClass(f + \"-state-active\");\n }\n function l(t) {\n h && h.find(\".fc-\" + t + \"-button\").removeClass(f + \"-state-active\");\n }\n function a(t) {\n h && h.find(\".fc-\" + t + \"-button\").prop(\"disabled\", !0).addClass(f + \"-state-disabled\");\n }\n function u(t) {\n h && h.find(\".fc-\" + t + \"-button\").prop(\"disabled\", !1).removeClass(f + \"-state-disabled\");\n }\n function d() {\n return g;\n }\n var c = this;\n c.render = n, c.removeElement = i, c.updateTitle = s, c.activateButton = o, c.deactivateButton = l, c.disableButton = a, c.enableButton = u, c.getViewsWithButtons = d, c.el = null;\n var h,\n f,\n g = [];\n }\n function Yt() {\n function n(t, e) {\n return !O || t < O || e > V;\n }\n function i(t, e) {\n O = t, V = e, r(Y, \"reset\");\n }\n function r(t, e) {\n var n, i;\n for (\"reset\" === e ? j = [] : \"add\" !== e && (j = w(j, t)), n = 0; n < t.length; n++) i = t[n], \"pending\" !== i._status && W++, i._fetchId = (i._fetchId || 0) + 1, i._status = \"pending\";\n for (n = 0; n < t.length; n++) i = t[n], s(i, i._fetchId);\n }\n function s(e, n) {\n a(e, function (i) {\n var r,\n s,\n o,\n a = t.isArray(e.events);\n if (n === e._fetchId && \"rejected\" !== e._status) {\n if (e._status = \"resolved\", i) for (r = 0; r < i.length; r++) s = i[r], o = a ? s : R(s, e), o && j.push.apply(j, L(o));\n l();\n }\n });\n }\n function o(t) {\n var e = \"pending\" === t._status;\n t._status = \"rejected\", e && l();\n }\n function l() {\n W--, W || P(j);\n }\n function a(e, n) {\n var i,\n r,\n s = jt.sourceFetchers;\n for (i = 0; i < s.length; i++) {\n if (r = s[i].call(F, e, O.clone(), V.clone(), F.options.timezone, n), r === !0) return;\n if (\"object\" == _typeof(r)) return void a(r, n);\n }\n var o = e.events;\n if (o) t.isFunction(o) ? (F.pushLoading(), o.call(F, O.clone(), V.clone(), F.options.timezone, function (t) {\n n(t), F.popLoading();\n })) : t.isArray(o) ? n(o) : n();else {\n var l = e.url;\n if (l) {\n var u,\n d = e.success,\n c = e.error,\n h = e.complete;\n u = t.isFunction(e.data) ? e.data() : e.data;\n var f = t.extend({}, u || {}),\n g = J(e.startParam, F.options.startParam),\n p = J(e.endParam, F.options.endParam),\n v = J(e.timezoneParam, F.options.timezoneParam);\n g && (f[g] = O.format()), p && (f[p] = V.format()), F.options.timezone && \"local\" != F.options.timezone && (f[v] = F.options.timezone), F.pushLoading(), t.ajax(t.extend({}, Te, e, {\n data: f,\n success: function success(e) {\n e = e || [];\n var i = Q(d, this, arguments);\n t.isArray(i) && (e = i), n(e);\n },\n error: function error() {\n Q(c, this, arguments), n();\n },\n complete: function complete() {\n Q(h, this, arguments), F.popLoading();\n }\n }));\n } else n();\n }\n }\n function u(t) {\n var e = d(t);\n e && (Y.push(e), r([e], \"add\"));\n }\n function d(e) {\n var n,\n i,\n r = jt.sourceNormalizers;\n if (t.isFunction(e) || t.isArray(e) ? n = {\n events: e\n } : \"string\" == typeof e ? n = {\n url: e\n } : \"object\" == _typeof(e) && (n = t.extend({}, e)), n) {\n for (n.className ? \"string\" == typeof n.className && (n.className = n.className.split(/\\s+/)) : n.className = [], t.isArray(n.events) && (n.origArray = n.events, n.events = t.map(n.events, function (t) {\n return R(t, n);\n })), i = 0; i < r.length; i++) r[i].call(F, n);\n return n;\n }\n }\n function c(t) {\n f(m(t));\n }\n function h(t) {\n null == t ? f(Y, !0) : f(v(t));\n }\n function f(e, n) {\n var i;\n for (i = 0; i < e.length; i++) o(e[i]);\n n ? (Y = [], j = []) : (Y = t.grep(Y, function (t) {\n for (i = 0; i < e.length; i++) if (t === e[i]) return !1;\n return !0;\n }), j = w(j, e)), P(j);\n }\n function g() {\n return Y.slice(1);\n }\n function p(e) {\n return t.grep(Y, function (t) {\n return t.id && t.id === e;\n })[0];\n }\n function v(e) {\n e ? t.isArray(e) || (e = [e]) : e = [];\n var n,\n i = [];\n for (n = 0; n < e.length; n++) i.push.apply(i, m(e[n]));\n return i;\n }\n function m(e) {\n var n, i;\n for (n = 0; n < Y.length; n++) if (i = Y[n], i === e) return [i];\n return i = p(e), i ? [i] : t.grep(Y, function (t) {\n return y(e, t);\n });\n }\n function y(t, e) {\n return t && e && S(t) == S(e);\n }\n function S(t) {\n return (\"object\" == _typeof(t) ? t.origArray || t.googleCalendarId || t.url || t.events : null) || t;\n }\n function w(e, n) {\n return t.grep(e, function (t) {\n for (var e = 0; e < n.length; e++) if (t.source === n[e]) return !1;\n return !0;\n });\n }\n function E(t) {\n t.start = F.moment(t.start), t.end ? t.end = F.moment(t.end) : t.end = null, B(t, D(t)), P(j);\n }\n function D(e) {\n var n = {};\n return t.each(e, function (t, e) {\n b(t) && void 0 !== e && K(e) && (n[t] = e);\n }), n;\n }\n function b(t) {\n return !/^_|^(id|allDay|start|end)$/.test(t);\n }\n function C(t, e) {\n var n,\n i,\n r,\n s = R(t);\n if (s) {\n for (n = L(s), i = 0; i < n.length; i++) r = n[i], r.source || (e && (_.events.push(r), r.source = _), j.push(r));\n return P(j), n;\n }\n return [];\n }\n function H(e) {\n var n, i;\n for (null == e ? e = function e() {\n return !0;\n } : t.isFunction(e) || (n = e + \"\", e = function e(t) {\n return t._id == n;\n }), j = t.grep(j, e, !0), i = 0; i < Y.length; i++) t.isArray(Y[i].events) && (Y[i].events = t.grep(Y[i].events, e, !0));\n P(j);\n }\n function T(e) {\n return t.isFunction(e) ? t.grep(j, e) : null != e ? (e += \"\", t.grep(j, function (t) {\n return t._id == e;\n })) : j;\n }\n function x(t) {\n t.start = F.moment(t.start), t.end && (t.end = F.moment(t.end)), Wt(t);\n }\n function R(n, i) {\n var r,\n s,\n o,\n l = {};\n if (F.options.eventDataTransform && (n = F.options.eventDataTransform(n)), i && i.eventDataTransform && (n = i.eventDataTransform(n)), t.extend(l, n), i && (l.source = i), l._id = n._id || (void 0 === n.id ? \"_fc\" + xe++ : n.id + \"\"), n.className ? \"string\" == typeof n.className ? l.className = n.className.split(/\\s+/) : l.className = n.className : l.className = [], r = n.start || n.date, s = n.end, U(r) && (r = e.duration(r)), U(s) && (s = e.duration(s)), n.dow || e.isDuration(r) || e.isDuration(s)) l.start = r ? e.duration(r) : null, l.end = s ? e.duration(s) : null, l._recurring = !0;else {\n if (r && (r = F.moment(r), !r.isValid())) return !1;\n s && (s = F.moment(s), s.isValid() || (s = null)), o = n.allDay, void 0 === o && (o = J(i ? i.allDayDefault : void 0, F.options.allDayDefault)), I(r, s, o, l);\n }\n return F.normalizeEvent(l), l;\n }\n function I(t, e, n, i) {\n i.start = t, i.end = e, i.allDay = n, k(i), Wt(i);\n }\n function k(t) {\n M(t), t.end && !t.end.isAfter(t.start) && (t.end = null), t.end || (F.options.forceEventDuration ? t.end = F.getDefaultEventEnd(t.allDay, t.start) : t.end = null);\n }\n function M(t) {\n null == t.allDay && (t.allDay = !(t.start.hasTime() || t.end && t.end.hasTime())), t.allDay ? (t.start.stripTime(), t.end && t.end.stripTime()) : (t.start.hasTime() || (t.start = F.applyTimezone(t.start.time(0))), t.end && !t.end.hasTime() && (t.end = F.applyTimezone(t.end.time(0))));\n }\n function L(e, n, i) {\n var r,\n s,\n o,\n l,\n a,\n u,\n d,\n c,\n h,\n f = [];\n if (n = n || O, i = i || V, e) if (e._recurring) {\n if (s = e.dow) for (r = {}, o = 0; o < s.length; o++) r[s[o]] = !0;\n for (l = n.clone().stripTime(); l.isBefore(i);) r && !r[l.day()] || (a = e.start, u = e.end, d = l.clone(), c = null, a && (d = d.time(a)), u && (c = l.clone().time(u)), h = t.extend({}, e), I(d, c, !a && !u, h), f.push(h)), l.add(1, \"days\");\n } else f.push(e);\n return f;\n }\n function B(e, n, i) {\n function r(t, e) {\n return i ? A(t, e, i) : n.allDay ? G(t, e) : N(t, e);\n }\n var s,\n o,\n l,\n a,\n u,\n d,\n c = {};\n return n = n || {}, n.start || (n.start = e.start.clone()), void 0 === n.end && (n.end = e.end ? e.end.clone() : null), null == n.allDay && (n.allDay = e.allDay), k(n), s = {\n start: e._start.clone(),\n end: e._end ? e._end.clone() : F.getDefaultEventEnd(e._allDay, e._start),\n allDay: n.allDay\n }, k(s), o = null !== e._end && null === n.end, l = r(n.start, s.start), n.end ? (a = r(n.end, s.end), u = a.subtract(l)) : u = null, t.each(n, function (t, e) {\n b(t) && void 0 !== e && (c[t] = e);\n }), d = z(T(e._id), o, n.allDay, l, u, c), {\n dateDelta: l,\n durationDelta: u,\n undo: d\n };\n }\n function z(e, n, i, r, s, o) {\n var l = F.getIsAmbigTimezone(),\n a = [];\n return r && !r.valueOf() && (r = null), s && !s.valueOf() && (s = null), t.each(e, function (e, u) {\n var d, c;\n d = {\n start: u.start.clone(),\n end: u.end ? u.end.clone() : null,\n allDay: u.allDay\n }, t.each(o, function (t) {\n d[t] = u[t];\n }), c = {\n start: u._start,\n end: u._end,\n allDay: i\n }, k(c), n ? c.end = null : s && !c.end && (c.end = F.getDefaultEventEnd(c.allDay, c.start)), r && (c.start.add(r), c.end && c.end.add(r)), s && c.end.add(s), l && !c.allDay && (r || s) && (c.start.stripZone(), c.end && c.end.stripZone()), t.extend(u, o, c), Wt(u), a.push(function () {\n t.extend(u, d), Wt(u);\n });\n }), function () {\n for (var t = 0; t < a.length; t++) a[t]();\n };\n }\n var F = this;\n F.isFetchNeeded = n, F.fetchEvents = i, F.fetchEventSources = r, F.getEventSources = g, F.getEventSourceById = p, F.getEventSourcesByMatchArray = v, F.getEventSourcesByMatch = m, F.addEventSource = u, F.removeEventSource = c, F.removeEventSources = h, F.updateEvent = E, F.renderEvent = C, F.removeEvents = H, F.clientEvents = T, F.mutateEvent = B, F.normalizeEventDates = k, F.normalizeEventTimes = M;\n var O,\n V,\n P = F.reportEvents,\n _ = {\n events: []\n },\n Y = [_],\n W = 0,\n j = [];\n t.each((F.options.events ? [F.options.events] : []).concat(F.options.eventSources || []), function (t, e) {\n var n = d(e);\n n && Y.push(n);\n }), F.rezoneArrayEventSources = function () {\n var e, n, i;\n for (e = 0; e < Y.length; e++) if (n = Y[e].events, t.isArray(n)) for (i = 0; i < n.length; i++) x(n[i]);\n }, F.buildEventFromInput = R, F.expandEvent = L, F.getEventCache = function () {\n return j;\n };\n }\n function Wt(t) {\n t._allDay = t.allDay, t._start = t.start.clone(), t._end = t.end ? t.end.clone() : null;\n }\n var jt = t.fullCalendar = {\n version: \"3.0.1\",\n internalApiVersion: 6\n },\n Ut = jt.views = {};\n t.fn.fullCalendar = function (e) {\n var n = Array.prototype.slice.call(arguments, 1),\n i = this;\n return this.each(function (r, s) {\n var o,\n l = t(s),\n a = l.data(\"fullCalendar\");\n \"string\" == typeof e ? a && t.isFunction(a[e]) && (o = a[e].apply(a, n), r || (i = o), \"destroy\" === e && l.removeData(\"fullCalendar\")) : a || (a = new Ee(l, e), l.data(\"fullCalendar\", a), a.render());\n }), i;\n };\n var qt = [\"header\", \"buttonText\", \"buttonIcons\", \"themeButtonIcons\"];\n jt.intersectRanges = F, jt.applyAll = Q, jt.debounce = at, jt.isInt = ot, jt.htmlEscape = tt, jt.cssToStr = nt, jt.proxy = lt, jt.capitaliseFirstLetter = rt, jt.getOuterRect = h, jt.getClientRect = f, jt.getContentRect = g, jt.getScrollbarWidths = p;\n var Zt = null;\n jt.preventDefault = C, jt.intersectRects = x, jt.parseFieldSpecs = M, jt.compareByFieldSpecs = L, jt.compareByFieldSpec = B, jt.flexibleCompare = z, jt.computeIntervalUnit = O, jt.divideRangeByDuration = P, jt.divideDurationByDuration = _, jt.multiplyDuration = Y, jt.durationHasTime = W;\n var $t = [\"sun\", \"mon\", \"tue\", \"wed\", \"thu\", \"fri\", \"sat\"],\n Xt = [\"year\", \"month\", \"week\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n jt.log = function () {\n var t = window.console;\n if (t && t.log) return t.log.apply(t, arguments);\n }, jt.warn = function () {\n var t = window.console;\n return t && t.warn ? t.warn.apply(t, arguments) : jt.log.apply(jt, arguments);\n };\n var Kt = {}.hasOwnProperty,\n Qt = /^\\s*\\d{4}-\\d\\d$/,\n Jt = /^\\s*\\d{4}-(?:(\\d\\d-\\d\\d)|(W\\d\\d$)|(W\\d\\d-\\d)|(\\d\\d\\d))((T| )(\\d\\d(:\\d\\d(:\\d\\d(\\.\\d+)?)?)?)?)?$/,\n te = e.fn,\n ee = t.extend({}, te),\n ne = e.momentProperties;\n ne.push(\"_fullCalendar\"), ne.push(\"_ambigTime\"), ne.push(\"_ambigZone\"), jt.moment = function () {\n return dt(arguments);\n }, jt.moment.utc = function () {\n var t = dt(arguments, !0);\n return t.hasTime() && t.utc(), t;\n }, jt.moment.parseZone = function () {\n return dt(arguments, !0, !0);\n }, te.week = te.weeks = function (t) {\n var e = this._locale._fullCalendar_weekCalc;\n return null == t && \"function\" == typeof e ? e(this) : \"ISO\" === e ? ee.isoWeek.apply(this, arguments) : ee.week.apply(this, arguments);\n }, te.time = function (t) {\n if (!this._fullCalendar) return ee.time.apply(this, arguments);\n if (null == t) return e.duration({\n hours: this.hours(),\n minutes: this.minutes(),\n seconds: this.seconds(),\n milliseconds: this.milliseconds()\n });\n this._ambigTime = !1, e.isDuration(t) || e.isMoment(t) || (t = e.duration(t));\n var n = 0;\n return e.isDuration(t) && (n = 24 * Math.floor(t.asDays())), this.hours(n + t.hours()).minutes(t.minutes()).seconds(t.seconds()).milliseconds(t.milliseconds());\n }, te.stripTime = function () {\n return this._ambigTime || (this.utc(!0), this.set({\n hours: 0,\n minutes: 0,\n seconds: 0,\n ms: 0\n }), this._ambigTime = !0, this._ambigZone = !0), this;\n }, te.hasTime = function () {\n return !this._ambigTime;\n }, te.stripZone = function () {\n var t;\n return this._ambigZone || (t = this._ambigTime, this.utc(!0), this._ambigTime = t || !1, this._ambigZone = !0), this;\n }, te.hasZone = function () {\n return !this._ambigZone;\n }, te.local = function (t) {\n return ee.local.call(this, this._ambigZone || t), this._ambigTime = !1, this._ambigZone = !1, this;\n }, te.utc = function (t) {\n return ee.utc.call(this, t), this._ambigTime = !1, this._ambigZone = !1, this;\n }, te.utcOffset = function (t) {\n return null != t && (this._ambigTime = !1, this._ambigZone = !1), ee.utcOffset.apply(this, arguments);\n }, te.format = function () {\n return this._fullCalendar && arguments[0] ? ht(this, arguments[0]) : this._ambigTime ? ct(this, \"YYYY-MM-DD\") : this._ambigZone ? ct(this, \"YYYY-MM-DD[T]HH:mm:ss\") : ee.format.apply(this, arguments);\n }, te.toISOString = function () {\n return this._ambigTime ? ct(this, \"YYYY-MM-DD\") : this._ambigZone ? ct(this, \"YYYY-MM-DD[T]HH:mm:ss\") : ee.toISOString.apply(this, arguments);\n };\n var ie = {\n t: function t(_t2) {\n return ct(_t2, \"a\").charAt(0);\n },\n T: function T(t) {\n return ct(t, \"A\").charAt(0);\n }\n };\n jt.formatRange = pt;\n var re = {\n Y: \"year\",\n M: \"month\",\n D: \"day\",\n d: \"day\",\n A: \"second\",\n a: \"second\",\n T: \"second\",\n t: \"second\",\n H: \"second\",\n h: \"second\",\n m: \"second\",\n s: \"second\"\n },\n se = {},\n oe = {\n Y: {\n value: 1,\n unit: \"year\"\n },\n M: {\n value: 2,\n unit: \"month\"\n },\n W: {\n value: 3,\n unit: \"week\"\n },\n w: {\n value: 3,\n unit: \"week\"\n },\n D: {\n value: 4,\n unit: \"day\"\n },\n d: {\n value: 4,\n unit: \"day\"\n }\n };\n jt.queryMostGranularFormatUnit = function (t) {\n var e,\n n,\n i,\n r,\n s = yt(t);\n for (e = 0; e < s.length; e++) n = s[e], n.token && (i = oe[n.token.charAt(0)], i && (!r || i.value > r.value) && (r = i));\n return r ? r.unit : null;\n }, jt.Class = wt, wt.extend = function () {\n var t,\n e,\n n = arguments.length;\n for (t = 0; t < n; t++) e = arguments[t], t < n - 1 && Dt(this, e);\n return Et(this, e || {});\n }, wt.mixin = function (t) {\n Dt(this, t);\n };\n var le = jt.EmitterMixin = {\n on: function on(e, n) {\n var i = function i(t, e) {\n return n.apply(e.context || this, e.args || []);\n };\n return n.guid || (n.guid = t.guid++), i.guid = n.guid, t(this).on(e, i), this;\n },\n off: function off(e, n) {\n return t(this).off(e, n), this;\n },\n trigger: function trigger(e) {\n var n = Array.prototype.slice.call(arguments, 1);\n return t(this).triggerHandler(e, {\n args: n\n }), this;\n },\n triggerWith: function triggerWith(e, n, i) {\n return t(this).triggerHandler(e, {\n context: n,\n args: i\n }), this;\n }\n },\n ae = jt.ListenerMixin = function () {\n var e = 0,\n n = {\n listenerId: null,\n listenTo: function listenTo(e, n, i) {\n if (\"object\" == _typeof(n)) for (var r in n) n.hasOwnProperty(r) && this.listenTo(e, r, n[r]);else \"string\" == typeof n && e.on(n + \".\" + this.getListenerNamespace(), t.proxy(i, this));\n },\n stopListeningTo: function stopListeningTo(t, e) {\n t.off((e || \"\") + \".\" + this.getListenerNamespace());\n },\n getListenerNamespace: function getListenerNamespace() {\n return null == this.listenerId && (this.listenerId = e++), \"_listener\" + this.listenerId;\n }\n };\n return n;\n }(),\n ue = {\n isIgnoringMouse: !1,\n delayUnignoreMouse: null,\n initMouseIgnoring: function initMouseIgnoring(t) {\n this.delayUnignoreMouse = at(lt(this, \"unignoreMouse\"), t || 1e3);\n },\n tempIgnoreMouse: function tempIgnoreMouse() {\n this.isIgnoringMouse = !0, this.delayUnignoreMouse();\n },\n unignoreMouse: function unignoreMouse() {\n this.isIgnoringMouse = !1;\n }\n },\n de = wt.extend(ae, {\n isHidden: !0,\n options: null,\n el: null,\n margin: 10,\n constructor: function constructor(t) {\n this.options = t || {};\n },\n show: function show() {\n this.isHidden && (this.el || this.render(), this.el.show(), this.position(), this.isHidden = !1, this.trigger(\"show\"));\n },\n hide: function hide() {\n this.isHidden || (this.el.hide(), this.isHidden = !0, this.trigger(\"hide\"));\n },\n render: function render() {\n var e = this,\n n = this.options;\n this.el = t('<div class=\"fc-popover\"/>').addClass(n.className || \"\").css({\n top: 0,\n left: 0\n }).append(n.content).appendTo(n.parentEl), this.el.on(\"click\", \".fc-close\", function () {\n e.hide();\n }), n.autoHide && this.listenTo(t(document), \"mousedown\", this.documentMousedown);\n },\n documentMousedown: function documentMousedown(e) {\n this.el && !t(e.target).closest(this.el).length && this.hide();\n },\n removeElement: function removeElement() {\n this.hide(), this.el && (this.el.remove(), this.el = null), this.stopListeningTo(t(document), \"mousedown\");\n },\n position: function position() {\n var e,\n n,\n i,\n r,\n s,\n o = this.options,\n l = this.el.offsetParent().offset(),\n a = this.el.outerWidth(),\n u = this.el.outerHeight(),\n d = t(window),\n h = c(this.el);\n r = o.top || 0, s = void 0 !== o.left ? o.left : void 0 !== o.right ? o.right - a : 0, h.is(window) || h.is(document) ? (h = d, e = 0, n = 0) : (i = h.offset(), e = i.top, n = i.left), e += d.scrollTop(), n += d.scrollLeft(), o.viewportConstrain !== !1 && (r = Math.min(r, e + h.outerHeight() - u - this.margin), r = Math.max(r, e + this.margin), s = Math.min(s, n + h.outerWidth() - a - this.margin), s = Math.max(s, n + this.margin)), this.el.css({\n top: r - l.top,\n left: s - l.left\n });\n },\n trigger: function trigger(t) {\n this.options[t] && this.options[t].apply(this, Array.prototype.slice.call(arguments, 1));\n }\n }),\n ce = jt.CoordCache = wt.extend({\n els: null,\n forcedOffsetParentEl: null,\n origin: null,\n boundingRect: null,\n isHorizontal: !1,\n isVertical: !1,\n lefts: null,\n rights: null,\n tops: null,\n bottoms: null,\n constructor: function constructor(e) {\n this.els = t(e.els), this.isHorizontal = e.isHorizontal, this.isVertical = e.isVertical, this.forcedOffsetParentEl = e.offsetParent ? t(e.offsetParent) : null;\n },\n build: function build() {\n var t = this.forcedOffsetParentEl || this.els.eq(0).offsetParent();\n this.origin = t.offset(), this.boundingRect = this.queryBoundingRect(), this.isHorizontal && this.buildElHorizontals(), this.isVertical && this.buildElVerticals();\n },\n clear: function clear() {\n this.origin = null, this.boundingRect = null, this.lefts = null, this.rights = null, this.tops = null, this.bottoms = null;\n },\n ensureBuilt: function ensureBuilt() {\n this.origin || this.build();\n },\n buildElHorizontals: function buildElHorizontals() {\n var e = [],\n n = [];\n this.els.each(function (i, r) {\n var s = t(r),\n o = s.offset().left,\n l = s.outerWidth();\n e.push(o), n.push(o + l);\n }), this.lefts = e, this.rights = n;\n },\n buildElVerticals: function buildElVerticals() {\n var e = [],\n n = [];\n this.els.each(function (i, r) {\n var s = t(r),\n o = s.offset().top,\n l = s.outerHeight();\n e.push(o), n.push(o + l);\n }), this.tops = e, this.bottoms = n;\n },\n getHorizontalIndex: function getHorizontalIndex(t) {\n this.ensureBuilt();\n var e,\n n = this.lefts,\n i = this.rights,\n r = n.length;\n for (e = 0; e < r; e++) if (t >= n[e] && t < i[e]) return e;\n },\n getVerticalIndex: function getVerticalIndex(t) {\n this.ensureBuilt();\n var e,\n n = this.tops,\n i = this.bottoms,\n r = n.length;\n for (e = 0; e < r; e++) if (t >= n[e] && t < i[e]) return e;\n },\n getLeftOffset: function getLeftOffset(t) {\n return this.ensureBuilt(), this.lefts[t];\n },\n getLeftPosition: function getLeftPosition(t) {\n return this.ensureBuilt(), this.lefts[t] - this.origin.left;\n },\n getRightOffset: function getRightOffset(t) {\n return this.ensureBuilt(), this.rights[t];\n },\n getRightPosition: function getRightPosition(t) {\n return this.ensureBuilt(), this.rights[t] - this.origin.left;\n },\n getWidth: function getWidth(t) {\n return this.ensureBuilt(), this.rights[t] - this.lefts[t];\n },\n getTopOffset: function getTopOffset(t) {\n return this.ensureBuilt(), this.tops[t];\n },\n getTopPosition: function getTopPosition(t) {\n return this.ensureBuilt(), this.tops[t] - this.origin.top;\n },\n getBottomOffset: function getBottomOffset(t) {\n return this.ensureBuilt(), this.bottoms[t];\n },\n getBottomPosition: function getBottomPosition(t) {\n return this.ensureBuilt(), this.bottoms[t] - this.origin.top;\n },\n getHeight: function getHeight(t) {\n return this.ensureBuilt(), this.bottoms[t] - this.tops[t];\n },\n queryBoundingRect: function queryBoundingRect() {\n var t = c(this.els.eq(0));\n if (!t.is(document)) return f(t);\n },\n isPointInBounds: function isPointInBounds(t, e) {\n return this.isLeftInBounds(t) && this.isTopInBounds(e);\n },\n isLeftInBounds: function isLeftInBounds(t) {\n return !this.boundingRect || t >= this.boundingRect.left && t < this.boundingRect.right;\n },\n isTopInBounds: function isTopInBounds(t) {\n return !this.boundingRect || t >= this.boundingRect.top && t < this.boundingRect.bottom;\n }\n }),\n he = jt.DragListener = wt.extend(ae, ue, {\n options: null,\n subjectEl: null,\n originX: null,\n originY: null,\n scrollEl: null,\n isInteracting: !1,\n isDistanceSurpassed: !1,\n isDelayEnded: !1,\n isDragging: !1,\n isTouch: !1,\n delay: null,\n delayTimeoutId: null,\n minDistance: null,\n handleTouchScrollProxy: null,\n constructor: function constructor(t) {\n this.options = t || {}, this.handleTouchScrollProxy = lt(this, \"handleTouchScroll\"), this.initMouseIgnoring(500);\n },\n startInteraction: function startInteraction(e, n) {\n var i = D(e);\n if (\"mousedown\" === e.type) {\n if (this.isIgnoringMouse) return;\n if (!S(e)) return;\n e.preventDefault();\n }\n this.isInteracting || (n = n || {}, this.delay = J(n.delay, this.options.delay, 0), this.minDistance = J(n.distance, this.options.distance, 0), this.subjectEl = this.options.subjectEl, this.isInteracting = !0, this.isTouch = i, this.isDelayEnded = !1, this.isDistanceSurpassed = !1, this.originX = w(e), this.originY = E(e), this.scrollEl = c(t(e.target)), this.bindHandlers(), this.initAutoScroll(), this.handleInteractionStart(e), this.startDelay(e), this.minDistance || this.handleDistanceSurpassed(e));\n },\n handleInteractionStart: function handleInteractionStart(t) {\n this.trigger(\"interactionStart\", t);\n },\n endInteraction: function endInteraction(t, e) {\n this.isInteracting && (this.endDrag(t), this.delayTimeoutId && (clearTimeout(this.delayTimeoutId), this.delayTimeoutId = null), this.destroyAutoScroll(), this.unbindHandlers(), this.isInteracting = !1, this.handleInteractionEnd(t, e), this.isTouch && this.tempIgnoreMouse());\n },\n handleInteractionEnd: function handleInteractionEnd(t, e) {\n this.trigger(\"interactionEnd\", t, e || !1);\n },\n bindHandlers: function bindHandlers() {\n var e = this,\n n = 1;\n this.isTouch ? (this.listenTo(t(document), {\n touchmove: this.handleTouchMove,\n touchend: this.endInteraction,\n touchcancel: this.endInteraction,\n touchstart: function touchstart(t) {\n n ? n-- : e.endInteraction(t, !0);\n }\n }), !H(this.handleTouchScrollProxy) && this.scrollEl && this.listenTo(this.scrollEl, \"scroll\", this.handleTouchScroll)) : this.listenTo(t(document), {\n mousemove: this.handleMouseMove,\n mouseup: this.endInteraction\n }), this.listenTo(t(document), {\n selectstart: C,\n contextmenu: C\n });\n },\n unbindHandlers: function unbindHandlers() {\n this.stopListeningTo(t(document)), T(this.handleTouchScrollProxy), this.scrollEl && this.stopListeningTo(this.scrollEl, \"scroll\");\n },\n startDrag: function startDrag(t, e) {\n this.startInteraction(t, e), this.isDragging || (this.isDragging = !0, this.handleDragStart(t));\n },\n handleDragStart: function handleDragStart(t) {\n this.trigger(\"dragStart\", t);\n },\n handleMove: function handleMove(t) {\n var e,\n n = w(t) - this.originX,\n i = E(t) - this.originY,\n r = this.minDistance;\n this.isDistanceSurpassed || (e = n * n + i * i, e >= r * r && this.handleDistanceSurpassed(t)), this.isDragging && this.handleDrag(n, i, t);\n },\n handleDrag: function handleDrag(t, e, n) {\n this.trigger(\"drag\", t, e, n), this.updateAutoScroll(n);\n },\n endDrag: function endDrag(t) {\n this.isDragging && (this.isDragging = !1, this.handleDragEnd(t));\n },\n handleDragEnd: function handleDragEnd(t) {\n this.trigger(\"dragEnd\", t);\n },\n startDelay: function startDelay(t) {\n var e = this;\n this.delay ? this.delayTimeoutId = setTimeout(function () {\n e.handleDelayEnd(t);\n }, this.delay) : this.handleDelayEnd(t);\n },\n handleDelayEnd: function handleDelayEnd(t) {\n this.isDelayEnded = !0, this.isDistanceSurpassed && this.startDrag(t);\n },\n handleDistanceSurpassed: function handleDistanceSurpassed(t) {\n this.isDistanceSurpassed = !0, this.isDelayEnded && this.startDrag(t);\n },\n handleTouchMove: function handleTouchMove(t) {\n this.isDragging && t.preventDefault(), this.handleMove(t);\n },\n handleMouseMove: function handleMouseMove(t) {\n this.handleMove(t);\n },\n handleTouchScroll: function handleTouchScroll(t) {\n this.isDragging || this.endInteraction(t, !0);\n },\n trigger: function trigger(t) {\n this.options[t] && this.options[t].apply(this, Array.prototype.slice.call(arguments, 1)), this[\"_\" + t] && this[\"_\" + t].apply(this, Array.prototype.slice.call(arguments, 1));\n }\n });\n he.mixin({\n isAutoScroll: !1,\n scrollBounds: null,\n scrollTopVel: null,\n scrollLeftVel: null,\n scrollIntervalId: null,\n scrollSensitivity: 30,\n scrollSpeed: 200,\n scrollIntervalMs: 50,\n initAutoScroll: function initAutoScroll() {\n var t = this.scrollEl;\n this.isAutoScroll = this.options.scroll && t && !t.is(window) && !t.is(document), this.isAutoScroll && this.listenTo(t, \"scroll\", at(this.handleDebouncedScroll, 100));\n },\n destroyAutoScroll: function destroyAutoScroll() {\n this.endAutoScroll(), this.isAutoScroll && this.stopListeningTo(this.scrollEl, \"scroll\");\n },\n computeScrollBounds: function computeScrollBounds() {\n this.isAutoScroll && (this.scrollBounds = h(this.scrollEl));\n },\n updateAutoScroll: function updateAutoScroll(t) {\n var e,\n n,\n i,\n r,\n s = this.scrollSensitivity,\n o = this.scrollBounds,\n l = 0,\n a = 0;\n o && (e = (s - (E(t) - o.top)) / s, n = (s - (o.bottom - E(t))) / s, i = (s - (w(t) - o.left)) / s, r = (s - (o.right - w(t))) / s, e >= 0 && e <= 1 ? l = e * this.scrollSpeed * -1 : n >= 0 && n <= 1 && (l = n * this.scrollSpeed), i >= 0 && i <= 1 ? a = i * this.scrollSpeed * -1 : r >= 0 && r <= 1 && (a = r * this.scrollSpeed)), this.setScrollVel(l, a);\n },\n setScrollVel: function setScrollVel(t, e) {\n this.scrollTopVel = t, this.scrollLeftVel = e, this.constrainScrollVel(), !this.scrollTopVel && !this.scrollLeftVel || this.scrollIntervalId || (this.scrollIntervalId = setInterval(lt(this, \"scrollIntervalFunc\"), this.scrollIntervalMs));\n },\n constrainScrollVel: function constrainScrollVel() {\n var t = this.scrollEl;\n this.scrollTopVel < 0 ? t.scrollTop() <= 0 && (this.scrollTopVel = 0) : this.scrollTopVel > 0 && t.scrollTop() + t[0].clientHeight >= t[0].scrollHeight && (this.scrollTopVel = 0), this.scrollLeftVel < 0 ? t.scrollLeft() <= 0 && (this.scrollLeftVel = 0) : this.scrollLeftVel > 0 && t.scrollLeft() + t[0].clientWidth >= t[0].scrollWidth && (this.scrollLeftVel = 0);\n },\n scrollIntervalFunc: function scrollIntervalFunc() {\n var t = this.scrollEl,\n e = this.scrollIntervalMs / 1e3;\n this.scrollTopVel && t.scrollTop(t.scrollTop() + this.scrollTopVel * e), this.scrollLeftVel && t.scrollLeft(t.scrollLeft() + this.scrollLeftVel * e), this.constrainScrollVel(), this.scrollTopVel || this.scrollLeftVel || this.endAutoScroll();\n },\n endAutoScroll: function endAutoScroll() {\n this.scrollIntervalId && (clearInterval(this.scrollIntervalId), this.scrollIntervalId = null, this.handleScrollEnd());\n },\n handleDebouncedScroll: function handleDebouncedScroll() {\n this.scrollIntervalId || this.handleScrollEnd();\n },\n handleScrollEnd: function handleScrollEnd() {}\n });\n var fe = he.extend({\n component: null,\n origHit: null,\n hit: null,\n coordAdjust: null,\n constructor: function constructor(t, e) {\n he.call(this, e), this.component = t;\n },\n handleInteractionStart: function handleInteractionStart(t) {\n var e,\n n,\n i,\n r = this.subjectEl;\n this.computeCoords(), t ? (n = {\n left: w(t),\n top: E(t)\n }, i = n, r && (e = h(r), i = R(i, e)), this.origHit = this.queryHit(i.left, i.top), r && this.options.subjectCenter && (this.origHit && (e = x(this.origHit, e) || e), i = I(e)), this.coordAdjust = k(i, n)) : (this.origHit = null, this.coordAdjust = null), he.prototype.handleInteractionStart.apply(this, arguments);\n },\n computeCoords: function computeCoords() {\n this.component.prepareHits(), this.computeScrollBounds();\n },\n handleDragStart: function handleDragStart(t) {\n var e;\n he.prototype.handleDragStart.apply(this, arguments), e = this.queryHit(w(t), E(t)), e && this.handleHitOver(e);\n },\n handleDrag: function handleDrag(t, e, n) {\n var i;\n he.prototype.handleDrag.apply(this, arguments), i = this.queryHit(w(n), E(n)), bt(i, this.hit) || (this.hit && this.handleHitOut(), i && this.handleHitOver(i));\n },\n handleDragEnd: function handleDragEnd() {\n this.handleHitDone(), he.prototype.handleDragEnd.apply(this, arguments);\n },\n handleHitOver: function handleHitOver(t) {\n var e = bt(t, this.origHit);\n this.hit = t, this.trigger(\"hitOver\", this.hit, e, this.origHit);\n },\n handleHitOut: function handleHitOut() {\n this.hit && (this.trigger(\"hitOut\", this.hit), this.handleHitDone(), this.hit = null);\n },\n handleHitDone: function handleHitDone() {\n this.hit && this.trigger(\"hitDone\", this.hit);\n },\n handleInteractionEnd: function handleInteractionEnd() {\n he.prototype.handleInteractionEnd.apply(this, arguments), this.origHit = null, this.hit = null, this.component.releaseHits();\n },\n handleScrollEnd: function handleScrollEnd() {\n he.prototype.handleScrollEnd.apply(this, arguments), this.computeCoords();\n },\n queryHit: function queryHit(t, e) {\n return this.coordAdjust && (t += this.coordAdjust.left, e += this.coordAdjust.top), this.component.queryHit(t, e);\n }\n }),\n ge = wt.extend(ae, {\n options: null,\n sourceEl: null,\n el: null,\n parentEl: null,\n top0: null,\n left0: null,\n y0: null,\n x0: null,\n topDelta: null,\n leftDelta: null,\n isFollowing: !1,\n isHidden: !1,\n isAnimating: !1,\n constructor: function constructor(e, n) {\n this.options = n = n || {}, this.sourceEl = e, this.parentEl = n.parentEl ? t(n.parentEl) : e.parent();\n },\n start: function start(e) {\n this.isFollowing || (this.isFollowing = !0, this.y0 = E(e), this.x0 = w(e), this.topDelta = 0, this.leftDelta = 0, this.isHidden || this.updatePosition(), D(e) ? this.listenTo(t(document), \"touchmove\", this.handleMove) : this.listenTo(t(document), \"mousemove\", this.handleMove));\n },\n stop: function stop(e, n) {\n function i() {\n r.isAnimating = !1, r.removeElement(), r.top0 = r.left0 = null, n && n();\n }\n var r = this,\n s = this.options.revertDuration;\n this.isFollowing && !this.isAnimating && (this.isFollowing = !1, this.stopListeningTo(t(document)), e && s && !this.isHidden ? (this.isAnimating = !0, this.el.animate({\n top: this.top0,\n left: this.left0\n }, {\n duration: s,\n complete: i\n })) : i());\n },\n getEl: function getEl() {\n var t = this.el;\n return t || (t = this.el = this.sourceEl.clone().addClass(this.options.additionalClass || \"\").css({\n position: \"absolute\",\n visibility: \"\",\n display: this.isHidden ? \"none\" : \"\",\n margin: 0,\n right: \"auto\",\n bottom: \"auto\",\n width: this.sourceEl.width(),\n height: this.sourceEl.height(),\n opacity: this.options.opacity || \"\",\n zIndex: this.options.zIndex\n }), t.addClass(\"fc-unselectable\"), t.appendTo(this.parentEl)), t;\n },\n removeElement: function removeElement() {\n this.el && (this.el.remove(), this.el = null);\n },\n updatePosition: function updatePosition() {\n var t, e;\n this.getEl(), null === this.top0 && (t = this.sourceEl.offset(), e = this.el.offsetParent().offset(), this.top0 = t.top - e.top, this.left0 = t.left - e.left), this.el.css({\n top: this.top0 + this.topDelta,\n left: this.left0 + this.leftDelta\n });\n },\n handleMove: function handleMove(t) {\n this.topDelta = E(t) - this.y0, this.leftDelta = w(t) - this.x0, this.isHidden || this.updatePosition();\n },\n hide: function hide() {\n this.isHidden || (this.isHidden = !0, this.el && this.el.hide());\n },\n show: function show() {\n this.isHidden && (this.isHidden = !1, this.updatePosition(), this.getEl().show());\n }\n }),\n pe = jt.Grid = wt.extend(ae, ue, {\n hasDayInteractions: !0,\n view: null,\n isRTL: null,\n start: null,\n end: null,\n el: null,\n elsByFill: null,\n eventTimeFormat: null,\n displayEventTime: null,\n displayEventEnd: null,\n minResizeDuration: null,\n largeUnit: null,\n dayDragListener: null,\n segDragListener: null,\n segResizeListener: null,\n externalDragListener: null,\n constructor: function constructor(t) {\n this.view = t, this.isRTL = t.opt(\"isRTL\"), this.elsByFill = {}, this.dayDragListener = this.buildDayDragListener(), this.initMouseIgnoring();\n },\n computeEventTimeFormat: function computeEventTimeFormat() {\n return this.view.opt(\"smallTimeFormat\");\n },\n computeDisplayEventTime: function computeDisplayEventTime() {\n return !0;\n },\n computeDisplayEventEnd: function computeDisplayEventEnd() {\n return !0;\n },\n setRange: function setRange(t) {\n this.start = t.start.clone(), this.end = t.end.clone(), this.rangeUpdated(), this.processRangeOptions();\n },\n rangeUpdated: function rangeUpdated() {},\n processRangeOptions: function processRangeOptions() {\n var t,\n e,\n n = this.view;\n this.eventTimeFormat = n.opt(\"eventTimeFormat\") || n.opt(\"timeFormat\") || this.computeEventTimeFormat(), t = n.opt(\"displayEventTime\"), null == t && (t = this.computeDisplayEventTime()), e = n.opt(\"displayEventEnd\"), null == e && (e = this.computeDisplayEventEnd()), this.displayEventTime = t, this.displayEventEnd = e;\n },\n spanToSegs: function spanToSegs(t) {},\n diffDates: function diffDates(t, e) {\n return this.largeUnit ? A(t, e, this.largeUnit) : N(t, e);\n },\n prepareHits: function prepareHits() {},\n releaseHits: function releaseHits() {},\n queryHit: function queryHit(t, e) {},\n getHitSpan: function getHitSpan(t) {},\n getHitEl: function getHitEl(t) {},\n setElement: function setElement(t) {\n this.el = t, this.hasDayInteractions && (b(t), this.bindDayHandler(\"touchstart\", this.dayTouchStart), this.bindDayHandler(\"mousedown\", this.dayMousedown)), this.bindSegHandlers(), this.bindGlobalHandlers();\n },\n bindDayHandler: function bindDayHandler(e, n) {\n var i = this;\n this.el.on(e, function (e) {\n if (!t(e.target).is(i.segSelector + \",\" + i.segSelector + \" *,.fc-more,a[data-goto]\")) return n.call(i, e);\n });\n },\n removeElement: function removeElement() {\n this.unbindGlobalHandlers(), this.clearDragListeners(), this.el.remove();\n },\n renderSkeleton: function renderSkeleton() {},\n renderDates: function renderDates() {},\n unrenderDates: function unrenderDates() {},\n bindGlobalHandlers: function bindGlobalHandlers() {\n this.listenTo(t(document), {\n dragstart: this.externalDragStart,\n sortstart: this.externalDragStart\n });\n },\n unbindGlobalHandlers: function unbindGlobalHandlers() {\n this.stopListeningTo(t(document));\n },\n dayMousedown: function dayMousedown(t) {\n this.isIgnoringMouse || this.dayDragListener.startInteraction(t, {});\n },\n dayTouchStart: function dayTouchStart(t) {\n var e = this.view;\n (e.isSelected || e.selectedEvent) && this.tempIgnoreMouse(), this.dayDragListener.startInteraction(t, {\n delay: this.view.opt(\"longPressDelay\")\n });\n },\n buildDayDragListener: function buildDayDragListener() {\n var t,\n e,\n n = this,\n i = this.view,\n r = i.opt(\"selectable\"),\n l = new fe(this, {\n scroll: i.opt(\"dragScroll\"),\n interactionStart: function interactionStart() {\n t = l.origHit, e = null;\n },\n dragStart: function dragStart() {\n i.unselect();\n },\n hitOver: function hitOver(i, o, l) {\n l && (o || (t = null), r && (e = n.computeSelection(n.getHitSpan(l), n.getHitSpan(i)), e ? n.renderSelection(e) : e === !1 && s()));\n },\n hitOut: function hitOut() {\n t = null, e = null, n.unrenderSelection();\n },\n hitDone: function hitDone() {\n o();\n },\n interactionEnd: function interactionEnd(r, s) {\n s || (t && !n.isIgnoringMouse && i.triggerDayClick(n.getHitSpan(t), n.getHitEl(t), r), e && i.reportSelection(e, r));\n }\n });\n return l;\n },\n clearDragListeners: function clearDragListeners() {\n this.dayDragListener.endInteraction(), this.segDragListener && this.segDragListener.endInteraction(), this.segResizeListener && this.segResizeListener.endInteraction(), this.externalDragListener && this.externalDragListener.endInteraction();\n },\n renderEventLocationHelper: function renderEventLocationHelper(t, e) {\n var n = this.fabricateHelperEvent(t, e);\n return this.renderHelper(n, e);\n },\n fabricateHelperEvent: function fabricateHelperEvent(t, e) {\n var n = e ? Z(e.event) : {};\n return n.start = t.start.clone(), n.end = t.end ? t.end.clone() : null, n.allDay = null, this.view.calendar.normalizeEventDates(n), n.className = (n.className || []).concat(\"fc-helper\"), e || (n.editable = !1), n;\n },\n renderHelper: function renderHelper(t, e) {},\n unrenderHelper: function unrenderHelper() {},\n renderSelection: function renderSelection(t) {\n this.renderHighlight(t);\n },\n unrenderSelection: function unrenderSelection() {\n this.unrenderHighlight();\n },\n computeSelection: function computeSelection(t, e) {\n var n = this.computeSelectionSpan(t, e);\n return !(n && !this.view.calendar.isSelectionSpanAllowed(n)) && n;\n },\n computeSelectionSpan: function computeSelectionSpan(t, e) {\n var n = [t.start, t.end, e.start, e.end];\n return n.sort(st), {\n start: n[0].clone(),\n end: n[3].clone()\n };\n },\n renderHighlight: function renderHighlight(t) {\n this.renderFill(\"highlight\", this.spanToSegs(t));\n },\n unrenderHighlight: function unrenderHighlight() {\n this.unrenderFill(\"highlight\");\n },\n highlightSegClasses: function highlightSegClasses() {\n return [\"fc-highlight\"];\n },\n renderBusinessHours: function renderBusinessHours() {},\n unrenderBusinessHours: function unrenderBusinessHours() {},\n getNowIndicatorUnit: function getNowIndicatorUnit() {},\n renderNowIndicator: function renderNowIndicator(t) {},\n unrenderNowIndicator: function unrenderNowIndicator() {},\n renderFill: function renderFill(t, e) {},\n unrenderFill: function unrenderFill(t) {\n var e = this.elsByFill[t];\n e && (e.remove(), delete this.elsByFill[t]);\n },\n renderFillSegEls: function renderFillSegEls(e, n) {\n var i,\n r = this,\n s = this[e + \"SegEl\"],\n o = \"\",\n l = [];\n if (n.length) {\n for (i = 0; i < n.length; i++) o += this.fillSegHtml(e, n[i]);\n t(o).each(function (e, i) {\n var o = n[e],\n a = t(i);\n s && (a = s.call(r, o, a)), a && (a = t(a), a.is(r.fillSegTag) && (o.el = a, l.push(o)));\n });\n }\n return l;\n },\n fillSegTag: \"div\",\n fillSegHtml: function fillSegHtml(t, e) {\n var n = this[t + \"SegClasses\"],\n i = this[t + \"SegCss\"],\n r = n ? n.call(this, e) : [],\n s = nt(i ? i.call(this, e) : {});\n return \"<\" + this.fillSegTag + (r.length ? ' class=\"' + r.join(\" \") + '\"' : \"\") + (s ? ' style=\"' + s + '\"' : \"\") + \" />\";\n },\n getDayClasses: function getDayClasses(t) {\n var e = this.view,\n n = e.calendar.getNow(),\n i = [\"fc-\" + $t[t.day()]];\n return 1 == e.intervalDuration.as(\"months\") && t.month() != e.intervalStart.month() && i.push(\"fc-other-month\"), t.isSame(n, \"day\") ? i.push(\"fc-today\", e.highlightStateClass) : t < n ? i.push(\"fc-past\") : i.push(\"fc-future\"), i;\n }\n });\n pe.mixin({\n segSelector: \".fc-event-container > *\",\n mousedOverSeg: null,\n isDraggingSeg: !1,\n isResizingSeg: !1,\n isDraggingExternal: !1,\n segs: null,\n renderEvents: function renderEvents(t) {\n var e,\n n = [],\n i = [];\n for (e = 0; e < t.length; e++) (Tt(t[e]) ? n : i).push(t[e]);\n this.segs = [].concat(this.renderBgEvents(n), this.renderFgEvents(i));\n },\n renderBgEvents: function renderBgEvents(t) {\n var e = this.eventsToSegs(t);\n return this.renderBgSegs(e) || e;\n },\n renderFgEvents: function renderFgEvents(t) {\n var e = this.eventsToSegs(t);\n return this.renderFgSegs(e) || e;\n },\n unrenderEvents: function unrenderEvents() {\n this.handleSegMouseout(), this.clearDragListeners(), this.unrenderFgSegs(), this.unrenderBgSegs(), this.segs = null;\n },\n getEventSegs: function getEventSegs() {\n return this.segs || [];\n },\n renderFgSegs: function renderFgSegs(t) {},\n unrenderFgSegs: function unrenderFgSegs() {},\n renderFgSegEls: function renderFgSegEls(e, n) {\n var i,\n r = this.view,\n s = \"\",\n o = [];\n if (e.length) {\n for (i = 0; i < e.length; i++) s += this.fgSegHtml(e[i], n);\n t(s).each(function (n, i) {\n var s = e[n],\n l = r.resolveEventEl(s.event, t(i));\n l && (l.data(\"fc-seg\", s), s.el = l, o.push(s));\n });\n }\n return o;\n },\n fgSegHtml: function fgSegHtml(t, e) {},\n renderBgSegs: function renderBgSegs(t) {\n return this.renderFill(\"bgEvent\", t);\n },\n unrenderBgSegs: function unrenderBgSegs() {\n this.unrenderFill(\"bgEvent\");\n },\n bgEventSegEl: function bgEventSegEl(t, e) {\n return this.view.resolveEventEl(t.event, e);\n },\n bgEventSegClasses: function bgEventSegClasses(t) {\n var e = t.event,\n n = e.source || {};\n return [\"fc-bgevent\"].concat(e.className, n.className || []);\n },\n bgEventSegCss: function bgEventSegCss(t) {\n return {\n \"background-color\": this.getSegSkinCss(t)[\"background-color\"]\n };\n },\n businessHoursSegClasses: function businessHoursSegClasses(t) {\n return [\"fc-nonbusiness\", \"fc-bgevent\"];\n },\n buildBusinessHourSegs: function buildBusinessHourSegs(e) {\n var n = this.view.calendar.getCurrentBusinessHourEvents(e);\n return !n.length && this.view.calendar.options.businessHours && (n = [t.extend({}, Re, {\n start: this.view.end,\n end: this.view.end,\n dow: null\n })]), this.eventsToSegs(n);\n },\n bindSegHandlers: function bindSegHandlers() {\n this.bindSegHandlersToEl(this.el);\n },\n bindSegHandlersToEl: function bindSegHandlersToEl(t) {\n this.bindSegHandlerToEl(t, \"touchstart\", this.handleSegTouchStart), this.bindSegHandlerToEl(t, \"touchend\", this.handleSegTouchEnd), this.bindSegHandlerToEl(t, \"mouseenter\", this.handleSegMouseover), this.bindSegHandlerToEl(t, \"mouseleave\", this.handleSegMouseout), this.bindSegHandlerToEl(t, \"mousedown\", this.handleSegMousedown), this.bindSegHandlerToEl(t, \"click\", this.handleSegClick);\n },\n bindSegHandlerToEl: function bindSegHandlerToEl(e, n, i) {\n var r = this;\n e.on(n, this.segSelector, function (e) {\n var n = t(this).data(\"fc-seg\");\n if (n && !r.isDraggingSeg && !r.isResizingSeg) return i.call(r, n, e);\n });\n },\n handleSegClick: function handleSegClick(t, e) {\n var n = this.view.trigger(\"eventClick\", t.el[0], t.event, e);\n n === !1 && e.preventDefault();\n },\n handleSegMouseover: function handleSegMouseover(t, e) {\n this.isIgnoringMouse || this.mousedOverSeg || (this.mousedOverSeg = t, this.view.isEventResizable(t.event) && t.el.addClass(\"fc-allow-mouse-resize\"), this.view.trigger(\"eventMouseover\", t.el[0], t.event, e));\n },\n handleSegMouseout: function handleSegMouseout(t, e) {\n e = e || {}, this.mousedOverSeg && (t = t || this.mousedOverSeg, this.mousedOverSeg = null, this.view.isEventResizable(t.event) && t.el.removeClass(\"fc-allow-mouse-resize\"), this.view.trigger(\"eventMouseout\", t.el[0], t.event, e));\n },\n handleSegMousedown: function handleSegMousedown(t, e) {\n var n = this.startSegResize(t, e, {\n distance: 5\n });\n !n && this.view.isEventDraggable(t.event) && this.buildSegDragListener(t).startInteraction(e, {\n distance: 5\n });\n },\n handleSegTouchStart: function handleSegTouchStart(t, e) {\n var n,\n i = this.view,\n r = t.event,\n s = i.isEventSelected(r),\n o = i.isEventDraggable(r),\n l = i.isEventResizable(r),\n a = !1;\n s && l && (a = this.startSegResize(t, e)), a || !o && !l || (n = o ? this.buildSegDragListener(t) : this.buildSegSelectListener(t), n.startInteraction(e, {\n delay: s ? 0 : this.view.opt(\"longPressDelay\")\n })), this.tempIgnoreMouse();\n },\n handleSegTouchEnd: function handleSegTouchEnd(t, e) {\n this.tempIgnoreMouse();\n },\n startSegResize: function startSegResize(e, n, i) {\n return !!t(n.target).is(\".fc-resizer\") && (this.buildSegResizeListener(e, t(n.target).is(\".fc-start-resizer\")).startInteraction(n, i), !0);\n },\n buildSegDragListener: function buildSegDragListener(t) {\n var e,\n n,\n i,\n r = this,\n l = this.view,\n a = l.calendar,\n u = t.el,\n d = t.event;\n if (this.segDragListener) return this.segDragListener;\n var c = this.segDragListener = new fe(l, {\n scroll: l.opt(\"dragScroll\"),\n subjectEl: u,\n subjectCenter: !0,\n interactionStart: function interactionStart(i) {\n t.component = r, e = !1, n = new ge(t.el, {\n additionalClass: \"fc-dragging\",\n parentEl: l.el,\n opacity: c.isTouch ? null : l.opt(\"dragOpacity\"),\n revertDuration: l.opt(\"dragRevertDuration\"),\n zIndex: 2\n }), n.hide(), n.start(i);\n },\n dragStart: function dragStart(n) {\n c.isTouch && !l.isEventSelected(d) && l.selectEvent(d), e = !0, r.handleSegMouseout(t, n), r.segDragStart(t, n), l.hideEvent(d);\n },\n hitOver: function hitOver(e, o, u) {\n var h;\n t.hit && (u = t.hit), i = r.computeEventDrop(u.component.getHitSpan(u), e.component.getHitSpan(e), d), i && !a.isEventSpanAllowed(r.eventToSpan(i), d) && (s(), i = null), i && (h = l.renderDrag(i, t)) ? (h.addClass(\"fc-dragging\"), c.isTouch || r.applyDragOpacity(h), n.hide()) : n.show(), o && (i = null);\n },\n hitOut: function hitOut() {\n l.unrenderDrag(), n.show(), i = null;\n },\n hitDone: function hitDone() {\n o();\n },\n interactionEnd: function interactionEnd(s) {\n delete t.component, n.stop(!i, function () {\n e && (l.unrenderDrag(), l.showEvent(d), r.segDragStop(t, s)), i && l.reportEventDrop(d, i, this.largeUnit, u, s);\n }), r.segDragListener = null;\n }\n });\n return c;\n },\n buildSegSelectListener: function buildSegSelectListener(t) {\n var e = this,\n n = this.view,\n i = t.event;\n if (this.segDragListener) return this.segDragListener;\n var r = this.segDragListener = new he({\n dragStart: function dragStart(t) {\n r.isTouch && !n.isEventSelected(i) && n.selectEvent(i);\n },\n interactionEnd: function interactionEnd(t) {\n e.segDragListener = null;\n }\n });\n return r;\n },\n segDragStart: function segDragStart(t, e) {\n this.isDraggingSeg = !0, this.view.trigger(\"eventDragStart\", t.el[0], t.event, e, {});\n },\n segDragStop: function segDragStop(t, e) {\n this.isDraggingSeg = !1, this.view.trigger(\"eventDragStop\", t.el[0], t.event, e, {});\n },\n computeEventDrop: function computeEventDrop(t, e, n) {\n var i,\n r,\n s = this.view.calendar,\n o = t.start,\n l = e.start;\n return o.hasTime() === l.hasTime() ? (i = this.diffDates(l, o), n.allDay && W(i) ? (r = {\n start: n.start.clone(),\n end: s.getEventEnd(n),\n allDay: !1\n }, s.normalizeEventTimes(r)) : r = Ht(n), r.start.add(i), r.end && r.end.add(i)) : r = {\n start: l.clone(),\n end: null,\n allDay: !l.hasTime()\n }, r;\n },\n applyDragOpacity: function applyDragOpacity(t) {\n var e = this.view.opt(\"dragOpacity\");\n null != e && t.css(\"opacity\", e);\n },\n externalDragStart: function externalDragStart(e, n) {\n var i,\n r,\n s = this.view;\n s.opt(\"droppable\") && (i = t((n ? n.item : null) || e.target), r = s.opt(\"dropAccept\"), (t.isFunction(r) ? r.call(i[0], i) : i.is(r)) && (this.isDraggingExternal || this.listenToExternalDrag(i, e, n)));\n },\n listenToExternalDrag: function listenToExternalDrag(t, e, n) {\n var i,\n r = this,\n l = this.view.calendar,\n a = Mt(t),\n u = r.externalDragListener = new fe(this, {\n interactionStart: function interactionStart() {\n r.isDraggingExternal = !0;\n },\n hitOver: function hitOver(t) {\n i = r.computeExternalDrop(t.component.getHitSpan(t), a), i && !l.isExternalSpanAllowed(r.eventToSpan(i), i, a.eventProps) && (s(), i = null), i && r.renderDrag(i);\n },\n hitOut: function hitOut() {\n i = null;\n },\n hitDone: function hitDone() {\n o(), r.unrenderDrag();\n },\n interactionEnd: function interactionEnd(e) {\n i && r.view.reportExternalDrop(a, i, t, e, n), r.isDraggingExternal = !1, r.externalDragListener = null;\n }\n });\n u.startDrag(e);\n },\n computeExternalDrop: function computeExternalDrop(t, e) {\n var n = this.view.calendar,\n i = {\n start: n.applyTimezone(t.start),\n end: null\n };\n return e.startTime && !i.start.hasTime() && i.start.time(e.startTime), e.duration && (i.end = i.start.clone().add(e.duration)), i;\n },\n renderDrag: function renderDrag(t, e) {},\n unrenderDrag: function unrenderDrag() {},\n buildSegResizeListener: function buildSegResizeListener(t, e) {\n var n,\n i,\n r = this,\n l = this.view,\n a = l.calendar,\n u = t.el,\n d = t.event,\n c = a.getEventEnd(d),\n h = this.segResizeListener = new fe(this, {\n scroll: l.opt(\"dragScroll\"),\n subjectEl: u,\n interactionStart: function interactionStart() {\n n = !1;\n },\n dragStart: function dragStart(e) {\n n = !0, r.handleSegMouseout(t, e), r.segResizeStart(t, e);\n },\n hitOver: function hitOver(n, o, u) {\n var h = r.getHitSpan(u),\n f = r.getHitSpan(n);\n i = e ? r.computeEventStartResize(h, f, d) : r.computeEventEndResize(h, f, d), i && (a.isEventSpanAllowed(r.eventToSpan(i), d) ? i.start.isSame(d.start.clone().stripZone()) && i.end.isSame(c.clone().stripZone()) && (i = null) : (s(), i = null)), i && (l.hideEvent(d), r.renderEventResize(i, t));\n },\n hitOut: function hitOut() {\n i = null;\n },\n hitDone: function hitDone() {\n r.unrenderEventResize(), l.showEvent(d), o();\n },\n interactionEnd: function interactionEnd(e) {\n n && r.segResizeStop(t, e), i && l.reportEventResize(d, i, this.largeUnit, u, e), r.segResizeListener = null;\n }\n });\n return h;\n },\n segResizeStart: function segResizeStart(t, e) {\n this.isResizingSeg = !0, this.view.trigger(\"eventResizeStart\", t.el[0], t.event, e, {});\n },\n segResizeStop: function segResizeStop(t, e) {\n this.isResizingSeg = !1, this.view.trigger(\"eventResizeStop\", t.el[0], t.event, e, {});\n },\n computeEventStartResize: function computeEventStartResize(t, e, n) {\n return this.computeEventResize(\"start\", t, e, n);\n },\n computeEventEndResize: function computeEventEndResize(t, e, n) {\n return this.computeEventResize(\"end\", t, e, n);\n },\n computeEventResize: function computeEventResize(t, e, n, i) {\n var r,\n s,\n o = this.view.calendar,\n l = this.diffDates(n[t], e[t]);\n return r = {\n start: i.start.clone(),\n end: o.getEventEnd(i),\n allDay: i.allDay\n }, r.allDay && W(l) && (r.allDay = !1, o.normalizeEventTimes(r)), r[t].add(l), r.start.isBefore(r.end) || (s = this.minResizeDuration || (i.allDay ? o.defaultAllDayEventDuration : o.defaultTimedEventDuration), \"start\" == t ? r.start = r.end.clone().subtract(s) : r.end = r.start.clone().add(s)), r;\n },\n renderEventResize: function renderEventResize(t, e) {},\n unrenderEventResize: function unrenderEventResize() {},\n getEventTimeText: function getEventTimeText(t, e, n) {\n return null == e && (e = this.eventTimeFormat), null == n && (n = this.displayEventEnd), this.displayEventTime && t.start.hasTime() ? n && t.end ? this.view.formatRange(t, e) : t.start.format(e) : \"\";\n },\n getSegClasses: function getSegClasses(t, e, n) {\n var i = this.view,\n r = [\"fc-event\", t.isStart ? \"fc-start\" : \"fc-not-start\", t.isEnd ? \"fc-end\" : \"fc-not-end\"].concat(this.getSegCustomClasses(t));\n return e && r.push(\"fc-draggable\"), n && r.push(\"fc-resizable\"), i.isEventSelected(t.event) && r.push(\"fc-selected\"), r;\n },\n getSegCustomClasses: function getSegCustomClasses(t) {\n var e = t.event;\n return [].concat(e.className, e.source ? e.source.className : []);\n },\n getSegSkinCss: function getSegSkinCss(t) {\n return {\n \"background-color\": this.getSegBackgroundColor(t),\n \"border-color\": this.getSegBorderColor(t),\n color: this.getSegTextColor(t)\n };\n },\n getSegBackgroundColor: function getSegBackgroundColor(t) {\n return t.event.backgroundColor || t.event.color || this.getSegDefaultBackgroundColor(t);\n },\n getSegDefaultBackgroundColor: function getSegDefaultBackgroundColor(t) {\n var e = t.event.source || {};\n return e.backgroundColor || e.color || this.view.opt(\"eventBackgroundColor\") || this.view.opt(\"eventColor\");\n },\n getSegBorderColor: function getSegBorderColor(t) {\n return t.event.borderColor || t.event.color || this.getSegDefaultBorderColor(t);\n },\n getSegDefaultBorderColor: function getSegDefaultBorderColor(t) {\n var e = t.event.source || {};\n return e.borderColor || e.color || this.view.opt(\"eventBorderColor\") || this.view.opt(\"eventColor\");\n },\n getSegTextColor: function getSegTextColor(t) {\n return t.event.textColor || this.getSegDefaultTextColor(t);\n },\n getSegDefaultTextColor: function getSegDefaultTextColor(t) {\n var e = t.event.source || {};\n return e.textColor || this.view.opt(\"eventTextColor\");\n },\n eventToSegs: function eventToSegs(t) {\n return this.eventsToSegs([t]);\n },\n eventToSpan: function eventToSpan(t) {\n return this.eventToSpans(t)[0];\n },\n eventToSpans: function eventToSpans(t) {\n var e = this.eventToRange(t);\n return this.eventRangeToSpans(e, t);\n },\n eventsToSegs: function eventsToSegs(e, n) {\n var i = this,\n r = It(e),\n s = [];\n return t.each(r, function (t, e) {\n var r,\n o = [];\n for (r = 0; r < e.length; r++) o.push(i.eventToRange(e[r]));\n if (xt(e[0])) for (o = i.invertRanges(o), r = 0; r < o.length; r++) s.push.apply(s, i.eventRangeToSegs(o[r], e[0], n));else for (r = 0; r < o.length; r++) s.push.apply(s, i.eventRangeToSegs(o[r], e[r], n));\n }), s;\n },\n eventToRange: function eventToRange(t) {\n var e = this.view.calendar,\n n = t.start.clone().stripZone(),\n i = (t.end ? t.end.clone() : e.getDefaultEventEnd(null != t.allDay ? t.allDay : !t.start.hasTime(), t.start)).stripZone();\n return e.localizeMoment(n), e.localizeMoment(i), {\n start: n,\n end: i\n };\n },\n eventRangeToSegs: function eventRangeToSegs(t, e, n) {\n var i,\n r = this.eventRangeToSpans(t, e),\n s = [];\n for (i = 0; i < r.length; i++) s.push.apply(s, this.eventSpanToSegs(r[i], e, n));\n return s;\n },\n eventRangeToSpans: function eventRangeToSpans(e, n) {\n return [t.extend({}, e)];\n },\n eventSpanToSegs: function eventSpanToSegs(t, e, n) {\n var i,\n r,\n s = n ? n(t) : this.spanToSegs(t);\n for (i = 0; i < s.length; i++) r = s[i], r.event = e, r.eventStartMS = +t.start, r.eventDurationMS = t.end - t.start;\n return s;\n },\n invertRanges: function invertRanges(t) {\n var e,\n n,\n i = this.view,\n r = i.start.clone(),\n s = i.end.clone(),\n o = [],\n l = r;\n for (t.sort(kt), e = 0; e < t.length; e++) n = t[e], n.start > l && o.push({\n start: l,\n end: n.start\n }), l = n.end;\n return l < s && o.push({\n start: l,\n end: s\n }), o;\n },\n sortEventSegs: function sortEventSegs(t) {\n t.sort(lt(this, \"compareEventSegs\"));\n },\n compareEventSegs: function compareEventSegs(t, e) {\n return t.eventStartMS - e.eventStartMS || e.eventDurationMS - t.eventDurationMS || e.event.allDay - t.event.allDay || L(t.event, e.event, this.view.eventOrderSpecs);\n }\n }), jt.pluckEventDateProps = Ht, jt.isBgEvent = Tt, jt.dataAttrPrefix = \"\";\n var ve = jt.DayTableMixin = {\n breakOnWeeks: !1,\n dayDates: null,\n dayIndices: null,\n daysPerRow: null,\n rowCnt: null,\n colCnt: null,\n colHeadFormat: null,\n updateDayTable: function updateDayTable() {\n for (var t, e, n, i = this.view, r = this.start.clone(), s = -1, o = [], l = []; r.isBefore(this.end);) i.isHiddenDay(r) ? o.push(s + .5) : (s++, o.push(s), l.push(r.clone())), r.add(1, \"days\");\n if (this.breakOnWeeks) {\n for (e = l[0].day(), t = 1; t < l.length && l[t].day() != e; t++);\n n = Math.ceil(l.length / t);\n } else n = 1, t = l.length;\n this.dayDates = l, this.dayIndices = o, this.daysPerRow = t, this.rowCnt = n, this.updateDayTableCols();\n },\n updateDayTableCols: function updateDayTableCols() {\n this.colCnt = this.computeColCnt(), this.colHeadFormat = this.view.opt(\"columnFormat\") || this.computeColHeadFormat();\n },\n computeColCnt: function computeColCnt() {\n return this.daysPerRow;\n },\n getCellDate: function getCellDate(t, e) {\n return this.dayDates[this.getCellDayIndex(t, e)].clone();\n },\n getCellRange: function getCellRange(t, e) {\n var n = this.getCellDate(t, e),\n i = n.clone().add(1, \"days\");\n return {\n start: n,\n end: i\n };\n },\n getCellDayIndex: function getCellDayIndex(t, e) {\n return t * this.daysPerRow + this.getColDayIndex(e);\n },\n getColDayIndex: function getColDayIndex(t) {\n return this.isRTL ? this.colCnt - 1 - t : t;\n },\n getDateDayIndex: function getDateDayIndex(t) {\n var e = this.dayIndices,\n n = t.diff(this.start, \"days\");\n return n < 0 ? e[0] - 1 : n >= e.length ? e[e.length - 1] + 1 : e[n];\n },\n computeColHeadFormat: function computeColHeadFormat() {\n return this.rowCnt > 1 || this.colCnt > 10 ? \"ddd\" : this.colCnt > 1 ? this.view.opt(\"dayOfMonthFormat\") : \"dddd\";\n },\n sliceRangeByRow: function sliceRangeByRow(t) {\n var e,\n n,\n i,\n r,\n s,\n o = this.daysPerRow,\n l = this.view.computeDayRange(t),\n a = this.getDateDayIndex(l.start),\n u = this.getDateDayIndex(l.end.clone().subtract(1, \"days\")),\n d = [];\n for (e = 0; e < this.rowCnt; e++) n = e * o, i = n + o - 1, r = Math.max(a, n), s = Math.min(u, i), r = Math.ceil(r), s = Math.floor(s), r <= s && d.push({\n row: e,\n firstRowDayIndex: r - n,\n lastRowDayIndex: s - n,\n isStart: r === a,\n isEnd: s === u\n });\n return d;\n },\n sliceRangeByDay: function sliceRangeByDay(t) {\n var e,\n n,\n i,\n r,\n s,\n o,\n l = this.daysPerRow,\n a = this.view.computeDayRange(t),\n u = this.getDateDayIndex(a.start),\n d = this.getDateDayIndex(a.end.clone().subtract(1, \"days\")),\n c = [];\n for (e = 0; e < this.rowCnt; e++) for (n = e * l, i = n + l - 1, r = n; r <= i; r++) s = Math.max(u, r), o = Math.min(d, r), s = Math.ceil(s), o = Math.floor(o), s <= o && c.push({\n row: e,\n firstRowDayIndex: s - n,\n lastRowDayIndex: o - n,\n isStart: s === u,\n isEnd: o === d\n });\n return c;\n },\n renderHeadHtml: function renderHeadHtml() {\n var t = this.view;\n return '<div class=\"fc-row ' + t.widgetHeaderClass + '\"><table><thead>' + this.renderHeadTrHtml() + \"</thead></table></div>\";\n },\n renderHeadIntroHtml: function renderHeadIntroHtml() {\n return this.renderIntroHtml();\n },\n renderHeadTrHtml: function renderHeadTrHtml() {\n return \"<tr>\" + (this.isRTL ? \"\" : this.renderHeadIntroHtml()) + this.renderHeadDateCellsHtml() + (this.isRTL ? this.renderHeadIntroHtml() : \"\") + \"</tr>\";\n },\n renderHeadDateCellsHtml: function renderHeadDateCellsHtml() {\n var t,\n e,\n n = [];\n for (t = 0; t < this.colCnt; t++) e = this.getCellDate(0, t), n.push(this.renderHeadDateCellHtml(e));\n return n.join(\"\");\n },\n renderHeadDateCellHtml: function renderHeadDateCellHtml(t, e, n) {\n var i = this.view;\n return '<th class=\"fc-day-header ' + i.widgetHeaderClass + \" fc-\" + $t[t.day()] + '\"' + (1 === this.rowCnt ? ' data-date=\"' + t.format(\"YYYY-MM-DD\") + '\"' : \"\") + (e > 1 ? ' colspan=\"' + e + '\"' : \"\") + (n ? \" \" + n : \"\") + \">\" + i.buildGotoAnchorHtml({\n date: t,\n forceOff: this.rowCnt > 1 || 1 === this.colCnt\n }, tt(t.format(this.colHeadFormat))) + \"</th>\";\n },\n renderBgTrHtml: function renderBgTrHtml(t) {\n return \"<tr>\" + (this.isRTL ? \"\" : this.renderBgIntroHtml(t)) + this.renderBgCellsHtml(t) + (this.isRTL ? this.renderBgIntroHtml(t) : \"\") + \"</tr>\";\n },\n renderBgIntroHtml: function renderBgIntroHtml(t) {\n return this.renderIntroHtml();\n },\n renderBgCellsHtml: function renderBgCellsHtml(t) {\n var e,\n n,\n i = [];\n for (e = 0; e < this.colCnt; e++) n = this.getCellDate(t, e), i.push(this.renderBgCellHtml(n));\n return i.join(\"\");\n },\n renderBgCellHtml: function renderBgCellHtml(t, e) {\n var n = this.view,\n i = this.getDayClasses(t);\n return i.unshift(\"fc-day\", n.widgetContentClass), '<td class=\"' + i.join(\" \") + '\" data-date=\"' + t.format(\"YYYY-MM-DD\") + '\"' + (e ? \" \" + e : \"\") + \"></td>\";\n },\n renderIntroHtml: function renderIntroHtml() {},\n bookendCells: function bookendCells(t) {\n var e = this.renderIntroHtml();\n e && (this.isRTL ? t.append(e) : t.prepend(e));\n }\n },\n me = jt.DayGrid = pe.extend(ve, {\n numbersVisible: !1,\n bottomCoordPadding: 0,\n rowEls: null,\n cellEls: null,\n helperEls: null,\n rowCoordCache: null,\n colCoordCache: null,\n renderDates: function renderDates(t) {\n var e,\n n,\n i = this.view,\n r = this.rowCnt,\n s = this.colCnt,\n o = \"\";\n for (e = 0; e < r; e++) o += this.renderDayRowHtml(e, t);\n for (this.el.html(o), this.rowEls = this.el.find(\".fc-row\"), this.cellEls = this.el.find(\".fc-day\"), this.rowCoordCache = new ce({\n els: this.rowEls,\n isVertical: !0\n }), this.colCoordCache = new ce({\n els: this.cellEls.slice(0, this.colCnt),\n isHorizontal: !0\n }), e = 0; e < r; e++) for (n = 0; n < s; n++) i.trigger(\"dayRender\", null, this.getCellDate(e, n), this.getCellEl(e, n));\n },\n unrenderDates: function unrenderDates() {\n this.removeSegPopover();\n },\n renderBusinessHours: function renderBusinessHours() {\n var t = this.buildBusinessHourSegs(!0);\n this.renderFill(\"businessHours\", t, \"bgevent\");\n },\n unrenderBusinessHours: function unrenderBusinessHours() {\n this.unrenderFill(\"businessHours\");\n },\n renderDayRowHtml: function renderDayRowHtml(t, e) {\n var n = this.view,\n i = [\"fc-row\", \"fc-week\", n.widgetContentClass];\n return e && i.push(\"fc-rigid\"), '<div class=\"' + i.join(\" \") + '\"><div class=\"fc-bg\"><table>' + this.renderBgTrHtml(t) + '</table></div><div class=\"fc-content-skeleton\"><table>' + (this.numbersVisible ? \"<thead>\" + this.renderNumberTrHtml(t) + \"</thead>\" : \"\") + \"</table></div></div>\";\n },\n renderNumberTrHtml: function renderNumberTrHtml(t) {\n return \"<tr>\" + (this.isRTL ? \"\" : this.renderNumberIntroHtml(t)) + this.renderNumberCellsHtml(t) + (this.isRTL ? this.renderNumberIntroHtml(t) : \"\") + \"</tr>\";\n },\n renderNumberIntroHtml: function renderNumberIntroHtml(t) {\n return this.renderIntroHtml();\n },\n renderNumberCellsHtml: function renderNumberCellsHtml(t) {\n var e,\n n,\n i = [];\n for (e = 0; e < this.colCnt; e++) n = this.getCellDate(t, e), i.push(this.renderNumberCellHtml(n));\n return i.join(\"\");\n },\n renderNumberCellHtml: function renderNumberCellHtml(t) {\n var e,\n n,\n i = \"\";\n return this.view.dayNumbersVisible || this.view.cellWeekNumbersVisible ? (e = this.getDayClasses(t), e.unshift(\"fc-day-top\"), this.view.cellWeekNumbersVisible && (n = \"ISO\" === t._locale._fullCalendar_weekCalc ? 1 : t._locale.firstDayOfWeek()), i += '<td class=\"' + e.join(\" \") + '\" data-date=\"' + t.format() + '\">', this.view.cellWeekNumbersVisible && t.day() == n && (i += this.view.buildGotoAnchorHtml({\n date: t,\n type: \"week\"\n }, {\n \"class\": \"fc-week-number\"\n }, t.format(\"w\"))), this.view.dayNumbersVisible && (i += this.view.buildGotoAnchorHtml(t, {\n \"class\": \"fc-day-number\"\n }, t.date())), i += \"</td>\") : \"<td/>\";\n },\n computeEventTimeFormat: function computeEventTimeFormat() {\n return this.view.opt(\"extraSmallTimeFormat\");\n },\n computeDisplayEventEnd: function computeDisplayEventEnd() {\n return 1 == this.colCnt;\n },\n rangeUpdated: function rangeUpdated() {\n this.updateDayTable();\n },\n spanToSegs: function spanToSegs(t) {\n var e,\n n,\n i = this.sliceRangeByRow(t);\n for (e = 0; e < i.length; e++) n = i[e], this.isRTL ? (n.leftCol = this.daysPerRow - 1 - n.lastRowDayIndex, n.rightCol = this.daysPerRow - 1 - n.firstRowDayIndex) : (n.leftCol = n.firstRowDayIndex, n.rightCol = n.lastRowDayIndex);\n return i;\n },\n prepareHits: function prepareHits() {\n this.colCoordCache.build(), this.rowCoordCache.build(), this.rowCoordCache.bottoms[this.rowCnt - 1] += this.bottomCoordPadding;\n },\n releaseHits: function releaseHits() {\n this.colCoordCache.clear(), this.rowCoordCache.clear();\n },\n queryHit: function queryHit(t, e) {\n if (this.colCoordCache.isLeftInBounds(t) && this.rowCoordCache.isTopInBounds(e)) {\n var n = this.colCoordCache.getHorizontalIndex(t),\n i = this.rowCoordCache.getVerticalIndex(e);\n if (null != i && null != n) return this.getCellHit(i, n);\n }\n },\n getHitSpan: function getHitSpan(t) {\n return this.getCellRange(t.row, t.col);\n },\n getHitEl: function getHitEl(t) {\n return this.getCellEl(t.row, t.col);\n },\n getCellHit: function getCellHit(t, e) {\n return {\n row: t,\n col: e,\n component: this,\n left: this.colCoordCache.getLeftOffset(e),\n right: this.colCoordCache.getRightOffset(e),\n top: this.rowCoordCache.getTopOffset(t),\n bottom: this.rowCoordCache.getBottomOffset(t)\n };\n },\n getCellEl: function getCellEl(t, e) {\n return this.cellEls.eq(t * this.colCnt + e);\n },\n renderDrag: function renderDrag(t, e) {\n if (this.renderHighlight(this.eventToSpan(t)), e && e.component !== this) return this.renderEventLocationHelper(t, e);\n },\n unrenderDrag: function unrenderDrag() {\n this.unrenderHighlight(), this.unrenderHelper();\n },\n renderEventResize: function renderEventResize(t, e) {\n return this.renderHighlight(this.eventToSpan(t)), this.renderEventLocationHelper(t, e);\n },\n unrenderEventResize: function unrenderEventResize() {\n this.unrenderHighlight(), this.unrenderHelper();\n },\n renderHelper: function renderHelper(e, n) {\n var i,\n r = [],\n s = this.eventToSegs(e);\n return s = this.renderFgSegEls(s), i = this.renderSegRows(s), this.rowEls.each(function (e, s) {\n var o,\n l = t(s),\n a = t('<div class=\"fc-helper-skeleton\"><table/></div>');\n o = n && n.row === e ? n.el.position().top : l.find(\".fc-content-skeleton tbody\").position().top, a.css(\"top\", o).find(\"table\").append(i[e].tbodyEl), l.append(a), r.push(a[0]);\n }), this.helperEls = t(r);\n },\n unrenderHelper: function unrenderHelper() {\n this.helperEls && (this.helperEls.remove(), this.helperEls = null);\n },\n fillSegTag: \"td\",\n renderFill: function renderFill(e, n, i) {\n var r,\n s,\n o,\n l = [];\n for (n = this.renderFillSegEls(e, n), r = 0; r < n.length; r++) s = n[r], o = this.renderFillRow(e, s, i), this.rowEls.eq(s.row).append(o), l.push(o[0]);\n return this.elsByFill[e] = t(l), n;\n },\n renderFillRow: function renderFillRow(e, n, i) {\n var r,\n s,\n o = this.colCnt,\n l = n.leftCol,\n a = n.rightCol + 1;\n return i = i || e.toLowerCase(), r = t('<div class=\"fc-' + i + '-skeleton\"><table><tr/></table></div>'), s = r.find(\"tr\"), l > 0 && s.append('<td colspan=\"' + l + '\"/>'), s.append(n.el.attr(\"colspan\", a - l)), a < o && s.append('<td colspan=\"' + (o - a) + '\"/>'), this.bookendCells(s), r;\n }\n });\n me.mixin({\n rowStructs: null,\n unrenderEvents: function unrenderEvents() {\n this.removeSegPopover(), pe.prototype.unrenderEvents.apply(this, arguments);\n },\n getEventSegs: function getEventSegs() {\n return pe.prototype.getEventSegs.call(this).concat(this.popoverSegs || []);\n },\n renderBgSegs: function renderBgSegs(e) {\n var n = t.grep(e, function (t) {\n return t.event.allDay;\n });\n return pe.prototype.renderBgSegs.call(this, n);\n },\n renderFgSegs: function renderFgSegs(e) {\n var n;\n return e = this.renderFgSegEls(e), n = this.rowStructs = this.renderSegRows(e), this.rowEls.each(function (e, i) {\n t(i).find(\".fc-content-skeleton > table\").append(n[e].tbodyEl);\n }), e;\n },\n unrenderFgSegs: function unrenderFgSegs() {\n for (var t, e = this.rowStructs || []; t = e.pop();) t.tbodyEl.remove();\n this.rowStructs = null;\n },\n renderSegRows: function renderSegRows(t) {\n var e,\n n,\n i = [];\n for (e = this.groupSegRows(t), n = 0; n < e.length; n++) i.push(this.renderSegRow(n, e[n]));\n return i;\n },\n fgSegHtml: function fgSegHtml(t, e) {\n var n,\n i,\n r = this.view,\n s = t.event,\n o = r.isEventDraggable(s),\n l = !e && s.allDay && t.isStart && r.isEventResizableFromStart(s),\n a = !e && s.allDay && t.isEnd && r.isEventResizableFromEnd(s),\n u = this.getSegClasses(t, o, l || a),\n d = nt(this.getSegSkinCss(t)),\n c = \"\";\n return u.unshift(\"fc-day-grid-event\", \"fc-h-event\"), t.isStart && (n = this.getEventTimeText(s), n && (c = '<span class=\"fc-time\">' + tt(n) + \"</span>\")), i = '<span class=\"fc-title\">' + (tt(s.title || \"\") || \" \") + \"</span>\", '<a class=\"' + u.join(\" \") + '\"' + (s.url ? ' href=\"' + tt(s.url) + '\"' : \"\") + (d ? ' style=\"' + d + '\"' : \"\") + '><div class=\"fc-content\">' + (this.isRTL ? i + \" \" + c : c + \" \" + i) + \"</div>\" + (l ? '<div class=\"fc-resizer fc-start-resizer\" />' : \"\") + (a ? '<div class=\"fc-resizer fc-end-resizer\" />' : \"\") + \"</a>\";\n },\n renderSegRow: function renderSegRow(e, n) {\n function i(e) {\n for (; o < e;) d = (m[r - 1] || [])[o], d ? d.attr(\"rowspan\", parseInt(d.attr(\"rowspan\") || 1, 10) + 1) : (d = t(\"<td/>\"), l.append(d)), v[r][o] = d, m[r][o] = d, o++;\n }\n var r,\n s,\n o,\n l,\n a,\n u,\n d,\n c = this.colCnt,\n h = this.buildSegLevels(n),\n f = Math.max(1, h.length),\n g = t(\"<tbody/>\"),\n p = [],\n v = [],\n m = [];\n for (r = 0; r < f; r++) {\n if (s = h[r], o = 0, l = t(\"<tr/>\"), p.push([]), v.push([]), m.push([]), s) for (a = 0; a < s.length; a++) {\n for (u = s[a], i(u.leftCol), d = t('<td class=\"fc-event-container\"/>').append(u.el), u.leftCol != u.rightCol ? d.attr(\"colspan\", u.rightCol - u.leftCol + 1) : m[r][o] = d; o <= u.rightCol;) v[r][o] = d, p[r][o] = u, o++;\n l.append(d);\n }\n i(c), this.bookendCells(l), g.append(l);\n }\n return {\n row: e,\n tbodyEl: g,\n cellMatrix: v,\n segMatrix: p,\n segLevels: h,\n segs: n\n };\n },\n buildSegLevels: function buildSegLevels(t) {\n var e,\n n,\n i,\n r = [];\n for (this.sortEventSegs(t), e = 0; e < t.length; e++) {\n for (n = t[e], i = 0; i < r.length && Lt(n, r[i]); i++);\n n.level = i, (r[i] || (r[i] = [])).push(n);\n }\n for (i = 0; i < r.length; i++) r[i].sort(Bt);\n return r;\n },\n groupSegRows: function groupSegRows(t) {\n var e,\n n = [];\n for (e = 0; e < this.rowCnt; e++) n.push([]);\n for (e = 0; e < t.length; e++) n[t[e].row].push(t[e]);\n return n;\n }\n }), me.mixin({\n segPopover: null,\n popoverSegs: null,\n removeSegPopover: function removeSegPopover() {\n this.segPopover && this.segPopover.hide();\n },\n limitRows: function limitRows(t) {\n var e,\n n,\n i = this.rowStructs || [];\n for (e = 0; e < i.length; e++) this.unlimitRow(e), n = !!t && (\"number\" == typeof t ? t : this.computeRowLevelLimit(e)), n !== !1 && this.limitRow(e, n);\n },\n computeRowLevelLimit: function computeRowLevelLimit(e) {\n function n(e, n) {\n s = Math.max(s, t(n).outerHeight());\n }\n var i,\n r,\n s,\n o = this.rowEls.eq(e),\n l = o.height(),\n a = this.rowStructs[e].tbodyEl.children();\n for (i = 0; i < a.length; i++) if (r = a.eq(i).removeClass(\"fc-limited\"), s = 0, r.find(\"> td > :first-child\").each(n), r.position().top + s > l) return i;\n return !1;\n },\n limitRow: function limitRow(e, n) {\n function i(i) {\n for (; D < i;) u = S.getCellSegs(e, D, n), u.length && (h = s[n - 1][D], y = S.renderMoreLink(e, D, u), m = t(\"<div/>\").append(y), h.append(m), E.push(m[0])), D++;\n }\n var r,\n s,\n o,\n l,\n a,\n u,\n d,\n c,\n h,\n f,\n g,\n p,\n v,\n m,\n y,\n S = this,\n w = this.rowStructs[e],\n E = [],\n D = 0;\n if (n && n < w.segLevels.length) {\n for (r = w.segLevels[n - 1], s = w.cellMatrix, o = w.tbodyEl.children().slice(n).addClass(\"fc-limited\").get(), l = 0; l < r.length; l++) {\n for (a = r[l], i(a.leftCol), c = [], d = 0; D <= a.rightCol;) u = this.getCellSegs(e, D, n), c.push(u), d += u.length, D++;\n if (d) {\n for (h = s[n - 1][a.leftCol], f = h.attr(\"rowspan\") || 1, g = [], p = 0; p < c.length; p++) v = t('<td class=\"fc-more-cell\"/>').attr(\"rowspan\", f), u = c[p], y = this.renderMoreLink(e, a.leftCol + p, [a].concat(u)), m = t(\"<div/>\").append(y), v.append(m), g.push(v[0]), E.push(v[0]);\n h.addClass(\"fc-limited\").after(t(g)), o.push(h[0]);\n }\n }\n i(this.colCnt), w.moreEls = t(E), w.limitedEls = t(o);\n }\n },\n unlimitRow: function unlimitRow(t) {\n var e = this.rowStructs[t];\n e.moreEls && (e.moreEls.remove(), e.moreEls = null), e.limitedEls && (e.limitedEls.removeClass(\"fc-limited\"), e.limitedEls = null);\n },\n renderMoreLink: function renderMoreLink(e, n, i) {\n var r = this,\n s = this.view;\n return t('<a class=\"fc-more\"/>').text(this.getMoreLinkText(i.length)).on(\"click\", function (o) {\n var l = s.opt(\"eventLimitClick\"),\n a = r.getCellDate(e, n),\n u = t(this),\n d = r.getCellEl(e, n),\n c = r.getCellSegs(e, n),\n h = r.resliceDaySegs(c, a),\n f = r.resliceDaySegs(i, a);\n \"function\" == typeof l && (l = s.trigger(\"eventLimitClick\", null, {\n date: a,\n dayEl: d,\n moreEl: u,\n segs: h,\n hiddenSegs: f\n }, o)), \"popover\" === l ? r.showSegPopover(e, n, u, h) : \"string\" == typeof l && s.calendar.zoomTo(a, l);\n });\n },\n showSegPopover: function showSegPopover(t, e, n, i) {\n var r,\n s,\n o = this,\n l = this.view,\n a = n.parent();\n r = 1 == this.rowCnt ? l.el : this.rowEls.eq(t), s = {\n className: \"fc-more-popover\",\n content: this.renderSegPopoverContent(t, e, i),\n parentEl: this.view.el,\n top: r.offset().top,\n autoHide: !0,\n viewportConstrain: l.opt(\"popoverViewportConstrain\"),\n hide: function hide() {\n o.segPopover.removeElement(), o.segPopover = null, o.popoverSegs = null;\n }\n }, this.isRTL ? s.right = a.offset().left + a.outerWidth() + 1 : s.left = a.offset().left - 1, this.segPopover = new de(s), this.segPopover.show(), this.bindSegHandlersToEl(this.segPopover.el);\n },\n renderSegPopoverContent: function renderSegPopoverContent(e, n, i) {\n var r,\n s = this.view,\n o = s.opt(\"theme\"),\n l = this.getCellDate(e, n).format(s.opt(\"dayPopoverFormat\")),\n a = t('<div class=\"fc-header ' + s.widgetHeaderClass + '\"><span class=\"fc-close ' + (o ? \"ui-icon ui-icon-closethick\" : \"fc-icon fc-icon-x\") + '\"></span><span class=\"fc-title\">' + tt(l) + '</span><div class=\"fc-clear\"/></div><div class=\"fc-body ' + s.widgetContentClass + '\"><div class=\"fc-event-container\"></div></div>'),\n u = a.find(\".fc-event-container\");\n for (i = this.renderFgSegEls(i, !0), this.popoverSegs = i, r = 0; r < i.length; r++) this.prepareHits(), i[r].hit = this.getCellHit(e, n), this.releaseHits(), u.append(i[r].el);\n return a;\n },\n resliceDaySegs: function resliceDaySegs(e, n) {\n var i = t.map(e, function (t) {\n return t.event;\n }),\n r = n.clone(),\n s = r.clone().add(1, \"days\"),\n o = {\n start: r,\n end: s\n };\n return e = this.eventsToSegs(i, function (t) {\n var e = F(t, o);\n return e ? [e] : [];\n }), this.sortEventSegs(e), e;\n },\n getMoreLinkText: function getMoreLinkText(t) {\n var e = this.view.opt(\"eventLimitText\");\n return \"function\" == typeof e ? e(t) : \"+\" + t + \" \" + e;\n },\n getCellSegs: function getCellSegs(t, e, n) {\n for (var i, r = this.rowStructs[t].segMatrix, s = n || 0, o = []; s < r.length;) i = r[s][e], i && o.push(i), s++;\n return o;\n }\n });\n var ye = jt.TimeGrid = pe.extend(ve, {\n slotDuration: null,\n snapDuration: null,\n snapsPerSlot: null,\n minTime: null,\n maxTime: null,\n labelFormat: null,\n labelInterval: null,\n colEls: null,\n slatContainerEl: null,\n slatEls: null,\n nowIndicatorEls: null,\n colCoordCache: null,\n slatCoordCache: null,\n constructor: function constructor() {\n pe.apply(this, arguments), this.processOptions();\n },\n renderDates: function renderDates() {\n this.el.html(this.renderHtml()), this.colEls = this.el.find(\".fc-day\"), this.slatContainerEl = this.el.find(\".fc-slats\"), this.slatEls = this.slatContainerEl.find(\"tr\"), this.colCoordCache = new ce({\n els: this.colEls,\n isHorizontal: !0\n }), this.slatCoordCache = new ce({\n els: this.slatEls,\n isVertical: !0\n }), this.renderContentSkeleton();\n },\n renderHtml: function renderHtml() {\n return '<div class=\"fc-bg\"><table>' + this.renderBgTrHtml(0) + '</table></div><div class=\"fc-slats\"><table>' + this.renderSlatRowHtml() + \"</table></div>\";\n },\n renderSlatRowHtml: function renderSlatRowHtml() {\n for (var t, n, i, r = this.view, s = this.isRTL, o = \"\", l = e.duration(+this.minTime); l < this.maxTime;) t = this.start.clone().time(l), n = ot(_(l, this.labelInterval)), i = '<td class=\"fc-axis fc-time ' + r.widgetContentClass + '\" ' + r.axisStyleAttr() + \">\" + (n ? \"<span>\" + tt(t.format(this.labelFormat)) + \"</span>\" : \"\") + \"</td>\", o += '<tr data-time=\"' + t.format(\"HH:mm:ss\") + '\"' + (n ? \"\" : ' class=\"fc-minor\"') + \">\" + (s ? \"\" : i) + '<td class=\"' + r.widgetContentClass + '\"/>' + (s ? i : \"\") + \"</tr>\", l.add(this.slotDuration);\n return o;\n },\n processOptions: function processOptions() {\n var n,\n i = this.view,\n r = i.opt(\"slotDuration\"),\n s = i.opt(\"snapDuration\");\n r = e.duration(r), s = s ? e.duration(s) : r, this.slotDuration = r, this.snapDuration = s, this.snapsPerSlot = r / s, this.minResizeDuration = s, this.minTime = e.duration(i.opt(\"minTime\")), this.maxTime = e.duration(i.opt(\"maxTime\")), n = i.opt(\"slotLabelFormat\"), t.isArray(n) && (n = n[n.length - 1]), this.labelFormat = n || i.opt(\"smallTimeFormat\"), n = i.opt(\"slotLabelInterval\"), this.labelInterval = n ? e.duration(n) : this.computeLabelInterval(r);\n },\n computeLabelInterval: function computeLabelInterval(t) {\n var n, i, r;\n for (n = Ne.length - 1; n >= 0; n--) if (i = e.duration(Ne[n]), r = _(i, t), ot(r) && r > 1) return i;\n return e.duration(t);\n },\n computeEventTimeFormat: function computeEventTimeFormat() {\n return this.view.opt(\"noMeridiemTimeFormat\");\n },\n computeDisplayEventEnd: function computeDisplayEventEnd() {\n return !0;\n },\n prepareHits: function prepareHits() {\n this.colCoordCache.build(), this.slatCoordCache.build();\n },\n releaseHits: function releaseHits() {\n this.colCoordCache.clear();\n },\n queryHit: function queryHit(t, e) {\n var n = this.snapsPerSlot,\n i = this.colCoordCache,\n r = this.slatCoordCache;\n if (i.isLeftInBounds(t) && r.isTopInBounds(e)) {\n var s = i.getHorizontalIndex(t),\n o = r.getVerticalIndex(e);\n if (null != s && null != o) {\n var l = r.getTopOffset(o),\n a = r.getHeight(o),\n u = (e - l) / a,\n d = Math.floor(u * n),\n c = o * n + d,\n h = l + d / n * a,\n f = l + (d + 1) / n * a;\n return {\n col: s,\n snap: c,\n component: this,\n left: i.getLeftOffset(s),\n right: i.getRightOffset(s),\n top: h,\n bottom: f\n };\n }\n }\n },\n getHitSpan: function getHitSpan(t) {\n var e,\n n = this.getCellDate(0, t.col),\n i = this.computeSnapTime(t.snap);\n return n.time(i), e = n.clone().add(this.snapDuration), {\n start: n,\n end: e\n };\n },\n getHitEl: function getHitEl(t) {\n return this.colEls.eq(t.col);\n },\n rangeUpdated: function rangeUpdated() {\n this.updateDayTable();\n },\n computeSnapTime: function computeSnapTime(t) {\n return e.duration(this.minTime + this.snapDuration * t);\n },\n spanToSegs: function spanToSegs(t) {\n var e,\n n = this.sliceRangeByTimes(t);\n for (e = 0; e < n.length; e++) this.isRTL ? n[e].col = this.daysPerRow - 1 - n[e].dayIndex : n[e].col = n[e].dayIndex;\n return n;\n },\n sliceRangeByTimes: function sliceRangeByTimes(t) {\n var e,\n n,\n i,\n r,\n s = [];\n for (n = 0; n < this.daysPerRow; n++) i = this.dayDates[n].clone(), r = {\n start: i.clone().time(this.minTime),\n end: i.clone().time(this.maxTime)\n }, e = F(t, r), e && (e.dayIndex = n, s.push(e));\n return s;\n },\n updateSize: function updateSize(t) {\n this.slatCoordCache.build(), t && this.updateSegVerticals([].concat(this.fgSegs || [], this.bgSegs || [], this.businessSegs || []));\n },\n getTotalSlatHeight: function getTotalSlatHeight() {\n return this.slatContainerEl.outerHeight();\n },\n computeDateTop: function computeDateTop(t, n) {\n return this.computeTimeTop(e.duration(t - n.clone().stripTime()));\n },\n computeTimeTop: function computeTimeTop(t) {\n var e,\n n,\n i = this.slatEls.length,\n r = (t - this.minTime) / this.slotDuration;\n return r = Math.max(0, r), r = Math.min(i, r), e = Math.floor(r), e = Math.min(e, i - 1), n = r - e, this.slatCoordCache.getTopPosition(e) + this.slatCoordCache.getHeight(e) * n;\n },\n renderDrag: function renderDrag(t, e) {\n return e ? this.renderEventLocationHelper(t, e) : void this.renderHighlight(this.eventToSpan(t));\n },\n unrenderDrag: function unrenderDrag() {\n this.unrenderHelper(), this.unrenderHighlight();\n },\n renderEventResize: function renderEventResize(t, e) {\n return this.renderEventLocationHelper(t, e);\n },\n unrenderEventResize: function unrenderEventResize() {\n this.unrenderHelper();\n },\n renderHelper: function renderHelper(t, e) {\n return this.renderHelperSegs(this.eventToSegs(t), e);\n },\n unrenderHelper: function unrenderHelper() {\n this.unrenderHelperSegs();\n },\n renderBusinessHours: function renderBusinessHours() {\n this.renderBusinessSegs(this.buildBusinessHourSegs());\n },\n unrenderBusinessHours: function unrenderBusinessHours() {\n this.unrenderBusinessSegs();\n },\n getNowIndicatorUnit: function getNowIndicatorUnit() {\n return \"minute\";\n },\n renderNowIndicator: function renderNowIndicator(e) {\n var n,\n i = this.spanToSegs({\n start: e,\n end: e\n }),\n r = this.computeDateTop(e, e),\n s = [];\n for (n = 0; n < i.length; n++) s.push(t('<div class=\"fc-now-indicator fc-now-indicator-line\"></div>').css(\"top\", r).appendTo(this.colContainerEls.eq(i[n].col))[0]);\n i.length > 0 && s.push(t('<div class=\"fc-now-indicator fc-now-indicator-arrow\"></div>').css(\"top\", r).appendTo(this.el.find(\".fc-content-skeleton\"))[0]), this.nowIndicatorEls = t(s);\n },\n unrenderNowIndicator: function unrenderNowIndicator() {\n this.nowIndicatorEls && (this.nowIndicatorEls.remove(), this.nowIndicatorEls = null);\n },\n renderSelection: function renderSelection(t) {\n this.view.opt(\"selectHelper\") ? this.renderEventLocationHelper(t) : this.renderHighlight(t);\n },\n unrenderSelection: function unrenderSelection() {\n this.unrenderHelper(), this.unrenderHighlight();\n },\n renderHighlight: function renderHighlight(t) {\n this.renderHighlightSegs(this.spanToSegs(t));\n },\n unrenderHighlight: function unrenderHighlight() {\n this.unrenderHighlightSegs();\n }\n });\n ye.mixin({\n colContainerEls: null,\n fgContainerEls: null,\n bgContainerEls: null,\n helperContainerEls: null,\n highlightContainerEls: null,\n businessContainerEls: null,\n fgSegs: null,\n bgSegs: null,\n helperSegs: null,\n highlightSegs: null,\n businessSegs: null,\n renderContentSkeleton: function renderContentSkeleton() {\n var e,\n n,\n i = \"\";\n for (e = 0; e < this.colCnt; e++) i += '<td><div class=\"fc-content-col\"><div class=\"fc-event-container fc-helper-container\"></div><div class=\"fc-event-container\"></div><div class=\"fc-highlight-container\"></div><div class=\"fc-bgevent-container\"></div><div class=\"fc-business-container\"></div></div></td>';\n n = t('<div class=\"fc-content-skeleton\"><table><tr>' + i + \"</tr></table></div>\"), this.colContainerEls = n.find(\".fc-content-col\"), this.helperContainerEls = n.find(\".fc-helper-container\"), this.fgContainerEls = n.find(\".fc-event-container:not(.fc-helper-container)\"), this.bgContainerEls = n.find(\".fc-bgevent-container\"), this.highlightContainerEls = n.find(\".fc-highlight-container\"), this.businessContainerEls = n.find(\".fc-business-container\"), this.bookendCells(n.find(\"tr\")), this.el.append(n);\n },\n renderFgSegs: function renderFgSegs(t) {\n return t = this.renderFgSegsIntoContainers(t, this.fgContainerEls), this.fgSegs = t, t;\n },\n unrenderFgSegs: function unrenderFgSegs() {\n this.unrenderNamedSegs(\"fgSegs\");\n },\n renderHelperSegs: function renderHelperSegs(e, n) {\n var i,\n r,\n s,\n o = [];\n for (e = this.renderFgSegsIntoContainers(e, this.helperContainerEls), i = 0; i < e.length; i++) r = e[i], n && n.col === r.col && (s = n.el, r.el.css({\n left: s.css(\"left\"),\n right: s.css(\"right\"),\n \"margin-left\": s.css(\"margin-left\"),\n \"margin-right\": s.css(\"margin-right\")\n })), o.push(r.el[0]);\n return this.helperSegs = e, t(o);\n },\n unrenderHelperSegs: function unrenderHelperSegs() {\n this.unrenderNamedSegs(\"helperSegs\");\n },\n renderBgSegs: function renderBgSegs(t) {\n return t = this.renderFillSegEls(\"bgEvent\", t), this.updateSegVerticals(t), this.attachSegsByCol(this.groupSegsByCol(t), this.bgContainerEls), this.bgSegs = t, t;\n },\n unrenderBgSegs: function unrenderBgSegs() {\n this.unrenderNamedSegs(\"bgSegs\");\n },\n renderHighlightSegs: function renderHighlightSegs(t) {\n t = this.renderFillSegEls(\"highlight\", t), this.updateSegVerticals(t), this.attachSegsByCol(this.groupSegsByCol(t), this.highlightContainerEls), this.highlightSegs = t;\n },\n unrenderHighlightSegs: function unrenderHighlightSegs() {\n this.unrenderNamedSegs(\"highlightSegs\");\n },\n renderBusinessSegs: function renderBusinessSegs(t) {\n t = this.renderFillSegEls(\"businessHours\", t), this.updateSegVerticals(t), this.attachSegsByCol(this.groupSegsByCol(t), this.businessContainerEls), this.businessSegs = t;\n },\n unrenderBusinessSegs: function unrenderBusinessSegs() {\n this.unrenderNamedSegs(\"businessSegs\");\n },\n groupSegsByCol: function groupSegsByCol(t) {\n var e,\n n = [];\n for (e = 0; e < this.colCnt; e++) n.push([]);\n for (e = 0; e < t.length; e++) n[t[e].col].push(t[e]);\n return n;\n },\n attachSegsByCol: function attachSegsByCol(t, e) {\n var n, i, r;\n for (n = 0; n < this.colCnt; n++) for (i = t[n], r = 0; r < i.length; r++) e.eq(n).append(i[r].el);\n },\n unrenderNamedSegs: function unrenderNamedSegs(t) {\n var e,\n n = this[t];\n if (n) {\n for (e = 0; e < n.length; e++) n[e].el.remove();\n this[t] = null;\n }\n },\n renderFgSegsIntoContainers: function renderFgSegsIntoContainers(t, e) {\n var n, i;\n for (t = this.renderFgSegEls(t), n = this.groupSegsByCol(t), i = 0; i < this.colCnt; i++) this.updateFgSegCoords(n[i]);\n return this.attachSegsByCol(n, e), t;\n },\n fgSegHtml: function fgSegHtml(t, e) {\n var n,\n i,\n r,\n s = this.view,\n o = t.event,\n l = s.isEventDraggable(o),\n a = !e && t.isStart && s.isEventResizableFromStart(o),\n u = !e && t.isEnd && s.isEventResizableFromEnd(o),\n d = this.getSegClasses(t, l, a || u),\n c = nt(this.getSegSkinCss(t));\n return d.unshift(\"fc-time-grid-event\", \"fc-v-event\"), s.isMultiDayEvent(o) ? (t.isStart || t.isEnd) && (n = this.getEventTimeText(t), i = this.getEventTimeText(t, \"LT\"), r = this.getEventTimeText(t, null, !1)) : (n = this.getEventTimeText(o), i = this.getEventTimeText(o, \"LT\"), r = this.getEventTimeText(o, null, !1)), '<a class=\"' + d.join(\" \") + '\"' + (o.url ? ' href=\"' + tt(o.url) + '\"' : \"\") + (c ? ' style=\"' + c + '\"' : \"\") + '><div class=\"fc-content\">' + (n ? '<div class=\"fc-time\" data-start=\"' + tt(r) + '\" data-full=\"' + tt(i) + '\"><span>' + tt(n) + \"</span></div>\" : \"\") + (o.title ? '<div class=\"fc-title\">' + tt(o.title) + \"</div>\" : \"\") + '</div><div class=\"fc-bg\"/>' + (u ? '<div class=\"fc-resizer fc-end-resizer\" />' : \"\") + \"</a>\";\n },\n updateSegVerticals: function updateSegVerticals(t) {\n this.computeSegVerticals(t), this.assignSegVerticals(t);\n },\n computeSegVerticals: function computeSegVerticals(t) {\n var e, n;\n for (e = 0; e < t.length; e++) n = t[e], n.top = this.computeDateTop(n.start, n.start), n.bottom = this.computeDateTop(n.end, n.start);\n },\n assignSegVerticals: function assignSegVerticals(t) {\n var e, n;\n for (e = 0; e < t.length; e++) n = t[e], n.el.css(this.generateSegVerticalCss(n));\n },\n generateSegVerticalCss: function generateSegVerticalCss(t) {\n return {\n top: t.top,\n bottom: -t.bottom\n };\n },\n updateFgSegCoords: function updateFgSegCoords(t) {\n this.computeSegVerticals(t), this.computeFgSegHorizontals(t), this.assignSegVerticals(t), this.assignFgSegHorizontals(t);\n },\n computeFgSegHorizontals: function computeFgSegHorizontals(t) {\n var e, n, i;\n if (this.sortEventSegs(t), e = zt(t), Ft(e), n = e[0]) {\n for (i = 0; i < n.length; i++) Nt(n[i]);\n for (i = 0; i < n.length; i++) this.computeFgSegForwardBack(n[i], 0, 0);\n }\n },\n computeFgSegForwardBack: function computeFgSegForwardBack(t, e, n) {\n var i,\n r = t.forwardSegs;\n if (void 0 === t.forwardCoord) for (r.length ? (this.sortForwardSegs(r), this.computeFgSegForwardBack(r[0], e + 1, n), t.forwardCoord = r[0].backwardCoord) : t.forwardCoord = 1, t.backwardCoord = t.forwardCoord - (t.forwardCoord - n) / (e + 1), i = 0; i < r.length; i++) this.computeFgSegForwardBack(r[i], 0, t.forwardCoord);\n },\n sortForwardSegs: function sortForwardSegs(t) {\n t.sort(lt(this, \"compareForwardSegs\"));\n },\n compareForwardSegs: function compareForwardSegs(t, e) {\n return e.forwardPressure - t.forwardPressure || (t.backwardCoord || 0) - (e.backwardCoord || 0) || this.compareEventSegs(t, e);\n },\n assignFgSegHorizontals: function assignFgSegHorizontals(t) {\n var e, n;\n for (e = 0; e < t.length; e++) n = t[e], n.el.css(this.generateFgSegHorizontalCss(n)), n.bottom - n.top < 30 && n.el.addClass(\"fc-short\");\n },\n generateFgSegHorizontalCss: function generateFgSegHorizontalCss(t) {\n var e,\n n,\n i = this.view.opt(\"slotEventOverlap\"),\n r = t.backwardCoord,\n s = t.forwardCoord,\n o = this.generateSegVerticalCss(t);\n return i && (s = Math.min(1, r + 2 * (s - r))), this.isRTL ? (e = 1 - s, n = r) : (e = r, n = 1 - s), o.zIndex = t.level + 1, o.left = 100 * e + \"%\", o.right = 100 * n + \"%\", i && t.forwardPressure && (o[this.isRTL ? \"marginLeft\" : \"marginRight\"] = 20), o;\n }\n });\n var Se = jt.View = wt.extend(le, ae, {\n type: null,\n name: null,\n title: null,\n calendar: null,\n options: null,\n el: null,\n displaying: null,\n isSkeletonRendered: !1,\n isEventsRendered: !1,\n start: null,\n end: null,\n intervalStart: null,\n intervalEnd: null,\n intervalDuration: null,\n intervalUnit: null,\n isRTL: !1,\n isSelected: !1,\n selectedEvent: null,\n eventOrderSpecs: null,\n widgetHeaderClass: null,\n widgetContentClass: null,\n highlightStateClass: null,\n nextDayThreshold: null,\n isHiddenDayHash: null,\n isNowIndicatorRendered: null,\n initialNowDate: null,\n initialNowQueriedMs: null,\n nowIndicatorTimeoutID: null,\n nowIndicatorIntervalID: null,\n constructor: function constructor(t, n, i, r) {\n this.calendar = t, this.type = this.name = n, this.options = i, this.intervalDuration = r || e.duration(1, \"day\"), this.nextDayThreshold = e.duration(this.opt(\"nextDayThreshold\")), this.initThemingProps(), this.initHiddenDays(), this.isRTL = this.opt(\"isRTL\"), this.eventOrderSpecs = M(this.opt(\"eventOrder\")), this.initialize();\n },\n initialize: function initialize() {},\n opt: function opt(t) {\n return this.options[t];\n },\n trigger: function trigger(t, e) {\n var n = this.calendar;\n return n.trigger.apply(n, [t, e || this].concat(Array.prototype.slice.call(arguments, 2), [this]));\n },\n setDate: function setDate(t) {\n this.setRange(this.computeRange(t));\n },\n setRange: function setRange(e) {\n t.extend(this, e), this.updateTitle();\n },\n computeRange: function computeRange(t) {\n var e,\n n,\n i = O(this.intervalDuration),\n r = t.clone().startOf(i),\n s = r.clone().add(this.intervalDuration);\n return /year|month|week|day/.test(i) ? (r.stripTime(), s.stripTime()) : (r.hasTime() || (r = this.calendar.time(0)), s.hasTime() || (s = this.calendar.time(0))), e = r.clone(), e = this.skipHiddenDays(e), n = s.clone(), n = this.skipHiddenDays(n, -1, !0), {\n intervalUnit: i,\n intervalStart: r,\n intervalEnd: s,\n start: e,\n end: n\n };\n },\n computePrevDate: function computePrevDate(t) {\n return this.massageCurrentDate(t.clone().startOf(this.intervalUnit).subtract(this.intervalDuration), -1);\n },\n computeNextDate: function computeNextDate(t) {\n return this.massageCurrentDate(t.clone().startOf(this.intervalUnit).add(this.intervalDuration));\n },\n massageCurrentDate: function massageCurrentDate(t, e) {\n return this.intervalDuration.as(\"days\") <= 1 && this.isHiddenDay(t) && (t = this.skipHiddenDays(t, e), t.startOf(\"day\")), t;\n },\n updateTitle: function updateTitle() {\n this.title = this.computeTitle();\n },\n computeTitle: function computeTitle() {\n return this.formatRange({\n start: this.calendar.applyTimezone(this.intervalStart),\n end: this.calendar.applyTimezone(this.intervalEnd)\n }, this.opt(\"titleFormat\") || this.computeTitleFormat(), this.opt(\"titleRangeSeparator\"));\n },\n computeTitleFormat: function computeTitleFormat() {\n return \"year\" == this.intervalUnit ? \"YYYY\" : \"month\" == this.intervalUnit ? this.opt(\"monthYearFormat\") : this.intervalDuration.as(\"days\") > 1 ? \"ll\" : \"LL\";\n },\n formatRange: function formatRange(t, e, n) {\n var i = t.end;\n return i.hasTime() || (i = i.clone().subtract(1)), pt(t.start, i, e, n, this.opt(\"isRTL\"));\n },\n getAllDayHtml: function getAllDayHtml() {\n return this.opt(\"allDayHtml\") || tt(this.opt(\"allDayText\"));\n },\n buildGotoAnchorHtml: function buildGotoAnchorHtml(e, n, i) {\n var r, s, o, l;\n return t.isPlainObject(e) ? (r = e.date, s = e.type, o = e.forceOff) : r = e, r = jt.moment(r), l = {\n date: r.format(\"YYYY-MM-DD\"),\n type: s || \"day\"\n }, \"string\" == typeof n && (i = n, n = null), n = n ? \" \" + it(n) : \"\", i = i || \"\", !o && this.opt(\"navLinks\") ? \"<a\" + n + ' data-goto=\"' + tt(JSON.stringify(l)) + '\">' + i + \"</a>\" : \"<span\" + n + \">\" + i + \"</span>\";\n },\n setElement: function setElement(t) {\n this.el = t, this.bindGlobalHandlers();\n },\n removeElement: function removeElement() {\n this.clear(), this.isSkeletonRendered && (this.unrenderSkeleton(), this.isSkeletonRendered = !1), this.unbindGlobalHandlers(), this.el.remove();\n },\n display: function display(t, e) {\n var n = this,\n i = null;\n return null != e && this.displaying && (i = this.queryScroll()), this.calendar.freezeContentHeight(), ut(this.clear(), function () {\n return n.displaying = ut(n.displayView(t), function () {\n null != e ? n.setScroll(e) : n.forceScroll(n.computeInitialScroll(i)), n.calendar.unfreezeContentHeight(), n.triggerRender();\n });\n });\n },\n clear: function clear() {\n var e = this,\n n = this.displaying;\n return n ? ut(n, function () {\n return e.displaying = null, e.clearEvents(), e.clearView();\n }) : t.when();\n },\n displayView: function displayView(t) {\n this.isSkeletonRendered || (this.renderSkeleton(), this.isSkeletonRendered = !0), t && this.setDate(t), this.render && this.render(), this.renderDates(), this.updateSize(), this.renderBusinessHours(), this.startNowIndicator();\n },\n clearView: function clearView() {\n this.unselect(), this.stopNowIndicator(), this.triggerUnrender(), this.unrenderBusinessHours(), this.unrenderDates(), this.destroy && this.destroy();\n },\n renderSkeleton: function renderSkeleton() {},\n unrenderSkeleton: function unrenderSkeleton() {},\n renderDates: function renderDates() {},\n unrenderDates: function unrenderDates() {},\n triggerRender: function triggerRender() {\n this.trigger(\"viewRender\", this, this, this.el);\n },\n triggerUnrender: function triggerUnrender() {\n this.trigger(\"viewDestroy\", this, this, this.el);\n },\n bindGlobalHandlers: function bindGlobalHandlers() {\n this.listenTo(t(document), \"mousedown\", this.handleDocumentMousedown), this.listenTo(t(document), \"touchstart\", this.processUnselect);\n },\n unbindGlobalHandlers: function unbindGlobalHandlers() {\n this.stopListeningTo(t(document));\n },\n initThemingProps: function initThemingProps() {\n var t = this.opt(\"theme\") ? \"ui\" : \"fc\";\n this.widgetHeaderClass = t + \"-widget-header\", this.widgetContentClass = t + \"-widget-content\", this.highlightStateClass = t + \"-state-highlight\";\n },\n renderBusinessHours: function renderBusinessHours() {},\n unrenderBusinessHours: function unrenderBusinessHours() {},\n startNowIndicator: function startNowIndicator() {\n var t,\n n,\n i,\n r = this;\n this.opt(\"nowIndicator\") && (t = this.getNowIndicatorUnit(), t && (n = lt(this, \"updateNowIndicator\"), this.initialNowDate = this.calendar.getNow(), this.initialNowQueriedMs = +new Date(), this.renderNowIndicator(this.initialNowDate), this.isNowIndicatorRendered = !0, i = this.initialNowDate.clone().startOf(t).add(1, t) - this.initialNowDate, this.nowIndicatorTimeoutID = setTimeout(function () {\n r.nowIndicatorTimeoutID = null, n(), i = +e.duration(1, t), i = Math.max(100, i), r.nowIndicatorIntervalID = setInterval(n, i);\n }, i)));\n },\n updateNowIndicator: function updateNowIndicator() {\n this.isNowIndicatorRendered && (this.unrenderNowIndicator(), this.renderNowIndicator(this.initialNowDate.clone().add(new Date() - this.initialNowQueriedMs)));\n },\n stopNowIndicator: function stopNowIndicator() {\n this.isNowIndicatorRendered && (this.nowIndicatorTimeoutID && (clearTimeout(this.nowIndicatorTimeoutID), this.nowIndicatorTimeoutID = null), this.nowIndicatorIntervalID && (clearTimeout(this.nowIndicatorIntervalID), this.nowIndicatorIntervalID = null), this.unrenderNowIndicator(), this.isNowIndicatorRendered = !1);\n },\n getNowIndicatorUnit: function getNowIndicatorUnit() {},\n renderNowIndicator: function renderNowIndicator(t) {},\n unrenderNowIndicator: function unrenderNowIndicator() {},\n updateSize: function updateSize(t) {\n var e;\n t && (e = this.queryScroll()), this.updateHeight(t), this.updateWidth(t), this.updateNowIndicator(), t && this.setScroll(e);\n },\n updateWidth: function updateWidth(t) {},\n updateHeight: function updateHeight(t) {\n var e = this.calendar;\n this.setHeight(e.getSuggestedViewHeight(), e.isHeightAuto());\n },\n setHeight: function setHeight(t, e) {},\n computeInitialScroll: function computeInitialScroll(t) {\n return 0;\n },\n queryScroll: function queryScroll() {},\n setScroll: function setScroll(t) {},\n forceScroll: function forceScroll(t) {\n var e = this;\n this.setScroll(t), setTimeout(function () {\n e.setScroll(t);\n }, 0);\n },\n displayEvents: function displayEvents(t) {\n var e = this.queryScroll();\n this.clearEvents(), this.renderEvents(t), this.isEventsRendered = !0, this.setScroll(e), this.triggerEventRender();\n },\n clearEvents: function clearEvents() {\n var t;\n this.isEventsRendered && (t = this.queryScroll(), this.triggerEventUnrender(), this.destroyEvents && this.destroyEvents(), this.unrenderEvents(), this.setScroll(t), this.isEventsRendered = !1);\n },\n renderEvents: function renderEvents(t) {},\n unrenderEvents: function unrenderEvents() {},\n triggerEventRender: function triggerEventRender() {\n this.renderedEventSegEach(function (t) {\n this.trigger(\"eventAfterRender\", t.event, t.event, t.el);\n }), this.trigger(\"eventAfterAllRender\");\n },\n triggerEventUnrender: function triggerEventUnrender() {\n this.renderedEventSegEach(function (t) {\n this.trigger(\"eventDestroy\", t.event, t.event, t.el);\n });\n },\n resolveEventEl: function resolveEventEl(e, n) {\n var i = this.trigger(\"eventRender\", e, e, n);\n return i === !1 ? n = null : i && i !== !0 && (n = t(i)), n;\n },\n showEvent: function showEvent(t) {\n this.renderedEventSegEach(function (t) {\n t.el.css(\"visibility\", \"\");\n }, t);\n },\n hideEvent: function hideEvent(t) {\n this.renderedEventSegEach(function (t) {\n t.el.css(\"visibility\", \"hidden\");\n }, t);\n },\n renderedEventSegEach: function renderedEventSegEach(t, e) {\n var n,\n i = this.getEventSegs();\n for (n = 0; n < i.length; n++) e && i[n].event._id !== e._id || i[n].el && t.call(this, i[n]);\n },\n getEventSegs: function getEventSegs() {\n return [];\n },\n isEventDraggable: function isEventDraggable(t) {\n return this.isEventStartEditable(t);\n },\n isEventStartEditable: function isEventStartEditable(t) {\n return J(t.startEditable, (t.source || {}).startEditable, this.opt(\"eventStartEditable\"), this.isEventGenerallyEditable(t));\n },\n isEventGenerallyEditable: function isEventGenerallyEditable(t) {\n return J(t.editable, (t.source || {}).editable, this.opt(\"editable\"));\n },\n reportEventDrop: function reportEventDrop(t, e, n, i, r) {\n var s = this.calendar,\n o = s.mutateEvent(t, e, n),\n l = function l() {\n o.undo(), s.reportEventChange();\n };\n this.triggerEventDrop(t, o.dateDelta, l, i, r), s.reportEventChange();\n },\n triggerEventDrop: function triggerEventDrop(t, e, n, i, r) {\n this.trigger(\"eventDrop\", i[0], t, e, n, r, {});\n },\n reportExternalDrop: function reportExternalDrop(e, n, i, r, s) {\n var o,\n l,\n a = e.eventProps;\n a && (o = t.extend({}, a, n), l = this.calendar.renderEvent(o, e.stick)[0]), this.triggerExternalDrop(l, n, i, r, s);\n },\n triggerExternalDrop: function triggerExternalDrop(t, e, n, i, r) {\n this.trigger(\"drop\", n[0], e.start, i, r), t && this.trigger(\"eventReceive\", null, t);\n },\n renderDrag: function renderDrag(t, e) {},\n unrenderDrag: function unrenderDrag() {},\n isEventResizableFromStart: function isEventResizableFromStart(t) {\n return this.opt(\"eventResizableFromStart\") && this.isEventResizable(t);\n },\n isEventResizableFromEnd: function isEventResizableFromEnd(t) {\n return this.isEventResizable(t);\n },\n isEventResizable: function isEventResizable(t) {\n var e = t.source || {};\n return J(t.durationEditable, e.durationEditable, this.opt(\"eventDurationEditable\"), t.editable, e.editable, this.opt(\"editable\"));\n },\n reportEventResize: function reportEventResize(t, e, n, i, r) {\n var s = this.calendar,\n o = s.mutateEvent(t, e, n),\n l = function l() {\n o.undo(), s.reportEventChange();\n };\n this.triggerEventResize(t, o.durationDelta, l, i, r), s.reportEventChange();\n },\n triggerEventResize: function triggerEventResize(t, e, n, i, r) {\n this.trigger(\"eventResize\", i[0], t, e, n, r, {});\n },\n select: function select(t, e) {\n this.unselect(e), this.renderSelection(t), this.reportSelection(t, e);\n },\n renderSelection: function renderSelection(t) {},\n reportSelection: function reportSelection(t, e) {\n this.isSelected = !0, this.triggerSelect(t, e);\n },\n triggerSelect: function triggerSelect(t, e) {\n this.trigger(\"select\", null, this.calendar.applyTimezone(t.start), this.calendar.applyTimezone(t.end), e);\n },\n unselect: function unselect(t) {\n this.isSelected && (this.isSelected = !1, this.destroySelection && this.destroySelection(), this.unrenderSelection(), this.trigger(\"unselect\", null, t));\n },\n unrenderSelection: function unrenderSelection() {},\n selectEvent: function selectEvent(t) {\n this.selectedEvent && this.selectedEvent === t || (this.unselectEvent(), this.renderedEventSegEach(function (t) {\n t.el.addClass(\"fc-selected\");\n }, t), this.selectedEvent = t);\n },\n unselectEvent: function unselectEvent() {\n this.selectedEvent && (this.renderedEventSegEach(function (t) {\n t.el.removeClass(\"fc-selected\");\n }, this.selectedEvent), this.selectedEvent = null);\n },\n isEventSelected: function isEventSelected(t) {\n return this.selectedEvent && this.selectedEvent._id === t._id;\n },\n handleDocumentMousedown: function handleDocumentMousedown(t) {\n S(t) && this.processUnselect(t);\n },\n processUnselect: function processUnselect(t) {\n this.processRangeUnselect(t), this.processEventUnselect(t);\n },\n processRangeUnselect: function processRangeUnselect(e) {\n var n;\n this.isSelected && this.opt(\"unselectAuto\") && (n = this.opt(\"unselectCancel\"), n && t(e.target).closest(n).length || this.unselect(e));\n },\n processEventUnselect: function processEventUnselect(e) {\n this.selectedEvent && (t(e.target).closest(\".fc-selected\").length || this.unselectEvent());\n },\n triggerDayClick: function triggerDayClick(t, e, n) {\n this.trigger(\"dayClick\", e, this.calendar.applyTimezone(t.start), n);\n },\n initHiddenDays: function initHiddenDays() {\n var e,\n n = this.opt(\"hiddenDays\") || [],\n i = [],\n r = 0;\n for (this.opt(\"weekends\") === !1 && n.push(0, 6), e = 0; e < 7; e++) (i[e] = t.inArray(e, n) !== -1) || r++;\n if (!r) throw \"invalid hiddenDays\";\n this.isHiddenDayHash = i;\n },\n isHiddenDay: function isHiddenDay(t) {\n return e.isMoment(t) && (t = t.day()), this.isHiddenDayHash[t];\n },\n skipHiddenDays: function skipHiddenDays(t, e, n) {\n var i = t.clone();\n for (e = e || 1; this.isHiddenDayHash[(i.day() + (n ? e : 0) + 7) % 7];) i.add(e, \"days\");\n return i;\n },\n computeDayRange: function computeDayRange(t) {\n var e,\n n = t.start.clone().stripTime(),\n i = t.end,\n r = null;\n return i && (r = i.clone().stripTime(), e = +i.time(), e && e >= this.nextDayThreshold && r.add(1, \"days\")), (!i || r <= n) && (r = n.clone().add(1, \"days\")), {\n start: n,\n end: r\n };\n },\n isMultiDayEvent: function isMultiDayEvent(t) {\n var e = this.computeDayRange(t);\n return e.end.diff(e.start, \"days\") > 1;\n }\n }),\n we = jt.Scroller = wt.extend({\n el: null,\n scrollEl: null,\n overflowX: null,\n overflowY: null,\n constructor: function constructor(t) {\n t = t || {}, this.overflowX = t.overflowX || t.overflow || \"auto\", this.overflowY = t.overflowY || t.overflow || \"auto\";\n },\n render: function render() {\n this.el = this.renderEl(), this.applyOverflow();\n },\n renderEl: function renderEl() {\n return this.scrollEl = t('<div class=\"fc-scroller\"></div>');\n },\n clear: function clear() {\n this.setHeight(\"auto\"), this.applyOverflow();\n },\n destroy: function destroy() {\n this.el.remove();\n },\n applyOverflow: function applyOverflow() {\n this.scrollEl.css({\n \"overflow-x\": this.overflowX,\n \"overflow-y\": this.overflowY\n });\n },\n lockOverflow: function lockOverflow(t) {\n var e = this.overflowX,\n n = this.overflowY;\n t = t || this.getScrollbarWidths(), \"auto\" === e && (e = t.top || t.bottom || this.scrollEl[0].scrollWidth - 1 > this.scrollEl[0].clientWidth ? \"scroll\" : \"hidden\"), \"auto\" === n && (n = t.left || t.right || this.scrollEl[0].scrollHeight - 1 > this.scrollEl[0].clientHeight ? \"scroll\" : \"hidden\"), this.scrollEl.css({\n \"overflow-x\": e,\n \"overflow-y\": n\n });\n },\n setHeight: function setHeight(t) {\n this.scrollEl.height(t);\n },\n getScrollTop: function getScrollTop() {\n return this.scrollEl.scrollTop();\n },\n setScrollTop: function setScrollTop(t) {\n this.scrollEl.scrollTop(t);\n },\n getClientWidth: function getClientWidth() {\n return this.scrollEl[0].clientWidth;\n },\n getClientHeight: function getClientHeight() {\n return this.scrollEl[0].clientHeight;\n },\n getScrollbarWidths: function getScrollbarWidths() {\n return p(this.scrollEl);\n }\n }),\n Ee = jt.Calendar = wt.extend({\n dirDefaults: null,\n localeDefaults: null,\n overrides: null,\n dynamicOverrides: null,\n options: null,\n viewSpecCache: null,\n view: null,\n header: null,\n loadingLevel: 0,\n constructor: Ot,\n initialize: function initialize() {},\n populateOptionsHash: function populateOptionsHash() {\n var t, e, i, r;\n t = J(this.dynamicOverrides.locale, this.overrides.locale), e = De[t], e || (t = Ee.defaults.locale, e = De[t] || {}), i = J(this.dynamicOverrides.isRTL, this.overrides.isRTL, e.isRTL, Ee.defaults.isRTL), r = i ? Ee.rtlDefaults : {}, this.dirDefaults = r, this.localeDefaults = e, this.options = n([Ee.defaults, r, e, this.overrides, this.dynamicOverrides]), Vt(this.options);\n },\n getViewSpec: function getViewSpec(t) {\n var e = this.viewSpecCache;\n return e[t] || (e[t] = this.buildViewSpec(t));\n },\n getUnitViewSpec: function getUnitViewSpec(e) {\n var n, i, r;\n if (t.inArray(e, Xt) != -1) for (n = this.header.getViewsWithButtons(), t.each(jt.views, function (t) {\n n.push(t);\n }), i = 0; i < n.length; i++) if (r = this.getViewSpec(n[i]), r && r.singleUnit == e) return r;\n },\n buildViewSpec: function buildViewSpec(t) {\n for (var i, r, s, o, l = this.overrides.views || {}, a = [], u = [], d = [], c = t; c;) i = Ut[c], r = l[c], c = null, \"function\" == typeof i && (i = {\n \"class\": i\n }), i && (a.unshift(i), u.unshift(i.defaults || {}), s = s || i.duration, c = c || i.type), r && (d.unshift(r), s = s || r.duration, c = c || r.type);\n return i = q(a), i.type = t, !!i[\"class\"] && (s && (s = e.duration(s), s.valueOf() && (i.duration = s, o = O(s), 1 === s.as(o) && (i.singleUnit = o, d.unshift(l[o] || {})))), i.defaults = n(u), i.overrides = n(d), this.buildViewSpecOptions(i), this.buildViewSpecButtonText(i, t), i);\n },\n buildViewSpecOptions: function buildViewSpecOptions(t) {\n t.options = n([Ee.defaults, t.defaults, this.dirDefaults, this.localeDefaults, this.overrides, t.overrides, this.dynamicOverrides]), Vt(t.options);\n },\n buildViewSpecButtonText: function buildViewSpecButtonText(t, e) {\n function n(n) {\n var i = n.buttonText || {};\n return i[e] || (t.buttonTextKey ? i[t.buttonTextKey] : null) || (t.singleUnit ? i[t.singleUnit] : null);\n }\n t.buttonTextOverride = n(this.dynamicOverrides) || n(this.overrides) || t.overrides.buttonText, t.buttonTextDefault = n(this.localeDefaults) || n(this.dirDefaults) || t.defaults.buttonText || n(Ee.defaults) || (t.duration ? this.humanizeDuration(t.duration) : null) || e;\n },\n instantiateView: function instantiateView(t) {\n var e = this.getViewSpec(t);\n return new e[\"class\"](this, t, e.options, e.duration);\n },\n isValidViewType: function isValidViewType(t) {\n return Boolean(this.getViewSpec(t));\n },\n pushLoading: function pushLoading() {\n this.loadingLevel++ || this.trigger(\"loading\", null, !0, this.view);\n },\n popLoading: function popLoading() {\n --this.loadingLevel || this.trigger(\"loading\", null, !1, this.view);\n },\n buildSelectSpan: function buildSelectSpan(t, e) {\n var n,\n i = this.moment(t).stripZone();\n return n = e ? this.moment(e).stripZone() : i.hasTime() ? i.clone().add(this.defaultTimedEventDuration) : i.clone().add(this.defaultAllDayEventDuration), {\n start: i,\n end: n\n };\n }\n });\n Ee.mixin(le), Ee.mixin({\n optionHandlers: null,\n bindOption: function bindOption(t, e) {\n this.bindOptions([t], e);\n },\n bindOptions: function bindOptions(t, e) {\n var n,\n i = {\n func: e,\n names: t\n };\n for (n = 0; n < t.length; n++) this.registerOptionHandlerObj(t[n], i);\n this.triggerOptionHandlerObj(i);\n },\n registerOptionHandlerObj: function registerOptionHandlerObj(t, e) {\n (this.optionHandlers[t] || (this.optionHandlers[t] = [])).push(e);\n },\n triggerOptionHandlers: function triggerOptionHandlers(t) {\n var e,\n n = this.optionHandlers[t] || [];\n for (e = 0; e < n.length; e++) this.triggerOptionHandlerObj(n[e]);\n },\n triggerOptionHandlerObj: function triggerOptionHandlerObj(t) {\n var e,\n n = t.names,\n i = [];\n for (e = 0; e < n.length; e++) i.push(this.options[n[e]]);\n t.func.apply(this, i);\n }\n }), Ee.defaults = {\n titleRangeSeparator: \" – \",\n monthYearFormat: \"MMMM YYYY\",\n defaultTimedEventDuration: \"02:00:00\",\n defaultAllDayEventDuration: {\n days: 1\n },\n forceEventDuration: !1,\n nextDayThreshold: \"09:00:00\",\n defaultView: \"month\",\n aspectRatio: 1.35,\n header: {\n left: \"title\",\n center: \"\",\n right: \"today prev,next\"\n },\n weekends: !0,\n weekNumbers: !1,\n weekNumberTitle: \"W\",\n weekNumberCalculation: \"local\",\n scrollTime: \"06:00:00\",\n lazyFetching: !0,\n startParam: \"start\",\n endParam: \"end\",\n timezoneParam: \"timezone\",\n timezone: !1,\n isRTL: !1,\n buttonText: {\n prev: \"prev\",\n next: \"next\",\n prevYear: \"prev year\",\n nextYear: \"next year\",\n year: \"year\",\n today: \"today\",\n month: \"month\",\n week: \"week\",\n day: \"day\"\n },\n buttonIcons: {\n prev: \"left-single-arrow\",\n next: \"right-single-arrow\",\n prevYear: \"left-double-arrow\",\n nextYear: \"right-double-arrow\"\n },\n allDayText: \"all-day\",\n theme: !1,\n themeButtonIcons: {\n prev: \"circle-triangle-w\",\n next: \"circle-triangle-e\",\n prevYear: \"seek-prev\",\n nextYear: \"seek-next\"\n },\n dragOpacity: .75,\n dragRevertDuration: 500,\n dragScroll: !0,\n unselectAuto: !0,\n dropAccept: \"*\",\n eventOrder: \"title\",\n eventLimit: !1,\n eventLimitText: \"more\",\n eventLimitClick: \"popover\",\n dayPopoverFormat: \"LL\",\n handleWindowResize: !0,\n windowResizeDelay: 100,\n longPressDelay: 1e3\n }, Ee.englishDefaults = {\n dayPopoverFormat: \"dddd, MMMM D\"\n }, Ee.rtlDefaults = {\n header: {\n left: \"next,prev today\",\n center: \"\",\n right: \"title\"\n },\n buttonIcons: {\n prev: \"right-single-arrow\",\n next: \"left-single-arrow\",\n prevYear: \"right-double-arrow\",\n nextYear: \"left-double-arrow\"\n },\n themeButtonIcons: {\n prev: \"circle-triangle-e\",\n next: \"circle-triangle-w\",\n nextYear: \"seek-prev\",\n prevYear: \"seek-next\"\n }\n };\n var De = jt.locales = {};\n jt.datepickerLocale = function (e, n, i) {\n var r = De[e] || (De[e] = {});\n r.isRTL = i.isRTL, r.weekNumberTitle = i.weekHeader, t.each(be, function (t, e) {\n r[t] = e(i);\n }), t.datepicker && (t.datepicker.regional[n] = t.datepicker.regional[e] = i, t.datepicker.regional.en = t.datepicker.regional[\"\"], t.datepicker.setDefaults(i));\n }, jt.locale = function (e, i) {\n var r, s;\n r = De[e] || (De[e] = {}), i && (r = De[e] = n([r, i])), s = Pt(e), t.each(Ce, function (t, e) {\n null == r[t] && (r[t] = e(s, r));\n }), Ee.defaults.locale = e;\n };\n var be = {\n buttonText: function buttonText(t) {\n return {\n prev: et(t.prevText),\n next: et(t.nextText),\n today: et(t.currentText)\n };\n },\n monthYearFormat: function monthYearFormat(t) {\n return t.showMonthAfterYear ? \"YYYY[\" + t.yearSuffix + \"] MMMM\" : \"MMMM YYYY[\" + t.yearSuffix + \"]\";\n }\n },\n Ce = {\n dayOfMonthFormat: function dayOfMonthFormat(t, e) {\n var n = t.longDateFormat(\"l\");\n return n = n.replace(/^Y+[^\\w\\s]*|[^\\w\\s]*Y+$/g, \"\"), e.isRTL ? n += \" ddd\" : n = \"ddd \" + n, n;\n },\n mediumTimeFormat: function mediumTimeFormat(t) {\n return t.longDateFormat(\"LT\").replace(/\\s*a$/i, \"a\");\n },\n smallTimeFormat: function smallTimeFormat(t) {\n return t.longDateFormat(\"LT\").replace(\":mm\", \"(:mm)\").replace(/(\\Wmm)$/, \"($1)\").replace(/\\s*a$/i, \"a\");\n },\n extraSmallTimeFormat: function extraSmallTimeFormat(t) {\n return t.longDateFormat(\"LT\").replace(\":mm\", \"(:mm)\").replace(/(\\Wmm)$/, \"($1)\").replace(/\\s*a$/i, \"t\");\n },\n hourFormat: function hourFormat(t) {\n return t.longDateFormat(\"LT\").replace(\":mm\", \"\").replace(/(\\Wmm)$/, \"\").replace(/\\s*a$/i, \"a\");\n },\n noMeridiemTimeFormat: function noMeridiemTimeFormat(t) {\n return t.longDateFormat(\"LT\").replace(/\\s*a$/i, \"\");\n }\n },\n He = {\n smallDayDateFormat: function smallDayDateFormat(t) {\n return t.isRTL ? \"D dd\" : \"dd D\";\n },\n weekFormat: function weekFormat(t) {\n return t.isRTL ? \"w[ \" + t.weekNumberTitle + \"]\" : \"[\" + t.weekNumberTitle + \" ]w\";\n },\n smallWeekFormat: function smallWeekFormat(t) {\n return t.isRTL ? \"w[\" + t.weekNumberTitle + \"]\" : \"[\" + t.weekNumberTitle + \"]w\";\n }\n };\n jt.locale(\"en\", Ee.englishDefaults), jt.sourceNormalizers = [], jt.sourceFetchers = [];\n var Te = {\n dataType: \"json\",\n cache: !1\n },\n xe = 1;\n Ee.prototype.normalizeEvent = function (t) {}, Ee.prototype.spanContainsSpan = function (t, e) {\n var n = t.start.clone().stripZone(),\n i = this.getEventEnd(t).stripZone();\n return e.start >= n && e.end <= i;\n }, Ee.prototype.getPeerEvents = function (t, e) {\n var n,\n i,\n r = this.getEventCache(),\n s = [];\n for (n = 0; n < r.length; n++) i = r[n], e && e._id === i._id || s.push(i);\n return s;\n }, Ee.prototype.isEventSpanAllowed = function (t, e) {\n var n = e.source || {},\n i = J(e.constraint, n.constraint, this.options.eventConstraint),\n r = J(e.overlap, n.overlap, this.options.eventOverlap);\n return this.isSpanAllowed(t, i, r, e) && (!this.options.eventAllow || this.options.eventAllow(t, e) !== !1);\n }, Ee.prototype.isExternalSpanAllowed = function (e, n, i) {\n var r, s;\n return i && (r = t.extend({}, i, n), s = this.expandEvent(this.buildEventFromInput(r))[0]), s ? this.isEventSpanAllowed(e, s) : this.isSelectionSpanAllowed(e);\n }, Ee.prototype.isSelectionSpanAllowed = function (t) {\n return this.isSpanAllowed(t, this.options.selectConstraint, this.options.selectOverlap) && (!this.options.selectAllow || this.options.selectAllow(t) !== !1);\n }, Ee.prototype.isSpanAllowed = function (t, e, n, i) {\n var r, s, o, l, a, u;\n if (null != e && (r = this.constraintToEvents(e))) {\n for (s = !1, l = 0; l < r.length; l++) if (this.spanContainsSpan(r[l], t)) {\n s = !0;\n break;\n }\n if (!s) return !1;\n }\n for (o = this.getPeerEvents(t, i), l = 0; l < o.length; l++) if (a = o[l], this.eventIntersectsRange(a, t)) {\n if (n === !1) return !1;\n if (\"function\" == typeof n && !n(a, i)) return !1;\n if (i) {\n if (u = J(a.overlap, (a.source || {}).overlap), u === !1) return !1;\n if (\"function\" == typeof u && !u(i, a)) return !1;\n }\n }\n return !0;\n }, Ee.prototype.constraintToEvents = function (t) {\n return \"businessHours\" === t ? this.getCurrentBusinessHourEvents() : \"object\" == _typeof(t) ? null != t.start ? this.expandEvent(this.buildEventFromInput(t)) : null : this.clientEvents(t);\n }, Ee.prototype.eventIntersectsRange = function (t, e) {\n var n = t.start.clone().stripZone(),\n i = this.getEventEnd(t).stripZone();\n return e.start < i && e.end > n;\n };\n var Re = {\n id: \"_fcBusinessHours\",\n start: \"09:00\",\n end: \"17:00\",\n dow: [1, 2, 3, 4, 5],\n rendering: \"inverse-background\"\n };\n Ee.prototype.getCurrentBusinessHourEvents = function (t) {\n return this.computeBusinessHourEvents(t, this.options.businessHours);\n }, Ee.prototype.computeBusinessHourEvents = function (e, n) {\n return n === !0 ? this.expandBusinessHourEvents(e, [{}]) : t.isPlainObject(n) ? this.expandBusinessHourEvents(e, [n]) : t.isArray(n) ? this.expandBusinessHourEvents(e, n, !0) : [];\n }, Ee.prototype.expandBusinessHourEvents = function (e, n, i) {\n var r,\n s,\n o = this.getView(),\n l = [];\n for (r = 0; r < n.length; r++) s = n[r], i && !s.dow || (s = t.extend({}, Re, s), e && (s.start = null, s.end = null), l.push.apply(l, this.expandEvent(this.buildEventFromInput(s), o.start, o.end)));\n return l;\n };\n var Ie = jt.BasicView = Se.extend({\n scroller: null,\n dayGridClass: me,\n dayGrid: null,\n dayNumbersVisible: !1,\n colWeekNumbersVisible: !1,\n cellWeekNumbersVisible: !1,\n weekNumberWidth: null,\n headContainerEl: null,\n headRowEl: null,\n initialize: function initialize() {\n this.dayGrid = this.instantiateDayGrid(), this.scroller = new we({\n overflowX: \"hidden\",\n overflowY: \"auto\"\n });\n },\n instantiateDayGrid: function instantiateDayGrid() {\n var t = this.dayGridClass.extend(ke);\n return new t(this);\n },\n setRange: function setRange(t) {\n Se.prototype.setRange.call(this, t), this.dayGrid.breakOnWeeks = /year|month|week/.test(this.intervalUnit), this.dayGrid.setRange(t);\n },\n computeRange: function computeRange(t) {\n var e = Se.prototype.computeRange.call(this, t);\n return /year|month/.test(e.intervalUnit) && (e.start.startOf(\"week\"), e.start = this.skipHiddenDays(e.start), e.end.weekday() && (e.end.add(1, \"week\").startOf(\"week\"), e.end = this.skipHiddenDays(e.end, -1, !0))), e;\n },\n renderDates: function renderDates() {\n this.dayNumbersVisible = this.dayGrid.rowCnt > 1, this.opt(\"weekNumbers\") && (this.opt(\"weekNumbersWithinDays\") ? (this.cellWeekNumbersVisible = !0, this.colWeekNumbersVisible = !1) : (this.cellWeekNumbersVisible = !1, this.colWeekNumbersVisible = !0)), this.dayGrid.numbersVisible = this.dayNumbersVisible || this.cellWeekNumbersVisible || this.colWeekNumbersVisible, this.el.addClass(\"fc-basic-view\").html(this.renderSkeletonHtml()), this.renderHead(), this.scroller.render();\n var e = this.scroller.el.addClass(\"fc-day-grid-container\"),\n n = t('<div class=\"fc-day-grid\" />').appendTo(e);\n this.el.find(\".fc-body > tr > td\").append(e), this.dayGrid.setElement(n), this.dayGrid.renderDates(this.hasRigidRows());\n },\n renderHead: function renderHead() {\n this.headContainerEl = this.el.find(\".fc-head-container\").html(this.dayGrid.renderHeadHtml()), this.headRowEl = this.headContainerEl.find(\".fc-row\");\n },\n unrenderDates: function unrenderDates() {\n this.dayGrid.unrenderDates(), this.dayGrid.removeElement(), this.scroller.destroy();\n },\n renderBusinessHours: function renderBusinessHours() {\n this.dayGrid.renderBusinessHours();\n },\n unrenderBusinessHours: function unrenderBusinessHours() {\n this.dayGrid.unrenderBusinessHours();\n },\n renderSkeletonHtml: function renderSkeletonHtml() {\n return '<table><thead class=\"fc-head\"><tr><td class=\"fc-head-container ' + this.widgetHeaderClass + '\"></td></tr></thead><tbody class=\"fc-body\"><tr><td class=\"' + this.widgetContentClass + '\"></td></tr></tbody></table>';\n },\n weekNumberStyleAttr: function weekNumberStyleAttr() {\n return null !== this.weekNumberWidth ? 'style=\"width:' + this.weekNumberWidth + 'px\"' : \"\";\n },\n hasRigidRows: function hasRigidRows() {\n var t = this.opt(\"eventLimit\");\n return t && \"number\" != typeof t;\n },\n updateWidth: function updateWidth() {\n this.colWeekNumbersVisible && (this.weekNumberWidth = u(this.el.find(\".fc-week-number\")));\n },\n setHeight: function setHeight(t, e) {\n var n,\n s,\n o = this.opt(\"eventLimit\");\n this.scroller.clear(), r(this.headRowEl), this.dayGrid.removeSegPopover(), o && \"number\" == typeof o && this.dayGrid.limitRows(o), n = this.computeScrollerHeight(t), this.setGridHeight(n, e), o && \"number\" != typeof o && this.dayGrid.limitRows(o), e || (this.scroller.setHeight(n), s = this.scroller.getScrollbarWidths(), (s.left || s.right) && (i(this.headRowEl, s), n = this.computeScrollerHeight(t), this.scroller.setHeight(n)), this.scroller.lockOverflow(s));\n },\n computeScrollerHeight: function computeScrollerHeight(t) {\n return t - d(this.el, this.scroller.el);\n },\n setGridHeight: function setGridHeight(t, e) {\n e ? a(this.dayGrid.rowEls) : l(this.dayGrid.rowEls, t, !0);\n },\n queryScroll: function queryScroll() {\n return this.scroller.getScrollTop();\n },\n setScroll: function setScroll(t) {\n this.scroller.setScrollTop(t);\n },\n prepareHits: function prepareHits() {\n this.dayGrid.prepareHits();\n },\n releaseHits: function releaseHits() {\n this.dayGrid.releaseHits();\n },\n queryHit: function queryHit(t, e) {\n return this.dayGrid.queryHit(t, e);\n },\n getHitSpan: function getHitSpan(t) {\n return this.dayGrid.getHitSpan(t);\n },\n getHitEl: function getHitEl(t) {\n return this.dayGrid.getHitEl(t);\n },\n renderEvents: function renderEvents(t) {\n this.dayGrid.renderEvents(t), this.updateHeight();\n },\n getEventSegs: function getEventSegs() {\n return this.dayGrid.getEventSegs();\n },\n unrenderEvents: function unrenderEvents() {\n this.dayGrid.unrenderEvents();\n },\n renderDrag: function renderDrag(t, e) {\n return this.dayGrid.renderDrag(t, e);\n },\n unrenderDrag: function unrenderDrag() {\n this.dayGrid.unrenderDrag();\n },\n renderSelection: function renderSelection(t) {\n this.dayGrid.renderSelection(t);\n },\n unrenderSelection: function unrenderSelection() {\n this.dayGrid.unrenderSelection();\n }\n }),\n ke = {\n renderHeadIntroHtml: function renderHeadIntroHtml() {\n var t = this.view;\n return t.colWeekNumbersVisible ? '<th class=\"fc-week-number ' + t.widgetHeaderClass + '\" ' + t.weekNumberStyleAttr() + \"><span>\" + tt(t.opt(\"weekNumberTitle\")) + \"</span></th>\" : \"\";\n },\n renderNumberIntroHtml: function renderNumberIntroHtml(t) {\n var e = this.view,\n n = this.getCellDate(t, 0);\n return e.colWeekNumbersVisible ? '<td class=\"fc-week-number\" ' + e.weekNumberStyleAttr() + \">\" + e.buildGotoAnchorHtml({\n date: n,\n type: \"week\",\n forceOff: 1 === this.colCnt\n }, n.format(\"w\")) + \"</td>\" : \"\";\n },\n renderBgIntroHtml: function renderBgIntroHtml() {\n var t = this.view;\n return t.colWeekNumbersVisible ? '<td class=\"fc-week-number ' + t.widgetContentClass + '\" ' + t.weekNumberStyleAttr() + \"></td>\" : \"\";\n },\n renderIntroHtml: function renderIntroHtml() {\n var t = this.view;\n return t.colWeekNumbersVisible ? '<td class=\"fc-week-number\" ' + t.weekNumberStyleAttr() + \"></td>\" : \"\";\n }\n },\n Me = jt.MonthView = Ie.extend({\n computeRange: function computeRange(t) {\n var e,\n n = Ie.prototype.computeRange.call(this, t);\n return this.isFixedWeeks() && (e = Math.ceil(n.end.diff(n.start, \"weeks\", !0)), n.end.add(6 - e, \"weeks\")), n;\n },\n setGridHeight: function setGridHeight(t, e) {\n e && (t *= this.rowCnt / 6), l(this.dayGrid.rowEls, t, !e);\n },\n isFixedWeeks: function isFixedWeeks() {\n return this.opt(\"fixedWeekCount\");\n }\n });\n Ut.basic = {\n \"class\": Ie\n }, Ut.basicDay = {\n type: \"basic\",\n duration: {\n days: 1\n }\n }, Ut.basicWeek = {\n type: \"basic\",\n duration: {\n weeks: 1\n }\n }, Ut.month = {\n \"class\": Me,\n duration: {\n months: 1\n },\n defaults: {\n fixedWeekCount: !0\n }\n };\n var Le = jt.AgendaView = Se.extend({\n scroller: null,\n timeGridClass: ye,\n timeGrid: null,\n dayGridClass: me,\n dayGrid: null,\n axisWidth: null,\n headContainerEl: null,\n noScrollRowEls: null,\n bottomRuleEl: null,\n initialize: function initialize() {\n this.timeGrid = this.instantiateTimeGrid(), this.opt(\"allDaySlot\") && (this.dayGrid = this.instantiateDayGrid()), this.scroller = new we({\n overflowX: \"hidden\",\n overflowY: \"auto\"\n });\n },\n instantiateTimeGrid: function instantiateTimeGrid() {\n var t = this.timeGridClass.extend(Be);\n return new t(this);\n },\n instantiateDayGrid: function instantiateDayGrid() {\n var t = this.dayGridClass.extend(ze);\n return new t(this);\n },\n setRange: function setRange(t) {\n Se.prototype.setRange.call(this, t), this.timeGrid.setRange(t), this.dayGrid && this.dayGrid.setRange(t);\n },\n renderDates: function renderDates() {\n this.el.addClass(\"fc-agenda-view\").html(this.renderSkeletonHtml()), this.renderHead(), this.scroller.render();\n var e = this.scroller.el.addClass(\"fc-time-grid-container\"),\n n = t('<div class=\"fc-time-grid\" />').appendTo(e);\n this.el.find(\".fc-body > tr > td\").append(e), this.timeGrid.setElement(n), this.timeGrid.renderDates(), this.bottomRuleEl = t('<hr class=\"fc-divider ' + this.widgetHeaderClass + '\"/>').appendTo(this.timeGrid.el), this.dayGrid && (this.dayGrid.setElement(this.el.find(\".fc-day-grid\")), this.dayGrid.renderDates(), this.dayGrid.bottomCoordPadding = this.dayGrid.el.next(\"hr\").outerHeight()), this.noScrollRowEls = this.el.find(\".fc-row:not(.fc-scroller *)\");\n },\n renderHead: function renderHead() {\n this.headContainerEl = this.el.find(\".fc-head-container\").html(this.timeGrid.renderHeadHtml());\n },\n unrenderDates: function unrenderDates() {\n this.timeGrid.unrenderDates(), this.timeGrid.removeElement(), this.dayGrid && (this.dayGrid.unrenderDates(), this.dayGrid.removeElement()), this.scroller.destroy();\n },\n renderSkeletonHtml: function renderSkeletonHtml() {\n return '<table><thead class=\"fc-head\"><tr><td class=\"fc-head-container ' + this.widgetHeaderClass + '\"></td></tr></thead><tbody class=\"fc-body\"><tr><td class=\"' + this.widgetContentClass + '\">' + (this.dayGrid ? '<div class=\"fc-day-grid\"/><hr class=\"fc-divider ' + this.widgetHeaderClass + '\"/>' : \"\") + \"</td></tr></tbody></table>\";\n },\n axisStyleAttr: function axisStyleAttr() {\n return null !== this.axisWidth ? 'style=\"width:' + this.axisWidth + 'px\"' : \"\";\n },\n renderBusinessHours: function renderBusinessHours() {\n this.timeGrid.renderBusinessHours(), this.dayGrid && this.dayGrid.renderBusinessHours();\n },\n unrenderBusinessHours: function unrenderBusinessHours() {\n this.timeGrid.unrenderBusinessHours(), this.dayGrid && this.dayGrid.unrenderBusinessHours();\n },\n getNowIndicatorUnit: function getNowIndicatorUnit() {\n return this.timeGrid.getNowIndicatorUnit();\n },\n renderNowIndicator: function renderNowIndicator(t) {\n this.timeGrid.renderNowIndicator(t);\n },\n unrenderNowIndicator: function unrenderNowIndicator() {\n this.timeGrid.unrenderNowIndicator();\n },\n updateSize: function updateSize(t) {\n this.timeGrid.updateSize(t), Se.prototype.updateSize.call(this, t);\n },\n updateWidth: function updateWidth() {\n this.axisWidth = u(this.el.find(\".fc-axis\"));\n },\n setHeight: function setHeight(t, e) {\n var n, s, o;\n this.bottomRuleEl.hide(), this.scroller.clear(), r(this.noScrollRowEls), this.dayGrid && (this.dayGrid.removeSegPopover(), n = this.opt(\"eventLimit\"), n && \"number\" != typeof n && (n = Fe), n && this.dayGrid.limitRows(n)), e || (s = this.computeScrollerHeight(t), this.scroller.setHeight(s), o = this.scroller.getScrollbarWidths(), (o.left || o.right) && (i(this.noScrollRowEls, o), s = this.computeScrollerHeight(t), this.scroller.setHeight(s)), this.scroller.lockOverflow(o), this.timeGrid.getTotalSlatHeight() < s && this.bottomRuleEl.show());\n },\n computeScrollerHeight: function computeScrollerHeight(t) {\n return t - d(this.el, this.scroller.el);\n },\n computeInitialScroll: function computeInitialScroll() {\n var t = e.duration(this.opt(\"scrollTime\")),\n n = this.timeGrid.computeTimeTop(t);\n return n = Math.ceil(n), n && n++, n;\n },\n queryScroll: function queryScroll() {\n return this.scroller.getScrollTop();\n },\n setScroll: function setScroll(t) {\n this.scroller.setScrollTop(t);\n },\n prepareHits: function prepareHits() {\n this.timeGrid.prepareHits(), this.dayGrid && this.dayGrid.prepareHits();\n },\n releaseHits: function releaseHits() {\n this.timeGrid.releaseHits(), this.dayGrid && this.dayGrid.releaseHits();\n },\n queryHit: function queryHit(t, e) {\n var n = this.timeGrid.queryHit(t, e);\n return !n && this.dayGrid && (n = this.dayGrid.queryHit(t, e)), n;\n },\n getHitSpan: function getHitSpan(t) {\n return t.component.getHitSpan(t);\n },\n getHitEl: function getHitEl(t) {\n return t.component.getHitEl(t);\n },\n renderEvents: function renderEvents(t) {\n var e,\n n,\n i = [],\n r = [],\n s = [];\n for (n = 0; n < t.length; n++) t[n].allDay ? i.push(t[n]) : r.push(t[n]);\n e = this.timeGrid.renderEvents(r), this.dayGrid && (s = this.dayGrid.renderEvents(i)), this.updateHeight();\n },\n getEventSegs: function getEventSegs() {\n return this.timeGrid.getEventSegs().concat(this.dayGrid ? this.dayGrid.getEventSegs() : []);\n },\n unrenderEvents: function unrenderEvents() {\n this.timeGrid.unrenderEvents(), this.dayGrid && this.dayGrid.unrenderEvents();\n },\n renderDrag: function renderDrag(t, e) {\n return t.start.hasTime() ? this.timeGrid.renderDrag(t, e) : this.dayGrid ? this.dayGrid.renderDrag(t, e) : void 0;\n },\n unrenderDrag: function unrenderDrag() {\n this.timeGrid.unrenderDrag(), this.dayGrid && this.dayGrid.unrenderDrag();\n },\n renderSelection: function renderSelection(t) {\n t.start.hasTime() || t.end.hasTime() ? this.timeGrid.renderSelection(t) : this.dayGrid && this.dayGrid.renderSelection(t);\n },\n unrenderSelection: function unrenderSelection() {\n this.timeGrid.unrenderSelection(), this.dayGrid && this.dayGrid.unrenderSelection();\n }\n }),\n Be = {\n renderHeadIntroHtml: function renderHeadIntroHtml() {\n var t,\n e = this.view;\n return e.opt(\"weekNumbers\") ? (t = this.start.format(e.opt(\"smallWeekFormat\")), '<th class=\"fc-axis fc-week-number ' + e.widgetHeaderClass + '\" ' + e.axisStyleAttr() + \">\" + e.buildGotoAnchorHtml({\n date: this.start,\n type: \"week\",\n forceOff: this.colCnt > 1\n }, tt(t)) + \"</th>\") : '<th class=\"fc-axis ' + e.widgetHeaderClass + '\" ' + e.axisStyleAttr() + \"></th>\";\n },\n renderBgIntroHtml: function renderBgIntroHtml() {\n var t = this.view;\n return '<td class=\"fc-axis ' + t.widgetContentClass + '\" ' + t.axisStyleAttr() + \"></td>\";\n },\n renderIntroHtml: function renderIntroHtml() {\n var t = this.view;\n return '<td class=\"fc-axis\" ' + t.axisStyleAttr() + \"></td>\";\n }\n },\n ze = {\n renderBgIntroHtml: function renderBgIntroHtml() {\n var t = this.view;\n return '<td class=\"fc-axis ' + t.widgetContentClass + '\" ' + t.axisStyleAttr() + \"><span>\" + t.getAllDayHtml() + \"</span></td>\";\n },\n renderIntroHtml: function renderIntroHtml() {\n var t = this.view;\n return '<td class=\"fc-axis\" ' + t.axisStyleAttr() + \"></td>\";\n }\n },\n Fe = 5,\n Ne = [{\n hours: 1\n }, {\n minutes: 30\n }, {\n minutes: 15\n }, {\n seconds: 30\n }, {\n seconds: 15\n }];\n Ut.agenda = {\n \"class\": Le,\n defaults: {\n allDaySlot: !0,\n slotDuration: \"00:30:00\",\n minTime: \"00:00:00\",\n maxTime: \"24:00:00\",\n slotEventOverlap: !0\n }\n }, Ut.agendaDay = {\n type: \"agenda\",\n duration: {\n days: 1\n }\n }, Ut.agendaWeek = {\n type: \"agenda\",\n duration: {\n weeks: 1\n }\n };\n var Ge = Se.extend({\n grid: null,\n scroller: null,\n initialize: function initialize() {\n this.grid = new Ae(this), this.scroller = new we({\n overflowX: \"hidden\",\n overflowY: \"auto\"\n });\n },\n setRange: function setRange(t) {\n Se.prototype.setRange.call(this, t), this.grid.setRange(t);\n },\n renderSkeleton: function renderSkeleton() {\n this.el.addClass(\"fc-list-view \" + this.widgetContentClass), this.scroller.render(), this.scroller.el.appendTo(this.el), this.grid.setElement(this.scroller.scrollEl);\n },\n unrenderSkeleton: function unrenderSkeleton() {\n this.scroller.destroy();\n },\n setHeight: function setHeight(t, e) {\n this.scroller.setHeight(this.computeScrollerHeight(t));\n },\n computeScrollerHeight: function computeScrollerHeight(t) {\n return t - d(this.el, this.scroller.el);\n },\n renderEvents: function renderEvents(t) {\n this.grid.renderEvents(t);\n },\n unrenderEvents: function unrenderEvents() {\n this.grid.unrenderEvents();\n },\n isEventResizable: function isEventResizable(t) {\n return !1;\n },\n isEventDraggable: function isEventDraggable(t) {\n return !1;\n }\n }),\n Ae = pe.extend({\n segSelector: \".fc-list-item\",\n hasDayInteractions: !1,\n spanToSegs: function spanToSegs(t) {\n for (var e, n = this.view, i = n.start.clone().time(0), r = 0, s = []; i < n.end;) if (e = F(t, {\n start: i,\n end: i.clone().add(1, \"day\")\n }), e && (e.dayIndex = r, s.push(e)), i.add(1, \"day\"), r++, e && !e.isEnd && t.end.hasTime() && t.end < i.clone().add(this.view.nextDayThreshold)) {\n e.end = t.end.clone(), e.isEnd = !0;\n break;\n }\n return s;\n },\n computeEventTimeFormat: function computeEventTimeFormat() {\n return this.view.opt(\"mediumTimeFormat\");\n },\n handleSegClick: function handleSegClick(e, n) {\n var i;\n pe.prototype.handleSegClick.apply(this, arguments), t(n.target).closest(\"a[href]\").length || (i = e.event.url, i && !n.isDefaultPrevented() && (window.location.href = i));\n },\n renderFgSegs: function renderFgSegs(t) {\n return t = this.renderFgSegEls(t), t.length ? this.renderSegList(t) : this.renderEmptyMessage(), t;\n },\n renderEmptyMessage: function renderEmptyMessage() {\n this.el.html('<div class=\"fc-list-empty-wrap2\"><div class=\"fc-list-empty-wrap1\"><div class=\"fc-list-empty\">' + tt(this.view.opt(\"noEventsMessage\")) + \"</div></div></div>\");\n },\n renderSegList: function renderSegList(e) {\n var n,\n i,\n r,\n s = this.groupSegsByDay(e),\n o = t('<table class=\"fc-list-table\"><tbody/></table>'),\n l = o.find(\"tbody\");\n for (n = 0; n < s.length; n++) if (i = s[n]) for (l.append(this.dayHeaderHtml(this.view.start.clone().add(n, \"days\"))), this.sortEventSegs(i), r = 0; r < i.length; r++) l.append(i[r].el);\n this.el.empty().append(o);\n },\n groupSegsByDay: function groupSegsByDay(t) {\n var e,\n n,\n i = [];\n for (e = 0; e < t.length; e++) n = t[e], (i[n.dayIndex] || (i[n.dayIndex] = [])).push(n);\n return i;\n },\n dayHeaderHtml: function dayHeaderHtml(t) {\n var e = this.view,\n n = e.opt(\"listDayFormat\"),\n i = e.opt(\"listDayAltFormat\");\n return '<tr class=\"fc-list-heading\" data-date=\"' + t.format(\"YYYY-MM-DD\") + '\"><td class=\"' + e.widgetHeaderClass + '\" colspan=\"3\">' + (n ? e.buildGotoAnchorHtml(t, {\n \"class\": \"fc-list-heading-main\"\n }, tt(t.format(n))) : \"\") + (i ? e.buildGotoAnchorHtml(t, {\n \"class\": \"fc-list-heading-alt\"\n }, tt(t.format(i))) : \"\") + \"</td></tr>\";\n },\n fgSegHtml: function fgSegHtml(t) {\n var e,\n n = this.view,\n i = [\"fc-list-item\"].concat(this.getSegCustomClasses(t)),\n r = this.getSegBackgroundColor(t),\n s = t.event,\n o = s.url;\n return e = s.allDay ? n.getAllDayHtml() : n.isMultiDayEvent(s) ? t.isStart || t.isEnd ? tt(this.getEventTimeText(t)) : n.getAllDayHtml() : tt(this.getEventTimeText(s)), o && i.push(\"fc-has-url\"), '<tr class=\"' + i.join(\" \") + '\">' + (this.displayEventTime ? '<td class=\"fc-list-item-time ' + n.widgetContentClass + '\">' + (e || \"\") + \"</td>\" : \"\") + '<td class=\"fc-list-item-marker ' + n.widgetContentClass + '\"><span class=\"fc-event-dot\"' + (r ? ' style=\"background-color:' + r + '\"' : \"\") + '></span></td><td class=\"fc-list-item-title ' + n.widgetContentClass + '\"><a' + (o ? ' href=\"' + tt(o) + '\"' : \"\") + \">\" + tt(t.event.title || \"\") + \"</a></td></tr>\";\n }\n });\n return Ut.list = {\n \"class\": Ge,\n buttonTextKey: \"list\",\n defaults: {\n buttonText: \"list\",\n listDayFormat: \"LL\",\n noEventsMessage: \"No events to display\"\n }\n }, Ut.listDay = {\n type: \"list\",\n duration: {\n days: 1\n },\n defaults: {\n listDayFormat: \"dddd\"\n }\n }, Ut.listWeek = {\n type: \"list\",\n duration: {\n weeks: 1\n },\n defaults: {\n listDayFormat: \"dddd\",\n listDayAltFormat: \"LL\"\n }\n }, Ut.listMonth = {\n type: \"list\",\n duration: {\n month: 1\n },\n defaults: {\n listDayAltFormat: \"dddd\"\n }\n }, Ut.listYear = {\n type: \"list\",\n duration: {\n year: 1\n },\n defaults: {\n listDayAltFormat: \"dddd\"\n }\n }, jt;\n});\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/fullcalendar.min.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/gsdk-bootstrap-wizard.js":
/*!******************************************************************!*\
!*** ./buyercall/assets/scripts/vendor/gsdk-bootstrap-wizard.js ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/*!\n\n =========================================================\n * Bootstrap Wizard - v1.1.1\n =========================================================\n \n * Product Page: https://www.creative-tim.com/product/bootstrap-wizard\n * Copyright 2017 Creative Tim (http://www.creative-tim.com)\n * Licensed under MIT (https://github.com/creativetimofficial/bootstrap-wizard/blob/master/LICENSE.md)\n \n =========================================================\n \n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n */\n\n// Get Shit Done Kit Bootstrap Wizard Functions\n\nvar searchVisible = 0;\nvar transparent = true;\n$(document).ready(function () {\n /* Activate the tooltips */\n $('[rel=\"tooltip\"]').tooltip();\n\n // Code for the Validator\n var $validator = $('.wizard-card form').validate({\n rules: {\n firstname: {\n required: true,\n minlength: 3\n },\n lastname: {\n required: true,\n minlength: 3\n },\n email: {\n required: true,\n minlength: 3\n }\n }\n });\n\n // Wizard Initialization\n $('.wizard-card').bootstrapWizard({\n 'tabClass': 'nav nav-pills',\n 'nextSelector': '.btn-next',\n 'previousSelector': '.btn-previous',\n onNext: function onNext(tab, navigation, index) {\n var $valid = $('.wizard-card form').valid();\n if (!$valid) {\n $validator.focusInvalid();\n return false;\n }\n },\n onInit: function onInit(tab, navigation, index) {\n //check number of tabs and fill the entire row\n var $total = navigation.find('li').length,\n $width = 100 / $total,\n $wizard = navigation.closest('.wizard-card'),\n $display_width = $(document).width();\n if ($display_width < 600 && $total > 3) {\n $width = 50;\n }\n navigation.find('li').css('width', $width + '%');\n var $first_li = navigation.find('li:first-child a').html();\n var $moving_div = $('<div class=\"moving-tab\">' + $first_li + '</div>');\n $('.wizard-card .wizard-navigation').append($moving_div);\n refreshAnimation($wizard, index);\n $('.moving-tab').css('transition', 'transform 0s');\n },\n onTabClick: function onTabClick(tab, navigation, index) {\n var $valid = $('.wizard-card form').valid();\n if (!$valid) {\n return false;\n } else {\n return true;\n }\n },\n onTabShow: function onTabShow(tab, navigation, index) {\n var $total = navigation.find('li').length;\n var $current = index + 1;\n var $wizard = navigation.closest('.wizard-card');\n\n // If it's the last tab then hide the last button and show the finish instead\n if ($current >= $total) {\n $($wizard).find('.btn-next').hide();\n $($wizard).find('.btn-finish').show();\n } else {\n $($wizard).find('.btn-next').show();\n $($wizard).find('.btn-finish').hide();\n }\n var button_text = navigation.find('li:nth-child(' + $current + ') a').html();\n setTimeout(function () {\n $('.moving-tab').text(button_text);\n }, 150);\n var checkbox = $('.footer-checkbox');\n if (!index == 0) {\n $(checkbox).css({\n 'opacity': '0',\n 'visibility': 'hidden',\n 'position': 'absolute'\n });\n } else {\n $(checkbox).css({\n 'opacity': '1',\n 'visibility': 'visible'\n });\n }\n refreshAnimation($wizard, index);\n }\n });\n\n // Prepare the preview for profile picture\n $(\"#wizard-picture\").change(function () {\n readURL(this);\n });\n $('[data-toggle=\"wizard-radio\"]').click(function () {\n var $wizard = $(this).closest('.wizard-card');\n $wizard.find('[data-toggle=\"wizard-radio\"]').removeClass('active');\n $(this).addClass('active');\n $wizard.find('[type=\"radio\"]').prop('checked', false);\n $(this).find('[type=\"radio\"]').prop('checked', true);\n $(this).trigger('change:value');\n });\n $('[data-toggle=\"wizard-checkbox\"]').click(function () {\n if ($(this).hasClass('active')) {\n $(this).removeClass('active');\n $(this).find('[type=\"checkbox\"]').prop('checked', false);\n } else {\n $(this).addClass('active');\n $(this).find('[type=\"checkbox\"]').prop('checked', true);\n }\n $(this).trigger('change:value');\n });\n $('.set-full-height').css('height', 'auto');\n});\n\n//Function to show image before upload\n\nfunction readURL(input) {\n if (input.files && input.files[0]) {\n var reader = new FileReader();\n reader.onload = function (e) {\n $('#wizardPicturePreview').attr('src', e.target.result).fadeIn('slow');\n };\n reader.readAsDataURL(input.files[0]);\n }\n}\n$(window).resize(function () {\n $('.wizard-card').each(function () {\n var $wizard = $(this),\n index = $wizard.bootstrapWizard('currentIndex');\n refreshAnimation($wizard, index);\n $('.moving-tab').css({\n 'transition': 'transform 0s'\n });\n });\n});\nfunction refreshAnimation($wizard, index) {\n var total_steps = $wizard.find('li').length,\n move_distance = $wizard.width() / total_steps,\n step_width = move_distance;\n move_distance *= index;\n $wizard.find('.moving-tab').css('width', step_width);\n $('.moving-tab').css({\n 'transform': 'translate3d(' + move_distance + 'px, 0, 0)',\n 'transition': 'all 0.3s ease-out'\n });\n}\nfunction debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n timeout = null;\n if (!immediate) func.apply(context, args);\n }, wait);\n if (immediate && !timeout) func.apply(context, args);\n };\n}\n;\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/gsdk-bootstrap-wizard.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/jasny-bootstrap.min.js":
/*!****************************************************************!*\
!*** ./buyercall/assets/scripts/vendor/jasny-bootstrap.min.js ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\n * Jasny Bootstrap v3.1.3 (http://jasny.github.io/bootstrap)\n * Copyright 2012-2014 Arnold Daniels\n * Licensed under Apache-2.0 (https://github.com/jasny/bootstrap/blob/master/LICENSE)\n */\nif (\"undefined\" == typeof jQuery) throw new Error(\"Jasny Bootstrap's JavaScript requires jQuery\");\n+function (a) {\n \"use strict\";\n\n function b() {\n var a = document.createElement(\"bootstrap\"),\n b = {\n WebkitTransition: \"webkitTransitionEnd\",\n MozTransition: \"transitionend\",\n OTransition: \"oTransitionEnd otransitionend\",\n transition: \"transitionend\"\n };\n for (var c in b) if (void 0 !== a.style[c]) return {\n end: b[c]\n };\n return !1;\n }\n void 0 === a.support.transition && (a.fn.emulateTransitionEnd = function (b) {\n var c = !1,\n d = this;\n a(this).one(a.support.transition.end, function () {\n c = !0;\n });\n var e = function e() {\n c || a(d).trigger(a.support.transition.end);\n };\n return setTimeout(e, b), this;\n }, a(function () {\n a.support.transition = b();\n }));\n}(window.jQuery), +function (a) {\n \"use strict\";\n\n var b = function b(c, d) {\n this.$element = a(c), this.options = a.extend({}, b.DEFAULTS, d), this.state = null, this.placement = null, this.options.recalc && (this.calcClone(), a(window).on(\"resize\", a.proxy(this.recalc, this))), this.options.autohide && a(document).on(\"click\", a.proxy(this.autohide, this)), this.options.toggle && this.toggle(), this.options.disablescrolling && (this.options.disableScrolling = this.options.disablescrolling, delete this.options.disablescrolling);\n };\n b.DEFAULTS = {\n toggle: !0,\n placement: \"auto\",\n autohide: !0,\n recalc: !0,\n disableScrolling: !0\n }, b.prototype.offset = function () {\n switch (this.placement) {\n case \"left\":\n case \"right\":\n return this.$element.outerWidth();\n case \"top\":\n case \"bottom\":\n return this.$element.outerHeight();\n }\n }, b.prototype.calcPlacement = function () {\n function b(a, b) {\n if (\"auto\" === e.css(b)) return a;\n if (\"auto\" === e.css(a)) return b;\n var c = parseInt(e.css(a), 10),\n d = parseInt(e.css(b), 10);\n return c > d ? b : a;\n }\n if (\"auto\" !== this.options.placement) return void (this.placement = this.options.placement);\n this.$element.hasClass(\"in\") || this.$element.css(\"visiblity\", \"hidden !important\").addClass(\"in\");\n var c = a(window).width() / this.$element.width(),\n d = a(window).height() / this.$element.height(),\n e = this.$element;\n this.placement = c >= d ? b(\"left\", \"right\") : b(\"top\", \"bottom\"), \"hidden !important\" === this.$element.css(\"visibility\") && this.$element.removeClass(\"in\").css(\"visiblity\", \"\");\n }, b.prototype.opposite = function (a) {\n switch (a) {\n case \"top\":\n return \"bottom\";\n case \"left\":\n return \"right\";\n case \"bottom\":\n return \"top\";\n case \"right\":\n return \"left\";\n }\n }, b.prototype.getCanvasElements = function () {\n var b = this.options.canvas ? a(this.options.canvas) : this.$element,\n c = b.find(\"*\").filter(function () {\n return \"fixed\" === a(this).css(\"position\");\n }).not(this.options.exclude);\n return b.add(c);\n }, b.prototype.slide = function (b, c, d) {\n if (!a.support.transition) {\n var e = {};\n return e[this.placement] = \"+=\" + c, b.animate(e, 350, d);\n }\n var f = this.placement,\n g = this.opposite(f);\n b.each(function () {\n \"auto\" !== a(this).css(f) && a(this).css(f, (parseInt(a(this).css(f), 10) || 0) + c), \"auto\" !== a(this).css(g) && a(this).css(g, (parseInt(a(this).css(g), 10) || 0) - c);\n }), this.$element.one(a.support.transition.end, d).emulateTransitionEnd(350);\n }, b.prototype.disableScrolling = function () {\n var b = a(\"body\").width(),\n c = \"padding-\" + this.opposite(this.placement);\n if (void 0 === a(\"body\").data(\"offcanvas-style\") && a(\"body\").data(\"offcanvas-style\", a(\"body\").attr(\"style\") || \"\"), a(\"body\").css(\"overflow\", \"hidden\"), a(\"body\").width() > b) {\n var d = parseInt(a(\"body\").css(c), 10) + a(\"body\").width() - b;\n setTimeout(function () {\n a(\"body\").css(c, d);\n }, 1);\n }\n }, b.prototype.show = function () {\n if (!this.state) {\n var b = a.Event(\"show.bs.offcanvas\");\n if (this.$element.trigger(b), !b.isDefaultPrevented()) {\n this.state = \"slide-in\", this.calcPlacement();\n var c = this.getCanvasElements(),\n d = this.placement,\n e = this.opposite(d),\n f = this.offset();\n -1 !== c.index(this.$element) && (a(this.$element).data(\"offcanvas-style\", a(this.$element).attr(\"style\") || \"\"), this.$element.css(d, -1 * f), this.$element.css(d)), c.addClass(\"canvas-sliding\").each(function () {\n void 0 === a(this).data(\"offcanvas-style\") && a(this).data(\"offcanvas-style\", a(this).attr(\"style\") || \"\"), \"static\" === a(this).css(\"position\") && a(this).css(\"position\", \"relative\"), \"auto\" !== a(this).css(d) && \"0px\" !== a(this).css(d) || \"auto\" !== a(this).css(e) && \"0px\" !== a(this).css(e) || a(this).css(d, 0);\n }), this.options.disableScrolling && this.disableScrolling();\n var g = function g() {\n \"slide-in\" == this.state && (this.state = \"slid\", c.removeClass(\"canvas-sliding\").addClass(\"canvas-slid\"), this.$element.trigger(\"shown.bs.offcanvas\"));\n };\n setTimeout(a.proxy(function () {\n this.$element.addClass(\"in\"), this.slide(c, f, a.proxy(g, this));\n }, this), 1);\n }\n }\n }, b.prototype.hide = function () {\n if (\"slid\" === this.state) {\n var b = a.Event(\"hide.bs.offcanvas\");\n if (this.$element.trigger(b), !b.isDefaultPrevented()) {\n this.state = \"slide-out\";\n var c = a(\".canvas-slid\"),\n d = (this.placement, -1 * this.offset()),\n e = function e() {\n \"slide-out\" == this.state && (this.state = null, this.placement = null, this.$element.removeClass(\"in\"), c.removeClass(\"canvas-sliding\"), c.add(this.$element).add(\"body\").each(function () {\n a(this).attr(\"style\", a(this).data(\"offcanvas-style\")).removeData(\"offcanvas-style\");\n }), this.$element.trigger(\"hidden.bs.offcanvas\"));\n };\n c.removeClass(\"canvas-slid\").addClass(\"canvas-sliding\"), setTimeout(a.proxy(function () {\n this.slide(c, d, a.proxy(e, this));\n }, this), 1);\n }\n }\n }, b.prototype.toggle = function () {\n \"slide-in\" !== this.state && \"slide-out\" !== this.state && this[\"slid\" === this.state ? \"hide\" : \"show\"]();\n }, b.prototype.calcClone = function () {\n this.$calcClone = this.$element.clone().html(\"\").addClass(\"offcanvas-clone\").removeClass(\"in\").appendTo(a(\"body\"));\n }, b.prototype.recalc = function () {\n if (\"none\" !== this.$calcClone.css(\"display\") && (\"slid\" === this.state || \"slide-in\" === this.state)) {\n this.state = null, this.placement = null;\n var b = this.getCanvasElements();\n this.$element.removeClass(\"in\"), b.removeClass(\"canvas-slid\"), b.add(this.$element).add(\"body\").each(function () {\n a(this).attr(\"style\", a(this).data(\"offcanvas-style\")).removeData(\"offcanvas-style\");\n });\n }\n }, b.prototype.autohide = function (b) {\n 0 === a(b.target).closest(this.$element).length && this.hide();\n };\n var c = a.fn.offcanvas;\n a.fn.offcanvas = function (c) {\n return this.each(function () {\n var d = a(this),\n e = d.data(\"bs.offcanvas\"),\n f = a.extend({}, b.DEFAULTS, d.data(), \"object\" == _typeof(c) && c);\n e || d.data(\"bs.offcanvas\", e = new b(this, f)), \"string\" == typeof c && e[c]();\n });\n }, a.fn.offcanvas.Constructor = b, a.fn.offcanvas.noConflict = function () {\n return a.fn.offcanvas = c, this;\n }, a(document).on(\"click.bs.offcanvas.data-api\", \"[data-toggle=offcanvas]\", function (b) {\n var c,\n d = a(this),\n e = d.attr(\"data-target\") || b.preventDefault() || (c = d.attr(\"href\")) && c.replace(/.*(?=#[^\\s]+$)/, \"\"),\n f = a(e),\n g = f.data(\"bs.offcanvas\"),\n h = g ? \"toggle\" : d.data();\n b.stopPropagation(), g ? g.toggle() : f.offcanvas(h);\n });\n}(window.jQuery), +function (a) {\n \"use strict\";\n\n var b = function b(c, d) {\n this.$element = a(c), this.options = a.extend({}, b.DEFAULTS, d), this.$element.on(\"click.bs.rowlink\", \"td:not(.rowlink-skip)\", a.proxy(this.click, this));\n };\n b.DEFAULTS = {\n target: \"a\"\n }, b.prototype.click = function (b) {\n var c = a(b.currentTarget).closest(\"tr\").find(this.options.target)[0];\n if (a(b.target)[0] !== c) if (b.preventDefault(), c.click) c.click();else if (document.createEvent) {\n var d = document.createEvent(\"MouseEvents\");\n d.initMouseEvent(\"click\", !0, !0, window, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, null), c.dispatchEvent(d);\n }\n };\n var c = a.fn.rowlink;\n a.fn.rowlink = function (c) {\n return this.each(function () {\n var d = a(this),\n e = d.data(\"bs.rowlink\");\n e || d.data(\"bs.rowlink\", e = new b(this, c));\n });\n }, a.fn.rowlink.Constructor = b, a.fn.rowlink.noConflict = function () {\n return a.fn.rowlink = c, this;\n }, a(document).on(\"click.bs.rowlink.data-api\", '[data-link=\"row\"]', function (b) {\n if (0 === a(b.target).closest(\".rowlink-skip\").length) {\n var c = a(this);\n c.data(\"bs.rowlink\") || (c.rowlink(c.data()), a(b.target).trigger(\"click.bs.rowlink\"));\n }\n });\n}(window.jQuery), +function (a) {\n \"use strict\";\n\n var b = void 0 !== window.orientation,\n c = navigator.userAgent.toLowerCase().indexOf(\"android\") > -1,\n d = \"Microsoft Internet Explorer\" == window.navigator.appName,\n e = function e(b, d) {\n c || (this.$element = a(b), this.options = a.extend({}, e.DEFAULTS, d), this.mask = String(this.options.mask), this.init(), this.listen(), this.checkVal());\n };\n e.DEFAULTS = {\n mask: \"\",\n placeholder: \"_\",\n definitions: {\n 9: \"[0-9]\",\n a: \"[A-Za-z]\",\n w: \"[A-Za-z0-9]\",\n \"*\": \".\"\n }\n }, e.prototype.init = function () {\n var b = this.options.definitions,\n c = this.mask.length;\n this.tests = [], this.partialPosition = this.mask.length, this.firstNonMaskPos = null, a.each(this.mask.split(\"\"), a.proxy(function (a, d) {\n \"?\" == d ? (c--, this.partialPosition = a) : b[d] ? (this.tests.push(new RegExp(b[d])), null === this.firstNonMaskPos && (this.firstNonMaskPos = this.tests.length - 1)) : this.tests.push(null);\n }, this)), this.buffer = a.map(this.mask.split(\"\"), a.proxy(function (a) {\n return \"?\" != a ? b[a] ? this.options.placeholder : a : void 0;\n }, this)), this.focusText = this.$element.val(), this.$element.data(\"rawMaskFn\", a.proxy(function () {\n return a.map(this.buffer, function (a, b) {\n return this.tests[b] && a != this.options.placeholder ? a : null;\n }).join(\"\");\n }, this));\n }, e.prototype.listen = function () {\n if (!this.$element.attr(\"readonly\")) {\n var b = (d ? \"paste\" : \"input\") + \".mask\";\n this.$element.on(\"unmask.bs.inputmask\", a.proxy(this.unmask, this)).on(\"focus.bs.inputmask\", a.proxy(this.focusEvent, this)).on(\"blur.bs.inputmask\", a.proxy(this.blurEvent, this)).on(\"keydown.bs.inputmask\", a.proxy(this.keydownEvent, this)).on(\"keypress.bs.inputmask\", a.proxy(this.keypressEvent, this)).on(b, a.proxy(this.pasteEvent, this));\n }\n }, e.prototype.caret = function (a, b) {\n if (0 !== this.$element.length) {\n if (\"number\" == typeof a) return b = \"number\" == typeof b ? b : a, this.$element.each(function () {\n if (this.setSelectionRange) this.setSelectionRange(a, b);else if (this.createTextRange) {\n var c = this.createTextRange();\n c.collapse(!0), c.moveEnd(\"character\", b), c.moveStart(\"character\", a), c.select();\n }\n });\n if (this.$element[0].setSelectionRange) a = this.$element[0].selectionStart, b = this.$element[0].selectionEnd;else if (document.selection && document.selection.createRange) {\n var c = document.selection.createRange();\n a = 0 - c.duplicate().moveStart(\"character\", -1e5), b = a + c.text.length;\n }\n return {\n begin: a,\n end: b\n };\n }\n }, e.prototype.seekNext = function (a) {\n for (var b = this.mask.length; ++a <= b && !this.tests[a];);\n return a;\n }, e.prototype.seekPrev = function (a) {\n for (; --a >= 0 && !this.tests[a];);\n return a;\n }, e.prototype.shiftL = function (a, b) {\n var c = this.mask.length;\n if (!(0 > a)) {\n for (var d = a, e = this.seekNext(b); c > d; d++) if (this.tests[d]) {\n if (!(c > e && this.tests[d].test(this.buffer[e]))) break;\n this.buffer[d] = this.buffer[e], this.buffer[e] = this.options.placeholder, e = this.seekNext(e);\n }\n this.writeBuffer(), this.caret(Math.max(this.firstNonMaskPos, a));\n }\n }, e.prototype.shiftR = function (a) {\n for (var b = this.mask.length, c = a, d = this.options.placeholder; b > c; c++) if (this.tests[c]) {\n var e = this.seekNext(c),\n f = this.buffer[c];\n if (this.buffer[c] = d, !(b > e && this.tests[e].test(f))) break;\n d = f;\n }\n }, e.prototype.unmask = function () {\n this.$element.unbind(\".mask\").removeData(\"inputmask\");\n }, e.prototype.focusEvent = function () {\n this.focusText = this.$element.val();\n var a = this.mask.length,\n b = this.checkVal();\n this.writeBuffer();\n var c = this,\n d = function d() {\n b == a ? c.caret(0, b) : c.caret(b);\n };\n d(), setTimeout(d, 50);\n }, e.prototype.blurEvent = function () {\n this.checkVal(), this.$element.val() !== this.focusText && this.$element.trigger(\"change\");\n }, e.prototype.keydownEvent = function (a) {\n var c = a.which;\n if (8 == c || 46 == c || b && 127 == c) {\n var d = this.caret(),\n e = d.begin,\n f = d.end;\n return f - e === 0 && (e = 46 != c ? this.seekPrev(e) : f = this.seekNext(e - 1), f = 46 == c ? this.seekNext(f) : f), this.clearBuffer(e, f), this.shiftL(e, f - 1), !1;\n }\n return 27 == c ? (this.$element.val(this.focusText), this.caret(0, this.checkVal()), !1) : void 0;\n }, e.prototype.keypressEvent = function (a) {\n var b = this.mask.length,\n c = a.which,\n d = this.caret();\n if (a.ctrlKey || a.altKey || a.metaKey || 32 > c) return !0;\n if (c) {\n d.end - d.begin !== 0 && (this.clearBuffer(d.begin, d.end), this.shiftL(d.begin, d.end - 1));\n var e = this.seekNext(d.begin - 1);\n if (b > e) {\n var f = String.fromCharCode(c);\n if (this.tests[e].test(f)) {\n this.shiftR(e), this.buffer[e] = f, this.writeBuffer();\n var g = this.seekNext(e);\n this.caret(g);\n }\n }\n return !1;\n }\n }, e.prototype.pasteEvent = function () {\n var a = this;\n setTimeout(function () {\n a.caret(a.checkVal(!0));\n }, 0);\n }, e.prototype.clearBuffer = function (a, b) {\n for (var c = this.mask.length, d = a; b > d && c > d; d++) this.tests[d] && (this.buffer[d] = this.options.placeholder);\n }, e.prototype.writeBuffer = function () {\n return this.$element.val(this.buffer.join(\"\")).val();\n }, e.prototype.checkVal = function (a) {\n for (var b = this.mask.length, c = this.$element.val(), d = -1, e = 0, f = 0; b > e; e++) if (this.tests[e]) {\n for (this.buffer[e] = this.options.placeholder; f++ < c.length;) {\n var g = c.charAt(f - 1);\n if (this.tests[e].test(g)) {\n this.buffer[e] = g, d = e;\n break;\n }\n }\n if (f > c.length) break;\n } else this.buffer[e] == c.charAt(f) && e != this.partialPosition && (f++, d = e);\n return !a && d + 1 < this.partialPosition ? (this.$element.val(\"\"), this.clearBuffer(0, b)) : (a || d + 1 >= this.partialPosition) && (this.writeBuffer(), a || this.$element.val(this.$element.val().substring(0, d + 1))), this.partialPosition ? e : this.firstNonMaskPos;\n };\n var f = a.fn.inputmask;\n a.fn.inputmask = function (b) {\n return this.each(function () {\n var c = a(this),\n d = c.data(\"bs.inputmask\");\n d || c.data(\"bs.inputmask\", d = new e(this, b));\n });\n }, a.fn.inputmask.Constructor = e, a.fn.inputmask.noConflict = function () {\n return a.fn.inputmask = f, this;\n }, a(document).on(\"focus.bs.inputmask.data-api\", \"[data-mask]\", function () {\n var b = a(this);\n b.data(\"bs.inputmask\") || b.inputmask(b.data());\n });\n}(window.jQuery), +function (a) {\n \"use strict\";\n\n var b = \"Microsoft Internet Explorer\" == window.navigator.appName,\n c = function c(b, _c) {\n if (this.$element = a(b), this.$input = this.$element.find(\":file\"), 0 !== this.$input.length) {\n this.name = this.$input.attr(\"name\") || _c.name, this.$hidden = this.$element.find('input[type=hidden][name=\"' + this.name + '\"]'), 0 === this.$hidden.length && (this.$hidden = a('<input type=\"hidden\">').insertBefore(this.$input)), this.$preview = this.$element.find(\".fileinput-preview\");\n var d = this.$preview.css(\"height\");\n \"inline\" !== this.$preview.css(\"display\") && \"0px\" !== d && \"none\" !== d && this.$preview.css(\"line-height\", d), this.original = {\n exists: this.$element.hasClass(\"fileinput-exists\"),\n preview: this.$preview.html(),\n hiddenVal: this.$hidden.val()\n }, this.listen();\n }\n };\n c.prototype.listen = function () {\n this.$input.on(\"change.bs.fileinput\", a.proxy(this.change, this)), a(this.$input[0].form).on(\"reset.bs.fileinput\", a.proxy(this.reset, this)), this.$element.find('[data-trigger=\"fileinput\"]').on(\"click.bs.fileinput\", a.proxy(this.trigger, this)), this.$element.find('[data-dismiss=\"fileinput\"]').on(\"click.bs.fileinput\", a.proxy(this.clear, this));\n }, c.prototype.change = function (b) {\n var c = void 0 === b.target.files ? b.target && b.target.value ? [{\n name: b.target.value.replace(/^.+\\\\/, \"\")\n }] : [] : b.target.files;\n if (b.stopPropagation(), 0 === c.length) return void this.clear();\n this.$hidden.val(\"\"), this.$hidden.attr(\"name\", \"\"), this.$input.attr(\"name\", this.name);\n var d = c[0];\n if (this.$preview.length > 0 && (\"undefined\" != typeof d.type ? d.type.match(/^image\\/(gif|png|jpeg)$/) : d.name.match(/\\.(gif|png|jpe?g)$/i)) && \"undefined\" != typeof FileReader) {\n var e = new FileReader(),\n f = this.$preview,\n g = this.$element;\n e.onload = function (b) {\n var e = a(\"<img>\");\n e[0].src = b.target.result, c[0].result = b.target.result, g.find(\".fileinput-filename\").text(d.name), \"none\" != f.css(\"max-height\") && e.css(\"max-height\", parseInt(f.css(\"max-height\"), 10) - parseInt(f.css(\"padding-top\"), 10) - parseInt(f.css(\"padding-bottom\"), 10) - parseInt(f.css(\"border-top\"), 10) - parseInt(f.css(\"border-bottom\"), 10)), f.html(e), g.addClass(\"fileinput-exists\").removeClass(\"fileinput-new\"), g.trigger(\"change.bs.fileinput\", c);\n }, e.readAsDataURL(d);\n } else this.$element.find(\".fileinput-filename\").text(d.name), this.$preview.text(d.name), this.$element.addClass(\"fileinput-exists\").removeClass(\"fileinput-new\"), this.$element.trigger(\"change.bs.fileinput\");\n }, c.prototype.clear = function (a) {\n if (a && a.preventDefault(), this.$hidden.val(\"\"), this.$hidden.attr(\"name\", this.name), this.$input.attr(\"name\", \"\"), b) {\n var c = this.$input.clone(!0);\n this.$input.after(c), this.$input.remove(), this.$input = c;\n } else this.$input.val(\"\");\n this.$preview.html(\"\"), this.$element.find(\".fileinput-filename\").text(\"\"), this.$element.addClass(\"fileinput-new\").removeClass(\"fileinput-exists\"), void 0 !== a && (this.$input.trigger(\"change\"), this.$element.trigger(\"clear.bs.fileinput\"));\n }, c.prototype.reset = function () {\n this.clear(), this.$hidden.val(this.original.hiddenVal), this.$preview.html(this.original.preview), this.$element.find(\".fileinput-filename\").text(\"\"), this.original.exists ? this.$element.addClass(\"fileinput-exists\").removeClass(\"fileinput-new\") : this.$element.addClass(\"fileinput-new\").removeClass(\"fileinput-exists\"), this.$element.trigger(\"reset.bs.fileinput\");\n }, c.prototype.trigger = function (a) {\n this.$input.trigger(\"click\"), a.preventDefault();\n };\n var d = a.fn.fileinput;\n a.fn.fileinput = function (b) {\n return this.each(function () {\n var d = a(this),\n e = d.data(\"bs.fileinput\");\n e || d.data(\"bs.fileinput\", e = new c(this, b)), \"string\" == typeof b && e[b]();\n });\n }, a.fn.fileinput.Constructor = c, a.fn.fileinput.noConflict = function () {\n return a.fn.fileinput = d, this;\n }, a(document).on(\"click.fileinput.data-api\", '[data-provides=\"fileinput\"]', function (b) {\n var c = a(this);\n if (!c.data(\"bs.fileinput\")) {\n c.fileinput(c.data());\n var d = a(b.target).closest('[data-dismiss=\"fileinput\"],[data-trigger=\"fileinput\"]');\n d.length > 0 && (b.preventDefault(), d.trigger(\"click.bs.fileinput\"));\n }\n });\n}(window.jQuery);\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/jasny-bootstrap.min.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/jquery-jvectormap.js":
/*!**************************************************************!*\
!*** ./buyercall/assets/scripts/vendor/jquery-jvectormap.js ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/**\n * jVectorMap version 2.0.4\n *\n * Copyright 2011-2014, Kirill Lebedev\n *\n */\n\n(function ($) {\n var apiParams = {\n set: {\n colors: 1,\n values: 1,\n backgroundColor: 1,\n scaleColors: 1,\n normalizeFunction: 1,\n focus: 1\n },\n get: {\n selectedRegions: 1,\n selectedMarkers: 1,\n mapObject: 1,\n regionName: 1\n }\n };\n $.fn.vectorMap = function (options) {\n var map,\n methodName,\n map = this.children('.jvectormap-container').data('mapObject');\n if (options === 'addMap') {\n jvm.Map.maps[arguments[1]] = arguments[2];\n } else if ((options === 'set' || options === 'get') && apiParams[options][arguments[1]]) {\n methodName = arguments[1].charAt(0).toUpperCase() + arguments[1].substr(1);\n return map[options + methodName].apply(map, Array.prototype.slice.call(arguments, 2));\n } else {\n options = options || {};\n options.container = this;\n map = new jvm.Map(options);\n }\n return this;\n };\n})(jQuery);\n/*! Copyright (c) 2013 Brandon Aaron (http://brandon.aaron.sh)\n * Licensed under the MIT License (LICENSE.txt).\n *\n * Version: 3.1.9\n *\n * Requires: jQuery 1.2.2+\n */\n\n(function (factory) {\n if (true) {\n // AMD. Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ \"jquery\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n})(function ($) {\n var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],\n toBind = 'onwheel' in document || document.documentMode >= 9 ? ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],\n slice = Array.prototype.slice,\n nullLowestDeltaTimeout,\n lowestDelta;\n if ($.event.fixHooks) {\n for (var i = toFix.length; i;) {\n $.event.fixHooks[toFix[--i]] = $.event.mouseHooks;\n }\n }\n var special = $.event.special.mousewheel = {\n version: '3.1.9',\n setup: function setup() {\n if (this.addEventListener) {\n for (var i = toBind.length; i;) {\n this.addEventListener(toBind[--i], handler, false);\n }\n } else {\n this.onmousewheel = handler;\n }\n // Store the line height and page height for this particular element\n $.data(this, 'mousewheel-line-height', special.getLineHeight(this));\n $.data(this, 'mousewheel-page-height', special.getPageHeight(this));\n },\n teardown: function teardown() {\n if (this.removeEventListener) {\n for (var i = toBind.length; i;) {\n this.removeEventListener(toBind[--i], handler, false);\n }\n } else {\n this.onmousewheel = null;\n }\n },\n getLineHeight: function getLineHeight(elem) {\n return parseInt($(elem)['offsetParent' in $.fn ? 'offsetParent' : 'parent']().css('fontSize'), 10);\n },\n getPageHeight: function getPageHeight(elem) {\n return $(elem).height();\n },\n settings: {\n adjustOldDeltas: true\n }\n };\n $.fn.extend({\n mousewheel: function mousewheel(fn) {\n return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');\n },\n unmousewheel: function unmousewheel(fn) {\n return this.unbind('mousewheel', fn);\n }\n });\n function handler(event) {\n var orgEvent = event || window.event,\n args = slice.call(arguments, 1),\n delta = 0,\n deltaX = 0,\n deltaY = 0,\n absDelta = 0;\n event = $.event.fix(orgEvent);\n event.type = 'mousewheel';\n\n // Old school scrollwheel delta\n if ('detail' in orgEvent) {\n deltaY = orgEvent.detail * -1;\n }\n if ('wheelDelta' in orgEvent) {\n deltaY = orgEvent.wheelDelta;\n }\n if ('wheelDeltaY' in orgEvent) {\n deltaY = orgEvent.wheelDeltaY;\n }\n if ('wheelDeltaX' in orgEvent) {\n deltaX = orgEvent.wheelDeltaX * -1;\n }\n\n // Firefox < 17 horizontal scrolling related to DOMMouseScroll event\n if ('axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS) {\n deltaX = deltaY * -1;\n deltaY = 0;\n }\n\n // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy\n delta = deltaY === 0 ? deltaX : deltaY;\n\n // New school wheel delta (wheel event)\n if ('deltaY' in orgEvent) {\n deltaY = orgEvent.deltaY * -1;\n delta = deltaY;\n }\n if ('deltaX' in orgEvent) {\n deltaX = orgEvent.deltaX;\n if (deltaY === 0) {\n delta = deltaX * -1;\n }\n }\n\n // No change actually happened, no reason to go any further\n if (deltaY === 0 && deltaX === 0) {\n return;\n }\n\n // Need to convert lines and pages to pixels if we aren't already in pixels\n // There are three delta modes:\n // * deltaMode 0 is by pixels, nothing to do\n // * deltaMode 1 is by lines\n // * deltaMode 2 is by pages\n if (orgEvent.deltaMode === 1) {\n var lineHeight = $.data(this, 'mousewheel-line-height');\n delta *= lineHeight;\n deltaY *= lineHeight;\n deltaX *= lineHeight;\n } else if (orgEvent.deltaMode === 2) {\n var pageHeight = $.data(this, 'mousewheel-page-height');\n delta *= pageHeight;\n deltaY *= pageHeight;\n deltaX *= pageHeight;\n }\n\n // Store lowest absolute delta to normalize the delta values\n absDelta = Math.max(Math.abs(deltaY), Math.abs(deltaX));\n if (!lowestDelta || absDelta < lowestDelta) {\n lowestDelta = absDelta;\n\n // Adjust older deltas if necessary\n if (shouldAdjustOldDeltas(orgEvent, absDelta)) {\n lowestDelta /= 40;\n }\n }\n\n // Adjust older deltas if necessary\n if (shouldAdjustOldDeltas(orgEvent, absDelta)) {\n // Divide all the things by 40!\n delta /= 40;\n deltaX /= 40;\n deltaY /= 40;\n }\n\n // Get a whole, normalized value for the deltas\n delta = Math[delta >= 1 ? 'floor' : 'ceil'](delta / lowestDelta);\n deltaX = Math[deltaX >= 1 ? 'floor' : 'ceil'](deltaX / lowestDelta);\n deltaY = Math[deltaY >= 1 ? 'floor' : 'ceil'](deltaY / lowestDelta);\n\n // Add information to the event object\n event.deltaX = deltaX;\n event.deltaY = deltaY;\n event.deltaFactor = lowestDelta;\n // Go ahead and set deltaMode to 0 since we converted to pixels\n // Although this is a little odd since we overwrite the deltaX/Y\n // properties with normalized deltas.\n event.deltaMode = 0;\n\n // Add event and delta to the front of the arguments\n args.unshift(event, delta, deltaX, deltaY);\n\n // Clearout lowestDelta after sometime to better\n // handle multiple device types that give different\n // a different lowestDelta\n // Ex: trackpad = 3 and mouse wheel = 120\n if (nullLowestDeltaTimeout) {\n clearTimeout(nullLowestDeltaTimeout);\n }\n nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);\n return ($.event.dispatch || $.event.handle).apply(this, args);\n }\n function nullLowestDelta() {\n lowestDelta = null;\n }\n function shouldAdjustOldDeltas(orgEvent, absDelta) {\n // If this is an older event and the delta is divisable by 120,\n // then we are assuming that the browser is treating this as an\n // older mouse wheel event and that we should divide the deltas\n // by 40 to try and get a more usable deltaFactor.\n // Side note, this actually impacts the reported scroll distance\n // in older browsers and can cause scrolling to be slower than native.\n // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.\n return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;\n }\n}); /**\n * @namespace jvm Holds core methods and classes used by jVectorMap.\n */\nvar jvm = {\n /**\n * Inherits child's prototype from the parent's one.\n * @param {Function} child\n * @param {Function} parent\n */\n inherits: function inherits(child, parent) {\n function temp() {}\n temp.prototype = parent.prototype;\n child.prototype = new temp();\n child.prototype.constructor = child;\n child.parentClass = parent;\n },\n /**\n * Mixes in methods from the source constructor to the target one.\n * @param {Function} target\n * @param {Function} source\n */\n mixin: function mixin(target, source) {\n var prop;\n for (prop in source.prototype) {\n if (source.prototype.hasOwnProperty(prop)) {\n target.prototype[prop] = source.prototype[prop];\n }\n }\n },\n min: function min(values) {\n var min = Number.MAX_VALUE,\n i;\n if (values instanceof Array) {\n for (i = 0; i < values.length; i++) {\n if (values[i] < min) {\n min = values[i];\n }\n }\n } else {\n for (i in values) {\n if (values[i] < min) {\n min = values[i];\n }\n }\n }\n return min;\n },\n max: function max(values) {\n var max = Number.MIN_VALUE,\n i;\n if (values instanceof Array) {\n for (i = 0; i < values.length; i++) {\n if (values[i] > max) {\n max = values[i];\n }\n }\n } else {\n for (i in values) {\n if (values[i] > max) {\n max = values[i];\n }\n }\n }\n return max;\n },\n keys: function keys(object) {\n var keys = [],\n key;\n for (key in object) {\n keys.push(key);\n }\n return keys;\n },\n values: function values(object) {\n var values = [],\n key,\n i;\n for (i = 0; i < arguments.length; i++) {\n object = arguments[i];\n for (key in object) {\n values.push(object[key]);\n }\n }\n return values;\n },\n whenImageLoaded: function whenImageLoaded(url) {\n var deferred = new jvm.$.Deferred(),\n img = jvm.$('<img/>');\n img.error(function () {\n deferred.reject();\n }).load(function () {\n deferred.resolve(img);\n });\n img.attr('src', url);\n return deferred;\n },\n isImageUrl: function isImageUrl(s) {\n return /\\.\\w{3,4}$/.test(s);\n }\n};\njvm.$ = jQuery;\n\n/**\n * indexOf polyfill for IE < 9\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf\n */\nif (!Array.prototype.indexOf) {\n Array.prototype.indexOf = function (searchElement, fromIndex) {\n var k;\n\n // 1. Let O be the result of calling ToObject passing\n // the this value as the argument.\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n var O = Object(this);\n\n // 2. Let lenValue be the result of calling the Get\n // internal method of O with the argument \"length\".\n // 3. Let len be ToUint32(lenValue).\n var len = O.length >>> 0;\n\n // 4. If len is 0, return -1.\n if (len === 0) {\n return -1;\n }\n\n // 5. If argument fromIndex was passed let n be\n // ToInteger(fromIndex); else let n be 0.\n var n = +fromIndex || 0;\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n // 6. If n >= len, return -1.\n if (n >= len) {\n return -1;\n }\n\n // 7. If n >= 0, then Let k be n.\n // 8. Else, n<0, Let k be len - abs(n).\n // If k is less than 0, then let k be 0.\n k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n // 9. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ToString(k).\n // This is implicit for LHS operands of the in operator\n // b. Let kPresent be the result of calling the\n // HasProperty internal method of O with argument Pk.\n // This step can be combined with c\n // c. If kPresent is true, then\n // i. Let elementK be the result of calling the Get\n // internal method of O with the argument ToString(k).\n // ii. Let same be the result of applying the\n // Strict Equality Comparison Algorithm to\n // searchElement and elementK.\n // iii. If same is true, return k.\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n };\n} /**\n * Basic wrapper for DOM element.\n * @constructor\n * @param {String} name Tag name of the element\n * @param {Object} config Set of parameters to initialize element with\n */\njvm.AbstractElement = function (name, config) {\n /**\n * Underlying DOM element\n * @type {DOMElement}\n * @private\n */\n this.node = this.createElement(name);\n\n /**\n * Name of underlying element\n * @type {String}\n * @private\n */\n this.name = name;\n\n /**\n * Internal store of attributes\n * @type {Object}\n * @private\n */\n this.properties = {};\n if (config) {\n this.set(config);\n }\n};\n\n/**\n * Set attribute of the underlying DOM element.\n * @param {String} name Name of attribute\n * @param {Number|String} config Set of parameters to initialize element with\n */\njvm.AbstractElement.prototype.set = function (property, value) {\n var key;\n if (_typeof(property) === 'object') {\n for (key in property) {\n this.properties[key] = property[key];\n this.applyAttr(key, property[key]);\n }\n } else {\n this.properties[property] = value;\n this.applyAttr(property, value);\n }\n};\n\n/**\n * Returns value of attribute.\n * @param {String} name Name of attribute\n */\njvm.AbstractElement.prototype.get = function (property) {\n return this.properties[property];\n};\n\n/**\n * Applies attribute value to the underlying DOM element.\n * @param {String} name Name of attribute\n * @param {Number|String} config Value of attribute to apply\n * @private\n */\njvm.AbstractElement.prototype.applyAttr = function (property, value) {\n this.node.setAttribute(property, value);\n};\njvm.AbstractElement.prototype.remove = function () {\n jvm.$(this.node).remove();\n}; /**\n * Implements abstract vector canvas.\n * @constructor\n * @param {HTMLElement} container Container to put element to.\n * @param {Number} width Width of canvas.\n * @param {Number} height Height of canvas.\n */\njvm.AbstractCanvasElement = function (container, width, height) {\n this.container = container;\n this.setSize(width, height);\n this.rootElement = new jvm[this.classPrefix + 'GroupElement']();\n this.node.appendChild(this.rootElement.node);\n this.container.appendChild(this.node);\n};\n\n/**\n * Add element to the certain group inside of the canvas.\n * @param {HTMLElement} element Element to add to canvas.\n * @param {HTMLElement} group Group to add element into or into root group if not provided.\n */\njvm.AbstractCanvasElement.prototype.add = function (element, group) {\n group = group || this.rootElement;\n group.add(element);\n element.canvas = this;\n};\n\n/**\n * Create path and add it to the canvas.\n * @param {Object} config Parameters of path to create.\n * @param {Object} style Styles of the path to create.\n * @param {HTMLElement} group Group to add path into.\n */\njvm.AbstractCanvasElement.prototype.addPath = function (config, style, group) {\n var el = new jvm[this.classPrefix + 'PathElement'](config, style);\n this.add(el, group);\n return el;\n};\n\n/**\n * Create circle and add it to the canvas.\n * @param {Object} config Parameters of path to create.\n * @param {Object} style Styles of the path to create.\n * @param {HTMLElement} group Group to add circle into.\n */\njvm.AbstractCanvasElement.prototype.addCircle = function (config, style, group) {\n var el = new jvm[this.classPrefix + 'CircleElement'](config, style);\n this.add(el, group);\n return el;\n};\n\n/**\n * Create circle and add it to the canvas.\n * @param {Object} config Parameters of path to create.\n * @param {Object} style Styles of the path to create.\n * @param {HTMLElement} group Group to add circle into.\n */\njvm.AbstractCanvasElement.prototype.addImage = function (config, style, group) {\n var el = new jvm[this.classPrefix + 'ImageElement'](config, style);\n this.add(el, group);\n return el;\n};\n\n/**\n * Create text and add it to the canvas.\n * @param {Object} config Parameters of path to create.\n * @param {Object} style Styles of the path to create.\n * @param {HTMLElement} group Group to add circle into.\n */\njvm.AbstractCanvasElement.prototype.addText = function (config, style, group) {\n var el = new jvm[this.classPrefix + 'TextElement'](config, style);\n this.add(el, group);\n return el;\n};\n\n/**\n * Add group to the another group inside of the canvas.\n * @param {HTMLElement} group Group to add circle into or root group if not provided.\n */\njvm.AbstractCanvasElement.prototype.addGroup = function (parentGroup) {\n var el = new jvm[this.classPrefix + 'GroupElement']();\n if (parentGroup) {\n parentGroup.node.appendChild(el.node);\n } else {\n this.node.appendChild(el.node);\n }\n el.canvas = this;\n return el;\n}; /**\n * Abstract shape element. Shape element represents some visual vector or raster object.\n * @constructor\n * @param {String} name Tag name of the element.\n * @param {Object} config Set of parameters to initialize element with.\n * @param {Object} style Object with styles to set on element initialization.\n */\njvm.AbstractShapeElement = function (name, config, style) {\n this.style = style || {};\n this.style.current = this.style.current || {};\n this.isHovered = false;\n this.isSelected = false;\n this.updateStyle();\n};\n\n/**\n * Set element's style.\n * @param {Object|String} property Could be string to set only one property or object to set several style properties at once.\n * @param {String} value Value to set in case only one property should be set.\n */\njvm.AbstractShapeElement.prototype.setStyle = function (property, value) {\n var styles = {};\n if (_typeof(property) === 'object') {\n styles = property;\n } else {\n styles[property] = value;\n }\n jvm.$.extend(this.style.current, styles);\n this.updateStyle();\n};\njvm.AbstractShapeElement.prototype.updateStyle = function () {\n var attrs = {};\n jvm.AbstractShapeElement.mergeStyles(attrs, this.style.initial);\n jvm.AbstractShapeElement.mergeStyles(attrs, this.style.current);\n if (this.isHovered) {\n jvm.AbstractShapeElement.mergeStyles(attrs, this.style.hover);\n }\n if (this.isSelected) {\n jvm.AbstractShapeElement.mergeStyles(attrs, this.style.selected);\n if (this.isHovered) {\n jvm.AbstractShapeElement.mergeStyles(attrs, this.style.selectedHover);\n }\n }\n this.set(attrs);\n};\njvm.AbstractShapeElement.mergeStyles = function (styles, newStyles) {\n var key;\n newStyles = newStyles || {};\n for (key in newStyles) {\n if (newStyles[key] === null) {\n delete styles[key];\n } else {\n styles[key] = newStyles[key];\n }\n }\n}; /**\n * Wrapper for SVG element.\n * @constructor\n * @extends jvm.AbstractElement\n * @param {String} name Tag name of the element\n * @param {Object} config Set of parameters to initialize element with\n */\n\njvm.SVGElement = function (name, config) {\n jvm.SVGElement.parentClass.apply(this, arguments);\n};\njvm.inherits(jvm.SVGElement, jvm.AbstractElement);\njvm.SVGElement.svgns = \"http://www.w3.org/2000/svg\";\n\n/**\n * Creates DOM element.\n * @param {String} tagName Name of element\n * @private\n * @returns DOMElement\n */\njvm.SVGElement.prototype.createElement = function (tagName) {\n return document.createElementNS(jvm.SVGElement.svgns, tagName);\n};\n\n/**\n * Adds CSS class for underlying DOM element.\n * @param {String} className Name of CSS class name\n */\njvm.SVGElement.prototype.addClass = function (className) {\n this.node.setAttribute('class', className);\n};\n\n/**\n * Returns constructor for element by name prefixed with 'VML'.\n * @param {String} ctr Name of basic constructor to return\n * proper implementation for.\n * @returns Function\n * @private\n */\njvm.SVGElement.prototype.getElementCtr = function (ctr) {\n return jvm['SVG' + ctr];\n};\njvm.SVGElement.prototype.getBBox = function () {\n return this.node.getBBox();\n};\njvm.SVGGroupElement = function () {\n jvm.SVGGroupElement.parentClass.call(this, 'g');\n};\njvm.inherits(jvm.SVGGroupElement, jvm.SVGElement);\njvm.SVGGroupElement.prototype.add = function (element) {\n this.node.appendChild(element.node);\n};\njvm.SVGCanvasElement = function (container, width, height) {\n this.classPrefix = 'SVG';\n jvm.SVGCanvasElement.parentClass.call(this, 'svg');\n this.defsElement = new jvm.SVGElement('defs');\n this.node.appendChild(this.defsElement.node);\n jvm.AbstractCanvasElement.apply(this, arguments);\n};\njvm.inherits(jvm.SVGCanvasElement, jvm.SVGElement);\njvm.mixin(jvm.SVGCanvasElement, jvm.AbstractCanvasElement);\njvm.SVGCanvasElement.prototype.setSize = function (width, height) {\n this.width = width;\n this.height = height;\n this.node.setAttribute('width', width);\n this.node.setAttribute('height', height);\n};\njvm.SVGCanvasElement.prototype.applyTransformParams = function (scale, transX, transY) {\n this.scale = scale;\n this.transX = transX;\n this.transY = transY;\n this.rootElement.node.setAttribute('transform', 'scale(' + scale + ') translate(' + transX + ', ' + transY + ')');\n};\njvm.SVGShapeElement = function (name, config, style) {\n jvm.SVGShapeElement.parentClass.call(this, name, config);\n jvm.AbstractShapeElement.apply(this, arguments);\n};\njvm.inherits(jvm.SVGShapeElement, jvm.SVGElement);\njvm.mixin(jvm.SVGShapeElement, jvm.AbstractShapeElement);\njvm.SVGShapeElement.prototype.applyAttr = function (attr, value) {\n var patternEl,\n imageEl,\n that = this;\n if (attr === 'fill' && jvm.isImageUrl(value)) {\n if (!jvm.SVGShapeElement.images[value]) {\n jvm.whenImageLoaded(value).then(function (img) {\n imageEl = new jvm.SVGElement('image');\n imageEl.node.setAttributeNS('http://www.w3.org/1999/xlink', 'href', value);\n imageEl.applyAttr('x', '0');\n imageEl.applyAttr('y', '0');\n imageEl.applyAttr('width', img[0].width);\n imageEl.applyAttr('height', img[0].height);\n patternEl = new jvm.SVGElement('pattern');\n patternEl.applyAttr('id', 'image' + jvm.SVGShapeElement.imageCounter);\n patternEl.applyAttr('x', 0);\n patternEl.applyAttr('y', 0);\n patternEl.applyAttr('width', img[0].width / 2);\n patternEl.applyAttr('height', img[0].height / 2);\n patternEl.applyAttr('viewBox', '0 0 ' + img[0].width + ' ' + img[0].height);\n patternEl.applyAttr('patternUnits', 'userSpaceOnUse');\n patternEl.node.appendChild(imageEl.node);\n that.canvas.defsElement.node.appendChild(patternEl.node);\n jvm.SVGShapeElement.images[value] = jvm.SVGShapeElement.imageCounter++;\n that.applyAttr('fill', 'url(#image' + jvm.SVGShapeElement.images[value] + ')');\n });\n } else {\n this.applyAttr('fill', 'url(#image' + jvm.SVGShapeElement.images[value] + ')');\n }\n } else {\n jvm.SVGShapeElement.parentClass.prototype.applyAttr.apply(this, arguments);\n }\n};\njvm.SVGShapeElement.imageCounter = 1;\njvm.SVGShapeElement.images = {};\njvm.SVGPathElement = function (config, style) {\n jvm.SVGPathElement.parentClass.call(this, 'path', config, style);\n this.node.setAttribute('fill-rule', 'evenodd');\n};\njvm.inherits(jvm.SVGPathElement, jvm.SVGShapeElement);\njvm.SVGCircleElement = function (config, style) {\n jvm.SVGCircleElement.parentClass.call(this, 'circle', config, style);\n};\njvm.inherits(jvm.SVGCircleElement, jvm.SVGShapeElement);\njvm.SVGImageElement = function (config, style) {\n jvm.SVGImageElement.parentClass.call(this, 'image', config, style);\n};\njvm.inherits(jvm.SVGImageElement, jvm.SVGShapeElement);\njvm.SVGImageElement.prototype.applyAttr = function (attr, value) {\n var that = this;\n if (attr == 'image') {\n jvm.whenImageLoaded(value).then(function (img) {\n that.node.setAttributeNS('http://www.w3.org/1999/xlink', 'href', value);\n that.width = img[0].width;\n that.height = img[0].height;\n that.applyAttr('width', that.width);\n that.applyAttr('height', that.height);\n that.applyAttr('x', that.cx - that.width / 2);\n that.applyAttr('y', that.cy - that.height / 2);\n jvm.$(that.node).trigger('imageloaded', [img]);\n });\n } else if (attr == 'cx') {\n this.cx = value;\n if (this.width) {\n this.applyAttr('x', value - this.width / 2);\n }\n } else if (attr == 'cy') {\n this.cy = value;\n if (this.height) {\n this.applyAttr('y', value - this.height / 2);\n }\n } else {\n jvm.SVGImageElement.parentClass.prototype.applyAttr.apply(this, arguments);\n }\n};\njvm.SVGTextElement = function (config, style) {\n jvm.SVGTextElement.parentClass.call(this, 'text', config, style);\n};\njvm.inherits(jvm.SVGTextElement, jvm.SVGShapeElement);\njvm.SVGTextElement.prototype.applyAttr = function (attr, value) {\n if (attr === 'text') {\n this.node.textContent = value;\n } else {\n jvm.SVGTextElement.parentClass.prototype.applyAttr.apply(this, arguments);\n }\n}; /**\n * Wrapper for VML element.\n * @constructor\n * @extends jvm.AbstractElement\n * @param {String} name Tag name of the element\n * @param {Object} config Set of parameters to initialize element with\n */\n\njvm.VMLElement = function (name, config) {\n if (!jvm.VMLElement.VMLInitialized) {\n jvm.VMLElement.initializeVML();\n }\n jvm.VMLElement.parentClass.apply(this, arguments);\n};\njvm.inherits(jvm.VMLElement, jvm.AbstractElement);\n\n/**\n * Shows if VML was already initialized for the current document or not.\n * @static\n * @private\n * @type {Boolean}\n */\njvm.VMLElement.VMLInitialized = false;\n\n/**\n * Initializes VML handling before creating the first element\n * (adds CSS class and creates namespace). Adds one of two forms\n * of createElement method depending of support by browser.\n * @static\n * @private\n */\n\n// The following method of VML handling is borrowed from the\n// Raphael library by Dmitry Baranovsky.\n\njvm.VMLElement.initializeVML = function () {\n try {\n if (!document.namespaces.rvml) {\n document.namespaces.add(\"rvml\", \"urn:schemas-microsoft-com:vml\");\n }\n /**\n * Creates DOM element.\n * @param {String} tagName Name of element\n * @private\n * @returns DOMElement\n */\n jvm.VMLElement.prototype.createElement = function (tagName) {\n return document.createElement('<rvml:' + tagName + ' class=\"rvml\">');\n };\n } catch (e) {\n /**\n * @private\n */\n jvm.VMLElement.prototype.createElement = function (tagName) {\n return document.createElement('<' + tagName + ' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"rvml\">');\n };\n }\n document.createStyleSheet().addRule(\".rvml\", \"behavior:url(#default#VML)\");\n jvm.VMLElement.VMLInitialized = true;\n};\n\n/**\n * Returns constructor for element by name prefixed with 'VML'.\n * @param {String} ctr Name of basic constructor to return\n * proper implementation for.\n * @returns Function\n * @private\n */\njvm.VMLElement.prototype.getElementCtr = function (ctr) {\n return jvm['VML' + ctr];\n};\n\n/**\n * Adds CSS class for underlying DOM element.\n * @param {String} className Name of CSS class name\n */\njvm.VMLElement.prototype.addClass = function (className) {\n jvm.$(this.node).addClass(className);\n};\n\n/**\n * Applies attribute value to the underlying DOM element.\n * @param {String} name Name of attribute\n * @param {Number|String} config Value of attribute to apply\n * @private\n */\njvm.VMLElement.prototype.applyAttr = function (attr, value) {\n this.node[attr] = value;\n};\n\n/**\n * Returns boundary box for the element.\n * @returns {Object} Boundary box with numeric fields: x, y, width, height\n * @override\n */\njvm.VMLElement.prototype.getBBox = function () {\n var node = jvm.$(this.node);\n return {\n x: node.position().left / this.canvas.scale,\n y: node.position().top / this.canvas.scale,\n width: node.width() / this.canvas.scale,\n height: node.height() / this.canvas.scale\n };\n};\njvm.VMLGroupElement = function () {\n jvm.VMLGroupElement.parentClass.call(this, 'group');\n this.node.style.left = '0px';\n this.node.style.top = '0px';\n this.node.coordorigin = \"0 0\";\n};\njvm.inherits(jvm.VMLGroupElement, jvm.VMLElement);\njvm.VMLGroupElement.prototype.add = function (element) {\n this.node.appendChild(element.node);\n};\njvm.VMLCanvasElement = function (container, width, height) {\n this.classPrefix = 'VML';\n jvm.VMLCanvasElement.parentClass.call(this, 'group');\n jvm.AbstractCanvasElement.apply(this, arguments);\n this.node.style.position = 'absolute';\n};\njvm.inherits(jvm.VMLCanvasElement, jvm.VMLElement);\njvm.mixin(jvm.VMLCanvasElement, jvm.AbstractCanvasElement);\njvm.VMLCanvasElement.prototype.setSize = function (width, height) {\n var paths, groups, i, l;\n this.width = width;\n this.height = height;\n this.node.style.width = width + \"px\";\n this.node.style.height = height + \"px\";\n this.node.coordsize = width + ' ' + height;\n this.node.coordorigin = \"0 0\";\n if (this.rootElement) {\n paths = this.rootElement.node.getElementsByTagName('shape');\n for (i = 0, l = paths.length; i < l; i++) {\n paths[i].coordsize = width + ' ' + height;\n paths[i].style.width = width + 'px';\n paths[i].style.height = height + 'px';\n }\n groups = this.node.getElementsByTagName('group');\n for (i = 0, l = groups.length; i < l; i++) {\n groups[i].coordsize = width + ' ' + height;\n groups[i].style.width = width + 'px';\n groups[i].style.height = height + 'px';\n }\n }\n};\njvm.VMLCanvasElement.prototype.applyTransformParams = function (scale, transX, transY) {\n this.scale = scale;\n this.transX = transX;\n this.transY = transY;\n this.rootElement.node.coordorigin = this.width - transX - this.width / 100 + ',' + (this.height - transY - this.height / 100);\n this.rootElement.node.coordsize = this.width / scale + ',' + this.height / scale;\n};\njvm.VMLShapeElement = function (name, config) {\n jvm.VMLShapeElement.parentClass.call(this, name, config);\n this.fillElement = new jvm.VMLElement('fill');\n this.strokeElement = new jvm.VMLElement('stroke');\n this.node.appendChild(this.fillElement.node);\n this.node.appendChild(this.strokeElement.node);\n this.node.stroked = false;\n jvm.AbstractShapeElement.apply(this, arguments);\n};\njvm.inherits(jvm.VMLShapeElement, jvm.VMLElement);\njvm.mixin(jvm.VMLShapeElement, jvm.AbstractShapeElement);\njvm.VMLShapeElement.prototype.applyAttr = function (attr, value) {\n switch (attr) {\n case 'fill':\n this.node.fillcolor = value;\n break;\n case 'fill-opacity':\n this.fillElement.node.opacity = Math.round(value * 100) + '%';\n break;\n case 'stroke':\n if (value === 'none') {\n this.node.stroked = false;\n } else {\n this.node.stroked = true;\n }\n this.node.strokecolor = value;\n break;\n case 'stroke-opacity':\n this.strokeElement.node.opacity = Math.round(value * 100) + '%';\n break;\n case 'stroke-width':\n if (parseInt(value, 10) === 0) {\n this.node.stroked = false;\n } else {\n this.node.stroked = true;\n }\n this.node.strokeweight = value;\n break;\n case 'd':\n this.node.path = jvm.VMLPathElement.pathSvgToVml(value);\n break;\n default:\n jvm.VMLShapeElement.parentClass.prototype.applyAttr.apply(this, arguments);\n }\n};\njvm.VMLPathElement = function (config, style) {\n var scale = new jvm.VMLElement('skew');\n jvm.VMLPathElement.parentClass.call(this, 'shape', config, style);\n this.node.coordorigin = \"0 0\";\n scale.node.on = true;\n scale.node.matrix = '0.01,0,0,0.01,0,0';\n scale.node.offset = '0,0';\n this.node.appendChild(scale.node);\n};\njvm.inherits(jvm.VMLPathElement, jvm.VMLShapeElement);\njvm.VMLPathElement.prototype.applyAttr = function (attr, value) {\n if (attr === 'd') {\n this.node.path = jvm.VMLPathElement.pathSvgToVml(value);\n } else {\n jvm.VMLShapeElement.prototype.applyAttr.call(this, attr, value);\n }\n};\njvm.VMLPathElement.pathSvgToVml = function (path) {\n var cx = 0,\n cy = 0,\n ctrlx,\n ctrly;\n path = path.replace(/(-?\\d+)e(-?\\d+)/g, '0');\n return path.replace(/([MmLlHhVvCcSs])\\s*((?:-?\\d*(?:\\.\\d+)?\\s*,?\\s*)+)/g, function (segment, letter, coords, index) {\n coords = coords.replace(/(\\d)-/g, '$1,-').replace(/^\\s+/g, '').replace(/\\s+$/g, '').replace(/\\s+/g, ',').split(',');\n if (!coords[0]) coords.shift();\n for (var i = 0, l = coords.length; i < l; i++) {\n coords[i] = Math.round(100 * coords[i]);\n }\n switch (letter) {\n case 'm':\n cx += coords[0];\n cy += coords[1];\n return 't' + coords.join(',');\n case 'M':\n cx = coords[0];\n cy = coords[1];\n return 'm' + coords.join(',');\n case 'l':\n cx += coords[0];\n cy += coords[1];\n return 'r' + coords.join(',');\n case 'L':\n cx = coords[0];\n cy = coords[1];\n return 'l' + coords.join(',');\n case 'h':\n cx += coords[0];\n return 'r' + coords[0] + ',0';\n case 'H':\n cx = coords[0];\n return 'l' + cx + ',' + cy;\n case 'v':\n cy += coords[0];\n return 'r0,' + coords[0];\n case 'V':\n cy = coords[0];\n return 'l' + cx + ',' + cy;\n case 'c':\n ctrlx = cx + coords[coords.length - 4];\n ctrly = cy + coords[coords.length - 3];\n cx += coords[coords.length - 2];\n cy += coords[coords.length - 1];\n return 'v' + coords.join(',');\n case 'C':\n ctrlx = coords[coords.length - 4];\n ctrly = coords[coords.length - 3];\n cx = coords[coords.length - 2];\n cy = coords[coords.length - 1];\n return 'c' + coords.join(',');\n case 's':\n coords.unshift(cy - ctrly);\n coords.unshift(cx - ctrlx);\n ctrlx = cx + coords[coords.length - 4];\n ctrly = cy + coords[coords.length - 3];\n cx += coords[coords.length - 2];\n cy += coords[coords.length - 1];\n return 'v' + coords.join(',');\n case 'S':\n coords.unshift(cy + cy - ctrly);\n coords.unshift(cx + cx - ctrlx);\n ctrlx = coords[coords.length - 4];\n ctrly = coords[coords.length - 3];\n cx = coords[coords.length - 2];\n cy = coords[coords.length - 1];\n return 'c' + coords.join(',');\n }\n return '';\n }).replace(/z/g, 'e');\n};\njvm.VMLCircleElement = function (config, style) {\n jvm.VMLCircleElement.parentClass.call(this, 'oval', config, style);\n};\njvm.inherits(jvm.VMLCircleElement, jvm.VMLShapeElement);\njvm.VMLCircleElement.prototype.applyAttr = function (attr, value) {\n switch (attr) {\n case 'r':\n this.node.style.width = value * 2 + 'px';\n this.node.style.height = value * 2 + 'px';\n this.applyAttr('cx', this.get('cx') || 0);\n this.applyAttr('cy', this.get('cy') || 0);\n break;\n case 'cx':\n if (!value) return;\n this.node.style.left = value - (this.get('r') || 0) + 'px';\n break;\n case 'cy':\n if (!value) return;\n this.node.style.top = value - (this.get('r') || 0) + 'px';\n break;\n default:\n jvm.VMLCircleElement.parentClass.prototype.applyAttr.call(this, attr, value);\n }\n}; /**\n * Class for vector images manipulations.\n * @constructor\n * @param {DOMElement} container to place canvas to\n * @param {Number} width\n * @param {Number} height\n */\njvm.VectorCanvas = function (container, width, height) {\n this.mode = window.SVGAngle ? 'svg' : 'vml';\n if (this.mode == 'svg') {\n this.impl = new jvm.SVGCanvasElement(container, width, height);\n } else {\n this.impl = new jvm.VMLCanvasElement(container, width, height);\n }\n this.impl.mode = this.mode;\n return this.impl;\n};\njvm.SimpleScale = function (scale) {\n this.scale = scale;\n};\njvm.SimpleScale.prototype.getValue = function (value) {\n return value;\n};\njvm.OrdinalScale = function (scale) {\n this.scale = scale;\n};\njvm.OrdinalScale.prototype.getValue = function (value) {\n return this.scale[value];\n};\njvm.OrdinalScale.prototype.getTicks = function () {\n var ticks = [],\n key;\n for (key in this.scale) {\n ticks.push({\n label: key,\n value: this.scale[key]\n });\n }\n return ticks;\n};\njvm.NumericScale = function (scale, normalizeFunction, minValue, maxValue) {\n this.scale = [];\n normalizeFunction = normalizeFunction || 'linear';\n if (scale) this.setScale(scale);\n if (normalizeFunction) this.setNormalizeFunction(normalizeFunction);\n if (typeof minValue !== 'undefined') this.setMin(minValue);\n if (typeof maxValue !== 'undefined') this.setMax(maxValue);\n};\njvm.NumericScale.prototype = {\n setMin: function setMin(min) {\n this.clearMinValue = min;\n if (typeof this.normalize === 'function') {\n this.minValue = this.normalize(min);\n } else {\n this.minValue = min;\n }\n },\n setMax: function setMax(max) {\n this.clearMaxValue = max;\n if (typeof this.normalize === 'function') {\n this.maxValue = this.normalize(max);\n } else {\n this.maxValue = max;\n }\n },\n setScale: function setScale(scale) {\n var i;\n this.scale = [];\n for (i = 0; i < scale.length; i++) {\n this.scale[i] = [scale[i]];\n }\n },\n setNormalizeFunction: function setNormalizeFunction(f) {\n if (f === 'polynomial') {\n this.normalize = function (value) {\n return Math.pow(value, 0.2);\n };\n } else if (f === 'linear') {\n delete this.normalize;\n } else {\n this.normalize = f;\n }\n this.setMin(this.clearMinValue);\n this.setMax(this.clearMaxValue);\n },\n getValue: function getValue(value) {\n var lengthes = [],\n fullLength = 0,\n l,\n i = 0,\n c;\n if (typeof this.normalize === 'function') {\n value = this.normalize(value);\n }\n for (i = 0; i < this.scale.length - 1; i++) {\n l = this.vectorLength(this.vectorSubtract(this.scale[i + 1], this.scale[i]));\n lengthes.push(l);\n fullLength += l;\n }\n c = (this.maxValue - this.minValue) / fullLength;\n for (i = 0; i < lengthes.length; i++) {\n lengthes[i] *= c;\n }\n i = 0;\n value -= this.minValue;\n while (value - lengthes[i] >= 0) {\n value -= lengthes[i];\n i++;\n }\n if (i == this.scale.length - 1) {\n value = this.vectorToNum(this.scale[i]);\n } else {\n value = this.vectorToNum(this.vectorAdd(this.scale[i], this.vectorMult(this.vectorSubtract(this.scale[i + 1], this.scale[i]), value / lengthes[i])));\n }\n return value;\n },\n vectorToNum: function vectorToNum(vector) {\n var num = 0,\n i;\n for (i = 0; i < vector.length; i++) {\n num += Math.round(vector[i]) * Math.pow(256, vector.length - i - 1);\n }\n return num;\n },\n vectorSubtract: function vectorSubtract(vector1, vector2) {\n var vector = [],\n i;\n for (i = 0; i < vector1.length; i++) {\n vector[i] = vector1[i] - vector2[i];\n }\n return vector;\n },\n vectorAdd: function vectorAdd(vector1, vector2) {\n var vector = [],\n i;\n for (i = 0; i < vector1.length; i++) {\n vector[i] = vector1[i] + vector2[i];\n }\n return vector;\n },\n vectorMult: function vectorMult(vector, num) {\n var result = [],\n i;\n for (i = 0; i < vector.length; i++) {\n result[i] = vector[i] * num;\n }\n return result;\n },\n vectorLength: function vectorLength(vector) {\n var result = 0,\n i;\n for (i = 0; i < vector.length; i++) {\n result += vector[i] * vector[i];\n }\n return Math.sqrt(result);\n },\n /* Derived from d3 implementation https://github.com/mbostock/d3/blob/master/src/scale/linear.js#L94 */\n getTicks: function getTicks() {\n var m = 5,\n extent = [this.clearMinValue, this.clearMaxValue],\n span = extent[1] - extent[0],\n step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)),\n err = m / span * step,\n ticks = [],\n tick,\n v;\n if (err <= .15) step *= 10;else if (err <= .35) step *= 5;else if (err <= .75) step *= 2;\n extent[0] = Math.floor(extent[0] / step) * step;\n extent[1] = Math.ceil(extent[1] / step) * step;\n tick = extent[0];\n while (tick <= extent[1]) {\n if (tick == extent[0]) {\n v = this.clearMinValue;\n } else if (tick == extent[1]) {\n v = this.clearMaxValue;\n } else {\n v = tick;\n }\n ticks.push({\n label: tick,\n value: this.getValue(v)\n });\n tick += step;\n }\n return ticks;\n }\n};\njvm.ColorScale = function (colors, normalizeFunction, minValue, maxValue) {\n jvm.ColorScale.parentClass.apply(this, arguments);\n};\njvm.inherits(jvm.ColorScale, jvm.NumericScale);\njvm.ColorScale.prototype.setScale = function (scale) {\n var i;\n for (i = 0; i < scale.length; i++) {\n this.scale[i] = jvm.ColorScale.rgbToArray(scale[i]);\n }\n};\njvm.ColorScale.prototype.getValue = function (value) {\n return jvm.ColorScale.numToRgb(jvm.ColorScale.parentClass.prototype.getValue.call(this, value));\n};\njvm.ColorScale.arrayToRgb = function (ar) {\n var rgb = '#',\n d,\n i;\n for (i = 0; i < ar.length; i++) {\n d = ar[i].toString(16);\n rgb += d.length == 1 ? '0' + d : d;\n }\n return rgb;\n};\njvm.ColorScale.numToRgb = function (num) {\n num = num.toString(16);\n while (num.length < 6) {\n num = '0' + num;\n }\n return '#' + num;\n};\njvm.ColorScale.rgbToArray = function (rgb) {\n rgb = rgb.substr(1);\n return [parseInt(rgb.substr(0, 2), 16), parseInt(rgb.substr(2, 2), 16), parseInt(rgb.substr(4, 2), 16)];\n}; /**\n * Represents map legend.\n * @constructor\n * @param {Object} params Configuration parameters.\n * @param {String} params.cssClass Additional CSS class to apply to legend element.\n * @param {Boolean} params.vertical If <code>true</code> legend will be rendered as vertical.\n * @param {String} params.title Legend title.\n * @param {Function} params.labelRender Method to convert series values to legend labels.\n */\njvm.Legend = function (params) {\n this.params = params || {};\n this.map = this.params.map;\n this.series = this.params.series;\n this.body = jvm.$('<div/>');\n this.body.addClass('jvectormap-legend');\n if (this.params.cssClass) {\n this.body.addClass(this.params.cssClass);\n }\n if (params.vertical) {\n this.map.legendCntVertical.append(this.body);\n } else {\n this.map.legendCntHorizontal.append(this.body);\n }\n this.render();\n};\njvm.Legend.prototype.render = function () {\n var ticks = this.series.scale.getTicks(),\n i,\n inner = jvm.$('<div/>').addClass('jvectormap-legend-inner'),\n tick,\n sample,\n label;\n this.body.html('');\n if (this.params.title) {\n this.body.append(jvm.$('<div/>').addClass('jvectormap-legend-title').html(this.params.title));\n }\n this.body.append(inner);\n for (i = 0; i < ticks.length; i++) {\n tick = jvm.$('<div/>').addClass('jvectormap-legend-tick');\n sample = jvm.$('<div/>').addClass('jvectormap-legend-tick-sample');\n switch (this.series.params.attribute) {\n case 'fill':\n if (jvm.isImageUrl(ticks[i].value)) {\n sample.css('background', 'url(' + ticks[i].value + ')');\n } else {\n sample.css('background', ticks[i].value);\n }\n break;\n case 'stroke':\n sample.css('background', ticks[i].value);\n break;\n case 'image':\n sample.css('background', 'url(' + ticks[i].value + ') no-repeat center center');\n break;\n case 'r':\n jvm.$('<div/>').css({\n 'border-radius': ticks[i].value,\n border: this.map.params.markerStyle.initial['stroke-width'] + 'px ' + this.map.params.markerStyle.initial['stroke'] + ' solid',\n width: ticks[i].value * 2 + 'px',\n height: ticks[i].value * 2 + 'px',\n background: this.map.params.markerStyle.initial['fill']\n }).appendTo(sample);\n break;\n }\n tick.append(sample);\n label = ticks[i].label;\n if (this.params.labelRender) {\n label = this.params.labelRender(label);\n }\n tick.append(jvm.$('<div>' + label + ' </div>').addClass('jvectormap-legend-tick-text'));\n inner.append(tick);\n }\n inner.append(jvm.$('<div/>').css('clear', 'both'));\n}; /**\n * Creates data series.\n * @constructor\n * @param {Object} params Parameters to initialize series with.\n * @param {Array} params.values The data set to visualize.\n * @param {String} params.attribute Numberic or color attribute to use for data visualization. This could be: <code>fill</code>, <code>stroke</code>, <code>fill-opacity</code>, <code>stroke-opacity</code> for markers and regions and <code>r</code> (radius) for markers only.\n * @param {Array} params.scale Values used to map a dimension of data to a visual representation. The first value sets visualization for minimum value from the data set and the last value sets visualization for the maximum value. There also could be intermidiate values. Default value is <code>['#C8EEFF', '#0071A4']</code>\n * @param {Function|String} params.normalizeFunction The function used to map input values to the provided scale. This parameter could be provided as function or one of the strings: <code>'linear'</code> or <code>'polynomial'</code>, while <code>'linear'</code> is used by default. The function provided takes value from the data set as an input and returns corresponding value from the scale.\n * @param {Number} params.min Minimum value of the data set. Could be calculated automatically if not provided.\n * @param {Number} params.min Maximum value of the data set. Could be calculated automatically if not provided.\n */\njvm.DataSeries = function (params, elements, map) {\n var scaleConstructor;\n params = params || {};\n params.attribute = params.attribute || 'fill';\n this.elements = elements;\n this.params = params;\n this.map = map;\n if (params.attributes) {\n this.setAttributes(params.attributes);\n }\n if (jvm.$.isArray(params.scale)) {\n scaleConstructor = params.attribute === 'fill' || params.attribute === 'stroke' ? jvm.ColorScale : jvm.NumericScale;\n this.scale = new scaleConstructor(params.scale, params.normalizeFunction, params.min, params.max);\n } else if (params.scale) {\n this.scale = new jvm.OrdinalScale(params.scale);\n } else {\n this.scale = new jvm.SimpleScale(params.scale);\n }\n this.values = params.values || {};\n this.setValues(this.values);\n if (this.params.legend) {\n this.legend = new jvm.Legend($.extend({\n map: this.map,\n series: this\n }, this.params.legend));\n }\n};\njvm.DataSeries.prototype = {\n setAttributes: function setAttributes(key, attr) {\n var attrs = key,\n code;\n if (typeof key == 'string') {\n if (this.elements[key]) {\n this.elements[key].setStyle(this.params.attribute, attr);\n }\n } else {\n for (code in attrs) {\n if (this.elements[code]) {\n this.elements[code].element.setStyle(this.params.attribute, attrs[code]);\n }\n }\n }\n },\n /**\n * Set values for the data set.\n * @param {Object} values Object which maps codes of regions or markers to values.\n */\n setValues: function setValues(values) {\n var max = -Number.MAX_VALUE,\n min = Number.MAX_VALUE,\n val,\n cc,\n attrs = {};\n if (!(this.scale instanceof jvm.OrdinalScale) && !(this.scale instanceof jvm.SimpleScale)) {\n // we have a color scale as an array\n if (typeof this.params.min === 'undefined' || typeof this.params.max === 'undefined') {\n // min and/or max are not defined, so calculate them\n for (cc in values) {\n val = parseFloat(values[cc]);\n if (val > max) max = val;\n if (val < min) min = val;\n }\n }\n if (typeof this.params.min === 'undefined') {\n this.scale.setMin(min);\n this.params.min = min;\n } else {\n this.scale.setMin(this.params.min);\n }\n if (typeof this.params.max === 'undefined') {\n this.scale.setMax(max);\n this.params.max = max;\n } else {\n this.scale.setMax(this.params.max);\n }\n for (cc in values) {\n if (cc != 'indexOf') {\n val = parseFloat(values[cc]);\n if (!isNaN(val)) {\n attrs[cc] = this.scale.getValue(val);\n } else {\n attrs[cc] = this.elements[cc].element.style.initial[this.params.attribute];\n }\n }\n }\n } else {\n for (cc in values) {\n if (values[cc]) {\n attrs[cc] = this.scale.getValue(values[cc]);\n } else {\n attrs[cc] = this.elements[cc].element.style.initial[this.params.attribute];\n }\n }\n }\n this.setAttributes(attrs);\n jvm.$.extend(this.values, values);\n },\n clear: function clear() {\n var key,\n attrs = {};\n for (key in this.values) {\n if (this.elements[key]) {\n attrs[key] = this.elements[key].element.shape.style.initial[this.params.attribute];\n }\n }\n this.setAttributes(attrs);\n this.values = {};\n },\n /**\n * Set scale of the data series.\n * @param {Array} scale Values representing scale.\n */\n setScale: function setScale(scale) {\n this.scale.setScale(scale);\n if (this.values) {\n this.setValues(this.values);\n }\n },\n /**\n * Set normalize function of the data series.\n * @param {Function|String} normilizeFunction.\n */\n setNormalizeFunction: function setNormalizeFunction(f) {\n this.scale.setNormalizeFunction(f);\n if (this.values) {\n this.setValues(this.values);\n }\n }\n};\n/**\n * Contains methods for transforming point on sphere to\n * Cartesian coordinates using various projections.\n * @class\n */\njvm.Proj = {\n degRad: 180 / Math.PI,\n radDeg: Math.PI / 180,\n radius: 6381372,\n sgn: function sgn(n) {\n if (n > 0) {\n return 1;\n } else if (n < 0) {\n return -1;\n } else {\n return n;\n }\n },\n /**\n * Converts point on sphere to the Cartesian coordinates using Miller projection\n * @param {Number} lat Latitude in degrees\n * @param {Number} lng Longitude in degrees\n * @param {Number} c Central meridian in degrees\n */\n mill: function mill(lat, lng, c) {\n return {\n x: this.radius * (lng - c) * this.radDeg,\n y: -this.radius * Math.log(Math.tan((45 + 0.4 * lat) * this.radDeg)) / 0.8\n };\n },\n /**\n * Inverse function of mill()\n * Converts Cartesian coordinates to point on sphere using Miller projection\n * @param {Number} x X of point in Cartesian system as integer\n * @param {Number} y Y of point in Cartesian system as integer\n * @param {Number} c Central meridian in degrees\n */\n mill_inv: function mill_inv(x, y, c) {\n return {\n lat: (2.5 * Math.atan(Math.exp(0.8 * y / this.radius)) - 5 * Math.PI / 8) * this.degRad,\n lng: (c * this.radDeg + x / this.radius) * this.degRad\n };\n },\n /**\n * Converts point on sphere to the Cartesian coordinates using Mercator projection\n * @param {Number} lat Latitude in degrees\n * @param {Number} lng Longitude in degrees\n * @param {Number} c Central meridian in degrees\n */\n merc: function merc(lat, lng, c) {\n return {\n x: this.radius * (lng - c) * this.radDeg,\n y: -this.radius * Math.log(Math.tan(Math.PI / 4 + lat * Math.PI / 360))\n };\n },\n /**\n * Inverse function of merc()\n * Converts Cartesian coordinates to point on sphere using Mercator projection\n * @param {Number} x X of point in Cartesian system as integer\n * @param {Number} y Y of point in Cartesian system as integer\n * @param {Number} c Central meridian in degrees\n */\n merc_inv: function merc_inv(x, y, c) {\n return {\n lat: (2 * Math.atan(Math.exp(y / this.radius)) - Math.PI / 2) * this.degRad,\n lng: (c * this.radDeg + x / this.radius) * this.degRad\n };\n },\n /**\n * Converts point on sphere to the Cartesian coordinates using Albers Equal-Area Conic\n * projection\n * @see <a href=\"http://mathworld.wolfram.com/AlbersEqual-AreaConicProjection.html\">Albers Equal-Area Conic projection</a>\n * @param {Number} lat Latitude in degrees\n * @param {Number} lng Longitude in degrees\n * @param {Number} c Central meridian in degrees\n */\n aea: function aea(lat, lng, c) {\n var fi0 = 0,\n lambda0 = c * this.radDeg,\n fi1 = 29.5 * this.radDeg,\n fi2 = 45.5 * this.radDeg,\n fi = lat * this.radDeg,\n lambda = lng * this.radDeg,\n n = (Math.sin(fi1) + Math.sin(fi2)) / 2,\n C = Math.cos(fi1) * Math.cos(fi1) + 2 * n * Math.sin(fi1),\n theta = n * (lambda - lambda0),\n ro = Math.sqrt(C - 2 * n * Math.sin(fi)) / n,\n ro0 = Math.sqrt(C - 2 * n * Math.sin(fi0)) / n;\n return {\n x: ro * Math.sin(theta) * this.radius,\n y: -(ro0 - ro * Math.cos(theta)) * this.radius\n };\n },\n /**\n * Converts Cartesian coordinates to the point on sphere using Albers Equal-Area Conic\n * projection\n * @see <a href=\"http://mathworld.wolfram.com/AlbersEqual-AreaConicProjection.html\">Albers Equal-Area Conic projection</a>\n * @param {Number} x X of point in Cartesian system as integer\n * @param {Number} y Y of point in Cartesian system as integer\n * @param {Number} c Central meridian in degrees\n */\n aea_inv: function aea_inv(xCoord, yCoord, c) {\n var x = xCoord / this.radius,\n y = yCoord / this.radius,\n fi0 = 0,\n lambda0 = c * this.radDeg,\n fi1 = 29.5 * this.radDeg,\n fi2 = 45.5 * this.radDeg,\n n = (Math.sin(fi1) + Math.sin(fi2)) / 2,\n C = Math.cos(fi1) * Math.cos(fi1) + 2 * n * Math.sin(fi1),\n ro0 = Math.sqrt(C - 2 * n * Math.sin(fi0)) / n,\n ro = Math.sqrt(x * x + (ro0 - y) * (ro0 - y)),\n theta = Math.atan(x / (ro0 - y));\n return {\n lat: Math.asin((C - ro * ro * n * n) / (2 * n)) * this.degRad,\n lng: (lambda0 + theta / n) * this.degRad\n };\n },\n /**\n * Converts point on sphere to the Cartesian coordinates using Lambert conformal\n * conic projection\n * @see <a href=\"http://mathworld.wolfram.com/LambertConformalConicProjection.html\">Lambert Conformal Conic Projection</a>\n * @param {Number} lat Latitude in degrees\n * @param {Number} lng Longitude in degrees\n * @param {Number} c Central meridian in degrees\n */\n lcc: function lcc(lat, lng, c) {\n var fi0 = 0,\n lambda0 = c * this.radDeg,\n lambda = lng * this.radDeg,\n fi1 = 33 * this.radDeg,\n fi2 = 45 * this.radDeg,\n fi = lat * this.radDeg,\n n = Math.log(Math.cos(fi1) * (1 / Math.cos(fi2))) / Math.log(Math.tan(Math.PI / 4 + fi2 / 2) * (1 / Math.tan(Math.PI / 4 + fi1 / 2))),\n F = Math.cos(fi1) * Math.pow(Math.tan(Math.PI / 4 + fi1 / 2), n) / n,\n ro = F * Math.pow(1 / Math.tan(Math.PI / 4 + fi / 2), n),\n ro0 = F * Math.pow(1 / Math.tan(Math.PI / 4 + fi0 / 2), n);\n return {\n x: ro * Math.sin(n * (lambda - lambda0)) * this.radius,\n y: -(ro0 - ro * Math.cos(n * (lambda - lambda0))) * this.radius\n };\n },\n /**\n * Converts Cartesian coordinates to the point on sphere using Lambert conformal conic\n * projection\n * @see <a href=\"http://mathworld.wolfram.com/LambertConformalConicProjection.html\">Lambert Conformal Conic Projection</a>\n * @param {Number} x X of point in Cartesian system as integer\n * @param {Number} y Y of point in Cartesian system as integer\n * @param {Number} c Central meridian in degrees\n */\n lcc_inv: function lcc_inv(xCoord, yCoord, c) {\n var x = xCoord / this.radius,\n y = yCoord / this.radius,\n fi0 = 0,\n lambda0 = c * this.radDeg,\n fi1 = 33 * this.radDeg,\n fi2 = 45 * this.radDeg,\n n = Math.log(Math.cos(fi1) * (1 / Math.cos(fi2))) / Math.log(Math.tan(Math.PI / 4 + fi2 / 2) * (1 / Math.tan(Math.PI / 4 + fi1 / 2))),\n F = Math.cos(fi1) * Math.pow(Math.tan(Math.PI / 4 + fi1 / 2), n) / n,\n ro0 = F * Math.pow(1 / Math.tan(Math.PI / 4 + fi0 / 2), n),\n ro = this.sgn(n) * Math.sqrt(x * x + (ro0 - y) * (ro0 - y)),\n theta = Math.atan(x / (ro0 - y));\n return {\n lat: (2 * Math.atan(Math.pow(F / ro, 1 / n)) - Math.PI / 2) * this.degRad,\n lng: (lambda0 + theta / n) * this.degRad\n };\n }\n};\njvm.MapObject = function (config) {};\njvm.MapObject.prototype.getLabelText = function (key) {\n var text;\n if (this.config.label) {\n if (typeof this.config.label.render === 'function') {\n text = this.config.label.render(key);\n } else {\n text = key;\n }\n } else {\n text = null;\n }\n return text;\n};\njvm.MapObject.prototype.getLabelOffsets = function (key) {\n var offsets;\n if (this.config.label) {\n if (typeof this.config.label.offsets === 'function') {\n offsets = this.config.label.offsets(key);\n } else if (_typeof(this.config.label.offsets) === 'object') {\n offsets = this.config.label.offsets[key];\n }\n }\n return offsets || [0, 0];\n};\n\n/**\n * Set hovered state to the element. Hovered state means mouse cursor is over element. Styles will be updates respectively.\n * @param {Boolean} isHovered <code>true</code> to make element hovered, <code>false</code> otherwise.\n */\njvm.MapObject.prototype.setHovered = function (isHovered) {\n if (this.isHovered !== isHovered) {\n this.isHovered = isHovered;\n this.shape.isHovered = isHovered;\n this.shape.updateStyle();\n if (this.label) {\n this.label.isHovered = isHovered;\n this.label.updateStyle();\n }\n }\n};\n\n/**\n * Set selected state to the element. Styles will be updates respectively.\n * @param {Boolean} isSelected <code>true</code> to make element selected, <code>false</code> otherwise.\n */\njvm.MapObject.prototype.setSelected = function (isSelected) {\n if (this.isSelected !== isSelected) {\n this.isSelected = isSelected;\n this.shape.isSelected = isSelected;\n this.shape.updateStyle();\n if (this.label) {\n this.label.isSelected = isSelected;\n this.label.updateStyle();\n }\n jvm.$(this.shape).trigger('selected', [isSelected]);\n }\n};\njvm.MapObject.prototype.setStyle = function () {\n this.shape.setStyle.apply(this.shape, arguments);\n};\njvm.MapObject.prototype.remove = function () {\n this.shape.remove();\n if (this.label) {\n this.label.remove();\n }\n};\njvm.Region = function (config) {\n var bbox, text, offsets, labelDx, labelDy;\n this.config = config;\n this.map = this.config.map;\n this.shape = config.canvas.addPath({\n d: config.path,\n 'data-code': config.code\n }, config.style, config.canvas.rootElement);\n this.shape.addClass('jvectormap-region jvectormap-element');\n bbox = this.shape.getBBox();\n text = this.getLabelText(config.code);\n if (this.config.label && text) {\n offsets = this.getLabelOffsets(config.code);\n this.labelX = bbox.x + bbox.width / 2 + offsets[0];\n this.labelY = bbox.y + bbox.height / 2 + offsets[1];\n this.label = config.canvas.addText({\n text: text,\n 'text-anchor': 'middle',\n 'alignment-baseline': 'central',\n x: this.labelX,\n y: this.labelY,\n 'data-code': config.code\n }, config.labelStyle, config.labelsGroup);\n this.label.addClass('jvectormap-region jvectormap-element');\n }\n};\njvm.inherits(jvm.Region, jvm.MapObject);\njvm.Region.prototype.updateLabelPosition = function () {\n if (this.label) {\n this.label.set({\n x: this.labelX * this.map.scale + this.map.transX * this.map.scale,\n y: this.labelY * this.map.scale + this.map.transY * this.map.scale\n });\n }\n};\njvm.Marker = function (config) {\n var text, offsets;\n this.config = config;\n this.map = this.config.map;\n this.isImage = !!this.config.style.initial.image;\n this.createShape();\n text = this.getLabelText(config.index);\n if (this.config.label && text) {\n this.offsets = this.getLabelOffsets(config.index);\n this.labelX = config.cx / this.map.scale - this.map.transX;\n this.labelY = config.cy / this.map.scale - this.map.transY;\n this.label = config.canvas.addText({\n text: text,\n 'data-index': config.index,\n dy: \"0.6ex\",\n x: this.labelX,\n y: this.labelY\n }, config.labelStyle, config.labelsGroup);\n this.label.addClass('jvectormap-marker jvectormap-element');\n }\n};\njvm.inherits(jvm.Marker, jvm.MapObject);\njvm.Marker.prototype.createShape = function () {\n var that = this;\n if (this.shape) {\n this.shape.remove();\n }\n this.shape = this.config.canvas[this.isImage ? 'addImage' : 'addCircle']({\n \"data-index\": this.config.index,\n cx: this.config.cx,\n cy: this.config.cy\n }, this.config.style, this.config.group);\n this.shape.addClass('jvectormap-marker jvectormap-element');\n if (this.isImage) {\n jvm.$(this.shape.node).on('imageloaded', function () {\n that.updateLabelPosition();\n });\n }\n};\njvm.Marker.prototype.updateLabelPosition = function () {\n if (this.label) {\n this.label.set({\n x: this.labelX * this.map.scale + this.offsets[0] + this.map.transX * this.map.scale + 5 + (this.isImage ? (this.shape.width || 0) / 2 : this.shape.properties.r),\n y: this.labelY * this.map.scale + this.map.transY * this.map.scale + this.offsets[1]\n });\n }\n};\njvm.Marker.prototype.setStyle = function (property, value) {\n var isImage;\n jvm.Marker.parentClass.prototype.setStyle.apply(this, arguments);\n if (property === 'r') {\n this.updateLabelPosition();\n }\n isImage = !!this.shape.get('image');\n if (isImage != this.isImage) {\n this.isImage = isImage;\n this.config.style = jvm.$.extend(true, {}, this.shape.style);\n this.createShape();\n }\n}; /**\n * Creates map, draws paths, binds events.\n * @constructor\n * @param {Object} params Parameters to initialize map with.\n * @param {String} params.map Name of the map in the format <code>territory_proj_lang</code> where <code>territory</code> is a unique code or name of the territory which the map represents (ISO 3166 standard is used where possible), <code>proj</code> is a name of projection used to generate representation of the map on the plane (projections are named according to the conventions of proj4 utility) and <code>lang</code> is a code of the language, used for the names of regions.\n * @param {String} params.backgroundColor Background color of the map in CSS format.\n * @param {Boolean} params.zoomOnScroll When set to true map could be zoomed using mouse scroll. Default value is <code>true</code>.\n * @param {Boolean} params.zoomOnScrollSpeed Mouse scroll speed. Number from 1 to 10. Default value is <code>3</code>.\n * @param {Boolean} params.panOnDrag When set to true, the map pans when being dragged. Default value is <code>true</code>.\n * @param {Number} params.zoomMax Indicates the maximum zoom ratio which could be reached zooming the map. Default value is <code>8</code>.\n * @param {Number} params.zoomMin Indicates the minimum zoom ratio which could be reached zooming the map. Default value is <code>1</code>.\n * @param {Number} params.zoomStep Indicates the multiplier used to zoom map with +/- buttons. Default value is <code>1.6</code>.\n * @param {Boolean} params.zoomAnimate Indicates whether or not to animate changing of map zoom with zoom buttons.\n * @param {Boolean} params.regionsSelectable When set to true regions of the map could be selected. Default value is <code>false</code>.\n * @param {Boolean} params.regionsSelectableOne Allow only one region to be selected at the moment. Default value is <code>false</code>.\n * @param {Boolean} params.markersSelectable When set to true markers on the map could be selected. Default value is <code>false</code>.\n * @param {Boolean} params.markersSelectableOne Allow only one marker to be selected at the moment. Default value is <code>false</code>.\n * @param {Object} params.regionStyle Set the styles for the map's regions. Each region or marker has four states: <code>initial</code> (default state), <code>hover</code> (when the mouse cursor is over the region or marker), <code>selected</code> (when region or marker is selected), <code>selectedHover</code> (when the mouse cursor is over the region or marker and it's selected simultaneously). Styles could be set for each of this states. Default value for that parameter is:\n <pre>{\n initial: {\n fill: 'white',\n \"fill-opacity\": 1,\n stroke: 'none',\n \"stroke-width\": 0,\n \"stroke-opacity\": 1\n },\n hover: {\n \"fill-opacity\": 0.8,\n cursor: 'pointer'\n },\n selected: {\n fill: 'yellow'\n },\n selectedHover: {\n }\n }</pre>\n * @param {Object} params.regionLabelStyle Set the styles for the regions' labels. Each region or marker has four states: <code>initial</code> (default state), <code>hover</code> (when the mouse cursor is over the region or marker), <code>selected</code> (when region or marker is selected), <code>selectedHover</code> (when the mouse cursor is over the region or marker and it's selected simultaneously). Styles could be set for each of this states. Default value for that parameter is:\n <pre>{\n initial: {\n 'font-family': 'Verdana',\n 'font-size': '12',\n 'font-weight': 'bold',\n cursor: 'default',\n fill: 'black'\n },\n hover: {\n cursor: 'pointer'\n }\n }</pre>\n * @param {Object} params.markerStyle Set the styles for the map's markers. Any parameter suitable for <code>regionStyle</code> could be used as well as numeric parameter <code>r</code> to set the marker's radius. Default value for that parameter is:\n <pre>{\n initial: {\n fill: 'grey',\n stroke: '#505050',\n \"fill-opacity\": 1,\n \"stroke-width\": 1,\n \"stroke-opacity\": 1,\n r: 5\n },\n hover: {\n stroke: 'black',\n \"stroke-width\": 2,\n cursor: 'pointer'\n },\n selected: {\n fill: 'blue'\n },\n selectedHover: {\n }\n }</pre>\n * @param {Object} params.markerLabelStyle Set the styles for the markers' labels. Default value for that parameter is:\n <pre>{\n initial: {\n 'font-family': 'Verdana',\n 'font-size': '12',\n 'font-weight': 'bold',\n cursor: 'default',\n fill: 'black'\n },\n hover: {\n cursor: 'pointer'\n }\n }</pre>\n * @param {Object|Array} params.markers Set of markers to add to the map during initialization. In case of array is provided, codes of markers will be set as string representations of array indexes. Each marker is represented by <code>latLng</code> (array of two numeric values), <code>name</code> (string which will be show on marker's tip) and any marker styles.\n * @param {Object} params.series Object with two keys: <code>markers</code> and <code>regions</code>. Each of which is an array of series configs to be applied to the respective map elements. See <a href=\"jvm.DataSeries.html\">DataSeries</a> description for a list of parameters available.\n * @param {Object|String} params.focusOn This parameter sets the initial position and scale of the map viewport. See <code>setFocus</code> docuemntation for possible parameters.\n * @param {Object} params.labels Defines parameters for rendering static labels. Object could contain two keys: <code>regions</code> and <code>markers</code>. Each key value defines configuration object with the following possible options:\n <ul>\n <li><code>render {Function}</code> - defines method for converting region code or marker index to actual label value.</li>\n <li><code>offsets {Object|Function}</code> - provides method or object which could be used to define label offset by region code or marker index.</li>\n </ul>\n <b>Plase note: static labels feature is not supported in Internet Explorer 8 and below.</b>\n * @param {Array|Object|String} params.selectedRegions Set initially selected regions.\n * @param {Array|Object|String} params.selectedMarkers Set initially selected markers.\n * @param {Function} params.onRegionTipShow <code>(Event e, Object tip, String code)</code> Will be called right before the region tip is going to be shown.\n * @param {Function} params.onRegionOver <code>(Event e, String code)</code> Will be called on region mouse over event.\n * @param {Function} params.onRegionOut <code>(Event e, String code)</code> Will be called on region mouse out event.\n * @param {Function} params.onRegionClick <code>(Event e, String code)</code> Will be called on region click event.\n * @param {Function} params.onRegionSelected <code>(Event e, String code, Boolean isSelected, Array selectedRegions)</code> Will be called when region is (de)selected. <code>isSelected</code> parameter of the callback indicates whether region is selected or not. <code>selectedRegions</code> contains codes of all currently selected regions.\n * @param {Function} params.onMarkerTipShow <code>(Event e, Object tip, String code)</code> Will be called right before the marker tip is going to be shown.\n * @param {Function} params.onMarkerOver <code>(Event e, String code)</code> Will be called on marker mouse over event.\n * @param {Function} params.onMarkerOut <code>(Event e, String code)</code> Will be called on marker mouse out event.\n * @param {Function} params.onMarkerClick <code>(Event e, String code)</code> Will be called on marker click event.\n * @param {Function} params.onMarkerSelected <code>(Event e, String code, Boolean isSelected, Array selectedMarkers)</code> Will be called when marker is (de)selected. <code>isSelected</code> parameter of the callback indicates whether marker is selected or not. <code>selectedMarkers</code> contains codes of all currently selected markers.\n * @param {Function} params.onViewportChange <code>(Event e, Number scale)</code> Triggered when the map's viewport is changed (map was panned or zoomed).\n */\njvm.Map = function (params) {\n var map = this,\n e;\n this.params = jvm.$.extend(true, {}, jvm.Map.defaultParams, params);\n if (!jvm.Map.maps[this.params.map]) {\n throw new Error('Attempt to use map which was not loaded: ' + this.params.map);\n }\n this.mapData = jvm.Map.maps[this.params.map];\n this.markers = {};\n this.regions = {};\n this.regionsColors = {};\n this.regionsData = {};\n this.container = jvm.$('<div>').addClass('jvectormap-container');\n if (this.params.container) {\n this.params.container.append(this.container);\n }\n this.container.data('mapObject', this);\n this.defaultWidth = this.mapData.width;\n this.defaultHeight = this.mapData.height;\n this.setBackgroundColor(this.params.backgroundColor);\n this.onResize = function () {\n map.updateSize();\n };\n jvm.$(window).resize(this.onResize);\n for (e in jvm.Map.apiEvents) {\n if (this.params[e]) {\n this.container.bind(jvm.Map.apiEvents[e] + '.jvectormap', this.params[e]);\n }\n }\n this.canvas = new jvm.VectorCanvas(this.container[0], this.width, this.height);\n if (this.params.bindTouchEvents) {\n if ('ontouchstart' in window || window.DocumentTouch && document instanceof DocumentTouch) {\n this.bindContainerTouchEvents();\n } else if (window.MSGesture) {\n this.bindContainerPointerEvents();\n }\n }\n this.bindContainerEvents();\n this.bindElementEvents();\n this.createTip();\n if (this.params.zoomButtons) {\n this.bindZoomButtons();\n }\n this.createRegions();\n this.createMarkers(this.params.markers || {});\n this.updateSize();\n if (this.params.focusOn) {\n if (typeof this.params.focusOn === 'string') {\n this.params.focusOn = {\n region: this.params.focusOn\n };\n } else if (jvm.$.isArray(this.params.focusOn)) {\n this.params.focusOn = {\n regions: this.params.focusOn\n };\n }\n this.setFocus(this.params.focusOn);\n }\n if (this.params.selectedRegions) {\n this.setSelectedRegions(this.params.selectedRegions);\n }\n if (this.params.selectedMarkers) {\n this.setSelectedMarkers(this.params.selectedMarkers);\n }\n this.legendCntHorizontal = jvm.$('<div/>').addClass('jvectormap-legend-cnt jvectormap-legend-cnt-h');\n this.legendCntVertical = jvm.$('<div/>').addClass('jvectormap-legend-cnt jvectormap-legend-cnt-v');\n this.container.append(this.legendCntHorizontal);\n this.container.append(this.legendCntVertical);\n if (this.params.series) {\n this.createSeries();\n }\n};\njvm.Map.prototype = {\n transX: 0,\n transY: 0,\n scale: 1,\n baseTransX: 0,\n baseTransY: 0,\n baseScale: 1,\n width: 0,\n height: 0,\n /**\n * Set background color of the map.\n * @param {String} backgroundColor Background color in CSS format.\n */\n setBackgroundColor: function setBackgroundColor(backgroundColor) {\n this.container.css('background-color', backgroundColor);\n },\n resize: function resize() {\n var curBaseScale = this.baseScale;\n if (this.width / this.height > this.defaultWidth / this.defaultHeight) {\n this.baseScale = this.height / this.defaultHeight;\n this.baseTransX = Math.abs(this.width - this.defaultWidth * this.baseScale) / (2 * this.baseScale);\n } else {\n this.baseScale = this.width / this.defaultWidth;\n this.baseTransY = Math.abs(this.height - this.defaultHeight * this.baseScale) / (2 * this.baseScale);\n }\n this.scale *= this.baseScale / curBaseScale;\n this.transX *= this.baseScale / curBaseScale;\n this.transY *= this.baseScale / curBaseScale;\n },\n /**\n * Synchronize the size of the map with the size of the container. Suitable in situations where the size of the container is changed programmatically or container is shown after it became visible.\n */\n updateSize: function updateSize() {\n this.width = this.container.width();\n this.height = this.container.height();\n this.resize();\n this.canvas.setSize(this.width, this.height);\n this.applyTransform();\n },\n /**\n * Reset all the series and show the map with the initial zoom.\n */\n reset: function reset() {\n var key, i;\n for (key in this.series) {\n for (i = 0; i < this.series[key].length; i++) {\n this.series[key][i].clear();\n }\n }\n this.scale = this.baseScale;\n this.transX = this.baseTransX;\n this.transY = this.baseTransY;\n this.applyTransform();\n },\n applyTransform: function applyTransform() {\n var maxTransX, maxTransY, minTransX, minTransY;\n if (this.defaultWidth * this.scale <= this.width) {\n maxTransX = (this.width - this.defaultWidth * this.scale) / (2 * this.scale);\n minTransX = (this.width - this.defaultWidth * this.scale) / (2 * this.scale);\n } else {\n maxTransX = 0;\n minTransX = (this.width - this.defaultWidth * this.scale) / this.scale;\n }\n if (this.defaultHeight * this.scale <= this.height) {\n maxTransY = (this.height - this.defaultHeight * this.scale) / (2 * this.scale);\n minTransY = (this.height - this.defaultHeight * this.scale) / (2 * this.scale);\n } else {\n maxTransY = 0;\n minTransY = (this.height - this.defaultHeight * this.scale) / this.scale;\n }\n if (this.transY > maxTransY) {\n this.transY = maxTransY;\n } else if (this.transY < minTransY) {\n this.transY = minTransY;\n }\n if (this.transX > maxTransX) {\n this.transX = maxTransX;\n } else if (this.transX < minTransX) {\n this.transX = minTransX;\n }\n this.canvas.applyTransformParams(this.scale, this.transX, this.transY);\n if (this.markers) {\n this.repositionMarkers();\n }\n this.repositionLabels();\n this.container.trigger('viewportChange', [this.scale / this.baseScale, this.transX, this.transY]);\n },\n bindContainerEvents: function bindContainerEvents() {\n var mouseDown = false,\n oldPageX,\n oldPageY,\n map = this;\n if (this.params.panOnDrag) {\n this.container.mousemove(function (e) {\n if (mouseDown) {\n map.transX -= (oldPageX - e.pageX) / map.scale;\n map.transY -= (oldPageY - e.pageY) / map.scale;\n map.applyTransform();\n oldPageX = e.pageX;\n oldPageY = e.pageY;\n }\n return false;\n }).mousedown(function (e) {\n mouseDown = true;\n oldPageX = e.pageX;\n oldPageY = e.pageY;\n return false;\n });\n this.onContainerMouseUp = function () {\n mouseDown = false;\n };\n jvm.$('body').mouseup(this.onContainerMouseUp);\n }\n if (this.params.zoomOnScroll) {\n this.container.mousewheel(function (event, delta, deltaX, deltaY) {\n var offset = jvm.$(map.container).offset(),\n centerX = event.pageX - offset.left,\n centerY = event.pageY - offset.top,\n zoomStep = Math.pow(1 + map.params.zoomOnScrollSpeed / 1000, event.deltaFactor * event.deltaY);\n map.tip.hide();\n map.setScale(map.scale * zoomStep, centerX, centerY);\n event.preventDefault();\n });\n }\n },\n bindContainerTouchEvents: function bindContainerTouchEvents() {\n var touchStartScale,\n touchStartDistance,\n map = this,\n touchX,\n touchY,\n centerTouchX,\n centerTouchY,\n lastTouchesLength,\n handleTouchEvent = function handleTouchEvent(e) {\n var touches = e.originalEvent.touches,\n offset,\n scale,\n transXOld,\n transYOld;\n if (e.type == 'touchstart') {\n lastTouchesLength = 0;\n }\n if (touches.length == 1) {\n if (lastTouchesLength == 1) {\n transXOld = map.transX;\n transYOld = map.transY;\n map.transX -= (touchX - touches[0].pageX) / map.scale;\n map.transY -= (touchY - touches[0].pageY) / map.scale;\n map.applyTransform();\n map.tip.hide();\n if (transXOld != map.transX || transYOld != map.transY) {\n e.preventDefault();\n }\n }\n touchX = touches[0].pageX;\n touchY = touches[0].pageY;\n } else if (touches.length == 2) {\n if (lastTouchesLength == 2) {\n scale = Math.sqrt(Math.pow(touches[0].pageX - touches[1].pageX, 2) + Math.pow(touches[0].pageY - touches[1].pageY, 2)) / touchStartDistance;\n map.setScale(touchStartScale * scale, centerTouchX, centerTouchY);\n map.tip.hide();\n e.preventDefault();\n } else {\n offset = jvm.$(map.container).offset();\n if (touches[0].pageX > touches[1].pageX) {\n centerTouchX = touches[1].pageX + (touches[0].pageX - touches[1].pageX) / 2;\n } else {\n centerTouchX = touches[0].pageX + (touches[1].pageX - touches[0].pageX) / 2;\n }\n if (touches[0].pageY > touches[1].pageY) {\n centerTouchY = touches[1].pageY + (touches[0].pageY - touches[1].pageY) / 2;\n } else {\n centerTouchY = touches[0].pageY + (touches[1].pageY - touches[0].pageY) / 2;\n }\n centerTouchX -= offset.left;\n centerTouchY -= offset.top;\n touchStartScale = map.scale;\n touchStartDistance = Math.sqrt(Math.pow(touches[0].pageX - touches[1].pageX, 2) + Math.pow(touches[0].pageY - touches[1].pageY, 2));\n }\n }\n lastTouchesLength = touches.length;\n };\n jvm.$(this.container).bind('touchstart', handleTouchEvent);\n jvm.$(this.container).bind('touchmove', handleTouchEvent);\n },\n bindContainerPointerEvents: function bindContainerPointerEvents() {\n var map = this,\n gesture = new MSGesture(),\n element = this.container[0],\n handlePointerDownEvent = function handlePointerDownEvent(e) {\n gesture.addPointer(e.pointerId);\n },\n handleGestureEvent = function handleGestureEvent(e) {\n var offset, scale, transXOld, transYOld;\n if (e.translationX != 0 || e.translationY != 0) {\n transXOld = map.transX;\n transYOld = map.transY;\n map.transX += e.translationX / map.scale;\n map.transY += e.translationY / map.scale;\n map.applyTransform();\n map.tip.hide();\n if (transXOld != map.transX || transYOld != map.transY) {\n e.preventDefault();\n }\n }\n if (e.scale != 1) {\n map.setScale(map.scale * e.scale, e.offsetX, e.offsetY);\n map.tip.hide();\n e.preventDefault();\n }\n };\n gesture.target = element;\n element.addEventListener(\"MSGestureChange\", handleGestureEvent, false);\n element.addEventListener(\"pointerdown\", handlePointerDownEvent, false);\n },\n bindElementEvents: function bindElementEvents() {\n var map = this,\n pageX,\n pageY,\n mouseMoved;\n this.container.mousemove(function (e) {\n if (Math.abs(pageX - e.pageX) + Math.abs(pageY - e.pageY) > 2) {\n mouseMoved = true;\n }\n });\n\n /* Can not use common class selectors here because of the bug in jQuery\n SVG handling, use with caution. */\n this.container.delegate(\"[class~='jvectormap-element']\", 'mouseover mouseout', function (e) {\n var baseVal = jvm.$(this).attr('class').baseVal || jvm.$(this).attr('class'),\n type = baseVal.indexOf('jvectormap-region') === -1 ? 'marker' : 'region',\n code = type == 'region' ? jvm.$(this).attr('data-code') : jvm.$(this).attr('data-index'),\n element = type == 'region' ? map.regions[code].element : map.markers[code].element,\n tipText = type == 'region' ? map.mapData.paths[code].name : map.markers[code].config.name || '',\n tipShowEvent = jvm.$.Event(type + 'TipShow.jvectormap'),\n overEvent = jvm.$.Event(type + 'Over.jvectormap');\n if (e.type == 'mouseover') {\n map.container.trigger(overEvent, [code]);\n if (!overEvent.isDefaultPrevented()) {\n element.setHovered(true);\n }\n map.tip.text(tipText);\n map.container.trigger(tipShowEvent, [map.tip, code]);\n if (!tipShowEvent.isDefaultPrevented()) {\n map.tip.show();\n map.tipWidth = map.tip.width();\n map.tipHeight = map.tip.height();\n }\n } else {\n element.setHovered(false);\n map.tip.hide();\n map.container.trigger(type + 'Out.jvectormap', [code]);\n }\n });\n\n /* Can not use common class selectors here because of the bug in jQuery\n SVG handling, use with caution. */\n this.container.delegate(\"[class~='jvectormap-element']\", 'mousedown', function (e) {\n pageX = e.pageX;\n pageY = e.pageY;\n mouseMoved = false;\n });\n\n /* Can not use common class selectors here because of the bug in jQuery\n SVG handling, use with caution. */\n this.container.delegate(\"[class~='jvectormap-element']\", 'mouseup', function () {\n var baseVal = jvm.$(this).attr('class').baseVal ? jvm.$(this).attr('class').baseVal : jvm.$(this).attr('class'),\n type = baseVal.indexOf('jvectormap-region') === -1 ? 'marker' : 'region',\n code = type == 'region' ? jvm.$(this).attr('data-code') : jvm.$(this).attr('data-index'),\n clickEvent = jvm.$.Event(type + 'Click.jvectormap'),\n element = type == 'region' ? map.regions[code].element : map.markers[code].element;\n if (!mouseMoved) {\n map.container.trigger(clickEvent, [code]);\n if (type === 'region' && map.params.regionsSelectable || type === 'marker' && map.params.markersSelectable) {\n if (!clickEvent.isDefaultPrevented()) {\n if (map.params[type + 'sSelectableOne']) {\n map.clearSelected(type + 's');\n }\n element.setSelected(!element.isSelected);\n }\n }\n }\n });\n },\n bindZoomButtons: function bindZoomButtons() {\n var map = this;\n jvm.$('<div/>').addClass('jvectormap-zoomin').text('+').appendTo(this.container);\n jvm.$('<div/>').addClass('jvectormap-zoomout').html('−').appendTo(this.container);\n this.container.find('.jvectormap-zoomin').click(function () {\n map.setScale(map.scale * map.params.zoomStep, map.width / 2, map.height / 2, false, map.params.zoomAnimate);\n });\n this.container.find('.jvectormap-zoomout').click(function () {\n map.setScale(map.scale / map.params.zoomStep, map.width / 2, map.height / 2, false, map.params.zoomAnimate);\n });\n },\n createTip: function createTip() {\n var map = this;\n this.tip = jvm.$('<div/>').addClass('jvectormap-tip').appendTo(jvm.$('body'));\n this.container.mousemove(function (e) {\n var left = e.pageX - 15 - map.tipWidth,\n top = e.pageY - 15 - map.tipHeight;\n if (left < 5) {\n left = e.pageX + 15;\n }\n if (top < 5) {\n top = e.pageY + 15;\n }\n map.tip.css({\n left: left,\n top: top\n });\n });\n },\n setScale: function setScale(scale, anchorX, anchorY, isCentered, animate) {\n var viewportChangeEvent = jvm.$.Event('zoom.jvectormap'),\n interval,\n that = this,\n i = 0,\n count = Math.abs(Math.round((scale - this.scale) * 60 / Math.max(scale, this.scale))),\n scaleStart,\n scaleDiff,\n transXStart,\n transXDiff,\n transYStart,\n transYDiff,\n transX,\n transY,\n deferred = new jvm.$.Deferred();\n if (scale > this.params.zoomMax * this.baseScale) {\n scale = this.params.zoomMax * this.baseScale;\n } else if (scale < this.params.zoomMin * this.baseScale) {\n scale = this.params.zoomMin * this.baseScale;\n }\n if (typeof anchorX != 'undefined' && typeof anchorY != 'undefined') {\n zoomStep = scale / this.scale;\n if (isCentered) {\n transX = anchorX + this.defaultWidth * (this.width / (this.defaultWidth * scale)) / 2;\n transY = anchorY + this.defaultHeight * (this.height / (this.defaultHeight * scale)) / 2;\n } else {\n transX = this.transX - (zoomStep - 1) / scale * anchorX;\n transY = this.transY - (zoomStep - 1) / scale * anchorY;\n }\n }\n if (animate && count > 0) {\n scaleStart = this.scale;\n scaleDiff = (scale - scaleStart) / count;\n transXStart = this.transX * this.scale;\n transYStart = this.transY * this.scale;\n transXDiff = (transX * scale - transXStart) / count;\n transYDiff = (transY * scale - transYStart) / count;\n interval = setInterval(function () {\n i += 1;\n that.scale = scaleStart + scaleDiff * i;\n that.transX = (transXStart + transXDiff * i) / that.scale;\n that.transY = (transYStart + transYDiff * i) / that.scale;\n that.applyTransform();\n if (i == count) {\n clearInterval(interval);\n that.container.trigger(viewportChangeEvent, [scale / that.baseScale]);\n deferred.resolve();\n }\n }, 10);\n } else {\n this.transX = transX;\n this.transY = transY;\n this.scale = scale;\n this.applyTransform();\n this.container.trigger(viewportChangeEvent, [scale / this.baseScale]);\n deferred.resolve();\n }\n return deferred;\n },\n /**\n * Set the map's viewport to the specific point and set zoom of the map to the specific level. Point and zoom level could be defined in two ways: using the code of some region to focus on or a central point and zoom level as numbers.\n * @param This method takes a configuration object as the single argument. The options passed to it are the following:\n * @param {Array} params.regions Array of region codes to zoom to.\n * @param {String} params.region Region code to zoom to.\n * @param {Number} params.scale Map scale to set.\n * @param {Number} params.lat Latitude to set viewport to.\n * @param {Number} params.lng Longitude to set viewport to.\n * @param {Number} params.x Number from 0 to 1 specifying the horizontal coordinate of the central point of the viewport.\n * @param {Number} params.y Number from 0 to 1 specifying the vertical coordinate of the central point of the viewport.\n * @param {Boolean} params.animate Indicates whether or not to animate the scale change and transition.\n */\n setFocus: function setFocus(config) {\n var bbox, itemBbox, newBbox, codes, i, point;\n config = config || {};\n if (config.region) {\n codes = [config.region];\n } else if (config.regions) {\n codes = config.regions;\n }\n if (codes) {\n for (i = 0; i < codes.length; i++) {\n if (this.regions[codes[i]]) {\n itemBbox = this.regions[codes[i]].element.shape.getBBox();\n if (itemBbox) {\n if (typeof bbox == 'undefined') {\n bbox = itemBbox;\n } else {\n newBbox = {\n x: Math.min(bbox.x, itemBbox.x),\n y: Math.min(bbox.y, itemBbox.y),\n width: Math.max(bbox.x + bbox.width, itemBbox.x + itemBbox.width) - Math.min(bbox.x, itemBbox.x),\n height: Math.max(bbox.y + bbox.height, itemBbox.y + itemBbox.height) - Math.min(bbox.y, itemBbox.y)\n };\n bbox = newBbox;\n }\n }\n }\n }\n return this.setScale(Math.min(this.width / bbox.width, this.height / bbox.height), -(bbox.x + bbox.width / 2), -(bbox.y + bbox.height / 2), true, config.animate);\n } else {\n if (config.lat && config.lng) {\n point = this.latLngToPoint(config.lat, config.lng);\n config.x = this.transX - point.x / this.scale;\n config.y = this.transY - point.y / this.scale;\n } else if (config.x && config.y) {\n config.x *= -this.defaultWidth;\n config.y *= -this.defaultHeight;\n }\n return this.setScale(config.scale * this.baseScale, config.x, config.y, true, config.animate);\n }\n },\n getSelected: function getSelected(type) {\n var key,\n selected = [];\n for (key in this[type]) {\n if (this[type][key].element.isSelected) {\n selected.push(key);\n }\n }\n return selected;\n },\n /**\n * Return the codes of currently selected regions.\n * @returns {Array}\n */\n getSelectedRegions: function getSelectedRegions() {\n return this.getSelected('regions');\n },\n /**\n * Return the codes of currently selected markers.\n * @returns {Array}\n */\n getSelectedMarkers: function getSelectedMarkers() {\n return this.getSelected('markers');\n },\n setSelected: function setSelected(type, keys) {\n var i;\n if (_typeof(keys) != 'object') {\n keys = [keys];\n }\n if (jvm.$.isArray(keys)) {\n for (i = 0; i < keys.length; i++) {\n this[type][keys[i]].element.setSelected(true);\n }\n } else {\n for (i in keys) {\n this[type][i].element.setSelected(!!keys[i]);\n }\n }\n },\n /**\n * Set or remove selected state for the regions.\n * @param {String|Array|Object} keys If <code>String</code> or <code>Array</code> the region(s) with the corresponding code(s) will be selected. If <code>Object</code> was provided its keys are codes of regions, state of which should be changed. Selected state will be set if value is true, removed otherwise.\n */\n setSelectedRegions: function setSelectedRegions(keys) {\n this.setSelected('regions', keys);\n },\n /**\n * Set or remove selected state for the markers.\n * @param {String|Array|Object} keys If <code>String</code> or <code>Array</code> the marker(s) with the corresponding code(s) will be selected. If <code>Object</code> was provided its keys are codes of markers, state of which should be changed. Selected state will be set if value is true, removed otherwise.\n */\n setSelectedMarkers: function setSelectedMarkers(keys) {\n this.setSelected('markers', keys);\n },\n clearSelected: function clearSelected(type) {\n var select = {},\n selected = this.getSelected(type),\n i;\n for (i = 0; i < selected.length; i++) {\n select[selected[i]] = false;\n }\n ;\n this.setSelected(type, select);\n },\n /**\n * Remove the selected state from all the currently selected regions.\n */\n clearSelectedRegions: function clearSelectedRegions() {\n this.clearSelected('regions');\n },\n /**\n * Remove the selected state from all the currently selected markers.\n */\n clearSelectedMarkers: function clearSelectedMarkers() {\n this.clearSelected('markers');\n },\n /**\n * Return the instance of Map. Useful when instantiated as a jQuery plug-in.\n * @returns {Map}\n */\n getMapObject: function getMapObject() {\n return this;\n },\n /**\n * Return the name of the region by region code.\n * @returns {String}\n */\n getRegionName: function getRegionName(code) {\n return this.mapData.paths[code].name;\n },\n createRegions: function createRegions() {\n var key,\n region,\n map = this;\n this.regionLabelsGroup = this.regionLabelsGroup || this.canvas.addGroup();\n for (key in this.mapData.paths) {\n region = new jvm.Region({\n map: this,\n path: this.mapData.paths[key].path,\n code: key,\n style: jvm.$.extend(true, {}, this.params.regionStyle),\n labelStyle: jvm.$.extend(true, {}, this.params.regionLabelStyle),\n canvas: this.canvas,\n labelsGroup: this.regionLabelsGroup,\n label: this.canvas.mode != 'vml' ? this.params.labels && this.params.labels.regions : null\n });\n jvm.$(region.shape).bind('selected', function (e, isSelected) {\n map.container.trigger('regionSelected.jvectormap', [jvm.$(this.node).attr('data-code'), isSelected, map.getSelectedRegions()]);\n });\n this.regions[key] = {\n element: region,\n config: this.mapData.paths[key]\n };\n }\n },\n createMarkers: function createMarkers(markers) {\n var i,\n marker,\n point,\n markerConfig,\n markersArray,\n map = this;\n this.markersGroup = this.markersGroup || this.canvas.addGroup();\n this.markerLabelsGroup = this.markerLabelsGroup || this.canvas.addGroup();\n if (jvm.$.isArray(markers)) {\n markersArray = markers.slice();\n markers = {};\n for (i = 0; i < markersArray.length; i++) {\n markers[i] = markersArray[i];\n }\n }\n for (i in markers) {\n markerConfig = markers[i] instanceof Array ? {\n latLng: markers[i]\n } : markers[i];\n point = this.getMarkerPosition(markerConfig);\n if (point !== false) {\n marker = new jvm.Marker({\n map: this,\n style: jvm.$.extend(true, {}, this.params.markerStyle, {\n initial: markerConfig.style || {}\n }),\n labelStyle: jvm.$.extend(true, {}, this.params.markerLabelStyle),\n index: i,\n cx: point.x,\n cy: point.y,\n group: this.markersGroup,\n canvas: this.canvas,\n labelsGroup: this.markerLabelsGroup,\n label: this.canvas.mode != 'vml' ? this.params.labels && this.params.labels.markers : null\n });\n jvm.$(marker.shape).bind('selected', function (e, isSelected) {\n map.container.trigger('markerSelected.jvectormap', [jvm.$(this.node).attr('data-index'), isSelected, map.getSelectedMarkers()]);\n });\n if (this.markers[i]) {\n this.removeMarkers([i]);\n }\n this.markers[i] = {\n element: marker,\n config: markerConfig\n };\n }\n }\n },\n repositionMarkers: function repositionMarkers() {\n var i, point;\n for (i in this.markers) {\n point = this.getMarkerPosition(this.markers[i].config);\n if (point !== false) {\n this.markers[i].element.setStyle({\n cx: point.x,\n cy: point.y\n });\n }\n }\n },\n repositionLabels: function repositionLabels() {\n var key;\n for (key in this.regions) {\n this.regions[key].element.updateLabelPosition();\n }\n for (key in this.markers) {\n this.markers[key].element.updateLabelPosition();\n }\n },\n getMarkerPosition: function getMarkerPosition(markerConfig) {\n if (jvm.Map.maps[this.params.map].projection) {\n return this.latLngToPoint.apply(this, markerConfig.latLng || [0, 0]);\n } else {\n return {\n x: markerConfig.coords[0] * this.scale + this.transX * this.scale,\n y: markerConfig.coords[1] * this.scale + this.transY * this.scale\n };\n }\n },\n /**\n * Add one marker to the map.\n * @param {String} key Marker unique code.\n * @param {Object} marker Marker configuration parameters.\n * @param {Array} seriesData Values to add to the data series.\n */\n addMarker: function addMarker(key, marker, seriesData) {\n var markers = {},\n data = [],\n values,\n i,\n seriesData = seriesData || [];\n markers[key] = marker;\n for (i = 0; i < seriesData.length; i++) {\n values = {};\n if (typeof seriesData[i] !== 'undefined') {\n values[key] = seriesData[i];\n }\n data.push(values);\n }\n this.addMarkers(markers, data);\n },\n /**\n * Add set of marker to the map.\n * @param {Object|Array} markers Markers to add to the map. In case of array is provided, codes of markers will be set as string representations of array indexes.\n * @param {Array} seriesData Values to add to the data series.\n */\n addMarkers: function addMarkers(markers, seriesData) {\n var i;\n seriesData = seriesData || [];\n this.createMarkers(markers);\n for (i = 0; i < seriesData.length; i++) {\n this.series.markers[i].setValues(seriesData[i] || {});\n }\n ;\n },\n /**\n * Remove some markers from the map.\n * @param {Array} markers Array of marker codes to be removed.\n */\n removeMarkers: function removeMarkers(markers) {\n var i;\n for (i = 0; i < markers.length; i++) {\n this.markers[markers[i]].element.remove();\n delete this.markers[markers[i]];\n }\n ;\n },\n /**\n * Remove all markers from the map.\n */\n removeAllMarkers: function removeAllMarkers() {\n var i,\n markers = [];\n for (i in this.markers) {\n markers.push(i);\n }\n this.removeMarkers(markers);\n },\n /**\n * Converts coordinates expressed as latitude and longitude to the coordinates in pixels on the map.\n * @param {Number} lat Latitide of point in degrees.\n * @param {Number} lng Longitude of point in degrees.\n */\n latLngToPoint: function latLngToPoint(lat, lng) {\n var point,\n proj = jvm.Map.maps[this.params.map].projection,\n centralMeridian = proj.centralMeridian,\n inset,\n bbox;\n if (lng < -180 + centralMeridian) {\n lng += 360;\n }\n point = jvm.Proj[proj.type](lat, lng, centralMeridian);\n inset = this.getInsetForPoint(point.x, point.y);\n if (inset) {\n bbox = inset.bbox;\n point.x = (point.x - bbox[0].x) / (bbox[1].x - bbox[0].x) * inset.width * this.scale;\n point.y = (point.y - bbox[0].y) / (bbox[1].y - bbox[0].y) * inset.height * this.scale;\n return {\n x: point.x + this.transX * this.scale + inset.left * this.scale,\n y: point.y + this.transY * this.scale + inset.top * this.scale\n };\n } else {\n return false;\n }\n },\n /**\n * Converts cartesian coordinates into coordinates expressed as latitude and longitude.\n * @param {Number} x X-axis of point on map in pixels.\n * @param {Number} y Y-axis of point on map in pixels.\n */\n pointToLatLng: function pointToLatLng(x, y) {\n var proj = jvm.Map.maps[this.params.map].projection,\n centralMeridian = proj.centralMeridian,\n insets = jvm.Map.maps[this.params.map].insets,\n i,\n inset,\n bbox,\n nx,\n ny;\n for (i = 0; i < insets.length; i++) {\n inset = insets[i];\n bbox = inset.bbox;\n nx = x - (this.transX * this.scale + inset.left * this.scale);\n ny = y - (this.transY * this.scale + inset.top * this.scale);\n nx = nx / (inset.width * this.scale) * (bbox[1].x - bbox[0].x) + bbox[0].x;\n ny = ny / (inset.height * this.scale) * (bbox[1].y - bbox[0].y) + bbox[0].y;\n if (nx > bbox[0].x && nx < bbox[1].x && ny > bbox[0].y && ny < bbox[1].y) {\n return jvm.Proj[proj.type + '_inv'](nx, -ny, centralMeridian);\n }\n }\n return false;\n },\n getInsetForPoint: function getInsetForPoint(x, y) {\n var insets = jvm.Map.maps[this.params.map].insets,\n i,\n bbox;\n for (i = 0; i < insets.length; i++) {\n bbox = insets[i].bbox;\n if (x > bbox[0].x && x < bbox[1].x && y > bbox[0].y && y < bbox[1].y) {\n return insets[i];\n }\n }\n },\n createSeries: function createSeries() {\n var i, key;\n this.series = {\n markers: [],\n regions: []\n };\n for (key in this.params.series) {\n for (i = 0; i < this.params.series[key].length; i++) {\n this.series[key][i] = new jvm.DataSeries(this.params.series[key][i], this[key], this);\n }\n }\n },\n /**\n * Gracefully remove the map and and all its accessories, unbind event handlers.\n */\n remove: function remove() {\n this.tip.remove();\n this.container.remove();\n jvm.$(window).unbind('resize', this.onResize);\n jvm.$('body').unbind('mouseup', this.onContainerMouseUp);\n }\n};\njvm.Map.maps = {};\njvm.Map.defaultParams = {\n map: 'world_mill_en',\n backgroundColor: '#505050',\n zoomButtons: true,\n zoomOnScroll: true,\n zoomOnScrollSpeed: 3,\n panOnDrag: true,\n zoomMax: 8,\n zoomMin: 1,\n zoomStep: 1.6,\n zoomAnimate: true,\n regionsSelectable: false,\n markersSelectable: false,\n bindTouchEvents: true,\n regionStyle: {\n initial: {\n fill: 'white',\n \"fill-opacity\": 1,\n stroke: 'none',\n \"stroke-width\": 0,\n \"stroke-opacity\": 1\n },\n hover: {\n \"fill-opacity\": 0.8,\n cursor: 'pointer'\n },\n selected: {\n fill: 'yellow'\n },\n selectedHover: {}\n },\n regionLabelStyle: {\n initial: {\n 'font-family': 'Verdana',\n 'font-size': '12',\n 'font-weight': 'bold',\n cursor: 'default',\n fill: 'black'\n },\n hover: {\n cursor: 'pointer'\n }\n },\n markerStyle: {\n initial: {\n fill: 'grey',\n stroke: '#505050',\n \"fill-opacity\": 1,\n \"stroke-width\": 1,\n \"stroke-opacity\": 1,\n r: 5\n },\n hover: {\n stroke: 'black',\n \"stroke-width\": 2,\n cursor: 'pointer'\n },\n selected: {\n fill: 'blue'\n },\n selectedHover: {}\n },\n markerLabelStyle: {\n initial: {\n 'font-family': 'Verdana',\n 'font-size': '12',\n 'font-weight': 'bold',\n cursor: 'default',\n fill: 'black'\n },\n hover: {\n cursor: 'pointer'\n }\n }\n};\njvm.Map.apiEvents = {\n onRegionTipShow: 'regionTipShow',\n onRegionOver: 'regionOver',\n onRegionOut: 'regionOut',\n onRegionClick: 'regionClick',\n onRegionSelected: 'regionSelected',\n onMarkerTipShow: 'markerTipShow',\n onMarkerOver: 'markerOver',\n onMarkerOut: 'markerOut',\n onMarkerClick: 'markerClick',\n onMarkerSelected: 'markerSelected',\n onViewportChange: 'viewportChange'\n}; /**\n * Creates map with drill-down functionality.\n * @constructor\n * @param {Object} params Parameters to initialize map with.\n * @param {Number} params.maxLevel Maximum number of levels user can go through\n * @param {Object} params.main Config of the main map. See <a href=\"./jvm-map/\">jvm.Map</a> for more information.\n * @param {Function} params.mapNameByCode Function go generate map name by region code. Default value is:\n <pre>\n function(code, multiMap) {\n return code.toLowerCase()+'_'+\n multiMap.defaultProjection+'_en';\n }\n </pre>\n * @param {Function} params.mapUrlByCode Function to generate map url by region code. Default value is:\n <pre>\n function(code, multiMap){\n return 'jquery-jvectormap-data-'+\n code.toLowerCase()+'-'+\n multiMap.defaultProjection+'-en.js';\n }\n </pre>\n */\njvm.MultiMap = function (params) {\n var that = this;\n this.maps = {};\n this.params = jvm.$.extend(true, {}, jvm.MultiMap.defaultParams, params);\n this.params.maxLevel = this.params.maxLevel || Number.MAX_VALUE;\n this.params.main = this.params.main || {};\n this.params.main.multiMapLevel = 0;\n this.history = [this.addMap(this.params.main.map, this.params.main)];\n this.defaultProjection = this.history[0].mapData.projection.type;\n this.mapsLoaded = {};\n this.params.container.css({\n position: 'relative'\n });\n this.backButton = jvm.$('<div/>').addClass('jvectormap-goback').text('Back').appendTo(this.params.container);\n this.backButton.hide();\n this.backButton.click(function () {\n that.goBack();\n });\n this.spinner = jvm.$('<div/>').addClass('jvectormap-spinner').appendTo(this.params.container);\n this.spinner.hide();\n};\njvm.MultiMap.prototype = {\n addMap: function addMap(name, config) {\n var cnt = jvm.$('<div/>').css({\n width: '100%',\n height: '100%'\n });\n this.params.container.append(cnt);\n this.maps[name] = new jvm.Map(jvm.$.extend(config, {\n container: cnt\n }));\n if (this.params.maxLevel > config.multiMapLevel) {\n this.maps[name].container.on('regionClick.jvectormap', {\n scope: this\n }, function (e, code) {\n var multimap = e.data.scope,\n mapName = multimap.params.mapNameByCode(code, multimap);\n if (!multimap.drillDownPromise || multimap.drillDownPromise.state() !== 'pending') {\n multimap.drillDown(mapName, code);\n }\n });\n }\n return this.maps[name];\n },\n downloadMap: function downloadMap(code) {\n var that = this,\n deferred = jvm.$.Deferred();\n if (!this.mapsLoaded[code]) {\n jvm.$.get(this.params.mapUrlByCode(code, this)).then(function () {\n that.mapsLoaded[code] = true;\n deferred.resolve();\n }, function () {\n deferred.reject();\n });\n } else {\n deferred.resolve();\n }\n return deferred;\n },\n drillDown: function drillDown(name, code) {\n var currentMap = this.history[this.history.length - 1],\n that = this,\n focusPromise = currentMap.setFocus({\n region: code,\n animate: true\n }),\n downloadPromise = this.downloadMap(code);\n focusPromise.then(function () {\n if (downloadPromise.state() === 'pending') {\n that.spinner.show();\n }\n });\n downloadPromise.always(function () {\n that.spinner.hide();\n });\n this.drillDownPromise = jvm.$.when(downloadPromise, focusPromise);\n this.drillDownPromise.then(function () {\n currentMap.params.container.hide();\n if (!that.maps[name]) {\n that.addMap(name, {\n map: name,\n multiMapLevel: currentMap.params.multiMapLevel + 1\n });\n } else {\n that.maps[name].params.container.show();\n }\n that.history.push(that.maps[name]);\n that.backButton.show();\n });\n },\n goBack: function goBack() {\n var currentMap = this.history.pop(),\n prevMap = this.history[this.history.length - 1],\n that = this;\n currentMap.setFocus({\n scale: 1,\n x: 0.5,\n y: 0.5,\n animate: true\n }).then(function () {\n currentMap.params.container.hide();\n prevMap.params.container.show();\n prevMap.updateSize();\n if (that.history.length === 1) {\n that.backButton.hide();\n }\n prevMap.setFocus({\n scale: 1,\n x: 0.5,\n y: 0.5,\n animate: true\n });\n });\n }\n};\njvm.MultiMap.defaultParams = {\n mapNameByCode: function mapNameByCode(code, multiMap) {\n return code.toLowerCase() + '_' + multiMap.defaultProjection + '_en';\n },\n mapUrlByCode: function mapUrlByCode(code, multiMap) {\n return 'jquery-jvectormap-data-' + code.toLowerCase() + '-' + multiMap.defaultProjection + '-en.js';\n }\n};\n\n// World_mill_en code \n\n$.fn.vectorMap('addMap', 'world_mill_en', {\n \"insets\": [{\n \"width\": 900.0,\n \"top\": 0,\n \"height\": 440.7063107441331,\n \"bbox\": [{\n \"y\": -12671671.123330014,\n \"x\": -20004297.151525836\n }, {\n \"y\": 6930392.02513512,\n \"x\": 20026572.394749384\n }],\n \"left\": 0\n }],\n \"paths\": {\n \"BD\": {\n \"path\": \"M652.71,228.85l-0.04,1.38l-0.46,-0.21l-0.42,0.3l0.05,0.65l-0.17,-1.37l-0.48,-1.26l-1.08,-1.6l-0.23,-0.13l-2.31,-0.11l-0.31,0.36l0.21,0.98l-0.6,1.11l-0.8,-0.4l-0.37,0.09l-0.23,0.3l-0.54,-0.21l-0.78,-0.19l-0.38,-2.04l-0.83,-1.89l0.4,-1.5l-0.16,-0.35l-1.24,-0.57l0.36,-0.62l1.5,-0.95l0.02,-0.49l-1.62,-1.26l0.64,-1.31l1.7,1.0l0.12,0.04l0.96,0.11l0.19,1.62l0.25,0.26l2.38,0.37l2.32,-0.04l1.06,0.33l-0.92,1.79l-0.97,0.13l-0.23,0.16l-0.77,1.51l0.05,0.35l1.37,1.37l0.5,-0.14l0.35,-1.46l0.24,-0.0l1.24,3.92Z\",\n \"name\": \"Bangladesh\"\n },\n \"BE\": {\n \"path\": \"M429.28,143.95l1.76,0.25l0.13,-0.01l2.16,-0.64l1.46,1.34l1.26,0.71l-0.23,1.8l-0.44,0.08l-0.24,0.25l-0.2,1.36l-1.8,-1.22l-0.23,-0.05l-1.14,0.23l-1.62,-1.43l-1.15,-1.31l-0.21,-0.1l-0.95,-0.04l-0.21,-0.68l1.66,-0.54Z\",\n \"name\": \"Belgium\"\n },\n \"BF\": {\n \"path\": \"M413.48,260.21l-1.22,-0.46l-0.13,-0.02l-1.17,0.1l-0.15,0.06l-0.73,0.53l-0.87,-0.41l-0.39,-0.75l-0.13,-0.13l-0.98,-0.48l-0.14,-1.2l0.63,-0.99l0.05,-0.18l-0.05,-0.73l1.9,-2.01l0.08,-0.14l0.35,-1.65l0.49,-0.44l1.05,0.3l0.21,-0.02l1.05,-0.52l0.13,-0.13l0.3,-0.58l1.87,-1.1l0.11,-0.1l0.43,-0.72l2.23,-1.01l1.21,-0.32l0.51,0.4l0.19,0.06l1.25,-0.01l-0.14,0.89l0.01,0.13l0.34,1.16l0.06,0.11l1.35,1.59l0.07,1.13l0.24,0.28l2.64,0.53l-0.05,1.39l-0.42,0.59l-1.11,0.21l-0.22,0.17l-0.46,0.99l-0.69,0.23l-2.12,-0.05l-1.14,-0.2l-0.19,0.03l-0.72,0.36l-1.07,-0.17l-4.35,0.12l-0.29,0.29l-0.06,1.44l0.25,1.45Z\",\n \"name\": \"Burkina Faso\"\n },\n \"BG\": {\n \"path\": \"M477.63,166.84l0.51,0.9l0.33,0.14l0.9,-0.21l1.91,0.47l3.68,0.16l0.17,-0.05l1.2,-0.75l2.78,-0.67l1.72,1.05l1.02,0.24l-0.97,0.97l-0.91,2.17l0.0,0.24l0.56,1.19l-1.58,-0.3l-0.16,0.01l-2.55,0.95l-0.2,0.28l-0.02,1.23l-1.92,0.24l-1.68,-0.99l-0.27,-0.02l-1.94,0.8l-1.52,-0.07l-0.15,-1.72l-0.12,-0.21l-0.99,-0.76l0.18,-0.18l0.02,-0.39l-0.17,-0.22l0.33,-0.75l0.91,-0.91l0.01,-0.42l-1.16,-1.25l-0.18,-0.89l0.24,-0.27Z\",\n \"name\": \"Bulgaria\"\n },\n \"BA\": {\n \"path\": \"M468.39,164.66l0.16,0.04l0.43,-0.0l-0.43,0.93l0.06,0.34l1.08,1.06l-0.28,1.09l-0.5,0.13l-0.47,0.28l-0.86,0.74l-0.1,0.16l-0.28,1.29l-1.81,-0.94l-0.9,-1.22l-1.0,-0.73l-1.1,-1.1l-0.55,-0.96l-1.11,-1.3l0.3,-0.75l0.59,0.46l0.42,-0.04l0.46,-0.54l1.0,-0.06l2.11,0.5l1.72,-0.03l1.06,0.64Z\",\n \"name\": \"Bosnia and Herzegovina\"\n },\n \"BN\": {\n \"path\": \"M707.34,273.57l0.76,-0.72l1.59,-1.03l-0.18,1.93l-0.9,-0.06l-0.28,0.14l-0.31,0.51l-0.68,-0.78Z\",\n \"name\": \"Brunei\"\n },\n \"BO\": {\n \"path\": \"M263.83,340.79l-0.23,-0.12l-2.86,-0.11l-0.28,0.17l-0.77,1.67l-1.17,-1.51l-0.18,-0.11l-3.28,-0.64l-0.28,0.1l-2.02,2.3l-1.43,0.29l-0.91,-3.35l-1.31,-2.88l0.75,-2.41l-0.09,-0.32l-1.23,-1.03l-0.31,-1.76l-0.05,-0.12l-1.12,-1.6l1.49,-2.62l0.01,-0.28l-1.0,-2.0l0.48,-0.72l0.02,-0.29l-0.37,-0.78l0.87,-1.13l0.06,-0.18l0.05,-2.17l0.12,-1.71l0.5,-0.8l0.01,-0.3l-1.9,-3.58l1.3,0.15l1.34,-0.05l0.23,-0.12l0.51,-0.7l2.12,-0.99l1.31,-0.93l2.81,-0.37l-0.21,1.51l0.01,0.13l0.29,0.91l-0.19,1.64l0.11,0.27l2.72,2.27l0.15,0.07l2.71,0.41l0.92,0.88l0.12,0.07l1.64,0.49l1.0,0.71l0.18,0.06l1.5,-0.02l1.24,0.64l0.1,1.31l0.05,0.14l0.44,0.68l0.02,0.73l-0.44,0.03l-0.27,0.39l0.96,2.99l0.28,0.21l4.43,0.1l-0.28,1.12l0.0,0.15l0.27,1.02l0.15,0.19l1.27,0.67l0.52,1.42l-0.42,1.91l-0.66,1.1l-0.04,0.2l0.21,1.3l-0.19,0.13l-0.01,-0.27l-0.15,-0.24l-2.33,-1.33l-0.14,-0.04l-2.38,-0.03l-4.36,0.76l-0.21,0.16l-1.2,2.29l-0.03,0.13l-0.06,1.37l-0.79,2.53l-0.05,-0.08Z\",\n \"name\": \"Bolivia\"\n },\n \"JP\": {\n \"path\": \"M781.17,166.78l1.8,0.67l0.28,-0.04l1.38,-1.01l0.43,2.67l-3.44,0.77l-0.18,0.12l-2.04,2.79l-3.71,-1.94l-0.42,0.15l-1.29,3.11l-2.32,0.04l-0.3,-2.63l1.12,-2.1l2.51,-0.16l0.28,-0.25l0.73,-4.22l0.58,-1.9l2.59,2.84l2.0,1.1ZM773.66,187.36l-0.92,2.24l-0.01,0.2l0.4,1.3l-1.18,1.81l-3.06,1.28l-4.35,0.17l-0.19,0.08l-3.4,3.06l-1.36,-0.87l-0.1,-1.95l-0.34,-0.28l-4.35,0.62l-2.99,1.33l-2.87,0.05l-0.28,0.2l0.09,0.33l2.37,1.93l-1.57,4.44l-1.35,0.97l-0.9,-0.79l0.57,-2.32l-0.15,-0.34l-1.5,-0.77l-0.81,-1.53l2.04,-0.75l0.14,-0.1l1.28,-1.72l2.47,-1.43l1.84,-1.92l4.83,-0.82l2.62,0.57l0.33,-0.16l2.45,-4.77l1.38,1.14l0.38,0.0l5.1,-4.02l0.09,-0.11l1.57,-3.57l0.02,-0.16l-0.42,-3.22l0.94,-1.67l2.27,-0.47l1.26,3.82l-0.07,2.23l-2.26,2.86l-0.06,0.19l0.04,2.93ZM757.85,196.18l0.22,0.66l-1.11,1.33l-0.8,-0.7l-0.33,-0.04l-1.28,0.65l-0.14,0.15l-0.54,1.34l-1.17,-0.57l0.02,-1.03l1.2,-1.45l1.24,0.28l0.29,-0.1l0.9,-1.03l1.51,0.5Z\",\n \"name\": \"Japan\"\n },\n \"BI\": {\n \"path\": \"M494.7,295.83l-0.14,-2.71l-0.04,-0.13l-0.34,-0.62l0.93,0.12l0.3,-0.16l0.67,-1.25l0.9,0.11l0.11,0.76l0.08,0.16l0.46,0.48l0.02,0.56l-0.55,0.48l-0.96,1.29l-0.82,0.82l-0.61,0.07Z\",\n \"name\": \"Burundi\"\n },\n \"BJ\": {\n \"path\": \"M427.4,268.94l-1.58,0.22l-0.52,-1.45l0.11,-5.73l-0.08,-0.21l-0.43,-0.44l-0.09,-1.13l-0.09,-0.19l-1.52,-1.52l0.24,-1.01l0.7,-0.23l0.18,-0.16l0.45,-0.97l1.07,-0.21l0.19,-0.12l0.53,-0.73l0.73,-0.65l0.68,-0.0l1.69,1.3l-0.08,0.67l0.02,0.14l0.52,1.38l-0.44,0.9l-0.01,0.24l0.2,0.52l-1.1,1.42l-0.76,0.76l-0.08,0.13l-0.47,1.59l0.05,1.69l-0.13,3.79Z\",\n \"name\": \"Benin\"\n },\n \"BT\": {\n \"path\": \"M650.38,213.78l0.88,0.75l-0.13,1.24l-1.77,0.07l-2.1,-0.18l-1.57,0.4l-2.02,-0.91l-0.02,-0.24l1.54,-1.87l1.18,-0.6l1.67,0.59l1.32,0.08l1.01,0.67Z\",\n \"name\": \"Bhutan\"\n },\n \"JM\": {\n \"path\": \"M226.67,238.37l1.64,0.23l1.2,0.56l0.11,0.19l-1.25,0.03l-0.14,0.04l-0.65,0.37l-1.24,-0.37l-1.17,-0.77l0.11,-0.22l0.86,-0.15l0.52,0.08Z\",\n \"name\": \"Jamaica\"\n },\n \"BW\": {\n \"path\": \"M484.91,331.96l0.53,0.52l0.82,1.53l2.83,2.86l0.14,0.08l0.85,0.22l0.03,0.81l0.74,1.66l0.21,0.17l1.87,0.39l1.17,0.87l-3.13,1.71l-2.3,2.01l-0.07,0.1l-0.82,1.74l-0.66,0.88l-1.24,0.19l-0.24,0.2l-0.65,1.98l-1.4,0.55l-1.9,-0.12l-1.2,-0.74l-1.06,-0.32l-0.22,0.02l-1.22,0.62l-0.14,0.14l-0.58,1.21l-1.16,0.79l-1.18,1.13l-1.5,0.23l-0.4,-0.68l0.22,-1.53l-0.04,-0.19l-1.48,-2.54l-0.11,-0.11l-0.53,-0.31l-0.0,-7.25l2.18,-0.08l0.29,-0.3l0.07,-9.0l1.63,-0.08l3.69,-0.86l0.84,0.93l0.38,0.05l1.53,-0.97l0.79,-0.03l1.3,-0.53l0.23,0.1l0.92,1.96Z\",\n \"name\": \"Botswana\"\n },\n \"BR\": {\n \"path\": \"M259.49,274.87l1.42,0.25l1.97,0.62l0.28,-0.05l0.67,-0.55l1.76,-0.38l2.8,-0.94l0.12,-0.08l0.92,-0.96l0.05,-0.33l-0.15,-0.32l0.73,-0.06l0.36,0.35l-0.27,0.93l0.17,0.36l0.76,0.34l0.44,0.9l-0.58,0.73l-0.06,0.13l-0.4,2.13l0.03,0.19l0.62,1.22l0.17,1.11l0.11,0.19l1.54,1.18l0.15,0.06l1.23,0.12l0.29,-0.15l0.2,-0.36l0.71,-0.11l1.13,-0.44l0.79,-0.63l1.25,0.19l0.65,-0.08l1.32,0.2l0.32,-0.18l0.23,-0.51l-0.05,-0.31l-0.31,-0.37l0.11,-0.31l0.75,0.17l0.13,0.0l1.1,-0.24l1.34,0.5l1.08,0.51l0.33,-0.05l0.67,-0.58l0.27,0.05l0.28,0.57l0.31,0.17l1.2,-0.18l0.17,-0.08l1.03,-1.05l0.76,-1.82l1.39,-2.16l0.49,-0.07l0.52,1.17l1.4,4.37l0.2,0.2l1.14,0.35l0.05,1.39l-1.8,1.97l0.01,0.42l0.78,0.75l0.18,0.08l4.16,0.37l0.08,2.25l0.5,0.22l1.78,-1.54l2.98,0.85l4.07,1.5l1.07,1.28l-0.37,1.23l0.36,0.38l2.83,-0.75l4.8,1.3l3.75,-0.09l3.6,2.02l3.27,2.84l1.93,0.72l2.13,0.11l0.76,0.66l1.22,4.56l-0.96,4.03l-1.22,1.58l-3.52,3.51l-1.63,2.91l-1.75,2.09l-0.5,0.04l-0.26,0.19l-0.72,1.99l0.18,4.76l-0.95,5.56l-0.74,0.96l-0.06,0.15l-0.43,3.39l-2.49,3.34l-0.06,0.13l-0.4,2.56l-1.9,1.07l-0.13,0.16l-0.51,1.38l-2.59,0.0l-3.94,1.01l-1.82,1.19l-2.85,0.81l-3.01,2.17l-2.12,2.65l-0.06,0.13l-0.36,2.0l0.01,0.13l0.4,1.42l-0.45,2.63l-0.53,1.23l-1.76,1.53l-2.76,4.79l-2.16,2.15l-1.69,1.29l-0.09,0.12l-1.12,2.6l-1.3,1.26l-0.45,-1.02l0.99,-1.18l0.01,-0.37l-1.5,-1.95l-1.98,-1.54l-2.58,-1.77l-0.2,-0.05l-0.81,0.07l-2.42,-2.05l-0.25,-0.07l-0.77,0.14l2.75,-3.07l2.8,-2.61l1.67,-1.09l2.11,-1.49l0.13,-0.24l0.05,-2.15l-0.07,-0.2l-1.26,-1.54l-0.35,-0.09l-0.64,0.27l0.3,-0.95l0.34,-1.57l0.01,-1.52l-0.16,-0.26l-0.9,-0.48l-0.27,-0.01l-0.86,0.39l-0.65,-0.08l-0.23,-0.8l-0.23,-2.39l-0.04,-0.12l-0.47,-0.79l-0.14,-0.12l-1.69,-0.71l-0.25,0.01l-0.93,0.47l-2.29,-0.44l0.15,-3.3l-0.03,-0.15l-0.62,-1.22l0.57,-0.39l0.13,-0.3l-0.22,-1.37l0.67,-1.13l0.44,-2.04l-0.01,-0.17l-0.59,-1.61l-0.14,-0.16l-1.25,-0.66l-0.22,-0.82l0.35,-1.41l-0.28,-0.37l-4.59,-0.1l-0.78,-2.41l0.34,-0.02l0.28,-0.31l-0.03,-1.1l-0.05,-0.16l-0.45,-0.68l-0.1,-1.4l-0.16,-0.24l-1.45,-0.76l-0.14,-0.03l-1.48,0.02l-1.04,-0.73l-1.62,-0.48l-0.93,-0.9l-0.16,-0.08l-2.72,-0.41l-2.53,-2.12l0.18,-1.54l-0.01,-0.13l-0.29,-0.91l0.26,-1.83l-0.34,-0.34l-3.28,0.43l-0.14,0.05l-1.3,0.93l-2.16,1.01l-0.12,0.09l-0.47,0.65l-1.12,0.05l-1.84,-0.21l-0.12,0.01l-1.33,0.41l-0.82,-0.21l0.16,-3.6l-0.48,-0.26l-1.97,1.43l-1.96,-0.06l-0.86,-1.23l-0.22,-0.13l-1.23,-0.11l0.34,-0.69l-0.05,-0.33l-1.36,-1.5l-0.92,-2.0l0.45,-0.32l0.13,-0.25l-0.0,-0.87l1.34,-0.64l0.17,-0.32l-0.23,-1.23l0.56,-0.77l0.05,-0.13l0.16,-1.03l2.7,-1.61l2.01,-0.47l0.16,-0.09l0.24,-0.27l2.11,0.11l0.31,-0.25l1.13,-6.87l0.06,-1.12l-0.4,-1.53l-0.1,-0.15l-1.0,-0.82l0.01,-1.45l1.08,-0.32l0.39,0.2l0.44,-0.24l0.08,-0.96l-0.25,-0.32l-1.22,-0.22l-0.02,-1.01l4.57,0.05l0.22,-0.09l0.6,-0.63l0.44,0.5l0.47,1.42l0.45,0.16l0.27,-0.18l1.21,1.16l0.23,0.08l1.95,-0.16l0.23,-0.14l0.43,-0.67l1.76,-0.55l1.05,-0.42l0.18,-0.2l0.25,-0.92l1.65,-0.66l0.18,-0.35l-0.14,-0.53l-0.26,-0.22l-1.91,-0.19l-0.29,-1.33l0.1,-1.64l-0.15,-0.28l-0.44,-0.25Z\",\n \"name\": \"Brazil\"\n },\n \"BS\": {\n \"path\": \"M227.51,216.69l0.3,0.18l-0.24,1.07l0.03,-1.04l-0.09,-0.21ZM226.5,224.03l-0.13,0.03l-0.54,-1.3l-0.09,-0.12l-0.78,-0.64l0.4,-1.26l0.33,0.05l0.79,2.0l0.01,1.24ZM225.76,216.5l-2.16,0.34l-0.07,-0.41l0.85,-0.16l1.36,0.07l0.02,0.16Z\",\n \"name\": \"The Bahamas\"\n },\n \"BY\": {\n \"path\": \"M480.08,135.28l2.09,0.02l0.13,-0.03l2.72,-1.3l0.16,-0.19l0.55,-1.83l1.94,-1.06l0.15,-0.31l-0.2,-1.33l1.33,-0.52l2.58,-1.3l2.39,0.8l0.3,0.75l0.37,0.17l1.22,-0.39l2.18,0.75l0.2,1.36l-0.48,0.85l0.01,0.32l1.57,2.26l0.92,0.6l-0.1,0.41l0.19,0.35l1.61,0.57l0.48,0.6l-0.64,0.49l-1.91,-0.11l-0.18,0.05l-0.48,0.32l-0.1,0.39l0.57,1.1l0.51,1.78l-1.79,0.17l-0.18,0.08l-0.77,0.73l-0.09,0.19l-0.13,1.31l-0.75,-0.22l-2.11,0.15l-0.56,-0.66l-0.39,-0.06l-0.8,0.49l-0.79,-0.4l-0.13,-0.03l-1.94,-0.07l-2.76,-0.79l-2.58,-0.27l-1.98,0.07l-0.15,0.05l-1.31,0.86l-0.8,0.09l-0.04,-1.16l-0.03,-0.12l-0.63,-1.28l1.22,-0.56l0.17,-0.27l0.01,-1.35l-0.04,-0.15l-0.66,-1.24l-0.08,-1.12Z\",\n \"name\": \"Belarus\"\n },\n \"BZ\": {\n \"path\": \"M198.03,239.7l0.28,0.19l0.43,-0.1l0.82,-1.42l0.0,0.07l0.29,0.29l0.16,0.0l-0.02,0.35l-0.39,1.08l0.02,0.25l0.16,0.29l-0.23,0.8l0.04,0.24l0.09,0.14l-0.25,1.12l-0.38,0.53l-0.33,0.06l-0.21,0.15l-0.41,0.74l-0.25,0.0l0.17,-2.58l0.01,-2.2Z\",\n \"name\": \"Belize\"\n },\n \"RU\": {\n \"path\": \"M688.57,38.85l0.63,2.39l0.44,0.19l2.22,-1.23l7.18,0.07l5.54,2.49l1.85,1.77l-0.55,2.34l-2.64,1.42l-6.57,2.76l-1.95,1.5l0.12,0.53l3.09,0.68l3.69,1.23l0.21,-0.01l1.98,-0.81l1.16,2.84l0.5,0.08l1.03,-1.18l3.86,-0.74l7.79,0.78l0.56,2.05l0.27,0.22l10.47,0.71l0.32,-0.29l0.13,-3.34l4.98,0.8l3.96,-0.02l3.88,2.43l1.06,2.79l-1.38,1.83l0.01,0.38l3.15,3.64l0.1,0.08l3.94,1.86l0.4,-0.14l2.28,-4.56l3.75,1.94l0.22,0.02l4.18,-1.22l4.76,1.4l0.26,-0.04l1.74,-1.23l3.98,0.63l0.32,-0.41l-1.71,-4.1l3.0,-1.86l22.39,3.04l2.06,2.67l0.1,0.08l6.55,3.51l0.17,0.03l10.08,-0.86l4.86,0.73l1.91,1.72l-0.29,3.13l0.18,0.31l3.08,1.26l0.19,0.01l3.32,-0.9l4.37,-0.11l4.78,0.87l4.61,-0.48l4.26,3.82l0.32,0.05l3.1,-1.4l0.12,-0.45l-1.91,-2.67l0.92,-1.64l7.78,1.22l5.22,-0.26l7.12,2.1l9.6,5.22l6.4,4.15l-0.2,2.44l0.14,0.28l1.69,1.04l0.45,-0.31l-0.51,-2.66l6.31,0.58l4.52,3.61l-2.1,1.52l-4.02,0.42l-0.27,0.29l-0.06,3.83l-0.81,0.67l-2.14,-0.11l-1.91,-1.39l-3.19,-1.13l-0.51,-1.63l-0.21,-0.2l-2.54,-0.67l-0.13,-0.0l-2.69,0.5l-1.12,-1.19l0.48,-1.36l-0.38,-0.39l-3.0,0.98l-0.17,0.44l1.02,1.76l-1.27,1.55l-3.09,1.71l-3.15,-0.29l-0.3,0.18l0.07,0.34l2.22,2.1l1.47,3.22l1.15,1.09l0.25,1.41l-0.48,0.76l-4.47,-0.81l-0.17,0.02l-6.97,2.9l-2.2,0.44l-0.11,0.05l-3.83,2.68l-3.63,2.32l-0.1,0.11l-0.76,1.4l-3.3,-2.4l-0.3,-0.03l-6.31,2.85l-0.99,-1.21l-0.4,-0.06l-2.32,1.54l-3.23,-0.49l-0.33,0.2l-0.79,2.39l-2.97,3.51l-0.07,0.21l0.09,1.47l0.22,0.27l2.62,0.74l-0.3,4.7l-2.06,0.12l-0.26,0.2l-1.07,2.94l0.04,0.27l0.83,1.19l-4.03,1.63l-0.18,0.21l-0.83,3.72l-3.55,0.79l-0.23,0.23l-0.73,3.32l-3.22,2.76l-0.76,-1.88l-1.07,-4.88l-1.39,-7.59l1.17,-4.76l2.05,-2.08l0.09,-0.19l0.11,-1.46l3.67,-0.77l0.15,-0.08l4.47,-4.61l4.29,-3.82l4.48,-3.01l0.11,-0.14l2.01,-5.43l-0.31,-0.4l-3.04,0.33l-0.24,0.17l-1.47,3.11l-5.98,3.94l-1.91,-4.36l-0.33,-0.17l-6.46,1.3l-0.15,0.08l-6.27,6.33l-0.01,0.41l1.7,1.87l-5.04,0.87l-3.51,0.34l0.16,-2.32l-0.26,-0.32l-3.89,-0.56l-0.19,0.04l-3.02,1.77l-7.63,-0.63l-8.24,1.1l-0.16,0.07l-8.11,7.09l-9.6,8.31l0.16,0.52l3.79,0.42l1.16,2.03l0.17,0.14l2.43,0.76l0.31,-0.08l1.5,-1.61l2.49,0.2l3.46,3.6l0.08,2.67l-1.91,3.26l-0.04,0.14l-0.21,3.91l-1.11,5.09l-3.73,4.55l-0.87,2.21l-6.73,7.14l-1.59,1.77l-3.23,1.72l-1.38,0.03l-1.48,-1.39l-0.37,-0.03l-3.36,2.22l-0.11,0.14l-0.16,0.42l-0.01,-1.09l1.0,-0.06l0.28,-0.27l0.36,-3.6l-0.61,-2.51l1.85,-0.94l2.94,0.53l0.32,-0.15l1.71,-3.1l0.84,-3.38l0.97,-1.18l1.32,-2.88l-0.34,-0.42l-4.14,0.95l-2.18,1.25l-3.51,-0.0l-0.95,-2.81l-0.1,-0.14l-2.97,-2.3l-0.11,-0.05l-4.19,-1.0l-0.89,-3.08l-0.87,-2.03l-0.95,-1.46l-1.54,-3.37l-0.12,-0.14l-2.27,-1.28l-3.83,-1.02l-3.37,0.1l-3.11,0.61l-0.13,0.06l-2.07,1.69l0.04,0.49l1.23,0.72l0.03,1.53l-1.34,1.05l-2.26,3.51l-0.05,0.17l0.02,1.27l-3.25,1.9l-2.87,-1.17l-0.14,-0.02l-2.86,0.26l-1.22,-1.02l-0.12,-0.06l-1.5,-0.35l-0.23,0.04l-3.62,2.27l-3.24,0.53l-2.28,0.79l-3.08,-0.51l-2.24,0.03l-1.49,-1.61l-2.45,-1.57l-0.11,-0.04l-2.6,-0.43l-3.17,0.43l-2.31,0.59l-3.31,-1.28l-0.45,-2.31l-0.21,-0.23l-2.94,-0.85l-2.26,-0.39l-2.77,-1.36l-0.37,0.09l-2.59,3.45l-0.03,0.32l0.91,1.74l-2.15,2.01l-3.47,-0.79l-2.44,-0.12l-1.59,-1.46l-0.2,-0.08l-2.55,-0.05l-2.12,-0.98l-0.24,-0.01l-3.85,1.57l-4.74,2.79l-2.59,0.55l-0.79,0.21l-1.21,-1.81l-0.29,-0.13l-3.05,0.41l-0.96,-1.25l-0.14,-0.1l-1.65,-0.6l-1.15,-1.82l-0.13,-0.12l-1.38,-0.6l-0.19,-0.02l-3.49,0.82l-3.35,-1.85l-0.38,0.08l-1.08,1.4l-5.36,-8.17l-3.02,-2.52l0.72,-0.85l0.01,-0.38l-0.37,-0.08l-6.22,3.21l-1.98,0.16l0.17,-1.51l-0.2,-0.31l-3.22,-1.17l-0.19,-0.0l-2.3,0.74l-0.72,-3.27l-0.24,-0.23l-4.5,-0.75l-0.21,0.04l-2.2,1.42l-6.21,1.27l-0.11,0.05l-1.16,0.81l-9.3,1.19l-0.18,0.09l-1.15,1.17l-0.02,0.39l1.56,2.01l-2.02,0.74l-0.16,0.42l0.35,0.68l-2.18,1.49l0.02,0.51l3.83,2.16l-0.45,1.13l-3.31,-0.13l-0.25,0.12l-0.57,0.77l-2.97,-1.59l-0.15,-0.04l-3.97,0.07l-0.13,0.03l-2.53,1.32l-2.84,-1.28l-5.52,-2.3l-0.12,-0.02l-3.91,0.09l-0.16,0.05l-5.17,3.6l-0.13,0.21l-0.25,1.89l-2.17,-1.6l-0.44,0.1l-2.0,3.59l0.06,0.37l0.55,0.5l-1.32,2.23l0.04,0.36l2.13,2.17l0.23,0.09l1.7,-0.08l1.42,1.89l-0.23,1.5l0.19,0.32l0.94,0.38l-0.89,1.44l-2.3,0.49l-0.17,0.11l-2.49,3.2l0.0,0.37l2.2,2.81l-0.23,1.93l0.06,0.22l2.56,3.32l-1.27,1.02l-0.4,0.66l-0.8,-0.15l-1.65,-1.75l-0.18,-0.09l-0.66,-0.09l-1.45,-0.64l-0.72,-1.16l-0.18,-0.13l-2.34,-0.63l-0.17,0.0l-1.32,0.41l-0.31,-0.4l-0.12,-0.09l-3.49,-1.48l-3.67,-0.49l-2.1,-0.52l-0.3,0.1l-0.12,0.14l-2.96,-2.4l-2.89,-1.19l-1.69,-1.42l1.27,-0.35l0.16,-0.1l2.08,-2.61l-0.04,-0.41l-1.02,-0.9l3.21,-1.12l0.2,-0.31l-0.07,-0.69l-0.37,-0.26l-1.86,0.42l0.05,-0.86l1.11,-0.76l2.35,-0.23l0.25,-0.19l0.39,-1.07l0.0,-0.19l-0.51,-1.64l0.95,-1.58l0.04,-0.16l-0.03,-0.95l-0.22,-0.28l-3.69,-1.06l-1.43,0.02l-1.45,-1.44l-0.29,-0.08l-1.83,0.49l-2.88,-1.04l0.04,-0.42l-0.04,-0.18l-0.89,-1.43l-0.23,-0.14l-1.77,-0.14l-0.13,-0.66l0.52,-0.56l0.01,-0.4l-1.6,-1.9l-0.27,-0.1l-2.55,0.32l-0.71,-0.16l-0.3,0.1l-0.53,0.63l-0.58,-0.08l-0.56,-1.97l-0.48,-0.94l0.17,-0.11l1.92,0.11l0.2,-0.06l0.97,-0.74l0.05,-0.42l-0.72,-0.91l-0.13,-0.1l-1.43,-0.51l0.09,-0.36l-0.13,-0.33l-0.97,-0.59l-1.43,-2.06l0.44,-0.77l0.04,-0.19l-0.25,-1.64l-0.2,-0.24l-2.45,-0.84l-0.19,-0.0l-1.05,0.34l-0.25,-0.62l-0.18,-0.17l-2.5,-0.84l-0.74,-1.93l-0.21,-1.7l-0.13,-0.21l-0.92,-0.63l0.83,-0.89l0.07,-0.27l-0.71,-3.26l1.69,-2.01l0.03,-0.34l-0.24,-0.41l2.63,-1.9l-0.01,-0.49l-2.31,-1.57l5.08,-4.61l2.33,-2.24l1.01,-2.08l-0.09,-0.37l-3.52,-2.56l0.94,-2.38l-0.04,-0.29l-2.14,-2.86l1.61,-3.35l-0.01,-0.29l-2.81,-4.58l2.19,-3.04l-0.06,-0.42l-3.7,-2.76l0.32,-2.67l1.87,-0.38l4.26,-1.77l2.46,-1.47l3.96,2.58l0.12,0.05l6.81,1.04l9.37,4.87l1.81,1.92l0.15,2.55l-2.61,2.06l-3.95,1.07l-11.1,-3.15l-0.17,0.0l-1.84,0.53l-0.1,0.53l3.97,2.97l0.15,1.77l0.16,4.14l0.19,0.27l3.21,1.22l1.94,1.03l0.44,-0.22l0.32,-1.94l-0.07,-0.25l-1.32,-1.52l1.25,-1.2l5.87,2.45l0.24,-0.01l2.11,-0.98l0.13,-0.42l-1.55,-2.75l5.52,-3.84l2.13,0.22l2.28,1.42l0.43,-0.12l1.46,-2.87l-0.04,-0.33l-1.97,-2.37l1.14,-2.38l-0.02,-0.3l-1.42,-2.07l6.15,1.22l1.14,1.92l-2.74,0.46l-0.25,0.3l0.02,2.36l0.12,0.24l1.97,1.44l0.25,0.05l3.87,-0.91l0.22,-0.23l0.58,-2.55l5.09,-1.98l8.67,-3.69l1.22,0.14l-2.06,2.2l0.18,0.5l3.11,0.45l0.23,-0.07l1.71,-1.41l4.59,-0.12l0.12,-0.03l3.53,-1.72l2.7,2.48l0.42,-0.01l2.85,-2.88l-0.0,-0.43l-2.42,-2.35l1.0,-1.13l7.2,1.31l3.42,1.36l9.06,4.97l0.39,-0.08l1.67,-2.27l-0.04,-0.4l-2.46,-2.23l-0.06,-0.82l-0.26,-0.27l-2.64,-0.38l0.69,-1.76l0.0,-0.22l-1.32,-3.47l-0.07,-1.27l4.52,-4.09l0.08,-0.11l1.6,-4.18l1.67,-0.84l6.33,1.2l0.46,2.31l-2.31,3.67l0.05,0.38l1.49,1.41l0.77,3.04l-0.56,6.05l0.09,0.24l2.62,2.54l-0.99,2.65l-4.87,5.96l0.17,0.48l2.86,0.61l0.31,-0.13l0.94,-1.42l2.67,-1.04l0.18,-0.19l0.64,-2.01l2.11,-1.98l0.05,-0.37l-1.38,-2.32l1.11,-2.74l-0.24,-0.41l-2.53,-0.33l-0.53,-2.16l1.96,-4.42l-0.05,-0.32l-3.03,-3.48l4.21,-2.94l0.12,-0.3l-0.52,-3.04l0.72,-0.06l1.18,2.35l-0.97,4.39l0.2,0.35l2.68,0.84l0.37,-0.38l-1.05,-3.07l3.89,-1.71l5.05,-0.24l4.55,2.62l0.36,-0.05l0.05,-0.36l-2.19,-3.84l-0.23,-4.78l4.07,-0.92l5.98,0.21l5.47,-0.64l0.2,-0.48l-1.88,-2.37l2.65,-2.99l2.75,-0.13l0.12,-0.03l4.82,-2.48l6.56,-0.67l0.23,-0.14l0.76,-1.27l6.33,-0.46l1.97,1.11l0.28,0.01l5.55,-2.71l4.53,0.08l0.29,-0.21l0.67,-2.18l2.29,-2.15l5.75,-2.13l3.48,1.4l-2.7,1.03l-0.19,0.31l0.26,0.26l5.47,0.78ZM871.83,65.73l0.25,-0.15l1.99,0.01l3.3,1.2l-0.08,0.22l-2.41,1.03l-5.73,0.49l-0.31,-1.0l2.99,-1.8ZM797.64,48.44l-2.22,1.51l-3.85,-0.43l-4.35,-1.85l0.42,-1.13l4.42,0.72l5.59,1.17ZM783.82,46.06l-1.71,3.25l-9.05,-0.14l-4.11,1.15l-4.64,-3.04l1.21,-3.13l3.11,-0.91l6.53,0.22l8.66,2.59ZM780.37,145.71l2.28,5.23l-3.09,-0.89l-0.37,0.19l-1.54,4.65l0.04,0.27l2.38,3.17l-0.05,1.4l-1.41,-1.41l-0.46,0.04l-1.23,1.81l-0.33,-1.86l0.28,-3.1l-0.28,-3.41l0.58,-2.46l0.11,-4.39l-0.03,-0.13l-1.44,-3.2l0.21,-4.39l2.19,-1.49l0.09,-0.41l-0.81,-1.3l0.48,-0.21l0.56,1.94l0.86,3.23l-0.05,3.36l1.03,3.35ZM780.16,57.18l-3.4,0.03l-5.06,-0.53l1.97,-1.59l2.95,-0.42l3.35,1.75l0.18,0.77ZM683.84,31.18l-13.29,1.97l4.16,-6.56l1.88,-0.58l1.77,0.34l6.08,3.02l-0.6,1.8ZM670.94,28.02l-5.18,0.65l-6.89,-1.58l-4.03,-2.07l-1.88,-3.98l-0.18,-0.16l-2.8,-0.93l5.91,-3.62l5.25,-1.29l4.73,2.88l5.63,5.44l-0.57,4.66ZM564.37,68.98l-0.85,0.23l-7.93,-0.57l-0.6,-1.84l-0.21,-0.2l-4.34,-1.18l-0.3,-2.08l2.34,-0.92l0.19,-0.29l-0.08,-2.43l4.85,-4.0l-0.12,-0.52l-1.68,-0.43l5.47,-3.94l0.11,-0.33l-0.6,-2.02l5.36,-2.55l8.22,-3.27l8.29,-0.96l4.34,-1.94l4.67,-0.65l1.45,1.72l-1.43,1.37l-8.8,2.52l-7.65,2.42l-7.92,4.84l-3.73,4.75l-3.92,4.58l-0.07,0.23l0.51,3.88l0.11,0.2l4.32,3.39ZM548.86,18.57l-3.28,0.75l-2.25,0.44l-0.22,0.19l-0.3,0.81l-2.67,0.86l-2.27,-1.14l1.2,-1.51l-0.23,-0.49l-3.14,-0.1l2.48,-0.54l3.55,-0.07l0.44,1.36l0.49,0.12l1.4,-1.35l2.2,-0.9l3.13,1.08l-0.54,0.49ZM477.5,133.25l-4.21,0.05l-2.69,-0.34l0.39,-1.03l3.24,-1.06l2.51,0.58l0.85,0.43l-0.2,0.71l-0.0,0.15l0.12,0.52Z\",\n \"name\": \"Russia\"\n },\n \"RW\": {\n \"path\": \"M497.03,288.12l0.78,1.11l-0.12,1.19l-0.49,0.21l-1.25,-0.15l-0.3,0.16l-0.67,1.24l-1.01,-0.13l0.16,-0.92l0.22,-0.12l0.15,-0.24l0.09,-1.37l0.49,-0.48l0.42,0.18l0.25,-0.01l1.26,-0.65Z\",\n \"name\": \"Rwanda\"\n },\n \"RS\": {\n \"path\": \"M469.75,168.65l0.21,-0.21l0.36,-1.44l-0.08,-0.29l-1.06,-1.03l0.54,-1.16l-0.28,-0.43l-0.26,0.0l0.55,-0.67l-0.01,-0.39l-0.77,-0.86l-0.45,-0.89l1.56,-0.67l1.39,0.12l1.22,1.1l0.26,0.91l0.16,0.19l1.38,0.66l0.17,1.12l0.14,0.21l1.46,0.9l0.35,-0.03l0.62,-0.54l0.09,0.06l-0.28,0.25l-0.03,0.42l0.29,0.34l-0.44,0.5l-0.07,0.26l0.22,1.12l0.07,0.14l1.02,1.1l-0.81,0.84l-0.42,0.96l0.04,0.3l0.12,0.15l-0.15,0.16l-1.04,0.04l-0.39,0.08l0.33,-0.81l-0.29,-0.41l-0.21,0.01l-0.39,-0.45l-0.13,-0.09l-0.32,-0.11l-0.27,-0.4l-0.14,-0.11l-0.4,-0.16l-0.31,-0.37l-0.34,-0.09l-0.45,0.17l-0.18,0.18l-0.29,0.84l-0.96,-0.65l-0.81,-0.33l-0.32,-0.37l-0.22,-0.18Z\",\n \"name\": \"Republic of Serbia\"\n },\n \"LT\": {\n \"path\": \"M478.13,133.31l-0.14,-0.63l0.25,-0.88l-0.15,-0.35l-1.17,-0.58l-2.43,-0.57l-0.45,-2.51l2.58,-0.97l4.14,0.22l2.3,-0.32l0.26,0.54l0.22,0.17l1.26,0.22l2.25,1.6l0.19,1.23l-1.87,1.01l-0.14,0.18l-0.54,1.83l-2.54,1.21l-2.18,-0.02l-0.52,-0.91l-0.18,-0.14l-1.11,-0.32Z\",\n \"name\": \"Lithuania\"\n },\n \"LU\": {\n \"path\": \"M435.95,147.99l0.33,0.49l-0.11,1.07l-0.39,0.04l-0.29,-0.15l0.21,-1.4l0.25,-0.05Z\",\n \"name\": \"Luxembourg\"\n },\n \"LR\": {\n \"path\": \"M401.37,273.67l-0.32,0.01l-2.48,-1.15l-2.24,-1.89l-2.14,-1.38l-1.47,-1.42l0.44,-0.59l0.05,-0.13l0.12,-0.65l1.07,-1.3l1.08,-1.09l0.52,-0.07l0.43,-0.18l0.84,1.24l-0.15,0.89l0.07,0.25l0.49,0.54l0.22,0.1l0.71,0.01l0.27,-0.16l0.42,-0.83l0.19,0.02l-0.06,0.52l0.23,1.12l-0.5,1.03l0.06,0.35l0.73,0.69l0.14,0.08l0.71,0.15l0.92,0.91l0.06,0.76l-0.17,0.22l-0.06,0.15l-0.17,1.8Z\",\n \"name\": \"Liberia\"\n },\n \"RO\": {\n \"path\": \"M477.94,155.19l1.02,-0.64l1.49,0.33l1.52,0.01l1.09,0.73l0.32,0.01l0.81,-0.46l1.8,-0.3l0.18,-0.1l0.54,-0.64l0.86,0.0l0.64,0.26l0.71,0.87l0.8,1.35l1.39,1.81l0.07,1.25l-0.26,1.3l0.01,0.15l0.45,1.42l0.15,0.18l1.12,0.57l0.25,0.01l1.05,-0.45l0.86,0.4l0.03,0.43l-0.92,0.51l-0.63,-0.24l-0.4,0.22l-0.64,3.41l-1.12,-0.24l-1.78,-1.09l-0.23,-0.04l-2.95,0.71l-1.25,0.77l-3.55,-0.16l-1.89,-0.47l-0.14,-0.0l-0.75,0.17l-0.61,-1.07l-0.3,-0.36l0.36,-0.32l-0.04,-0.48l-0.62,-0.38l-0.36,0.03l-0.62,0.54l-1.15,-0.71l-0.18,-1.14l-0.17,-0.22l-1.4,-0.67l-0.24,-0.86l-0.09,-0.14l-0.96,-0.87l1.49,-0.44l0.16,-0.11l1.51,-2.14l1.15,-2.09l1.44,-0.63Z\",\n \"name\": \"Romania\"\n },\n \"GW\": {\n \"path\": \"M383.03,256.73l-1.12,-0.88l-0.14,-0.06l-0.94,-0.15l-0.43,-0.54l0.01,-0.27l-0.13,-0.26l-0.68,-0.48l-0.05,-0.16l0.99,-0.31l0.77,0.08l0.15,-0.02l0.61,-0.26l4.25,0.1l-0.02,0.44l-0.19,0.18l-0.08,0.29l0.17,0.66l-0.17,0.14l-0.44,0.0l-0.16,0.05l-0.57,0.37l-0.66,-0.04l-0.24,0.1l-0.92,1.03Z\",\n \"name\": \"Guinea Bissau\"\n },\n \"GT\": {\n \"path\": \"M195.13,249.89l-1.05,-0.35l-1.5,-0.04l-1.06,-0.47l-1.19,-0.93l0.04,-0.53l0.27,-0.55l-0.03,-0.31l-0.24,-0.32l1.02,-1.77l3.04,-0.01l0.3,-0.28l0.06,-0.88l-0.19,-0.3l-0.3,-0.11l-0.23,-0.45l-0.11,-0.12l-0.9,-0.58l-0.35,-0.33l0.37,-0.0l0.3,-0.3l0.0,-1.15l4.05,0.02l-0.02,1.74l-0.2,2.89l0.3,0.32l0.67,-0.0l0.75,0.42l0.4,-0.11l-0.62,0.53l-1.17,0.7l-0.13,0.16l-0.18,0.49l0.0,0.21l0.14,0.34l-0.35,0.44l-0.49,0.13l-0.2,0.41l0.03,0.06l-0.27,0.16l-0.86,0.64l-0.12,0.22ZM199.35,245.38l0.07,-0.13l0.05,0.02l-0.13,0.11Z\",\n \"name\": \"Guatemala\"\n },\n \"GR\": {\n \"path\": \"M487.2,174.55l-0.64,1.54l-0.43,0.24l-1.41,-0.08l-1.28,-0.28l-0.14,0.0l-3.03,0.77l-0.13,0.51l1.39,1.34l-0.78,0.29l-1.2,0.0l-1.23,-1.42l-0.47,0.02l-0.47,0.65l-0.04,0.27l0.56,1.76l0.06,0.11l1.02,1.12l-0.66,0.45l-0.04,0.46l1.39,1.35l1.15,0.79l0.02,1.06l-1.91,-0.63l-0.36,0.42l0.56,1.12l-1.2,0.23l-0.22,0.4l0.8,2.14l-1.15,0.02l-1.89,-1.15l-0.89,-2.19l-0.43,-1.91l-0.05,-0.11l-0.98,-1.35l-1.24,-1.62l-0.13,-0.63l1.07,-1.32l0.06,-0.14l0.13,-0.81l0.68,-0.36l0.16,-0.25l0.03,-0.54l1.4,-0.23l0.12,-0.05l0.87,-0.6l1.26,0.05l0.25,-0.11l0.34,-0.43l0.33,-0.07l1.81,0.08l0.13,-0.02l1.87,-0.77l1.64,0.97l0.19,0.04l2.28,-0.28l0.26,-0.29l0.02,-0.95l0.56,0.36ZM480.44,192.0l1.05,0.74l0.01,0.0l-1.26,-0.23l0.2,-0.51ZM481.76,192.79l1.86,-0.15l1.53,0.17l-0.02,0.19l0.34,0.3l-2.28,0.15l0.01,-0.13l-0.25,-0.31l-1.19,-0.22ZM485.65,193.28l0.65,-0.16l-0.05,0.12l-0.6,0.04Z\",\n \"name\": \"Greece\"\n },\n \"GQ\": {\n \"path\": \"M444.81,282.04l-0.21,-0.17l0.74,-2.4l3.56,0.05l0.02,2.42l-3.34,-0.02l-0.76,0.13Z\",\n \"name\": \"Equatorial Guinea\"\n },\n \"GY\": {\n \"path\": \"M271.34,264.25l1.43,0.81l1.44,1.53l0.06,1.19l0.28,0.28l0.84,0.05l2.13,1.92l-0.34,1.93l-1.37,0.59l-0.17,0.34l0.12,0.51l-0.43,1.21l0.03,0.26l1.11,1.82l0.26,0.14l0.56,0.0l0.32,1.29l1.25,1.78l-0.08,0.01l-1.34,-0.21l-0.24,0.06l-0.78,0.64l-1.06,0.41l-0.76,0.1l-0.22,0.15l-0.18,0.32l-0.95,-0.1l-1.38,-1.05l-0.19,-1.13l-0.6,-1.18l0.37,-1.96l0.65,-0.83l0.03,-0.32l-0.57,-1.17l-0.15,-0.14l-0.62,-0.27l0.25,-0.85l-0.08,-0.3l-0.58,-0.58l-0.24,-0.09l-1.15,0.1l-1.41,-1.58l0.48,-0.49l0.09,-0.22l-0.04,-0.92l1.31,-0.34l0.73,-0.52l0.04,-0.44l-0.75,-0.82l0.16,-0.66l1.74,-1.3Z\",\n \"name\": \"Guyana\"\n },\n \"GE\": {\n \"path\": \"M525.41,174.19l0.26,-0.88l-0.0,-0.17l-0.63,-2.06l-0.1,-0.15l-1.45,-1.12l-0.11,-0.05l-1.31,-0.33l-0.66,-0.69l1.97,0.48l3.65,0.49l3.3,1.41l0.39,0.5l0.33,0.1l1.43,-0.45l2.14,0.58l0.7,1.14l0.13,0.12l1.06,0.47l-0.18,0.11l-0.08,0.43l1.08,1.41l-0.06,0.06l-1.16,-0.15l-1.82,-0.84l-0.31,0.04l-0.55,0.44l-3.29,0.44l-2.32,-1.41l-0.17,-0.04l-2.25,0.12Z\",\n \"name\": \"Georgia\"\n },\n \"GB\": {\n \"path\": \"M412.82,118.6l-2.31,3.4l-0.0,0.33l0.31,0.13l2.52,-0.49l2.34,0.02l-0.56,2.51l-2.22,3.13l0.22,0.47l2.43,0.21l2.35,4.35l0.17,0.14l1.58,0.51l1.49,3.78l0.73,1.37l0.2,0.15l2.76,0.59l-0.25,1.75l-1.18,0.91l-0.08,0.39l0.87,1.49l-1.96,1.51l-3.31,-0.02l-4.15,0.88l-1.07,-0.59l-0.35,0.04l-1.55,1.44l-2.17,-0.35l-0.22,0.05l-1.61,1.15l-0.78,-0.38l3.31,-3.12l2.18,-0.7l0.21,-0.31l-0.26,-0.27l-3.78,-0.54l-0.48,-0.9l2.3,-0.92l0.13,-0.46l-1.29,-1.71l0.39,-1.83l3.46,0.29l0.32,-0.24l0.37,-1.99l-0.06,-0.24l-1.71,-2.17l-0.18,-0.11l-2.91,-0.58l-0.43,-0.68l0.82,-1.4l-0.03,-0.35l-0.82,-0.97l-0.46,0.01l-0.85,1.05l-0.11,-2.6l-0.05,-0.16l-1.19,-1.7l0.86,-3.53l1.81,-2.75l1.88,0.26l2.38,-0.24ZM406.39,132.84l-1.09,1.92l-1.65,-0.62l-1.26,0.02l0.41,-1.46l0.0,-0.16l-0.42,-1.51l1.62,-0.11l2.39,1.92Z\",\n \"name\": \"United Kingdom\"\n },\n \"GA\": {\n \"path\": \"M448.76,294.47l-2.38,-2.34l-1.63,-2.04l-1.46,-2.48l0.06,-0.66l0.54,-0.81l0.61,-1.82l0.46,-1.69l0.63,-0.11l3.62,0.03l0.3,-0.3l-0.02,-2.75l0.88,-0.12l1.47,0.32l0.13,0.0l1.39,-0.3l-0.13,0.87l0.03,0.19l0.7,1.29l0.3,0.16l1.74,-0.19l0.36,0.29l-1.01,2.7l0.05,0.29l1.13,1.42l0.25,1.82l-0.3,1.56l-0.64,0.99l-1.93,-0.09l-1.26,-1.13l-0.5,0.17l-0.16,0.91l-1.48,0.27l-0.12,0.05l-0.86,0.63l-0.08,0.39l0.81,1.42l-1.48,1.08Z\",\n \"name\": \"Gabon\"\n },\n \"GN\": {\n \"path\": \"M399.83,265.31l-0.69,-0.06l-0.3,0.16l-0.43,0.85l-0.39,-0.01l-0.3,-0.33l0.14,-0.87l-0.05,-0.22l-1.05,-1.54l-0.37,-0.11l-0.61,0.27l-0.84,0.12l0.02,-0.54l-0.04,-0.17l-0.35,-0.57l0.07,-0.63l-0.03,-0.17l-0.57,-1.11l-0.7,-0.9l-0.24,-0.12l-2.0,-0.0l-0.19,0.07l-0.51,0.42l-0.6,0.05l-0.21,0.11l-0.43,0.55l-0.3,0.7l-1.04,0.86l-0.91,-1.24l-1.0,-1.02l-0.69,-0.37l-0.52,-0.42l-0.3,-1.11l-0.37,-0.56l-0.1,-0.1l-0.4,-0.23l0.77,-0.85l0.62,0.04l0.18,-0.05l0.58,-0.38l0.46,-0.0l0.19,-0.07l0.39,-0.34l0.1,-0.3l-0.17,-0.67l0.15,-0.14l0.09,-0.2l0.03,-0.57l0.87,0.02l1.76,0.6l0.13,0.01l0.55,-0.06l0.22,-0.13l0.08,-0.12l1.18,0.17l0.17,-0.02l0.09,0.56l0.3,0.25l0.4,-0.0l0.14,-0.03l0.56,-0.29l0.23,0.05l0.63,0.59l0.15,0.07l1.07,0.2l0.24,-0.06l0.65,-0.52l0.77,-0.32l0.55,-0.32l0.3,0.04l0.44,0.45l0.34,0.74l0.84,0.87l-0.35,0.45l-0.06,0.15l-0.1,0.82l0.42,0.31l0.35,-0.16l0.05,0.04l-0.1,0.59l0.09,0.27l0.42,0.4l-0.06,0.02l-0.18,0.21l-0.2,0.86l0.03,0.21l0.56,1.02l0.52,1.71l-0.65,0.21l-0.15,0.12l-0.24,0.35l-0.03,0.28l0.16,0.41l-0.1,0.76l-0.12,0.0Z\",\n \"name\": \"Guinea\"\n },\n \"GM\": {\n \"path\": \"M379.18,251.48l0.15,-0.55l2.51,-0.07l0.21,-0.09l0.48,-0.52l0.58,-0.03l0.91,0.58l0.16,0.05l0.78,0.01l0.14,-0.03l0.59,-0.31l0.16,0.24l-0.71,0.38l-0.94,-0.04l-1.02,-0.51l-0.3,0.01l-0.86,0.55l-0.37,0.02l-0.14,0.04l-0.53,0.31l-1.81,-0.04Z\",\n \"name\": \"Gambia\"\n },\n \"GL\": {\n \"path\": \"M304.13,6.6l8.19,-3.63l8.72,0.28l0.19,-0.06l3.12,-2.28l8.75,-0.61l19.94,0.8l14.93,4.75l-3.92,2.01l-9.52,0.27l-13.48,0.6l-0.27,0.2l0.09,0.33l1.26,1.09l0.22,0.07l8.81,-0.67l7.49,2.07l0.19,-0.01l4.68,-1.78l1.76,1.84l-2.59,3.26l-0.01,0.36l0.34,0.11l6.35,-2.2l12.09,-2.32l7.31,1.14l1.17,2.13l-9.9,4.05l-1.43,1.32l-7.91,0.98l-0.26,0.31l0.29,0.29l5.25,0.25l-2.63,3.72l-2.02,3.61l-0.04,0.15l0.08,6.05l0.07,0.19l2.61,3.0l-3.4,0.2l-4.12,1.66l-0.04,0.54l4.5,2.67l0.53,3.9l-2.39,0.42l-0.19,0.48l2.91,3.83l-5.0,0.32l-0.27,0.22l0.12,0.33l2.69,1.84l-0.65,1.35l-3.36,0.71l-3.46,0.01l-0.21,0.51l3.05,3.15l0.02,1.53l-4.54,-1.79l-0.32,0.06l-1.29,1.26l0.11,0.5l3.33,1.15l3.17,2.74l0.85,3.29l-4.0,0.78l-1.83,-1.66l-3.1,-2.64l-0.36,-0.02l-0.13,0.33l0.8,2.92l-2.76,2.26l-0.09,0.33l0.28,0.2l6.59,0.19l2.47,0.18l-5.86,3.38l-6.76,3.43l-7.26,1.48l-2.73,0.02l-0.16,0.05l-2.67,1.72l-3.44,4.42l-5.28,2.86l-1.73,0.18l-3.33,1.01l-3.59,0.96l-0.15,0.1l-2.15,2.52l-0.07,0.19l-0.03,2.76l-1.21,2.49l-4.03,3.1l-0.1,0.33l0.98,2.94l-2.31,6.57l-3.21,0.21l-3.6,-3.0l-0.19,-0.07l-4.9,-0.02l-2.29,-1.97l-1.69,-3.78l-4.31,-4.86l-1.23,-2.52l-0.34,-3.58l-0.08,-0.17l-3.35,-3.67l0.85,-2.92l-0.09,-0.31l-1.5,-1.34l2.33,-4.7l3.67,-1.57l0.15,-0.13l1.02,-1.93l0.52,-3.47l-0.44,-0.31l-2.85,1.57l-1.33,0.64l-2.12,0.59l-2.81,-1.32l-0.15,-2.79l0.88,-2.17l2.09,-0.06l5.07,1.2l0.34,-0.17l-0.11,-0.37l-4.3,-2.9l-2.24,-1.58l-0.25,-0.05l-2.38,0.62l-1.7,-0.93l2.62,-4.1l-0.03,-0.36l-1.51,-1.75l-1.97,-3.3l-3.01,-5.21l-0.1,-0.11l-3.04,-1.85l0.03,-1.94l-0.18,-0.28l-6.82,-3.01l-5.35,-0.38l-6.69,0.21l-6.03,0.37l-2.81,-1.59l-3.84,-2.9l5.94,-1.5l5.01,-0.28l0.28,-0.29l-0.26,-0.31l-10.68,-1.38l-5.38,-2.1l0.27,-1.68l9.3,-2.6l9.18,-2.68l0.19,-0.16l0.97,-2.05l-0.18,-0.42l-6.29,-1.91l1.81,-1.9l8.58,-4.05l3.6,-0.63l0.23,-0.4l-0.92,-2.37l5.59,-1.5l7.66,-0.95l7.58,-0.05l2.65,1.84l0.31,0.02l6.52,-3.29l5.85,2.24l3.55,0.49l5.17,1.95l0.38,-0.16l-0.13,-0.39l-5.77,-3.16l0.29,-2.26Z\",\n \"name\": \"Greenland\"\n },\n \"KW\": {\n \"path\": \"M540.87,207.81l0.41,0.94l-0.18,0.51l0.0,0.21l0.65,1.66l-1.15,0.05l-0.54,-1.12l-0.24,-0.17l-1.73,-0.2l1.44,-2.06l1.33,0.18Z\",\n \"name\": \"Kuwait\"\n },\n \"GH\": {\n \"path\": \"M423.16,269.88l-3.58,1.34l-1.41,0.87l-2.13,0.69l-1.91,-0.61l0.09,-0.75l-0.03,-0.17l-1.04,-2.07l0.62,-2.7l1.04,-2.08l0.03,-0.19l-1.0,-5.46l0.05,-1.12l4.04,-0.11l1.08,0.18l0.18,-0.03l0.72,-0.36l0.75,0.13l-0.11,0.48l0.06,0.26l0.98,1.22l-0.0,1.77l0.24,1.99l0.05,0.13l0.55,0.81l-0.52,2.14l0.19,1.37l0.69,1.66l0.38,0.62Z\",\n \"name\": \"Ghana\"\n },\n \"OM\": {\n \"path\": \"M568.16,231.0l-0.08,0.1l-0.84,1.61l-0.93,-0.11l-0.27,0.11l-0.58,0.73l-0.4,1.32l-0.01,0.14l0.29,1.61l-0.07,0.09l-1.0,-0.01l-0.16,0.04l-1.56,0.97l-0.14,0.2l-0.23,1.17l-0.41,0.4l-1.44,-0.02l-0.17,0.05l-0.98,0.65l-0.13,0.25l0.01,0.87l-0.97,0.57l-1.27,-0.22l-0.19,0.03l-1.63,0.84l-0.88,0.11l-2.55,-5.57l7.2,-2.49l0.19,-0.19l1.67,-5.23l-0.03,-0.25l-1.1,-1.78l0.05,-0.89l0.68,-1.03l0.05,-0.16l0.01,-0.89l0.96,-0.44l0.07,-0.5l-0.32,-0.26l0.16,-1.31l0.85,-0.01l1.03,1.67l0.09,0.09l1.4,0.96l0.11,0.05l1.82,0.34l1.37,0.45l1.75,2.32l0.13,0.1l0.7,0.26l-0.0,0.3l-1.25,2.19l-1.01,0.8ZM561.88,218.47l-0.01,0.02l-0.15,-0.29l0.3,-0.38l-0.14,0.65Z\",\n \"name\": \"Oman\"\n },\n \"_3\": {\n \"path\": \"M543.2,261.06l-1.07,1.46l-1.65,1.99l-1.91,0.01l-8.08,-2.95l-0.89,-0.84l-0.9,-1.19l-0.81,-1.23l0.44,-0.73l0.76,-1.12l0.49,0.28l0.52,1.05l1.13,1.06l0.2,0.08l1.24,0.01l2.42,-0.65l2.77,-0.31l2.17,-0.78l1.31,-0.19l0.84,-0.43l1.03,-0.06l-0.01,4.54Z\",\n \"name\": \"Somaliland\"\n },\n \"_2\": {\n \"path\": \"M384.23,230.37l0.07,-0.06l0.28,-0.89l0.99,-1.13l0.07,-0.13l0.8,-3.54l3.4,-2.8l0.09,-0.13l0.76,-2.17l0.07,5.5l-2.07,0.21l-0.24,0.17l-0.61,1.36l-0.02,0.16l0.43,3.46l-4.01,-0.01ZM391.82,218.2l0.07,-0.06l0.75,-1.93l1.86,-0.25l0.94,0.34l1.14,0.0l0.18,-0.06l0.73,-0.56l1.41,-0.08l-0.0,2.72l-7.08,-0.12Z\",\n \"name\": \"Western Sahara\"\n },\n \"_1\": {\n \"path\": \"M472.71,172.84l-0.07,-0.43l-0.16,-0.22l-0.53,-0.27l-0.38,-0.58l0.3,-0.43l0.51,-0.19l0.18,-0.18l0.3,-0.87l0.12,-0.04l0.22,0.26l0.12,0.09l0.38,0.15l0.28,0.41l0.15,0.12l0.34,0.12l0.43,0.5l0.15,0.07l-0.12,0.3l-0.27,0.32l-0.03,0.18l-0.31,0.06l-1.48,0.47l-0.15,0.17Z\",\n \"name\": \"Kosovo\"\n },\n \"_0\": {\n \"path\": \"M503.54,192.92l0.09,-0.17l0.41,0.01l-0.08,0.01l-0.42,0.15ZM504.23,192.76l1.02,0.02l0.4,-0.13l-0.09,0.29l0.03,0.08l-0.35,0.16l-0.24,-0.04l-0.06,-0.1l-0.18,-0.17l-0.19,-0.08l-0.33,-0.02Z\",\n \"name\": \"Northern Cyprus\"\n },\n \"JO\": {\n \"path\": \"M510.26,200.93l0.28,-0.57l2.53,1.0l0.27,-0.02l4.57,-2.77l0.84,2.84l-0.28,0.25l-4.95,1.37l-0.14,0.49l2.24,2.48l-0.5,0.28l-0.13,0.14l-0.35,0.78l-1.76,0.35l-0.2,0.14l-0.57,0.94l-0.94,0.73l-2.45,-0.38l-0.03,-0.12l1.23,-4.32l-0.04,-1.1l0.34,-0.75l0.03,-0.12l0.0,-1.63Z\",\n \"name\": \"Jordan\"\n },\n \"HR\": {\n \"path\": \"M455.49,162.73l1.53,0.09l0.24,-0.1l0.29,-0.34l0.64,0.38l0.14,0.04l0.98,0.06l0.32,-0.3l-0.01,-0.66l0.67,-0.25l0.19,-0.22l0.21,-1.11l1.72,-0.72l0.65,0.32l1.94,1.37l2.07,0.6l0.22,-0.02l0.67,-0.33l0.47,0.94l0.67,0.76l-0.63,0.77l-0.91,-0.55l-0.16,-0.04l-1.69,0.04l-2.2,-0.51l-1.17,0.07l-0.21,0.11l-0.36,0.42l-0.67,-0.53l-0.46,0.12l-0.52,1.29l0.05,0.31l1.21,1.42l0.58,0.99l1.15,1.14l0.95,0.68l0.92,1.23l0.1,0.09l1.75,0.91l-1.87,-0.89l-1.5,-1.11l-2.23,-0.88l-1.77,-1.9l0.12,-0.06l0.1,-0.47l-1.07,-1.22l-0.04,-0.94l-0.21,-0.27l-1.61,-0.49l-0.35,0.14l-0.53,0.93l-0.41,-0.57l0.04,-0.73Z\",\n \"name\": \"Croatia\"\n },\n \"HT\": {\n \"path\": \"M237.82,234.68l1.35,0.1l1.95,0.37l0.18,1.15l-0.16,0.83l-0.51,0.37l-0.06,0.44l0.57,0.68l-0.02,0.22l-1.31,-0.35l-1.26,0.17l-1.49,-0.18l-0.15,0.02l-1.03,0.43l-1.02,-0.61l0.09,-0.36l2.04,0.32l1.9,0.21l0.19,-0.05l0.9,-0.58l0.05,-0.47l-1.05,-1.03l0.02,-0.86l-0.23,-0.3l-1.13,-0.29l0.18,-0.23Z\",\n \"name\": \"Haiti\"\n },\n \"HU\": {\n \"path\": \"M461.96,157.92l0.68,-1.66l-0.03,-0.29l-0.15,-0.22l0.84,-0.0l0.3,-0.26l0.12,-0.84l0.88,0.57l0.98,0.38l0.16,0.01l2.1,-0.39l0.23,-0.21l0.14,-0.45l0.88,-0.1l1.06,-0.43l0.13,0.1l0.28,0.04l1.18,-0.4l0.14,-0.1l0.52,-0.67l0.63,-0.15l2.6,0.95l0.26,-0.03l0.38,-0.23l1.12,0.7l0.1,0.49l-1.31,0.57l-0.14,0.13l-1.18,2.14l-1.44,2.04l-1.85,0.55l-1.51,-0.13l-0.14,0.02l-1.92,0.82l-0.85,0.42l-1.91,-0.55l-1.83,-1.31l-0.74,-0.37l-0.44,-0.97l-0.26,-0.18Z\",\n \"name\": \"Hungary\"\n },\n \"HN\": {\n \"path\": \"M202.48,251.87l-0.33,-0.62l-0.18,-0.14l-0.5,-0.15l0.13,-0.76l-0.11,-0.28l-0.34,-0.28l-0.6,-0.23l-0.18,-0.01l-0.81,0.22l-0.16,-0.24l-0.72,-0.39l-0.51,-0.48l-0.12,-0.07l-0.31,-0.09l0.24,-0.3l0.04,-0.3l-0.16,-0.4l0.1,-0.28l1.14,-0.69l1.0,-0.86l0.09,0.04l0.3,-0.05l0.47,-0.39l0.49,-0.03l0.14,0.13l0.29,0.06l0.31,-0.1l1.16,0.22l1.24,-0.08l0.81,-0.28l0.29,-0.25l0.63,0.1l0.69,0.18l0.65,-0.06l0.49,-0.2l1.04,0.32l0.38,0.06l0.7,0.44l0.71,0.56l0.92,0.41l0.1,0.11l-0.11,-0.01l-0.23,0.09l-0.3,0.3l-0.76,0.29l-0.58,0.0l-0.15,0.04l-0.45,0.26l-0.31,-0.07l-0.37,-0.34l-0.28,-0.07l-0.26,0.07l-0.18,0.15l-0.23,0.43l-0.04,-0.0l-0.33,0.28l-0.03,0.4l-0.76,0.61l-0.45,0.3l-0.15,0.16l-0.51,-0.36l-0.41,0.06l-0.45,0.56l-0.41,-0.01l-0.59,0.06l-0.27,0.31l0.04,0.96l-0.07,0.0l-0.25,0.16l-0.24,0.45l-0.42,0.06Z\",\n \"name\": \"Honduras\"\n },\n \"PR\": {\n \"path\": \"M254.95,238.31l1.15,0.21l0.2,0.23l-0.36,0.36l-1.76,-0.01l-1.2,0.07l-0.09,-0.69l0.17,-0.18l1.89,0.01Z\",\n \"name\": \"Puerto Rico\"\n },\n \"PS\": {\n \"path\": \"M509.66,201.06l-0.0,1.44l-0.29,0.63l-0.59,0.19l0.02,-0.11l0.52,-0.31l-0.02,-0.53l-0.41,-0.2l0.36,-1.28l0.41,0.17Z\",\n \"name\": \"West Bank\"\n },\n \"PT\": {\n \"path\": \"M398.65,173.6l0.75,-0.63l0.7,-0.3l0.51,1.2l0.28,0.18l1.48,-0.0l0.2,-0.08l0.33,-0.3l1.16,0.08l0.52,1.11l-0.95,0.66l-0.13,0.24l-0.03,2.2l-0.33,0.35l-0.08,0.18l-0.08,1.17l-0.86,0.19l-0.2,0.44l0.93,1.64l-0.64,1.79l0.07,0.31l0.72,0.72l-0.24,0.56l-0.9,1.05l-0.07,0.26l0.17,0.77l-0.73,0.54l-1.18,-0.36l-0.16,-0.0l-0.85,0.21l0.31,-1.81l-0.23,-1.87l-0.23,-0.25l-0.99,-0.24l-0.49,-0.91l0.18,-1.72l0.93,-0.99l0.08,-0.16l0.17,-1.17l0.52,-1.76l-0.04,-1.36l-0.51,-1.14l-0.09,-0.8Z\",\n \"name\": \"Portugal\"\n },\n \"PY\": {\n \"path\": \"M264.33,341.43l0.93,-2.96l0.07,-1.42l1.1,-2.1l4.19,-0.73l2.22,0.04l2.12,1.21l0.07,0.76l0.7,1.38l-0.16,3.48l0.24,0.31l2.64,0.5l0.19,-0.03l0.9,-0.45l1.47,0.62l0.38,0.64l0.23,2.35l0.3,1.07l0.25,0.21l0.93,0.12l0.16,-0.02l0.8,-0.37l0.61,0.33l-0.0,1.25l-0.33,1.53l-0.5,1.57l-0.39,2.26l-2.14,1.94l-1.85,0.4l-2.74,-0.4l-2.13,-0.62l2.26,-3.75l0.03,-0.24l-0.36,-1.18l-0.17,-0.19l-2.55,-1.03l-3.04,-1.95l-2.07,-0.43l-4.4,-4.12Z\",\n \"name\": \"Paraguay\"\n },\n \"PA\": {\n \"path\": \"M213.65,263.79l0.18,-0.43l0.02,-0.18l-0.06,-0.28l0.23,-0.18l-0.01,-0.48l-0.4,-0.29l-0.01,-0.62l0.57,-0.13l0.68,0.69l-0.04,0.39l0.26,0.33l1.0,0.11l0.27,-0.1l0.49,0.44l0.24,0.07l1.34,-0.22l1.04,-0.62l1.49,-0.5l0.86,-0.73l0.99,0.11l0.18,0.28l1.35,0.08l1.02,0.4l0.78,0.72l0.71,0.53l-0.1,0.12l-0.05,0.3l0.53,1.34l-0.28,0.44l-0.6,-0.13l-0.36,0.22l-0.2,0.76l-0.41,-0.36l-0.44,-1.12l0.49,-0.53l-0.14,-0.49l-0.51,-0.14l-0.41,-0.72l-0.11,-0.11l-1.25,-0.7l-0.19,-0.04l-1.1,0.16l-0.22,0.15l-0.47,0.81l-0.9,0.56l-0.49,0.08l-0.22,0.17l-0.25,0.52l0.05,0.32l0.93,1.07l-0.41,0.21l-0.29,0.3l-0.81,0.09l-0.36,-1.26l-0.53,-0.1l-0.21,0.28l-0.5,-0.09l-0.44,-0.88l-0.22,-0.16l-0.99,-0.16l-0.61,-0.28l-0.13,-0.03l-1.0,0.0Z\",\n \"name\": \"Panama\"\n },\n \"PG\": {\n \"path\": \"M808.4,298.6l0.62,0.46l1.19,1.56l1.04,0.77l-0.18,0.37l-0.42,0.15l-0.92,-0.82l-1.05,-1.53l-0.27,-0.96ZM804.09,296.06l-0.3,0.26l-0.36,-1.11l-0.66,-1.06l-2.55,-1.89l-1.42,-0.59l0.17,-0.15l1.16,0.6l0.85,0.55l1.01,0.58l0.97,1.02l0.9,0.76l0.24,1.03ZM796.71,297.99l0.15,0.82l0.34,0.24l1.43,-0.19l0.19,-0.11l0.68,-0.82l1.36,-0.87l0.13,-0.31l-0.21,-1.13l1.04,-0.03l0.3,0.25l-0.04,1.17l-0.74,1.34l-1.17,0.18l-0.22,0.15l-0.35,0.62l-2.51,1.13l-1.21,-0.0l-1.99,-0.71l-1.19,-0.58l0.07,-0.28l1.98,0.32l1.46,-0.2l0.24,-0.21l0.25,-0.79ZM789.24,303.52l0.11,0.15l2.19,1.62l1.6,2.62l0.27,0.14l1.09,-0.06l-0.07,0.77l0.23,0.32l1.23,0.27l-0.14,0.09l0.05,0.53l2.39,0.95l-0.11,0.28l-1.33,0.14l-0.51,-0.55l-0.18,-0.09l-4.59,-0.65l-1.87,-1.55l-1.38,-1.35l-1.28,-2.17l-0.16,-0.13l-3.27,-1.1l-0.19,0.0l-2.12,0.72l-1.58,0.85l-0.15,0.31l0.28,1.63l-1.65,0.73l-1.37,-0.4l-2.3,-0.09l-0.08,-15.65l3.95,1.57l4.58,1.42l1.67,1.25l1.32,1.19l0.36,1.39l0.19,0.21l4.06,1.51l0.39,0.85l-1.9,0.22l-0.25,0.39l0.55,1.68Z\",\n \"name\": \"Papua New Guinea\"\n },\n \"PE\": {\n \"path\": \"M246.44,329.21l-0.63,1.25l-1.05,0.54l-2.25,-1.33l-0.19,-0.93l-0.16,-0.21l-4.95,-2.58l-4.46,-2.79l-1.87,-1.52l-0.94,-1.91l0.33,-0.6l-0.01,-0.31l-2.11,-3.33l-2.46,-4.66l-2.36,-5.02l-1.04,-1.18l-0.77,-1.81l-0.08,-0.11l-1.95,-1.64l-1.54,-0.88l0.61,-0.85l0.02,-0.31l-1.15,-2.27l0.69,-1.56l1.59,-1.26l0.12,0.42l-0.56,0.47l-0.11,0.25l0.07,0.92l0.36,0.27l0.97,-0.19l0.85,0.23l0.99,1.19l0.41,0.05l1.42,-1.03l0.11,-0.16l0.46,-1.64l1.45,-2.06l2.92,-0.96l0.11,-0.07l2.73,-2.62l0.84,-1.72l0.02,-0.18l-0.3,-1.65l0.28,-0.1l1.49,1.06l0.77,1.14l0.1,0.09l1.08,0.6l1.43,2.55l0.21,0.15l1.86,0.31l0.18,-0.03l1.25,-0.6l0.77,0.37l0.17,0.03l1.4,-0.2l1.57,0.96l-1.45,2.29l0.23,0.46l0.63,0.05l0.66,0.7l-1.51,-0.08l-0.24,0.1l-0.27,0.31l-1.96,0.46l-2.95,1.74l-0.14,0.21l-0.17,1.1l-0.6,0.82l-0.05,0.23l0.21,1.13l-1.31,0.63l-0.17,0.27l0.0,0.91l-0.53,0.37l-0.1,0.37l1.04,2.27l1.31,1.46l-0.44,0.9l0.24,0.43l1.52,0.13l0.87,1.23l0.24,0.13l2.21,0.07l0.18,-0.06l1.55,-1.13l-0.14,3.22l0.23,0.3l1.14,0.29l0.16,-0.0l1.18,-0.36l1.97,3.71l-0.45,0.71l-0.04,0.14l-0.12,1.8l-0.05,2.07l-0.92,1.2l-0.03,0.31l0.38,0.8l-0.48,0.72l-0.02,0.3l1.01,2.02l-1.5,2.64Z\",\n \"name\": \"Peru\"\n },\n \"PK\": {\n \"path\": \"M609.08,187.76l1.66,1.21l0.71,2.11l0.2,0.19l3.62,1.01l-1.98,1.95l-2.65,0.4l-3.75,-0.68l-0.26,0.08l-1.23,1.22l-0.07,0.31l0.89,2.46l0.88,1.92l0.1,0.12l1.67,1.14l-1.8,1.35l-0.12,0.25l0.04,1.85l-2.35,2.67l-1.59,2.79l-2.5,2.72l-2.76,-0.2l-0.24,0.09l-2.76,2.83l0.04,0.45l1.54,1.13l0.27,1.94l0.09,0.17l1.34,1.29l0.4,1.83l-5.14,-0.01l-0.22,0.09l-1.53,1.63l-1.52,-0.56l-0.76,-1.88l-1.93,-2.03l-0.25,-0.09l-4.6,0.5l-4.05,0.05l-3.1,0.33l0.77,-2.53l3.48,-1.33l0.19,-0.33l-0.21,-1.24l-0.19,-0.23l-1.01,-0.37l-0.06,-2.18l-0.17,-0.26l-2.32,-1.16l-0.96,-1.57l-0.56,-0.65l3.16,1.05l0.14,0.01l2.45,-0.4l1.44,0.33l0.3,-0.1l0.4,-0.47l1.58,0.22l0.14,-0.01l3.25,-1.14l0.2,-0.27l0.08,-2.23l1.23,-1.38l1.73,0.0l0.28,-0.2l0.22,-0.61l1.68,-0.32l0.86,0.24l0.27,-0.05l0.98,-0.78l0.11,-0.26l-0.13,-1.57l0.96,-1.52l1.51,-0.67l0.14,-0.41l-0.74,-1.4l1.86,0.07l0.26,-0.13l0.69,-1.01l0.05,-0.2l-0.09,-0.94l1.14,-1.09l0.09,-0.28l-0.29,-1.41l-0.51,-1.07l1.23,-1.05l2.6,-0.58l2.86,-0.33l1.33,-0.54l1.3,-0.29Z\",\n \"name\": \"Pakistan\"\n },\n \"PH\": {\n \"path\": \"M737.11,263.82l0.25,1.66l0.14,1.34l-0.54,1.46l-0.64,-1.79l-0.5,-0.1l-1.17,1.28l-0.05,0.32l0.74,1.71l-0.49,0.81l-2.6,-1.28l-0.61,-1.57l0.68,-1.07l-0.07,-0.4l-1.59,-1.19l-0.42,0.06l-0.69,0.91l-1.01,-0.08l-0.21,0.06l-1.58,1.2l-0.17,-0.3l0.87,-1.88l1.48,-0.66l1.18,-0.81l0.71,0.92l0.34,0.1l1.9,-0.69l0.18,-0.18l0.34,-0.94l1.57,-0.06l0.29,-0.32l-0.1,-1.38l1.41,0.83l0.36,2.06ZM734.94,254.42l0.56,2.24l-1.41,-0.49l-0.4,0.3l0.07,0.94l0.51,1.3l-0.54,0.26l-0.08,-1.34l-0.25,-0.28l-0.56,-0.1l-0.23,-0.91l1.03,0.14l0.34,-0.31l-0.03,-0.96l-0.06,-0.18l-1.14,-1.44l1.62,0.04l0.57,0.78ZM724.68,238.33l1.48,0.71l0.33,-0.04l0.44,-0.38l0.05,0.13l-0.37,0.97l0.01,0.23l0.81,1.75l-0.59,1.92l-1.37,0.79l-0.14,0.2l-0.39,2.07l0.01,0.14l0.56,2.04l0.23,0.21l1.33,0.28l0.14,-0.0l1.0,-0.27l2.82,1.28l-0.2,1.16l0.12,0.29l0.66,0.5l-0.13,0.56l-1.54,-0.99l-0.89,-1.29l-0.49,0.0l-0.44,0.65l-1.34,-1.28l-0.26,-0.08l-2.18,0.36l-0.96,-0.44l0.09,-0.72l0.69,-0.57l-0.01,-0.47l-0.75,-0.59l-0.47,0.14l-0.15,0.43l-0.86,-1.02l-0.34,-1.02l-0.07,-1.74l0.49,0.41l0.49,-0.21l0.26,-3.99l0.73,-2.1l1.23,0.0ZM731.12,258.92l-0.82,0.75l-0.83,1.64l-0.52,0.5l-1.17,-1.33l0.36,-0.47l0.62,-0.7l0.07,-0.15l0.24,-1.35l0.73,-0.08l-0.31,1.29l0.16,0.34l0.37,-0.09l1.21,-1.6l-0.12,1.24ZM726.66,255.58l0.85,0.45l0.14,0.03l1.28,-0.0l-0.03,0.62l-1.04,0.96l-1.15,0.55l-0.05,-0.71l0.17,-1.26l-0.01,-0.13l-0.16,-0.51ZM724.92,252.06l-0.45,1.5l-0.7,-0.83l-0.95,-1.43l1.44,0.06l0.67,0.7ZM717.48,261.28l-1.87,1.35l0.21,-0.3l1.81,-1.57l1.5,-1.75l0.97,-1.84l0.23,1.08l-1.56,1.33l-1.29,1.7Z\",\n \"name\": \"Philippines\"\n },\n \"PL\": {\n \"path\": \"M458.8,144.25l-0.96,-1.98l0.18,-1.06l-0.01,-0.15l-0.62,-1.8l-0.82,-1.11l0.56,-0.73l0.05,-0.28l-0.51,-1.51l1.48,-0.87l3.88,-1.58l3.06,-1.14l2.23,0.52l0.15,0.66l0.29,0.23l2.4,0.04l3.11,0.39l4.56,-0.05l1.12,0.32l0.51,0.89l0.1,1.45l0.03,0.12l0.66,1.23l-0.01,1.08l-1.33,0.61l-0.14,0.41l0.74,1.5l0.07,1.53l1.22,2.79l-0.19,0.66l-1.09,0.33l-0.14,0.09l-2.27,2.72l-0.04,0.31l0.35,0.8l-2.22,-1.16l-0.21,-0.02l-1.72,0.44l-1.1,-0.31l-0.21,0.02l-1.3,0.61l-1.11,-1.02l-0.32,-0.05l-0.81,0.35l-1.15,-1.61l-0.21,-0.12l-1.65,-0.17l-0.19,-0.82l-0.23,-0.23l-1.72,-0.37l-0.34,0.17l-0.25,0.56l-0.88,-0.44l0.12,-0.69l-0.25,-0.35l-1.78,-0.27l-1.08,-0.97Z\",\n \"name\": \"Poland\"\n },\n \"ZM\": {\n \"path\": \"M502.81,308.32l1.09,1.04l0.58,1.94l-0.39,0.66l-0.5,2.05l-0.0,0.14l0.45,1.95l-0.69,0.77l-0.06,0.11l-0.76,2.37l0.15,0.36l0.62,0.31l-6.85,1.9l-0.22,0.33l0.2,1.54l-1.62,0.3l-0.12,0.05l-1.43,1.02l-0.11,0.15l-0.25,0.73l-0.73,0.17l-0.14,0.08l-2.18,2.12l-1.33,1.6l-0.65,0.05l-0.83,-0.29l-2.75,-0.28l-0.24,-0.1l-0.15,-0.27l-0.99,-0.58l-0.12,-0.04l-1.73,-0.14l-1.88,0.54l-1.5,-1.48l-1.61,-2.01l0.11,-7.73l4.92,0.03l0.29,-0.37l-0.19,-0.79l0.34,-0.86l0.0,-0.21l-0.41,-1.11l0.26,-1.14l-0.01,-0.16l-0.12,-0.36l0.18,0.01l0.1,0.56l0.31,0.25l1.14,-0.06l1.44,0.21l0.76,1.05l0.19,0.12l2.01,0.35l0.19,-0.03l1.24,-0.65l0.44,1.03l0.22,0.18l1.81,0.34l0.85,0.99l1.02,1.39l0.24,0.12l1.92,0.02l0.3,-0.32l-0.21,-2.74l-0.47,-0.23l-0.53,0.36l-1.58,-0.89l-0.51,-0.34l0.29,-2.36l0.44,-2.99l-0.03,-0.18l-0.5,-0.99l0.61,-1.38l0.53,-0.24l3.26,-0.41l0.89,0.23l1.01,0.62l1.04,0.44l1.6,0.43l1.35,0.72Z\",\n \"name\": \"Zambia\"\n },\n \"EE\": {\n \"path\": \"M482.19,120.88l0.23,-1.68l-0.43,-0.31l-0.75,0.37l-1.34,-1.1l-0.18,-1.75l2.92,-0.95l3.07,-0.53l2.66,0.6l2.48,-0.1l0.18,0.31l-1.65,1.96l-0.06,0.26l0.71,3.25l-0.88,0.94l-1.85,-0.01l-2.08,-1.3l-1.14,-0.47l-0.2,-0.01l-1.69,0.51Z\",\n \"name\": \"Estonia\"\n },\n \"EG\": {\n \"path\": \"M508.07,208.8l-0.66,1.06l-0.53,2.03l-0.64,1.32l-0.32,0.26l-1.74,-1.85l-1.77,-3.86l-0.48,-0.09l-0.26,0.25l-0.07,0.32l1.04,2.88l1.55,2.76l1.89,4.18l0.94,1.48l0.83,1.54l2.08,2.73l-0.3,0.28l-0.1,0.23l0.08,1.72l0.11,0.22l2.91,2.37l-28.78,0.0l0.0,-19.06l-0.73,-2.2l0.61,-1.59l0.0,-0.2l-0.34,-1.04l0.73,-1.08l3.13,-0.04l2.36,0.72l2.48,0.81l1.15,0.43l0.23,-0.01l1.93,-0.87l1.02,-0.78l2.08,-0.21l1.59,0.31l0.62,1.24l0.52,0.03l0.46,-0.71l1.86,0.59l1.95,0.16l0.17,-0.04l0.92,-0.52l1.48,4.24Z\",\n \"name\": \"Egypt\"\n },\n \"ZA\": {\n \"path\": \"M467.06,373.27l-0.13,-0.29l0.01,-1.58l-0.02,-0.12l-0.71,-1.64l0.59,-0.37l0.14,-0.26l-0.07,-2.13l-0.05,-0.15l-1.63,-2.58l-1.25,-2.31l-1.71,-3.37l0.88,-0.98l0.7,0.52l0.39,1.08l0.23,0.19l1.1,0.19l1.55,0.51l0.14,0.01l1.35,-0.2l0.11,-0.04l2.24,-1.39l0.14,-0.25l0.0,-9.4l0.16,0.09l1.39,2.38l-0.22,1.53l0.04,0.19l0.56,0.94l0.3,0.14l1.79,-0.27l0.16,-0.08l1.23,-1.18l1.17,-0.79l0.1,-0.12l0.57,-1.19l1.02,-0.52l0.9,0.28l1.16,0.73l0.14,0.05l2.04,0.13l0.13,-0.02l1.6,-0.62l0.18,-0.19l0.63,-1.93l1.18,-0.19l0.19,-0.12l0.78,-1.05l0.81,-1.71l2.18,-1.91l3.44,-1.88l0.89,0.02l1.17,0.43l0.21,-0.0l0.76,-0.29l1.07,0.21l1.15,3.55l0.63,1.82l-0.44,2.9l0.1,0.52l-0.74,-0.29l-0.18,-0.01l-0.72,0.19l-0.21,0.2l-0.22,0.74l-0.66,0.97l-0.05,0.18l0.02,0.93l0.09,0.21l1.49,1.46l0.27,0.08l1.47,-0.29l0.22,-0.18l0.43,-1.01l1.29,0.02l-0.51,1.63l-0.29,2.2l-0.59,1.12l-2.2,1.78l-1.06,1.39l-0.72,1.44l-1.39,1.93l-2.81,2.84l-1.75,1.65l-1.85,1.24l-2.55,1.06l-1.23,0.14l-0.24,0.18l-0.22,0.54l-1.27,-0.35l-0.2,0.01l-1.15,0.5l-2.62,-0.52l-0.12,0.0l-1.46,0.33l-0.98,-0.14l-0.16,0.02l-2.55,1.1l-2.11,0.44l-1.59,1.07l-0.93,0.06l-0.97,-0.92l-0.19,-0.08l-0.72,-0.04l-1.0,-1.16l-0.25,0.05ZM493.72,359.24l-1.12,-0.86l-0.31,-0.03l-1.23,0.59l-1.36,1.07l-1.39,1.78l0.01,0.38l1.88,2.11l0.31,0.09l0.9,-0.27l0.18,-0.15l0.4,-0.77l1.28,-0.39l0.18,-0.16l0.42,-0.88l0.76,-1.32l-0.05,-0.37l-0.87,-0.82Z\",\n \"name\": \"South Africa\"\n },\n \"EC\": {\n \"path\": \"M220.2,293.48l1.25,-1.76l0.02,-0.31l-0.54,-1.09l-0.5,-0.06l-0.78,0.94l-1.03,-0.75l0.33,-0.46l0.05,-0.23l-0.38,-2.04l0.66,-0.28l0.17,-0.19l0.45,-1.52l0.93,-1.58l0.04,-0.2l-0.13,-0.78l1.19,-0.47l1.57,-0.91l2.35,1.34l0.17,0.04l0.28,-0.02l0.52,0.91l0.21,0.15l2.12,0.35l0.2,-0.03l0.55,-0.31l1.08,0.73l0.97,0.54l0.31,1.67l-0.71,1.49l-2.64,2.54l-2.95,0.97l-0.15,0.11l-1.53,2.18l-0.49,1.68l-1.1,0.8l-0.87,-1.05l-0.15,-0.1l-1.01,-0.27l-0.13,-0.0l-0.7,0.14l-0.03,-0.43l0.6,-0.5l0.1,-0.31l-0.26,-0.91Z\",\n \"name\": \"Ecuador\"\n },\n \"AL\": {\n \"path\": \"M470.27,171.7l0.38,0.19l0.45,-0.18l0.4,0.61l0.11,0.1l0.46,0.24l0.13,0.87l-0.3,0.95l-0.0,0.17l0.36,1.28l0.12,0.17l0.9,0.63l-0.03,0.44l-0.67,0.35l-0.16,0.22l-0.14,0.88l-0.96,1.18l-0.06,-0.03l-0.04,-0.48l-0.12,-0.22l-1.28,-0.92l-0.19,-1.25l0.2,-1.96l0.33,-0.89l-0.06,-0.3l-0.36,-0.41l-0.13,-0.75l0.66,-0.9Z\",\n \"name\": \"Albania\"\n },\n \"AO\": {\n \"path\": \"M461.62,299.93l0.55,1.67l0.73,1.54l1.56,2.18l0.28,0.12l1.66,-0.2l0.81,-0.34l1.28,0.33l0.33,-0.14l0.39,-0.67l0.56,-1.3l1.37,-0.09l0.27,-0.21l0.07,-0.23l0.67,-0.01l-0.13,0.53l0.29,0.37l2.74,-0.02l0.04,1.29l0.03,0.13l0.46,0.87l-0.35,1.52l0.18,1.55l0.07,0.16l0.75,0.85l-0.13,2.89l0.41,0.29l0.56,-0.21l1.11,0.05l1.5,-0.37l0.9,0.12l0.18,0.53l-0.27,1.15l0.01,0.17l0.4,1.08l-0.33,0.85l-0.01,0.18l0.12,0.51l-4.83,-0.03l-0.3,0.3l-0.12,8.13l0.07,0.19l1.69,2.1l1.27,1.25l-4.03,0.92l-5.93,-0.36l-1.66,-1.19l-0.18,-0.06l-10.15,0.11l-0.34,0.13l-1.35,-1.05l-0.17,-0.06l-1.62,-0.08l-1.6,0.45l-0.88,0.36l-0.17,-1.2l0.34,-2.19l0.85,-2.32l0.14,-1.13l0.79,-2.24l0.57,-1.0l1.42,-1.64l0.82,-1.15l0.05,-0.13l0.26,-1.88l-0.13,-1.51l-0.07,-0.16l-0.72,-0.87l-1.23,-2.91l0.09,-0.37l0.73,-0.95l0.05,-0.27l-1.27,-4.12l-1.19,-1.54l0.1,-0.2l0.86,-0.28l0.78,0.03l0.83,-0.29l7.12,0.03ZM451.81,298.94l-0.17,0.07l-0.5,-1.42l0.85,-0.92l0.53,-0.29l0.48,0.44l-0.56,0.32l-0.1,0.1l-0.41,0.65l-0.05,0.14l-0.07,0.91Z\",\n \"name\": \"Angola\"\n },\n \"KZ\": {\n \"path\": \"M598.42,172.08l-1.37,0.54l-3.3,2.09l-0.11,0.12l-1.01,1.97l-0.56,0.01l-0.6,-1.24l-0.26,-0.17l-2.95,-0.09l-0.46,-2.22l-0.29,-0.24l-0.91,-0.02l0.17,-2.72l-0.12,-0.26l-3.0,-2.22l-0.2,-0.06l-4.29,0.24l-2.8,0.42l-2.36,-2.7l-6.4,-3.65l-0.23,-0.03l-6.45,1.83l-0.22,0.29l0.1,10.94l-0.84,0.1l-1.65,-2.21l-0.11,-0.09l-1.69,-0.84l-0.2,-0.02l-2.84,0.63l-0.14,0.07l-0.71,0.64l-0.02,-0.11l0.57,-1.17l0.0,-0.26l-0.48,-1.05l-0.17,-0.16l-2.78,-0.99l-1.08,-2.62l-0.13,-0.15l-1.24,-0.7l-0.04,-0.48l2.07,0.25l0.34,-0.29l0.09,-2.03l1.84,-0.44l2.12,0.45l0.36,-0.25l0.45,-3.04l-0.45,-2.06l-0.31,-0.23l-2.44,0.15l-2.07,-0.75l-0.23,0.01l-2.88,1.38l-2.21,0.62l-0.96,-0.38l0.22,-1.39l-0.06,-0.23l-1.6,-2.12l-0.25,-0.12l-1.72,0.08l-1.87,-1.91l1.33,-2.24l-0.06,-0.38l-0.55,-0.5l1.72,-3.08l2.3,1.7l0.48,-0.2l0.29,-2.26l4.99,-3.48l3.76,-0.08l5.46,2.27l2.96,1.33l0.26,-0.01l2.59,-1.36l3.82,-0.06l3.13,1.67l0.38,-0.09l0.63,-0.85l3.36,0.14l0.29,-0.19l0.63,-1.57l-0.13,-0.37l-3.64,-2.05l2.0,-1.36l0.1,-0.38l-0.32,-0.62l2.09,-0.76l0.13,-0.47l-1.65,-2.13l0.89,-0.91l9.27,-1.18l0.13,-0.05l1.17,-0.82l6.2,-1.27l2.26,-1.43l4.19,0.7l0.74,3.39l0.38,0.22l2.52,-0.81l2.9,1.06l-0.18,1.63l0.32,0.33l2.52,-0.23l5.0,-2.58l0.03,0.39l3.16,2.62l5.57,8.48l0.49,0.02l1.18,-1.53l3.22,1.78l0.21,0.03l3.5,-0.83l1.21,0.52l1.16,1.82l0.15,0.12l1.67,0.61l1.01,1.32l0.28,0.11l3.04,-0.41l1.1,1.64l-1.68,1.89l-1.97,0.28l-0.26,0.29l-0.12,3.09l-1.2,1.23l-4.81,-1.01l-0.35,0.2l-1.77,5.51l-1.14,0.62l-4.92,1.23l-0.2,0.41l2.14,5.06l-1.45,0.67l-0.17,0.31l0.15,1.28l-1.05,-0.3l-1.21,-1.04l-0.17,-0.07l-3.73,-0.32l-4.15,-0.08l-0.92,0.31l-3.46,-1.24l-0.22,0.01l-1.42,0.63l-0.17,0.21l-0.32,1.49l-3.82,-0.97l-0.15,0.0l-1.65,0.43l-0.2,0.17l-0.51,1.21Z\",\n \"name\": \"Kazakhstan\"\n },\n \"ET\": {\n \"path\": \"M516.0,247.63l1.21,0.92l0.3,0.04l1.3,-0.53l0.46,0.41l0.19,0.08l1.65,0.03l2.05,0.96l0.67,0.88l1.07,0.79l1.0,1.45l0.7,0.68l-0.72,0.92l-0.85,1.19l-0.04,0.25l0.19,0.67l0.04,0.74l0.29,0.28l1.4,0.04l0.55,-0.15l0.23,0.19l-0.41,0.67l0.01,0.32l0.92,1.39l0.93,1.23l0.99,0.94l0.1,0.06l8.19,2.99l1.51,0.01l-6.51,6.95l-3.14,0.11l-0.18,0.06l-2.15,1.71l-1.51,0.04l-0.22,0.1l-0.6,0.69l-1.46,-0.0l-0.93,-0.78l-0.32,-0.04l-2.29,1.05l-0.12,0.1l-0.64,0.9l-1.44,-0.17l-0.51,-0.26l-0.17,-0.03l-0.56,0.07l-0.68,-0.02l-3.1,-2.08l-0.17,-0.05l-1.62,0.0l-0.68,-0.65l0.0,-1.28l-0.21,-0.29l-1.19,-0.38l-1.42,-2.63l-0.13,-0.12l-1.05,-0.53l-0.46,-1.0l-1.27,-1.23l-0.17,-0.08l-1.08,-0.13l0.53,-0.9l1.17,-0.05l0.26,-0.17l0.37,-0.77l0.03,-0.14l-0.03,-2.23l0.7,-2.49l1.08,-0.65l0.14,-0.19l0.24,-1.0l1.03,-1.85l1.47,-1.22l0.09,-0.12l1.02,-2.51l0.36,-1.96l2.62,0.48l0.33,-0.18l0.63,-1.55Z\",\n \"name\": \"Ethiopia\"\n },\n \"ZW\": {\n \"path\": \"M498.95,341.2l-1.16,-0.23l-0.16,0.01l-0.74,0.28l-1.11,-0.41l-1.02,-0.04l-1.52,-1.13l-0.12,-0.05l-1.79,-0.37l-0.65,-1.46l-0.01,-0.86l-0.22,-0.29l-0.99,-0.26l-2.74,-2.77l-0.77,-1.46l-0.52,-0.5l-0.72,-1.54l2.24,0.23l0.78,0.28l0.12,0.02l0.85,-0.06l0.21,-0.11l1.38,-1.66l2.11,-2.05l0.81,-0.18l0.22,-0.2l0.27,-0.8l1.29,-0.93l1.53,-0.28l0.11,0.66l0.3,0.25l2.02,-0.05l1.04,0.48l0.5,0.59l0.18,0.1l1.13,0.18l1.11,0.7l0.01,3.06l-0.49,1.82l-0.11,1.94l0.03,0.16l0.35,0.68l-0.24,1.3l-0.27,0.17l-0.12,0.15l-0.64,1.83l-2.49,2.8Z\",\n \"name\": \"Zimbabwe\"\n },\n \"ES\": {\n \"path\": \"M398.67,172.8l0.09,-1.45l-0.06,-0.2l-0.82,-1.05l3.16,-1.96l3.01,0.54l3.33,-0.02l2.64,0.52l2.14,-0.15l3.9,0.1l0.91,1.08l0.14,0.09l4.61,1.38l0.26,-0.04l0.77,-0.55l2.66,1.29l0.17,0.03l2.59,-0.35l0.1,1.28l-2.2,1.85l-3.13,0.62l-0.23,0.23l-0.21,0.92l-1.54,1.68l-0.97,2.4l0.02,0.26l0.85,1.46l-1.27,1.14l-0.09,0.14l-0.5,1.73l-1.73,0.53l-0.15,0.1l-1.68,2.1l-3.03,0.04l-2.38,-0.05l-0.17,0.05l-1.57,1.01l-0.9,1.01l-0.96,-0.19l-0.82,-0.86l-0.69,-1.6l-0.22,-0.18l-2.14,-0.41l-0.13,-0.62l0.83,-0.97l0.39,-0.86l-0.06,-0.33l-0.73,-0.73l0.63,-1.74l-0.02,-0.25l-0.8,-1.41l0.69,-0.15l0.23,-0.27l0.09,-1.29l0.33,-0.36l0.08,-0.2l0.03,-2.16l1.03,-0.72l0.1,-0.37l-0.7,-1.5l-0.25,-0.17l-1.46,-0.11l-0.22,0.07l-0.34,0.3l-1.17,0.0l-0.55,-1.29l-0.39,-0.16l-1.02,0.44l-0.45,0.36Z\",\n \"name\": \"Spain\"\n },\n \"ER\": {\n \"path\": \"M527.15,253.05l-0.77,-0.74l-1.01,-1.47l-1.14,-0.86l-0.62,-0.84l-0.11,-0.09l-2.18,-1.02l-0.12,-0.03l-1.61,-0.03l-0.52,-0.46l-0.31,-0.05l-1.31,0.54l-1.38,-1.06l-0.46,0.12l-0.69,1.68l-2.49,-0.46l-0.2,-0.76l1.06,-3.69l0.24,-1.65l0.66,-0.66l1.76,-0.4l0.16,-0.1l0.97,-1.13l1.24,2.55l0.68,2.34l0.09,0.14l1.4,1.27l3.39,2.4l1.37,1.43l2.14,2.34l0.94,0.6l-0.32,0.26l-0.85,-0.17Z\",\n \"name\": \"Eritrea\"\n },\n \"ME\": {\n \"path\": \"M469.05,172.9l-0.57,-0.8l-0.1,-0.09l-0.82,-0.46l0.16,-0.33l0.35,-1.57l0.72,-0.62l0.27,-0.16l0.48,0.38l0.35,0.4l0.12,0.08l0.79,0.32l0.66,0.43l-0.43,0.62l-0.28,0.11l-0.07,-0.25l-0.53,-0.1l-1.09,1.49l-0.05,0.23l0.06,0.32Z\",\n \"name\": \"Montenegro\"\n },\n \"MD\": {\n \"path\": \"M488.2,153.75l0.14,-0.11l1.49,-0.28l1.75,0.95l1.06,0.14l0.92,0.7l-0.15,0.9l0.15,0.31l0.8,0.46l0.33,1.2l0.09,0.14l0.72,0.66l-0.11,0.28l0.1,0.33l-0.06,0.02l-1.25,-0.08l-0.17,-0.29l-0.39,-0.12l-0.52,0.25l-0.16,0.36l0.13,0.42l-0.6,0.88l-0.43,1.03l-0.22,0.12l-0.32,-1.0l0.25,-1.34l-0.08,-1.38l-0.06,-0.17l-1.43,-1.87l-0.81,-1.36l-0.78,-0.95l-0.12,-0.09l-0.29,-0.12Z\",\n \"name\": \"Moldova\"\n },\n \"MG\": {\n \"path\": \"M544.77,316.45l0.64,1.04l0.6,1.62l0.4,3.04l0.63,1.21l-0.22,1.07l-0.15,0.26l-0.59,-1.05l-0.52,-0.01l-0.47,0.76l-0.04,0.23l0.46,1.84l-0.19,0.92l-0.61,0.53l-0.1,0.21l-0.16,2.15l-0.97,2.98l-1.24,3.59l-1.55,4.97l-0.96,3.67l-1.08,2.93l-1.94,0.61l-2.05,1.06l-3.2,-1.53l-0.62,-1.26l-0.18,-2.39l-0.87,-2.07l-0.22,-1.8l0.4,-1.69l1.01,-0.4l0.19,-0.28l0.01,-0.79l1.15,-1.91l0.04,-0.11l0.23,-1.66l-0.03,-0.17l-0.57,-1.21l-0.46,-1.58l-0.19,-2.25l0.82,-1.36l0.33,-1.51l1.11,-0.1l1.4,-0.53l0.9,-0.45l1.03,-0.03l0.21,-0.09l1.41,-1.45l2.12,-1.65l0.75,-1.29l0.03,-0.24l-0.17,-0.56l0.53,0.15l0.32,-0.1l1.38,-1.77l0.06,-0.18l0.04,-1.44l0.54,-0.74l0.62,0.77Z\",\n \"name\": \"Madagascar\"\n },\n \"MA\": {\n \"path\": \"M378.66,230.13l0.07,-0.75l0.93,-0.72l0.82,-1.37l0.04,-0.21l-0.14,-0.8l0.8,-1.74l1.33,-1.61l0.79,-0.4l0.14,-0.15l0.66,-1.55l0.08,-1.46l0.83,-1.52l1.6,-0.94l0.11,-0.11l1.56,-2.71l1.2,-0.99l2.24,-0.29l0.17,-0.08l1.95,-1.83l1.3,-0.77l2.09,-2.28l0.07,-0.26l-0.61,-3.34l0.92,-2.3l0.33,-1.44l1.52,-1.79l2.48,-1.27l1.86,-1.16l0.1,-0.11l1.67,-2.93l0.72,-1.59l1.54,0.01l1.43,1.14l0.21,0.06l2.33,-0.19l2.55,0.62l0.97,0.03l0.83,1.6l0.15,1.71l0.86,2.96l0.09,0.14l0.5,0.45l-0.31,0.73l-3.11,0.44l-0.16,0.07l-1.07,0.97l-1.36,0.23l-0.25,0.28l-0.1,1.85l-2.74,1.02l-0.14,0.11l-0.9,1.3l-1.93,0.69l-2.56,0.44l-4.04,2.01l-0.17,0.27l0.02,2.91l-0.08,0.0l-0.3,0.31l0.05,1.15l-1.25,0.07l-0.16,0.06l-0.73,0.55l-0.98,0.0l-0.85,-0.33l-0.15,-0.02l-2.11,0.29l-0.24,0.19l-0.76,1.95l-0.63,0.16l-0.21,0.19l-1.15,3.29l-3.42,2.81l-0.1,0.17l-0.81,3.57l-0.98,1.12l-0.3,0.85l-5.13,0.19Z\",\n \"name\": \"Morocco\"\n },\n \"UZ\": {\n \"path\": \"M587.83,186.48l0.06,-1.46l-0.19,-0.29l-3.31,-1.24l-2.57,-1.4l-1.63,-1.38l-2.79,-1.98l-1.2,-2.98l-0.12,-0.14l-0.84,-0.54l-0.18,-0.05l-2.61,0.13l-0.76,-0.48l-0.25,-2.25l-0.17,-0.24l-3.37,-1.6l-0.32,0.04l-2.08,1.73l-2.11,1.02l-0.16,0.35l0.31,1.14l-2.14,0.03l-0.09,-10.68l6.1,-1.74l6.25,3.57l2.36,2.72l0.27,0.1l2.92,-0.44l4.17,-0.23l2.78,2.06l-0.18,2.87l0.29,0.32l0.98,0.02l0.46,2.22l0.28,0.24l3.0,0.09l0.61,1.25l0.28,0.17l0.93,-0.02l0.26,-0.16l1.06,-2.06l3.21,-2.03l1.3,-0.5l0.19,0.08l-1.75,1.62l0.05,0.48l1.85,1.12l0.27,0.02l1.65,-0.69l2.4,1.27l-2.69,1.79l-1.79,-0.27l-0.89,0.06l-0.22,-0.52l0.48,-1.26l-0.34,-0.4l-3.35,0.69l-0.22,0.18l-0.78,1.87l-1.07,1.47l-1.93,-0.13l-0.29,0.16l-0.65,1.29l0.16,0.42l1.69,0.64l0.48,1.91l-1.25,2.6l-1.64,-0.53l-1.18,-0.03Z\",\n \"name\": \"Uzbekistan\"\n },\n \"MM\": {\n \"path\": \"M670.1,233.39l-1.46,1.11l-1.68,0.11l-0.26,0.19l-1.1,2.7l-0.95,0.42l-0.14,0.42l1.21,2.27l1.61,1.92l0.94,1.55l-0.82,1.99l-0.77,0.42l-0.13,0.39l0.64,1.35l1.62,1.97l0.26,1.32l-0.04,1.15l0.02,0.13l0.92,2.18l-1.3,2.23l-0.79,1.69l-0.1,-0.77l0.74,-1.87l-0.02,-0.26l-0.8,-1.42l0.2,-2.68l-0.06,-0.2l-0.98,-1.27l-0.8,-2.98l-0.45,-3.22l-1.11,-2.22l-0.45,-0.1l-1.64,1.28l-2.74,1.76l-1.26,-0.2l-1.27,-0.49l0.79,-2.93l0.0,-0.14l-0.52,-2.42l-1.93,-2.97l0.26,-0.8l-0.22,-0.39l-1.37,-0.31l-1.65,-1.98l-0.12,-1.5l0.41,0.19l0.42,-0.26l0.05,-1.7l1.08,-0.54l0.16,-0.34l-0.24,-1.0l0.5,-0.79l0.05,-0.15l0.08,-2.35l1.58,0.49l0.36,-0.15l1.12,-2.19l0.15,-1.34l1.35,-2.18l0.04,-0.17l-0.07,-1.35l2.97,-1.71l1.67,0.45l0.38,-0.33l-0.18,-1.46l0.7,-0.4l0.15,-0.32l-0.13,-0.72l0.94,-0.13l0.74,1.41l0.11,0.12l0.95,0.56l0.07,1.89l-0.09,2.08l-2.28,2.15l-0.09,0.19l-0.3,3.15l0.35,0.32l2.37,-0.39l0.53,2.17l0.2,0.21l1.3,0.42l-0.63,1.9l0.14,0.36l1.86,0.99l1.1,0.49l0.24,0.0l1.45,-0.6l0.04,0.51l-2.01,1.6l-0.56,0.96l-1.34,0.56Z\",\n \"name\": \"Myanmar\"\n },\n \"ML\": {\n \"path\": \"M390.79,248.2l0.67,-0.37l0.14,-0.18l0.36,-1.31l0.51,-0.04l1.68,0.69l0.21,0.0l1.34,-0.48l0.89,0.16l0.3,-0.13l0.29,-0.44l9.89,-0.04l0.29,-0.21l0.56,-1.8l-0.11,-0.33l-0.33,-0.24l-2.37,-22.1l3.41,-0.04l8.37,5.73l8.38,5.68l0.56,1.15l0.14,0.14l1.56,0.75l0.99,0.36l0.03,1.45l0.33,0.29l2.45,-0.22l0.01,5.52l-1.3,1.64l-0.06,0.15l-0.18,1.37l-1.99,0.36l-3.4,0.22l-0.19,0.09l-0.85,0.83l-1.48,0.09l-1.49,0.01l-0.54,-0.43l-0.26,-0.05l-1.38,0.36l-2.39,1.08l-0.13,0.12l-0.44,0.73l-1.88,1.11l-0.11,0.12l-0.3,0.57l-0.86,0.42l-1.1,-0.31l-0.28,0.07l-0.69,0.62l-0.09,0.16l-0.35,1.66l-1.93,2.04l-0.08,0.23l0.05,0.76l-0.63,0.99l-0.04,0.19l0.14,1.23l-0.81,0.29l-0.32,0.17l-0.27,-0.75l-0.39,-0.18l-0.65,0.26l-0.36,-0.04l-0.29,0.14l-0.37,0.6l-1.69,-0.02l-0.63,-0.34l-0.32,0.02l-0.12,0.09l-0.47,-0.45l0.1,-0.6l-0.09,-0.27l-0.31,-0.3l-0.33,-0.05l-0.05,0.02l0.02,-0.21l0.46,-0.59l-0.02,-0.39l-0.99,-1.02l-0.34,-0.74l-0.56,-0.56l-0.17,-0.09l-0.5,-0.07l-0.19,0.04l-0.58,0.35l-0.79,0.33l-0.65,0.51l-0.85,-0.16l-0.63,-0.59l-0.14,-0.07l-0.41,-0.08l-0.2,0.03l-0.59,0.31l-0.07,0.0l-0.1,-0.63l0.11,-0.85l-0.21,-0.98l-0.11,-0.17l-0.86,-0.66l-0.45,-1.34l-0.1,-1.36Z\",\n \"name\": \"Mali\"\n },\n \"MN\": {\n \"path\": \"M641.06,150.59l2.41,-0.53l4.76,-2.8l3.67,-1.49l2.06,0.96l0.12,0.03l2.5,0.05l1.59,1.45l0.19,0.08l2.47,0.12l3.59,0.81l0.27,-0.07l2.43,-2.28l0.06,-0.36l-0.93,-1.77l2.33,-3.1l2.66,1.3l2.26,0.39l2.75,0.8l0.44,2.3l0.19,0.22l3.56,1.38l0.18,0.01l2.35,-0.6l3.1,-0.42l2.4,0.41l2.37,1.52l1.49,1.63l0.23,0.1l2.29,-0.03l3.13,0.52l0.15,-0.01l2.28,-0.79l3.27,-0.53l0.11,-0.04l3.56,-2.23l1.31,0.31l1.26,1.05l0.22,0.07l2.45,-0.22l-0.98,1.96l-1.77,3.21l-0.01,0.28l0.64,1.31l0.35,0.16l1.35,-0.38l2.4,0.48l0.22,-0.04l1.78,-1.09l1.82,0.92l2.11,2.07l-0.17,0.68l-1.79,-0.31l-3.74,0.45l-1.85,0.96l-1.78,2.01l-3.74,1.18l-2.46,1.61l-2.45,-0.6l-1.42,-0.28l-0.31,0.13l-1.31,1.99l0.0,0.33l0.78,1.15l0.3,0.74l-1.58,0.93l-1.75,1.59l-2.83,1.03l-3.77,0.12l-4.05,1.05l-2.81,1.54l-0.95,-0.8l-0.19,-0.07l-2.96,0.0l-3.64,-1.8l-2.55,-0.48l-3.38,0.41l-5.13,-0.67l-2.66,0.06l-1.35,-1.65l-1.12,-2.78l-0.21,-0.18l-1.5,-0.33l-2.98,-1.89l-0.12,-0.04l-3.37,-0.43l-2.84,-0.51l-0.75,-1.13l0.93,-3.54l-0.04,-0.24l-1.73,-2.55l-0.15,-0.12l-3.52,-1.18l-1.99,-1.61l-0.54,-1.85Z\",\n \"name\": \"Mongolia\"\n },\n \"MK\": {\n \"path\": \"M472.73,173.87l0.08,0.01l0.32,-0.25l0.08,-0.44l1.29,-0.41l1.37,-0.28l1.03,-0.04l1.06,0.82l0.14,1.59l-0.22,0.04l-0.17,0.11l-0.32,0.4l-1.2,-0.05l-0.18,0.05l-0.9,0.61l-1.45,0.23l-0.85,-0.59l-0.3,-1.09l0.22,-0.71Z\",\n \"name\": \"Macedonia\"\n },\n \"MW\": {\n \"path\": \"M507.18,313.84l-0.67,1.85l-0.01,0.16l0.7,3.31l0.31,0.24l0.75,-0.03l0.78,0.71l0.99,1.75l0.2,3.03l-0.91,0.45l-0.14,0.15l-0.59,1.38l-1.24,-1.21l-0.17,-1.62l0.49,-1.12l0.02,-0.16l-0.15,-1.03l-0.13,-0.21l-0.99,-0.65l-0.26,-0.03l-0.53,0.18l-1.31,-1.12l-1.15,-0.59l0.66,-2.06l0.75,-0.84l0.07,-0.27l-0.47,-2.04l0.48,-1.94l0.4,-0.65l0.03,-0.24l-0.64,-2.15l-0.08,-0.13l-0.44,-0.42l1.34,0.26l1.25,1.73l0.67,3.3Z\",\n \"name\": \"Malawi\"\n },\n \"MR\": {\n \"path\": \"M390.54,247.66l-1.48,-1.58l-1.51,-1.88l-0.12,-0.09l-1.64,-0.67l-1.17,-0.74l-0.17,-0.05l-1.4,0.03l-0.12,0.03l-1.14,0.52l-1.15,-0.21l-0.26,0.08l-0.44,0.43l-0.11,-0.72l0.68,-1.29l0.31,-2.43l-0.28,-2.63l-0.29,-1.27l0.24,-1.24l-0.03,-0.2l-0.65,-1.24l-1.19,-1.05l0.32,-0.51l9.64,0.02l0.3,-0.34l-0.46,-3.71l0.51,-1.12l2.17,-0.22l0.27,-0.3l-0.08,-6.5l7.91,0.13l0.31,-0.3l0.01,-3.5l8.17,5.63l-2.89,0.04l-0.29,0.33l2.42,22.56l0.12,0.21l0.26,0.19l-0.43,1.38l-9.83,0.04l-0.25,0.13l-0.27,0.41l-0.77,-0.14l-0.15,0.01l-1.3,0.47l-1.64,-0.67l-0.14,-0.02l-0.79,0.06l-0.27,0.22l-0.39,1.39l-0.53,0.29Z\",\n \"name\": \"Mauritania\"\n },\n \"UG\": {\n \"path\": \"M500.74,287.17l-2.84,-0.02l-0.92,0.32l-1.37,0.71l-0.29,-0.12l0.02,-1.6l0.54,-0.89l0.04,-0.13l0.14,-1.96l0.49,-1.09l0.91,-1.24l0.97,-0.68l0.8,-0.89l-0.13,-0.49l-0.79,-0.27l0.13,-2.55l0.78,-0.52l1.45,0.51l0.18,0.01l1.97,-0.57l1.72,0.01l0.18,-0.06l1.29,-0.97l0.98,1.44l0.29,1.24l1.05,2.75l-0.84,1.68l-1.94,2.66l-0.06,0.18l0.02,2.36l-4.8,0.18Z\",\n \"name\": \"Uganda\"\n },\n \"MY\": {\n \"path\": \"M717.6,273.52l-1.51,0.7l-2.13,-0.41l-2.88,-0.0l-0.29,0.21l-0.84,2.77l-0.9,0.82l-0.08,0.12l-1.23,3.34l-1.81,0.47l-2.29,-0.68l-0.14,-0.01l-1.2,0.22l-0.14,0.07l-1.36,1.18l-1.47,-0.17l-0.12,0.01l-1.46,0.46l-1.51,-1.25l-0.24,-0.97l1.26,0.59l0.2,0.02l1.93,-0.47l0.22,-0.22l0.47,-1.98l0.9,-0.4l2.97,-0.54l0.17,-0.09l1.8,-1.98l1.02,-1.32l0.9,1.03l0.48,-0.04l0.43,-0.7l1.02,0.07l0.32,-0.27l0.25,-2.72l1.84,-1.67l1.23,-1.89l0.73,-0.01l1.12,1.11l0.1,0.99l0.18,0.24l1.66,0.71l1.85,0.67l-0.09,0.51l-1.45,0.11l-0.26,0.4l0.35,0.97ZM673.78,269.53l0.17,1.14l0.35,0.25l1.65,-0.3l0.18,-0.11l0.68,-0.86l0.31,0.13l1.41,1.45l0.99,1.59l0.13,1.57l-0.26,1.09l0.0,0.15l0.24,0.84l0.18,1.46l0.11,0.2l0.82,0.64l0.92,2.08l-0.03,0.52l-1.4,0.13l-2.29,-1.79l-2.86,-1.92l-0.27,-1.16l-0.07,-0.13l-1.39,-1.61l-0.33,-1.99l-0.05,-0.12l-0.84,-1.27l0.26,-1.72l-0.03,-0.18l-0.45,-0.87l0.13,-0.13l1.71,0.92Z\",\n \"name\": \"Malaysia\"\n },\n \"MX\": {\n \"path\": \"M133.41,213.83l0.61,0.09l0.27,-0.09l0.93,-1.01l0.08,-0.18l0.09,-1.22l-0.09,-0.23l-1.93,-1.94l-1.46,-0.77l-2.96,-5.62l-0.86,-2.1l2.44,-0.18l2.68,-0.25l-0.03,0.08l0.17,0.4l3.79,1.35l5.81,1.97l6.96,-0.02l0.3,-0.3l0.0,-0.84l3.91,0.0l0.87,0.93l1.27,0.87l1.44,1.17l0.79,1.37l0.62,1.49l0.12,0.14l1.35,0.85l2.08,0.82l0.35,-0.1l1.49,-2.04l1.81,-0.05l1.63,1.01l1.21,1.8l0.86,1.58l1.47,1.55l0.53,1.82l0.73,1.32l0.14,0.13l1.98,0.84l1.78,0.59l0.61,-0.03l-0.78,1.89l-0.45,1.96l-0.19,3.58l-0.24,1.27l0.01,0.14l0.43,1.43l0.78,1.31l0.49,1.98l0.06,0.12l1.63,1.9l0.61,1.51l0.98,1.28l0.16,0.11l2.58,0.67l0.98,1.02l0.31,0.08l2.17,-0.71l1.91,-0.26l1.87,-0.47l1.67,-0.49l1.59,-1.06l0.11,-0.14l0.6,-1.52l0.22,-2.21l0.35,-0.62l1.58,-0.64l2.59,-0.59l2.18,0.09l1.43,-0.2l0.39,0.36l-0.07,1.02l-1.28,1.48l-0.65,1.68l0.07,0.32l0.33,0.32l-0.79,2.49l-0.28,-0.3l-0.24,-0.09l-1.0,0.08l-0.24,0.15l-0.74,1.28l-0.19,-0.13l-0.28,-0.03l-0.3,0.12l-0.19,0.29l0.0,0.06l-4.34,-0.02l-0.3,0.3l-0.0,1.16l-0.83,0.0l-0.28,0.19l0.08,0.33l0.93,0.86l0.9,0.58l0.24,0.48l0.16,0.15l0.2,0.08l-0.03,0.38l-2.94,0.01l-0.26,0.15l-1.21,2.09l0.02,0.33l0.25,0.33l-0.21,0.44l-0.04,0.22l-2.42,-2.35l-1.36,-0.87l-2.04,-0.67l-0.13,-0.01l-1.4,0.19l-2.07,0.98l-1.14,0.23l-1.72,-0.66l-1.85,-0.48l-2.31,-1.16l-1.92,-0.38l-2.79,-1.18l-2.04,-1.2l-0.6,-0.66l-0.19,-0.1l-1.37,-0.15l-2.45,-0.78l-1.07,-1.18l-2.63,-1.44l-1.2,-1.56l-0.44,-0.93l0.5,-0.15l0.2,-0.39l-0.2,-0.58l0.46,-0.55l0.07,-0.19l0.01,-0.91l-0.06,-0.18l-0.81,-1.13l-0.25,-1.08l-0.86,-1.36l-2.21,-2.63l-2.53,-2.09l-1.2,-1.63l-0.11,-0.09l-2.08,-1.06l-0.34,-0.48l0.35,-1.53l-0.16,-0.34l-1.24,-0.61l-1.39,-1.23l-0.6,-1.81l-0.24,-0.2l-1.25,-0.2l-1.38,-1.35l-1.11,-1.25l-0.1,-0.76l-0.05,-0.13l-1.33,-2.04l-0.85,-2.02l0.04,-0.99l-0.14,-0.27l-1.81,-1.1l-0.2,-0.04l-0.74,0.11l-1.34,-0.72l-0.42,0.16l-0.4,1.12l-0.0,0.19l0.41,1.3l0.24,2.04l0.06,0.15l0.88,1.16l1.84,1.86l0.4,0.61l0.12,0.1l0.27,0.14l0.29,0.82l0.31,0.2l0.2,-0.02l0.43,1.51l0.09,0.14l0.72,0.65l0.51,0.91l1.58,1.4l0.8,2.42l0.77,1.23l0.66,1.19l0.13,1.34l0.28,0.27l1.08,0.08l0.92,1.1l0.83,1.08l-0.03,0.24l-0.88,0.81l-0.13,-0.0l-0.59,-1.42l-0.07,-0.11l-1.67,-1.53l-1.81,-1.28l-1.15,-0.61l0.07,-1.85l-0.38,-1.45l-0.12,-0.17l-2.91,-2.03l-0.39,0.04l-0.11,0.11l-0.42,-0.46l-0.11,-0.08l-1.49,-0.63l-1.09,-1.16Z\",\n \"name\": \"Mexico\"\n },\n \"VU\": {\n \"path\": \"M839.92,325.66l0.78,0.73l-0.18,0.07l-0.6,-0.8ZM839.13,322.74l0.27,1.36l-0.13,-0.06l-0.21,-0.02l-0.29,0.08l-0.22,-0.43l-0.03,-1.32l0.61,0.4Z\",\n \"name\": \"Vanuatu\"\n },\n \"FR\": {\n \"path\": \"M444.58,172.63l-0.68,1.92l-0.72,-0.38l-0.51,-1.79l0.43,-0.95l1.15,-0.83l0.33,2.04ZM429.71,147.03l1.77,1.57l0.26,0.07l1.16,-0.23l2.12,1.44l0.56,0.28l0.16,0.03l0.61,-0.06l1.09,0.78l0.13,0.05l3.18,0.53l-1.09,1.94l-0.3,2.16l-0.48,0.38l-1.0,-0.26l-0.37,0.32l0.07,0.66l-1.73,1.68l-0.09,0.21l-0.04,1.42l0.41,0.29l0.96,-0.4l0.67,1.07l-0.09,0.78l0.04,0.19l0.61,0.97l-0.71,0.78l-0.07,0.28l0.65,2.39l0.21,0.21l1.09,0.31l-0.2,0.95l-2.08,1.58l-4.81,-0.8l-0.13,0.01l-3.65,0.99l-0.22,0.24l-0.25,1.6l-2.59,0.35l-2.74,-1.33l-0.31,0.03l-0.79,0.57l-4.38,-1.31l-0.79,-0.94l1.16,-1.64l0.05,-0.15l0.48,-6.17l-0.06,-0.21l-2.58,-3.3l-1.89,-1.65l-0.11,-0.06l-3.64,-1.17l-0.2,-1.88l2.92,-0.63l4.14,0.82l0.35,-0.36l-0.65,-3.0l1.77,1.05l0.27,0.02l5.83,-2.54l0.17,-0.19l0.71,-2.54l1.75,-0.53l0.27,0.88l0.27,0.21l1.04,0.05l1.08,1.23ZM289.1,278.45l-0.85,0.84l-0.88,0.13l-0.25,-0.51l-0.21,-0.16l-0.56,-0.1l-0.25,0.07l-0.63,0.55l-0.62,-0.29l0.5,-0.88l0.21,-1.11l0.42,-1.05l-0.03,-0.28l-0.93,-1.42l-0.18,-1.54l1.13,-1.87l2.42,0.78l2.55,2.04l0.33,0.81l-1.4,2.16l-0.77,1.84Z\",\n \"name\": \"France\"\n },\n \"FI\": {\n \"path\": \"M492.26,76.42l-0.38,3.12l0.12,0.28l3.6,2.69l-2.14,2.96l-0.01,0.33l2.83,4.61l-1.61,3.36l0.03,0.31l2.15,2.87l-0.96,2.44l0.1,0.35l3.51,2.55l-0.81,1.72l-2.28,2.19l-5.28,4.79l-4.51,0.31l-4.39,1.37l-3.87,0.75l-1.34,-1.89l-0.11,-0.09l-2.23,-1.14l0.53,-3.54l-0.01,-0.14l-1.17,-3.37l1.12,-2.13l2.23,-2.44l5.69,-4.33l1.65,-0.84l0.16,-0.31l-0.26,-1.73l-0.15,-0.22l-3.4,-1.91l-0.77,-1.47l-0.07,-6.45l-0.12,-0.24l-3.91,-2.94l-3.0,-1.92l0.97,-0.76l2.6,2.17l0.21,0.07l3.2,-0.21l2.63,1.03l0.3,-0.05l2.39,-1.94l0.09,-0.13l1.18,-3.12l3.63,-1.42l2.87,1.59l-0.98,2.87Z\",\n \"name\": \"Finland\"\n },\n \"FJ\": {\n \"path\": \"M869.98,327.07l-1.31,0.44l-0.14,-0.41l0.96,-0.41l0.85,-0.17l1.43,-0.78l-0.16,0.65l-1.64,0.67ZM867.58,329.12l0.54,0.47l-0.31,1.0l-1.32,0.3l-1.13,-0.26l-0.17,-0.78l0.72,-0.66l0.98,0.27l0.25,-0.04l0.43,-0.29Z\",\n \"name\": \"Fiji\"\n },\n \"FK\": {\n \"path\": \"M268.15,427.89l2.6,-1.73l1.98,0.77l0.31,-0.05l1.32,-1.17l1.58,1.18l-0.54,0.84l-3.1,0.92l-1.0,-1.04l-0.39,-0.04l-1.9,1.35l-0.86,-1.04Z\",\n \"name\": \"Falkland Islands\"\n },\n \"NI\": {\n \"path\": \"M202.1,252.6l0.23,-0.0l0.12,-0.11l0.68,-0.09l0.22,-0.15l0.23,-0.43l0.2,-0.01l0.28,-0.31l-0.04,-0.97l0.29,-0.03l0.5,0.02l0.25,-0.11l0.37,-0.46l0.51,0.35l0.4,-0.06l0.23,-0.28l0.45,-0.29l0.87,-0.7l0.11,-0.21l0.02,-0.26l0.23,-0.12l0.25,-0.48l0.29,0.27l0.14,0.07l0.5,0.12l0.22,-0.03l0.48,-0.28l0.66,-0.02l0.87,-0.33l0.36,-0.32l0.21,0.01l-0.11,0.48l0.0,0.14l0.22,0.8l-0.54,0.85l-0.27,1.03l-0.09,1.18l0.14,0.72l0.05,0.95l-0.24,0.15l-0.13,0.19l-0.23,1.09l0.0,0.14l0.14,0.53l-0.42,0.53l-0.06,0.24l0.12,0.69l0.08,0.15l0.18,0.19l-0.26,0.23l-0.49,-0.11l-0.35,-0.44l-0.16,-0.1l-0.79,-0.21l-0.23,0.03l-0.45,0.26l-1.51,-0.62l-0.31,0.05l-0.17,0.15l-1.81,-1.62l-0.6,-0.9l-1.04,-0.79l-0.77,-0.71Z\",\n \"name\": \"Nicaragua\"\n },\n \"NL\": {\n \"path\": \"M436.22,136.65l1.82,0.08l0.36,0.89l-0.6,2.96l-0.53,1.06l-1.32,0.0l-0.3,0.34l0.35,2.89l-0.83,-0.47l-1.56,-1.43l-0.29,-0.07l-2.26,0.67l-1.02,-0.15l0.68,-0.48l0.1,-0.12l2.14,-4.84l3.25,-1.35Z\",\n \"name\": \"Netherlands\"\n },\n \"NO\": {\n \"path\": \"M491.45,67.31l7.06,3.0l-2.52,0.94l-0.11,0.49l2.43,2.49l-3.82,1.59l-1.48,0.3l0.89,-2.61l-0.14,-0.36l-3.21,-1.78l-0.25,-0.02l-3.89,1.52l-0.17,0.17l-1.2,3.17l-2.19,1.78l-2.53,-0.99l-0.13,-0.02l-3.15,0.21l-2.69,-2.25l-0.38,-0.01l-1.43,1.11l-1.47,0.17l-0.26,0.26l-0.33,2.57l-4.42,-0.65l-0.33,0.22l-0.6,2.19l-2.17,-0.01l-0.27,0.16l-4.15,7.68l-3.88,5.76l-0.0,0.33l0.81,1.23l-0.7,1.27l-2.3,-0.06l-0.28,0.18l-1.63,3.72l-0.02,0.13l0.15,5.17l0.07,0.18l1.51,1.84l-0.79,4.24l-2.04,2.5l-0.92,1.75l-1.39,-1.88l-0.44,-0.05l-4.89,4.21l-3.16,0.81l-3.24,-1.74l-0.86,-3.82l-0.78,-8.6l2.18,-2.36l6.56,-3.28l5.0,-4.16l4.63,-5.74l5.99,-8.09l4.17,-3.23l6.84,-5.49l5.39,-1.92l4.06,0.24l0.23,-0.09l3.72,-3.67l4.51,0.19l4.4,-0.89ZM484.58,19.95l4.42,1.82l-3.25,2.68l-7.14,0.65l-7.16,-0.91l-0.39,-1.37l-0.28,-0.22l-3.48,-0.1l-2.25,-2.15l7.09,-1.48l3.55,1.36l0.28,-0.03l2.42,-1.66l6.18,1.41ZM481.99,33.92l-4.73,1.85l-3.76,-1.06l1.27,-1.02l0.04,-0.43l-1.18,-1.35l4.46,-0.94l0.89,1.83l0.17,0.15l2.83,0.96ZM466.5,23.95l7.64,3.87l-5.63,1.94l-0.19,0.19l-1.35,3.88l-2.08,0.96l-0.16,0.19l-1.14,4.18l-2.71,0.18l-4.94,-2.95l1.95,-1.63l-0.08,-0.51l-3.7,-1.54l-4.79,-4.54l-1.78,-4.01l6.29,-1.88l1.25,1.81l0.25,0.13l3.57,-0.08l0.26,-0.17l0.87,-1.79l3.41,-0.18l3.08,1.94Z\",\n \"name\": \"Norway\"\n },\n \"NA\": {\n \"path\": \"M461.88,357.98l-1.61,-1.77l-0.94,-1.9l-0.54,-2.58l-0.62,-1.95l-0.83,-4.05l-0.06,-3.13l-0.33,-1.5l-0.07,-0.14l-0.95,-1.06l-1.27,-2.12l-1.3,-3.1l-0.59,-1.71l-1.98,-2.46l-0.13,-1.67l0.99,-0.4l1.44,-0.42l1.48,0.07l1.42,1.11l0.31,0.03l0.32,-0.15l9.99,-0.11l1.66,1.18l0.16,0.06l6.06,0.37l4.69,-1.06l2.01,-0.57l1.5,0.14l0.63,0.37l-1.0,0.41l-0.7,0.01l-0.16,0.05l-1.38,0.88l-0.79,-0.88l-0.29,-0.09l-3.83,0.9l-1.84,0.08l-0.29,0.3l-0.07,8.99l-2.18,0.08l-0.29,0.3l-0.0,17.47l-2.04,1.27l-1.21,0.18l-1.51,-0.49l-0.99,-0.18l-0.36,-1.0l-0.1,-0.14l-0.99,-0.74l-0.4,0.04l-0.98,1.09Z\",\n \"name\": \"Namibia\"\n },\n \"NC\": {\n \"path\": \"M835.87,338.68l2.06,1.63l1.01,0.94l-0.49,0.32l-1.21,-0.62l-1.76,-1.16l-1.58,-1.36l-1.61,-1.79l-0.16,-0.41l0.54,0.02l1.32,0.83l1.08,0.87l0.79,0.73Z\",\n \"name\": \"New Caledonia\"\n },\n \"NE\": {\n \"path\": \"M426.67,254.17l0.03,-1.04l-0.24,-0.3l-2.66,-0.53l-0.06,-1.0l-0.07,-0.17l-1.37,-1.62l-0.3,-1.04l0.15,-0.94l1.37,-0.09l0.19,-0.09l0.85,-0.83l3.34,-0.22l2.22,-0.41l0.24,-0.26l0.2,-1.5l1.32,-1.65l0.07,-0.19l-0.01,-5.74l3.4,-1.13l7.24,-5.12l8.46,-4.95l3.76,1.08l1.35,1.39l0.36,0.05l1.39,-0.77l0.55,3.66l0.12,0.2l0.82,0.6l0.03,0.69l0.1,0.21l0.87,0.74l-0.47,0.99l-0.96,5.26l-0.13,3.25l-3.08,2.34l-0.1,0.15l-1.08,3.37l0.08,0.31l0.94,0.86l-0.01,1.51l0.29,0.3l1.25,0.05l-0.14,0.66l-0.51,0.11l-0.24,0.26l-0.06,0.57l-0.04,0.0l-1.59,-2.62l-0.21,-0.14l-0.59,-0.1l-0.23,0.05l-1.83,1.33l-1.79,-0.68l-1.42,-0.17l-0.17,0.03l-0.65,0.32l-1.39,-0.07l-0.19,0.06l-1.4,1.03l-1.12,0.05l-2.97,-1.29l-0.26,0.01l-1.12,0.59l-1.08,-0.04l-0.85,-0.88l-0.11,-0.07l-2.51,-0.95l-0.14,-0.02l-2.69,0.3l-0.16,0.07l-0.65,0.55l-0.1,0.16l-0.34,1.41l-0.69,0.98l-0.05,0.15l-0.13,1.72l-1.47,-1.13l-0.18,-0.06l-0.9,0.01l-0.2,0.08l-0.32,0.28Z\",\n \"name\": \"Niger\"\n },\n \"NG\": {\n \"path\": \"M442.0,272.7l-2.4,0.83l-0.88,-0.12l-0.19,0.04l-0.89,0.52l-1.78,-0.05l-1.23,-1.44l-0.88,-1.87l-1.77,-1.66l-0.21,-0.08l-3.78,0.03l0.13,-3.75l-0.06,-1.58l0.44,-1.47l0.74,-0.75l1.21,-1.56l0.04,-0.29l-0.22,-0.56l0.44,-0.9l0.01,-0.24l-0.54,-1.44l0.26,-2.97l0.72,-1.06l0.33,-1.37l0.51,-0.43l2.53,-0.28l2.38,0.9l0.89,0.91l0.2,0.09l1.28,0.04l0.15,-0.03l1.06,-0.56l2.9,1.26l0.13,0.02l1.28,-0.06l0.16,-0.06l1.39,-1.02l1.36,0.07l0.15,-0.03l0.64,-0.32l1.22,0.13l1.9,0.73l0.28,-0.04l1.86,-1.35l0.33,0.06l1.62,2.67l0.29,0.14l0.32,-0.04l0.73,0.74l-0.19,0.37l-0.12,0.74l-2.03,1.89l-0.07,0.11l-0.66,1.62l-0.35,1.28l-0.48,0.51l-0.07,0.12l-0.48,1.67l-1.26,0.98l-0.1,0.15l-0.38,1.24l-0.58,1.07l-0.2,0.91l-1.43,0.7l-1.26,-0.93l-0.19,-0.06l-0.95,0.04l-0.2,0.09l-1.41,1.39l-0.61,0.02l-0.26,0.17l-1.19,2.42l-0.61,1.67Z\",\n \"name\": \"Nigeria\"\n },\n \"NZ\": {\n \"path\": \"M857.9,379.62l1.85,3.1l0.33,0.14l0.22,-0.28l0.04,-1.41l0.57,0.4l0.35,2.06l0.17,0.22l2.02,0.94l1.78,0.26l0.22,-0.06l1.31,-1.01l0.84,0.22l-0.53,2.27l-0.67,1.5l-1.71,-0.05l-0.25,0.12l-0.67,0.89l-0.05,0.23l0.21,1.15l-0.31,0.46l-2.15,3.57l-1.6,0.99l-0.28,-0.51l-0.15,-0.13l-0.72,-0.3l1.27,-2.15l0.01,-0.29l-0.82,-1.63l-0.15,-0.14l-2.5,-1.09l0.05,-0.69l1.67,-0.94l0.15,-0.21l0.42,-2.24l-0.11,-1.95l-0.03,-0.12l-0.97,-1.85l0.05,-0.41l-0.09,-0.25l-1.18,-1.17l-1.94,-2.49l-0.86,-1.64l0.38,-0.09l1.24,1.43l0.12,0.08l1.81,0.68l0.67,2.39ZM853.93,393.55l0.57,1.24l0.44,0.12l1.51,-1.03l0.52,0.91l0.0,1.09l-0.88,1.31l-1.62,2.2l-1.26,1.2l-0.05,0.38l0.64,1.02l-1.4,0.03l-0.14,0.04l-2.14,1.16l-0.14,0.17l-0.67,2.0l-1.38,3.06l-3.07,2.19l-2.12,-0.06l-1.55,-0.99l-0.14,-0.05l-2.53,-0.2l-0.31,-0.84l1.25,-2.15l3.07,-2.97l1.62,-0.59l1.81,-1.17l2.18,-1.63l1.55,-1.65l1.08,-2.18l0.9,-0.72l0.11,-0.17l0.35,-1.56l1.37,-1.07l0.4,0.91Z\",\n \"name\": \"New Zealand\"\n },\n \"NP\": {\n \"path\": \"M641.26,213.53l-0.14,0.95l0.32,1.64l-0.21,0.78l-1.83,0.04l-2.98,-0.62l-1.86,-0.25l-1.37,-1.3l-0.18,-0.08l-3.38,-0.34l-3.21,-1.49l-2.38,-1.34l-2.16,-0.92l0.84,-2.2l1.51,-1.18l0.89,-0.57l1.83,0.77l2.5,1.76l1.39,0.41l0.78,1.21l0.17,0.13l1.91,0.53l2.0,1.17l2.92,0.66l2.63,0.24Z\",\n \"name\": \"Nepal\"\n },\n \"CI\": {\n \"path\": \"M413.53,272.08l-0.83,0.02l-1.79,-0.49l-1.64,0.03l-3.04,0.46l-1.73,0.72l-2.4,0.89l-0.12,-0.02l0.16,-1.7l0.19,-0.25l0.06,-0.2l-0.08,-0.99l-0.09,-0.19l-1.06,-1.05l-0.15,-0.08l-0.71,-0.15l-0.51,-0.48l0.45,-0.92l0.02,-0.19l-0.24,-1.16l0.07,-0.43l0.14,-0.0l0.3,-0.26l0.15,-1.1l-0.02,-0.15l-0.13,-0.34l0.09,-0.13l0.83,-0.27l0.19,-0.37l-0.62,-2.02l-0.55,-1.0l0.14,-0.59l0.35,-0.14l0.24,-0.16l0.53,0.29l0.14,0.04l1.93,0.02l0.26,-0.14l0.36,-0.58l0.39,0.01l0.43,-0.17l0.28,0.79l0.43,0.16l0.56,-0.31l0.89,-0.32l0.92,0.45l0.39,0.75l0.14,0.13l1.13,0.53l0.3,-0.03l0.81,-0.59l1.02,-0.08l1.49,0.57l0.62,3.33l-1.03,2.09l-0.65,2.84l0.02,0.2l1.05,2.08l-0.07,0.64Z\",\n \"name\": \"Ivory Coast\"\n },\n \"CH\": {\n \"path\": \"M444.71,156.27l0.05,0.3l-0.34,0.69l0.13,0.4l1.13,0.58l1.07,0.1l-0.12,0.81l-0.87,0.42l-1.75,-0.37l-0.34,0.18l-0.47,1.1l-0.86,0.07l-0.33,-0.38l-0.41,-0.04l-1.34,1.01l-1.02,0.13l-0.93,-0.58l-0.82,-1.32l-0.37,-0.12l-0.77,0.32l0.02,-0.84l1.74,-1.69l0.09,-0.25l-0.04,-0.38l0.73,0.19l0.26,-0.06l0.6,-0.48l2.02,0.02l0.24,-0.12l0.38,-0.51l2.31,0.84Z\",\n \"name\": \"Switzerland\"\n },\n \"CO\": {\n \"path\": \"M232.24,284.95l-0.94,-0.52l-1.22,-0.82l-0.31,-0.01l-0.62,0.35l-1.88,-0.31l-0.54,-0.95l-0.29,-0.15l-0.37,0.03l-2.34,-1.33l-0.15,-0.35l0.57,-0.11l0.24,-0.32l-0.1,-1.15l0.46,-0.71l1.11,-0.15l0.21,-0.13l1.05,-1.57l0.95,-1.31l-0.08,-0.43l-0.73,-0.47l0.4,-1.24l0.01,-0.16l-0.53,-2.15l0.44,-0.54l0.06,-0.24l-0.4,-2.13l-0.06,-0.13l-0.93,-1.22l0.21,-0.8l0.52,0.12l0.32,-0.13l0.47,-0.75l0.03,-0.27l-0.52,-1.32l0.09,-0.11l1.14,0.07l0.22,-0.08l1.82,-1.71l0.96,-0.25l0.22,-0.28l0.02,-0.81l0.43,-2.01l1.28,-1.04l1.48,-0.05l0.27,-0.19l0.12,-0.31l1.73,0.19l0.2,-0.05l1.96,-1.28l0.97,-0.56l1.16,-1.16l0.64,0.11l0.43,0.44l-0.31,0.55l-1.49,0.39l-0.19,0.16l-0.6,1.2l-0.97,0.74l-0.73,0.94l-0.06,0.13l-0.3,1.76l-0.68,1.44l0.23,0.43l1.1,0.14l0.27,0.97l0.08,0.13l0.49,0.49l0.17,0.85l-0.27,0.86l-0.01,0.14l0.09,0.53l0.2,0.23l0.52,0.18l0.54,0.79l0.27,0.13l3.18,-0.24l1.31,0.29l1.7,2.08l0.31,0.1l0.96,-0.26l1.75,0.13l1.41,-0.27l0.56,0.27l-0.36,1.07l-0.54,0.81l-0.05,0.13l-0.2,1.8l0.51,1.79l0.07,0.12l0.65,0.68l0.05,0.32l-1.16,1.14l0.05,0.47l0.86,0.52l0.6,0.79l0.31,1.01l-0.7,-0.81l-0.44,-0.01l-0.74,0.77l-4.75,-0.05l-0.3,0.31l0.03,1.57l0.25,0.29l1.2,0.21l-0.02,0.24l-0.1,-0.05l-0.22,-0.02l-1.41,0.41l-0.22,0.29l-0.01,1.82l0.11,0.23l1.04,0.85l0.35,1.3l-0.06,1.02l-1.02,6.26l-0.84,-0.89l-0.19,-0.09l-0.25,-0.02l1.35,-2.13l-0.1,-0.42l-1.92,-1.17l-0.2,-0.04l-1.41,0.2l-0.82,-0.39l-0.26,0.0l-1.29,0.62l-1.63,-0.27l-1.4,-2.5l-0.12,-0.12l-1.1,-0.61l-0.83,-1.2l-1.67,-1.19l-0.27,-0.04l-0.54,0.19Z\",\n \"name\": \"Colombia\"\n },\n \"CN\": {\n \"path\": \"M740.32,148.94l0.22,0.21l4.3,1.03l2.84,2.2l0.99,2.92l0.28,0.2l3.8,0.0l0.15,-0.04l2.13,-1.24l3.5,-0.8l-1.05,2.29l-0.95,1.13l-0.06,0.12l-0.85,3.41l-1.56,2.81l-2.83,-0.51l-0.19,0.03l-2.15,1.09l-0.15,0.34l0.65,2.59l-0.33,3.3l-1.03,0.07l-0.28,0.3l0.01,0.75l-1.09,-1.2l-0.48,0.05l-0.94,1.6l-3.76,1.26l-0.2,0.36l0.29,1.19l-1.67,-0.08l-1.11,-0.88l-0.42,0.05l-1.69,2.08l-2.71,1.57l-2.04,1.88l-3.42,0.84l-0.11,0.05l-1.8,1.34l-1.54,0.46l0.52,-0.53l0.06,-0.33l-0.44,-0.96l1.84,-1.84l0.02,-0.41l-1.32,-1.56l-0.36,-0.08l-2.23,1.08l-2.83,2.06l-1.52,1.85l-2.32,0.13l-0.2,0.09l-1.28,1.37l-0.03,0.37l1.32,1.97l0.18,0.13l1.83,0.43l0.07,1.08l0.18,0.26l1.98,0.84l0.3,-0.03l2.66,-1.96l2.06,1.04l0.12,0.03l1.4,0.07l0.27,1.0l-3.24,0.73l-0.17,0.11l-1.13,1.5l-2.38,1.4l-0.1,0.1l-1.29,1.99l0.1,0.42l2.6,1.5l0.97,2.72l1.52,2.56l1.66,2.08l-0.03,1.76l-1.4,0.67l-0.15,0.38l0.6,1.47l0.13,0.15l1.29,0.75l-0.35,2.0l-0.58,1.96l-1.22,0.21l-0.2,0.14l-1.83,2.93l-2.02,3.51l-2.29,3.13l-3.4,2.42l-3.42,2.18l-2.75,0.3l-0.15,0.06l-1.32,1.01l-0.68,-0.67l-0.41,-0.01l-1.37,1.27l-3.42,1.28l-2.62,0.4l-0.24,0.21l-0.8,2.57l-0.95,0.11l-0.53,-1.54l0.52,-0.89l-0.19,-0.44l-3.36,-0.84l-0.17,0.01l-1.09,0.4l-2.36,-0.64l-1.0,-0.9l0.35,-1.34l-0.23,-0.37l-2.22,-0.47l-1.15,-0.94l-0.36,-0.02l-2.08,1.37l-2.35,0.29l-1.98,-0.01l-0.13,0.03l-1.32,0.63l-1.28,0.38l-0.21,0.33l0.33,2.65l-0.78,-0.04l-0.14,-0.39l-0.07,-1.04l-0.41,-0.26l-1.72,0.71l-0.96,-0.43l-1.63,-0.86l0.65,-1.95l-0.19,-0.38l-1.43,-0.46l-0.56,-2.27l-0.34,-0.22l-2.26,0.38l0.25,-2.65l2.29,-2.15l0.09,-0.2l0.1,-2.21l-0.07,-2.09l-0.15,-0.25l-1.02,-0.6l-0.8,-1.52l-0.31,-0.16l-1.42,0.2l-2.16,-0.32l0.55,-0.74l0.01,-0.35l-1.17,-1.7l-0.41,-0.08l-1.67,1.07l-1.97,-0.63l-0.25,0.03l-2.89,1.73l-2.26,1.99l-1.82,0.3l-1.0,-0.66l-0.15,-0.05l-1.28,-0.06l-1.75,-0.61l-0.24,0.02l-1.35,0.69l-0.1,0.08l-1.2,1.45l-0.14,-1.41l-0.4,-0.25l-1.46,0.55l-2.83,-0.26l-2.77,-0.61l-1.99,-1.17l-1.91,-0.54l-0.78,-1.21l-0.17,-0.13l-1.36,-0.38l-2.54,-1.79l-2.01,-0.84l-0.28,0.02l-0.89,0.56l-3.31,-1.83l-2.35,-1.67l-0.57,-2.49l1.34,0.28l0.36,-0.28l0.08,-1.42l-0.05,-0.19l-0.93,-1.34l0.24,-2.18l-0.07,-0.22l-2.69,-3.32l-0.15,-0.1l-3.97,-1.11l-0.69,-2.05l-0.11,-0.15l-1.79,-1.3l-0.39,-0.73l-0.36,-1.57l0.08,-1.09l-0.18,-0.3l-1.52,-0.66l-0.22,-0.01l-0.51,0.18l-0.52,-2.21l0.59,-0.55l0.06,-0.35l-0.22,-0.44l2.12,-1.24l1.63,-0.55l2.58,0.39l0.31,-0.16l0.87,-1.75l3.05,-0.34l0.21,-0.12l0.84,-1.12l3.87,-1.59l0.15,-0.14l0.35,-0.68l0.03,-0.17l-0.17,-1.51l1.52,-0.7l0.15,-0.39l-2.12,-5.0l4.62,-1.15l1.35,-0.72l0.14,-0.17l1.72,-5.37l4.7,0.99l0.28,-0.08l1.39,-1.43l0.08,-0.2l0.11,-2.95l1.83,-0.26l0.18,-0.1l1.85,-2.08l0.61,-0.17l0.57,1.97l0.1,0.15l2.2,1.75l3.48,1.17l1.59,2.36l-0.93,3.53l0.04,0.24l0.9,1.35l0.2,0.13l2.98,0.53l3.32,0.43l2.97,1.89l1.49,0.35l1.08,2.67l1.52,1.88l0.24,0.11l2.74,-0.07l5.15,0.67l3.36,-0.41l2.39,0.43l3.67,1.81l0.13,0.03l2.92,-0.0l1.02,0.86l0.34,0.03l2.88,-1.59l3.98,-1.03l3.81,-0.13l3.02,-1.12l1.77,-1.61l1.73,-1.01l0.13,-0.37l-0.41,-1.01l-0.72,-1.07l1.09,-1.66l1.21,0.24l2.57,0.63l0.24,-0.04l2.46,-1.62l3.78,-1.19l0.13,-0.09l1.8,-2.03l1.66,-0.84l3.54,-0.41l1.93,0.35l0.34,-0.22l0.27,-1.12l-0.08,-0.29l-2.27,-2.22l-2.08,-1.07l-0.29,0.01l-1.82,1.12l-2.36,-0.47l-0.14,0.01l-1.18,0.34l-0.46,-0.94l1.69,-3.08l1.1,-2.21l2.75,1.12l0.26,-0.02l3.53,-2.06l0.15,-0.26l-0.02,-1.35l2.18,-3.39l1.35,-1.04l0.12,-0.24l-0.03,-1.85l-0.15,-0.25l-1.0,-0.58l1.68,-1.37l3.01,-0.59l3.25,-0.09l3.67,0.99l2.08,1.18l1.51,3.3l0.95,1.45l0.85,1.99l0.92,3.19ZM697.0,237.37l-1.95,1.12l-1.74,-0.68l-0.06,-1.9l1.08,-1.03l2.62,-0.7l1.23,0.05l0.37,0.65l-1.01,1.08l-0.54,1.4Z\",\n \"name\": \"China\"\n },\n \"CM\": {\n \"path\": \"M453.76,278.92l-0.26,-0.11l-0.18,-0.02l-1.42,0.31l-1.56,-0.33l-1.17,0.16l-3.7,-0.05l0.3,-1.63l-0.04,-0.21l-0.98,-1.66l-0.15,-0.13l-1.03,-0.38l-0.46,-1.01l-0.13,-0.14l-0.48,-0.27l0.02,-0.46l0.62,-1.72l1.1,-2.25l0.54,-0.02l0.2,-0.09l1.41,-1.39l0.73,-0.03l1.32,0.97l0.31,0.03l1.72,-0.85l0.16,-0.2l0.22,-1.0l0.57,-1.03l0.36,-1.18l1.26,-0.98l0.1,-0.15l0.49,-1.7l0.48,-0.51l0.07,-0.13l0.35,-1.3l0.63,-1.54l2.06,-1.92l0.09,-0.17l0.12,-0.79l0.24,-0.41l-0.04,-0.36l-0.89,-0.91l0.04,-0.45l0.28,-0.06l0.85,1.39l0.16,1.59l-0.09,1.66l0.04,0.17l1.09,1.84l-0.86,-0.02l-0.72,0.17l-1.07,-0.24l-0.34,0.17l-0.54,1.19l0.06,0.34l1.48,1.47l1.06,0.44l0.32,0.94l0.73,1.6l-0.32,0.57l-1.23,2.49l-0.54,0.41l-0.12,0.21l-0.19,1.95l0.24,1.08l-0.18,0.67l0.07,0.28l1.13,1.25l0.24,0.93l0.92,1.29l1.1,0.8l0.1,1.01l0.26,0.73l-0.12,0.93l-1.65,-0.49l-2.02,-0.66l-3.19,-0.11Z\",\n \"name\": \"Cameroon\"\n },\n \"CL\": {\n \"path\": \"M246.8,429.1l-1.14,0.78l-2.25,1.21l-0.16,0.23l-0.37,2.94l-0.75,0.06l-2.72,-1.07l-2.83,-2.34l-3.06,-1.9l-0.71,-1.92l0.67,-1.84l-0.02,-0.25l-1.22,-2.13l-0.31,-5.41l1.02,-2.95l2.59,-2.4l-0.13,-0.51l-3.32,-0.8l2.06,-2.4l0.07,-0.15l0.79,-4.77l2.44,0.95l0.4,-0.22l1.31,-6.31l-0.16,-0.33l-1.68,-0.8l-0.42,0.21l-0.72,3.47l-1.01,-0.27l0.74,-4.06l0.85,-5.46l1.12,-1.96l0.03,-0.22l-0.71,-2.82l-0.19,-2.94l0.76,-0.07l0.26,-0.2l1.53,-4.62l1.73,-4.52l1.07,-4.2l-0.56,-4.2l0.73,-2.2l0.01,-0.12l-0.29,-3.3l1.46,-3.34l0.45,-5.19l0.8,-5.52l0.78,-5.89l-0.18,-4.33l-0.49,-3.47l1.1,-0.56l0.13,-0.13l0.44,-0.88l0.9,1.29l0.32,1.8l0.1,0.18l1.16,0.97l-0.73,2.33l0.01,0.21l1.33,2.91l0.97,3.6l0.35,0.22l1.57,-0.31l0.16,0.34l-0.79,2.51l-2.61,1.25l-0.17,0.28l0.08,4.36l-0.48,0.79l0.01,0.33l0.6,0.84l-1.62,1.55l-1.67,2.6l-0.89,2.47l-0.02,0.13l0.23,2.56l-1.5,2.76l-0.03,0.21l1.15,4.8l0.11,0.17l0.54,0.42l-0.01,2.37l-1.4,2.7l-0.03,0.15l0.06,2.25l-1.8,1.78l-0.09,0.21l0.02,2.73l0.71,2.63l-1.33,0.94l-0.12,0.17l-0.67,2.64l-0.59,3.03l0.4,3.55l-0.84,0.51l-0.14,0.31l0.58,3.5l0.08,0.16l0.96,0.99l-0.7,1.08l0.11,0.43l1.04,0.55l0.19,0.8l-0.89,0.48l-0.16,0.31l0.26,1.77l-0.89,4.06l-1.31,2.67l-0.03,0.19l0.28,1.53l-0.73,1.88l-1.85,1.37l-0.12,0.26l0.22,3.46l0.06,0.16l0.88,1.19l0.28,0.12l1.32,-0.17l-0.04,2.13l0.04,0.15l1.04,1.95l0.24,0.16l5.94,0.44ZM248.79,430.71l0.0,7.41l0.3,0.3l2.67,0.0l1.01,0.06l-0.54,0.91l-1.99,1.01l-1.13,-0.1l-1.42,-0.27l-1.87,-1.06l-2.57,-0.49l-3.09,-1.9l-2.52,-1.83l-2.65,-2.93l0.93,0.32l3.54,2.29l3.32,1.23l0.34,-0.09l1.29,-1.57l0.83,-2.32l2.11,-1.28l1.43,0.32Z\",\n \"name\": \"Chile\"\n },\n \"CA\": {\n \"path\": \"M280.14,145.66l-1.66,2.88l0.06,0.37l0.37,0.03l1.5,-1.01l1.17,0.49l-0.64,0.83l0.13,0.46l2.22,0.89l0.28,-0.03l1.02,-0.7l2.09,0.83l-0.69,2.1l0.37,0.38l1.43,-0.45l0.27,1.43l0.74,1.88l-0.95,2.5l-0.88,0.09l-1.34,-0.48l0.49,-2.34l-0.14,-0.32l-0.7,-0.4l-0.36,0.04l-2.81,2.66l-0.63,-0.05l1.2,-1.01l-0.1,-0.52l-2.4,-0.77l-2.79,0.18l-4.65,-0.09l-0.22,-0.54l1.37,-0.99l0.01,-0.48l-0.82,-0.65l1.91,-1.79l2.57,-5.17l1.49,-1.81l2.04,-1.07l0.63,0.08l-0.27,0.51l-1.33,2.07ZM193.92,74.85l-0.01,4.24l0.19,0.28l0.33,-0.07l3.14,-3.22l2.65,2.5l-0.71,3.04l0.06,0.26l2.42,2.88l0.46,0.0l2.66,-3.14l1.83,-3.74l0.03,-0.12l0.13,-4.53l3.23,0.31l3.63,0.64l3.18,2.08l0.13,1.91l-1.79,2.22l-0.0,0.37l1.69,2.2l-0.28,1.8l-4.74,2.84l-3.33,0.62l-2.5,-1.21l-0.41,0.17l-0.73,2.05l-2.39,3.44l-0.74,1.78l-2.78,2.61l-3.48,0.26l-0.17,0.07l-1.98,1.68l-0.1,0.21l-0.15,2.33l-2.68,0.45l-0.17,0.09l-3.1,3.2l-2.75,4.38l-0.99,3.06l-0.14,4.31l0.25,0.31l3.5,0.58l1.07,3.24l1.18,2.76l0.34,0.18l3.43,-0.69l4.55,1.52l2.45,1.32l1.76,1.65l0.12,0.07l3.11,0.96l2.63,1.46l0.13,0.04l4.12,0.2l2.41,0.3l-0.36,2.81l0.8,3.51l1.81,3.78l0.08,0.1l3.73,3.17l0.34,0.03l1.93,-1.08l0.13,-0.15l1.35,-3.44l0.01,-0.18l-1.31,-5.38l-0.08,-0.14l-1.46,-1.5l3.68,-1.51l2.84,-2.46l1.45,-2.55l0.04,-0.17l-0.2,-2.39l-0.04,-0.12l-1.7,-3.07l-2.9,-2.64l2.79,-3.66l0.05,-0.27l-1.08,-3.38l-0.8,-5.75l1.45,-0.75l4.18,1.03l2.6,0.38l0.18,-0.03l1.93,-0.95l2.18,1.23l3.01,2.18l0.73,1.42l0.25,0.16l4.18,0.27l-0.06,2.95l0.83,4.7l0.22,0.24l2.19,0.55l1.75,2.08l0.38,0.07l3.63,-2.03l0.11,-0.11l2.38,-4.06l1.36,-1.43l1.76,3.01l3.26,4.68l2.68,4.19l-0.94,2.09l0.12,0.38l3.31,1.98l2.23,1.98l0.13,0.07l3.94,0.89l1.48,1.02l0.96,2.82l0.22,0.2l1.85,0.43l0.88,1.13l0.17,3.53l-1.68,1.16l-1.76,1.14l-4.08,1.17l-0.11,0.06l-3.08,2.65l-4.11,0.52l-5.35,-0.69l-3.76,-0.02l-2.62,0.23l-0.2,0.1l-2.05,2.29l-3.13,1.41l-0.11,0.08l-3.6,4.24l-2.87,2.92l-0.05,0.36l0.33,0.14l2.13,-0.52l0.15,-0.08l3.98,-4.15l5.16,-2.63l3.58,-0.31l1.82,1.3l-2.09,1.91l-0.09,0.29l0.8,3.46l0.82,2.37l0.15,0.17l3.25,1.56l0.16,0.03l4.14,-0.45l0.21,-0.12l2.03,-2.86l0.11,1.46l0.13,0.22l1.26,0.88l-2.7,1.78l-5.51,1.83l-2.52,1.26l-2.75,2.16l-1.52,-0.18l-0.08,-2.16l4.19,-2.47l0.14,-0.34l-0.3,-0.22l-4.01,0.1l-2.66,0.36l-1.45,-1.56l0.0,-4.16l-0.11,-0.23l-1.11,-0.91l-0.28,-0.05l-1.5,0.48l-0.7,-0.7l-0.45,0.02l-1.91,2.39l-0.8,2.5l-0.82,1.31l-0.95,0.43l-0.77,0.15l-0.23,0.2l-0.18,0.56l-8.2,0.02l-0.13,0.03l-1.19,0.61l-2.95,2.45l-0.78,1.13l-4.6,0.01l-0.12,0.02l-1.13,0.48l-0.13,0.44l0.37,0.55l0.2,0.82l-0.01,0.09l-3.1,1.42l-2.63,0.5l-2.84,1.57l-0.47,0.0l-0.72,-0.4l-0.18,-0.27l0.03,-0.15l0.52,-1.0l1.2,-1.71l0.73,-1.8l0.02,-0.17l-1.03,-5.47l-0.15,-0.21l-2.35,-1.32l0.16,-0.29l-0.05,-0.35l-0.37,-0.38l-0.22,-0.09l-0.56,0.0l-0.35,-0.34l-0.11,-0.65l-0.46,-0.2l-0.39,0.26l-0.2,-0.03l-0.11,-0.33l-0.48,-0.25l-0.21,-0.71l-0.15,-0.18l-3.97,-2.07l-4.8,-2.39l-0.25,-0.01l-2.19,0.89l-0.72,0.03l-3.04,-0.82l-0.14,-0.0l-1.94,0.4l-2.4,-0.98l-2.56,-0.51l-1.7,-0.19l-0.62,-0.44l-0.42,-1.67l-0.3,-0.23l-0.85,0.02l-0.29,0.3l-0.01,0.95l-69.26,-0.01l-4.77,-3.14l-1.78,-1.41l-4.51,-1.38l-1.3,-2.73l0.34,-1.96l-0.17,-0.33l-3.06,-1.37l-0.41,-2.58l-0.11,-0.18l-2.92,-2.4l-0.05,-1.53l1.32,-1.59l0.07,-0.2l-0.07,-2.21l-0.16,-0.26l-4.19,-2.22l-2.52,-4.02l-1.56,-2.6l-0.08,-0.09l-2.28,-1.64l-1.65,-1.48l-1.31,-1.89l-0.38,-0.1l-2.51,1.21l-2.28,1.92l-2.03,-2.22l-1.85,-1.71l-2.44,-1.04l-2.28,-0.12l0.03,-37.72l4.27,0.98l4.0,2.13l2.61,0.4l0.24,-0.07l2.17,-1.81l2.92,-1.33l3.63,0.53l0.18,-0.03l3.72,-1.94l3.89,-1.06l1.6,1.72l0.37,0.06l1.87,-1.04l0.14,-0.19l0.48,-1.83l1.37,0.38l4.18,3.96l0.41,0.0l2.89,-2.62l0.28,2.79l0.37,0.26l3.08,-0.73l0.17,-0.12l0.85,-1.16l2.81,0.24l3.83,1.86l5.86,1.61l3.46,0.75l2.44,-0.26l2.89,1.89l-3.12,1.89l-0.14,0.31l0.24,0.24l4.53,0.92l6.84,-0.5l2.04,-0.71l2.54,2.44l0.39,0.02l2.72,-2.16l-0.01,-0.48l-2.26,-1.61l1.27,-1.16l2.94,-0.19l1.94,-0.42l1.89,0.97l2.49,2.32l0.24,0.08l2.71,-0.33l4.35,1.9l0.17,0.02l3.86,-0.67l3.62,0.1l0.31,-0.33l-0.26,-2.44l1.9,-0.65l3.58,1.36l-0.01,3.84l0.23,0.29l0.34,-0.17l1.51,-3.23l1.81,0.1l0.31,-0.22l1.13,-4.37l-0.08,-0.29l-2.68,-2.73l-2.83,-1.76l0.19,-4.73l2.77,-3.15l3.06,0.69l2.44,1.97l3.24,4.88l-2.05,2.02l0.15,0.51l4.41,0.85ZM265.85,150.7l-0.84,0.04l-3.15,-0.99l-1.77,-1.17l0.19,-0.06l3.17,0.79l2.39,1.27l0.01,0.12ZM249.41,3.71l6.68,0.49l5.34,0.79l4.34,1.6l-0.08,1.24l-5.91,2.56l-6.03,1.21l-2.36,1.38l-0.14,0.34l0.29,0.22l4.37,-0.02l-4.96,3.01l-4.06,1.64l-0.11,0.08l-4.21,4.62l-5.07,0.92l-0.12,0.05l-1.53,1.1l-7.5,0.59l-0.28,0.28l0.24,0.31l2.67,0.54l-1.04,0.6l-0.09,0.44l1.89,2.49l-2.11,1.66l-3.83,1.52l-0.15,0.13l-1.14,2.01l-3.41,1.55l-0.16,0.36l0.35,1.19l0.3,0.22l3.98,-0.19l0.03,0.78l-6.42,2.99l-6.44,-1.41l-7.41,0.79l-3.72,-0.62l-4.48,-0.26l-0.25,-2.0l4.37,-1.13l0.21,-0.38l-1.14,-3.55l1.13,-0.28l6.61,2.29l0.35,-0.12l-0.04,-0.37l-3.41,-3.45l-0.14,-0.08l-3.57,-0.92l1.62,-1.7l4.36,-1.3l0.2,-0.18l0.71,-1.94l-0.12,-0.36l-3.45,-2.15l-0.88,-2.43l6.36,0.23l1.94,0.61l0.23,-0.02l3.91,-2.1l0.15,-0.32l-0.26,-0.24l-5.69,-0.67l-8.69,0.37l-4.3,-1.92l-2.12,-2.39l-2.82,-1.68l-0.44,-1.65l3.41,-1.06l2.93,-0.2l4.91,-0.99l3.69,-2.28l2.93,0.31l2.64,1.68l0.42,-0.1l1.84,-3.23l3.17,-0.96l4.45,-0.69l7.56,-0.26l1.26,0.64l0.18,0.03l7.2,-1.06l10.81,0.8ZM203.94,57.59l0.01,0.32l1.97,2.97l0.51,-0.01l2.26,-3.75l6.05,-1.89l4.08,4.72l-0.36,2.95l0.38,0.33l4.95,-1.36l0.11,-0.05l2.23,-1.77l5.37,2.31l3.32,2.14l0.3,1.89l0.36,0.25l4.48,-1.01l2.49,2.8l0.14,0.09l5.99,1.78l2.09,1.74l2.18,3.83l-4.29,1.91l-0.01,0.54l5.9,2.83l3.95,0.94l3.54,3.84l0.2,0.1l3.58,0.25l-0.67,2.51l-4.18,4.54l-2.84,-1.61l-3.91,-3.95l-0.26,-0.09l-3.24,0.52l-0.25,0.26l-0.32,2.37l0.1,0.26l2.63,2.38l3.42,1.89l0.96,1.0l1.57,3.8l-0.74,2.43l-2.85,-0.96l-6.26,-3.15l-0.38,0.09l0.04,0.39l3.54,3.4l2.55,2.31l0.23,0.78l-6.26,-1.43l-5.33,-2.25l-2.73,-1.73l0.67,-0.86l-0.09,-0.45l-7.38,-4.01l-0.44,0.27l0.03,0.89l-6.85,0.61l-1.8,-1.17l1.43,-2.6l4.56,-0.07l5.15,-0.52l0.23,-0.45l-0.76,-1.34l0.8,-1.89l3.21,-4.06l0.05,-0.29l-0.72,-1.95l-0.97,-1.47l-0.11,-0.1l-3.84,-2.1l-4.53,-1.33l1.09,-0.75l0.05,-0.45l-2.65,-2.75l-0.18,-0.09l-2.12,-0.24l-1.91,-1.47l-0.39,0.02l-1.27,1.25l-4.4,0.56l-9.06,-0.99l-5.28,-1.31l-4.01,-0.67l-1.72,-1.31l2.32,-1.85l0.1,-0.33l-0.28,-0.2l-3.3,-0.02l-0.74,-4.36l1.86,-4.09l2.46,-1.88l5.74,-1.15l-1.5,2.55ZM261.28,159.28l0.19,0.14l1.82,0.42l1.66,-0.05l-0.66,0.68l-0.75,0.16l-3.0,-1.25l-0.46,-0.77l0.51,-0.52l0.68,1.19ZM230.87,84.48l-2.48,0.19l-0.52,-1.74l0.96,-2.17l2.03,-0.53l1.71,1.04l0.02,1.6l-0.22,0.46l-1.5,1.16ZM229.52,58.19l0.14,0.82l-4.99,-0.22l-2.73,0.63l-0.59,-0.23l-2.61,-2.4l0.08,-1.38l0.94,-0.25l5.61,0.51l4.14,2.54ZM222.12,105.0l-0.79,1.63l-0.75,-0.22l-0.52,-0.91l0.04,-0.09l0.84,-1.01l0.74,0.06l0.44,0.55ZM183.77,38.22l2.72,1.65l0.16,0.04l4.83,-0.01l1.92,1.52l-0.51,1.75l0.18,0.36l2.84,1.14l1.56,1.19l0.16,0.06l3.37,0.22l3.65,0.42l4.07,-1.1l5.05,-0.43l3.96,0.35l2.53,1.8l0.48,1.79l-1.37,1.16l-3.6,1.03l-3.22,-0.59l-7.17,0.76l-5.1,0.09l-4.0,-0.6l-6.48,-1.56l-0.81,-2.57l-0.3,-2.49l-0.1,-0.19l-2.51,-2.25l-0.16,-0.07l-5.12,-0.63l-2.61,-1.45l0.75,-1.71l4.88,0.32ZM207.46,91.26l0.42,1.62l0.42,0.19l1.12,-0.55l1.35,0.99l2.74,1.39l2.73,1.2l0.2,1.74l0.35,0.26l1.72,-0.29l1.31,0.97l-1.72,0.96l-3.68,-0.9l-1.34,-1.71l-0.43,-0.04l-2.46,2.1l-3.23,1.85l-0.74,-1.98l-0.31,-0.19l-2.47,0.28l1.49,-1.34l0.1,-0.19l0.32,-3.15l0.79,-3.45l1.34,0.25ZM215.59,102.66l-2.73,2.0l-1.49,-0.08l-0.37,-0.7l1.61,-1.56l3.0,0.03l-0.02,0.3ZM202.79,24.07l0.11,0.12l2.54,1.53l-3.01,1.47l-4.55,4.07l-4.3,0.38l-5.07,-0.68l-2.51,-2.09l0.03,-1.72l1.86,-1.4l0.1,-0.34l-0.29,-0.2l-4.49,0.04l-2.63,-1.79l-1.45,-2.36l1.61,-2.38l1.65,-1.69l2.47,-0.4l0.19,-0.48l-0.72,-0.89l5.1,-0.26l3.1,3.05l0.13,0.07l4.21,1.25l3.99,1.06l1.92,3.65ZM187.5,59.3l-0.15,0.1l-2.59,3.4l-2.5,-0.15l-1.47,-3.92l0.04,-2.24l1.22,-1.92l2.34,-1.26l5.11,0.17l4.28,1.06l-3.36,3.86l-2.9,0.9ZM186.19,48.8l-1.15,1.63l-3.42,-0.35l-2.68,-1.15l1.11,-1.88l3.34,-1.27l2.01,1.63l0.79,1.38ZM185.78,35.41l-0.95,0.13l-4.48,-0.33l-0.4,-0.91l4.5,0.07l1.45,0.82l-0.1,0.21ZM180.76,32.56l-3.43,1.03l-1.85,-1.14l-1.01,-1.92l-0.16,-1.87l2.87,0.2l1.39,0.35l2.75,1.75l-0.55,1.6ZM181.03,76.32l-1.21,1.2l-3.19,-1.26l-0.18,-0.01l-1.92,0.45l-2.88,-1.67l1.84,-1.16l1.6,-1.77l2.45,1.17l1.45,0.77l2.05,2.28ZM169.72,54.76l2.83,0.97l0.14,0.01l4.25,-0.58l0.47,1.01l-2.19,2.16l0.07,0.48l3.61,1.95l-0.41,3.84l-3.87,1.68l-2.23,-0.36l-1.73,-1.75l-6.07,-3.53l0.03,-1.01l4.79,0.55l0.3,-0.16l-0.04,-0.34l-2.55,-2.89l2.59,-2.05ZM174.44,40.56l1.49,1.87l0.07,2.48l-1.07,3.52l-3.87,0.48l-2.41,-0.72l0.05,-2.72l-0.33,-0.3l-3.79,0.36l-0.13,-3.31l2.36,0.14l0.15,-0.03l3.7,-1.74l3.44,0.29l0.31,-0.22l0.03,-0.12ZM170.14,31.5l0.75,1.74l-3.52,-0.52l-4.19,-1.77l-4.65,-0.17l1.65,-1.11l-0.05,-0.52l-2.86,-1.26l-0.13,-1.58l4.52,0.7l6.66,1.99l1.84,2.5ZM134.64,58.08l-1.08,1.93l0.34,0.44l5.44,-1.41l3.37,2.32l0.37,-0.02l2.66,-2.28l2.03,1.38l2.01,4.53l0.53,0.04l1.26,-1.93l0.03,-0.27l-1.67,-4.55l1.82,-0.58l2.36,0.73l2.69,1.84l1.53,4.46l0.77,3.24l0.15,0.19l4.22,2.26l4.32,2.04l-0.21,1.51l-3.87,0.34l-0.19,0.5l1.45,1.54l-0.65,1.23l-4.3,-0.65l-4.4,-1.19l-2.97,0.28l-4.67,1.48l-6.31,0.65l-4.27,0.39l-1.26,-1.91l-0.15,-0.12l-3.42,-1.2l-0.16,-0.01l-2.05,0.45l-2.66,-3.02l1.2,-0.34l3.82,-0.76l3.58,0.19l3.27,-0.78l0.23,-0.29l-0.24,-0.29l-4.84,-1.06l-5.42,0.35l-3.4,-0.09l-0.97,-1.22l5.39,-1.7l0.21,-0.33l-0.3,-0.25l-3.82,0.06l-3.95,-1.1l1.88,-3.13l1.68,-1.81l6.54,-2.84l2.11,0.77ZM158.85,56.58l-1.82,2.62l-3.38,-2.9l0.49,-0.39l3.17,-0.18l1.54,0.86ZM149.71,42.7l1.0,1.87l0.37,0.14l2.17,-0.83l2.33,0.2l0.38,2.16l-1.38,2.17l-8.33,0.76l-6.34,2.15l-3.51,0.1l-0.22,-1.13l4.98,-2.12l0.17,-0.34l-0.31,-0.23l-11.27,0.6l-3.04,-0.78l3.14,-4.57l2.2,-1.35l6.87,1.7l4.4,3.0l0.14,0.05l4.37,0.39l0.27,-0.48l-3.41,-4.68l1.96,-1.62l2.28,0.53l0.79,2.32ZM145.44,29.83l-2.18,0.77l-3.79,-0.0l0.02,-0.31l2.34,-1.5l1.2,0.23l2.42,0.83ZM144.83,34.5l-4.44,1.46l-3.18,-1.48l1.6,-1.36l3.51,-0.53l3.1,0.75l-0.6,1.16ZM119.02,65.87l-6.17,2.07l-1.19,-1.82l-0.13,-0.11l-5.48,-2.32l0.92,-1.7l1.73,-3.44l2.16,-3.15l-0.02,-0.36l-2.09,-2.56l7.84,-0.71l3.59,1.02l6.32,0.27l2.35,1.37l2.25,1.71l-2.68,1.04l-6.21,3.41l-3.1,3.28l-0.08,0.21l0.0,1.81ZM129.66,35.4l-0.3,3.55l-1.77,1.67l-2.34,0.27l-4.62,2.2l-3.89,0.76l-2.83,-0.93l3.85,-3.52l5.04,-3.36l3.75,0.07l3.11,-0.7ZM111.24,152.74l-0.82,0.29l-3.92,-1.39l-0.7,-1.06l-0.12,-0.1l-2.15,-1.09l-0.41,-0.84l-0.2,-0.16l-2.44,-0.56l-0.84,-1.56l0.1,-0.36l2.34,0.64l1.53,0.5l2.28,0.34l0.78,1.04l1.24,1.55l0.09,0.08l2.42,1.3l0.81,1.39ZM88.54,134.82l0.14,0.02l2.0,-0.23l-0.67,3.48l0.06,0.24l1.78,2.22l-0.24,-0.0l-1.4,-1.42l-0.91,-1.53l-1.26,-1.08l-0.42,-1.35l0.09,-0.66l0.82,0.31Z\",\n \"name\": \"Canada\"\n },\n \"CG\": {\n \"path\": \"M453.66,296.61l-0.9,-0.82l-0.35,-0.04l-0.83,0.48l-0.77,0.83l-1.65,-2.13l1.66,-1.2l0.08,-0.39l-0.81,-1.43l0.59,-0.43l1.62,-0.29l0.24,-0.24l0.1,-0.58l0.94,0.84l0.19,0.08l2.21,0.11l0.27,-0.14l0.81,-1.29l0.32,-1.76l-0.27,-1.96l-0.06,-0.15l-1.08,-1.35l1.02,-2.74l-0.09,-0.34l-0.62,-0.5l-0.22,-0.06l-1.66,0.18l-0.55,-1.03l0.12,-0.73l2.85,0.09l1.98,0.65l2.0,0.59l0.38,-0.25l0.17,-1.3l1.26,-2.24l1.34,-1.19l1.54,0.38l1.35,0.12l-0.11,1.15l-0.74,1.34l-0.5,1.61l-0.31,2.22l0.12,1.41l-0.4,0.9l-0.06,0.88l-0.24,0.67l-1.57,1.15l-1.24,1.41l-1.09,2.43l-0.03,0.13l0.08,1.95l-0.55,0.69l-1.46,1.23l-1.32,1.41l-0.61,-0.29l-0.13,-0.57l-0.29,-0.23l-1.36,-0.02l-0.23,0.1l-0.72,0.81l-0.41,-0.16Z\",\n \"name\": \"Republic of the Congo\"\n },\n \"CF\": {\n \"path\": \"M459.41,266.56l1.9,-0.17l0.22,-0.12l0.36,-0.5l0.14,0.02l0.55,0.51l0.29,0.07l3.15,-0.96l0.12,-0.07l1.05,-0.97l1.29,-0.87l0.12,-0.33l-0.17,-0.61l0.38,-0.12l2.36,0.15l0.15,-0.03l2.36,-1.17l0.12,-0.1l1.78,-2.72l1.18,-0.96l1.23,-0.34l0.21,0.79l0.07,0.13l1.37,1.5l0.01,0.86l-0.39,1.0l-0.01,0.17l0.16,0.78l0.1,0.17l0.91,0.76l1.89,1.09l1.24,0.92l0.02,0.67l0.12,0.23l1.67,1.3l0.99,1.03l0.61,1.46l0.14,0.15l1.79,0.95l0.2,0.4l-0.44,0.14l-1.54,-0.06l-1.98,-0.26l-0.93,0.22l-0.19,0.14l-0.3,0.48l-0.57,0.05l-0.91,-0.49l-0.26,-0.01l-2.7,1.21l-1.04,-0.23l-0.21,0.03l-0.34,0.19l-0.12,0.13l-0.64,1.3l-1.67,-0.43l-1.77,-0.24l-1.58,-0.91l-2.06,-0.85l-0.27,0.02l-1.42,0.88l-0.97,1.27l-0.06,0.14l-0.19,1.46l-1.3,-0.11l-1.67,-0.42l-0.27,0.07l-1.55,1.41l-0.99,1.76l-0.14,-1.18l-0.13,-0.22l-1.1,-0.78l-0.86,-1.2l-0.2,-0.84l-0.07,-0.13l-1.07,-1.19l0.16,-0.59l0.0,-0.15l-0.24,-1.01l0.18,-1.77l0.5,-0.38l0.09,-0.11l1.18,-2.4Z\",\n \"name\": \"Central African Republic\"\n },\n \"CD\": {\n \"path\": \"M497.85,276.25l-0.14,2.77l0.2,0.3l0.57,0.19l-0.47,0.52l-1.0,0.71l-0.96,1.31l-0.56,1.22l-0.16,2.04l-0.54,0.89l-0.04,0.15l-0.02,1.76l-0.63,0.61l-0.09,0.2l-0.08,1.33l-0.2,0.11l-0.15,0.21l-0.23,1.37l0.03,0.2l0.6,1.08l0.16,2.96l0.44,2.29l-0.24,1.25l0.01,0.15l0.5,1.46l0.07,0.12l1.41,1.37l1.09,2.56l-0.51,-0.11l-3.45,0.45l-0.67,0.3l-0.15,0.15l-0.71,1.61l0.01,0.26l0.52,1.03l-0.43,2.9l-0.31,2.55l0.13,0.29l0.7,0.46l1.75,0.99l0.31,-0.01l0.26,-0.17l0.15,1.9l-1.44,-0.02l-0.94,-1.28l-0.94,-1.1l-0.17,-0.1l-1.76,-0.33l-0.5,-1.18l-0.42,-0.15l-1.44,0.75l-1.79,-0.32l-0.77,-1.05l-0.2,-0.12l-1.59,-0.23l-0.97,0.04l-0.1,-0.53l-0.27,-0.25l-0.86,-0.06l-1.13,-0.15l-1.62,0.37l-1.04,-0.06l-0.32,0.09l0.11,-2.56l-0.08,-0.21l-0.77,-0.87l-0.17,-1.41l0.36,-1.47l-0.03,-0.21l-0.48,-0.91l-0.04,-1.52l-0.3,-0.29l-2.65,0.02l0.13,-0.53l-0.29,-0.37l-1.28,0.01l-0.28,0.21l-0.07,0.24l-1.35,0.09l-0.26,0.18l-0.62,1.45l-0.25,0.42l-1.17,-0.3l-0.19,0.01l-0.79,0.34l-1.44,0.18l-1.41,-1.96l-0.7,-1.47l-0.61,-1.86l-0.28,-0.21l-7.39,-0.03l-0.92,0.3l-0.78,-0.03l-0.78,0.25l-0.11,-0.25l0.35,-0.15l0.18,-0.26l0.07,-1.02l0.33,-0.52l0.72,-0.42l0.52,0.2l0.33,-0.08l0.76,-0.86l0.99,0.02l0.11,0.48l0.16,0.2l0.94,0.44l0.35,-0.07l1.46,-1.56l1.44,-1.21l0.68,-0.85l0.06,-0.2l-0.08,-1.99l1.04,-2.33l1.1,-1.23l1.62,-1.19l0.11,-0.14l0.29,-0.8l0.08,-0.94l0.38,-0.82l0.03,-0.16l-0.13,-1.38l0.3,-2.16l0.47,-1.51l0.73,-1.31l0.04,-0.12l0.15,-1.51l0.21,-1.66l0.89,-1.16l1.16,-0.7l1.9,0.79l1.69,0.95l1.81,0.24l1.85,0.48l0.35,-0.16l0.71,-1.43l0.16,-0.09l1.03,0.23l0.19,-0.02l2.65,-1.19l0.86,0.46l0.17,0.03l0.81,-0.08l0.23,-0.14l0.31,-0.5l0.75,-0.17l1.83,0.26l1.64,0.06l0.72,-0.21l1.39,1.9l0.16,0.11l1.12,0.3l0.24,-0.04l0.58,-0.36l1.05,0.15l0.15,-0.02l1.15,-0.44l0.47,0.84l0.08,0.09l2.08,1.57Z\",\n \"name\": \"Democratic Republic of the Congo\"\n },\n \"CZ\": {\n \"path\": \"M463.29,152.22l-0.88,-0.47l-0.18,-0.03l-1.08,0.15l-1.86,-0.94l-0.21,-0.02l-0.88,0.24l-0.13,0.07l-1.25,1.17l-1.63,-0.91l-1.38,-1.36l-1.22,-0.75l-0.24,-1.24l-0.33,-0.75l1.53,-0.6l0.98,-0.84l1.74,-0.62l0.11,-0.07l0.47,-0.47l0.46,0.27l0.24,0.03l0.96,-0.3l1.06,0.95l0.15,0.07l1.57,0.24l-0.1,0.6l0.16,0.32l1.36,0.68l0.41,-0.15l0.28,-0.62l1.29,0.28l0.19,0.84l0.26,0.23l1.73,0.18l0.74,1.02l-0.17,0.0l-0.25,0.13l-0.32,0.49l-0.46,0.11l-0.22,0.23l-0.13,0.57l-0.32,0.1l-0.2,0.22l-0.03,0.14l-0.65,0.25l-1.05,-0.05l-0.28,0.17l-0.22,0.43Z\",\n \"name\": \"Czech Republic\"\n },\n \"CY\": {\n \"path\": \"M505.03,193.75l-1.51,0.68l-1.0,-0.3l-0.32,-0.63l0.69,-0.06l0.41,0.13l0.19,-0.0l0.62,-0.22l0.31,0.02l0.06,0.22l0.49,0.17l0.06,-0.01Z\",\n \"name\": \"Cyprus\"\n },\n \"CR\": {\n \"path\": \"M213.0,263.84l-0.98,-0.4l-0.3,-0.31l0.16,-0.24l0.05,-0.21l-0.09,-0.56l-0.1,-0.18l-0.76,-0.65l-0.99,-0.5l-0.74,-0.28l-0.13,-0.58l-0.12,-0.18l-0.66,-0.45l-0.34,-0.0l-0.13,0.31l0.13,0.59l-0.17,0.21l-0.34,-0.42l-0.14,-0.1l-0.7,-0.22l-0.23,-0.34l0.01,-0.62l0.31,-0.74l-0.14,-0.38l-0.3,-0.15l0.47,-0.4l1.48,0.6l0.26,-0.02l0.47,-0.27l0.58,0.15l0.35,0.44l0.17,0.11l0.74,0.17l0.27,-0.07l0.3,-0.27l0.52,1.09l0.97,1.02l0.77,0.71l-0.41,0.1l-0.23,0.3l0.01,1.02l0.12,0.24l0.2,0.14l-0.07,0.05l-0.11,0.3l0.08,0.37l-0.23,0.63Z\",\n \"name\": \"Costa Rica\"\n },\n \"CU\": {\n \"path\": \"M215.01,226.09l2.08,0.18l1.94,0.03l2.24,0.86l0.95,0.92l0.25,0.08l2.22,-0.28l0.79,0.55l3.68,2.81l0.19,0.06l0.77,-0.03l1.18,0.42l-0.12,0.47l0.27,0.37l1.78,0.1l1.59,0.9l-0.11,0.22l-1.5,0.3l-1.64,0.13l-1.75,-0.2l-2.69,0.19l1.0,-0.86l-0.03,-0.48l-1.02,-0.68l-0.13,-0.05l-1.52,-0.16l-0.74,-0.64l-0.57,-1.42l-0.3,-0.19l-1.36,0.1l-2.23,-0.67l-0.71,-0.52l-0.14,-0.06l-3.2,-0.4l-0.42,-0.25l0.56,-0.39l0.12,-0.33l-0.27,-0.22l-2.46,-0.13l-0.2,0.06l-1.72,1.31l-0.94,0.03l-0.25,0.15l-0.29,0.53l-1.04,0.24l-0.29,-0.07l0.7,-0.43l0.1,-0.11l0.5,-0.87l1.04,-0.54l1.23,-0.49l1.86,-0.25l0.62,-0.28Z\",\n \"name\": \"Cuba\"\n },\n \"SZ\": {\n \"path\": \"M500.95,353.41l-0.41,0.97l-1.16,0.23l-1.29,-1.26l-0.02,-0.71l0.63,-0.93l0.23,-0.7l0.47,-0.12l1.04,0.4l0.32,1.05l0.2,1.08Z\",\n \"name\": \"Swaziland\"\n },\n \"SY\": {\n \"path\": \"M510.84,199.83l0.09,-0.11l0.07,-0.2l-0.04,-1.08l0.56,-1.4l1.3,-1.01l0.1,-0.34l-0.41,-1.11l-0.24,-0.19l-0.89,-0.11l-0.2,-1.84l0.55,-1.05l1.3,-1.22l0.09,-0.19l0.09,-1.09l0.39,0.27l0.25,0.04l2.66,-0.77l1.35,0.52l2.06,-0.01l2.93,-1.08l1.35,0.04l2.14,-0.34l-0.83,1.16l-1.31,0.68l-0.16,0.3l0.23,2.03l-0.9,3.25l-5.43,2.87l-4.79,2.91l-2.32,-0.92Z\",\n \"name\": \"Syria\"\n },\n \"KG\": {\n \"path\": \"M599.04,172.15l0.38,-0.9l1.43,-0.37l4.04,1.02l0.37,-0.23l0.36,-1.64l1.17,-0.52l3.45,1.24l0.2,-0.0l0.86,-0.31l4.09,0.08l3.61,0.31l1.18,1.02l0.11,0.06l1.19,0.34l-0.13,0.26l-3.84,1.58l-0.13,0.1l-0.81,1.08l-3.08,0.34l-0.24,0.16l-0.85,1.7l-2.43,-0.37l-0.14,0.01l-1.79,0.61l-2.39,1.4l-0.12,0.39l0.25,0.49l-0.48,0.45l-4.57,0.43l-3.04,-0.94l-2.45,0.18l0.14,-1.02l2.42,0.44l0.27,-0.08l0.81,-0.81l1.76,0.27l0.21,-0.05l3.21,-2.14l-0.03,-0.51l-2.97,-1.57l-0.26,-0.01l-1.64,0.69l-1.38,-0.84l1.81,-1.67l-0.09,-0.5l-0.46,-0.18Z\",\n \"name\": \"Kyrgyzstan\"\n },\n \"KE\": {\n \"path\": \"M523.3,287.04l0.06,0.17l1.29,1.8l-1.46,0.84l-0.11,0.11l-0.55,0.93l-0.81,0.16l-0.24,0.24l-0.34,1.69l-0.81,1.06l-0.46,1.58l-0.76,0.63l-3.3,-2.3l-0.16,-1.32l-0.15,-0.23l-9.35,-5.28l-0.02,-2.4l1.92,-2.63l0.91,-1.83l0.01,-0.24l-1.09,-2.86l-0.29,-1.24l-1.09,-1.63l2.93,-2.85l0.92,0.3l0.0,1.19l0.09,0.22l0.86,0.83l0.21,0.08l1.65,0.0l3.09,2.08l0.16,0.05l0.79,0.03l0.54,-0.06l0.58,0.28l1.67,0.2l0.28,-0.12l0.69,-0.98l2.04,-0.94l0.86,0.73l0.19,0.07l1.1,0.0l-1.82,2.36l-0.06,0.18l0.03,9.12Z\",\n \"name\": \"Kenya\"\n },\n \"SS\": {\n \"path\": \"M505.7,261.39l0.02,1.64l-0.27,0.55l-1.15,0.05l-0.24,0.15l-0.85,1.44l0.22,0.45l1.44,0.17l1.15,1.12l0.42,0.95l0.14,0.15l1.06,0.54l1.33,2.45l-3.06,2.98l-1.44,1.08l-1.75,0.01l-1.92,0.56l-1.5,-0.53l-0.27,0.03l-0.85,0.57l-1.98,-1.5l-0.56,-1.02l-0.37,-0.13l-1.32,0.5l-1.08,-0.15l-0.2,0.04l-0.56,0.35l-0.9,-0.24l-1.44,-1.97l-0.39,-0.77l-0.13,-0.13l-1.78,-0.94l-0.65,-1.5l-1.08,-1.12l-1.57,-1.22l-0.02,-0.68l-0.12,-0.23l-1.37,-1.02l-1.17,-0.68l0.2,-0.08l0.86,-0.48l0.14,-0.18l0.63,-2.22l0.6,-1.02l1.47,-0.28l0.35,0.56l1.29,1.48l0.14,0.09l0.69,0.22l0.22,-0.02l0.83,-0.4l1.58,0.08l0.26,0.39l0.25,0.13l2.49,0.0l0.3,-0.25l0.06,-0.35l1.13,-0.42l0.18,-0.18l0.22,-0.63l0.68,-0.38l1.95,1.37l0.23,0.05l1.29,-0.26l0.19,-0.12l1.23,-1.8l1.36,-1.37l0.08,-0.25l-0.21,-1.52l-0.06,-0.15l-0.25,-0.3l0.94,-0.08l0.26,-0.21l0.1,-0.32l0.6,0.09l-0.25,1.67l0.3,1.83l0.11,0.19l1.22,0.94l0.25,0.73l-0.04,1.2l0.26,0.31l0.09,0.01Z\",\n \"name\": \"South Sudan\"\n },\n \"SR\": {\n \"path\": \"M278.1,270.26l2.71,0.45l0.31,-0.14l0.19,-0.32l1.82,-0.16l2.25,0.56l-1.09,1.81l-0.04,0.19l0.2,1.72l0.05,0.13l0.9,1.35l-0.39,0.99l-0.21,1.09l-0.48,0.8l-1.2,-0.44l-0.17,-0.01l-1.12,0.24l-0.95,-0.21l-0.35,0.2l-0.25,0.73l0.05,0.29l0.3,0.35l-0.06,0.13l-1.01,-0.15l-1.42,-2.03l-0.32,-1.36l-0.29,-0.23l-0.63,-0.0l-0.95,-1.56l0.41,-1.16l0.01,-0.17l-0.08,-0.35l1.29,-0.56l0.18,-0.22l0.35,-1.97Z\",\n \"name\": \"Suriname\"\n },\n \"KH\": {\n \"path\": \"M680.28,257.89l-0.93,-1.2l-1.24,-2.56l-0.56,-2.9l1.45,-1.92l3.07,-0.46l2.26,0.35l2.03,0.98l0.38,-0.11l1.0,-1.55l1.86,0.79l0.52,1.51l-0.28,2.82l-4.05,1.88l-0.12,0.45l0.79,1.1l-2.2,0.17l-2.08,0.98l-1.89,-0.33Z\",\n \"name\": \"Cambodia\"\n },\n \"SV\": {\n \"path\": \"M197.02,248.89l0.18,-0.05l0.59,0.17l0.55,0.51l0.64,0.35l0.06,0.22l0.37,0.21l1.01,-0.28l0.38,0.13l0.16,0.13l-0.14,0.81l-0.18,0.38l-1.22,-0.03l-0.84,-0.23l-1.11,-0.52l-1.31,-0.15l-0.49,-0.38l0.02,-0.08l0.76,-0.57l0.46,-0.27l0.11,-0.35Z\",\n \"name\": \"El Salvador\"\n },\n \"SK\": {\n \"path\": \"M468.01,150.02l0.05,0.07l0.36,0.1l0.85,-0.37l1.12,1.02l0.33,0.05l1.38,-0.65l1.07,0.3l0.16,0.0l1.69,-0.43l1.95,1.02l-0.51,0.64l-0.45,1.2l-0.32,0.2l-2.55,-0.93l-0.17,-0.01l-0.82,0.2l-0.17,0.11l-0.53,0.68l-0.94,0.32l-0.14,-0.11l-0.29,-0.04l-1.18,0.48l-0.95,0.09l-0.26,0.21l-0.15,0.47l-1.84,0.34l-0.82,-0.31l-1.14,-0.73l-0.2,-0.89l0.42,-0.84l0.91,0.05l0.12,-0.02l0.86,-0.33l0.18,-0.21l0.03,-0.13l0.32,-0.1l0.2,-0.22l0.12,-0.55l0.39,-0.1l0.18,-0.13l0.3,-0.45l0.43,-0.0Z\",\n \"name\": \"Slovakia\"\n },\n \"KR\": {\n \"path\": \"M737.31,185.72l0.84,0.08l0.27,-0.12l0.89,-1.2l1.63,-0.13l1.1,-0.2l0.21,-0.16l0.12,-0.24l1.86,2.95l0.59,1.79l0.02,3.17l-0.84,1.38l-2.23,0.55l-1.95,1.14l-1.91,0.21l-0.22,-1.21l0.45,-2.07l-0.01,-0.17l-0.99,-2.67l1.54,-0.4l0.17,-0.46l-1.55,-2.24Z\",\n \"name\": \"South Korea\"\n },\n \"SI\": {\n \"path\": \"M455.77,159.59l1.79,0.21l0.18,-0.04l1.2,-0.68l2.12,-0.08l0.21,-0.1l0.38,-0.42l0.1,0.01l0.28,0.62l-1.71,0.71l-0.18,0.22l-0.21,1.1l-0.71,0.26l-0.2,0.28l0.01,0.55l-0.59,-0.04l-0.79,-0.47l-0.38,0.06l-0.36,0.41l-0.84,-0.05l0.05,-0.15l-0.56,-1.24l0.21,-1.17Z\",\n \"name\": \"Slovenia\"\n },\n \"KP\": {\n \"path\": \"M747.76,172.02l-0.23,-0.04l-0.26,0.08l-1.09,1.02l-0.78,1.06l-0.06,0.19l0.09,1.95l-1.12,0.57l-0.53,0.58l-0.88,0.82l-1.69,0.51l-1.09,0.79l-0.12,0.22l-0.07,1.17l-0.22,0.25l0.09,0.47l0.96,0.46l1.22,1.1l-0.19,0.37l-0.91,0.16l-1.75,0.14l-0.22,0.12l-0.87,1.18l-0.95,-0.09l-0.3,0.18l-0.97,-0.44l-0.39,0.13l-0.25,0.44l-0.29,0.09l-0.03,-0.2l-0.18,-0.23l-0.62,-0.25l-0.43,-0.29l0.52,-0.97l0.52,-0.3l0.13,-0.38l-0.18,-0.42l0.59,-1.47l0.01,-0.21l-0.16,-0.48l-0.22,-0.2l-1.41,-0.31l-0.82,-0.55l1.74,-1.62l2.73,-1.58l1.62,-1.96l0.96,0.76l0.17,0.06l2.17,0.11l0.31,-0.37l-0.32,-1.31l3.61,-1.21l0.16,-0.13l0.79,-1.34l1.25,1.38Z\",\n \"name\": \"North Korea\"\n },\n \"SO\": {\n \"path\": \"M543.8,256.48l0.61,-0.05l1.14,-0.37l1.31,-0.25l0.12,-0.05l1.11,-0.81l0.57,-0.0l0.03,0.39l-0.23,1.49l0.01,1.25l-0.52,0.92l-0.7,2.71l-1.19,2.79l-1.54,3.2l-2.13,3.66l-2.12,2.79l-2.92,3.39l-2.47,2.0l-3.76,2.5l-2.33,1.9l-2.77,3.06l-0.61,1.35l-0.28,0.29l-1.22,-1.69l-0.03,-8.92l2.12,-2.76l0.59,-0.68l1.47,-0.04l0.18,-0.06l2.15,-1.71l3.16,-0.11l0.21,-0.09l7.08,-7.55l1.76,-2.12l1.14,-1.57l0.06,-0.18l0.01,-4.67Z\",\n \"name\": \"Somalia\"\n },\n \"SN\": {\n \"path\": \"M379.28,250.34l-0.95,-1.82l-0.09,-0.1l-0.83,-0.6l0.62,-0.28l0.13,-0.11l1.21,-1.8l0.6,-1.31l0.71,-0.68l1.09,0.2l0.18,-0.02l1.17,-0.53l1.25,-0.03l1.17,0.73l1.59,0.65l1.47,1.83l1.59,1.7l0.12,1.56l0.49,1.46l0.1,0.14l0.85,0.65l0.18,0.82l-0.08,0.57l-0.13,0.05l-1.29,-0.19l-0.29,0.13l-0.11,0.16l-0.35,0.04l-1.83,-0.61l-5.84,-0.13l-0.12,0.02l-0.6,0.26l-0.87,-0.06l-1.01,0.32l-0.26,-1.26l1.9,0.04l0.16,-0.04l0.54,-0.32l0.37,-0.02l0.15,-0.05l0.78,-0.5l0.92,0.46l0.12,0.03l1.09,0.04l0.15,-0.03l1.08,-0.57l0.11,-0.44l-0.51,-0.74l-0.39,-0.1l-0.76,0.39l-0.62,-0.01l-0.92,-0.58l-0.18,-0.05l-0.79,0.04l-0.2,0.09l-0.48,0.51l-2.41,0.06Z\",\n \"name\": \"Senegal\"\n },\n \"SL\": {\n \"path\": \"M392.19,267.53l-0.44,-0.12l-1.73,-0.97l-1.24,-1.28l-0.4,-0.84l-0.27,-1.65l1.21,-1.0l0.09,-0.12l0.27,-0.66l0.32,-0.41l0.56,-0.05l0.16,-0.07l0.5,-0.41l1.75,0.0l0.59,0.77l0.49,0.96l-0.07,0.64l0.04,0.19l0.36,0.58l-0.03,0.84l0.24,0.2l-0.64,0.65l-1.13,1.37l-0.06,0.14l-0.12,0.66l-0.43,0.58Z\",\n \"name\": \"Sierra Leone\"\n },\n \"SB\": {\n \"path\": \"M826.74,311.51l0.23,0.29l-0.95,-0.01l-0.39,-0.63l0.65,0.27l0.45,0.09ZM825.01,308.52l-1.18,-1.39l-0.37,-1.06l0.24,0.0l0.82,1.84l0.49,0.6ZM823.21,309.42l-0.44,0.03l-1.43,-0.24l-0.32,-0.24l0.08,-0.5l1.29,0.31l0.72,0.47l0.11,0.18ZM817.9,303.81l2.59,1.44l0.3,0.41l-1.21,-0.66l-1.34,-0.89l-0.34,-0.3ZM813.77,302.4l0.48,0.34l0.1,0.08l-0.33,-0.17l-0.25,-0.25Z\",\n \"name\": \"Solomon Islands\"\n },\n \"SA\": {\n \"path\": \"M528.24,243.1l-0.2,-0.69l-0.07,-0.12l-0.69,-0.71l-0.18,-0.94l-0.12,-0.19l-1.24,-0.89l-1.28,-2.09l-0.7,-2.08l-0.07,-0.11l-1.73,-1.79l-0.11,-0.07l-1.03,-0.39l-1.57,-2.36l-0.27,-1.72l0.1,-1.53l-0.03,-0.15l-1.44,-2.93l-1.25,-1.13l-1.34,-0.56l-0.72,-1.33l0.11,-0.49l-0.02,-0.2l-0.7,-1.38l-0.08,-0.1l-0.68,-0.56l-0.97,-1.98l-2.8,-4.03l-0.25,-0.13l-0.85,0.01l0.29,-1.11l0.12,-0.97l0.23,-0.81l2.52,0.39l0.23,-0.06l1.08,-0.84l0.6,-0.95l1.78,-0.35l0.22,-0.17l0.37,-0.83l0.74,-0.42l0.08,-0.46l-2.17,-2.4l4.55,-1.26l0.12,-0.06l0.36,-0.32l2.83,0.71l3.67,1.91l7.04,5.5l0.17,0.06l4.64,0.22l2.06,0.24l0.55,1.15l0.28,0.17l1.56,-0.06l0.9,2.15l0.14,0.15l1.14,0.57l0.39,0.85l0.11,0.13l1.59,1.06l0.12,0.91l-0.23,0.83l0.01,0.18l0.32,0.9l0.07,0.11l0.68,0.7l0.33,0.86l0.37,0.65l0.09,0.1l0.76,0.53l0.25,0.04l0.45,-0.12l0.35,0.75l0.1,0.63l0.96,2.68l0.23,0.19l7.53,1.33l0.27,-0.09l0.24,-0.26l0.87,1.41l-1.58,4.96l-7.34,2.54l-7.28,1.02l-2.34,1.17l-0.12,0.1l-1.74,2.63l-0.86,0.32l-0.49,-0.68l-0.28,-0.12l-0.92,0.12l-2.32,-0.25l-0.41,-0.23l-0.15,-0.04l-2.89,0.06l-0.63,0.2l-0.91,-0.59l-0.43,0.11l-0.66,1.27l-0.03,0.21l0.21,0.89l-0.6,0.45Z\",\n \"name\": \"Saudi Arabia\"\n },\n \"SE\": {\n \"path\": \"M476.42,90.44l-0.15,0.1l-2.43,2.86l-0.07,0.24l0.36,2.31l-3.84,3.1l-4.83,3.38l-0.11,0.15l-1.82,5.45l0.03,0.26l1.78,2.68l2.27,1.99l-2.13,3.88l-2.49,0.82l-0.2,0.24l-0.95,6.05l-1.32,3.09l-2.82,-0.32l-0.3,0.16l-1.34,2.64l-2.48,0.14l-0.76,-3.15l-2.09,-4.04l-1.85,-5.01l1.03,-1.98l2.06,-2.53l0.06,-0.13l0.83,-4.45l-0.06,-0.25l-1.54,-1.86l-0.15,-5.0l1.52,-3.48l2.28,0.06l0.27,-0.16l0.87,-1.59l-0.01,-0.31l-0.8,-1.21l3.79,-5.63l4.07,-7.54l2.23,0.01l0.29,-0.22l0.59,-2.15l4.46,0.66l0.34,-0.26l0.34,-2.64l1.21,-0.14l3.24,2.08l3.78,2.85l0.06,6.37l0.03,0.14l0.67,1.29l-3.95,1.07Z\",\n \"name\": \"Sweden\"\n },\n \"SD\": {\n \"path\": \"M505.98,259.75l-0.31,-0.9l-0.1,-0.14l-1.2,-0.93l-0.27,-1.66l0.29,-1.83l-0.25,-0.34l-1.16,-0.17l-0.33,0.21l-0.11,0.37l-1.3,0.11l-0.21,0.49l0.55,0.68l0.18,1.29l-1.31,1.33l-1.18,1.72l-1.04,0.21l-2.0,-1.4l-0.32,-0.02l-0.95,0.52l-0.14,0.16l-0.21,0.6l-1.16,0.43l-0.19,0.23l-0.04,0.27l-2.08,0.0l-0.25,-0.39l-0.24,-0.13l-1.81,-0.09l-0.14,0.03l-0.8,0.38l-0.49,-0.16l-1.22,-1.39l-0.42,-0.67l-0.31,-0.14l-1.81,0.35l-0.2,0.14l-0.72,1.24l-0.61,2.14l-0.73,0.4l-0.62,0.22l-0.83,-0.68l-0.12,-0.6l0.38,-0.97l0.01,-1.14l-0.08,-0.2l-1.39,-1.53l-0.25,-0.97l0.03,-0.57l-0.11,-0.25l-0.81,-0.66l-0.03,-1.34l-0.04,-0.14l-0.52,-0.98l-0.31,-0.15l-0.42,0.07l0.12,-0.44l0.63,-1.03l0.03,-0.23l-0.24,-0.88l0.69,-0.66l0.02,-0.41l-0.4,-0.46l0.58,-1.39l1.04,-1.71l1.97,0.16l0.32,-0.3l-0.12,-10.24l0.02,-0.8l2.59,-0.01l0.3,-0.3l0.0,-4.92l29.19,0.0l0.68,2.17l-0.4,0.35l-0.1,0.27l0.36,2.69l0.93,3.15l0.12,0.16l2.05,1.4l-0.99,1.15l-1.75,0.4l-0.15,0.08l-0.79,0.79l-0.08,0.17l-0.24,1.69l-1.07,3.75l-0.0,0.16l0.25,0.96l-0.38,2.1l-0.98,2.41l-1.52,1.3l-1.07,1.94l-0.25,0.99l-1.08,0.64l-0.13,0.18l-0.46,1.65Z\",\n \"name\": \"Sudan\"\n },\n \"DO\": {\n \"path\": \"M241.7,234.97l0.15,-0.22l1.73,0.01l1.43,0.64l0.15,0.03l0.45,-0.04l0.36,0.74l0.28,0.17l1.02,-0.04l-0.04,0.43l0.27,0.33l1.03,0.09l0.91,0.7l-0.57,0.64l-0.99,-0.47l-0.16,-0.03l-1.11,0.11l-0.79,-0.12l-0.26,0.09l-0.38,0.4l-0.66,0.11l-0.28,-0.45l-0.38,-0.12l-0.83,0.37l-0.14,0.13l-0.85,1.49l-0.27,-0.17l-0.1,-0.58l0.05,-0.67l-0.07,-0.21l-0.44,-0.53l0.35,-0.25l0.12,-0.19l0.19,-1.0l-0.2,-1.4Z\",\n \"name\": \"Dominican Republic\"\n },\n \"DJ\": {\n \"path\": \"M528.78,253.36l0.34,0.45l-0.06,0.76l-1.26,0.54l-0.05,0.53l0.82,0.53l-0.57,0.83l-0.3,-0.25l-0.27,-0.05l-0.56,0.17l-1.07,-0.03l-0.04,-0.56l-0.16,-0.56l0.76,-1.07l0.76,-0.97l0.89,0.18l0.25,-0.06l0.51,-0.42Z\",\n \"name\": \"Djibouti\"\n },\n \"DK\": {\n \"path\": \"M452.4,129.07l-1.27,2.39l-2.25,-1.69l-0.26,-1.08l3.15,-1.0l0.63,1.39ZM447.87,126.25l-0.35,0.76l-0.47,-0.24l-0.38,0.09l-1.8,2.53l-0.03,0.29l0.56,1.4l-1.22,0.4l-1.68,-0.41l-0.92,-1.76l-0.07,-3.47l0.38,-0.88l0.62,-0.93l2.07,-0.21l0.19,-0.1l0.84,-0.95l1.5,-0.76l-0.06,1.26l-0.7,1.1l-0.03,0.25l0.3,1.0l0.18,0.19l1.06,0.42Z\",\n \"name\": \"Denmark\"\n },\n \"DE\": {\n \"path\": \"M445.51,131.69l0.03,0.94l0.21,0.28l2.32,0.74l-0.02,1.0l0.37,0.3l2.55,-0.65l1.36,-0.89l2.63,1.27l1.09,1.01l0.51,1.51l-0.6,0.78l-0.0,0.36l0.88,1.17l0.58,1.68l-0.18,1.08l0.03,0.18l0.87,1.81l-0.66,0.2l-0.55,-0.32l-0.36,0.05l-0.58,0.58l-1.73,0.62l-0.99,0.84l-1.77,0.7l-0.16,0.4l0.42,0.94l0.26,1.34l0.14,0.2l1.25,0.76l1.22,1.2l-0.71,1.2l-0.81,0.37l-0.17,0.32l0.34,1.99l-0.04,0.09l-0.47,-0.39l-0.17,-0.07l-1.2,-0.1l-1.85,0.57l-2.15,-0.13l-0.29,0.18l-0.21,0.5l-0.96,-0.67l-0.24,-0.05l-0.67,0.16l-2.6,-0.94l-0.34,0.1l-0.42,0.57l-1.64,-0.02l0.26,-1.88l1.24,-2.15l-0.21,-0.45l-3.54,-0.58l-0.98,-0.71l0.12,-1.26l-0.05,-0.2l-0.44,-0.64l0.27,-2.18l-0.38,-3.14l1.17,-0.0l0.27,-0.17l0.63,-1.26l0.65,-3.17l-0.02,-0.17l-0.41,-1.0l0.32,-0.47l1.77,-0.16l0.37,0.6l0.47,0.06l1.7,-1.69l0.06,-0.33l-0.55,-1.24l-0.09,-1.51l1.5,0.36l0.16,-0.01l1.22,-0.4Z\",\n \"name\": \"Germany\"\n },\n \"YE\": {\n \"path\": \"M553.53,242.65l-1.51,0.58l-0.17,0.16l-0.48,1.14l-0.07,0.79l-2.31,1.0l-3.98,1.19l-2.28,1.8l-0.97,0.12l-0.7,-0.14l-0.23,0.05l-1.42,1.03l-1.51,0.47l-2.07,0.13l-0.68,0.15l-0.17,0.1l-0.49,0.6l-0.57,0.16l-0.18,0.13l-0.3,0.49l-1.06,-0.05l-0.13,0.02l-0.73,0.32l-1.48,-0.11l-0.55,-1.26l0.07,-1.32l-0.04,-0.16l-0.39,-0.72l-0.48,-1.85l-0.52,-0.79l0.08,-0.02l0.22,-0.36l-0.23,-1.05l0.24,-0.39l0.04,-0.19l-0.09,-0.95l0.96,-0.72l0.11,-0.31l-0.23,-0.98l0.46,-0.88l0.75,0.49l0.26,0.03l0.63,-0.22l2.76,-0.06l0.5,0.25l2.42,0.26l0.85,-0.11l0.52,0.71l0.35,0.1l1.17,-0.43l0.15,-0.12l1.75,-2.64l2.22,-1.11l6.95,-0.96l2.55,5.58Z\",\n \"name\": \"Yemen\"\n },\n \"AT\": {\n \"path\": \"M463.17,154.15l-0.14,0.99l-1.15,0.01l-0.24,0.47l0.39,0.56l-0.75,1.84l-0.36,0.4l-2.06,0.07l-0.14,0.04l-1.18,0.67l-1.96,-0.23l-3.43,-0.78l-0.5,-0.97l-0.33,-0.16l-2.47,0.55l-0.2,0.16l-0.18,0.37l-1.27,-0.38l-1.28,-0.09l-0.81,-0.41l0.25,-0.51l0.03,-0.18l-0.05,-0.28l0.35,-0.08l1.16,0.81l0.45,-0.13l0.27,-0.64l2.0,0.12l1.84,-0.57l1.05,0.09l0.71,0.59l0.47,-0.11l0.23,-0.54l0.02,-0.17l-0.32,-1.85l0.69,-0.31l0.13,-0.12l0.73,-1.23l1.61,0.89l0.35,-0.04l1.35,-1.27l0.7,-0.19l1.84,0.93l0.18,0.03l1.08,-0.15l0.81,0.43l-0.07,0.15l-0.02,0.2l0.24,1.06Z\",\n \"name\": \"Austria\"\n },\n \"DZ\": {\n \"path\": \"M450.58,224.94l-8.31,4.86l-7.23,5.12l-3.46,1.13l-2.42,0.22l-0.02,-1.33l-0.2,-0.28l-1.15,-0.42l-1.45,-0.69l-0.55,-1.13l-0.1,-0.12l-8.45,-5.72l-17.72,-12.17l0.03,-0.38l-0.02,-3.21l3.84,-1.91l2.46,-0.41l2.1,-0.75l0.14,-0.11l0.9,-1.3l2.84,-1.06l0.19,-0.27l0.09,-1.81l1.21,-0.2l0.15,-0.07l1.06,-0.96l3.19,-0.46l0.23,-0.18l0.46,-1.08l-0.08,-0.34l-0.6,-0.54l-0.83,-2.85l-0.18,-1.8l-0.82,-1.57l2.13,-1.37l2.65,-0.49l0.13,-0.05l1.55,-1.15l2.34,-0.85l4.2,-0.51l4.07,-0.23l1.21,0.41l0.23,-0.01l2.3,-1.11l2.52,-0.02l0.94,0.62l0.2,0.05l1.25,-0.13l-0.36,1.03l-0.01,0.14l0.39,2.66l-0.56,2.2l-1.49,1.52l-0.08,0.24l0.22,2.12l0.11,0.2l1.94,1.58l0.02,0.54l0.12,0.23l1.45,1.06l1.04,4.85l0.81,2.42l0.13,1.19l-0.43,2.17l0.17,1.28l-0.31,1.53l0.2,1.56l-0.9,1.02l-0.01,0.38l1.43,1.88l0.09,1.06l0.04,0.13l0.89,1.48l0.37,0.12l1.03,-0.43l1.79,1.12l0.89,1.34Z\",\n \"name\": \"Algeria\"\n },\n \"US\": {\n \"path\": \"M892.64,99.05l1.16,0.57l0.21,0.02l1.45,-0.38l1.92,0.99l2.17,0.47l-1.65,0.72l-1.75,-0.79l-0.93,-0.7l-0.21,-0.06l-2.11,0.22l-0.35,-0.2l0.09,-0.87ZM183.29,150.37l0.39,1.54l0.12,0.17l0.78,0.55l0.14,0.05l1.74,0.2l2.52,0.5l2.4,0.98l0.17,0.02l1.96,-0.4l3.01,0.81l0.91,-0.02l2.22,-0.88l4.67,2.33l3.86,2.01l0.21,0.71l0.15,0.18l0.33,0.17l-0.02,0.05l0.23,0.43l0.67,0.1l0.21,-0.05l0.1,-0.07l0.05,0.29l0.09,0.16l0.5,0.5l0.21,0.09l0.56,0.0l0.13,0.13l-0.2,0.36l0.12,0.41l2.49,1.39l0.99,5.24l-0.69,1.68l-1.16,1.64l-0.6,1.18l-0.06,0.31l0.04,0.22l0.28,0.43l0.11,0.1l0.85,0.47l0.15,0.04l0.63,0.0l0.14,-0.04l2.87,-1.58l2.6,-0.49l3.28,-1.5l0.17,-0.23l0.04,-0.43l-0.23,-0.93l-0.24,-0.39l0.74,-0.32l4.7,-0.01l0.25,-0.13l0.77,-1.15l2.9,-2.41l1.04,-0.52l8.35,-0.02l0.28,-0.21l0.2,-0.6l0.7,-0.14l1.06,-0.48l0.13,-0.11l0.92,-1.49l0.75,-2.39l1.67,-2.08l0.59,0.6l0.3,0.07l1.52,-0.49l0.88,0.72l-0.0,4.14l0.08,0.2l1.6,1.72l0.31,0.72l-2.42,1.35l-2.55,1.05l-2.64,0.9l-0.14,0.11l-1.33,1.81l-0.44,0.7l-0.05,0.15l-0.03,1.6l0.03,0.14l0.83,1.59l0.24,0.16l0.78,0.06l-1.15,0.33l-1.25,-0.04l-1.83,0.52l-2.51,0.29l-2.17,0.88l-0.17,0.36l0.33,0.22l3.55,-0.54l0.15,0.11l-2.87,0.73l-1.19,0.0l-0.16,-0.33l-0.36,0.06l-0.76,0.82l0.17,0.5l0.42,0.08l-0.45,1.75l-1.4,1.74l-0.04,-0.17l-0.21,-0.22l-0.48,-0.13l-0.77,-0.69l-0.36,-0.03l-0.12,0.34l0.52,1.58l0.09,0.14l0.52,0.43l0.03,0.87l-0.74,1.05l-0.39,0.63l0.05,-0.12l-0.08,-0.34l-1.19,-1.03l-0.28,-2.31l-0.26,-0.26l-0.32,0.19l-0.48,1.27l-0.01,0.19l0.39,1.33l-1.14,-0.31l-0.36,0.18l0.14,0.38l1.57,0.85l0.1,2.58l0.22,0.28l0.55,0.15l0.21,0.81l0.33,2.72l-1.46,1.94l-2.5,0.81l-0.12,0.07l-1.58,1.58l-1.15,0.17l-0.15,0.06l-1.27,1.03l-0.09,0.13l-0.32,0.85l-2.71,1.79l-1.45,1.37l-1.18,1.64l-0.05,0.12l-0.39,1.96l0.0,0.13l0.44,1.91l0.85,2.37l1.1,1.91l0.03,1.2l1.16,3.07l-0.08,1.74l-0.1,0.99l-0.57,1.48l-0.54,0.24l-0.97,-0.26l-0.34,-1.02l-0.12,-0.16l-0.89,-0.58l-2.44,-4.28l-0.34,-0.94l0.49,-1.71l-0.02,-0.21l-0.7,-1.5l-2.0,-2.35l-0.11,-0.08l-0.98,-0.42l-0.25,0.01l-2.42,1.19l-0.26,-0.08l-1.26,-1.29l-1.57,-0.68l-0.16,-0.02l-2.79,0.34l-2.18,-0.3l-1.98,0.19l-1.12,0.45l-0.14,0.44l0.4,0.65l-0.04,1.02l0.09,0.22l0.29,0.3l-0.06,0.05l-0.77,-0.33l-0.26,0.01l-0.87,0.48l-1.64,-0.08l-1.79,-1.39l-0.23,-0.06l-2.11,0.33l-1.75,-0.61l-0.14,-0.01l-1.61,0.2l-2.11,0.64l-0.11,0.06l-2.25,1.99l-2.53,1.21l-1.43,1.38l-0.58,1.22l-0.03,0.12l-0.03,1.86l0.13,1.32l0.3,0.62l-0.46,0.04l-1.71,-0.57l-1.85,-0.79l-0.63,-1.14l-0.54,-1.85l-0.07,-0.12l-1.45,-1.51l-0.86,-1.58l-1.26,-1.87l-0.09,-0.09l-1.76,-1.09l-0.17,-0.04l-2.05,0.05l-0.23,0.12l-1.44,1.97l-1.84,-0.72l-1.19,-0.76l-0.6,-1.45l-0.9,-1.52l-1.49,-1.21l-1.27,-0.87l-0.89,-0.96l-0.22,-0.1l-4.34,-0.0l-0.3,0.3l-0.0,0.84l-6.62,0.02l-5.66,-1.93l-3.48,-1.24l0.11,-0.25l-0.3,-0.42l-3.18,0.3l-2.6,0.2l-0.35,-1.19l-0.08,-0.13l-1.62,-1.61l-0.13,-0.08l-1.02,-0.29l-0.22,-0.66l-0.25,-0.2l-1.31,-0.13l-0.82,-0.7l-0.16,-0.07l-2.25,-0.27l-0.48,-0.34l-0.28,-1.44l-0.07,-0.14l-2.41,-2.84l-2.03,-3.89l0.08,-0.58l-0.1,-0.27l-1.08,-0.94l-1.87,-2.36l-0.33,-2.31l-0.07,-0.15l-1.24,-1.5l0.52,-2.4l-0.09,-2.57l-0.78,-2.3l0.96,-2.83l0.61,-5.66l-0.46,-4.26l-0.79,-2.71l-0.68,-1.4l0.13,-0.26l3.24,0.97l1.28,2.88l0.52,0.06l0.62,-0.84l0.06,-0.22l-0.4,-2.61l-0.74,-2.29l68.9,-0.0l0.3,-0.3l0.01,-0.95l0.32,-0.01ZM32.5,67.43l1.75,1.99l0.41,0.04l1.02,-0.81l3.79,0.25l-0.1,0.72l0.24,0.34l3.83,0.77l2.6,-0.44l5.21,1.41l4.84,0.43l1.9,0.57l0.15,0.01l3.25,-0.71l3.72,1.32l2.52,0.58l-0.03,38.14l0.29,0.3l2.41,0.11l2.34,1.0l1.7,1.59l2.22,2.42l0.42,0.03l2.41,-2.04l2.25,-1.08l1.23,1.76l1.71,1.53l2.24,1.62l1.54,2.56l2.56,4.09l0.11,0.11l4.1,2.17l0.06,1.93l-1.12,1.35l-1.22,-1.14l-2.08,-1.05l-0.68,-2.94l-0.09,-0.16l-3.18,-2.84l-1.32,-3.35l-0.25,-0.19l-2.43,-0.24l-3.93,-0.09l-2.85,-1.02l-5.24,-3.85l-6.77,-2.04l-3.52,0.3l-4.84,-1.7l-2.96,-1.6l-0.23,-0.02l-2.78,0.8l-0.21,0.35l0.46,2.31l-1.11,0.19l-2.9,0.78l-2.24,1.26l-2.42,0.68l-0.29,-1.79l1.07,-3.49l2.54,-1.11l0.12,-0.45l-0.69,-0.96l-0.41,-0.07l-3.19,2.12l-1.76,2.54l-3.57,2.62l-0.03,0.46l1.63,1.59l-2.14,2.38l-2.64,1.49l-2.49,1.09l-0.16,0.17l-0.58,1.48l-3.8,1.79l-0.14,0.14l-0.75,1.57l-2.75,1.41l-1.62,-0.25l-0.16,0.02l-2.35,0.98l-2.54,1.19l-2.06,1.15l-4.05,0.93l-0.1,-0.15l2.45,-1.45l2.49,-1.1l2.61,-1.88l3.03,-0.39l0.19,-0.1l1.2,-1.41l3.43,-2.11l0.61,-0.75l1.81,-1.24l0.13,-0.2l0.42,-2.7l1.24,-2.12l-0.03,-0.35l-0.34,-0.09l-2.73,1.05l-0.67,-0.53l-0.39,0.02l-1.13,1.11l-1.43,-1.62l-0.49,0.06l-0.41,0.8l-0.67,-1.31l-0.42,-0.12l-2.43,1.43l-1.18,-0.0l-0.18,-1.86l0.43,-1.3l-0.09,-0.33l-1.61,-1.33l-0.26,-0.06l-3.11,0.68l-2.0,-1.66l-1.61,-0.85l-0.01,-1.97l-0.11,-0.23l-1.76,-1.48l0.86,-1.96l2.01,-2.13l0.88,-1.94l1.79,-0.25l1.65,0.6l0.31,-0.06l1.91,-1.8l1.67,0.31l0.22,-0.04l1.91,-1.23l0.13,-0.33l-0.47,-1.82l-0.15,-0.19l-1.0,-0.52l1.51,-1.27l0.09,-0.34l-0.29,-0.19l-1.62,0.06l-2.66,0.88l-0.13,0.09l-0.62,0.72l-1.77,-0.8l-0.16,-0.02l-3.48,0.44l-3.5,-0.92l-1.06,-1.61l-2.78,-2.09l3.07,-1.51l5.52,-2.01l1.65,0.0l-0.28,1.73l0.31,0.35l5.29,-0.16l0.23,-0.49l-2.03,-2.59l-0.1,-0.08l-3.03,-1.58l-1.79,-2.12l-2.4,-1.83l-3.18,-1.27l1.13,-1.84l4.28,-0.14l0.15,-0.05l3.16,-2.0l0.13,-0.17l0.57,-2.07l2.43,-2.02l2.42,-0.52l4.67,-1.98l2.22,0.29l0.2,-0.04l3.74,-2.37l3.57,0.91ZM37.66,123.49l-2.31,1.26l-1.04,-0.75l-0.31,-1.35l2.06,-1.16l1.24,-0.51l1.48,0.22l0.76,0.81l-1.89,1.49ZM30.89,233.84l1.2,0.57l0.35,0.3l0.48,0.69l-1.6,0.86l-0.3,0.31l-0.24,-0.14l0.05,-0.54l-0.02,-0.15l-0.36,-0.83l0.05,-0.12l0.39,-0.38l0.07,-0.31l-0.09,-0.27ZM29.06,231.89l0.5,0.14l0.31,0.19l-0.46,0.1l-0.34,-0.43ZM25.02,230.13l0.2,-0.11l0.4,0.47l-0.43,-0.05l-0.17,-0.31ZM21.29,228.68l0.1,-0.07l0.22,0.02l0.02,0.21l-0.02,0.02l-0.32,-0.18ZM6.0,113.33l-1.19,0.45l-1.5,-0.64l-0.94,-0.63l1.76,-0.46l1.71,0.29l0.16,0.98Z\",\n \"name\": \"United States of America\"\n },\n \"LV\": {\n \"path\": \"M473.99,127.16l0.07,-2.15l1.15,-2.11l2.05,-1.07l1.84,2.48l0.25,0.12l2.01,-0.07l0.29,-0.25l0.45,-2.58l1.85,-0.56l0.98,0.4l2.13,1.33l0.16,0.05l1.97,0.01l1.02,0.7l0.21,1.67l0.71,1.84l-2.44,1.23l-1.36,0.53l-2.28,-1.62l-0.12,-0.05l-1.18,-0.2l-0.28,-0.6l-0.31,-0.17l-2.43,0.35l-4.17,-0.23l-0.12,0.02l-2.45,0.93Z\",\n \"name\": \"Latvia\"\n },\n \"UY\": {\n \"path\": \"M276.9,363.17l1.3,-0.23l2.4,2.04l0.22,0.07l0.82,-0.07l2.48,1.7l1.93,1.5l1.28,1.67l-0.95,1.14l-0.04,0.31l0.63,1.45l-0.96,1.57l-2.65,1.47l-1.73,-0.53l-0.15,-0.01l-1.25,0.28l-2.22,-1.16l-0.16,-0.03l-1.56,0.08l-1.33,-1.36l0.17,-1.58l0.48,-0.55l0.07,-0.2l-0.02,-2.74l0.66,-2.8l0.57,-2.02Z\",\n \"name\": \"Uruguay\"\n },\n \"LB\": {\n \"path\": \"M510.44,198.11l-0.48,0.03l-0.26,0.17l-0.15,0.32l-0.21,-0.0l0.72,-1.85l1.19,-1.9l0.74,0.09l0.27,0.73l-1.19,0.93l-0.09,0.13l-0.54,1.36Z\",\n \"name\": \"Lebanon\"\n },\n \"LA\": {\n \"path\": \"M684.87,248.8l0.61,-0.86l0.05,-0.16l0.11,-2.17l-0.08,-0.22l-1.96,-2.16l-0.15,-2.44l-0.08,-0.18l-1.9,-2.1l-0.19,-0.1l-1.89,-0.18l-0.29,0.15l-0.42,0.76l-1.21,0.06l-0.67,-0.41l-0.31,-0.0l-2.2,1.29l-0.05,-1.77l0.61,-2.7l-0.27,-0.37l-1.44,-0.1l-0.12,-1.31l-0.12,-0.21l-0.87,-0.65l0.38,-0.68l1.76,-1.41l0.08,0.22l0.27,0.2l1.33,0.07l0.31,-0.34l-0.35,-2.75l0.85,-0.25l1.32,1.88l1.11,2.36l0.27,0.17l2.89,0.02l0.78,1.82l-1.32,0.56l-0.12,0.09l-0.72,0.93l0.1,0.45l2.93,1.52l3.62,5.27l1.88,1.78l0.58,1.67l-0.38,2.11l-1.87,-0.79l-0.37,0.11l-0.99,1.54l-1.51,-0.73Z\",\n \"name\": \"Laos\"\n },\n \"TW\": {\n \"path\": \"M725.6,222.5l-1.5,4.22l-0.82,1.65l-1.01,-1.7l-0.26,-1.8l1.4,-2.48l1.8,-1.81l0.76,0.53l-0.38,1.39Z\",\n \"name\": \"Taiwan\"\n },\n \"TT\": {\n \"path\": \"M266.35,259.46l0.41,-0.39l0.09,-0.23l-0.04,-0.75l1.14,-0.26l0.2,0.03l-0.07,1.37l-1.73,0.23Z\",\n \"name\": \"Trinidad and Tobago\"\n },\n \"TR\": {\n \"path\": \"M513.25,175.38l3.63,1.17l0.14,0.01l2.88,-0.45l2.11,0.26l0.18,-0.03l2.9,-1.53l2.51,-0.13l2.25,1.37l0.36,0.88l-0.23,1.36l0.19,0.33l1.81,0.72l0.61,0.53l-1.31,0.64l-0.16,0.34l0.76,3.24l-0.44,0.8l0.01,0.3l1.19,2.02l-0.71,0.29l-0.74,-0.62l-0.15,-0.07l-2.91,-0.37l-0.15,0.02l-1.04,0.43l-2.78,0.44l-1.44,-0.03l-2.83,1.06l-1.95,0.01l-1.28,-0.52l-0.2,-0.01l-2.62,0.76l-0.7,-0.48l-0.47,0.22l-0.13,1.49l-1.01,0.94l-0.58,-0.82l0.79,-0.9l0.04,-0.34l-0.31,-0.15l-1.46,0.23l-2.03,-0.64l-0.3,0.07l-1.65,1.58l-3.58,0.3l-1.94,-1.47l-0.17,-0.06l-2.7,-0.1l-0.28,0.17l-0.51,1.06l-1.47,0.29l-2.32,-1.46l-0.17,-0.05l-2.55,0.05l-1.4,-2.7l-1.72,-1.54l1.11,-2.06l-0.07,-0.37l-1.35,-1.19l2.47,-2.51l3.74,-0.11l0.26,-0.17l0.96,-2.07l4.56,0.38l0.19,-0.05l2.97,-1.92l2.84,-0.83l4.03,-0.06l4.31,2.08ZM488.85,176.8l-1.81,1.38l-0.57,-1.01l0.02,-0.36l0.45,-0.25l0.13,-0.15l0.78,-1.87l-0.11,-0.37l-0.72,-0.47l1.91,-0.71l1.89,0.35l0.25,0.97l0.17,0.2l1.87,0.83l-0.19,0.31l-2.82,0.16l-0.18,0.07l-1.06,0.91Z\",\n \"name\": \"Turkey\"\n },\n \"LK\": {\n \"path\": \"M625.44,266.07l-0.35,2.4l-0.9,0.61l-1.91,0.5l-1.04,-1.75l-0.43,-3.5l1.0,-3.6l1.34,1.09l1.13,1.72l1.16,2.52Z\",\n \"name\": \"Sri Lanka\"\n },\n \"TN\": {\n \"path\": \"M444.91,206.18l-0.99,-4.57l-0.12,-0.18l-1.43,-1.04l-0.02,-0.53l-0.11,-0.22l-1.95,-1.59l-0.19,-1.85l1.44,-1.47l0.08,-0.14l0.59,-2.34l-0.38,-2.77l0.44,-1.28l2.52,-1.08l1.41,0.28l-0.06,1.2l0.43,0.28l1.81,-0.9l0.02,0.06l-1.14,1.28l-0.08,0.2l-0.02,1.32l0.11,0.24l0.74,0.6l-0.29,2.18l-1.56,1.35l-0.09,0.32l0.48,1.54l0.28,0.21l1.11,0.04l0.55,1.17l0.15,0.14l0.76,0.35l-0.12,1.79l-1.1,0.72l-0.8,0.91l-1.68,1.04l-0.13,0.32l0.25,1.08l-0.18,0.96l-0.74,0.39Z\",\n \"name\": \"Tunisia\"\n },\n \"TL\": {\n \"path\": \"M734.21,307.22l0.17,-0.34l1.99,-0.52l1.72,-0.08l0.78,-0.3l0.29,0.1l-0.43,0.32l-2.57,1.09l-1.71,0.59l-0.05,-0.49l-0.19,-0.36Z\",\n \"name\": \"East Timor\"\n },\n \"TM\": {\n \"path\": \"M553.16,173.51l-0.12,1.0l-0.26,-0.65l0.38,-0.34ZM553.54,173.16l0.13,-0.12l0.43,-0.09l-0.56,0.21ZM555.68,172.6l0.65,-0.14l1.53,0.76l1.71,2.29l0.27,0.12l1.27,-0.14l2.81,-0.04l0.29,-0.38l-0.35,-1.27l1.98,-0.97l1.96,-1.63l3.05,1.44l0.25,2.23l0.14,0.22l0.96,0.61l0.18,0.05l2.61,-0.13l0.68,0.44l1.2,2.97l0.1,0.13l2.85,2.03l1.67,1.41l2.66,1.45l3.13,1.17l-0.05,1.23l-0.36,-0.04l-1.12,-0.73l-0.44,0.14l-0.34,0.89l-1.96,0.52l-0.22,0.23l-0.47,2.17l-1.26,0.78l-1.93,0.42l-0.21,0.18l-0.46,1.14l-1.64,0.33l-2.3,-0.97l-0.2,-2.23l-0.28,-0.27l-1.76,-0.1l-2.78,-2.48l-0.15,-0.07l-1.95,-0.31l-2.82,-1.48l-1.78,-0.27l-0.18,0.03l-1.03,0.51l-1.6,-0.08l-0.22,0.08l-1.72,1.6l-1.83,0.46l-0.39,-1.7l0.36,-3.0l-0.16,-0.3l-1.73,-0.88l0.57,-1.77l-0.25,-0.39l-1.33,-0.14l0.41,-1.85l2.05,0.63l0.21,-0.01l2.2,-0.95l0.09,-0.49l-1.78,-1.75l-0.69,-1.66l-0.07,-0.03Z\",\n \"name\": \"Turkmenistan\"\n },\n \"TJ\": {\n \"path\": \"M597.99,178.71l-0.23,0.23l-2.57,-0.47l-0.35,0.25l-0.24,1.7l0.32,0.34l2.66,-0.22l3.15,0.95l4.47,-0.42l0.58,2.45l0.39,0.21l0.71,-0.25l1.22,0.53l-0.06,1.01l0.29,1.28l-2.19,-0.0l-1.71,-0.21l-0.23,0.07l-1.51,1.25l-1.05,0.27l-0.77,0.51l-0.71,-0.67l0.22,-2.28l-0.24,-0.32l-0.43,-0.08l0.17,-0.57l-0.16,-0.36l-1.36,-0.66l-0.34,0.05l-1.08,1.01l-0.09,0.15l-0.25,1.09l-0.24,0.26l-1.36,-0.05l-0.27,0.14l-0.65,1.06l-0.58,-0.39l-0.3,-0.02l-1.68,0.86l-0.36,-0.16l1.28,-2.65l0.02,-0.2l-0.54,-2.17l-0.18,-0.21l-1.53,-0.58l0.41,-0.82l1.89,0.13l0.26,-0.12l1.19,-1.63l0.77,-1.82l2.66,-0.55l-0.33,0.87l0.01,0.23l0.36,0.82l0.3,0.18l0.23,-0.02Z\",\n \"name\": \"Tajikistan\"\n },\n \"LS\": {\n \"path\": \"M493.32,359.69l0.69,0.65l-0.65,1.12l-0.38,0.8l-1.27,0.39l-0.18,0.15l-0.4,0.77l-0.59,0.18l-1.59,-1.78l1.16,-1.5l1.3,-1.02l0.97,-0.46l0.94,0.72Z\",\n \"name\": \"Lesotho\"\n },\n \"TH\": {\n \"path\": \"M677.42,253.68l-1.7,-0.88l-0.14,-0.03l-1.77,0.04l0.3,-1.64l-0.3,-0.35l-2.21,0.01l-0.3,0.28l-0.2,2.76l-2.15,5.9l-0.02,0.13l0.17,1.83l0.28,0.27l1.45,0.07l0.93,2.1l0.44,2.15l0.08,0.15l1.4,1.44l0.16,0.09l1.43,0.27l1.04,1.05l-0.58,0.73l-1.24,0.22l-0.15,-0.99l-0.15,-0.22l-2.04,-1.1l-0.36,0.06l-0.23,0.23l-0.72,-0.71l-0.41,-1.18l-0.06,-0.11l-1.33,-1.42l-1.22,-1.2l-0.5,0.13l-0.15,0.54l-0.14,-0.41l0.26,-1.48l0.73,-2.38l1.2,-2.57l1.37,-2.35l0.02,-0.27l-0.95,-2.26l0.03,-1.19l-0.29,-1.42l-0.06,-0.13l-1.65,-2.0l-0.46,-0.99l0.62,-0.34l0.13,-0.15l0.92,-2.23l-0.02,-0.27l-1.05,-1.74l-1.57,-1.86l-1.04,-1.96l0.76,-0.34l0.16,-0.16l1.07,-2.63l1.58,-0.1l0.16,-0.06l1.43,-1.11l1.24,-0.52l0.84,0.62l0.13,1.43l0.28,0.27l1.34,0.09l-0.54,2.39l0.05,2.39l0.45,0.25l2.48,-1.45l0.6,0.36l0.17,0.04l1.47,-0.07l0.25,-0.15l0.41,-0.73l1.58,0.15l1.76,1.93l0.15,2.44l0.08,0.18l1.94,2.15l-0.1,1.96l-0.66,0.93l-2.25,-0.34l-3.24,0.49l-0.19,0.12l-1.6,2.12l-0.06,0.24l0.48,2.46Z\",\n \"name\": \"Thailand\"\n },\n \"TF\": {\n \"path\": \"M593.76,417.73l1.38,0.84l2.15,0.37l0.04,0.31l-0.59,1.24l-3.36,0.19l-0.05,-1.38l0.43,-1.56Z\",\n \"name\": \"French Southern and Antarctic Lands\"\n },\n \"TG\": {\n \"path\": \"M425.23,269.29l-1.49,0.4l-0.43,-0.68l-0.64,-1.54l-0.18,-1.16l0.54,-2.21l-0.04,-0.24l-0.59,-0.86l-0.23,-1.9l0.0,-1.82l-0.07,-0.19l-0.95,-1.19l0.1,-0.41l1.58,0.04l-0.23,0.97l0.08,0.28l1.55,1.55l0.09,1.13l0.08,0.19l0.42,0.43l-0.11,5.66l0.52,1.53Z\",\n \"name\": \"Togo\"\n },\n \"TD\": {\n \"path\": \"M457.57,252.46l0.23,-1.08l-0.28,-0.36l-1.32,-0.05l0.0,-1.35l-0.1,-0.22l-0.9,-0.82l0.99,-3.1l3.12,-2.37l0.12,-0.23l0.13,-3.33l0.95,-5.2l0.53,-1.09l-0.07,-0.36l-0.94,-0.81l-0.03,-0.7l-0.12,-0.23l-0.84,-0.61l-0.57,-3.76l2.21,-1.26l19.67,9.88l0.12,9.74l-1.83,-0.15l-0.28,0.14l-1.14,1.89l-0.68,1.62l0.05,0.31l0.33,0.38l-0.61,0.58l-0.08,0.3l0.25,0.93l-0.58,0.95l-0.29,1.01l0.34,0.37l0.67,-0.11l0.39,0.73l0.03,1.4l0.11,0.23l0.8,0.65l-0.01,0.24l-1.38,0.37l-0.11,0.06l-1.27,1.03l-1.83,2.76l-2.21,1.1l-2.34,-0.15l-0.82,0.25l-0.2,0.37l0.19,0.68l-1.16,0.79l-1.01,0.94l-2.92,0.89l-0.5,-0.46l-0.17,-0.08l-0.41,-0.05l-0.28,0.12l-0.38,0.54l-1.36,0.12l0.1,-0.18l0.01,-0.27l-0.78,-1.72l-0.35,-1.03l-0.17,-0.18l-1.03,-0.41l-1.29,-1.28l0.36,-0.78l0.9,0.2l0.14,-0.0l0.67,-0.17l1.36,0.02l0.26,-0.45l-1.32,-2.22l0.09,-1.64l-0.17,-1.68l-0.04,-0.13l-0.93,-1.53Z\",\n \"name\": \"Chad\"\n },\n \"LY\": {\n \"path\": \"M457.99,226.38l-1.57,0.87l-1.25,-1.28l-0.13,-0.08l-3.85,-1.11l-1.04,-1.57l-0.09,-0.09l-1.98,-1.23l-0.27,-0.02l-0.93,0.39l-0.72,-1.2l-0.09,-1.07l-0.06,-0.16l-1.33,-1.75l0.83,-0.94l0.07,-0.24l-0.21,-1.64l0.31,-1.43l-0.17,-1.29l0.43,-2.26l-0.15,-1.33l-0.73,-2.18l0.99,-0.52l0.16,-0.21l0.22,-1.16l-0.22,-1.06l1.54,-0.95l0.81,-0.92l1.19,-0.78l0.14,-0.23l0.12,-1.76l2.57,0.84l0.16,0.01l0.99,-0.23l2.01,0.45l3.19,1.2l1.12,2.36l0.2,0.16l2.24,0.53l3.5,1.14l2.65,1.36l0.29,-0.01l1.22,-0.71l1.27,-1.32l0.07,-0.29l-0.55,-2.0l0.69,-1.19l1.7,-1.23l1.61,-0.35l3.2,0.54l0.78,1.14l0.24,0.13l0.85,0.01l0.84,0.47l2.35,0.31l0.42,0.63l-0.79,1.16l-0.04,0.26l0.35,1.08l-0.61,1.6l-0.0,0.2l0.73,2.16l0.0,24.24l-2.58,0.01l-0.3,0.29l-0.02,0.62l-19.55,-9.83l-0.28,0.01l-2.53,1.44Z\",\n \"name\": \"Libya\"\n },\n \"AE\": {\n \"path\": \"M550.59,223.8l0.12,0.08l1.92,-0.41l3.54,0.15l0.23,-0.09l1.71,-1.79l1.86,-1.7l1.31,-1.36l0.26,0.5l0.28,1.72l-0.93,0.01l-0.3,0.26l-0.21,1.73l0.11,0.27l0.08,0.06l-0.7,0.32l-0.17,0.27l-0.01,0.99l-0.68,1.02l-0.05,0.15l-0.06,0.96l-0.32,0.36l-7.19,-1.27l-0.79,-2.22Z\",\n \"name\": \"United Arab Emirates\"\n },\n \"VE\": {\n \"path\": \"M240.66,256.5l0.65,0.91l-0.03,1.13l-1.05,1.39l-0.03,0.31l0.95,2.0l0.32,0.17l1.08,-0.16l0.24,-0.21l0.56,-1.83l-0.06,-0.29l-0.71,-0.81l-0.1,-1.58l2.9,-0.96l0.19,-0.37l-0.29,-1.02l0.45,-0.41l0.72,1.43l0.26,0.16l1.65,0.04l1.46,1.27l0.08,0.72l0.3,0.27l2.28,0.02l2.55,-0.25l1.34,1.06l0.14,0.06l1.92,0.31l0.2,-0.03l1.4,-0.79l0.15,-0.25l0.02,-0.36l2.82,-0.14l1.17,-0.01l-0.41,0.14l-0.14,0.46l0.86,1.19l0.22,0.12l1.93,0.18l1.73,1.13l0.37,1.9l0.31,0.24l1.21,-0.05l0.52,0.32l-1.63,1.21l-0.11,0.17l-0.22,0.92l0.07,0.27l0.63,0.69l-0.31,0.24l-1.48,0.39l-0.22,0.3l0.04,1.03l-0.59,0.6l-0.01,0.41l1.67,1.87l0.23,0.48l-0.72,0.76l-2.71,0.91l-1.78,0.39l-0.13,0.06l-0.6,0.49l-1.84,-0.58l-1.89,-0.33l-0.18,0.03l-0.47,0.23l-0.02,0.53l0.96,0.56l-0.08,1.58l0.35,1.58l0.26,0.23l1.91,0.19l0.02,0.07l-1.54,0.62l-0.18,0.2l-0.25,0.92l-0.88,0.35l-1.85,0.58l-0.16,0.13l-0.4,0.64l-1.66,0.14l-1.22,-1.18l-0.79,-2.52l-0.67,-0.88l-0.66,-0.43l0.99,-0.98l0.09,-0.26l-0.09,-0.56l-0.08,-0.16l-0.66,-0.69l-0.47,-1.54l0.18,-1.67l0.55,-0.85l0.45,-1.35l-0.15,-0.36l-0.89,-0.43l-0.19,-0.02l-1.39,0.28l-1.76,-0.13l-0.92,0.23l-1.64,-2.01l-0.17,-0.1l-1.54,-0.33l-3.05,0.23l-0.5,-0.73l-0.15,-0.12l-0.45,-0.15l-0.05,-0.28l0.28,-0.86l0.01,-0.15l-0.2,-1.01l-0.08,-0.15l-0.5,-0.5l-0.3,-1.08l-0.25,-0.22l-0.89,-0.12l0.54,-1.18l0.29,-1.73l0.66,-0.85l0.94,-0.7l0.09,-0.11l0.3,-0.6Z\",\n \"name\": \"Venezuela\"\n },\n \"AF\": {\n \"path\": \"M574.42,192.1l2.24,0.95l0.18,0.02l1.89,-0.38l0.22,-0.18l0.46,-1.14l1.82,-0.4l1.5,-0.91l0.14,-0.19l0.46,-2.12l1.93,-0.51l0.2,-0.18l0.26,-0.68l0.87,0.57l0.13,0.05l0.79,0.09l1.35,0.02l1.83,0.59l0.75,0.34l0.26,-0.01l1.66,-0.85l0.7,0.46l0.42,-0.09l0.72,-1.17l1.32,0.05l0.23,-0.1l0.39,-0.43l0.07,-0.14l0.24,-1.08l0.86,-0.81l0.94,0.46l-0.2,0.64l0.23,0.38l0.49,0.09l-0.21,2.15l0.09,0.25l0.99,0.94l0.38,0.03l0.83,-0.57l1.06,-0.27l0.12,-0.06l1.46,-1.21l1.63,0.2l2.4,0.0l0.17,0.32l-1.12,0.25l-1.23,0.52l-2.86,0.33l-2.69,0.6l-0.13,0.06l-1.46,1.25l-0.07,0.36l0.58,1.18l0.25,1.21l-1.13,1.08l-0.09,0.25l0.09,0.98l-0.53,0.79l-2.22,-0.08l-0.28,0.44l0.83,1.57l-1.3,0.58l-0.13,0.11l-1.06,1.69l-0.05,0.18l0.13,1.51l-0.73,0.58l-0.78,-0.22l-0.14,-0.01l-1.91,0.36l-0.23,0.19l-0.2,0.57l-1.65,-0.0l-0.22,0.1l-1.4,1.56l-0.08,0.19l-0.08,2.13l-2.99,1.05l-1.67,-0.23l-0.27,0.1l-0.39,0.46l-1.43,-0.31l-2.43,0.4l-3.69,-1.23l1.96,-2.15l0.08,-0.24l-0.21,-1.78l-0.23,-0.26l-1.69,-0.42l-0.19,-1.62l-0.77,-2.08l0.98,-1.41l-0.14,-0.45l-0.82,-0.31l0.6,-1.79l0.93,-3.21Z\",\n \"name\": \"Afghanistan\"\n },\n \"IQ\": {\n \"path\": \"M534.42,190.89l0.13,0.14l1.5,0.78l0.15,1.34l-1.13,0.87l-0.11,0.16l-0.58,2.2l0.04,0.24l1.73,2.67l0.12,0.1l2.99,1.49l1.18,1.94l-0.39,1.89l0.29,0.36l0.5,-0.0l0.02,1.17l0.08,0.2l0.83,0.86l-2.36,-0.29l-0.29,0.13l-1.74,2.49l-4.4,-0.21l-7.03,-5.49l-3.73,-1.94l-2.92,-0.74l-0.89,-3.0l5.33,-2.81l0.15,-0.19l0.95,-3.43l-0.2,-2.0l1.19,-0.61l0.11,-0.09l1.23,-1.73l0.92,-0.38l2.75,0.35l0.81,0.68l0.31,0.05l0.94,-0.38l1.5,3.17Z\",\n \"name\": \"Iraq\"\n },\n \"IS\": {\n \"path\": \"M384.26,87.96l-0.51,2.35l0.08,0.28l2.61,2.58l-2.99,2.83l-7.16,2.72l-2.08,0.7l-9.51,-1.71l1.89,-1.36l-0.07,-0.53l-4.4,-1.59l3.33,-0.59l0.25,-0.32l-0.11,-1.2l-0.25,-0.27l-4.82,-0.88l1.38,-2.2l3.54,-0.57l3.8,2.74l0.33,0.01l3.68,-2.18l3.02,1.12l0.25,-0.02l4.01,-2.18l3.72,0.27Z\",\n \"name\": \"Iceland\"\n },\n \"IR\": {\n \"path\": \"M556.2,187.5l2.05,-0.52l0.13,-0.07l1.69,-1.57l1.55,0.08l0.15,-0.03l1.02,-0.5l1.64,0.25l2.82,1.48l1.91,0.3l2.8,2.49l0.18,0.08l1.61,0.09l0.19,2.09l-1.0,3.47l-0.69,2.04l0.18,0.38l0.73,0.28l-0.85,1.22l-0.04,0.28l0.81,2.19l0.19,1.72l0.23,0.26l1.69,0.42l0.17,1.43l-2.18,2.39l-0.01,0.4l1.22,1.42l1.0,1.62l0.12,0.11l2.23,1.11l0.06,2.2l0.2,0.27l1.03,0.38l0.14,0.83l-3.38,1.3l-0.18,0.19l-0.87,2.85l-4.44,-0.76l-2.75,-0.62l-2.64,-0.32l-1.01,-3.11l-0.17,-0.19l-1.2,-0.48l-0.18,-0.01l-1.99,0.51l-2.42,1.25l-2.89,-0.84l-2.48,-2.03l-2.41,-0.79l-1.61,-2.47l-1.84,-3.63l-0.36,-0.15l-1.22,0.4l-1.48,-0.84l-0.37,0.06l-0.72,0.82l-1.08,-1.12l-0.02,-1.35l-0.3,-0.29l-0.43,0.0l0.34,-1.64l-0.04,-0.22l-1.29,-2.11l-0.12,-0.11l-3.0,-1.49l-1.62,-2.49l0.52,-1.98l1.18,-0.92l0.11,-0.27l-0.19,-1.66l-0.16,-0.23l-1.55,-0.81l-1.58,-3.33l-1.3,-2.2l0.41,-0.75l0.03,-0.21l-0.73,-3.12l1.2,-0.59l0.35,0.9l1.26,1.35l0.15,0.09l1.81,0.39l0.91,-0.09l0.15,-0.06l2.9,-2.13l0.7,-0.16l0.48,0.56l-0.75,1.26l0.05,0.37l1.56,1.53l0.28,0.08l0.37,-0.09l0.7,1.89l0.21,0.19l2.31,0.59l1.69,1.4l0.15,0.07l3.66,0.49l3.91,-0.76l0.23,-0.19l0.19,-0.52Z\",\n \"name\": \"Iran\"\n },\n \"AM\": {\n \"path\": \"M530.51,176.08l2.91,-0.39l0.41,0.63l0.11,0.1l0.66,0.36l-0.32,0.47l0.07,0.41l1.1,0.84l-0.53,0.7l0.06,0.42l1.06,0.8l1.01,0.44l0.04,1.56l-0.44,0.04l-0.88,-1.46l0.01,-0.37l-0.3,-0.31l-0.98,0.01l-0.65,-0.69l-0.26,-0.09l-0.38,0.06l-0.97,-0.82l-1.64,-0.65l0.2,-1.2l-0.02,-0.16l-0.28,-0.69Z\",\n \"name\": \"Armenia\"\n },\n \"IT\": {\n \"path\": \"M451.68,158.58l0.2,0.16l3.3,0.75l-0.22,1.26l0.02,0.18l0.35,0.78l-1.4,-0.32l-0.21,0.03l-2.04,1.1l-0.16,0.29l0.13,1.47l-0.29,0.82l0.02,0.24l0.82,1.57l0.1,0.11l2.28,1.5l1.29,2.53l2.79,2.43l0.2,0.07l1.83,-0.02l0.31,0.34l-0.46,0.39l0.06,0.5l4.06,1.97l2.06,1.49l0.17,0.36l-0.24,0.53l-1.08,-1.07l-0.15,-0.08l-2.18,-0.49l-0.33,0.15l-1.05,1.91l0.11,0.4l1.63,0.98l-0.22,1.12l-0.84,0.14l-0.22,0.15l-1.27,2.38l-0.54,0.12l0.01,-0.47l0.48,-1.46l0.5,-0.58l0.03,-0.35l-0.97,-1.69l-0.76,-1.48l-0.17,-0.15l-0.94,-0.33l-0.68,-1.18l-0.16,-0.13l-1.53,-0.52l-1.03,-1.14l-0.19,-0.1l-1.78,-0.19l-1.88,-1.3l-2.27,-1.94l-1.64,-1.68l-0.76,-2.94l-0.21,-0.21l-1.22,-0.35l-2.01,-1.0l-0.24,-0.01l-1.15,0.42l-0.11,0.07l-1.38,1.36l-0.5,0.11l0.19,-0.87l-0.21,-0.35l-1.19,-0.34l-0.56,-2.06l0.76,-0.82l0.03,-0.36l-0.68,-1.08l0.04,-0.31l0.68,0.42l0.19,0.04l1.21,-0.15l0.14,-0.06l1.18,-0.89l0.25,0.29l0.25,0.1l1.19,-0.1l0.25,-0.18l0.45,-1.04l1.61,0.34l0.19,-0.02l1.1,-0.53l0.17,-0.22l0.15,-0.95l1.19,0.35l0.35,-0.16l0.23,-0.47l2.11,-0.47l0.45,0.89ZM459.35,184.63l-0.71,1.81l0.0,0.23l0.33,0.79l-0.37,1.03l-1.6,-0.91l-1.33,-0.34l-3.24,-1.36l0.23,-0.99l2.73,0.24l3.95,-0.5ZM443.95,175.91l1.26,1.77l-0.31,3.47l-0.82,-0.13l-0.26,0.08l-0.83,0.79l-0.64,-0.52l-0.1,-3.42l-0.44,-1.34l0.91,0.1l0.21,-0.06l1.01,-0.74Z\",\n \"name\": \"Italy\"\n },\n \"VN\": {\n \"path\": \"M690.8,230.21l-2.86,1.93l-2.09,2.46l-0.06,0.11l-0.55,1.8l0.04,0.26l4.26,6.1l2.31,1.63l1.46,1.97l1.12,4.62l-0.32,4.3l-1.97,1.57l-2.85,1.62l-2.09,2.14l-2.83,2.13l-0.67,-1.19l0.65,-1.58l-0.09,-0.35l-1.47,-1.14l1.67,-0.79l2.57,-0.18l0.22,-0.47l-0.89,-1.24l3.88,-1.8l0.17,-0.24l0.31,-3.05l-0.01,-0.13l-0.56,-1.63l0.44,-2.48l-0.01,-0.15l-0.63,-1.81l-0.08,-0.12l-1.87,-1.77l-3.64,-5.3l-0.11,-0.1l-2.68,-1.39l0.45,-0.59l1.53,-0.65l0.16,-0.39l-0.97,-2.27l-0.27,-0.18l-2.89,-0.02l-1.04,-2.21l-1.28,-1.83l0.96,-0.46l1.97,0.01l2.43,-0.3l0.13,-0.05l1.95,-1.29l1.04,0.85l0.13,0.06l1.98,0.42l-0.32,1.21l0.09,0.3l1.19,1.07l0.12,0.07l1.88,0.51Z\",\n \"name\": \"Vietnam\"\n },\n \"AR\": {\n \"path\": \"M258.11,341.34l1.4,1.81l0.51,-0.06l0.89,-1.94l2.51,0.1l0.36,0.49l4.6,4.31l0.15,0.08l1.99,0.39l3.01,1.93l2.5,1.01l0.28,0.91l-2.4,3.97l0.17,0.44l2.57,0.74l2.81,0.41l2.09,-0.44l0.14,-0.07l2.27,-2.06l0.09,-0.17l0.38,-2.2l0.88,-0.36l1.05,1.29l-0.04,1.88l-1.98,1.4l-1.72,1.13l-2.84,2.65l-3.34,3.73l-0.07,0.12l-0.63,2.22l-0.67,2.85l0.02,2.73l-0.47,0.54l-0.07,0.17l-0.36,3.28l0.12,0.27l3.03,2.32l-0.31,1.78l0.11,0.29l1.44,1.15l-0.11,1.17l-2.32,3.57l-3.59,1.51l-4.95,0.6l-2.72,-0.29l-0.32,0.38l0.5,1.67l-0.49,2.13l0.01,0.16l0.4,1.29l-1.27,0.88l-2.41,0.39l-2.33,-1.05l-0.31,0.04l-0.97,0.78l-0.11,0.27l0.35,2.98l0.16,0.23l1.69,0.91l0.31,-0.02l1.08,-0.75l0.46,0.96l-2.1,0.88l-2.01,1.89l-0.09,0.18l-0.36,3.05l-0.51,1.42l-2.16,0.01l-0.19,0.07l-1.96,1.59l-0.1,0.15l-0.72,2.34l0.08,0.31l2.46,2.31l0.13,0.07l2.09,0.56l-0.74,2.45l-2.86,1.75l-0.12,0.14l-1.59,3.71l-2.2,1.24l-0.1,0.09l-1.03,1.54l-0.04,0.23l0.81,3.45l0.06,0.13l1.13,1.32l-2.59,-0.57l-5.89,-0.44l-0.92,-1.73l0.05,-2.4l-0.34,-0.3l-1.49,0.19l-0.72,-0.98l-0.2,-3.21l1.79,-1.33l0.1,-0.13l0.79,-2.04l0.02,-0.16l-0.27,-1.52l1.31,-2.69l0.91,-4.15l-0.23,-1.72l0.91,-0.49l0.15,-0.33l-0.27,-1.16l-0.15,-0.2l-0.87,-0.46l0.65,-1.01l-0.04,-0.37l-1.06,-1.09l-0.54,-3.2l0.83,-0.51l0.14,-0.29l-0.42,-3.6l0.58,-2.98l0.64,-2.5l1.41,-1.0l0.12,-0.32l-0.75,-2.8l-0.01,-2.48l1.81,-1.78l0.09,-0.22l-0.06,-2.3l1.39,-2.69l0.03,-0.14l0.01,-2.58l-0.11,-0.24l-0.57,-0.45l-1.1,-4.59l1.49,-2.73l0.04,-0.17l-0.23,-2.59l0.86,-2.38l1.6,-2.48l1.74,-1.65l0.04,-0.39l-0.64,-0.89l0.42,-0.7l0.04,-0.16l-0.08,-4.26l2.55,-1.23l0.16,-0.18l0.86,-2.75l-0.01,-0.22l-0.22,-0.48l1.84,-2.1l3.0,0.59ZM256.77,438.98l-2.1,0.15l-1.18,-1.14l-0.19,-0.08l-1.53,-0.09l-2.38,-0.0l-0.0,-6.28l0.4,0.65l1.25,2.55l0.11,0.12l3.26,2.07l3.19,0.8l-0.82,1.26Z\",\n \"name\": \"Argentina\"\n },\n \"AU\": {\n \"path\": \"M705.55,353.06l0.09,0.09l0.37,0.05l0.13,-0.35l-0.57,-1.69l0.48,0.3l0.71,0.99l0.34,0.11l0.2,-0.29l-0.04,-1.37l-0.04,-0.14l-1.22,-2.07l-0.28,-0.9l-0.51,-0.69l0.24,-1.33l0.52,-0.7l0.34,-1.32l0.01,-0.13l-0.25,-1.44l0.51,-0.94l0.1,1.03l0.23,0.26l0.32,-0.14l1.01,-1.72l1.94,-0.84l1.27,-1.14l1.84,-0.92l1.0,-0.18l0.6,0.28l0.26,-0.0l1.94,-0.96l1.48,-0.28l0.19,-0.13l0.32,-0.49l0.51,-0.18l1.42,0.05l2.63,-0.76l0.11,-0.06l1.36,-1.15l0.08,-0.1l0.61,-1.33l1.42,-1.27l0.1,-0.19l0.11,-1.03l0.06,-1.32l1.39,-1.74l0.85,1.79l0.4,0.14l1.07,-0.51l0.11,-0.45l-0.77,-1.05l0.53,-0.84l0.86,0.43l0.43,-0.22l0.29,-1.85l1.29,-1.19l0.6,-0.98l1.16,-0.4l0.2,-0.27l0.02,-0.34l0.74,0.2l0.38,-0.27l0.03,-0.44l1.98,-0.61l1.7,1.08l1.36,1.48l0.22,0.1l1.55,0.02l1.57,0.24l0.33,-0.4l-0.48,-1.27l1.09,-1.86l1.06,-0.63l0.1,-0.42l-0.28,-0.46l0.93,-1.24l1.36,-0.8l1.16,0.27l0.14,0.0l2.1,-0.48l0.23,-0.3l-0.05,-1.3l-0.18,-0.26l-1.08,-0.49l0.44,-0.12l1.52,0.58l1.39,1.06l2.11,0.65l0.19,-0.0l0.59,-0.21l1.44,0.72l0.27,0.0l1.37,-0.68l0.84,0.2l0.26,-0.06l0.37,-0.3l0.82,0.89l-0.56,1.14l-0.84,0.91l-0.75,0.07l-0.26,0.38l0.26,0.9l-0.67,1.15l-0.88,1.24l-0.05,0.25l0.18,0.72l0.12,0.17l1.99,1.42l1.96,0.84l1.25,0.86l1.8,1.51l0.19,0.07l0.63,-0.0l1.15,0.58l0.34,0.7l0.17,0.15l2.39,0.88l0.24,-0.02l1.65,-0.88l0.14,-0.16l0.49,-1.37l0.52,-1.19l0.31,-1.39l0.75,-2.02l0.01,-0.19l-0.33,-1.16l0.16,-0.67l0.0,-0.13l-0.28,-1.41l0.3,-1.78l0.42,-0.45l0.05,-0.33l-0.33,-0.73l0.56,-1.25l0.48,-1.39l0.07,-0.69l0.58,-0.59l0.48,0.84l0.17,1.53l0.17,0.24l0.47,0.23l0.09,0.9l0.05,0.14l0.87,1.23l0.17,1.33l-0.09,0.89l0.03,0.15l0.9,2.0l0.43,0.13l1.38,-0.83l0.71,0.92l1.06,0.88l-0.22,0.96l0.0,0.14l0.53,2.2l0.38,1.3l0.15,0.18l0.52,0.26l0.62,2.01l-0.23,1.27l0.02,0.18l0.81,1.76l0.14,0.14l2.69,1.35l3.21,2.21l-0.2,0.4l0.04,0.34l1.39,1.6l0.95,2.78l0.43,0.16l0.79,-0.46l0.85,0.96l0.39,0.05l0.22,-0.15l0.36,2.33l0.09,0.18l1.78,1.63l1.16,1.01l1.9,2.1l0.67,2.05l0.06,1.47l-0.17,1.64l0.03,0.17l1.16,2.22l-0.14,2.28l-0.43,1.24l-0.68,2.44l0.04,1.63l-0.48,1.92l-1.06,2.43l-1.79,1.32l-0.1,0.12l-0.91,2.15l-0.82,1.37l-0.76,2.47l-0.98,1.46l-0.63,2.14l-0.33,2.02l0.1,0.82l-1.21,0.85l-2.71,0.1l-0.13,0.03l-2.31,1.19l-1.21,1.17l-1.34,1.11l-1.89,-1.18l-1.33,-0.46l0.32,-1.24l-0.4,-0.35l-1.46,0.61l-2.06,1.98l-1.99,-0.73l-1.43,-0.46l-1.45,-0.22l-2.32,-0.81l-1.51,-1.67l-0.45,-2.11l-0.6,-1.5l-0.07,-0.11l-1.23,-1.16l-0.16,-0.08l-1.96,-0.28l0.59,-0.99l0.03,-0.24l-0.61,-2.1l-0.54,-0.08l-1.16,1.85l-1.23,0.29l0.73,-0.88l0.06,-0.12l0.37,-1.57l0.93,-1.33l0.05,-0.2l-0.2,-2.07l-0.53,-0.17l-2.01,2.35l-1.52,0.94l-0.12,0.14l-0.82,1.93l-1.5,-0.9l0.07,-1.32l-0.06,-0.2l-1.57,-2.04l-1.15,-0.92l0.3,-0.41l-0.1,-0.44l-3.21,-1.69l-0.13,-0.03l-1.69,-0.08l-2.35,-1.31l-0.16,-0.04l-4.55,0.27l-3.24,0.99l-2.8,0.91l-2.33,-0.18l-0.17,0.03l-2.63,1.41l-2.14,0.64l-0.2,0.19l-0.47,1.42l-0.8,0.99l-1.99,0.06l-1.55,0.24l-2.27,-0.5l-1.79,0.3l-1.71,0.13l-0.19,0.09l-1.38,1.39l-0.58,-0.1l-0.21,0.04l-1.26,0.8l-1.13,0.85l-1.72,-0.1l-1.6,-0.0l-2.58,-1.76l-1.21,-0.49l0.04,-1.19l1.04,-0.32l0.16,-0.12l0.42,-0.64l0.05,-0.19l-0.09,-0.97l0.3,-2.0l-0.28,-1.64l-1.34,-2.84l-0.39,-1.49l0.1,-1.51l-0.04,-0.17l-0.96,-1.72l-0.06,-0.73l-0.09,-0.19l-1.04,-1.01l-0.3,-2.02l-0.05,-0.12l-1.23,-1.83ZM784.95,393.35l2.39,1.01l0.2,0.01l3.26,-0.96l1.19,0.16l0.16,3.19l-0.78,0.95l-0.07,0.16l-0.19,1.83l-0.43,-0.41l-0.44,0.03l-1.61,1.96l-0.4,-0.12l-1.38,-0.09l-1.43,-2.42l-0.37,-2.03l-1.4,-2.53l0.04,-0.94l1.27,0.2Z\",\n \"name\": \"Australia\"\n },\n \"IL\": {\n \"path\": \"M509.04,199.22l0.71,0.0l0.27,-0.17l0.15,-0.33l0.19,-0.01l0.02,0.73l-0.27,0.34l0.02,0.08l-0.32,0.62l-0.65,-0.27l-0.41,0.19l-0.52,1.85l0.16,0.35l0.14,0.07l-0.17,0.1l-0.14,0.21l-0.11,0.73l0.39,0.33l0.81,-0.26l0.03,0.64l-0.97,3.43l-1.28,-3.67l0.62,-0.78l-0.03,-0.41l0.58,-1.16l0.5,-2.07l0.27,-0.54Z\",\n \"name\": \"Israel\"\n },\n \"IN\": {\n \"path\": \"M615.84,192.58l2.4,2.97l-0.24,2.17l0.05,0.2l0.94,1.35l-0.06,0.97l-1.46,-0.3l-0.35,0.36l0.7,3.06l0.12,0.18l2.46,1.75l3.11,1.72l-1.23,0.96l-0.1,0.13l-0.97,2.55l0.16,0.38l2.41,1.02l2.37,1.33l3.27,1.52l3.43,0.37l1.37,1.3l0.17,0.08l1.92,0.25l3.0,0.62l2.15,-0.04l0.28,-0.22l0.29,-1.06l0.0,-0.13l-0.32,-1.66l0.16,-0.94l1.0,-0.37l0.23,2.28l0.18,0.24l2.28,1.02l0.2,0.02l1.52,-0.41l2.06,0.18l2.08,-0.08l0.29,-0.27l0.18,-1.66l-0.1,-0.26l-0.53,-0.44l1.38,-0.23l0.15,-0.07l2.26,-2.0l2.75,-1.65l1.97,0.63l0.25,-0.03l1.54,-0.99l0.89,1.28l-0.72,0.97l0.2,0.48l2.49,0.37l0.11,0.61l-0.69,0.39l-0.15,0.3l0.15,1.22l-1.36,-0.37l-0.23,0.03l-3.24,1.86l-0.15,0.28l0.07,1.44l-1.33,2.16l-0.04,0.13l-0.12,1.24l-0.98,1.91l-1.72,-0.53l-0.39,0.28l-0.09,2.66l-0.52,0.83l-0.04,0.23l0.21,0.89l-0.71,0.36l-1.21,-3.85l-0.29,-0.21l-0.69,0.01l-0.29,0.23l-0.28,1.17l-0.84,-0.84l0.6,-1.17l0.97,-0.13l0.23,-0.16l1.15,-2.25l-0.18,-0.42l-1.54,-0.47l-2.3,0.04l-2.13,-0.33l-0.19,-1.63l-0.26,-0.26l-1.13,-0.13l-1.93,-1.13l-0.42,0.13l-0.88,1.82l0.08,0.37l1.47,1.15l-1.21,0.77l-0.1,0.1l-0.56,0.97l0.13,0.42l1.31,0.61l-0.36,1.35l0.01,0.2l0.85,1.95l0.37,2.05l-0.26,0.68l-1.55,-0.02l-3.09,0.54l-0.25,0.32l0.13,1.84l-1.21,1.4l-3.64,1.79l-2.79,3.04l-1.86,1.61l-2.48,1.68l-0.13,0.25l-0.0,1.0l-1.07,0.55l-2.21,0.9l-1.13,0.13l-0.25,0.19l-0.75,1.96l-0.02,0.15l0.52,3.31l0.13,2.03l-1.03,2.35l-0.03,0.12l-0.01,4.03l-1.02,0.1l-0.23,0.15l-1.14,1.93l0.04,0.36l0.44,0.48l-1.83,0.57l-0.18,0.15l-0.81,1.65l-0.74,0.53l-2.14,-2.12l-1.14,-3.47l-0.96,-2.57l-0.9,-1.26l-1.3,-2.38l-0.61,-3.14l-0.44,-1.62l-2.29,-3.56l-1.03,-4.94l-0.74,-3.29l0.01,-3.12l-0.49,-2.51l-0.41,-0.22l-3.56,1.53l-1.59,-0.28l-2.96,-2.87l0.94,-0.74l0.06,-0.41l-0.74,-1.03l-2.73,-2.1l1.35,-1.43l5.38,0.01l0.29,-0.36l-0.5,-2.29l-0.09,-0.15l-1.33,-1.28l-0.27,-1.96l-0.12,-0.2l-1.36,-1.0l2.42,-2.48l2.77,0.2l0.24,-0.1l2.62,-2.85l1.59,-2.8l2.41,-2.74l0.07,-0.2l-0.04,-1.82l2.01,-1.51l-0.01,-0.49l-1.95,-1.33l-0.83,-1.81l-0.82,-2.27l0.98,-0.97l3.64,0.66l2.89,-0.42l0.17,-0.08l2.18,-2.15Z\",\n \"name\": \"India\"\n },\n \"TZ\": {\n \"path\": \"M505.77,287.58l0.36,0.23l8.95,5.03l0.15,1.3l0.13,0.21l3.4,2.37l-1.07,2.88l-0.02,0.14l0.15,1.42l0.15,0.23l1.47,0.84l0.05,0.42l-0.66,1.44l-0.02,0.18l0.13,0.72l-0.16,1.16l0.03,0.19l0.87,1.57l1.03,2.48l0.12,0.14l0.53,0.32l-1.59,1.18l-2.64,0.95l-1.45,-0.04l-0.2,0.07l-0.81,0.69l-1.64,0.06l-0.68,0.3l-2.9,-0.69l-1.71,0.17l-0.65,-3.18l-0.05,-0.12l-1.35,-1.88l-0.19,-0.12l-2.41,-0.46l-1.38,-0.74l-1.63,-0.44l-0.96,-0.41l-0.95,-0.58l-1.31,-3.09l-1.47,-1.46l-0.45,-1.31l0.24,-1.34l-0.39,-1.99l0.71,-0.08l0.18,-0.09l0.91,-0.91l0.98,-1.31l0.59,-0.5l0.11,-0.24l-0.02,-0.81l-0.08,-0.2l-0.47,-0.5l-0.1,-0.67l0.51,-0.23l0.18,-0.25l0.14,-1.47l-0.05,-0.2l-0.76,-1.09l0.45,-0.15l2.71,0.03l5.01,-0.19Z\",\n \"name\": \"Tanzania\"\n },\n \"AZ\": {\n \"path\": \"M539.36,175.66l0.16,0.09l1.11,0.2l0.32,-0.15l0.4,-0.71l1.22,-0.99l1.11,1.33l1.26,2.09l0.22,0.14l1.06,0.13l0.28,0.29l-1.46,0.17l-0.26,0.24l-0.43,2.26l-0.39,0.92l-0.85,0.63l-0.12,0.25l0.06,1.2l-0.22,0.05l-1.28,-1.25l0.74,-1.25l-0.03,-0.35l-0.74,-0.86l-0.3,-0.1l-1.05,0.27l-2.49,1.82l-0.04,-1.46l-0.18,-0.27l-1.09,-0.47l-0.8,-0.6l0.53,-0.7l-0.06,-0.42l-1.11,-0.84l0.34,-0.51l-0.11,-0.43l-0.89,-0.48l-0.33,-0.49l0.25,-0.2l1.78,0.81l1.35,0.18l0.25,-0.09l0.34,-0.35l0.02,-0.39l-1.04,-1.36l0.28,-0.18l0.49,0.07l1.65,1.74ZM533.53,180.16l0.63,0.67l0.22,0.09l0.8,-0.0l0.04,0.31l0.66,1.09l-0.94,-0.21l-1.16,-1.24l-0.25,-0.71Z\",\n \"name\": \"Azerbaijan\"\n },\n \"IE\": {\n \"path\": \"M405.17,135.35l0.36,2.16l-1.78,2.84l-4.28,1.91l-3.02,-0.43l1.81,-3.13l0.02,-0.26l-1.23,-3.26l3.24,-2.56l1.54,-1.32l0.37,1.33l-0.49,1.77l0.3,0.38l1.49,-0.05l1.68,0.63Z\",\n \"name\": \"Ireland\"\n },\n \"ID\": {\n \"path\": \"M756.56,287.86l0.69,4.02l0.15,0.21l2.59,1.5l0.39,-0.07l2.05,-2.61l2.75,-1.45l2.09,-0.0l2.08,0.85l1.85,0.89l2.52,0.46l0.08,15.44l-1.72,-1.6l-0.15,-0.07l-2.54,-0.51l-0.29,0.1l-0.53,0.62l-2.53,0.06l0.78,-1.51l1.48,-0.66l0.17,-0.34l-0.65,-2.74l-1.23,-2.19l-0.14,-0.13l-4.85,-2.13l-2.09,-0.23l-3.7,-2.28l-0.41,0.1l-0.67,1.11l-0.63,0.14l-0.41,-0.67l-0.01,-1.01l-0.14,-0.25l-1.39,-0.89l2.05,-0.69l1.73,0.05l0.29,-0.39l-0.21,-0.66l-0.29,-0.21l-3.5,-0.0l-0.9,-1.36l-0.19,-0.13l-2.14,-0.44l-0.65,-0.76l2.86,-0.51l1.28,-0.79l3.75,0.96l0.32,0.76ZM758.01,300.37l-0.79,1.04l-0.14,-1.07l0.4,-0.81l0.29,-0.47l0.24,0.31l-0.0,1.0ZM747.45,292.9l0.48,1.02l-1.45,-0.69l-2.09,-0.21l-1.45,0.16l-1.28,-0.07l0.35,-0.81l2.86,-0.1l2.58,0.68ZM741.15,285.69l-0.16,-0.25l-0.72,-3.08l0.47,-1.86l0.35,-0.38l0.1,0.73l0.25,0.26l1.28,0.19l0.18,0.78l-0.11,1.8l-0.96,-0.18l-0.35,0.22l-0.38,1.52l0.05,0.24ZM741.19,285.75l0.76,0.97l-0.11,0.05l-0.65,-1.02ZM739.18,293.52l-0.61,0.54l-1.44,-0.38l-0.25,-0.55l1.93,-0.09l0.36,0.48ZM728.4,295.87l-0.27,-0.07l-2.26,0.89l-0.37,-0.41l0.27,-0.8l-0.09,-0.33l-1.68,-1.37l0.17,-2.29l-0.42,-0.3l-1.67,0.76l-0.17,0.29l0.21,2.92l0.09,3.34l-1.22,0.28l-0.78,-0.54l0.65,-2.1l0.01,-0.14l-0.39,-2.42l-0.29,-0.25l-0.86,-0.02l-0.63,-1.4l0.99,-1.61l0.35,-1.97l1.24,-3.73l0.49,-0.96l1.95,-1.7l1.86,0.69l3.16,0.35l2.92,-0.1l0.17,-0.06l2.24,-1.65l0.11,0.14l-1.8,2.22l-1.72,0.44l-2.41,-0.48l-4.21,0.13l-2.19,0.36l-0.25,0.24l-0.36,1.9l0.08,0.27l2.24,2.23l0.4,0.02l1.29,-1.08l3.19,-0.58l-0.19,0.06l-1.04,1.4l-2.13,0.94l-0.12,0.45l2.26,3.06l-0.37,0.69l0.03,0.32l1.51,1.95ZM728.48,295.97l0.59,0.76l-0.02,1.37l-1.0,0.55l-0.64,-0.58l1.09,-1.84l-0.02,-0.26ZM728.64,286.95l0.79,-0.14l-0.07,0.39l-0.72,-0.24ZM732.38,310.1l-1.89,0.49l-0.06,-0.06l0.17,-0.64l1.0,-1.42l2.14,-0.87l0.1,0.2l0.04,0.58l-1.49,1.72ZM728.26,305.71l-0.17,0.63l-3.53,0.67l-3.02,-0.28l-0.0,-0.42l1.66,-0.44l1.47,0.71l0.16,0.03l1.75,-0.21l1.69,-0.69ZM722.98,310.33l-0.74,0.03l-2.52,-1.35l1.42,-0.3l1.19,0.7l0.72,0.63l-0.06,0.28ZM716.24,305.63l0.66,0.49l0.22,0.06l1.35,-0.18l0.31,0.53l-4.18,0.77l-0.8,-0.01l0.51,-0.86l1.2,-0.02l0.24,-0.12l0.49,-0.65ZM715.84,280.21l0.09,0.34l2.25,1.86l-2.25,0.22l-0.24,0.17l-0.84,1.71l-0.03,0.15l0.1,2.11l-2.27,1.62l-0.13,0.24l-0.06,2.46l-0.74,2.92l-0.02,-0.05l-0.39,-0.16l-2.62,1.04l-0.86,-1.33l-0.23,-0.14l-1.71,-0.14l-1.19,-0.76l-0.25,-0.03l-2.78,0.84l-0.79,-1.05l-0.26,-0.12l-1.61,0.13l-1.8,-0.25l-0.36,-3.13l-0.15,-0.23l-1.18,-0.65l-1.13,-2.02l-0.33,-2.1l0.27,-2.19l1.05,-1.17l0.28,1.12l0.1,0.16l1.71,1.41l0.28,0.05l1.55,-0.49l1.54,0.17l0.23,-0.07l1.4,-1.21l1.05,-0.19l2.3,0.68l0.16,0.0l2.04,-0.53l0.21,-0.19l1.26,-3.41l0.91,-0.82l0.09,-0.14l0.8,-2.64l2.63,0.0l1.71,0.33l-1.19,1.89l0.02,0.34l1.74,2.24l-0.37,1.0ZM692.67,302.0l0.26,0.19l4.8,0.25l0.28,-0.16l0.44,-0.83l4.29,1.12l0.85,1.52l0.23,0.15l3.71,0.45l2.37,1.15l-2.06,0.69l-2.77,-1.0l-2.25,0.07l-2.57,-0.18l-2.31,-0.45l-2.94,-0.97l-1.84,-0.25l-0.13,0.01l-0.97,0.29l-4.34,-0.98l-0.38,-0.94l-0.25,-0.19l-1.76,-0.14l1.31,-1.84l2.81,0.14l1.97,0.96l0.95,0.19l0.28,0.74ZM685.63,299.27l-2.36,0.04l-2.07,-2.05l-3.17,-2.02l-1.06,-1.5l-1.88,-2.02l-1.22,-1.85l-1.9,-3.49l-2.2,-2.11l-0.71,-2.08l-0.94,-1.99l-0.1,-0.12l-2.21,-1.54l-1.35,-2.17l-1.86,-1.39l-2.53,-2.68l-0.14,-0.81l1.22,0.08l3.76,0.47l2.16,2.4l1.94,1.7l1.37,1.04l2.35,2.67l0.22,0.1l2.44,0.04l1.99,1.62l1.42,2.06l0.09,0.09l1.67,1.0l-0.88,1.8l0.11,0.39l1.44,0.87l0.13,0.04l0.68,0.05l0.41,1.62l0.87,1.4l0.22,0.14l1.71,0.21l1.06,1.38l-0.61,3.04l-0.09,3.6Z\",\n \"name\": \"Indonesia\"\n },\n \"UA\": {\n \"path\": \"M500.54,141.42l0.9,0.13l0.27,-0.11l0.52,-0.62l0.68,0.13l2.43,-0.3l1.32,1.57l-0.45,0.48l-0.07,0.26l0.21,1.03l0.27,0.24l1.85,0.15l0.76,1.22l-0.05,0.55l0.2,0.31l3.18,1.15l0.18,0.01l1.75,-0.47l1.42,1.41l0.22,0.09l1.42,-0.03l3.44,0.99l0.02,0.65l-0.97,1.62l-0.03,0.24l0.52,1.67l-0.29,0.79l-2.24,0.22l-0.14,0.05l-1.29,0.89l-0.13,0.23l-0.07,1.16l-1.75,0.22l-0.12,0.04l-1.6,0.98l-2.27,0.16l-0.12,0.04l-2.16,1.17l-0.16,0.29l0.15,1.94l0.14,0.23l1.23,0.75l0.18,0.04l2.06,-0.15l-0.22,0.51l-2.67,0.54l-3.27,1.72l-1.0,-0.45l0.45,-1.19l-0.19,-0.39l-2.34,-0.78l0.15,-0.2l2.32,-1.0l0.09,-0.49l-0.73,-0.72l-0.15,-0.08l-3.69,-0.75l-0.14,-0.96l-0.35,-0.25l-2.32,0.39l-0.21,0.15l-0.91,1.7l-1.77,2.1l-0.93,-0.44l-0.24,-0.0l-1.05,0.45l-0.48,-0.25l0.13,-0.07l0.14,-0.15l0.43,-1.04l0.67,-0.97l0.04,-0.26l-0.1,-0.31l0.04,-0.02l0.11,0.19l0.24,0.15l1.48,0.09l0.78,-0.25l0.07,-0.53l-0.27,-0.19l0.09,-0.25l-0.08,-0.33l-0.81,-0.74l-0.34,-1.24l-0.14,-0.18l-0.73,-0.42l0.15,-0.87l-0.11,-0.29l-1.13,-0.86l-0.15,-0.06l-0.97,-0.11l-1.79,-0.97l-0.2,-0.03l-1.66,0.32l-0.13,0.06l-0.52,0.41l-0.95,-0.0l-0.23,0.11l-0.56,0.66l-1.74,0.29l-0.79,0.43l-1.01,-0.68l-0.16,-0.05l-1.57,-0.01l-1.52,-0.35l-0.23,0.04l-0.71,0.45l-0.09,-0.43l-0.13,-0.19l-1.18,-0.74l0.38,-1.02l0.53,-0.64l0.35,0.12l0.37,-0.41l-0.57,-1.29l2.1,-2.5l1.16,-0.36l0.2,-0.2l0.27,-0.92l-0.01,-0.2l-1.1,-2.52l0.79,-0.09l0.13,-0.05l1.3,-0.86l1.83,-0.07l2.48,0.26l2.84,0.8l1.91,0.06l0.88,0.45l0.29,-0.01l0.72,-0.44l0.49,0.58l0.25,0.11l2.2,-0.16l0.94,0.3l0.39,-0.26l0.15,-1.57l0.61,-0.59l2.01,-0.19Z\",\n \"name\": \"Ukraine\"\n },\n \"QA\": {\n \"path\": \"M548.47,221.47l-0.15,-1.72l0.59,-1.23l0.38,-0.16l0.54,0.6l0.04,1.4l-0.47,1.37l-0.41,0.11l-0.53,-0.37Z\",\n \"name\": \"Qatar\"\n },\n \"MZ\": {\n \"path\": \"M507.71,314.14l1.65,-0.18l2.96,0.7l0.2,-0.02l0.6,-0.29l1.68,-0.06l0.18,-0.07l0.8,-0.69l1.5,0.02l2.74,-0.98l1.74,-1.27l0.25,0.7l-0.1,2.47l0.31,2.27l0.1,3.97l0.42,1.24l-0.7,1.71l-0.94,1.73l-1.52,1.52l-5.06,2.21l-2.88,2.8l-1.01,0.51l-1.72,1.81l-0.99,0.58l-0.15,0.23l-0.21,1.86l0.04,0.19l1.17,1.95l0.47,1.47l0.03,0.74l0.39,0.28l0.05,-0.01l-0.06,2.13l-0.39,1.19l0.1,0.33l0.42,0.32l-0.28,0.83l-0.95,0.86l-2.03,0.88l-3.08,1.49l-1.1,0.99l-0.09,0.28l0.21,1.13l0.21,0.23l0.38,0.11l-0.14,0.89l-1.39,-0.02l-0.17,-0.94l-0.38,-1.23l-0.2,-0.89l0.44,-2.91l-0.01,-0.14l-0.65,-1.88l-1.15,-3.55l2.52,-2.85l0.68,-1.89l0.29,-0.18l0.14,-0.2l0.28,-1.53l-0.03,-0.19l-0.36,-0.7l0.1,-1.83l0.49,-1.84l-0.01,-3.26l-0.14,-0.25l-1.3,-0.83l-0.11,-0.04l-1.08,-0.17l-0.47,-0.55l-0.1,-0.08l-1.16,-0.54l-0.13,-0.03l-1.83,0.04l-0.32,-2.25l7.19,-1.99l1.32,1.12l0.29,0.06l0.55,-0.19l0.75,0.49l0.11,0.81l-0.49,1.11l-0.02,0.15l0.19,1.81l0.09,0.18l1.63,1.59l0.48,-0.1l0.72,-1.68l0.99,-0.49l0.17,-0.29l-0.21,-3.29l-0.04,-0.13l-1.11,-1.92l-0.9,-0.82l-0.21,-0.08l-0.62,0.03l-0.63,-2.98l0.61,-1.67Z\",\n \"name\": \"Mozambique\"\n }\n },\n \"height\": 440.7063107441331,\n \"projection\": {\n \"type\": \"mill\",\n \"centralMeridian\": 11.5\n },\n \"width\": 900.0\n});\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/jquery-jvectormap.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/jquery-ui.min.js":
/*!**********************************************************!*\
!*** ./buyercall/assets/scripts/vendor/jquery-ui.min.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*! jQuery UI - v1.12.1 - 2016-09-14\n* http://jqueryui.com\n* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js\n* Copyright jQuery Foundation and other contributors; Licensed MIT */\n\n(function (t) {\n true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ \"jquery\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (t),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined;\n})(function (t) {\n function e(t) {\n for (var e = t.css(\"visibility\"); \"inherit\" === e;) t = t.parent(), e = t.css(\"visibility\");\n return \"hidden\" !== e;\n }\n function i(t) {\n for (var e, i; t.length && t[0] !== document;) {\n if (e = t.css(\"position\"), (\"absolute\" === e || \"relative\" === e || \"fixed\" === e) && (i = parseInt(t.css(\"zIndex\"), 10), !isNaN(i) && 0 !== i)) return i;\n t = t.parent();\n }\n return 0;\n }\n function s() {\n this._curInst = null, this._keyEvent = !1, this._disabledInputs = [], this._datepickerShowing = !1, this._inDialog = !1, this._mainDivId = \"ui-datepicker-div\", this._inlineClass = \"ui-datepicker-inline\", this._appendClass = \"ui-datepicker-append\", this._triggerClass = \"ui-datepicker-trigger\", this._dialogClass = \"ui-datepicker-dialog\", this._disableClass = \"ui-datepicker-disabled\", this._unselectableClass = \"ui-datepicker-unselectable\", this._currentClass = \"ui-datepicker-current-day\", this._dayOverClass = \"ui-datepicker-days-cell-over\", this.regional = [], this.regional[\"\"] = {\n closeText: \"Done\",\n prevText: \"Prev\",\n nextText: \"Next\",\n currentText: \"Today\",\n monthNames: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n monthNamesShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n dayNamesShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n dayNamesMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n weekHeader: \"Wk\",\n dateFormat: \"mm/dd/yy\",\n firstDay: 0,\n isRTL: !1,\n showMonthAfterYear: !1,\n yearSuffix: \"\"\n }, this._defaults = {\n showOn: \"focus\",\n showAnim: \"fadeIn\",\n showOptions: {},\n defaultDate: null,\n appendText: \"\",\n buttonText: \"...\",\n buttonImage: \"\",\n buttonImageOnly: !1,\n hideIfNoPrevNext: !1,\n navigationAsDateFormat: !1,\n gotoCurrent: !1,\n changeMonth: !1,\n changeYear: !1,\n yearRange: \"c-10:c+10\",\n showOtherMonths: !1,\n selectOtherMonths: !1,\n showWeek: !1,\n calculateWeek: this.iso8601Week,\n shortYearCutoff: \"+10\",\n minDate: null,\n maxDate: null,\n duration: \"fast\",\n beforeShowDay: null,\n beforeShow: null,\n onSelect: null,\n onChangeMonthYear: null,\n onClose: null,\n numberOfMonths: 1,\n showCurrentAtPos: 0,\n stepMonths: 1,\n stepBigMonths: 12,\n altField: \"\",\n altFormat: \"\",\n constrainInput: !0,\n showButtonPanel: !1,\n autoSize: !1,\n disabled: !1\n }, t.extend(this._defaults, this.regional[\"\"]), this.regional.en = t.extend(!0, {}, this.regional[\"\"]), this.regional[\"en-US\"] = t.extend(!0, {}, this.regional.en), this.dpDiv = n(t(\"<div id='\" + this._mainDivId + \"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>\"));\n }\n function n(e) {\n var i = \"button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a\";\n return e.on(\"mouseout\", i, function () {\n t(this).removeClass(\"ui-state-hover\"), -1 !== this.className.indexOf(\"ui-datepicker-prev\") && t(this).removeClass(\"ui-datepicker-prev-hover\"), -1 !== this.className.indexOf(\"ui-datepicker-next\") && t(this).removeClass(\"ui-datepicker-next-hover\");\n }).on(\"mouseover\", i, o);\n }\n function o() {\n t.datepicker._isDisabledDatepicker(m.inline ? m.dpDiv.parent()[0] : m.input[0]) || (t(this).parents(\".ui-datepicker-calendar\").find(\"a\").removeClass(\"ui-state-hover\"), t(this).addClass(\"ui-state-hover\"), -1 !== this.className.indexOf(\"ui-datepicker-prev\") && t(this).addClass(\"ui-datepicker-prev-hover\"), -1 !== this.className.indexOf(\"ui-datepicker-next\") && t(this).addClass(\"ui-datepicker-next-hover\"));\n }\n function a(e, i) {\n t.extend(e, i);\n for (var s in i) null == i[s] && (e[s] = i[s]);\n return e;\n }\n function r(t) {\n return function () {\n var e = this.element.val();\n t.apply(this, arguments), this._refresh(), e !== this.element.val() && this._trigger(\"change\");\n };\n }\n t.ui = t.ui || {}, t.ui.version = \"1.12.1\";\n var h = 0,\n l = Array.prototype.slice;\n t.cleanData = function (e) {\n return function (i) {\n var s, n, o;\n for (o = 0; null != (n = i[o]); o++) try {\n s = t._data(n, \"events\"), s && s.remove && t(n).triggerHandler(\"remove\");\n } catch (a) {}\n e(i);\n };\n }(t.cleanData), t.widget = function (e, i, s) {\n var n,\n o,\n a,\n r = {},\n h = e.split(\".\")[0];\n e = e.split(\".\")[1];\n var l = h + \"-\" + e;\n return s || (s = i, i = t.Widget), t.isArray(s) && (s = t.extend.apply(null, [{}].concat(s))), t.expr[\":\"][l.toLowerCase()] = function (e) {\n return !!t.data(e, l);\n }, t[h] = t[h] || {}, n = t[h][e], o = t[h][e] = function (t, e) {\n return this._createWidget ? (arguments.length && this._createWidget(t, e), void 0) : new o(t, e);\n }, t.extend(o, n, {\n version: s.version,\n _proto: t.extend({}, s),\n _childConstructors: []\n }), a = new i(), a.options = t.widget.extend({}, a.options), t.each(s, function (e, s) {\n return t.isFunction(s) ? (r[e] = function () {\n function t() {\n return i.prototype[e].apply(this, arguments);\n }\n function n(t) {\n return i.prototype[e].apply(this, t);\n }\n return function () {\n var e,\n i = this._super,\n o = this._superApply;\n return this._super = t, this._superApply = n, e = s.apply(this, arguments), this._super = i, this._superApply = o, e;\n };\n }(), void 0) : (r[e] = s, void 0);\n }), o.prototype = t.widget.extend(a, {\n widgetEventPrefix: n ? a.widgetEventPrefix || e : e\n }, r, {\n constructor: o,\n namespace: h,\n widgetName: e,\n widgetFullName: l\n }), n ? (t.each(n._childConstructors, function (e, i) {\n var s = i.prototype;\n t.widget(s.namespace + \".\" + s.widgetName, o, i._proto);\n }), delete n._childConstructors) : i._childConstructors.push(o), t.widget.bridge(e, o), o;\n }, t.widget.extend = function (e) {\n for (var i, s, n = l.call(arguments, 1), o = 0, a = n.length; a > o; o++) for (i in n[o]) s = n[o][i], n[o].hasOwnProperty(i) && void 0 !== s && (e[i] = t.isPlainObject(s) ? t.isPlainObject(e[i]) ? t.widget.extend({}, e[i], s) : t.widget.extend({}, s) : s);\n return e;\n }, t.widget.bridge = function (e, i) {\n var s = i.prototype.widgetFullName || e;\n t.fn[e] = function (n) {\n var o = \"string\" == typeof n,\n a = l.call(arguments, 1),\n r = this;\n return o ? this.length || \"instance\" !== n ? this.each(function () {\n var i,\n o = t.data(this, s);\n return \"instance\" === n ? (r = o, !1) : o ? t.isFunction(o[n]) && \"_\" !== n.charAt(0) ? (i = o[n].apply(o, a), i !== o && void 0 !== i ? (r = i && i.jquery ? r.pushStack(i.get()) : i, !1) : void 0) : t.error(\"no such method '\" + n + \"' for \" + e + \" widget instance\") : t.error(\"cannot call methods on \" + e + \" prior to initialization; \" + \"attempted to call method '\" + n + \"'\");\n }) : r = void 0 : (a.length && (n = t.widget.extend.apply(null, [n].concat(a))), this.each(function () {\n var e = t.data(this, s);\n e ? (e.option(n || {}), e._init && e._init()) : t.data(this, s, new i(n, this));\n })), r;\n };\n }, t.Widget = function () {}, t.Widget._childConstructors = [], t.Widget.prototype = {\n widgetName: \"widget\",\n widgetEventPrefix: \"\",\n defaultElement: \"<div>\",\n options: {\n classes: {},\n disabled: !1,\n create: null\n },\n _createWidget: function _createWidget(e, i) {\n i = t(i || this.defaultElement || this)[0], this.element = t(i), this.uuid = h++, this.eventNamespace = \".\" + this.widgetName + this.uuid, this.bindings = t(), this.hoverable = t(), this.focusable = t(), this.classesElementLookup = {}, i !== this && (t.data(i, this.widgetFullName, this), this._on(!0, this.element, {\n remove: function remove(t) {\n t.target === i && this.destroy();\n }\n }), this.document = t(i.style ? i.ownerDocument : i.document || i), this.window = t(this.document[0].defaultView || this.document[0].parentWindow)), this.options = t.widget.extend({}, this.options, this._getCreateOptions(), e), this._create(), this.options.disabled && this._setOptionDisabled(this.options.disabled), this._trigger(\"create\", null, this._getCreateEventData()), this._init();\n },\n _getCreateOptions: function _getCreateOptions() {\n return {};\n },\n _getCreateEventData: t.noop,\n _create: t.noop,\n _init: t.noop,\n destroy: function destroy() {\n var e = this;\n this._destroy(), t.each(this.classesElementLookup, function (t, i) {\n e._removeClass(i, t);\n }), this.element.off(this.eventNamespace).removeData(this.widgetFullName), this.widget().off(this.eventNamespace).removeAttr(\"aria-disabled\"), this.bindings.off(this.eventNamespace);\n },\n _destroy: t.noop,\n widget: function widget() {\n return this.element;\n },\n option: function option(e, i) {\n var s,\n n,\n o,\n a = e;\n if (0 === arguments.length) return t.widget.extend({}, this.options);\n if (\"string\" == typeof e) if (a = {}, s = e.split(\".\"), e = s.shift(), s.length) {\n for (n = a[e] = t.widget.extend({}, this.options[e]), o = 0; s.length - 1 > o; o++) n[s[o]] = n[s[o]] || {}, n = n[s[o]];\n if (e = s.pop(), 1 === arguments.length) return void 0 === n[e] ? null : n[e];\n n[e] = i;\n } else {\n if (1 === arguments.length) return void 0 === this.options[e] ? null : this.options[e];\n a[e] = i;\n }\n return this._setOptions(a), this;\n },\n _setOptions: function _setOptions(t) {\n var e;\n for (e in t) this._setOption(e, t[e]);\n return this;\n },\n _setOption: function _setOption(t, e) {\n return \"classes\" === t && this._setOptionClasses(e), this.options[t] = e, \"disabled\" === t && this._setOptionDisabled(e), this;\n },\n _setOptionClasses: function _setOptionClasses(e) {\n var i, s, n;\n for (i in e) n = this.classesElementLookup[i], e[i] !== this.options.classes[i] && n && n.length && (s = t(n.get()), this._removeClass(n, i), s.addClass(this._classes({\n element: s,\n keys: i,\n classes: e,\n add: !0\n })));\n },\n _setOptionDisabled: function _setOptionDisabled(t) {\n this._toggleClass(this.widget(), this.widgetFullName + \"-disabled\", null, !!t), t && (this._removeClass(this.hoverable, null, \"ui-state-hover\"), this._removeClass(this.focusable, null, \"ui-state-focus\"));\n },\n enable: function enable() {\n return this._setOptions({\n disabled: !1\n });\n },\n disable: function disable() {\n return this._setOptions({\n disabled: !0\n });\n },\n _classes: function _classes(e) {\n function i(i, o) {\n var a, r;\n for (r = 0; i.length > r; r++) a = n.classesElementLookup[i[r]] || t(), a = e.add ? t(t.unique(a.get().concat(e.element.get()))) : t(a.not(e.element).get()), n.classesElementLookup[i[r]] = a, s.push(i[r]), o && e.classes[i[r]] && s.push(e.classes[i[r]]);\n }\n var s = [],\n n = this;\n return e = t.extend({\n element: this.element,\n classes: this.options.classes || {}\n }, e), this._on(e.element, {\n remove: \"_untrackClassesElement\"\n }), e.keys && i(e.keys.match(/\\S+/g) || [], !0), e.extra && i(e.extra.match(/\\S+/g) || []), s.join(\" \");\n },\n _untrackClassesElement: function _untrackClassesElement(e) {\n var i = this;\n t.each(i.classesElementLookup, function (s, n) {\n -1 !== t.inArray(e.target, n) && (i.classesElementLookup[s] = t(n.not(e.target).get()));\n });\n },\n _removeClass: function _removeClass(t, e, i) {\n return this._toggleClass(t, e, i, !1);\n },\n _addClass: function _addClass(t, e, i) {\n return this._toggleClass(t, e, i, !0);\n },\n _toggleClass: function _toggleClass(t, e, i, s) {\n s = \"boolean\" == typeof s ? s : i;\n var n = \"string\" == typeof t || null === t,\n o = {\n extra: n ? e : i,\n keys: n ? t : e,\n element: n ? this.element : t,\n add: s\n };\n return o.element.toggleClass(this._classes(o), s), this;\n },\n _on: function _on(e, i, s) {\n var n,\n o = this;\n \"boolean\" != typeof e && (s = i, i = e, e = !1), s ? (i = n = t(i), this.bindings = this.bindings.add(i)) : (s = i, i = this.element, n = this.widget()), t.each(s, function (s, a) {\n function r() {\n return e || o.options.disabled !== !0 && !t(this).hasClass(\"ui-state-disabled\") ? (\"string\" == typeof a ? o[a] : a).apply(o, arguments) : void 0;\n }\n \"string\" != typeof a && (r.guid = a.guid = a.guid || r.guid || t.guid++);\n var h = s.match(/^([\\w:-]*)\\s*(.*)$/),\n l = h[1] + o.eventNamespace,\n c = h[2];\n c ? n.on(l, c, r) : i.on(l, r);\n });\n },\n _off: function _off(e, i) {\n i = (i || \"\").split(\" \").join(this.eventNamespace + \" \") + this.eventNamespace, e.off(i).off(i), this.bindings = t(this.bindings.not(e).get()), this.focusable = t(this.focusable.not(e).get()), this.hoverable = t(this.hoverable.not(e).get());\n },\n _delay: function _delay(t, e) {\n function i() {\n return (\"string\" == typeof t ? s[t] : t).apply(s, arguments);\n }\n var s = this;\n return setTimeout(i, e || 0);\n },\n _hoverable: function _hoverable(e) {\n this.hoverable = this.hoverable.add(e), this._on(e, {\n mouseenter: function mouseenter(e) {\n this._addClass(t(e.currentTarget), null, \"ui-state-hover\");\n },\n mouseleave: function mouseleave(e) {\n this._removeClass(t(e.currentTarget), null, \"ui-state-hover\");\n }\n });\n },\n _focusable: function _focusable(e) {\n this.focusable = this.focusable.add(e), this._on(e, {\n focusin: function focusin(e) {\n this._addClass(t(e.currentTarget), null, \"ui-state-focus\");\n },\n focusout: function focusout(e) {\n this._removeClass(t(e.currentTarget), null, \"ui-state-focus\");\n }\n });\n },\n _trigger: function _trigger(e, i, s) {\n var n,\n o,\n a = this.options[e];\n if (s = s || {}, i = t.Event(i), i.type = (e === this.widgetEventPrefix ? e : this.widgetEventPrefix + e).toLowerCase(), i.target = this.element[0], o = i.originalEvent) for (n in o) n in i || (i[n] = o[n]);\n return this.element.trigger(i, s), !(t.isFunction(a) && a.apply(this.element[0], [i].concat(s)) === !1 || i.isDefaultPrevented());\n }\n }, t.each({\n show: \"fadeIn\",\n hide: \"fadeOut\"\n }, function (e, i) {\n t.Widget.prototype[\"_\" + e] = function (s, n, o) {\n \"string\" == typeof n && (n = {\n effect: n\n });\n var a,\n r = n ? n === !0 || \"number\" == typeof n ? i : n.effect || i : e;\n n = n || {}, \"number\" == typeof n && (n = {\n duration: n\n }), a = !t.isEmptyObject(n), n.complete = o, n.delay && s.delay(n.delay), a && t.effects && t.effects.effect[r] ? s[e](n) : r !== e && s[r] ? s[r](n.duration, n.easing, o) : s.queue(function (i) {\n t(this)[e](), o && o.call(s[0]), i();\n });\n };\n }), t.widget, function () {\n function e(t, e, i) {\n return [parseFloat(t[0]) * (u.test(t[0]) ? e / 100 : 1), parseFloat(t[1]) * (u.test(t[1]) ? i / 100 : 1)];\n }\n function i(e, i) {\n return parseInt(t.css(e, i), 10) || 0;\n }\n function s(e) {\n var i = e[0];\n return 9 === i.nodeType ? {\n width: e.width(),\n height: e.height(),\n offset: {\n top: 0,\n left: 0\n }\n } : t.isWindow(i) ? {\n width: e.width(),\n height: e.height(),\n offset: {\n top: e.scrollTop(),\n left: e.scrollLeft()\n }\n } : i.preventDefault ? {\n width: 0,\n height: 0,\n offset: {\n top: i.pageY,\n left: i.pageX\n }\n } : {\n width: e.outerWidth(),\n height: e.outerHeight(),\n offset: e.offset()\n };\n }\n var n,\n o = Math.max,\n a = Math.abs,\n r = /left|center|right/,\n h = /top|center|bottom/,\n l = /[\\+\\-]\\d+(\\.[\\d]+)?%?/,\n c = /^\\w+/,\n u = /%$/,\n d = t.fn.position;\n t.position = {\n scrollbarWidth: function scrollbarWidth() {\n if (void 0 !== n) return n;\n var e,\n i,\n s = t(\"<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>\"),\n o = s.children()[0];\n return t(\"body\").append(s), e = o.offsetWidth, s.css(\"overflow\", \"scroll\"), i = o.offsetWidth, e === i && (i = s[0].clientWidth), s.remove(), n = e - i;\n },\n getScrollInfo: function getScrollInfo(e) {\n var i = e.isWindow || e.isDocument ? \"\" : e.element.css(\"overflow-x\"),\n s = e.isWindow || e.isDocument ? \"\" : e.element.css(\"overflow-y\"),\n n = \"scroll\" === i || \"auto\" === i && e.width < e.element[0].scrollWidth,\n o = \"scroll\" === s || \"auto\" === s && e.height < e.element[0].scrollHeight;\n return {\n width: o ? t.position.scrollbarWidth() : 0,\n height: n ? t.position.scrollbarWidth() : 0\n };\n },\n getWithinInfo: function getWithinInfo(e) {\n var i = t(e || window),\n s = t.isWindow(i[0]),\n n = !!i[0] && 9 === i[0].nodeType,\n o = !s && !n;\n return {\n element: i,\n isWindow: s,\n isDocument: n,\n offset: o ? t(e).offset() : {\n left: 0,\n top: 0\n },\n scrollLeft: i.scrollLeft(),\n scrollTop: i.scrollTop(),\n width: i.outerWidth(),\n height: i.outerHeight()\n };\n }\n }, t.fn.position = function (n) {\n if (!n || !n.of) return d.apply(this, arguments);\n n = t.extend({}, n);\n var u,\n p,\n f,\n g,\n m,\n _,\n v = t(n.of),\n b = t.position.getWithinInfo(n.within),\n y = t.position.getScrollInfo(b),\n w = (n.collision || \"flip\").split(\" \"),\n k = {};\n return _ = s(v), v[0].preventDefault && (n.at = \"left top\"), p = _.width, f = _.height, g = _.offset, m = t.extend({}, g), t.each([\"my\", \"at\"], function () {\n var t,\n e,\n i = (n[this] || \"\").split(\" \");\n 1 === i.length && (i = r.test(i[0]) ? i.concat([\"center\"]) : h.test(i[0]) ? [\"center\"].concat(i) : [\"center\", \"center\"]), i[0] = r.test(i[0]) ? i[0] : \"center\", i[1] = h.test(i[1]) ? i[1] : \"center\", t = l.exec(i[0]), e = l.exec(i[1]), k[this] = [t ? t[0] : 0, e ? e[0] : 0], n[this] = [c.exec(i[0])[0], c.exec(i[1])[0]];\n }), 1 === w.length && (w[1] = w[0]), \"right\" === n.at[0] ? m.left += p : \"center\" === n.at[0] && (m.left += p / 2), \"bottom\" === n.at[1] ? m.top += f : \"center\" === n.at[1] && (m.top += f / 2), u = e(k.at, p, f), m.left += u[0], m.top += u[1], this.each(function () {\n var s,\n r,\n h = t(this),\n l = h.outerWidth(),\n c = h.outerHeight(),\n d = i(this, \"marginLeft\"),\n _ = i(this, \"marginTop\"),\n x = l + d + i(this, \"marginRight\") + y.width,\n C = c + _ + i(this, \"marginBottom\") + y.height,\n D = t.extend({}, m),\n I = e(k.my, h.outerWidth(), h.outerHeight());\n \"right\" === n.my[0] ? D.left -= l : \"center\" === n.my[0] && (D.left -= l / 2), \"bottom\" === n.my[1] ? D.top -= c : \"center\" === n.my[1] && (D.top -= c / 2), D.left += I[0], D.top += I[1], s = {\n marginLeft: d,\n marginTop: _\n }, t.each([\"left\", \"top\"], function (e, i) {\n t.ui.position[w[e]] && t.ui.position[w[e]][i](D, {\n targetWidth: p,\n targetHeight: f,\n elemWidth: l,\n elemHeight: c,\n collisionPosition: s,\n collisionWidth: x,\n collisionHeight: C,\n offset: [u[0] + I[0], u[1] + I[1]],\n my: n.my,\n at: n.at,\n within: b,\n elem: h\n });\n }), n.using && (r = function r(t) {\n var e = g.left - D.left,\n i = e + p - l,\n s = g.top - D.top,\n r = s + f - c,\n u = {\n target: {\n element: v,\n left: g.left,\n top: g.top,\n width: p,\n height: f\n },\n element: {\n element: h,\n left: D.left,\n top: D.top,\n width: l,\n height: c\n },\n horizontal: 0 > i ? \"left\" : e > 0 ? \"right\" : \"center\",\n vertical: 0 > r ? \"top\" : s > 0 ? \"bottom\" : \"middle\"\n };\n l > p && p > a(e + i) && (u.horizontal = \"center\"), c > f && f > a(s + r) && (u.vertical = \"middle\"), u.important = o(a(e), a(i)) > o(a(s), a(r)) ? \"horizontal\" : \"vertical\", n.using.call(this, t, u);\n }), h.offset(t.extend(D, {\n using: r\n }));\n });\n }, t.ui.position = {\n fit: {\n left: function left(t, e) {\n var i,\n s = e.within,\n n = s.isWindow ? s.scrollLeft : s.offset.left,\n a = s.width,\n r = t.left - e.collisionPosition.marginLeft,\n h = n - r,\n l = r + e.collisionWidth - a - n;\n e.collisionWidth > a ? h > 0 && 0 >= l ? (i = t.left + h + e.collisionWidth - a - n, t.left += h - i) : t.left = l > 0 && 0 >= h ? n : h > l ? n + a - e.collisionWidth : n : h > 0 ? t.left += h : l > 0 ? t.left -= l : t.left = o(t.left - r, t.left);\n },\n top: function top(t, e) {\n var i,\n s = e.within,\n n = s.isWindow ? s.scrollTop : s.offset.top,\n a = e.within.height,\n r = t.top - e.collisionPosition.marginTop,\n h = n - r,\n l = r + e.collisionHeight - a - n;\n e.collisionHeight > a ? h > 0 && 0 >= l ? (i = t.top + h + e.collisionHeight - a - n, t.top += h - i) : t.top = l > 0 && 0 >= h ? n : h > l ? n + a - e.collisionHeight : n : h > 0 ? t.top += h : l > 0 ? t.top -= l : t.top = o(t.top - r, t.top);\n }\n },\n flip: {\n left: function left(t, e) {\n var i,\n s,\n n = e.within,\n o = n.offset.left + n.scrollLeft,\n r = n.width,\n h = n.isWindow ? n.scrollLeft : n.offset.left,\n l = t.left - e.collisionPosition.marginLeft,\n c = l - h,\n u = l + e.collisionWidth - r - h,\n d = \"left\" === e.my[0] ? -e.elemWidth : \"right\" === e.my[0] ? e.elemWidth : 0,\n p = \"left\" === e.at[0] ? e.targetWidth : \"right\" === e.at[0] ? -e.targetWidth : 0,\n f = -2 * e.offset[0];\n 0 > c ? (i = t.left + d + p + f + e.collisionWidth - r - o, (0 > i || a(c) > i) && (t.left += d + p + f)) : u > 0 && (s = t.left - e.collisionPosition.marginLeft + d + p + f - h, (s > 0 || u > a(s)) && (t.left += d + p + f));\n },\n top: function top(t, e) {\n var i,\n s,\n n = e.within,\n o = n.offset.top + n.scrollTop,\n r = n.height,\n h = n.isWindow ? n.scrollTop : n.offset.top,\n l = t.top - e.collisionPosition.marginTop,\n c = l - h,\n u = l + e.collisionHeight - r - h,\n d = \"top\" === e.my[1],\n p = d ? -e.elemHeight : \"bottom\" === e.my[1] ? e.elemHeight : 0,\n f = \"top\" === e.at[1] ? e.targetHeight : \"bottom\" === e.at[1] ? -e.targetHeight : 0,\n g = -2 * e.offset[1];\n 0 > c ? (s = t.top + p + f + g + e.collisionHeight - r - o, (0 > s || a(c) > s) && (t.top += p + f + g)) : u > 0 && (i = t.top - e.collisionPosition.marginTop + p + f + g - h, (i > 0 || u > a(i)) && (t.top += p + f + g));\n }\n },\n flipfit: {\n left: function left() {\n t.ui.position.flip.left.apply(this, arguments), t.ui.position.fit.left.apply(this, arguments);\n },\n top: function top() {\n t.ui.position.flip.top.apply(this, arguments), t.ui.position.fit.top.apply(this, arguments);\n }\n }\n };\n }(), t.ui.position, t.extend(t.expr[\":\"], {\n data: t.expr.createPseudo ? t.expr.createPseudo(function (e) {\n return function (i) {\n return !!t.data(i, e);\n };\n }) : function (e, i, s) {\n return !!t.data(e, s[3]);\n }\n }), t.fn.extend({\n disableSelection: function () {\n var t = \"onselectstart\" in document.createElement(\"div\") ? \"selectstart\" : \"mousedown\";\n return function () {\n return this.on(t + \".ui-disableSelection\", function (t) {\n t.preventDefault();\n });\n };\n }(),\n enableSelection: function enableSelection() {\n return this.off(\".ui-disableSelection\");\n }\n });\n var c = \"ui-effects-\",\n u = \"ui-effects-style\",\n d = \"ui-effects-animated\",\n p = t;\n t.effects = {\n effect: {}\n }, function (t, e) {\n function i(t, e, i) {\n var s = u[e.type] || {};\n return null == t ? i || !e.def ? null : e.def : (t = s.floor ? ~~t : parseFloat(t), isNaN(t) ? e.def : s.mod ? (t + s.mod) % s.mod : 0 > t ? 0 : t > s.max ? s.max : t);\n }\n function s(i) {\n var s = l(),\n n = s._rgba = [];\n return i = i.toLowerCase(), f(h, function (t, o) {\n var a,\n r = o.re.exec(i),\n h = r && o.parse(r),\n l = o.space || \"rgba\";\n return h ? (a = s[l](h), s[c[l].cache] = a[c[l].cache], n = s._rgba = a._rgba, !1) : e;\n }), n.length ? (\"0,0,0,0\" === n.join() && t.extend(n, o.transparent), s) : o[i];\n }\n function n(t, e, i) {\n return i = (i + 1) % 1, 1 > 6 * i ? t + 6 * (e - t) * i : 1 > 2 * i ? e : 2 > 3 * i ? t + 6 * (e - t) * (2 / 3 - i) : t;\n }\n var o,\n a = \"backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor\",\n r = /^([\\-+])=\\s*(\\d+\\.?\\d*)/,\n h = [{\n re: /rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n parse: function parse(t) {\n return [t[1], t[2], t[3], t[4]];\n }\n }, {\n re: /rgba?\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n parse: function parse(t) {\n return [2.55 * t[1], 2.55 * t[2], 2.55 * t[3], t[4]];\n }\n }, {\n re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,\n parse: function parse(t) {\n return [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)];\n }\n }, {\n re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,\n parse: function parse(t) {\n return [parseInt(t[1] + t[1], 16), parseInt(t[2] + t[2], 16), parseInt(t[3] + t[3], 16)];\n }\n }, {\n re: /hsla?\\(\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n space: \"hsla\",\n parse: function parse(t) {\n return [t[1], t[2] / 100, t[3] / 100, t[4]];\n }\n }],\n l = t.Color = function (e, i, s, n) {\n return new t.Color.fn.parse(e, i, s, n);\n },\n c = {\n rgba: {\n props: {\n red: {\n idx: 0,\n type: \"byte\"\n },\n green: {\n idx: 1,\n type: \"byte\"\n },\n blue: {\n idx: 2,\n type: \"byte\"\n }\n }\n },\n hsla: {\n props: {\n hue: {\n idx: 0,\n type: \"degrees\"\n },\n saturation: {\n idx: 1,\n type: \"percent\"\n },\n lightness: {\n idx: 2,\n type: \"percent\"\n }\n }\n }\n },\n u = {\n \"byte\": {\n floor: !0,\n max: 255\n },\n percent: {\n max: 1\n },\n degrees: {\n mod: 360,\n floor: !0\n }\n },\n d = l.support = {},\n p = t(\"<p>\")[0],\n f = t.each;\n p.style.cssText = \"background-color:rgba(1,1,1,.5)\", d.rgba = p.style.backgroundColor.indexOf(\"rgba\") > -1, f(c, function (t, e) {\n e.cache = \"_\" + t, e.props.alpha = {\n idx: 3,\n type: \"percent\",\n def: 1\n };\n }), l.fn = t.extend(l.prototype, {\n parse: function parse(n, a, r, h) {\n if (n === e) return this._rgba = [null, null, null, null], this;\n (n.jquery || n.nodeType) && (n = t(n).css(a), a = e);\n var u = this,\n d = t.type(n),\n p = this._rgba = [];\n return a !== e && (n = [n, a, r, h], d = \"array\"), \"string\" === d ? this.parse(s(n) || o._default) : \"array\" === d ? (f(c.rgba.props, function (t, e) {\n p[e.idx] = i(n[e.idx], e);\n }), this) : \"object\" === d ? (n instanceof l ? f(c, function (t, e) {\n n[e.cache] && (u[e.cache] = n[e.cache].slice());\n }) : f(c, function (e, s) {\n var o = s.cache;\n f(s.props, function (t, e) {\n if (!u[o] && s.to) {\n if (\"alpha\" === t || null == n[t]) return;\n u[o] = s.to(u._rgba);\n }\n u[o][e.idx] = i(n[t], e, !0);\n }), u[o] && 0 > t.inArray(null, u[o].slice(0, 3)) && (u[o][3] = 1, s.from && (u._rgba = s.from(u[o])));\n }), this) : e;\n },\n is: function is(t) {\n var i = l(t),\n s = !0,\n n = this;\n return f(c, function (t, o) {\n var a,\n r = i[o.cache];\n return r && (a = n[o.cache] || o.to && o.to(n._rgba) || [], f(o.props, function (t, i) {\n return null != r[i.idx] ? s = r[i.idx] === a[i.idx] : e;\n })), s;\n }), s;\n },\n _space: function _space() {\n var t = [],\n e = this;\n return f(c, function (i, s) {\n e[s.cache] && t.push(i);\n }), t.pop();\n },\n transition: function transition(t, e) {\n var s = l(t),\n n = s._space(),\n o = c[n],\n a = 0 === this.alpha() ? l(\"transparent\") : this,\n r = a[o.cache] || o.to(a._rgba),\n h = r.slice();\n return s = s[o.cache], f(o.props, function (t, n) {\n var o = n.idx,\n a = r[o],\n l = s[o],\n c = u[n.type] || {};\n null !== l && (null === a ? h[o] = l : (c.mod && (l - a > c.mod / 2 ? a += c.mod : a - l > c.mod / 2 && (a -= c.mod)), h[o] = i((l - a) * e + a, n)));\n }), this[n](h);\n },\n blend: function blend(e) {\n if (1 === this._rgba[3]) return this;\n var i = this._rgba.slice(),\n s = i.pop(),\n n = l(e)._rgba;\n return l(t.map(i, function (t, e) {\n return (1 - s) * n[e] + s * t;\n }));\n },\n toRgbaString: function toRgbaString() {\n var e = \"rgba(\",\n i = t.map(this._rgba, function (t, e) {\n return null == t ? e > 2 ? 1 : 0 : t;\n });\n return 1 === i[3] && (i.pop(), e = \"rgb(\"), e + i.join() + \")\";\n },\n toHslaString: function toHslaString() {\n var e = \"hsla(\",\n i = t.map(this.hsla(), function (t, e) {\n return null == t && (t = e > 2 ? 1 : 0), e && 3 > e && (t = Math.round(100 * t) + \"%\"), t;\n });\n return 1 === i[3] && (i.pop(), e = \"hsl(\"), e + i.join() + \")\";\n },\n toHexString: function toHexString(e) {\n var i = this._rgba.slice(),\n s = i.pop();\n return e && i.push(~~(255 * s)), \"#\" + t.map(i, function (t) {\n return t = (t || 0).toString(16), 1 === t.length ? \"0\" + t : t;\n }).join(\"\");\n },\n toString: function toString() {\n return 0 === this._rgba[3] ? \"transparent\" : this.toRgbaString();\n }\n }), l.fn.parse.prototype = l.fn, c.hsla.to = function (t) {\n if (null == t[0] || null == t[1] || null == t[2]) return [null, null, null, t[3]];\n var e,\n i,\n s = t[0] / 255,\n n = t[1] / 255,\n o = t[2] / 255,\n a = t[3],\n r = Math.max(s, n, o),\n h = Math.min(s, n, o),\n l = r - h,\n c = r + h,\n u = .5 * c;\n return e = h === r ? 0 : s === r ? 60 * (n - o) / l + 360 : n === r ? 60 * (o - s) / l + 120 : 60 * (s - n) / l + 240, i = 0 === l ? 0 : .5 >= u ? l / c : l / (2 - c), [Math.round(e) % 360, i, u, null == a ? 1 : a];\n }, c.hsla.from = function (t) {\n if (null == t[0] || null == t[1] || null == t[2]) return [null, null, null, t[3]];\n var e = t[0] / 360,\n i = t[1],\n s = t[2],\n o = t[3],\n a = .5 >= s ? s * (1 + i) : s + i - s * i,\n r = 2 * s - a;\n return [Math.round(255 * n(r, a, e + 1 / 3)), Math.round(255 * n(r, a, e)), Math.round(255 * n(r, a, e - 1 / 3)), o];\n }, f(c, function (s, n) {\n var o = n.props,\n a = n.cache,\n h = n.to,\n c = n.from;\n l.fn[s] = function (s) {\n if (h && !this[a] && (this[a] = h(this._rgba)), s === e) return this[a].slice();\n var n,\n r = t.type(s),\n u = \"array\" === r || \"object\" === r ? s : arguments,\n d = this[a].slice();\n return f(o, function (t, e) {\n var s = u[\"object\" === r ? t : e.idx];\n null == s && (s = d[e.idx]), d[e.idx] = i(s, e);\n }), c ? (n = l(c(d)), n[a] = d, n) : l(d);\n }, f(o, function (e, i) {\n l.fn[e] || (l.fn[e] = function (n) {\n var o,\n a = t.type(n),\n h = \"alpha\" === e ? this._hsla ? \"hsla\" : \"rgba\" : s,\n l = this[h](),\n c = l[i.idx];\n return \"undefined\" === a ? c : (\"function\" === a && (n = n.call(this, c), a = t.type(n)), null == n && i.empty ? this : (\"string\" === a && (o = r.exec(n), o && (n = c + parseFloat(o[2]) * (\"+\" === o[1] ? 1 : -1))), l[i.idx] = n, this[h](l)));\n });\n });\n }), l.hook = function (e) {\n var i = e.split(\" \");\n f(i, function (e, i) {\n t.cssHooks[i] = {\n set: function set(e, n) {\n var o,\n a,\n r = \"\";\n if (\"transparent\" !== n && (\"string\" !== t.type(n) || (o = s(n)))) {\n if (n = l(o || n), !d.rgba && 1 !== n._rgba[3]) {\n for (a = \"backgroundColor\" === i ? e.parentNode : e; (\"\" === r || \"transparent\" === r) && a && a.style;) try {\n r = t.css(a, \"backgroundColor\"), a = a.parentNode;\n } catch (h) {}\n n = n.blend(r && \"transparent\" !== r ? r : \"_default\");\n }\n n = n.toRgbaString();\n }\n try {\n e.style[i] = n;\n } catch (h) {}\n }\n }, t.fx.step[i] = function (e) {\n e.colorInit || (e.start = l(e.elem, i), e.end = l(e.end), e.colorInit = !0), t.cssHooks[i].set(e.elem, e.start.transition(e.end, e.pos));\n };\n });\n }, l.hook(a), t.cssHooks.borderColor = {\n expand: function expand(t) {\n var e = {};\n return f([\"Top\", \"Right\", \"Bottom\", \"Left\"], function (i, s) {\n e[\"border\" + s + \"Color\"] = t;\n }), e;\n }\n }, o = t.Color.names = {\n aqua: \"#00ffff\",\n black: \"#000000\",\n blue: \"#0000ff\",\n fuchsia: \"#ff00ff\",\n gray: \"#808080\",\n green: \"#008000\",\n lime: \"#00ff00\",\n maroon: \"#800000\",\n navy: \"#000080\",\n olive: \"#808000\",\n purple: \"#800080\",\n red: \"#ff0000\",\n silver: \"#c0c0c0\",\n teal: \"#008080\",\n white: \"#ffffff\",\n yellow: \"#ffff00\",\n transparent: [null, null, null, 0],\n _default: \"#ffffff\"\n };\n }(p), function () {\n function e(e) {\n var i,\n s,\n n = e.ownerDocument.defaultView ? e.ownerDocument.defaultView.getComputedStyle(e, null) : e.currentStyle,\n o = {};\n if (n && n.length && n[0] && n[n[0]]) for (s = n.length; s--;) i = n[s], \"string\" == typeof n[i] && (o[t.camelCase(i)] = n[i]);else for (i in n) \"string\" == typeof n[i] && (o[i] = n[i]);\n return o;\n }\n function i(e, i) {\n var s,\n o,\n a = {};\n for (s in i) o = i[s], e[s] !== o && (n[s] || (t.fx.step[s] || !isNaN(parseFloat(o))) && (a[s] = o));\n return a;\n }\n var s = [\"add\", \"remove\", \"toggle\"],\n n = {\n border: 1,\n borderBottom: 1,\n borderColor: 1,\n borderLeft: 1,\n borderRight: 1,\n borderTop: 1,\n borderWidth: 1,\n margin: 1,\n padding: 1\n };\n t.each([\"borderLeftStyle\", \"borderRightStyle\", \"borderBottomStyle\", \"borderTopStyle\"], function (e, i) {\n t.fx.step[i] = function (t) {\n (\"none\" !== t.end && !t.setAttr || 1 === t.pos && !t.setAttr) && (p.style(t.elem, i, t.end), t.setAttr = !0);\n };\n }), t.fn.addBack || (t.fn.addBack = function (t) {\n return this.add(null == t ? this.prevObject : this.prevObject.filter(t));\n }), t.effects.animateClass = function (n, o, a, r) {\n var h = t.speed(o, a, r);\n return this.queue(function () {\n var o,\n a = t(this),\n r = a.attr(\"class\") || \"\",\n l = h.children ? a.find(\"*\").addBack() : a;\n l = l.map(function () {\n var i = t(this);\n return {\n el: i,\n start: e(this)\n };\n }), o = function o() {\n t.each(s, function (t, e) {\n n[e] && a[e + \"Class\"](n[e]);\n });\n }, o(), l = l.map(function () {\n return this.end = e(this.el[0]), this.diff = i(this.start, this.end), this;\n }), a.attr(\"class\", r), l = l.map(function () {\n var e = this,\n i = t.Deferred(),\n s = t.extend({}, h, {\n queue: !1,\n complete: function complete() {\n i.resolve(e);\n }\n });\n return this.el.animate(this.diff, s), i.promise();\n }), t.when.apply(t, l.get()).done(function () {\n o(), t.each(arguments, function () {\n var e = this.el;\n t.each(this.diff, function (t) {\n e.css(t, \"\");\n });\n }), h.complete.call(a[0]);\n });\n });\n }, t.fn.extend({\n addClass: function (e) {\n return function (i, s, n, o) {\n return s ? t.effects.animateClass.call(this, {\n add: i\n }, s, n, o) : e.apply(this, arguments);\n };\n }(t.fn.addClass),\n removeClass: function (e) {\n return function (i, s, n, o) {\n return arguments.length > 1 ? t.effects.animateClass.call(this, {\n remove: i\n }, s, n, o) : e.apply(this, arguments);\n };\n }(t.fn.removeClass),\n toggleClass: function (e) {\n return function (i, s, n, o, a) {\n return \"boolean\" == typeof s || void 0 === s ? n ? t.effects.animateClass.call(this, s ? {\n add: i\n } : {\n remove: i\n }, n, o, a) : e.apply(this, arguments) : t.effects.animateClass.call(this, {\n toggle: i\n }, s, n, o);\n };\n }(t.fn.toggleClass),\n switchClass: function switchClass(e, i, s, n, o) {\n return t.effects.animateClass.call(this, {\n add: i,\n remove: e\n }, s, n, o);\n }\n });\n }(), function () {\n function e(e, i, s, n) {\n return t.isPlainObject(e) && (i = e, e = e.effect), e = {\n effect: e\n }, null == i && (i = {}), t.isFunction(i) && (n = i, s = null, i = {}), (\"number\" == typeof i || t.fx.speeds[i]) && (n = s, s = i, i = {}), t.isFunction(s) && (n = s, s = null), i && t.extend(e, i), s = s || i.duration, e.duration = t.fx.off ? 0 : \"number\" == typeof s ? s : s in t.fx.speeds ? t.fx.speeds[s] : t.fx.speeds._default, e.complete = n || i.complete, e;\n }\n function i(e) {\n return !e || \"number\" == typeof e || t.fx.speeds[e] ? !0 : \"string\" != typeof e || t.effects.effect[e] ? t.isFunction(e) ? !0 : \"object\" != _typeof(e) || e.effect ? !1 : !0 : !0;\n }\n function s(t, e) {\n var i = e.outerWidth(),\n s = e.outerHeight(),\n n = /^rect\\((-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto)\\)$/,\n o = n.exec(t) || [\"\", 0, i, s, 0];\n return {\n top: parseFloat(o[1]) || 0,\n right: \"auto\" === o[2] ? i : parseFloat(o[2]),\n bottom: \"auto\" === o[3] ? s : parseFloat(o[3]),\n left: parseFloat(o[4]) || 0\n };\n }\n t.expr && t.expr.filters && t.expr.filters.animated && (t.expr.filters.animated = function (e) {\n return function (i) {\n return !!t(i).data(d) || e(i);\n };\n }(t.expr.filters.animated)), t.uiBackCompat !== !1 && t.extend(t.effects, {\n save: function save(t, e) {\n for (var i = 0, s = e.length; s > i; i++) null !== e[i] && t.data(c + e[i], t[0].style[e[i]]);\n },\n restore: function restore(t, e) {\n for (var i, s = 0, n = e.length; n > s; s++) null !== e[s] && (i = t.data(c + e[s]), t.css(e[s], i));\n },\n setMode: function setMode(t, e) {\n return \"toggle\" === e && (e = t.is(\":hidden\") ? \"show\" : \"hide\"), e;\n },\n createWrapper: function createWrapper(e) {\n if (e.parent().is(\".ui-effects-wrapper\")) return e.parent();\n var i = {\n width: e.outerWidth(!0),\n height: e.outerHeight(!0),\n \"float\": e.css(\"float\")\n },\n s = t(\"<div></div>\").addClass(\"ui-effects-wrapper\").css({\n fontSize: \"100%\",\n background: \"transparent\",\n border: \"none\",\n margin: 0,\n padding: 0\n }),\n n = {\n width: e.width(),\n height: e.height()\n },\n o = document.activeElement;\n try {\n o.id;\n } catch (a) {\n o = document.body;\n }\n return e.wrap(s), (e[0] === o || t.contains(e[0], o)) && t(o).trigger(\"focus\"), s = e.parent(), \"static\" === e.css(\"position\") ? (s.css({\n position: \"relative\"\n }), e.css({\n position: \"relative\"\n })) : (t.extend(i, {\n position: e.css(\"position\"),\n zIndex: e.css(\"z-index\")\n }), t.each([\"top\", \"left\", \"bottom\", \"right\"], function (t, s) {\n i[s] = e.css(s), isNaN(parseInt(i[s], 10)) && (i[s] = \"auto\");\n }), e.css({\n position: \"relative\",\n top: 0,\n left: 0,\n right: \"auto\",\n bottom: \"auto\"\n })), e.css(n), s.css(i).show();\n },\n removeWrapper: function removeWrapper(e) {\n var i = document.activeElement;\n return e.parent().is(\".ui-effects-wrapper\") && (e.parent().replaceWith(e), (e[0] === i || t.contains(e[0], i)) && t(i).trigger(\"focus\")), e;\n }\n }), t.extend(t.effects, {\n version: \"1.12.1\",\n define: function define(e, i, s) {\n return s || (s = i, i = \"effect\"), t.effects.effect[e] = s, t.effects.effect[e].mode = i, s;\n },\n scaledDimensions: function scaledDimensions(t, e, i) {\n if (0 === e) return {\n height: 0,\n width: 0,\n outerHeight: 0,\n outerWidth: 0\n };\n var s = \"horizontal\" !== i ? (e || 100) / 100 : 1,\n n = \"vertical\" !== i ? (e || 100) / 100 : 1;\n return {\n height: t.height() * n,\n width: t.width() * s,\n outerHeight: t.outerHeight() * n,\n outerWidth: t.outerWidth() * s\n };\n },\n clipToBox: function clipToBox(t) {\n return {\n width: t.clip.right - t.clip.left,\n height: t.clip.bottom - t.clip.top,\n left: t.clip.left,\n top: t.clip.top\n };\n },\n unshift: function unshift(t, e, i) {\n var s = t.queue();\n e > 1 && s.splice.apply(s, [1, 0].concat(s.splice(e, i))), t.dequeue();\n },\n saveStyle: function saveStyle(t) {\n t.data(u, t[0].style.cssText);\n },\n restoreStyle: function restoreStyle(t) {\n t[0].style.cssText = t.data(u) || \"\", t.removeData(u);\n },\n mode: function mode(t, e) {\n var i = t.is(\":hidden\");\n return \"toggle\" === e && (e = i ? \"show\" : \"hide\"), (i ? \"hide\" === e : \"show\" === e) && (e = \"none\"), e;\n },\n getBaseline: function getBaseline(t, e) {\n var i, s;\n switch (t[0]) {\n case \"top\":\n i = 0;\n break;\n case \"middle\":\n i = .5;\n break;\n case \"bottom\":\n i = 1;\n break;\n default:\n i = t[0] / e.height;\n }\n switch (t[1]) {\n case \"left\":\n s = 0;\n break;\n case \"center\":\n s = .5;\n break;\n case \"right\":\n s = 1;\n break;\n default:\n s = t[1] / e.width;\n }\n return {\n x: s,\n y: i\n };\n },\n createPlaceholder: function createPlaceholder(e) {\n var i,\n s = e.css(\"position\"),\n n = e.position();\n return e.css({\n marginTop: e.css(\"marginTop\"),\n marginBottom: e.css(\"marginBottom\"),\n marginLeft: e.css(\"marginLeft\"),\n marginRight: e.css(\"marginRight\")\n }).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()), /^(static|relative)/.test(s) && (s = \"absolute\", i = t(\"<\" + e[0].nodeName + \">\").insertAfter(e).css({\n display: /^(inline|ruby)/.test(e.css(\"display\")) ? \"inline-block\" : \"block\",\n visibility: \"hidden\",\n marginTop: e.css(\"marginTop\"),\n marginBottom: e.css(\"marginBottom\"),\n marginLeft: e.css(\"marginLeft\"),\n marginRight: e.css(\"marginRight\"),\n \"float\": e.css(\"float\")\n }).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass(\"ui-effects-placeholder\"), e.data(c + \"placeholder\", i)), e.css({\n position: s,\n left: n.left,\n top: n.top\n }), i;\n },\n removePlaceholder: function removePlaceholder(t) {\n var e = c + \"placeholder\",\n i = t.data(e);\n i && (i.remove(), t.removeData(e));\n },\n cleanUp: function cleanUp(e) {\n t.effects.restoreStyle(e), t.effects.removePlaceholder(e);\n },\n setTransition: function setTransition(e, i, s, n) {\n return n = n || {}, t.each(i, function (t, i) {\n var o = e.cssUnit(i);\n o[0] > 0 && (n[i] = o[0] * s + o[1]);\n }), n;\n }\n }), t.fn.extend({\n effect: function effect() {\n function i(e) {\n function i() {\n r.removeData(d), t.effects.cleanUp(r), \"hide\" === s.mode && r.hide(), a();\n }\n function a() {\n t.isFunction(h) && h.call(r[0]), t.isFunction(e) && e();\n }\n var r = t(this);\n s.mode = c.shift(), t.uiBackCompat === !1 || o ? \"none\" === s.mode ? (r[l](), a()) : n.call(r[0], s, i) : (r.is(\":hidden\") ? \"hide\" === l : \"show\" === l) ? (r[l](), a()) : n.call(r[0], s, a);\n }\n var s = e.apply(this, arguments),\n n = t.effects.effect[s.effect],\n o = n.mode,\n a = s.queue,\n r = a || \"fx\",\n h = s.complete,\n l = s.mode,\n c = [],\n u = function u(e) {\n var i = t(this),\n s = t.effects.mode(i, l) || o;\n i.data(d, !0), c.push(s), o && (\"show\" === s || s === o && \"hide\" === s) && i.show(), o && \"none\" === s || t.effects.saveStyle(i), t.isFunction(e) && e();\n };\n return t.fx.off || !n ? l ? this[l](s.duration, h) : this.each(function () {\n h && h.call(this);\n }) : a === !1 ? this.each(u).each(i) : this.queue(r, u).queue(r, i);\n },\n show: function (t) {\n return function (s) {\n if (i(s)) return t.apply(this, arguments);\n var n = e.apply(this, arguments);\n return n.mode = \"show\", this.effect.call(this, n);\n };\n }(t.fn.show),\n hide: function (t) {\n return function (s) {\n if (i(s)) return t.apply(this, arguments);\n var n = e.apply(this, arguments);\n return n.mode = \"hide\", this.effect.call(this, n);\n };\n }(t.fn.hide),\n toggle: function (t) {\n return function (s) {\n if (i(s) || \"boolean\" == typeof s) return t.apply(this, arguments);\n var n = e.apply(this, arguments);\n return n.mode = \"toggle\", this.effect.call(this, n);\n };\n }(t.fn.toggle),\n cssUnit: function cssUnit(e) {\n var i = this.css(e),\n s = [];\n return t.each([\"em\", \"px\", \"%\", \"pt\"], function (t, e) {\n i.indexOf(e) > 0 && (s = [parseFloat(i), e]);\n }), s;\n },\n cssClip: function cssClip(t) {\n return t ? this.css(\"clip\", \"rect(\" + t.top + \"px \" + t.right + \"px \" + t.bottom + \"px \" + t.left + \"px)\") : s(this.css(\"clip\"), this);\n },\n transfer: function transfer(e, i) {\n var s = t(this),\n n = t(e.to),\n o = \"fixed\" === n.css(\"position\"),\n a = t(\"body\"),\n r = o ? a.scrollTop() : 0,\n h = o ? a.scrollLeft() : 0,\n l = n.offset(),\n c = {\n top: l.top - r,\n left: l.left - h,\n height: n.innerHeight(),\n width: n.innerWidth()\n },\n u = s.offset(),\n d = t(\"<div class='ui-effects-transfer'></div>\").appendTo(\"body\").addClass(e.className).css({\n top: u.top - r,\n left: u.left - h,\n height: s.innerHeight(),\n width: s.innerWidth(),\n position: o ? \"fixed\" : \"absolute\"\n }).animate(c, e.duration, e.easing, function () {\n d.remove(), t.isFunction(i) && i();\n });\n }\n }), t.fx.step.clip = function (e) {\n e.clipInit || (e.start = t(e.elem).cssClip(), \"string\" == typeof e.end && (e.end = s(e.end, e.elem)), e.clipInit = !0), t(e.elem).cssClip({\n top: e.pos * (e.end.top - e.start.top) + e.start.top,\n right: e.pos * (e.end.right - e.start.right) + e.start.right,\n bottom: e.pos * (e.end.bottom - e.start.bottom) + e.start.bottom,\n left: e.pos * (e.end.left - e.start.left) + e.start.left\n });\n };\n }(), function () {\n var e = {};\n t.each([\"Quad\", \"Cubic\", \"Quart\", \"Quint\", \"Expo\"], function (t, i) {\n e[i] = function (e) {\n return Math.pow(e, t + 2);\n };\n }), t.extend(e, {\n Sine: function Sine(t) {\n return 1 - Math.cos(t * Math.PI / 2);\n },\n Circ: function Circ(t) {\n return 1 - Math.sqrt(1 - t * t);\n },\n Elastic: function Elastic(t) {\n return 0 === t || 1 === t ? t : -Math.pow(2, 8 * (t - 1)) * Math.sin((80 * (t - 1) - 7.5) * Math.PI / 15);\n },\n Back: function Back(t) {\n return t * t * (3 * t - 2);\n },\n Bounce: function Bounce(t) {\n for (var e, i = 4; ((e = Math.pow(2, --i)) - 1) / 11 > t;);\n return 1 / Math.pow(4, 3 - i) - 7.5625 * Math.pow((3 * e - 2) / 22 - t, 2);\n }\n }), t.each(e, function (e, i) {\n t.easing[\"easeIn\" + e] = i, t.easing[\"easeOut\" + e] = function (t) {\n return 1 - i(1 - t);\n }, t.easing[\"easeInOut\" + e] = function (t) {\n return .5 > t ? i(2 * t) / 2 : 1 - i(-2 * t + 2) / 2;\n };\n });\n }();\n var f = t.effects;\n t.effects.define(\"blind\", \"hide\", function (e, i) {\n var s = {\n up: [\"bottom\", \"top\"],\n vertical: [\"bottom\", \"top\"],\n down: [\"top\", \"bottom\"],\n left: [\"right\", \"left\"],\n horizontal: [\"right\", \"left\"],\n right: [\"left\", \"right\"]\n },\n n = t(this),\n o = e.direction || \"up\",\n a = n.cssClip(),\n r = {\n clip: t.extend({}, a)\n },\n h = t.effects.createPlaceholder(n);\n r.clip[s[o][0]] = r.clip[s[o][1]], \"show\" === e.mode && (n.cssClip(r.clip), h && h.css(t.effects.clipToBox(r)), r.clip = a), h && h.animate(t.effects.clipToBox(r), e.duration, e.easing), n.animate(r, {\n queue: !1,\n duration: e.duration,\n easing: e.easing,\n complete: i\n });\n }), t.effects.define(\"bounce\", function (e, i) {\n var s,\n n,\n o,\n a = t(this),\n r = e.mode,\n h = \"hide\" === r,\n l = \"show\" === r,\n c = e.direction || \"up\",\n u = e.distance,\n d = e.times || 5,\n p = 2 * d + (l || h ? 1 : 0),\n f = e.duration / p,\n g = e.easing,\n m = \"up\" === c || \"down\" === c ? \"top\" : \"left\",\n _ = \"up\" === c || \"left\" === c,\n v = 0,\n b = a.queue().length;\n for (t.effects.createPlaceholder(a), o = a.css(m), u || (u = a[\"top\" === m ? \"outerHeight\" : \"outerWidth\"]() / 3), l && (n = {\n opacity: 1\n }, n[m] = o, a.css(\"opacity\", 0).css(m, _ ? 2 * -u : 2 * u).animate(n, f, g)), h && (u /= Math.pow(2, d - 1)), n = {}, n[m] = o; d > v; v++) s = {}, s[m] = (_ ? \"-=\" : \"+=\") + u, a.animate(s, f, g).animate(n, f, g), u = h ? 2 * u : u / 2;\n h && (s = {\n opacity: 0\n }, s[m] = (_ ? \"-=\" : \"+=\") + u, a.animate(s, f, g)), a.queue(i), t.effects.unshift(a, b, p + 1);\n }), t.effects.define(\"clip\", \"hide\", function (e, i) {\n var s,\n n = {},\n o = t(this),\n a = e.direction || \"vertical\",\n r = \"both\" === a,\n h = r || \"horizontal\" === a,\n l = r || \"vertical\" === a;\n s = o.cssClip(), n.clip = {\n top: l ? (s.bottom - s.top) / 2 : s.top,\n right: h ? (s.right - s.left) / 2 : s.right,\n bottom: l ? (s.bottom - s.top) / 2 : s.bottom,\n left: h ? (s.right - s.left) / 2 : s.left\n }, t.effects.createPlaceholder(o), \"show\" === e.mode && (o.cssClip(n.clip), n.clip = s), o.animate(n, {\n queue: !1,\n duration: e.duration,\n easing: e.easing,\n complete: i\n });\n }), t.effects.define(\"drop\", \"hide\", function (e, i) {\n var s,\n n = t(this),\n o = e.mode,\n a = \"show\" === o,\n r = e.direction || \"left\",\n h = \"up\" === r || \"down\" === r ? \"top\" : \"left\",\n l = \"up\" === r || \"left\" === r ? \"-=\" : \"+=\",\n c = \"+=\" === l ? \"-=\" : \"+=\",\n u = {\n opacity: 0\n };\n t.effects.createPlaceholder(n), s = e.distance || n[\"top\" === h ? \"outerHeight\" : \"outerWidth\"](!0) / 2, u[h] = l + s, a && (n.css(u), u[h] = c + s, u.opacity = 1), n.animate(u, {\n queue: !1,\n duration: e.duration,\n easing: e.easing,\n complete: i\n });\n }), t.effects.define(\"explode\", \"hide\", function (e, i) {\n function s() {\n b.push(this), b.length === u * d && n();\n }\n function n() {\n p.css({\n visibility: \"visible\"\n }), t(b).remove(), i();\n }\n var o,\n a,\n r,\n h,\n l,\n c,\n u = e.pieces ? Math.round(Math.sqrt(e.pieces)) : 3,\n d = u,\n p = t(this),\n f = e.mode,\n g = \"show\" === f,\n m = p.show().css(\"visibility\", \"hidden\").offset(),\n _ = Math.ceil(p.outerWidth() / d),\n v = Math.ceil(p.outerHeight() / u),\n b = [];\n for (o = 0; u > o; o++) for (h = m.top + o * v, c = o - (u - 1) / 2, a = 0; d > a; a++) r = m.left + a * _, l = a - (d - 1) / 2, p.clone().appendTo(\"body\").wrap(\"<div></div>\").css({\n position: \"absolute\",\n visibility: \"visible\",\n left: -a * _,\n top: -o * v\n }).parent().addClass(\"ui-effects-explode\").css({\n position: \"absolute\",\n overflow: \"hidden\",\n width: _,\n height: v,\n left: r + (g ? l * _ : 0),\n top: h + (g ? c * v : 0),\n opacity: g ? 0 : 1\n }).animate({\n left: r + (g ? 0 : l * _),\n top: h + (g ? 0 : c * v),\n opacity: g ? 1 : 0\n }, e.duration || 500, e.easing, s);\n }), t.effects.define(\"fade\", \"toggle\", function (e, i) {\n var s = \"show\" === e.mode;\n t(this).css(\"opacity\", s ? 0 : 1).animate({\n opacity: s ? 1 : 0\n }, {\n queue: !1,\n duration: e.duration,\n easing: e.easing,\n complete: i\n });\n }), t.effects.define(\"fold\", \"hide\", function (e, i) {\n var s = t(this),\n n = e.mode,\n o = \"show\" === n,\n a = \"hide\" === n,\n r = e.size || 15,\n h = /([0-9]+)%/.exec(r),\n l = !!e.horizFirst,\n c = l ? [\"right\", \"bottom\"] : [\"bottom\", \"right\"],\n u = e.duration / 2,\n d = t.effects.createPlaceholder(s),\n p = s.cssClip(),\n f = {\n clip: t.extend({}, p)\n },\n g = {\n clip: t.extend({}, p)\n },\n m = [p[c[0]], p[c[1]]],\n _ = s.queue().length;\n h && (r = parseInt(h[1], 10) / 100 * m[a ? 0 : 1]), f.clip[c[0]] = r, g.clip[c[0]] = r, g.clip[c[1]] = 0, o && (s.cssClip(g.clip), d && d.css(t.effects.clipToBox(g)), g.clip = p), s.queue(function (i) {\n d && d.animate(t.effects.clipToBox(f), u, e.easing).animate(t.effects.clipToBox(g), u, e.easing), i();\n }).animate(f, u, e.easing).animate(g, u, e.easing).queue(i), t.effects.unshift(s, _, 4);\n }), t.effects.define(\"highlight\", \"show\", function (e, i) {\n var s = t(this),\n n = {\n backgroundColor: s.css(\"backgroundColor\")\n };\n \"hide\" === e.mode && (n.opacity = 0), t.effects.saveStyle(s), s.css({\n backgroundImage: \"none\",\n backgroundColor: e.color || \"#ffff99\"\n }).animate(n, {\n queue: !1,\n duration: e.duration,\n easing: e.easing,\n complete: i\n });\n }), t.effects.define(\"size\", function (e, i) {\n var s,\n n,\n o,\n a = t(this),\n r = [\"fontSize\"],\n h = [\"borderTopWidth\", \"borderBottomWidth\", \"paddingTop\", \"paddingBottom\"],\n l = [\"borderLeftWidth\", \"borderRightWidth\", \"paddingLeft\", \"paddingRight\"],\n c = e.mode,\n u = \"effect\" !== c,\n d = e.scale || \"both\",\n p = e.origin || [\"middle\", \"center\"],\n f = a.css(\"position\"),\n g = a.position(),\n m = t.effects.scaledDimensions(a),\n _ = e.from || m,\n v = e.to || t.effects.scaledDimensions(a, 0);\n t.effects.createPlaceholder(a), \"show\" === c && (o = _, _ = v, v = o), n = {\n from: {\n y: _.height / m.height,\n x: _.width / m.width\n },\n to: {\n y: v.height / m.height,\n x: v.width / m.width\n }\n }, (\"box\" === d || \"both\" === d) && (n.from.y !== n.to.y && (_ = t.effects.setTransition(a, h, n.from.y, _), v = t.effects.setTransition(a, h, n.to.y, v)), n.from.x !== n.to.x && (_ = t.effects.setTransition(a, l, n.from.x, _), v = t.effects.setTransition(a, l, n.to.x, v))), (\"content\" === d || \"both\" === d) && n.from.y !== n.to.y && (_ = t.effects.setTransition(a, r, n.from.y, _), v = t.effects.setTransition(a, r, n.to.y, v)), p && (s = t.effects.getBaseline(p, m), _.top = (m.outerHeight - _.outerHeight) * s.y + g.top, _.left = (m.outerWidth - _.outerWidth) * s.x + g.left, v.top = (m.outerHeight - v.outerHeight) * s.y + g.top, v.left = (m.outerWidth - v.outerWidth) * s.x + g.left), a.css(_), (\"content\" === d || \"both\" === d) && (h = h.concat([\"marginTop\", \"marginBottom\"]).concat(r), l = l.concat([\"marginLeft\", \"marginRight\"]), a.find(\"*[width]\").each(function () {\n var i = t(this),\n s = t.effects.scaledDimensions(i),\n o = {\n height: s.height * n.from.y,\n width: s.width * n.from.x,\n outerHeight: s.outerHeight * n.from.y,\n outerWidth: s.outerWidth * n.from.x\n },\n a = {\n height: s.height * n.to.y,\n width: s.width * n.to.x,\n outerHeight: s.height * n.to.y,\n outerWidth: s.width * n.to.x\n };\n n.from.y !== n.to.y && (o = t.effects.setTransition(i, h, n.from.y, o), a = t.effects.setTransition(i, h, n.to.y, a)), n.from.x !== n.to.x && (o = t.effects.setTransition(i, l, n.from.x, o), a = t.effects.setTransition(i, l, n.to.x, a)), u && t.effects.saveStyle(i), i.css(o), i.animate(a, e.duration, e.easing, function () {\n u && t.effects.restoreStyle(i);\n });\n })), a.animate(v, {\n queue: !1,\n duration: e.duration,\n easing: e.easing,\n complete: function complete() {\n var e = a.offset();\n 0 === v.opacity && a.css(\"opacity\", _.opacity), u || (a.css(\"position\", \"static\" === f ? \"relative\" : f).offset(e), t.effects.saveStyle(a)), i();\n }\n });\n }), t.effects.define(\"scale\", function (e, i) {\n var s = t(this),\n n = e.mode,\n o = parseInt(e.percent, 10) || (0 === parseInt(e.percent, 10) ? 0 : \"effect\" !== n ? 0 : 100),\n a = t.extend(!0, {\n from: t.effects.scaledDimensions(s),\n to: t.effects.scaledDimensions(s, o, e.direction || \"both\"),\n origin: e.origin || [\"middle\", \"center\"]\n }, e);\n e.fade && (a.from.opacity = 1, a.to.opacity = 0), t.effects.effect.size.call(this, a, i);\n }), t.effects.define(\"puff\", \"hide\", function (e, i) {\n var s = t.extend(!0, {}, e, {\n fade: !0,\n percent: parseInt(e.percent, 10) || 150\n });\n t.effects.effect.scale.call(this, s, i);\n }), t.effects.define(\"pulsate\", \"show\", function (e, i) {\n var s = t(this),\n n = e.mode,\n o = \"show\" === n,\n a = \"hide\" === n,\n r = o || a,\n h = 2 * (e.times || 5) + (r ? 1 : 0),\n l = e.duration / h,\n c = 0,\n u = 1,\n d = s.queue().length;\n for ((o || !s.is(\":visible\")) && (s.css(\"opacity\", 0).show(), c = 1); h > u; u++) s.animate({\n opacity: c\n }, l, e.easing), c = 1 - c;\n s.animate({\n opacity: c\n }, l, e.easing), s.queue(i), t.effects.unshift(s, d, h + 1);\n }), t.effects.define(\"shake\", function (e, i) {\n var s = 1,\n n = t(this),\n o = e.direction || \"left\",\n a = e.distance || 20,\n r = e.times || 3,\n h = 2 * r + 1,\n l = Math.round(e.duration / h),\n c = \"up\" === o || \"down\" === o ? \"top\" : \"left\",\n u = \"up\" === o || \"left\" === o,\n d = {},\n p = {},\n f = {},\n g = n.queue().length;\n for (t.effects.createPlaceholder(n), d[c] = (u ? \"-=\" : \"+=\") + a, p[c] = (u ? \"+=\" : \"-=\") + 2 * a, f[c] = (u ? \"-=\" : \"+=\") + 2 * a, n.animate(d, l, e.easing); r > s; s++) n.animate(p, l, e.easing).animate(f, l, e.easing);\n n.animate(p, l, e.easing).animate(d, l / 2, e.easing).queue(i), t.effects.unshift(n, g, h + 1);\n }), t.effects.define(\"slide\", \"show\", function (e, i) {\n var s,\n n,\n o = t(this),\n a = {\n up: [\"bottom\", \"top\"],\n down: [\"top\", \"bottom\"],\n left: [\"right\", \"left\"],\n right: [\"left\", \"right\"]\n },\n r = e.mode,\n h = e.direction || \"left\",\n l = \"up\" === h || \"down\" === h ? \"top\" : \"left\",\n c = \"up\" === h || \"left\" === h,\n u = e.distance || o[\"top\" === l ? \"outerHeight\" : \"outerWidth\"](!0),\n d = {};\n t.effects.createPlaceholder(o), s = o.cssClip(), n = o.position()[l], d[l] = (c ? -1 : 1) * u + n, d.clip = o.cssClip(), d.clip[a[h][1]] = d.clip[a[h][0]], \"show\" === r && (o.cssClip(d.clip), o.css(l, d[l]), d.clip = s, d[l] = n), o.animate(d, {\n queue: !1,\n duration: e.duration,\n easing: e.easing,\n complete: i\n });\n });\n var f;\n t.uiBackCompat !== !1 && (f = t.effects.define(\"transfer\", function (e, i) {\n t(this).transfer(e, i);\n })), t.ui.focusable = function (i, s) {\n var n,\n o,\n a,\n r,\n h,\n l = i.nodeName.toLowerCase();\n return \"area\" === l ? (n = i.parentNode, o = n.name, i.href && o && \"map\" === n.nodeName.toLowerCase() ? (a = t(\"img[usemap='#\" + o + \"']\"), a.length > 0 && a.is(\":visible\")) : !1) : (/^(input|select|textarea|button|object)$/.test(l) ? (r = !i.disabled, r && (h = t(i).closest(\"fieldset\")[0], h && (r = !h.disabled))) : r = \"a\" === l ? i.href || s : s, r && t(i).is(\":visible\") && e(t(i)));\n }, t.extend(t.expr[\":\"], {\n focusable: function focusable(e) {\n return t.ui.focusable(e, null != t.attr(e, \"tabindex\"));\n }\n }), t.ui.focusable, t.fn.form = function () {\n return \"string\" == typeof this[0].form ? this.closest(\"form\") : t(this[0].form);\n }, t.ui.formResetMixin = {\n _formResetHandler: function _formResetHandler() {\n var e = t(this);\n setTimeout(function () {\n var i = e.data(\"ui-form-reset-instances\");\n t.each(i, function () {\n this.refresh();\n });\n });\n },\n _bindFormResetHandler: function _bindFormResetHandler() {\n if (this.form = this.element.form(), this.form.length) {\n var t = this.form.data(\"ui-form-reset-instances\") || [];\n t.length || this.form.on(\"reset.ui-form-reset\", this._formResetHandler), t.push(this), this.form.data(\"ui-form-reset-instances\", t);\n }\n },\n _unbindFormResetHandler: function _unbindFormResetHandler() {\n if (this.form.length) {\n var e = this.form.data(\"ui-form-reset-instances\");\n e.splice(t.inArray(this, e), 1), e.length ? this.form.data(\"ui-form-reset-instances\", e) : this.form.removeData(\"ui-form-reset-instances\").off(\"reset.ui-form-reset\");\n }\n }\n }, \"1.7\" === t.fn.jquery.substring(0, 3) && (t.each([\"Width\", \"Height\"], function (e, i) {\n function s(e, i, s, o) {\n return t.each(n, function () {\n i -= parseFloat(t.css(e, \"padding\" + this)) || 0, s && (i -= parseFloat(t.css(e, \"border\" + this + \"Width\")) || 0), o && (i -= parseFloat(t.css(e, \"margin\" + this)) || 0);\n }), i;\n }\n var n = \"Width\" === i ? [\"Left\", \"Right\"] : [\"Top\", \"Bottom\"],\n o = i.toLowerCase(),\n a = {\n innerWidth: t.fn.innerWidth,\n innerHeight: t.fn.innerHeight,\n outerWidth: t.fn.outerWidth,\n outerHeight: t.fn.outerHeight\n };\n t.fn[\"inner\" + i] = function (e) {\n return void 0 === e ? a[\"inner\" + i].call(this) : this.each(function () {\n t(this).css(o, s(this, e) + \"px\");\n });\n }, t.fn[\"outer\" + i] = function (e, n) {\n return \"number\" != typeof e ? a[\"outer\" + i].call(this, e) : this.each(function () {\n t(this).css(o, s(this, e, !0, n) + \"px\");\n });\n };\n }), t.fn.addBack = function (t) {\n return this.add(null == t ? this.prevObject : this.prevObject.filter(t));\n }), t.ui.keyCode = {\n BACKSPACE: 8,\n COMMA: 188,\n DELETE: 46,\n DOWN: 40,\n END: 35,\n ENTER: 13,\n ESCAPE: 27,\n HOME: 36,\n LEFT: 37,\n PAGE_DOWN: 34,\n PAGE_UP: 33,\n PERIOD: 190,\n RIGHT: 39,\n SPACE: 32,\n TAB: 9,\n UP: 38\n }, t.ui.escapeSelector = function () {\n var t = /([!\"#$%&'()*+,./:;<=>?@[\\]^`{|}~])/g;\n return function (e) {\n return e.replace(t, \"\\\\$1\");\n };\n }(), t.fn.labels = function () {\n var e, i, s, n, o;\n return this[0].labels && this[0].labels.length ? this.pushStack(this[0].labels) : (n = this.eq(0).parents(\"label\"), s = this.attr(\"id\"), s && (e = this.eq(0).parents().last(), o = e.add(e.length ? e.siblings() : this.siblings()), i = \"label[for='\" + t.ui.escapeSelector(s) + \"']\", n = n.add(o.find(i).addBack(i))), this.pushStack(n));\n }, t.fn.scrollParent = function (e) {\n var i = this.css(\"position\"),\n s = \"absolute\" === i,\n n = e ? /(auto|scroll|hidden)/ : /(auto|scroll)/,\n o = this.parents().filter(function () {\n var e = t(this);\n return s && \"static\" === e.css(\"position\") ? !1 : n.test(e.css(\"overflow\") + e.css(\"overflow-y\") + e.css(\"overflow-x\"));\n }).eq(0);\n return \"fixed\" !== i && o.length ? o : t(this[0].ownerDocument || document);\n }, t.extend(t.expr[\":\"], {\n tabbable: function tabbable(e) {\n var i = t.attr(e, \"tabindex\"),\n s = null != i;\n return (!s || i >= 0) && t.ui.focusable(e, s);\n }\n }), t.fn.extend({\n uniqueId: function () {\n var t = 0;\n return function () {\n return this.each(function () {\n this.id || (this.id = \"ui-id-\" + ++t);\n });\n };\n }(),\n removeUniqueId: function removeUniqueId() {\n return this.each(function () {\n /^ui-id-\\d+$/.test(this.id) && t(this).removeAttr(\"id\");\n });\n }\n }), t.widget(\"ui.accordion\", {\n version: \"1.12.1\",\n options: {\n active: 0,\n animate: {},\n classes: {\n \"ui-accordion-header\": \"ui-corner-top\",\n \"ui-accordion-header-collapsed\": \"ui-corner-all\",\n \"ui-accordion-content\": \"ui-corner-bottom\"\n },\n collapsible: !1,\n event: \"click\",\n header: \"> li > :first-child, > :not(li):even\",\n heightStyle: \"auto\",\n icons: {\n activeHeader: \"ui-icon-triangle-1-s\",\n header: \"ui-icon-triangle-1-e\"\n },\n activate: null,\n beforeActivate: null\n },\n hideProps: {\n borderTopWidth: \"hide\",\n borderBottomWidth: \"hide\",\n paddingTop: \"hide\",\n paddingBottom: \"hide\",\n height: \"hide\"\n },\n showProps: {\n borderTopWidth: \"show\",\n borderBottomWidth: \"show\",\n paddingTop: \"show\",\n paddingBottom: \"show\",\n height: \"show\"\n },\n _create: function _create() {\n var e = this.options;\n this.prevShow = this.prevHide = t(), this._addClass(\"ui-accordion\", \"ui-widget ui-helper-reset\"), this.element.attr(\"role\", \"tablist\"), e.collapsible || e.active !== !1 && null != e.active || (e.active = 0), this._processPanels(), 0 > e.active && (e.active += this.headers.length), this._refresh();\n },\n _getCreateEventData: function _getCreateEventData() {\n return {\n header: this.active,\n panel: this.active.length ? this.active.next() : t()\n };\n },\n _createIcons: function _createIcons() {\n var e,\n i,\n s = this.options.icons;\n s && (e = t(\"<span>\"), this._addClass(e, \"ui-accordion-header-icon\", \"ui-icon \" + s.header), e.prependTo(this.headers), i = this.active.children(\".ui-accordion-header-icon\"), this._removeClass(i, s.header)._addClass(i, null, s.activeHeader)._addClass(this.headers, \"ui-accordion-icons\"));\n },\n _destroyIcons: function _destroyIcons() {\n this._removeClass(this.headers, \"ui-accordion-icons\"), this.headers.children(\".ui-accordion-header-icon\").remove();\n },\n _destroy: function _destroy() {\n var t;\n this.element.removeAttr(\"role\"), this.headers.removeAttr(\"role aria-expanded aria-selected aria-controls tabIndex\").removeUniqueId(), this._destroyIcons(), t = this.headers.next().css(\"display\", \"\").removeAttr(\"role aria-hidden aria-labelledby\").removeUniqueId(), \"content\" !== this.options.heightStyle && t.css(\"height\", \"\");\n },\n _setOption: function _setOption(t, e) {\n return \"active\" === t ? (this._activate(e), void 0) : (\"event\" === t && (this.options.event && this._off(this.headers, this.options.event), this._setupEvents(e)), this._super(t, e), \"collapsible\" !== t || e || this.options.active !== !1 || this._activate(0), \"icons\" === t && (this._destroyIcons(), e && this._createIcons()), void 0);\n },\n _setOptionDisabled: function _setOptionDisabled(t) {\n this._super(t), this.element.attr(\"aria-disabled\", t), this._toggleClass(null, \"ui-state-disabled\", !!t), this._toggleClass(this.headers.add(this.headers.next()), null, \"ui-state-disabled\", !!t);\n },\n _keydown: function _keydown(e) {\n if (!e.altKey && !e.ctrlKey) {\n var i = t.ui.keyCode,\n s = this.headers.length,\n n = this.headers.index(e.target),\n o = !1;\n switch (e.keyCode) {\n case i.RIGHT:\n case i.DOWN:\n o = this.headers[(n + 1) % s];\n break;\n case i.LEFT:\n case i.UP:\n o = this.headers[(n - 1 + s) % s];\n break;\n case i.SPACE:\n case i.ENTER:\n this._eventHandler(e);\n break;\n case i.HOME:\n o = this.headers[0];\n break;\n case i.END:\n o = this.headers[s - 1];\n }\n o && (t(e.target).attr(\"tabIndex\", -1), t(o).attr(\"tabIndex\", 0), t(o).trigger(\"focus\"), e.preventDefault());\n }\n },\n _panelKeyDown: function _panelKeyDown(e) {\n e.keyCode === t.ui.keyCode.UP && e.ctrlKey && t(e.currentTarget).prev().trigger(\"focus\");\n },\n refresh: function refresh() {\n var e = this.options;\n this._processPanels(), e.active === !1 && e.collapsible === !0 || !this.headers.length ? (e.active = !1, this.active = t()) : e.active === !1 ? this._activate(0) : this.active.length && !t.contains(this.element[0], this.active[0]) ? this.headers.length === this.headers.find(\".ui-state-disabled\").length ? (e.active = !1, this.active = t()) : this._activate(Math.max(0, e.active - 1)) : e.active = this.headers.index(this.active), this._destroyIcons(), this._refresh();\n },\n _processPanels: function _processPanels() {\n var t = this.headers,\n e = this.panels;\n this.headers = this.element.find(this.options.header), this._addClass(this.headers, \"ui-accordion-header ui-accordion-header-collapsed\", \"ui-state-default\"), this.panels = this.headers.next().filter(\":not(.ui-accordion-content-active)\").hide(), this._addClass(this.panels, \"ui-accordion-content\", \"ui-helper-reset ui-widget-content\"), e && (this._off(t.not(this.headers)), this._off(e.not(this.panels)));\n },\n _refresh: function _refresh() {\n var e,\n i = this.options,\n s = i.heightStyle,\n n = this.element.parent();\n this.active = this._findActive(i.active), this._addClass(this.active, \"ui-accordion-header-active\", \"ui-state-active\")._removeClass(this.active, \"ui-accordion-header-collapsed\"), this._addClass(this.active.next(), \"ui-accordion-content-active\"), this.active.next().show(), this.headers.attr(\"role\", \"tab\").each(function () {\n var e = t(this),\n i = e.uniqueId().attr(\"id\"),\n s = e.next(),\n n = s.uniqueId().attr(\"id\");\n e.attr(\"aria-controls\", n), s.attr(\"aria-labelledby\", i);\n }).next().attr(\"role\", \"tabpanel\"), this.headers.not(this.active).attr({\n \"aria-selected\": \"false\",\n \"aria-expanded\": \"false\",\n tabIndex: -1\n }).next().attr({\n \"aria-hidden\": \"true\"\n }).hide(), this.active.length ? this.active.attr({\n \"aria-selected\": \"true\",\n \"aria-expanded\": \"true\",\n tabIndex: 0\n }).next().attr({\n \"aria-hidden\": \"false\"\n }) : this.headers.eq(0).attr(\"tabIndex\", 0), this._createIcons(), this._setupEvents(i.event), \"fill\" === s ? (e = n.height(), this.element.siblings(\":visible\").each(function () {\n var i = t(this),\n s = i.css(\"position\");\n \"absolute\" !== s && \"fixed\" !== s && (e -= i.outerHeight(!0));\n }), this.headers.each(function () {\n e -= t(this).outerHeight(!0);\n }), this.headers.next().each(function () {\n t(this).height(Math.max(0, e - t(this).innerHeight() + t(this).height()));\n }).css(\"overflow\", \"auto\")) : \"auto\" === s && (e = 0, this.headers.next().each(function () {\n var i = t(this).is(\":visible\");\n i || t(this).show(), e = Math.max(e, t(this).css(\"height\", \"\").height()), i || t(this).hide();\n }).height(e));\n },\n _activate: function _activate(e) {\n var i = this._findActive(e)[0];\n i !== this.active[0] && (i = i || this.active[0], this._eventHandler({\n target: i,\n currentTarget: i,\n preventDefault: t.noop\n }));\n },\n _findActive: function _findActive(e) {\n return \"number\" == typeof e ? this.headers.eq(e) : t();\n },\n _setupEvents: function _setupEvents(e) {\n var i = {\n keydown: \"_keydown\"\n };\n e && t.each(e.split(\" \"), function (t, e) {\n i[e] = \"_eventHandler\";\n }), this._off(this.headers.add(this.headers.next())), this._on(this.headers, i), this._on(this.headers.next(), {\n keydown: \"_panelKeyDown\"\n }), this._hoverable(this.headers), this._focusable(this.headers);\n },\n _eventHandler: function _eventHandler(e) {\n var i,\n s,\n n = this.options,\n o = this.active,\n a = t(e.currentTarget),\n r = a[0] === o[0],\n h = r && n.collapsible,\n l = h ? t() : a.next(),\n c = o.next(),\n u = {\n oldHeader: o,\n oldPanel: c,\n newHeader: h ? t() : a,\n newPanel: l\n };\n e.preventDefault(), r && !n.collapsible || this._trigger(\"beforeActivate\", e, u) === !1 || (n.active = h ? !1 : this.headers.index(a), this.active = r ? t() : a, this._toggle(u), this._removeClass(o, \"ui-accordion-header-active\", \"ui-state-active\"), n.icons && (i = o.children(\".ui-accordion-header-icon\"), this._removeClass(i, null, n.icons.activeHeader)._addClass(i, null, n.icons.header)), r || (this._removeClass(a, \"ui-accordion-header-collapsed\")._addClass(a, \"ui-accordion-header-active\", \"ui-state-active\"), n.icons && (s = a.children(\".ui-accordion-header-icon\"), this._removeClass(s, null, n.icons.header)._addClass(s, null, n.icons.activeHeader)), this._addClass(a.next(), \"ui-accordion-content-active\")));\n },\n _toggle: function _toggle(e) {\n var i = e.newPanel,\n s = this.prevShow.length ? this.prevShow : e.oldPanel;\n this.prevShow.add(this.prevHide).stop(!0, !0), this.prevShow = i, this.prevHide = s, this.options.animate ? this._animate(i, s, e) : (s.hide(), i.show(), this._toggleComplete(e)), s.attr({\n \"aria-hidden\": \"true\"\n }), s.prev().attr({\n \"aria-selected\": \"false\",\n \"aria-expanded\": \"false\"\n }), i.length && s.length ? s.prev().attr({\n tabIndex: -1,\n \"aria-expanded\": \"false\"\n }) : i.length && this.headers.filter(function () {\n return 0 === parseInt(t(this).attr(\"tabIndex\"), 10);\n }).attr(\"tabIndex\", -1), i.attr(\"aria-hidden\", \"false\").prev().attr({\n \"aria-selected\": \"true\",\n \"aria-expanded\": \"true\",\n tabIndex: 0\n });\n },\n _animate: function _animate(t, e, i) {\n var s,\n n,\n o,\n a = this,\n r = 0,\n h = t.css(\"box-sizing\"),\n l = t.length && (!e.length || t.index() < e.index()),\n c = this.options.animate || {},\n u = l && c.down || c,\n d = function d() {\n a._toggleComplete(i);\n };\n return \"number\" == typeof u && (o = u), \"string\" == typeof u && (n = u), n = n || u.easing || c.easing, o = o || u.duration || c.duration, e.length ? t.length ? (s = t.show().outerHeight(), e.animate(this.hideProps, {\n duration: o,\n easing: n,\n step: function step(t, e) {\n e.now = Math.round(t);\n }\n }), t.hide().animate(this.showProps, {\n duration: o,\n easing: n,\n complete: d,\n step: function step(t, i) {\n i.now = Math.round(t), \"height\" !== i.prop ? \"content-box\" === h && (r += i.now) : \"content\" !== a.options.heightStyle && (i.now = Math.round(s - e.outerHeight() - r), r = 0);\n }\n }), void 0) : e.animate(this.hideProps, o, n, d) : t.animate(this.showProps, o, n, d);\n },\n _toggleComplete: function _toggleComplete(t) {\n var e = t.oldPanel,\n i = e.prev();\n this._removeClass(e, \"ui-accordion-content-active\"), this._removeClass(i, \"ui-accordion-header-active\")._addClass(i, \"ui-accordion-header-collapsed\"), e.length && (e.parent()[0].className = e.parent()[0].className), this._trigger(\"activate\", null, t);\n }\n }), t.ui.safeActiveElement = function (t) {\n var e;\n try {\n e = t.activeElement;\n } catch (i) {\n e = t.body;\n }\n return e || (e = t.body), e.nodeName || (e = t.body), e;\n }, t.widget(\"ui.menu\", {\n version: \"1.12.1\",\n defaultElement: \"<ul>\",\n delay: 300,\n options: {\n icons: {\n submenu: \"ui-icon-caret-1-e\"\n },\n items: \"> *\",\n menus: \"ul\",\n position: {\n my: \"left top\",\n at: \"right top\"\n },\n role: \"menu\",\n blur: null,\n focus: null,\n select: null\n },\n _create: function _create() {\n this.activeMenu = this.element, this.mouseHandled = !1, this.element.uniqueId().attr({\n role: this.options.role,\n tabIndex: 0\n }), this._addClass(\"ui-menu\", \"ui-widget ui-widget-content\"), this._on({\n \"mousedown .ui-menu-item\": function mousedownUiMenuItem(t) {\n t.preventDefault();\n },\n \"click .ui-menu-item\": function clickUiMenuItem(e) {\n var i = t(e.target),\n s = t(t.ui.safeActiveElement(this.document[0]));\n !this.mouseHandled && i.not(\".ui-state-disabled\").length && (this.select(e), e.isPropagationStopped() || (this.mouseHandled = !0), i.has(\".ui-menu\").length ? this.expand(e) : !this.element.is(\":focus\") && s.closest(\".ui-menu\").length && (this.element.trigger(\"focus\", [!0]), this.active && 1 === this.active.parents(\".ui-menu\").length && clearTimeout(this.timer)));\n },\n \"mouseenter .ui-menu-item\": function mouseenterUiMenuItem(e) {\n if (!this.previousFilter) {\n var i = t(e.target).closest(\".ui-menu-item\"),\n s = t(e.currentTarget);\n i[0] === s[0] && (this._removeClass(s.siblings().children(\".ui-state-active\"), null, \"ui-state-active\"), this.focus(e, s));\n }\n },\n mouseleave: \"collapseAll\",\n \"mouseleave .ui-menu\": \"collapseAll\",\n focus: function focus(t, e) {\n var i = this.active || this.element.find(this.options.items).eq(0);\n e || this.focus(t, i);\n },\n blur: function blur(e) {\n this._delay(function () {\n var i = !t.contains(this.element[0], t.ui.safeActiveElement(this.document[0]));\n i && this.collapseAll(e);\n });\n },\n keydown: \"_keydown\"\n }), this.refresh(), this._on(this.document, {\n click: function click(t) {\n this._closeOnDocumentClick(t) && this.collapseAll(t), this.mouseHandled = !1;\n }\n });\n },\n _destroy: function _destroy() {\n var e = this.element.find(\".ui-menu-item\").removeAttr(\"role aria-disabled\"),\n i = e.children(\".ui-menu-item-wrapper\").removeUniqueId().removeAttr(\"tabIndex role aria-haspopup\");\n this.element.removeAttr(\"aria-activedescendant\").find(\".ui-menu\").addBack().removeAttr(\"role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex\").removeUniqueId().show(), i.children().each(function () {\n var e = t(this);\n e.data(\"ui-menu-submenu-caret\") && e.remove();\n });\n },\n _keydown: function _keydown(e) {\n var i,\n s,\n n,\n o,\n a = !0;\n switch (e.keyCode) {\n case t.ui.keyCode.PAGE_UP:\n this.previousPage(e);\n break;\n case t.ui.keyCode.PAGE_DOWN:\n this.nextPage(e);\n break;\n case t.ui.keyCode.HOME:\n this._move(\"first\", \"first\", e);\n break;\n case t.ui.keyCode.END:\n this._move(\"last\", \"last\", e);\n break;\n case t.ui.keyCode.UP:\n this.previous(e);\n break;\n case t.ui.keyCode.DOWN:\n this.next(e);\n break;\n case t.ui.keyCode.LEFT:\n this.collapse(e);\n break;\n case t.ui.keyCode.RIGHT:\n this.active && !this.active.is(\".ui-state-disabled\") && this.expand(e);\n break;\n case t.ui.keyCode.ENTER:\n case t.ui.keyCode.SPACE:\n this._activate(e);\n break;\n case t.ui.keyCode.ESCAPE:\n this.collapse(e);\n break;\n default:\n a = !1, s = this.previousFilter || \"\", o = !1, n = e.keyCode >= 96 && 105 >= e.keyCode ? \"\" + (e.keyCode - 96) : String.fromCharCode(e.keyCode), clearTimeout(this.filterTimer), n === s ? o = !0 : n = s + n, i = this._filterMenuItems(n), i = o && -1 !== i.index(this.active.next()) ? this.active.nextAll(\".ui-menu-item\") : i, i.length || (n = String.fromCharCode(e.keyCode), i = this._filterMenuItems(n)), i.length ? (this.focus(e, i), this.previousFilter = n, this.filterTimer = this._delay(function () {\n delete this.previousFilter;\n }, 1e3)) : delete this.previousFilter;\n }\n a && e.preventDefault();\n },\n _activate: function _activate(t) {\n this.active && !this.active.is(\".ui-state-disabled\") && (this.active.children(\"[aria-haspopup='true']\").length ? this.expand(t) : this.select(t));\n },\n refresh: function refresh() {\n var e,\n i,\n s,\n n,\n o,\n a = this,\n r = this.options.icons.submenu,\n h = this.element.find(this.options.menus);\n this._toggleClass(\"ui-menu-icons\", null, !!this.element.find(\".ui-icon\").length), s = h.filter(\":not(.ui-menu)\").hide().attr({\n role: this.options.role,\n \"aria-hidden\": \"true\",\n \"aria-expanded\": \"false\"\n }).each(function () {\n var e = t(this),\n i = e.prev(),\n s = t(\"<span>\").data(\"ui-menu-submenu-caret\", !0);\n a._addClass(s, \"ui-menu-icon\", \"ui-icon \" + r), i.attr(\"aria-haspopup\", \"true\").prepend(s), e.attr(\"aria-labelledby\", i.attr(\"id\"));\n }), this._addClass(s, \"ui-menu\", \"ui-widget ui-widget-content ui-front\"), e = h.add(this.element), i = e.find(this.options.items), i.not(\".ui-menu-item\").each(function () {\n var e = t(this);\n a._isDivider(e) && a._addClass(e, \"ui-menu-divider\", \"ui-widget-content\");\n }), n = i.not(\".ui-menu-item, .ui-menu-divider\"), o = n.children().not(\".ui-menu\").uniqueId().attr({\n tabIndex: -1,\n role: this._itemRole()\n }), this._addClass(n, \"ui-menu-item\")._addClass(o, \"ui-menu-item-wrapper\"), i.filter(\".ui-state-disabled\").attr(\"aria-disabled\", \"true\"), this.active && !t.contains(this.element[0], this.active[0]) && this.blur();\n },\n _itemRole: function _itemRole() {\n return {\n menu: \"menuitem\",\n listbox: \"option\"\n }[this.options.role];\n },\n _setOption: function _setOption(t, e) {\n if (\"icons\" === t) {\n var i = this.element.find(\".ui-menu-icon\");\n this._removeClass(i, null, this.options.icons.submenu)._addClass(i, null, e.submenu);\n }\n this._super(t, e);\n },\n _setOptionDisabled: function _setOptionDisabled(t) {\n this._super(t), this.element.attr(\"aria-disabled\", t + \"\"), this._toggleClass(null, \"ui-state-disabled\", !!t);\n },\n focus: function focus(t, e) {\n var i, s, n;\n this.blur(t, t && \"focus\" === t.type), this._scrollIntoView(e), this.active = e.first(), s = this.active.children(\".ui-menu-item-wrapper\"), this._addClass(s, null, \"ui-state-active\"), this.options.role && this.element.attr(\"aria-activedescendant\", s.attr(\"id\")), n = this.active.parent().closest(\".ui-menu-item\").children(\".ui-menu-item-wrapper\"), this._addClass(n, null, \"ui-state-active\"), t && \"keydown\" === t.type ? this._close() : this.timer = this._delay(function () {\n this._close();\n }, this.delay), i = e.children(\".ui-menu\"), i.length && t && /^mouse/.test(t.type) && this._startOpening(i), this.activeMenu = e.parent(), this._trigger(\"focus\", t, {\n item: e\n });\n },\n _scrollIntoView: function _scrollIntoView(e) {\n var i, s, n, o, a, r;\n this._hasScroll() && (i = parseFloat(t.css(this.activeMenu[0], \"borderTopWidth\")) || 0, s = parseFloat(t.css(this.activeMenu[0], \"paddingTop\")) || 0, n = e.offset().top - this.activeMenu.offset().top - i - s, o = this.activeMenu.scrollTop(), a = this.activeMenu.height(), r = e.outerHeight(), 0 > n ? this.activeMenu.scrollTop(o + n) : n + r > a && this.activeMenu.scrollTop(o + n - a + r));\n },\n blur: function blur(t, e) {\n e || clearTimeout(this.timer), this.active && (this._removeClass(this.active.children(\".ui-menu-item-wrapper\"), null, \"ui-state-active\"), this._trigger(\"blur\", t, {\n item: this.active\n }), this.active = null);\n },\n _startOpening: function _startOpening(t) {\n clearTimeout(this.timer), \"true\" === t.attr(\"aria-hidden\") && (this.timer = this._delay(function () {\n this._close(), this._open(t);\n }, this.delay));\n },\n _open: function _open(e) {\n var i = t.extend({\n of: this.active\n }, this.options.position);\n clearTimeout(this.timer), this.element.find(\".ui-menu\").not(e.parents(\".ui-menu\")).hide().attr(\"aria-hidden\", \"true\"), e.show().removeAttr(\"aria-hidden\").attr(\"aria-expanded\", \"true\").position(i);\n },\n collapseAll: function collapseAll(e, i) {\n clearTimeout(this.timer), this.timer = this._delay(function () {\n var s = i ? this.element : t(e && e.target).closest(this.element.find(\".ui-menu\"));\n s.length || (s = this.element), this._close(s), this.blur(e), this._removeClass(s.find(\".ui-state-active\"), null, \"ui-state-active\"), this.activeMenu = s;\n }, this.delay);\n },\n _close: function _close(t) {\n t || (t = this.active ? this.active.parent() : this.element), t.find(\".ui-menu\").hide().attr(\"aria-hidden\", \"true\").attr(\"aria-expanded\", \"false\");\n },\n _closeOnDocumentClick: function _closeOnDocumentClick(e) {\n return !t(e.target).closest(\".ui-menu\").length;\n },\n _isDivider: function _isDivider(t) {\n return !/[^\\-\\u2014\\u2013\\s]/.test(t.text());\n },\n collapse: function collapse(t) {\n var e = this.active && this.active.parent().closest(\".ui-menu-item\", this.element);\n e && e.length && (this._close(), this.focus(t, e));\n },\n expand: function expand(t) {\n var e = this.active && this.active.children(\".ui-menu \").find(this.options.items).first();\n e && e.length && (this._open(e.parent()), this._delay(function () {\n this.focus(t, e);\n }));\n },\n next: function next(t) {\n this._move(\"next\", \"first\", t);\n },\n previous: function previous(t) {\n this._move(\"prev\", \"last\", t);\n },\n isFirstItem: function isFirstItem() {\n return this.active && !this.active.prevAll(\".ui-menu-item\").length;\n },\n isLastItem: function isLastItem() {\n return this.active && !this.active.nextAll(\".ui-menu-item\").length;\n },\n _move: function _move(t, e, i) {\n var s;\n this.active && (s = \"first\" === t || \"last\" === t ? this.active[\"first\" === t ? \"prevAll\" : \"nextAll\"](\".ui-menu-item\").eq(-1) : this.active[t + \"All\"](\".ui-menu-item\").eq(0)), s && s.length && this.active || (s = this.activeMenu.find(this.options.items)[e]()), this.focus(i, s);\n },\n nextPage: function nextPage(e) {\n var i, s, n;\n return this.active ? (this.isLastItem() || (this._hasScroll() ? (s = this.active.offset().top, n = this.element.height(), this.active.nextAll(\".ui-menu-item\").each(function () {\n return i = t(this), 0 > i.offset().top - s - n;\n }), this.focus(e, i)) : this.focus(e, this.activeMenu.find(this.options.items)[this.active ? \"last\" : \"first\"]())), void 0) : (this.next(e), void 0);\n },\n previousPage: function previousPage(e) {\n var i, s, n;\n return this.active ? (this.isFirstItem() || (this._hasScroll() ? (s = this.active.offset().top, n = this.element.height(), this.active.prevAll(\".ui-menu-item\").each(function () {\n return i = t(this), i.offset().top - s + n > 0;\n }), this.focus(e, i)) : this.focus(e, this.activeMenu.find(this.options.items).first())), void 0) : (this.next(e), void 0);\n },\n _hasScroll: function _hasScroll() {\n return this.element.outerHeight() < this.element.prop(\"scrollHeight\");\n },\n select: function select(e) {\n this.active = this.active || t(e.target).closest(\".ui-menu-item\");\n var i = {\n item: this.active\n };\n this.active.has(\".ui-menu\").length || this.collapseAll(e, !0), this._trigger(\"select\", e, i);\n },\n _filterMenuItems: function _filterMenuItems(e) {\n var i = e.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\"),\n s = RegExp(\"^\" + i, \"i\");\n return this.activeMenu.find(this.options.items).filter(\".ui-menu-item\").filter(function () {\n return s.test(t.trim(t(this).children(\".ui-menu-item-wrapper\").text()));\n });\n }\n }), t.widget(\"ui.autocomplete\", {\n version: \"1.12.1\",\n defaultElement: \"<input>\",\n options: {\n appendTo: null,\n autoFocus: !1,\n delay: 300,\n minLength: 1,\n position: {\n my: \"left top\",\n at: \"left bottom\",\n collision: \"none\"\n },\n source: null,\n change: null,\n close: null,\n focus: null,\n open: null,\n response: null,\n search: null,\n select: null\n },\n requestIndex: 0,\n pending: 0,\n _create: function _create() {\n var e,\n i,\n s,\n n = this.element[0].nodeName.toLowerCase(),\n o = \"textarea\" === n,\n a = \"input\" === n;\n this.isMultiLine = o || !a && this._isContentEditable(this.element), this.valueMethod = this.element[o || a ? \"val\" : \"text\"], this.isNewMenu = !0, this._addClass(\"ui-autocomplete-input\"), this.element.attr(\"autocomplete\", \"off\"), this._on(this.element, {\n keydown: function keydown(n) {\n if (this.element.prop(\"readOnly\")) return e = !0, s = !0, i = !0, void 0;\n e = !1, s = !1, i = !1;\n var o = t.ui.keyCode;\n switch (n.keyCode) {\n case o.PAGE_UP:\n e = !0, this._move(\"previousPage\", n);\n break;\n case o.PAGE_DOWN:\n e = !0, this._move(\"nextPage\", n);\n break;\n case o.UP:\n e = !0, this._keyEvent(\"previous\", n);\n break;\n case o.DOWN:\n e = !0, this._keyEvent(\"next\", n);\n break;\n case o.ENTER:\n this.menu.active && (e = !0, n.preventDefault(), this.menu.select(n));\n break;\n case o.TAB:\n this.menu.active && this.menu.select(n);\n break;\n case o.ESCAPE:\n this.menu.element.is(\":visible\") && (this.isMultiLine || this._value(this.term), this.close(n), n.preventDefault());\n break;\n default:\n i = !0, this._searchTimeout(n);\n }\n },\n keypress: function keypress(s) {\n if (e) return e = !1, (!this.isMultiLine || this.menu.element.is(\":visible\")) && s.preventDefault(), void 0;\n if (!i) {\n var n = t.ui.keyCode;\n switch (s.keyCode) {\n case n.PAGE_UP:\n this._move(\"previousPage\", s);\n break;\n case n.PAGE_DOWN:\n this._move(\"nextPage\", s);\n break;\n case n.UP:\n this._keyEvent(\"previous\", s);\n break;\n case n.DOWN:\n this._keyEvent(\"next\", s);\n }\n }\n },\n input: function input(t) {\n return s ? (s = !1, t.preventDefault(), void 0) : (this._searchTimeout(t), void 0);\n },\n focus: function focus() {\n this.selectedItem = null, this.previous = this._value();\n },\n blur: function blur(t) {\n return this.cancelBlur ? (delete this.cancelBlur, void 0) : (clearTimeout(this.searching), this.close(t), this._change(t), void 0);\n }\n }), this._initSource(), this.menu = t(\"<ul>\").appendTo(this._appendTo()).menu({\n role: null\n }).hide().menu(\"instance\"), this._addClass(this.menu.element, \"ui-autocomplete\", \"ui-front\"), this._on(this.menu.element, {\n mousedown: function mousedown(e) {\n e.preventDefault(), this.cancelBlur = !0, this._delay(function () {\n delete this.cancelBlur, this.element[0] !== t.ui.safeActiveElement(this.document[0]) && this.element.trigger(\"focus\");\n });\n },\n menufocus: function menufocus(e, i) {\n var s, n;\n return this.isNewMenu && (this.isNewMenu = !1, e.originalEvent && /^mouse/.test(e.originalEvent.type)) ? (this.menu.blur(), this.document.one(\"mousemove\", function () {\n t(e.target).trigger(e.originalEvent);\n }), void 0) : (n = i.item.data(\"ui-autocomplete-item\"), !1 !== this._trigger(\"focus\", e, {\n item: n\n }) && e.originalEvent && /^key/.test(e.originalEvent.type) && this._value(n.value), s = i.item.attr(\"aria-label\") || n.value, s && t.trim(s).length && (this.liveRegion.children().hide(), t(\"<div>\").text(s).appendTo(this.liveRegion)), void 0);\n },\n menuselect: function menuselect(e, i) {\n var s = i.item.data(\"ui-autocomplete-item\"),\n n = this.previous;\n this.element[0] !== t.ui.safeActiveElement(this.document[0]) && (this.element.trigger(\"focus\"), this.previous = n, this._delay(function () {\n this.previous = n, this.selectedItem = s;\n })), !1 !== this._trigger(\"select\", e, {\n item: s\n }) && this._value(s.value), this.term = this._value(), this.close(e), this.selectedItem = s;\n }\n }), this.liveRegion = t(\"<div>\", {\n role: \"status\",\n \"aria-live\": \"assertive\",\n \"aria-relevant\": \"additions\"\n }).appendTo(this.document[0].body), this._addClass(this.liveRegion, null, \"ui-helper-hidden-accessible\"), this._on(this.window, {\n beforeunload: function beforeunload() {\n this.element.removeAttr(\"autocomplete\");\n }\n });\n },\n _destroy: function _destroy() {\n clearTimeout(this.searching), this.element.removeAttr(\"autocomplete\"), this.menu.element.remove(), this.liveRegion.remove();\n },\n _setOption: function _setOption(t, e) {\n this._super(t, e), \"source\" === t && this._initSource(), \"appendTo\" === t && this.menu.element.appendTo(this._appendTo()), \"disabled\" === t && e && this.xhr && this.xhr.abort();\n },\n _isEventTargetInWidget: function _isEventTargetInWidget(e) {\n var i = this.menu.element[0];\n return e.target === this.element[0] || e.target === i || t.contains(i, e.target);\n },\n _closeOnClickOutside: function _closeOnClickOutside(t) {\n this._isEventTargetInWidget(t) || this.close();\n },\n _appendTo: function _appendTo() {\n var e = this.options.appendTo;\n return e && (e = e.jquery || e.nodeType ? t(e) : this.document.find(e).eq(0)), e && e[0] || (e = this.element.closest(\".ui-front, dialog\")), e.length || (e = this.document[0].body), e;\n },\n _initSource: function _initSource() {\n var e,\n i,\n s = this;\n t.isArray(this.options.source) ? (e = this.options.source, this.source = function (i, s) {\n s(t.ui.autocomplete.filter(e, i.term));\n }) : \"string\" == typeof this.options.source ? (i = this.options.source, this.source = function (e, n) {\n s.xhr && s.xhr.abort(), s.xhr = t.ajax({\n url: i,\n data: e,\n dataType: \"json\",\n success: function success(t) {\n n(t);\n },\n error: function error() {\n n([]);\n }\n });\n }) : this.source = this.options.source;\n },\n _searchTimeout: function _searchTimeout(t) {\n clearTimeout(this.searching), this.searching = this._delay(function () {\n var e = this.term === this._value(),\n i = this.menu.element.is(\":visible\"),\n s = t.altKey || t.ctrlKey || t.metaKey || t.shiftKey;\n (!e || e && !i && !s) && (this.selectedItem = null, this.search(null, t));\n }, this.options.delay);\n },\n search: function search(t, e) {\n return t = null != t ? t : this._value(), this.term = this._value(), t.length < this.options.minLength ? this.close(e) : this._trigger(\"search\", e) !== !1 ? this._search(t) : void 0;\n },\n _search: function _search(t) {\n this.pending++, this._addClass(\"ui-autocomplete-loading\"), this.cancelSearch = !1, this.source({\n term: t\n }, this._response());\n },\n _response: function _response() {\n var e = ++this.requestIndex;\n return t.proxy(function (t) {\n e === this.requestIndex && this.__response(t), this.pending--, this.pending || this._removeClass(\"ui-autocomplete-loading\");\n }, this);\n },\n __response: function __response(t) {\n t && (t = this._normalize(t)), this._trigger(\"response\", null, {\n content: t\n }), !this.options.disabled && t && t.length && !this.cancelSearch ? (this._suggest(t), this._trigger(\"open\")) : this._close();\n },\n close: function close(t) {\n this.cancelSearch = !0, this._close(t);\n },\n _close: function _close(t) {\n this._off(this.document, \"mousedown\"), this.menu.element.is(\":visible\") && (this.menu.element.hide(), this.menu.blur(), this.isNewMenu = !0, this._trigger(\"close\", t));\n },\n _change: function _change(t) {\n this.previous !== this._value() && this._trigger(\"change\", t, {\n item: this.selectedItem\n });\n },\n _normalize: function _normalize(e) {\n return e.length && e[0].label && e[0].value ? e : t.map(e, function (e) {\n return \"string\" == typeof e ? {\n label: e,\n value: e\n } : t.extend({}, e, {\n label: e.label || e.value,\n value: e.value || e.label\n });\n });\n },\n _suggest: function _suggest(e) {\n var i = this.menu.element.empty();\n this._renderMenu(i, e), this.isNewMenu = !0, this.menu.refresh(), i.show(), this._resizeMenu(), i.position(t.extend({\n of: this.element\n }, this.options.position)), this.options.autoFocus && this.menu.next(), this._on(this.document, {\n mousedown: \"_closeOnClickOutside\"\n });\n },\n _resizeMenu: function _resizeMenu() {\n var t = this.menu.element;\n t.outerWidth(Math.max(t.width(\"\").outerWidth() + 1, this.element.outerWidth()));\n },\n _renderMenu: function _renderMenu(e, i) {\n var s = this;\n t.each(i, function (t, i) {\n s._renderItemData(e, i);\n });\n },\n _renderItemData: function _renderItemData(t, e) {\n return this._renderItem(t, e).data(\"ui-autocomplete-item\", e);\n },\n _renderItem: function _renderItem(e, i) {\n return t(\"<li>\").append(t(\"<div>\").text(i.label)).appendTo(e);\n },\n _move: function _move(t, e) {\n return this.menu.element.is(\":visible\") ? this.menu.isFirstItem() && /^previous/.test(t) || this.menu.isLastItem() && /^next/.test(t) ? (this.isMultiLine || this._value(this.term), this.menu.blur(), void 0) : (this.menu[t](e), void 0) : (this.search(null, e), void 0);\n },\n widget: function widget() {\n return this.menu.element;\n },\n _value: function _value() {\n return this.valueMethod.apply(this.element, arguments);\n },\n _keyEvent: function _keyEvent(t, e) {\n (!this.isMultiLine || this.menu.element.is(\":visible\")) && (this._move(t, e), e.preventDefault());\n },\n _isContentEditable: function _isContentEditable(t) {\n if (!t.length) return !1;\n var e = t.prop(\"contentEditable\");\n return \"inherit\" === e ? this._isContentEditable(t.parent()) : \"true\" === e;\n }\n }), t.extend(t.ui.autocomplete, {\n escapeRegex: function escapeRegex(t) {\n return t.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n },\n filter: function filter(e, i) {\n var s = RegExp(t.ui.autocomplete.escapeRegex(i), \"i\");\n return t.grep(e, function (t) {\n return s.test(t.label || t.value || t);\n });\n }\n }), t.widget(\"ui.autocomplete\", t.ui.autocomplete, {\n options: {\n messages: {\n noResults: \"No search results.\",\n results: function results(t) {\n return t + (t > 1 ? \" results are\" : \" result is\") + \" available, use up and down arrow keys to navigate.\";\n }\n }\n },\n __response: function __response(e) {\n var i;\n this._superApply(arguments), this.options.disabled || this.cancelSearch || (i = e && e.length ? this.options.messages.results(e.length) : this.options.messages.noResults, this.liveRegion.children().hide(), t(\"<div>\").text(i).appendTo(this.liveRegion));\n }\n }), t.ui.autocomplete;\n var g = /ui-corner-([a-z]){2,6}/g;\n t.widget(\"ui.controlgroup\", {\n version: \"1.12.1\",\n defaultElement: \"<div>\",\n options: {\n direction: \"horizontal\",\n disabled: null,\n onlyVisible: !0,\n items: {\n button: \"input[type=button], input[type=submit], input[type=reset], button, a\",\n controlgroupLabel: \".ui-controlgroup-label\",\n checkboxradio: \"input[type='checkbox'], input[type='radio']\",\n selectmenu: \"select\",\n spinner: \".ui-spinner-input\"\n }\n },\n _create: function _create() {\n this._enhance();\n },\n _enhance: function _enhance() {\n this.element.attr(\"role\", \"toolbar\"), this.refresh();\n },\n _destroy: function _destroy() {\n this._callChildMethod(\"destroy\"), this.childWidgets.removeData(\"ui-controlgroup-data\"), this.element.removeAttr(\"role\"), this.options.items.controlgroupLabel && this.element.find(this.options.items.controlgroupLabel).find(\".ui-controlgroup-label-contents\").contents().unwrap();\n },\n _initWidgets: function _initWidgets() {\n var e = this,\n i = [];\n t.each(this.options.items, function (s, n) {\n var o,\n a = {};\n return n ? \"controlgroupLabel\" === s ? (o = e.element.find(n), o.each(function () {\n var e = t(this);\n e.children(\".ui-controlgroup-label-contents\").length || e.contents().wrapAll(\"<span class='ui-controlgroup-label-contents'></span>\");\n }), e._addClass(o, null, \"ui-widget ui-widget-content ui-state-default\"), i = i.concat(o.get()), void 0) : (t.fn[s] && (a = e[\"_\" + s + \"Options\"] ? e[\"_\" + s + \"Options\"](\"middle\") : {\n classes: {}\n }, e.element.find(n).each(function () {\n var n = t(this),\n o = n[s](\"instance\"),\n r = t.widget.extend({}, a);\n if (\"button\" !== s || !n.parent(\".ui-spinner\").length) {\n o || (o = n[s]()[s](\"instance\")), o && (r.classes = e._resolveClassesValues(r.classes, o)), n[s](r);\n var h = n[s](\"widget\");\n t.data(h[0], \"ui-controlgroup-data\", o ? o : n[s](\"instance\")), i.push(h[0]);\n }\n })), void 0) : void 0;\n }), this.childWidgets = t(t.unique(i)), this._addClass(this.childWidgets, \"ui-controlgroup-item\");\n },\n _callChildMethod: function _callChildMethod(e) {\n this.childWidgets.each(function () {\n var i = t(this),\n s = i.data(\"ui-controlgroup-data\");\n s && s[e] && s[e]();\n });\n },\n _updateCornerClass: function _updateCornerClass(t, e) {\n var i = \"ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all\",\n s = this._buildSimpleOptions(e, \"label\").classes.label;\n this._removeClass(t, null, i), this._addClass(t, null, s);\n },\n _buildSimpleOptions: function _buildSimpleOptions(t, e) {\n var i = \"vertical\" === this.options.direction,\n s = {\n classes: {}\n };\n return s.classes[e] = {\n middle: \"\",\n first: \"ui-corner-\" + (i ? \"top\" : \"left\"),\n last: \"ui-corner-\" + (i ? \"bottom\" : \"right\"),\n only: \"ui-corner-all\"\n }[t], s;\n },\n _spinnerOptions: function _spinnerOptions(t) {\n var e = this._buildSimpleOptions(t, \"ui-spinner\");\n return e.classes[\"ui-spinner-up\"] = \"\", e.classes[\"ui-spinner-down\"] = \"\", e;\n },\n _buttonOptions: function _buttonOptions(t) {\n return this._buildSimpleOptions(t, \"ui-button\");\n },\n _checkboxradioOptions: function _checkboxradioOptions(t) {\n return this._buildSimpleOptions(t, \"ui-checkboxradio-label\");\n },\n _selectmenuOptions: function _selectmenuOptions(t) {\n var e = \"vertical\" === this.options.direction;\n return {\n width: e ? \"auto\" : !1,\n classes: {\n middle: {\n \"ui-selectmenu-button-open\": \"\",\n \"ui-selectmenu-button-closed\": \"\"\n },\n first: {\n \"ui-selectmenu-button-open\": \"ui-corner-\" + (e ? \"top\" : \"tl\"),\n \"ui-selectmenu-button-closed\": \"ui-corner-\" + (e ? \"top\" : \"left\")\n },\n last: {\n \"ui-selectmenu-button-open\": e ? \"\" : \"ui-corner-tr\",\n \"ui-selectmenu-button-closed\": \"ui-corner-\" + (e ? \"bottom\" : \"right\")\n },\n only: {\n \"ui-selectmenu-button-open\": \"ui-corner-top\",\n \"ui-selectmenu-button-closed\": \"ui-corner-all\"\n }\n }[t]\n };\n },\n _resolveClassesValues: function _resolveClassesValues(e, i) {\n var s = {};\n return t.each(e, function (n) {\n var o = i.options.classes[n] || \"\";\n o = t.trim(o.replace(g, \"\")), s[n] = (o + \" \" + e[n]).replace(/\\s+/g, \" \");\n }), s;\n },\n _setOption: function _setOption(t, e) {\n return \"direction\" === t && this._removeClass(\"ui-controlgroup-\" + this.options.direction), this._super(t, e), \"disabled\" === t ? (this._callChildMethod(e ? \"disable\" : \"enable\"), void 0) : (this.refresh(), void 0);\n },\n refresh: function refresh() {\n var e,\n i = this;\n this._addClass(\"ui-controlgroup ui-controlgroup-\" + this.options.direction), \"horizontal\" === this.options.direction && this._addClass(null, \"ui-helper-clearfix\"), this._initWidgets(), e = this.childWidgets, this.options.onlyVisible && (e = e.filter(\":visible\")), e.length && (t.each([\"first\", \"last\"], function (t, s) {\n var n = e[s]().data(\"ui-controlgroup-data\");\n if (n && i[\"_\" + n.widgetName + \"Options\"]) {\n var o = i[\"_\" + n.widgetName + \"Options\"](1 === e.length ? \"only\" : s);\n o.classes = i._resolveClassesValues(o.classes, n), n.element[n.widgetName](o);\n } else i._updateCornerClass(e[s](), s);\n }), this._callChildMethod(\"refresh\"));\n }\n }), t.widget(\"ui.checkboxradio\", [t.ui.formResetMixin, {\n version: \"1.12.1\",\n options: {\n disabled: null,\n label: null,\n icon: !0,\n classes: {\n \"ui-checkboxradio-label\": \"ui-corner-all\",\n \"ui-checkboxradio-icon\": \"ui-corner-all\"\n }\n },\n _getCreateOptions: function _getCreateOptions() {\n var e,\n i,\n s = this,\n n = this._super() || {};\n return this._readType(), i = this.element.labels(), this.label = t(i[i.length - 1]), this.label.length || t.error(\"No label found for checkboxradio widget\"), this.originalLabel = \"\", this.label.contents().not(this.element[0]).each(function () {\n s.originalLabel += 3 === this.nodeType ? t(this).text() : this.outerHTML;\n }), this.originalLabel && (n.label = this.originalLabel), e = this.element[0].disabled, null != e && (n.disabled = e), n;\n },\n _create: function _create() {\n var t = this.element[0].checked;\n this._bindFormResetHandler(), null == this.options.disabled && (this.options.disabled = this.element[0].disabled), this._setOption(\"disabled\", this.options.disabled), this._addClass(\"ui-checkboxradio\", \"ui-helper-hidden-accessible\"), this._addClass(this.label, \"ui-checkboxradio-label\", \"ui-button ui-widget\"), \"radio\" === this.type && this._addClass(this.label, \"ui-checkboxradio-radio-label\"), this.options.label && this.options.label !== this.originalLabel ? this._updateLabel() : this.originalLabel && (this.options.label = this.originalLabel), this._enhance(), t && (this._addClass(this.label, \"ui-checkboxradio-checked\", \"ui-state-active\"), this.icon && this._addClass(this.icon, null, \"ui-state-hover\")), this._on({\n change: \"_toggleClasses\",\n focus: function focus() {\n this._addClass(this.label, null, \"ui-state-focus ui-visual-focus\");\n },\n blur: function blur() {\n this._removeClass(this.label, null, \"ui-state-focus ui-visual-focus\");\n }\n });\n },\n _readType: function _readType() {\n var e = this.element[0].nodeName.toLowerCase();\n this.type = this.element[0].type, \"input\" === e && /radio|checkbox/.test(this.type) || t.error(\"Can't create checkboxradio on element.nodeName=\" + e + \" and element.type=\" + this.type);\n },\n _enhance: function _enhance() {\n this._updateIcon(this.element[0].checked);\n },\n widget: function widget() {\n return this.label;\n },\n _getRadioGroup: function _getRadioGroup() {\n var e,\n i = this.element[0].name,\n s = \"input[name='\" + t.ui.escapeSelector(i) + \"']\";\n return i ? (e = this.form.length ? t(this.form[0].elements).filter(s) : t(s).filter(function () {\n return 0 === t(this).form().length;\n }), e.not(this.element)) : t([]);\n },\n _toggleClasses: function _toggleClasses() {\n var e = this.element[0].checked;\n this._toggleClass(this.label, \"ui-checkboxradio-checked\", \"ui-state-active\", e), this.options.icon && \"checkbox\" === this.type && this._toggleClass(this.icon, null, \"ui-icon-check ui-state-checked\", e)._toggleClass(this.icon, null, \"ui-icon-blank\", !e), \"radio\" === this.type && this._getRadioGroup().each(function () {\n var e = t(this).checkboxradio(\"instance\");\n e && e._removeClass(e.label, \"ui-checkboxradio-checked\", \"ui-state-active\");\n });\n },\n _destroy: function _destroy() {\n this._unbindFormResetHandler(), this.icon && (this.icon.remove(), this.iconSpace.remove());\n },\n _setOption: function _setOption(t, e) {\n return \"label\" !== t || e ? (this._super(t, e), \"disabled\" === t ? (this._toggleClass(this.label, null, \"ui-state-disabled\", e), this.element[0].disabled = e, void 0) : (this.refresh(), void 0)) : void 0;\n },\n _updateIcon: function _updateIcon(e) {\n var i = \"ui-icon ui-icon-background \";\n this.options.icon ? (this.icon || (this.icon = t(\"<span>\"), this.iconSpace = t(\"<span> </span>\"), this._addClass(this.iconSpace, \"ui-checkboxradio-icon-space\")), \"checkbox\" === this.type ? (i += e ? \"ui-icon-check ui-state-checked\" : \"ui-icon-blank\", this._removeClass(this.icon, null, e ? \"ui-icon-blank\" : \"ui-icon-check\")) : i += \"ui-icon-blank\", this._addClass(this.icon, \"ui-checkboxradio-icon\", i), e || this._removeClass(this.icon, null, \"ui-icon-check ui-state-checked\"), this.icon.prependTo(this.label).after(this.iconSpace)) : void 0 !== this.icon && (this.icon.remove(), this.iconSpace.remove(), delete this.icon);\n },\n _updateLabel: function _updateLabel() {\n var t = this.label.contents().not(this.element[0]);\n this.icon && (t = t.not(this.icon[0])), this.iconSpace && (t = t.not(this.iconSpace[0])), t.remove(), this.label.append(this.options.label);\n },\n refresh: function refresh() {\n var t = this.element[0].checked,\n e = this.element[0].disabled;\n this._updateIcon(t), this._toggleClass(this.label, \"ui-checkboxradio-checked\", \"ui-state-active\", t), null !== this.options.label && this._updateLabel(), e !== this.options.disabled && this._setOptions({\n disabled: e\n });\n }\n }]), t.ui.checkboxradio, t.widget(\"ui.button\", {\n version: \"1.12.1\",\n defaultElement: \"<button>\",\n options: {\n classes: {\n \"ui-button\": \"ui-corner-all\"\n },\n disabled: null,\n icon: null,\n iconPosition: \"beginning\",\n label: null,\n showLabel: !0\n },\n _getCreateOptions: function _getCreateOptions() {\n var t,\n e = this._super() || {};\n return this.isInput = this.element.is(\"input\"), t = this.element[0].disabled, null != t && (e.disabled = t), this.originalLabel = this.isInput ? this.element.val() : this.element.html(), this.originalLabel && (e.label = this.originalLabel), e;\n },\n _create: function _create() {\n !this.option.showLabel & !this.options.icon && (this.options.showLabel = !0), null == this.options.disabled && (this.options.disabled = this.element[0].disabled || !1), this.hasTitle = !!this.element.attr(\"title\"), this.options.label && this.options.label !== this.originalLabel && (this.isInput ? this.element.val(this.options.label) : this.element.html(this.options.label)), this._addClass(\"ui-button\", \"ui-widget\"), this._setOption(\"disabled\", this.options.disabled), this._enhance(), this.element.is(\"a\") && this._on({\n keyup: function keyup(e) {\n e.keyCode === t.ui.keyCode.SPACE && (e.preventDefault(), this.element[0].click ? this.element[0].click() : this.element.trigger(\"click\"));\n }\n });\n },\n _enhance: function _enhance() {\n this.element.is(\"button\") || this.element.attr(\"role\", \"button\"), this.options.icon && (this._updateIcon(\"icon\", this.options.icon), this._updateTooltip());\n },\n _updateTooltip: function _updateTooltip() {\n this.title = this.element.attr(\"title\"), this.options.showLabel || this.title || this.element.attr(\"title\", this.options.label);\n },\n _updateIcon: function _updateIcon(e, i) {\n var s = \"iconPosition\" !== e,\n n = s ? this.options.iconPosition : i,\n o = \"top\" === n || \"bottom\" === n;\n this.icon ? s && this._removeClass(this.icon, null, this.options.icon) : (this.icon = t(\"<span>\"), this._addClass(this.icon, \"ui-button-icon\", \"ui-icon\"), this.options.showLabel || this._addClass(\"ui-button-icon-only\")), s && this._addClass(this.icon, null, i), this._attachIcon(n), o ? (this._addClass(this.icon, null, \"ui-widget-icon-block\"), this.iconSpace && this.iconSpace.remove()) : (this.iconSpace || (this.iconSpace = t(\"<span> </span>\"), this._addClass(this.iconSpace, \"ui-button-icon-space\")), this._removeClass(this.icon, null, \"ui-wiget-icon-block\"), this._attachIconSpace(n));\n },\n _destroy: function _destroy() {\n this.element.removeAttr(\"role\"), this.icon && this.icon.remove(), this.iconSpace && this.iconSpace.remove(), this.hasTitle || this.element.removeAttr(\"title\");\n },\n _attachIconSpace: function _attachIconSpace(t) {\n this.icon[/^(?:end|bottom)/.test(t) ? \"before\" : \"after\"](this.iconSpace);\n },\n _attachIcon: function _attachIcon(t) {\n this.element[/^(?:end|bottom)/.test(t) ? \"append\" : \"prepend\"](this.icon);\n },\n _setOptions: function _setOptions(t) {\n var e = void 0 === t.showLabel ? this.options.showLabel : t.showLabel,\n i = void 0 === t.icon ? this.options.icon : t.icon;\n e || i || (t.showLabel = !0), this._super(t);\n },\n _setOption: function _setOption(t, e) {\n \"icon\" === t && (e ? this._updateIcon(t, e) : this.icon && (this.icon.remove(), this.iconSpace && this.iconSpace.remove())), \"iconPosition\" === t && this._updateIcon(t, e), \"showLabel\" === t && (this._toggleClass(\"ui-button-icon-only\", null, !e), this._updateTooltip()), \"label\" === t && (this.isInput ? this.element.val(e) : (this.element.html(e), this.icon && (this._attachIcon(this.options.iconPosition), this._attachIconSpace(this.options.iconPosition)))), this._super(t, e), \"disabled\" === t && (this._toggleClass(null, \"ui-state-disabled\", e), this.element[0].disabled = e, e && this.element.blur());\n },\n refresh: function refresh() {\n var t = this.element.is(\"input, button\") ? this.element[0].disabled : this.element.hasClass(\"ui-button-disabled\");\n t !== this.options.disabled && this._setOptions({\n disabled: t\n }), this._updateTooltip();\n }\n }), t.uiBackCompat !== !1 && (t.widget(\"ui.button\", t.ui.button, {\n options: {\n text: !0,\n icons: {\n primary: null,\n secondary: null\n }\n },\n _create: function _create() {\n this.options.showLabel && !this.options.text && (this.options.showLabel = this.options.text), !this.options.showLabel && this.options.text && (this.options.text = this.options.showLabel), this.options.icon || !this.options.icons.primary && !this.options.icons.secondary ? this.options.icon && (this.options.icons.primary = this.options.icon) : this.options.icons.primary ? this.options.icon = this.options.icons.primary : (this.options.icon = this.options.icons.secondary, this.options.iconPosition = \"end\"), this._super();\n },\n _setOption: function _setOption(t, e) {\n return \"text\" === t ? (this._super(\"showLabel\", e), void 0) : (\"showLabel\" === t && (this.options.text = e), \"icon\" === t && (this.options.icons.primary = e), \"icons\" === t && (e.primary ? (this._super(\"icon\", e.primary), this._super(\"iconPosition\", \"beginning\")) : e.secondary && (this._super(\"icon\", e.secondary), this._super(\"iconPosition\", \"end\"))), this._superApply(arguments), void 0);\n }\n }), t.fn.button = function (e) {\n return function () {\n return !this.length || this.length && \"INPUT\" !== this[0].tagName || this.length && \"INPUT\" === this[0].tagName && \"checkbox\" !== this.attr(\"type\") && \"radio\" !== this.attr(\"type\") ? e.apply(this, arguments) : (t.ui.checkboxradio || t.error(\"Checkboxradio widget missing\"), 0 === arguments.length ? this.checkboxradio({\n icon: !1\n }) : this.checkboxradio.apply(this, arguments));\n };\n }(t.fn.button), t.fn.buttonset = function () {\n return t.ui.controlgroup || t.error(\"Controlgroup widget missing\"), \"option\" === arguments[0] && \"items\" === arguments[1] && arguments[2] ? this.controlgroup.apply(this, [arguments[0], \"items.button\", arguments[2]]) : \"option\" === arguments[0] && \"items\" === arguments[1] ? this.controlgroup.apply(this, [arguments[0], \"items.button\"]) : (\"object\" == _typeof(arguments[0]) && arguments[0].items && (arguments[0].items = {\n button: arguments[0].items\n }), this.controlgroup.apply(this, arguments));\n }), t.ui.button, t.extend(t.ui, {\n datepicker: {\n version: \"1.12.1\"\n }\n });\n var m;\n t.extend(s.prototype, {\n markerClassName: \"hasDatepicker\",\n maxRows: 4,\n _widgetDatepicker: function _widgetDatepicker() {\n return this.dpDiv;\n },\n setDefaults: function setDefaults(t) {\n return a(this._defaults, t || {}), this;\n },\n _attachDatepicker: function _attachDatepicker(e, i) {\n var s, n, o;\n s = e.nodeName.toLowerCase(), n = \"div\" === s || \"span\" === s, e.id || (this.uuid += 1, e.id = \"dp\" + this.uuid), o = this._newInst(t(e), n), o.settings = t.extend({}, i || {}), \"input\" === s ? this._connectDatepicker(e, o) : n && this._inlineDatepicker(e, o);\n },\n _newInst: function _newInst(e, i) {\n var s = e[0].id.replace(/([^A-Za-z0-9_\\-])/g, \"\\\\\\\\$1\");\n return {\n id: s,\n input: e,\n selectedDay: 0,\n selectedMonth: 0,\n selectedYear: 0,\n drawMonth: 0,\n drawYear: 0,\n inline: i,\n dpDiv: i ? n(t(\"<div class='\" + this._inlineClass + \" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>\")) : this.dpDiv\n };\n },\n _connectDatepicker: function _connectDatepicker(e, i) {\n var s = t(e);\n i.append = t([]), i.trigger = t([]), s.hasClass(this.markerClassName) || (this._attachments(s, i), s.addClass(this.markerClassName).on(\"keydown\", this._doKeyDown).on(\"keypress\", this._doKeyPress).on(\"keyup\", this._doKeyUp), this._autoSize(i), t.data(e, \"datepicker\", i), i.settings.disabled && this._disableDatepicker(e));\n },\n _attachments: function _attachments(e, i) {\n var s,\n n,\n o,\n a = this._get(i, \"appendText\"),\n r = this._get(i, \"isRTL\");\n i.append && i.append.remove(), a && (i.append = t(\"<span class='\" + this._appendClass + \"'>\" + a + \"</span>\"), e[r ? \"before\" : \"after\"](i.append)), e.off(\"focus\", this._showDatepicker), i.trigger && i.trigger.remove(), s = this._get(i, \"showOn\"), (\"focus\" === s || \"both\" === s) && e.on(\"focus\", this._showDatepicker), (\"button\" === s || \"both\" === s) && (n = this._get(i, \"buttonText\"), o = this._get(i, \"buttonImage\"), i.trigger = t(this._get(i, \"buttonImageOnly\") ? t(\"<img/>\").addClass(this._triggerClass).attr({\n src: o,\n alt: n,\n title: n\n }) : t(\"<button type='button'></button>\").addClass(this._triggerClass).html(o ? t(\"<img/>\").attr({\n src: o,\n alt: n,\n title: n\n }) : n)), e[r ? \"before\" : \"after\"](i.trigger), i.trigger.on(\"click\", function () {\n return t.datepicker._datepickerShowing && t.datepicker._lastInput === e[0] ? t.datepicker._hideDatepicker() : t.datepicker._datepickerShowing && t.datepicker._lastInput !== e[0] ? (t.datepicker._hideDatepicker(), t.datepicker._showDatepicker(e[0])) : t.datepicker._showDatepicker(e[0]), !1;\n }));\n },\n _autoSize: function _autoSize(t) {\n if (this._get(t, \"autoSize\") && !t.inline) {\n var e,\n i,\n s,\n n,\n o = new Date(2009, 11, 20),\n a = this._get(t, \"dateFormat\");\n a.match(/[DM]/) && (e = function e(t) {\n for (i = 0, s = 0, n = 0; t.length > n; n++) t[n].length > i && (i = t[n].length, s = n);\n return s;\n }, o.setMonth(e(this._get(t, a.match(/MM/) ? \"monthNames\" : \"monthNamesShort\"))), o.setDate(e(this._get(t, a.match(/DD/) ? \"dayNames\" : \"dayNamesShort\")) + 20 - o.getDay())), t.input.attr(\"size\", this._formatDate(t, o).length);\n }\n },\n _inlineDatepicker: function _inlineDatepicker(e, i) {\n var s = t(e);\n s.hasClass(this.markerClassName) || (s.addClass(this.markerClassName).append(i.dpDiv), t.data(e, \"datepicker\", i), this._setDate(i, this._getDefaultDate(i), !0), this._updateDatepicker(i), this._updateAlternate(i), i.settings.disabled && this._disableDatepicker(e), i.dpDiv.css(\"display\", \"block\"));\n },\n _dialogDatepicker: function _dialogDatepicker(e, i, s, n, o) {\n var r,\n h,\n l,\n c,\n u,\n d = this._dialogInst;\n return d || (this.uuid += 1, r = \"dp\" + this.uuid, this._dialogInput = t(\"<input type='text' id='\" + r + \"' style='position: absolute; top: -100px; width: 0px;'/>\"), this._dialogInput.on(\"keydown\", this._doKeyDown), t(\"body\").append(this._dialogInput), d = this._dialogInst = this._newInst(this._dialogInput, !1), d.settings = {}, t.data(this._dialogInput[0], \"datepicker\", d)), a(d.settings, n || {}), i = i && i.constructor === Date ? this._formatDate(d, i) : i, this._dialogInput.val(i), this._pos = o ? o.length ? o : [o.pageX, o.pageY] : null, this._pos || (h = document.documentElement.clientWidth, l = document.documentElement.clientHeight, c = document.documentElement.scrollLeft || document.body.scrollLeft, u = document.documentElement.scrollTop || document.body.scrollTop, this._pos = [h / 2 - 100 + c, l / 2 - 150 + u]), this._dialogInput.css(\"left\", this._pos[0] + 20 + \"px\").css(\"top\", this._pos[1] + \"px\"), d.settings.onSelect = s, this._inDialog = !0, this.dpDiv.addClass(this._dialogClass), this._showDatepicker(this._dialogInput[0]), t.blockUI && t.blockUI(this.dpDiv), t.data(this._dialogInput[0], \"datepicker\", d), this;\n },\n _destroyDatepicker: function _destroyDatepicker(e) {\n var i,\n s = t(e),\n n = t.data(e, \"datepicker\");\n s.hasClass(this.markerClassName) && (i = e.nodeName.toLowerCase(), t.removeData(e, \"datepicker\"), \"input\" === i ? (n.append.remove(), n.trigger.remove(), s.removeClass(this.markerClassName).off(\"focus\", this._showDatepicker).off(\"keydown\", this._doKeyDown).off(\"keypress\", this._doKeyPress).off(\"keyup\", this._doKeyUp)) : (\"div\" === i || \"span\" === i) && s.removeClass(this.markerClassName).empty(), m === n && (m = null));\n },\n _enableDatepicker: function _enableDatepicker(e) {\n var i,\n s,\n n = t(e),\n o = t.data(e, \"datepicker\");\n n.hasClass(this.markerClassName) && (i = e.nodeName.toLowerCase(), \"input\" === i ? (e.disabled = !1, o.trigger.filter(\"button\").each(function () {\n this.disabled = !1;\n }).end().filter(\"img\").css({\n opacity: \"1.0\",\n cursor: \"\"\n })) : (\"div\" === i || \"span\" === i) && (s = n.children(\".\" + this._inlineClass), s.children().removeClass(\"ui-state-disabled\"), s.find(\"select.ui-datepicker-month, select.ui-datepicker-year\").prop(\"disabled\", !1)), this._disabledInputs = t.map(this._disabledInputs, function (t) {\n return t === e ? null : t;\n }));\n },\n _disableDatepicker: function _disableDatepicker(e) {\n var i,\n s,\n n = t(e),\n o = t.data(e, \"datepicker\");\n n.hasClass(this.markerClassName) && (i = e.nodeName.toLowerCase(), \"input\" === i ? (e.disabled = !0, o.trigger.filter(\"button\").each(function () {\n this.disabled = !0;\n }).end().filter(\"img\").css({\n opacity: \"0.5\",\n cursor: \"default\"\n })) : (\"div\" === i || \"span\" === i) && (s = n.children(\".\" + this._inlineClass), s.children().addClass(\"ui-state-disabled\"), s.find(\"select.ui-datepicker-month, select.ui-datepicker-year\").prop(\"disabled\", !0)), this._disabledInputs = t.map(this._disabledInputs, function (t) {\n return t === e ? null : t;\n }), this._disabledInputs[this._disabledInputs.length] = e);\n },\n _isDisabledDatepicker: function _isDisabledDatepicker(t) {\n if (!t) return !1;\n for (var e = 0; this._disabledInputs.length > e; e++) if (this._disabledInputs[e] === t) return !0;\n return !1;\n },\n _getInst: function _getInst(e) {\n try {\n return t.data(e, \"datepicker\");\n } catch (i) {\n throw \"Missing instance data for this datepicker\";\n }\n },\n _optionDatepicker: function _optionDatepicker(e, i, s) {\n var n,\n o,\n r,\n h,\n l = this._getInst(e);\n return 2 === arguments.length && \"string\" == typeof i ? \"defaults\" === i ? t.extend({}, t.datepicker._defaults) : l ? \"all\" === i ? t.extend({}, l.settings) : this._get(l, i) : null : (n = i || {}, \"string\" == typeof i && (n = {}, n[i] = s), l && (this._curInst === l && this._hideDatepicker(), o = this._getDateDatepicker(e, !0), r = this._getMinMaxDate(l, \"min\"), h = this._getMinMaxDate(l, \"max\"), a(l.settings, n), null !== r && void 0 !== n.dateFormat && void 0 === n.minDate && (l.settings.minDate = this._formatDate(l, r)), null !== h && void 0 !== n.dateFormat && void 0 === n.maxDate && (l.settings.maxDate = this._formatDate(l, h)), \"disabled\" in n && (n.disabled ? this._disableDatepicker(e) : this._enableDatepicker(e)), this._attachments(t(e), l), this._autoSize(l), this._setDate(l, o), this._updateAlternate(l), this._updateDatepicker(l)), void 0);\n },\n _changeDatepicker: function _changeDatepicker(t, e, i) {\n this._optionDatepicker(t, e, i);\n },\n _refreshDatepicker: function _refreshDatepicker(t) {\n var e = this._getInst(t);\n e && this._updateDatepicker(e);\n },\n _setDateDatepicker: function _setDateDatepicker(t, e) {\n var i = this._getInst(t);\n i && (this._setDate(i, e), this._updateDatepicker(i), this._updateAlternate(i));\n },\n _getDateDatepicker: function _getDateDatepicker(t, e) {\n var i = this._getInst(t);\n return i && !i.inline && this._setDateFromField(i, e), i ? this._getDate(i) : null;\n },\n _doKeyDown: function _doKeyDown(e) {\n var i,\n s,\n n,\n o = t.datepicker._getInst(e.target),\n a = !0,\n r = o.dpDiv.is(\".ui-datepicker-rtl\");\n if (o._keyEvent = !0, t.datepicker._datepickerShowing) switch (e.keyCode) {\n case 9:\n t.datepicker._hideDatepicker(), a = !1;\n break;\n case 13:\n return n = t(\"td.\" + t.datepicker._dayOverClass + \":not(.\" + t.datepicker._currentClass + \")\", o.dpDiv), n[0] && t.datepicker._selectDay(e.target, o.selectedMonth, o.selectedYear, n[0]), i = t.datepicker._get(o, \"onSelect\"), i ? (s = t.datepicker._formatDate(o), i.apply(o.input ? o.input[0] : null, [s, o])) : t.datepicker._hideDatepicker(), !1;\n case 27:\n t.datepicker._hideDatepicker();\n break;\n case 33:\n t.datepicker._adjustDate(e.target, e.ctrlKey ? -t.datepicker._get(o, \"stepBigMonths\") : -t.datepicker._get(o, \"stepMonths\"), \"M\");\n break;\n case 34:\n t.datepicker._adjustDate(e.target, e.ctrlKey ? +t.datepicker._get(o, \"stepBigMonths\") : +t.datepicker._get(o, \"stepMonths\"), \"M\");\n break;\n case 35:\n (e.ctrlKey || e.metaKey) && t.datepicker._clearDate(e.target), a = e.ctrlKey || e.metaKey;\n break;\n case 36:\n (e.ctrlKey || e.metaKey) && t.datepicker._gotoToday(e.target), a = e.ctrlKey || e.metaKey;\n break;\n case 37:\n (e.ctrlKey || e.metaKey) && t.datepicker._adjustDate(e.target, r ? 1 : -1, \"D\"), a = e.ctrlKey || e.metaKey, e.originalEvent.altKey && t.datepicker._adjustDate(e.target, e.ctrlKey ? -t.datepicker._get(o, \"stepBigMonths\") : -t.datepicker._get(o, \"stepMonths\"), \"M\");\n break;\n case 38:\n (e.ctrlKey || e.metaKey) && t.datepicker._adjustDate(e.target, -7, \"D\"), a = e.ctrlKey || e.metaKey;\n break;\n case 39:\n (e.ctrlKey || e.metaKey) && t.datepicker._adjustDate(e.target, r ? -1 : 1, \"D\"), a = e.ctrlKey || e.metaKey, e.originalEvent.altKey && t.datepicker._adjustDate(e.target, e.ctrlKey ? +t.datepicker._get(o, \"stepBigMonths\") : +t.datepicker._get(o, \"stepMonths\"), \"M\");\n break;\n case 40:\n (e.ctrlKey || e.metaKey) && t.datepicker._adjustDate(e.target, 7, \"D\"), a = e.ctrlKey || e.metaKey;\n break;\n default:\n a = !1;\n } else 36 === e.keyCode && e.ctrlKey ? t.datepicker._showDatepicker(this) : a = !1;\n a && (e.preventDefault(), e.stopPropagation());\n },\n _doKeyPress: function _doKeyPress(e) {\n var i,\n s,\n n = t.datepicker._getInst(e.target);\n return t.datepicker._get(n, \"constrainInput\") ? (i = t.datepicker._possibleChars(t.datepicker._get(n, \"dateFormat\")), s = String.fromCharCode(null == e.charCode ? e.keyCode : e.charCode), e.ctrlKey || e.metaKey || \" \" > s || !i || i.indexOf(s) > -1) : void 0;\n },\n _doKeyUp: function _doKeyUp(e) {\n var i,\n s = t.datepicker._getInst(e.target);\n if (s.input.val() !== s.lastVal) try {\n i = t.datepicker.parseDate(t.datepicker._get(s, \"dateFormat\"), s.input ? s.input.val() : null, t.datepicker._getFormatConfig(s)), i && (t.datepicker._setDateFromField(s), t.datepicker._updateAlternate(s), t.datepicker._updateDatepicker(s));\n } catch (n) {}\n return !0;\n },\n _showDatepicker: function _showDatepicker(e) {\n if (e = e.target || e, \"input\" !== e.nodeName.toLowerCase() && (e = t(\"input\", e.parentNode)[0]), !t.datepicker._isDisabledDatepicker(e) && t.datepicker._lastInput !== e) {\n var s, n, o, r, h, l, c;\n s = t.datepicker._getInst(e), t.datepicker._curInst && t.datepicker._curInst !== s && (t.datepicker._curInst.dpDiv.stop(!0, !0), s && t.datepicker._datepickerShowing && t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])), n = t.datepicker._get(s, \"beforeShow\"), o = n ? n.apply(e, [e, s]) : {}, o !== !1 && (a(s.settings, o), s.lastVal = null, t.datepicker._lastInput = e, t.datepicker._setDateFromField(s), t.datepicker._inDialog && (e.value = \"\"), t.datepicker._pos || (t.datepicker._pos = t.datepicker._findPos(e), t.datepicker._pos[1] += e.offsetHeight), r = !1, t(e).parents().each(function () {\n return r |= \"fixed\" === t(this).css(\"position\"), !r;\n }), h = {\n left: t.datepicker._pos[0],\n top: t.datepicker._pos[1]\n }, t.datepicker._pos = null, s.dpDiv.empty(), s.dpDiv.css({\n position: \"absolute\",\n display: \"block\",\n top: \"-1000px\"\n }), t.datepicker._updateDatepicker(s), h = t.datepicker._checkOffset(s, h, r), s.dpDiv.css({\n position: t.datepicker._inDialog && t.blockUI ? \"static\" : r ? \"fixed\" : \"absolute\",\n display: \"none\",\n left: h.left + \"px\",\n top: h.top + \"px\"\n }), s.inline || (l = t.datepicker._get(s, \"showAnim\"), c = t.datepicker._get(s, \"duration\"), s.dpDiv.css(\"z-index\", i(t(e)) + 1), t.datepicker._datepickerShowing = !0, t.effects && t.effects.effect[l] ? s.dpDiv.show(l, t.datepicker._get(s, \"showOptions\"), c) : s.dpDiv[l || \"show\"](l ? c : null), t.datepicker._shouldFocusInput(s) && s.input.trigger(\"focus\"), t.datepicker._curInst = s));\n }\n },\n _updateDatepicker: function _updateDatepicker(e) {\n this.maxRows = 4, m = e, e.dpDiv.empty().append(this._generateHTML(e)), this._attachHandlers(e);\n var i,\n s = this._getNumberOfMonths(e),\n n = s[1],\n a = 17,\n r = e.dpDiv.find(\".\" + this._dayOverClass + \" a\");\n r.length > 0 && o.apply(r.get(0)), e.dpDiv.removeClass(\"ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4\").width(\"\"), n > 1 && e.dpDiv.addClass(\"ui-datepicker-multi-\" + n).css(\"width\", a * n + \"em\"), e.dpDiv[(1 !== s[0] || 1 !== s[1] ? \"add\" : \"remove\") + \"Class\"](\"ui-datepicker-multi\"), e.dpDiv[(this._get(e, \"isRTL\") ? \"add\" : \"remove\") + \"Class\"](\"ui-datepicker-rtl\"), e === t.datepicker._curInst && t.datepicker._datepickerShowing && t.datepicker._shouldFocusInput(e) && e.input.trigger(\"focus\"), e.yearshtml && (i = e.yearshtml, setTimeout(function () {\n i === e.yearshtml && e.yearshtml && e.dpDiv.find(\"select.ui-datepicker-year:first\").replaceWith(e.yearshtml), i = e.yearshtml = null;\n }, 0));\n },\n _shouldFocusInput: function _shouldFocusInput(t) {\n return t.input && t.input.is(\":visible\") && !t.input.is(\":disabled\") && !t.input.is(\":focus\");\n },\n _checkOffset: function _checkOffset(e, i, s) {\n var n = e.dpDiv.outerWidth(),\n o = e.dpDiv.outerHeight(),\n a = e.input ? e.input.outerWidth() : 0,\n r = e.input ? e.input.outerHeight() : 0,\n h = document.documentElement.clientWidth + (s ? 0 : t(document).scrollLeft()),\n l = document.documentElement.clientHeight + (s ? 0 : t(document).scrollTop());\n return i.left -= this._get(e, \"isRTL\") ? n - a : 0, i.left -= s && i.left === e.input.offset().left ? t(document).scrollLeft() : 0, i.top -= s && i.top === e.input.offset().top + r ? t(document).scrollTop() : 0, i.left -= Math.min(i.left, i.left + n > h && h > n ? Math.abs(i.left + n - h) : 0), i.top -= Math.min(i.top, i.top + o > l && l > o ? Math.abs(o + r) : 0), i;\n },\n _findPos: function _findPos(e) {\n for (var i, s = this._getInst(e), n = this._get(s, \"isRTL\"); e && (\"hidden\" === e.type || 1 !== e.nodeType || t.expr.filters.hidden(e));) e = e[n ? \"previousSibling\" : \"nextSibling\"];\n return i = t(e).offset(), [i.left, i.top];\n },\n _hideDatepicker: function _hideDatepicker(e) {\n var i,\n s,\n n,\n o,\n a = this._curInst;\n !a || e && a !== t.data(e, \"datepicker\") || this._datepickerShowing && (i = this._get(a, \"showAnim\"), s = this._get(a, \"duration\"), n = function n() {\n t.datepicker._tidyDialog(a);\n }, t.effects && (t.effects.effect[i] || t.effects[i]) ? a.dpDiv.hide(i, t.datepicker._get(a, \"showOptions\"), s, n) : a.dpDiv[\"slideDown\" === i ? \"slideUp\" : \"fadeIn\" === i ? \"fadeOut\" : \"hide\"](i ? s : null, n), i || n(), this._datepickerShowing = !1, o = this._get(a, \"onClose\"), o && o.apply(a.input ? a.input[0] : null, [a.input ? a.input.val() : \"\", a]), this._lastInput = null, this._inDialog && (this._dialogInput.css({\n position: \"absolute\",\n left: \"0\",\n top: \"-100px\"\n }), t.blockUI && (t.unblockUI(), t(\"body\").append(this.dpDiv))), this._inDialog = !1);\n },\n _tidyDialog: function _tidyDialog(t) {\n t.dpDiv.removeClass(this._dialogClass).off(\".ui-datepicker-calendar\");\n },\n _checkExternalClick: function _checkExternalClick(e) {\n if (t.datepicker._curInst) {\n var i = t(e.target),\n s = t.datepicker._getInst(i[0]);\n (i[0].id !== t.datepicker._mainDivId && 0 === i.parents(\"#\" + t.datepicker._mainDivId).length && !i.hasClass(t.datepicker.markerClassName) && !i.closest(\".\" + t.datepicker._triggerClass).length && t.datepicker._datepickerShowing && (!t.datepicker._inDialog || !t.blockUI) || i.hasClass(t.datepicker.markerClassName) && t.datepicker._curInst !== s) && t.datepicker._hideDatepicker();\n }\n },\n _adjustDate: function _adjustDate(e, i, s) {\n var n = t(e),\n o = this._getInst(n[0]);\n this._isDisabledDatepicker(n[0]) || (this._adjustInstDate(o, i + (\"M\" === s ? this._get(o, \"showCurrentAtPos\") : 0), s), this._updateDatepicker(o));\n },\n _gotoToday: function _gotoToday(e) {\n var i,\n s = t(e),\n n = this._getInst(s[0]);\n this._get(n, \"gotoCurrent\") && n.currentDay ? (n.selectedDay = n.currentDay, n.drawMonth = n.selectedMonth = n.currentMonth, n.drawYear = n.selectedYear = n.currentYear) : (i = new Date(), n.selectedDay = i.getDate(), n.drawMonth = n.selectedMonth = i.getMonth(), n.drawYear = n.selectedYear = i.getFullYear()), this._notifyChange(n), this._adjustDate(s);\n },\n _selectMonthYear: function _selectMonthYear(e, i, s) {\n var n = t(e),\n o = this._getInst(n[0]);\n o[\"selected\" + (\"M\" === s ? \"Month\" : \"Year\")] = o[\"draw\" + (\"M\" === s ? \"Month\" : \"Year\")] = parseInt(i.options[i.selectedIndex].value, 10), this._notifyChange(o), this._adjustDate(n);\n },\n _selectDay: function _selectDay(e, i, s, n) {\n var o,\n a = t(e);\n t(n).hasClass(this._unselectableClass) || this._isDisabledDatepicker(a[0]) || (o = this._getInst(a[0]), o.selectedDay = o.currentDay = t(\"a\", n).html(), o.selectedMonth = o.currentMonth = i, o.selectedYear = o.currentYear = s, this._selectDate(e, this._formatDate(o, o.currentDay, o.currentMonth, o.currentYear)));\n },\n _clearDate: function _clearDate(e) {\n var i = t(e);\n this._selectDate(i, \"\");\n },\n _selectDate: function _selectDate(e, i) {\n var s,\n n = t(e),\n o = this._getInst(n[0]);\n i = null != i ? i : this._formatDate(o), o.input && o.input.val(i), this._updateAlternate(o), s = this._get(o, \"onSelect\"), s ? s.apply(o.input ? o.input[0] : null, [i, o]) : o.input && o.input.trigger(\"change\"), o.inline ? this._updateDatepicker(o) : (this._hideDatepicker(), this._lastInput = o.input[0], \"object\" != _typeof(o.input[0]) && o.input.trigger(\"focus\"), this._lastInput = null);\n },\n _updateAlternate: function _updateAlternate(e) {\n var i,\n s,\n n,\n o = this._get(e, \"altField\");\n o && (i = this._get(e, \"altFormat\") || this._get(e, \"dateFormat\"), s = this._getDate(e), n = this.formatDate(i, s, this._getFormatConfig(e)), t(o).val(n));\n },\n noWeekends: function noWeekends(t) {\n var e = t.getDay();\n return [e > 0 && 6 > e, \"\"];\n },\n iso8601Week: function iso8601Week(t) {\n var e,\n i = new Date(t.getTime());\n return i.setDate(i.getDate() + 4 - (i.getDay() || 7)), e = i.getTime(), i.setMonth(0), i.setDate(1), Math.floor(Math.round((e - i) / 864e5) / 7) + 1;\n },\n parseDate: function parseDate(e, i, s) {\n if (null == e || null == i) throw \"Invalid arguments\";\n if (i = \"object\" == _typeof(i) ? \"\" + i : i + \"\", \"\" === i) return null;\n var n,\n o,\n a,\n r,\n h = 0,\n l = (s ? s.shortYearCutoff : null) || this._defaults.shortYearCutoff,\n c = \"string\" != typeof l ? l : new Date().getFullYear() % 100 + parseInt(l, 10),\n u = (s ? s.dayNamesShort : null) || this._defaults.dayNamesShort,\n d = (s ? s.dayNames : null) || this._defaults.dayNames,\n p = (s ? s.monthNamesShort : null) || this._defaults.monthNamesShort,\n f = (s ? s.monthNames : null) || this._defaults.monthNames,\n g = -1,\n m = -1,\n _ = -1,\n v = -1,\n b = !1,\n y = function y(t) {\n var i = e.length > n + 1 && e.charAt(n + 1) === t;\n return i && n++, i;\n },\n w = function w(t) {\n var e = y(t),\n s = \"@\" === t ? 14 : \"!\" === t ? 20 : \"y\" === t && e ? 4 : \"o\" === t ? 3 : 2,\n n = \"y\" === t ? s : 1,\n o = RegExp(\"^\\\\d{\" + n + \",\" + s + \"}\"),\n a = i.substring(h).match(o);\n if (!a) throw \"Missing number at position \" + h;\n return h += a[0].length, parseInt(a[0], 10);\n },\n k = function k(e, s, n) {\n var o = -1,\n a = t.map(y(e) ? n : s, function (t, e) {\n return [[e, t]];\n }).sort(function (t, e) {\n return -(t[1].length - e[1].length);\n });\n if (t.each(a, function (t, e) {\n var s = e[1];\n return i.substr(h, s.length).toLowerCase() === s.toLowerCase() ? (o = e[0], h += s.length, !1) : void 0;\n }), -1 !== o) return o + 1;\n throw \"Unknown name at position \" + h;\n },\n x = function x() {\n if (i.charAt(h) !== e.charAt(n)) throw \"Unexpected literal at position \" + h;\n h++;\n };\n for (n = 0; e.length > n; n++) if (b) \"'\" !== e.charAt(n) || y(\"'\") ? x() : b = !1;else switch (e.charAt(n)) {\n case \"d\":\n _ = w(\"d\");\n break;\n case \"D\":\n k(\"D\", u, d);\n break;\n case \"o\":\n v = w(\"o\");\n break;\n case \"m\":\n m = w(\"m\");\n break;\n case \"M\":\n m = k(\"M\", p, f);\n break;\n case \"y\":\n g = w(\"y\");\n break;\n case \"@\":\n r = new Date(w(\"@\")), g = r.getFullYear(), m = r.getMonth() + 1, _ = r.getDate();\n break;\n case \"!\":\n r = new Date((w(\"!\") - this._ticksTo1970) / 1e4), g = r.getFullYear(), m = r.getMonth() + 1, _ = r.getDate();\n break;\n case \"'\":\n y(\"'\") ? x() : b = !0;\n break;\n default:\n x();\n }\n if (i.length > h && (a = i.substr(h), !/^\\s+/.test(a))) throw \"Extra/unparsed characters found in date: \" + a;\n if (-1 === g ? g = new Date().getFullYear() : 100 > g && (g += new Date().getFullYear() - new Date().getFullYear() % 100 + (c >= g ? 0 : -100)), v > -1) for (m = 1, _ = v;;) {\n if (o = this._getDaysInMonth(g, m - 1), o >= _) break;\n m++, _ -= o;\n }\n if (r = this._daylightSavingAdjust(new Date(g, m - 1, _)), r.getFullYear() !== g || r.getMonth() + 1 !== m || r.getDate() !== _) throw \"Invalid date\";\n return r;\n },\n ATOM: \"yy-mm-dd\",\n COOKIE: \"D, dd M yy\",\n ISO_8601: \"yy-mm-dd\",\n RFC_822: \"D, d M y\",\n RFC_850: \"DD, dd-M-y\",\n RFC_1036: \"D, d M y\",\n RFC_1123: \"D, d M yy\",\n RFC_2822: \"D, d M yy\",\n RSS: \"D, d M y\",\n TICKS: \"!\",\n TIMESTAMP: \"@\",\n W3C: \"yy-mm-dd\",\n _ticksTo1970: 1e7 * 60 * 60 * 24 * (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)),\n formatDate: function formatDate(t, e, i) {\n if (!e) return \"\";\n var s,\n n = (i ? i.dayNamesShort : null) || this._defaults.dayNamesShort,\n o = (i ? i.dayNames : null) || this._defaults.dayNames,\n a = (i ? i.monthNamesShort : null) || this._defaults.monthNamesShort,\n r = (i ? i.monthNames : null) || this._defaults.monthNames,\n h = function h(e) {\n var i = t.length > s + 1 && t.charAt(s + 1) === e;\n return i && s++, i;\n },\n l = function l(t, e, i) {\n var s = \"\" + e;\n if (h(t)) for (; i > s.length;) s = \"0\" + s;\n return s;\n },\n c = function c(t, e, i, s) {\n return h(t) ? s[e] : i[e];\n },\n u = \"\",\n d = !1;\n if (e) for (s = 0; t.length > s; s++) if (d) \"'\" !== t.charAt(s) || h(\"'\") ? u += t.charAt(s) : d = !1;else switch (t.charAt(s)) {\n case \"d\":\n u += l(\"d\", e.getDate(), 2);\n break;\n case \"D\":\n u += c(\"D\", e.getDay(), n, o);\n break;\n case \"o\":\n u += l(\"o\", Math.round((new Date(e.getFullYear(), e.getMonth(), e.getDate()).getTime() - new Date(e.getFullYear(), 0, 0).getTime()) / 864e5), 3);\n break;\n case \"m\":\n u += l(\"m\", e.getMonth() + 1, 2);\n break;\n case \"M\":\n u += c(\"M\", e.getMonth(), a, r);\n break;\n case \"y\":\n u += h(\"y\") ? e.getFullYear() : (10 > e.getFullYear() % 100 ? \"0\" : \"\") + e.getFullYear() % 100;\n break;\n case \"@\":\n u += e.getTime();\n break;\n case \"!\":\n u += 1e4 * e.getTime() + this._ticksTo1970;\n break;\n case \"'\":\n h(\"'\") ? u += \"'\" : d = !0;\n break;\n default:\n u += t.charAt(s);\n }\n return u;\n },\n _possibleChars: function _possibleChars(t) {\n var e,\n i = \"\",\n s = !1,\n n = function n(i) {\n var s = t.length > e + 1 && t.charAt(e + 1) === i;\n return s && e++, s;\n };\n for (e = 0; t.length > e; e++) if (s) \"'\" !== t.charAt(e) || n(\"'\") ? i += t.charAt(e) : s = !1;else switch (t.charAt(e)) {\n case \"d\":\n case \"m\":\n case \"y\":\n case \"@\":\n i += \"0123456789\";\n break;\n case \"D\":\n case \"M\":\n return null;\n case \"'\":\n n(\"'\") ? i += \"'\" : s = !0;\n break;\n default:\n i += t.charAt(e);\n }\n return i;\n },\n _get: function _get(t, e) {\n return void 0 !== t.settings[e] ? t.settings[e] : this._defaults[e];\n },\n _setDateFromField: function _setDateFromField(t, e) {\n if (t.input.val() !== t.lastVal) {\n var i = this._get(t, \"dateFormat\"),\n s = t.lastVal = t.input ? t.input.val() : null,\n n = this._getDefaultDate(t),\n o = n,\n a = this._getFormatConfig(t);\n try {\n o = this.parseDate(i, s, a) || n;\n } catch (r) {\n s = e ? \"\" : s;\n }\n t.selectedDay = o.getDate(), t.drawMonth = t.selectedMonth = o.getMonth(), t.drawYear = t.selectedYear = o.getFullYear(), t.currentDay = s ? o.getDate() : 0, t.currentMonth = s ? o.getMonth() : 0, t.currentYear = s ? o.getFullYear() : 0, this._adjustInstDate(t);\n }\n },\n _getDefaultDate: function _getDefaultDate(t) {\n return this._restrictMinMax(t, this._determineDate(t, this._get(t, \"defaultDate\"), new Date()));\n },\n _determineDate: function _determineDate(e, i, s) {\n var n = function n(t) {\n var e = new Date();\n return e.setDate(e.getDate() + t), e;\n },\n o = function o(i) {\n try {\n return t.datepicker.parseDate(t.datepicker._get(e, \"dateFormat\"), i, t.datepicker._getFormatConfig(e));\n } catch (s) {}\n for (var n = (i.toLowerCase().match(/^c/) ? t.datepicker._getDate(e) : null) || new Date(), o = n.getFullYear(), a = n.getMonth(), r = n.getDate(), h = /([+\\-]?[0-9]+)\\s*(d|D|w|W|m|M|y|Y)?/g, l = h.exec(i); l;) {\n switch (l[2] || \"d\") {\n case \"d\":\n case \"D\":\n r += parseInt(l[1], 10);\n break;\n case \"w\":\n case \"W\":\n r += 7 * parseInt(l[1], 10);\n break;\n case \"m\":\n case \"M\":\n a += parseInt(l[1], 10), r = Math.min(r, t.datepicker._getDaysInMonth(o, a));\n break;\n case \"y\":\n case \"Y\":\n o += parseInt(l[1], 10), r = Math.min(r, t.datepicker._getDaysInMonth(o, a));\n }\n l = h.exec(i);\n }\n return new Date(o, a, r);\n },\n a = null == i || \"\" === i ? s : \"string\" == typeof i ? o(i) : \"number\" == typeof i ? isNaN(i) ? s : n(i) : new Date(i.getTime());\n return a = a && \"Invalid Date\" == \"\" + a ? s : a, a && (a.setHours(0), a.setMinutes(0), a.setSeconds(0), a.setMilliseconds(0)), this._daylightSavingAdjust(a);\n },\n _daylightSavingAdjust: function _daylightSavingAdjust(t) {\n return t ? (t.setHours(t.getHours() > 12 ? t.getHours() + 2 : 0), t) : null;\n },\n _setDate: function _setDate(t, e, i) {\n var s = !e,\n n = t.selectedMonth,\n o = t.selectedYear,\n a = this._restrictMinMax(t, this._determineDate(t, e, new Date()));\n t.selectedDay = t.currentDay = a.getDate(), t.drawMonth = t.selectedMonth = t.currentMonth = a.getMonth(), t.drawYear = t.selectedYear = t.currentYear = a.getFullYear(), n === t.selectedMonth && o === t.selectedYear || i || this._notifyChange(t), this._adjustInstDate(t), t.input && t.input.val(s ? \"\" : this._formatDate(t));\n },\n _getDate: function _getDate(t) {\n var e = !t.currentYear || t.input && \"\" === t.input.val() ? null : this._daylightSavingAdjust(new Date(t.currentYear, t.currentMonth, t.currentDay));\n return e;\n },\n _attachHandlers: function _attachHandlers(e) {\n var i = this._get(e, \"stepMonths\"),\n s = \"#\" + e.id.replace(/\\\\\\\\/g, \"\\\\\");\n e.dpDiv.find(\"[data-handler]\").map(function () {\n var e = {\n prev: function prev() {\n t.datepicker._adjustDate(s, -i, \"M\");\n },\n next: function next() {\n t.datepicker._adjustDate(s, +i, \"M\");\n },\n hide: function hide() {\n t.datepicker._hideDatepicker();\n },\n today: function today() {\n t.datepicker._gotoToday(s);\n },\n selectDay: function selectDay() {\n return t.datepicker._selectDay(s, +this.getAttribute(\"data-month\"), +this.getAttribute(\"data-year\"), this), !1;\n },\n selectMonth: function selectMonth() {\n return t.datepicker._selectMonthYear(s, this, \"M\"), !1;\n },\n selectYear: function selectYear() {\n return t.datepicker._selectMonthYear(s, this, \"Y\"), !1;\n }\n };\n t(this).on(this.getAttribute(\"data-event\"), e[this.getAttribute(\"data-handler\")]);\n });\n },\n _generateHTML: function _generateHTML(t) {\n var e,\n i,\n s,\n n,\n o,\n a,\n r,\n h,\n l,\n c,\n u,\n d,\n p,\n f,\n g,\n m,\n _,\n v,\n b,\n y,\n w,\n k,\n x,\n C,\n D,\n I,\n T,\n P,\n M,\n S,\n H,\n z,\n O,\n A,\n N,\n W,\n E,\n F,\n L,\n R = new Date(),\n B = this._daylightSavingAdjust(new Date(R.getFullYear(), R.getMonth(), R.getDate())),\n Y = this._get(t, \"isRTL\"),\n j = this._get(t, \"showButtonPanel\"),\n q = this._get(t, \"hideIfNoPrevNext\"),\n K = this._get(t, \"navigationAsDateFormat\"),\n U = this._getNumberOfMonths(t),\n V = this._get(t, \"showCurrentAtPos\"),\n $ = this._get(t, \"stepMonths\"),\n X = 1 !== U[0] || 1 !== U[1],\n G = this._daylightSavingAdjust(t.currentDay ? new Date(t.currentYear, t.currentMonth, t.currentDay) : new Date(9999, 9, 9)),\n Q = this._getMinMaxDate(t, \"min\"),\n J = this._getMinMaxDate(t, \"max\"),\n Z = t.drawMonth - V,\n te = t.drawYear;\n if (0 > Z && (Z += 12, te--), J) for (e = this._daylightSavingAdjust(new Date(J.getFullYear(), J.getMonth() - U[0] * U[1] + 1, J.getDate())), e = Q && Q > e ? Q : e; this._daylightSavingAdjust(new Date(te, Z, 1)) > e;) Z--, 0 > Z && (Z = 11, te--);\n for (t.drawMonth = Z, t.drawYear = te, i = this._get(t, \"prevText\"), i = K ? this.formatDate(i, this._daylightSavingAdjust(new Date(te, Z - $, 1)), this._getFormatConfig(t)) : i, s = this._canAdjustMonth(t, -1, te, Z) ? \"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='\" + i + \"'><span class='ui-icon ui-icon-circle-triangle-\" + (Y ? \"e\" : \"w\") + \"'>\" + i + \"</span></a>\" : q ? \"\" : \"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='\" + i + \"'><span class='ui-icon ui-icon-circle-triangle-\" + (Y ? \"e\" : \"w\") + \"'>\" + i + \"</span></a>\", n = this._get(t, \"nextText\"), n = K ? this.formatDate(n, this._daylightSavingAdjust(new Date(te, Z + $, 1)), this._getFormatConfig(t)) : n, o = this._canAdjustMonth(t, 1, te, Z) ? \"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='\" + n + \"'><span class='ui-icon ui-icon-circle-triangle-\" + (Y ? \"w\" : \"e\") + \"'>\" + n + \"</span></a>\" : q ? \"\" : \"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='\" + n + \"'><span class='ui-icon ui-icon-circle-triangle-\" + (Y ? \"w\" : \"e\") + \"'>\" + n + \"</span></a>\", a = this._get(t, \"currentText\"), r = this._get(t, \"gotoCurrent\") && t.currentDay ? G : B, a = K ? this.formatDate(a, r, this._getFormatConfig(t)) : a, h = t.inline ? \"\" : \"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>\" + this._get(t, \"closeText\") + \"</button>\", l = j ? \"<div class='ui-datepicker-buttonpane ui-widget-content'>\" + (Y ? h : \"\") + (this._isInRange(t, r) ? \"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>\" + a + \"</button>\" : \"\") + (Y ? \"\" : h) + \"</div>\" : \"\", c = parseInt(this._get(t, \"firstDay\"), 10), c = isNaN(c) ? 0 : c, u = this._get(t, \"showWeek\"), d = this._get(t, \"dayNames\"), p = this._get(t, \"dayNamesMin\"), f = this._get(t, \"monthNames\"), g = this._get(t, \"monthNamesShort\"), m = this._get(t, \"beforeShowDay\"), _ = this._get(t, \"showOtherMonths\"), v = this._get(t, \"selectOtherMonths\"), b = this._getDefaultDate(t), y = \"\", k = 0; U[0] > k; k++) {\n for (x = \"\", this.maxRows = 4, C = 0; U[1] > C; C++) {\n if (D = this._daylightSavingAdjust(new Date(te, Z, t.selectedDay)), I = \" ui-corner-all\", T = \"\", X) {\n if (T += \"<div class='ui-datepicker-group\", U[1] > 1) switch (C) {\n case 0:\n T += \" ui-datepicker-group-first\", I = \" ui-corner-\" + (Y ? \"right\" : \"left\");\n break;\n case U[1] - 1:\n T += \" ui-datepicker-group-last\", I = \" ui-corner-\" + (Y ? \"left\" : \"right\");\n break;\n default:\n T += \" ui-datepicker-group-middle\", I = \"\";\n }\n T += \"'>\";\n }\n for (T += \"<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix\" + I + \"'>\" + (/all|left/.test(I) && 0 === k ? Y ? o : s : \"\") + (/all|right/.test(I) && 0 === k ? Y ? s : o : \"\") + this._generateMonthYearHeader(t, Z, te, Q, J, k > 0 || C > 0, f, g) + \"</div><table class='ui-datepicker-calendar'><thead>\" + \"<tr>\", P = u ? \"<th class='ui-datepicker-week-col'>\" + this._get(t, \"weekHeader\") + \"</th>\" : \"\", w = 0; 7 > w; w++) M = (w + c) % 7, P += \"<th scope='col'\" + ((w + c + 6) % 7 >= 5 ? \" class='ui-datepicker-week-end'\" : \"\") + \">\" + \"<span title='\" + d[M] + \"'>\" + p[M] + \"</span></th>\";\n for (T += P + \"</tr></thead><tbody>\", S = this._getDaysInMonth(te, Z), te === t.selectedYear && Z === t.selectedMonth && (t.selectedDay = Math.min(t.selectedDay, S)), H = (this._getFirstDayOfMonth(te, Z) - c + 7) % 7, z = Math.ceil((H + S) / 7), O = X ? this.maxRows > z ? this.maxRows : z : z, this.maxRows = O, A = this._daylightSavingAdjust(new Date(te, Z, 1 - H)), N = 0; O > N; N++) {\n for (T += \"<tr>\", W = u ? \"<td class='ui-datepicker-week-col'>\" + this._get(t, \"calculateWeek\")(A) + \"</td>\" : \"\", w = 0; 7 > w; w++) E = m ? m.apply(t.input ? t.input[0] : null, [A]) : [!0, \"\"], F = A.getMonth() !== Z, L = F && !v || !E[0] || Q && Q > A || J && A > J, W += \"<td class='\" + ((w + c + 6) % 7 >= 5 ? \" ui-datepicker-week-end\" : \"\") + (F ? \" ui-datepicker-other-month\" : \"\") + (A.getTime() === D.getTime() && Z === t.selectedMonth && t._keyEvent || b.getTime() === A.getTime() && b.getTime() === D.getTime() ? \" \" + this._dayOverClass : \"\") + (L ? \" \" + this._unselectableClass + \" ui-state-disabled\" : \"\") + (F && !_ ? \"\" : \" \" + E[1] + (A.getTime() === G.getTime() ? \" \" + this._currentClass : \"\") + (A.getTime() === B.getTime() ? \" ui-datepicker-today\" : \"\")) + \"'\" + (F && !_ || !E[2] ? \"\" : \" title='\" + E[2].replace(/'/g, \"'\") + \"'\") + (L ? \"\" : \" data-handler='selectDay' data-event='click' data-month='\" + A.getMonth() + \"' data-year='\" + A.getFullYear() + \"'\") + \">\" + (F && !_ ? \" \" : L ? \"<span class='ui-state-default'>\" + A.getDate() + \"</span>\" : \"<a class='ui-state-default\" + (A.getTime() === B.getTime() ? \" ui-state-highlight\" : \"\") + (A.getTime() === G.getTime() ? \" ui-state-active\" : \"\") + (F ? \" ui-priority-secondary\" : \"\") + \"' href='#'>\" + A.getDate() + \"</a>\") + \"</td>\", A.setDate(A.getDate() + 1), A = this._daylightSavingAdjust(A);\n T += W + \"</tr>\";\n }\n Z++, Z > 11 && (Z = 0, te++), T += \"</tbody></table>\" + (X ? \"</div>\" + (U[0] > 0 && C === U[1] - 1 ? \"<div class='ui-datepicker-row-break'></div>\" : \"\") : \"\"), x += T;\n }\n y += x;\n }\n return y += l, t._keyEvent = !1, y;\n },\n _generateMonthYearHeader: function _generateMonthYearHeader(t, e, i, s, n, o, a, r) {\n var h,\n l,\n c,\n u,\n d,\n p,\n f,\n g,\n m = this._get(t, \"changeMonth\"),\n _ = this._get(t, \"changeYear\"),\n v = this._get(t, \"showMonthAfterYear\"),\n b = \"<div class='ui-datepicker-title'>\",\n y = \"\";\n if (o || !m) y += \"<span class='ui-datepicker-month'>\" + a[e] + \"</span>\";else {\n for (h = s && s.getFullYear() === i, l = n && n.getFullYear() === i, y += \"<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>\", c = 0; 12 > c; c++) (!h || c >= s.getMonth()) && (!l || n.getMonth() >= c) && (y += \"<option value='\" + c + \"'\" + (c === e ? \" selected='selected'\" : \"\") + \">\" + r[c] + \"</option>\");\n y += \"</select>\";\n }\n if (v || (b += y + (!o && m && _ ? \"\" : \" \")), !t.yearshtml) if (t.yearshtml = \"\", o || !_) b += \"<span class='ui-datepicker-year'>\" + i + \"</span>\";else {\n for (u = this._get(t, \"yearRange\").split(\":\"), d = new Date().getFullYear(), p = function p(t) {\n var e = t.match(/c[+\\-].*/) ? i + parseInt(t.substring(1), 10) : t.match(/[+\\-].*/) ? d + parseInt(t, 10) : parseInt(t, 10);\n return isNaN(e) ? d : e;\n }, f = p(u[0]), g = Math.max(f, p(u[1] || \"\")), f = s ? Math.max(f, s.getFullYear()) : f, g = n ? Math.min(g, n.getFullYear()) : g, t.yearshtml += \"<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>\"; g >= f; f++) t.yearshtml += \"<option value='\" + f + \"'\" + (f === i ? \" selected='selected'\" : \"\") + \">\" + f + \"</option>\";\n t.yearshtml += \"</select>\", b += t.yearshtml, t.yearshtml = null;\n }\n return b += this._get(t, \"yearSuffix\"), v && (b += (!o && m && _ ? \"\" : \" \") + y), b += \"</div>\";\n },\n _adjustInstDate: function _adjustInstDate(t, e, i) {\n var s = t.selectedYear + (\"Y\" === i ? e : 0),\n n = t.selectedMonth + (\"M\" === i ? e : 0),\n o = Math.min(t.selectedDay, this._getDaysInMonth(s, n)) + (\"D\" === i ? e : 0),\n a = this._restrictMinMax(t, this._daylightSavingAdjust(new Date(s, n, o)));\n t.selectedDay = a.getDate(), t.drawMonth = t.selectedMonth = a.getMonth(), t.drawYear = t.selectedYear = a.getFullYear(), (\"M\" === i || \"Y\" === i) && this._notifyChange(t);\n },\n _restrictMinMax: function _restrictMinMax(t, e) {\n var i = this._getMinMaxDate(t, \"min\"),\n s = this._getMinMaxDate(t, \"max\"),\n n = i && i > e ? i : e;\n return s && n > s ? s : n;\n },\n _notifyChange: function _notifyChange(t) {\n var e = this._get(t, \"onChangeMonthYear\");\n e && e.apply(t.input ? t.input[0] : null, [t.selectedYear, t.selectedMonth + 1, t]);\n },\n _getNumberOfMonths: function _getNumberOfMonths(t) {\n var e = this._get(t, \"numberOfMonths\");\n return null == e ? [1, 1] : \"number\" == typeof e ? [1, e] : e;\n },\n _getMinMaxDate: function _getMinMaxDate(t, e) {\n return this._determineDate(t, this._get(t, e + \"Date\"), null);\n },\n _getDaysInMonth: function _getDaysInMonth(t, e) {\n return 32 - this._daylightSavingAdjust(new Date(t, e, 32)).getDate();\n },\n _getFirstDayOfMonth: function _getFirstDayOfMonth(t, e) {\n return new Date(t, e, 1).getDay();\n },\n _canAdjustMonth: function _canAdjustMonth(t, e, i, s) {\n var n = this._getNumberOfMonths(t),\n o = this._daylightSavingAdjust(new Date(i, s + (0 > e ? e : n[0] * n[1]), 1));\n return 0 > e && o.setDate(this._getDaysInMonth(o.getFullYear(), o.getMonth())), this._isInRange(t, o);\n },\n _isInRange: function _isInRange(t, e) {\n var i,\n s,\n n = this._getMinMaxDate(t, \"min\"),\n o = this._getMinMaxDate(t, \"max\"),\n a = null,\n r = null,\n h = this._get(t, \"yearRange\");\n return h && (i = h.split(\":\"), s = new Date().getFullYear(), a = parseInt(i[0], 10), r = parseInt(i[1], 10), i[0].match(/[+\\-].*/) && (a += s), i[1].match(/[+\\-].*/) && (r += s)), (!n || e.getTime() >= n.getTime()) && (!o || e.getTime() <= o.getTime()) && (!a || e.getFullYear() >= a) && (!r || r >= e.getFullYear());\n },\n _getFormatConfig: function _getFormatConfig(t) {\n var e = this._get(t, \"shortYearCutoff\");\n return e = \"string\" != typeof e ? e : new Date().getFullYear() % 100 + parseInt(e, 10), {\n shortYearCutoff: e,\n dayNamesShort: this._get(t, \"dayNamesShort\"),\n dayNames: this._get(t, \"dayNames\"),\n monthNamesShort: this._get(t, \"monthNamesShort\"),\n monthNames: this._get(t, \"monthNames\")\n };\n },\n _formatDate: function _formatDate(t, e, i, s) {\n e || (t.currentDay = t.selectedDay, t.currentMonth = t.selectedMonth, t.currentYear = t.selectedYear);\n var n = e ? \"object\" == _typeof(e) ? e : this._daylightSavingAdjust(new Date(s, i, e)) : this._daylightSavingAdjust(new Date(t.currentYear, t.currentMonth, t.currentDay));\n return this.formatDate(this._get(t, \"dateFormat\"), n, this._getFormatConfig(t));\n }\n }), t.fn.datepicker = function (e) {\n if (!this.length) return this;\n t.datepicker.initialized || (t(document).on(\"mousedown\", t.datepicker._checkExternalClick), t.datepicker.initialized = !0), 0 === t(\"#\" + t.datepicker._mainDivId).length && t(\"body\").append(t.datepicker.dpDiv);\n var i = Array.prototype.slice.call(arguments, 1);\n return \"string\" != typeof e || \"isDisabled\" !== e && \"getDate\" !== e && \"widget\" !== e ? \"option\" === e && 2 === arguments.length && \"string\" == typeof arguments[1] ? t.datepicker[\"_\" + e + \"Datepicker\"].apply(t.datepicker, [this[0]].concat(i)) : this.each(function () {\n \"string\" == typeof e ? t.datepicker[\"_\" + e + \"Datepicker\"].apply(t.datepicker, [this].concat(i)) : t.datepicker._attachDatepicker(this, e);\n }) : t.datepicker[\"_\" + e + \"Datepicker\"].apply(t.datepicker, [this[0]].concat(i));\n }, t.datepicker = new s(), t.datepicker.initialized = !1, t.datepicker.uuid = new Date().getTime(), t.datepicker.version = \"1.12.1\", t.datepicker, t.ui.ie = !!/msie [\\w.]+/.exec(navigator.userAgent.toLowerCase());\n var _ = !1;\n t(document).on(\"mouseup\", function () {\n _ = !1;\n }), t.widget(\"ui.mouse\", {\n version: \"1.12.1\",\n options: {\n cancel: \"input, textarea, button, select, option\",\n distance: 1,\n delay: 0\n },\n _mouseInit: function _mouseInit() {\n var e = this;\n this.element.on(\"mousedown.\" + this.widgetName, function (t) {\n return e._mouseDown(t);\n }).on(\"click.\" + this.widgetName, function (i) {\n return !0 === t.data(i.target, e.widgetName + \".preventClickEvent\") ? (t.removeData(i.target, e.widgetName + \".preventClickEvent\"), i.stopImmediatePropagation(), !1) : void 0;\n }), this.started = !1;\n },\n _mouseDestroy: function _mouseDestroy() {\n this.element.off(\".\" + this.widgetName), this._mouseMoveDelegate && this.document.off(\"mousemove.\" + this.widgetName, this._mouseMoveDelegate).off(\"mouseup.\" + this.widgetName, this._mouseUpDelegate);\n },\n _mouseDown: function _mouseDown(e) {\n if (!_) {\n this._mouseMoved = !1, this._mouseStarted && this._mouseUp(e), this._mouseDownEvent = e;\n var i = this,\n s = 1 === e.which,\n n = \"string\" == typeof this.options.cancel && e.target.nodeName ? t(e.target).closest(this.options.cancel).length : !1;\n return s && !n && this._mouseCapture(e) ? (this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function () {\n i.mouseDelayMet = !0;\n }, this.options.delay)), this._mouseDistanceMet(e) && this._mouseDelayMet(e) && (this._mouseStarted = this._mouseStart(e) !== !1, !this._mouseStarted) ? (e.preventDefault(), !0) : (!0 === t.data(e.target, this.widgetName + \".preventClickEvent\") && t.removeData(e.target, this.widgetName + \".preventClickEvent\"), this._mouseMoveDelegate = function (t) {\n return i._mouseMove(t);\n }, this._mouseUpDelegate = function (t) {\n return i._mouseUp(t);\n }, this.document.on(\"mousemove.\" + this.widgetName, this._mouseMoveDelegate).on(\"mouseup.\" + this.widgetName, this._mouseUpDelegate), e.preventDefault(), _ = !0, !0)) : !0;\n }\n },\n _mouseMove: function _mouseMove(e) {\n if (this._mouseMoved) {\n if (t.ui.ie && (!document.documentMode || 9 > document.documentMode) && !e.button) return this._mouseUp(e);\n if (!e.which) if (e.originalEvent.altKey || e.originalEvent.ctrlKey || e.originalEvent.metaKey || e.originalEvent.shiftKey) this.ignoreMissingWhich = !0;else if (!this.ignoreMissingWhich) return this._mouseUp(e);\n }\n return (e.which || e.button) && (this._mouseMoved = !0), this._mouseStarted ? (this._mouseDrag(e), e.preventDefault()) : (this._mouseDistanceMet(e) && this._mouseDelayMet(e) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, e) !== !1, this._mouseStarted ? this._mouseDrag(e) : this._mouseUp(e)), !this._mouseStarted);\n },\n _mouseUp: function _mouseUp(e) {\n this.document.off(\"mousemove.\" + this.widgetName, this._mouseMoveDelegate).off(\"mouseup.\" + this.widgetName, this._mouseUpDelegate), this._mouseStarted && (this._mouseStarted = !1, e.target === this._mouseDownEvent.target && t.data(e.target, this.widgetName + \".preventClickEvent\", !0), this._mouseStop(e)), this._mouseDelayTimer && (clearTimeout(this._mouseDelayTimer), delete this._mouseDelayTimer), this.ignoreMissingWhich = !1, _ = !1, e.preventDefault();\n },\n _mouseDistanceMet: function _mouseDistanceMet(t) {\n return Math.max(Math.abs(this._mouseDownEvent.pageX - t.pageX), Math.abs(this._mouseDownEvent.pageY - t.pageY)) >= this.options.distance;\n },\n _mouseDelayMet: function _mouseDelayMet() {\n return this.mouseDelayMet;\n },\n _mouseStart: function _mouseStart() {},\n _mouseDrag: function _mouseDrag() {},\n _mouseStop: function _mouseStop() {},\n _mouseCapture: function _mouseCapture() {\n return !0;\n }\n }), t.ui.plugin = {\n add: function add(e, i, s) {\n var n,\n o = t.ui[e].prototype;\n for (n in s) o.plugins[n] = o.plugins[n] || [], o.plugins[n].push([i, s[n]]);\n },\n call: function call(t, e, i, s) {\n var n,\n o = t.plugins[e];\n if (o && (s || t.element[0].parentNode && 11 !== t.element[0].parentNode.nodeType)) for (n = 0; o.length > n; n++) t.options[o[n][0]] && o[n][1].apply(t.element, i);\n }\n }, t.ui.safeBlur = function (e) {\n e && \"body\" !== e.nodeName.toLowerCase() && t(e).trigger(\"blur\");\n }, t.widget(\"ui.draggable\", t.ui.mouse, {\n version: \"1.12.1\",\n widgetEventPrefix: \"drag\",\n options: {\n addClasses: !0,\n appendTo: \"parent\",\n axis: !1,\n connectToSortable: !1,\n containment: !1,\n cursor: \"auto\",\n cursorAt: !1,\n grid: !1,\n handle: !1,\n helper: \"original\",\n iframeFix: !1,\n opacity: !1,\n refreshPositions: !1,\n revert: !1,\n revertDuration: 500,\n scope: \"default\",\n scroll: !0,\n scrollSensitivity: 20,\n scrollSpeed: 20,\n snap: !1,\n snapMode: \"both\",\n snapTolerance: 20,\n stack: !1,\n zIndex: !1,\n drag: null,\n start: null,\n stop: null\n },\n _create: function _create() {\n \"original\" === this.options.helper && this._setPositionRelative(), this.options.addClasses && this._addClass(\"ui-draggable\"), this._setHandleClassName(), this._mouseInit();\n },\n _setOption: function _setOption(t, e) {\n this._super(t, e), \"handle\" === t && (this._removeHandleClassName(), this._setHandleClassName());\n },\n _destroy: function _destroy() {\n return (this.helper || this.element).is(\".ui-draggable-dragging\") ? (this.destroyOnClear = !0, void 0) : (this._removeHandleClassName(), this._mouseDestroy(), void 0);\n },\n _mouseCapture: function _mouseCapture(e) {\n var i = this.options;\n return this.helper || i.disabled || t(e.target).closest(\".ui-resizable-handle\").length > 0 ? !1 : (this.handle = this._getHandle(e), this.handle ? (this._blurActiveElement(e), this._blockFrames(i.iframeFix === !0 ? \"iframe\" : i.iframeFix), !0) : !1);\n },\n _blockFrames: function _blockFrames(e) {\n this.iframeBlocks = this.document.find(e).map(function () {\n var e = t(this);\n return t(\"<div>\").css(\"position\", \"absolute\").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0];\n });\n },\n _unblockFrames: function _unblockFrames() {\n this.iframeBlocks && (this.iframeBlocks.remove(), delete this.iframeBlocks);\n },\n _blurActiveElement: function _blurActiveElement(e) {\n var i = t.ui.safeActiveElement(this.document[0]),\n s = t(e.target);\n s.closest(i).length || t.ui.safeBlur(i);\n },\n _mouseStart: function _mouseStart(e) {\n var i = this.options;\n return this.helper = this._createHelper(e), this._addClass(this.helper, \"ui-draggable-dragging\"), this._cacheHelperProportions(), t.ui.ddmanager && (t.ui.ddmanager.current = this), this._cacheMargins(), this.cssPosition = this.helper.css(\"position\"), this.scrollParent = this.helper.scrollParent(!0), this.offsetParent = this.helper.offsetParent(), this.hasFixedAncestor = this.helper.parents().filter(function () {\n return \"fixed\" === t(this).css(\"position\");\n }).length > 0, this.positionAbs = this.element.offset(), this._refreshOffsets(e), this.originalPosition = this.position = this._generatePosition(e, !1), this.originalPageX = e.pageX, this.originalPageY = e.pageY, i.cursorAt && this._adjustOffsetFromHelper(i.cursorAt), this._setContainment(), this._trigger(\"start\", e) === !1 ? (this._clear(), !1) : (this._cacheHelperProportions(), t.ui.ddmanager && !i.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e), this._mouseDrag(e, !0), t.ui.ddmanager && t.ui.ddmanager.dragStart(this, e), !0);\n },\n _refreshOffsets: function _refreshOffsets(t) {\n this.offset = {\n top: this.positionAbs.top - this.margins.top,\n left: this.positionAbs.left - this.margins.left,\n scroll: !1,\n parent: this._getParentOffset(),\n relative: this._getRelativeOffset()\n }, this.offset.click = {\n left: t.pageX - this.offset.left,\n top: t.pageY - this.offset.top\n };\n },\n _mouseDrag: function _mouseDrag(e, i) {\n if (this.hasFixedAncestor && (this.offset.parent = this._getParentOffset()), this.position = this._generatePosition(e, !0), this.positionAbs = this._convertPositionTo(\"absolute\"), !i) {\n var s = this._uiHash();\n if (this._trigger(\"drag\", e, s) === !1) return this._mouseUp(new t.Event(\"mouseup\", e)), !1;\n this.position = s.position;\n }\n return this.helper[0].style.left = this.position.left + \"px\", this.helper[0].style.top = this.position.top + \"px\", t.ui.ddmanager && t.ui.ddmanager.drag(this, e), !1;\n },\n _mouseStop: function _mouseStop(e) {\n var i = this,\n s = !1;\n return t.ui.ddmanager && !this.options.dropBehaviour && (s = t.ui.ddmanager.drop(this, e)), this.dropped && (s = this.dropped, this.dropped = !1), \"invalid\" === this.options.revert && !s || \"valid\" === this.options.revert && s || this.options.revert === !0 || t.isFunction(this.options.revert) && this.options.revert.call(this.element, s) ? t(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function () {\n i._trigger(\"stop\", e) !== !1 && i._clear();\n }) : this._trigger(\"stop\", e) !== !1 && this._clear(), !1;\n },\n _mouseUp: function _mouseUp(e) {\n return this._unblockFrames(), t.ui.ddmanager && t.ui.ddmanager.dragStop(this, e), this.handleElement.is(e.target) && this.element.trigger(\"focus\"), t.ui.mouse.prototype._mouseUp.call(this, e);\n },\n cancel: function cancel() {\n return this.helper.is(\".ui-draggable-dragging\") ? this._mouseUp(new t.Event(\"mouseup\", {\n target: this.element[0]\n })) : this._clear(), this;\n },\n _getHandle: function _getHandle(e) {\n return this.options.handle ? !!t(e.target).closest(this.element.find(this.options.handle)).length : !0;\n },\n _setHandleClassName: function _setHandleClassName() {\n this.handleElement = this.options.handle ? this.element.find(this.options.handle) : this.element, this._addClass(this.handleElement, \"ui-draggable-handle\");\n },\n _removeHandleClassName: function _removeHandleClassName() {\n this._removeClass(this.handleElement, \"ui-draggable-handle\");\n },\n _createHelper: function _createHelper(e) {\n var i = this.options,\n s = t.isFunction(i.helper),\n n = s ? t(i.helper.apply(this.element[0], [e])) : \"clone\" === i.helper ? this.element.clone().removeAttr(\"id\") : this.element;\n return n.parents(\"body\").length || n.appendTo(\"parent\" === i.appendTo ? this.element[0].parentNode : i.appendTo), s && n[0] === this.element[0] && this._setPositionRelative(), n[0] === this.element[0] || /(fixed|absolute)/.test(n.css(\"position\")) || n.css(\"position\", \"absolute\"), n;\n },\n _setPositionRelative: function _setPositionRelative() {\n /^(?:r|a|f)/.test(this.element.css(\"position\")) || (this.element[0].style.position = \"relative\");\n },\n _adjustOffsetFromHelper: function _adjustOffsetFromHelper(e) {\n \"string\" == typeof e && (e = e.split(\" \")), t.isArray(e) && (e = {\n left: +e[0],\n top: +e[1] || 0\n }), \"left\" in e && (this.offset.click.left = e.left + this.margins.left), \"right\" in e && (this.offset.click.left = this.helperProportions.width - e.right + this.margins.left), \"top\" in e && (this.offset.click.top = e.top + this.margins.top), \"bottom\" in e && (this.offset.click.top = this.helperProportions.height - e.bottom + this.margins.top);\n },\n _isRootNode: function _isRootNode(t) {\n return /(html|body)/i.test(t.tagName) || t === this.document[0];\n },\n _getParentOffset: function _getParentOffset() {\n var e = this.offsetParent.offset(),\n i = this.document[0];\n return \"absolute\" === this.cssPosition && this.scrollParent[0] !== i && t.contains(this.scrollParent[0], this.offsetParent[0]) && (e.left += this.scrollParent.scrollLeft(), e.top += this.scrollParent.scrollTop()), this._isRootNode(this.offsetParent[0]) && (e = {\n top: 0,\n left: 0\n }), {\n top: e.top + (parseInt(this.offsetParent.css(\"borderTopWidth\"), 10) || 0),\n left: e.left + (parseInt(this.offsetParent.css(\"borderLeftWidth\"), 10) || 0)\n };\n },\n _getRelativeOffset: function _getRelativeOffset() {\n if (\"relative\" !== this.cssPosition) return {\n top: 0,\n left: 0\n };\n var t = this.element.position(),\n e = this._isRootNode(this.scrollParent[0]);\n return {\n top: t.top - (parseInt(this.helper.css(\"top\"), 10) || 0) + (e ? 0 : this.scrollParent.scrollTop()),\n left: t.left - (parseInt(this.helper.css(\"left\"), 10) || 0) + (e ? 0 : this.scrollParent.scrollLeft())\n };\n },\n _cacheMargins: function _cacheMargins() {\n this.margins = {\n left: parseInt(this.element.css(\"marginLeft\"), 10) || 0,\n top: parseInt(this.element.css(\"marginTop\"), 10) || 0,\n right: parseInt(this.element.css(\"marginRight\"), 10) || 0,\n bottom: parseInt(this.element.css(\"marginBottom\"), 10) || 0\n };\n },\n _cacheHelperProportions: function _cacheHelperProportions() {\n this.helperProportions = {\n width: this.helper.outerWidth(),\n height: this.helper.outerHeight()\n };\n },\n _setContainment: function _setContainment() {\n var e,\n i,\n s,\n n = this.options,\n o = this.document[0];\n return this.relativeContainer = null, n.containment ? \"window\" === n.containment ? (this.containment = [t(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, t(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, t(window).scrollLeft() + t(window).width() - this.helperProportions.width - this.margins.left, t(window).scrollTop() + (t(window).height() || o.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top], void 0) : \"document\" === n.containment ? (this.containment = [0, 0, t(o).width() - this.helperProportions.width - this.margins.left, (t(o).height() || o.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top], void 0) : n.containment.constructor === Array ? (this.containment = n.containment, void 0) : (\"parent\" === n.containment && (n.containment = this.helper[0].parentNode), i = t(n.containment), s = i[0], s && (e = /(scroll|auto)/.test(i.css(\"overflow\")), this.containment = [(parseInt(i.css(\"borderLeftWidth\"), 10) || 0) + (parseInt(i.css(\"paddingLeft\"), 10) || 0), (parseInt(i.css(\"borderTopWidth\"), 10) || 0) + (parseInt(i.css(\"paddingTop\"), 10) || 0), (e ? Math.max(s.scrollWidth, s.offsetWidth) : s.offsetWidth) - (parseInt(i.css(\"borderRightWidth\"), 10) || 0) - (parseInt(i.css(\"paddingRight\"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (e ? Math.max(s.scrollHeight, s.offsetHeight) : s.offsetHeight) - (parseInt(i.css(\"borderBottomWidth\"), 10) || 0) - (parseInt(i.css(\"paddingBottom\"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom], this.relativeContainer = i), void 0) : (this.containment = null, void 0);\n },\n _convertPositionTo: function _convertPositionTo(t, e) {\n e || (e = this.position);\n var i = \"absolute\" === t ? 1 : -1,\n s = this._isRootNode(this.scrollParent[0]);\n return {\n top: e.top + this.offset.relative.top * i + this.offset.parent.top * i - (\"fixed\" === this.cssPosition ? -this.offset.scroll.top : s ? 0 : this.offset.scroll.top) * i,\n left: e.left + this.offset.relative.left * i + this.offset.parent.left * i - (\"fixed\" === this.cssPosition ? -this.offset.scroll.left : s ? 0 : this.offset.scroll.left) * i\n };\n },\n _generatePosition: function _generatePosition(t, e) {\n var i,\n s,\n n,\n o,\n a = this.options,\n r = this._isRootNode(this.scrollParent[0]),\n h = t.pageX,\n l = t.pageY;\n return r && this.offset.scroll || (this.offset.scroll = {\n top: this.scrollParent.scrollTop(),\n left: this.scrollParent.scrollLeft()\n }), e && (this.containment && (this.relativeContainer ? (s = this.relativeContainer.offset(), i = [this.containment[0] + s.left, this.containment[1] + s.top, this.containment[2] + s.left, this.containment[3] + s.top]) : i = this.containment, t.pageX - this.offset.click.left < i[0] && (h = i[0] + this.offset.click.left), t.pageY - this.offset.click.top < i[1] && (l = i[1] + this.offset.click.top), t.pageX - this.offset.click.left > i[2] && (h = i[2] + this.offset.click.left), t.pageY - this.offset.click.top > i[3] && (l = i[3] + this.offset.click.top)), a.grid && (n = a.grid[1] ? this.originalPageY + Math.round((l - this.originalPageY) / a.grid[1]) * a.grid[1] : this.originalPageY, l = i ? n - this.offset.click.top >= i[1] || n - this.offset.click.top > i[3] ? n : n - this.offset.click.top >= i[1] ? n - a.grid[1] : n + a.grid[1] : n, o = a.grid[0] ? this.originalPageX + Math.round((h - this.originalPageX) / a.grid[0]) * a.grid[0] : this.originalPageX, h = i ? o - this.offset.click.left >= i[0] || o - this.offset.click.left > i[2] ? o : o - this.offset.click.left >= i[0] ? o - a.grid[0] : o + a.grid[0] : o), \"y\" === a.axis && (h = this.originalPageX), \"x\" === a.axis && (l = this.originalPageY)), {\n top: l - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (\"fixed\" === this.cssPosition ? -this.offset.scroll.top : r ? 0 : this.offset.scroll.top),\n left: h - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (\"fixed\" === this.cssPosition ? -this.offset.scroll.left : r ? 0 : this.offset.scroll.left)\n };\n },\n _clear: function _clear() {\n this._removeClass(this.helper, \"ui-draggable-dragging\"), this.helper[0] === this.element[0] || this.cancelHelperRemoval || this.helper.remove(), this.helper = null, this.cancelHelperRemoval = !1, this.destroyOnClear && this.destroy();\n },\n _trigger: function _trigger(e, i, s) {\n return s = s || this._uiHash(), t.ui.plugin.call(this, e, [i, s, this], !0), /^(drag|start|stop)/.test(e) && (this.positionAbs = this._convertPositionTo(\"absolute\"), s.offset = this.positionAbs), t.Widget.prototype._trigger.call(this, e, i, s);\n },\n plugins: {},\n _uiHash: function _uiHash() {\n return {\n helper: this.helper,\n position: this.position,\n originalPosition: this.originalPosition,\n offset: this.positionAbs\n };\n }\n }), t.ui.plugin.add(\"draggable\", \"connectToSortable\", {\n start: function start(e, i, s) {\n var n = t.extend({}, i, {\n item: s.element\n });\n s.sortables = [], t(s.options.connectToSortable).each(function () {\n var i = t(this).sortable(\"instance\");\n i && !i.options.disabled && (s.sortables.push(i), i.refreshPositions(), i._trigger(\"activate\", e, n));\n });\n },\n stop: function stop(e, i, s) {\n var n = t.extend({}, i, {\n item: s.element\n });\n s.cancelHelperRemoval = !1, t.each(s.sortables, function () {\n var t = this;\n t.isOver ? (t.isOver = 0, s.cancelHelperRemoval = !0, t.cancelHelperRemoval = !1, t._storedCSS = {\n position: t.placeholder.css(\"position\"),\n top: t.placeholder.css(\"top\"),\n left: t.placeholder.css(\"left\")\n }, t._mouseStop(e), t.options.helper = t.options._helper) : (t.cancelHelperRemoval = !0, t._trigger(\"deactivate\", e, n));\n });\n },\n drag: function drag(e, i, s) {\n t.each(s.sortables, function () {\n var n = !1,\n o = this;\n o.positionAbs = s.positionAbs, o.helperProportions = s.helperProportions, o.offset.click = s.offset.click, o._intersectsWith(o.containerCache) && (n = !0, t.each(s.sortables, function () {\n return this.positionAbs = s.positionAbs, this.helperProportions = s.helperProportions, this.offset.click = s.offset.click, this !== o && this._intersectsWith(this.containerCache) && t.contains(o.element[0], this.element[0]) && (n = !1), n;\n })), n ? (o.isOver || (o.isOver = 1, s._parent = i.helper.parent(), o.currentItem = i.helper.appendTo(o.element).data(\"ui-sortable-item\", !0), o.options._helper = o.options.helper, o.options.helper = function () {\n return i.helper[0];\n }, e.target = o.currentItem[0], o._mouseCapture(e, !0), o._mouseStart(e, !0, !0), o.offset.click.top = s.offset.click.top, o.offset.click.left = s.offset.click.left, o.offset.parent.left -= s.offset.parent.left - o.offset.parent.left, o.offset.parent.top -= s.offset.parent.top - o.offset.parent.top, s._trigger(\"toSortable\", e), s.dropped = o.element, t.each(s.sortables, function () {\n this.refreshPositions();\n }), s.currentItem = s.element, o.fromOutside = s), o.currentItem && (o._mouseDrag(e), i.position = o.position)) : o.isOver && (o.isOver = 0, o.cancelHelperRemoval = !0, o.options._revert = o.options.revert, o.options.revert = !1, o._trigger(\"out\", e, o._uiHash(o)), o._mouseStop(e, !0), o.options.revert = o.options._revert, o.options.helper = o.options._helper, o.placeholder && o.placeholder.remove(), i.helper.appendTo(s._parent), s._refreshOffsets(e), i.position = s._generatePosition(e, !0), s._trigger(\"fromSortable\", e), s.dropped = !1, t.each(s.sortables, function () {\n this.refreshPositions();\n }));\n });\n }\n }), t.ui.plugin.add(\"draggable\", \"cursor\", {\n start: function start(e, i, s) {\n var n = t(\"body\"),\n o = s.options;\n n.css(\"cursor\") && (o._cursor = n.css(\"cursor\")), n.css(\"cursor\", o.cursor);\n },\n stop: function stop(e, i, s) {\n var n = s.options;\n n._cursor && t(\"body\").css(\"cursor\", n._cursor);\n }\n }), t.ui.plugin.add(\"draggable\", \"opacity\", {\n start: function start(e, i, s) {\n var n = t(i.helper),\n o = s.options;\n n.css(\"opacity\") && (o._opacity = n.css(\"opacity\")), n.css(\"opacity\", o.opacity);\n },\n stop: function stop(e, i, s) {\n var n = s.options;\n n._opacity && t(i.helper).css(\"opacity\", n._opacity);\n }\n }), t.ui.plugin.add(\"draggable\", \"scroll\", {\n start: function start(t, e, i) {\n i.scrollParentNotHidden || (i.scrollParentNotHidden = i.helper.scrollParent(!1)), i.scrollParentNotHidden[0] !== i.document[0] && \"HTML\" !== i.scrollParentNotHidden[0].tagName && (i.overflowOffset = i.scrollParentNotHidden.offset());\n },\n drag: function drag(e, i, s) {\n var n = s.options,\n o = !1,\n a = s.scrollParentNotHidden[0],\n r = s.document[0];\n a !== r && \"HTML\" !== a.tagName ? (n.axis && \"x\" === n.axis || (s.overflowOffset.top + a.offsetHeight - e.pageY < n.scrollSensitivity ? a.scrollTop = o = a.scrollTop + n.scrollSpeed : e.pageY - s.overflowOffset.top < n.scrollSensitivity && (a.scrollTop = o = a.scrollTop - n.scrollSpeed)), n.axis && \"y\" === n.axis || (s.overflowOffset.left + a.offsetWidth - e.pageX < n.scrollSensitivity ? a.scrollLeft = o = a.scrollLeft + n.scrollSpeed : e.pageX - s.overflowOffset.left < n.scrollSensitivity && (a.scrollLeft = o = a.scrollLeft - n.scrollSpeed))) : (n.axis && \"x\" === n.axis || (e.pageY - t(r).scrollTop() < n.scrollSensitivity ? o = t(r).scrollTop(t(r).scrollTop() - n.scrollSpeed) : t(window).height() - (e.pageY - t(r).scrollTop()) < n.scrollSensitivity && (o = t(r).scrollTop(t(r).scrollTop() + n.scrollSpeed))), n.axis && \"y\" === n.axis || (e.pageX - t(r).scrollLeft() < n.scrollSensitivity ? o = t(r).scrollLeft(t(r).scrollLeft() - n.scrollSpeed) : t(window).width() - (e.pageX - t(r).scrollLeft()) < n.scrollSensitivity && (o = t(r).scrollLeft(t(r).scrollLeft() + n.scrollSpeed)))), o !== !1 && t.ui.ddmanager && !n.dropBehaviour && t.ui.ddmanager.prepareOffsets(s, e);\n }\n }), t.ui.plugin.add(\"draggable\", \"snap\", {\n start: function start(e, i, s) {\n var n = s.options;\n s.snapElements = [], t(n.snap.constructor !== String ? n.snap.items || \":data(ui-draggable)\" : n.snap).each(function () {\n var e = t(this),\n i = e.offset();\n this !== s.element[0] && s.snapElements.push({\n item: this,\n width: e.outerWidth(),\n height: e.outerHeight(),\n top: i.top,\n left: i.left\n });\n });\n },\n drag: function drag(e, i, s) {\n var n,\n o,\n a,\n r,\n h,\n l,\n c,\n u,\n d,\n p,\n f = s.options,\n g = f.snapTolerance,\n m = i.offset.left,\n _ = m + s.helperProportions.width,\n v = i.offset.top,\n b = v + s.helperProportions.height;\n for (d = s.snapElements.length - 1; d >= 0; d--) h = s.snapElements[d].left - s.margins.left, l = h + s.snapElements[d].width, c = s.snapElements[d].top - s.margins.top, u = c + s.snapElements[d].height, h - g > _ || m > l + g || c - g > b || v > u + g || !t.contains(s.snapElements[d].item.ownerDocument, s.snapElements[d].item) ? (s.snapElements[d].snapping && s.options.snap.release && s.options.snap.release.call(s.element, e, t.extend(s._uiHash(), {\n snapItem: s.snapElements[d].item\n })), s.snapElements[d].snapping = !1) : (\"inner\" !== f.snapMode && (n = g >= Math.abs(c - b), o = g >= Math.abs(u - v), a = g >= Math.abs(h - _), r = g >= Math.abs(l - m), n && (i.position.top = s._convertPositionTo(\"relative\", {\n top: c - s.helperProportions.height,\n left: 0\n }).top), o && (i.position.top = s._convertPositionTo(\"relative\", {\n top: u,\n left: 0\n }).top), a && (i.position.left = s._convertPositionTo(\"relative\", {\n top: 0,\n left: h - s.helperProportions.width\n }).left), r && (i.position.left = s._convertPositionTo(\"relative\", {\n top: 0,\n left: l\n }).left)), p = n || o || a || r, \"outer\" !== f.snapMode && (n = g >= Math.abs(c - v), o = g >= Math.abs(u - b), a = g >= Math.abs(h - m), r = g >= Math.abs(l - _), n && (i.position.top = s._convertPositionTo(\"relative\", {\n top: c,\n left: 0\n }).top), o && (i.position.top = s._convertPositionTo(\"relative\", {\n top: u - s.helperProportions.height,\n left: 0\n }).top), a && (i.position.left = s._convertPositionTo(\"relative\", {\n top: 0,\n left: h\n }).left), r && (i.position.left = s._convertPositionTo(\"relative\", {\n top: 0,\n left: l - s.helperProportions.width\n }).left)), !s.snapElements[d].snapping && (n || o || a || r || p) && s.options.snap.snap && s.options.snap.snap.call(s.element, e, t.extend(s._uiHash(), {\n snapItem: s.snapElements[d].item\n })), s.snapElements[d].snapping = n || o || a || r || p);\n }\n }), t.ui.plugin.add(\"draggable\", \"stack\", {\n start: function start(e, i, s) {\n var n,\n o = s.options,\n a = t.makeArray(t(o.stack)).sort(function (e, i) {\n return (parseInt(t(e).css(\"zIndex\"), 10) || 0) - (parseInt(t(i).css(\"zIndex\"), 10) || 0);\n });\n a.length && (n = parseInt(t(a[0]).css(\"zIndex\"), 10) || 0, t(a).each(function (e) {\n t(this).css(\"zIndex\", n + e);\n }), this.css(\"zIndex\", n + a.length));\n }\n }), t.ui.plugin.add(\"draggable\", \"zIndex\", {\n start: function start(e, i, s) {\n var n = t(i.helper),\n o = s.options;\n n.css(\"zIndex\") && (o._zIndex = n.css(\"zIndex\")), n.css(\"zIndex\", o.zIndex);\n },\n stop: function stop(e, i, s) {\n var n = s.options;\n n._zIndex && t(i.helper).css(\"zIndex\", n._zIndex);\n }\n }), t.ui.draggable, t.widget(\"ui.resizable\", t.ui.mouse, {\n version: \"1.12.1\",\n widgetEventPrefix: \"resize\",\n options: {\n alsoResize: !1,\n animate: !1,\n animateDuration: \"slow\",\n animateEasing: \"swing\",\n aspectRatio: !1,\n autoHide: !1,\n classes: {\n \"ui-resizable-se\": \"ui-icon ui-icon-gripsmall-diagonal-se\"\n },\n containment: !1,\n ghost: !1,\n grid: !1,\n handles: \"e,s,se\",\n helper: !1,\n maxHeight: null,\n maxWidth: null,\n minHeight: 10,\n minWidth: 10,\n zIndex: 90,\n resize: null,\n start: null,\n stop: null\n },\n _num: function _num(t) {\n return parseFloat(t) || 0;\n },\n _isNumber: function _isNumber(t) {\n return !isNaN(parseFloat(t));\n },\n _hasScroll: function _hasScroll(e, i) {\n if (\"hidden\" === t(e).css(\"overflow\")) return !1;\n var s = i && \"left\" === i ? \"scrollLeft\" : \"scrollTop\",\n n = !1;\n return e[s] > 0 ? !0 : (e[s] = 1, n = e[s] > 0, e[s] = 0, n);\n },\n _create: function _create() {\n var e,\n i = this.options,\n s = this;\n this._addClass(\"ui-resizable\"), t.extend(this, {\n _aspectRatio: !!i.aspectRatio,\n aspectRatio: i.aspectRatio,\n originalElement: this.element,\n _proportionallyResizeElements: [],\n _helper: i.helper || i.ghost || i.animate ? i.helper || \"ui-resizable-helper\" : null\n }), this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i) && (this.element.wrap(t(\"<div class='ui-wrapper' style='overflow: hidden;'></div>\").css({\n position: this.element.css(\"position\"),\n width: this.element.outerWidth(),\n height: this.element.outerHeight(),\n top: this.element.css(\"top\"),\n left: this.element.css(\"left\")\n })), this.element = this.element.parent().data(\"ui-resizable\", this.element.resizable(\"instance\")), this.elementIsWrapper = !0, e = {\n marginTop: this.originalElement.css(\"marginTop\"),\n marginRight: this.originalElement.css(\"marginRight\"),\n marginBottom: this.originalElement.css(\"marginBottom\"),\n marginLeft: this.originalElement.css(\"marginLeft\")\n }, this.element.css(e), this.originalElement.css(\"margin\", 0), this.originalResizeStyle = this.originalElement.css(\"resize\"), this.originalElement.css(\"resize\", \"none\"), this._proportionallyResizeElements.push(this.originalElement.css({\n position: \"static\",\n zoom: 1,\n display: \"block\"\n })), this.originalElement.css(e), this._proportionallyResize()), this._setupHandles(), i.autoHide && t(this.element).on(\"mouseenter\", function () {\n i.disabled || (s._removeClass(\"ui-resizable-autohide\"), s._handles.show());\n }).on(\"mouseleave\", function () {\n i.disabled || s.resizing || (s._addClass(\"ui-resizable-autohide\"), s._handles.hide());\n }), this._mouseInit();\n },\n _destroy: function _destroy() {\n this._mouseDestroy();\n var e,\n i = function i(e) {\n t(e).removeData(\"resizable\").removeData(\"ui-resizable\").off(\".resizable\").find(\".ui-resizable-handle\").remove();\n };\n return this.elementIsWrapper && (i(this.element), e = this.element, this.originalElement.css({\n position: e.css(\"position\"),\n width: e.outerWidth(),\n height: e.outerHeight(),\n top: e.css(\"top\"),\n left: e.css(\"left\")\n }).insertAfter(e), e.remove()), this.originalElement.css(\"resize\", this.originalResizeStyle), i(this.originalElement), this;\n },\n _setOption: function _setOption(t, e) {\n switch (this._super(t, e), t) {\n case \"handles\":\n this._removeHandles(), this._setupHandles();\n break;\n default:\n }\n },\n _setupHandles: function _setupHandles() {\n var e,\n i,\n s,\n n,\n o,\n a = this.options,\n r = this;\n if (this.handles = a.handles || (t(\".ui-resizable-handle\", this.element).length ? {\n n: \".ui-resizable-n\",\n e: \".ui-resizable-e\",\n s: \".ui-resizable-s\",\n w: \".ui-resizable-w\",\n se: \".ui-resizable-se\",\n sw: \".ui-resizable-sw\",\n ne: \".ui-resizable-ne\",\n nw: \".ui-resizable-nw\"\n } : \"e,s,se\"), this._handles = t(), this.handles.constructor === String) for (\"all\" === this.handles && (this.handles = \"n,e,s,w,se,sw,ne,nw\"), s = this.handles.split(\",\"), this.handles = {}, i = 0; s.length > i; i++) e = t.trim(s[i]), n = \"ui-resizable-\" + e, o = t(\"<div>\"), this._addClass(o, \"ui-resizable-handle \" + n), o.css({\n zIndex: a.zIndex\n }), this.handles[e] = \".ui-resizable-\" + e, this.element.append(o);\n this._renderAxis = function (e) {\n var i, s, n, o;\n e = e || this.element;\n for (i in this.handles) this.handles[i].constructor === String ? this.handles[i] = this.element.children(this.handles[i]).first().show() : (this.handles[i].jquery || this.handles[i].nodeType) && (this.handles[i] = t(this.handles[i]), this._on(this.handles[i], {\n mousedown: r._mouseDown\n })), this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i) && (s = t(this.handles[i], this.element), o = /sw|ne|nw|se|n|s/.test(i) ? s.outerHeight() : s.outerWidth(), n = [\"padding\", /ne|nw|n/.test(i) ? \"Top\" : /se|sw|s/.test(i) ? \"Bottom\" : /^e$/.test(i) ? \"Right\" : \"Left\"].join(\"\"), e.css(n, o), this._proportionallyResize()), this._handles = this._handles.add(this.handles[i]);\n }, this._renderAxis(this.element), this._handles = this._handles.add(this.element.find(\".ui-resizable-handle\")), this._handles.disableSelection(), this._handles.on(\"mouseover\", function () {\n r.resizing || (this.className && (o = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)), r.axis = o && o[1] ? o[1] : \"se\");\n }), a.autoHide && (this._handles.hide(), this._addClass(\"ui-resizable-autohide\"));\n },\n _removeHandles: function _removeHandles() {\n this._handles.remove();\n },\n _mouseCapture: function _mouseCapture(e) {\n var i,\n s,\n n = !1;\n for (i in this.handles) s = t(this.handles[i])[0], (s === e.target || t.contains(s, e.target)) && (n = !0);\n return !this.options.disabled && n;\n },\n _mouseStart: function _mouseStart(e) {\n var i,\n s,\n n,\n o = this.options,\n a = this.element;\n return this.resizing = !0, this._renderProxy(), i = this._num(this.helper.css(\"left\")), s = this._num(this.helper.css(\"top\")), o.containment && (i += t(o.containment).scrollLeft() || 0, s += t(o.containment).scrollTop() || 0), this.offset = this.helper.offset(), this.position = {\n left: i,\n top: s\n }, this.size = this._helper ? {\n width: this.helper.width(),\n height: this.helper.height()\n } : {\n width: a.width(),\n height: a.height()\n }, this.originalSize = this._helper ? {\n width: a.outerWidth(),\n height: a.outerHeight()\n } : {\n width: a.width(),\n height: a.height()\n }, this.sizeDiff = {\n width: a.outerWidth() - a.width(),\n height: a.outerHeight() - a.height()\n }, this.originalPosition = {\n left: i,\n top: s\n }, this.originalMousePosition = {\n left: e.pageX,\n top: e.pageY\n }, this.aspectRatio = \"number\" == typeof o.aspectRatio ? o.aspectRatio : this.originalSize.width / this.originalSize.height || 1, n = t(\".ui-resizable-\" + this.axis).css(\"cursor\"), t(\"body\").css(\"cursor\", \"auto\" === n ? this.axis + \"-resize\" : n), this._addClass(\"ui-resizable-resizing\"), this._propagate(\"start\", e), !0;\n },\n _mouseDrag: function _mouseDrag(e) {\n var i,\n s,\n n = this.originalMousePosition,\n o = this.axis,\n a = e.pageX - n.left || 0,\n r = e.pageY - n.top || 0,\n h = this._change[o];\n return this._updatePrevProperties(), h ? (i = h.apply(this, [e, a, r]), this._updateVirtualBoundaries(e.shiftKey), (this._aspectRatio || e.shiftKey) && (i = this._updateRatio(i, e)), i = this._respectSize(i, e), this._updateCache(i), this._propagate(\"resize\", e), s = this._applyChanges(), !this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(), t.isEmptyObject(s) || (this._updatePrevProperties(), this._trigger(\"resize\", e, this.ui()), this._applyChanges()), !1) : !1;\n },\n _mouseStop: function _mouseStop(e) {\n this.resizing = !1;\n var i,\n s,\n n,\n o,\n a,\n r,\n h,\n l = this.options,\n c = this;\n return this._helper && (i = this._proportionallyResizeElements, s = i.length && /textarea/i.test(i[0].nodeName), n = s && this._hasScroll(i[0], \"left\") ? 0 : c.sizeDiff.height, o = s ? 0 : c.sizeDiff.width, a = {\n width: c.helper.width() - o,\n height: c.helper.height() - n\n }, r = parseFloat(c.element.css(\"left\")) + (c.position.left - c.originalPosition.left) || null, h = parseFloat(c.element.css(\"top\")) + (c.position.top - c.originalPosition.top) || null, l.animate || this.element.css(t.extend(a, {\n top: h,\n left: r\n })), c.helper.height(c.size.height), c.helper.width(c.size.width), this._helper && !l.animate && this._proportionallyResize()), t(\"body\").css(\"cursor\", \"auto\"), this._removeClass(\"ui-resizable-resizing\"), this._propagate(\"stop\", e), this._helper && this.helper.remove(), !1;\n },\n _updatePrevProperties: function _updatePrevProperties() {\n this.prevPosition = {\n top: this.position.top,\n left: this.position.left\n }, this.prevSize = {\n width: this.size.width,\n height: this.size.height\n };\n },\n _applyChanges: function _applyChanges() {\n var t = {};\n return this.position.top !== this.prevPosition.top && (t.top = this.position.top + \"px\"), this.position.left !== this.prevPosition.left && (t.left = this.position.left + \"px\"), this.size.width !== this.prevSize.width && (t.width = this.size.width + \"px\"), this.size.height !== this.prevSize.height && (t.height = this.size.height + \"px\"), this.helper.css(t), t;\n },\n _updateVirtualBoundaries: function _updateVirtualBoundaries(t) {\n var e,\n i,\n s,\n n,\n o,\n a = this.options;\n o = {\n minWidth: this._isNumber(a.minWidth) ? a.minWidth : 0,\n maxWidth: this._isNumber(a.maxWidth) ? a.maxWidth : 1 / 0,\n minHeight: this._isNumber(a.minHeight) ? a.minHeight : 0,\n maxHeight: this._isNumber(a.maxHeight) ? a.maxHeight : 1 / 0\n }, (this._aspectRatio || t) && (e = o.minHeight * this.aspectRatio, s = o.minWidth / this.aspectRatio, i = o.maxHeight * this.aspectRatio, n = o.maxWidth / this.aspectRatio, e > o.minWidth && (o.minWidth = e), s > o.minHeight && (o.minHeight = s), o.maxWidth > i && (o.maxWidth = i), o.maxHeight > n && (o.maxHeight = n)), this._vBoundaries = o;\n },\n _updateCache: function _updateCache(t) {\n this.offset = this.helper.offset(), this._isNumber(t.left) && (this.position.left = t.left), this._isNumber(t.top) && (this.position.top = t.top), this._isNumber(t.height) && (this.size.height = t.height), this._isNumber(t.width) && (this.size.width = t.width);\n },\n _updateRatio: function _updateRatio(t) {\n var e = this.position,\n i = this.size,\n s = this.axis;\n return this._isNumber(t.height) ? t.width = t.height * this.aspectRatio : this._isNumber(t.width) && (t.height = t.width / this.aspectRatio), \"sw\" === s && (t.left = e.left + (i.width - t.width), t.top = null), \"nw\" === s && (t.top = e.top + (i.height - t.height), t.left = e.left + (i.width - t.width)), t;\n },\n _respectSize: function _respectSize(t) {\n var e = this._vBoundaries,\n i = this.axis,\n s = this._isNumber(t.width) && e.maxWidth && e.maxWidth < t.width,\n n = this._isNumber(t.height) && e.maxHeight && e.maxHeight < t.height,\n o = this._isNumber(t.width) && e.minWidth && e.minWidth > t.width,\n a = this._isNumber(t.height) && e.minHeight && e.minHeight > t.height,\n r = this.originalPosition.left + this.originalSize.width,\n h = this.originalPosition.top + this.originalSize.height,\n l = /sw|nw|w/.test(i),\n c = /nw|ne|n/.test(i);\n return o && (t.width = e.minWidth), a && (t.height = e.minHeight), s && (t.width = e.maxWidth), n && (t.height = e.maxHeight), o && l && (t.left = r - e.minWidth), s && l && (t.left = r - e.maxWidth), a && c && (t.top = h - e.minHeight), n && c && (t.top = h - e.maxHeight), t.width || t.height || t.left || !t.top ? t.width || t.height || t.top || !t.left || (t.left = null) : t.top = null, t;\n },\n _getPaddingPlusBorderDimensions: function _getPaddingPlusBorderDimensions(t) {\n for (var e = 0, i = [], s = [t.css(\"borderTopWidth\"), t.css(\"borderRightWidth\"), t.css(\"borderBottomWidth\"), t.css(\"borderLeftWidth\")], n = [t.css(\"paddingTop\"), t.css(\"paddingRight\"), t.css(\"paddingBottom\"), t.css(\"paddingLeft\")]; 4 > e; e++) i[e] = parseFloat(s[e]) || 0, i[e] += parseFloat(n[e]) || 0;\n return {\n height: i[0] + i[2],\n width: i[1] + i[3]\n };\n },\n _proportionallyResize: function _proportionallyResize() {\n if (this._proportionallyResizeElements.length) for (var t, e = 0, i = this.helper || this.element; this._proportionallyResizeElements.length > e; e++) t = this._proportionallyResizeElements[e], this.outerDimensions || (this.outerDimensions = this._getPaddingPlusBorderDimensions(t)), t.css({\n height: i.height() - this.outerDimensions.height || 0,\n width: i.width() - this.outerDimensions.width || 0\n });\n },\n _renderProxy: function _renderProxy() {\n var e = this.element,\n i = this.options;\n this.elementOffset = e.offset(), this._helper ? (this.helper = this.helper || t(\"<div style='overflow:hidden;'></div>\"), this._addClass(this.helper, this._helper), this.helper.css({\n width: this.element.outerWidth(),\n height: this.element.outerHeight(),\n position: \"absolute\",\n left: this.elementOffset.left + \"px\",\n top: this.elementOffset.top + \"px\",\n zIndex: ++i.zIndex\n }), this.helper.appendTo(\"body\").disableSelection()) : this.helper = this.element;\n },\n _change: {\n e: function e(t, _e) {\n return {\n width: this.originalSize.width + _e\n };\n },\n w: function w(t, e) {\n var i = this.originalSize,\n s = this.originalPosition;\n return {\n left: s.left + e,\n width: i.width - e\n };\n },\n n: function n(t, e, i) {\n var s = this.originalSize,\n n = this.originalPosition;\n return {\n top: n.top + i,\n height: s.height - i\n };\n },\n s: function s(t, e, i) {\n return {\n height: this.originalSize.height + i\n };\n },\n se: function se(e, i, s) {\n return t.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [e, i, s]));\n },\n sw: function sw(e, i, s) {\n return t.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [e, i, s]));\n },\n ne: function ne(e, i, s) {\n return t.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [e, i, s]));\n },\n nw: function nw(e, i, s) {\n return t.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [e, i, s]));\n }\n },\n _propagate: function _propagate(e, i) {\n t.ui.plugin.call(this, e, [i, this.ui()]), \"resize\" !== e && this._trigger(e, i, this.ui());\n },\n plugins: {},\n ui: function ui() {\n return {\n originalElement: this.originalElement,\n element: this.element,\n helper: this.helper,\n position: this.position,\n size: this.size,\n originalSize: this.originalSize,\n originalPosition: this.originalPosition\n };\n }\n }), t.ui.plugin.add(\"resizable\", \"animate\", {\n stop: function stop(e) {\n var i = t(this).resizable(\"instance\"),\n s = i.options,\n n = i._proportionallyResizeElements,\n o = n.length && /textarea/i.test(n[0].nodeName),\n a = o && i._hasScroll(n[0], \"left\") ? 0 : i.sizeDiff.height,\n r = o ? 0 : i.sizeDiff.width,\n h = {\n width: i.size.width - r,\n height: i.size.height - a\n },\n l = parseFloat(i.element.css(\"left\")) + (i.position.left - i.originalPosition.left) || null,\n c = parseFloat(i.element.css(\"top\")) + (i.position.top - i.originalPosition.top) || null;\n i.element.animate(t.extend(h, c && l ? {\n top: c,\n left: l\n } : {}), {\n duration: s.animateDuration,\n easing: s.animateEasing,\n step: function step() {\n var s = {\n width: parseFloat(i.element.css(\"width\")),\n height: parseFloat(i.element.css(\"height\")),\n top: parseFloat(i.element.css(\"top\")),\n left: parseFloat(i.element.css(\"left\"))\n };\n n && n.length && t(n[0]).css({\n width: s.width,\n height: s.height\n }), i._updateCache(s), i._propagate(\"resize\", e);\n }\n });\n }\n }), t.ui.plugin.add(\"resizable\", \"containment\", {\n start: function start() {\n var e,\n i,\n s,\n n,\n o,\n a,\n r,\n h = t(this).resizable(\"instance\"),\n l = h.options,\n c = h.element,\n u = l.containment,\n d = u instanceof t ? u.get(0) : /parent/.test(u) ? c.parent().get(0) : u;\n d && (h.containerElement = t(d), /document/.test(u) || u === document ? (h.containerOffset = {\n left: 0,\n top: 0\n }, h.containerPosition = {\n left: 0,\n top: 0\n }, h.parentData = {\n element: t(document),\n left: 0,\n top: 0,\n width: t(document).width(),\n height: t(document).height() || document.body.parentNode.scrollHeight\n }) : (e = t(d), i = [], t([\"Top\", \"Right\", \"Left\", \"Bottom\"]).each(function (t, s) {\n i[t] = h._num(e.css(\"padding\" + s));\n }), h.containerOffset = e.offset(), h.containerPosition = e.position(), h.containerSize = {\n height: e.innerHeight() - i[3],\n width: e.innerWidth() - i[1]\n }, s = h.containerOffset, n = h.containerSize.height, o = h.containerSize.width, a = h._hasScroll(d, \"left\") ? d.scrollWidth : o, r = h._hasScroll(d) ? d.scrollHeight : n, h.parentData = {\n element: d,\n left: s.left,\n top: s.top,\n width: a,\n height: r\n }));\n },\n resize: function resize(e) {\n var i,\n s,\n n,\n o,\n a = t(this).resizable(\"instance\"),\n r = a.options,\n h = a.containerOffset,\n l = a.position,\n c = a._aspectRatio || e.shiftKey,\n u = {\n top: 0,\n left: 0\n },\n d = a.containerElement,\n p = !0;\n d[0] !== document && /static/.test(d.css(\"position\")) && (u = h), l.left < (a._helper ? h.left : 0) && (a.size.width = a.size.width + (a._helper ? a.position.left - h.left : a.position.left - u.left), c && (a.size.height = a.size.width / a.aspectRatio, p = !1), a.position.left = r.helper ? h.left : 0), l.top < (a._helper ? h.top : 0) && (a.size.height = a.size.height + (a._helper ? a.position.top - h.top : a.position.top), c && (a.size.width = a.size.height * a.aspectRatio, p = !1), a.position.top = a._helper ? h.top : 0), n = a.containerElement.get(0) === a.element.parent().get(0), o = /relative|absolute/.test(a.containerElement.css(\"position\")), n && o ? (a.offset.left = a.parentData.left + a.position.left, a.offset.top = a.parentData.top + a.position.top) : (a.offset.left = a.element.offset().left, a.offset.top = a.element.offset().top), i = Math.abs(a.sizeDiff.width + (a._helper ? a.offset.left - u.left : a.offset.left - h.left)), s = Math.abs(a.sizeDiff.height + (a._helper ? a.offset.top - u.top : a.offset.top - h.top)), i + a.size.width >= a.parentData.width && (a.size.width = a.parentData.width - i, c && (a.size.height = a.size.width / a.aspectRatio, p = !1)), s + a.size.height >= a.parentData.height && (a.size.height = a.parentData.height - s, c && (a.size.width = a.size.height * a.aspectRatio, p = !1)), p || (a.position.left = a.prevPosition.left, a.position.top = a.prevPosition.top, a.size.width = a.prevSize.width, a.size.height = a.prevSize.height);\n },\n stop: function stop() {\n var e = t(this).resizable(\"instance\"),\n i = e.options,\n s = e.containerOffset,\n n = e.containerPosition,\n o = e.containerElement,\n a = t(e.helper),\n r = a.offset(),\n h = a.outerWidth() - e.sizeDiff.width,\n l = a.outerHeight() - e.sizeDiff.height;\n e._helper && !i.animate && /relative/.test(o.css(\"position\")) && t(this).css({\n left: r.left - n.left - s.left,\n width: h,\n height: l\n }), e._helper && !i.animate && /static/.test(o.css(\"position\")) && t(this).css({\n left: r.left - n.left - s.left,\n width: h,\n height: l\n });\n }\n }), t.ui.plugin.add(\"resizable\", \"alsoResize\", {\n start: function start() {\n var e = t(this).resizable(\"instance\"),\n i = e.options;\n t(i.alsoResize).each(function () {\n var e = t(this);\n e.data(\"ui-resizable-alsoresize\", {\n width: parseFloat(e.width()),\n height: parseFloat(e.height()),\n left: parseFloat(e.css(\"left\")),\n top: parseFloat(e.css(\"top\"))\n });\n });\n },\n resize: function resize(e, i) {\n var s = t(this).resizable(\"instance\"),\n n = s.options,\n o = s.originalSize,\n a = s.originalPosition,\n r = {\n height: s.size.height - o.height || 0,\n width: s.size.width - o.width || 0,\n top: s.position.top - a.top || 0,\n left: s.position.left - a.left || 0\n };\n t(n.alsoResize).each(function () {\n var e = t(this),\n s = t(this).data(\"ui-resizable-alsoresize\"),\n n = {},\n o = e.parents(i.originalElement[0]).length ? [\"width\", \"height\"] : [\"width\", \"height\", \"top\", \"left\"];\n t.each(o, function (t, e) {\n var i = (s[e] || 0) + (r[e] || 0);\n i && i >= 0 && (n[e] = i || null);\n }), e.css(n);\n });\n },\n stop: function stop() {\n t(this).removeData(\"ui-resizable-alsoresize\");\n }\n }), t.ui.plugin.add(\"resizable\", \"ghost\", {\n start: function start() {\n var e = t(this).resizable(\"instance\"),\n i = e.size;\n e.ghost = e.originalElement.clone(), e.ghost.css({\n opacity: .25,\n display: \"block\",\n position: \"relative\",\n height: i.height,\n width: i.width,\n margin: 0,\n left: 0,\n top: 0\n }), e._addClass(e.ghost, \"ui-resizable-ghost\"), t.uiBackCompat !== !1 && \"string\" == typeof e.options.ghost && e.ghost.addClass(this.options.ghost), e.ghost.appendTo(e.helper);\n },\n resize: function resize() {\n var e = t(this).resizable(\"instance\");\n e.ghost && e.ghost.css({\n position: \"relative\",\n height: e.size.height,\n width: e.size.width\n });\n },\n stop: function stop() {\n var e = t(this).resizable(\"instance\");\n e.ghost && e.helper && e.helper.get(0).removeChild(e.ghost.get(0));\n }\n }), t.ui.plugin.add(\"resizable\", \"grid\", {\n resize: function resize() {\n var e,\n i = t(this).resizable(\"instance\"),\n s = i.options,\n n = i.size,\n o = i.originalSize,\n a = i.originalPosition,\n r = i.axis,\n h = \"number\" == typeof s.grid ? [s.grid, s.grid] : s.grid,\n l = h[0] || 1,\n c = h[1] || 1,\n u = Math.round((n.width - o.width) / l) * l,\n d = Math.round((n.height - o.height) / c) * c,\n p = o.width + u,\n f = o.height + d,\n g = s.maxWidth && p > s.maxWidth,\n m = s.maxHeight && f > s.maxHeight,\n _ = s.minWidth && s.minWidth > p,\n v = s.minHeight && s.minHeight > f;\n s.grid = h, _ && (p += l), v && (f += c), g && (p -= l), m && (f -= c), /^(se|s|e)$/.test(r) ? (i.size.width = p, i.size.height = f) : /^(ne)$/.test(r) ? (i.size.width = p, i.size.height = f, i.position.top = a.top - d) : /^(sw)$/.test(r) ? (i.size.width = p, i.size.height = f, i.position.left = a.left - u) : ((0 >= f - c || 0 >= p - l) && (e = i._getPaddingPlusBorderDimensions(this)), f - c > 0 ? (i.size.height = f, i.position.top = a.top - d) : (f = c - e.height, i.size.height = f, i.position.top = a.top + o.height - f), p - l > 0 ? (i.size.width = p, i.position.left = a.left - u) : (p = l - e.width, i.size.width = p, i.position.left = a.left + o.width - p));\n }\n }), t.ui.resizable, t.widget(\"ui.dialog\", {\n version: \"1.12.1\",\n options: {\n appendTo: \"body\",\n autoOpen: !0,\n buttons: [],\n classes: {\n \"ui-dialog\": \"ui-corner-all\",\n \"ui-dialog-titlebar\": \"ui-corner-all\"\n },\n closeOnEscape: !0,\n closeText: \"Close\",\n draggable: !0,\n hide: null,\n height: \"auto\",\n maxHeight: null,\n maxWidth: null,\n minHeight: 150,\n minWidth: 150,\n modal: !1,\n position: {\n my: \"center\",\n at: \"center\",\n of: window,\n collision: \"fit\",\n using: function using(e) {\n var i = t(this).css(e).offset().top;\n 0 > i && t(this).css(\"top\", e.top - i);\n }\n },\n resizable: !0,\n show: null,\n title: null,\n width: 300,\n beforeClose: null,\n close: null,\n drag: null,\n dragStart: null,\n dragStop: null,\n focus: null,\n open: null,\n resize: null,\n resizeStart: null,\n resizeStop: null\n },\n sizeRelatedOptions: {\n buttons: !0,\n height: !0,\n maxHeight: !0,\n maxWidth: !0,\n minHeight: !0,\n minWidth: !0,\n width: !0\n },\n resizableRelatedOptions: {\n maxHeight: !0,\n maxWidth: !0,\n minHeight: !0,\n minWidth: !0\n },\n _create: function _create() {\n this.originalCss = {\n display: this.element[0].style.display,\n width: this.element[0].style.width,\n minHeight: this.element[0].style.minHeight,\n maxHeight: this.element[0].style.maxHeight,\n height: this.element[0].style.height\n }, this.originalPosition = {\n parent: this.element.parent(),\n index: this.element.parent().children().index(this.element)\n }, this.originalTitle = this.element.attr(\"title\"), null == this.options.title && null != this.originalTitle && (this.options.title = this.originalTitle), this.options.disabled && (this.options.disabled = !1), this._createWrapper(), this.element.show().removeAttr(\"title\").appendTo(this.uiDialog), this._addClass(\"ui-dialog-content\", \"ui-widget-content\"), this._createTitlebar(), this._createButtonPane(), this.options.draggable && t.fn.draggable && this._makeDraggable(), this.options.resizable && t.fn.resizable && this._makeResizable(), this._isOpen = !1, this._trackFocus();\n },\n _init: function _init() {\n this.options.autoOpen && this.open();\n },\n _appendTo: function _appendTo() {\n var e = this.options.appendTo;\n return e && (e.jquery || e.nodeType) ? t(e) : this.document.find(e || \"body\").eq(0);\n },\n _destroy: function _destroy() {\n var t,\n e = this.originalPosition;\n this._untrackInstance(), this._destroyOverlay(), this.element.removeUniqueId().css(this.originalCss).detach(), this.uiDialog.remove(), this.originalTitle && this.element.attr(\"title\", this.originalTitle), t = e.parent.children().eq(e.index), t.length && t[0] !== this.element[0] ? t.before(this.element) : e.parent.append(this.element);\n },\n widget: function widget() {\n return this.uiDialog;\n },\n disable: t.noop,\n enable: t.noop,\n close: function close(e) {\n var i = this;\n this._isOpen && this._trigger(\"beforeClose\", e) !== !1 && (this._isOpen = !1, this._focusedElement = null, this._destroyOverlay(), this._untrackInstance(), this.opener.filter(\":focusable\").trigger(\"focus\").length || t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])), this._hide(this.uiDialog, this.options.hide, function () {\n i._trigger(\"close\", e);\n }));\n },\n isOpen: function isOpen() {\n return this._isOpen;\n },\n moveToTop: function moveToTop() {\n this._moveToTop();\n },\n _moveToTop: function _moveToTop(e, i) {\n var s = !1,\n n = this.uiDialog.siblings(\".ui-front:visible\").map(function () {\n return +t(this).css(\"z-index\");\n }).get(),\n o = Math.max.apply(null, n);\n return o >= +this.uiDialog.css(\"z-index\") && (this.uiDialog.css(\"z-index\", o + 1), s = !0), s && !i && this._trigger(\"focus\", e), s;\n },\n open: function open() {\n var e = this;\n return this._isOpen ? (this._moveToTop() && this._focusTabbable(), void 0) : (this._isOpen = !0, this.opener = t(t.ui.safeActiveElement(this.document[0])), this._size(), this._position(), this._createOverlay(), this._moveToTop(null, !0), this.overlay && this.overlay.css(\"z-index\", this.uiDialog.css(\"z-index\") - 1), this._show(this.uiDialog, this.options.show, function () {\n e._focusTabbable(), e._trigger(\"focus\");\n }), this._makeFocusTarget(), this._trigger(\"open\"), void 0);\n },\n _focusTabbable: function _focusTabbable() {\n var t = this._focusedElement;\n t || (t = this.element.find(\"[autofocus]\")), t.length || (t = this.element.find(\":tabbable\")), t.length || (t = this.uiDialogButtonPane.find(\":tabbable\")), t.length || (t = this.uiDialogTitlebarClose.filter(\":tabbable\")), t.length || (t = this.uiDialog), t.eq(0).trigger(\"focus\");\n },\n _keepFocus: function _keepFocus(e) {\n function i() {\n var e = t.ui.safeActiveElement(this.document[0]),\n i = this.uiDialog[0] === e || t.contains(this.uiDialog[0], e);\n i || this._focusTabbable();\n }\n e.preventDefault(), i.call(this), this._delay(i);\n },\n _createWrapper: function _createWrapper() {\n this.uiDialog = t(\"<div>\").hide().attr({\n tabIndex: -1,\n role: \"dialog\"\n }).appendTo(this._appendTo()), this._addClass(this.uiDialog, \"ui-dialog\", \"ui-widget ui-widget-content ui-front\"), this._on(this.uiDialog, {\n keydown: function keydown(e) {\n if (this.options.closeOnEscape && !e.isDefaultPrevented() && e.keyCode && e.keyCode === t.ui.keyCode.ESCAPE) return e.preventDefault(), this.close(e), void 0;\n if (e.keyCode === t.ui.keyCode.TAB && !e.isDefaultPrevented()) {\n var i = this.uiDialog.find(\":tabbable\"),\n s = i.filter(\":first\"),\n n = i.filter(\":last\");\n e.target !== n[0] && e.target !== this.uiDialog[0] || e.shiftKey ? e.target !== s[0] && e.target !== this.uiDialog[0] || !e.shiftKey || (this._delay(function () {\n n.trigger(\"focus\");\n }), e.preventDefault()) : (this._delay(function () {\n s.trigger(\"focus\");\n }), e.preventDefault());\n }\n },\n mousedown: function mousedown(t) {\n this._moveToTop(t) && this._focusTabbable();\n }\n }), this.element.find(\"[aria-describedby]\").length || this.uiDialog.attr({\n \"aria-describedby\": this.element.uniqueId().attr(\"id\")\n });\n },\n _createTitlebar: function _createTitlebar() {\n var e;\n this.uiDialogTitlebar = t(\"<div>\"), this._addClass(this.uiDialogTitlebar, \"ui-dialog-titlebar\", \"ui-widget-header ui-helper-clearfix\"), this._on(this.uiDialogTitlebar, {\n mousedown: function mousedown(e) {\n t(e.target).closest(\".ui-dialog-titlebar-close\") || this.uiDialog.trigger(\"focus\");\n }\n }), this.uiDialogTitlebarClose = t(\"<button type='button'></button>\").button({\n label: t(\"<a>\").text(this.options.closeText).html(),\n icon: \"ui-icon-closethick\",\n showLabel: !1\n }).appendTo(this.uiDialogTitlebar), this._addClass(this.uiDialogTitlebarClose, \"ui-dialog-titlebar-close\"), this._on(this.uiDialogTitlebarClose, {\n click: function click(t) {\n t.preventDefault(), this.close(t);\n }\n }), e = t(\"<span>\").uniqueId().prependTo(this.uiDialogTitlebar), this._addClass(e, \"ui-dialog-title\"), this._title(e), this.uiDialogTitlebar.prependTo(this.uiDialog), this.uiDialog.attr({\n \"aria-labelledby\": e.attr(\"id\")\n });\n },\n _title: function _title(t) {\n this.options.title ? t.text(this.options.title) : t.html(\" \");\n },\n _createButtonPane: function _createButtonPane() {\n this.uiDialogButtonPane = t(\"<div>\"), this._addClass(this.uiDialogButtonPane, \"ui-dialog-buttonpane\", \"ui-widget-content ui-helper-clearfix\"), this.uiButtonSet = t(\"<div>\").appendTo(this.uiDialogButtonPane), this._addClass(this.uiButtonSet, \"ui-dialog-buttonset\"), this._createButtons();\n },\n _createButtons: function _createButtons() {\n var e = this,\n i = this.options.buttons;\n return this.uiDialogButtonPane.remove(), this.uiButtonSet.empty(), t.isEmptyObject(i) || t.isArray(i) && !i.length ? (this._removeClass(this.uiDialog, \"ui-dialog-buttons\"), void 0) : (t.each(i, function (i, s) {\n var n, o;\n s = t.isFunction(s) ? {\n click: s,\n text: i\n } : s, s = t.extend({\n type: \"button\"\n }, s), n = s.click, o = {\n icon: s.icon,\n iconPosition: s.iconPosition,\n showLabel: s.showLabel,\n icons: s.icons,\n text: s.text\n }, delete s.click, delete s.icon, delete s.iconPosition, delete s.showLabel, delete s.icons, \"boolean\" == typeof s.text && delete s.text, t(\"<button></button>\", s).button(o).appendTo(e.uiButtonSet).on(\"click\", function () {\n n.apply(e.element[0], arguments);\n });\n }), this._addClass(this.uiDialog, \"ui-dialog-buttons\"), this.uiDialogButtonPane.appendTo(this.uiDialog), void 0);\n },\n _makeDraggable: function _makeDraggable() {\n function e(t) {\n return {\n position: t.position,\n offset: t.offset\n };\n }\n var i = this,\n s = this.options;\n this.uiDialog.draggable({\n cancel: \".ui-dialog-content, .ui-dialog-titlebar-close\",\n handle: \".ui-dialog-titlebar\",\n containment: \"document\",\n start: function start(s, n) {\n i._addClass(t(this), \"ui-dialog-dragging\"), i._blockFrames(), i._trigger(\"dragStart\", s, e(n));\n },\n drag: function drag(t, s) {\n i._trigger(\"drag\", t, e(s));\n },\n stop: function stop(n, o) {\n var a = o.offset.left - i.document.scrollLeft(),\n r = o.offset.top - i.document.scrollTop();\n s.position = {\n my: \"left top\",\n at: \"left\" + (a >= 0 ? \"+\" : \"\") + a + \" \" + \"top\" + (r >= 0 ? \"+\" : \"\") + r,\n of: i.window\n }, i._removeClass(t(this), \"ui-dialog-dragging\"), i._unblockFrames(), i._trigger(\"dragStop\", n, e(o));\n }\n });\n },\n _makeResizable: function _makeResizable() {\n function e(t) {\n return {\n originalPosition: t.originalPosition,\n originalSize: t.originalSize,\n position: t.position,\n size: t.size\n };\n }\n var i = this,\n s = this.options,\n n = s.resizable,\n o = this.uiDialog.css(\"position\"),\n a = \"string\" == typeof n ? n : \"n,e,s,w,se,sw,ne,nw\";\n this.uiDialog.resizable({\n cancel: \".ui-dialog-content\",\n containment: \"document\",\n alsoResize: this.element,\n maxWidth: s.maxWidth,\n maxHeight: s.maxHeight,\n minWidth: s.minWidth,\n minHeight: this._minHeight(),\n handles: a,\n start: function start(s, n) {\n i._addClass(t(this), \"ui-dialog-resizing\"), i._blockFrames(), i._trigger(\"resizeStart\", s, e(n));\n },\n resize: function resize(t, s) {\n i._trigger(\"resize\", t, e(s));\n },\n stop: function stop(n, o) {\n var a = i.uiDialog.offset(),\n r = a.left - i.document.scrollLeft(),\n h = a.top - i.document.scrollTop();\n s.height = i.uiDialog.height(), s.width = i.uiDialog.width(), s.position = {\n my: \"left top\",\n at: \"left\" + (r >= 0 ? \"+\" : \"\") + r + \" \" + \"top\" + (h >= 0 ? \"+\" : \"\") + h,\n of: i.window\n }, i._removeClass(t(this), \"ui-dialog-resizing\"), i._unblockFrames(), i._trigger(\"resizeStop\", n, e(o));\n }\n }).css(\"position\", o);\n },\n _trackFocus: function _trackFocus() {\n this._on(this.widget(), {\n focusin: function focusin(e) {\n this._makeFocusTarget(), this._focusedElement = t(e.target);\n }\n });\n },\n _makeFocusTarget: function _makeFocusTarget() {\n this._untrackInstance(), this._trackingInstances().unshift(this);\n },\n _untrackInstance: function _untrackInstance() {\n var e = this._trackingInstances(),\n i = t.inArray(this, e);\n -1 !== i && e.splice(i, 1);\n },\n _trackingInstances: function _trackingInstances() {\n var t = this.document.data(\"ui-dialog-instances\");\n return t || (t = [], this.document.data(\"ui-dialog-instances\", t)), t;\n },\n _minHeight: function _minHeight() {\n var t = this.options;\n return \"auto\" === t.height ? t.minHeight : Math.min(t.minHeight, t.height);\n },\n _position: function _position() {\n var t = this.uiDialog.is(\":visible\");\n t || this.uiDialog.show(), this.uiDialog.position(this.options.position), t || this.uiDialog.hide();\n },\n _setOptions: function _setOptions(e) {\n var i = this,\n s = !1,\n n = {};\n t.each(e, function (t, e) {\n i._setOption(t, e), t in i.sizeRelatedOptions && (s = !0), t in i.resizableRelatedOptions && (n[t] = e);\n }), s && (this._size(), this._position()), this.uiDialog.is(\":data(ui-resizable)\") && this.uiDialog.resizable(\"option\", n);\n },\n _setOption: function _setOption(e, i) {\n var s,\n n,\n o = this.uiDialog;\n \"disabled\" !== e && (this._super(e, i), \"appendTo\" === e && this.uiDialog.appendTo(this._appendTo()), \"buttons\" === e && this._createButtons(), \"closeText\" === e && this.uiDialogTitlebarClose.button({\n label: t(\"<a>\").text(\"\" + this.options.closeText).html()\n }), \"draggable\" === e && (s = o.is(\":data(ui-draggable)\"), s && !i && o.draggable(\"destroy\"), !s && i && this._makeDraggable()), \"position\" === e && this._position(), \"resizable\" === e && (n = o.is(\":data(ui-resizable)\"), n && !i && o.resizable(\"destroy\"), n && \"string\" == typeof i && o.resizable(\"option\", \"handles\", i), n || i === !1 || this._makeResizable()), \"title\" === e && this._title(this.uiDialogTitlebar.find(\".ui-dialog-title\")));\n },\n _size: function _size() {\n var t,\n e,\n i,\n s = this.options;\n this.element.show().css({\n width: \"auto\",\n minHeight: 0,\n maxHeight: \"none\",\n height: 0\n }), s.minWidth > s.width && (s.width = s.minWidth), t = this.uiDialog.css({\n height: \"auto\",\n width: s.width\n }).outerHeight(), e = Math.max(0, s.minHeight - t), i = \"number\" == typeof s.maxHeight ? Math.max(0, s.maxHeight - t) : \"none\", \"auto\" === s.height ? this.element.css({\n minHeight: e,\n maxHeight: i,\n height: \"auto\"\n }) : this.element.height(Math.max(0, s.height - t)), this.uiDialog.is(\":data(ui-resizable)\") && this.uiDialog.resizable(\"option\", \"minHeight\", this._minHeight());\n },\n _blockFrames: function _blockFrames() {\n this.iframeBlocks = this.document.find(\"iframe\").map(function () {\n var e = t(this);\n return t(\"<div>\").css({\n position: \"absolute\",\n width: e.outerWidth(),\n height: e.outerHeight()\n }).appendTo(e.parent()).offset(e.offset())[0];\n });\n },\n _unblockFrames: function _unblockFrames() {\n this.iframeBlocks && (this.iframeBlocks.remove(), delete this.iframeBlocks);\n },\n _allowInteraction: function _allowInteraction(e) {\n return t(e.target).closest(\".ui-dialog\").length ? !0 : !!t(e.target).closest(\".ui-datepicker\").length;\n },\n _createOverlay: function _createOverlay() {\n if (this.options.modal) {\n var e = !0;\n this._delay(function () {\n e = !1;\n }), this.document.data(\"ui-dialog-overlays\") || this._on(this.document, {\n focusin: function focusin(t) {\n e || this._allowInteraction(t) || (t.preventDefault(), this._trackingInstances()[0]._focusTabbable());\n }\n }), this.overlay = t(\"<div>\").appendTo(this._appendTo()), this._addClass(this.overlay, null, \"ui-widget-overlay ui-front\"), this._on(this.overlay, {\n mousedown: \"_keepFocus\"\n }), this.document.data(\"ui-dialog-overlays\", (this.document.data(\"ui-dialog-overlays\") || 0) + 1);\n }\n },\n _destroyOverlay: function _destroyOverlay() {\n if (this.options.modal && this.overlay) {\n var t = this.document.data(\"ui-dialog-overlays\") - 1;\n t ? this.document.data(\"ui-dialog-overlays\", t) : (this._off(this.document, \"focusin\"), this.document.removeData(\"ui-dialog-overlays\")), this.overlay.remove(), this.overlay = null;\n }\n }\n }), t.uiBackCompat !== !1 && t.widget(\"ui.dialog\", t.ui.dialog, {\n options: {\n dialogClass: \"\"\n },\n _createWrapper: function _createWrapper() {\n this._super(), this.uiDialog.addClass(this.options.dialogClass);\n },\n _setOption: function _setOption(t, e) {\n \"dialogClass\" === t && this.uiDialog.removeClass(this.options.dialogClass).addClass(e), this._superApply(arguments);\n }\n }), t.ui.dialog, t.widget(\"ui.droppable\", {\n version: \"1.12.1\",\n widgetEventPrefix: \"drop\",\n options: {\n accept: \"*\",\n addClasses: !0,\n greedy: !1,\n scope: \"default\",\n tolerance: \"intersect\",\n activate: null,\n deactivate: null,\n drop: null,\n out: null,\n over: null\n },\n _create: function _create() {\n var e,\n i = this.options,\n s = i.accept;\n this.isover = !1, this.isout = !0, this.accept = t.isFunction(s) ? s : function (t) {\n return t.is(s);\n }, this.proportions = function () {\n return arguments.length ? (e = arguments[0], void 0) : e ? e : e = {\n width: this.element[0].offsetWidth,\n height: this.element[0].offsetHeight\n };\n }, this._addToManager(i.scope), i.addClasses && this._addClass(\"ui-droppable\");\n },\n _addToManager: function _addToManager(e) {\n t.ui.ddmanager.droppables[e] = t.ui.ddmanager.droppables[e] || [], t.ui.ddmanager.droppables[e].push(this);\n },\n _splice: function _splice(t) {\n for (var e = 0; t.length > e; e++) t[e] === this && t.splice(e, 1);\n },\n _destroy: function _destroy() {\n var e = t.ui.ddmanager.droppables[this.options.scope];\n this._splice(e);\n },\n _setOption: function _setOption(e, i) {\n if (\"accept\" === e) this.accept = t.isFunction(i) ? i : function (t) {\n return t.is(i);\n };else if (\"scope\" === e) {\n var s = t.ui.ddmanager.droppables[this.options.scope];\n this._splice(s), this._addToManager(i);\n }\n this._super(e, i);\n },\n _activate: function _activate(e) {\n var i = t.ui.ddmanager.current;\n this._addActiveClass(), i && this._trigger(\"activate\", e, this.ui(i));\n },\n _deactivate: function _deactivate(e) {\n var i = t.ui.ddmanager.current;\n this._removeActiveClass(), i && this._trigger(\"deactivate\", e, this.ui(i));\n },\n _over: function _over(e) {\n var i = t.ui.ddmanager.current;\n i && (i.currentItem || i.element)[0] !== this.element[0] && this.accept.call(this.element[0], i.currentItem || i.element) && (this._addHoverClass(), this._trigger(\"over\", e, this.ui(i)));\n },\n _out: function _out(e) {\n var i = t.ui.ddmanager.current;\n i && (i.currentItem || i.element)[0] !== this.element[0] && this.accept.call(this.element[0], i.currentItem || i.element) && (this._removeHoverClass(), this._trigger(\"out\", e, this.ui(i)));\n },\n _drop: function _drop(e, i) {\n var s = i || t.ui.ddmanager.current,\n n = !1;\n return s && (s.currentItem || s.element)[0] !== this.element[0] ? (this.element.find(\":data(ui-droppable)\").not(\".ui-draggable-dragging\").each(function () {\n var i = t(this).droppable(\"instance\");\n return i.options.greedy && !i.options.disabled && i.options.scope === s.options.scope && i.accept.call(i.element[0], s.currentItem || s.element) && v(s, t.extend(i, {\n offset: i.element.offset()\n }), i.options.tolerance, e) ? (n = !0, !1) : void 0;\n }), n ? !1 : this.accept.call(this.element[0], s.currentItem || s.element) ? (this._removeActiveClass(), this._removeHoverClass(), this._trigger(\"drop\", e, this.ui(s)), this.element) : !1) : !1;\n },\n ui: function ui(t) {\n return {\n draggable: t.currentItem || t.element,\n helper: t.helper,\n position: t.position,\n offset: t.positionAbs\n };\n },\n _addHoverClass: function _addHoverClass() {\n this._addClass(\"ui-droppable-hover\");\n },\n _removeHoverClass: function _removeHoverClass() {\n this._removeClass(\"ui-droppable-hover\");\n },\n _addActiveClass: function _addActiveClass() {\n this._addClass(\"ui-droppable-active\");\n },\n _removeActiveClass: function _removeActiveClass() {\n this._removeClass(\"ui-droppable-active\");\n }\n });\n var v = t.ui.intersect = function () {\n function t(t, e, i) {\n return t >= e && e + i > t;\n }\n return function (e, i, s, n) {\n if (!i.offset) return !1;\n var o = (e.positionAbs || e.position.absolute).left + e.margins.left,\n a = (e.positionAbs || e.position.absolute).top + e.margins.top,\n r = o + e.helperProportions.width,\n h = a + e.helperProportions.height,\n l = i.offset.left,\n c = i.offset.top,\n u = l + i.proportions().width,\n d = c + i.proportions().height;\n switch (s) {\n case \"fit\":\n return o >= l && u >= r && a >= c && d >= h;\n case \"intersect\":\n return o + e.helperProportions.width / 2 > l && u > r - e.helperProportions.width / 2 && a + e.helperProportions.height / 2 > c && d > h - e.helperProportions.height / 2;\n case \"pointer\":\n return t(n.pageY, c, i.proportions().height) && t(n.pageX, l, i.proportions().width);\n case \"touch\":\n return (a >= c && d >= a || h >= c && d >= h || c > a && h > d) && (o >= l && u >= o || r >= l && u >= r || l > o && r > u);\n default:\n return !1;\n }\n };\n }();\n t.ui.ddmanager = {\n current: null,\n droppables: {\n \"default\": []\n },\n prepareOffsets: function prepareOffsets(e, i) {\n var s,\n n,\n o = t.ui.ddmanager.droppables[e.options.scope] || [],\n a = i ? i.type : null,\n r = (e.currentItem || e.element).find(\":data(ui-droppable)\").addBack();\n t: for (s = 0; o.length > s; s++) if (!(o[s].options.disabled || e && !o[s].accept.call(o[s].element[0], e.currentItem || e.element))) {\n for (n = 0; r.length > n; n++) if (r[n] === o[s].element[0]) {\n o[s].proportions().height = 0;\n continue t;\n }\n o[s].visible = \"none\" !== o[s].element.css(\"display\"), o[s].visible && (\"mousedown\" === a && o[s]._activate.call(o[s], i), o[s].offset = o[s].element.offset(), o[s].proportions({\n width: o[s].element[0].offsetWidth,\n height: o[s].element[0].offsetHeight\n }));\n }\n },\n drop: function drop(e, i) {\n var s = !1;\n return t.each((t.ui.ddmanager.droppables[e.options.scope] || []).slice(), function () {\n this.options && (!this.options.disabled && this.visible && v(e, this, this.options.tolerance, i) && (s = this._drop.call(this, i) || s), !this.options.disabled && this.visible && this.accept.call(this.element[0], e.currentItem || e.element) && (this.isout = !0, this.isover = !1, this._deactivate.call(this, i)));\n }), s;\n },\n dragStart: function dragStart(e, i) {\n e.element.parentsUntil(\"body\").on(\"scroll.droppable\", function () {\n e.options.refreshPositions || t.ui.ddmanager.prepareOffsets(e, i);\n });\n },\n drag: function drag(e, i) {\n e.options.refreshPositions && t.ui.ddmanager.prepareOffsets(e, i), t.each(t.ui.ddmanager.droppables[e.options.scope] || [], function () {\n if (!this.options.disabled && !this.greedyChild && this.visible) {\n var s,\n n,\n o,\n a = v(e, this, this.options.tolerance, i),\n r = !a && this.isover ? \"isout\" : a && !this.isover ? \"isover\" : null;\n r && (this.options.greedy && (n = this.options.scope, o = this.element.parents(\":data(ui-droppable)\").filter(function () {\n return t(this).droppable(\"instance\").options.scope === n;\n }), o.length && (s = t(o[0]).droppable(\"instance\"), s.greedyChild = \"isover\" === r)), s && \"isover\" === r && (s.isover = !1, s.isout = !0, s._out.call(s, i)), this[r] = !0, this[\"isout\" === r ? \"isover\" : \"isout\"] = !1, this[\"isover\" === r ? \"_over\" : \"_out\"].call(this, i), s && \"isout\" === r && (s.isout = !1, s.isover = !0, s._over.call(s, i)));\n }\n });\n },\n dragStop: function dragStop(e, i) {\n e.element.parentsUntil(\"body\").off(\"scroll.droppable\"), e.options.refreshPositions || t.ui.ddmanager.prepareOffsets(e, i);\n }\n }, t.uiBackCompat !== !1 && t.widget(\"ui.droppable\", t.ui.droppable, {\n options: {\n hoverClass: !1,\n activeClass: !1\n },\n _addActiveClass: function _addActiveClass() {\n this._super(), this.options.activeClass && this.element.addClass(this.options.activeClass);\n },\n _removeActiveClass: function _removeActiveClass() {\n this._super(), this.options.activeClass && this.element.removeClass(this.options.activeClass);\n },\n _addHoverClass: function _addHoverClass() {\n this._super(), this.options.hoverClass && this.element.addClass(this.options.hoverClass);\n },\n _removeHoverClass: function _removeHoverClass() {\n this._super(), this.options.hoverClass && this.element.removeClass(this.options.hoverClass);\n }\n }), t.ui.droppable, t.widget(\"ui.progressbar\", {\n version: \"1.12.1\",\n options: {\n classes: {\n \"ui-progressbar\": \"ui-corner-all\",\n \"ui-progressbar-value\": \"ui-corner-left\",\n \"ui-progressbar-complete\": \"ui-corner-right\"\n },\n max: 100,\n value: 0,\n change: null,\n complete: null\n },\n min: 0,\n _create: function _create() {\n this.oldValue = this.options.value = this._constrainedValue(), this.element.attr({\n role: \"progressbar\",\n \"aria-valuemin\": this.min\n }), this._addClass(\"ui-progressbar\", \"ui-widget ui-widget-content\"), this.valueDiv = t(\"<div>\").appendTo(this.element), this._addClass(this.valueDiv, \"ui-progressbar-value\", \"ui-widget-header\"), this._refreshValue();\n },\n _destroy: function _destroy() {\n this.element.removeAttr(\"role aria-valuemin aria-valuemax aria-valuenow\"), this.valueDiv.remove();\n },\n value: function value(t) {\n return void 0 === t ? this.options.value : (this.options.value = this._constrainedValue(t), this._refreshValue(), void 0);\n },\n _constrainedValue: function _constrainedValue(t) {\n return void 0 === t && (t = this.options.value), this.indeterminate = t === !1, \"number\" != typeof t && (t = 0), this.indeterminate ? !1 : Math.min(this.options.max, Math.max(this.min, t));\n },\n _setOptions: function _setOptions(t) {\n var e = t.value;\n delete t.value, this._super(t), this.options.value = this._constrainedValue(e), this._refreshValue();\n },\n _setOption: function _setOption(t, e) {\n \"max\" === t && (e = Math.max(this.min, e)), this._super(t, e);\n },\n _setOptionDisabled: function _setOptionDisabled(t) {\n this._super(t), this.element.attr(\"aria-disabled\", t), this._toggleClass(null, \"ui-state-disabled\", !!t);\n },\n _percentage: function _percentage() {\n return this.indeterminate ? 100 : 100 * (this.options.value - this.min) / (this.options.max - this.min);\n },\n _refreshValue: function _refreshValue() {\n var e = this.options.value,\n i = this._percentage();\n this.valueDiv.toggle(this.indeterminate || e > this.min).width(i.toFixed(0) + \"%\"), this._toggleClass(this.valueDiv, \"ui-progressbar-complete\", null, e === this.options.max)._toggleClass(\"ui-progressbar-indeterminate\", null, this.indeterminate), this.indeterminate ? (this.element.removeAttr(\"aria-valuenow\"), this.overlayDiv || (this.overlayDiv = t(\"<div>\").appendTo(this.valueDiv), this._addClass(this.overlayDiv, \"ui-progressbar-overlay\"))) : (this.element.attr({\n \"aria-valuemax\": this.options.max,\n \"aria-valuenow\": e\n }), this.overlayDiv && (this.overlayDiv.remove(), this.overlayDiv = null)), this.oldValue !== e && (this.oldValue = e, this._trigger(\"change\")), e === this.options.max && this._trigger(\"complete\");\n }\n }), t.widget(\"ui.selectable\", t.ui.mouse, {\n version: \"1.12.1\",\n options: {\n appendTo: \"body\",\n autoRefresh: !0,\n distance: 0,\n filter: \"*\",\n tolerance: \"touch\",\n selected: null,\n selecting: null,\n start: null,\n stop: null,\n unselected: null,\n unselecting: null\n },\n _create: function _create() {\n var e = this;\n this._addClass(\"ui-selectable\"), this.dragged = !1, this.refresh = function () {\n e.elementPos = t(e.element[0]).offset(), e.selectees = t(e.options.filter, e.element[0]), e._addClass(e.selectees, \"ui-selectee\"), e.selectees.each(function () {\n var i = t(this),\n s = i.offset(),\n n = {\n left: s.left - e.elementPos.left,\n top: s.top - e.elementPos.top\n };\n t.data(this, \"selectable-item\", {\n element: this,\n $element: i,\n left: n.left,\n top: n.top,\n right: n.left + i.outerWidth(),\n bottom: n.top + i.outerHeight(),\n startselected: !1,\n selected: i.hasClass(\"ui-selected\"),\n selecting: i.hasClass(\"ui-selecting\"),\n unselecting: i.hasClass(\"ui-unselecting\")\n });\n });\n }, this.refresh(), this._mouseInit(), this.helper = t(\"<div>\"), this._addClass(this.helper, \"ui-selectable-helper\");\n },\n _destroy: function _destroy() {\n this.selectees.removeData(\"selectable-item\"), this._mouseDestroy();\n },\n _mouseStart: function _mouseStart(e) {\n var i = this,\n s = this.options;\n this.opos = [e.pageX, e.pageY], this.elementPos = t(this.element[0]).offset(), this.options.disabled || (this.selectees = t(s.filter, this.element[0]), this._trigger(\"start\", e), t(s.appendTo).append(this.helper), this.helper.css({\n left: e.pageX,\n top: e.pageY,\n width: 0,\n height: 0\n }), s.autoRefresh && this.refresh(), this.selectees.filter(\".ui-selected\").each(function () {\n var s = t.data(this, \"selectable-item\");\n s.startselected = !0, e.metaKey || e.ctrlKey || (i._removeClass(s.$element, \"ui-selected\"), s.selected = !1, i._addClass(s.$element, \"ui-unselecting\"), s.unselecting = !0, i._trigger(\"unselecting\", e, {\n unselecting: s.element\n }));\n }), t(e.target).parents().addBack().each(function () {\n var s,\n n = t.data(this, \"selectable-item\");\n return n ? (s = !e.metaKey && !e.ctrlKey || !n.$element.hasClass(\"ui-selected\"), i._removeClass(n.$element, s ? \"ui-unselecting\" : \"ui-selected\")._addClass(n.$element, s ? \"ui-selecting\" : \"ui-unselecting\"), n.unselecting = !s, n.selecting = s, n.selected = s, s ? i._trigger(\"selecting\", e, {\n selecting: n.element\n }) : i._trigger(\"unselecting\", e, {\n unselecting: n.element\n }), !1) : void 0;\n }));\n },\n _mouseDrag: function _mouseDrag(e) {\n if (this.dragged = !0, !this.options.disabled) {\n var i,\n s = this,\n n = this.options,\n o = this.opos[0],\n a = this.opos[1],\n r = e.pageX,\n h = e.pageY;\n return o > r && (i = r, r = o, o = i), a > h && (i = h, h = a, a = i), this.helper.css({\n left: o,\n top: a,\n width: r - o,\n height: h - a\n }), this.selectees.each(function () {\n var i = t.data(this, \"selectable-item\"),\n l = !1,\n c = {};\n i && i.element !== s.element[0] && (c.left = i.left + s.elementPos.left, c.right = i.right + s.elementPos.left, c.top = i.top + s.elementPos.top, c.bottom = i.bottom + s.elementPos.top, \"touch\" === n.tolerance ? l = !(c.left > r || o > c.right || c.top > h || a > c.bottom) : \"fit\" === n.tolerance && (l = c.left > o && r > c.right && c.top > a && h > c.bottom), l ? (i.selected && (s._removeClass(i.$element, \"ui-selected\"), i.selected = !1), i.unselecting && (s._removeClass(i.$element, \"ui-unselecting\"), i.unselecting = !1), i.selecting || (s._addClass(i.$element, \"ui-selecting\"), i.selecting = !0, s._trigger(\"selecting\", e, {\n selecting: i.element\n }))) : (i.selecting && ((e.metaKey || e.ctrlKey) && i.startselected ? (s._removeClass(i.$element, \"ui-selecting\"), i.selecting = !1, s._addClass(i.$element, \"ui-selected\"), i.selected = !0) : (s._removeClass(i.$element, \"ui-selecting\"), i.selecting = !1, i.startselected && (s._addClass(i.$element, \"ui-unselecting\"), i.unselecting = !0), s._trigger(\"unselecting\", e, {\n unselecting: i.element\n }))), i.selected && (e.metaKey || e.ctrlKey || i.startselected || (s._removeClass(i.$element, \"ui-selected\"), i.selected = !1, s._addClass(i.$element, \"ui-unselecting\"), i.unselecting = !0, s._trigger(\"unselecting\", e, {\n unselecting: i.element\n })))));\n }), !1;\n }\n },\n _mouseStop: function _mouseStop(e) {\n var i = this;\n return this.dragged = !1, t(\".ui-unselecting\", this.element[0]).each(function () {\n var s = t.data(this, \"selectable-item\");\n i._removeClass(s.$element, \"ui-unselecting\"), s.unselecting = !1, s.startselected = !1, i._trigger(\"unselected\", e, {\n unselected: s.element\n });\n }), t(\".ui-selecting\", this.element[0]).each(function () {\n var s = t.data(this, \"selectable-item\");\n i._removeClass(s.$element, \"ui-selecting\")._addClass(s.$element, \"ui-selected\"), s.selecting = !1, s.selected = !0, s.startselected = !0, i._trigger(\"selected\", e, {\n selected: s.element\n });\n }), this._trigger(\"stop\", e), this.helper.remove(), !1;\n }\n }), t.widget(\"ui.selectmenu\", [t.ui.formResetMixin, {\n version: \"1.12.1\",\n defaultElement: \"<select>\",\n options: {\n appendTo: null,\n classes: {\n \"ui-selectmenu-button-open\": \"ui-corner-top\",\n \"ui-selectmenu-button-closed\": \"ui-corner-all\"\n },\n disabled: null,\n icons: {\n button: \"ui-icon-triangle-1-s\"\n },\n position: {\n my: \"left top\",\n at: \"left bottom\",\n collision: \"none\"\n },\n width: !1,\n change: null,\n close: null,\n focus: null,\n open: null,\n select: null\n },\n _create: function _create() {\n var e = this.element.uniqueId().attr(\"id\");\n this.ids = {\n element: e,\n button: e + \"-button\",\n menu: e + \"-menu\"\n }, this._drawButton(), this._drawMenu(), this._bindFormResetHandler(), this._rendered = !1, this.menuItems = t();\n },\n _drawButton: function _drawButton() {\n var e,\n i = this,\n s = this._parseOption(this.element.find(\"option:selected\"), this.element[0].selectedIndex);\n this.labels = this.element.labels().attr(\"for\", this.ids.button), this._on(this.labels, {\n click: function click(t) {\n this.button.focus(), t.preventDefault();\n }\n }), this.element.hide(), this.button = t(\"<span>\", {\n tabindex: this.options.disabled ? -1 : 0,\n id: this.ids.button,\n role: \"combobox\",\n \"aria-expanded\": \"false\",\n \"aria-autocomplete\": \"list\",\n \"aria-owns\": this.ids.menu,\n \"aria-haspopup\": \"true\",\n title: this.element.attr(\"title\")\n }).insertAfter(this.element), this._addClass(this.button, \"ui-selectmenu-button ui-selectmenu-button-closed\", \"ui-button ui-widget\"), e = t(\"<span>\").appendTo(this.button), this._addClass(e, \"ui-selectmenu-icon\", \"ui-icon \" + this.options.icons.button), this.buttonItem = this._renderButtonItem(s).appendTo(this.button), this.options.width !== !1 && this._resizeButton(), this._on(this.button, this._buttonEvents), this.button.one(\"focusin\", function () {\n i._rendered || i._refreshMenu();\n });\n },\n _drawMenu: function _drawMenu() {\n var e = this;\n this.menu = t(\"<ul>\", {\n \"aria-hidden\": \"true\",\n \"aria-labelledby\": this.ids.button,\n id: this.ids.menu\n }), this.menuWrap = t(\"<div>\").append(this.menu), this._addClass(this.menuWrap, \"ui-selectmenu-menu\", \"ui-front\"), this.menuWrap.appendTo(this._appendTo()), this.menuInstance = this.menu.menu({\n classes: {\n \"ui-menu\": \"ui-corner-bottom\"\n },\n role: \"listbox\",\n select: function select(t, i) {\n t.preventDefault(), e._setSelection(), e._select(i.item.data(\"ui-selectmenu-item\"), t);\n },\n focus: function focus(t, i) {\n var s = i.item.data(\"ui-selectmenu-item\");\n null != e.focusIndex && s.index !== e.focusIndex && (e._trigger(\"focus\", t, {\n item: s\n }), e.isOpen || e._select(s, t)), e.focusIndex = s.index, e.button.attr(\"aria-activedescendant\", e.menuItems.eq(s.index).attr(\"id\"));\n }\n }).menu(\"instance\"), this.menuInstance._off(this.menu, \"mouseleave\"), this.menuInstance._closeOnDocumentClick = function () {\n return !1;\n }, this.menuInstance._isDivider = function () {\n return !1;\n };\n },\n refresh: function refresh() {\n this._refreshMenu(), this.buttonItem.replaceWith(this.buttonItem = this._renderButtonItem(this._getSelectedItem().data(\"ui-selectmenu-item\") || {})), null === this.options.width && this._resizeButton();\n },\n _refreshMenu: function _refreshMenu() {\n var t,\n e = this.element.find(\"option\");\n this.menu.empty(), this._parseOptions(e), this._renderMenu(this.menu, this.items), this.menuInstance.refresh(), this.menuItems = this.menu.find(\"li\").not(\".ui-selectmenu-optgroup\").find(\".ui-menu-item-wrapper\"), this._rendered = !0, e.length && (t = this._getSelectedItem(), this.menuInstance.focus(null, t), this._setAria(t.data(\"ui-selectmenu-item\")), this._setOption(\"disabled\", this.element.prop(\"disabled\")));\n },\n open: function open(t) {\n this.options.disabled || (this._rendered ? (this._removeClass(this.menu.find(\".ui-state-active\"), null, \"ui-state-active\"), this.menuInstance.focus(null, this._getSelectedItem())) : this._refreshMenu(), this.menuItems.length && (this.isOpen = !0, this._toggleAttr(), this._resizeMenu(), this._position(), this._on(this.document, this._documentClick), this._trigger(\"open\", t)));\n },\n _position: function _position() {\n this.menuWrap.position(t.extend({\n of: this.button\n }, this.options.position));\n },\n close: function close(t) {\n this.isOpen && (this.isOpen = !1, this._toggleAttr(), this.range = null, this._off(this.document), this._trigger(\"close\", t));\n },\n widget: function widget() {\n return this.button;\n },\n menuWidget: function menuWidget() {\n return this.menu;\n },\n _renderButtonItem: function _renderButtonItem(e) {\n var i = t(\"<span>\");\n return this._setText(i, e.label), this._addClass(i, \"ui-selectmenu-text\"), i;\n },\n _renderMenu: function _renderMenu(e, i) {\n var s = this,\n n = \"\";\n t.each(i, function (i, o) {\n var a;\n o.optgroup !== n && (a = t(\"<li>\", {\n text: o.optgroup\n }), s._addClass(a, \"ui-selectmenu-optgroup\", \"ui-menu-divider\" + (o.element.parent(\"optgroup\").prop(\"disabled\") ? \" ui-state-disabled\" : \"\")), a.appendTo(e), n = o.optgroup), s._renderItemData(e, o);\n });\n },\n _renderItemData: function _renderItemData(t, e) {\n return this._renderItem(t, e).data(\"ui-selectmenu-item\", e);\n },\n _renderItem: function _renderItem(e, i) {\n var s = t(\"<li>\"),\n n = t(\"<div>\", {\n title: i.element.attr(\"title\")\n });\n return i.disabled && this._addClass(s, null, \"ui-state-disabled\"), this._setText(n, i.label), s.append(n).appendTo(e);\n },\n _setText: function _setText(t, e) {\n e ? t.text(e) : t.html(\" \");\n },\n _move: function _move(t, e) {\n var i,\n s,\n n = \".ui-menu-item\";\n this.isOpen ? i = this.menuItems.eq(this.focusIndex).parent(\"li\") : (i = this.menuItems.eq(this.element[0].selectedIndex).parent(\"li\"), n += \":not(.ui-state-disabled)\"), s = \"first\" === t || \"last\" === t ? i[\"first\" === t ? \"prevAll\" : \"nextAll\"](n).eq(-1) : i[t + \"All\"](n).eq(0), s.length && this.menuInstance.focus(e, s);\n },\n _getSelectedItem: function _getSelectedItem() {\n return this.menuItems.eq(this.element[0].selectedIndex).parent(\"li\");\n },\n _toggle: function _toggle(t) {\n this[this.isOpen ? \"close\" : \"open\"](t);\n },\n _setSelection: function _setSelection() {\n var t;\n this.range && (window.getSelection ? (t = window.getSelection(), t.removeAllRanges(), t.addRange(this.range)) : this.range.select(), this.button.focus());\n },\n _documentClick: {\n mousedown: function mousedown(e) {\n this.isOpen && (t(e.target).closest(\".ui-selectmenu-menu, #\" + t.ui.escapeSelector(this.ids.button)).length || this.close(e));\n }\n },\n _buttonEvents: {\n mousedown: function mousedown() {\n var t;\n window.getSelection ? (t = window.getSelection(), t.rangeCount && (this.range = t.getRangeAt(0))) : this.range = document.selection.createRange();\n },\n click: function click(t) {\n this._setSelection(), this._toggle(t);\n },\n keydown: function keydown(e) {\n var i = !0;\n switch (e.keyCode) {\n case t.ui.keyCode.TAB:\n case t.ui.keyCode.ESCAPE:\n this.close(e), i = !1;\n break;\n case t.ui.keyCode.ENTER:\n this.isOpen && this._selectFocusedItem(e);\n break;\n case t.ui.keyCode.UP:\n e.altKey ? this._toggle(e) : this._move(\"prev\", e);\n break;\n case t.ui.keyCode.DOWN:\n e.altKey ? this._toggle(e) : this._move(\"next\", e);\n break;\n case t.ui.keyCode.SPACE:\n this.isOpen ? this._selectFocusedItem(e) : this._toggle(e);\n break;\n case t.ui.keyCode.LEFT:\n this._move(\"prev\", e);\n break;\n case t.ui.keyCode.RIGHT:\n this._move(\"next\", e);\n break;\n case t.ui.keyCode.HOME:\n case t.ui.keyCode.PAGE_UP:\n this._move(\"first\", e);\n break;\n case t.ui.keyCode.END:\n case t.ui.keyCode.PAGE_DOWN:\n this._move(\"last\", e);\n break;\n default:\n this.menu.trigger(e), i = !1;\n }\n i && e.preventDefault();\n }\n },\n _selectFocusedItem: function _selectFocusedItem(t) {\n var e = this.menuItems.eq(this.focusIndex).parent(\"li\");\n e.hasClass(\"ui-state-disabled\") || this._select(e.data(\"ui-selectmenu-item\"), t);\n },\n _select: function _select(t, e) {\n var i = this.element[0].selectedIndex;\n this.element[0].selectedIndex = t.index, this.buttonItem.replaceWith(this.buttonItem = this._renderButtonItem(t)), this._setAria(t), this._trigger(\"select\", e, {\n item: t\n }), t.index !== i && this._trigger(\"change\", e, {\n item: t\n }), this.close(e);\n },\n _setAria: function _setAria(t) {\n var e = this.menuItems.eq(t.index).attr(\"id\");\n this.button.attr({\n \"aria-labelledby\": e,\n \"aria-activedescendant\": e\n }), this.menu.attr(\"aria-activedescendant\", e);\n },\n _setOption: function _setOption(t, e) {\n if (\"icons\" === t) {\n var i = this.button.find(\"span.ui-icon\");\n this._removeClass(i, null, this.options.icons.button)._addClass(i, null, e.button);\n }\n this._super(t, e), \"appendTo\" === t && this.menuWrap.appendTo(this._appendTo()), \"width\" === t && this._resizeButton();\n },\n _setOptionDisabled: function _setOptionDisabled(t) {\n this._super(t), this.menuInstance.option(\"disabled\", t), this.button.attr(\"aria-disabled\", t), this._toggleClass(this.button, null, \"ui-state-disabled\", t), this.element.prop(\"disabled\", t), t ? (this.button.attr(\"tabindex\", -1), this.close()) : this.button.attr(\"tabindex\", 0);\n },\n _appendTo: function _appendTo() {\n var e = this.options.appendTo;\n return e && (e = e.jquery || e.nodeType ? t(e) : this.document.find(e).eq(0)), e && e[0] || (e = this.element.closest(\".ui-front, dialog\")), e.length || (e = this.document[0].body), e;\n },\n _toggleAttr: function _toggleAttr() {\n this.button.attr(\"aria-expanded\", this.isOpen), this._removeClass(this.button, \"ui-selectmenu-button-\" + (this.isOpen ? \"closed\" : \"open\"))._addClass(this.button, \"ui-selectmenu-button-\" + (this.isOpen ? \"open\" : \"closed\"))._toggleClass(this.menuWrap, \"ui-selectmenu-open\", null, this.isOpen), this.menu.attr(\"aria-hidden\", !this.isOpen);\n },\n _resizeButton: function _resizeButton() {\n var t = this.options.width;\n return t === !1 ? (this.button.css(\"width\", \"\"), void 0) : (null === t && (t = this.element.show().outerWidth(), this.element.hide()), this.button.outerWidth(t), void 0);\n },\n _resizeMenu: function _resizeMenu() {\n this.menu.outerWidth(Math.max(this.button.outerWidth(), this.menu.width(\"\").outerWidth() + 1));\n },\n _getCreateOptions: function _getCreateOptions() {\n var t = this._super();\n return t.disabled = this.element.prop(\"disabled\"), t;\n },\n _parseOptions: function _parseOptions(e) {\n var i = this,\n s = [];\n e.each(function (e, n) {\n s.push(i._parseOption(t(n), e));\n }), this.items = s;\n },\n _parseOption: function _parseOption(t, e) {\n var i = t.parent(\"optgroup\");\n return {\n element: t,\n index: e,\n value: t.val(),\n label: t.text(),\n optgroup: i.attr(\"label\") || \"\",\n disabled: i.prop(\"disabled\") || t.prop(\"disabled\")\n };\n },\n _destroy: function _destroy() {\n this._unbindFormResetHandler(), this.menuWrap.remove(), this.button.remove(), this.element.show(), this.element.removeUniqueId(), this.labels.attr(\"for\", this.ids.element);\n }\n }]), t.widget(\"ui.slider\", t.ui.mouse, {\n version: \"1.12.1\",\n widgetEventPrefix: \"slide\",\n options: {\n animate: !1,\n classes: {\n \"ui-slider\": \"ui-corner-all\",\n \"ui-slider-handle\": \"ui-corner-all\",\n \"ui-slider-range\": \"ui-corner-all ui-widget-header\"\n },\n distance: 0,\n max: 100,\n min: 0,\n orientation: \"horizontal\",\n range: !1,\n step: 1,\n value: 0,\n values: null,\n change: null,\n slide: null,\n start: null,\n stop: null\n },\n numPages: 5,\n _create: function _create() {\n this._keySliding = !1, this._mouseSliding = !1, this._animateOff = !0, this._handleIndex = null, this._detectOrientation(), this._mouseInit(), this._calculateNewMax(), this._addClass(\"ui-slider ui-slider-\" + this.orientation, \"ui-widget ui-widget-content\"), this._refresh(), this._animateOff = !1;\n },\n _refresh: function _refresh() {\n this._createRange(), this._createHandles(), this._setupEvents(), this._refreshValue();\n },\n _createHandles: function _createHandles() {\n var e,\n i,\n s = this.options,\n n = this.element.find(\".ui-slider-handle\"),\n o = \"<span tabindex='0'></span>\",\n a = [];\n for (i = s.values && s.values.length || 1, n.length > i && (n.slice(i).remove(), n = n.slice(0, i)), e = n.length; i > e; e++) a.push(o);\n this.handles = n.add(t(a.join(\"\")).appendTo(this.element)), this._addClass(this.handles, \"ui-slider-handle\", \"ui-state-default\"), this.handle = this.handles.eq(0), this.handles.each(function (e) {\n t(this).data(\"ui-slider-handle-index\", e).attr(\"tabIndex\", 0);\n });\n },\n _createRange: function _createRange() {\n var e = this.options;\n e.range ? (e.range === !0 && (e.values ? e.values.length && 2 !== e.values.length ? e.values = [e.values[0], e.values[0]] : t.isArray(e.values) && (e.values = e.values.slice(0)) : e.values = [this._valueMin(), this._valueMin()]), this.range && this.range.length ? (this._removeClass(this.range, \"ui-slider-range-min ui-slider-range-max\"), this.range.css({\n left: \"\",\n bottom: \"\"\n })) : (this.range = t(\"<div>\").appendTo(this.element), this._addClass(this.range, \"ui-slider-range\")), (\"min\" === e.range || \"max\" === e.range) && this._addClass(this.range, \"ui-slider-range-\" + e.range)) : (this.range && this.range.remove(), this.range = null);\n },\n _setupEvents: function _setupEvents() {\n this._off(this.handles), this._on(this.handles, this._handleEvents), this._hoverable(this.handles), this._focusable(this.handles);\n },\n _destroy: function _destroy() {\n this.handles.remove(), this.range && this.range.remove(), this._mouseDestroy();\n },\n _mouseCapture: function _mouseCapture(e) {\n var i,\n s,\n n,\n o,\n a,\n r,\n h,\n l,\n c = this,\n u = this.options;\n return u.disabled ? !1 : (this.elementSize = {\n width: this.element.outerWidth(),\n height: this.element.outerHeight()\n }, this.elementOffset = this.element.offset(), i = {\n x: e.pageX,\n y: e.pageY\n }, s = this._normValueFromMouse(i), n = this._valueMax() - this._valueMin() + 1, this.handles.each(function (e) {\n var i = Math.abs(s - c.values(e));\n (n > i || n === i && (e === c._lastChangedValue || c.values(e) === u.min)) && (n = i, o = t(this), a = e);\n }), r = this._start(e, a), r === !1 ? !1 : (this._mouseSliding = !0, this._handleIndex = a, this._addClass(o, null, \"ui-state-active\"), o.trigger(\"focus\"), h = o.offset(), l = !t(e.target).parents().addBack().is(\".ui-slider-handle\"), this._clickOffset = l ? {\n left: 0,\n top: 0\n } : {\n left: e.pageX - h.left - o.width() / 2,\n top: e.pageY - h.top - o.height() / 2 - (parseInt(o.css(\"borderTopWidth\"), 10) || 0) - (parseInt(o.css(\"borderBottomWidth\"), 10) || 0) + (parseInt(o.css(\"marginTop\"), 10) || 0)\n }, this.handles.hasClass(\"ui-state-hover\") || this._slide(e, a, s), this._animateOff = !0, !0));\n },\n _mouseStart: function _mouseStart() {\n return !0;\n },\n _mouseDrag: function _mouseDrag(t) {\n var e = {\n x: t.pageX,\n y: t.pageY\n },\n i = this._normValueFromMouse(e);\n return this._slide(t, this._handleIndex, i), !1;\n },\n _mouseStop: function _mouseStop(t) {\n return this._removeClass(this.handles, null, \"ui-state-active\"), this._mouseSliding = !1, this._stop(t, this._handleIndex), this._change(t, this._handleIndex), this._handleIndex = null, this._clickOffset = null, this._animateOff = !1, !1;\n },\n _detectOrientation: function _detectOrientation() {\n this.orientation = \"vertical\" === this.options.orientation ? \"vertical\" : \"horizontal\";\n },\n _normValueFromMouse: function _normValueFromMouse(t) {\n var e, i, s, n, o;\n return \"horizontal\" === this.orientation ? (e = this.elementSize.width, i = t.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (e = this.elementSize.height, i = t.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)), s = i / e, s > 1 && (s = 1), 0 > s && (s = 0), \"vertical\" === this.orientation && (s = 1 - s), n = this._valueMax() - this._valueMin(), o = this._valueMin() + s * n, this._trimAlignValue(o);\n },\n _uiHash: function _uiHash(t, e, i) {\n var s = {\n handle: this.handles[t],\n handleIndex: t,\n value: void 0 !== e ? e : this.value()\n };\n return this._hasMultipleValues() && (s.value = void 0 !== e ? e : this.values(t), s.values = i || this.values()), s;\n },\n _hasMultipleValues: function _hasMultipleValues() {\n return this.options.values && this.options.values.length;\n },\n _start: function _start(t, e) {\n return this._trigger(\"start\", t, this._uiHash(e));\n },\n _slide: function _slide(t, e, i) {\n var s,\n n,\n o = this.value(),\n a = this.values();\n this._hasMultipleValues() && (n = this.values(e ? 0 : 1), o = this.values(e), 2 === this.options.values.length && this.options.range === !0 && (i = 0 === e ? Math.min(n, i) : Math.max(n, i)), a[e] = i), i !== o && (s = this._trigger(\"slide\", t, this._uiHash(e, i, a)), s !== !1 && (this._hasMultipleValues() ? this.values(e, i) : this.value(i)));\n },\n _stop: function _stop(t, e) {\n this._trigger(\"stop\", t, this._uiHash(e));\n },\n _change: function _change(t, e) {\n this._keySliding || this._mouseSliding || (this._lastChangedValue = e, this._trigger(\"change\", t, this._uiHash(e)));\n },\n value: function value(t) {\n return arguments.length ? (this.options.value = this._trimAlignValue(t), this._refreshValue(), this._change(null, 0), void 0) : this._value();\n },\n values: function values(e, i) {\n var s, n, o;\n if (arguments.length > 1) return this.options.values[e] = this._trimAlignValue(i), this._refreshValue(), this._change(null, e), void 0;\n if (!arguments.length) return this._values();\n if (!t.isArray(arguments[0])) return this._hasMultipleValues() ? this._values(e) : this.value();\n for (s = this.options.values, n = arguments[0], o = 0; s.length > o; o += 1) s[o] = this._trimAlignValue(n[o]), this._change(null, o);\n this._refreshValue();\n },\n _setOption: function _setOption(e, i) {\n var s,\n n = 0;\n switch (\"range\" === e && this.options.range === !0 && (\"min\" === i ? (this.options.value = this._values(0), this.options.values = null) : \"max\" === i && (this.options.value = this._values(this.options.values.length - 1), this.options.values = null)), t.isArray(this.options.values) && (n = this.options.values.length), this._super(e, i), e) {\n case \"orientation\":\n this._detectOrientation(), this._removeClass(\"ui-slider-horizontal ui-slider-vertical\")._addClass(\"ui-slider-\" + this.orientation), this._refreshValue(), this.options.range && this._refreshRange(i), this.handles.css(\"horizontal\" === i ? \"bottom\" : \"left\", \"\");\n break;\n case \"value\":\n this._animateOff = !0, this._refreshValue(), this._change(null, 0), this._animateOff = !1;\n break;\n case \"values\":\n for (this._animateOff = !0, this._refreshValue(), s = n - 1; s >= 0; s--) this._change(null, s);\n this._animateOff = !1;\n break;\n case \"step\":\n case \"min\":\n case \"max\":\n this._animateOff = !0, this._calculateNewMax(), this._refreshValue(), this._animateOff = !1;\n break;\n case \"range\":\n this._animateOff = !0, this._refresh(), this._animateOff = !1;\n }\n },\n _setOptionDisabled: function _setOptionDisabled(t) {\n this._super(t), this._toggleClass(null, \"ui-state-disabled\", !!t);\n },\n _value: function _value() {\n var t = this.options.value;\n return t = this._trimAlignValue(t);\n },\n _values: function _values(t) {\n var e, i, s;\n if (arguments.length) return e = this.options.values[t], e = this._trimAlignValue(e);\n if (this._hasMultipleValues()) {\n for (i = this.options.values.slice(), s = 0; i.length > s; s += 1) i[s] = this._trimAlignValue(i[s]);\n return i;\n }\n return [];\n },\n _trimAlignValue: function _trimAlignValue(t) {\n if (this._valueMin() >= t) return this._valueMin();\n if (t >= this._valueMax()) return this._valueMax();\n var e = this.options.step > 0 ? this.options.step : 1,\n i = (t - this._valueMin()) % e,\n s = t - i;\n return 2 * Math.abs(i) >= e && (s += i > 0 ? e : -e), parseFloat(s.toFixed(5));\n },\n _calculateNewMax: function _calculateNewMax() {\n var t = this.options.max,\n e = this._valueMin(),\n i = this.options.step,\n s = Math.round((t - e) / i) * i;\n t = s + e, t > this.options.max && (t -= i), this.max = parseFloat(t.toFixed(this._precision()));\n },\n _precision: function _precision() {\n var t = this._precisionOf(this.options.step);\n return null !== this.options.min && (t = Math.max(t, this._precisionOf(this.options.min))), t;\n },\n _precisionOf: function _precisionOf(t) {\n var e = \"\" + t,\n i = e.indexOf(\".\");\n return -1 === i ? 0 : e.length - i - 1;\n },\n _valueMin: function _valueMin() {\n return this.options.min;\n },\n _valueMax: function _valueMax() {\n return this.max;\n },\n _refreshRange: function _refreshRange(t) {\n \"vertical\" === t && this.range.css({\n width: \"\",\n left: \"\"\n }), \"horizontal\" === t && this.range.css({\n height: \"\",\n bottom: \"\"\n });\n },\n _refreshValue: function _refreshValue() {\n var e,\n i,\n s,\n n,\n o,\n a = this.options.range,\n r = this.options,\n h = this,\n l = this._animateOff ? !1 : r.animate,\n c = {};\n this._hasMultipleValues() ? this.handles.each(function (s) {\n i = 100 * ((h.values(s) - h._valueMin()) / (h._valueMax() - h._valueMin())), c[\"horizontal\" === h.orientation ? \"left\" : \"bottom\"] = i + \"%\", t(this).stop(1, 1)[l ? \"animate\" : \"css\"](c, r.animate), h.options.range === !0 && (\"horizontal\" === h.orientation ? (0 === s && h.range.stop(1, 1)[l ? \"animate\" : \"css\"]({\n left: i + \"%\"\n }, r.animate), 1 === s && h.range[l ? \"animate\" : \"css\"]({\n width: i - e + \"%\"\n }, {\n queue: !1,\n duration: r.animate\n })) : (0 === s && h.range.stop(1, 1)[l ? \"animate\" : \"css\"]({\n bottom: i + \"%\"\n }, r.animate), 1 === s && h.range[l ? \"animate\" : \"css\"]({\n height: i - e + \"%\"\n }, {\n queue: !1,\n duration: r.animate\n }))), e = i;\n }) : (s = this.value(), n = this._valueMin(), o = this._valueMax(), i = o !== n ? 100 * ((s - n) / (o - n)) : 0, c[\"horizontal\" === this.orientation ? \"left\" : \"bottom\"] = i + \"%\", this.handle.stop(1, 1)[l ? \"animate\" : \"css\"](c, r.animate), \"min\" === a && \"horizontal\" === this.orientation && this.range.stop(1, 1)[l ? \"animate\" : \"css\"]({\n width: i + \"%\"\n }, r.animate), \"max\" === a && \"horizontal\" === this.orientation && this.range.stop(1, 1)[l ? \"animate\" : \"css\"]({\n width: 100 - i + \"%\"\n }, r.animate), \"min\" === a && \"vertical\" === this.orientation && this.range.stop(1, 1)[l ? \"animate\" : \"css\"]({\n height: i + \"%\"\n }, r.animate), \"max\" === a && \"vertical\" === this.orientation && this.range.stop(1, 1)[l ? \"animate\" : \"css\"]({\n height: 100 - i + \"%\"\n }, r.animate));\n },\n _handleEvents: {\n keydown: function keydown(e) {\n var i,\n s,\n n,\n o,\n a = t(e.target).data(\"ui-slider-handle-index\");\n switch (e.keyCode) {\n case t.ui.keyCode.HOME:\n case t.ui.keyCode.END:\n case t.ui.keyCode.PAGE_UP:\n case t.ui.keyCode.PAGE_DOWN:\n case t.ui.keyCode.UP:\n case t.ui.keyCode.RIGHT:\n case t.ui.keyCode.DOWN:\n case t.ui.keyCode.LEFT:\n if (e.preventDefault(), !this._keySliding && (this._keySliding = !0, this._addClass(t(e.target), null, \"ui-state-active\"), i = this._start(e, a), i === !1)) return;\n }\n switch (o = this.options.step, s = n = this._hasMultipleValues() ? this.values(a) : this.value(), e.keyCode) {\n case t.ui.keyCode.HOME:\n n = this._valueMin();\n break;\n case t.ui.keyCode.END:\n n = this._valueMax();\n break;\n case t.ui.keyCode.PAGE_UP:\n n = this._trimAlignValue(s + (this._valueMax() - this._valueMin()) / this.numPages);\n break;\n case t.ui.keyCode.PAGE_DOWN:\n n = this._trimAlignValue(s - (this._valueMax() - this._valueMin()) / this.numPages);\n break;\n case t.ui.keyCode.UP:\n case t.ui.keyCode.RIGHT:\n if (s === this._valueMax()) return;\n n = this._trimAlignValue(s + o);\n break;\n case t.ui.keyCode.DOWN:\n case t.ui.keyCode.LEFT:\n if (s === this._valueMin()) return;\n n = this._trimAlignValue(s - o);\n }\n this._slide(e, a, n);\n },\n keyup: function keyup(e) {\n var i = t(e.target).data(\"ui-slider-handle-index\");\n this._keySliding && (this._keySliding = !1, this._stop(e, i), this._change(e, i), this._removeClass(t(e.target), null, \"ui-state-active\"));\n }\n }\n }), t.widget(\"ui.sortable\", t.ui.mouse, {\n version: \"1.12.1\",\n widgetEventPrefix: \"sort\",\n ready: !1,\n options: {\n appendTo: \"parent\",\n axis: !1,\n connectWith: !1,\n containment: !1,\n cursor: \"auto\",\n cursorAt: !1,\n dropOnEmpty: !0,\n forcePlaceholderSize: !1,\n forceHelperSize: !1,\n grid: !1,\n handle: !1,\n helper: \"original\",\n items: \"> *\",\n opacity: !1,\n placeholder: !1,\n revert: !1,\n scroll: !0,\n scrollSensitivity: 20,\n scrollSpeed: 20,\n scope: \"default\",\n tolerance: \"intersect\",\n zIndex: 1e3,\n activate: null,\n beforeStop: null,\n change: null,\n deactivate: null,\n out: null,\n over: null,\n receive: null,\n remove: null,\n sort: null,\n start: null,\n stop: null,\n update: null\n },\n _isOverAxis: function _isOverAxis(t, e, i) {\n return t >= e && e + i > t;\n },\n _isFloating: function _isFloating(t) {\n return /left|right/.test(t.css(\"float\")) || /inline|table-cell/.test(t.css(\"display\"));\n },\n _create: function _create() {\n this.containerCache = {}, this._addClass(\"ui-sortable\"), this.refresh(), this.offset = this.element.offset(), this._mouseInit(), this._setHandleClassName(), this.ready = !0;\n },\n _setOption: function _setOption(t, e) {\n this._super(t, e), \"handle\" === t && this._setHandleClassName();\n },\n _setHandleClassName: function _setHandleClassName() {\n var e = this;\n this._removeClass(this.element.find(\".ui-sortable-handle\"), \"ui-sortable-handle\"), t.each(this.items, function () {\n e._addClass(this.instance.options.handle ? this.item.find(this.instance.options.handle) : this.item, \"ui-sortable-handle\");\n });\n },\n _destroy: function _destroy() {\n this._mouseDestroy();\n for (var t = this.items.length - 1; t >= 0; t--) this.items[t].item.removeData(this.widgetName + \"-item\");\n return this;\n },\n _mouseCapture: function _mouseCapture(e, i) {\n var s = null,\n n = !1,\n o = this;\n return this.reverting ? !1 : this.options.disabled || \"static\" === this.options.type ? !1 : (this._refreshItems(e), t(e.target).parents().each(function () {\n return t.data(this, o.widgetName + \"-item\") === o ? (s = t(this), !1) : void 0;\n }), t.data(e.target, o.widgetName + \"-item\") === o && (s = t(e.target)), s ? !this.options.handle || i || (t(this.options.handle, s).find(\"*\").addBack().each(function () {\n this === e.target && (n = !0);\n }), n) ? (this.currentItem = s, this._removeCurrentsFromItems(), !0) : !1 : !1);\n },\n _mouseStart: function _mouseStart(e, i, s) {\n var n,\n o,\n a = this.options;\n if (this.currentContainer = this, this.refreshPositions(), this.helper = this._createHelper(e), this._cacheHelperProportions(), this._cacheMargins(), this.scrollParent = this.helper.scrollParent(), this.offset = this.currentItem.offset(), this.offset = {\n top: this.offset.top - this.margins.top,\n left: this.offset.left - this.margins.left\n }, t.extend(this.offset, {\n click: {\n left: e.pageX - this.offset.left,\n top: e.pageY - this.offset.top\n },\n parent: this._getParentOffset(),\n relative: this._getRelativeOffset()\n }), this.helper.css(\"position\", \"absolute\"), this.cssPosition = this.helper.css(\"position\"), this.originalPosition = this._generatePosition(e), this.originalPageX = e.pageX, this.originalPageY = e.pageY, a.cursorAt && this._adjustOffsetFromHelper(a.cursorAt), this.domPosition = {\n prev: this.currentItem.prev()[0],\n parent: this.currentItem.parent()[0]\n }, this.helper[0] !== this.currentItem[0] && this.currentItem.hide(), this._createPlaceholder(), a.containment && this._setContainment(), a.cursor && \"auto\" !== a.cursor && (o = this.document.find(\"body\"), this.storedCursor = o.css(\"cursor\"), o.css(\"cursor\", a.cursor), this.storedStylesheet = t(\"<style>*{ cursor: \" + a.cursor + \" !important; }</style>\").appendTo(o)), a.opacity && (this.helper.css(\"opacity\") && (this._storedOpacity = this.helper.css(\"opacity\")), this.helper.css(\"opacity\", a.opacity)), a.zIndex && (this.helper.css(\"zIndex\") && (this._storedZIndex = this.helper.css(\"zIndex\")), this.helper.css(\"zIndex\", a.zIndex)), this.scrollParent[0] !== this.document[0] && \"HTML\" !== this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()), this._trigger(\"start\", e, this._uiHash()), this._preserveHelperProportions || this._cacheHelperProportions(), !s) for (n = this.containers.length - 1; n >= 0; n--) this.containers[n]._trigger(\"activate\", e, this._uiHash(this));\n return t.ui.ddmanager && (t.ui.ddmanager.current = this), t.ui.ddmanager && !a.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e), this.dragging = !0, this._addClass(this.helper, \"ui-sortable-helper\"), this._mouseDrag(e), !0;\n },\n _mouseDrag: function _mouseDrag(e) {\n var i,\n s,\n n,\n o,\n a = this.options,\n r = !1;\n for (this.position = this._generatePosition(e), this.positionAbs = this._convertPositionTo(\"absolute\"), this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs), this.options.scroll && (this.scrollParent[0] !== this.document[0] && \"HTML\" !== this.scrollParent[0].tagName ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - e.pageY < a.scrollSensitivity ? this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop + a.scrollSpeed : e.pageY - this.overflowOffset.top < a.scrollSensitivity && (this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop - a.scrollSpeed), this.overflowOffset.left + this.scrollParent[0].offsetWidth - e.pageX < a.scrollSensitivity ? this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft + a.scrollSpeed : e.pageX - this.overflowOffset.left < a.scrollSensitivity && (this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft - a.scrollSpeed)) : (e.pageY - this.document.scrollTop() < a.scrollSensitivity ? r = this.document.scrollTop(this.document.scrollTop() - a.scrollSpeed) : this.window.height() - (e.pageY - this.document.scrollTop()) < a.scrollSensitivity && (r = this.document.scrollTop(this.document.scrollTop() + a.scrollSpeed)), e.pageX - this.document.scrollLeft() < a.scrollSensitivity ? r = this.document.scrollLeft(this.document.scrollLeft() - a.scrollSpeed) : this.window.width() - (e.pageX - this.document.scrollLeft()) < a.scrollSensitivity && (r = this.document.scrollLeft(this.document.scrollLeft() + a.scrollSpeed))), r !== !1 && t.ui.ddmanager && !a.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e)), this.positionAbs = this._convertPositionTo(\"absolute\"), this.options.axis && \"y\" === this.options.axis || (this.helper[0].style.left = this.position.left + \"px\"), this.options.axis && \"x\" === this.options.axis || (this.helper[0].style.top = this.position.top + \"px\"), i = this.items.length - 1; i >= 0; i--) if (s = this.items[i], n = s.item[0], o = this._intersectsWithPointer(s), o && s.instance === this.currentContainer && n !== this.currentItem[0] && this.placeholder[1 === o ? \"next\" : \"prev\"]()[0] !== n && !t.contains(this.placeholder[0], n) && (\"semi-dynamic\" === this.options.type ? !t.contains(this.element[0], n) : !0)) {\n if (this.direction = 1 === o ? \"down\" : \"up\", \"pointer\" !== this.options.tolerance && !this._intersectsWithSides(s)) break;\n this._rearrange(e, s), this._trigger(\"change\", e, this._uiHash());\n break;\n }\n return this._contactContainers(e), t.ui.ddmanager && t.ui.ddmanager.drag(this, e), this._trigger(\"sort\", e, this._uiHash()), this.lastPositionAbs = this.positionAbs, !1;\n },\n _mouseStop: function _mouseStop(e, i) {\n if (e) {\n if (t.ui.ddmanager && !this.options.dropBehaviour && t.ui.ddmanager.drop(this, e), this.options.revert) {\n var s = this,\n n = this.placeholder.offset(),\n o = this.options.axis,\n a = {};\n o && \"x\" !== o || (a.left = n.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft)), o && \"y\" !== o || (a.top = n.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop)), this.reverting = !0, t(this.helper).animate(a, parseInt(this.options.revert, 10) || 500, function () {\n s._clear(e);\n });\n } else this._clear(e, i);\n return !1;\n }\n },\n cancel: function cancel() {\n if (this.dragging) {\n this._mouseUp(new t.Event(\"mouseup\", {\n target: null\n })), \"original\" === this.options.helper ? (this.currentItem.css(this._storedCSS), this._removeClass(this.currentItem, \"ui-sortable-helper\")) : this.currentItem.show();\n for (var e = this.containers.length - 1; e >= 0; e--) this.containers[e]._trigger(\"deactivate\", null, this._uiHash(this)), this.containers[e].containerCache.over && (this.containers[e]._trigger(\"out\", null, this._uiHash(this)), this.containers[e].containerCache.over = 0);\n }\n return this.placeholder && (this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]), \"original\" !== this.options.helper && this.helper && this.helper[0].parentNode && this.helper.remove(), t.extend(this, {\n helper: null,\n dragging: !1,\n reverting: !1,\n _noFinalSort: null\n }), this.domPosition.prev ? t(this.domPosition.prev).after(this.currentItem) : t(this.domPosition.parent).prepend(this.currentItem)), this;\n },\n serialize: function serialize(e) {\n var i = this._getItemsAsjQuery(e && e.connected),\n s = [];\n return e = e || {}, t(i).each(function () {\n var i = (t(e.item || this).attr(e.attribute || \"id\") || \"\").match(e.expression || /(.+)[\\-=_](.+)/);\n i && s.push((e.key || i[1] + \"[]\") + \"=\" + (e.key && e.expression ? i[1] : i[2]));\n }), !s.length && e.key && s.push(e.key + \"=\"), s.join(\"&\");\n },\n toArray: function toArray(e) {\n var i = this._getItemsAsjQuery(e && e.connected),\n s = [];\n return e = e || {}, i.each(function () {\n s.push(t(e.item || this).attr(e.attribute || \"id\") || \"\");\n }), s;\n },\n _intersectsWith: function _intersectsWith(t) {\n var e = this.positionAbs.left,\n i = e + this.helperProportions.width,\n s = this.positionAbs.top,\n n = s + this.helperProportions.height,\n o = t.left,\n a = o + t.width,\n r = t.top,\n h = r + t.height,\n l = this.offset.click.top,\n c = this.offset.click.left,\n u = \"x\" === this.options.axis || s + l > r && h > s + l,\n d = \"y\" === this.options.axis || e + c > o && a > e + c,\n p = u && d;\n return \"pointer\" === this.options.tolerance || this.options.forcePointerForContainers || \"pointer\" !== this.options.tolerance && this.helperProportions[this.floating ? \"width\" : \"height\"] > t[this.floating ? \"width\" : \"height\"] ? p : e + this.helperProportions.width / 2 > o && a > i - this.helperProportions.width / 2 && s + this.helperProportions.height / 2 > r && h > n - this.helperProportions.height / 2;\n },\n _intersectsWithPointer: function _intersectsWithPointer(t) {\n var e,\n i,\n s = \"x\" === this.options.axis || this._isOverAxis(this.positionAbs.top + this.offset.click.top, t.top, t.height),\n n = \"y\" === this.options.axis || this._isOverAxis(this.positionAbs.left + this.offset.click.left, t.left, t.width),\n o = s && n;\n return o ? (e = this._getDragVerticalDirection(), i = this._getDragHorizontalDirection(), this.floating ? \"right\" === i || \"down\" === e ? 2 : 1 : e && (\"down\" === e ? 2 : 1)) : !1;\n },\n _intersectsWithSides: function _intersectsWithSides(t) {\n var e = this._isOverAxis(this.positionAbs.top + this.offset.click.top, t.top + t.height / 2, t.height),\n i = this._isOverAxis(this.positionAbs.left + this.offset.click.left, t.left + t.width / 2, t.width),\n s = this._getDragVerticalDirection(),\n n = this._getDragHorizontalDirection();\n return this.floating && n ? \"right\" === n && i || \"left\" === n && !i : s && (\"down\" === s && e || \"up\" === s && !e);\n },\n _getDragVerticalDirection: function _getDragVerticalDirection() {\n var t = this.positionAbs.top - this.lastPositionAbs.top;\n return 0 !== t && (t > 0 ? \"down\" : \"up\");\n },\n _getDragHorizontalDirection: function _getDragHorizontalDirection() {\n var t = this.positionAbs.left - this.lastPositionAbs.left;\n return 0 !== t && (t > 0 ? \"right\" : \"left\");\n },\n refresh: function refresh(t) {\n return this._refreshItems(t), this._setHandleClassName(), this.refreshPositions(), this;\n },\n _connectWith: function _connectWith() {\n var t = this.options;\n return t.connectWith.constructor === String ? [t.connectWith] : t.connectWith;\n },\n _getItemsAsjQuery: function _getItemsAsjQuery(e) {\n function i() {\n r.push(this);\n }\n var s,\n n,\n o,\n a,\n r = [],\n h = [],\n l = this._connectWith();\n if (l && e) for (s = l.length - 1; s >= 0; s--) for (o = t(l[s], this.document[0]), n = o.length - 1; n >= 0; n--) a = t.data(o[n], this.widgetFullName), a && a !== this && !a.options.disabled && h.push([t.isFunction(a.options.items) ? a.options.items.call(a.element) : t(a.options.items, a.element).not(\".ui-sortable-helper\").not(\".ui-sortable-placeholder\"), a]);\n for (h.push([t.isFunction(this.options.items) ? this.options.items.call(this.element, null, {\n options: this.options,\n item: this.currentItem\n }) : t(this.options.items, this.element).not(\".ui-sortable-helper\").not(\".ui-sortable-placeholder\"), this]), s = h.length - 1; s >= 0; s--) h[s][0].each(i);\n return t(r);\n },\n _removeCurrentsFromItems: function _removeCurrentsFromItems() {\n var e = this.currentItem.find(\":data(\" + this.widgetName + \"-item)\");\n this.items = t.grep(this.items, function (t) {\n for (var i = 0; e.length > i; i++) if (e[i] === t.item[0]) return !1;\n return !0;\n });\n },\n _refreshItems: function _refreshItems(e) {\n this.items = [], this.containers = [this];\n var i,\n s,\n n,\n o,\n a,\n r,\n h,\n l,\n c = this.items,\n u = [[t.isFunction(this.options.items) ? this.options.items.call(this.element[0], e, {\n item: this.currentItem\n }) : t(this.options.items, this.element), this]],\n d = this._connectWith();\n if (d && this.ready) for (i = d.length - 1; i >= 0; i--) for (n = t(d[i], this.document[0]), s = n.length - 1; s >= 0; s--) o = t.data(n[s], this.widgetFullName), o && o !== this && !o.options.disabled && (u.push([t.isFunction(o.options.items) ? o.options.items.call(o.element[0], e, {\n item: this.currentItem\n }) : t(o.options.items, o.element), o]), this.containers.push(o));\n for (i = u.length - 1; i >= 0; i--) for (a = u[i][1], r = u[i][0], s = 0, l = r.length; l > s; s++) h = t(r[s]), h.data(this.widgetName + \"-item\", a), c.push({\n item: h,\n instance: a,\n width: 0,\n height: 0,\n left: 0,\n top: 0\n });\n },\n refreshPositions: function refreshPositions(e) {\n this.floating = this.items.length ? \"x\" === this.options.axis || this._isFloating(this.items[0].item) : !1, this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset());\n var i, s, n, o;\n for (i = this.items.length - 1; i >= 0; i--) s = this.items[i], s.instance !== this.currentContainer && this.currentContainer && s.item[0] !== this.currentItem[0] || (n = this.options.toleranceElement ? t(this.options.toleranceElement, s.item) : s.item, e || (s.width = n.outerWidth(), s.height = n.outerHeight()), o = n.offset(), s.left = o.left, s.top = o.top);\n if (this.options.custom && this.options.custom.refreshContainers) this.options.custom.refreshContainers.call(this);else for (i = this.containers.length - 1; i >= 0; i--) o = this.containers[i].element.offset(), this.containers[i].containerCache.left = o.left, this.containers[i].containerCache.top = o.top, this.containers[i].containerCache.width = this.containers[i].element.outerWidth(), this.containers[i].containerCache.height = this.containers[i].element.outerHeight();\n return this;\n },\n _createPlaceholder: function _createPlaceholder(e) {\n e = e || this;\n var i,\n s = e.options;\n s.placeholder && s.placeholder.constructor !== String || (i = s.placeholder, s.placeholder = {\n element: function element() {\n var s = e.currentItem[0].nodeName.toLowerCase(),\n n = t(\"<\" + s + \">\", e.document[0]);\n return e._addClass(n, \"ui-sortable-placeholder\", i || e.currentItem[0].className)._removeClass(n, \"ui-sortable-helper\"), \"tbody\" === s ? e._createTrPlaceholder(e.currentItem.find(\"tr\").eq(0), t(\"<tr>\", e.document[0]).appendTo(n)) : \"tr\" === s ? e._createTrPlaceholder(e.currentItem, n) : \"img\" === s && n.attr(\"src\", e.currentItem.attr(\"src\")), i || n.css(\"visibility\", \"hidden\"), n;\n },\n update: function update(t, n) {\n (!i || s.forcePlaceholderSize) && (n.height() || n.height(e.currentItem.innerHeight() - parseInt(e.currentItem.css(\"paddingTop\") || 0, 10) - parseInt(e.currentItem.css(\"paddingBottom\") || 0, 10)), n.width() || n.width(e.currentItem.innerWidth() - parseInt(e.currentItem.css(\"paddingLeft\") || 0, 10) - parseInt(e.currentItem.css(\"paddingRight\") || 0, 10)));\n }\n }), e.placeholder = t(s.placeholder.element.call(e.element, e.currentItem)), e.currentItem.after(e.placeholder), s.placeholder.update(e, e.placeholder);\n },\n _createTrPlaceholder: function _createTrPlaceholder(e, i) {\n var s = this;\n e.children().each(function () {\n t(\"<td> </td>\", s.document[0]).attr(\"colspan\", t(this).attr(\"colspan\") || 1).appendTo(i);\n });\n },\n _contactContainers: function _contactContainers(e) {\n var i,\n s,\n n,\n o,\n a,\n r,\n h,\n l,\n c,\n u,\n d = null,\n p = null;\n for (i = this.containers.length - 1; i >= 0; i--) if (!t.contains(this.currentItem[0], this.containers[i].element[0])) if (this._intersectsWith(this.containers[i].containerCache)) {\n if (d && t.contains(this.containers[i].element[0], d.element[0])) continue;\n d = this.containers[i], p = i;\n } else this.containers[i].containerCache.over && (this.containers[i]._trigger(\"out\", e, this._uiHash(this)), this.containers[i].containerCache.over = 0);\n if (d) if (1 === this.containers.length) this.containers[p].containerCache.over || (this.containers[p]._trigger(\"over\", e, this._uiHash(this)), this.containers[p].containerCache.over = 1);else {\n for (n = 1e4, o = null, c = d.floating || this._isFloating(this.currentItem), a = c ? \"left\" : \"top\", r = c ? \"width\" : \"height\", u = c ? \"pageX\" : \"pageY\", s = this.items.length - 1; s >= 0; s--) t.contains(this.containers[p].element[0], this.items[s].item[0]) && this.items[s].item[0] !== this.currentItem[0] && (h = this.items[s].item.offset()[a], l = !1, e[u] - h > this.items[s][r] / 2 && (l = !0), n > Math.abs(e[u] - h) && (n = Math.abs(e[u] - h), o = this.items[s], this.direction = l ? \"up\" : \"down\"));\n if (!o && !this.options.dropOnEmpty) return;\n if (this.currentContainer === this.containers[p]) return this.currentContainer.containerCache.over || (this.containers[p]._trigger(\"over\", e, this._uiHash()), this.currentContainer.containerCache.over = 1), void 0;\n o ? this._rearrange(e, o, null, !0) : this._rearrange(e, null, this.containers[p].element, !0), this._trigger(\"change\", e, this._uiHash()), this.containers[p]._trigger(\"change\", e, this._uiHash(this)), this.currentContainer = this.containers[p], this.options.placeholder.update(this.currentContainer, this.placeholder), this.containers[p]._trigger(\"over\", e, this._uiHash(this)), this.containers[p].containerCache.over = 1;\n }\n },\n _createHelper: function _createHelper(e) {\n var i = this.options,\n s = t.isFunction(i.helper) ? t(i.helper.apply(this.element[0], [e, this.currentItem])) : \"clone\" === i.helper ? this.currentItem.clone() : this.currentItem;\n return s.parents(\"body\").length || t(\"parent\" !== i.appendTo ? i.appendTo : this.currentItem[0].parentNode)[0].appendChild(s[0]), s[0] === this.currentItem[0] && (this._storedCSS = {\n width: this.currentItem[0].style.width,\n height: this.currentItem[0].style.height,\n position: this.currentItem.css(\"position\"),\n top: this.currentItem.css(\"top\"),\n left: this.currentItem.css(\"left\")\n }), (!s[0].style.width || i.forceHelperSize) && s.width(this.currentItem.width()), (!s[0].style.height || i.forceHelperSize) && s.height(this.currentItem.height()), s;\n },\n _adjustOffsetFromHelper: function _adjustOffsetFromHelper(e) {\n \"string\" == typeof e && (e = e.split(\" \")), t.isArray(e) && (e = {\n left: +e[0],\n top: +e[1] || 0\n }), \"left\" in e && (this.offset.click.left = e.left + this.margins.left), \"right\" in e && (this.offset.click.left = this.helperProportions.width - e.right + this.margins.left), \"top\" in e && (this.offset.click.top = e.top + this.margins.top), \"bottom\" in e && (this.offset.click.top = this.helperProportions.height - e.bottom + this.margins.top);\n },\n _getParentOffset: function _getParentOffset() {\n this.offsetParent = this.helper.offsetParent();\n var e = this.offsetParent.offset();\n return \"absolute\" === this.cssPosition && this.scrollParent[0] !== this.document[0] && t.contains(this.scrollParent[0], this.offsetParent[0]) && (e.left += this.scrollParent.scrollLeft(), e.top += this.scrollParent.scrollTop()), (this.offsetParent[0] === this.document[0].body || this.offsetParent[0].tagName && \"html\" === this.offsetParent[0].tagName.toLowerCase() && t.ui.ie) && (e = {\n top: 0,\n left: 0\n }), {\n top: e.top + (parseInt(this.offsetParent.css(\"borderTopWidth\"), 10) || 0),\n left: e.left + (parseInt(this.offsetParent.css(\"borderLeftWidth\"), 10) || 0)\n };\n },\n _getRelativeOffset: function _getRelativeOffset() {\n if (\"relative\" === this.cssPosition) {\n var t = this.currentItem.position();\n return {\n top: t.top - (parseInt(this.helper.css(\"top\"), 10) || 0) + this.scrollParent.scrollTop(),\n left: t.left - (parseInt(this.helper.css(\"left\"), 10) || 0) + this.scrollParent.scrollLeft()\n };\n }\n return {\n top: 0,\n left: 0\n };\n },\n _cacheMargins: function _cacheMargins() {\n this.margins = {\n left: parseInt(this.currentItem.css(\"marginLeft\"), 10) || 0,\n top: parseInt(this.currentItem.css(\"marginTop\"), 10) || 0\n };\n },\n _cacheHelperProportions: function _cacheHelperProportions() {\n this.helperProportions = {\n width: this.helper.outerWidth(),\n height: this.helper.outerHeight()\n };\n },\n _setContainment: function _setContainment() {\n var e,\n i,\n s,\n n = this.options;\n \"parent\" === n.containment && (n.containment = this.helper[0].parentNode), (\"document\" === n.containment || \"window\" === n.containment) && (this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, \"document\" === n.containment ? this.document.width() : this.window.width() - this.helperProportions.width - this.margins.left, (\"document\" === n.containment ? this.document.height() || document.body.parentNode.scrollHeight : this.window.height() || this.document[0].body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]), /^(document|window|parent)$/.test(n.containment) || (e = t(n.containment)[0], i = t(n.containment).offset(), s = \"hidden\" !== t(e).css(\"overflow\"), this.containment = [i.left + (parseInt(t(e).css(\"borderLeftWidth\"), 10) || 0) + (parseInt(t(e).css(\"paddingLeft\"), 10) || 0) - this.margins.left, i.top + (parseInt(t(e).css(\"borderTopWidth\"), 10) || 0) + (parseInt(t(e).css(\"paddingTop\"), 10) || 0) - this.margins.top, i.left + (s ? Math.max(e.scrollWidth, e.offsetWidth) : e.offsetWidth) - (parseInt(t(e).css(\"borderLeftWidth\"), 10) || 0) - (parseInt(t(e).css(\"paddingRight\"), 10) || 0) - this.helperProportions.width - this.margins.left, i.top + (s ? Math.max(e.scrollHeight, e.offsetHeight) : e.offsetHeight) - (parseInt(t(e).css(\"borderTopWidth\"), 10) || 0) - (parseInt(t(e).css(\"paddingBottom\"), 10) || 0) - this.helperProportions.height - this.margins.top]);\n },\n _convertPositionTo: function _convertPositionTo(e, i) {\n i || (i = this.position);\n var s = \"absolute\" === e ? 1 : -1,\n n = \"absolute\" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && t.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent,\n o = /(html|body)/i.test(n[0].tagName);\n return {\n top: i.top + this.offset.relative.top * s + this.offset.parent.top * s - (\"fixed\" === this.cssPosition ? -this.scrollParent.scrollTop() : o ? 0 : n.scrollTop()) * s,\n left: i.left + this.offset.relative.left * s + this.offset.parent.left * s - (\"fixed\" === this.cssPosition ? -this.scrollParent.scrollLeft() : o ? 0 : n.scrollLeft()) * s\n };\n },\n _generatePosition: function _generatePosition(e) {\n var i,\n s,\n n = this.options,\n o = e.pageX,\n a = e.pageY,\n r = \"absolute\" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && t.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent,\n h = /(html|body)/i.test(r[0].tagName);\n return \"relative\" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && this.scrollParent[0] !== this.offsetParent[0] || (this.offset.relative = this._getRelativeOffset()), this.originalPosition && (this.containment && (e.pageX - this.offset.click.left < this.containment[0] && (o = this.containment[0] + this.offset.click.left), e.pageY - this.offset.click.top < this.containment[1] && (a = this.containment[1] + this.offset.click.top), e.pageX - this.offset.click.left > this.containment[2] && (o = this.containment[2] + this.offset.click.left), e.pageY - this.offset.click.top > this.containment[3] && (a = this.containment[3] + this.offset.click.top)), n.grid && (i = this.originalPageY + Math.round((a - this.originalPageY) / n.grid[1]) * n.grid[1], a = this.containment ? i - this.offset.click.top >= this.containment[1] && i - this.offset.click.top <= this.containment[3] ? i : i - this.offset.click.top >= this.containment[1] ? i - n.grid[1] : i + n.grid[1] : i, s = this.originalPageX + Math.round((o - this.originalPageX) / n.grid[0]) * n.grid[0], o = this.containment ? s - this.offset.click.left >= this.containment[0] && s - this.offset.click.left <= this.containment[2] ? s : s - this.offset.click.left >= this.containment[0] ? s - n.grid[0] : s + n.grid[0] : s)), {\n top: a - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (\"fixed\" === this.cssPosition ? -this.scrollParent.scrollTop() : h ? 0 : r.scrollTop()),\n left: o - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (\"fixed\" === this.cssPosition ? -this.scrollParent.scrollLeft() : h ? 0 : r.scrollLeft())\n };\n },\n _rearrange: function _rearrange(t, e, i, s) {\n i ? i[0].appendChild(this.placeholder[0]) : e.item[0].parentNode.insertBefore(this.placeholder[0], \"down\" === this.direction ? e.item[0] : e.item[0].nextSibling), this.counter = this.counter ? ++this.counter : 1;\n var n = this.counter;\n this._delay(function () {\n n === this.counter && this.refreshPositions(!s);\n });\n },\n _clear: function _clear(t, e) {\n function i(t, e, i) {\n return function (s) {\n i._trigger(t, s, e._uiHash(e));\n };\n }\n this.reverting = !1;\n var s,\n n = [];\n if (!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem), this._noFinalSort = null, this.helper[0] === this.currentItem[0]) {\n for (s in this._storedCSS) (\"auto\" === this._storedCSS[s] || \"static\" === this._storedCSS[s]) && (this._storedCSS[s] = \"\");\n this.currentItem.css(this._storedCSS), this._removeClass(this.currentItem, \"ui-sortable-helper\");\n } else this.currentItem.show();\n for (this.fromOutside && !e && n.push(function (t) {\n this._trigger(\"receive\", t, this._uiHash(this.fromOutside));\n }), !this.fromOutside && this.domPosition.prev === this.currentItem.prev().not(\".ui-sortable-helper\")[0] && this.domPosition.parent === this.currentItem.parent()[0] || e || n.push(function (t) {\n this._trigger(\"update\", t, this._uiHash());\n }), this !== this.currentContainer && (e || (n.push(function (t) {\n this._trigger(\"remove\", t, this._uiHash());\n }), n.push(function (t) {\n return function (e) {\n t._trigger(\"receive\", e, this._uiHash(this));\n };\n }.call(this, this.currentContainer)), n.push(function (t) {\n return function (e) {\n t._trigger(\"update\", e, this._uiHash(this));\n };\n }.call(this, this.currentContainer)))), s = this.containers.length - 1; s >= 0; s--) e || n.push(i(\"deactivate\", this, this.containers[s])), this.containers[s].containerCache.over && (n.push(i(\"out\", this, this.containers[s])), this.containers[s].containerCache.over = 0);\n if (this.storedCursor && (this.document.find(\"body\").css(\"cursor\", this.storedCursor), this.storedStylesheet.remove()), this._storedOpacity && this.helper.css(\"opacity\", this._storedOpacity), this._storedZIndex && this.helper.css(\"zIndex\", \"auto\" === this._storedZIndex ? \"\" : this._storedZIndex), this.dragging = !1, e || this._trigger(\"beforeStop\", t, this._uiHash()), this.placeholder[0].parentNode.removeChild(this.placeholder[0]), this.cancelHelperRemoval || (this.helper[0] !== this.currentItem[0] && this.helper.remove(), this.helper = null), !e) {\n for (s = 0; n.length > s; s++) n[s].call(this, t);\n this._trigger(\"stop\", t, this._uiHash());\n }\n return this.fromOutside = !1, !this.cancelHelperRemoval;\n },\n _trigger: function _trigger() {\n t.Widget.prototype._trigger.apply(this, arguments) === !1 && this.cancel();\n },\n _uiHash: function _uiHash(e) {\n var i = e || this;\n return {\n helper: i.helper,\n placeholder: i.placeholder || t([]),\n position: i.position,\n originalPosition: i.originalPosition,\n offset: i.positionAbs,\n item: i.currentItem,\n sender: e ? e.element : null\n };\n }\n }), t.widget(\"ui.spinner\", {\n version: \"1.12.1\",\n defaultElement: \"<input>\",\n widgetEventPrefix: \"spin\",\n options: {\n classes: {\n \"ui-spinner\": \"ui-corner-all\",\n \"ui-spinner-down\": \"ui-corner-br\",\n \"ui-spinner-up\": \"ui-corner-tr\"\n },\n culture: null,\n icons: {\n down: \"ui-icon-triangle-1-s\",\n up: \"ui-icon-triangle-1-n\"\n },\n incremental: !0,\n max: null,\n min: null,\n numberFormat: null,\n page: 10,\n step: 1,\n change: null,\n spin: null,\n start: null,\n stop: null\n },\n _create: function _create() {\n this._setOption(\"max\", this.options.max), this._setOption(\"min\", this.options.min), this._setOption(\"step\", this.options.step), \"\" !== this.value() && this._value(this.element.val(), !0), this._draw(), this._on(this._events), this._refresh(), this._on(this.window, {\n beforeunload: function beforeunload() {\n this.element.removeAttr(\"autocomplete\");\n }\n });\n },\n _getCreateOptions: function _getCreateOptions() {\n var e = this._super(),\n i = this.element;\n return t.each([\"min\", \"max\", \"step\"], function (t, s) {\n var n = i.attr(s);\n null != n && n.length && (e[s] = n);\n }), e;\n },\n _events: {\n keydown: function keydown(t) {\n this._start(t) && this._keydown(t) && t.preventDefault();\n },\n keyup: \"_stop\",\n focus: function focus() {\n this.previous = this.element.val();\n },\n blur: function blur(t) {\n return this.cancelBlur ? (delete this.cancelBlur, void 0) : (this._stop(), this._refresh(), this.previous !== this.element.val() && this._trigger(\"change\", t), void 0);\n },\n mousewheel: function mousewheel(t, e) {\n if (e) {\n if (!this.spinning && !this._start(t)) return !1;\n this._spin((e > 0 ? 1 : -1) * this.options.step, t), clearTimeout(this.mousewheelTimer), this.mousewheelTimer = this._delay(function () {\n this.spinning && this._stop(t);\n }, 100), t.preventDefault();\n }\n },\n \"mousedown .ui-spinner-button\": function mousedownUiSpinnerButton(e) {\n function i() {\n var e = this.element[0] === t.ui.safeActiveElement(this.document[0]);\n e || (this.element.trigger(\"focus\"), this.previous = s, this._delay(function () {\n this.previous = s;\n }));\n }\n var s;\n s = this.element[0] === t.ui.safeActiveElement(this.document[0]) ? this.previous : this.element.val(), e.preventDefault(), i.call(this), this.cancelBlur = !0, this._delay(function () {\n delete this.cancelBlur, i.call(this);\n }), this._start(e) !== !1 && this._repeat(null, t(e.currentTarget).hasClass(\"ui-spinner-up\") ? 1 : -1, e);\n },\n \"mouseup .ui-spinner-button\": \"_stop\",\n \"mouseenter .ui-spinner-button\": function mouseenterUiSpinnerButton(e) {\n return t(e.currentTarget).hasClass(\"ui-state-active\") ? this._start(e) === !1 ? !1 : (this._repeat(null, t(e.currentTarget).hasClass(\"ui-spinner-up\") ? 1 : -1, e), void 0) : void 0;\n },\n \"mouseleave .ui-spinner-button\": \"_stop\"\n },\n _enhance: function _enhance() {\n this.uiSpinner = this.element.attr(\"autocomplete\", \"off\").wrap(\"<span>\").parent().append(\"<a></a><a></a>\");\n },\n _draw: function _draw() {\n this._enhance(), this._addClass(this.uiSpinner, \"ui-spinner\", \"ui-widget ui-widget-content\"), this._addClass(\"ui-spinner-input\"), this.element.attr(\"role\", \"spinbutton\"), this.buttons = this.uiSpinner.children(\"a\").attr(\"tabIndex\", -1).attr(\"aria-hidden\", !0).button({\n classes: {\n \"ui-button\": \"\"\n }\n }), this._removeClass(this.buttons, \"ui-corner-all\"), this._addClass(this.buttons.first(), \"ui-spinner-button ui-spinner-up\"), this._addClass(this.buttons.last(), \"ui-spinner-button ui-spinner-down\"), this.buttons.first().button({\n icon: this.options.icons.up,\n showLabel: !1\n }), this.buttons.last().button({\n icon: this.options.icons.down,\n showLabel: !1\n }), this.buttons.height() > Math.ceil(.5 * this.uiSpinner.height()) && this.uiSpinner.height() > 0 && this.uiSpinner.height(this.uiSpinner.height());\n },\n _keydown: function _keydown(e) {\n var i = this.options,\n s = t.ui.keyCode;\n switch (e.keyCode) {\n case s.UP:\n return this._repeat(null, 1, e), !0;\n case s.DOWN:\n return this._repeat(null, -1, e), !0;\n case s.PAGE_UP:\n return this._repeat(null, i.page, e), !0;\n case s.PAGE_DOWN:\n return this._repeat(null, -i.page, e), !0;\n }\n return !1;\n },\n _start: function _start(t) {\n return this.spinning || this._trigger(\"start\", t) !== !1 ? (this.counter || (this.counter = 1), this.spinning = !0, !0) : !1;\n },\n _repeat: function _repeat(t, e, i) {\n t = t || 500, clearTimeout(this.timer), this.timer = this._delay(function () {\n this._repeat(40, e, i);\n }, t), this._spin(e * this.options.step, i);\n },\n _spin: function _spin(t, e) {\n var i = this.value() || 0;\n this.counter || (this.counter = 1), i = this._adjustValue(i + t * this._increment(this.counter)), this.spinning && this._trigger(\"spin\", e, {\n value: i\n }) === !1 || (this._value(i), this.counter++);\n },\n _increment: function _increment(e) {\n var i = this.options.incremental;\n return i ? t.isFunction(i) ? i(e) : Math.floor(e * e * e / 5e4 - e * e / 500 + 17 * e / 200 + 1) : 1;\n },\n _precision: function _precision() {\n var t = this._precisionOf(this.options.step);\n return null !== this.options.min && (t = Math.max(t, this._precisionOf(this.options.min))), t;\n },\n _precisionOf: function _precisionOf(t) {\n var e = \"\" + t,\n i = e.indexOf(\".\");\n return -1 === i ? 0 : e.length - i - 1;\n },\n _adjustValue: function _adjustValue(t) {\n var e,\n i,\n s = this.options;\n return e = null !== s.min ? s.min : 0, i = t - e, i = Math.round(i / s.step) * s.step, t = e + i, t = parseFloat(t.toFixed(this._precision())), null !== s.max && t > s.max ? s.max : null !== s.min && s.min > t ? s.min : t;\n },\n _stop: function _stop(t) {\n this.spinning && (clearTimeout(this.timer), clearTimeout(this.mousewheelTimer), this.counter = 0, this.spinning = !1, this._trigger(\"stop\", t));\n },\n _setOption: function _setOption(t, e) {\n var i, s, n;\n return \"culture\" === t || \"numberFormat\" === t ? (i = this._parse(this.element.val()), this.options[t] = e, this.element.val(this._format(i)), void 0) : ((\"max\" === t || \"min\" === t || \"step\" === t) && \"string\" == typeof e && (e = this._parse(e)), \"icons\" === t && (s = this.buttons.first().find(\".ui-icon\"), this._removeClass(s, null, this.options.icons.up), this._addClass(s, null, e.up), n = this.buttons.last().find(\".ui-icon\"), this._removeClass(n, null, this.options.icons.down), this._addClass(n, null, e.down)), this._super(t, e), void 0);\n },\n _setOptionDisabled: function _setOptionDisabled(t) {\n this._super(t), this._toggleClass(this.uiSpinner, null, \"ui-state-disabled\", !!t), this.element.prop(\"disabled\", !!t), this.buttons.button(t ? \"disable\" : \"enable\");\n },\n _setOptions: r(function (t) {\n this._super(t);\n }),\n _parse: function _parse(t) {\n return \"string\" == typeof t && \"\" !== t && (t = window.Globalize && this.options.numberFormat ? Globalize.parseFloat(t, 10, this.options.culture) : +t), \"\" === t || isNaN(t) ? null : t;\n },\n _format: function _format(t) {\n return \"\" === t ? \"\" : window.Globalize && this.options.numberFormat ? Globalize.format(t, this.options.numberFormat, this.options.culture) : t;\n },\n _refresh: function _refresh() {\n this.element.attr({\n \"aria-valuemin\": this.options.min,\n \"aria-valuemax\": this.options.max,\n \"aria-valuenow\": this._parse(this.element.val())\n });\n },\n isValid: function isValid() {\n var t = this.value();\n return null === t ? !1 : t === this._adjustValue(t);\n },\n _value: function _value(t, e) {\n var i;\n \"\" !== t && (i = this._parse(t), null !== i && (e || (i = this._adjustValue(i)), t = this._format(i))), this.element.val(t), this._refresh();\n },\n _destroy: function _destroy() {\n this.element.prop(\"disabled\", !1).removeAttr(\"autocomplete role aria-valuemin aria-valuemax aria-valuenow\"), this.uiSpinner.replaceWith(this.element);\n },\n stepUp: r(function (t) {\n this._stepUp(t);\n }),\n _stepUp: function _stepUp(t) {\n this._start() && (this._spin((t || 1) * this.options.step), this._stop());\n },\n stepDown: r(function (t) {\n this._stepDown(t);\n }),\n _stepDown: function _stepDown(t) {\n this._start() && (this._spin((t || 1) * -this.options.step), this._stop());\n },\n pageUp: r(function (t) {\n this._stepUp((t || 1) * this.options.page);\n }),\n pageDown: r(function (t) {\n this._stepDown((t || 1) * this.options.page);\n }),\n value: function value(t) {\n return arguments.length ? (r(this._value).call(this, t), void 0) : this._parse(this.element.val());\n },\n widget: function widget() {\n return this.uiSpinner;\n }\n }), t.uiBackCompat !== !1 && t.widget(\"ui.spinner\", t.ui.spinner, {\n _enhance: function _enhance() {\n this.uiSpinner = this.element.attr(\"autocomplete\", \"off\").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());\n },\n _uiSpinnerHtml: function _uiSpinnerHtml() {\n return \"<span>\";\n },\n _buttonHtml: function _buttonHtml() {\n return \"<a></a><a></a>\";\n }\n }), t.ui.spinner, t.widget(\"ui.tabs\", {\n version: \"1.12.1\",\n delay: 300,\n options: {\n active: null,\n classes: {\n \"ui-tabs\": \"ui-corner-all\",\n \"ui-tabs-nav\": \"ui-corner-all\",\n \"ui-tabs-panel\": \"ui-corner-bottom\",\n \"ui-tabs-tab\": \"ui-corner-top\"\n },\n collapsible: !1,\n event: \"click\",\n heightStyle: \"content\",\n hide: null,\n show: null,\n activate: null,\n beforeActivate: null,\n beforeLoad: null,\n load: null\n },\n _isLocal: function () {\n var t = /#.*$/;\n return function (e) {\n var i, s;\n i = e.href.replace(t, \"\"), s = location.href.replace(t, \"\");\n try {\n i = decodeURIComponent(i);\n } catch (n) {}\n try {\n s = decodeURIComponent(s);\n } catch (n) {}\n return e.hash.length > 1 && i === s;\n };\n }(),\n _create: function _create() {\n var e = this,\n i = this.options;\n this.running = !1, this._addClass(\"ui-tabs\", \"ui-widget ui-widget-content\"), this._toggleClass(\"ui-tabs-collapsible\", null, i.collapsible), this._processTabs(), i.active = this._initialActive(), t.isArray(i.disabled) && (i.disabled = t.unique(i.disabled.concat(t.map(this.tabs.filter(\".ui-state-disabled\"), function (t) {\n return e.tabs.index(t);\n }))).sort()), this.active = this.options.active !== !1 && this.anchors.length ? this._findActive(i.active) : t(), this._refresh(), this.active.length && this.load(i.active);\n },\n _initialActive: function _initialActive() {\n var e = this.options.active,\n i = this.options.collapsible,\n s = location.hash.substring(1);\n return null === e && (s && this.tabs.each(function (i, n) {\n return t(n).attr(\"aria-controls\") === s ? (e = i, !1) : void 0;\n }), null === e && (e = this.tabs.index(this.tabs.filter(\".ui-tabs-active\"))), (null === e || -1 === e) && (e = this.tabs.length ? 0 : !1)), e !== !1 && (e = this.tabs.index(this.tabs.eq(e)), -1 === e && (e = i ? !1 : 0)), !i && e === !1 && this.anchors.length && (e = 0), e;\n },\n _getCreateEventData: function _getCreateEventData() {\n return {\n tab: this.active,\n panel: this.active.length ? this._getPanelForTab(this.active) : t()\n };\n },\n _tabKeydown: function _tabKeydown(e) {\n var i = t(t.ui.safeActiveElement(this.document[0])).closest(\"li\"),\n s = this.tabs.index(i),\n n = !0;\n if (!this._handlePageNav(e)) {\n switch (e.keyCode) {\n case t.ui.keyCode.RIGHT:\n case t.ui.keyCode.DOWN:\n s++;\n break;\n case t.ui.keyCode.UP:\n case t.ui.keyCode.LEFT:\n n = !1, s--;\n break;\n case t.ui.keyCode.END:\n s = this.anchors.length - 1;\n break;\n case t.ui.keyCode.HOME:\n s = 0;\n break;\n case t.ui.keyCode.SPACE:\n return e.preventDefault(), clearTimeout(this.activating), this._activate(s), void 0;\n case t.ui.keyCode.ENTER:\n return e.preventDefault(), clearTimeout(this.activating), this._activate(s === this.options.active ? !1 : s), void 0;\n default:\n return;\n }\n e.preventDefault(), clearTimeout(this.activating), s = this._focusNextTab(s, n), e.ctrlKey || e.metaKey || (i.attr(\"aria-selected\", \"false\"), this.tabs.eq(s).attr(\"aria-selected\", \"true\"), this.activating = this._delay(function () {\n this.option(\"active\", s);\n }, this.delay));\n }\n },\n _panelKeydown: function _panelKeydown(e) {\n this._handlePageNav(e) || e.ctrlKey && e.keyCode === t.ui.keyCode.UP && (e.preventDefault(), this.active.trigger(\"focus\"));\n },\n _handlePageNav: function _handlePageNav(e) {\n return e.altKey && e.keyCode === t.ui.keyCode.PAGE_UP ? (this._activate(this._focusNextTab(this.options.active - 1, !1)), !0) : e.altKey && e.keyCode === t.ui.keyCode.PAGE_DOWN ? (this._activate(this._focusNextTab(this.options.active + 1, !0)), !0) : void 0;\n },\n _findNextTab: function _findNextTab(e, i) {\n function s() {\n return e > n && (e = 0), 0 > e && (e = n), e;\n }\n for (var n = this.tabs.length - 1; -1 !== t.inArray(s(), this.options.disabled);) e = i ? e + 1 : e - 1;\n return e;\n },\n _focusNextTab: function _focusNextTab(t, e) {\n return t = this._findNextTab(t, e), this.tabs.eq(t).trigger(\"focus\"), t;\n },\n _setOption: function _setOption(t, e) {\n return \"active\" === t ? (this._activate(e), void 0) : (this._super(t, e), \"collapsible\" === t && (this._toggleClass(\"ui-tabs-collapsible\", null, e), e || this.options.active !== !1 || this._activate(0)), \"event\" === t && this._setupEvents(e), \"heightStyle\" === t && this._setupHeightStyle(e), void 0);\n },\n _sanitizeSelector: function _sanitizeSelector(t) {\n return t ? t.replace(/[!\"$%&'()*+,.\\/:;<=>?@\\[\\]\\^`{|}~]/g, \"\\\\$&\") : \"\";\n },\n refresh: function refresh() {\n var e = this.options,\n i = this.tablist.children(\":has(a[href])\");\n e.disabled = t.map(i.filter(\".ui-state-disabled\"), function (t) {\n return i.index(t);\n }), this._processTabs(), e.active !== !1 && this.anchors.length ? this.active.length && !t.contains(this.tablist[0], this.active[0]) ? this.tabs.length === e.disabled.length ? (e.active = !1, this.active = t()) : this._activate(this._findNextTab(Math.max(0, e.active - 1), !1)) : e.active = this.tabs.index(this.active) : (e.active = !1, this.active = t()), this._refresh();\n },\n _refresh: function _refresh() {\n this._setOptionDisabled(this.options.disabled), this._setupEvents(this.options.event), this._setupHeightStyle(this.options.heightStyle), this.tabs.not(this.active).attr({\n \"aria-selected\": \"false\",\n \"aria-expanded\": \"false\",\n tabIndex: -1\n }), this.panels.not(this._getPanelForTab(this.active)).hide().attr({\n \"aria-hidden\": \"true\"\n }), this.active.length ? (this.active.attr({\n \"aria-selected\": \"true\",\n \"aria-expanded\": \"true\",\n tabIndex: 0\n }), this._addClass(this.active, \"ui-tabs-active\", \"ui-state-active\"), this._getPanelForTab(this.active).show().attr({\n \"aria-hidden\": \"false\"\n })) : this.tabs.eq(0).attr(\"tabIndex\", 0);\n },\n _processTabs: function _processTabs() {\n var e = this,\n i = this.tabs,\n s = this.anchors,\n n = this.panels;\n this.tablist = this._getList().attr(\"role\", \"tablist\"), this._addClass(this.tablist, \"ui-tabs-nav\", \"ui-helper-reset ui-helper-clearfix ui-widget-header\"), this.tablist.on(\"mousedown\" + this.eventNamespace, \"> li\", function (e) {\n t(this).is(\".ui-state-disabled\") && e.preventDefault();\n }).on(\"focus\" + this.eventNamespace, \".ui-tabs-anchor\", function () {\n t(this).closest(\"li\").is(\".ui-state-disabled\") && this.blur();\n }), this.tabs = this.tablist.find(\"> li:has(a[href])\").attr({\n role: \"tab\",\n tabIndex: -1\n }), this._addClass(this.tabs, \"ui-tabs-tab\", \"ui-state-default\"), this.anchors = this.tabs.map(function () {\n return t(\"a\", this)[0];\n }).attr({\n role: \"presentation\",\n tabIndex: -1\n }), this._addClass(this.anchors, \"ui-tabs-anchor\"), this.panels = t(), this.anchors.each(function (i, s) {\n var n,\n o,\n a,\n r = t(s).uniqueId().attr(\"id\"),\n h = t(s).closest(\"li\"),\n l = h.attr(\"aria-controls\");\n e._isLocal(s) ? (n = s.hash, a = n.substring(1), o = e.element.find(e._sanitizeSelector(n))) : (a = h.attr(\"aria-controls\") || t({}).uniqueId()[0].id, n = \"#\" + a, o = e.element.find(n), o.length || (o = e._createPanel(a), o.insertAfter(e.panels[i - 1] || e.tablist)), o.attr(\"aria-live\", \"polite\")), o.length && (e.panels = e.panels.add(o)), l && h.data(\"ui-tabs-aria-controls\", l), h.attr({\n \"aria-controls\": a,\n \"aria-labelledby\": r\n }), o.attr(\"aria-labelledby\", r);\n }), this.panels.attr(\"role\", \"tabpanel\"), this._addClass(this.panels, \"ui-tabs-panel\", \"ui-widget-content\"), i && (this._off(i.not(this.tabs)), this._off(s.not(this.anchors)), this._off(n.not(this.panels)));\n },\n _getList: function _getList() {\n return this.tablist || this.element.find(\"ol, ul\").eq(0);\n },\n _createPanel: function _createPanel(e) {\n return t(\"<div>\").attr(\"id\", e).data(\"ui-tabs-destroy\", !0);\n },\n _setOptionDisabled: function _setOptionDisabled(e) {\n var i, s, n;\n for (t.isArray(e) && (e.length ? e.length === this.anchors.length && (e = !0) : e = !1), n = 0; s = this.tabs[n]; n++) i = t(s), e === !0 || -1 !== t.inArray(n, e) ? (i.attr(\"aria-disabled\", \"true\"), this._addClass(i, null, \"ui-state-disabled\")) : (i.removeAttr(\"aria-disabled\"), this._removeClass(i, null, \"ui-state-disabled\"));\n this.options.disabled = e, this._toggleClass(this.widget(), this.widgetFullName + \"-disabled\", null, e === !0);\n },\n _setupEvents: function _setupEvents(e) {\n var i = {};\n e && t.each(e.split(\" \"), function (t, e) {\n i[e] = \"_eventHandler\";\n }), this._off(this.anchors.add(this.tabs).add(this.panels)), this._on(!0, this.anchors, {\n click: function click(t) {\n t.preventDefault();\n }\n }), this._on(this.anchors, i), this._on(this.tabs, {\n keydown: \"_tabKeydown\"\n }), this._on(this.panels, {\n keydown: \"_panelKeydown\"\n }), this._focusable(this.tabs), this._hoverable(this.tabs);\n },\n _setupHeightStyle: function _setupHeightStyle(e) {\n var i,\n s = this.element.parent();\n \"fill\" === e ? (i = s.height(), i -= this.element.outerHeight() - this.element.height(), this.element.siblings(\":visible\").each(function () {\n var e = t(this),\n s = e.css(\"position\");\n \"absolute\" !== s && \"fixed\" !== s && (i -= e.outerHeight(!0));\n }), this.element.children().not(this.panels).each(function () {\n i -= t(this).outerHeight(!0);\n }), this.panels.each(function () {\n t(this).height(Math.max(0, i - t(this).innerHeight() + t(this).height()));\n }).css(\"overflow\", \"auto\")) : \"auto\" === e && (i = 0, this.panels.each(function () {\n i = Math.max(i, t(this).height(\"\").height());\n }).height(i));\n },\n _eventHandler: function _eventHandler(e) {\n var i = this.options,\n s = this.active,\n n = t(e.currentTarget),\n o = n.closest(\"li\"),\n a = o[0] === s[0],\n r = a && i.collapsible,\n h = r ? t() : this._getPanelForTab(o),\n l = s.length ? this._getPanelForTab(s) : t(),\n c = {\n oldTab: s,\n oldPanel: l,\n newTab: r ? t() : o,\n newPanel: h\n };\n e.preventDefault(), o.hasClass(\"ui-state-disabled\") || o.hasClass(\"ui-tabs-loading\") || this.running || a && !i.collapsible || this._trigger(\"beforeActivate\", e, c) === !1 || (i.active = r ? !1 : this.tabs.index(o), this.active = a ? t() : o, this.xhr && this.xhr.abort(), l.length || h.length || t.error(\"jQuery UI Tabs: Mismatching fragment identifier.\"), h.length && this.load(this.tabs.index(o), e), this._toggle(e, c));\n },\n _toggle: function _toggle(e, i) {\n function s() {\n o.running = !1, o._trigger(\"activate\", e, i);\n }\n function n() {\n o._addClass(i.newTab.closest(\"li\"), \"ui-tabs-active\", \"ui-state-active\"), a.length && o.options.show ? o._show(a, o.options.show, s) : (a.show(), s());\n }\n var o = this,\n a = i.newPanel,\n r = i.oldPanel;\n this.running = !0, r.length && this.options.hide ? this._hide(r, this.options.hide, function () {\n o._removeClass(i.oldTab.closest(\"li\"), \"ui-tabs-active\", \"ui-state-active\"), n();\n }) : (this._removeClass(i.oldTab.closest(\"li\"), \"ui-tabs-active\", \"ui-state-active\"), r.hide(), n()), r.attr(\"aria-hidden\", \"true\"), i.oldTab.attr({\n \"aria-selected\": \"false\",\n \"aria-expanded\": \"false\"\n }), a.length && r.length ? i.oldTab.attr(\"tabIndex\", -1) : a.length && this.tabs.filter(function () {\n return 0 === t(this).attr(\"tabIndex\");\n }).attr(\"tabIndex\", -1), a.attr(\"aria-hidden\", \"false\"), i.newTab.attr({\n \"aria-selected\": \"true\",\n \"aria-expanded\": \"true\",\n tabIndex: 0\n });\n },\n _activate: function _activate(e) {\n var i,\n s = this._findActive(e);\n s[0] !== this.active[0] && (s.length || (s = this.active), i = s.find(\".ui-tabs-anchor\")[0], this._eventHandler({\n target: i,\n currentTarget: i,\n preventDefault: t.noop\n }));\n },\n _findActive: function _findActive(e) {\n return e === !1 ? t() : this.tabs.eq(e);\n },\n _getIndex: function _getIndex(e) {\n return \"string\" == typeof e && (e = this.anchors.index(this.anchors.filter(\"[href$='\" + t.ui.escapeSelector(e) + \"']\"))), e;\n },\n _destroy: function _destroy() {\n this.xhr && this.xhr.abort(), this.tablist.removeAttr(\"role\").off(this.eventNamespace), this.anchors.removeAttr(\"role tabIndex\").removeUniqueId(), this.tabs.add(this.panels).each(function () {\n t.data(this, \"ui-tabs-destroy\") ? t(this).remove() : t(this).removeAttr(\"role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded\");\n }), this.tabs.each(function () {\n var e = t(this),\n i = e.data(\"ui-tabs-aria-controls\");\n i ? e.attr(\"aria-controls\", i).removeData(\"ui-tabs-aria-controls\") : e.removeAttr(\"aria-controls\");\n }), this.panels.show(), \"content\" !== this.options.heightStyle && this.panels.css(\"height\", \"\");\n },\n enable: function enable(e) {\n var i = this.options.disabled;\n i !== !1 && (void 0 === e ? i = !1 : (e = this._getIndex(e), i = t.isArray(i) ? t.map(i, function (t) {\n return t !== e ? t : null;\n }) : t.map(this.tabs, function (t, i) {\n return i !== e ? i : null;\n })), this._setOptionDisabled(i));\n },\n disable: function disable(e) {\n var i = this.options.disabled;\n if (i !== !0) {\n if (void 0 === e) i = !0;else {\n if (e = this._getIndex(e), -1 !== t.inArray(e, i)) return;\n i = t.isArray(i) ? t.merge([e], i).sort() : [e];\n }\n this._setOptionDisabled(i);\n }\n },\n load: function load(e, i) {\n e = this._getIndex(e);\n var s = this,\n n = this.tabs.eq(e),\n o = n.find(\".ui-tabs-anchor\"),\n a = this._getPanelForTab(n),\n r = {\n tab: n,\n panel: a\n },\n h = function h(t, e) {\n \"abort\" === e && s.panels.stop(!1, !0), s._removeClass(n, \"ui-tabs-loading\"), a.removeAttr(\"aria-busy\"), t === s.xhr && delete s.xhr;\n };\n this._isLocal(o[0]) || (this.xhr = t.ajax(this._ajaxSettings(o, i, r)), this.xhr && \"canceled\" !== this.xhr.statusText && (this._addClass(n, \"ui-tabs-loading\"), a.attr(\"aria-busy\", \"true\"), this.xhr.done(function (t, e, n) {\n setTimeout(function () {\n a.html(t), s._trigger(\"load\", i, r), h(n, e);\n }, 1);\n }).fail(function (t, e) {\n setTimeout(function () {\n h(t, e);\n }, 1);\n })));\n },\n _ajaxSettings: function _ajaxSettings(e, i, s) {\n var n = this;\n return {\n url: e.attr(\"href\").replace(/#.*$/, \"\"),\n beforeSend: function beforeSend(e, o) {\n return n._trigger(\"beforeLoad\", i, t.extend({\n jqXHR: e,\n ajaxSettings: o\n }, s));\n }\n };\n },\n _getPanelForTab: function _getPanelForTab(e) {\n var i = t(e).attr(\"aria-controls\");\n return this.element.find(this._sanitizeSelector(\"#\" + i));\n }\n }), t.uiBackCompat !== !1 && t.widget(\"ui.tabs\", t.ui.tabs, {\n _processTabs: function _processTabs() {\n this._superApply(arguments), this._addClass(this.tabs, \"ui-tab\");\n }\n }), t.ui.tabs, t.widget(\"ui.tooltip\", {\n version: \"1.12.1\",\n options: {\n classes: {\n \"ui-tooltip\": \"ui-corner-all ui-widget-shadow\"\n },\n content: function content() {\n var e = t(this).attr(\"title\") || \"\";\n return t(\"<a>\").text(e).html();\n },\n hide: !0,\n items: \"[title]:not([disabled])\",\n position: {\n my: \"left top+15\",\n at: \"left bottom\",\n collision: \"flipfit flip\"\n },\n show: !0,\n track: !1,\n close: null,\n open: null\n },\n _addDescribedBy: function _addDescribedBy(e, i) {\n var s = (e.attr(\"aria-describedby\") || \"\").split(/\\s+/);\n s.push(i), e.data(\"ui-tooltip-id\", i).attr(\"aria-describedby\", t.trim(s.join(\" \")));\n },\n _removeDescribedBy: function _removeDescribedBy(e) {\n var i = e.data(\"ui-tooltip-id\"),\n s = (e.attr(\"aria-describedby\") || \"\").split(/\\s+/),\n n = t.inArray(i, s);\n -1 !== n && s.splice(n, 1), e.removeData(\"ui-tooltip-id\"), s = t.trim(s.join(\" \")), s ? e.attr(\"aria-describedby\", s) : e.removeAttr(\"aria-describedby\");\n },\n _create: function _create() {\n this._on({\n mouseover: \"open\",\n focusin: \"open\"\n }), this.tooltips = {}, this.parents = {}, this.liveRegion = t(\"<div>\").attr({\n role: \"log\",\n \"aria-live\": \"assertive\",\n \"aria-relevant\": \"additions\"\n }).appendTo(this.document[0].body), this._addClass(this.liveRegion, null, \"ui-helper-hidden-accessible\"), this.disabledTitles = t([]);\n },\n _setOption: function _setOption(e, i) {\n var s = this;\n this._super(e, i), \"content\" === e && t.each(this.tooltips, function (t, e) {\n s._updateContent(e.element);\n });\n },\n _setOptionDisabled: function _setOptionDisabled(t) {\n this[t ? \"_disable\" : \"_enable\"]();\n },\n _disable: function _disable() {\n var e = this;\n t.each(this.tooltips, function (i, s) {\n var n = t.Event(\"blur\");\n n.target = n.currentTarget = s.element[0], e.close(n, !0);\n }), this.disabledTitles = this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function () {\n var e = t(this);\n return e.is(\"[title]\") ? e.data(\"ui-tooltip-title\", e.attr(\"title\")).removeAttr(\"title\") : void 0;\n }));\n },\n _enable: function _enable() {\n this.disabledTitles.each(function () {\n var e = t(this);\n e.data(\"ui-tooltip-title\") && e.attr(\"title\", e.data(\"ui-tooltip-title\"));\n }), this.disabledTitles = t([]);\n },\n open: function open(e) {\n var i = this,\n s = t(e ? e.target : this.element).closest(this.options.items);\n s.length && !s.data(\"ui-tooltip-id\") && (s.attr(\"title\") && s.data(\"ui-tooltip-title\", s.attr(\"title\")), s.data(\"ui-tooltip-open\", !0), e && \"mouseover\" === e.type && s.parents().each(function () {\n var e,\n s = t(this);\n s.data(\"ui-tooltip-open\") && (e = t.Event(\"blur\"), e.target = e.currentTarget = this, i.close(e, !0)), s.attr(\"title\") && (s.uniqueId(), i.parents[this.id] = {\n element: this,\n title: s.attr(\"title\")\n }, s.attr(\"title\", \"\"));\n }), this._registerCloseHandlers(e, s), this._updateContent(s, e));\n },\n _updateContent: function _updateContent(t, e) {\n var i,\n s = this.options.content,\n n = this,\n o = e ? e.type : null;\n return \"string\" == typeof s || s.nodeType || s.jquery ? this._open(e, t, s) : (i = s.call(t[0], function (i) {\n n._delay(function () {\n t.data(\"ui-tooltip-open\") && (e && (e.type = o), this._open(e, t, i));\n });\n }), i && this._open(e, t, i), void 0);\n },\n _open: function _open(e, i, s) {\n function n(t) {\n l.of = t, a.is(\":hidden\") || a.position(l);\n }\n var o,\n a,\n r,\n h,\n l = t.extend({}, this.options.position);\n if (s) {\n if (o = this._find(i)) return o.tooltip.find(\".ui-tooltip-content\").html(s), void 0;\n i.is(\"[title]\") && (e && \"mouseover\" === e.type ? i.attr(\"title\", \"\") : i.removeAttr(\"title\")), o = this._tooltip(i), a = o.tooltip, this._addDescribedBy(i, a.attr(\"id\")), a.find(\".ui-tooltip-content\").html(s), this.liveRegion.children().hide(), h = t(\"<div>\").html(a.find(\".ui-tooltip-content\").html()), h.removeAttr(\"name\").find(\"[name]\").removeAttr(\"name\"), h.removeAttr(\"id\").find(\"[id]\").removeAttr(\"id\"), h.appendTo(this.liveRegion), this.options.track && e && /^mouse/.test(e.type) ? (this._on(this.document, {\n mousemove: n\n }), n(e)) : a.position(t.extend({\n of: i\n }, this.options.position)), a.hide(), this._show(a, this.options.show), this.options.track && this.options.show && this.options.show.delay && (r = this.delayedShow = setInterval(function () {\n a.is(\":visible\") && (n(l.of), clearInterval(r));\n }, t.fx.interval)), this._trigger(\"open\", e, {\n tooltip: a\n });\n }\n },\n _registerCloseHandlers: function _registerCloseHandlers(e, i) {\n var s = {\n keyup: function keyup(e) {\n if (e.keyCode === t.ui.keyCode.ESCAPE) {\n var s = t.Event(e);\n s.currentTarget = i[0], this.close(s, !0);\n }\n }\n };\n i[0] !== this.element[0] && (s.remove = function () {\n this._removeTooltip(this._find(i).tooltip);\n }), e && \"mouseover\" !== e.type || (s.mouseleave = \"close\"), e && \"focusin\" !== e.type || (s.focusout = \"close\"), this._on(!0, i, s);\n },\n close: function close(e) {\n var i,\n s = this,\n n = t(e ? e.currentTarget : this.element),\n o = this._find(n);\n return o ? (i = o.tooltip, o.closing || (clearInterval(this.delayedShow), n.data(\"ui-tooltip-title\") && !n.attr(\"title\") && n.attr(\"title\", n.data(\"ui-tooltip-title\")), this._removeDescribedBy(n), o.hiding = !0, i.stop(!0), this._hide(i, this.options.hide, function () {\n s._removeTooltip(t(this));\n }), n.removeData(\"ui-tooltip-open\"), this._off(n, \"mouseleave focusout keyup\"), n[0] !== this.element[0] && this._off(n, \"remove\"), this._off(this.document, \"mousemove\"), e && \"mouseleave\" === e.type && t.each(this.parents, function (e, i) {\n t(i.element).attr(\"title\", i.title), delete s.parents[e];\n }), o.closing = !0, this._trigger(\"close\", e, {\n tooltip: i\n }), o.hiding || (o.closing = !1)), void 0) : (n.removeData(\"ui-tooltip-open\"), void 0);\n },\n _tooltip: function _tooltip(e) {\n var i = t(\"<div>\").attr(\"role\", \"tooltip\"),\n s = t(\"<div>\").appendTo(i),\n n = i.uniqueId().attr(\"id\");\n return this._addClass(s, \"ui-tooltip-content\"), this._addClass(i, \"ui-tooltip\", \"ui-widget ui-widget-content\"), i.appendTo(this._appendTo(e)), this.tooltips[n] = {\n element: e,\n tooltip: i\n };\n },\n _find: function _find(t) {\n var e = t.data(\"ui-tooltip-id\");\n return e ? this.tooltips[e] : null;\n },\n _removeTooltip: function _removeTooltip(t) {\n t.remove(), delete this.tooltips[t.attr(\"id\")];\n },\n _appendTo: function _appendTo(t) {\n var e = t.closest(\".ui-front, dialog\");\n return e.length || (e = this.document[0].body), e;\n },\n _destroy: function _destroy() {\n var e = this;\n t.each(this.tooltips, function (i, s) {\n var n = t.Event(\"blur\"),\n o = s.element;\n n.target = n.currentTarget = o[0], e.close(n, !0), t(\"#\" + i).remove(), o.data(\"ui-tooltip-title\") && (o.attr(\"title\") || o.attr(\"title\", o.data(\"ui-tooltip-title\")), o.removeData(\"ui-tooltip-title\"));\n }), this.liveRegion.remove();\n }\n }), t.uiBackCompat !== !1 && t.widget(\"ui.tooltip\", t.ui.tooltip, {\n options: {\n tooltipClass: null\n },\n _tooltip: function _tooltip() {\n var t = this._superApply(arguments);\n return this.options.tooltipClass && t.tooltip.addClass(this.options.tooltipClass), t;\n }\n }), t.ui.tooltip;\n});\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/jquery-ui.min.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/jquery.auto-complete.js":
/*!*****************************************************************!*\
!*** ./buyercall/assets/scripts/vendor/jquery.auto-complete.js ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/*\n\tjQuery autoComplete v1.0.7\n Copyright (c) 2014 Simon Steinberger / Pixabay\n GitHub: https://github.com/Pixabay/jQuery-autoComplete\n\tLicense: http://www.opensource.org/licenses/mit-license.php\n*/\n\n(function ($) {\n $.fn.autoComplete = function (options) {\n var o = $.extend({}, $.fn.autoComplete.defaults, options);\n\n // public methods\n if (typeof options == 'string') {\n this.each(function () {\n var that = $(this);\n if (options == 'destroy') {\n $(window).off('resize.autocomplete', that.updateSC);\n that.off('blur.autocomplete focus.autocomplete keydown.autocomplete keyup.autocomplete');\n if (that.data('autocomplete')) that.attr('autocomplete', that.data('autocomplete'));else that.removeAttr('autocomplete');\n $(that.data('sc')).remove();\n that.removeData('sc').removeData('autocomplete');\n }\n });\n return this;\n }\n return this.each(function () {\n var that = $(this);\n // sc = 'suggestions container'\n that.sc = $('<div class=\"autocomplete-suggestions ' + o.menuClass + '\"></div>');\n that.data('sc', that.sc).data('autocomplete', that.attr('autocomplete'));\n that.attr('autocomplete', 'off');\n that.cache = {};\n that.last_val = '';\n that.updateSC = function (resize, next) {\n that.sc.css({\n top: that.offset().top + that.outerHeight(),\n left: that.offset().left,\n width: that.outerWidth()\n });\n if (!resize) {\n that.sc.show();\n if (!that.sc.maxHeight) that.sc.maxHeight = parseInt(that.sc.css('max-height'));\n if (!that.sc.suggestionHeight) that.sc.suggestionHeight = $('.autocomplete-suggestion', that.sc).first().outerHeight();\n if (that.sc.suggestionHeight) if (!next) that.sc.scrollTop(0);else {\n var scrTop = that.sc.scrollTop(),\n selTop = next.offset().top - that.sc.offset().top;\n if (selTop + that.sc.suggestionHeight - that.sc.maxHeight > 0) that.sc.scrollTop(selTop + that.sc.suggestionHeight + scrTop - that.sc.maxHeight);else if (selTop < 0) that.sc.scrollTop(selTop + scrTop);\n }\n }\n };\n $(window).on('resize.autocomplete', that.updateSC);\n that.sc.appendTo('body');\n that.sc.on('mouseleave', '.autocomplete-suggestion', function () {\n $('.autocomplete-suggestion.selected').removeClass('selected');\n });\n that.sc.on('mouseenter', '.autocomplete-suggestion', function () {\n $('.autocomplete-suggestion.selected').removeClass('selected');\n $(this).addClass('selected');\n });\n that.sc.on('mousedown click', '.autocomplete-suggestion', function (e) {\n var item = $(this),\n v = item.data('val');\n if (v || item.hasClass('autocomplete-suggestion')) {\n // else outside click\n that.val(v);\n o.onSelect(e, v, item);\n that.sc.hide();\n }\n return false;\n });\n that.on('blur.autocomplete', function () {\n var over_sb;\n try {\n over_sb = $('.autocomplete-suggestions:hover').length;\n } catch (e) {\n over_sb = 0;\n } // IE7 fix :hover\n if (!over_sb) {\n that.last_val = that.val();\n that.sc.hide();\n setTimeout(function () {\n that.sc.hide();\n }, 350); // hide suggestions on fast input\n } else if (!that.is(':focus')) setTimeout(function () {\n that.focus();\n }, 20);\n });\n if (!o.minChars) that.on('focus.autocomplete', function () {\n that.last_val = '\\n';\n that.trigger('keyup.autocomplete');\n });\n function suggest(data) {\n var val = that.val();\n that.cache[val] = data;\n if (data.length && val.length >= o.minChars) {\n var s = '';\n for (var i = 0; i < data.length; i++) s += o.renderItem(data[i], val);\n that.sc.html(s);\n that.updateSC(0);\n } else that.sc.hide();\n }\n that.on('keydown.autocomplete', function (e) {\n // down (40), up (38)\n if ((e.which == 40 || e.which == 38) && that.sc.html()) {\n var next,\n sel = $('.autocomplete-suggestion.selected', that.sc);\n if (!sel.length) {\n next = e.which == 40 ? $('.autocomplete-suggestion', that.sc).first() : $('.autocomplete-suggestion', that.sc).last();\n that.val(next.addClass('selected').data('val'));\n } else {\n next = e.which == 40 ? sel.next('.autocomplete-suggestion') : sel.prev('.autocomplete-suggestion');\n if (next.length) {\n sel.removeClass('selected');\n that.val(next.addClass('selected').data('val'));\n } else {\n sel.removeClass('selected');\n that.val(that.last_val);\n next = 0;\n }\n }\n that.updateSC(0, next);\n return false;\n }\n // esc\n else if (e.which == 27) that.val(that.last_val).sc.hide();\n // enter or tab\n else if (e.which == 13 || e.which == 9) {\n var sel = $('.autocomplete-suggestion.selected', that.sc);\n if (sel.length && that.sc.is(':visible')) {\n o.onSelect(e, sel.data('val'), sel);\n setTimeout(function () {\n that.sc.hide();\n }, 20);\n }\n }\n });\n that.on('keyup.autocomplete', function (e) {\n if (!~$.inArray(e.which, [13, 27, 35, 36, 37, 38, 39, 40])) {\n var val = that.val();\n if (val.length >= o.minChars) {\n if (val != that.last_val) {\n that.last_val = val;\n clearTimeout(that.timer);\n if (o.cache) {\n if (val in that.cache) {\n suggest(that.cache[val]);\n return;\n }\n // no requests if previous suggestions were empty\n for (var i = 1; i < val.length - o.minChars; i++) {\n var part = val.slice(0, val.length - i);\n if (part in that.cache && !that.cache[part].length) {\n suggest([]);\n return;\n }\n }\n }\n that.timer = setTimeout(function () {\n o.source(val, suggest);\n }, o.delay);\n }\n } else {\n that.last_val = val;\n that.sc.hide();\n }\n }\n });\n });\n };\n $.fn.autoComplete.defaults = {\n source: 0,\n minChars: 3,\n delay: 150,\n cache: 1,\n menuClass: '',\n renderItem: function renderItem(item, search) {\n // escape special characters\n search = search.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n var re = new RegExp(\"(\" + search.split(' ').join('|') + \")\", \"gi\");\n return '<div class=\"autocomplete-suggestion\" data-val=\"' + item + '\">' + item.replace(re, \"<b>$1</b>\") + '</div>';\n },\n onSelect: function onSelect(e, term, item) {}\n };\n})(jQuery);\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/jquery.auto-complete.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/jquery.bootstrap-wizard.js":
/*!********************************************************************!*\
!*** ./buyercall/assets/scripts/vendor/jquery.bootstrap-wizard.js ***!
\********************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/*!\n * jQuery twitter bootstrap wizard plugin\n * Examples and documentation at: http://github.com/VinceG/twitter-bootstrap-wizard\n * version 1.0\n * Requires jQuery v1.3.2 or later\n * Supports Bootstrap 2.2.x, 2.3.x, 3.0\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n * Authors: Vadim Vincent Gabriel (http://vadimg.com), Jason Gill (www.gilluminate.com)\n */\n;\n(function ($) {\n var bootstrapWizardCreate = function bootstrapWizardCreate(element, options) {\n var element = $(element);\n var obj = this;\n\n // selector skips any 'li' elements that do not contain a child with a tab data-toggle\n var baseItemSelector = 'li:has([data-toggle=\"tab\"])';\n\n // Merge options with defaults\n var $settings = $.extend({}, $.fn.bootstrapWizard.defaults, options);\n var $activeTab = null;\n var $navigation = null;\n this.rebindClick = function (selector, fn) {\n selector.unbind('click', fn).bind('click', fn);\n };\n this.fixNavigationButtons = function () {\n // Get the current active tab\n if (!$activeTab.length) {\n // Select first one\n $navigation.find('a:first').tab('show');\n $activeTab = $navigation.find(baseItemSelector + ':first');\n }\n\n // See if we're currently in the first/last then disable the previous and last buttons\n $($settings.previousSelector, element).toggleClass('disabled', obj.firstIndex() >= obj.currentIndex());\n $($settings.nextSelector, element).toggleClass('disabled', obj.currentIndex() >= obj.navigationLength());\n\n // We are unbinding and rebinding to ensure single firing and no double-click errors\n obj.rebindClick($($settings.nextSelector, element), obj.next);\n obj.rebindClick($($settings.previousSelector, element), obj.previous);\n obj.rebindClick($($settings.lastSelector, element), obj.last);\n obj.rebindClick($($settings.firstSelector, element), obj.first);\n if ($settings.onTabShow && typeof $settings.onTabShow === 'function' && $settings.onTabShow($activeTab, $navigation, obj.currentIndex()) === false) {\n return false;\n }\n };\n this.next = function (e) {\n // If we clicked the last then dont activate this\n if (element.hasClass('last')) {\n return false;\n }\n if ($settings.onNext && typeof $settings.onNext === 'function' && $settings.onNext($activeTab, $navigation, obj.nextIndex()) === false) {\n return false;\n }\n\n // Did we click the last button\n $index = obj.nextIndex();\n if ($index > obj.navigationLength()) {} else {\n $navigation.find(baseItemSelector + ':eq(' + $index + ') a').tab('show');\n }\n };\n this.previous = function (e) {\n // If we clicked the first then dont activate this\n if (element.hasClass('first')) {\n return false;\n }\n if ($settings.onPrevious && typeof $settings.onPrevious === 'function' && $settings.onPrevious($activeTab, $navigation, obj.previousIndex()) === false) {\n return false;\n }\n $index = obj.previousIndex();\n if ($index < 0) {} else {\n $navigation.find(baseItemSelector + ':eq(' + $index + ') a').tab('show');\n }\n };\n this.first = function (e) {\n if ($settings.onFirst && typeof $settings.onFirst === 'function' && $settings.onFirst($activeTab, $navigation, obj.firstIndex()) === false) {\n return false;\n }\n\n // If the element is disabled then we won't do anything\n if (element.hasClass('disabled')) {\n return false;\n }\n $navigation.find(baseItemSelector + ':eq(0) a').tab('show');\n };\n this.last = function (e) {\n if ($settings.onLast && typeof $settings.onLast === 'function' && $settings.onLast($activeTab, $navigation, obj.lastIndex()) === false) {\n return false;\n }\n\n // If the element is disabled then we won't do anything\n if (element.hasClass('disabled')) {\n return false;\n }\n $navigation.find(baseItemSelector + ':eq(' + obj.navigationLength() + ') a').tab('show');\n };\n this.currentIndex = function () {\n return $navigation.find(baseItemSelector).index($activeTab);\n };\n this.firstIndex = function () {\n return 0;\n };\n this.lastIndex = function () {\n return obj.navigationLength();\n };\n this.getIndex = function (e) {\n return $navigation.find(baseItemSelector).index(e);\n };\n this.nextIndex = function () {\n return $navigation.find(baseItemSelector).index($activeTab) + 1;\n };\n this.previousIndex = function () {\n return $navigation.find(baseItemSelector).index($activeTab) - 1;\n };\n this.navigationLength = function () {\n return $navigation.find(baseItemSelector).length - 1;\n };\n this.activeTab = function () {\n return $activeTab;\n };\n this.nextTab = function () {\n return $navigation.find(baseItemSelector + ':eq(' + (obj.currentIndex() + 1) + ')').length ? $navigation.find(baseItemSelector + ':eq(' + (obj.currentIndex() + 1) + ')') : null;\n };\n this.previousTab = function () {\n if (obj.currentIndex() <= 0) {\n return null;\n }\n return $navigation.find(baseItemSelector + ':eq(' + parseInt(obj.currentIndex() - 1) + ')');\n };\n this.show = function (index) {\n if (isNaN(index)) {\n return element.find(baseItemSelector + ' a[href=#' + index + ']').tab('show');\n } else {\n return element.find(baseItemSelector + ':eq(' + index + ') a').tab('show');\n }\n };\n this.disable = function (index) {\n $navigation.find(baseItemSelector + ':eq(' + index + ')').addClass('disabled');\n };\n this.enable = function (index) {\n $navigation.find(baseItemSelector + ':eq(' + index + ')').removeClass('disabled');\n };\n this.hide = function (index) {\n $navigation.find(baseItemSelector + ':eq(' + index + ')').hide();\n };\n this.display = function (index) {\n $navigation.find(baseItemSelector + ':eq(' + index + ')').show();\n };\n this.remove = function (args) {\n var $index = args[0];\n var $removeTabPane = typeof args[1] != 'undefined' ? args[1] : false;\n var $item = $navigation.find(baseItemSelector + ':eq(' + $index + ')');\n\n // Remove the tab pane first if needed\n if ($removeTabPane) {\n var $href = $item.find('a').attr('href');\n $($href).remove();\n }\n\n // Remove menu item\n $item.remove();\n };\n var innerTabClick = function innerTabClick(e) {\n // Get the index of the clicked tab\n var clickedIndex = $navigation.find(baseItemSelector).index($(e.currentTarget).parent(baseItemSelector));\n if ($settings.onTabClick && typeof $settings.onTabClick === 'function' && $settings.onTabClick($activeTab, $navigation, obj.currentIndex(), clickedIndex) === false) {\n return false;\n }\n };\n var innerTabShown = function innerTabShown(e) {\n // use shown instead of show to help prevent double firing\n $element = $(e.target).parent();\n var nextTab = $navigation.find(baseItemSelector).index($element);\n\n // If it's disabled then do not change\n if ($element.hasClass('disabled')) {\n return false;\n }\n if ($settings.onTabChange && typeof $settings.onTabChange === 'function' && $settings.onTabChange($activeTab, $navigation, obj.currentIndex(), nextTab) === false) {\n return false;\n }\n $activeTab = $element; // activated tab\n obj.fixNavigationButtons();\n };\n this.resetWizard = function () {\n // remove the existing handlers\n $('a[data-toggle=\"tab\"]', $navigation).off('click', innerTabClick);\n $('a[data-toggle=\"tab\"]', $navigation).off('shown shown.bs.tab', innerTabShown);\n\n // reset elements based on current state of the DOM\n $navigation = element.find('ul:first', element);\n $activeTab = $navigation.find(baseItemSelector + '.active', element);\n\n // re-add handlers\n $('a[data-toggle=\"tab\"]', $navigation).on('click', innerTabClick);\n $('a[data-toggle=\"tab\"]', $navigation).on('shown shown.bs.tab', innerTabShown);\n obj.fixNavigationButtons();\n };\n $navigation = element.find('ul:first', element);\n $activeTab = $navigation.find(baseItemSelector + '.active', element);\n if (!$navigation.hasClass($settings.tabClass)) {\n $navigation.addClass($settings.tabClass);\n }\n\n // Load onInit\n if ($settings.onInit && typeof $settings.onInit === 'function') {\n $settings.onInit($activeTab, $navigation, 0);\n }\n\n // Load onShow\n if ($settings.onShow && typeof $settings.onShow === 'function') {\n $settings.onShow($activeTab, $navigation, obj.nextIndex());\n }\n $('a[data-toggle=\"tab\"]', $navigation).on('click', innerTabClick);\n\n // attach to both shown and shown.bs.tab to support Bootstrap versions 2.3.2 and 3.0.0\n $('a[data-toggle=\"tab\"]', $navigation).on('shown shown.bs.tab', innerTabShown);\n };\n $.fn.bootstrapWizard = function (options) {\n //expose methods\n if (typeof options == 'string') {\n var args = Array.prototype.slice.call(arguments, 1);\n if (args.length === 1) {\n args.toString();\n }\n return this.data('bootstrapWizard')[options](args);\n }\n return this.each(function (index) {\n var element = $(this);\n // Return early if this element already has a plugin instance\n if (element.data('bootstrapWizard')) return;\n // pass options to plugin constructor\n var wizard = new bootstrapWizardCreate(element, options);\n // Store plugin object in this element's data\n element.data('bootstrapWizard', wizard);\n // and then trigger initial change\n wizard.fixNavigationButtons();\n });\n };\n\n // expose options\n $.fn.bootstrapWizard.defaults = {\n tabClass: 'nav nav-pills',\n nextSelector: '.wizard li.next',\n previousSelector: '.wizard li.previous',\n firstSelector: '.wizard li.first',\n lastSelector: '.wizard li.last',\n onShow: null,\n onInit: null,\n onNext: null,\n onPrevious: null,\n onLast: null,\n onFirst: null,\n onTabChange: null,\n onTabClick: null,\n onTabShow: null\n };\n})(jQuery);\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/jquery.bootstrap-wizard.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/jquery.select-bootstrap.js":
/*!********************************************************************!*\
!*** ./buyercall/assets/scripts/vendor/jquery.select-bootstrap.js ***!
\********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\n * Bootstrap-select v1.11.2 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n/*\n\n Creative Tim Modifications\n Line: 384-385 - we changed glyphicons with material-icons.\n Line: 599 - we put tickIcon inside of span tag.\n\n*/\n\n(function (root, factory) {\n if (true) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ \"jquery\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (a0) {\n return factory(a0);\n }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n})(this, function (jQuery) {\n (function ($) {\n 'use strict';\n\n //<editor-fold desc=\"Shims\">\n if (!String.prototype.includes) {\n (function () {\n 'use strict';\n\n // needed to support `apply`/`call` with `undefined`/`null`\n var toString = {}.toString;\n var defineProperty = function () {\n // IE 8 only supports `Object.defineProperty` on DOM elements\n try {\n var object = {};\n var $defineProperty = Object.defineProperty;\n var result = $defineProperty(object, object, object) && $defineProperty;\n } catch (error) {}\n return result;\n }();\n var indexOf = ''.indexOf;\n var includes = function includes(search) {\n if (this == null) {\n throw new TypeError();\n }\n var string = String(this);\n if (search && toString.call(search) == '[object RegExp]') {\n throw new TypeError();\n }\n var stringLength = string.length;\n var searchString = String(search);\n var searchLength = searchString.length;\n var position = arguments.length > 1 ? arguments[1] : undefined;\n // `ToInteger`\n var pos = position ? Number(position) : 0;\n if (pos != pos) {\n // better `isNaN`\n pos = 0;\n }\n var start = Math.min(Math.max(pos, 0), stringLength);\n // Avoid the `indexOf` call if no match is possible\n if (searchLength + start > stringLength) {\n return false;\n }\n return indexOf.call(string, searchString, pos) != -1;\n };\n if (defineProperty) {\n defineProperty(String.prototype, 'includes', {\n 'value': includes,\n 'configurable': true,\n 'writable': true\n });\n } else {\n String.prototype.includes = includes;\n }\n })();\n }\n if (!String.prototype.startsWith) {\n (function () {\n 'use strict';\n\n // needed to support `apply`/`call` with `undefined`/`null`\n var defineProperty = function () {\n // IE 8 only supports `Object.defineProperty` on DOM elements\n try {\n var object = {};\n var $defineProperty = Object.defineProperty;\n var result = $defineProperty(object, object, object) && $defineProperty;\n } catch (error) {}\n return result;\n }();\n var toString = {}.toString;\n var startsWith = function startsWith(search) {\n if (this == null) {\n throw new TypeError();\n }\n var string = String(this);\n if (search && toString.call(search) == '[object RegExp]') {\n throw new TypeError();\n }\n var stringLength = string.length;\n var searchString = String(search);\n var searchLength = searchString.length;\n var position = arguments.length > 1 ? arguments[1] : undefined;\n // `ToInteger`\n var pos = position ? Number(position) : 0;\n if (pos != pos) {\n // better `isNaN`\n pos = 0;\n }\n var start = Math.min(Math.max(pos, 0), stringLength);\n // Avoid the `indexOf` call if no match is possible\n if (searchLength + start > stringLength) {\n return false;\n }\n var index = -1;\n while (++index < searchLength) {\n if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) {\n return false;\n }\n }\n return true;\n };\n if (defineProperty) {\n defineProperty(String.prototype, 'startsWith', {\n 'value': startsWith,\n 'configurable': true,\n 'writable': true\n });\n } else {\n String.prototype.startsWith = startsWith;\n }\n })();\n }\n if (!Object.keys) {\n Object.keys = function (o,\n // object\n k,\n // key\n r // result array\n ) {\n // initialize object and result\n r = [];\n // iterate over object keys\n for (k in o)\n // fill result array with non-prototypical keys\n r.hasOwnProperty.call(o, k) && r.push(k);\n // return result\n return r;\n };\n }\n\n // set data-selected on select element if the value has been programmatically selected\n // prior to initialization of bootstrap-select\n // * consider removing or replacing an alternative method *\n var valHooks = {\n useDefault: false,\n _set: $.valHooks.select.set\n };\n $.valHooks.select.set = function (elem, value) {\n if (value && !valHooks.useDefault) $(elem).data('selected', true);\n return valHooks._set.apply(this, arguments);\n };\n var changed_arguments = null;\n $.fn.triggerNative = function (eventName) {\n var el = this[0],\n event;\n if (el.dispatchEvent) {\n // for modern browsers & IE9+\n if (typeof Event === 'function') {\n // For modern browsers\n event = new Event(eventName, {\n bubbles: true\n });\n } else {\n // For IE since it doesn't support Event constructor\n event = document.createEvent('Event');\n event.initEvent(eventName, true, false);\n }\n el.dispatchEvent(event);\n } else if (el.fireEvent) {\n // for IE8\n event = document.createEventObject();\n event.eventType = eventName;\n el.fireEvent('on' + eventName, event);\n } else {\n // fall back to jQuery.trigger\n this.trigger(eventName);\n }\n };\n //</editor-fold>\n\n // Case insensitive contains search\n $.expr.pseudos.icontains = function (obj, index, meta) {\n var $obj = $(obj);\n var haystack = ($obj.data('tokens') || $obj.text()).toString().toUpperCase();\n return haystack.includes(meta[3].toUpperCase());\n };\n\n // Case insensitive begins search\n $.expr.pseudos.ibegins = function (obj, index, meta) {\n var $obj = $(obj);\n var haystack = ($obj.data('tokens') || $obj.text()).toString().toUpperCase();\n return haystack.startsWith(meta[3].toUpperCase());\n };\n\n // Case and accent insensitive contains search\n $.expr.pseudos.aicontains = function (obj, index, meta) {\n var $obj = $(obj);\n var haystack = ($obj.data('tokens') || $obj.data('normalizedText') || $obj.text()).toString().toUpperCase();\n return haystack.includes(meta[3].toUpperCase());\n };\n\n // Case and accent insensitive begins search\n $.expr.pseudos.aibegins = function (obj, index, meta) {\n var $obj = $(obj);\n var haystack = ($obj.data('tokens') || $obj.data('normalizedText') || $obj.text()).toString().toUpperCase();\n return haystack.startsWith(meta[3].toUpperCase());\n };\n\n /**\n * Remove all diatrics from the given text.\n * @access private\n * @param {String} text\n * @returns {String}\n */\n function normalizeToBase(text) {\n var rExps = [{\n re: /[\\xC0-\\xC6]/g,\n ch: \"A\"\n }, {\n re: /[\\xE0-\\xE6]/g,\n ch: \"a\"\n }, {\n re: /[\\xC8-\\xCB]/g,\n ch: \"E\"\n }, {\n re: /[\\xE8-\\xEB]/g,\n ch: \"e\"\n }, {\n re: /[\\xCC-\\xCF]/g,\n ch: \"I\"\n }, {\n re: /[\\xEC-\\xEF]/g,\n ch: \"i\"\n }, {\n re: /[\\xD2-\\xD6]/g,\n ch: \"O\"\n }, {\n re: /[\\xF2-\\xF6]/g,\n ch: \"o\"\n }, {\n re: /[\\xD9-\\xDC]/g,\n ch: \"U\"\n }, {\n re: /[\\xF9-\\xFC]/g,\n ch: \"u\"\n }, {\n re: /[\\xC7-\\xE7]/g,\n ch: \"c\"\n }, {\n re: /[\\xD1]/g,\n ch: \"N\"\n }, {\n re: /[\\xF1]/g,\n ch: \"n\"\n }];\n $.each(rExps, function () {\n text = text.replace(this.re, this.ch);\n });\n return text;\n }\n\n // List of HTML entities for escaping.\n var escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n };\n var unescapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\",\n '`': '`'\n };\n\n // Functions for escaping and unescaping strings to/from HTML interpolation.\n var createEscaper = function createEscaper(map) {\n var escaper = function escaper(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + Object.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function (string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n };\n var htmlEscape = createEscaper(escapeMap);\n var htmlUnescape = createEscaper(unescapeMap);\n var Selectpicker = function Selectpicker(element, options, e) {\n // bootstrap-select has been initialized - revert valHooks.select.set back to its original function\n if (!valHooks.useDefault) {\n $.valHooks.select.set = valHooks._set;\n valHooks.useDefault = true;\n }\n if (e) {\n e.stopPropagation();\n e.preventDefault();\n }\n this.$element = $(element);\n this.$newElement = null;\n this.$button = null;\n this.$menu = null;\n this.$lis = null;\n this.options = options;\n\n // If we have no title yet, try to pull it from the html title attribute (jQuery doesnt' pick it up as it's not a\n // data-attribute)\n if (this.options.title === null) {\n this.options.title = this.$element.attr('title');\n }\n\n // Format window padding\n var winPad = this.options.windowPadding;\n if (typeof winPad === 'number') {\n this.options.windowPadding = [winPad, winPad, winPad, winPad];\n }\n\n //Expose public methods\n this.val = Selectpicker.prototype.val;\n this.render = Selectpicker.prototype.render;\n this.refresh = Selectpicker.prototype.refresh;\n this.setStyle = Selectpicker.prototype.setStyle;\n this.selectAll = Selectpicker.prototype.selectAll;\n this.deselectAll = Selectpicker.prototype.deselectAll;\n this.destroy = Selectpicker.prototype.destroy;\n this.remove = Selectpicker.prototype.remove;\n this.show = Selectpicker.prototype.show;\n this.hide = Selectpicker.prototype.hide;\n this.init();\n };\n Selectpicker.VERSION = '1.11.2';\n\n // part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both.\n Selectpicker.DEFAULTS = {\n noneSelectedText: 'Nothing selected',\n noneResultsText: 'No results matched {0}',\n countSelectedText: function countSelectedText(numSelected, numTotal) {\n return numSelected == 1 ? \"{0} item selected\" : \"{0} items selected\";\n },\n maxOptionsText: function maxOptionsText(numAll, numGroup) {\n return [numAll == 1 ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)', numGroup == 1 ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)'];\n },\n selectAllText: 'Select All',\n deselectAllText: 'Deselect All',\n doneButton: false,\n doneButtonText: 'Close',\n multipleSeparator: ', ',\n styleBase: 'btn',\n style: 'btn-default',\n size: 'auto',\n title: null,\n selectedTextFormat: 'values',\n width: false,\n container: false,\n hideDisabled: false,\n showSubtext: false,\n showIcon: true,\n showContent: true,\n dropupAuto: true,\n header: false,\n liveSearch: false,\n liveSearchPlaceholder: null,\n liveSearchNormalize: false,\n liveSearchStyle: 'contains',\n actionsBox: false,\n iconBase: 'material-icons',\n tickIcon: 'done',\n showTick: false,\n template: {\n caret: '<span class=\"caret\"></span>'\n },\n maxOptions: false,\n mobile: false,\n selectOnTab: false,\n dropdownAlignRight: false,\n windowPadding: 0\n };\n Selectpicker.prototype = {\n constructor: Selectpicker,\n init: function init() {\n var that = this,\n id = this.$element.attr('id');\n this.$element.addClass('bs-select-hidden');\n\n // store originalIndex (key) and newIndex (value) in this.liObj for fast accessibility\n // allows us to do this.$lis.eq(that.liObj[index]) instead of this.$lis.filter('[data-original-index=\"' + index + '\"]')\n this.liObj = {};\n this.multiple = this.$element.prop('multiple');\n this.autofocus = this.$element.prop('autofocus');\n this.$newElement = this.createView();\n this.$element.after(this.$newElement).appendTo(this.$newElement);\n this.$button = this.$newElement.children('button');\n this.$menu = this.$newElement.children('.dropdown-menu');\n this.$menuInner = this.$menu.children('.inner');\n this.$searchbox = this.$menu.find('input');\n this.$element.removeClass('bs-select-hidden');\n if (this.options.dropdownAlignRight === true) this.$menu.addClass('dropdown-menu-right');\n if (typeof id !== 'undefined') {\n this.$button.attr('data-id', id);\n $('label[for=\"' + id + '\"]').click(function (e) {\n e.preventDefault();\n that.$button.focus();\n });\n }\n this.checkDisabled();\n this.clickListener();\n if (this.options.liveSearch) this.liveSearchListener();\n this.render();\n this.setStyle();\n this.setWidth();\n if (this.options.container) this.selectPosition();\n this.$menu.data('this', this);\n this.$newElement.data('this', this);\n if (this.options.mobile) this.mobile();\n this.$newElement.on({\n 'hide.bs.dropdown': function hideBsDropdown(e) {\n that.$menuInner.attr('aria-expanded', false);\n that.$element.trigger('hide.bs.select', e);\n },\n 'hidden.bs.dropdown': function hiddenBsDropdown(e) {\n that.$element.trigger('hidden.bs.select', e);\n },\n 'show.bs.dropdown': function showBsDropdown(e) {\n that.$menuInner.attr('aria-expanded', true);\n that.$element.trigger('show.bs.select', e);\n },\n 'shown.bs.dropdown': function shownBsDropdown(e) {\n that.$element.trigger('shown.bs.select', e);\n }\n });\n if (that.$element[0].hasAttribute('required')) {\n this.$element.on('invalid', function () {\n that.$button.addClass('bs-invalid').focus();\n that.$element.on({\n 'focus.bs.select': function focusBsSelect() {\n that.$button.focus();\n that.$element.off('focus.bs.select');\n },\n 'shown.bs.select': function shownBsSelect() {\n that.$element.val(that.$element.val()) // set the value to hide the validation message in Chrome when menu is opened\n .off('shown.bs.select');\n },\n 'rendered.bs.select': function renderedBsSelect() {\n // if select is no longer invalid, remove the bs-invalid class\n if (this.validity.valid) that.$button.removeClass('bs-invalid');\n that.$element.off('rendered.bs.select');\n }\n });\n });\n }\n setTimeout(function () {\n that.$element.trigger('loaded.bs.select');\n });\n },\n createDropdown: function createDropdown() {\n // Options\n // If we are multiple or showTick option is set, then add the show-tick class\n var showTick = this.multiple || this.options.showTick ? ' show-tick' : '',\n inputGroup = this.$element.parent().hasClass('input-group') ? ' input-group-btn' : '',\n autofocus = this.autofocus ? ' autofocus' : '';\n // Elements\n var header = this.options.header ? '<div class=\"popover-title\"><button type=\"button\" class=\"close\" aria-hidden=\"true\">×</button>' + this.options.header + '</div>' : '';\n var searchbox = this.options.liveSearch ? '<div class=\"bs-searchbox\">' + '<input type=\"text\" class=\"form-control\" autocomplete=\"off\"' + (null === this.options.liveSearchPlaceholder ? '' : ' placeholder=\"' + htmlEscape(this.options.liveSearchPlaceholder) + '\"') + ' role=\"textbox\" aria-label=\"Search\">' + '</div>' : '';\n var actionsbox = this.multiple && this.options.actionsBox ? '<div class=\"bs-actionsbox\">' + '<div class=\"btn-group btn-group-sm btn-block\">' + '<button type=\"button\" class=\"actions-btn bs-select-all btn btn-default\">' + this.options.selectAllText + '</button>' + '<button type=\"button\" class=\"actions-btn bs-deselect-all btn btn-default\">' + this.options.deselectAllText + '</button>' + '</div>' + '</div>' : '';\n var donebutton = this.multiple && this.options.doneButton ? '<div class=\"bs-donebutton\">' + '<div class=\"btn-group btn-block\">' + '<button type=\"button\" class=\"btn btn-sm btn-default\">' + this.options.doneButtonText + '</button>' + '</div>' + '</div>' : '';\n var drop = '<div class=\"btn-group bootstrap-select' + showTick + inputGroup + '\">' + '<button type=\"button\" class=\"' + this.options.styleBase + ' dropdown-toggle\" data-toggle=\"dropdown\"' + autofocus + ' role=\"button\">' + '<span class=\"filter-option pull-left\"></span> ' + '<span class=\"bs-caret\">' + this.options.template.caret + '</span>' + '</button>' + '<div class=\"dropdown-menu open\" role=\"combobox\">' + header + searchbox + actionsbox + '<ul class=\"dropdown-menu inner\" role=\"listbox\" aria-expanded=\"false\">' + '</ul>' + donebutton + '</div>' + '</div>';\n return $(drop);\n },\n createView: function createView() {\n var $drop = this.createDropdown(),\n li = this.createLi();\n $drop.find('ul')[0].innerHTML = li;\n return $drop;\n },\n reloadLi: function reloadLi() {\n // rebuild\n var li = this.createLi();\n this.$menuInner[0].innerHTML = li;\n },\n createLi: function createLi() {\n var that = this,\n _li = [],\n optID = 0,\n titleOption = document.createElement('option'),\n liIndex = -1; // increment liIndex whenever a new <li> element is created to ensure liObj is correct\n\n // Helper functions\n /**\n * @param content\n * @param [index]\n * @param [classes]\n * @param [optgroup]\n * @returns {string}\n */\n var generateLI = function generateLI(content, index, classes, optgroup) {\n return '<li' + (typeof classes !== 'undefined' & '' !== classes ? ' class=\"' + classes + '\"' : '') + (typeof index !== 'undefined' & null !== index ? ' data-original-index=\"' + index + '\"' : '') + (typeof optgroup !== 'undefined' & null !== optgroup ? 'data-optgroup=\"' + optgroup + '\"' : '') + '>' + content + '</li>';\n };\n\n /**\n * @param text\n * @param [classes]\n * @param [inline]\n * @param [tokens]\n * @returns {string}\n */\n var generateA = function generateA(text, classes, inline, tokens) {\n return '<a tabindex=\"0\"' + (typeof classes !== 'undefined' ? ' class=\"' + classes + '\"' : '') + (inline ? ' style=\"' + inline + '\"' : '') + (that.options.liveSearchNormalize ? ' data-normalized-text=\"' + normalizeToBase(htmlEscape($(text).html())) + '\"' : '') + (typeof tokens !== 'undefined' || tokens !== null ? ' data-tokens=\"' + tokens + '\"' : '') + ' role=\"option\">' + text + '<span class=\"' + that.options.iconBase + ' check-mark\"> ' + that.options.tickIcon + ' </span>' + '</a>';\n };\n if (this.options.title && !this.multiple) {\n // this option doesn't create a new <li> element, but does add a new option, so liIndex is decreased\n // since liObj is recalculated on every refresh, liIndex needs to be decreased even if the titleOption is already appended\n liIndex--;\n if (!this.$element.find('.bs-title-option').length) {\n // Use native JS to prepend option (faster)\n var element = this.$element[0];\n titleOption.className = 'bs-title-option';\n titleOption.innerHTML = this.options.title;\n titleOption.value = '';\n element.insertBefore(titleOption, element.firstChild);\n // Check if selected or data-selected attribute is already set on an option. If not, select the titleOption option.\n // the selected item may have been changed by user or programmatically before the bootstrap select plugin runs,\n // if so, the select will have the data-selected attribute\n var $opt = $(element.options[element.selectedIndex]);\n if ($opt.attr('selected') === undefined && this.$element.data('selected') === undefined) {\n titleOption.selected = true;\n }\n }\n }\n this.$element.find('option').each(function (index) {\n var $this = $(this);\n liIndex++;\n if ($this.hasClass('bs-title-option')) return;\n\n // Get the class and text for the option\n var optionClass = this.className || '',\n inline = this.style.cssText,\n text = $this.data('content') ? $this.data('content') : $this.html(),\n tokens = $this.data('tokens') ? $this.data('tokens') : null,\n subtext = typeof $this.data('subtext') !== 'undefined' ? '<small class=\"text-muted\">' + $this.data('subtext') + '</small>' : '',\n icon = typeof $this.data('icon') !== 'undefined' ? '<span class=\"' + that.options.iconBase + ' ' + $this.data('icon') + '\"></span> ' : '',\n $parent = $this.parent(),\n isOptgroup = $parent[0].tagName === 'OPTGROUP',\n isOptgroupDisabled = isOptgroup && $parent[0].disabled,\n isDisabled = this.disabled || isOptgroupDisabled;\n if (icon !== '' && isDisabled) {\n icon = '<span>' + icon + '</span>';\n }\n if (that.options.hideDisabled && (isDisabled && !isOptgroup || isOptgroupDisabled)) {\n liIndex--;\n return;\n }\n if (!$this.data('content')) {\n // Prepend any icon and append any subtext to the main text.\n text = icon + '<span class=\"text\">' + text + subtext + '</span>';\n }\n if (isOptgroup && $this.data('divider') !== true) {\n if (that.options.hideDisabled && isDisabled) {\n if ($parent.data('allOptionsDisabled') === undefined) {\n var $options = $parent.children();\n $parent.data('allOptionsDisabled', $options.filter(':disabled').length === $options.length);\n }\n if ($parent.data('allOptionsDisabled')) {\n liIndex--;\n return;\n }\n }\n var optGroupClass = ' ' + $parent[0].className || false;\n if ($this.index() === 0) {\n // Is it the first option of the optgroup?\n optID += 1;\n\n // Get the opt group label\n var label = $parent[0].label,\n labelSubtext = typeof $parent.data('subtext') !== 'undefined' ? '<small class=\"text-muted\">' + $parent.data('subtext') + '</small>' : '',\n labelIcon = $parent.data('icon') ? '<span class=\"' + that.options.iconBase + ' ' + $parent.data('icon') + '\"></span> ' : '';\n label = labelIcon + '<span class=\"text\">' + htmlEscape(label) + labelSubtext + '</span>';\n if (index !== 0 && _li.length > 0) {\n // Is it NOT the first option of the select && are there elements in the dropdown?\n liIndex++;\n _li.push(generateLI('', null, 'divider', optID + 'div'));\n }\n liIndex++;\n _li.push(generateLI(label, null, 'dropdown-header' + optGroupClass, optID));\n }\n if (that.options.hideDisabled && isDisabled) {\n liIndex--;\n return;\n }\n _li.push(generateLI(generateA(text, 'opt ' + optionClass + optGroupClass, inline, tokens), index, '', optID));\n } else if ($this.data('divider') === true) {\n _li.push(generateLI('', index, 'divider'));\n } else if ($this.data('hidden') === true) {\n _li.push(generateLI(generateA(text, optionClass, inline, tokens), index, 'hidden is-hidden'));\n } else {\n var showDivider = this.previousElementSibling && this.previousElementSibling.tagName === 'OPTGROUP';\n\n // if previous element is not an optgroup and hideDisabled is true\n if (!showDivider && that.options.hideDisabled) {\n // get previous elements\n var $prev = $(this).prevAll();\n for (var i = 0; i < $prev.length; i++) {\n // find the first element in the previous elements that is an optgroup\n if ($prev[i].tagName === 'OPTGROUP') {\n var optGroupDistance = 0;\n\n // loop through the options in between the current option and the optgroup\n // and check if they are hidden or disabled\n for (var d = 0; d < i; d++) {\n var prevOption = $prev[d];\n if (prevOption.disabled || $(prevOption).data('hidden') === true) optGroupDistance++;\n }\n\n // if all of the options between the current option and the optgroup are hidden or disabled, show the divider\n if (optGroupDistance === i) showDivider = true;\n break;\n }\n }\n }\n if (showDivider) {\n liIndex++;\n _li.push(generateLI('', null, 'divider', optID + 'div'));\n }\n _li.push(generateLI(generateA(text, optionClass, inline, tokens), index));\n }\n that.liObj[index] = liIndex;\n });\n\n //If we are not multiple, we don't have a selected item, and we don't have a title, select the first element so something is set in the button\n if (!this.multiple && this.$element.find('option:selected').length === 0 && !this.options.title) {\n this.$element.find('option').eq(0).prop('selected', true).attr('selected', 'selected');\n }\n return _li.join('');\n },\n findLis: function findLis() {\n if (this.$lis == null) this.$lis = this.$menu.find('li');\n return this.$lis;\n },\n /**\n * @param [updateLi] defaults to true\n */\n render: function render(updateLi) {\n var that = this,\n notDisabled;\n\n //Update the LI to match the SELECT\n if (updateLi !== false) {\n this.$element.find('option').each(function (index) {\n var $lis = that.findLis().eq(that.liObj[index]);\n that.setDisabled(index, this.disabled || this.parentNode.tagName === 'OPTGROUP' && this.parentNode.disabled, $lis);\n that.setSelected(index, this.selected, $lis);\n });\n }\n this.togglePlaceholder();\n this.tabIndex();\n var selectedItems = this.$element.find('option').map(function () {\n if (this.selected) {\n if (that.options.hideDisabled && (this.disabled || this.parentNode.tagName === 'OPTGROUP' && this.parentNode.disabled)) return;\n var $this = $(this),\n icon = $this.data('icon') && that.options.showIcon ? '<i class=\"' + that.options.iconBase + ' ' + $this.data('icon') + '\"></i> ' : '',\n subtext;\n if (that.options.showSubtext && $this.data('subtext') && !that.multiple) {\n subtext = ' <small class=\"text-muted\">' + $this.data('subtext') + '</small>';\n } else {\n subtext = '';\n }\n if (typeof $this.attr('title') !== 'undefined') {\n return $this.attr('title');\n } else if ($this.data('content') && that.options.showContent) {\n return $this.data('content').toString();\n } else {\n return icon + $this.html() + subtext;\n }\n }\n }).toArray();\n\n //Fixes issue in IE10 occurring when no default option is selected and at least one option is disabled\n //Convert all the values into a comma delimited string\n var title = !this.multiple ? selectedItems[0] : selectedItems.join(this.options.multipleSeparator);\n\n //If this is multi select, and the selectText type is count, the show 1 of 2 selected etc..\n if (this.multiple && this.options.selectedTextFormat.indexOf('count') > -1) {\n var max = this.options.selectedTextFormat.split('>');\n if (max.length > 1 && selectedItems.length > max[1] || max.length == 1 && selectedItems.length >= 2) {\n notDisabled = this.options.hideDisabled ? ', [disabled]' : '';\n var totalCount = this.$element.find('option').not('[data-divider=\"true\"], [data-hidden=\"true\"]' + notDisabled).length,\n tr8nText = typeof this.options.countSelectedText === 'function' ? this.options.countSelectedText(selectedItems.length, totalCount) : this.options.countSelectedText;\n title = tr8nText.replace('{0}', selectedItems.length.toString()).replace('{1}', totalCount.toString());\n }\n }\n if (this.options.title == undefined) {\n this.options.title = this.$element.attr('title');\n }\n if (this.options.selectedTextFormat == 'static') {\n title = this.options.title;\n }\n\n //If we dont have a title, then use the default, or if nothing is set at all, use the not selected text\n if (!title) {\n title = typeof this.options.title !== 'undefined' ? this.options.title : this.options.noneSelectedText;\n }\n\n //strip all HTML tags and trim the result, then unescape any escaped tags\n this.$button.attr('title', htmlUnescape($.trim(title.replace(/<[^>]*>?/g, ''))));\n this.$button.children('.filter-option').html(title);\n this.$element.trigger('rendered.bs.select');\n },\n /**\n * @param [style]\n * @param [status]\n */\n setStyle: function setStyle(style, status) {\n if (this.$element.attr('class')) {\n this.$newElement.addClass(this.$element.attr('class').replace(/selectpicker|mobile-device|bs-select-hidden|validate\\[.*\\]/gi, ''));\n }\n var buttonClass = style ? style : this.options.style;\n if (status == 'add') {\n this.$button.addClass(buttonClass);\n } else if (status == 'remove') {\n this.$button.removeClass(buttonClass);\n } else {\n this.$button.removeClass(this.options.style);\n this.$button.addClass(buttonClass);\n }\n },\n liHeight: function liHeight(refresh) {\n if (!refresh && (this.options.size === false || this.sizeInfo)) return;\n var newElement = document.createElement('div'),\n menu = document.createElement('div'),\n menuInner = document.createElement('ul'),\n divider = document.createElement('li'),\n li = document.createElement('li'),\n a = document.createElement('a'),\n text = document.createElement('span'),\n header = this.options.header && this.$menu.find('.popover-title').length > 0 ? this.$menu.find('.popover-title')[0].cloneNode(true) : null,\n search = this.options.liveSearch ? document.createElement('div') : null,\n actions = this.options.actionsBox && this.multiple && this.$menu.find('.bs-actionsbox').length > 0 ? this.$menu.find('.bs-actionsbox')[0].cloneNode(true) : null,\n doneButton = this.options.doneButton && this.multiple && this.$menu.find('.bs-donebutton').length > 0 ? this.$menu.find('.bs-donebutton')[0].cloneNode(true) : null;\n text.className = 'text';\n newElement.className = this.$menu[0].parentNode.className + ' open';\n menu.className = 'dropdown-menu open';\n menuInner.className = 'dropdown-menu inner';\n divider.className = 'divider';\n text.appendChild(document.createTextNode('Inner text'));\n a.appendChild(text);\n li.appendChild(a);\n menuInner.appendChild(li);\n menuInner.appendChild(divider);\n if (header) menu.appendChild(header);\n if (search) {\n // create a span instead of input as creating an input element is slower\n var input = document.createElement('span');\n search.className = 'bs-searchbox';\n input.className = 'form-control';\n search.appendChild(input);\n menu.appendChild(search);\n }\n if (actions) menu.appendChild(actions);\n menu.appendChild(menuInner);\n if (doneButton) menu.appendChild(doneButton);\n newElement.appendChild(menu);\n document.body.appendChild(newElement);\n var liHeight = a.offsetHeight,\n headerHeight = header ? header.offsetHeight : 0,\n searchHeight = search ? search.offsetHeight : 0,\n actionsHeight = actions ? actions.offsetHeight : 0,\n doneButtonHeight = doneButton ? doneButton.offsetHeight : 0,\n dividerHeight = $(divider).outerHeight(true),\n // fall back to jQuery if getComputedStyle is not supported\n menuStyle = typeof getComputedStyle === 'function' ? getComputedStyle(menu) : false,\n $menu = menuStyle ? null : $(menu),\n menuPadding = {\n vert: parseInt(menuStyle ? menuStyle.paddingTop : $menu.css('paddingTop')) + parseInt(menuStyle ? menuStyle.paddingBottom : $menu.css('paddingBottom')) + parseInt(menuStyle ? menuStyle.borderTopWidth : $menu.css('borderTopWidth')) + parseInt(menuStyle ? menuStyle.borderBottomWidth : $menu.css('borderBottomWidth')),\n horiz: parseInt(menuStyle ? menuStyle.paddingLeft : $menu.css('paddingLeft')) + parseInt(menuStyle ? menuStyle.paddingRight : $menu.css('paddingRight')) + parseInt(menuStyle ? menuStyle.borderLeftWidth : $menu.css('borderLeftWidth')) + parseInt(menuStyle ? menuStyle.borderRightWidth : $menu.css('borderRightWidth'))\n },\n menuExtras = {\n vert: menuPadding.vert + parseInt(menuStyle ? menuStyle.marginTop : $menu.css('marginTop')) + parseInt(menuStyle ? menuStyle.marginBottom : $menu.css('marginBottom')) + 2,\n horiz: menuPadding.horiz + parseInt(menuStyle ? menuStyle.marginLeft : $menu.css('marginLeft')) + parseInt(menuStyle ? menuStyle.marginRight : $menu.css('marginRight')) + 2\n };\n document.body.removeChild(newElement);\n this.sizeInfo = {\n liHeight: liHeight,\n headerHeight: headerHeight,\n searchHeight: searchHeight,\n actionsHeight: actionsHeight,\n doneButtonHeight: doneButtonHeight,\n dividerHeight: dividerHeight,\n menuPadding: menuPadding,\n menuExtras: menuExtras\n };\n },\n setSize: function setSize() {\n this.findLis();\n this.liHeight();\n if (this.options.header) this.$menu.css('padding-top', 0);\n if (this.options.size === false) return;\n var that = this,\n $menu = this.$menu,\n $menuInner = this.$menuInner,\n $window = $(window),\n selectHeight = this.$newElement[0].offsetHeight,\n selectWidth = this.$newElement[0].offsetWidth,\n liHeight = this.sizeInfo['liHeight'],\n headerHeight = this.sizeInfo['headerHeight'],\n searchHeight = this.sizeInfo['searchHeight'],\n actionsHeight = this.sizeInfo['actionsHeight'],\n doneButtonHeight = this.sizeInfo['doneButtonHeight'],\n divHeight = this.sizeInfo['dividerHeight'],\n menuPadding = this.sizeInfo['menuPadding'],\n menuExtras = this.sizeInfo['menuExtras'],\n notDisabled = this.options.hideDisabled ? '.disabled' : '',\n menuHeight,\n menuWidth,\n getHeight,\n getWidth,\n selectOffsetTop,\n selectOffsetBot,\n selectOffsetLeft,\n selectOffsetRight,\n getPos = function getPos() {\n var pos = that.$newElement.offset(),\n $container = $(that.options.container),\n containerPos;\n if (that.options.container && !$container.is('body')) {\n containerPos = $container.offset();\n containerPos.top += parseInt($container.css('borderTopWidth'));\n containerPos.left += parseInt($container.css('borderLeftWidth'));\n } else {\n containerPos = {\n top: 0,\n left: 0\n };\n }\n var winPad = that.options.windowPadding;\n selectOffsetTop = pos.top - containerPos.top - $window.scrollTop();\n selectOffsetBot = $window.height() - selectOffsetTop - selectHeight - containerPos.top - winPad[2];\n selectOffsetLeft = pos.left - containerPos.left - $window.scrollLeft();\n selectOffsetRight = $window.width() - selectOffsetLeft - selectWidth - containerPos.left - winPad[1];\n selectOffsetTop -= winPad[0];\n selectOffsetLeft -= winPad[3];\n };\n getPos();\n if (this.options.size === 'auto') {\n var getSize = function getSize() {\n var minHeight,\n hasClass = function hasClass(className, include) {\n return function (element) {\n if (include) {\n return element.classList ? element.classList.contains(className) : $(element).hasClass(className);\n } else {\n return !(element.classList ? element.classList.contains(className) : $(element).hasClass(className));\n }\n };\n },\n lis = that.$menuInner[0].getElementsByTagName('li'),\n lisVisible = Array.prototype.filter ? Array.prototype.filter.call(lis, hasClass('hidden', false)) : that.$lis.not('.hidden'),\n optGroup = Array.prototype.filter ? Array.prototype.filter.call(lisVisible, hasClass('dropdown-header', true)) : lisVisible.filter('.dropdown-header');\n getPos();\n menuHeight = selectOffsetBot - menuExtras.vert;\n menuWidth = selectOffsetRight - menuExtras.horiz;\n if (that.options.container) {\n if (!$menu.data('height')) $menu.data('height', $menu.height());\n getHeight = $menu.data('height');\n if (!$menu.data('width')) $menu.data('width', $menu.width());\n getWidth = $menu.data('width');\n } else {\n getHeight = $menu.height();\n getWidth = $menu.width();\n }\n if (that.options.dropupAuto) {\n that.$newElement.toggleClass('dropup', selectOffsetTop > selectOffsetBot && menuHeight - menuExtras.vert < getHeight);\n }\n if (that.$newElement.hasClass('dropup')) {\n menuHeight = selectOffsetTop - menuExtras.vert;\n }\n if (that.options.dropdownAlignRight === 'auto') {\n $menu.toggleClass('dropdown-menu-right', selectOffsetLeft > selectOffsetRight && menuWidth - menuExtras.horiz < getWidth - selectWidth);\n }\n if (lisVisible.length + optGroup.length > 3) {\n minHeight = liHeight * 3 + menuExtras.vert - 2;\n } else {\n minHeight = 0;\n }\n $menu.css({\n 'max-height': menuHeight + 'px',\n 'overflow': 'hidden',\n 'min-height': minHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight + 'px'\n });\n $menuInner.css({\n 'max-height': menuHeight - headerHeight - searchHeight - actionsHeight - doneButtonHeight - menuPadding.vert + 'px',\n 'overflow-y': 'auto',\n 'min-height': Math.max(minHeight - menuPadding.vert, 0) + 'px'\n });\n };\n getSize();\n this.$searchbox.off('input.getSize propertychange.getSize').on('input.getSize propertychange.getSize', getSize);\n $window.off('resize.getSize scroll.getSize').on('resize.getSize scroll.getSize', getSize);\n } else if (this.options.size && this.options.size != 'auto' && this.$lis.not(notDisabled).length > this.options.size) {\n var optIndex = this.$lis.not('.divider').not(notDisabled).children().slice(0, this.options.size).last().parent().index(),\n divLength = this.$lis.slice(0, optIndex + 1).filter('.divider').length;\n menuHeight = liHeight * this.options.size + divLength * divHeight + menuPadding.vert;\n if (that.options.container) {\n if (!$menu.data('height')) $menu.data('height', $menu.height());\n getHeight = $menu.data('height');\n } else {\n getHeight = $menu.height();\n }\n if (that.options.dropupAuto) {\n //noinspection JSUnusedAssignment\n this.$newElement.toggleClass('dropup', selectOffsetTop > selectOffsetBot && menuHeight - menuExtras.vert < getHeight);\n }\n $menu.css({\n 'max-height': menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight + 'px',\n 'overflow': 'hidden',\n 'min-height': ''\n });\n $menuInner.css({\n 'max-height': menuHeight - menuPadding.vert + 'px',\n 'overflow-y': 'auto',\n 'min-height': ''\n });\n }\n },\n setWidth: function setWidth() {\n if (this.options.width === 'auto') {\n this.$menu.css('min-width', '0');\n\n // Get correct width if element is hidden\n var $selectClone = this.$menu.parent().clone().appendTo('body'),\n $selectClone2 = this.options.container ? this.$newElement.clone().appendTo('body') : $selectClone,\n ulWidth = $selectClone.children('.dropdown-menu').outerWidth(),\n btnWidth = $selectClone2.css('width', 'auto').children('button').outerWidth();\n $selectClone.remove();\n $selectClone2.remove();\n\n // Set width to whatever's larger, button title or longest option\n this.$newElement.css('width', Math.max(ulWidth, btnWidth) + 'px');\n } else if (this.options.width === 'fit') {\n // Remove inline min-width so width can be changed from 'auto'\n this.$menu.css('min-width', '');\n this.$newElement.css('width', '').addClass('fit-width');\n } else if (this.options.width) {\n // Remove inline min-width so width can be changed from 'auto'\n this.$menu.css('min-width', '');\n this.$newElement.css('width', this.options.width);\n } else {\n // Remove inline min-width/width so width can be changed\n this.$menu.css('min-width', '');\n this.$newElement.css('width', '');\n }\n // Remove fit-width class if width is changed programmatically\n if (this.$newElement.hasClass('fit-width') && this.options.width !== 'fit') {\n this.$newElement.removeClass('fit-width');\n }\n },\n selectPosition: function selectPosition() {\n this.$bsContainer = $('<div class=\"bs-container\" />');\n var that = this,\n $container = $(this.options.container),\n pos,\n containerPos,\n actualHeight,\n getPlacement = function getPlacement($element) {\n that.$bsContainer.addClass($element.attr('class').replace(/form-control|fit-width/gi, '')).toggleClass('dropup', $element.hasClass('dropup'));\n pos = $element.offset();\n if (!$container.is('body')) {\n containerPos = $container.offset();\n containerPos.top += parseInt($container.css('borderTopWidth')) - $container.scrollTop();\n containerPos.left += parseInt($container.css('borderLeftWidth')) - $container.scrollLeft();\n } else {\n containerPos = {\n top: 0,\n left: 0\n };\n }\n actualHeight = $element.hasClass('dropup') ? 0 : $element[0].offsetHeight;\n that.$bsContainer.css({\n 'top': pos.top - containerPos.top + actualHeight,\n 'left': pos.left - containerPos.left,\n 'width': $element[0].offsetWidth\n });\n };\n this.$button.on('click', function () {\n var $this = $(this);\n if (that.isDisabled()) {\n return;\n }\n getPlacement(that.$newElement);\n that.$bsContainer.appendTo(that.options.container).toggleClass('open', !$this.hasClass('open')).append(that.$menu);\n });\n $(window).on('resize scroll', function () {\n getPlacement(that.$newElement);\n });\n this.$element.on('hide.bs.select', function () {\n that.$menu.data('height', that.$menu.height());\n that.$bsContainer.detach();\n });\n },\n /**\n * @param {number} index - the index of the option that is being changed\n * @param {boolean} selected - true if the option is being selected, false if being deselected\n * @param {JQuery} $lis - the 'li' element that is being modified\n */\n setSelected: function setSelected(index, selected, $lis) {\n if (!$lis) {\n this.togglePlaceholder(); // check if setSelected is being called by changing the value of the select\n $lis = this.findLis().eq(this.liObj[index]);\n }\n $lis.toggleClass('selected', selected).find('a').attr('aria-selected', selected);\n },\n /**\n * @param {number} index - the index of the option that is being disabled\n * @param {boolean} disabled - true if the option is being disabled, false if being enabled\n * @param {JQuery} $lis - the 'li' element that is being modified\n */\n setDisabled: function setDisabled(index, disabled, $lis) {\n if (!$lis) {\n $lis = this.findLis().eq(this.liObj[index]);\n }\n if (disabled) {\n $lis.addClass('disabled').children('a').attr('href', '#').attr('tabindex', -1).attr('aria-disabled', true);\n } else {\n $lis.removeClass('disabled').children('a').removeAttr('href').attr('tabindex', 0).attr('aria-disabled', false);\n }\n },\n isDisabled: function isDisabled() {\n return this.$element[0].disabled;\n },\n checkDisabled: function checkDisabled() {\n var that = this;\n if (this.isDisabled()) {\n this.$newElement.addClass('disabled');\n this.$button.addClass('disabled').attr('tabindex', -1).attr('aria-disabled', true);\n } else {\n if (this.$button.hasClass('disabled')) {\n this.$newElement.removeClass('disabled');\n this.$button.removeClass('disabled').attr('aria-disabled', false);\n }\n if (this.$button.attr('tabindex') == -1 && !this.$element.data('tabindex')) {\n this.$button.removeAttr('tabindex');\n }\n }\n this.$button.click(function () {\n return !that.isDisabled();\n });\n },\n togglePlaceholder: function togglePlaceholder() {\n var value = this.$element.val();\n this.$button.toggleClass('bs-placeholder', value === null || value === '' || value.constructor === Array && value.length === 0);\n },\n tabIndex: function tabIndex() {\n if (this.$element.data('tabindex') !== this.$element.attr('tabindex') && this.$element.attr('tabindex') !== -98 && this.$element.attr('tabindex') !== '-98') {\n this.$element.data('tabindex', this.$element.attr('tabindex'));\n this.$button.attr('tabindex', this.$element.data('tabindex'));\n }\n this.$element.attr('tabindex', -98);\n },\n clickListener: function clickListener() {\n var that = this,\n $document = $(document);\n $document.data('spaceSelect', false);\n this.$button.on('keyup', function (e) {\n if (/(32)/.test(e.keyCode.toString(10)) && $document.data('spaceSelect')) {\n e.preventDefault();\n $document.data('spaceSelect', false);\n }\n });\n this.$button.on('click', function () {\n that.setSize();\n });\n this.$element.on('shown.bs.select', function () {\n if (!that.options.liveSearch && !that.multiple) {\n that.$menuInner.find('.selected a').focus();\n } else if (!that.multiple) {\n var selectedIndex = that.liObj[that.$element[0].selectedIndex];\n if (typeof selectedIndex !== 'number' || that.options.size === false) return;\n\n // scroll to selected option\n var offset = that.$lis.eq(selectedIndex)[0].offsetTop - that.$menuInner[0].offsetTop;\n offset = offset - that.$menuInner[0].offsetHeight / 2 + that.sizeInfo.liHeight / 2;\n that.$menuInner[0].scrollTop = offset;\n }\n });\n this.$menuInner.on('click', 'li a', function (e) {\n var $this = $(this),\n clickedIndex = $this.parent().data('originalIndex'),\n prevValue = that.$element.val(),\n prevIndex = that.$element.prop('selectedIndex'),\n triggerChange = true;\n\n // Don't close on multi choice menu\n if (that.multiple && that.options.maxOptions !== 1) {\n e.stopPropagation();\n }\n e.preventDefault();\n\n //Don't run if we have been disabled\n if (!that.isDisabled() && !$this.parent().hasClass('disabled')) {\n var $options = that.$element.find('option'),\n $option = $options.eq(clickedIndex),\n state = $option.prop('selected'),\n $optgroup = $option.parent('optgroup'),\n maxOptions = that.options.maxOptions,\n maxOptionsGrp = $optgroup.data('maxOptions') || false;\n if (!that.multiple) {\n // Deselect all others if not multi select box\n $options.prop('selected', false);\n $option.prop('selected', true);\n that.$menuInner.find('.selected').removeClass('selected').find('a').attr('aria-selected', false);\n that.setSelected(clickedIndex, true);\n } else {\n // Toggle the one we have chosen if we are multi select.\n $option.prop('selected', !state);\n that.setSelected(clickedIndex, !state);\n $this.blur();\n if (maxOptions !== false || maxOptionsGrp !== false) {\n var maxReached = maxOptions < $options.filter(':selected').length,\n maxReachedGrp = maxOptionsGrp < $optgroup.find('option:selected').length;\n if (maxOptions && maxReached || maxOptionsGrp && maxReachedGrp) {\n if (maxOptions && maxOptions == 1) {\n $options.prop('selected', false);\n $option.prop('selected', true);\n that.$menuInner.find('.selected').removeClass('selected');\n that.setSelected(clickedIndex, true);\n } else if (maxOptionsGrp && maxOptionsGrp == 1) {\n $optgroup.find('option:selected').prop('selected', false);\n $option.prop('selected', true);\n var optgroupID = $this.parent().data('optgroup');\n that.$menuInner.find('[data-optgroup=\"' + optgroupID + '\"]').removeClass('selected');\n that.setSelected(clickedIndex, true);\n } else {\n var maxOptionsText = typeof that.options.maxOptionsText === 'string' ? [that.options.maxOptionsText, that.options.maxOptionsText] : that.options.maxOptionsText,\n maxOptionsArr = typeof maxOptionsText === 'function' ? maxOptionsText(maxOptions, maxOptionsGrp) : maxOptionsText,\n maxTxt = maxOptionsArr[0].replace('{n}', maxOptions),\n maxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp),\n $notify = $('<div class=\"notify\"></div>');\n // If {var} is set in array, replace it\n /** @deprecated */\n if (maxOptionsArr[2]) {\n maxTxt = maxTxt.replace('{var}', maxOptionsArr[2][maxOptions > 1 ? 0 : 1]);\n maxTxtGrp = maxTxtGrp.replace('{var}', maxOptionsArr[2][maxOptionsGrp > 1 ? 0 : 1]);\n }\n $option.prop('selected', false);\n that.$menu.append($notify);\n if (maxOptions && maxReached) {\n $notify.append($('<div>' + maxTxt + '</div>'));\n triggerChange = false;\n that.$element.trigger('maxReached.bs.select');\n }\n if (maxOptionsGrp && maxReachedGrp) {\n $notify.append($('<div>' + maxTxtGrp + '</div>'));\n triggerChange = false;\n that.$element.trigger('maxReachedGrp.bs.select');\n }\n setTimeout(function () {\n that.setSelected(clickedIndex, false);\n }, 10);\n $notify.delay(750).fadeOut(300, function () {\n $(this).remove();\n });\n }\n }\n }\n }\n if (!that.multiple || that.multiple && that.options.maxOptions === 1) {\n that.$button.focus();\n } else if (that.options.liveSearch) {\n that.$searchbox.focus();\n }\n\n // Trigger select 'change'\n if (triggerChange) {\n if (prevValue != that.$element.val() && that.multiple || prevIndex != that.$element.prop('selectedIndex') && !that.multiple) {\n // $option.prop('selected') is current option state (selected/unselected). state is previous option state.\n changed_arguments = [clickedIndex, $option.prop('selected'), state];\n that.$element.triggerNative('change');\n }\n }\n }\n });\n this.$menu.on('click', 'li.disabled a, .popover-title, .popover-title :not(.close)', function (e) {\n if (e.currentTarget == this) {\n e.preventDefault();\n e.stopPropagation();\n if (that.options.liveSearch && !$(e.target).hasClass('close')) {\n that.$searchbox.focus();\n } else {\n that.$button.focus();\n }\n }\n });\n this.$menuInner.on('click', '.divider, .dropdown-header', function (e) {\n e.preventDefault();\n e.stopPropagation();\n if (that.options.liveSearch) {\n that.$searchbox.focus();\n } else {\n that.$button.focus();\n }\n });\n this.$menu.on('click', '.popover-title .close', function () {\n that.$button.click();\n });\n this.$searchbox.on('click', function (e) {\n e.stopPropagation();\n });\n this.$menu.on('click', '.actions-btn', function (e) {\n if (that.options.liveSearch) {\n that.$searchbox.focus();\n } else {\n that.$button.focus();\n }\n e.preventDefault();\n e.stopPropagation();\n if ($(this).hasClass('bs-select-all')) {\n that.selectAll();\n } else {\n that.deselectAll();\n }\n });\n this.$element.change(function () {\n that.render(false);\n that.$element.trigger('changed.bs.select', changed_arguments);\n changed_arguments = null;\n });\n },\n liveSearchListener: function liveSearchListener() {\n var that = this,\n $no_results = $('<li class=\"no-results\"></li>');\n this.$button.on('click.dropdown.data-api', function () {\n that.$menuInner.find('.active').removeClass('active');\n if (!!that.$searchbox.val()) {\n that.$searchbox.val('');\n that.$lis.not('.is-hidden').removeClass('hidden');\n if (!!$no_results.parent().length) $no_results.remove();\n }\n if (!that.multiple) that.$menuInner.find('.selected').addClass('active');\n setTimeout(function () {\n that.$searchbox.focus();\n }, 10);\n });\n this.$searchbox.on('click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api', function (e) {\n e.stopPropagation();\n });\n this.$searchbox.on('input propertychange', function () {\n that.$lis.not('.is-hidden').removeClass('hidden');\n that.$lis.filter('.active').removeClass('active');\n $no_results.remove();\n if (that.$searchbox.val()) {\n var $searchBase = that.$lis.not('.is-hidden, .divider, .dropdown-header'),\n $hideItems;\n if (that.options.liveSearchNormalize) {\n $hideItems = $searchBase.not(':a' + that._searchStyle() + '(\"' + normalizeToBase(that.$searchbox.val()) + '\")');\n } else {\n $hideItems = $searchBase.not(':' + that._searchStyle() + '(\"' + that.$searchbox.val() + '\")');\n }\n if ($hideItems.length === $searchBase.length) {\n $no_results.html(that.options.noneResultsText.replace('{0}', '\"' + htmlEscape(that.$searchbox.val()) + '\"'));\n that.$menuInner.append($no_results);\n that.$lis.addClass('hidden');\n } else {\n $hideItems.addClass('hidden');\n var $lisVisible = that.$lis.not('.hidden'),\n $foundDiv;\n\n // hide divider if first or last visible, or if followed by another divider\n $lisVisible.each(function (index) {\n var $this = $(this);\n if ($this.hasClass('divider')) {\n if ($foundDiv === undefined) {\n $this.addClass('hidden');\n } else {\n if ($foundDiv) $foundDiv.addClass('hidden');\n $foundDiv = $this;\n }\n } else if ($this.hasClass('dropdown-header') && $lisVisible.eq(index + 1).data('optgroup') !== $this.data('optgroup')) {\n $this.addClass('hidden');\n } else {\n $foundDiv = null;\n }\n });\n if ($foundDiv) $foundDiv.addClass('hidden');\n $searchBase.not('.hidden').first().addClass('active');\n }\n }\n });\n },\n _searchStyle: function _searchStyle() {\n var styles = {\n begins: 'ibegins',\n startsWith: 'ibegins'\n };\n return styles[this.options.liveSearchStyle] || 'icontains';\n },\n val: function val(value) {\n if (typeof value !== 'undefined') {\n this.$element.val(value);\n this.render();\n return this.$element;\n } else {\n return this.$element.val();\n }\n },\n changeAll: function changeAll(status) {\n if (!this.multiple) return;\n if (typeof status === 'undefined') status = true;\n this.findLis();\n var $options = this.$element.find('option'),\n $lisVisible = this.$lis.not('.divider, .dropdown-header, .disabled, .hidden'),\n lisVisLen = $lisVisible.length,\n selectedOptions = [];\n if (status) {\n if ($lisVisible.filter('.selected').length === $lisVisible.length) return;\n } else {\n if ($lisVisible.filter('.selected').length === 0) return;\n }\n $lisVisible.toggleClass('selected', status);\n for (var i = 0; i < lisVisLen; i++) {\n var origIndex = $lisVisible[i].getAttribute('data-original-index');\n selectedOptions[selectedOptions.length] = $options.eq(origIndex)[0];\n }\n $(selectedOptions).prop('selected', status);\n this.render(false);\n this.togglePlaceholder();\n this.$element.triggerNative('change');\n },\n selectAll: function selectAll() {\n return this.changeAll(true);\n },\n deselectAll: function deselectAll() {\n return this.changeAll(false);\n },\n toggle: function toggle(e) {\n e = e || window.event;\n if (e) e.stopPropagation();\n this.$button.trigger('click');\n },\n keydown: function keydown(e) {\n var $this = $(this),\n $parent = $this.is('input') ? $this.parent().parent() : $this.parent(),\n $items,\n that = $parent.data('this'),\n index,\n next,\n first,\n last,\n prev,\n nextPrev,\n prevIndex,\n isActive,\n selector = ':not(.disabled, .hidden, .dropdown-header, .divider)',\n keyCodeMap = {\n 32: ' ',\n 48: '0',\n 49: '1',\n 50: '2',\n 51: '3',\n 52: '4',\n 53: '5',\n 54: '6',\n 55: '7',\n 56: '8',\n 57: '9',\n 59: ';',\n 65: 'a',\n 66: 'b',\n 67: 'c',\n 68: 'd',\n 69: 'e',\n 70: 'f',\n 71: 'g',\n 72: 'h',\n 73: 'i',\n 74: 'j',\n 75: 'k',\n 76: 'l',\n 77: 'm',\n 78: 'n',\n 79: 'o',\n 80: 'p',\n 81: 'q',\n 82: 'r',\n 83: 's',\n 84: 't',\n 85: 'u',\n 86: 'v',\n 87: 'w',\n 88: 'x',\n 89: 'y',\n 90: 'z',\n 96: '0',\n 97: '1',\n 98: '2',\n 99: '3',\n 100: '4',\n 101: '5',\n 102: '6',\n 103: '7',\n 104: '8',\n 105: '9'\n };\n if (that.options.liveSearch) $parent = $this.parent().parent();\n if (that.options.container) $parent = that.$menu;\n $items = $('[role=\"listbox\"] li', $parent);\n isActive = that.$newElement.hasClass('open');\n if (!isActive && (e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 96 && e.keyCode <= 105 || e.keyCode >= 65 && e.keyCode <= 90)) {\n if (!that.options.container) {\n that.setSize();\n that.$menu.parent().addClass('open');\n isActive = true;\n } else {\n that.$button.trigger('click');\n }\n that.$searchbox.focus();\n return;\n }\n if (that.options.liveSearch) {\n if (/(^9$|27)/.test(e.keyCode.toString(10)) && isActive) {\n e.preventDefault();\n e.stopPropagation();\n that.$menuInner.click();\n that.$button.focus();\n }\n // $items contains li elements when liveSearch is enabled\n $items = $('[role=\"listbox\"] li' + selector, $parent);\n if (!$this.val() && !/(38|40)/.test(e.keyCode.toString(10))) {\n if ($items.filter('.active').length === 0) {\n $items = that.$menuInner.find('li');\n if (that.options.liveSearchNormalize) {\n $items = $items.filter(':a' + that._searchStyle() + '(' + normalizeToBase(keyCodeMap[e.keyCode]) + ')');\n } else {\n $items = $items.filter(':' + that._searchStyle() + '(' + keyCodeMap[e.keyCode] + ')');\n }\n }\n }\n }\n if (!$items.length) return;\n if (/(38|40)/.test(e.keyCode.toString(10))) {\n index = $items.index($items.find('a').filter(':focus').parent());\n first = $items.filter(selector).first().index();\n last = $items.filter(selector).last().index();\n next = $items.eq(index).nextAll(selector).eq(0).index();\n prev = $items.eq(index).prevAll(selector).eq(0).index();\n nextPrev = $items.eq(next).prevAll(selector).eq(0).index();\n if (that.options.liveSearch) {\n $items.each(function (i) {\n if (!$(this).hasClass('disabled')) {\n $(this).data('index', i);\n }\n });\n index = $items.index($items.filter('.active'));\n first = $items.first().data('index');\n last = $items.last().data('index');\n next = $items.eq(index).nextAll().eq(0).data('index');\n prev = $items.eq(index).prevAll().eq(0).data('index');\n nextPrev = $items.eq(next).prevAll().eq(0).data('index');\n }\n prevIndex = $this.data('prevIndex');\n if (e.keyCode == 38) {\n if (that.options.liveSearch) index--;\n if (index != nextPrev && index > prev) index = prev;\n if (index < first) index = first;\n if (index == prevIndex) index = last;\n } else if (e.keyCode == 40) {\n if (that.options.liveSearch) index++;\n if (index == -1) index = 0;\n if (index != nextPrev && index < next) index = next;\n if (index > last) index = last;\n if (index == prevIndex) index = first;\n }\n $this.data('prevIndex', index);\n if (!that.options.liveSearch) {\n $items.eq(index).children('a').focus();\n } else {\n e.preventDefault();\n if (!$this.hasClass('dropdown-toggle')) {\n $items.removeClass('active').eq(index).addClass('active').children('a').focus();\n $this.focus();\n }\n }\n } else if (!$this.is('input')) {\n var keyIndex = [],\n count,\n prevKey;\n $items.each(function () {\n if (!$(this).hasClass('disabled')) {\n if ($.trim($(this).children('a').text().toLowerCase()).substring(0, 1) == keyCodeMap[e.keyCode]) {\n keyIndex.push($(this).index());\n }\n }\n });\n count = $(document).data('keycount');\n count++;\n $(document).data('keycount', count);\n prevKey = $.trim($(':focus').text().toLowerCase()).substring(0, 1);\n if (prevKey != keyCodeMap[e.keyCode]) {\n count = 1;\n $(document).data('keycount', count);\n } else if (count >= keyIndex.length) {\n $(document).data('keycount', 0);\n if (count > keyIndex.length) count = 1;\n }\n $items.eq(keyIndex[count - 1]).children('a').focus();\n }\n\n // Select focused option if \"Enter\", \"Spacebar\" or \"Tab\" (when selectOnTab is true) are pressed inside the menu.\n if ((/(13|32)/.test(e.keyCode.toString(10)) || /(^9$)/.test(e.keyCode.toString(10)) && that.options.selectOnTab) && isActive) {\n if (!/(32)/.test(e.keyCode.toString(10))) e.preventDefault();\n if (!that.options.liveSearch) {\n var elem = $(':focus');\n elem.click();\n // Bring back focus for multiselects\n elem.focus();\n // Prevent screen from scrolling if the user hit the spacebar\n e.preventDefault();\n // Fixes spacebar selection of dropdown items in FF & IE\n $(document).data('spaceSelect', true);\n } else if (!/(32)/.test(e.keyCode.toString(10))) {\n that.$menuInner.find('.active a').click();\n $this.focus();\n }\n $(document).data('keycount', 0);\n }\n if (/(^9$|27)/.test(e.keyCode.toString(10)) && isActive && (that.multiple || that.options.liveSearch) || /(27)/.test(e.keyCode.toString(10)) && !isActive) {\n that.$menu.parent().removeClass('open');\n if (that.options.container) that.$newElement.removeClass('open');\n that.$button.focus();\n }\n },\n mobile: function mobile() {\n this.$element.addClass('mobile-device');\n },\n refresh: function refresh() {\n this.$lis = null;\n this.liObj = {};\n this.reloadLi();\n this.render();\n this.checkDisabled();\n this.liHeight(true);\n this.setStyle();\n this.setWidth();\n if (this.$lis) this.$searchbox.trigger('propertychange');\n this.$element.trigger('refreshed.bs.select');\n },\n hide: function hide() {\n this.$newElement.hide();\n },\n show: function show() {\n this.$newElement.show();\n },\n remove: function remove() {\n this.$newElement.remove();\n this.$element.remove();\n },\n destroy: function destroy() {\n this.$newElement.before(this.$element).remove();\n if (this.$bsContainer) {\n this.$bsContainer.remove();\n } else {\n this.$menu.remove();\n }\n this.$element.off('.bs.select').removeData('selectpicker').removeClass('bs-select-hidden selectpicker');\n }\n };\n\n // SELECTPICKER PLUGIN DEFINITION\n // ==============================\n function Plugin(option, event) {\n // get the args of the outer function..\n var args = arguments;\n // The arguments of the function are explicitly re-defined from the argument list, because the shift causes them\n // to get lost/corrupted in android 2.3 and IE9 #715 #775\n var _option = option,\n _event = event;\n [].shift.apply(args);\n var value;\n var chain = this.each(function () {\n var $this = $(this);\n if ($this.is('select')) {\n var data = $this.data('selectpicker'),\n options = _typeof(_option) == 'object' && _option;\n if (!data) {\n var config = $.extend({}, Selectpicker.DEFAULTS, $.fn.selectpicker.defaults || {}, $this.data(), options);\n config.template = $.extend({}, Selectpicker.DEFAULTS.template, $.fn.selectpicker.defaults ? $.fn.selectpicker.defaults.template : {}, $this.data().template, options.template);\n $this.data('selectpicker', data = new Selectpicker(this, config, _event));\n } else if (options) {\n for (var i in options) {\n if (options.hasOwnProperty(i)) {\n data.options[i] = options[i];\n }\n }\n }\n if (typeof _option == 'string') {\n if (data[_option] instanceof Function) {\n value = data[_option].apply(data, args);\n } else {\n value = data.options[_option];\n }\n }\n }\n });\n if (typeof value !== 'undefined') {\n //noinspection JSUnusedAssignment\n return value;\n } else {\n return chain;\n }\n }\n var old = $.fn.selectpicker;\n $.fn.selectpicker = Plugin;\n $.fn.selectpicker.Constructor = Selectpicker;\n\n // SELECTPICKER NO CONFLICT\n // ========================\n $.fn.selectpicker.noConflict = function () {\n $.fn.selectpicker = old;\n return this;\n };\n $(document).data('keycount', 0).on('keydown.bs.select', '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role=\"listbox\"], .bs-searchbox input', Selectpicker.prototype.keydown).on('focusin.modal', '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role=\"listbox\"], .bs-searchbox input', function (e) {\n e.stopPropagation();\n });\n\n // SELECTPICKER DATA-API\n // =====================\n $(window).on('load.bs.select.data-api', function () {\n $('.selectpicker').each(function () {\n var $selectpicker = $(this);\n Plugin.call($selectpicker, $selectpicker.data());\n });\n });\n })(jQuery);\n});\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/jquery.select-bootstrap.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/jquery.tagsinput.js":
/*!*************************************************************!*\
!*** ./buyercall/assets/scripts/vendor/jquery.tagsinput.js ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*\n * bootstrap-tagsinput v0.8.0\n *\n */\n\n(function ($) {\n \"use strict\";\n\n var defaultOptions = {\n tagClass: function tagClass(item) {\n return 'label label-info';\n },\n focusClass: 'focus',\n itemValue: function itemValue(item) {\n return item ? item.toString() : item;\n },\n itemText: function itemText(item) {\n return this.itemValue(item);\n },\n itemTitle: function itemTitle(item) {\n return null;\n },\n freeInput: true,\n addOnBlur: true,\n maxTags: undefined,\n maxChars: undefined,\n confirmKeys: [13, 44],\n delimiter: ',',\n delimiterRegex: null,\n cancelConfirmKeysOnEmpty: false,\n onTagExists: function onTagExists(item, $tag) {\n $tag.hide().fadeIn();\n },\n trimValue: false,\n allowDuplicates: false,\n triggerChange: true\n };\n\n /**\n * Constructor function\n */\n function TagsInput(element, options) {\n this.isInit = true;\n this.itemsArray = [];\n this.$element = $(element);\n this.$element.hide();\n this.isSelect = element.tagName === 'SELECT';\n this.multiple = this.isSelect && element.hasAttribute('multiple');\n this.objectItems = options && options.itemValue;\n this.placeholderText = element.hasAttribute('placeholder') ? this.$element.attr('placeholder') : '';\n this.inputSize = Math.max(1, this.placeholderText.length);\n this.$container = $('<div class=\"bootstrap-tagsinput\"></div>');\n this.$input = $('<input type=\"text\" placeholder=\"' + this.placeholderText + '\"/>').appendTo(this.$container);\n this.$element.before(this.$container);\n this.build(options);\n this.isInit = false;\n }\n TagsInput.prototype = {\n constructor: TagsInput,\n /**\n * Adds the given item as a new tag. Pass true to dontPushVal to prevent\n * updating the elements val()\n */\n add: function add(item, dontPushVal, options) {\n var self = this;\n if (self.options.maxTags && self.itemsArray.length >= self.options.maxTags) return;\n\n // Ignore falsey values, except false\n if (item !== false && !item) return;\n\n // Trim value\n if (typeof item === \"string\" && self.options.trimValue) {\n item = $.trim(item);\n }\n\n // Throw an error when trying to add an object while the itemValue option was not set\n if (_typeof(item) === \"object\" && !self.objectItems) throw \"Can't add objects when itemValue option is not set\";\n\n // Ignore strings only containg whitespace\n if (item.toString().match(/^\\s*$/)) return;\n\n // If SELECT but not multiple, remove current tag\n if (self.isSelect && !self.multiple && self.itemsArray.length > 0) self.remove(self.itemsArray[0]);\n if (typeof item === \"string\" && this.$element[0].tagName === 'INPUT') {\n var delimiter = self.options.delimiterRegex ? self.options.delimiterRegex : self.options.delimiter;\n var items = item.split(delimiter);\n if (items.length > 1) {\n for (var i = 0; i < items.length; i++) {\n this.add(items[i], true);\n }\n if (!dontPushVal) self.pushVal(self.options.triggerChange);\n return;\n }\n }\n var itemValue = self.options.itemValue(item),\n itemText = self.options.itemText(item),\n tagClass = self.options.tagClass(item),\n itemTitle = self.options.itemTitle(item);\n\n // Ignore items allready added\n var existing = $.grep(self.itemsArray, function (item) {\n return self.options.itemValue(item) === itemValue;\n })[0];\n if (existing && !self.options.allowDuplicates) {\n // Invoke onTagExists\n if (self.options.onTagExists) {\n var $existingTag = $(\".tag\", self.$container).filter(function () {\n return $(this).data(\"item\") === existing;\n });\n self.options.onTagExists(item, $existingTag);\n }\n return;\n }\n\n // if length greater than limit\n if (self.items().toString().length + item.length + 1 > self.options.maxInputLength) return;\n\n // raise beforeItemAdd arg\n var beforeItemAddEvent = $.Event('beforeItemAdd', {\n item: item,\n cancel: false,\n options: options\n });\n self.$element.trigger(beforeItemAddEvent);\n if (beforeItemAddEvent.cancel) return;\n\n // register item in internal array and map\n self.itemsArray.push(item);\n\n // add a tag element\n\n var $tag = $('<span class=\"tag ' + htmlEncode(tagClass) + (itemTitle !== null ? '\" title=\"' + itemTitle : '') + '\">' + htmlEncode(itemText) + '<span data-role=\"remove\"></span></span>');\n $tag.data('item', item);\n self.findInputWrapper().before($tag);\n $tag.after(' ');\n\n // Check to see if the tag exists in its raw or uri-encoded form\n var optionExists = $('option[value=\"' + encodeURIComponent(itemValue) + '\"]', self.$element).length || $('option[value=\"' + htmlEncode(itemValue) + '\"]', self.$element).length;\n\n // add <option /> if item represents a value not present in one of the <select />'s options\n if (self.isSelect && !optionExists) {\n var $option = $('<option selected>' + htmlEncode(itemText) + '</option>');\n $option.data('item', item);\n $option.attr('value', itemValue);\n self.$element.append($option);\n }\n if (!dontPushVal) self.pushVal(self.options.triggerChange);\n\n // Add class when reached maxTags\n if (self.options.maxTags === self.itemsArray.length || self.items().toString().length === self.options.maxInputLength) self.$container.addClass('bootstrap-tagsinput-max');\n\n // If using typeahead, once the tag has been added, clear the typeahead value so it does not stick around in the input.\n if ($('.typeahead, .twitter-typeahead', self.$container).length) {\n self.$input.typeahead('val', '');\n }\n if (this.isInit) {\n self.$element.trigger($.Event('itemAddedOnInit', {\n item: item,\n options: options\n }));\n } else {\n self.$element.trigger($.Event('itemAdded', {\n item: item,\n options: options\n }));\n }\n },\n /**\n * Removes the given item. Pass true to dontPushVal to prevent updating the\n * elements val()\n */\n remove: function remove(item, dontPushVal, options) {\n var self = this;\n if (self.objectItems) {\n if (_typeof(item) === \"object\") item = $.grep(self.itemsArray, function (other) {\n return self.options.itemValue(other) == self.options.itemValue(item);\n });else item = $.grep(self.itemsArray, function (other) {\n return self.options.itemValue(other) == item;\n });\n item = item[item.length - 1];\n }\n if (item) {\n var beforeItemRemoveEvent = $.Event('beforeItemRemove', {\n item: item,\n cancel: false,\n options: options\n });\n self.$element.trigger(beforeItemRemoveEvent);\n if (beforeItemRemoveEvent.cancel) return;\n $('.tag', self.$container).filter(function () {\n return $(this).data('item') === item;\n }).remove();\n $('option', self.$element).filter(function () {\n return $(this).data('item') === item;\n }).remove();\n if ($.inArray(item, self.itemsArray) !== -1) self.itemsArray.splice($.inArray(item, self.itemsArray), 1);\n }\n if (!dontPushVal) self.pushVal(self.options.triggerChange);\n\n // Remove class when reached maxTags\n if (self.options.maxTags > self.itemsArray.length) self.$container.removeClass('bootstrap-tagsinput-max');\n self.$element.trigger($.Event('itemRemoved', {\n item: item,\n options: options\n }));\n },\n /**\n * Removes all items\n */\n removeAll: function removeAll() {\n var self = this;\n $('.tag', self.$container).remove();\n $('option', self.$element).remove();\n while (self.itemsArray.length > 0) self.itemsArray.pop();\n self.pushVal(self.options.triggerChange);\n },\n /**\n * Refreshes the tags so they match the text/value of their corresponding\n * item.\n */\n refresh: function refresh() {\n var self = this;\n $('.tag', self.$container).each(function () {\n var $tag = $(this),\n item = $tag.data('item'),\n itemValue = self.options.itemValue(item),\n itemText = self.options.itemText(item),\n tagClass = self.options.tagClass(item);\n\n // Update tag's class and inner text\n $tag.attr('class', null);\n $tag.addClass('tag ' + htmlEncode(tagClass));\n $tag.contents().filter(function () {\n return this.nodeType == 3;\n })[0].nodeValue = htmlEncode(itemText);\n if (self.isSelect) {\n var option = $('option', self.$element).filter(function () {\n return $(this).data('item') === item;\n });\n option.attr('value', itemValue);\n }\n });\n },\n /**\n * Returns the items added as tags\n */\n items: function items() {\n return this.itemsArray;\n },\n /**\n * Assembly value by retrieving the value of each item, and set it on the\n * element.\n */\n pushVal: function pushVal() {\n var self = this,\n val = $.map(self.items(), function (item) {\n return self.options.itemValue(item).toString();\n });\n self.$element.val(val, true);\n if (self.options.triggerChange) self.$element.trigger('change');\n },\n /**\n * Initializes the tags input behaviour on the element\n */\n build: function build(options) {\n var self = this;\n self.options = $.extend({}, defaultOptions, options);\n // When itemValue is set, freeInput should always be false\n if (self.objectItems) self.options.freeInput = false;\n makeOptionItemFunction(self.options, 'itemValue');\n makeOptionItemFunction(self.options, 'itemText');\n makeOptionFunction(self.options, 'tagClass');\n\n // Typeahead Bootstrap version 2.3.2\n if (self.options.typeahead) {\n var typeahead = self.options.typeahead || {};\n makeOptionFunction(typeahead, 'source');\n self.$input.typeahead($.extend({}, typeahead, {\n source: function source(query, process) {\n function processItems(items) {\n var texts = [];\n for (var i = 0; i < items.length; i++) {\n var text = self.options.itemText(items[i]);\n map[text] = items[i];\n texts.push(text);\n }\n process(texts);\n }\n this.map = {};\n var map = this.map,\n data = typeahead.source(query);\n if ($.isFunction(data.success)) {\n // support for Angular callbacks\n data.success(processItems);\n } else if ($.isFunction(data.then)) {\n // support for Angular promises\n data.then(processItems);\n } else {\n // support for functions and jquery promises\n $.when(data).then(processItems);\n }\n },\n updater: function updater(text) {\n self.add(this.map[text]);\n return this.map[text];\n },\n matcher: function matcher(text) {\n return text.toLowerCase().indexOf(this.query.trim().toLowerCase()) !== -1;\n },\n sorter: function sorter(texts) {\n return texts.sort();\n },\n highlighter: function highlighter(text) {\n var regex = new RegExp('(' + this.query + ')', 'gi');\n return text.replace(regex, \"<strong>$1</strong>\");\n }\n }));\n }\n\n // typeahead.js\n if (self.options.typeaheadjs) {\n // Determine if main configurations were passed or simply a dataset\n var typeaheadjs = self.options.typeaheadjs;\n if (!$.isArray(typeaheadjs)) {\n typeaheadjs = [null, typeaheadjs];\n }\n var valueKey = typeaheadjs[1].valueKey; // We should test typeaheadjs.size >= 1\n var f_datum = valueKey ? function (datum) {\n return datum[valueKey];\n } : function (datum) {\n return datum;\n };\n $.fn.typeahead.apply(self.$input, typeaheadjs).on('typeahead:selected', $.proxy(function (obj, datum) {\n self.add(f_datum(datum));\n self.$input.typeahead('val', '');\n }, self));\n }\n self.$container.on('click', $.proxy(function (event) {\n if (!self.$element.attr('disabled')) {\n self.$input.removeAttr('disabled');\n }\n self.$input.focus();\n }, self));\n if (self.options.addOnBlur && self.options.freeInput) {\n self.$input.on('focusout', $.proxy(function (event) {\n // HACK: only process on focusout when no typeahead opened, to\n // avoid adding the typeahead text as tag\n if ($('.typeahead, .twitter-typeahead', self.$container).length === 0) {\n self.add(self.$input.val());\n self.$input.val('');\n }\n }, self));\n }\n\n // Toggle the 'focus' css class on the container when it has focus\n self.$container.on({\n focusin: function focusin() {\n self.$container.addClass(self.options.focusClass);\n },\n focusout: function focusout() {\n self.$container.removeClass(self.options.focusClass);\n }\n });\n self.$container.on('keydown', 'input', $.proxy(function (event) {\n var $input = $(event.target),\n $inputWrapper = self.findInputWrapper();\n if (self.$element.attr('disabled')) {\n self.$input.attr('disabled', 'disabled');\n return;\n }\n switch (event.which) {\n // BACKSPACE\n case 8:\n if (doGetCaretPosition($input[0]) === 0) {\n var prev = $inputWrapper.prev();\n if (prev.length) {\n self.remove(prev.data('item'));\n }\n }\n break;\n\n // DELETE\n case 46:\n if (doGetCaretPosition($input[0]) === 0) {\n var next = $inputWrapper.next();\n if (next.length) {\n self.remove(next.data('item'));\n }\n }\n break;\n\n // LEFT ARROW\n case 37:\n // Try to move the input before the previous tag\n var $prevTag = $inputWrapper.prev();\n if ($input.val().length === 0 && $prevTag[0]) {\n $prevTag.before($inputWrapper);\n $input.focus();\n }\n break;\n // RIGHT ARROW\n case 39:\n // Try to move the input after the next tag\n var $nextTag = $inputWrapper.next();\n if ($input.val().length === 0 && $nextTag[0]) {\n $nextTag.after($inputWrapper);\n $input.focus();\n }\n break;\n default:\n // ignore\n }\n\n // Reset internal input's size\n var textLength = $input.val().length,\n wordSpace = Math.ceil(textLength / 5),\n size = textLength + wordSpace + 1;\n $input.attr('size', Math.max(this.inputSize, $input.val().length));\n }, self));\n self.$container.on('keypress', 'input', $.proxy(function (event) {\n var $input = $(event.target);\n if (self.$element.attr('disabled')) {\n self.$input.attr('disabled', 'disabled');\n return;\n }\n var text = $input.val(),\n maxLengthReached = self.options.maxChars && text.length >= self.options.maxChars;\n if (self.options.freeInput && (keyCombinationInList(event, self.options.confirmKeys) || maxLengthReached)) {\n // Only attempt to add a tag if there is data in the field\n if (text.length !== 0) {\n self.add(maxLengthReached ? text.substr(0, self.options.maxChars) : text);\n $input.val('');\n }\n\n // If the field is empty, let the event triggered fire as usual\n if (self.options.cancelConfirmKeysOnEmpty === false) {\n event.preventDefault();\n }\n }\n\n // Reset internal input's size\n var textLength = $input.val().length,\n wordSpace = Math.ceil(textLength / 5),\n size = textLength + wordSpace + 1;\n $input.attr('size', Math.max(this.inputSize, $input.val().length));\n }, self));\n\n // Remove icon clicked\n self.$container.on('click', '[data-role=remove]', $.proxy(function (event) {\n if (self.$element.attr('disabled')) {\n return;\n }\n self.remove($(event.target).closest('.tag').data('item'));\n }, self));\n\n // Only add existing value as tags when using strings as tags\n if (self.options.itemValue === defaultOptions.itemValue) {\n if (self.$element[0].tagName === 'INPUT') {\n self.add(self.$element.val());\n } else {\n $('option', self.$element).each(function () {\n self.add($(this).attr('value'), true);\n });\n }\n }\n },\n /**\n * Removes all tagsinput behaviour and unregsiter all event handlers\n */\n destroy: function destroy() {\n var self = this;\n\n // Unbind events\n self.$container.off('keypress', 'input');\n self.$container.off('click', '[role=remove]');\n self.$container.remove();\n self.$element.removeData('tagsinput');\n self.$element.show();\n },\n /**\n * Sets focus on the tagsinput\n */\n focus: function focus() {\n this.$input.focus();\n },\n /**\n * Returns the internal input element\n */\n input: function input() {\n return this.$input;\n },\n /**\n * Returns the element which is wrapped around the internal input. This\n * is normally the $container, but typeahead.js moves the $input element.\n */\n findInputWrapper: function findInputWrapper() {\n var elt = this.$input[0],\n container = this.$container[0];\n while (elt && elt.parentNode !== container) elt = elt.parentNode;\n return $(elt);\n }\n };\n\n /**\n * Register JQuery plugin\n */\n $.fn.tagsinput = function (arg1, arg2, arg3) {\n var results = [];\n this.each(function () {\n var tagsinput = $(this).data('tagsinput');\n // Initialize a new tags input\n if (!tagsinput) {\n tagsinput = new TagsInput(this, arg1);\n $(this).data('tagsinput', tagsinput);\n results.push(tagsinput);\n if (this.tagName === 'SELECT') {\n $('option', $(this)).attr('selected', 'selected');\n }\n\n // Init tags from $(this).val()\n $(this).val($(this).val());\n } else if (!arg1 && !arg2) {\n // tagsinput already exists\n // no function, trying to init\n results.push(tagsinput);\n } else if (tagsinput[arg1] !== undefined) {\n // Invoke function on existing tags input\n if (tagsinput[arg1].length === 3 && arg3 !== undefined) {\n var retVal = tagsinput[arg1](arg2, null, arg3);\n } else {\n var retVal = tagsinput[arg1](arg2);\n }\n if (retVal !== undefined) results.push(retVal);\n }\n });\n if (typeof arg1 == 'string') {\n // Return the results from the invoked function calls\n return results.length > 1 ? results : results[0];\n } else {\n return results;\n }\n };\n $.fn.tagsinput.Constructor = TagsInput;\n\n /**\n * Most options support both a string or number as well as a function as\n * option value. This function makes sure that the option with the given\n * key in the given options is wrapped in a function\n */\n function makeOptionItemFunction(options, key) {\n if (typeof options[key] !== 'function') {\n var propertyName = options[key];\n options[key] = function (item) {\n return item[propertyName];\n };\n }\n }\n function makeOptionFunction(options, key) {\n if (typeof options[key] !== 'function') {\n var value = options[key];\n options[key] = function () {\n return value;\n };\n }\n }\n /**\n * HtmlEncodes the given value\n */\n var htmlEncodeContainer = $('<div />');\n function htmlEncode(value) {\n if (value) {\n return htmlEncodeContainer.text(value).html();\n } else {\n return '';\n }\n }\n\n /**\n * Returns the position of the caret in the given input field\n * http://flightschool.acylt.com/devnotes/caret-position-woes/\n */\n function doGetCaretPosition(oField) {\n var iCaretPos = 0;\n if (document.selection) {\n oField.focus();\n var oSel = document.selection.createRange();\n oSel.moveStart('character', -oField.value.length);\n iCaretPos = oSel.text.length;\n } else if (oField.selectionStart || oField.selectionStart == '0') {\n iCaretPos = oField.selectionStart;\n }\n return iCaretPos;\n }\n\n /**\n * Returns boolean indicates whether user has pressed an expected key combination.\n * @param object keyPressEvent: JavaScript event object, refer\n * http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n * @param object lookupList: expected key combinations, as in:\n * [13, {which: 188, shiftKey: true}]\n */\n function keyCombinationInList(keyPressEvent, lookupList) {\n var found = false;\n $.each(lookupList, function (index, keyCombination) {\n if (typeof keyCombination === 'number' && keyPressEvent.which === keyCombination) {\n found = true;\n return false;\n }\n if (keyPressEvent.which === keyCombination.which) {\n var alt = !keyCombination.hasOwnProperty('altKey') || keyPressEvent.altKey === keyCombination.altKey,\n shift = !keyCombination.hasOwnProperty('shiftKey') || keyPressEvent.shiftKey === keyCombination.shiftKey,\n ctrl = !keyCombination.hasOwnProperty('ctrlKey') || keyPressEvent.ctrlKey === keyCombination.ctrlKey;\n if (alt && shift && ctrl) {\n found = true;\n return false;\n }\n }\n });\n return found;\n }\n\n /**\n * Initialize tagsinput behaviour on inputs and selects which have\n * data-role=tagsinput\n */\n $(function () {\n $(\"input[data-role=tagsinput], select[multiple][data-role=tagsinput]\").tagsinput();\n });\n})(window.jQuery);\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/jquery.tagsinput.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/material-dashboard.js":
/*!***************************************************************!*\
!*** ./buyercall/assets/scripts/vendor/material-dashboard.js ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/*! =========================================================\n *\n * Material Dashboard PRO - V1.1.0\n *\n * =========================================================\n *\n * Copyright 2016 Creative Tim (http://www.creative-tim.com/product/material-dashboard-pro)\n *\n *\n * _oo0oo_\n * o8888888o\n * 88\" . \"88\n * (| -_- |)\n * 0\\ = /0\n * ___/`---'\\___\n * .' \\| |// '.\n * / \\||| : |||// \\\n * / _||||| -:- |||||- \\\n * | | \\\\ - /// | |\n * | \\_| ''\\---/'' |_/ |\n * \\ .-\\__ '-' ___/-. /\n * ___'. .' /--.--\\ `. .'___\n * .\"\" '< `.___\\_<|>_/___.' >' \"\".\n * | | : `- \\`.;`\\ _ /`;.`/ - ` : | |\n * \\ \\ `_. \\_ __\\ /__ _/ .-` / /\n * =====`-.____`.___ \\_____/___.-`___.-'=====\n * `=---='\n *\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n *\n * Buddha Bless: \"No Bugs\"\n *\n * ========================================================= */\n\n(function () {\n isWindows = navigator.platform.indexOf('Win') > -1 ? true : false;\n if (isWindows && !$('body').hasClass('sidebar-mini')) {\n // if we are on windows OS we activate the perfectScrollbar function\n $('.sidebar .sidebar-wrapper, .main-panel').perfectScrollbar();\n $('html').addClass('perfect-scrollbar-on');\n } else {\n $('html').addClass('perfect-scrollbar-off');\n }\n})();\nvar $layer, $navbar, $navbar_form, $nav_content, $sidebar, $sidebar_nav, $sidebar_wrapper, $toggle, Chartist, content_buff, hover_count, image_src, main_panel_height, md, mobile_menu_content, nav_content, sidebar_container, window_width, isWindows;\nvar breakCards = true;\nvar searchVisible = 0;\nvar transparent = true;\nvar transparentDemo = true;\nvar fixedTop = false;\nvar mobile_menu_visible = 0,\n mobile_menu_initialized = false,\n toggle_initialized = false,\n bootstrap_nav_initialized = false;\nvar seq = 0,\n delays = 80,\n durations = 500;\nvar seq2 = 0,\n delays2 = 80,\n durations2 = 500;\n$(document).ready(function () {\n $sidebar = $('.sidebar');\n $.material.init();\n\n // We put modals out of wrapper to working properly\n $('.modal').appendTo(\"body\");\n md.initSidebarsCheck();\n if ($('body').hasClass('sidebar-mini')) {\n md.misc.sidebar_mini_active = true;\n }\n window_width = $(window).width();\n\n // check if there is an image set for the sidebar's background\n md.checkSidebarImage();\n md.initMinimizeSidebar();\n\n // Activate bootstrap-select\n if ($(\".selectpicker\").length != 0) {\n $(\".selectpicker\").selectpicker();\n }\n\n // Activate the tooltips\n $('[rel=\"tooltip\"]').tooltip();\n\n //removed class label and label-color from tag span and replaced with data-color\n var tagClass = $('.tagsinput').data('color');\n $('.tagsinput').tagsinput({\n tagClass: ' tag-' + tagClass + ' '\n });\n\n // Activate bootstrap-select\n $(\".select\").dropdown({\n \"dropdownClass\": \"dropdown-menu\",\n \"optionClass\": \"\"\n });\n $('.form-control').on(\"focus\", function () {\n $(this).parent('.input-group').addClass(\"input-group-focus\");\n }).on(\"blur\", function () {\n $(this).parent(\".input-group\").removeClass(\"input-group-focus\");\n });\n if (breakCards == true) {\n // We break the cards headers if there is too much stress on them :-)\n $('[data-header-animation=\"true\"]').each(function () {\n var $fix_button = $(this);\n var $card = $(this).parent('.card');\n $card.find('.fix-broken-card').click(function () {\n console.log(this);\n var $header = $(this).parent().parent().siblings('.card-header, .card-image');\n $header.removeClass('hinge').addClass('fadeInDown');\n $card.attr('data-count', 0);\n setTimeout(function () {\n $header.removeClass('fadeInDown animate');\n }, 480);\n });\n $card.mouseenter(function () {\n var $this = $(this);\n hover_count = parseInt($this.attr('data-count'), 10) + 1 || 0;\n $this.attr(\"data-count\", hover_count);\n if (hover_count >= 20) {\n $(this).children('.card-header, .card-image').addClass('hinge animated');\n }\n });\n });\n }\n});\n\n// activate collapse right menu when the windows is resized\n$(window).resize(function () {\n md.initSidebarsCheck();\n\n // reset the seq for charts drawing animations\n seq = seq2 = 0;\n});\nmd = {\n misc: {\n navbar_menu_visible: 0,\n active_collapse: true,\n disabled_collapse_init: 0\n },\n checkSidebarImage: function checkSidebarImage() {\n $sidebar = $('.sidebar');\n image_src = $sidebar.data('image');\n if (image_src !== undefined) {\n sidebar_container = '<div class=\"sidebar-background\" style=\"background-image: url(' + image_src + ') \"/>';\n $sidebar.append(sidebar_container);\n }\n },\n initSliders: function initSliders() {\n // Sliders for demo purpose\n $('#sliderRegular').noUiSlider({\n start: 40,\n connect: \"lower\",\n range: {\n min: 0,\n max: 100\n }\n });\n $('#sliderDouble').noUiSlider({\n start: [20, 60],\n connect: true,\n range: {\n min: 0,\n max: 100\n }\n });\n },\n initSidebarsCheck: function initSidebarsCheck() {\n if ($(window).width() <= 991) {\n if ($sidebar.length != 0) {\n md.initRightMenu();\n } else {\n md.initBootstrapNavbarMenu();\n }\n }\n },\n initMinimizeSidebar: function initMinimizeSidebar() {\n // when we are on a Desktop Screen and the collapse is triggered we check if the sidebar mini is active or not. If it is active then we don't let the collapse to show the elements because the elements from the collapse are showing on the hover state over the icons in sidebar mini, not on the click.\n $('.sidebar .collapse').on('show.bs.collapse', function () {\n if ($(window).width() > 991 && md.misc.sidebar_mini_active == true) {\n return false;\n } else {\n return true;\n }\n });\n $('#minimizeSidebar').click(function () {\n var $btn = $(this);\n if (md.misc.sidebar_mini_active == true) {\n $('body').removeClass('sidebar-mini');\n md.misc.sidebar_mini_active = false;\n if (isWindows) {\n $('.sidebar .sidebar-wrapper, .main-panel').perfectScrollbar();\n }\n } else {\n $('.sidebar .collapse').collapse('hide').on('hidden.bs.collapse', function () {\n $(this).css('height', 'auto');\n });\n if (isWindows) {\n $('.sidebar .sidebar-wrapper, .main-panel').perfectScrollbar('destroy');\n }\n setTimeout(function () {\n $('body').addClass('sidebar-mini');\n $('.sidebar .collapse').css('height', 'auto');\n md.misc.sidebar_mini_active = true;\n }, 300);\n }\n\n // we simulate the window Resize so the charts will get updated in realtime.\n var simulateWindowResize = setInterval(function () {\n window.dispatchEvent(new Event('resize'));\n }, 180);\n\n // we stop the simulation of Window Resize after the animations are completed\n setTimeout(function () {\n clearInterval(simulateWindowResize);\n }, 1000);\n });\n },\n checkScrollForTransparentNavbar: debounce(function () {\n if ($(document).scrollTop() > 260) {\n if (transparent) {\n transparent = false;\n $('.navbar-color-on-scroll').removeClass('navbar-transparent');\n }\n } else {\n if (!transparent) {\n transparent = true;\n $('.navbar-color-on-scroll').addClass('navbar-transparent');\n }\n }\n }, 17),\n initRightMenu: debounce(function () {\n $sidebar_wrapper = $('.sidebar-wrapper');\n if (!mobile_menu_initialized) {\n $navbar = $('nav').find('.navbar-collapse').first().clone(true);\n nav_content = '';\n mobile_menu_content = '';\n $navbar.children('ul').each(function () {\n content_buff = $(this).html();\n nav_content = nav_content + content_buff;\n });\n nav_content = '<ul class=\"nav nav-mobile-menu\">' + nav_content + '</ul>';\n $navbar_form = $('nav').find('.navbar-form').clone(true);\n $sidebar_nav = $sidebar_wrapper.find(' > .nav');\n\n // insert the navbar form before the sidebar list\n $nav_content = $(nav_content);\n $nav_content.insertBefore($sidebar_nav);\n $navbar_form.insertBefore($nav_content);\n $(\".sidebar-wrapper .dropdown .dropdown-menu > li > a\").click(function (event) {\n event.stopPropagation();\n });\n\n // simulate resize so all the charts/maps will be redrawn\n window.dispatchEvent(new Event('resize'));\n mobile_menu_initialized = true;\n } else {\n if ($(window).width() > 991) {\n // reset all the additions that we made for the sidebar wrapper only if the screen is bigger than 991px\n $sidebar_wrapper.find('.navbar-form').remove();\n $sidebar_wrapper.find('.nav-mobile-menu').remove();\n mobile_menu_initialized = false;\n }\n }\n if (!toggle_initialized) {\n $toggle = $('.navbar-toggle');\n $toggle.click(function () {\n if (mobile_menu_visible == 1) {\n $('html').removeClass('nav-open');\n $('.close-layer').remove();\n setTimeout(function () {\n $toggle.removeClass('toggled');\n }, 400);\n mobile_menu_visible = 0;\n } else {\n setTimeout(function () {\n $toggle.addClass('toggled');\n }, 430);\n main_panel_height = $('.main-panel')[0].scrollHeight;\n $layer = $('<div class=\"close-layer\"></div>');\n $layer.css('height', main_panel_height + 'px');\n $layer.appendTo(\".main-panel\");\n setTimeout(function () {\n $layer.addClass('visible');\n }, 100);\n $layer.click(function () {\n $('html').removeClass('nav-open');\n mobile_menu_visible = 0;\n $layer.removeClass('visible');\n setTimeout(function () {\n $layer.remove();\n $toggle.removeClass('toggled');\n }, 400);\n });\n $('html').addClass('nav-open');\n mobile_menu_visible = 1;\n }\n });\n toggle_initialized = true;\n }\n }, 200),\n initBootstrapNavbarMenu: debounce(function () {\n if (!bootstrap_nav_initialized) {\n $navbar = $('nav').find('.navbar-collapse').first().clone(true);\n nav_content = '';\n mobile_menu_content = '';\n\n //add the content from the regular header to the mobile menu\n $navbar.children('ul').each(function () {\n content_buff = $(this).html();\n nav_content = nav_content + content_buff;\n });\n nav_content = '<ul class=\"nav nav-mobile-menu\">' + nav_content + '</ul>';\n $navbar.html(nav_content);\n $navbar.addClass('off-canvas-sidebar');\n\n // append it to the body, so it will come from the right side of the screen\n $('body').append($navbar);\n $toggle = $('.navbar-toggle');\n $navbar.find('a').removeClass('btn btn-round btn-default');\n $navbar.find('button').removeClass('btn-round btn-fill btn-info btn-primary btn-success btn-danger btn-warning btn-neutral');\n $navbar.find('button').addClass('btn-simple btn-block');\n $toggle.click(function () {\n if (mobile_menu_visible == 1) {\n $('html').removeClass('nav-open');\n $('.close-layer').remove();\n setTimeout(function () {\n $toggle.removeClass('toggled');\n }, 400);\n mobile_menu_visible = 0;\n } else {\n setTimeout(function () {\n $toggle.addClass('toggled');\n }, 430);\n $layer = $('<div class=\"close-layer\"></div>');\n $layer.appendTo(\".wrapper-full-page\");\n setTimeout(function () {\n $layer.addClass('visible');\n }, 100);\n $layer.click(function () {\n $('html').removeClass('nav-open');\n mobile_menu_visible = 0;\n $layer.removeClass('visible');\n setTimeout(function () {\n $layer.remove();\n $toggle.removeClass('toggled');\n }, 400);\n });\n $('html').addClass('nav-open');\n mobile_menu_visible = 1;\n }\n });\n bootstrap_nav_initialized = true;\n }\n }, 500),\n startAnimationForLineChart: function startAnimationForLineChart(chart) {\n chart.on('draw', function (data) {\n if (data.type === 'line' || data.type === 'area') {\n data.element.animate({\n d: {\n begin: 600,\n dur: 700,\n from: data.path.clone().scale(1, 0).translate(0, data.chartRect.height()).stringify(),\n to: data.path.clone().stringify(),\n easing: Chartist.Svg.Easing.easeOutQuint\n }\n });\n } else if (data.type === 'point') {\n seq++;\n data.element.animate({\n opacity: {\n begin: seq * delays,\n dur: durations,\n from: 0,\n to: 1,\n easing: 'ease'\n }\n });\n }\n });\n seq = 0;\n },\n startAnimationForBarChart: function startAnimationForBarChart(chart) {\n chart.on('draw', function (data) {\n if (data.type === 'bar') {\n seq2++;\n data.element.animate({\n opacity: {\n begin: seq2 * delays2,\n dur: durations2,\n from: 0,\n to: 1,\n easing: 'ease'\n }\n });\n }\n });\n seq2 = 0;\n }\n};\n\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\n\nfunction debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n timeout = null;\n if (!immediate) func.apply(context, args);\n }, wait);\n if (immediate && !timeout) func.apply(context, args);\n };\n}\n;\n\n// close notification on close button click\n$(document).ready(function () {\n $(\".close\").click(function () {\n $(\".alert-close\").hide();\n });\n});\n// Hide alerts on the credit card payment page\n$(document).ready(function () {\n $(\".payment-alert\").hide();\n});\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/material-dashboard.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/material.min.js":
/*!*********************************************************!*\
!*** ./buyercall/assets/scripts/vendor/material.min.js ***!
\*********************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("!function (t) {\n function o(t) {\n return \"undefined\" == typeof t.which ? !0 : \"number\" == typeof t.which && t.which > 0 ? !t.ctrlKey && !t.metaKey && !t.altKey && 8 != t.which && 9 != t.which && 13 != t.which && 16 != t.which && 17 != t.which && 20 != t.which && 27 != t.which : !1;\n }\n function i(o) {\n var i = t(o);\n i.prop(\"disabled\") || i.closest(\".form-group\").addClass(\"is-focused\");\n }\n function n(o) {\n o.closest(\"label\").hover(function () {\n var o = t(this).find(\"input\");\n o.prop(\"disabled\") || i(o);\n }, function () {\n e(t(this).find(\"input\"));\n });\n }\n function e(o) {\n t(o).closest(\".form-group\").removeClass(\"is-focused\");\n }\n t.expr[\":\"].notmdproc = function (o) {\n return t(o).data(\"mdproc\") ? !1 : !0;\n }, t.material = {\n options: {\n validate: !0,\n input: !0,\n ripples: !0,\n checkbox: !0,\n togglebutton: !0,\n radio: !0,\n arrive: !0,\n autofill: !1,\n withRipples: [\".btn:not(.btn-link)\", \".card-image\", \".navbar a:not(.withoutripple)\", \".footer a:not(.withoutripple)\", \".dropdown-menu a\", \".nav-tabs a:not(.withoutripple)\", \".withripple\", \".pagination li:not(.active):not(.disabled) a:not(.withoutripple)\"].join(\",\"),\n inputElements: \"input.form-control, textarea.form-control, select.form-control\",\n checkboxElements: \".checkbox > label > input[type=checkbox]\",\n togglebuttonElements: \".togglebutton > label > input[type=checkbox]\",\n radioElements: \".radio > label > input[type=radio]\"\n },\n checkbox: function checkbox(o) {\n var i = t(o ? o : this.options.checkboxElements).filter(\":notmdproc\").data(\"mdproc\", !0).after(\"<span class='checkbox-material'><span class='check'></span></span>\");\n n(i);\n },\n togglebutton: function togglebutton(o) {\n var i = t(o ? o : this.options.togglebuttonElements).filter(\":notmdproc\").data(\"mdproc\", !0).after(\"<span class='toggle'></span>\");\n n(i);\n },\n radio: function radio(o) {\n var i = t(o ? o : this.options.radioElements).filter(\":notmdproc\").data(\"mdproc\", !0).after(\"<span class='circle'></span><span class='check'></span>\");\n n(i);\n },\n input: function input(o) {\n t(o ? o : this.options.inputElements).filter(\":notmdproc\").data(\"mdproc\", !0).each(function () {\n var o = t(this),\n i = o.closest(\".form-group\");\n 0 === i.length && (o.wrap(\"<div class='form-group'></div>\"), i = o.closest(\".form-group\")), o.attr(\"data-hint\") && (o.after(\"<p class='help-block'>\" + o.attr(\"data-hint\") + \"</p>\"), o.removeAttr(\"data-hint\"));\n var n = {\n \"input-lg\": \"form-group-lg\",\n \"input-sm\": \"form-group-sm\"\n };\n if (t.each(n, function (t, n) {\n o.hasClass(t) && (o.removeClass(t), i.addClass(n));\n }), o.hasClass(\"floating-label\")) {\n var e = o.attr(\"placeholder\");\n o.attr(\"placeholder\", null).removeClass(\"floating-label\");\n var a = o.attr(\"id\"),\n r = \"\";\n a && (r = \"for='\" + a + \"'\"), i.addClass(\"label-floating\"), o.after(\"<label \" + r + \"class='control-label'>\" + e + \"</label>\");\n }\n (null === o.val() || \"undefined\" == o.val() || \"\" === o.val()) && i.addClass(\"is-empty\"), i.append(\"<span class='material-input'></span>\"), i.find(\"input[type=file]\").length > 0 && i.addClass(\"is-fileinput\");\n });\n },\n attachInputEventHandlers: function attachInputEventHandlers() {\n var n = this.options.validate;\n t(document).on(\"change\", \".checkbox input[type=checkbox]\", function () {\n t(this).blur();\n }).on(\"keydown paste\", \".form-control\", function (i) {\n o(i) && t(this).closest(\".form-group\").removeClass(\"is-empty\");\n }).on(\"keyup change\", \".form-control\", function () {\n var o = t(this),\n i = o.closest(\".form-group\"),\n e = \"undefined\" == typeof o[0].checkValidity || o[0].checkValidity();\n \"\" === o.val() ? i.addClass(\"is-empty\") : i.removeClass(\"is-empty\"), n && (e ? i.removeClass(\"has-error\") : i.addClass(\"has-error\"));\n }).on(\"focus\", \".form-control, .form-group.is-fileinput\", function () {\n i(this);\n }).on(\"blur\", \".form-control, .form-group.is-fileinput\", function () {\n e(this);\n }).on(\"change\", \".form-group input\", function () {\n var o = t(this);\n if (\"file\" != o.attr(\"type\")) {\n var i = o.closest(\".form-group\"),\n n = o.val();\n n ? i.removeClass(\"is-empty\") : i.addClass(\"is-empty\");\n }\n }).on(\"change\", \".form-group.is-fileinput input[type='file']\", function () {\n var o = t(this),\n i = o.closest(\".form-group\"),\n n = \"\";\n t.each(this.files, function (t, o) {\n n += o.name + \", \";\n }), n = n.substring(0, n.length - 2), n ? i.removeClass(\"is-empty\") : i.addClass(\"is-empty\"), i.find(\"input.form-control[readonly]\").val(n);\n });\n },\n ripples: function ripples(o) {\n t(o ? o : this.options.withRipples).ripples();\n },\n autofill: function autofill() {\n var o = setInterval(function () {\n t(\"input[type!=checkbox]\").each(function () {\n var o = t(this);\n o.val() && o.val() !== o.attr(\"value\") && o.trigger(\"change\");\n });\n }, 100);\n setTimeout(function () {\n clearInterval(o);\n }, 1e4);\n },\n attachAutofillEventHandlers: function attachAutofillEventHandlers() {\n var o;\n t(document).on(\"focus\", \"input\", function () {\n var i = t(this).parents(\"form\").find(\"input\").not(\"[type=file]\");\n o = setInterval(function () {\n i.each(function () {\n var o = t(this);\n o.val() !== o.attr(\"value\") && o.trigger(\"change\");\n });\n }, 100);\n }).on(\"blur\", \".form-group input\", function () {\n clearInterval(o);\n });\n },\n init: function init(o) {\n this.options = t.extend({}, this.options, o);\n var i = t(document);\n t.fn.ripples && this.options.ripples && this.ripples(), this.options.input && (this.input(), this.attachInputEventHandlers()), this.options.checkbox && this.checkbox(), this.options.togglebutton && this.togglebutton(), this.options.radio && this.radio(), this.options.autofill && (this.autofill(), this.attachAutofillEventHandlers()), document.arrive && this.options.arrive && (t.fn.ripples && this.options.ripples && i.arrive(this.options.withRipples, function () {\n t.material.ripples(t(this));\n }), this.options.input && i.arrive(this.options.inputElements, function () {\n t.material.input(t(this));\n }), this.options.checkbox && i.arrive(this.options.checkboxElements, function () {\n t.material.checkbox(t(this));\n }), this.options.radio && i.arrive(this.options.radioElements, function () {\n t.material.radio(t(this));\n }), this.options.togglebutton && i.arrive(this.options.togglebuttonElements, function () {\n t.material.togglebutton(t(this));\n }));\n }\n };\n}(jQuery), function (t, o, i, n) {\n \"use strict\";\n\n function e(o, i) {\n r = this, this.element = t(o), this.options = t.extend({}, s, i), this._defaults = s, this._name = a, this.init();\n }\n var a = \"ripples\",\n r = null,\n s = {};\n e.prototype.init = function () {\n var i = this.element;\n i.on(\"mousedown touchstart\", function (n) {\n if (!r.isTouch() || \"mousedown\" !== n.type) {\n i.find(\".ripple-container\").length || i.append('<div class=\"ripple-container\"></div>');\n var e = i.children(\".ripple-container\"),\n a = r.getRelY(e, n),\n s = r.getRelX(e, n);\n if (a || s) {\n var l = r.getRipplesColor(i),\n p = t(\"<div></div>\");\n p.addClass(\"ripple\").css({\n left: s,\n top: a,\n \"background-color\": l\n }), e.append(p), function () {\n return o.getComputedStyle(p[0]).opacity;\n }(), r.rippleOn(i, p), setTimeout(function () {\n r.rippleEnd(p);\n }, 500), i.on(\"mouseup mouseleave touchend\", function () {\n p.data(\"mousedown\", \"off\"), \"off\" === p.data(\"animating\") && r.rippleOut(p);\n });\n }\n }\n });\n }, e.prototype.getNewSize = function (t, o) {\n return Math.max(t.outerWidth(), t.outerHeight()) / o.outerWidth() * 2.5;\n }, e.prototype.getRelX = function (t, o) {\n var i = t.offset();\n return r.isTouch() ? (o = o.originalEvent, 1 === o.touches.length ? o.touches[0].pageX - i.left : !1) : o.pageX - i.left;\n }, e.prototype.getRelY = function (t, o) {\n var i = t.offset();\n return r.isTouch() ? (o = o.originalEvent, 1 === o.touches.length ? o.touches[0].pageY - i.top : !1) : o.pageY - i.top;\n }, e.prototype.getRipplesColor = function (t) {\n var i = t.data(\"ripple-color\") ? t.data(\"ripple-color\") : o.getComputedStyle(t[0]).color;\n return i;\n }, e.prototype.hasTransitionSupport = function () {\n var t = i.body || i.documentElement,\n o = t.style,\n e = o.transition !== n || o.WebkitTransition !== n || o.MozTransition !== n || o.MsTransition !== n || o.OTransition !== n;\n return e;\n }, e.prototype.isTouch = function () {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n }, e.prototype.rippleEnd = function (t) {\n t.data(\"animating\", \"off\"), \"off\" === t.data(\"mousedown\") && r.rippleOut(t);\n }, e.prototype.rippleOut = function (t) {\n t.off(), r.hasTransitionSupport() ? t.addClass(\"ripple-out\") : t.animate({\n opacity: 0\n }, 100, function () {\n t.trigger(\"transitionend\");\n }), t.on(\"transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd\", function () {\n t.remove();\n });\n }, e.prototype.rippleOn = function (t, o) {\n var i = r.getNewSize(t, o);\n r.hasTransitionSupport() ? o.css({\n \"-ms-transform\": \"scale(\" + i + \")\",\n \"-moz-transform\": \"scale(\" + i + \")\",\n \"-webkit-transform\": \"scale(\" + i + \")\",\n transform: \"scale(\" + i + \")\"\n }).addClass(\"ripple-on\").data(\"animating\", \"on\").data(\"mousedown\", \"on\") : o.animate({\n width: 2 * Math.max(t.outerWidth(), t.outerHeight()),\n height: 2 * Math.max(t.outerWidth(), t.outerHeight()),\n \"margin-left\": -1 * Math.max(t.outerWidth(), t.outerHeight()),\n \"margin-top\": -1 * Math.max(t.outerWidth(), t.outerHeight()),\n opacity: .2\n }, 500, function () {\n o.trigger(\"transitionend\");\n });\n }, t.fn.ripples = function (o) {\n return this.each(function () {\n t.data(this, \"plugin_\" + a) || t.data(this, \"plugin_\" + a, new e(this, o));\n });\n };\n}(jQuery, window, document);\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/material.min.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/nouislider.min.js":
/*!***********************************************************!*\
!*** ./buyercall/assets/scripts/vendor/nouislider.min.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*\r\n\r\n$.Link (part of noUiSlider) - WTFPL */\n(function (c) {\n function m(a, c, d) {\n if ((a[c] || a[d]) && a[c] === a[d]) throw Error(\"(Link) '\" + c + \"' can't match '\" + d + \"'.'\");\n }\n function r(a) {\n void 0 === a && (a = {});\n if (\"object\" !== _typeof(a)) throw Error(\"(Format) 'format' option must be an object.\");\n var h = {};\n c(u).each(function (c, n) {\n if (void 0 === a[n]) h[n] = A[c];else if (_typeof(a[n]) === _typeof(A[c])) {\n if (\"decimals\" === n && (0 > a[n] || 7 < a[n])) throw Error(\"(Format) 'format.decimals' option must be between 0 and 7.\");\n h[n] = a[n];\n } else throw Error(\"(Format) 'format.\" + n + \"' must be a \" + _typeof(A[c]) + \".\");\n });\n m(h, \"mark\", \"thousand\");\n m(h, \"prefix\", \"negative\");\n m(h, \"prefix\", \"negativeBefore\");\n this.r = h;\n }\n function k(a, h) {\n \"object\" !== _typeof(a) && c.error(\"(Link) Initialize with an object.\");\n return new k.prototype.p(a.target || function () {}, a.method, a.format || {}, h);\n }\n var u = \"decimals mark thousand prefix postfix encoder decoder negative negativeBefore to from\".split(\" \"),\n A = [2, \".\", \"\", \"\", \"\", function (a) {\n return a;\n }, function (a) {\n return a;\n }, \"-\", \"\", function (a) {\n return a;\n }, function (a) {\n return a;\n }];\n r.prototype.a = function (a) {\n return this.r[a];\n };\n r.prototype.L = function (a) {\n function c(a) {\n return a.split(\"\").reverse().join(\"\");\n }\n a = this.a(\"encoder\")(a);\n var d = this.a(\"decimals\"),\n n = \"\",\n k = \"\",\n m = \"\",\n r = \"\";\n 0 === parseFloat(a.toFixed(d)) && (a = \"0\");\n 0 > a && (n = this.a(\"negative\"), k = this.a(\"negativeBefore\"));\n a = Math.abs(a).toFixed(d).toString();\n a = a.split(\".\");\n this.a(\"thousand\") ? (m = c(a[0]).match(/.{1,3}/g), m = c(m.join(c(this.a(\"thousand\"))))) : m = a[0];\n this.a(\"mark\") && 1 < a.length && (r = this.a(\"mark\") + a[1]);\n return this.a(\"to\")(k + this.a(\"prefix\") + n + m + r + this.a(\"postfix\"));\n };\n r.prototype.w = function (a) {\n function c(a) {\n return a.replace(/[\\-\\/\\\\\\^$*+?.()|\\[\\]{}]/g, \"\\\\$&\");\n }\n var d;\n if (null === a || void 0 === a) return !1;\n a = this.a(\"from\")(a);\n a = a.toString();\n d = a.replace(RegExp(\"^\" + c(this.a(\"negativeBefore\"))), \"\");\n a !== d ? (a = d, d = \"-\") : d = \"\";\n a = a.replace(RegExp(\"^\" + c(this.a(\"prefix\"))), \"\");\n this.a(\"negative\") && (d = \"\", a = a.replace(RegExp(\"^\" + c(this.a(\"negative\"))), \"-\"));\n a = a.replace(RegExp(c(this.a(\"postfix\")) + \"$\"), \"\").replace(RegExp(c(this.a(\"thousand\")), \"g\"), \"\").replace(this.a(\"mark\"), \".\");\n a = this.a(\"decoder\")(parseFloat(d + a));\n return isNaN(a) ? !1 : a;\n };\n k.prototype.K = function (a, h) {\n this.method = h || \"html\";\n this.j = c(a.replace(\"-tooltip-\", \"\") || \"<div/>\")[0];\n };\n k.prototype.H = function (a) {\n this.method = \"val\";\n this.j = document.createElement(\"input\");\n this.j.name = a;\n this.j.type = \"hidden\";\n };\n k.prototype.G = function (a) {\n function h(a, c) {\n return [c ? null : a, c ? a : null];\n }\n var d = this;\n this.method = \"val\";\n this.target = a.on(\"change\", function (a) {\n d.B.val(h(c(a.target).val(), d.t), {\n link: d,\n set: !0\n });\n });\n };\n k.prototype.p = function (a, h, d, k) {\n this.g = d;\n this.update = !k;\n if (\"string\" === typeof a && 0 === a.indexOf(\"-tooltip-\")) this.K(a, h);else if (\"string\" === typeof a && 0 !== a.indexOf(\"-\")) this.H(a);else if (\"function\" === typeof a) this.target = !1, this.method = a;else {\n if (a instanceof c || c.zepto && c.zepto.isZ(a)) {\n if (!h) {\n if (a.is(\"input, select, textarea\")) {\n this.G(a);\n return;\n }\n h = \"html\";\n }\n if (\"function\" === typeof h || \"string\" === typeof h && a[h]) {\n this.method = h;\n this.target = a;\n return;\n }\n }\n throw new RangeError(\"(Link) Invalid Link.\");\n }\n };\n k.prototype.write = function (a, c, d, k) {\n if (!this.update || !1 !== k) if (this.u = a, this.F = a = this.format(a), \"function\" === typeof this.method) this.method.call(this.target[0] || d[0], a, c, d);else this.target[this.method](a, c, d);\n };\n k.prototype.q = function (a) {\n this.g = new r(c.extend({}, a, this.g instanceof r ? this.g.r : this.g));\n };\n k.prototype.J = function (a) {\n this.B = a;\n };\n k.prototype.I = function (a) {\n this.t = a;\n };\n k.prototype.format = function (a) {\n return this.g.L(a);\n };\n k.prototype.A = function (a) {\n return this.g.w(a);\n };\n k.prototype.p.prototype = k.prototype;\n c.Link = k;\n})(window.jQuery || window.Zepto); /*\r\n $.fn.noUiSlider - WTFPL - refreshless.com/nouislider/ */\n(function (c) {\n function m(e) {\n return \"number\" === typeof e && !isNaN(e) && isFinite(e);\n }\n function r(e) {\n return c.isArray(e) ? e : [e];\n }\n function k(e, b) {\n e.addClass(b);\n setTimeout(function () {\n e.removeClass(b);\n }, 300);\n }\n function u(e, b) {\n return 100 * b / (e[1] - e[0]);\n }\n function A(e, b) {\n if (b >= e.d.slice(-1)[0]) return 100;\n for (var a = 1, c, f, d; b >= e.d[a];) a++;\n c = e.d[a - 1];\n f = e.d[a];\n d = e.c[a - 1];\n c = [c, f];\n return d + u(c, 0 > c[0] ? b + Math.abs(c[0]) : b - c[0]) / (100 / (e.c[a] - d));\n }\n function a(e, b) {\n if (100 <= b) return e.d.slice(-1)[0];\n for (var a = 1, c, f, d; b >= e.c[a];) a++;\n c = e.d[a - 1];\n f = e.d[a];\n d = e.c[a - 1];\n c = [c, f];\n return 100 / (e.c[a] - d) * (b - d) * (c[1] - c[0]) / 100 + c[0];\n }\n function h(a, b) {\n for (var c = 1, g; (a.dir ? 100 - b : b) >= a.c[c];) c++;\n if (a.m) return g = a.c[c - 1], c = a.c[c], b - g > (c - g) / 2 ? c : g;\n a.h[c - 1] ? (g = a.h[c - 1], c = a.c[c - 1] + Math.round((b - a.c[c - 1]) / g) * g) : c = b;\n return c;\n }\n function d(a, b) {\n if (!m(b)) throw Error(\"noUiSlider: 'step' is not numeric.\");\n a.h[0] = b;\n }\n function n(a, b) {\n if (\"object\" !== _typeof(b) || c.isArray(b)) throw Error(\"noUiSlider: 'range' is not an object.\");\n if (void 0 === b.min || void 0 === b.max) throw Error(\"noUiSlider: Missing 'min' or 'max' in 'range'.\");\n c.each(b, function (b, g) {\n var d;\n \"number\" === typeof g && (g = [g]);\n if (!c.isArray(g)) throw Error(\"noUiSlider: 'range' contains invalid value.\");\n d = \"min\" === b ? 0 : \"max\" === b ? 100 : parseFloat(b);\n if (!m(d) || !m(g[0])) throw Error(\"noUiSlider: 'range' value isn't numeric.\");\n a.c.push(d);\n a.d.push(g[0]);\n d ? a.h.push(isNaN(g[1]) ? !1 : g[1]) : isNaN(g[1]) || (a.h[0] = g[1]);\n });\n c.each(a.h, function (b, c) {\n if (!c) return !0;\n a.h[b] = u([a.d[b], a.d[b + 1]], c) / (100 / (a.c[b + 1] - a.c[b]));\n });\n }\n function E(a, b) {\n \"number\" === typeof b && (b = [b]);\n if (!c.isArray(b) || !b.length || 2 < b.length) throw Error(\"noUiSlider: 'start' option is incorrect.\");\n a.b = b.length;\n a.start = b;\n }\n function I(a, b) {\n a.m = b;\n if (\"boolean\" !== typeof b) throw Error(\"noUiSlider: 'snap' option must be a boolean.\");\n }\n function J(a, b) {\n if (\"lower\" === b && 1 === a.b) a.i = 1;else if (\"upper\" === b && 1 === a.b) a.i = 2;else if (!0 === b && 2 === a.b) a.i = 3;else if (!1 === b) a.i = 0;else throw Error(\"noUiSlider: 'connect' option doesn't match handle count.\");\n }\n function D(a, b) {\n switch (b) {\n case \"horizontal\":\n a.k = 0;\n break;\n case \"vertical\":\n a.k = 1;\n break;\n default:\n throw Error(\"noUiSlider: 'orientation' option is invalid.\");\n }\n }\n function K(a, b) {\n if (2 < a.c.length) throw Error(\"noUiSlider: 'margin' option is only supported on linear sliders.\");\n a.margin = u(a.d, b);\n if (!m(b)) throw Error(\"noUiSlider: 'margin' option must be numeric.\");\n }\n function L(a, b) {\n switch (b) {\n case \"ltr\":\n a.dir = 0;\n break;\n case \"rtl\":\n a.dir = 1;\n a.i = [0, 2, 1, 3][a.i];\n break;\n default:\n throw Error(\"noUiSlider: 'direction' option was not recognized.\");\n }\n }\n function M(a, b) {\n if (\"string\" !== typeof b) throw Error(\"noUiSlider: 'behaviour' must be a string containing options.\");\n var c = 0 <= b.indexOf(\"snap\");\n a.n = {\n s: 0 <= b.indexOf(\"tap\") || c,\n extend: 0 <= b.indexOf(\"extend\"),\n v: 0 <= b.indexOf(\"drag\"),\n fixed: 0 <= b.indexOf(\"fixed\"),\n m: c\n };\n }\n function N(a, b, d) {\n a.o = [b.lower, b.upper];\n a.g = b.format;\n c.each(a.o, function (a, e) {\n if (!c.isArray(e)) throw Error(\"noUiSlider: 'serialization.\" + (a ? \"upper\" : \"lower\") + \"' must be an array.\");\n c.each(e, function () {\n if (!(this instanceof c.Link)) throw Error(\"noUiSlider: 'serialization.\" + (a ? \"upper\" : \"lower\") + \"' can only contain Link instances.\");\n this.I(a);\n this.J(d);\n this.q(b.format);\n });\n });\n a.dir && 1 < a.b && a.o.reverse();\n }\n function O(a, b) {\n var f = {\n c: [],\n d: [],\n h: [!1],\n margin: 0\n },\n g;\n g = {\n step: {\n e: !1,\n f: d\n },\n start: {\n e: !0,\n f: E\n },\n connect: {\n e: !0,\n f: J\n },\n direction: {\n e: !0,\n f: L\n },\n range: {\n e: !0,\n f: n\n },\n snap: {\n e: !1,\n f: I\n },\n orientation: {\n e: !1,\n f: D\n },\n margin: {\n e: !1,\n f: K\n },\n behaviour: {\n e: !0,\n f: M\n },\n serialization: {\n e: !0,\n f: N\n }\n };\n a = c.extend({\n connect: !1,\n direction: \"ltr\",\n behaviour: \"tap\",\n orientation: \"horizontal\"\n }, a);\n a.serialization = c.extend({\n lower: [],\n upper: [],\n format: {}\n }, a.serialization);\n c.each(g, function (c, d) {\n if (void 0 === a[c]) {\n if (d.e) throw Error(\"noUiSlider: '\" + c + \"' is required.\");\n return !0;\n }\n d.f(f, a[c], b);\n });\n f.style = f.k ? \"top\" : \"left\";\n return f;\n }\n function P(a, b) {\n var d = c(\"<div><div/></div>\").addClass(f[2]),\n g = [\"-lower\", \"-upper\"];\n a.dir && g.reverse();\n d.children().addClass(f[3] + \" \" + f[3] + g[b]);\n return d;\n }\n function Q(a, b) {\n b.j && (b = new c.Link({\n target: c(b.j).clone().appendTo(a),\n method: b.method,\n format: b.g\n }, !0));\n return b;\n }\n function R(a, b) {\n var d,\n f = [];\n for (d = 0; d < a.b; d++) {\n var k = f,\n h = d,\n m = a.o[d],\n n = b[d].children(),\n r = a.g,\n s = void 0,\n v = [],\n s = new c.Link({}, !0);\n s.q(r);\n v.push(s);\n for (s = 0; s < m.length; s++) v.push(Q(n, m[s]));\n k[h] = v;\n }\n return f;\n }\n function S(a, b, c) {\n switch (a) {\n case 1:\n b.addClass(f[7]);\n c[0].addClass(f[6]);\n break;\n case 3:\n c[1].addClass(f[6]);\n case 2:\n c[0].addClass(f[7]);\n case 0:\n b.addClass(f[6]);\n }\n }\n function T(a, b) {\n var c,\n d = [];\n for (c = 0; c < a.b; c++) d.push(P(a, c).appendTo(b));\n return d;\n }\n function U(a, b) {\n b.addClass([f[0], f[8 + a.dir], f[4 + a.k]].join(\" \"));\n return c(\"<div/>\").appendTo(b).addClass(f[1]);\n }\n function V(d, b, m) {\n function g() {\n return t[[\"width\", \"height\"][b.k]]();\n }\n function n(a) {\n var b,\n c = [q.val()];\n for (b = 0; b < a.length; b++) q.trigger(a[b], c);\n }\n function u(d, p, e) {\n var g = d[0] !== l[0][0] ? 1 : 0,\n H = x[0] + b.margin,\n k = x[1] - b.margin;\n e && 1 < l.length && (p = g ? Math.max(p, H) : Math.min(p, k));\n 100 > p && (p = h(b, p));\n p = Math.max(Math.min(parseFloat(p.toFixed(7)), 100), 0);\n if (p === x[g]) return 1 === l.length ? !1 : p === H || p === k ? 0 : !1;\n d.css(b.style, p + \"%\");\n d.is(\":first-child\") && d.toggleClass(f[17], 50 < p);\n x[g] = p;\n b.dir && (p = 100 - p);\n c(y[g]).each(function () {\n this.write(a(b, p), d.children(), q);\n });\n return !0;\n }\n function B(a, b, c) {\n c || k(q, f[14]);\n u(a, b, !1);\n n([\"slide\", \"set\", \"change\"]);\n }\n function w(a, c, d, e) {\n a = a.replace(/\\s/g, \".nui \") + \".nui\";\n c.on(a, function (a) {\n var c = q.attr(\"disabled\");\n if (q.hasClass(f[14]) || void 0 !== c && null !== c) return !1;\n a.preventDefault();\n var c = 0 === a.type.indexOf(\"touch\"),\n p = 0 === a.type.indexOf(\"mouse\"),\n F = 0 === a.type.indexOf(\"pointer\"),\n g,\n k,\n l = a;\n 0 === a.type.indexOf(\"MSPointer\") && (F = !0);\n a.originalEvent && (a = a.originalEvent);\n c && (g = a.changedTouches[0].pageX, k = a.changedTouches[0].pageY);\n if (p || F) F || void 0 !== window.pageXOffset || (window.pageXOffset = document.documentElement.scrollLeft, window.pageYOffset = document.documentElement.scrollTop), g = a.clientX + window.pageXOffset, k = a.clientY + window.pageYOffset;\n l.C = [g, k];\n l.cursor = p;\n a = l;\n a.l = a.C[b.k];\n d(a, e);\n });\n }\n function C(a, c) {\n var b = c.b || l,\n d,\n e = !1,\n e = 100 * (a.l - c.start) / g(),\n f = b[0][0] !== l[0][0] ? 1 : 0;\n var k = c.D;\n d = e + k[0];\n e += k[1];\n 1 < b.length ? (0 > d && (e += Math.abs(d)), 100 < e && (d -= e - 100), d = [Math.max(Math.min(d, 100), 0), Math.max(Math.min(e, 100), 0)]) : d = [d, e];\n e = u(b[0], d[f], 1 === b.length);\n 1 < b.length && (e = u(b[1], d[f ? 0 : 1], !1) || e);\n e && n([\"slide\"]);\n }\n function s(a) {\n c(\".\" + f[15]).removeClass(f[15]);\n a.cursor && c(\"body\").css(\"cursor\", \"\").off(\".nui\");\n G.off(\".nui\");\n q.removeClass(f[12]);\n n([\"set\", \"change\"]);\n }\n function v(a, b) {\n 1 === b.b.length && b.b[0].children().addClass(f[15]);\n a.stopPropagation();\n w(z.move, G, C, {\n start: a.l,\n b: b.b,\n D: [x[0], x[l.length - 1]]\n });\n w(z.end, G, s, null);\n a.cursor && (c(\"body\").css(\"cursor\", c(a.target).css(\"cursor\")), 1 < l.length && q.addClass(f[12]), c(\"body\").on(\"selectstart.nui\", !1));\n }\n function D(a) {\n var d = a.l,\n e = 0;\n a.stopPropagation();\n c.each(l, function () {\n e += this.offset()[b.style];\n });\n e = d < e / 2 || 1 === l.length ? 0 : 1;\n d -= t.offset()[b.style];\n d = 100 * d / g();\n B(l[e], d, b.n.m);\n b.n.m && v(a, {\n b: [l[e]]\n });\n }\n function E(a) {\n var c = (a = a.l < t.offset()[b.style]) ? 0 : 100;\n a = a ? 0 : l.length - 1;\n B(l[a], c, !1);\n }\n var q = c(d),\n x = [-1, -1],\n t,\n y,\n l;\n if (q.hasClass(f[0])) throw Error(\"Slider was already initialized.\");\n t = U(b, q);\n l = T(b, t);\n y = R(b, l);\n S(b.i, q, l);\n (function (a) {\n var b;\n if (!a.fixed) for (b = 0; b < l.length; b++) w(z.start, l[b].children(), v, {\n b: [l[b]]\n });\n a.s && w(z.start, t, D, {\n b: l\n });\n a.extend && (q.addClass(f[16]), a.s && w(z.start, q, E, {\n b: l\n }));\n a.v && (b = t.find(\".\" + f[7]).addClass(f[10]), a.fixed && (b = b.add(t.children().not(b).children())), w(z.start, b, v, {\n b: l\n }));\n })(b.n);\n d.vSet = function () {\n var a = Array.prototype.slice.call(arguments, 0),\n d,\n e,\n g,\n h,\n m,\n s,\n t = r(a[0]);\n \"object\" === _typeof(a[1]) ? (d = a[1].set, e = a[1].link, g = a[1].update, h = a[1].animate) : !0 === a[1] && (d = !0);\n b.dir && 1 < b.b && t.reverse();\n h && k(q, f[14]);\n a = 1 < l.length ? 3 : 1;\n 1 === t.length && (a = 1);\n for (m = 0; m < a; m++) h = e || y[m % 2][0], h = h.A(t[m % 2]), !1 !== h && (h = A(b, h), b.dir && (h = 100 - h), !0 !== u(l[m % 2], h, !0) && c(y[m % 2]).each(function (a) {\n if (!a) return s = this.u, !0;\n this.write(s, l[m % 2].children(), q, g);\n }));\n !0 === d && n([\"set\"]);\n return this;\n };\n d.vGet = function () {\n var a,\n c = [];\n for (a = 0; a < b.b; a++) c[a] = y[a][0].F;\n return 1 === c.length ? c[0] : b.dir ? c.reverse() : c;\n };\n d.destroy = function () {\n c.each(y, function () {\n c.each(this, function () {\n this.target && this.target.off(\".nui\");\n });\n });\n c(this).off(\".nui\").removeClass(f.join(\" \")).empty();\n return m;\n };\n q.val(b.start);\n }\n function W(a) {\n if (!this.length) throw Error(\"noUiSlider: Can't initialize slider on empty selection.\");\n var b = O(a, this);\n return this.each(function () {\n V(this, b, a);\n });\n }\n function X(a) {\n return this.each(function () {\n var b = c(this).val(),\n d = this.destroy(),\n f = c.extend({}, d, a);\n c(this).noUiSlider(f);\n d.start === f.start && c(this).val(b);\n });\n }\n function B() {\n return this[0][arguments.length ? \"vSet\" : \"vGet\"].apply(this[0], arguments);\n }\n var G = c(document),\n C = c.fn.val,\n z = window.navigator.pointerEnabled ? {\n start: \"pointerdown\",\n move: \"pointermove\",\n end: \"pointerup\"\n } : window.navigator.msPointerEnabled ? {\n start: \"MSPointerDown\",\n move: \"MSPointerMove\",\n end: \"MSPointerUp\"\n } : {\n start: \"mousedown touchstart\",\n move: \"mousemove touchmove\",\n end: \"mouseup touchend\"\n },\n f = \"noUi-target noUi-base noUi-origin noUi-handle noUi-horizontal noUi-vertical noUi-background noUi-connect noUi-ltr noUi-rtl noUi-dragable noUi-state-drag noUi-state-tap noUi-active noUi-extended noUi-stacking\".split(\" \");\n c.fn.val = function () {\n var a = arguments,\n b = c(this[0]);\n return arguments.length ? this.each(function () {\n (c(this).hasClass(f[0]) ? B : C).apply(c(this), a);\n }) : (b.hasClass(f[0]) ? B : C).call(b);\n };\n c.noUiSlider = {\n Link: c.Link\n };\n c.fn.noUiSlider = function (a, b) {\n return (b ? X : W).call(this, a);\n };\n})(window.jQuery || window.Zepto);\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/nouislider.min.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/perfect-scrollbar.jquery.min.js":
/*!*************************************************************************!*\
!*** ./buyercall/assets/scripts/vendor/perfect-scrollbar.jquery.min.js ***!
\*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var require;var require;var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* perfect-scrollbar v0.6.13 */\n!function t(e, n, r) {\n function o(i, s) {\n if (!n[i]) {\n if (!e[i]) {\n var a = \"function\" == typeof require && require;\n if (!s && a) return require(i, !0);\n if (l) return l(i, !0);\n var c = new Error(\"Cannot find module '\" + i + \"'\");\n throw c.code = \"MODULE_NOT_FOUND\", c;\n }\n var u = n[i] = {\n exports: {}\n };\n e[i][0].call(u.exports, function (t) {\n var n = e[i][1][t];\n return o(n ? n : t);\n }, u, u.exports, t, e, n, r);\n }\n return n[i].exports;\n }\n for (var l = \"function\" == typeof require && require, i = 0; i < r.length; i++) o(r[i]);\n return o;\n}({\n 1: [function (t, e, n) {\n \"use strict\";\n\n function r(t) {\n t.fn.perfectScrollbar = function (t) {\n return this.each(function () {\n if (\"object\" == _typeof(t) || \"undefined\" == typeof t) {\n var e = t;\n l.get(this) || o.initialize(this, e);\n } else {\n var n = t;\n \"update\" === n ? o.update(this) : \"destroy\" === n && o.destroy(this);\n }\n });\n };\n }\n var o = t(\"../main\"),\n l = t(\"../plugin/instances\");\n if (true) !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ \"jquery\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (r),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else { var i; }\n e.exports = r;\n }, {\n \"../main\": 7,\n \"../plugin/instances\": 18\n }],\n 2: [function (t, e, n) {\n \"use strict\";\n\n function r(t, e) {\n var n = t.className.split(\" \");\n n.indexOf(e) < 0 && n.push(e), t.className = n.join(\" \");\n }\n function o(t, e) {\n var n = t.className.split(\" \"),\n r = n.indexOf(e);\n r >= 0 && n.splice(r, 1), t.className = n.join(\" \");\n }\n n.add = function (t, e) {\n t.classList ? t.classList.add(e) : r(t, e);\n }, n.remove = function (t, e) {\n t.classList ? t.classList.remove(e) : o(t, e);\n }, n.list = function (t) {\n return t.classList ? Array.prototype.slice.apply(t.classList) : t.className.split(\" \");\n };\n }, {}],\n 3: [function (t, e, n) {\n \"use strict\";\n\n function r(t, e) {\n return window.getComputedStyle(t)[e];\n }\n function o(t, e, n) {\n return \"number\" == typeof n && (n = n.toString() + \"px\"), t.style[e] = n, t;\n }\n function l(t, e) {\n for (var n in e) {\n var r = e[n];\n \"number\" == typeof r && (r = r.toString() + \"px\"), t.style[n] = r;\n }\n return t;\n }\n var i = {};\n i.e = function (t, e) {\n var n = document.createElement(t);\n return n.className = e, n;\n }, i.appendTo = function (t, e) {\n return e.appendChild(t), t;\n }, i.css = function (t, e, n) {\n return \"object\" == _typeof(e) ? l(t, e) : \"undefined\" == typeof n ? r(t, e) : o(t, e, n);\n }, i.matches = function (t, e) {\n return \"undefined\" != typeof t.matches ? t.matches(e) : \"undefined\" != typeof t.matchesSelector ? t.matchesSelector(e) : \"undefined\" != typeof t.webkitMatchesSelector ? t.webkitMatchesSelector(e) : \"undefined\" != typeof t.mozMatchesSelector ? t.mozMatchesSelector(e) : \"undefined\" != typeof t.msMatchesSelector ? t.msMatchesSelector(e) : void 0;\n }, i.remove = function (t) {\n \"undefined\" != typeof t.remove ? t.remove() : t.parentNode && t.parentNode.removeChild(t);\n }, i.queryChildren = function (t, e) {\n return Array.prototype.filter.call(t.childNodes, function (t) {\n return i.matches(t, e);\n });\n }, e.exports = i;\n }, {}],\n 4: [function (t, e, n) {\n \"use strict\";\n\n var r = function r(t) {\n this.element = t, this.events = {};\n };\n r.prototype.bind = function (t, e) {\n \"undefined\" == typeof this.events[t] && (this.events[t] = []), this.events[t].push(e), this.element.addEventListener(t, e, !1);\n }, r.prototype.unbind = function (t, e) {\n var n = \"undefined\" != typeof e;\n this.events[t] = this.events[t].filter(function (r) {\n return !(!n || r === e) || (this.element.removeEventListener(t, r, !1), !1);\n }, this);\n }, r.prototype.unbindAll = function () {\n for (var t in this.events) this.unbind(t);\n };\n var o = function o() {\n this.eventElements = [];\n };\n o.prototype.eventElement = function (t) {\n var e = this.eventElements.filter(function (e) {\n return e.element === t;\n })[0];\n return \"undefined\" == typeof e && (e = new r(t), this.eventElements.push(e)), e;\n }, o.prototype.bind = function (t, e, n) {\n this.eventElement(t).bind(e, n);\n }, o.prototype.unbind = function (t, e, n) {\n this.eventElement(t).unbind(e, n);\n }, o.prototype.unbindAll = function () {\n for (var t = 0; t < this.eventElements.length; t++) this.eventElements[t].unbindAll();\n }, o.prototype.once = function (t, e, n) {\n var r = this.eventElement(t),\n o = function o(t) {\n r.unbind(e, o), n(t);\n };\n r.bind(e, o);\n }, e.exports = o;\n }, {}],\n 5: [function (t, e, n) {\n \"use strict\";\n\n e.exports = function () {\n function t() {\n return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1);\n }\n return function () {\n return t() + t() + \"-\" + t() + \"-\" + t() + \"-\" + t() + \"-\" + t() + t() + t();\n };\n }();\n }, {}],\n 6: [function (t, e, n) {\n \"use strict\";\n\n var r = t(\"./class\"),\n o = t(\"./dom\"),\n l = n.toInt = function (t) {\n return parseInt(t, 10) || 0;\n },\n i = n.clone = function (t) {\n if (t) {\n if (t.constructor === Array) return t.map(i);\n if (\"object\" == _typeof(t)) {\n var e = {};\n for (var n in t) e[n] = i(t[n]);\n return e;\n }\n return t;\n }\n return null;\n };\n n.extend = function (t, e) {\n var n = i(t);\n for (var r in e) n[r] = i(e[r]);\n return n;\n }, n.isEditable = function (t) {\n return o.matches(t, \"input,[contenteditable]\") || o.matches(t, \"select,[contenteditable]\") || o.matches(t, \"textarea,[contenteditable]\") || o.matches(t, \"button,[contenteditable]\");\n }, n.removePsClasses = function (t) {\n for (var e = r.list(t), n = 0; n < e.length; n++) {\n var o = e[n];\n 0 === o.indexOf(\"ps-\") && r.remove(t, o);\n }\n }, n.outerWidth = function (t) {\n return l(o.css(t, \"width\")) + l(o.css(t, \"paddingLeft\")) + l(o.css(t, \"paddingRight\")) + l(o.css(t, \"borderLeftWidth\")) + l(o.css(t, \"borderRightWidth\"));\n }, n.startScrolling = function (t, e) {\n r.add(t, \"ps-in-scrolling\"), \"undefined\" != typeof e ? r.add(t, \"ps-\" + e) : (r.add(t, \"ps-x\"), r.add(t, \"ps-y\"));\n }, n.stopScrolling = function (t, e) {\n r.remove(t, \"ps-in-scrolling\"), \"undefined\" != typeof e ? r.remove(t, \"ps-\" + e) : (r.remove(t, \"ps-x\"), r.remove(t, \"ps-y\"));\n }, n.env = {\n isWebKit: \"WebkitAppearance\" in document.documentElement.style,\n supportsTouch: \"ontouchstart\" in window || window.DocumentTouch && document instanceof window.DocumentTouch,\n supportsIePointer: null !== window.navigator.msMaxTouchPoints\n };\n }, {\n \"./class\": 2,\n \"./dom\": 3\n }],\n 7: [function (t, e, n) {\n \"use strict\";\n\n var r = t(\"./plugin/destroy\"),\n o = t(\"./plugin/initialize\"),\n l = t(\"./plugin/update\");\n e.exports = {\n initialize: o,\n update: l,\n destroy: r\n };\n }, {\n \"./plugin/destroy\": 9,\n \"./plugin/initialize\": 17,\n \"./plugin/update\": 21\n }],\n 8: [function (t, e, n) {\n \"use strict\";\n\n e.exports = {\n handlers: [\"click-rail\", \"drag-scrollbar\", \"keyboard\", \"wheel\", \"touch\"],\n maxScrollbarLength: null,\n minScrollbarLength: null,\n scrollXMarginOffset: 0,\n scrollYMarginOffset: 0,\n suppressScrollX: !1,\n suppressScrollY: !1,\n swipePropagation: !0,\n useBothWheelAxes: !1,\n wheelPropagation: !1,\n wheelSpeed: 1,\n theme: \"default\"\n };\n }, {}],\n 9: [function (t, e, n) {\n \"use strict\";\n\n var r = t(\"../lib/helper\"),\n o = t(\"../lib/dom\"),\n l = t(\"./instances\");\n e.exports = function (t) {\n var e = l.get(t);\n e && (e.event.unbindAll(), o.remove(e.scrollbarX), o.remove(e.scrollbarY), o.remove(e.scrollbarXRail), o.remove(e.scrollbarYRail), r.removePsClasses(t), l.remove(t));\n };\n }, {\n \"../lib/dom\": 3,\n \"../lib/helper\": 6,\n \"./instances\": 18\n }],\n 10: [function (t, e, n) {\n \"use strict\";\n\n function r(t, e) {\n function n(t) {\n return t.getBoundingClientRect();\n }\n var r = function r(t) {\n t.stopPropagation();\n };\n e.event.bind(e.scrollbarY, \"click\", r), e.event.bind(e.scrollbarYRail, \"click\", function (r) {\n var o = r.pageY - window.pageYOffset - n(e.scrollbarYRail).top,\n s = o > e.scrollbarYTop ? 1 : -1;\n i(t, \"top\", t.scrollTop + s * e.containerHeight), l(t), r.stopPropagation();\n }), e.event.bind(e.scrollbarX, \"click\", r), e.event.bind(e.scrollbarXRail, \"click\", function (r) {\n var o = r.pageX - window.pageXOffset - n(e.scrollbarXRail).left,\n s = o > e.scrollbarXLeft ? 1 : -1;\n i(t, \"left\", t.scrollLeft + s * e.containerWidth), l(t), r.stopPropagation();\n });\n }\n var o = t(\"../instances\"),\n l = t(\"../update-geometry\"),\n i = t(\"../update-scroll\");\n e.exports = function (t) {\n var e = o.get(t);\n r(t, e);\n };\n }, {\n \"../instances\": 18,\n \"../update-geometry\": 19,\n \"../update-scroll\": 20\n }],\n 11: [function (t, e, n) {\n \"use strict\";\n\n function r(t, e) {\n function n(n) {\n var o = r + n * e.railXRatio,\n i = Math.max(0, e.scrollbarXRail.getBoundingClientRect().left) + e.railXRatio * (e.railXWidth - e.scrollbarXWidth);\n o < 0 ? e.scrollbarXLeft = 0 : o > i ? e.scrollbarXLeft = i : e.scrollbarXLeft = o;\n var s = l.toInt(e.scrollbarXLeft * (e.contentWidth - e.containerWidth) / (e.containerWidth - e.railXRatio * e.scrollbarXWidth)) - e.negativeScrollAdjustment;\n c(t, \"left\", s);\n }\n var r = null,\n o = null,\n s = function s(e) {\n n(e.pageX - o), a(t), e.stopPropagation(), e.preventDefault();\n },\n u = function u() {\n l.stopScrolling(t, \"x\"), e.event.unbind(e.ownerDocument, \"mousemove\", s);\n };\n e.event.bind(e.scrollbarX, \"mousedown\", function (n) {\n o = n.pageX, r = l.toInt(i.css(e.scrollbarX, \"left\")) * e.railXRatio, l.startScrolling(t, \"x\"), e.event.bind(e.ownerDocument, \"mousemove\", s), e.event.once(e.ownerDocument, \"mouseup\", u), n.stopPropagation(), n.preventDefault();\n });\n }\n function o(t, e) {\n function n(n) {\n var o = r + n * e.railYRatio,\n i = Math.max(0, e.scrollbarYRail.getBoundingClientRect().top) + e.railYRatio * (e.railYHeight - e.scrollbarYHeight);\n o < 0 ? e.scrollbarYTop = 0 : o > i ? e.scrollbarYTop = i : e.scrollbarYTop = o;\n var s = l.toInt(e.scrollbarYTop * (e.contentHeight - e.containerHeight) / (e.containerHeight - e.railYRatio * e.scrollbarYHeight));\n c(t, \"top\", s);\n }\n var r = null,\n o = null,\n s = function s(e) {\n n(e.pageY - o), a(t), e.stopPropagation(), e.preventDefault();\n },\n u = function u() {\n l.stopScrolling(t, \"y\"), e.event.unbind(e.ownerDocument, \"mousemove\", s);\n };\n e.event.bind(e.scrollbarY, \"mousedown\", function (n) {\n o = n.pageY, r = l.toInt(i.css(e.scrollbarY, \"top\")) * e.railYRatio, l.startScrolling(t, \"y\"), e.event.bind(e.ownerDocument, \"mousemove\", s), e.event.once(e.ownerDocument, \"mouseup\", u), n.stopPropagation(), n.preventDefault();\n });\n }\n var l = t(\"../../lib/helper\"),\n i = t(\"../../lib/dom\"),\n s = t(\"../instances\"),\n a = t(\"../update-geometry\"),\n c = t(\"../update-scroll\");\n e.exports = function (t) {\n var e = s.get(t);\n r(t, e), o(t, e);\n };\n }, {\n \"../../lib/dom\": 3,\n \"../../lib/helper\": 6,\n \"../instances\": 18,\n \"../update-geometry\": 19,\n \"../update-scroll\": 20\n }],\n 12: [function (t, e, n) {\n \"use strict\";\n\n function r(t, e) {\n function n(n, r) {\n var o = t.scrollTop;\n if (0 === n) {\n if (!e.scrollbarYActive) return !1;\n if (0 === o && r > 0 || o >= e.contentHeight - e.containerHeight && r < 0) return !e.settings.wheelPropagation;\n }\n var l = t.scrollLeft;\n if (0 === r) {\n if (!e.scrollbarXActive) return !1;\n if (0 === l && n < 0 || l >= e.contentWidth - e.containerWidth && n > 0) return !e.settings.wheelPropagation;\n }\n return !0;\n }\n var r = !1;\n e.event.bind(t, \"mouseenter\", function () {\n r = !0;\n }), e.event.bind(t, \"mouseleave\", function () {\n r = !1;\n });\n var i = !1;\n e.event.bind(e.ownerDocument, \"keydown\", function (c) {\n if (!(c.isDefaultPrevented && c.isDefaultPrevented() || c.defaultPrevented)) {\n var u = l.matches(e.scrollbarX, \":focus\") || l.matches(e.scrollbarY, \":focus\");\n if (r || u) {\n var d = document.activeElement ? document.activeElement : e.ownerDocument.activeElement;\n if (d) {\n if (\"IFRAME\" === d.tagName) d = d.contentDocument.activeElement;else for (; d.shadowRoot;) d = d.shadowRoot.activeElement;\n if (o.isEditable(d)) return;\n }\n var p = 0,\n f = 0;\n switch (c.which) {\n case 37:\n p = c.metaKey ? -e.contentWidth : c.altKey ? -e.containerWidth : -30;\n break;\n case 38:\n f = c.metaKey ? e.contentHeight : c.altKey ? e.containerHeight : 30;\n break;\n case 39:\n p = c.metaKey ? e.contentWidth : c.altKey ? e.containerWidth : 30;\n break;\n case 40:\n f = c.metaKey ? -e.contentHeight : c.altKey ? -e.containerHeight : -30;\n break;\n case 33:\n f = 90;\n break;\n case 32:\n f = c.shiftKey ? 90 : -90;\n break;\n case 34:\n f = -90;\n break;\n case 35:\n f = c.ctrlKey ? -e.contentHeight : -e.containerHeight;\n break;\n case 36:\n f = c.ctrlKey ? t.scrollTop : e.containerHeight;\n break;\n default:\n return;\n }\n a(t, \"top\", t.scrollTop - f), a(t, \"left\", t.scrollLeft + p), s(t), i = n(p, f), i && c.preventDefault();\n }\n }\n });\n }\n var o = t(\"../../lib/helper\"),\n l = t(\"../../lib/dom\"),\n i = t(\"../instances\"),\n s = t(\"../update-geometry\"),\n a = t(\"../update-scroll\");\n e.exports = function (t) {\n var e = i.get(t);\n r(t, e);\n };\n }, {\n \"../../lib/dom\": 3,\n \"../../lib/helper\": 6,\n \"../instances\": 18,\n \"../update-geometry\": 19,\n \"../update-scroll\": 20\n }],\n 13: [function (t, e, n) {\n \"use strict\";\n\n function r(t, e) {\n function n(n, r) {\n var o = t.scrollTop;\n if (0 === n) {\n if (!e.scrollbarYActive) return !1;\n if (0 === o && r > 0 || o >= e.contentHeight - e.containerHeight && r < 0) return !e.settings.wheelPropagation;\n }\n var l = t.scrollLeft;\n if (0 === r) {\n if (!e.scrollbarXActive) return !1;\n if (0 === l && n < 0 || l >= e.contentWidth - e.containerWidth && n > 0) return !e.settings.wheelPropagation;\n }\n return !0;\n }\n function r(t) {\n var e = t.deltaX,\n n = -1 * t.deltaY;\n return \"undefined\" != typeof e && \"undefined\" != typeof n || (e = -1 * t.wheelDeltaX / 6, n = t.wheelDeltaY / 6), t.deltaMode && 1 === t.deltaMode && (e *= 10, n *= 10), e !== e && n !== n && (e = 0, n = t.wheelDelta), t.shiftKey ? [-n, -e] : [e, n];\n }\n function o(e, n) {\n var r = t.querySelector(\"textarea:hover, select[multiple]:hover, .ps-child:hover\");\n if (r) {\n if (!window.getComputedStyle(r).overflow.match(/(scroll|auto)/)) return !1;\n var o = r.scrollHeight - r.clientHeight;\n if (o > 0 && !(0 === r.scrollTop && n > 0 || r.scrollTop === o && n < 0)) return !0;\n var l = r.scrollLeft - r.clientWidth;\n if (l > 0 && !(0 === r.scrollLeft && e < 0 || r.scrollLeft === l && e > 0)) return !0;\n }\n return !1;\n }\n function s(s) {\n var c = r(s),\n u = c[0],\n d = c[1];\n o(u, d) || (a = !1, e.settings.useBothWheelAxes ? e.scrollbarYActive && !e.scrollbarXActive ? (d ? i(t, \"top\", t.scrollTop - d * e.settings.wheelSpeed) : i(t, \"top\", t.scrollTop + u * e.settings.wheelSpeed), a = !0) : e.scrollbarXActive && !e.scrollbarYActive && (u ? i(t, \"left\", t.scrollLeft + u * e.settings.wheelSpeed) : i(t, \"left\", t.scrollLeft - d * e.settings.wheelSpeed), a = !0) : (i(t, \"top\", t.scrollTop - d * e.settings.wheelSpeed), i(t, \"left\", t.scrollLeft + u * e.settings.wheelSpeed)), l(t), a = a || n(u, d), a && (s.stopPropagation(), s.preventDefault()));\n }\n var a = !1;\n \"undefined\" != typeof window.onwheel ? e.event.bind(t, \"wheel\", s) : \"undefined\" != typeof window.onmousewheel && e.event.bind(t, \"mousewheel\", s);\n }\n var o = t(\"../instances\"),\n l = t(\"../update-geometry\"),\n i = t(\"../update-scroll\");\n e.exports = function (t) {\n var e = o.get(t);\n r(t, e);\n };\n }, {\n \"../instances\": 18,\n \"../update-geometry\": 19,\n \"../update-scroll\": 20\n }],\n 14: [function (t, e, n) {\n \"use strict\";\n\n function r(t, e) {\n e.event.bind(t, \"scroll\", function () {\n l(t);\n });\n }\n var o = t(\"../instances\"),\n l = t(\"../update-geometry\");\n e.exports = function (t) {\n var e = o.get(t);\n r(t, e);\n };\n }, {\n \"../instances\": 18,\n \"../update-geometry\": 19\n }],\n 15: [function (t, e, n) {\n \"use strict\";\n\n function r(t, e) {\n function n() {\n var t = window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : \"\";\n return 0 === t.toString().length ? null : t.getRangeAt(0).commonAncestorContainer;\n }\n function r() {\n c || (c = setInterval(function () {\n return l.get(t) ? (s(t, \"top\", t.scrollTop + u.top), s(t, \"left\", t.scrollLeft + u.left), void i(t)) : void clearInterval(c);\n }, 50));\n }\n function a() {\n c && (clearInterval(c), c = null), o.stopScrolling(t);\n }\n var c = null,\n u = {\n top: 0,\n left: 0\n },\n d = !1;\n e.event.bind(e.ownerDocument, \"selectionchange\", function () {\n t.contains(n()) ? d = !0 : (d = !1, a());\n }), e.event.bind(window, \"mouseup\", function () {\n d && (d = !1, a());\n }), e.event.bind(window, \"keyup\", function () {\n d && (d = !1, a());\n }), e.event.bind(window, \"mousemove\", function (e) {\n if (d) {\n var n = {\n x: e.pageX,\n y: e.pageY\n },\n l = {\n left: t.offsetLeft,\n right: t.offsetLeft + t.offsetWidth,\n top: t.offsetTop,\n bottom: t.offsetTop + t.offsetHeight\n };\n n.x < l.left + 3 ? (u.left = -5, o.startScrolling(t, \"x\")) : n.x > l.right - 3 ? (u.left = 5, o.startScrolling(t, \"x\")) : u.left = 0, n.y < l.top + 3 ? (l.top + 3 - n.y < 5 ? u.top = -5 : u.top = -20, o.startScrolling(t, \"y\")) : n.y > l.bottom - 3 ? (n.y - l.bottom + 3 < 5 ? u.top = 5 : u.top = 20, o.startScrolling(t, \"y\")) : u.top = 0, 0 === u.top && 0 === u.left ? a() : r();\n }\n });\n }\n var o = t(\"../../lib/helper\"),\n l = t(\"../instances\"),\n i = t(\"../update-geometry\"),\n s = t(\"../update-scroll\");\n e.exports = function (t) {\n var e = l.get(t);\n r(t, e);\n };\n }, {\n \"../../lib/helper\": 6,\n \"../instances\": 18,\n \"../update-geometry\": 19,\n \"../update-scroll\": 20\n }],\n 16: [function (t, e, n) {\n \"use strict\";\n\n function r(t, e, n, r) {\n function o(n, r) {\n var o = t.scrollTop,\n l = t.scrollLeft,\n i = Math.abs(n),\n s = Math.abs(r);\n if (s > i) {\n if (r < 0 && o === e.contentHeight - e.containerHeight || r > 0 && 0 === o) return !e.settings.swipePropagation;\n } else if (i > s && (n < 0 && l === e.contentWidth - e.containerWidth || n > 0 && 0 === l)) return !e.settings.swipePropagation;\n return !0;\n }\n function a(e, n) {\n s(t, \"top\", t.scrollTop - n), s(t, \"left\", t.scrollLeft - e), i(t);\n }\n function c() {\n w = !0;\n }\n function u() {\n w = !1;\n }\n function d(t) {\n return t.targetTouches ? t.targetTouches[0] : t;\n }\n function p(t) {\n return !(!t.targetTouches || 1 !== t.targetTouches.length) || !(!t.pointerType || \"mouse\" === t.pointerType || t.pointerType === t.MSPOINTER_TYPE_MOUSE);\n }\n function f(t) {\n if (p(t)) {\n Y = !0;\n var e = d(t);\n g.pageX = e.pageX, g.pageY = e.pageY, v = new Date().getTime(), null !== y && clearInterval(y), t.stopPropagation();\n }\n }\n function h(t) {\n if (!Y && e.settings.swipePropagation && f(t), !w && Y && p(t)) {\n var n = d(t),\n r = {\n pageX: n.pageX,\n pageY: n.pageY\n },\n l = r.pageX - g.pageX,\n i = r.pageY - g.pageY;\n a(l, i), g = r;\n var s = new Date().getTime(),\n c = s - v;\n c > 0 && (m.x = l / c, m.y = i / c, v = s), o(l, i) && (t.stopPropagation(), t.preventDefault());\n }\n }\n function b() {\n !w && Y && (Y = !1, clearInterval(y), y = setInterval(function () {\n return l.get(t) && (m.x || m.y) ? Math.abs(m.x) < .01 && Math.abs(m.y) < .01 ? void clearInterval(y) : (a(30 * m.x, 30 * m.y), m.x *= .8, void (m.y *= .8)) : void clearInterval(y);\n }, 10));\n }\n var g = {},\n v = 0,\n m = {},\n y = null,\n w = !1,\n Y = !1;\n n && (e.event.bind(window, \"touchstart\", c), e.event.bind(window, \"touchend\", u), e.event.bind(t, \"touchstart\", f), e.event.bind(t, \"touchmove\", h), e.event.bind(t, \"touchend\", b)), r && (window.PointerEvent ? (e.event.bind(window, \"pointerdown\", c), e.event.bind(window, \"pointerup\", u), e.event.bind(t, \"pointerdown\", f), e.event.bind(t, \"pointermove\", h), e.event.bind(t, \"pointerup\", b)) : window.MSPointerEvent && (e.event.bind(window, \"MSPointerDown\", c), e.event.bind(window, \"MSPointerUp\", u), e.event.bind(t, \"MSPointerDown\", f), e.event.bind(t, \"MSPointerMove\", h), e.event.bind(t, \"MSPointerUp\", b)));\n }\n var o = t(\"../../lib/helper\"),\n l = t(\"../instances\"),\n i = t(\"../update-geometry\"),\n s = t(\"../update-scroll\");\n e.exports = function (t) {\n if (o.env.supportsTouch || o.env.supportsIePointer) {\n var e = l.get(t);\n r(t, e, o.env.supportsTouch, o.env.supportsIePointer);\n }\n };\n }, {\n \"../../lib/helper\": 6,\n \"../instances\": 18,\n \"../update-geometry\": 19,\n \"../update-scroll\": 20\n }],\n 17: [function (t, e, n) {\n \"use strict\";\n\n var r = t(\"../lib/helper\"),\n o = t(\"../lib/class\"),\n l = t(\"./instances\"),\n i = t(\"./update-geometry\"),\n s = {\n \"click-rail\": t(\"./handler/click-rail\"),\n \"drag-scrollbar\": t(\"./handler/drag-scrollbar\"),\n keyboard: t(\"./handler/keyboard\"),\n wheel: t(\"./handler/mouse-wheel\"),\n touch: t(\"./handler/touch\"),\n selection: t(\"./handler/selection\")\n },\n a = t(\"./handler/native-scroll\");\n e.exports = function (t, e) {\n e = \"object\" == _typeof(e) ? e : {}, o.add(t, \"ps-container\");\n var n = l.add(t);\n n.settings = r.extend(n.settings, e), o.add(t, \"ps-theme-\" + n.settings.theme), n.settings.handlers.forEach(function (e) {\n s[e](t);\n }), a(t), i(t);\n };\n }, {\n \"../lib/class\": 2,\n \"../lib/helper\": 6,\n \"./handler/click-rail\": 10,\n \"./handler/drag-scrollbar\": 11,\n \"./handler/keyboard\": 12,\n \"./handler/mouse-wheel\": 13,\n \"./handler/native-scroll\": 14,\n \"./handler/selection\": 15,\n \"./handler/touch\": 16,\n \"./instances\": 18,\n \"./update-geometry\": 19\n }],\n 18: [function (t, e, n) {\n \"use strict\";\n\n function r(t) {\n function e() {\n a.add(t, \"ps-focus\");\n }\n function n() {\n a.remove(t, \"ps-focus\");\n }\n var r = this;\n r.settings = s.clone(c), r.containerWidth = null, r.containerHeight = null, r.contentWidth = null, r.contentHeight = null, r.isRtl = \"rtl\" === u.css(t, \"direction\"), r.isNegativeScroll = function () {\n var e = t.scrollLeft,\n n = null;\n return t.scrollLeft = -1, n = t.scrollLeft < 0, t.scrollLeft = e, n;\n }(), r.negativeScrollAdjustment = r.isNegativeScroll ? t.scrollWidth - t.clientWidth : 0, r.event = new d(), r.ownerDocument = t.ownerDocument || document, r.scrollbarXRail = u.appendTo(u.e(\"div\", \"ps-scrollbar-x-rail\"), t), r.scrollbarX = u.appendTo(u.e(\"div\", \"ps-scrollbar-x\"), r.scrollbarXRail), r.scrollbarX.setAttribute(\"tabindex\", 0), r.event.bind(r.scrollbarX, \"focus\", e), r.event.bind(r.scrollbarX, \"blur\", n), r.scrollbarXActive = null, r.scrollbarXWidth = null, r.scrollbarXLeft = null, r.scrollbarXBottom = s.toInt(u.css(r.scrollbarXRail, \"bottom\")), r.isScrollbarXUsingBottom = r.scrollbarXBottom === r.scrollbarXBottom, r.scrollbarXTop = r.isScrollbarXUsingBottom ? null : s.toInt(u.css(r.scrollbarXRail, \"top\")), r.railBorderXWidth = s.toInt(u.css(r.scrollbarXRail, \"borderLeftWidth\")) + s.toInt(u.css(r.scrollbarXRail, \"borderRightWidth\")), u.css(r.scrollbarXRail, \"display\", \"block\"), r.railXMarginWidth = s.toInt(u.css(r.scrollbarXRail, \"marginLeft\")) + s.toInt(u.css(r.scrollbarXRail, \"marginRight\")), u.css(r.scrollbarXRail, \"display\", \"\"), r.railXWidth = null, r.railXRatio = null, r.scrollbarYRail = u.appendTo(u.e(\"div\", \"ps-scrollbar-y-rail\"), t), r.scrollbarY = u.appendTo(u.e(\"div\", \"ps-scrollbar-y\"), r.scrollbarYRail), r.scrollbarY.setAttribute(\"tabindex\", 0), r.event.bind(r.scrollbarY, \"focus\", e), r.event.bind(r.scrollbarY, \"blur\", n), r.scrollbarYActive = null, r.scrollbarYHeight = null, r.scrollbarYTop = null, r.scrollbarYRight = s.toInt(u.css(r.scrollbarYRail, \"right\")), r.isScrollbarYUsingRight = r.scrollbarYRight === r.scrollbarYRight, r.scrollbarYLeft = r.isScrollbarYUsingRight ? null : s.toInt(u.css(r.scrollbarYRail, \"left\")), r.scrollbarYOuterWidth = r.isRtl ? s.outerWidth(r.scrollbarY) : null, r.railBorderYWidth = s.toInt(u.css(r.scrollbarYRail, \"borderTopWidth\")) + s.toInt(u.css(r.scrollbarYRail, \"borderBottomWidth\")), u.css(r.scrollbarYRail, \"display\", \"block\"), r.railYMarginHeight = s.toInt(u.css(r.scrollbarYRail, \"marginTop\")) + s.toInt(u.css(r.scrollbarYRail, \"marginBottom\")), u.css(r.scrollbarYRail, \"display\", \"\"), r.railYHeight = null, r.railYRatio = null;\n }\n function o(t) {\n return t.getAttribute(\"data-ps-id\");\n }\n function l(t, e) {\n t.setAttribute(\"data-ps-id\", e);\n }\n function i(t) {\n t.removeAttribute(\"data-ps-id\");\n }\n var s = t(\"../lib/helper\"),\n a = t(\"../lib/class\"),\n c = t(\"./default-setting\"),\n u = t(\"../lib/dom\"),\n d = t(\"../lib/event-manager\"),\n p = t(\"../lib/guid\"),\n f = {};\n n.add = function (t) {\n var e = p();\n return l(t, e), f[e] = new r(t), f[e];\n }, n.remove = function (t) {\n delete f[o(t)], i(t);\n }, n.get = function (t) {\n return f[o(t)];\n };\n }, {\n \"../lib/class\": 2,\n \"../lib/dom\": 3,\n \"../lib/event-manager\": 4,\n \"../lib/guid\": 5,\n \"../lib/helper\": 6,\n \"./default-setting\": 8\n }],\n 19: [function (t, e, n) {\n \"use strict\";\n\n function r(t, e) {\n return t.settings.minScrollbarLength && (e = Math.max(e, t.settings.minScrollbarLength)), t.settings.maxScrollbarLength && (e = Math.min(e, t.settings.maxScrollbarLength)), e;\n }\n function o(t, e) {\n var n = {\n width: e.railXWidth\n };\n e.isRtl ? n.left = e.negativeScrollAdjustment + t.scrollLeft + e.containerWidth - e.contentWidth : n.left = t.scrollLeft, e.isScrollbarXUsingBottom ? n.bottom = e.scrollbarXBottom - t.scrollTop : n.top = e.scrollbarXTop + t.scrollTop, s.css(e.scrollbarXRail, n);\n var r = {\n top: t.scrollTop,\n height: e.railYHeight\n };\n e.isScrollbarYUsingRight ? e.isRtl ? r.right = e.contentWidth - (e.negativeScrollAdjustment + t.scrollLeft) - e.scrollbarYRight - e.scrollbarYOuterWidth : r.right = e.scrollbarYRight - t.scrollLeft : e.isRtl ? r.left = e.negativeScrollAdjustment + t.scrollLeft + 2 * e.containerWidth - e.contentWidth - e.scrollbarYLeft - e.scrollbarYOuterWidth : r.left = e.scrollbarYLeft + t.scrollLeft, s.css(e.scrollbarYRail, r), s.css(e.scrollbarX, {\n left: e.scrollbarXLeft,\n width: e.scrollbarXWidth - e.railBorderXWidth\n }), s.css(e.scrollbarY, {\n top: e.scrollbarYTop,\n height: e.scrollbarYHeight - e.railBorderYWidth\n });\n }\n var l = t(\"../lib/helper\"),\n i = t(\"../lib/class\"),\n s = t(\"../lib/dom\"),\n a = t(\"./instances\"),\n c = t(\"./update-scroll\");\n e.exports = function (t) {\n var e = a.get(t);\n e.containerWidth = t.clientWidth, e.containerHeight = t.clientHeight, e.contentWidth = t.scrollWidth, e.contentHeight = t.scrollHeight;\n var n;\n t.contains(e.scrollbarXRail) || (n = s.queryChildren(t, \".ps-scrollbar-x-rail\"), n.length > 0 && n.forEach(function (t) {\n s.remove(t);\n }), s.appendTo(e.scrollbarXRail, t)), t.contains(e.scrollbarYRail) || (n = s.queryChildren(t, \".ps-scrollbar-y-rail\"), n.length > 0 && n.forEach(function (t) {\n s.remove(t);\n }), s.appendTo(e.scrollbarYRail, t)), !e.settings.suppressScrollX && e.containerWidth + e.settings.scrollXMarginOffset < e.contentWidth ? (e.scrollbarXActive = !0, e.railXWidth = e.containerWidth - e.railXMarginWidth, e.railXRatio = e.containerWidth / e.railXWidth, e.scrollbarXWidth = r(e, l.toInt(e.railXWidth * e.containerWidth / e.contentWidth)), e.scrollbarXLeft = l.toInt((e.negativeScrollAdjustment + t.scrollLeft) * (e.railXWidth - e.scrollbarXWidth) / (e.contentWidth - e.containerWidth))) : e.scrollbarXActive = !1, !e.settings.suppressScrollY && e.containerHeight + e.settings.scrollYMarginOffset < e.contentHeight ? (e.scrollbarYActive = !0, e.railYHeight = e.containerHeight - e.railYMarginHeight, e.railYRatio = e.containerHeight / e.railYHeight, e.scrollbarYHeight = r(e, l.toInt(e.railYHeight * e.containerHeight / e.contentHeight)), e.scrollbarYTop = l.toInt(t.scrollTop * (e.railYHeight - e.scrollbarYHeight) / (e.contentHeight - e.containerHeight))) : e.scrollbarYActive = !1, e.scrollbarXLeft >= e.railXWidth - e.scrollbarXWidth && (e.scrollbarXLeft = e.railXWidth - e.scrollbarXWidth), e.scrollbarYTop >= e.railYHeight - e.scrollbarYHeight && (e.scrollbarYTop = e.railYHeight - e.scrollbarYHeight), o(t, e), e.scrollbarXActive ? i.add(t, \"ps-active-x\") : (i.remove(t, \"ps-active-x\"), e.scrollbarXWidth = 0, e.scrollbarXLeft = 0, c(t, \"left\", 0)), e.scrollbarYActive ? i.add(t, \"ps-active-y\") : (i.remove(t, \"ps-active-y\"), e.scrollbarYHeight = 0, e.scrollbarYTop = 0, c(t, \"top\", 0));\n };\n }, {\n \"../lib/class\": 2,\n \"../lib/dom\": 3,\n \"../lib/helper\": 6,\n \"./instances\": 18,\n \"./update-scroll\": 20\n }],\n 20: [function (t, e, n) {\n \"use strict\";\n\n var r,\n o,\n l = t(\"./instances\"),\n i = function i(t) {\n var e = document.createEvent(\"Event\");\n return e.initEvent(t, !0, !0), e;\n };\n e.exports = function (t, e, n) {\n if (\"undefined\" == typeof t) throw \"You must provide an element to the update-scroll function\";\n if (\"undefined\" == typeof e) throw \"You must provide an axis to the update-scroll function\";\n if (\"undefined\" == typeof n) throw \"You must provide a value to the update-scroll function\";\n \"top\" === e && n <= 0 && (t.scrollTop = n = 0, t.dispatchEvent(i(\"ps-y-reach-start\"))), \"left\" === e && n <= 0 && (t.scrollLeft = n = 0, t.dispatchEvent(i(\"ps-x-reach-start\")));\n var s = l.get(t);\n \"top\" === e && n >= s.contentHeight - s.containerHeight && (n = s.contentHeight - s.containerHeight, n - t.scrollTop <= 1 ? n = t.scrollTop : t.scrollTop = n, t.dispatchEvent(i(\"ps-y-reach-end\"))), \"left\" === e && n >= s.contentWidth - s.containerWidth && (n = s.contentWidth - s.containerWidth, n - t.scrollLeft <= 1 ? n = t.scrollLeft : t.scrollLeft = n, t.dispatchEvent(i(\"ps-x-reach-end\"))), r || (r = t.scrollTop), o || (o = t.scrollLeft), \"top\" === e && n < r && t.dispatchEvent(i(\"ps-scroll-up\")), \"top\" === e && n > r && t.dispatchEvent(i(\"ps-scroll-down\")), \"left\" === e && n < o && t.dispatchEvent(i(\"ps-scroll-left\")), \"left\" === e && n > o && t.dispatchEvent(i(\"ps-scroll-right\")), \"top\" === e && (t.scrollTop = r = n, t.dispatchEvent(i(\"ps-scroll-y\"))), \"left\" === e && (t.scrollLeft = o = n, t.dispatchEvent(i(\"ps-scroll-x\")));\n };\n }, {\n \"./instances\": 18\n }],\n 21: [function (t, e, n) {\n \"use strict\";\n\n var r = t(\"../lib/helper\"),\n o = t(\"../lib/dom\"),\n l = t(\"./instances\"),\n i = t(\"./update-geometry\"),\n s = t(\"./update-scroll\");\n e.exports = function (t) {\n var e = l.get(t);\n e && (e.negativeScrollAdjustment = e.isNegativeScroll ? t.scrollWidth - t.clientWidth : 0, o.css(e.scrollbarXRail, \"display\", \"block\"), o.css(e.scrollbarYRail, \"display\", \"block\"), e.railXMarginWidth = r.toInt(o.css(e.scrollbarXRail, \"marginLeft\")) + r.toInt(o.css(e.scrollbarXRail, \"marginRight\")), e.railYMarginHeight = r.toInt(o.css(e.scrollbarYRail, \"marginTop\")) + r.toInt(o.css(e.scrollbarYRail, \"marginBottom\")), o.css(e.scrollbarXRail, \"display\", \"none\"), o.css(e.scrollbarYRail, \"display\", \"none\"), i(t), s(t, \"top\", t.scrollTop), s(t, \"left\", t.scrollLeft), o.css(e.scrollbarXRail, \"display\", \"\"), o.css(e.scrollbarYRail, \"display\", \"\"));\n };\n }, {\n \"../lib/dom\": 3,\n \"../lib/helper\": 6,\n \"./instances\": 18,\n \"./update-geometry\": 19,\n \"./update-scroll\": 20\n }]\n}, {}, [1]);\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/perfect-scrollbar.jquery.min.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/player.min.js":
/*!*******************************************************!*\
!*** ./buyercall/assets/scripts/vendor/player.min.js ***!
\*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n!function (t, e) {\n true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (e),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined;\n}(this, function () {\n \"use strict\";\n\n var t = {};\n return t.hasClass = function (t, e) {\n return new RegExp(\"(\\\\s|^)\" + e + \"(\\\\s|$)\").test(t.attr(\"class\"));\n }, t.addClass = function (e, s) {\n !t.hasClass(e, s) && e.attr(\"class\", (e.getAttribute(\"class\") ? e.getAttribute(\"class\") + \" \" : \"\") + s);\n }, t.removeClass = function (e, s) {\n var a = e.attr(\"class\").replace(new RegExp(\"(\\\\s|^)\" + s + \"(\\\\s|$)\", \"g\"), \"$2\");\n t.hasClass(e, s) && e.attr(\"class\", a);\n }, t.toggleClass = function (e, s) {\n t[t.hasClass(e, s) ? \"removeClass\" : \"addClass\"](e, s);\n }, t.className = function (t, e) {\n t.attr(\"class\", e), console.log(\"className\", t);\n }, t;\n}), function (t) {\n var e = {\n cursorPoint: function cursorPoint(t, s) {\n e.settings.pt.x = t.clientX, e.settings.pt.y = t.clientY;\n var a = s.find(\"svg\").attr(\"id\");\n return a = document.getElementById(a), e.settings.pt.matrixTransform(a.getScreenCTM().inverse());\n },\n angle: function angle(t, e) {\n var s = e - 50,\n a = t - 50,\n r = Math.atan2(s, a);\n return r *= 180 / Math.PI, r += 90, 0 > r && (r = 360 + r), r;\n },\n setGraphValue: function setGraphValue(s, a, r) {\n var n = r.find(e.settings.audioObj),\n i = e.settings.pc,\n o = i - parseFloat(a / n[0].duration * i, 10);\n t(s).css(\"strokeDashoffset\", o), 0 === a && (t(s).addClass(s, \"done\"), s === t(e.settings.progress) && t(s).attr(\"class\", \"ended\"));\n },\n reportPosition: function reportPosition(t, s) {\n var a = t.find(e.settings.progress);\n t.find(e.settings.audioObj);\n e.setGraphValue(a, s.currentTime, t);\n },\n stopAllSounds: function stopAllSounds() {\n document.addEventListener(\"play\", function (e) {\n for (var s = document.getElementsByTagName(\"audio\"), a = 0, r = s.length; r > a; a++) s[a] != e.target && s[a].pause(), s[a] != e.target && t(s[a]).parent(\"div\").find(\".playing\").attr(\"class\", \"paused\");\n }, !0);\n },\n settings: {},\n init: function init(s) {\n var a = ['<svg viewBox=\"0 0 100 100\" id=\"playable\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"34\" height=\"34\" data-play=\"playable\" class=\"not-started playable\">', '<g class=\"shape\">', '<circle class=\"progress-track\" cx=\"50\" cy=\"50\" r=\"47.45\" stroke=\"#becce1\" stroke-opacity=\"0.25\" stroke-linecap=\"round\" fill=\"none\" stroke-width=\"5\"/>', '<circle class=\"precache-bar\" cx=\"50\" cy=\"50\" r=\"47.45\" stroke=\"#302F32\" stroke-opacity=\"0.25\" stroke-linecap=\"round\" fill=\"none\" stroke-width=\"5\" transform=\"rotate(-90 50 50)\"/>', '<circle class=\"progress-bar\" cx=\"50\" cy=\"50\" r=\"47.45\" stroke=\"#009EF8\" stroke-opacity=\"1\" stroke-linecap=\"round\" fill=\"none\" stroke-width=\"5\" transform=\"rotate(-90 50 50)\"/>', \"</g>\", '<circle class=\"controls\" cx=\"50\" cy=\"50\" r=\"45\" stroke=\"none\" fill=\"#000000\" opacity=\"0.0\" pointer-events=\"all\"/>', '<g class=\"control pause\">', '<line x1=\"40\" y1=\"35\" x2=\"40\" y2=\"65\" stroke=\"#000000\" fill=\"none\" stroke-width=\"8\" stroke-linecap=\"round\"/>', '<line x1=\"60\" y1=\"35\" x2=\"60\" y2=\"65\" stroke=\"#000000\" fill=\"none\" stroke-width=\"8\" stroke-linecap=\"round\"/>', \"</g>\", '<g class=\"control play\">', '<polygon points=\"45,35 65,50 45,65\" fill=\"#009EF8\" stroke-width=\"0\"></polygon>', \"</g>\", '<g class=\"control stop\">', '<rect x=\"35\" y=\"35\" width=\"30\" height=\"30\" stroke=\"#000000\" fill=\"none\" stroke-width=\"1\"/>', \"</g>\", \"</svg>\"];\n a = a.join(\" \"), t.each(this, function (e, s) {\n var r = t(this).find(\"audio\");\n r.attr(\"id\", \"audio\" + e), a = a.replace('width=\"34\"', 'width=\"' + r.data(\"size\") + '\"'), a = a.replace('height=\"34\"', 'height=\"' + r.data(\"size\") + '\"'), a = a.replace('id=\"playable\"', 'id=\"playable' + e + '\"'), t(this).append(a);\n });\n var r = t(this).find(\"svg\").attr(\"id\");\n r = document.getElementById(r), e.defaults = {\n \"this\": this,\n thisSelector: this.selector.toString(),\n playObj: \"playable\",\n progress: \".progress-bar\",\n precache: \".precache-bar\",\n audioObj: \"audio\",\n controlsObj: \".controls\",\n pt: r.createSVGPoint(),\n pc: 298.1371428256714\n }, lunar = {}, e.settings = t.extend({}, e.defaults, s), t(e.settings.controlsObj).on(\"click\", function (s) {\n var a = t(s.currentTarget).closest(t(e.settings.thisSelector)),\n r = {\n el: a,\n activeAudio: a.find(e.settings.audioObj),\n playObj: a.find(\"[data-play]\"),\n precache: a.find(e.settings.precache)\n };\n switch (r[\"class\"] = r.playObj.attr(\"class\"), r[\"class\"].replace(\"playable\", \"\").trim()) {\n case \"not-started\":\n e.stopAllSounds(), r.activeAudio[0].play();\n var n = document.getElementById(r.activeAudio.attr(\"id\"));\n n.addEventListener(\"timeupdate\", function (t) {\n e.reportPosition(a, n);\n }), r.playObj.attr(\"class\", \"playing\");\n break;\n case \"playing\":\n r.playObj.attr(\"class\", \"playable paused\"), r.activeAudio[0].pause(), t(n).off(\"timeupdate\");\n break;\n case \"paused\":\n r.playObj.attr(\"class\", \"playable playing\"), r.activeAudio[0].play();\n break;\n case \"ended\":\n r.playObj.attr(\"class\", \"not-started playable\"), r.activeAudio.off(\"timeupdate\", e.reportPosition);\n }\n }), t(e.defaults.audioObj).on(\"progress\", function (s) {\n if (this.buffered.length > 0) {\n var a = this.buffered.end(this.buffered.length - 1),\n r = t(s.currentTarget).parent().find(e.settings.precache),\n n = t(this).closest(t(e.settings.thisSelector));\n e.setGraphValue(r, a, n);\n }\n });\n }\n };\n t.fn.mediaPlayer = function (s) {\n return e[s] ? e[s].apply(this, Array.prototype.slice.call(arguments, 1)) : \"object\" != _typeof(s) && s ? void t.error(\"Method \" + s + \" does not exist on jQuery.mediaPlayer\") : e.init.apply(this, arguments);\n };\n}(jQuery);\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/player.min.js?");
/***/ }),
/***/ "./buyercall/assets/scripts/vendor/sweetalert2.js":
/*!********************************************************!*\
!*** ./buyercall/assets/scripts/vendor/sweetalert2.js ***!
\********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\n * sweetalert2 v5.3.5\n * Released under the MIT License.\n */\n(function (global, factory) {\n ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined;\n})(this, function () {\n 'use strict';\n\n var swalPrefix = 'swal2-';\n var prefix = function prefix(items) {\n var result = {};\n for (var i in items) {\n result[items[i]] = swalPrefix + items[i];\n }\n return result;\n };\n var swalClasses = prefix(['container', 'in', 'iosfix', 'modal', 'overlay', 'fade', 'show', 'hide', 'noanimation', 'close', 'content', 'spacer', 'confirm', 'cancel', 'icon', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea', 'inputerror', 'validationerror', 'progresssteps', 'activeprogressstep', 'progresscircle', 'progressline', 'loading', 'styled']);\n var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);\n var defaultParams = {\n title: '',\n text: '',\n html: '',\n type: null,\n customClass: '',\n animation: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n showConfirmButton: true,\n showCancelButton: false,\n preConfirm: null,\n confirmButtonText: 'OK',\n confirmButtonColor: '#3085d6',\n confirmButtonClass: null,\n cancelButtonText: 'Cancel',\n cancelButtonColor: '#aaa',\n cancelButtonClass: null,\n buttonsStyling: true,\n reverseButtons: false,\n focusCancel: false,\n showCloseButton: false,\n showLoaderOnConfirm: false,\n imageUrl: null,\n imageWidth: null,\n imageHeight: null,\n imageClass: null,\n timer: null,\n width: 500,\n padding: 20,\n background: '#fff',\n input: null,\n inputPlaceholder: '',\n inputValue: '',\n inputOptions: {},\n inputAutoTrim: true,\n inputClass: null,\n inputAttributes: {},\n inputValidator: null,\n progressSteps: [],\n currentProgressStep: null,\n progressStepsDistance: '40px',\n onOpen: null,\n onClose: null\n };\n var sweetHTML = '<div class=\"' + swalClasses.modal + '\" style=\"display: none\" tabIndex=\"-1\">' + '<ul class=\"' + swalClasses.progresssteps + '\"></ul>' + '<div class=\"' + swalClasses.icon + ' ' + iconTypes.error + '\">' + '<span class=\"x-mark\"><span class=\"line left\"></span><span class=\"line right\"></span></span>' + '</div>' + '<div class=\"' + swalClasses.icon + ' ' + iconTypes.question + '\">?</div>' + '<div class=\"' + swalClasses.icon + ' ' + iconTypes.warning + '\">!</div>' + '<div class=\"' + swalClasses.icon + ' ' + iconTypes.info + '\">i</div>' + '<div class=\"' + swalClasses.icon + ' ' + iconTypes.success + '\">' + '<span class=\"line tip\"></span> <span class=\"line long\"></span>' + '<div class=\"placeholder\"></div> <div class=\"fix\"></div>' + '</div>' + '<img class=\"' + swalClasses.image + '\">' + '<h2></h2>' + '<div class=\"' + swalClasses.content + '\"></div>' + '<input class=\"' + swalClasses.input + '\">' + '<input type=\"file\" class=\"' + swalClasses.file + '\">' + '<div class=\"' + swalClasses.range + '\">' + '<output></output>' + '<input type=\"range\">' + '</div>' + '<select class=\"' + swalClasses.select + '\"></select>' + '<div class=\"' + swalClasses.radio + '\"></div>' + '<label for=\"' + swalClasses.checkbox + '\" class=\"' + swalClasses.checkbox + '\">' + '<input type=\"checkbox\">' + '</label>' + '<textarea class=\"' + swalClasses.textarea + '\"></textarea>' + '<div class=\"' + swalClasses.validationerror + '\"></div>' + '<hr class=\"' + swalClasses.spacer + '\">' + '<button type=\"button\" class=\"' + swalClasses.confirm + '\">OK</button>' + '<button type=\"button\" class=\"' + swalClasses.cancel + '\">Cancel</button>' + '<span class=\"' + swalClasses.close + '\">×</span>' + '</div>';\n var sweetContainer;\n var existingSweetContainers = document.getElementsByClassName(swalClasses.container);\n if (existingSweetContainers.length) {\n sweetContainer = existingSweetContainers[0];\n } else {\n sweetContainer = document.createElement('div');\n sweetContainer.className = swalClasses.container;\n sweetContainer.innerHTML = sweetHTML;\n }\n var extend = function extend(a, b) {\n for (var key in b) {\n if (b.hasOwnProperty(key)) {\n a[key] = b[key];\n }\n }\n return a;\n };\n\n /*\n * Set hover, active and focus-states for buttons (source: http://www.sitepoint.com/javascript-generate-lighter-darker-color)\n */\n var colorLuminance = function colorLuminance(hex, lum) {\n // Validate hex string\n hex = String(hex).replace(/[^0-9a-f]/gi, '');\n if (hex.length < 6) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n lum = lum || 0;\n\n // Convert to decimal and change luminosity\n var rgb = '#';\n for (var i = 0; i < 3; i++) {\n var c = parseInt(hex.substr(i * 2, 2), 16);\n c = Math.round(Math.min(Math.max(0, c + c * lum), 255)).toString(16);\n rgb += ('00' + c).substr(c.length);\n }\n return rgb;\n };\n\n // Remember state in cases where opening and handling a modal will fiddle with it.\n var states = {\n previousWindowKeyDown: null,\n previousActiveElement: null,\n previousBodyPadding: null\n };\n\n /*\n * Add modal + overlay to DOM\n */\n var init = function init() {\n if (typeof document === 'undefined') {\n console.error('SweetAlert2 requires document to initialize');\n return;\n } else if (document.getElementsByClassName(swalClasses.container).length) {\n return;\n }\n document.body.appendChild(sweetContainer);\n var modal = getModal();\n var input = getChildByClass(modal, swalClasses.input);\n var file = getChildByClass(modal, swalClasses.file);\n var range = modal.querySelector('.' + swalClasses.range + ' input');\n var select = getChildByClass(modal, swalClasses.select);\n var checkbox = modal.querySelector('.' + swalClasses.checkbox + ' input');\n var textarea = getChildByClass(modal, swalClasses.textarea);\n input.oninput = function () {\n sweetAlert.resetValidationError();\n };\n input.onkeyup = function (event) {\n event.stopPropagation();\n if (event.keyCode === 13) {\n sweetAlert.clickConfirm();\n }\n };\n file.onchange = function () {\n sweetAlert.resetValidationError();\n };\n range.oninput = function () {\n sweetAlert.resetValidationError();\n range.previousSibling.value = range.value;\n };\n range.onchange = function () {\n sweetAlert.resetValidationError();\n range.previousSibling.value = range.value;\n };\n select.onchange = function () {\n sweetAlert.resetValidationError();\n };\n checkbox.onchange = function () {\n sweetAlert.resetValidationError();\n };\n textarea.oninput = function () {\n sweetAlert.resetValidationError();\n };\n return modal;\n };\n\n /*\n * Manipulate DOM\n */\n var elementByClass = function elementByClass(className) {\n return sweetContainer.querySelector('.' + className);\n };\n var getModal = function getModal() {\n return document.body.querySelector('.' + swalClasses.modal) || init();\n };\n var getIcons = function getIcons() {\n var modal = getModal();\n return modal.querySelectorAll('.' + swalClasses.icon);\n };\n var getSpacer = function getSpacer() {\n return elementByClass(swalClasses.spacer);\n };\n var getProgressSteps = function getProgressSteps() {\n return elementByClass(swalClasses.progresssteps);\n };\n var getValidationError = function getValidationError() {\n return elementByClass(swalClasses.validationerror);\n };\n var getConfirmButton = function getConfirmButton() {\n return elementByClass(swalClasses.confirm);\n };\n var getCancelButton = function getCancelButton() {\n return elementByClass(swalClasses.cancel);\n };\n var getCloseButton = function getCloseButton() {\n return elementByClass(swalClasses.close);\n };\n var getFocusableElements = function getFocusableElements(focusCancel) {\n var buttons = [getConfirmButton(), getCancelButton()];\n if (focusCancel) {\n buttons.reverse();\n }\n return buttons.concat(Array.prototype.slice.call(getModal().querySelectorAll('button:not([class^=' + swalPrefix + ']), input:not([type=hidden]), textarea, select')));\n };\n var hasClass = function hasClass(elem, className) {\n return elem.classList.contains(className);\n };\n var focusInput = function focusInput(input) {\n input.focus();\n\n // place cursor at end of text in text input\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915/1331425\n var val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n var addClass = function addClass(elem, className) {\n if (!elem || !className) {\n return;\n }\n var classes = className.split(/\\s+/);\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n };\n var removeClass = function removeClass(elem, className) {\n if (!elem || !className) {\n return;\n }\n var classes = className.split(/\\s+/);\n classes.forEach(function (className) {\n elem.classList.remove(className);\n });\n };\n var getChildByClass = function getChildByClass(elem, className) {\n for (var i = 0; i < elem.childNodes.length; i++) {\n if (hasClass(elem.childNodes[i], className)) {\n return elem.childNodes[i];\n }\n }\n };\n var show = function show(elem, display) {\n if (!display) {\n display = 'block';\n }\n elem.style.opacity = '';\n elem.style.display = display;\n };\n var hide = function hide(elem) {\n elem.style.opacity = '';\n elem.style.display = 'none';\n };\n var empty = function empty(elem) {\n while (elem.firstChild) {\n elem.removeChild(elem.firstChild);\n }\n };\n\n // borrowed from jqeury $(elem).is(':visible') implementation\n var isVisible = function isVisible(elem) {\n return elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length;\n };\n var removeStyleProperty = function removeStyleProperty(elem, property) {\n if (elem.style.removeProperty) {\n elem.style.removeProperty(property);\n } else {\n elem.style.removeAttribute(property);\n }\n };\n var fireClick = function fireClick(node) {\n // Taken from http://www.nonobtrusive.com/2011/11/29/programatically-fire-crossbrowser-click-event-with-javascript/\n // Then fixed for today's Chrome browser.\n if (typeof MouseEvent === 'function') {\n // Up-to-date approach\n var mevt = new MouseEvent('click', {\n view: window,\n bubbles: false,\n cancelable: true\n });\n node.dispatchEvent(mevt);\n } else if (document.createEvent) {\n // Fallback\n var evt = document.createEvent('MouseEvents');\n evt.initEvent('click', false, false);\n node.dispatchEvent(evt);\n } else if (document.createEventObject) {\n node.fireEvent('onclick');\n } else if (typeof node.onclick === 'function') {\n node.onclick();\n }\n };\n var stopEventPropagation = function stopEventPropagation(e) {\n // In particular, make sure the space bar doesn't scroll the main window.\n if (typeof e.stopPropagation === 'function') {\n e.stopPropagation();\n e.preventDefault();\n } else if (window.event && window.event.hasOwnProperty('cancelBubble')) {\n window.event.cancelBubble = true;\n }\n };\n var animationEndEvent = function () {\n var testEl = document.createElement('div');\n var transEndEventNames = {\n 'WebkitAnimation': 'webkitAnimationEnd',\n 'OAnimation': 'oAnimationEnd oanimationend',\n 'msAnimation': 'MSAnimationEnd',\n 'animation': 'animationend'\n };\n for (var i in transEndEventNames) {\n if (transEndEventNames.hasOwnProperty(i) && testEl.style[i] !== undefined) {\n return transEndEventNames[i];\n }\n }\n return false;\n }();\n\n // Reset the page to its previous state\n var resetPrevState = function resetPrevState() {\n var modal = getModal();\n window.onkeydown = states.previousWindowKeyDown;\n if (states.previousActiveElement && states.previousActiveElement.focus) {\n states.previousActiveElement.focus();\n }\n clearTimeout(modal.timeout);\n };\n\n // Measure width of scrollbar\n // https://github.com/twbs/bootstrap/blob/master/js/modal.js#L279-L286\n var measureScrollbar = function measureScrollbar() {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n // JavaScript Debounce Function\n // https://davidwalsh.name/javascript-debounce-function\n var debounce = function debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this;\n var args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n };\n var modalParams = extend({}, defaultParams);\n var queue = [];\n var swal2Observer;\n\n /*\n * Set type, text and actions on modal\n */\n var setParameters = function setParameters(params) {\n var modal = getModal();\n for (var param in params) {\n if (!defaultParams.hasOwnProperty(param) && param !== 'extraParams') {\n console.warn('SweetAlert2: Unknown parameter \"' + param + '\"');\n }\n }\n\n // set modal width and margin-left\n modal.style.width = typeof params.width === 'number' ? params.width + 'px' : params.width;\n modal.style.padding = params.padding + 'px';\n modal.style.background = params.background;\n var $title = modal.querySelector('h2');\n var $content = modal.querySelector('.' + swalClasses.content);\n var $confirmBtn = getConfirmButton();\n var $cancelBtn = getCancelButton();\n var $closeButton = modal.querySelector('.' + swalClasses.close);\n\n // Title\n $title.innerHTML = params.title.split('\\n').join('<br>');\n\n // Content\n var i;\n if (params.text || params.html) {\n if (_typeof(params.html) === 'object') {\n $content.innerHTML = '';\n if (0 in params.html) {\n for (i = 0; (i in params.html); i++) {\n $content.appendChild(params.html[i].cloneNode(true));\n }\n } else {\n $content.appendChild(params.html.cloneNode(true));\n }\n } else {\n $content.innerHTML = params.html || params.text.split('\\n').join('<br>');\n }\n show($content);\n } else {\n hide($content);\n }\n\n // Close button\n if (params.showCloseButton) {\n show($closeButton);\n } else {\n hide($closeButton);\n }\n\n // Custom Class\n modal.className = swalClasses.modal;\n if (params.customClass) {\n addClass(modal, params.customClass);\n }\n\n // Progress steps\n var progressStepsContainer = getProgressSteps();\n var currentProgressStep = parseInt(params.currentProgressStep === null ? sweetAlert.getQueueStep() : params.currentProgressStep, 10);\n if (params.progressSteps.length) {\n show(progressStepsContainer);\n empty(progressStepsContainer);\n if (currentProgressStep >= params.progressSteps.length) {\n console.warn('SweetAlert2: Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n params.progressSteps.forEach(function (step, index) {\n var circle = document.createElement('li');\n addClass(circle, swalClasses.progresscircle);\n circle.innerHTML = step;\n if (index === currentProgressStep) {\n addClass(circle, swalClasses.activeprogressstep);\n }\n progressStepsContainer.appendChild(circle);\n if (index !== params.progressSteps.length - 1) {\n var line = document.createElement('li');\n addClass(line, swalClasses.progressline);\n line.style.width = params.progressStepsDistance;\n progressStepsContainer.appendChild(line);\n }\n });\n } else {\n hide(progressStepsContainer);\n }\n\n // Icon\n var icons = getIcons();\n for (i = 0; i < icons.length; i++) {\n hide(icons[i]);\n }\n if (params.type) {\n var validType = false;\n for (var iconType in iconTypes) {\n if (params.type === iconType) {\n validType = true;\n break;\n }\n }\n if (!validType) {\n console.error('SweetAlert2: Unknown alert type: ' + params.type);\n return false;\n }\n var $icon = modal.querySelector('.' + swalClasses.icon + '.' + iconTypes[params.type]);\n show($icon);\n\n // Animate icon\n switch (params.type) {\n case 'success':\n addClass($icon, 'animate');\n addClass($icon.querySelector('.tip'), 'animate-success-tip');\n addClass($icon.querySelector('.long'), 'animate-success-long');\n break;\n case 'error':\n addClass($icon, 'animate-error-icon');\n addClass($icon.querySelector('.x-mark'), 'animate-x-mark');\n break;\n case 'warning':\n addClass($icon, 'pulse-warning');\n break;\n default:\n break;\n }\n }\n\n // Custom image\n var $customImage = modal.querySelector('.' + swalClasses.image);\n if (params.imageUrl) {\n $customImage.setAttribute('src', params.imageUrl);\n show($customImage);\n if (params.imageWidth) {\n $customImage.setAttribute('width', params.imageWidth);\n } else {\n $customImage.removeAttribute('width');\n }\n if (params.imageHeight) {\n $customImage.setAttribute('height', params.imageHeight);\n } else {\n $customImage.removeAttribute('height');\n }\n $customImage.className = swalClasses.image;\n if (params.imageClass) {\n addClass($customImage, params.imageClass);\n }\n } else {\n hide($customImage);\n }\n\n // Cancel button\n if (params.showCancelButton) {\n $cancelBtn.style.display = 'inline-block';\n } else {\n hide($cancelBtn);\n }\n\n // Confirm button\n if (params.showConfirmButton) {\n removeStyleProperty($confirmBtn, 'display');\n } else {\n hide($confirmBtn);\n }\n\n // Buttons spacer\n var spacer = getSpacer();\n if (!params.showConfirmButton && !params.showCancelButton) {\n hide(spacer);\n } else {\n show(spacer);\n }\n\n // Edit text on cancel and confirm buttons\n $confirmBtn.innerHTML = params.confirmButtonText;\n $cancelBtn.innerHTML = params.cancelButtonText;\n\n // Set buttons to selected background colors\n if (params.buttonsStyling) {\n $confirmBtn.style.backgroundColor = params.confirmButtonColor;\n $cancelBtn.style.backgroundColor = params.cancelButtonColor;\n }\n\n // Add buttons custom classes\n $confirmBtn.className = swalClasses.confirm;\n addClass($confirmBtn, params.confirmButtonClass);\n $cancelBtn.className = swalClasses.cancel;\n addClass($cancelBtn, params.cancelButtonClass);\n\n // Buttons styling\n if (params.buttonsStyling) {\n addClass($confirmBtn, swalClasses.styled);\n addClass($cancelBtn, swalClasses.styled);\n } else {\n removeClass($confirmBtn, swalClasses.styled);\n removeClass($cancelBtn, swalClasses.styled);\n $confirmBtn.style.backgroundColor = $confirmBtn.style.borderLeftColor = $confirmBtn.style.borderRightColor = '';\n $cancelBtn.style.backgroundColor = $cancelBtn.style.borderLeftColor = $cancelBtn.style.borderRightColor = '';\n }\n\n // CSS animation\n if (params.animation === true) {\n removeClass(modal, swalClasses.noanimation);\n } else {\n addClass(modal, swalClasses.noanimation);\n }\n };\n\n /*\n * Animations\n */\n var openModal = function openModal(animation, onComplete) {\n var modal = getModal();\n if (animation) {\n addClass(modal, swalClasses.show);\n addClass(sweetContainer, swalClasses.fade);\n removeClass(modal, swalClasses.hide);\n } else {\n removeClass(modal, swalClasses.fade);\n }\n show(modal);\n\n // scrolling is 'hidden' until animation is done, after that 'auto'\n sweetContainer.style.overflowY = 'hidden';\n if (animationEndEvent && !hasClass(modal, swalClasses.noanimation)) {\n modal.addEventListener(animationEndEvent, function swalCloseEventFinished() {\n modal.removeEventListener(animationEndEvent, swalCloseEventFinished);\n sweetContainer.style.overflowY = 'auto';\n });\n } else {\n sweetContainer.style.overflowY = 'auto';\n }\n addClass(sweetContainer, swalClasses[\"in\"]);\n addClass(document.body, swalClasses[\"in\"]);\n fixScrollbar();\n iOSfix();\n states.previousActiveElement = document.activeElement;\n if (onComplete !== null && typeof onComplete === 'function') {\n onComplete.call(this, modal);\n }\n };\n function fixScrollbar() {\n // for queues, do not do this more than once\n if (states.previousBodyPadding !== null) {\n return;\n }\n // if the body has overflow\n if (document.body.scrollHeight > window.innerHeight) {\n // add padding so the content doesn't shift after removal of scrollbar\n states.previousBodyPadding = document.body.style.paddingRight;\n document.body.style.paddingRight = measureScrollbar() + 'px';\n }\n }\n function undoScrollbar() {\n if (states.previousBodyPadding !== null) {\n document.body.style.paddingRight = states.previousBodyPadding;\n states.previousBodyPadding = null;\n }\n }\n\n // Fix iOS scrolling http://stackoverflow.com/q/39626302/1331425\n function iOSfix() {\n var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n if (iOS && !hasClass(document.body, swalClasses.iosfix)) {\n var offset = document.body.scrollTop;\n document.body.style.top = offset * -1 + 'px';\n addClass(document.body, swalClasses.iosfix);\n }\n }\n function undoIOSfix() {\n if (hasClass(document.body, swalClasses.iosfix)) {\n var offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.scrollTop = offset * -1;\n }\n }\n function modalDependant() {\n if (arguments[0] === undefined) {\n console.error('SweetAlert2 expects at least 1 attribute!');\n return false;\n }\n var params = extend({}, modalParams);\n switch (_typeof(arguments[0])) {\n case 'string':\n params.title = arguments[0];\n params.text = arguments[1] || '';\n params.type = arguments[2] || '';\n break;\n case 'object':\n extend(params, arguments[0]);\n params.extraParams = arguments[0].extraParams;\n if (params.input === 'email' && params.inputValidator === null) {\n params.inputValidator = function (email) {\n return new Promise(function (resolve, reject) {\n var emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$/;\n if (emailRegex.test(email)) {\n resolve();\n } else {\n reject('Invalid email address');\n }\n });\n };\n }\n break;\n default:\n console.error('SweetAlert2: Unexpected type of argument! Expected \"string\" or \"object\", got ' + _typeof(arguments[0]));\n return false;\n }\n setParameters(params);\n\n // Modal interactions\n var modal = getModal();\n return new Promise(function (resolve, reject) {\n // Close on timer\n if (params.timer) {\n modal.timeout = setTimeout(function () {\n sweetAlert.closeModal(params.onClose);\n reject('timer');\n }, params.timer);\n }\n\n // Get input element by specified type or, if type isn't specified, by params.input\n var getInput = function getInput(inputType) {\n inputType = inputType || params.input;\n switch (inputType) {\n case 'select':\n case 'textarea':\n case 'file':\n return getChildByClass(modal, swalClasses[inputType]);\n case 'checkbox':\n return modal.querySelector('.' + swalClasses.checkbox + ' input');\n case 'radio':\n return modal.querySelector('.' + swalClasses.radio + ' input:checked') || modal.querySelector('.' + swalClasses.radio + ' input:first-child');\n case 'range':\n return modal.querySelector('.' + swalClasses.range + ' input');\n default:\n return getChildByClass(modal, swalClasses.input);\n }\n };\n\n // Get the value of the modal input\n var getInputValue = function getInputValue() {\n var input = getInput();\n if (!input) {\n return null;\n }\n switch (params.input) {\n case 'checkbox':\n return input.checked ? 1 : 0;\n case 'radio':\n return input.checked ? input.value : null;\n case 'file':\n return input.files.length ? input.files[0] : null;\n default:\n return params.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n // input autofocus\n if (params.input) {\n setTimeout(function () {\n var input = getInput();\n if (input) {\n focusInput(input);\n }\n }, 0);\n }\n var confirm = function confirm(value) {\n if (params.showLoaderOnConfirm) {\n sweetAlert.showLoading();\n }\n if (params.preConfirm) {\n params.preConfirm(value, params.extraParams).then(function (preConfirmValue) {\n sweetAlert.closeModal(params.onClose);\n resolve(preConfirmValue || value);\n }, function (error) {\n sweetAlert.hideLoading();\n if (error) {\n sweetAlert.showValidationError(error);\n }\n });\n } else {\n sweetAlert.closeModal(params.onClose);\n resolve(value);\n }\n };\n\n // Mouse interactions\n var onButtonEvent = function onButtonEvent(event) {\n var e = event || window.event;\n var target = e.target || e.srcElement;\n var confirmBtn = getConfirmButton();\n var cancelBtn = getCancelButton();\n var targetedConfirm = confirmBtn === target || confirmBtn.contains(target);\n var targetedCancel = cancelBtn === target || cancelBtn.contains(target);\n switch (e.type) {\n case 'mouseover':\n case 'mouseup':\n if (params.buttonsStyling) {\n if (targetedConfirm) {\n confirmBtn.style.backgroundColor = colorLuminance(params.confirmButtonColor, -0.1);\n } else if (targetedCancel) {\n cancelBtn.style.backgroundColor = colorLuminance(params.cancelButtonColor, -0.1);\n }\n }\n break;\n case 'mouseout':\n if (params.buttonsStyling) {\n if (targetedConfirm) {\n confirmBtn.style.backgroundColor = params.confirmButtonColor;\n } else if (targetedCancel) {\n cancelBtn.style.backgroundColor = params.cancelButtonColor;\n }\n }\n break;\n case 'mousedown':\n if (params.buttonsStyling) {\n if (targetedConfirm) {\n confirmBtn.style.backgroundColor = colorLuminance(params.confirmButtonColor, -0.2);\n } else if (targetedCancel) {\n cancelBtn.style.backgroundColor = colorLuminance(params.cancelButtonColor, -0.2);\n }\n }\n break;\n case 'click':\n // Clicked 'confirm'\n if (targetedConfirm && sweetAlert.isVisible()) {\n if (params.input) {\n var inputValue = getInputValue();\n if (params.inputValidator) {\n sweetAlert.disableInput();\n params.inputValidator(inputValue, params.extraParams).then(function () {\n sweetAlert.enableInput();\n confirm(inputValue);\n }, function (error) {\n sweetAlert.enableInput();\n if (error) {\n sweetAlert.showValidationError(error);\n }\n });\n } else {\n confirm(inputValue);\n }\n } else {\n confirm(true);\n }\n\n // Clicked 'cancel'\n } else if (targetedCancel && sweetAlert.isVisible()) {\n sweetAlert.closeModal(params.onClose);\n reject('cancel');\n }\n break;\n default:\n }\n };\n var $buttons = modal.querySelectorAll('button');\n var i;\n for (i = 0; i < $buttons.length; i++) {\n $buttons[i].onclick = onButtonEvent;\n $buttons[i].onmouseover = onButtonEvent;\n $buttons[i].onmouseout = onButtonEvent;\n $buttons[i].onmousedown = onButtonEvent;\n }\n\n // Closing modal by close button\n getCloseButton().onclick = function () {\n sweetAlert.closeModal(params.onClose);\n reject('close');\n };\n\n // Closing modal by overlay click\n sweetContainer.onclick = function (e) {\n if (e.target !== sweetContainer) {\n return;\n }\n if (params.allowOutsideClick) {\n sweetAlert.closeModal(params.onClose);\n reject('overlay');\n }\n };\n var $confirmButton = getConfirmButton();\n var $cancelButton = getCancelButton();\n\n // Reverse buttons if neede d\n if (params.reverseButtons) {\n $confirmButton.parentNode.insertBefore($cancelButton, $confirmButton);\n } else {\n $confirmButton.parentNode.insertBefore($confirmButton, $cancelButton);\n }\n\n // Focus handling\n function setFocus(index, increment) {\n var focusableElements = getFocusableElements(params.focusCancel);\n // search for visible elements and select the next possible match\n for (var i = 0; i < focusableElements.length; i++) {\n index = index + increment;\n\n // rollover to first item\n if (index === focusableElements.length) {\n index = 0;\n\n // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n\n // determine if element is visible\n var el = focusableElements[index];\n if (isVisible(el)) {\n return el.focus();\n }\n }\n }\n function handleKeyDown(event) {\n var e = event || window.event;\n var keyCode = e.keyCode || e.which;\n if ([9, 13, 32, 27].indexOf(keyCode) === -1) {\n // Don't do work on keys we don't care about.\n return;\n }\n var $targetElement = e.target || e.srcElement;\n var focusableElements = getFocusableElements(params.focusCancel);\n var btnIndex = -1; // Find the button - note, this is a nodelist, not an array.\n for (var i = 0; i < focusableElements.length; i++) {\n if ($targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n // TAB\n if (keyCode === 9) {\n if (!e.shiftKey) {\n // Cycle to the next button\n setFocus(btnIndex, 1);\n } else {\n // Cycle to the prev button\n setFocus(btnIndex, -1);\n }\n stopEventPropagation(e);\n } else {\n if (keyCode === 13 || keyCode === 32) {\n if (btnIndex === -1) {\n // ENTER/SPACE clicked outside of a button.\n if (params.focusCancel) {\n fireClick($cancelButton, e);\n } else {\n fireClick($confirmButton, e);\n }\n }\n } else if (keyCode === 27 && params.allowEscapeKey === true) {\n sweetAlert.closeModal(params.onClose);\n reject('esc');\n }\n }\n }\n states.previousWindowKeyDown = window.onkeydown;\n window.onkeydown = handleKeyDown;\n\n // Loading state\n if (params.buttonsStyling) {\n $confirmButton.style.borderLeftColor = params.confirmButtonColor;\n $confirmButton.style.borderRightColor = params.confirmButtonColor;\n }\n\n /**\n * Show spinner instead of Confirm button and disable Cancel button\n */\n sweetAlert.showLoading = sweetAlert.enableLoading = function () {\n show(getSpacer());\n show($confirmButton, 'inline-block');\n addClass($confirmButton, swalClasses.loading);\n addClass(modal, swalClasses.loading);\n $confirmButton.disabled = true;\n $cancelButton.disabled = true;\n };\n\n /**\n * Show spinner instead of Confirm button and disable Cancel button\n */\n sweetAlert.hideLoading = sweetAlert.disableLoading = function () {\n if (!params.showConfirmButton) {\n hide($confirmButton);\n if (!params.showCancelButton) {\n hide(getSpacer());\n }\n }\n removeClass($confirmButton, swalClasses.loading);\n removeClass(modal, swalClasses.loading);\n $confirmButton.disabled = false;\n $cancelButton.disabled = false;\n };\n sweetAlert.enableButtons = function () {\n $confirmButton.disabled = false;\n $cancelButton.disabled = false;\n };\n sweetAlert.disableButtons = function () {\n $confirmButton.disabled = true;\n $cancelButton.disabled = true;\n };\n sweetAlert.enableConfirmButton = function () {\n $confirmButton.disabled = false;\n };\n sweetAlert.disableConfirmButton = function () {\n $confirmButton.disabled = true;\n };\n sweetAlert.enableInput = function () {\n var input = getInput();\n if (!input) {\n return false;\n }\n if (input.type === 'radio') {\n var radiosContainer = input.parentNode.parentNode;\n var radios = radiosContainer.querySelectorAll('input');\n for (var i = 0; i < radios.length; i++) {\n radios[i].disabled = false;\n }\n } else {\n input.disabled = false;\n }\n };\n sweetAlert.disableInput = function () {\n var input = getInput();\n if (!input) {\n return false;\n }\n if (input && input.type === 'radio') {\n var radiosContainer = input.parentNode.parentNode;\n var radios = radiosContainer.querySelectorAll('input');\n for (var i = 0; i < radios.length; i++) {\n radios[i].disabled = true;\n }\n } else {\n input.disabled = true;\n }\n };\n\n // Set modal min-height to disable scrolling inside the modal\n sweetAlert.recalculateHeight = debounce(function () {\n var modal = getModal();\n var prevState = modal.style.display;\n modal.style.minHeight = '';\n show(modal);\n modal.style.minHeight = modal.scrollHeight + 1 + 'px';\n modal.style.display = prevState;\n }, 50);\n\n // Show block with validation error\n sweetAlert.showValidationError = function (error) {\n var validationError = getValidationError();\n validationError.innerHTML = error;\n show(validationError);\n var input = getInput();\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n };\n\n // Hide block with validation error\n sweetAlert.resetValidationError = function () {\n var validationError = getValidationError();\n hide(validationError);\n sweetAlert.recalculateHeight();\n var input = getInput();\n if (input) {\n removeClass(input, swalClasses.inputerror);\n }\n };\n sweetAlert.getProgressSteps = function () {\n return params.progressSteps;\n };\n sweetAlert.setProgressSteps = function (progressSteps) {\n params.progressSteps = progressSteps;\n setParameters(params);\n };\n sweetAlert.showProgressSteps = function () {\n show(getProgressSteps());\n };\n sweetAlert.hideProgressSteps = function () {\n hide(getProgressSteps());\n };\n sweetAlert.enableButtons();\n sweetAlert.hideLoading();\n sweetAlert.resetValidationError();\n\n // inputs\n var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n var input;\n for (i = 0; i < inputTypes.length; i++) {\n var inputClass = swalClasses[inputTypes[i]];\n var inputContainer = getChildByClass(modal, inputClass);\n input = getInput(inputTypes[i]);\n\n // set attributes\n if (input) {\n for (var j in input.attributes) {\n if (input.attributes.hasOwnProperty(j)) {\n var attrName = input.attributes[j].name;\n if (attrName !== 'type' && attrName !== 'value') {\n input.removeAttribute(attrName);\n }\n }\n }\n for (var attr in params.inputAttributes) {\n input.setAttribute(attr, params.inputAttributes[attr]);\n }\n }\n\n // set class\n inputContainer.className = inputClass;\n if (params.inputClass) {\n addClass(inputContainer, params.inputClass);\n }\n hide(inputContainer);\n }\n var populateInputOptions;\n switch (params.input) {\n case 'text':\n case 'email':\n case 'password':\n case 'number':\n case 'tel':\n input = getChildByClass(modal, swalClasses.input);\n input.value = params.inputValue;\n input.placeholder = params.inputPlaceholder;\n input.type = params.input;\n show(input);\n break;\n case 'file':\n input = getChildByClass(modal, swalClasses.file);\n input.placeholder = params.inputPlaceholder;\n input.type = params.input;\n show(input);\n break;\n case 'range':\n var range = getChildByClass(modal, swalClasses.range);\n var rangeInput = range.querySelector('input');\n var rangeOutput = range.querySelector('output');\n rangeInput.value = params.inputValue;\n rangeInput.type = params.input;\n rangeOutput.value = params.inputValue;\n show(range);\n break;\n case 'select':\n var select = getChildByClass(modal, swalClasses.select);\n select.innerHTML = '';\n if (params.inputPlaceholder) {\n var placeholder = document.createElement('option');\n placeholder.innerHTML = params.inputPlaceholder;\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n populateInputOptions = function populateInputOptions(inputOptions) {\n for (var optionValue in inputOptions) {\n var option = document.createElement('option');\n option.value = optionValue;\n option.innerHTML = inputOptions[optionValue];\n if (params.inputValue === optionValue) {\n option.selected = true;\n }\n select.appendChild(option);\n }\n show(select);\n select.focus();\n };\n break;\n case 'radio':\n var radio = getChildByClass(modal, swalClasses.radio);\n radio.innerHTML = '';\n populateInputOptions = function populateInputOptions(inputOptions) {\n for (var radioValue in inputOptions) {\n var id = 1;\n var radioInput = document.createElement('input');\n var radioLabel = document.createElement('label');\n var radioLabelSpan = document.createElement('span');\n radioInput.type = 'radio';\n radioInput.name = swalClasses.radio;\n radioInput.value = radioValue;\n radioInput.id = swalClasses.radio + '-' + id++;\n if (params.inputValue === radioValue) {\n radioInput.checked = true;\n }\n radioLabelSpan.innerHTML = inputOptions[radioValue];\n radioLabel.appendChild(radioInput);\n radioLabel.appendChild(radioLabelSpan);\n radioLabel[\"for\"] = radioInput.id;\n radio.appendChild(radioLabel);\n }\n show(radio);\n var radios = radio.querySelectorAll('input');\n if (radios.length) {\n radios[0].focus();\n }\n };\n break;\n case 'checkbox':\n var checkbox = getChildByClass(modal, swalClasses.checkbox);\n var checkboxInput = getInput('checkbox');\n checkboxInput.type = 'checkbox';\n checkboxInput.value = 1;\n checkboxInput.id = swalClasses.checkbox;\n checkboxInput.checked = Boolean(params.inputValue);\n var label = checkbox.getElementsByTagName('span');\n if (label.length) {\n checkbox.removeChild(label[0]);\n }\n label = document.createElement('span');\n label.innerHTML = params.inputPlaceholder;\n checkbox.appendChild(label);\n show(checkbox);\n break;\n case 'textarea':\n var textarea = getChildByClass(modal, swalClasses.textarea);\n textarea.value = params.inputValue;\n textarea.placeholder = params.inputPlaceholder;\n show(textarea);\n break;\n case null:\n break;\n default:\n console.error('SweetAlert2: Unexpected type of input! Expected \"text\" or \"email\" or \"password\", \"select\", \"checkbox\", \"textarea\" or \"file\", got \"' + params.input + '\"');\n break;\n }\n if (params.input === 'select' || params.input === 'radio') {\n if (params.inputOptions instanceof Promise) {\n sweetAlert.showLoading();\n params.inputOptions.then(function (inputOptions) {\n sweetAlert.hideLoading();\n populateInputOptions(inputOptions);\n });\n } else if (_typeof(params.inputOptions) === 'object') {\n populateInputOptions(params.inputOptions);\n } else {\n console.error('SweetAlert2: Unexpected type of inputOptions! Expected object or Promise, got ' + _typeof(params.inputOptions));\n }\n }\n openModal(params.animation, params.onOpen);\n\n // Focus the first element (input or button)\n setFocus(-1, 1);\n\n // fix scroll\n sweetContainer.scrollTop = 0;\n\n // Observe changes inside the modal and adjust height\n if (typeof MutationObserver !== 'undefined' && !swal2Observer) {\n swal2Observer = new MutationObserver(sweetAlert.recalculateHeight);\n swal2Observer.observe(modal, {\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n });\n }\n\n // SweetAlert function\n function sweetAlert() {\n // Copy arguments to the local args variable\n var args = arguments;\n if (sweetAlert.isVisible()) {\n sweetAlert.close();\n }\n return modalDependant.apply(this, args);\n }\n\n /*\n * Global function to determine if swal2 modal is visible\n */\n sweetAlert.isVisible = function () {\n var modal = getModal();\n return isVisible(modal);\n };\n\n /*\n * Global function for chaining sweetAlert modals\n */\n sweetAlert.queue = function (steps) {\n queue = steps;\n var modal = getModal();\n var resetQueue = function resetQueue() {\n queue = [];\n modal.removeAttribute('data-queue-step');\n };\n return new Promise(function (resolve, reject) {\n (function step(i, callback) {\n if (i < queue.length) {\n modal.setAttribute('data-queue-step', i);\n sweetAlert(queue[i]).then(function () {\n step(i + 1, callback);\n }, function (dismiss) {\n resetQueue();\n reject(dismiss);\n });\n } else {\n resetQueue();\n resolve();\n }\n })(0);\n });\n };\n\n /*\n * Global function for getting the index of current modal in queue\n */\n sweetAlert.getQueueStep = function () {\n return getModal().getAttribute('data-queue-step');\n };\n\n /*\n * Global function for inserting a modal to the queue\n */\n sweetAlert.insertQueueStep = function (step, index) {\n if (index && index < queue.length) {\n return queue.splice(index, 0, step);\n }\n return queue.push(step);\n };\n\n /*\n * Global function for deleting a modal from the queue\n */\n sweetAlert.deleteQueueStep = function (index) {\n if (typeof queue[index] !== 'undefined') {\n queue.splice(index, 1);\n }\n };\n\n /*\n * Global function to close sweetAlert\n */\n sweetAlert.close = sweetAlert.closeModal = function (onComplete) {\n var modal = getModal();\n removeClass(modal, swalClasses.show);\n addClass(modal, swalClasses.hide);\n\n // Reset icon animations\n var $successIcon = modal.querySelector('.' + swalClasses.icon + '.' + iconTypes.success);\n removeClass($successIcon, 'animate');\n removeClass($successIcon.querySelector('.tip'), 'animate-success-tip');\n removeClass($successIcon.querySelector('.long'), 'animate-success-long');\n var $errorIcon = modal.querySelector('.' + swalClasses.icon + '.' + iconTypes.error);\n removeClass($errorIcon, 'animate-error-icon');\n removeClass($errorIcon.querySelector('.x-mark'), 'animate-x-mark');\n var $warningIcon = modal.querySelector('.' + swalClasses.icon + '.' + iconTypes.warning);\n removeClass($warningIcon, 'pulse-warning');\n resetPrevState();\n var hideModalAndResetState = function hideModalAndResetState() {\n hide(modal);\n modal.style.minHeight = '';\n removeClass(sweetContainer, swalClasses[\"in\"]);\n removeClass(document.body, swalClasses[\"in\"]);\n undoScrollbar();\n undoIOSfix();\n };\n\n // If animation is supported, animate\n if (animationEndEvent && !hasClass(modal, swalClasses.noanimation)) {\n modal.addEventListener(animationEndEvent, function swalCloseEventFinished() {\n modal.removeEventListener(animationEndEvent, swalCloseEventFinished);\n if (hasClass(modal, swalClasses.hide)) {\n hideModalAndResetState();\n }\n });\n } else {\n // Otherwise, hide immediately\n hideModalAndResetState();\n }\n if (onComplete !== null && typeof onComplete === 'function') {\n onComplete.call(this, modal);\n }\n };\n\n /*\n * Global function to click 'Confirm' button\n */\n sweetAlert.clickConfirm = function () {\n getConfirmButton().click();\n };\n\n /*\n * Global function to click 'Cancel' button\n */\n sweetAlert.clickCancel = function () {\n getCancelButton().click();\n };\n\n /**\n * Set default params for each popup\n * @param {Object} userParams\n */\n sweetAlert.setDefaults = function (userParams) {\n if (!userParams) {\n throw new Error('userParams is required');\n }\n if (_typeof(userParams) !== 'object') {\n throw new Error('userParams has to be a object');\n }\n extend(modalParams, userParams);\n };\n\n /**\n * Reset default params for each popup\n */\n sweetAlert.resetDefaults = function () {\n modalParams = extend({}, defaultParams);\n };\n sweetAlert.noop = function () {};\n sweetAlert.version = '5.3.5';\n if (typeof Promise === 'function') {\n Promise.prototype.done = Promise.prototype.done || function () {\n // eslint-disable-line\n return this[\"catch\"](function () {\n // Catch promise rejections silently.\n // https://github.com/limonte/sweetalert2/issues/177\n });\n };\n } else {\n console.warn('SweetAlert2: Please inlude Promise polyfill BEFORE including sweetalert2.js if IE10+ support needed.');\n }\n return sweetAlert;\n});\nif (window.Sweetalert2) window.sweetAlert = window.swal = window.Sweetalert2;\n\n//# sourceURL=webpack:///./buyercall/assets/scripts/vendor/sweetalert2.js?");
/***/ }),
/***/ "./node_modules/bootstrap/dist/js/npm.js":
/*!***********************************************!*\
!*** ./node_modules/bootstrap/dist/js/npm.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\n__webpack_require__(/*! ../../js/transition.js */ \"./node_modules/bootstrap/js/transition.js\")\n__webpack_require__(/*! ../../js/alert.js */ \"./node_modules/bootstrap/js/alert.js\")\n__webpack_require__(/*! ../../js/button.js */ \"./node_modules/bootstrap/js/button.js\")\n__webpack_require__(/*! ../../js/carousel.js */ \"./node_modules/bootstrap/js/carousel.js\")\n__webpack_require__(/*! ../../js/collapse.js */ \"./node_modules/bootstrap/js/collapse.js\")\n__webpack_require__(/*! ../../js/dropdown.js */ \"./node_modules/bootstrap/js/dropdown.js\")\n__webpack_require__(/*! ../../js/modal.js */ \"./node_modules/bootstrap/js/modal.js\")\n__webpack_require__(/*! ../../js/tooltip.js */ \"./node_modules/bootstrap/js/tooltip.js\")\n__webpack_require__(/*! ../../js/popover.js */ \"./node_modules/bootstrap/js/popover.js\")\n__webpack_require__(/*! ../../js/scrollspy.js */ \"./node_modules/bootstrap/js/scrollspy.js\")\n__webpack_require__(/*! ../../js/tab.js */ \"./node_modules/bootstrap/js/tab.js\")\n__webpack_require__(/*! ../../js/affix.js */ \"./node_modules/bootstrap/js/affix.js\")\n\n//# sourceURL=webpack:///./node_modules/bootstrap/dist/js/npm.js?");
/***/ }),
/***/ "./node_modules/bootstrap/js/affix.js":
/*!********************************************!*\
!*** ./node_modules/bootstrap/js/affix.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/* ========================================================================\n * Bootstrap: affix.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#affix\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n var target = this.options.target === Affix.DEFAULTS.target ? $(this.options.target) : $(document).find(this.options.target)\n\n this.$target = target\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.4.1'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n\n\n//# sourceURL=webpack:///./node_modules/bootstrap/js/affix.js?");
/***/ }),
/***/ "./node_modules/bootstrap/js/alert.js":
/*!********************************************!*\
!*** ./node_modules/bootstrap/js/alert.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/* ========================================================================\n * Bootstrap: alert.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.4.1'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n selector = selector === '#' ? [] : selector\n var $parent = $(document).find(selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n\n//# sourceURL=webpack:///./node_modules/bootstrap/js/alert.js?");
/***/ }),
/***/ "./node_modules/bootstrap/js/button.js":
/*!*********************************************!*\
!*** ./node_modules/bootstrap/js/button.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/* ========================================================================\n * Bootstrap: button.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.4.1'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d).prop(d, true)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d).prop(d, false)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target).closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\n // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n e.preventDefault()\n // The target component still receive the focus\n if ($btn.is('input,button')) $btn.trigger('focus')\n else $btn.find('input:visible,button:visible').first().trigger('focus')\n }\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n\n\n//# sourceURL=webpack:///./node_modules/bootstrap/js/button.js?");
/***/ }),
/***/ "./node_modules/bootstrap/js/carousel.js":
/*!***********************************************!*\
!*** ./node_modules/bootstrap/js/carousel.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/* ========================================================================\n * Bootstrap: carousel.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.4.1'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n if (typeof $next === 'object' && $next.length) {\n $next[0].offsetWidth // force reflow\n }\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n if (href) {\n href = href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n }\n\n var target = $this.attr('data-target') || href\n var $target = $(document).find(target)\n\n if (!$target.hasClass('carousel')) return\n\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n\n\n//# sourceURL=webpack:///./node_modules/bootstrap/js/carousel.js?");
/***/ }),
/***/ "./node_modules/bootstrap/js/collapse.js":
/*!***********************************************!*\
!*** ./node_modules/bootstrap/js/collapse.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/* ========================================================================\n * Bootstrap: collapse.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.4.1'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(document).find(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(document).find(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n\n\n//# sourceURL=webpack:///./node_modules/bootstrap/js/collapse.js?");
/***/ }),
/***/ "./node_modules/bootstrap/js/dropdown.js":
/*!***********************************************!*\
!*** ./node_modules/bootstrap/js/dropdown.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/* ========================================================================\n * Bootstrap: dropdown.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.4.1'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector !== '#' ? $(document).find(selector) : null\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n\n//# sourceURL=webpack:///./node_modules/bootstrap/js/dropdown.js?");
/***/ }),
/***/ "./node_modules/bootstrap/js/modal.js":
/*!********************************************!*\
!*** ./node_modules/bootstrap/js/modal.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/* ========================================================================\n * Bootstrap: modal.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#modals\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n this.fixedContent = '.navbar-fixed-top, .navbar-fixed-bottom'\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.4.1'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (document !== e.target &&\n this.$element[0] !== e.target &&\n !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n var scrollbarWidth = this.scrollbarWidth\n if (this.bodyIsOverflowing) {\n this.$body.css('padding-right', bodyPad + scrollbarWidth)\n $(this.fixedContent).each(function (index, element) {\n var actualPadding = element.style.paddingRight\n var calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', parseFloat(calculatedPadding) + scrollbarWidth + 'px')\n })\n }\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n $(this.fixedContent).each(function (index, element) {\n var padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var target = $this.attr('data-target') ||\n (href && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n\n var $target = $(document).find(target)\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n\n\n//# sourceURL=webpack:///./node_modules/bootstrap/js/modal.js?");
/***/ }),
/***/ "./node_modules/bootstrap/js/popover.js":
/*!**********************************************!*\
!*** ./node_modules/bootstrap/js/popover.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/* ========================================================================\n * Bootstrap: popover.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.4.1'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-title\"></h3><div class=\"popover-content\"></div></div>'\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n if (this.options.html) {\n var typeContent = typeof content\n\n if (this.options.sanitize) {\n title = this.sanitizeHtml(title)\n\n if (typeContent === 'string') {\n content = this.sanitizeHtml(content)\n }\n }\n\n $tip.find('.popover-title').html(title)\n $tip.find('.popover-content').children().detach().end()[\n typeContent === 'string' ? 'html' : 'append'\n ](content)\n } else {\n $tip.find('.popover-title').text(title)\n $tip.find('.popover-content').children().detach().end().text(content)\n }\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n\n\n//# sourceURL=webpack:///./node_modules/bootstrap/js/popover.js?");
/***/ }),
/***/ "./node_modules/bootstrap/js/scrollspy.js":
/*!************************************************!*\
!*** ./node_modules/bootstrap/js/scrollspy.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/* ========================================================================\n * Bootstrap: scrollspy.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.4.1'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n\n\n//# sourceURL=webpack:///./node_modules/bootstrap/js/scrollspy.js?");
/***/ }),
/***/ "./node_modules/bootstrap/js/tab.js":
/*!******************************************!*\
!*** ./node_modules/bootstrap/js/tab.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/* ========================================================================\n * Bootstrap: tab.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.4.1'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(document).find(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n\n//# sourceURL=webpack:///./node_modules/bootstrap/js/tab.js?");
/***/ }),
/***/ "./node_modules/bootstrap/js/tooltip.js":
/*!**********************************************!*\
!*** ./node_modules/bootstrap/js/tooltip.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/* ========================================================================\n * Bootstrap: tooltip.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\n var uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n ]\n\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n var DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n }\n\n /**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n /**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\n function allowedAttribute(attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase()\n\n if ($.inArray(attrName, allowedAttributeList) !== -1) {\n if ($.inArray(attrName, uriAttrs) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n var regExp = $(allowedAttributeList).filter(function (index, value) {\n return value instanceof RegExp\n })\n\n // Check if a regular expression validates the attribute.\n for (var i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n }\n\n function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n // IE 8 and below don't support createHTMLDocument\n if (!document.implementation || !document.implementation.createHTMLDocument) {\n return unsafeHtml\n }\n\n var createdDocument = document.implementation.createHTMLDocument('sanitization')\n createdDocument.body.innerHTML = unsafeHtml\n\n var whitelistKeys = $.map(whiteList, function (el, i) { return i })\n var elements = $(createdDocument.body).find('*')\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var el = elements[i]\n var elName = el.nodeName.toLowerCase()\n\n if ($.inArray(elName, whitelistKeys) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n var attributeList = $.map(el.attributes, function (el) { return el })\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n for (var j = 0, len2 = attributeList.length; j < len2; j++) {\n if (!allowedAttribute(attributeList[j], whitelistedAttributes)) {\n el.removeAttribute(attributeList[j].nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n }\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.4.1'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n },\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $(document).find($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n var dataAttributes = this.$element.data()\n\n for (var dataAttr in dataAttributes) {\n if (dataAttributes.hasOwnProperty(dataAttr) && $.inArray(dataAttr, DISALLOWED_ATTRIBUTES) !== -1) {\n delete dataAttributes[dataAttr]\n }\n }\n\n options = $.extend({}, this.getDefaults(), dataAttributes, options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n if (options.sanitize) {\n options.template = sanitizeHtml(options.template, options.whiteList, options.sanitizeFn)\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo($(document).find(this.options.container)) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n if (this.options.html) {\n if (this.options.sanitize) {\n title = sanitizeHtml(title, this.options.whiteList, this.options.sanitizeFn)\n }\n\n $tip.find('.tooltip-inner').html(title)\n } else {\n $tip.find('.tooltip-inner').text(title)\n }\n\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n }\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var isSvg = window.SVGElement && el instanceof window.SVGElement\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n // See https://github.com/twbs/bootstrap/issues/20280\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n that.$element = null\n })\n }\n\n Tooltip.prototype.sanitizeHtml = function (unsafeHtml) {\n return sanitizeHtml(unsafeHtml, this.options.whiteList, this.options.sanitizeFn)\n }\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n\n\n//# sourceURL=webpack:///./node_modules/bootstrap/js/tooltip.js?");
/***/ }),
/***/ "./node_modules/bootstrap/js/transition.js":
/*!*************************************************!*\
!*** ./node_modules/bootstrap/js/transition.js ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/* ========================================================================\n * Bootstrap: transition.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: https://modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // https://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n\n\n//# sourceURL=webpack:///./node_modules/bootstrap/js/transition.js?");
/***/ }),
/***/ "./node_modules/moment/locale sync recursive en|es":
/*!***********************************************!*\
!*** ./node_modules/moment/locale sync en|es ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var map = {\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive en|es\";\n\n//# sourceURL=webpack:///./node_modules/moment/locale_sync_en%7Ces?");
/***/ }),
/***/ "./node_modules/moment/locale/en-au.js":
/*!*********************************************!*\
!*** ./node_modules/moment/locale/en-au.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n undefined\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-au.js?");
/***/ }),
/***/ "./node_modules/moment/locale/en-ca.js":
/*!*********************************************!*\
!*** ./node_modules/moment/locale/en-ca.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n undefined\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-ca.js?");
/***/ }),
/***/ "./node_modules/moment/locale/en-gb.js":
/*!*********************************************!*\
!*** ./node_modules/moment/locale/en-gb.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n undefined\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-gb.js?");
/***/ }),
/***/ "./node_modules/moment/locale/en-ie.js":
/*!*********************************************!*\
!*** ./node_modules/moment/locale/en-ie.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n undefined\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-ie.js?");
/***/ }),
/***/ "./node_modules/moment/locale/en-il.js":
/*!*********************************************!*\
!*** ./node_modules/moment/locale/en-il.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n undefined\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-il.js?");
/***/ }),
/***/ "./node_modules/moment/locale/en-in.js":
/*!*********************************************!*\
!*** ./node_modules/moment/locale/en-in.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n undefined\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-in.js?");
/***/ }),
/***/ "./node_modules/moment/locale/en-nz.js":
/*!*********************************************!*\
!*** ./node_modules/moment/locale/en-nz.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n undefined\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-nz.js?");
/***/ }),
/***/ "./node_modules/moment/locale/en-sg.js":
/*!*********************************************!*\
!*** ./node_modules/moment/locale/en-sg.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n undefined\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-sg.js?");
/***/ }),
/***/ "./node_modules/moment/locale/es-do.js":
/*!*********************************************!*\
!*** ./node_modules/moment/locale/es-do.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n undefined\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/es-do.js?");
/***/ }),
/***/ "./node_modules/moment/locale/es-mx.js":
/*!*********************************************!*\
!*** ./node_modules/moment/locale/es-mx.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n undefined\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/es-mx.js?");
/***/ }),
/***/ "./node_modules/moment/locale/es-us.js":
/*!*********************************************!*\
!*** ./node_modules/moment/locale/es-us.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n undefined\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/es-us.js?");
/***/ }),
/***/ "./node_modules/moment/locale/es.js":
/*!******************************************!*\
!*** ./node_modules/moment/locale/es.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurà : https://github.com/julionc\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) :\n undefined\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/moment/locale/es.js?");
/***/ }),
/***/ "./node_modules/moment/moment.js":
/*!***************************************!*\
!*** ./node_modules/moment/moment.js ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n true ? module.exports = factory() :\n undefined\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n __webpack_require__(\"./node_modules/moment/locale sync recursive en|es\")(\"./\" + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack:///./node_modules/moment/moment.js?");
/***/ }),
/***/ "./node_modules/webpack/buildin/module.js":
/*!***********************************!*\
!*** (webpack)/buildin/module.js ***!
\***********************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n//# sourceURL=webpack:///(webpack)/buildin/module.js?");
/***/ }),
/***/ 23:
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** multi bootstrap moment ./buyercall/assets/scripts/vendor/jquery-ui.min.js ./buyercall/assets/scripts/vendor/material.min.js ./buyercall/assets/scripts/vendor/perfect-scrollbar.jquery.min.js ./buyercall/assets/scripts/vendor/chartist.min.js ./buyercall/assets/scripts/vendor/jquery.bootstrap-wizard.js ./buyercall/assets/scripts/vendor/gsdk-bootstrap-wizard.js ./buyercall/assets/scripts/vendor/jquery.select-bootstrap.js ./buyercall/assets/scripts/vendor/bootstrap-notify.js ./buyercall/assets/scripts/vendor/bootstrap-colorpicker.js ./buyercall/assets/scripts/vendor/bootstrap-datetimepicker.js ./buyercall/assets/scripts/vendor/fullcalendar.min.js ./buyercall/assets/scripts/vendor/jasny-bootstrap.min.js ./buyercall/assets/scripts/vendor/jquery-jvectormap.js ./buyercall/assets/scripts/vendor/jquery.tagsinput.js ./buyercall/assets/scripts/vendor/jquery.auto-complete.js ./buyercall/assets/scripts/vendor/sweetalert2.js ./buyercall/assets/scripts/vendor/nouislider.min.js ./buyercall/assets/scripts/vendor/material-dashboard.js ./buyercall/assets/scripts/vendor/player.min.js ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("__webpack_require__(/*! bootstrap */\"./node_modules/bootstrap/dist/js/npm.js\");\n__webpack_require__(/*! moment */\"./node_modules/moment/moment.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/jquery-ui.min.js */\"./buyercall/assets/scripts/vendor/jquery-ui.min.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/material.min.js */\"./buyercall/assets/scripts/vendor/material.min.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/perfect-scrollbar.jquery.min.js */\"./buyercall/assets/scripts/vendor/perfect-scrollbar.jquery.min.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/chartist.min.js */\"./buyercall/assets/scripts/vendor/chartist.min.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/jquery.bootstrap-wizard.js */\"./buyercall/assets/scripts/vendor/jquery.bootstrap-wizard.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/gsdk-bootstrap-wizard.js */\"./buyercall/assets/scripts/vendor/gsdk-bootstrap-wizard.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/jquery.select-bootstrap.js */\"./buyercall/assets/scripts/vendor/jquery.select-bootstrap.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/bootstrap-notify.js */\"./buyercall/assets/scripts/vendor/bootstrap-notify.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/bootstrap-colorpicker.js */\"./buyercall/assets/scripts/vendor/bootstrap-colorpicker.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/bootstrap-datetimepicker.js */\"./buyercall/assets/scripts/vendor/bootstrap-datetimepicker.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/fullcalendar.min.js */\"./buyercall/assets/scripts/vendor/fullcalendar.min.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/jasny-bootstrap.min.js */\"./buyercall/assets/scripts/vendor/jasny-bootstrap.min.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/jquery-jvectormap.js */\"./buyercall/assets/scripts/vendor/jquery-jvectormap.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/jquery.tagsinput.js */\"./buyercall/assets/scripts/vendor/jquery.tagsinput.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/jquery.auto-complete.js */\"./buyercall/assets/scripts/vendor/jquery.auto-complete.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/sweetalert2.js */\"./buyercall/assets/scripts/vendor/sweetalert2.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/nouislider.min.js */\"./buyercall/assets/scripts/vendor/nouislider.min.js\");\n__webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/material-dashboard.js */\"./buyercall/assets/scripts/vendor/material-dashboard.js\");\nmodule.exports = __webpack_require__(/*! /home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/scripts/vendor/player.min.js */\"./buyercall/assets/scripts/vendor/player.min.js\");\n\n\n//# sourceURL=webpack:///multi_bootstrap_moment_./buyercall/assets/scripts/vendor/jquery-ui.min.js_./buyercall/assets/scripts/vendor/material.min.js_./buyercall/assets/scripts/vendor/perfect-scrollbar.jquery.min.js_./buyercall/assets/scripts/vendor/chartist.min.js_./buyercall/assets/scripts/vendor/jquery.bootstrap-wizard.js_./buyercall/assets/scripts/vendor/gsdk-bootstrap-wizard.js_./buyercall/assets/scripts/vendor/jquery.select-bootstrap.js_./buyercall/assets/scripts/vendor/bootstrap-notify.js_./buyercall/assets/scripts/vendor/bootstrap-colorpicker.js_./buyercall/assets/scripts/vendor/bootstrap-datetimepicker.js_./buyercall/assets/scripts/vendor/fullcalendar.min.js_./buyercall/assets/scripts/vendor/jasny-bootstrap.min.js_./buyercall/assets/scripts/vendor/jquery-jvectormap.js_./buyercall/assets/scripts/vendor/jquery.tagsinput.js_./buyercall/assets/scripts/vendor/jquery.auto-complete.js_./buyercall/assets/scripts/vendor/sweetalert2.js_./buyercall/assets/scripts/vendor/nouislider.min.js_./buyercall/assets/scripts/vendor/material-dashboard.js_./buyercall/assets/scripts/vendor/player.min.js?");
/***/ }),
/***/ "jquery":
/*!*************************!*\
!*** external "jQuery" ***!
\*************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = jQuery;\n\n//# sourceURL=webpack:///external_%22jQuery%22?");
/***/ })
/******/ });