/* START custom select */

/*  jQuery Nice Select - v1.1.0
    https://github.com/hernansartorio/jquery-nice-select
    Made by Hernán Sartorio  */

;(function ($) {
    $.fn.niceSelect = function (method) {
        // Methods
        if (typeof method == 'string') {
            if (method == 'update') {
                this.each(function () {
                    var $select = $(this)
                    var $dropdown = $(this).next('.nice-select')
                    var open = $dropdown.hasClass('open')

                    if ($dropdown.length) {
                        $dropdown.remove()
                        create_nice_select($select)

                        if (open) {
                            $select.next().trigger('click')
                        }
                    }
                })
            } else if (method == 'destroy') {
                this.each(function () {
                    var $select = $(this)
                    var $dropdown = $(this).next('.nice-select')

                    if ($dropdown.length) {
                        $dropdown.remove()
                        $select.css('display', '')
                    }
                })
                if ($('.nice-select').length == 0) {
                    $(document).off('.nice_select')
                }
            }
            return this
        }

        // Hide native select
        this.hide()

        // Create custom markup
        this.each(function () {
            var $select = $(this)

            if (!$select.next().hasClass('nice-select')) {
                create_nice_select($select)
            }
        })

        function create_nice_select($select) {
            $select.after(
                $('<div></div>')
                    .addClass('nice-select')
                    .addClass($select.attr('class') || '')
                    .addClass($select.attr('disabled') ? 'disabled' : '')
                    .attr('tabindex', $select.attr('disabled') ? null : '0')
                    .html('<span class="current"></span><ul class="list"></ul>')
            )

            var $dropdown = $select.next()
            var $options = $select.find('option')
            var $selected = $select.find('option:selected')

            $dropdown
                .find('.current')
                .html($selected.data('display') || $selected.text())

            $options.each(function (i) {
                var $option = $(this)
                var display = $option.data('display')

                $dropdown.find('ul').append(
                    $('<li></li>')
                        .attr('data-value', $option.val())
                        .attr('data-display', display || null)
                        .addClass(
                            'option' +
                                ($option.is(':selected') ? ' selected' : '') +
                                ($option.is(':disabled') ? ' disabled' : '')
                        )
                        .html($option.text())
                )
            })
        }

        /* Event listeners */

        // Unbind existing events in case that the plugin has been initialized before
        $(document).off('.nice_select')

        // Open/close
        $(document).on('click.nice_select', '.nice-select', function (event) {
            var $dropdown = $(this)

            $('.nice-select').not($dropdown).removeClass('open')
            $dropdown.toggleClass('open')

            if ($dropdown.hasClass('open')) {
                $dropdown.find('.option')
                $dropdown.find('.focus').removeClass('focus')
                $dropdown.find('.selected').addClass('focus')
            } else {
                $dropdown.focus()
            }
        })

        // Close when clicking outside
        $(document).on('click.nice_select', function (event) {
            if ($(event.target).closest('.nice-select').length === 0) {
                $('.nice-select').removeClass('open').find('.option')
            }
        })

        // Option click
        $(document).on(
            'click.nice_select',
            '.nice-select .option:not(.disabled)',
            function (event) {
                var $option = $(this)
                var $dropdown = $option.closest('.nice-select')

                $dropdown.find('.selected').removeClass('selected')
                $option.addClass('selected')

                var text = $option.data('display') || $option.text()
                $dropdown.find('.current').text(text)

                $dropdown
                    .prev('select')
                    .val($option.data('value'))
                    .trigger('change')
            }
        )

        // Keyboard events
        $(document).on('keydown.nice_select', '.nice-select', function (event) {
            var $dropdown = $(this)
            var $focused_option = $(
                $dropdown.find('.focus') ||
                    $dropdown.find('.list .option.selected')
            )

            // Space or Enter
            if (event.keyCode == 32 || event.keyCode == 13) {
                if ($dropdown.hasClass('open')) {
                    $focused_option.trigger('click')
                } else {
                    $dropdown.trigger('click')
                }
                return false
                // Down
            } else if (event.keyCode == 40) {
                if (!$dropdown.hasClass('open')) {
                    $dropdown.trigger('click')
                } else {
                    var $next = $focused_option
                        .nextAll('.option:not(.disabled)')
                        .first()
                    if ($next.length > 0) {
                        $dropdown.find('.focus').removeClass('focus')
                        $next.addClass('focus')
                    }
                }
                return false
                // Up
            } else if (event.keyCode == 38) {
                if (!$dropdown.hasClass('open')) {
                    $dropdown.trigger('click')
                } else {
                    var $prev = $focused_option
                        .prevAll('.option:not(.disabled)')
                        .first()
                    if ($prev.length > 0) {
                        $dropdown.find('.focus').removeClass('focus')
                        $prev.addClass('focus')
                    }
                }
                return false
                // Esc
            } else if (event.keyCode == 27) {
                if ($dropdown.hasClass('open')) {
                    $dropdown.trigger('click')
                }
                // Tab
            } else if (event.keyCode == 9) {
                if ($dropdown.hasClass('open')) {
                    return false
                }
            }
        })

        // Detect CSS pointer-events support, for IE <= 10. From Modernizr.
        var style = document.createElement('a').style
        style.cssText = 'pointer-events:auto'
        if (style.pointerEvents !== 'auto') {
            $('html').addClass('no-csspointerevents')
        }

        return this
    }
})(jQuery)

/* END custom select */

/* START range slider */

/*! jQuery UI - v1.13.2 - 2022-10-17
 * http://jqueryui.com
 * Includes: widget.js, keycode.js, widgets/mouse.js, widgets/slider.js
 * Copyright jQuery Foundation and other contributors; Licensed MIT */

!(function (e) {
    'use strict'
    'function' == typeof define && define.amd
        ? define(['jquery'], e)
        : e(jQuery)
})(function (l) {
    'use strict'
    l.ui = l.ui || {}
    l.ui.version = '1.13.2'
    var n,
        i = 0,
        o = Array.prototype.hasOwnProperty,
        h = Array.prototype.slice
    ;(l.cleanData =
        ((n = l.cleanData),
        function (e) {
            for (var t, i, s = 0; null != (i = e[s]); s++)
                (t = l._data(i, 'events')) &&
                    t.remove &&
                    l(i).triggerHandler('remove')
            n(e)
        })),
        (l.widget = function (e, i, t) {
            var s,
                n,
                a,
                o = {},
                h = e.split('.')[0],
                r = h + '-' + (e = e.split('.')[1])
            return (
                t || ((t = i), (i = l.Widget)),
                Array.isArray(t) && (t = l.extend.apply(null, [{}].concat(t))),
                (l.expr.pseudos[r.toLowerCase()] = function (e) {
                    return !!l.data(e, r)
                }),
                (l[h] = l[h] || {}),
                (s = l[h][e]),
                (n = l[h][e] =
                    function (e, t) {
                        if (!this || !this._createWidget) return new n(e, t)
                        arguments.length && this._createWidget(e, t)
                    }),
                l.extend(n, s, {
                    version: t.version,
                    _proto: l.extend({}, t),
                    _childConstructors: [],
                }),
                ((a = new i()).options = l.widget.extend({}, a.options)),
                l.each(t, function (t, s) {
                    function n() {
                        return i.prototype[t].apply(this, arguments)
                    }
                    function a(e) {
                        return i.prototype[t].apply(this, e)
                    }
                    o[t] =
                        'function' == typeof s
                            ? function () {
                                  var e,
                                      t = this._super,
                                      i = this._superApply
                                  return (
                                      (this._super = n),
                                      (this._superApply = a),
                                      (e = s.apply(this, arguments)),
                                      (this._super = t),
                                      (this._superApply = i),
                                      e
                                  )
                              }
                            : s
                }),
                (n.prototype = l.widget.extend(
                    a,
                    { widgetEventPrefix: (s && a.widgetEventPrefix) || e },
                    o,
                    {
                        constructor: n,
                        namespace: h,
                        widgetName: e,
                        widgetFullName: r,
                    }
                )),
                s
                    ? (l.each(s._childConstructors, function (e, t) {
                          var i = t.prototype
                          l.widget(
                              i.namespace + '.' + i.widgetName,
                              n,
                              t._proto
                          )
                      }),
                      delete s._childConstructors)
                    : i._childConstructors.push(n),
                l.widget.bridge(e, n),
                n
            )
        }),
        (l.widget.extend = function (e) {
            for (
                var t, i, s = h.call(arguments, 1), n = 0, a = s.length;
                n < a;
                n++
            )
                for (t in s[n])
                    (i = s[n][t]),
                        o.call(s[n], t) &&
                            void 0 !== i &&
                            (l.isPlainObject(i)
                                ? (e[t] = l.isPlainObject(e[t])
                                      ? l.widget.extend({}, e[t], i)
                                      : l.widget.extend({}, i))
                                : (e[t] = i))
            return e
        }),
        (l.widget.bridge = function (a, t) {
            var o = t.prototype.widgetFullName || a
            l.fn[a] = function (i) {
                var e = 'string' == typeof i,
                    s = h.call(arguments, 1),
                    n = this
                return (
                    e
                        ? this.length || 'instance' !== i
                            ? this.each(function () {
                                  var e,
                                      t = l.data(this, o)
                                  return 'instance' === i
                                      ? ((n = t), !1)
                                      : t
                                        ? 'function' != typeof t[i] ||
                                          '_' === i.charAt(0)
                                            ? l.error(
                                                  "no such method '" +
                                                      i +
                                                      "' for " +
                                                      a +
                                                      ' widget instance'
                                              )
                                            : (e = t[i].apply(t, s)) !== t &&
                                                void 0 !== e
                                              ? ((n =
                                                    e && e.jquery
                                                        ? n.pushStack(e.get())
                                                        : e),
                                                !1)
                                              : void 0
                                        : l.error(
                                              'cannot call methods on ' +
                                                  a +
                                                  " prior to initialization; attempted to call method '" +
                                                  i +
                                                  "'"
                                          )
                              })
                            : (n = void 0)
                        : (s.length &&
                              (i = l.widget.extend.apply(null, [i].concat(s))),
                          this.each(function () {
                              var e = l.data(this, o)
                              e
                                  ? (e.option(i || {}), e._init && e._init())
                                  : l.data(this, o, new t(i, this))
                          })),
                    n
                )
            }
        }),
        (l.Widget = function () {}),
        (l.Widget._childConstructors = []),
        (l.Widget.prototype = {
            widgetName: 'widget',
            widgetEventPrefix: '',
            defaultElement: '<div>',
            options: { classes: {}, disabled: !1, create: null },
            _createWidget: function (e, t) {
                ;(t = l(t || this.defaultElement || this)[0]),
                    (this.element = l(t)),
                    (this.uuid = i++),
                    (this.eventNamespace = '.' + this.widgetName + this.uuid),
                    (this.bindings = l()),
                    (this.hoverable = l()),
                    (this.focusable = l()),
                    (this.classesElementLookup = {}),
                    t !== this &&
                        (l.data(t, this.widgetFullName, this),
                        this._on(!0, this.element, {
                            remove: function (e) {
                                e.target === t && this.destroy()
                            },
                        }),
                        (this.document = l(
                            t.style ? t.ownerDocument : t.document || t
                        )),
                        (this.window = l(
                            this.document[0].defaultView ||
                                this.document[0].parentWindow
                        ))),
                    (this.options = l.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()
            },
            _getCreateOptions: function () {
                return {}
            },
            _getCreateEventData: l.noop,
            _create: l.noop,
            _init: l.noop,
            destroy: function () {
                var i = this
                this._destroy(),
                    l.each(this.classesElementLookup, function (e, t) {
                        i._removeClass(t, e)
                    }),
                    this.element
                        .off(this.eventNamespace)
                        .removeData(this.widgetFullName),
                    this.widget()
                        .off(this.eventNamespace)
                        .removeAttr('aria-disabled'),
                    this.bindings.off(this.eventNamespace)
            },
            _destroy: l.noop,
            widget: function () {
                return this.element
            },
            option: function (e, t) {
                var i,
                    s,
                    n,
                    a = e
                if (0 === arguments.length)
                    return l.widget.extend({}, this.options)
                if ('string' == typeof e)
                    if (
                        ((a = {}), (e = (i = e.split('.')).shift()), i.length)
                    ) {
                        for (
                            s = a[e] = l.widget.extend({}, this.options[e]),
                                n = 0;
                            n < i.length - 1;
                            n++
                        )
                            (s[i[n]] = s[i[n]] || {}), (s = s[i[n]])
                        if (((e = i.pop()), 1 === arguments.length))
                            return void 0 === s[e] ? null : s[e]
                        s[e] = t
                    } else {
                        if (1 === arguments.length)
                            return void 0 === this.options[e]
                                ? null
                                : this.options[e]
                        a[e] = t
                    }
                return this._setOptions(a), this
            },
            _setOptions: function (e) {
                for (var t in e) this._setOption(t, e[t])
                return this
            },
            _setOption: function (e, t) {
                return (
                    'classes' === e && this._setOptionClasses(t),
                    (this.options[e] = t),
                    'disabled' === e && this._setOptionDisabled(t),
                    this
                )
            },
            _setOptionClasses: function (e) {
                var t, i, s
                for (t in e)
                    (s = this.classesElementLookup[t]),
                        e[t] !== this.options.classes[t] &&
                            s &&
                            s.length &&
                            ((i = l(s.get())),
                            this._removeClass(s, t),
                            i.addClass(
                                this._classes({
                                    element: i,
                                    keys: t,
                                    classes: e,
                                    add: !0,
                                })
                            ))
            },
            _setOptionDisabled: function (e) {
                this._toggleClass(
                    this.widget(),
                    this.widgetFullName + '-disabled',
                    null,
                    !!e
                ),
                    e &&
                        (this._removeClass(
                            this.hoverable,
                            null,
                            'ui-state-hover'
                        ),
                        this._removeClass(
                            this.focusable,
                            null,
                            'ui-state-focus'
                        ))
            },
            enable: function () {
                return this._setOptions({ disabled: !1 })
            },
            disable: function () {
                return this._setOptions({ disabled: !0 })
            },
            _classes: function (n) {
                var a = [],
                    o = this
                function e(e, t) {
                    for (var i, s = 0; s < e.length; s++)
                        (i = o.classesElementLookup[e[s]] || l()),
                            (i = n.add
                                ? ((function () {
                                      var i = []
                                      n.element.each(function (e, t) {
                                          l
                                              .map(
                                                  o.classesElementLookup,
                                                  function (e) {
                                                      return e
                                                  }
                                              )
                                              .some(function (e) {
                                                  return e.is(t)
                                              }) || i.push(t)
                                      }),
                                          o._on(l(i), {
                                              remove: '_untrackClassesElement',
                                          })
                                  })(),
                                  l(
                                      l.uniqueSort(
                                          i.get().concat(n.element.get())
                                      )
                                  ))
                                : l(i.not(n.element).get())),
                            (o.classesElementLookup[e[s]] = i),
                            a.push(e[s]),
                            t && n.classes[e[s]] && a.push(n.classes[e[s]])
                }
                return (
                    (n = l.extend(
                        {
                            element: this.element,
                            classes: this.options.classes || {},
                        },
                        n
                    )).keys && e(n.keys.match(/\S+/g) || [], !0),
                    n.extra && e(n.extra.match(/\S+/g) || []),
                    a.join(' ')
                )
            },
            _untrackClassesElement: function (i) {
                var s = this
                l.each(s.classesElementLookup, function (e, t) {
                    ;-1 !== l.inArray(i.target, t) &&
                        (s.classesElementLookup[e] = l(t.not(i.target).get()))
                }),
                    this._off(l(i.target))
            },
            _removeClass: function (e, t, i) {
                return this._toggleClass(e, t, i, !1)
            },
            _addClass: function (e, t, i) {
                return this._toggleClass(e, t, i, !0)
            },
            _toggleClass: function (e, t, i, s) {
                var n = 'string' == typeof e || null === e,
                    i = {
                        extra: n ? t : i,
                        keys: n ? e : t,
                        element: n ? this.element : e,
                        add: (s = 'boolean' == typeof s ? s : i),
                    }
                return i.element.toggleClass(this._classes(i), s), this
            },
            _on: function (n, a, e) {
                var o,
                    h = this
                'boolean' != typeof n && ((e = a), (a = n), (n = !1)),
                    e
                        ? ((a = o = l(a)),
                          (this.bindings = this.bindings.add(a)))
                        : ((e = a), (a = this.element), (o = this.widget())),
                    l.each(e, function (e, t) {
                        function i() {
                            if (
                                n ||
                                (!0 !== h.options.disabled &&
                                    !l(this).hasClass('ui-state-disabled'))
                            )
                                return ('string' == typeof t ? h[t] : t).apply(
                                    h,
                                    arguments
                                )
                        }
                        'string' != typeof t &&
                            (i.guid = t.guid = t.guid || i.guid || l.guid++)
                        var s = e.match(/^([\w:-]*)\s*(.*)$/),
                            e = s[1] + h.eventNamespace,
                            s = s[2]
                        s ? o.on(e, s, i) : a.on(e, i)
                    })
            },
            _off: function (e, t) {
                ;(t =
                    (t || '').split(' ').join(this.eventNamespace + ' ') +
                    this.eventNamespace),
                    e.off(t),
                    (this.bindings = l(this.bindings.not(e).get())),
                    (this.focusable = l(this.focusable.not(e).get())),
                    (this.hoverable = l(this.hoverable.not(e).get()))
            },
            _delay: function (e, t) {
                var i = this
                return setTimeout(function () {
                    return ('string' == typeof e ? i[e] : e).apply(i, arguments)
                }, t || 0)
            },
            _hoverable: function (e) {
                ;(this.hoverable = this.hoverable.add(e)),
                    this._on(e, {
                        mouseenter: function (e) {
                            this._addClass(
                                l(e.currentTarget),
                                null,
                                'ui-state-hover'
                            )
                        },
                        mouseleave: function (e) {
                            this._removeClass(
                                l(e.currentTarget),
                                null,
                                'ui-state-hover'
                            )
                        },
                    })
            },
            _focusable: function (e) {
                ;(this.focusable = this.focusable.add(e)),
                    this._on(e, {
                        focusin: function (e) {
                            this._addClass(
                                l(e.currentTarget),
                                null,
                                'ui-state-focus'
                            )
                        },
                        focusout: function (e) {
                            this._removeClass(
                                l(e.currentTarget),
                                null,
                                'ui-state-focus'
                            )
                        },
                    })
            },
            _trigger: function (e, t, i) {
                var s,
                    n,
                    a = this.options[e]
                if (
                    ((i = i || {}),
                    ((t = l.Event(t)).type = (
                        e === this.widgetEventPrefix
                            ? e
                            : this.widgetEventPrefix + e
                    ).toLowerCase()),
                    (t.target = this.element[0]),
                    (n = t.originalEvent))
                )
                    for (s in n) s in t || (t[s] = n[s])
                return (
                    this.element.trigger(t, i),
                    !(
                        ('function' == typeof a &&
                            !1 === a.apply(this.element[0], [t].concat(i))) ||
                        t.isDefaultPrevented()
                    )
                )
            },
        }),
        l.each({ show: 'fadeIn', hide: 'fadeOut' }, function (a, o) {
            l.Widget.prototype['_' + a] = function (t, e, i) {
                var s,
                    n = (e = 'string' == typeof e ? { effect: e } : e)
                        ? (!0 !== e && 'number' != typeof e && e.effect) || o
                        : a
                'number' == typeof (e = e || {})
                    ? (e = { duration: e })
                    : !0 === e && (e = {}),
                    (s = !l.isEmptyObject(e)),
                    (e.complete = i),
                    e.delay && t.delay(e.delay),
                    s && l.effects && l.effects.effect[n]
                        ? t[a](e)
                        : n !== a && t[n]
                          ? t[n](e.duration, e.easing, i)
                          : t.queue(function (e) {
                                l(this)[a](), i && i.call(t[0]), e()
                            })
            }
        })
    l.widget,
        (l.ui.keyCode = {
            BACKSPACE: 8,
            COMMA: 188,
            DELETE: 46,
            DOWN: 40,
            END: 35,
            ENTER: 13,
            ESCAPE: 27,
            HOME: 36,
            LEFT: 37,
            PAGE_DOWN: 34,
            PAGE_UP: 33,
            PERIOD: 190,
            RIGHT: 39,
            SPACE: 32,
            TAB: 9,
            UP: 38,
        }),
        (l.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()))
    var a = !1
    l(document).on('mouseup', function () {
        a = !1
    })
    l.widget('ui.mouse', {
        version: '1.13.2',
        options: {
            cancel: 'input, textarea, button, select, option',
            distance: 1,
            delay: 0,
        },
        _mouseInit: function () {
            var t = this
            this.element
                .on('mousedown.' + this.widgetName, function (e) {
                    return t._mouseDown(e)
                })
                .on('click.' + this.widgetName, function (e) {
                    if (
                        !0 ===
                        l.data(e.target, t.widgetName + '.preventClickEvent')
                    )
                        return (
                            l.removeData(
                                e.target,
                                t.widgetName + '.preventClickEvent'
                            ),
                            e.stopImmediatePropagation(),
                            !1
                        )
                }),
                (this.started = !1)
        },
        _mouseDestroy: function () {
            this.element.off('.' + this.widgetName),
                this._mouseMoveDelegate &&
                    this.document
                        .off(
                            'mousemove.' + this.widgetName,
                            this._mouseMoveDelegate
                        )
                        .off(
                            'mouseup.' + this.widgetName,
                            this._mouseUpDelegate
                        )
        },
        _mouseDown: function (e) {
            if (!a) {
                ;(this._mouseMoved = !1),
                    this._mouseStarted && this._mouseUp(e),
                    (this._mouseDownEvent = e)
                var t = this,
                    i = 1 === e.which,
                    s =
                        !(
                            'string' != typeof this.options.cancel ||
                            !e.target.nodeName
                        ) && l(e.target).closest(this.options.cancel).length
                return i && !s && this._mouseCapture(e)
                    ? ((this.mouseDelayMet = !this.options.delay),
                      this.mouseDelayMet ||
                          (this._mouseDelayTimer = setTimeout(function () {
                              t.mouseDelayMet = !0
                          }, this.options.delay)),
                      this._mouseDistanceMet(e) &&
                      this._mouseDelayMet(e) &&
                      ((this._mouseStarted = !1 !== this._mouseStart(e)),
                      !this._mouseStarted)
                          ? (e.preventDefault(), !0)
                          : (!0 ===
                                l.data(
                                    e.target,
                                    this.widgetName + '.preventClickEvent'
                                ) &&
                                l.removeData(
                                    e.target,
                                    this.widgetName + '.preventClickEvent'
                                ),
                            (this._mouseMoveDelegate = function (e) {
                                return t._mouseMove(e)
                            }),
                            (this._mouseUpDelegate = function (e) {
                                return t._mouseUp(e)
                            }),
                            this.document
                                .on(
                                    'mousemove.' + this.widgetName,
                                    this._mouseMoveDelegate
                                )
                                .on(
                                    'mouseup.' + this.widgetName,
                                    this._mouseUpDelegate
                                ),
                            e.preventDefault(),
                            (a = !0)))
                    : !0
            }
        },
        _mouseMove: function (e) {
            if (this._mouseMoved) {
                if (
                    l.ui.ie &&
                    (!document.documentMode || document.documentMode < 9) &&
                    !e.button
                )
                    return this._mouseUp(e)
                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)
            }
            return (
                (e.which || e.button) && (this._mouseMoved = !0),
                this._mouseStarted
                    ? (this._mouseDrag(e), e.preventDefault())
                    : (this._mouseDistanceMet(e) &&
                          this._mouseDelayMet(e) &&
                          ((this._mouseStarted =
                              !1 !== this._mouseStart(this._mouseDownEvent, e)),
                          this._mouseStarted
                              ? this._mouseDrag(e)
                              : this._mouseUp(e)),
                      !this._mouseStarted)
            )
        },
        _mouseUp: function (e) {
            this.document
                .off('mousemove.' + this.widgetName, this._mouseMoveDelegate)
                .off('mouseup.' + this.widgetName, this._mouseUpDelegate),
                this._mouseStarted &&
                    ((this._mouseStarted = !1),
                    e.target === this._mouseDownEvent.target &&
                        l.data(
                            e.target,
                            this.widgetName + '.preventClickEvent',
                            !0
                        ),
                    this._mouseStop(e)),
                this._mouseDelayTimer &&
                    (clearTimeout(this._mouseDelayTimer),
                    delete this._mouseDelayTimer),
                (this.ignoreMissingWhich = !1),
                (a = !1),
                e.preventDefault()
        },
        _mouseDistanceMet: function (e) {
            return (
                Math.max(
                    Math.abs(this._mouseDownEvent.pageX - e.pageX),
                    Math.abs(this._mouseDownEvent.pageY - e.pageY)
                ) >= this.options.distance
            )
        },
        _mouseDelayMet: function () {
            return this.mouseDelayMet
        },
        _mouseStart: function () {},
        _mouseDrag: function () {},
        _mouseStop: function () {},
        _mouseCapture: function () {
            return !0
        },
    }),
        l.widget('ui.slider', l.ui.mouse, {
            version: '1.13.2',
            widgetEventPrefix: 'slide',
            options: {
                animate: !1,
                classes: {
                    'ui-slider': 'ui-corner-all',
                    'ui-slider-handle': 'ui-corner-all',
                    'ui-slider-range': 'ui-corner-all ui-widget-header',
                },
                distance: 0,
                max: 100,
                min: 0,
                orientation: 'horizontal',
                range: !1,
                step: 1,
                value: 0,
                values: null,
                change: null,
                slide: null,
                start: null,
                stop: null,
            },
            numPages: 5,
            _create: function () {
                ;(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)
            },
            _refresh: function () {
                this._createRange(),
                    this._createHandles(),
                    this._setupEvents(),
                    this._refreshValue()
            },
            _createHandles: function () {
                var e,
                    t = this.options,
                    i = this.element.find('.ui-slider-handle'),
                    s = [],
                    n = (t.values && t.values.length) || 1
                for (
                    i.length > n && (i.slice(n).remove(), (i = i.slice(0, n))),
                        e = i.length;
                    e < n;
                    e++
                )
                    s.push("<span tabindex='0'></span>")
                ;(this.handles = i.add(l(s.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) {
                        l(this)
                            .data('ui-slider-handle-index', e)
                            .attr('tabIndex', 0)
                    })
            },
            _createRange: function () {
                var e = this.options
                e.range
                    ? (!0 === e.range &&
                          (e.values
                              ? e.values.length && 2 !== e.values.length
                                  ? (e.values = [e.values[0], e.values[0]])
                                  : Array.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({ left: '', bottom: '' }))
                          : ((this.range = l('<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))
            },
            _setupEvents: function () {
                this._off(this.handles),
                    this._on(this.handles, this._handleEvents),
                    this._hoverable(this.handles),
                    this._focusable(this.handles)
            },
            _destroy: function () {
                this.handles.remove(),
                    this.range && this.range.remove(),
                    this._mouseDestroy()
            },
            _mouseCapture: function (e) {
                var i,
                    s,
                    n,
                    a,
                    t,
                    o,
                    h = this,
                    r = this.options
                return (
                    !r.disabled &&
                    ((this.elementSize = {
                        width: this.element.outerWidth(),
                        height: this.element.outerHeight(),
                    }),
                    (this.elementOffset = this.element.offset()),
                    (o = { x: e.pageX, y: e.pageY }),
                    (i = this._normValueFromMouse(o)),
                    (s = this._valueMax() - this._valueMin() + 1),
                    this.handles.each(function (e) {
                        var t = Math.abs(i - h.values(e))
                        ;(t < s ||
                            (s === t &&
                                (e === h._lastChangedValue ||
                                    h.values(e) === r.min))) &&
                            ((s = t), (n = l(this)), (a = e))
                    }),
                    !1 !== this._start(e, a) &&
                        ((this._mouseSliding = !0),
                        (this._handleIndex = a),
                        this._addClass(n, null, 'ui-state-active'),
                        n.trigger('focus'),
                        (t = n.offset()),
                        (o = !l(e.target)
                            .parents()
                            .addBack()
                            .is('.ui-slider-handle')),
                        (this._clickOffset = o
                            ? { left: 0, top: 0 }
                            : {
                                  left: e.pageX - t.left - n.width() / 2,
                                  top:
                                      e.pageY -
                                      t.top -
                                      n.height() / 2 -
                                      (parseInt(n.css('borderTopWidth'), 10) ||
                                          0) -
                                      (parseInt(
                                          n.css('borderBottomWidth'),
                                          10
                                      ) || 0) +
                                      (parseInt(n.css('marginTop'), 10) || 0),
                              }),
                        this.handles.hasClass('ui-state-hover') ||
                            this._slide(e, a, i),
                        (this._animateOff = !0)))
                )
            },
            _mouseStart: function () {
                return !0
            },
            _mouseDrag: function (e) {
                var t = { x: e.pageX, y: e.pageY },
                    t = this._normValueFromMouse(t)
                return this._slide(e, this._handleIndex, t), !1
            },
            _mouseStop: function (e) {
                return (
                    this._removeClass(this.handles, null, 'ui-state-active'),
                    (this._mouseSliding = !1),
                    this._stop(e, this._handleIndex),
                    this._change(e, this._handleIndex),
                    (this._handleIndex = null),
                    (this._clickOffset = null),
                    (this._animateOff = !1)
                )
            },
            _detectOrientation: function () {
                this.orientation =
                    'vertical' === this.options.orientation
                        ? 'vertical'
                        : 'horizontal'
            },
            _normValueFromMouse: function (e) {
                var t,
                    e =
                        'horizontal' === this.orientation
                            ? ((t = this.elementSize.width),
                              e.x -
                                  this.elementOffset.left -
                                  (this._clickOffset
                                      ? this._clickOffset.left
                                      : 0))
                            : ((t = this.elementSize.height),
                              e.y -
                                  this.elementOffset.top -
                                  (this._clickOffset
                                      ? this._clickOffset.top
                                      : 0)),
                    e = e / t
                return (
                    (e = 1 < e ? 1 : e) < 0 && (e = 0),
                    'vertical' === this.orientation && (e = 1 - e),
                    (t = this._valueMax() - this._valueMin()),
                    (t = this._valueMin() + e * t),
                    this._trimAlignValue(t)
                )
            },
            _uiHash: function (e, t, i) {
                var s = {
                    handle: this.handles[e],
                    handleIndex: e,
                    value: void 0 !== t ? t : this.value(),
                }
                return (
                    this._hasMultipleValues() &&
                        ((s.value = void 0 !== t ? t : this.values(e)),
                        (s.values = i || this.values())),
                    s
                )
            },
            _hasMultipleValues: function () {
                return this.options.values && this.options.values.length
            },
            _start: function (e, t) {
                return this._trigger('start', e, this._uiHash(t))
            },
            _slide: function (e, t, i) {
                var s,
                    n = this.value(),
                    a = this.values()
                this._hasMultipleValues() &&
                    ((s = this.values(t ? 0 : 1)),
                    (n = this.values(t)),
                    2 === this.options.values.length &&
                        !0 === this.options.range &&
                        (i = 0 === t ? Math.min(s, i) : Math.max(s, i)),
                    (a[t] = i)),
                    i !== n &&
                        !1 !==
                            this._trigger('slide', e, this._uiHash(t, i, a)) &&
                        (this._hasMultipleValues()
                            ? this.values(t, i)
                            : this.value(i))
            },
            _stop: function (e, t) {
                this._trigger('stop', e, this._uiHash(t))
            },
            _change: function (e, t) {
                this._keySliding ||
                    this._mouseSliding ||
                    ((this._lastChangedValue = t),
                    this._trigger('change', e, this._uiHash(t)))
            },
            value: function (e) {
                return arguments.length
                    ? ((this.options.value = this._trimAlignValue(e)),
                      this._refreshValue(),
                      void this._change(null, 0))
                    : this._value()
            },
            values: function (e, t) {
                var i, s, n
                if (1 < arguments.length)
                    return (
                        (this.options.values[e] = this._trimAlignValue(t)),
                        this._refreshValue(),
                        void this._change(null, e)
                    )
                if (!arguments.length) return this._values()
                if (!Array.isArray(e))
                    return this._hasMultipleValues()
                        ? this._values(e)
                        : this.value()
                for (
                    i = this.options.values, s = e, n = 0;
                    n < i.length;
                    n += 1
                )
                    (i[n] = this._trimAlignValue(s[n])), this._change(null, n)
                this._refreshValue()
            },
            _setOption: function (e, t) {
                var i,
                    s = 0
                switch (
                    ('range' === e &&
                        !0 === this.options.range &&
                        ('min' === t
                            ? ((this.options.value = this._values(0)),
                              (this.options.values = null))
                            : 'max' === t &&
                              ((this.options.value = this._values(
                                  this.options.values.length - 1
                              )),
                              (this.options.values = null))),
                    Array.isArray(this.options.values) &&
                        (s = this.options.values.length),
                    this._super(e, t),
                    e)
                ) {
                    case 'orientation':
                        this._detectOrientation(),
                            this._removeClass(
                                'ui-slider-horizontal ui-slider-vertical'
                            )._addClass('ui-slider-' + this.orientation),
                            this._refreshValue(),
                            this.options.range && this._refreshRange(t),
                            this.handles.css(
                                'horizontal' === t ? 'bottom' : 'left',
                                ''
                            )
                        break
                    case 'value':
                        ;(this._animateOff = !0),
                            this._refreshValue(),
                            this._change(null, 0),
                            (this._animateOff = !1)
                        break
                    case 'values':
                        for (
                            this._animateOff = !0,
                                this._refreshValue(),
                                i = s - 1;
                            0 <= i;
                            i--
                        )
                            this._change(null, i)
                        this._animateOff = !1
                        break
                    case 'step':
                    case 'min':
                    case 'max':
                        ;(this._animateOff = !0),
                            this._calculateNewMax(),
                            this._refreshValue(),
                            (this._animateOff = !1)
                        break
                    case 'range':
                        ;(this._animateOff = !0),
                            this._refresh(),
                            (this._animateOff = !1)
                }
            },
            _setOptionDisabled: function (e) {
                this._super(e),
                    this._toggleClass(null, 'ui-state-disabled', !!e)
            },
            _value: function () {
                var e = this.options.value
                return (e = this._trimAlignValue(e))
            },
            _values: function (e) {
                var t, i
                if (arguments.length)
                    return (
                        (e = this.options.values[e]),
                        (e = this._trimAlignValue(e))
                    )
                if (this._hasMultipleValues()) {
                    for (
                        t = this.options.values.slice(), i = 0;
                        i < t.length;
                        i += 1
                    )
                        t[i] = this._trimAlignValue(t[i])
                    return t
                }
                return []
            },
            _trimAlignValue: function (e) {
                if (e <= this._valueMin()) return this._valueMin()
                if (e >= this._valueMax()) return this._valueMax()
                var t = 0 < this.options.step ? this.options.step : 1,
                    i = (e - this._valueMin()) % t,
                    e = e - i
                return (
                    2 * Math.abs(i) >= t && (e += 0 < i ? t : -t),
                    parseFloat(e.toFixed(5))
                )
            },
            _calculateNewMax: function () {
                var e = this.options.max,
                    t = this._valueMin(),
                    i = this.options.step
                ;(e = Math.round((e - t) / i) * i + t) > this.options.max &&
                    (e -= i),
                    (this.max = parseFloat(e.toFixed(this._precision())))
            },
            _precision: function () {
                var e = this._precisionOf(this.options.step)
                return (e =
                    null !== this.options.min
                        ? Math.max(e, this._precisionOf(this.options.min))
                        : e)
            },
            _precisionOf: function (e) {
                var t = e.toString(),
                    e = t.indexOf('.')
                return -1 === e ? 0 : t.length - e - 1
            },
            _valueMin: function () {
                return this.options.min
            },
            _valueMax: function () {
                return this.max
            },
            _refreshRange: function (e) {
                'vertical' === e && this.range.css({ width: '', left: '' }),
                    'horizontal' === e &&
                        this.range.css({ height: '', bottom: '' })
            },
            _refreshValue: function () {
                var t,
                    i,
                    e,
                    s,
                    n,
                    a = this.options.range,
                    o = this.options,
                    h = this,
                    r = !this._animateOff && o.animate,
                    u = {}
                this._hasMultipleValues()
                    ? this.handles.each(function (e) {
                          ;(i =
                              ((h.values(e) - h._valueMin()) /
                                  (h._valueMax() - h._valueMin())) *
                              100),
                              (u[
                                  'horizontal' === h.orientation
                                      ? 'left'
                                      : 'bottom'
                              ] = i + '%'),
                              l(this)
                                  .stop(1, 1)
                                  [r ? 'animate' : 'css'](u, o.animate),
                              !0 === h.options.range &&
                                  ('horizontal' === h.orientation
                                      ? (0 === e &&
                                            h.range
                                                .stop(1, 1)
                                                [r ? 'animate' : 'css'](
                                                    { left: i + '%' },
                                                    o.animate
                                                ),
                                        1 === e &&
                                            h.range[r ? 'animate' : 'css'](
                                                { width: i - t + '%' },
                                                {
                                                    queue: !1,
                                                    duration: o.animate,
                                                }
                                            ))
                                      : (0 === e &&
                                            h.range
                                                .stop(1, 1)
                                                [r ? 'animate' : 'css'](
                                                    { bottom: i + '%' },
                                                    o.animate
                                                ),
                                        1 === e &&
                                            h.range[r ? 'animate' : 'css'](
                                                { height: i - t + '%' },
                                                {
                                                    queue: !1,
                                                    duration: o.animate,
                                                }
                                            ))),
                              (t = i)
                      })
                    : ((e = this.value()),
                      (s = this._valueMin()),
                      (n = this._valueMax()),
                      (i = n !== s ? ((e - s) / (n - s)) * 100 : 0),
                      (u[
                          'horizontal' === this.orientation ? 'left' : 'bottom'
                      ] = i + '%'),
                      this.handle
                          .stop(1, 1)
                          [r ? 'animate' : 'css'](u, o.animate),
                      'min' === a &&
                          'horizontal' === this.orientation &&
                          this.range
                              .stop(1, 1)
                              [r ? 'animate' : 'css'](
                                  { width: i + '%' },
                                  o.animate
                              ),
                      'max' === a &&
                          'horizontal' === this.orientation &&
                          this.range
                              .stop(1, 1)
                              [r ? 'animate' : 'css'](
                                  { width: 100 - i + '%' },
                                  o.animate
                              ),
                      'min' === a &&
                          'vertical' === this.orientation &&
                          this.range
                              .stop(1, 1)
                              [r ? 'animate' : 'css'](
                                  { height: i + '%' },
                                  o.animate
                              ),
                      'max' === a &&
                          'vertical' === this.orientation &&
                          this.range
                              .stop(1, 1)
                              [r ? 'animate' : 'css'](
                                  { height: 100 - i + '%' },
                                  o.animate
                              ))
            },
            _handleEvents: {
                keydown: function (e) {
                    var t,
                        i,
                        s,
                        n = l(e.target).data('ui-slider-handle-index')
                    switch (e.keyCode) {
                        case l.ui.keyCode.HOME:
                        case l.ui.keyCode.END:
                        case l.ui.keyCode.PAGE_UP:
                        case l.ui.keyCode.PAGE_DOWN:
                        case l.ui.keyCode.UP:
                        case l.ui.keyCode.RIGHT:
                        case l.ui.keyCode.DOWN:
                        case l.ui.keyCode.LEFT:
                            if (
                                (e.preventDefault(),
                                !this._keySliding &&
                                    ((this._keySliding = !0),
                                    this._addClass(
                                        l(e.target),
                                        null,
                                        'ui-state-active'
                                    ),
                                    !1 === this._start(e, n)))
                            )
                                return
                    }
                    switch (
                        ((s = this.options.step),
                        (t = i =
                            this._hasMultipleValues()
                                ? this.values(n)
                                : this.value()),
                        e.keyCode)
                    ) {
                        case l.ui.keyCode.HOME:
                            i = this._valueMin()
                            break
                        case l.ui.keyCode.END:
                            i = this._valueMax()
                            break
                        case l.ui.keyCode.PAGE_UP:
                            i = this._trimAlignValue(
                                t +
                                    (this._valueMax() - this._valueMin()) /
                                        this.numPages
                            )
                            break
                        case l.ui.keyCode.PAGE_DOWN:
                            i = this._trimAlignValue(
                                t -
                                    (this._valueMax() - this._valueMin()) /
                                        this.numPages
                            )
                            break
                        case l.ui.keyCode.UP:
                        case l.ui.keyCode.RIGHT:
                            if (t === this._valueMax()) return
                            i = this._trimAlignValue(t + s)
                            break
                        case l.ui.keyCode.DOWN:
                        case l.ui.keyCode.LEFT:
                            if (t === this._valueMin()) return
                            i = this._trimAlignValue(t - s)
                    }
                    this._slide(e, n, i)
                },
                keyup: function (e) {
                    var t = l(e.target).data('ui-slider-handle-index')
                    this._keySliding &&
                        ((this._keySliding = !1),
                        this._stop(e, t),
                        this._change(e, t),
                        this._removeClass(l(e.target), null, 'ui-state-active'))
                },
            },
        })
})

/* END range slider */

/* START multiselect */

/* Chosen v1.8.7 | (c) 2011-2018 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
;(function () {
    var t,
        e,
        s,
        i,
        n = function (t, e) {
            return function () {
                return t.apply(e, arguments)
            }
        },
        r = function (t, e) {
            function s() {
                this.constructor = t
            }
            for (var i in e) o.call(e, i) && (t[i] = e[i])
            return (
                (s.prototype = e.prototype),
                (t.prototype = new s()),
                (t.__super__ = e.prototype),
                t
            )
        },
        o = {}.hasOwnProperty
    ;((i = (function () {
        function t() {
            ;(this.options_index = 0), (this.parsed = [])
        }
        return (
            (t.prototype.add_node = function (t) {
                return 'OPTGROUP' === t.nodeName.toUpperCase()
                    ? this.add_group(t)
                    : this.add_option(t)
            }),
            (t.prototype.add_group = function (t) {
                var e, s, i, n, r, o
                for (
                    e = this.parsed.length,
                        this.parsed.push({
                            array_index: e,
                            group: !0,
                            label: t.label,
                            title: t.title ? t.title : void 0,
                            children: 0,
                            disabled: t.disabled,
                            classes: t.className,
                        }),
                        o = [],
                        s = 0,
                        i = (r = t.childNodes).length;
                    s < i;
                    s++
                )
                    (n = r[s]), o.push(this.add_option(n, e, t.disabled))
                return o
            }),
            (t.prototype.add_option = function (t, e, s) {
                if ('OPTION' === t.nodeName.toUpperCase())
                    return (
                        '' !== t.text
                            ? (null != e && (this.parsed[e].children += 1),
                              this.parsed.push({
                                  array_index: this.parsed.length,
                                  options_index: this.options_index,
                                  value: t.value,
                                  text: t.text,
                                  html: t.innerHTML,
                                  title: t.title ? t.title : void 0,
                                  selected: t.selected,
                                  disabled: !0 === s ? s : t.disabled,
                                  group_array_index: e,
                                  group_label:
                                      null != e ? this.parsed[e].label : null,
                                  classes: t.className,
                                  style: t.style.cssText,
                              }))
                            : this.parsed.push({
                                  array_index: this.parsed.length,
                                  options_index: this.options_index,
                                  empty: !0,
                              }),
                        (this.options_index += 1)
                    )
            }),
            t
        )
    })()).select_to_array = function (t) {
        var e, s, n, r, o
        for (r = new i(), s = 0, n = (o = t.childNodes).length; s < n; s++)
            (e = o[s]), r.add_node(e)
        return r.parsed
    }),
        (e = (function () {
            function t(e, s) {
                ;(this.form_field = e),
                    (this.options = null != s ? s : {}),
                    (this.label_click_handler = n(
                        this.label_click_handler,
                        this
                    )),
                    t.browser_is_supported() &&
                        ((this.is_multiple = this.form_field.multiple),
                        this.set_default_text(),
                        this.set_default_values(),
                        this.setup(),
                        this.set_up_html(),
                        this.register_observers(),
                        this.on_ready())
            }
            return (
                (t.prototype.set_default_values = function () {
                    return (
                        (this.click_test_action = (function (t) {
                            return function (e) {
                                return t.test_active_click(e)
                            }
                        })(this)),
                        (this.activate_action = (function (t) {
                            return function (e) {
                                return t.activate_field(e)
                            }
                        })(this)),
                        (this.active_field = !1),
                        (this.mouse_on_container = !1),
                        (this.results_showing = !1),
                        (this.result_highlighted = null),
                        (this.is_rtl =
                            this.options.rtl ||
                            /\bchosen-rtl\b/.test(this.form_field.className)),
                        (this.allow_single_deselect =
                            null != this.options.allow_single_deselect &&
                            null != this.form_field.options[0] &&
                            '' === this.form_field.options[0].text &&
                            this.options.allow_single_deselect),
                        (this.disable_search_threshold =
                            this.options.disable_search_threshold || 0),
                        (this.disable_search =
                            this.options.disable_search || !1),
                        (this.enable_split_word_search =
                            null == this.options.enable_split_word_search ||
                            this.options.enable_split_word_search),
                        (this.group_search =
                            null == this.options.group_search ||
                            this.options.group_search),
                        (this.search_contains =
                            this.options.search_contains || !1),
                        (this.single_backstroke_delete =
                            null == this.options.single_backstroke_delete ||
                            this.options.single_backstroke_delete),
                        (this.max_selected_options =
                            this.options.max_selected_options || Infinity),
                        (this.inherit_select_classes =
                            this.options.inherit_select_classes || !1),
                        (this.display_selected_options =
                            null == this.options.display_selected_options ||
                            this.options.display_selected_options),
                        (this.display_disabled_options =
                            null == this.options.display_disabled_options ||
                            this.options.display_disabled_options),
                        (this.include_group_label_in_selected =
                            this.options.include_group_label_in_selected || !1),
                        (this.max_shown_results =
                            this.options.max_shown_results ||
                            Number.POSITIVE_INFINITY),
                        (this.case_sensitive_search =
                            this.options.case_sensitive_search || !1),
                        (this.hide_results_on_select =
                            null == this.options.hide_results_on_select ||
                            this.options.hide_results_on_select)
                    )
                }),
                (t.prototype.set_default_text = function () {
                    return (
                        this.form_field.getAttribute('data-placeholder')
                            ? (this.default_text =
                                  this.form_field.getAttribute(
                                      'data-placeholder'
                                  ))
                            : this.is_multiple
                              ? (this.default_text =
                                    this.options.placeholder_text_multiple ||
                                    this.options.placeholder_text ||
                                    t.default_multiple_text)
                              : (this.default_text =
                                    this.options.placeholder_text_single ||
                                    this.options.placeholder_text ||
                                    t.default_single_text),
                        (this.default_text = this.escape_html(
                            this.default_text
                        )),
                        (this.results_none_found =
                            this.form_field.getAttribute(
                                'data-no_results_text'
                            ) ||
                            this.options.no_results_text ||
                            t.default_no_result_text)
                    )
                }),
                (t.prototype.choice_label = function (t) {
                    return this.include_group_label_in_selected &&
                        null != t.group_label
                        ? "<b class='group-name'>" +
                              this.escape_html(t.group_label) +
                              '</b>' +
                              t.html
                        : t.html
                }),
                (t.prototype.mouse_enter = function () {
                    return (this.mouse_on_container = !0)
                }),
                (t.prototype.mouse_leave = function () {
                    return (this.mouse_on_container = !1)
                }),
                (t.prototype.input_focus = function (t) {
                    if (this.is_multiple) {
                        if (!this.active_field)
                            return setTimeout(
                                (function (t) {
                                    return function () {
                                        return t.container_mousedown()
                                    }
                                })(this),
                                50
                            )
                    } else if (!this.active_field) return this.activate_field()
                }),
                (t.prototype.input_blur = function (t) {
                    if (!this.mouse_on_container)
                        return (
                            (this.active_field = !1),
                            setTimeout(
                                (function (t) {
                                    return function () {
                                        return t.blur_test()
                                    }
                                })(this),
                                100
                            )
                        )
                }),
                (t.prototype.label_click_handler = function (t) {
                    return this.is_multiple
                        ? this.container_mousedown(t)
                        : this.activate_field()
                }),
                (t.prototype.results_option_build = function (t) {
                    var e, s, i, n, r, o, h
                    for (
                        e = '',
                            h = 0,
                            n = 0,
                            r = (o = this.results_data).length;
                        n < r &&
                        ((s = o[n]),
                        (i = ''),
                        '' !==
                            (i = s.group
                                ? this.result_add_group(s)
                                : this.result_add_option(s)) && (h++, (e += i)),
                        (null != t ? t.first : void 0) &&
                            (s.selected && this.is_multiple
                                ? this.choice_build(s)
                                : s.selected &&
                                  !this.is_multiple &&
                                  this.single_set_selected_text(
                                      this.choice_label(s)
                                  )),
                        !(h >= this.max_shown_results));
                        n++
                    );
                    return e
                }),
                (t.prototype.result_add_option = function (t) {
                    var e, s
                    return t.search_match && this.include_option_in_results(t)
                        ? ((e = []),
                          t.disabled ||
                              (t.selected && this.is_multiple) ||
                              e.push('active-result'),
                          !t.disabled ||
                              (t.selected && this.is_multiple) ||
                              e.push('disabled-result'),
                          t.selected && e.push('result-selected'),
                          null != t.group_array_index && e.push('group-option'),
                          '' !== t.classes && e.push(t.classes),
                          (s = document.createElement('li')),
                          (s.className = e.join(' ')),
                          t.style && (s.style.cssText = t.style),
                          s.setAttribute(
                              'data-option-array-index',
                              t.array_index
                          ),
                          (s.innerHTML = t.highlighted_html || t.html),
                          t.title && (s.title = t.title),
                          this.outerHTML(s))
                        : ''
                }),
                (t.prototype.result_add_group = function (t) {
                    var e, s
                    return (t.search_match || t.group_match) &&
                        t.active_options > 0
                        ? ((e = []).push('group-result'),
                          t.classes && e.push(t.classes),
                          (s = document.createElement('li')),
                          (s.className = e.join(' ')),
                          (s.innerHTML =
                              t.highlighted_html || this.escape_html(t.label)),
                          t.title && (s.title = t.title),
                          this.outerHTML(s))
                        : ''
                }),
                (t.prototype.results_update_field = function () {
                    if (
                        (this.set_default_text(),
                        this.is_multiple || this.results_reset_cleanup(),
                        this.result_clear_highlight(),
                        this.results_build(),
                        this.results_showing)
                    )
                        return this.winnow_results()
                }),
                (t.prototype.reset_single_select_options = function () {
                    var t, e, s, i, n
                    for (
                        n = [], t = 0, e = (s = this.results_data).length;
                        t < e;
                        t++
                    )
                        (i = s[t]).selected
                            ? n.push((i.selected = !1))
                            : n.push(void 0)
                    return n
                }),
                (t.prototype.results_toggle = function () {
                    return this.results_showing
                        ? this.results_hide()
                        : this.results_show()
                }),
                (t.prototype.results_search = function (t) {
                    return this.results_showing
                        ? this.winnow_results()
                        : this.results_show()
                }),
                (t.prototype.winnow_results = function (t) {
                    var e, s, i, n, r, o, h, l, c, _, a, u, d, p, f
                    for (
                        this.no_results_clear(),
                            _ = 0,
                            e = (h = this.get_search_text()).replace(
                                /[-[\]{}()*+?.,\\^$|#\s]/g,
                                '\\$&'
                            ),
                            c = this.get_search_regex(e),
                            i = 0,
                            n = (l = this.results_data).length;
                        i < n;
                        i++
                    )
                        ((r = l[i]).search_match = !1),
                            (a = null),
                            (u = null),
                            (r.highlighted_html = ''),
                            this.include_option_in_results(r) &&
                                (r.group &&
                                    ((r.group_match = !1),
                                    (r.active_options = 0)),
                                null != r.group_array_index &&
                                    this.results_data[r.group_array_index] &&
                                    (0 ===
                                        (a =
                                            this.results_data[
                                                r.group_array_index
                                            ]).active_options &&
                                        a.search_match &&
                                        (_ += 1),
                                    (a.active_options += 1)),
                                (f = r.group ? r.label : r.text),
                                (r.group && !this.group_search) ||
                                    ((u = this.search_string_match(f, c)),
                                    (r.search_match = null != u),
                                    r.search_match && !r.group && (_ += 1),
                                    r.search_match
                                        ? (h.length &&
                                              ((d = u.index),
                                              (o = f.slice(0, d)),
                                              (s = f.slice(d, d + h.length)),
                                              (p = f.slice(d + h.length)),
                                              (r.highlighted_html =
                                                  this.escape_html(o) +
                                                  '<em>' +
                                                  this.escape_html(s) +
                                                  '</em>' +
                                                  this.escape_html(p))),
                                          null != a && (a.group_match = !0))
                                        : null != r.group_array_index &&
                                          this.results_data[r.group_array_index]
                                              .search_match &&
                                          (r.search_match = !0)))
                    return (
                        this.result_clear_highlight(),
                        _ < 1 && h.length
                            ? (this.update_results_content(''),
                              this.no_results(h))
                            : (this.update_results_content(
                                  this.results_option_build()
                              ),
                              (null != t ? t.skip_highlight : void 0)
                                  ? void 0
                                  : this.winnow_results_set_highlight())
                    )
                }),
                (t.prototype.get_search_regex = function (t) {
                    var e, s
                    return (
                        (s = this.search_contains
                            ? t
                            : '(^|\\s|\\b)' + t + '[^\\s]*'),
                        this.enable_split_word_search ||
                            this.search_contains ||
                            (s = '^' + s),
                        (e = this.case_sensitive_search ? '' : 'i'),
                        new RegExp(s, e)
                    )
                }),
                (t.prototype.search_string_match = function (t, e) {
                    var s
                    return (
                        (s = e.exec(t)),
                        !this.search_contains &&
                            (null != s ? s[1] : void 0) &&
                            (s.index += 1),
                        s
                    )
                }),
                (t.prototype.choices_count = function () {
                    var t, e, s
                    if (null != this.selected_option_count)
                        return this.selected_option_count
                    for (
                        this.selected_option_count = 0,
                            t = 0,
                            e = (s = this.form_field.options).length;
                        t < e;
                        t++
                    )
                        s[t].selected && (this.selected_option_count += 1)
                    return this.selected_option_count
                }),
                (t.prototype.choices_click = function (t) {
                    if (
                        (t.preventDefault(),
                        this.activate_field(),
                        !this.results_showing && !this.is_disabled)
                    )
                        return this.results_show()
                }),
                (t.prototype.keydown_checker = function (t) {
                    var e, s
                    switch (
                        ((s = null != (e = t.which) ? e : t.keyCode),
                        this.search_field_scale(),
                        8 !== s &&
                            this.pending_backstroke &&
                            this.clear_backstroke(),
                        s)
                    ) {
                        case 8:
                            this.backstroke_length =
                                this.get_search_field_value().length
                            break
                        case 9:
                            this.results_showing &&
                                !this.is_multiple &&
                                this.result_select(t),
                                (this.mouse_on_container = !1)
                            break
                        case 13:
                        case 27:
                            this.results_showing && t.preventDefault()
                            break
                        case 32:
                            this.disable_search && t.preventDefault()
                            break
                        case 38:
                            t.preventDefault(), this.keyup_arrow()
                            break
                        case 40:
                            t.preventDefault(), this.keydown_arrow()
                    }
                }),
                (t.prototype.keyup_checker = function (t) {
                    var e, s
                    switch (
                        ((s = null != (e = t.which) ? e : t.keyCode),
                        this.search_field_scale(),
                        s)
                    ) {
                        case 8:
                            this.is_multiple &&
                            this.backstroke_length < 1 &&
                            this.choices_count() > 0
                                ? this.keydown_backstroke()
                                : this.pending_backstroke ||
                                  (this.result_clear_highlight(),
                                  this.results_search())
                            break
                        case 13:
                            t.preventDefault(),
                                this.results_showing && this.result_select(t)
                            break
                        case 27:
                            this.results_showing && this.results_hide()
                            break
                        case 9:
                        case 16:
                        case 17:
                        case 18:
                        case 38:
                        case 40:
                        case 91:
                            break
                        default:
                            this.results_search()
                    }
                }),
                (t.prototype.clipboard_event_checker = function (t) {
                    if (!this.is_disabled)
                        return setTimeout(
                            (function (t) {
                                return function () {
                                    return t.results_search()
                                }
                            })(this),
                            50
                        )
                }),
                (t.prototype.container_width = function () {
                    return null != this.options.width
                        ? this.options.width
                        : this.form_field.offsetWidth + 'px'
                }),
                (t.prototype.include_option_in_results = function (t) {
                    return (
                        !(
                            this.is_multiple &&
                            !this.display_selected_options &&
                            t.selected
                        ) &&
                        !(!this.display_disabled_options && t.disabled) &&
                        !t.empty
                    )
                }),
                (t.prototype.search_results_touchstart = function (t) {
                    return (
                        (this.touch_started = !0),
                        this.search_results_mouseover(t)
                    )
                }),
                (t.prototype.search_results_touchmove = function (t) {
                    return (
                        (this.touch_started = !1),
                        this.search_results_mouseout(t)
                    )
                }),
                (t.prototype.search_results_touchend = function (t) {
                    if (this.touch_started)
                        return this.search_results_mouseup(t)
                }),
                (t.prototype.outerHTML = function (t) {
                    var e
                    return t.outerHTML
                        ? t.outerHTML
                        : ((e = document.createElement('div')).appendChild(t),
                          e.innerHTML)
                }),
                (t.prototype.get_single_html = function () {
                    return (
                        '<a class="chosen-single chosen-default">\n  <span>' +
                        this.default_text +
                        '</span>\n  <div><b></b></div>\n</a>\n<div class="chosen-drop">\n  <div class="chosen-search">\n    <input class="chosen-search-input" type="text" autocomplete="off" />\n  </div>\n  <ul class="chosen-results"></ul>\n</div>'
                    )
                }),
                (t.prototype.get_multi_html = function () {
                    return (
                        '<ul class="chosen-choices">\n  <li class="search-field">\n    <input class="chosen-search-input" type="text" autocomplete="off" value="' +
                        this.default_text +
                        '" />\n  </li>\n</ul>\n<div class="chosen-drop">\n  <ul class="chosen-results"></ul>\n</div>'
                    )
                }),
                (t.prototype.get_no_results_html = function (t) {
                    return (
                        '<li class="no-results">\n  ' +
                        this.results_none_found +
                        ' <span>' +
                        this.escape_html(t) +
                        '</span>\n</li>'
                    )
                }),
                (t.browser_is_supported = function () {
                    return 'Microsoft Internet Explorer' ===
                        window.navigator.appName
                        ? document.documentMode >= 8
                        : !(
                              /iP(od|hone)/i.test(window.navigator.userAgent) ||
                              /IEMobile/i.test(window.navigator.userAgent) ||
                              /Windows Phone/i.test(
                                  window.navigator.userAgent
                              ) ||
                              /BlackBerry/i.test(window.navigator.userAgent) ||
                              /BB10/i.test(window.navigator.userAgent) ||
                              /Android.*Mobile/i.test(
                                  window.navigator.userAgent
                              )
                          )
                }),
                (t.default_multiple_text = 'Select Some Options'),
                (t.default_single_text = 'Select an Option'),
                (t.default_no_result_text = 'No results match'),
                t
            )
        })()),
        (t = jQuery).fn.extend({
            chosen: function (i) {
                return e.browser_is_supported()
                    ? this.each(function (e) {
                          var n, r
                          ;(r = (n = t(this)).data('chosen')),
                              'destroy' !== i
                                  ? r instanceof s ||
                                    n.data('chosen', new s(this, i))
                                  : r instanceof s && r.destroy()
                      })
                    : this
            },
        }),
        (s = (function (s) {
            function n() {
                return n.__super__.constructor.apply(this, arguments)
            }
            return (
                r(n, e),
                (n.prototype.setup = function () {
                    return (
                        (this.form_field_jq = t(this.form_field)),
                        (this.current_selectedIndex =
                            this.form_field.selectedIndex)
                    )
                }),
                (n.prototype.set_up_html = function () {
                    var e, s
                    return (
                        (e = ['chosen-container']).push(
                            'chosen-container-' +
                                (this.is_multiple ? 'multi' : 'single')
                        ),
                        this.inherit_select_classes &&
                            this.form_field.className &&
                            e.push(this.form_field.className),
                        this.is_rtl && e.push('chosen-rtl'),
                        (s = {
                            class: e.join(' '),
                            title: this.form_field.title,
                        }),
                        this.form_field.id.length &&
                            (s.id =
                                this.form_field.id.replace(/[^\w]/g, '_') +
                                '_chosen'),
                        (this.container = t('<div />', s)),
                        this.container.width(this.container_width()),
                        this.is_multiple
                            ? this.container.html(this.get_multi_html())
                            : this.container.html(this.get_single_html()),
                        this.form_field_jq.hide().after(this.container),
                        (this.dropdown = this.container
                            .find('div.chosen-drop')
                            .first()),
                        (this.search_field = this.container
                            .find('input')
                            .first()),
                        (this.search_results = this.container
                            .find('ul.chosen-results')
                            .first()),
                        this.search_field_scale(),
                        (this.search_no_results = this.container
                            .find('li.no-results')
                            .first()),
                        this.is_multiple
                            ? ((this.search_choices = this.container
                                  .find('ul.chosen-choices')
                                  .first()),
                              (this.search_container = this.container
                                  .find('li.search-field')
                                  .first()))
                            : ((this.search_container = this.container
                                  .find('div.chosen-search')
                                  .first()),
                              (this.selected_item = this.container
                                  .find('.chosen-single')
                                  .first())),
                        this.results_build(),
                        this.set_tab_index(),
                        this.set_label_behavior()
                    )
                }),
                (n.prototype.on_ready = function () {
                    return this.form_field_jq.trigger('chosen:ready', {
                        chosen: this,
                    })
                }),
                (n.prototype.register_observers = function () {
                    return (
                        this.container.on(
                            'touchstart.chosen',
                            (function (t) {
                                return function (e) {
                                    t.container_mousedown(e)
                                }
                            })(this)
                        ),
                        this.container.on(
                            'touchend.chosen',
                            (function (t) {
                                return function (e) {
                                    t.container_mouseup(e)
                                }
                            })(this)
                        ),
                        this.container.on(
                            'mousedown.chosen',
                            (function (t) {
                                return function (e) {
                                    t.container_mousedown(e)
                                }
                            })(this)
                        ),
                        this.container.on(
                            'mouseup.chosen',
                            (function (t) {
                                return function (e) {
                                    t.container_mouseup(e)
                                }
                            })(this)
                        ),
                        this.container.on(
                            'mouseenter.chosen',
                            (function (t) {
                                return function (e) {
                                    t.mouse_enter(e)
                                }
                            })(this)
                        ),
                        this.container.on(
                            'mouseleave.chosen',
                            (function (t) {
                                return function (e) {
                                    t.mouse_leave(e)
                                }
                            })(this)
                        ),
                        this.search_results.on(
                            'mouseup.chosen',
                            (function (t) {
                                return function (e) {
                                    t.search_results_mouseup(e)
                                }
                            })(this)
                        ),
                        this.search_results.on(
                            'mouseover.chosen',
                            (function (t) {
                                return function (e) {
                                    t.search_results_mouseover(e)
                                }
                            })(this)
                        ),
                        this.search_results.on(
                            'mouseout.chosen',
                            (function (t) {
                                return function (e) {
                                    t.search_results_mouseout(e)
                                }
                            })(this)
                        ),
                        this.search_results.on(
                            'mousewheel.chosen DOMMouseScroll.chosen',
                            (function (t) {
                                return function (e) {
                                    t.search_results_mousewheel(e)
                                }
                            })(this)
                        ),
                        this.search_results.on(
                            'touchstart.chosen',
                            (function (t) {
                                return function (e) {
                                    t.search_results_touchstart(e)
                                }
                            })(this)
                        ),
                        this.search_results.on(
                            'touchmove.chosen',
                            (function (t) {
                                return function (e) {
                                    t.search_results_touchmove(e)
                                }
                            })(this)
                        ),
                        this.search_results.on(
                            'touchend.chosen',
                            (function (t) {
                                return function (e) {
                                    t.search_results_touchend(e)
                                }
                            })(this)
                        ),
                        this.form_field_jq.on(
                            'chosen:updated.chosen',
                            (function (t) {
                                return function (e) {
                                    t.results_update_field(e)
                                }
                            })(this)
                        ),
                        this.form_field_jq.on(
                            'chosen:activate.chosen',
                            (function (t) {
                                return function (e) {
                                    t.activate_field(e)
                                }
                            })(this)
                        ),
                        this.form_field_jq.on(
                            'chosen:open.chosen',
                            (function (t) {
                                return function (e) {
                                    t.container_mousedown(e)
                                }
                            })(this)
                        ),
                        this.form_field_jq.on(
                            'chosen:close.chosen',
                            (function (t) {
                                return function (e) {
                                    t.close_field(e)
                                }
                            })(this)
                        ),
                        this.search_field.on(
                            'blur.chosen',
                            (function (t) {
                                return function (e) {
                                    t.input_blur(e)
                                }
                            })(this)
                        ),
                        this.search_field.on(
                            'keyup.chosen',
                            (function (t) {
                                return function (e) {
                                    t.keyup_checker(e)
                                }
                            })(this)
                        ),
                        this.search_field.on(
                            'keydown.chosen',
                            (function (t) {
                                return function (e) {
                                    t.keydown_checker(e)
                                }
                            })(this)
                        ),
                        this.search_field.on(
                            'focus.chosen',
                            (function (t) {
                                return function (e) {
                                    t.input_focus(e)
                                }
                            })(this)
                        ),
                        this.search_field.on(
                            'cut.chosen',
                            (function (t) {
                                return function (e) {
                                    t.clipboard_event_checker(e)
                                }
                            })(this)
                        ),
                        this.search_field.on(
                            'paste.chosen',
                            (function (t) {
                                return function (e) {
                                    t.clipboard_event_checker(e)
                                }
                            })(this)
                        ),
                        this.is_multiple
                            ? this.search_choices.on(
                                  'click.chosen',
                                  (function (t) {
                                      return function (e) {
                                          t.choices_click(e)
                                      }
                                  })(this)
                              )
                            : this.container.on('click.chosen', function (t) {
                                  t.preventDefault()
                              })
                    )
                }),
                (n.prototype.destroy = function () {
                    return (
                        t(this.container[0].ownerDocument).off(
                            'click.chosen',
                            this.click_test_action
                        ),
                        this.form_field_label.length > 0 &&
                            this.form_field_label.off('click.chosen'),
                        this.search_field[0].tabIndex &&
                            (this.form_field_jq[0].tabIndex =
                                this.search_field[0].tabIndex),
                        this.container.remove(),
                        this.form_field_jq.removeData('chosen'),
                        this.form_field_jq.show()
                    )
                }),
                (n.prototype.search_field_disabled = function () {
                    return (
                        (this.is_disabled =
                            this.form_field.disabled ||
                            this.form_field_jq
                                .parents('fieldset')
                                .is(':disabled')),
                        this.container.toggleClass(
                            'chosen-disabled',
                            this.is_disabled
                        ),
                        (this.search_field[0].disabled = this.is_disabled),
                        this.is_multiple ||
                            this.selected_item.off(
                                'focus.chosen',
                                this.activate_field
                            ),
                        this.is_disabled
                            ? this.close_field()
                            : this.is_multiple
                              ? void 0
                              : this.selected_item.on(
                                    'focus.chosen',
                                    this.activate_field
                                )
                    )
                }),
                (n.prototype.container_mousedown = function (e) {
                    var s
                    if (!this.is_disabled)
                        return (
                            !e ||
                                ('mousedown' !== (s = e.type) &&
                                    'touchstart' !== s) ||
                                this.results_showing ||
                                e.preventDefault(),
                            null != e &&
                            t(e.target).hasClass('search-choice-close')
                                ? void 0
                                : (this.active_field
                                      ? this.is_multiple ||
                                        !e ||
                                        (t(e.target)[0] !==
                                            this.selected_item[0] &&
                                            !t(e.target).parents(
                                                'a.chosen-single'
                                            ).length) ||
                                        (e.preventDefault(),
                                        this.results_toggle())
                                      : (this.is_multiple &&
                                            this.search_field.val(''),
                                        t(this.container[0].ownerDocument).on(
                                            'click.chosen',
                                            this.click_test_action
                                        ),
                                        this.results_show()),
                                  this.activate_field())
                        )
                }),
                (n.prototype.container_mouseup = function (t) {
                    if ('ABBR' === t.target.nodeName && !this.is_disabled)
                        return this.results_reset(t)
                }),
                (n.prototype.search_results_mousewheel = function (t) {
                    var e
                    if (
                        (t.originalEvent &&
                            (e =
                                t.originalEvent.deltaY ||
                                -t.originalEvent.wheelDelta ||
                                t.originalEvent.detail),
                        null != e)
                    )
                        return (
                            t.preventDefault(),
                            'DOMMouseScroll' === t.type && (e *= 40),
                            this.search_results.scrollTop(
                                e + this.search_results.scrollTop()
                            )
                        )
                }),
                (n.prototype.blur_test = function (t) {
                    if (
                        !this.active_field &&
                        this.container.hasClass('chosen-container-active')
                    )
                        return this.close_field()
                }),
                (n.prototype.close_field = function () {
                    return (
                        t(this.container[0].ownerDocument).off(
                            'click.chosen',
                            this.click_test_action
                        ),
                        (this.active_field = !1),
                        this.results_hide(),
                        this.container.removeClass('chosen-container-active'),
                        this.clear_backstroke(),
                        this.show_search_field_default(),
                        this.search_field_scale(),
                        this.search_field.blur()
                    )
                }),
                (n.prototype.activate_field = function () {
                    if (!this.is_disabled)
                        return (
                            this.container.addClass('chosen-container-active'),
                            (this.active_field = !0),
                            this.search_field.val(this.search_field.val()),
                            this.search_field.focus()
                        )
                }),
                (n.prototype.test_active_click = function (e) {
                    var s
                    return (s = t(e.target).closest('.chosen-container'))
                        .length && this.container[0] === s[0]
                        ? (this.active_field = !0)
                        : this.close_field()
                }),
                (n.prototype.results_build = function () {
                    return (
                        (this.parsing = !0),
                        (this.selected_option_count = null),
                        (this.results_data = i.select_to_array(
                            this.form_field
                        )),
                        this.is_multiple
                            ? this.search_choices
                                  .find('li.search-choice')
                                  .remove()
                            : (this.single_set_selected_text(),
                              this.disable_search ||
                              this.form_field.options.length <=
                                  this.disable_search_threshold
                                  ? ((this.search_field[0].readOnly = !0),
                                    this.container.addClass(
                                        'chosen-container-single-nosearch'
                                    ))
                                  : ((this.search_field[0].readOnly = !1),
                                    this.container.removeClass(
                                        'chosen-container-single-nosearch'
                                    ))),
                        this.update_results_content(
                            this.results_option_build({ first: !0 })
                        ),
                        this.search_field_disabled(),
                        this.show_search_field_default(),
                        this.search_field_scale(),
                        (this.parsing = !1)
                    )
                }),
                (n.prototype.result_do_highlight = function (t) {
                    var e, s, i, n, r
                    if (t.length) {
                        if (
                            (this.result_clear_highlight(),
                            (this.result_highlight = t),
                            this.result_highlight.addClass('highlighted'),
                            (i = parseInt(
                                this.search_results.css('maxHeight'),
                                10
                            )),
                            (r = this.search_results.scrollTop()),
                            (n = i + r),
                            (s =
                                this.result_highlight.position().top +
                                this.search_results.scrollTop()),
                            (e = s + this.result_highlight.outerHeight()) >= n)
                        )
                            return this.search_results.scrollTop(
                                e - i > 0 ? e - i : 0
                            )
                        if (s < r) return this.search_results.scrollTop(s)
                    }
                }),
                (n.prototype.result_clear_highlight = function () {
                    return (
                        this.result_highlight &&
                            this.result_highlight.removeClass('highlighted'),
                        (this.result_highlight = null)
                    )
                }),
                (n.prototype.results_show = function () {
                    return this.is_multiple &&
                        this.max_selected_options <= this.choices_count()
                        ? (this.form_field_jq.trigger('chosen:maxselected', {
                              chosen: this,
                          }),
                          !1)
                        : (this.container.addClass('chosen-with-drop'),
                          (this.results_showing = !0),
                          this.search_field.focus(),
                          this.search_field.val(this.get_search_field_value()),
                          this.winnow_results(),
                          this.form_field_jq.trigger(
                              'chosen:showing_dropdown',
                              { chosen: this }
                          ))
                }),
                (n.prototype.update_results_content = function (t) {
                    return this.search_results.html(t)
                }),
                (n.prototype.results_hide = function () {
                    return (
                        this.results_showing &&
                            (this.result_clear_highlight(),
                            this.container.removeClass('chosen-with-drop'),
                            this.form_field_jq.trigger(
                                'chosen:hiding_dropdown',
                                { chosen: this }
                            )),
                        (this.results_showing = !1)
                    )
                }),
                (n.prototype.set_tab_index = function (t) {
                    var e
                    if (this.form_field.tabIndex)
                        return (
                            (e = this.form_field.tabIndex),
                            (this.form_field.tabIndex = -1),
                            (this.search_field[0].tabIndex = e)
                        )
                }),
                (n.prototype.set_label_behavior = function () {
                    if (
                        ((this.form_field_label =
                            this.form_field_jq.parents('label')),
                        !this.form_field_label.length &&
                            this.form_field.id.length &&
                            (this.form_field_label = t(
                                "label[for='" + this.form_field.id + "']"
                            )),
                        this.form_field_label.length > 0)
                    )
                        return this.form_field_label.on(
                            'click.chosen',
                            this.label_click_handler
                        )
                }),
                (n.prototype.show_search_field_default = function () {
                    return this.is_multiple &&
                        this.choices_count() < 1 &&
                        !this.active_field
                        ? (this.search_field.val(this.default_text),
                          this.search_field.addClass('default'))
                        : (this.search_field.val(''),
                          this.search_field.removeClass('default'))
                }),
                (n.prototype.search_results_mouseup = function (e) {
                    var s
                    if (
                        (s = t(e.target).hasClass('active-result')
                            ? t(e.target)
                            : t(e.target).parents('.active-result').first())
                            .length
                    )
                        return (
                            (this.result_highlight = s),
                            this.result_select(e),
                            this.search_field.focus()
                        )
                }),
                (n.prototype.search_results_mouseover = function (e) {
                    var s
                    if (
                        (s = t(e.target).hasClass('active-result')
                            ? t(e.target)
                            : t(e.target).parents('.active-result').first())
                    )
                        return this.result_do_highlight(s)
                }),
                (n.prototype.search_results_mouseout = function (e) {
                    if (
                        t(e.target).hasClass('active-result') ||
                        t(e.target).parents('.active-result').first()
                    )
                        return this.result_clear_highlight()
                }),
                (n.prototype.choice_build = function (e) {
                    var s, i
                    return (
                        (s = t('<li />', { class: 'search-choice' }).html(
                            '<span>' + this.choice_label(e) + '</span>'
                        )),
                        e.disabled
                            ? s.addClass('search-choice-disabled')
                            : ((i = t('<a />', {
                                  class: 'search-choice-close',
                                  'data-option-array-index': e.array_index,
                              })).on(
                                  'click.chosen',
                                  (function (t) {
                                      return function (e) {
                                          return t.choice_destroy_link_click(e)
                                      }
                                  })(this)
                              ),
                              s.append(i)),
                        this.search_container.before(s)
                    )
                }),
                (n.prototype.choice_destroy_link_click = function (e) {
                    if (
                        (e.preventDefault(),
                        e.stopPropagation(),
                        !this.is_disabled)
                    )
                        return this.choice_destroy(t(e.target))
                }),
                (n.prototype.choice_destroy = function (t) {
                    if (
                        this.result_deselect(
                            t[0].getAttribute('data-option-array-index')
                        )
                    )
                        return (
                            this.active_field
                                ? this.search_field.focus()
                                : this.show_search_field_default(),
                            this.is_multiple &&
                                this.choices_count() > 0 &&
                                this.get_search_field_value().length < 1 &&
                                this.results_hide(),
                            t.parents('li').first().remove(),
                            this.search_field_scale()
                        )
                }),
                (n.prototype.results_reset = function () {
                    if (
                        (this.reset_single_select_options(),
                        (this.form_field.options[0].selected = !0),
                        this.single_set_selected_text(),
                        this.show_search_field_default(),
                        this.results_reset_cleanup(),
                        this.trigger_form_field_change(),
                        this.active_field)
                    )
                        return this.results_hide()
                }),
                (n.prototype.results_reset_cleanup = function () {
                    return (
                        (this.current_selectedIndex =
                            this.form_field.selectedIndex),
                        this.selected_item.find('abbr').remove()
                    )
                }),
                (n.prototype.result_select = function (t) {
                    var e, s
                    if (this.result_highlight)
                        return (
                            (e = this.result_highlight),
                            this.result_clear_highlight(),
                            this.is_multiple &&
                            this.max_selected_options <= this.choices_count()
                                ? (this.form_field_jq.trigger(
                                      'chosen:maxselected',
                                      { chosen: this }
                                  ),
                                  !1)
                                : (this.is_multiple
                                      ? e.removeClass('active-result')
                                      : this.reset_single_select_options(),
                                  e.addClass('result-selected'),
                                  (s =
                                      this.results_data[
                                          e[0].getAttribute(
                                              'data-option-array-index'
                                          )
                                      ]),
                                  (s.selected = !0),
                                  (this.form_field.options[
                                      s.options_index
                                  ].selected = !0),
                                  (this.selected_option_count = null),
                                  this.is_multiple
                                      ? this.choice_build(s)
                                      : this.single_set_selected_text(
                                            this.choice_label(s)
                                        ),
                                  this.is_multiple &&
                                  (!this.hide_results_on_select ||
                                      t.metaKey ||
                                      t.ctrlKey)
                                      ? t.metaKey || t.ctrlKey
                                          ? this.winnow_results({
                                                skip_highlight: !0,
                                            })
                                          : (this.search_field.val(''),
                                            this.winnow_results())
                                      : (this.results_hide(),
                                        this.show_search_field_default()),
                                  (this.is_multiple ||
                                      this.form_field.selectedIndex !==
                                          this.current_selectedIndex) &&
                                      this.trigger_form_field_change({
                                          selected:
                                              this.form_field.options[
                                                  s.options_index
                                              ].value,
                                      }),
                                  (this.current_selectedIndex =
                                      this.form_field.selectedIndex),
                                  t.preventDefault(),
                                  this.search_field_scale())
                        )
                }),
                (n.prototype.single_set_selected_text = function (t) {
                    return (
                        null == t && (t = this.default_text),
                        t === this.default_text
                            ? this.selected_item.addClass('chosen-default')
                            : (this.single_deselect_control_build(),
                              this.selected_item.removeClass('chosen-default')),
                        this.selected_item.find('span').html(t)
                    )
                }),
                (n.prototype.result_deselect = function (t) {
                    var e
                    return (
                        (e = this.results_data[t]),
                        !this.form_field.options[e.options_index].disabled &&
                            ((e.selected = !1),
                            (this.form_field.options[e.options_index].selected =
                                !1),
                            (this.selected_option_count = null),
                            this.result_clear_highlight(),
                            this.results_showing && this.winnow_results(),
                            this.trigger_form_field_change({
                                deselected:
                                    this.form_field.options[e.options_index]
                                        .value,
                            }),
                            this.search_field_scale(),
                            !0)
                    )
                }),
                (n.prototype.single_deselect_control_build = function () {
                    if (this.allow_single_deselect)
                        return (
                            this.selected_item.find('abbr').length ||
                                this.selected_item
                                    .find('span')
                                    .first()
                                    .after(
                                        '<abbr class="search-choice-close"></abbr>'
                                    ),
                            this.selected_item.addClass(
                                'chosen-single-with-deselect'
                            )
                        )
                }),
                (n.prototype.get_search_field_value = function () {
                    return this.search_field.val()
                }),
                (n.prototype.get_search_text = function () {
                    return t.trim(this.get_search_field_value())
                }),
                (n.prototype.escape_html = function (e) {
                    return t('<div/>').text(e).html()
                }),
                (n.prototype.winnow_results_set_highlight = function () {
                    var t, e
                    if (
                        ((e = this.is_multiple
                            ? []
                            : this.search_results.find(
                                  '.result-selected.active-result'
                              )),
                        null !=
                            (t = e.length
                                ? e.first()
                                : this.search_results
                                      .find('.active-result')
                                      .first()))
                    )
                        return this.result_do_highlight(t)
                }),
                (n.prototype.no_results = function (t) {
                    var e
                    return (
                        (e = this.get_no_results_html(t)),
                        this.search_results.append(e),
                        this.form_field_jq.trigger('chosen:no_results', {
                            chosen: this,
                        })
                    )
                }),
                (n.prototype.no_results_clear = function () {
                    return this.search_results.find('.no-results').remove()
                }),
                (n.prototype.keydown_arrow = function () {
                    var t
                    return this.results_showing && this.result_highlight
                        ? (t = this.result_highlight
                              .nextAll('li.active-result')
                              .first())
                            ? this.result_do_highlight(t)
                            : void 0
                        : this.results_show()
                }),
                (n.prototype.keyup_arrow = function () {
                    var t
                    return this.results_showing || this.is_multiple
                        ? this.result_highlight
                            ? (t =
                                  this.result_highlight.prevAll(
                                      'li.active-result'
                                  )).length
                                ? this.result_do_highlight(t.first())
                                : (this.choices_count() > 0 &&
                                      this.results_hide(),
                                  this.result_clear_highlight())
                            : void 0
                        : this.results_show()
                }),
                (n.prototype.keydown_backstroke = function () {
                    var t
                    return this.pending_backstroke
                        ? (this.choice_destroy(
                              this.pending_backstroke.find('a').first()
                          ),
                          this.clear_backstroke())
                        : (t = this.search_container
                                .siblings('li.search-choice')
                                .last()).length &&
                            !t.hasClass('search-choice-disabled')
                          ? ((this.pending_backstroke = t),
                            this.single_backstroke_delete
                                ? this.keydown_backstroke()
                                : this.pending_backstroke.addClass(
                                      'search-choice-focus'
                                  ))
                          : void 0
                }),
                (n.prototype.clear_backstroke = function () {
                    return (
                        this.pending_backstroke &&
                            this.pending_backstroke.removeClass(
                                'search-choice-focus'
                            ),
                        (this.pending_backstroke = null)
                    )
                }),
                (n.prototype.search_field_scale = function () {
                    var e, s, i, n, r, o, h
                    if (this.is_multiple) {
                        for (
                            r = {
                                position: 'absolute',
                                left: '-1000px',
                                top: '-1000px',
                                display: 'none',
                                whiteSpace: 'pre',
                            },
                                s = 0,
                                i = (o = [
                                    'fontSize',
                                    'fontStyle',
                                    'fontWeight',
                                    'fontFamily',
                                    'lineHeight',
                                    'textTransform',
                                    'letterSpacing',
                                ]).length;
                            s < i;
                            s++
                        )
                            r[(n = o[s])] = this.search_field.css(n)
                        return (
                            (e = t('<div />').css(r)).text(
                                this.get_search_field_value()
                            ),
                            t('body').append(e),
                            (h = e.width() + 25),
                            e.remove(),
                            this.container.is(':visible') &&
                                (h = Math.min(
                                    this.container.outerWidth() - 10,
                                    h
                                )),
                            this.search_field.width(h)
                        )
                    }
                }),
                (n.prototype.trigger_form_field_change = function (t) {
                    return (
                        this.form_field_jq.trigger('input', t),
                        this.form_field_jq.trigger('change', t)
                    )
                }),
                n
            )
        })())
}).call(this)

/* END multiselect */

/* START smooth scrollbar 8.8.1 */

!(function (t, e) {
    'object' == typeof exports && 'object' == typeof module
        ? (module.exports = e())
        : 'function' == typeof define && define.amd
          ? define([], e)
          : 'object' == typeof exports
            ? (exports.Scrollbar = e())
            : (t.Scrollbar = e())
})(this, function () {
    return (function (t) {
        var e = {}
        function n(r) {
            if (e[r]) return e[r].exports
            var o = (e[r] = { i: r, l: !1, exports: {} })
            return t[r].call(o.exports, o, o.exports, n), (o.l = !0), o.exports
        }
        return (
            (n.m = t),
            (n.c = e),
            (n.d = function (t, e, r) {
                n.o(t, e) ||
                    Object.defineProperty(t, e, { enumerable: !0, get: r })
            }),
            (n.r = function (t) {
                'undefined' != typeof Symbol &&
                    Symbol.toStringTag &&
                    Object.defineProperty(t, Symbol.toStringTag, {
                        value: 'Module',
                    }),
                    Object.defineProperty(t, '__esModule', { value: !0 })
            }),
            (n.t = function (t, e) {
                if ((1 & e && (t = n(t)), 8 & e)) return t
                if (4 & e && 'object' == typeof t && t && t.__esModule) return t
                var r = Object.create(null)
                if (
                    (n.r(r),
                    Object.defineProperty(r, 'default', {
                        enumerable: !0,
                        value: t,
                    }),
                    2 & e && 'string' != typeof t)
                )
                    for (var o in t)
                        n.d(
                            r,
                            o,
                            function (e) {
                                return t[e]
                            }.bind(null, o)
                        )
                return r
            }),
            (n.n = function (t) {
                var e =
                    t && t.__esModule
                        ? function () {
                              return t.default
                          }
                        : function () {
                              return t
                          }
                return n.d(e, 'a', e), e
            }),
            (n.o = function (t, e) {
                return Object.prototype.hasOwnProperty.call(t, e)
            }),
            (n.p = ''),
            n((n.s = 68))
        )
    })([
        function (t, e) {
            var n = /^\s+|\s+$/g,
                r = /^[-+]0x[0-9a-f]+$/i,
                o = /^0b[01]+$/i,
                i = /^0o[0-7]+$/i,
                u = parseInt,
                c = Object.prototype.toString
            function a(t) {
                var e = typeof t
                return !!t && ('object' == e || 'function' == e)
            }
            function s(t) {
                if ('number' == typeof t) return t
                if (
                    (function (t) {
                        return (
                            'symbol' == typeof t ||
                            ((function (t) {
                                return !!t && 'object' == typeof t
                            })(t) &&
                                '[object Symbol]' == c.call(t))
                        )
                    })(t)
                )
                    return NaN
                if (a(t)) {
                    var e = 'function' == typeof t.valueOf ? t.valueOf() : t
                    t = a(e) ? e + '' : e
                }
                if ('string' != typeof t) return 0 === t ? t : +t
                t = t.replace(n, '')
                var s = o.test(t)
                return s || i.test(t)
                    ? u(t.slice(2), s ? 2 : 8)
                    : r.test(t)
                      ? NaN
                      : +t
            }
            t.exports = function (t, e, n) {
                return (
                    void 0 === n && ((n = e), (e = void 0)),
                    void 0 !== n && (n = (n = s(n)) == n ? n : 0),
                    void 0 !== e && (e = (e = s(e)) == e ? e : 0),
                    (function (t, e, n) {
                        return (
                            t == t &&
                                (void 0 !== n && (t = t <= n ? t : n),
                                void 0 !== e && (t = t >= e ? t : e)),
                            t
                        )
                    })(s(t), e, n)
                )
            }
        },
        function (t, e, n) {
            ;(function (e) {
                var n = function (t) {
                    return t && t.Math == Math && t
                }
                t.exports =
                    n('object' == typeof globalThis && globalThis) ||
                    n('object' == typeof window && window) ||
                    n('object' == typeof self && self) ||
                    n('object' == typeof e && e) ||
                    Function('return this')()
            }).call(this, n(45))
        },
        function (t, e, n) {
            var r = n(1),
                o = n(53),
                i = n(4),
                u = n(31),
                c = n(58),
                a = n(77),
                s = o('wks'),
                f = r.Symbol,
                l = a ? f : (f && f.withoutSetter) || u
            t.exports = function (t) {
                return (
                    i(s, t) ||
                        (c && i(f, t)
                            ? (s[t] = f[t])
                            : (s[t] = l('Symbol.' + t))),
                    s[t]
                )
            }
        },
        function (t, e) {
            t.exports = function (t) {
                return 'object' == typeof t
                    ? null !== t
                    : 'function' == typeof t
            }
        },
        function (t, e) {
            var n = {}.hasOwnProperty
            t.exports = function (t, e) {
                return n.call(t, e)
            }
        },
        function (t, e) {
            t.exports = function (t) {
                try {
                    return !!t()
                } catch (t) {
                    return !0
                }
            }
        },
        function (t, e, n) {
            var r = n(7),
                o = n(48),
                i = n(8),
                u = n(27),
                c = Object.defineProperty
            e.f = r
                ? c
                : function (t, e, n) {
                      if ((i(t), (e = u(e, !0)), i(n), o))
                          try {
                              return c(t, e, n)
                          } catch (t) {}
                      if ('get' in n || 'set' in n)
                          throw TypeError('Accessors not supported')
                      return 'value' in n && (t[e] = n.value), t
                  }
        },
        function (t, e, n) {
            var r = n(5)
            t.exports = !r(function () {
                return (
                    7 !=
                    Object.defineProperty({}, 1, {
                        get: function () {
                            return 7
                        },
                    })[1]
                )
            })
        },
        function (t, e, n) {
            var r = n(3)
            t.exports = function (t) {
                if (!r(t)) throw TypeError(String(t) + ' is not an object')
                return t
            }
        },
        function (t, e, n) {
            var r = n(7),
                o = n(6),
                i = n(15)
            t.exports = r
                ? function (t, e, n) {
                      return o.f(t, e, i(1, n))
                  }
                : function (t, e, n) {
                      return (t[e] = n), t
                  }
        },
        function (t, e, n) {
            var r,
                o,
                i,
                u = n(52),
                c = n(1),
                a = n(3),
                s = n(9),
                f = n(4),
                l = n(29),
                p = n(17),
                h = c.WeakMap
            if (u) {
                var d = new h(),
                    v = d.get,
                    y = d.has,
                    m = d.set
                ;(r = function (t, e) {
                    return m.call(d, t, e), e
                }),
                    (o = function (t) {
                        return v.call(d, t) || {}
                    }),
                    (i = function (t) {
                        return y.call(d, t)
                    })
            } else {
                var g = l('state')
                ;(p[g] = !0),
                    (r = function (t, e) {
                        return s(t, g, e), e
                    }),
                    (o = function (t) {
                        return f(t, g) ? t[g] : {}
                    }),
                    (i = function (t) {
                        return f(t, g)
                    })
            }
            t.exports = {
                set: r,
                get: o,
                has: i,
                enforce: function (t) {
                    return i(t) ? o(t) : r(t, {})
                },
                getterFor: function (t) {
                    return function (e) {
                        var n
                        if (!a(e) || (n = o(e)).type !== t)
                            throw TypeError(
                                'Incompatible receiver, ' + t + ' required'
                            )
                        return n
                    }
                },
            }
        },
        function (t, e, n) {
            var r = n(1)
            t.exports = r
        },
        function (t, e, n) {
            var r = n(1),
                o = n(9),
                i = n(4),
                u = n(28),
                c = n(50),
                a = n(10),
                s = a.get,
                f = a.enforce,
                l = String(String).split('String')
            ;(t.exports = function (t, e, n, c) {
                var a = !!c && !!c.unsafe,
                    s = !!c && !!c.enumerable,
                    p = !!c && !!c.noTargetGet
                'function' == typeof n &&
                    ('string' != typeof e || i(n, 'name') || o(n, 'name', e),
                    (f(n).source = l.join('string' == typeof e ? e : ''))),
                    t !== r
                        ? (a ? !p && t[e] && (s = !0) : delete t[e],
                          s ? (t[e] = n) : o(t, e, n))
                        : s
                          ? (t[e] = n)
                          : u(e, n)
            })(Function.prototype, 'toString', function () {
                return ('function' == typeof this && s(this).source) || c(this)
            })
        },
        function (t, e) {
            t.exports = {}
        },
        function (t, e, n) {
            var r = n(1),
                o = n(46).f,
                i = n(9),
                u = n(12),
                c = n(28),
                a = n(71),
                s = n(56)
            t.exports = function (t, e) {
                var n,
                    f,
                    l,
                    p,
                    h,
                    d = t.target,
                    v = t.global,
                    y = t.stat
                if ((n = v ? r : y ? r[d] || c(d, {}) : (r[d] || {}).prototype))
                    for (f in e) {
                        if (
                            ((p = e[f]),
                            (l = t.noTargetGet
                                ? (h = o(n, f)) && h.value
                                : n[f]),
                            !s(v ? f : d + (y ? '.' : '#') + f, t.forced) &&
                                void 0 !== l)
                        ) {
                            if (typeof p == typeof l) continue
                            a(p, l)
                        }
                        ;(t.sham || (l && l.sham)) && i(p, 'sham', !0),
                            u(n, f, p, t)
                    }
            }
        },
        function (t, e) {
            t.exports = function (t, e) {
                return {
                    enumerable: !(1 & t),
                    configurable: !(2 & t),
                    writable: !(4 & t),
                    value: e,
                }
            }
        },
        function (t, e, n) {
            var r = n(24),
                o = n(26)
            t.exports = function (t) {
                return r(o(t))
            }
        },
        function (t, e) {
            t.exports = {}
        },
        function (t, e, n) {
            var r = n(33),
                o = Math.min
            t.exports = function (t) {
                return t > 0 ? o(r(t), 9007199254740991) : 0
            }
        },
        function (t, e, n) {
            var r = n(17),
                o = n(3),
                i = n(4),
                u = n(6).f,
                c = n(31),
                a = n(76),
                s = c('meta'),
                f = 0,
                l =
                    Object.isExtensible ||
                    function () {
                        return !0
                    },
                p = function (t) {
                    u(t, s, { value: { objectID: 'O' + ++f, weakData: {} } })
                },
                h = (t.exports = {
                    REQUIRED: !1,
                    fastKey: function (t, e) {
                        if (!o(t))
                            return 'symbol' == typeof t
                                ? t
                                : ('string' == typeof t ? 'S' : 'P') + t
                        if (!i(t, s)) {
                            if (!l(t)) return 'F'
                            if (!e) return 'E'
                            p(t)
                        }
                        return t[s].objectID
                    },
                    getWeakData: function (t, e) {
                        if (!i(t, s)) {
                            if (!l(t)) return !0
                            if (!e) return !1
                            p(t)
                        }
                        return t[s].weakData
                    },
                    onFreeze: function (t) {
                        return a && h.REQUIRED && l(t) && !i(t, s) && p(t), t
                    },
                })
            r[s] = !0
        },
        function (t, e, n) {
            var r = n(78)
            t.exports = function (t, e, n) {
                if ((r(t), void 0 === e)) return t
                switch (n) {
                    case 0:
                        return function () {
                            return t.call(e)
                        }
                    case 1:
                        return function (n) {
                            return t.call(e, n)
                        }
                    case 2:
                        return function (n, r) {
                            return t.call(e, n, r)
                        }
                    case 3:
                        return function (n, r, o) {
                            return t.call(e, n, r, o)
                        }
                }
                return function () {
                    return t.apply(e, arguments)
                }
            }
        },
        function (t, e, n) {
            var r = n(26)
            t.exports = function (t) {
                return Object(r(t))
            }
        },
        function (t, e, n) {
            ;(function (e) {
                var n = /^\s+|\s+$/g,
                    r = /^[-+]0x[0-9a-f]+$/i,
                    o = /^0b[01]+$/i,
                    i = /^0o[0-7]+$/i,
                    u = parseInt,
                    c = 'object' == typeof e && e && e.Object === Object && e,
                    a =
                        'object' == typeof self &&
                        self &&
                        self.Object === Object &&
                        self,
                    s = c || a || Function('return this')(),
                    f = Object.prototype.toString,
                    l = Math.max,
                    p = Math.min,
                    h = function () {
                        return s.Date.now()
                    }
                function d(t) {
                    var e = typeof t
                    return !!t && ('object' == e || 'function' == e)
                }
                function v(t) {
                    if ('number' == typeof t) return t
                    if (
                        (function (t) {
                            return (
                                'symbol' == typeof t ||
                                ((function (t) {
                                    return !!t && 'object' == typeof t
                                })(t) &&
                                    '[object Symbol]' == f.call(t))
                            )
                        })(t)
                    )
                        return NaN
                    if (d(t)) {
                        var e = 'function' == typeof t.valueOf ? t.valueOf() : t
                        t = d(e) ? e + '' : e
                    }
                    if ('string' != typeof t) return 0 === t ? t : +t
                    t = t.replace(n, '')
                    var c = o.test(t)
                    return c || i.test(t)
                        ? u(t.slice(2), c ? 2 : 8)
                        : r.test(t)
                          ? NaN
                          : +t
                }
                t.exports = function (t, e, n) {
                    var r,
                        o,
                        i,
                        u,
                        c,
                        a,
                        s = 0,
                        f = !1,
                        y = !1,
                        m = !0
                    if ('function' != typeof t)
                        throw new TypeError('Expected a function')
                    function g(e) {
                        var n = r,
                            i = o
                        return (r = o = void 0), (s = e), (u = t.apply(i, n))
                    }
                    function b(t) {
                        var n = t - a
                        return (
                            void 0 === a || n >= e || n < 0 || (y && t - s >= i)
                        )
                    }
                    function x() {
                        var t = h()
                        if (b(t)) return w(t)
                        c = setTimeout(
                            x,
                            (function (t) {
                                var n = e - (t - a)
                                return y ? p(n, i - (t - s)) : n
                            })(t)
                        )
                    }
                    function w(t) {
                        return (
                            (c = void 0), m && r ? g(t) : ((r = o = void 0), u)
                        )
                    }
                    function S() {
                        var t = h(),
                            n = b(t)
                        if (((r = arguments), (o = this), (a = t), n)) {
                            if (void 0 === c)
                                return (function (t) {
                                    return (
                                        (s = t),
                                        (c = setTimeout(x, e)),
                                        f ? g(t) : u
                                    )
                                })(a)
                            if (y) return (c = setTimeout(x, e)), g(a)
                        }
                        return void 0 === c && (c = setTimeout(x, e)), u
                    }
                    return (
                        (e = v(e) || 0),
                        d(n) &&
                            ((f = !!n.leading),
                            (i = (y = 'maxWait' in n)
                                ? l(v(n.maxWait) || 0, e)
                                : i),
                            (m = 'trailing' in n ? !!n.trailing : m)),
                        (S.cancel = function () {
                            void 0 !== c && clearTimeout(c),
                                (s = 0),
                                (r = a = o = c = void 0)
                        }),
                        (S.flush = function () {
                            return void 0 === c ? u : w(h())
                        }),
                        S
                    )
                }
            }).call(this, n(45))
        },
        function (t, e, n) {
            'use strict'
            var r = n(14),
                o = n(1),
                i = n(56),
                u = n(12),
                c = n(19),
                a = n(35),
                s = n(37),
                f = n(3),
                l = n(5),
                p = n(62),
                h = n(38),
                d = n(79)
            t.exports = function (t, e, n) {
                var v = -1 !== t.indexOf('Map'),
                    y = -1 !== t.indexOf('Weak'),
                    m = v ? 'set' : 'add',
                    g = o[t],
                    b = g && g.prototype,
                    x = g,
                    w = {},
                    S = function (t) {
                        var e = b[t]
                        u(
                            b,
                            t,
                            'add' == t
                                ? function (t) {
                                      return e.call(this, 0 === t ? 0 : t), this
                                  }
                                : 'delete' == t
                                  ? function (t) {
                                        return (
                                            !(y && !f(t)) &&
                                            e.call(this, 0 === t ? 0 : t)
                                        )
                                    }
                                  : 'get' == t
                                    ? function (t) {
                                          return y && !f(t)
                                              ? void 0
                                              : e.call(this, 0 === t ? 0 : t)
                                      }
                                    : 'has' == t
                                      ? function (t) {
                                            return (
                                                !(y && !f(t)) &&
                                                e.call(this, 0 === t ? 0 : t)
                                            )
                                        }
                                      : function (t, n) {
                                            return (
                                                e.call(
                                                    this,
                                                    0 === t ? 0 : t,
                                                    n
                                                ),
                                                this
                                            )
                                        }
                        )
                    }
                if (
                    i(
                        t,
                        'function' != typeof g ||
                            !(
                                y ||
                                (b.forEach &&
                                    !l(function () {
                                        new g().entries().next()
                                    }))
                            )
                    )
                )
                    (x = n.getConstructor(e, t, v, m)), (c.REQUIRED = !0)
                else if (i(t, !0)) {
                    var O = new x(),
                        _ = O[m](y ? {} : -0, 1) != O,
                        E = l(function () {
                            O.has(1)
                        }),
                        T = p(function (t) {
                            new g(t)
                        }),
                        A =
                            !y &&
                            l(function () {
                                for (var t = new g(), e = 5; e--; ) t[m](e, e)
                                return !t.has(-0)
                            })
                    T ||
                        (((x = e(function (e, n) {
                            s(e, x, t)
                            var r = d(new g(), e, x)
                            return null != n && a(n, r[m], r, v), r
                        })).prototype = b),
                        (b.constructor = x)),
                        (E || A) && (S('delete'), S('has'), v && S('get')),
                        (A || _) && S(m),
                        y && b.clear && delete b.clear
                }
                return (
                    (w[t] = x),
                    r({ global: !0, forced: x != g }, w),
                    h(x, t),
                    y || n.setStrong(x, t, v),
                    x
                )
            }
        },
        function (t, e, n) {
            var r = n(5),
                o = n(25),
                i = ''.split
            t.exports = r(function () {
                return !Object('z').propertyIsEnumerable(0)
            })
                ? function (t) {
                      return 'String' == o(t) ? i.call(t, '') : Object(t)
                  }
                : Object
        },
        function (t, e) {
            var n = {}.toString
            t.exports = function (t) {
                return n.call(t).slice(8, -1)
            }
        },
        function (t, e) {
            t.exports = function (t) {
                if (null == t) throw TypeError("Can't call method on " + t)
                return t
            }
        },
        function (t, e, n) {
            var r = n(3)
            t.exports = function (t, e) {
                if (!r(t)) return t
                var n, o
                if (
                    e &&
                    'function' == typeof (n = t.toString) &&
                    !r((o = n.call(t)))
                )
                    return o
                if ('function' == typeof (n = t.valueOf) && !r((o = n.call(t))))
                    return o
                if (
                    !e &&
                    'function' == typeof (n = t.toString) &&
                    !r((o = n.call(t)))
                )
                    return o
                throw TypeError("Can't convert object to primitive value")
            }
        },
        function (t, e, n) {
            var r = n(1),
                o = n(9)
            t.exports = function (t, e) {
                try {
                    o(r, t, e)
                } catch (n) {
                    r[t] = e
                }
                return e
            }
        },
        function (t, e, n) {
            var r = n(53),
                o = n(31),
                i = r('keys')
            t.exports = function (t) {
                return i[t] || (i[t] = o(t))
            }
        },
        function (t, e) {
            t.exports = !1
        },
        function (t, e) {
            var n = 0,
                r = Math.random()
            t.exports = function (t) {
                return (
                    'Symbol(' +
                    String(void 0 === t ? '' : t) +
                    ')_' +
                    (++n + r).toString(36)
                )
            }
        },
        function (t, e, n) {
            var r = n(11),
                o = n(1),
                i = function (t) {
                    return 'function' == typeof t ? t : void 0
                }
            t.exports = function (t, e) {
                return arguments.length < 2
                    ? i(r[t]) || i(o[t])
                    : (r[t] && r[t][e]) || (o[t] && o[t][e])
            }
        },
        function (t, e) {
            var n = Math.ceil,
                r = Math.floor
            t.exports = function (t) {
                return isNaN((t = +t)) ? 0 : (t > 0 ? r : n)(t)
            }
        },
        function (t, e) {
            t.exports = [
                'constructor',
                'hasOwnProperty',
                'isPrototypeOf',
                'propertyIsEnumerable',
                'toLocaleString',
                'toString',
                'valueOf',
            ]
        },
        function (t, e, n) {
            var r = n(8),
                o = n(57),
                i = n(18),
                u = n(20),
                c = n(59),
                a = n(61),
                s = function (t, e) {
                    ;(this.stopped = t), (this.result = e)
                }
            ;(t.exports = function (t, e, n, f, l) {
                var p,
                    h,
                    d,
                    v,
                    y,
                    m,
                    g,
                    b = u(e, n, f ? 2 : 1)
                if (l) p = t
                else {
                    if ('function' != typeof (h = c(t)))
                        throw TypeError('Target is not iterable')
                    if (o(h)) {
                        for (d = 0, v = i(t.length); v > d; d++)
                            if (
                                (y = f ? b(r((g = t[d]))[0], g[1]) : b(t[d])) &&
                                y instanceof s
                            )
                                return y
                        return new s(!1)
                    }
                    p = h.call(t)
                }
                for (m = p.next; !(g = m.call(p)).done; )
                    if (
                        'object' == typeof (y = a(p, b, g.value, f)) &&
                        y &&
                        y instanceof s
                    )
                        return y
                return new s(!1)
            }).stop = function (t) {
                return new s(!0, t)
            }
        },
        function (t, e, n) {
            var r = {}
            ;(r[n(2)('toStringTag')] = 'z'),
                (t.exports = '[object z]' === String(r))
        },
        function (t, e) {
            t.exports = function (t, e, n) {
                if (!(t instanceof e))
                    throw TypeError(
                        'Incorrect ' + (n ? n + ' ' : '') + 'invocation'
                    )
                return t
            }
        },
        function (t, e, n) {
            var r = n(6).f,
                o = n(4),
                i = n(2)('toStringTag')
            t.exports = function (t, e, n) {
                t &&
                    !o((t = n ? t : t.prototype), i) &&
                    r(t, i, { configurable: !0, value: e })
            }
        },
        function (t, e, n) {
            var r,
                o = n(8),
                i = n(81),
                u = n(34),
                c = n(17),
                a = n(82),
                s = n(49),
                f = n(29)('IE_PROTO'),
                l = function () {},
                p = function (t) {
                    return '<script>' + t + '</script>'
                },
                h = function () {
                    try {
                        r = document.domain && new ActiveXObject('htmlfile')
                    } catch (t) {}
                    h = r
                        ? (function (t) {
                              t.write(p('')), t.close()
                              var e = t.parentWindow.Object
                              return (t = null), e
                          })(r)
                        : (function () {
                              var t,
                                  e = s('iframe')
                              return (
                                  (e.style.display = 'none'),
                                  a.appendChild(e),
                                  (e.src = String('javascript:')),
                                  (t = e.contentWindow.document).open(),
                                  t.write(p('document.F=Object')),
                                  t.close(),
                                  t.F
                              )
                          })()
                    for (var t = u.length; t--; ) delete h.prototype[u[t]]
                    return h()
                }
            ;(c[f] = !0),
                (t.exports =
                    Object.create ||
                    function (t, e) {
                        var n
                        return (
                            null !== t
                                ? ((l.prototype = o(t)),
                                  (n = new l()),
                                  (l.prototype = null),
                                  (n[f] = t))
                                : (n = h()),
                            void 0 === e ? n : i(n, e)
                        )
                    })
        },
        function (t, e, n) {
            var r = n(12)
            t.exports = function (t, e, n) {
                for (var o in e) r(t, o, e[o], n)
                return t
            }
        },
        function (t, e, n) {
            'use strict'
            var r = n(14),
                o = n(83),
                i = n(67),
                u = n(63),
                c = n(38),
                a = n(9),
                s = n(12),
                f = n(2),
                l = n(30),
                p = n(13),
                h = n(66),
                d = h.IteratorPrototype,
                v = h.BUGGY_SAFARI_ITERATORS,
                y = f('iterator'),
                m = function () {
                    return this
                }
            t.exports = function (t, e, n, f, h, g, b) {
                o(n, e, f)
                var x,
                    w,
                    S,
                    O = function (t) {
                        if (t === h && j) return j
                        if (!v && t in T) return T[t]
                        switch (t) {
                            case 'keys':
                            case 'values':
                            case 'entries':
                                return function () {
                                    return new n(this, t)
                                }
                        }
                        return function () {
                            return new n(this)
                        }
                    },
                    _ = e + ' Iterator',
                    E = !1,
                    T = t.prototype,
                    A = T[y] || T['@@iterator'] || (h && T[h]),
                    j = (!v && A) || O(h),
                    P = ('Array' == e && T.entries) || A
                if (
                    (P &&
                        ((x = i(P.call(new t()))),
                        d !== Object.prototype &&
                            x.next &&
                            (l ||
                                i(x) === d ||
                                (u
                                    ? u(x, d)
                                    : 'function' != typeof x[y] && a(x, y, m)),
                            c(x, _, !0, !0),
                            l && (p[_] = m))),
                    'values' == h &&
                        A &&
                        'values' !== A.name &&
                        ((E = !0),
                        (j = function () {
                            return A.call(this)
                        })),
                    (l && !b) || T[y] === j || a(T, y, j),
                    (p[e] = j),
                    h)
                )
                    if (
                        ((w = {
                            values: O('values'),
                            keys: g ? j : O('keys'),
                            entries: O('entries'),
                        }),
                        b)
                    )
                        for (S in w) (!v && !E && S in T) || s(T, S, w[S])
                    else r({ target: e, proto: !0, forced: v || E }, w)
                return w
            }
        },
        function (t, e, n) {
            var r = n(36),
                o = n(12),
                i = n(86)
            r || o(Object.prototype, 'toString', i, { unsafe: !0 })
        },
        function (t, e, n) {
            'use strict'
            var r = n(87).charAt,
                o = n(10),
                i = n(41),
                u = o.set,
                c = o.getterFor('String Iterator')
            i(
                String,
                'String',
                function (t) {
                    u(this, {
                        type: 'String Iterator',
                        string: String(t),
                        index: 0,
                    })
                },
                function () {
                    var t,
                        e = c(this),
                        n = e.string,
                        o = e.index
                    return o >= n.length
                        ? { value: void 0, done: !0 }
                        : ((t = r(n, o)),
                          (e.index += t.length),
                          { value: t, done: !1 })
                }
            )
        },
        function (t, e, n) {
            var r = n(1),
                o = n(88),
                i = n(89),
                u = n(9),
                c = n(2),
                a = c('iterator'),
                s = c('toStringTag'),
                f = i.values
            for (var l in o) {
                var p = r[l],
                    h = p && p.prototype
                if (h) {
                    if (h[a] !== f)
                        try {
                            u(h, a, f)
                        } catch (t) {
                            h[a] = f
                        }
                    if ((h[s] || u(h, s, l), o[l]))
                        for (var d in i)
                            if (h[d] !== i[d])
                                try {
                                    u(h, d, i[d])
                                } catch (t) {
                                    h[d] = i[d]
                                }
                }
            }
        },
        function (t, e) {
            var n
            n = (function () {
                return this
            })()
            try {
                n = n || new Function('return this')()
            } catch (t) {
                'object' == typeof window && (n = window)
            }
            t.exports = n
        },
        function (t, e, n) {
            var r = n(7),
                o = n(47),
                i = n(15),
                u = n(16),
                c = n(27),
                a = n(4),
                s = n(48),
                f = Object.getOwnPropertyDescriptor
            e.f = r
                ? f
                : function (t, e) {
                      if (((t = u(t)), (e = c(e, !0)), s))
                          try {
                              return f(t, e)
                          } catch (t) {}
                      if (a(t, e)) return i(!o.f.call(t, e), t[e])
                  }
        },
        function (t, e, n) {
            'use strict'
            var r = {}.propertyIsEnumerable,
                o = Object.getOwnPropertyDescriptor,
                i = o && !r.call({ 1: 2 }, 1)
            e.f = i
                ? function (t) {
                      var e = o(this, t)
                      return !!e && e.enumerable
                  }
                : r
        },
        function (t, e, n) {
            var r = n(7),
                o = n(5),
                i = n(49)
            t.exports =
                !r &&
                !o(function () {
                    return (
                        7 !=
                        Object.defineProperty(i('div'), 'a', {
                            get: function () {
                                return 7
                            },
                        }).a
                    )
                })
        },
        function (t, e, n) {
            var r = n(1),
                o = n(3),
                i = r.document,
                u = o(i) && o(i.createElement)
            t.exports = function (t) {
                return u ? i.createElement(t) : {}
            }
        },
        function (t, e, n) {
            var r = n(51),
                o = Function.toString
            'function' != typeof r.inspectSource &&
                (r.inspectSource = function (t) {
                    return o.call(t)
                }),
                (t.exports = r.inspectSource)
        },
        function (t, e, n) {
            var r = n(1),
                o = n(28),
                i = r['__core-js_shared__'] || o('__core-js_shared__', {})
            t.exports = i
        },
        function (t, e, n) {
            var r = n(1),
                o = n(50),
                i = r.WeakMap
            t.exports = 'function' == typeof i && /native code/.test(o(i))
        },
        function (t, e, n) {
            var r = n(30),
                o = n(51)
            ;(t.exports = function (t, e) {
                return o[t] || (o[t] = void 0 !== e ? e : {})
            })('versions', []).push({
                version: '3.6.4',
                mode: r ? 'pure' : 'global',
                copyright: '© 2020 Denis Pushkarev (zloirock.ru)',
            })
        },
        function (t, e, n) {
            var r = n(4),
                o = n(16),
                i = n(74).indexOf,
                u = n(17)
            t.exports = function (t, e) {
                var n,
                    c = o(t),
                    a = 0,
                    s = []
                for (n in c) !r(u, n) && r(c, n) && s.push(n)
                for (; e.length > a; )
                    r(c, (n = e[a++])) && (~i(s, n) || s.push(n))
                return s
            }
        },
        function (t, e) {
            e.f = Object.getOwnPropertySymbols
        },
        function (t, e, n) {
            var r = n(5),
                o = /#|\.prototype\./,
                i = function (t, e) {
                    var n = c[u(t)]
                    return (
                        n == s ||
                        (n != a && ('function' == typeof e ? r(e) : !!e))
                    )
                },
                u = (i.normalize = function (t) {
                    return String(t).replace(o, '.').toLowerCase()
                }),
                c = (i.data = {}),
                a = (i.NATIVE = 'N'),
                s = (i.POLYFILL = 'P')
            t.exports = i
        },
        function (t, e, n) {
            var r = n(2),
                o = n(13),
                i = r('iterator'),
                u = Array.prototype
            t.exports = function (t) {
                return void 0 !== t && (o.Array === t || u[i] === t)
            }
        },
        function (t, e, n) {
            var r = n(5)
            t.exports =
                !!Object.getOwnPropertySymbols &&
                !r(function () {
                    return !String(Symbol())
                })
        },
        function (t, e, n) {
            var r = n(60),
                o = n(13),
                i = n(2)('iterator')
            t.exports = function (t) {
                if (null != t) return t[i] || t['@@iterator'] || o[r(t)]
            }
        },
        function (t, e, n) {
            var r = n(36),
                o = n(25),
                i = n(2)('toStringTag'),
                u =
                    'Arguments' ==
                    o(
                        (function () {
                            return arguments
                        })()
                    )
            t.exports = r
                ? o
                : function (t) {
                      var e, n, r
                      return void 0 === t
                          ? 'Undefined'
                          : null === t
                            ? 'Null'
                            : 'string' ==
                                typeof (n = (function (t, e) {
                                    try {
                                        return t[e]
                                    } catch (t) {}
                                })((e = Object(t)), i))
                              ? n
                              : u
                                ? o(e)
                                : 'Object' == (r = o(e)) &&
                                    'function' == typeof e.callee
                                  ? 'Arguments'
                                  : r
                  }
        },
        function (t, e, n) {
            var r = n(8)
            t.exports = function (t, e, n, o) {
                try {
                    return o ? e(r(n)[0], n[1]) : e(n)
                } catch (e) {
                    var i = t.return
                    throw (void 0 !== i && r(i.call(t)), e)
                }
            }
        },
        function (t, e, n) {
            var r = n(2)('iterator'),
                o = !1
            try {
                var i = 0,
                    u = {
                        next: function () {
                            return { done: !!i++ }
                        },
                        return: function () {
                            o = !0
                        },
                    }
                ;(u[r] = function () {
                    return this
                }),
                    Array.from(u, function () {
                        throw 2
                    })
            } catch (t) {}
            t.exports = function (t, e) {
                if (!e && !o) return !1
                var n = !1
                try {
                    var i = {}
                    ;(i[r] = function () {
                        return {
                            next: function () {
                                return { done: (n = !0) }
                            },
                        }
                    }),
                        t(i)
                } catch (t) {}
                return n
            }
        },
        function (t, e, n) {
            var r = n(8),
                o = n(80)
            t.exports =
                Object.setPrototypeOf ||
                ('__proto__' in {}
                    ? (function () {
                          var t,
                              e = !1,
                              n = {}
                          try {
                              ;(t = Object.getOwnPropertyDescriptor(
                                  Object.prototype,
                                  '__proto__'
                              ).set).call(n, []),
                                  (e = n instanceof Array)
                          } catch (t) {}
                          return function (n, i) {
                              return (
                                  r(n),
                                  o(i),
                                  e ? t.call(n, i) : (n.__proto__ = i),
                                  n
                              )
                          }
                      })()
                    : void 0)
        },
        function (t, e, n) {
            'use strict'
            var r = n(6).f,
                o = n(39),
                i = n(40),
                u = n(20),
                c = n(37),
                a = n(35),
                s = n(41),
                f = n(85),
                l = n(7),
                p = n(19).fastKey,
                h = n(10),
                d = h.set,
                v = h.getterFor
            t.exports = {
                getConstructor: function (t, e, n, s) {
                    var f = t(function (t, r) {
                            c(t, f, e),
                                d(t, {
                                    type: e,
                                    index: o(null),
                                    first: void 0,
                                    last: void 0,
                                    size: 0,
                                }),
                                l || (t.size = 0),
                                null != r && a(r, t[s], t, n)
                        }),
                        h = v(e),
                        y = function (t, e, n) {
                            var r,
                                o,
                                i = h(t),
                                u = m(t, e)
                            return (
                                u
                                    ? (u.value = n)
                                    : ((i.last = u =
                                          {
                                              index: (o = p(e, !0)),
                                              key: e,
                                              value: n,
                                              previous: (r = i.last),
                                              next: void 0,
                                              removed: !1,
                                          }),
                                      i.first || (i.first = u),
                                      r && (r.next = u),
                                      l ? i.size++ : t.size++,
                                      'F' !== o && (i.index[o] = u)),
                                t
                            )
                        },
                        m = function (t, e) {
                            var n,
                                r = h(t),
                                o = p(e)
                            if ('F' !== o) return r.index[o]
                            for (n = r.first; n; n = n.next)
                                if (n.key == e) return n
                        }
                    return (
                        i(f.prototype, {
                            clear: function () {
                                for (
                                    var t = h(this), e = t.index, n = t.first;
                                    n;

                                )
                                    (n.removed = !0),
                                        n.previous &&
                                            (n.previous = n.previous.next =
                                                void 0),
                                        delete e[n.index],
                                        (n = n.next)
                                ;(t.first = t.last = void 0),
                                    l ? (t.size = 0) : (this.size = 0)
                            },
                            delete: function (t) {
                                var e = h(this),
                                    n = m(this, t)
                                if (n) {
                                    var r = n.next,
                                        o = n.previous
                                    delete e.index[n.index],
                                        (n.removed = !0),
                                        o && (o.next = r),
                                        r && (r.previous = o),
                                        e.first == n && (e.first = r),
                                        e.last == n && (e.last = o),
                                        l ? e.size-- : this.size--
                                }
                                return !!n
                            },
                            forEach: function (t) {
                                for (
                                    var e,
                                        n = h(this),
                                        r = u(
                                            t,
                                            arguments.length > 1
                                                ? arguments[1]
                                                : void 0,
                                            3
                                        );
                                    (e = e ? e.next : n.first);

                                )
                                    for (
                                        r(e.value, e.key, this);
                                        e && e.removed;

                                    )
                                        e = e.previous
                            },
                            has: function (t) {
                                return !!m(this, t)
                            },
                        }),
                        i(
                            f.prototype,
                            n
                                ? {
                                      get: function (t) {
                                          var e = m(this, t)
                                          return e && e.value
                                      },
                                      set: function (t, e) {
                                          return y(this, 0 === t ? 0 : t, e)
                                      },
                                  }
                                : {
                                      add: function (t) {
                                          return y(
                                              this,
                                              (t = 0 === t ? 0 : t),
                                              t
                                          )
                                      },
                                  }
                        ),
                        l &&
                            r(f.prototype, 'size', {
                                get: function () {
                                    return h(this).size
                                },
                            }),
                        f
                    )
                },
                setStrong: function (t, e, n) {
                    var r = e + ' Iterator',
                        o = v(e),
                        i = v(r)
                    s(
                        t,
                        e,
                        function (t, e) {
                            d(this, {
                                type: r,
                                target: t,
                                state: o(t),
                                kind: e,
                                last: void 0,
                            })
                        },
                        function () {
                            for (
                                var t = i(this), e = t.kind, n = t.last;
                                n && n.removed;

                            )
                                n = n.previous
                            return t.target &&
                                (t.last = n = n ? n.next : t.state.first)
                                ? 'keys' == e
                                    ? { value: n.key, done: !1 }
                                    : 'values' == e
                                      ? { value: n.value, done: !1 }
                                      : { value: [n.key, n.value], done: !1 }
                                : ((t.target = void 0),
                                  { value: void 0, done: !0 })
                        },
                        n ? 'entries' : 'values',
                        !n,
                        !0
                    ),
                        f(e)
                },
            }
        },
        function (t, e, n) {
            var r = n(54),
                o = n(34)
            t.exports =
                Object.keys ||
                function (t) {
                    return r(t, o)
                }
        },
        function (t, e, n) {
            'use strict'
            var r,
                o,
                i,
                u = n(67),
                c = n(9),
                a = n(4),
                s = n(2),
                f = n(30),
                l = s('iterator'),
                p = !1
            ;[].keys &&
                ('next' in (i = [].keys())
                    ? (o = u(u(i))) !== Object.prototype && (r = o)
                    : (p = !0)),
                null == r && (r = {}),
                f ||
                    a(r, l) ||
                    c(r, l, function () {
                        return this
                    }),
                (t.exports = {
                    IteratorPrototype: r,
                    BUGGY_SAFARI_ITERATORS: p,
                })
        },
        function (t, e, n) {
            var r = n(4),
                o = n(21),
                i = n(29),
                u = n(84),
                c = i('IE_PROTO'),
                a = Object.prototype
            t.exports = u
                ? Object.getPrototypeOf
                : function (t) {
                      return (
                          (t = o(t)),
                          r(t, c)
                              ? t[c]
                              : 'function' == typeof t.constructor &&
                                  t instanceof t.constructor
                                ? t.constructor.prototype
                                : t instanceof Object
                                  ? a
                                  : null
                      )
                  }
        },
        function (t, e, n) {
            t.exports = n(106)
        },
        function (t, e, n) {
            n(70), n(42), n(43), n(44)
            var r = n(11)
            t.exports = r.Map
        },
        function (t, e, n) {
            'use strict'
            var r = n(23),
                o = n(64)
            t.exports = r(
                'Map',
                function (t) {
                    return function () {
                        return t(this, arguments.length ? arguments[0] : void 0)
                    }
                },
                o
            )
        },
        function (t, e, n) {
            var r = n(4),
                o = n(72),
                i = n(46),
                u = n(6)
            t.exports = function (t, e) {
                for (var n = o(e), c = u.f, a = i.f, s = 0; s < n.length; s++) {
                    var f = n[s]
                    r(t, f) || c(t, f, a(e, f))
                }
            }
        },
        function (t, e, n) {
            var r = n(32),
                o = n(73),
                i = n(55),
                u = n(8)
            t.exports =
                r('Reflect', 'ownKeys') ||
                function (t) {
                    var e = o.f(u(t)),
                        n = i.f
                    return n ? e.concat(n(t)) : e
                }
        },
        function (t, e, n) {
            var r = n(54),
                o = n(34).concat('length', 'prototype')
            e.f =
                Object.getOwnPropertyNames ||
                function (t) {
                    return r(t, o)
                }
        },
        function (t, e, n) {
            var r = n(16),
                o = n(18),
                i = n(75),
                u = function (t) {
                    return function (e, n, u) {
                        var c,
                            a = r(e),
                            s = o(a.length),
                            f = i(u, s)
                        if (t && n != n) {
                            for (; s > f; ) if ((c = a[f++]) != c) return !0
                        } else
                            for (; s > f; f++)
                                if ((t || f in a) && a[f] === n)
                                    return t || f || 0
                        return !t && -1
                    }
                }
            t.exports = { includes: u(!0), indexOf: u(!1) }
        },
        function (t, e, n) {
            var r = n(33),
                o = Math.max,
                i = Math.min
            t.exports = function (t, e) {
                var n = r(t)
                return n < 0 ? o(n + e, 0) : i(n, e)
            }
        },
        function (t, e, n) {
            var r = n(5)
            t.exports = !r(function () {
                return Object.isExtensible(Object.preventExtensions({}))
            })
        },
        function (t, e, n) {
            var r = n(58)
            t.exports = r && !Symbol.sham && 'symbol' == typeof Symbol.iterator
        },
        function (t, e) {
            t.exports = function (t) {
                if ('function' != typeof t)
                    throw TypeError(String(t) + ' is not a function')
                return t
            }
        },
        function (t, e, n) {
            var r = n(3),
                o = n(63)
            t.exports = function (t, e, n) {
                var i, u
                return (
                    o &&
                        'function' == typeof (i = e.constructor) &&
                        i !== n &&
                        r((u = i.prototype)) &&
                        u !== n.prototype &&
                        o(t, u),
                    t
                )
            }
        },
        function (t, e, n) {
            var r = n(3)
            t.exports = function (t) {
                if (!r(t) && null !== t)
                    throw TypeError(
                        "Can't set " + String(t) + ' as a prototype'
                    )
                return t
            }
        },
        function (t, e, n) {
            var r = n(7),
                o = n(6),
                i = n(8),
                u = n(65)
            t.exports = r
                ? Object.defineProperties
                : function (t, e) {
                      i(t)
                      for (var n, r = u(e), c = r.length, a = 0; c > a; )
                          o.f(t, (n = r[a++]), e[n])
                      return t
                  }
        },
        function (t, e, n) {
            var r = n(32)
            t.exports = r('document', 'documentElement')
        },
        function (t, e, n) {
            'use strict'
            var r = n(66).IteratorPrototype,
                o = n(39),
                i = n(15),
                u = n(38),
                c = n(13),
                a = function () {
                    return this
                }
            t.exports = function (t, e, n) {
                var s = e + ' Iterator'
                return (
                    (t.prototype = o(r, { next: i(1, n) })),
                    u(t, s, !1, !0),
                    (c[s] = a),
                    t
                )
            }
        },
        function (t, e, n) {
            var r = n(5)
            t.exports = !r(function () {
                function t() {}
                return (
                    (t.prototype.constructor = null),
                    Object.getPrototypeOf(new t()) !== t.prototype
                )
            })
        },
        function (t, e, n) {
            'use strict'
            var r = n(32),
                o = n(6),
                i = n(2),
                u = n(7),
                c = i('species')
            t.exports = function (t) {
                var e = r(t),
                    n = o.f
                u &&
                    e &&
                    !e[c] &&
                    n(e, c, {
                        configurable: !0,
                        get: function () {
                            return this
                        },
                    })
            }
        },
        function (t, e, n) {
            'use strict'
            var r = n(36),
                o = n(60)
            t.exports = r
                ? {}.toString
                : function () {
                      return '[object ' + o(this) + ']'
                  }
        },
        function (t, e, n) {
            var r = n(33),
                o = n(26),
                i = function (t) {
                    return function (e, n) {
                        var i,
                            u,
                            c = String(o(e)),
                            a = r(n),
                            s = c.length
                        return a < 0 || a >= s
                            ? t
                                ? ''
                                : void 0
                            : (i = c.charCodeAt(a)) < 55296 ||
                                i > 56319 ||
                                a + 1 === s ||
                                (u = c.charCodeAt(a + 1)) < 56320 ||
                                u > 57343
                              ? t
                                  ? c.charAt(a)
                                  : i
                              : t
                                ? c.slice(a, a + 2)
                                : u - 56320 + ((i - 55296) << 10) + 65536
                    }
                }
            t.exports = { codeAt: i(!1), charAt: i(!0) }
        },
        function (t, e) {
            t.exports = {
                CSSRuleList: 0,
                CSSStyleDeclaration: 0,
                CSSValueList: 0,
                ClientRectList: 0,
                DOMRectList: 0,
                DOMStringList: 0,
                DOMTokenList: 1,
                DataTransferItemList: 0,
                FileList: 0,
                HTMLAllCollection: 0,
                HTMLCollection: 0,
                HTMLFormElement: 0,
                HTMLSelectElement: 0,
                MediaList: 0,
                MimeTypeArray: 0,
                NamedNodeMap: 0,
                NodeList: 1,
                PaintRequestList: 0,
                Plugin: 0,
                PluginArray: 0,
                SVGLengthList: 0,
                SVGNumberList: 0,
                SVGPathSegList: 0,
                SVGPointList: 0,
                SVGStringList: 0,
                SVGTransformList: 0,
                SourceBufferList: 0,
                StyleSheetList: 0,
                TextTrackCueList: 0,
                TextTrackList: 0,
                TouchList: 0,
            }
        },
        function (t, e, n) {
            'use strict'
            var r = n(16),
                o = n(90),
                i = n(13),
                u = n(10),
                c = n(41),
                a = u.set,
                s = u.getterFor('Array Iterator')
            ;(t.exports = c(
                Array,
                'Array',
                function (t, e) {
                    a(this, {
                        type: 'Array Iterator',
                        target: r(t),
                        index: 0,
                        kind: e,
                    })
                },
                function () {
                    var t = s(this),
                        e = t.target,
                        n = t.kind,
                        r = t.index++
                    return !e || r >= e.length
                        ? ((t.target = void 0), { value: void 0, done: !0 })
                        : 'keys' == n
                          ? { value: r, done: !1 }
                          : 'values' == n
                            ? { value: e[r], done: !1 }
                            : { value: [r, e[r]], done: !1 }
                },
                'values'
            )),
                (i.Arguments = i.Array),
                o('keys'),
                o('values'),
                o('entries')
        },
        function (t, e, n) {
            var r = n(2),
                o = n(39),
                i = n(6),
                u = r('unscopables'),
                c = Array.prototype
            null == c[u] && i.f(c, u, { configurable: !0, value: o(null) }),
                (t.exports = function (t) {
                    c[u][t] = !0
                })
        },
        function (t, e, n) {
            n(92), n(42), n(43), n(44)
            var r = n(11)
            t.exports = r.Set
        },
        function (t, e, n) {
            'use strict'
            var r = n(23),
                o = n(64)
            t.exports = r(
                'Set',
                function (t) {
                    return function () {
                        return t(this, arguments.length ? arguments[0] : void 0)
                    }
                },
                o
            )
        },
        function (t, e, n) {
            n(42), n(94), n(44)
            var r = n(11)
            t.exports = r.WeakMap
        },
        function (t, e, n) {
            'use strict'
            var r,
                o = n(1),
                i = n(40),
                u = n(19),
                c = n(23),
                a = n(95),
                s = n(3),
                f = n(10).enforce,
                l = n(52),
                p = !o.ActiveXObject && 'ActiveXObject' in o,
                h = Object.isExtensible,
                d = function (t) {
                    return function () {
                        return t(this, arguments.length ? arguments[0] : void 0)
                    }
                },
                v = (t.exports = c('WeakMap', d, a))
            if (l && p) {
                ;(r = a.getConstructor(d, 'WeakMap', !0)), (u.REQUIRED = !0)
                var y = v.prototype,
                    m = y.delete,
                    g = y.has,
                    b = y.get,
                    x = y.set
                i(y, {
                    delete: function (t) {
                        if (s(t) && !h(t)) {
                            var e = f(this)
                            return (
                                e.frozen || (e.frozen = new r()),
                                m.call(this, t) || e.frozen.delete(t)
                            )
                        }
                        return m.call(this, t)
                    },
                    has: function (t) {
                        if (s(t) && !h(t)) {
                            var e = f(this)
                            return (
                                e.frozen || (e.frozen = new r()),
                                g.call(this, t) || e.frozen.has(t)
                            )
                        }
                        return g.call(this, t)
                    },
                    get: function (t) {
                        if (s(t) && !h(t)) {
                            var e = f(this)
                            return (
                                e.frozen || (e.frozen = new r()),
                                g.call(this, t)
                                    ? b.call(this, t)
                                    : e.frozen.get(t)
                            )
                        }
                        return b.call(this, t)
                    },
                    set: function (t, e) {
                        if (s(t) && !h(t)) {
                            var n = f(this)
                            n.frozen || (n.frozen = new r()),
                                g.call(this, t)
                                    ? x.call(this, t, e)
                                    : n.frozen.set(t, e)
                        } else x.call(this, t, e)
                        return this
                    },
                })
            }
        },
        function (t, e, n) {
            'use strict'
            var r = n(40),
                o = n(19).getWeakData,
                i = n(8),
                u = n(3),
                c = n(37),
                a = n(35),
                s = n(96),
                f = n(4),
                l = n(10),
                p = l.set,
                h = l.getterFor,
                d = s.find,
                v = s.findIndex,
                y = 0,
                m = function (t) {
                    return t.frozen || (t.frozen = new g())
                },
                g = function () {
                    this.entries = []
                },
                b = function (t, e) {
                    return d(t.entries, function (t) {
                        return t[0] === e
                    })
                }
            ;(g.prototype = {
                get: function (t) {
                    var e = b(this, t)
                    if (e) return e[1]
                },
                has: function (t) {
                    return !!b(this, t)
                },
                set: function (t, e) {
                    var n = b(this, t)
                    n ? (n[1] = e) : this.entries.push([t, e])
                },
                delete: function (t) {
                    var e = v(this.entries, function (e) {
                        return e[0] === t
                    })
                    return ~e && this.entries.splice(e, 1), !!~e
                },
            }),
                (t.exports = {
                    getConstructor: function (t, e, n, s) {
                        var l = t(function (t, r) {
                                c(t, l, e),
                                    p(t, { type: e, id: y++, frozen: void 0 }),
                                    null != r && a(r, t[s], t, n)
                            }),
                            d = h(e),
                            v = function (t, e, n) {
                                var r = d(t),
                                    u = o(i(e), !0)
                                return (
                                    !0 === u ? m(r).set(e, n) : (u[r.id] = n), t
                                )
                            }
                        return (
                            r(l.prototype, {
                                delete: function (t) {
                                    var e = d(this)
                                    if (!u(t)) return !1
                                    var n = o(t)
                                    return !0 === n
                                        ? m(e).delete(t)
                                        : n && f(n, e.id) && delete n[e.id]
                                },
                                has: function (t) {
                                    var e = d(this)
                                    if (!u(t)) return !1
                                    var n = o(t)
                                    return !0 === n
                                        ? m(e).has(t)
                                        : n && f(n, e.id)
                                },
                            }),
                            r(
                                l.prototype,
                                n
                                    ? {
                                          get: function (t) {
                                              var e = d(this)
                                              if (u(t)) {
                                                  var n = o(t)
                                                  return !0 === n
                                                      ? m(e).get(t)
                                                      : n
                                                        ? n[e.id]
                                                        : void 0
                                              }
                                          },
                                          set: function (t, e) {
                                              return v(this, t, e)
                                          },
                                      }
                                    : {
                                          add: function (t) {
                                              return v(this, t, !0)
                                          },
                                      }
                            ),
                            l
                        )
                    },
                })
        },
        function (t, e, n) {
            var r = n(20),
                o = n(24),
                i = n(21),
                u = n(18),
                c = n(97),
                a = [].push,
                s = function (t) {
                    var e = 1 == t,
                        n = 2 == t,
                        s = 3 == t,
                        f = 4 == t,
                        l = 6 == t,
                        p = 5 == t || l
                    return function (h, d, v, y) {
                        for (
                            var m,
                                g,
                                b = i(h),
                                x = o(b),
                                w = r(d, v, 3),
                                S = u(x.length),
                                O = 0,
                                _ = y || c,
                                E = e ? _(h, S) : n ? _(h, 0) : void 0;
                            S > O;
                            O++
                        )
                            if ((p || O in x) && ((g = w((m = x[O]), O, b)), t))
                                if (e) E[O] = g
                                else if (g)
                                    switch (t) {
                                        case 3:
                                            return !0
                                        case 5:
                                            return m
                                        case 6:
                                            return O
                                        case 2:
                                            a.call(E, m)
                                    }
                                else if (f) return !1
                        return l ? -1 : s || f ? f : E
                    }
                }
            t.exports = {
                forEach: s(0),
                map: s(1),
                filter: s(2),
                some: s(3),
                every: s(4),
                find: s(5),
                findIndex: s(6),
            }
        },
        function (t, e, n) {
            var r = n(3),
                o = n(98),
                i = n(2)('species')
            t.exports = function (t, e) {
                var n
                return (
                    o(t) &&
                        ('function' != typeof (n = t.constructor) ||
                        (n !== Array && !o(n.prototype))
                            ? r(n) && null === (n = n[i]) && (n = void 0)
                            : (n = void 0)),
                    new (void 0 === n ? Array : n)(0 === e ? 0 : e)
                )
            }
        },
        function (t, e, n) {
            var r = n(25)
            t.exports =
                Array.isArray ||
                function (t) {
                    return 'Array' == r(t)
                }
        },
        function (t, e, n) {
            n(43), n(100)
            var r = n(11)
            t.exports = r.Array.from
        },
        function (t, e, n) {
            var r = n(14),
                o = n(101)
            r(
                {
                    target: 'Array',
                    stat: !0,
                    forced: !n(62)(function (t) {
                        Array.from(t)
                    }),
                },
                { from: o }
            )
        },
        function (t, e, n) {
            'use strict'
            var r = n(20),
                o = n(21),
                i = n(61),
                u = n(57),
                c = n(18),
                a = n(102),
                s = n(59)
            t.exports = function (t) {
                var e,
                    n,
                    f,
                    l,
                    p,
                    h,
                    d = o(t),
                    v = 'function' == typeof this ? this : Array,
                    y = arguments.length,
                    m = y > 1 ? arguments[1] : void 0,
                    g = void 0 !== m,
                    b = s(d),
                    x = 0
                if (
                    (g && (m = r(m, y > 2 ? arguments[2] : void 0, 2)),
                    null == b || (v == Array && u(b)))
                )
                    for (n = new v((e = c(d.length))); e > x; x++)
                        (h = g ? m(d[x], x) : d[x]), a(n, x, h)
                else
                    for (
                        p = (l = b.call(d)).next, n = new v();
                        !(f = p.call(l)).done;
                        x++
                    )
                        (h = g ? i(l, m, [f.value, x], !0) : f.value),
                            a(n, x, h)
                return (n.length = x), n
            }
        },
        function (t, e, n) {
            'use strict'
            var r = n(27),
                o = n(6),
                i = n(15)
            t.exports = function (t, e, n) {
                var u = r(e)
                u in t ? o.f(t, u, i(0, n)) : (t[u] = n)
            }
        },
        function (t, e, n) {
            n(104)
            var r = n(11)
            t.exports = r.Object.assign
        },
        function (t, e, n) {
            var r = n(14),
                o = n(105)
            r(
                { target: 'Object', stat: !0, forced: Object.assign !== o },
                { assign: o }
            )
        },
        function (t, e, n) {
            'use strict'
            var r = n(7),
                o = n(5),
                i = n(65),
                u = n(55),
                c = n(47),
                a = n(21),
                s = n(24),
                f = Object.assign,
                l = Object.defineProperty
            t.exports =
                !f ||
                o(function () {
                    if (
                        r &&
                        1 !==
                            f(
                                { b: 1 },
                                f(
                                    l({}, 'a', {
                                        enumerable: !0,
                                        get: function () {
                                            l(this, 'b', {
                                                value: 3,
                                                enumerable: !1,
                                            })
                                        },
                                    }),
                                    { b: 2 }
                                )
                            ).b
                    )
                        return !0
                    var t = {},
                        e = {},
                        n = Symbol()
                    return (
                        (t[n] = 7),
                        'abcdefghijklmnopqrst'.split('').forEach(function (t) {
                            e[t] = t
                        }),
                        7 != f({}, t)[n] ||
                            'abcdefghijklmnopqrst' != i(f({}, e)).join('')
                    )
                })
                    ? function (t, e) {
                          for (
                              var n = a(t),
                                  o = arguments.length,
                                  f = 1,
                                  l = u.f,
                                  p = c.f;
                              o > f;

                          )
                              for (
                                  var h,
                                      d = s(arguments[f++]),
                                      v = l ? i(d).concat(l(d)) : i(d),
                                      y = v.length,
                                      m = 0;
                                  y > m;

                              )
                                  (h = v[m++]),
                                      (r && !p.call(d, h)) || (n[h] = d[h])
                          return n
                      }
                    : f
        },
        function (t, e, n) {
            'use strict'
            n.r(e)
            var r = {}
            n.r(r),
                n.d(r, 'keyboardHandler', function () {
                    return R
                }),
                n.d(r, 'mouseHandler', function () {
                    return C
                }),
                n.d(r, 'resizeHandler', function () {
                    return F
                }),
                n.d(r, 'selectHandler', function () {
                    return H
                }),
                n.d(r, 'touchHandler', function () {
                    return W
                }),
                n.d(r, 'wheelHandler', function () {
                    return B
                })
            /*! *****************************************************************************
    Copyright (c) Microsoft Corporation. All rights reserved.
    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
    this file except in compliance with the License. You may obtain a copy of the
    License at http://www.apache.org/licenses/LICENSE-2.0
    
    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
    MERCHANTABLITY OR NON-INFRINGEMENT.
    
    See the Apache Version 2.0 License for specific language governing permissions
    and limitations under the License.
    ***************************************************************************** */
            var o = function (t, e) {
                    return (o =
                        Object.setPrototypeOf ||
                        ({ __proto__: [] } instanceof Array &&
                            function (t, e) {
                                t.__proto__ = e
                            }) ||
                        function (t, e) {
                            for (var n in e)
                                e.hasOwnProperty(n) && (t[n] = e[n])
                        })(t, e)
                },
                i = function () {
                    return (i =
                        Object.assign ||
                        function (t) {
                            for (var e, n = 1, r = arguments.length; n < r; n++)
                                for (var o in (e = arguments[n]))
                                    Object.prototype.hasOwnProperty.call(
                                        e,
                                        o
                                    ) && (t[o] = e[o])
                            return t
                        }).apply(this, arguments)
                }
            function u(t, e, n, r) {
                var o,
                    i = arguments.length,
                    u =
                        i < 3
                            ? e
                            : null === r
                              ? (r = Object.getOwnPropertyDescriptor(e, n))
                              : r
                if (
                    'object' == typeof Reflect &&
                    'function' == typeof Reflect.decorate
                )
                    u = Reflect.decorate(t, e, n, r)
                else
                    for (var c = t.length - 1; c >= 0; c--)
                        (o = t[c]) &&
                            (u =
                                (i < 3 ? o(u) : i > 3 ? o(e, n, u) : o(e, n)) ||
                                u)
                return i > 3 && u && Object.defineProperty(e, n, u), u
            }
            n(69), n(91), n(93), n(99), n(103)
            var c = n(0),
                a = n.n(c)
            function s(t, e) {
                return (
                    void 0 === t && (t = -1 / 0),
                    void 0 === e && (e = 1 / 0),
                    function (n, r) {
                        var o = '_' + r
                        Object.defineProperty(n, r, {
                            get: function () {
                                return this[o]
                            },
                            set: function (n) {
                                Object.defineProperty(this, o, {
                                    value: a()(n, t, e),
                                    enumerable: !1,
                                    writable: !0,
                                    configurable: !0,
                                })
                            },
                            enumerable: !0,
                            configurable: !0,
                        })
                    }
                )
            }
            function f(t, e) {
                var n = '_' + e
                Object.defineProperty(t, e, {
                    get: function () {
                        return this[n]
                    },
                    set: function (t) {
                        Object.defineProperty(this, n, {
                            value: !!t,
                            enumerable: !1,
                            writable: !0,
                            configurable: !0,
                        })
                    },
                    enumerable: !0,
                    configurable: !0,
                })
            }
            var l = n(22),
                p = n.n(l)
            function h() {
                for (var t = [], e = 0; e < arguments.length; e++)
                    t[e] = arguments[e]
                return function (e, n, r) {
                    var o = r.value
                    return {
                        get: function () {
                            return (
                                this.hasOwnProperty(n) ||
                                    Object.defineProperty(this, n, {
                                        value: p.a.apply(
                                            void 0,
                                            (function () {
                                                for (
                                                    var t = 0,
                                                        e = 0,
                                                        n = arguments.length;
                                                    e < n;
                                                    e++
                                                )
                                                    t += arguments[e].length
                                                var r = Array(t),
                                                    o = 0
                                                for (e = 0; e < n; e++)
                                                    for (
                                                        var i = arguments[e],
                                                            u = 0,
                                                            c = i.length;
                                                        u < c;
                                                        u++, o++
                                                    )
                                                        r[o] = i[u]
                                                return r
                                            })([o], t)
                                        ),
                                    }),
                                this[n]
                            )
                        },
                    }
                }
            }
            var d,
                v = (function () {
                    function t(t) {
                        var e = this
                        void 0 === t && (t = {}),
                            (this.damping = 0.1),
                            (this.thumbMinSize = 20),
                            (this.renderByPixels = !0),
                            (this.alwaysShowTracks = !1),
                            (this.continuousScrolling = !0),
                            (this.delegateTo = null),
                            (this.plugins = {}),
                            Object.keys(t).forEach(function (n) {
                                e[n] = t[n]
                            })
                    }
                    return (
                        Object.defineProperty(t.prototype, 'wheelEventTarget', {
                            get: function () {
                                return this.delegateTo
                            },
                            set: function (t) {
                                console.warn(
                                    '[smooth-scrollbar]: `options.wheelEventTarget` is deprecated and will be removed in the future, use `options.delegateTo` instead.'
                                ),
                                    (this.delegateTo = t)
                            },
                            enumerable: !0,
                            configurable: !0,
                        }),
                        u([s(0, 1)], t.prototype, 'damping', void 0),
                        u([s(0, 1 / 0)], t.prototype, 'thumbMinSize', void 0),
                        u([f], t.prototype, 'renderByPixels', void 0),
                        u([f], t.prototype, 'alwaysShowTracks', void 0),
                        u([f], t.prototype, 'continuousScrolling', void 0),
                        t
                    )
                })(),
                y = new WeakMap()
            function m() {
                if (void 0 !== d) return d
                var t = !1
                try {
                    var e = function () {},
                        n = Object.defineProperty({}, 'passive', {
                            get: function () {
                                t = !0
                            },
                        })
                    window.addEventListener('testPassive', e, n),
                        window.removeEventListener('testPassive', e, n)
                } catch (t) {}
                return (d = !!t && { passive: !1 })
            }
            function g(t) {
                var e = y.get(t) || []
                return (
                    y.set(t, e),
                    function (t, n, r) {
                        function o(t) {
                            t.defaultPrevented || r(t)
                        }
                        n.split(/\s+/g).forEach(function (n) {
                            e.push({ elem: t, eventName: n, handler: o }),
                                t.addEventListener(n, o, m())
                        })
                    }
                )
            }
            function b(t) {
                var e = (function (t) {
                    return t.touches ? t.touches[t.touches.length - 1] : t
                })(t)
                return { x: e.clientX, y: e.clientY }
            }
            function x(t, e) {
                return (
                    void 0 === e && (e = []),
                    e.some(function (e) {
                        return t === e
                    })
                )
            }
            var w = ['webkit', 'moz', 'ms', 'o'],
                S = new RegExp('^-(?!(?:' + w.join('|') + ')-)')
            function O(t, e) {
                ;(e = (function (t) {
                    var e = {}
                    return (
                        Object.keys(t).forEach(function (n) {
                            if (S.test(n)) {
                                var r = t[n]
                                ;(n = n.replace(/^-/, '')),
                                    (e[n] = r),
                                    w.forEach(function (t) {
                                        e['-' + t + '-' + n] = r
                                    })
                            } else e[n] = t[n]
                        }),
                        e
                    )
                })(e)),
                    Object.keys(e).forEach(function (n) {
                        var r = n
                            .replace(/^-/, '')
                            .replace(/-([a-z])/g, function (t, e) {
                                return e.toUpperCase()
                            })
                        t.style[r] = e[n]
                    })
            }
            var _,
                E = (function () {
                    function t(t) {
                        ;(this.velocityMultiplier = window.devicePixelRatio),
                            (this.updateTime = Date.now()),
                            (this.delta = { x: 0, y: 0 }),
                            (this.velocity = { x: 0, y: 0 }),
                            (this.lastPosition = { x: 0, y: 0 }),
                            (this.lastPosition = b(t))
                    }
                    return (
                        (t.prototype.update = function (t) {
                            var e = this.velocity,
                                n = this.updateTime,
                                r = this.lastPosition,
                                o = Date.now(),
                                i = b(t),
                                u = { x: -(i.x - r.x), y: -(i.y - r.y) },
                                c = o - n || 16.7,
                                a = (u.x / c) * 16.7,
                                s = (u.y / c) * 16.7
                            ;(e.x = a * this.velocityMultiplier),
                                (e.y = s * this.velocityMultiplier),
                                (this.delta = u),
                                (this.updateTime = o),
                                (this.lastPosition = i)
                        }),
                        t
                    )
                })(),
                T = (function () {
                    function t() {
                        this._touchList = {}
                    }
                    return (
                        Object.defineProperty(t.prototype, '_primitiveValue', {
                            get: function () {
                                return { x: 0, y: 0 }
                            },
                            enumerable: !0,
                            configurable: !0,
                        }),
                        (t.prototype.isActive = function () {
                            return void 0 !== this._activeTouchID
                        }),
                        (t.prototype.getDelta = function () {
                            var t = this._getActiveTracker()
                            return t ? i({}, t.delta) : this._primitiveValue
                        }),
                        (t.prototype.getVelocity = function () {
                            var t = this._getActiveTracker()
                            return t ? i({}, t.velocity) : this._primitiveValue
                        }),
                        (t.prototype.getEasingDistance = function (t) {
                            var e = 1 - t,
                                n = { x: 0, y: 0 },
                                r = this.getVelocity()
                            return (
                                Object.keys(r).forEach(function (t) {
                                    for (
                                        var o = Math.abs(r[t]) <= 10 ? 0 : r[t];
                                        0 !== o;

                                    )
                                        (n[t] += o), (o = (o * e) | 0)
                                }),
                                n
                            )
                        }),
                        (t.prototype.track = function (t) {
                            var e = this,
                                n = t.targetTouches
                            return (
                                Array.from(n).forEach(function (t) {
                                    e._add(t)
                                }),
                                this._touchList
                            )
                        }),
                        (t.prototype.update = function (t) {
                            var e = this,
                                n = t.touches,
                                r = t.changedTouches
                            return (
                                Array.from(n).forEach(function (t) {
                                    e._renew(t)
                                }),
                                this._setActiveID(r),
                                this._touchList
                            )
                        }),
                        (t.prototype.release = function (t) {
                            var e = this
                            delete this._activeTouchID,
                                Array.from(t.changedTouches).forEach(
                                    function (t) {
                                        e._delete(t)
                                    }
                                )
                        }),
                        (t.prototype._add = function (t) {
                            this._has(t) && this._delete(t)
                            var e = new E(t)
                            this._touchList[t.identifier] = e
                        }),
                        (t.prototype._renew = function (t) {
                            this._has(t) &&
                                this._touchList[t.identifier].update(t)
                        }),
                        (t.prototype._delete = function (t) {
                            delete this._touchList[t.identifier]
                        }),
                        (t.prototype._has = function (t) {
                            return this._touchList.hasOwnProperty(t.identifier)
                        }),
                        (t.prototype._setActiveID = function (t) {
                            this._activeTouchID = t[t.length - 1].identifier
                        }),
                        (t.prototype._getActiveTracker = function () {
                            return this._touchList[this._activeTouchID]
                        }),
                        t
                    )
                })()
            !(function (t) {
                ;(t.X = 'x'), (t.Y = 'y')
            })(_ || (_ = {}))
            var A = (function () {
                    function t(t, e) {
                        void 0 === e && (e = 0),
                            (this._direction = t),
                            (this._minSize = e),
                            (this.element = document.createElement('div')),
                            (this.displaySize = 0),
                            (this.realSize = 0),
                            (this.offset = 0),
                            (this.element.className =
                                'scrollbar-thumb scrollbar-thumb-' + t)
                    }
                    return (
                        (t.prototype.attachTo = function (t) {
                            t.appendChild(this.element)
                        }),
                        (t.prototype.update = function (t, e, n) {
                            ;(this.realSize = Math.min(e / n, 1) * e),
                                (this.displaySize = Math.max(
                                    this.realSize,
                                    this._minSize
                                )),
                                (this.offset =
                                    (t / n) *
                                    (e + (this.realSize - this.displaySize))),
                                O(this.element, this._getStyle())
                        }),
                        (t.prototype._getStyle = function () {
                            switch (this._direction) {
                                case _.X:
                                    return {
                                        width: this.displaySize + 'px',
                                        '-transform':
                                            'translate3d(' +
                                            this.offset +
                                            'px, 0, 0)',
                                    }
                                case _.Y:
                                    return {
                                        height: this.displaySize + 'px',
                                        '-transform':
                                            'translate3d(0, ' +
                                            this.offset +
                                            'px, 0)',
                                    }
                                default:
                                    return null
                            }
                        }),
                        t
                    )
                })(),
                j = (function () {
                    function t(t, e) {
                        void 0 === e && (e = 0),
                            (this.element = document.createElement('div')),
                            (this._isShown = !1),
                            (this.element.className =
                                'scrollbar-track scrollbar-track-' + t),
                            (this.thumb = new A(t, e)),
                            this.thumb.attachTo(this.element)
                    }
                    return (
                        (t.prototype.attachTo = function (t) {
                            t.appendChild(this.element)
                        }),
                        (t.prototype.show = function () {
                            this._isShown ||
                                ((this._isShown = !0),
                                this.element.classList.add('show'))
                        }),
                        (t.prototype.hide = function () {
                            this._isShown &&
                                ((this._isShown = !1),
                                this.element.classList.remove('show'))
                        }),
                        (t.prototype.update = function (t, e, n) {
                            O(this.element, {
                                display: n <= e ? 'none' : 'block',
                            }),
                                this.thumb.update(t, e, n)
                        }),
                        t
                    )
                })(),
                P = (function () {
                    function t(t) {
                        this._scrollbar = t
                        var e = t.options.thumbMinSize
                        ;(this.xAxis = new j(_.X, e)),
                            (this.yAxis = new j(_.Y, e)),
                            this.xAxis.attachTo(t.containerEl),
                            this.yAxis.attachTo(t.containerEl),
                            t.options.alwaysShowTracks &&
                                (this.xAxis.show(), this.yAxis.show())
                    }
                    return (
                        (t.prototype.update = function () {
                            var t = this._scrollbar,
                                e = t.size,
                                n = t.offset
                            this.xAxis.update(
                                n.x,
                                e.container.width,
                                e.content.width
                            ),
                                this.yAxis.update(
                                    n.y,
                                    e.container.height,
                                    e.content.height
                                )
                        }),
                        (t.prototype.autoHideOnIdle = function () {
                            this._scrollbar.options.alwaysShowTracks ||
                                (this.xAxis.hide(), this.yAxis.hide())
                        }),
                        u([h(300)], t.prototype, 'autoHideOnIdle', null),
                        t
                    )
                })(),
                M = new WeakMap()
            function k(t) {
                return Math.pow(t - 1, 3) + 1
            }
            var D,
                z,
                L,
                I = (function () {
                    function t(t, e) {
                        var n = this.constructor
                        ;(this.scrollbar = t),
                            (this.name = n.pluginName),
                            (this.options = i(i({}, n.defaultOptions), e))
                    }
                    return (
                        (t.prototype.onInit = function () {}),
                        (t.prototype.onDestroy = function () {}),
                        (t.prototype.onUpdate = function () {}),
                        (t.prototype.onRender = function (t) {}),
                        (t.prototype.transformDelta = function (t, e) {
                            return i({}, t)
                        }),
                        (t.pluginName = ''),
                        (t.defaultOptions = {}),
                        t
                    )
                })(),
                N = { order: new Set(), constructors: {} }
            function R(t) {
                var e = g(t),
                    n = t.containerEl
                e(n, 'keydown', function (e) {
                    var r = document.activeElement
                    if (
                        (r === n || n.contains(r)) &&
                        !(function (t) {
                            return (
                                !(
                                    'INPUT' !== t.tagName &&
                                    'SELECT' !== t.tagName &&
                                    'TEXTAREA' !== t.tagName &&
                                    !t.isContentEditable
                                ) && !t.disabled
                            )
                        })(r)
                    ) {
                        var o = (function (t, e) {
                            var n = t.size,
                                r = t.limit,
                                o = t.offset
                            switch (e) {
                                case D.TAB:
                                    return (function (t) {
                                        requestAnimationFrame(function () {
                                            t.scrollIntoView(
                                                document.activeElement,
                                                {
                                                    offsetTop:
                                                        t.size.container
                                                            .height / 2,
                                                    offsetLeft:
                                                        t.size.container.width /
                                                        2,
                                                    onlyScrollIfNeeded: !0,
                                                }
                                            )
                                        })
                                    })(t)
                                case D.SPACE:
                                    return [0, 200]
                                case D.PAGE_UP:
                                    return [0, 40 - n.container.height]
                                case D.PAGE_DOWN:
                                    return [0, n.container.height - 40]
                                case D.END:
                                    return [0, r.y - o.y]
                                case D.HOME:
                                    return [0, -o.y]
                                case D.LEFT:
                                    return [-40, 0]
                                case D.UP:
                                    return [0, -40]
                                case D.RIGHT:
                                    return [40, 0]
                                case D.DOWN:
                                    return [0, 40]
                                default:
                                    return null
                            }
                        })(t, e.keyCode || e.which)
                        if (o) {
                            var i = o[0],
                                u = o[1]
                            t.addTransformableMomentum(i, u, e, function (n) {
                                n
                                    ? e.preventDefault()
                                    : (t.containerEl.blur(),
                                      t.parent && t.parent.containerEl.focus())
                            })
                        }
                    }
                })
            }
            function C(t) {
                var e,
                    n,
                    r,
                    o,
                    i,
                    u = g(t),
                    c = t.containerEl,
                    s = t.track,
                    f = s.xAxis,
                    l = s.yAxis
                function p(e, n) {
                    var r = t.size,
                        o = t.limit,
                        i = t.offset
                    if (e === z.X) {
                        var u =
                            r.container.width +
                            (f.thumb.realSize - f.thumb.displaySize)
                        return a()((n / u) * r.content.width, 0, o.x) - i.x
                    }
                    if (e === z.Y) {
                        var c =
                            r.container.height +
                            (l.thumb.realSize - l.thumb.displaySize)
                        return a()((n / c) * r.content.height, 0, o.y) - i.y
                    }
                    return 0
                }
                function h(t) {
                    return x(t, [f.element, f.thumb.element])
                        ? z.X
                        : x(t, [l.element, l.thumb.element])
                          ? z.Y
                          : void 0
                }
                u(c, 'click', function (e) {
                    if (!n && x(e.target, [f.element, l.element])) {
                        var r = e.target,
                            o = h(r),
                            i = r.getBoundingClientRect(),
                            u = b(e)
                        if (o === z.X) {
                            var c = u.x - i.left - f.thumb.displaySize / 2
                            t.setMomentum(p(o, c), 0)
                        }
                        o === z.Y &&
                            ((c = u.y - i.top - l.thumb.displaySize / 2),
                            t.setMomentum(0, p(o, c)))
                    }
                }),
                    u(c, 'mousedown', function (n) {
                        if (x(n.target, [f.thumb.element, l.thumb.element])) {
                            e = !0
                            var u = n.target,
                                a = b(n),
                                s = u.getBoundingClientRect()
                            ;(o = h(u)),
                                (r = { x: a.x - s.left, y: a.y - s.top }),
                                (i = c.getBoundingClientRect()),
                                O(t.containerEl, { '-user-select': 'none' })
                        }
                    }),
                    u(window, 'mousemove', function (u) {
                        if (e) {
                            n = !0
                            var c = b(u)
                            if (o === z.X) {
                                var a = c.x - r.x - i.left
                                t.setMomentum(p(o, a), 0)
                            }
                            o === z.Y &&
                                ((a = c.y - r.y - i.top),
                                t.setMomentum(0, p(o, a)))
                        }
                    }),
                    u(window, 'mouseup blur', function () {
                        ;(e = n = !1), O(t.containerEl, { '-user-select': '' })
                    })
            }
            function F(t) {
                g(t)(window, 'resize', p()(t.update.bind(t), 300))
            }
            function H(t) {
                var e,
                    n = g(t),
                    r = t.containerEl,
                    o = t.contentEl,
                    i = !1,
                    u = !1
                n(window, 'mousemove', function (n) {
                    i &&
                        (cancelAnimationFrame(e),
                        (function n(r) {
                            var o = r.x,
                                i = r.y
                            if (o || i) {
                                var u = t.offset,
                                    c = t.limit
                                t.setMomentum(
                                    a()(u.x + o, 0, c.x) - u.x,
                                    a()(u.y + i, 0, c.y) - u.y
                                ),
                                    (e = requestAnimationFrame(function () {
                                        n({ x: o, y: i })
                                    }))
                            }
                        })(
                            (function (t, e) {
                                var n = t.bounding,
                                    r = n.top,
                                    o = n.right,
                                    i = n.bottom,
                                    u = n.left,
                                    c = b(e),
                                    a = c.x,
                                    s = c.y,
                                    f = { x: 0, y: 0 }
                                return (
                                    (0 === a && 0 === s) ||
                                        (a > o - 20
                                            ? (f.x = a - o + 20)
                                            : a < u + 20 && (f.x = a - u - 20),
                                        s > i - 20
                                            ? (f.y = s - i + 20)
                                            : s < r + 20 && (f.y = s - r - 20),
                                        (f.x *= 2),
                                        (f.y *= 2)),
                                    f
                                )
                            })(t, n)
                        ))
                }),
                    n(o, 'contextmenu', function () {
                        ;(u = !0), cancelAnimationFrame(e), (i = !1)
                    }),
                    n(o, 'mousedown', function () {
                        u = !1
                    }),
                    n(o, 'selectstart', function () {
                        u || (cancelAnimationFrame(e), (i = !0))
                    }),
                    n(window, 'mouseup blur', function () {
                        cancelAnimationFrame(e), (i = !1), (u = !1)
                    }),
                    n(r, 'scroll', function (t) {
                        t.preventDefault(), (r.scrollTop = r.scrollLeft = 0)
                    })
            }
            function W(t) {
                var e,
                    n = t.options.delegateTo || t.containerEl,
                    r = new T(),
                    o = g(t),
                    i = 0
                o(n, 'touchstart', function (n) {
                    r.track(n),
                        t.setMomentum(0, 0),
                        0 === i &&
                            ((e = t.options.damping),
                            (t.options.damping = Math.max(e, 0.5))),
                        i++
                }),
                    o(n, 'touchmove', function (e) {
                        if (!L || L === t) {
                            r.update(e)
                            var n = r.getDelta(),
                                o = n.x,
                                i = n.y
                            t.addTransformableMomentum(o, i, e, function (n) {
                                n &&
                                    e.cancelable &&
                                    (e.preventDefault(), (L = t))
                            })
                        }
                    }),
                    o(n, 'touchcancel touchend', function (n) {
                        var o = r.getEasingDistance(e)
                        t.addTransformableMomentum(o.x, o.y, n),
                            0 == --i && (t.options.damping = e),
                            r.release(n),
                            (L = null)
                    })
            }
            function B(t) {
                g(t)(
                    t.options.delegateTo || t.containerEl,
                    'onwheel' in window ||
                        document.implementation.hasFeature(
                            'Events.wheel',
                            '3.0'
                        )
                        ? 'wheel'
                        : 'mousewheel',
                    function (e) {
                        var n = (function (t) {
                                if ('deltaX' in t) {
                                    var e = U(t.deltaMode)
                                    return {
                                        x: (t.deltaX / G.STANDARD) * e,
                                        y: (t.deltaY / G.STANDARD) * e,
                                    }
                                }
                                return 'wheelDeltaX' in t
                                    ? {
                                          x: t.wheelDeltaX / G.OTHERS,
                                          y: t.wheelDeltaY / G.OTHERS,
                                      }
                                    : { x: 0, y: t.wheelDelta / G.OTHERS }
                            })(e),
                            r = n.x,
                            o = n.y
                        t.addTransformableMomentum(r, o, e, function (t) {
                            t && e.preventDefault()
                        })
                    }
                )
            }
            !(function (t) {
                ;(t[(t.TAB = 9)] = 'TAB'),
                    (t[(t.SPACE = 32)] = 'SPACE'),
                    (t[(t.PAGE_UP = 33)] = 'PAGE_UP'),
                    (t[(t.PAGE_DOWN = 34)] = 'PAGE_DOWN'),
                    (t[(t.END = 35)] = 'END'),
                    (t[(t.HOME = 36)] = 'HOME'),
                    (t[(t.LEFT = 37)] = 'LEFT'),
                    (t[(t.UP = 38)] = 'UP'),
                    (t[(t.RIGHT = 39)] = 'RIGHT'),
                    (t[(t.DOWN = 40)] = 'DOWN')
            })(D || (D = {})),
                (function (t) {
                    ;(t[(t.X = 0)] = 'X'), (t[(t.Y = 1)] = 'Y')
                })(z || (z = {}))
            var G = { STANDARD: 1, OTHERS: -3 },
                X = [1, 28, 500],
                U = function (t) {
                    return X[t] || X[0]
                },
                V = new Map(),
                Y = (function () {
                    function t(t, e) {
                        var n = this
                        ;(this.offset = { x: 0, y: 0 }),
                            (this.limit = { x: 1 / 0, y: 1 / 0 }),
                            (this.bounding = {
                                top: 0,
                                right: 0,
                                bottom: 0,
                                left: 0,
                            }),
                            (this._plugins = []),
                            (this._momentum = { x: 0, y: 0 }),
                            (this._listeners = new Set()),
                            (this.containerEl = t)
                        var r = (this.contentEl = document.createElement('div'))
                        ;(this.options = new v(e)),
                            t.setAttribute('data-scrollbar', 'true'),
                            t.setAttribute('tabindex', '-1'),
                            O(t, { overflow: 'hidden', outline: 'none' }),
                            window.navigator.msPointerEnabled &&
                                (t.style.msTouchAction = 'none'),
                            (r.className = 'scroll-content'),
                            Array.from(t.childNodes).forEach(function (t) {
                                r.appendChild(t)
                            }),
                            t.appendChild(r),
                            (this.track = new P(this)),
                            (this.size = this.getSize()),
                            (this._plugins = (function (t, e) {
                                return Array.from(N.order)
                                    .filter(function (t) {
                                        return !1 !== e[t]
                                    })
                                    .map(function (n) {
                                        var r = new (0, N.constructors[n])(
                                            t,
                                            e[n]
                                        )
                                        return (e[n] = r.options), r
                                    })
                            })(this, this.options.plugins))
                        var o = t.scrollLeft,
                            i = t.scrollTop
                        ;(t.scrollLeft = t.scrollTop = 0),
                            this.setPosition(o, i, { withoutCallbacks: !0 })
                        var u = window.ResizeObserver
                        'function' == typeof u &&
                            ((this._observer = new u(function () {
                                n.update()
                            })),
                            this._observer.observe(r)),
                            V.set(t, this),
                            requestAnimationFrame(function () {
                                n._init()
                            })
                    }
                    return (
                        Object.defineProperty(t.prototype, 'parent', {
                            get: function () {
                                for (
                                    var t = this.containerEl.parentElement;
                                    t;

                                ) {
                                    var e = V.get(t)
                                    if (e) return e
                                    t = t.parentElement
                                }
                                return null
                            },
                            enumerable: !0,
                            configurable: !0,
                        }),
                        Object.defineProperty(t.prototype, 'scrollTop', {
                            get: function () {
                                return this.offset.y
                            },
                            set: function (t) {
                                this.setPosition(this.scrollLeft, t)
                            },
                            enumerable: !0,
                            configurable: !0,
                        }),
                        Object.defineProperty(t.prototype, 'scrollLeft', {
                            get: function () {
                                return this.offset.x
                            },
                            set: function (t) {
                                this.setPosition(t, this.scrollTop)
                            },
                            enumerable: !0,
                            configurable: !0,
                        }),
                        (t.prototype.getSize = function () {
                            return (function (t) {
                                var e = t.containerEl,
                                    n = t.contentEl,
                                    r = getComputedStyle(e),
                                    o = [
                                        'paddingTop',
                                        'paddingBottom',
                                        'paddingLeft',
                                        'paddingRight',
                                    ].map(function (t) {
                                        return r[t] ? parseFloat(r[t]) : 0
                                    }),
                                    i = o[0] + o[1],
                                    u = o[2] + o[3]
                                return {
                                    container: {
                                        width: e.clientWidth,
                                        height: e.clientHeight,
                                    },
                                    content: {
                                        width:
                                            n.offsetWidth -
                                            n.clientWidth +
                                            n.scrollWidth +
                                            u,
                                        height:
                                            n.offsetHeight -
                                            n.clientHeight +
                                            n.scrollHeight +
                                            i,
                                    },
                                }
                            })(this)
                        }),
                        (t.prototype.update = function () {
                            !(function (t) {
                                var e = t.getSize(),
                                    n = {
                                        x: Math.max(
                                            e.content.width - e.container.width,
                                            0
                                        ),
                                        y: Math.max(
                                            e.content.height -
                                                e.container.height,
                                            0
                                        ),
                                    },
                                    r = t.containerEl.getBoundingClientRect(),
                                    o = {
                                        top: Math.max(r.top, 0),
                                        right: Math.min(
                                            r.right,
                                            window.innerWidth
                                        ),
                                        bottom: Math.min(
                                            r.bottom,
                                            window.innerHeight
                                        ),
                                        left: Math.max(r.left, 0),
                                    }
                                ;(t.size = e),
                                    (t.limit = n),
                                    (t.bounding = o),
                                    t.track.update(),
                                    t.setPosition()
                            })(this),
                                this._plugins.forEach(function (t) {
                                    t.onUpdate()
                                })
                        }),
                        (t.prototype.isVisible = function (t) {
                            return (function (t, e) {
                                var n = t.bounding,
                                    r = e.getBoundingClientRect(),
                                    o = Math.max(n.top, r.top),
                                    i = Math.max(n.left, r.left),
                                    u = Math.min(n.right, r.right)
                                return o < Math.min(n.bottom, r.bottom) && i < u
                            })(this, t)
                        }),
                        (t.prototype.setPosition = function (t, e, n) {
                            var r = this
                            void 0 === t && (t = this.offset.x),
                                void 0 === e && (e = this.offset.y),
                                void 0 === n && (n = {})
                            var o = (function (t, e, n) {
                                var r = t.options,
                                    o = t.offset,
                                    u = t.limit,
                                    c = t.track,
                                    s = t.contentEl
                                return (
                                    r.renderByPixels &&
                                        ((e = Math.round(e)),
                                        (n = Math.round(n))),
                                    (e = a()(e, 0, u.x)),
                                    (n = a()(n, 0, u.y)),
                                    e !== o.x && c.xAxis.show(),
                                    n !== o.y && c.yAxis.show(),
                                    r.alwaysShowTracks || c.autoHideOnIdle(),
                                    e === o.x && n === o.y
                                        ? null
                                        : ((o.x = e),
                                          (o.y = n),
                                          O(s, {
                                              '-transform':
                                                  'translate3d(' +
                                                  -e +
                                                  'px, ' +
                                                  -n +
                                                  'px, 0)',
                                          }),
                                          c.update(),
                                          { offset: i({}, o), limit: i({}, u) })
                                )
                            })(this, t, e)
                            o &&
                                !n.withoutCallbacks &&
                                this._listeners.forEach(function (t) {
                                    t.call(r, o)
                                })
                        }),
                        (t.prototype.scrollTo = function (t, e, n, r) {
                            void 0 === t && (t = this.offset.x),
                                void 0 === e && (e = this.offset.y),
                                void 0 === n && (n = 0),
                                void 0 === r && (r = {}),
                                (function (t, e, n, r, o) {
                                    void 0 === r && (r = 0)
                                    var i = void 0 === o ? {} : o,
                                        u = i.easing,
                                        c = void 0 === u ? k : u,
                                        s = i.callback,
                                        f = t.options,
                                        l = t.offset,
                                        p = t.limit
                                    f.renderByPixels &&
                                        ((e = Math.round(e)),
                                        (n = Math.round(n)))
                                    var h = l.x,
                                        d = l.y,
                                        v = a()(e, 0, p.x) - h,
                                        y = a()(n, 0, p.y) - d,
                                        m = Date.now()
                                    cancelAnimationFrame(M.get(t)),
                                        (function e() {
                                            var n = Date.now() - m,
                                                o = r
                                                    ? c(Math.min(n / r, 1))
                                                    : 1
                                            if (
                                                (t.setPosition(
                                                    h + v * o,
                                                    d + y * o
                                                ),
                                                n >= r)
                                            )
                                                'function' == typeof s &&
                                                    s.call(t)
                                            else {
                                                var i = requestAnimationFrame(e)
                                                M.set(t, i)
                                            }
                                        })()
                                })(this, t, e, n, r)
                        }),
                        (t.prototype.scrollIntoView = function (t, e) {
                            void 0 === e && (e = {}),
                                (function (t, e, n) {
                                    var r = void 0 === n ? {} : n,
                                        o = r.alignToTop,
                                        i = void 0 === o || o,
                                        u = r.onlyScrollIfNeeded,
                                        c = void 0 !== u && u,
                                        s = r.offsetTop,
                                        f = void 0 === s ? 0 : s,
                                        l = r.offsetLeft,
                                        p = void 0 === l ? 0 : l,
                                        h = r.offsetBottom,
                                        d = void 0 === h ? 0 : h,
                                        v = t.containerEl,
                                        y = t.bounding,
                                        m = t.offset,
                                        g = t.limit
                                    if (e && v.contains(e)) {
                                        var b = e.getBoundingClientRect()
                                        if (!c || !t.isVisible(e)) {
                                            var x = i
                                                ? b.top - y.top - f
                                                : b.bottom - y.bottom + d
                                            t.setMomentum(
                                                b.left - y.left - p,
                                                a()(x, -m.y, g.y - m.y)
                                            )
                                        }
                                    }
                                })(this, t, e)
                        }),
                        (t.prototype.addListener = function (t) {
                            if ('function' != typeof t)
                                throw new TypeError(
                                    '[smooth-scrollbar] scrolling listener should be a function'
                                )
                            this._listeners.add(t)
                        }),
                        (t.prototype.removeListener = function (t) {
                            this._listeners.delete(t)
                        }),
                        (t.prototype.addTransformableMomentum = function (
                            t,
                            e,
                            n,
                            r
                        ) {
                            this._updateDebounced()
                            var o = this._plugins.reduce(
                                    function (t, e) {
                                        return e.transformDelta(t, n) || t
                                    },
                                    { x: t, y: e }
                                ),
                                i = !this._shouldPropagateMomentum(o.x, o.y)
                            i && this.addMomentum(o.x, o.y),
                                r && r.call(this, i)
                        }),
                        (t.prototype.addMomentum = function (t, e) {
                            this.setMomentum(
                                this._momentum.x + t,
                                this._momentum.y + e
                            )
                        }),
                        (t.prototype.setMomentum = function (t, e) {
                            0 === this.limit.x && (t = 0),
                                0 === this.limit.y && (e = 0),
                                this.options.renderByPixels &&
                                    ((t = Math.round(t)), (e = Math.round(e))),
                                (this._momentum.x = t),
                                (this._momentum.y = e)
                        }),
                        (t.prototype.updatePluginOptions = function (t, e) {
                            this._plugins.forEach(function (n) {
                                n.name === t && Object.assign(n.options, e)
                            })
                        }),
                        (t.prototype.destroy = function () {
                            var t = this.containerEl,
                                e = this.contentEl
                            !(function (t) {
                                var e = y.get(t)
                                e &&
                                    (e.forEach(function (t) {
                                        var e = t.elem,
                                            n = t.eventName,
                                            r = t.handler
                                        e.removeEventListener(n, r, m())
                                    }),
                                    y.delete(t))
                            })(this),
                                this._listeners.clear(),
                                this.setMomentum(0, 0),
                                cancelAnimationFrame(this._renderID),
                                this._observer && this._observer.disconnect(),
                                V.delete(this.containerEl)
                            for (
                                var n = Array.from(e.childNodes);
                                t.firstChild;

                            )
                                t.removeChild(t.firstChild)
                            n.forEach(function (e) {
                                t.appendChild(e)
                            }),
                                O(t, { overflow: '' }),
                                (t.scrollTop = this.scrollTop),
                                (t.scrollLeft = this.scrollLeft),
                                this._plugins.forEach(function (t) {
                                    t.onDestroy()
                                }),
                                (this._plugins.length = 0)
                        }),
                        (t.prototype._init = function () {
                            var t = this
                            this.update(),
                                Object.keys(r).forEach(function (e) {
                                    r[e](t)
                                }),
                                this._plugins.forEach(function (t) {
                                    t.onInit()
                                }),
                                this._render()
                        }),
                        (t.prototype._updateDebounced = function () {
                            this.update()
                        }),
                        (t.prototype._shouldPropagateMomentum = function (
                            t,
                            e
                        ) {
                            void 0 === t && (t = 0), void 0 === e && (e = 0)
                            var n = this.options,
                                r = this.offset,
                                o = this.limit
                            if (!n.continuousScrolling) return !1
                            0 === o.x && 0 === o.y && this._updateDebounced()
                            var i = a()(t + r.x, 0, o.x),
                                u = a()(e + r.y, 0, o.y),
                                c = !0
                            return (
                                (c = (c = c && i === r.x) && u === r.y) &&
                                (r.x === o.x ||
                                    0 === r.x ||
                                    r.y === o.y ||
                                    0 === r.y)
                            )
                        }),
                        (t.prototype._render = function () {
                            var t = this._momentum
                            if (t.x || t.y) {
                                var e = this._nextTick('x'),
                                    n = this._nextTick('y')
                                ;(t.x = e.momentum),
                                    (t.y = n.momentum),
                                    this.setPosition(e.position, n.position)
                            }
                            var r = i({}, this._momentum)
                            this._plugins.forEach(function (t) {
                                t.onRender(r)
                            }),
                                (this._renderID = requestAnimationFrame(
                                    this._render.bind(this)
                                ))
                        }),
                        (t.prototype._nextTick = function (t) {
                            var e = this.options,
                                n = this.offset,
                                r = this._momentum,
                                o = n[t],
                                i = r[t]
                            if (Math.abs(i) <= 0.1)
                                return { momentum: 0, position: o + i }
                            var u = i * (1 - e.damping)
                            return (
                                e.renderByPixels && (u |= 0),
                                { momentum: u, position: o + i - u }
                            )
                        }),
                        u(
                            [h(100, { leading: !0 })],
                            t.prototype,
                            '_updateDebounced',
                            null
                        ),
                        t
                    )
                })(),
                q = 'smooth-scrollbar-style',
                $ = !1
            function Q() {
                if (!$ && 'undefined' != typeof window) {
                    var t = document.createElement('style')
                    ;(t.id = q),
                        (t.textContent =
                            '\n[data-scrollbar] {\n  display: block;\n  position: relative;\n}\n\n.scroll-content {\n  display: flow-root;\n  -webkit-transform: translate3d(0, 0, 0);\n          transform: translate3d(0, 0, 0);\n}\n\n.scrollbar-track {\n  position: absolute;\n  opacity: 0;\n  z-index: 1;\n  background: rgba(222, 222, 222, .75);\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n  -webkit-transition: opacity 0.5s 0.5s ease-out;\n          transition: opacity 0.5s 0.5s ease-out;\n}\n.scrollbar-track.show,\n.scrollbar-track:hover {\n  opacity: 1;\n  -webkit-transition-delay: 0s;\n          transition-delay: 0s;\n}\n\n.scrollbar-track-x {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 8px;\n}\n.scrollbar-track-y {\n  top: 0;\n  right: 0;\n  width: 8px;\n  height: 100%;\n}\n.scrollbar-thumb {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 8px;\n  height: 8px;\n  background: rgba(0, 0, 0, .5);\n  border-radius: 4px;\n}\n'),
                        document.head && document.head.appendChild(t),
                        ($ = !0)
                }
            }
            n.d(e, 'ScrollbarPlugin', function () {
                return I
            })
            var K = (function (t) {
                function e() {
                    return (null !== t && t.apply(this, arguments)) || this
                }
                return (
                    (function (t, e) {
                        function n() {
                            this.constructor = t
                        }
                        o(t, e),
                            (t.prototype =
                                null === e
                                    ? Object.create(e)
                                    : ((n.prototype = e.prototype), new n()))
                    })(e, t),
                    (e.init = function (t, e) {
                        if (!t || 1 !== t.nodeType)
                            throw new TypeError(
                                'expect element to be DOM Element, but got ' + t
                            )
                        return Q(), V.has(t) ? V.get(t) : new Y(t, e)
                    }),
                    (e.initAll = function (t) {
                        return Array.from(
                            document.querySelectorAll('[data-scrollbar]'),
                            function (n) {
                                return e.init(n, t)
                            }
                        )
                    }),
                    (e.has = function (t) {
                        return V.has(t)
                    }),
                    (e.get = function (t) {
                        return V.get(t)
                    }),
                    (e.getAll = function () {
                        return Array.from(V.values())
                    }),
                    (e.destroy = function (t) {
                        var e = V.get(t)
                        e && e.destroy()
                    }),
                    (e.destroyAll = function () {
                        V.forEach(function (t) {
                            t.destroy()
                        })
                    }),
                    (e.use = function () {
                        for (var t = [], e = 0; e < arguments.length; e++)
                            t[e] = arguments[e]
                        return function () {
                            for (var t = [], e = 0; e < arguments.length; e++)
                                t[e] = arguments[e]
                            t.forEach(function (t) {
                                var e = t.pluginName
                                if (!e)
                                    throw new TypeError(
                                        'plugin name is required'
                                    )
                                N.order.add(e), (N.constructors[e] = t)
                            })
                        }.apply(void 0, t)
                    }),
                    (e.attachStyle = function () {
                        return Q()
                    }),
                    (e.detachStyle = function () {
                        return (function () {
                            if ($ && 'undefined' != typeof window) {
                                var t = document.getElementById(q)
                                t &&
                                    t.parentNode &&
                                    (t.parentNode.removeChild(t), ($ = !1))
                            }
                        })()
                    }),
                    (e.version = '8.8.1'),
                    (e.ScrollbarPlugin = I),
                    e
                )
            })(Y)
            e.default = K
        },
    ]).default
})

/* END smooth scrollbar 8.8.1 */

/* START datepicker */

/*! jQuery UI - v1.13.2 - 2022-10-05
 * http://jqueryui.com
 * Includes: keycode.js, widgets/datepicker.js
 * Copyright jQuery Foundation and other contributors; Licensed MIT */

!(function (e) {
    'use strict'
    'function' == typeof define && define.amd
        ? define(['jquery'], e)
        : e(jQuery)
})(function (V) {
    'use strict'
    V.ui = V.ui || {}
    var n
    ;(V.ui.version = '1.13.2'),
        (V.ui.keyCode = {
            BACKSPACE: 8,
            COMMA: 188,
            DELETE: 46,
            DOWN: 40,
            END: 35,
            ENTER: 13,
            ESCAPE: 27,
            HOME: 36,
            LEFT: 37,
            PAGE_DOWN: 34,
            PAGE_UP: 33,
            PERIOD: 190,
            RIGHT: 39,
            SPACE: 32,
            TAB: 9,
            UP: 38,
        })
    function e() {
        ;(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[''] = {
                closeText: 'Done',
                prevText: 'Prev',
                nextText: 'Next',
                currentText: 'Today',
                monthNames: [
                    'January',
                    'February',
                    'March',
                    'April',
                    'May',
                    'June',
                    'July',
                    'August',
                    'September',
                    'October',
                    'November',
                    'December',
                ],
                monthNamesShort: [
                    'Jan',
                    'Feb',
                    'Mar',
                    'Apr',
                    'May',
                    'Jun',
                    'Jul',
                    'Aug',
                    'Sep',
                    'Oct',
                    'Nov',
                    'Dec',
                ],
                dayNames: [
                    'Sunday',
                    'Monday',
                    'Tuesday',
                    'Wednesday',
                    'Thursday',
                    'Friday',
                    'Saturday',
                ],
                dayNamesShort: [
                    'Sun',
                    'Mon',
                    'Tue',
                    'Wed',
                    'Thu',
                    'Fri',
                    'Sat',
                ],
                dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
                weekHeader: 'Wk',
                dateFormat: 'mm/dd/yy',
                firstDay: 0,
                isRTL: !1,
                showMonthAfterYear: !1,
                yearSuffix: '',
                selectMonthLabel: 'Select month',
                selectYearLabel: 'Select year',
            }),
            (this._defaults = {
                showOn: 'focus',
                showAnim: 'fadeIn',
                showOptions: {},
                defaultDate: null,
                appendText: '',
                buttonText: '...',
                buttonImage: '',
                buttonImageOnly: !1,
                hideIfNoPrevNext: !1,
                navigationAsDateFormat: !1,
                gotoCurrent: !1,
                changeMonth: !1,
                changeYear: !1,
                yearRange: 'c-10:c+10',
                showOtherMonths: !1,
                selectOtherMonths: !1,
                showWeek: !1,
                calculateWeek: this.iso8601Week,
                shortYearCutoff: '+10',
                minDate: null,
                maxDate: null,
                duration: 'fast',
                beforeShowDay: null,
                beforeShow: null,
                onSelect: null,
                onChangeMonthYear: null,
                onClose: null,
                onUpdateDatepicker: null,
                numberOfMonths: 1,
                showCurrentAtPos: 0,
                stepMonths: 1,
                stepBigMonths: 12,
                altField: '',
                altFormat: '',
                constrainInput: !0,
                showButtonPanel: !1,
                autoSize: !1,
                disabled: !1,
            }),
            V.extend(this._defaults, this.regional['']),
            (this.regional.en = V.extend(!0, {}, this.regional[''])),
            (this.regional['en-US'] = V.extend(!0, {}, this.regional.en)),
            (this.dpDiv = a(
                V(
                    "<div id='" +
                        this._mainDivId +
                        "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"
                )
            ))
    }
    function a(e) {
        var t =
            'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a'
        return e
            .on('mouseout', t, function () {
                V(this).removeClass('ui-state-hover'),
                    -1 !== this.className.indexOf('ui-datepicker-prev') &&
                        V(this).removeClass('ui-datepicker-prev-hover'),
                    -1 !== this.className.indexOf('ui-datepicker-next') &&
                        V(this).removeClass('ui-datepicker-next-hover')
            })
            .on('mouseover', t, d)
    }
    function d() {
        V.datepicker._isDisabledDatepicker(
            (n.inline ? n.dpDiv.parent() : n.input)[0]
        ) ||
            (V(this)
                .parents('.ui-datepicker-calendar')
                .find('a')
                .removeClass('ui-state-hover'),
            V(this).addClass('ui-state-hover'),
            -1 !== this.className.indexOf('ui-datepicker-prev') &&
                V(this).addClass('ui-datepicker-prev-hover'),
            -1 !== this.className.indexOf('ui-datepicker-next') &&
                V(this).addClass('ui-datepicker-next-hover'))
    }
    function o(e, t) {
        for (var a in (V.extend(e, t), t)) null == t[a] && (e[a] = t[a])
        return e
    }
    V.extend(V.ui, { datepicker: { version: '1.13.2' } }),
        V.extend(e.prototype, {
            markerClassName: 'hasDatepicker',
            maxRows: 4,
            _widgetDatepicker: function () {
                return this.dpDiv
            },
            setDefaults: function (e) {
                return o(this._defaults, e || {}), this
            },
            _attachDatepicker: function (e, t) {
                var a,
                    i = e.nodeName.toLowerCase(),
                    s = 'div' === i || 'span' === i
                e.id || ((this.uuid += 1), (e.id = 'dp' + this.uuid)),
                    ((a = this._newInst(V(e), s)).settings = V.extend(
                        {},
                        t || {}
                    )),
                    'input' === i
                        ? this._connectDatepicker(e, a)
                        : s && this._inlineDatepicker(e, a)
            },
            _newInst: function (e, t) {
                return {
                    id: e[0].id.replace(/([^A-Za-z0-9_\-])/g, '\\\\$1'),
                    input: e,
                    selectedDay: 0,
                    selectedMonth: 0,
                    selectedYear: 0,
                    drawMonth: 0,
                    drawYear: 0,
                    inline: t,
                    dpDiv: t
                        ? a(
                              V(
                                  "<div class='" +
                                      this._inlineClass +
                                      " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"
                              )
                          )
                        : this.dpDiv,
                }
            },
            _connectDatepicker: function (e, t) {
                var a = V(e)
                ;(t.append = V([])),
                    (t.trigger = V([])),
                    a.hasClass(this.markerClassName) ||
                        (this._attachments(a, t),
                        a
                            .addClass(this.markerClassName)
                            .on('keydown', this._doKeyDown)
                            .on('keypress', this._doKeyPress)
                            .on('keyup', this._doKeyUp),
                        this._autoSize(t),
                        V.data(e, 'datepicker', t),
                        t.settings.disabled && this._disableDatepicker(e))
            },
            _attachments: function (e, t) {
                var a,
                    i = this._get(t, 'appendText'),
                    s = this._get(t, 'isRTL')
                t.append && t.append.remove(),
                    i &&
                        ((t.append = V('<span>')
                            .addClass(this._appendClass)
                            .text(i)),
                        e[s ? 'before' : 'after'](t.append)),
                    e.off('focus', this._showDatepicker),
                    t.trigger && t.trigger.remove(),
                    ('focus' !== (a = this._get(t, 'showOn')) &&
                        'both' !== a) ||
                        e.on('focus', this._showDatepicker),
                    ('button' !== a && 'both' !== a) ||
                        ((i = this._get(t, 'buttonText')),
                        (a = this._get(t, 'buttonImage')),
                        this._get(t, 'buttonImageOnly')
                            ? (t.trigger = V('<img>')
                                  .addClass(this._triggerClass)
                                  .attr({ src: a, alt: i, title: i }))
                            : ((t.trigger = V(
                                  "<button type='button'>"
                              ).addClass(this._triggerClass)),
                              a
                                  ? t.trigger.html(
                                        V('<img>').attr({
                                            src: a,
                                            alt: i,
                                            title: i,
                                        })
                                    )
                                  : t.trigger.text(i)),
                        e[s ? 'before' : 'after'](t.trigger),
                        t.trigger.on('click', function () {
                            return (
                                V.datepicker._datepickerShowing &&
                                V.datepicker._lastInput === e[0]
                                    ? V.datepicker._hideDatepicker()
                                    : (V.datepicker._datepickerShowing &&
                                          V.datepicker._lastInput !== e[0] &&
                                          V.datepicker._hideDatepicker(),
                                      V.datepicker._showDatepicker(e[0])),
                                !1
                            )
                        }))
            },
            _autoSize: function (e) {
                var t, a, i, s, r, n
                this._get(e, 'autoSize') &&
                    !e.inline &&
                    ((r = new Date(2009, 11, 20)),
                    (n = this._get(e, 'dateFormat')).match(/[DM]/) &&
                        ((t = function (e) {
                            for (s = i = a = 0; s < e.length; s++)
                                e[s].length > a && ((a = e[s].length), (i = s))
                            return i
                        }),
                        r.setMonth(
                            t(
                                this._get(
                                    e,
                                    n.match(/MM/)
                                        ? 'monthNames'
                                        : 'monthNamesShort'
                                )
                            )
                        ),
                        r.setDate(
                            t(
                                this._get(
                                    e,
                                    n.match(/DD/) ? 'dayNames' : 'dayNamesShort'
                                )
                            ) +
                                20 -
                                r.getDay()
                        )),
                    e.input.attr('size', this._formatDate(e, r).length))
            },
            _inlineDatepicker: function (e, t) {
                var a = V(e)
                a.hasClass(this.markerClassName) ||
                    (a.addClass(this.markerClassName).append(t.dpDiv),
                    V.data(e, 'datepicker', t),
                    this._setDate(t, this._getDefaultDate(t), !0),
                    this._updateDatepicker(t),
                    this._updateAlternate(t),
                    t.settings.disabled && this._disableDatepicker(e),
                    t.dpDiv.css('display', 'block'))
            },
            _dialogDatepicker: function (e, t, a, i, s) {
                var r,
                    n = this._dialogInst
                return (
                    n ||
                        ((this.uuid += 1),
                        (r = 'dp' + this.uuid),
                        (this._dialogInput = V(
                            "<input type='text' id='" +
                                r +
                                "' style='position: absolute; top: -100px; width: 0px;'/>"
                        )),
                        this._dialogInput.on('keydown', this._doKeyDown),
                        V('body').append(this._dialogInput),
                        ((n = this._dialogInst =
                            this._newInst(this._dialogInput, !1)).settings =
                            {}),
                        V.data(this._dialogInput[0], 'datepicker', n)),
                    o(n.settings, i || {}),
                    (t =
                        t && t.constructor === Date
                            ? this._formatDate(n, t)
                            : t),
                    this._dialogInput.val(t),
                    (this._pos = s
                        ? s.length
                            ? s
                            : [s.pageX, s.pageY]
                        : null),
                    this._pos ||
                        ((r = document.documentElement.clientWidth),
                        (i = document.documentElement.clientHeight),
                        (t =
                            document.documentElement.scrollLeft ||
                            document.body.scrollLeft),
                        (s =
                            document.documentElement.scrollTop ||
                            document.body.scrollTop),
                        (this._pos = [r / 2 - 100 + t, i / 2 - 150 + s])),
                    this._dialogInput
                        .css('left', this._pos[0] + 20 + 'px')
                        .css('top', this._pos[1] + 'px'),
                    (n.settings.onSelect = a),
                    (this._inDialog = !0),
                    this.dpDiv.addClass(this._dialogClass),
                    this._showDatepicker(this._dialogInput[0]),
                    V.blockUI && V.blockUI(this.dpDiv),
                    V.data(this._dialogInput[0], 'datepicker', n),
                    this
                )
            },
            _destroyDatepicker: function (e) {
                var t,
                    a = V(e),
                    i = V.data(e, 'datepicker')
                a.hasClass(this.markerClassName) &&
                    ((t = e.nodeName.toLowerCase()),
                    V.removeData(e, 'datepicker'),
                    'input' === t
                        ? (i.append.remove(),
                          i.trigger.remove(),
                          a
                              .removeClass(this.markerClassName)
                              .off('focus', this._showDatepicker)
                              .off('keydown', this._doKeyDown)
                              .off('keypress', this._doKeyPress)
                              .off('keyup', this._doKeyUp))
                        : ('div' !== t && 'span' !== t) ||
                          a.removeClass(this.markerClassName).empty(),
                    n === i && ((n = null), (this._curInst = null)))
            },
            _enableDatepicker: function (t) {
                var e,
                    a = V(t),
                    i = V.data(t, 'datepicker')
                a.hasClass(this.markerClassName) &&
                    ('input' === (e = t.nodeName.toLowerCase())
                        ? ((t.disabled = !1),
                          i.trigger
                              .filter('button')
                              .each(function () {
                                  this.disabled = !1
                              })
                              .end()
                              .filter('img')
                              .css({ opacity: '1.0', cursor: '' }))
                        : ('div' !== e && 'span' !== e) ||
                          ((a = a.children('.' + this._inlineClass))
                              .children()
                              .removeClass('ui-state-disabled'),
                          a
                              .find(
                                  'select.ui-datepicker-month, select.ui-datepicker-year'
                              )
                              .prop('disabled', !1)),
                    (this._disabledInputs = V.map(
                        this._disabledInputs,
                        function (e) {
                            return e === t ? null : e
                        }
                    )))
            },
            _disableDatepicker: function (t) {
                var e,
                    a = V(t),
                    i = V.data(t, 'datepicker')
                a.hasClass(this.markerClassName) &&
                    ('input' === (e = t.nodeName.toLowerCase())
                        ? ((t.disabled = !0),
                          i.trigger
                              .filter('button')
                              .each(function () {
                                  this.disabled = !0
                              })
                              .end()
                              .filter('img')
                              .css({ opacity: '0.5', cursor: 'default' }))
                        : ('div' !== e && 'span' !== e) ||
                          ((a = a.children('.' + this._inlineClass))
                              .children()
                              .addClass('ui-state-disabled'),
                          a
                              .find(
                                  'select.ui-datepicker-month, select.ui-datepicker-year'
                              )
                              .prop('disabled', !0)),
                    (this._disabledInputs = V.map(
                        this._disabledInputs,
                        function (e) {
                            return e === t ? null : e
                        }
                    )),
                    (this._disabledInputs[this._disabledInputs.length] = t))
            },
            _isDisabledDatepicker: function (e) {
                if (!e) return !1
                for (var t = 0; t < this._disabledInputs.length; t++)
                    if (this._disabledInputs[t] === e) return !0
                return !1
            },
            _getInst: function (e) {
                try {
                    return V.data(e, 'datepicker')
                } catch (e) {
                    throw 'Missing instance data for this datepicker'
                }
            },
            _optionDatepicker: function (e, t, a) {
                var i,
                    s,
                    r = this._getInst(e)
                if (2 === arguments.length && 'string' == typeof t)
                    return 'defaults' === t
                        ? V.extend({}, V.datepicker._defaults)
                        : r
                          ? 'all' === t
                              ? V.extend({}, r.settings)
                              : this._get(r, t)
                          : null
                ;(i = t || {}),
                    'string' == typeof t && ((i = {})[t] = a),
                    r &&
                        (this._curInst === r && this._hideDatepicker(),
                        (s = this._getDateDatepicker(e, !0)),
                        (t = this._getMinMaxDate(r, 'min')),
                        (a = this._getMinMaxDate(r, 'max')),
                        o(r.settings, i),
                        null !== t &&
                            void 0 !== i.dateFormat &&
                            void 0 === i.minDate &&
                            (r.settings.minDate = this._formatDate(r, t)),
                        null !== a &&
                            void 0 !== i.dateFormat &&
                            void 0 === i.maxDate &&
                            (r.settings.maxDate = this._formatDate(r, a)),
                        'disabled' in i &&
                            (i.disabled
                                ? this._disableDatepicker(e)
                                : this._enableDatepicker(e)),
                        this._attachments(V(e), r),
                        this._autoSize(r),
                        this._setDate(r, s),
                        this._updateAlternate(r),
                        this._updateDatepicker(r))
            },
            _changeDatepicker: function (e, t, a) {
                this._optionDatepicker(e, t, a)
            },
            _refreshDatepicker: function (e) {
                e = this._getInst(e)
                e && this._updateDatepicker(e)
            },
            _setDateDatepicker: function (e, t) {
                e = this._getInst(e)
                e &&
                    (this._setDate(e, t),
                    this._updateDatepicker(e),
                    this._updateAlternate(e))
            },
            _getDateDatepicker: function (e, t) {
                e = this._getInst(e)
                return (
                    e && !e.inline && this._setDateFromField(e, t),
                    e ? this._getDate(e) : null
                )
            },
            _doKeyDown: function (e) {
                var t,
                    a,
                    i = V.datepicker._getInst(e.target),
                    s = !0,
                    r = i.dpDiv.is('.ui-datepicker-rtl')
                if (((i._keyEvent = !0), V.datepicker._datepickerShowing))
                    switch (e.keyCode) {
                        case 9:
                            V.datepicker._hideDatepicker(), (s = !1)
                            break
                        case 13:
                            return (
                                (a = V(
                                    'td.' +
                                        V.datepicker._dayOverClass +
                                        ':not(.' +
                                        V.datepicker._currentClass +
                                        ')',
                                    i.dpDiv
                                ))[0] &&
                                    V.datepicker._selectDay(
                                        e.target,
                                        i.selectedMonth,
                                        i.selectedYear,
                                        a[0]
                                    ),
                                (t = V.datepicker._get(i, 'onSelect'))
                                    ? ((a = V.datepicker._formatDate(i)),
                                      t.apply(i.input ? i.input[0] : null, [
                                          a,
                                          i,
                                      ]))
                                    : V.datepicker._hideDatepicker(),
                                !1
                            )
                        case 27:
                            V.datepicker._hideDatepicker()
                            break
                        case 33:
                            V.datepicker._adjustDate(
                                e.target,
                                e.ctrlKey
                                    ? -V.datepicker._get(i, 'stepBigMonths')
                                    : -V.datepicker._get(i, 'stepMonths'),
                                'M'
                            )
                            break
                        case 34:
                            V.datepicker._adjustDate(
                                e.target,
                                e.ctrlKey
                                    ? +V.datepicker._get(i, 'stepBigMonths')
                                    : +V.datepicker._get(i, 'stepMonths'),
                                'M'
                            )
                            break
                        case 35:
                            ;(e.ctrlKey || e.metaKey) &&
                                V.datepicker._clearDate(e.target),
                                (s = e.ctrlKey || e.metaKey)
                            break
                        case 36:
                            ;(e.ctrlKey || e.metaKey) &&
                                V.datepicker._gotoToday(e.target),
                                (s = e.ctrlKey || e.metaKey)
                            break
                        case 37:
                            ;(e.ctrlKey || e.metaKey) &&
                                V.datepicker._adjustDate(
                                    e.target,
                                    r ? 1 : -1,
                                    'D'
                                ),
                                (s = e.ctrlKey || e.metaKey),
                                e.originalEvent.altKey &&
                                    V.datepicker._adjustDate(
                                        e.target,
                                        e.ctrlKey
                                            ? -V.datepicker._get(
                                                  i,
                                                  'stepBigMonths'
                                              )
                                            : -V.datepicker._get(
                                                  i,
                                                  'stepMonths'
                                              ),
                                        'M'
                                    )
                            break
                        case 38:
                            ;(e.ctrlKey || e.metaKey) &&
                                V.datepicker._adjustDate(e.target, -7, 'D'),
                                (s = e.ctrlKey || e.metaKey)
                            break
                        case 39:
                            ;(e.ctrlKey || e.metaKey) &&
                                V.datepicker._adjustDate(
                                    e.target,
                                    r ? -1 : 1,
                                    'D'
                                ),
                                (s = e.ctrlKey || e.metaKey),
                                e.originalEvent.altKey &&
                                    V.datepicker._adjustDate(
                                        e.target,
                                        e.ctrlKey
                                            ? +V.datepicker._get(
                                                  i,
                                                  'stepBigMonths'
                                              )
                                            : +V.datepicker._get(
                                                  i,
                                                  'stepMonths'
                                              ),
                                        'M'
                                    )
                            break
                        case 40:
                            ;(e.ctrlKey || e.metaKey) &&
                                V.datepicker._adjustDate(e.target, 7, 'D'),
                                (s = e.ctrlKey || e.metaKey)
                            break
                        default:
                            s = !1
                    }
                else
                    36 === e.keyCode && e.ctrlKey
                        ? V.datepicker._showDatepicker(this)
                        : (s = !1)
                s && (e.preventDefault(), e.stopPropagation())
            },
            _doKeyPress: function (e) {
                var t,
                    a = V.datepicker._getInst(e.target)
                if (V.datepicker._get(a, 'constrainInput'))
                    return (
                        (t = V.datepicker._possibleChars(
                            V.datepicker._get(a, 'dateFormat')
                        )),
                        (a = String.fromCharCode(
                            null == e.charCode ? e.keyCode : e.charCode
                        )),
                        e.ctrlKey ||
                            e.metaKey ||
                            a < ' ' ||
                            !t ||
                            -1 < t.indexOf(a)
                    )
            },
            _doKeyUp: function (e) {
                e = V.datepicker._getInst(e.target)
                if (e.input.val() !== e.lastVal)
                    try {
                        V.datepicker.parseDate(
                            V.datepicker._get(e, 'dateFormat'),
                            e.input ? e.input.val() : null,
                            V.datepicker._getFormatConfig(e)
                        ) &&
                            (V.datepicker._setDateFromField(e),
                            V.datepicker._updateAlternate(e),
                            V.datepicker._updateDatepicker(e))
                    } catch (e) {}
                return !0
            },
            _showDatepicker: function (e) {
                var t, a, i, s
                'input' !== (e = e.target || e).nodeName.toLowerCase() &&
                    (e = V('input', e.parentNode)[0]),
                    V.datepicker._isDisabledDatepicker(e) ||
                        V.datepicker._lastInput === e ||
                        ((s = V.datepicker._getInst(e)),
                        V.datepicker._curInst &&
                            V.datepicker._curInst !== s &&
                            (V.datepicker._curInst.dpDiv.stop(!0, !0),
                            s &&
                                V.datepicker._datepickerShowing &&
                                V.datepicker._hideDatepicker(
                                    V.datepicker._curInst.input[0]
                                )),
                        !1 !==
                            (a = (i = V.datepicker._get(s, 'beforeShow'))
                                ? i.apply(e, [e, s])
                                : {}) &&
                            (o(s.settings, a),
                            (s.lastVal = null),
                            (V.datepicker._lastInput = e),
                            V.datepicker._setDateFromField(s),
                            V.datepicker._inDialog && (e.value = ''),
                            V.datepicker._pos ||
                                ((V.datepicker._pos = V.datepicker._findPos(e)),
                                (V.datepicker._pos[1] += e.offsetHeight)),
                            (t = !1),
                            V(e)
                                .parents()
                                .each(function () {
                                    return !(t |=
                                        'fixed' === V(this).css('position'))
                                }),
                            (i = {
                                left: V.datepicker._pos[0],
                                top: V.datepicker._pos[1],
                            }),
                            (V.datepicker._pos = null),
                            s.dpDiv.empty(),
                            s.dpDiv.css({
                                position: 'absolute',
                                display: 'block',
                                top: '-1000px',
                            }),
                            V.datepicker._updateDatepicker(s),
                            (i = V.datepicker._checkOffset(s, i, t)),
                            s.dpDiv.css({
                                position:
                                    V.datepicker._inDialog && V.blockUI
                                        ? 'static'
                                        : t
                                          ? 'fixed'
                                          : 'absolute',
                                display: 'none',
                                left: i.left + 'px',
                                top: i.top + 'px',
                            }),
                            s.inline ||
                                ((a = V.datepicker._get(s, 'showAnim')),
                                (i = V.datepicker._get(s, 'duration')),
                                s.dpDiv.css(
                                    'z-index',
                                    (function (e) {
                                        for (
                                            var t, a;
                                            e.length && e[0] !== document;

                                        ) {
                                            if (
                                                ('absolute' ===
                                                    (t = e.css('position')) ||
                                                    'relative' === t ||
                                                    'fixed' === t) &&
                                                ((a = parseInt(
                                                    e.css('zIndex'),
                                                    10
                                                )),
                                                !isNaN(a) && 0 !== a)
                                            )
                                                return a
                                            e = e.parent()
                                        }
                                        return 0
                                    })(V(e)) + 1
                                ),
                                (V.datepicker._datepickerShowing = !0),
                                V.effects && V.effects.effect[a]
                                    ? s.dpDiv.show(
                                          a,
                                          V.datepicker._get(s, 'showOptions'),
                                          i
                                      )
                                    : s.dpDiv[a || 'show'](a ? i : null),
                                V.datepicker._shouldFocusInput(s) &&
                                    s.input.trigger('focus'),
                                (V.datepicker._curInst = s))))
            },
            _updateDatepicker: function (e) {
                ;(this.maxRows = 4),
                    (n = e).dpDiv.empty().append(this._generateHTML(e)),
                    this._attachHandlers(e)
                var t,
                    a = this._getNumberOfMonths(e),
                    i = a[1],
                    s = e.dpDiv.find('.' + this._dayOverClass + ' a'),
                    r = V.datepicker._get(e, 'onUpdateDatepicker')
                0 < s.length && d.apply(s.get(0)),
                    e.dpDiv
                        .removeClass(
                            'ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4'
                        )
                        .width(''),
                    1 < i &&
                        e.dpDiv
                            .addClass('ui-datepicker-multi-' + i)
                            .css('width', 17 * i + 'em'),
                    e.dpDiv[
                        (1 !== a[0] || 1 !== a[1] ? 'add' : 'remove') + 'Class'
                    ]('ui-datepicker-multi'),
                    e.dpDiv[
                        (this._get(e, 'isRTL') ? 'add' : 'remove') + 'Class'
                    ]('ui-datepicker-rtl'),
                    e === V.datepicker._curInst &&
                        V.datepicker._datepickerShowing &&
                        V.datepicker._shouldFocusInput(e) &&
                        e.input.trigger('focus'),
                    e.yearshtml &&
                        ((t = e.yearshtml),
                        setTimeout(function () {
                            t === e.yearshtml &&
                                e.yearshtml &&
                                e.dpDiv
                                    .find('select.ui-datepicker-year')
                                    .first()
                                    .replaceWith(e.yearshtml),
                                (t = e.yearshtml = null)
                        }, 0)),
                    r && r.apply(e.input ? e.input[0] : null, [e])
            },
            _shouldFocusInput: function (e) {
                return (
                    e.input &&
                    e.input.is(':visible') &&
                    !e.input.is(':disabled') &&
                    !e.input.is(':focus')
                )
            },
            _checkOffset: function (e, t, a) {
                var i = e.dpDiv.outerWidth(),
                    s = e.dpDiv.outerHeight(),
                    r = e.input ? e.input.outerWidth() : 0,
                    n = e.input ? e.input.outerHeight() : 0,
                    d =
                        document.documentElement.clientWidth +
                        (a ? 0 : V(document).scrollLeft()),
                    o =
                        document.documentElement.clientHeight +
                        (a ? 0 : V(document).scrollTop())
                return (
                    (t.left -= this._get(e, 'isRTL') ? i - r : 0),
                    (t.left -=
                        a && t.left === e.input.offset().left
                            ? V(document).scrollLeft()
                            : 0),
                    (t.top -=
                        a && t.top === e.input.offset().top + n
                            ? V(document).scrollTop()
                            : 0),
                    (t.left -= Math.min(
                        t.left,
                        t.left + i > d && i < d ? Math.abs(t.left + i - d) : 0
                    )),
                    (t.top -= Math.min(
                        t.top,
                        t.top + s > o && s < o ? Math.abs(s + n) : 0
                    )),
                    t
                )
            },
            _findPos: function (e) {
                for (
                    var t = this._getInst(e), a = this._get(t, 'isRTL');
                    e &&
                    ('hidden' === e.type ||
                        1 !== e.nodeType ||
                        V.expr.pseudos.hidden(e));

                )
                    e = e[a ? 'previousSibling' : 'nextSibling']
                return [(t = V(e).offset()).left, t.top]
            },
            _hideDatepicker: function (e) {
                var t,
                    a,
                    i = this._curInst
                !i ||
                    (e && i !== V.data(e, 'datepicker')) ||
                    (this._datepickerShowing &&
                        ((t = this._get(i, 'showAnim')),
                        (a = this._get(i, 'duration')),
                        (e = function () {
                            V.datepicker._tidyDialog(i)
                        }),
                        V.effects && (V.effects.effect[t] || V.effects[t])
                            ? i.dpDiv.hide(
                                  t,
                                  V.datepicker._get(i, 'showOptions'),
                                  a,
                                  e
                              )
                            : i.dpDiv[
                                  'slideDown' === t
                                      ? 'slideUp'
                                      : 'fadeIn' === t
                                        ? 'fadeOut'
                                        : 'hide'
                              ](t ? a : null, e),
                        t || e(),
                        (this._datepickerShowing = !1),
                        (e = this._get(i, 'onClose')) &&
                            e.apply(i.input ? i.input[0] : null, [
                                i.input ? i.input.val() : '',
                                i,
                            ]),
                        (this._lastInput = null),
                        this._inDialog &&
                            (this._dialogInput.css({
                                position: 'absolute',
                                left: '0',
                                top: '-100px',
                            }),
                            V.blockUI &&
                                (V.unblockUI(), V('body').append(this.dpDiv))),
                        (this._inDialog = !1)))
            },
            _tidyDialog: function (e) {
                e.dpDiv
                    .removeClass(this._dialogClass)
                    .off('.ui-datepicker-calendar')
            },
            _checkExternalClick: function (e) {
                var t
                V.datepicker._curInst &&
                    ((t = V(e.target)),
                    (e = V.datepicker._getInst(t[0])),
                    ((t[0].id === V.datepicker._mainDivId ||
                        0 !== t.parents('#' + V.datepicker._mainDivId).length ||
                        t.hasClass(V.datepicker.markerClassName) ||
                        t.closest('.' + V.datepicker._triggerClass).length ||
                        !V.datepicker._datepickerShowing ||
                        (V.datepicker._inDialog && V.blockUI)) &&
                        (!t.hasClass(V.datepicker.markerClassName) ||
                            V.datepicker._curInst === e)) ||
                        V.datepicker._hideDatepicker())
            },
            _adjustDate: function (e, t, a) {
                var i = V(e),
                    e = this._getInst(i[0])
                this._isDisabledDatepicker(i[0]) ||
                    (this._adjustInstDate(e, t, a), this._updateDatepicker(e))
            },
            _gotoToday: function (e) {
                var t = V(e),
                    a = this._getInst(t[0])
                this._get(a, 'gotoCurrent') && a.currentDay
                    ? ((a.selectedDay = a.currentDay),
                      (a.drawMonth = a.selectedMonth = a.currentMonth),
                      (a.drawYear = a.selectedYear = a.currentYear))
                    : ((e = new Date()),
                      (a.selectedDay = e.getDate()),
                      (a.drawMonth = a.selectedMonth = e.getMonth()),
                      (a.drawYear = a.selectedYear = e.getFullYear())),
                    this._notifyChange(a),
                    this._adjustDate(t)
            },
            _selectMonthYear: function (e, t, a) {
                var i = V(e),
                    e = this._getInst(i[0])
                ;(e['selected' + ('M' === a ? 'Month' : 'Year')] = e[
                    'draw' + ('M' === a ? 'Month' : 'Year')
                ] =
                    parseInt(t.options[t.selectedIndex].value, 10)),
                    this._notifyChange(e),
                    this._adjustDate(i)
            },
            _selectDay: function (e, t, a, i) {
                var s = V(e)
                V(i).hasClass(this._unselectableClass) ||
                    this._isDisabledDatepicker(s[0]) ||
                    (((s = this._getInst(s[0])).selectedDay = s.currentDay =
                        parseInt(V('a', i).attr('data-date'))),
                    (s.selectedMonth = s.currentMonth = t),
                    (s.selectedYear = s.currentYear = a),
                    this._selectDate(
                        e,
                        this._formatDate(
                            s,
                            s.currentDay,
                            s.currentMonth,
                            s.currentYear
                        )
                    ))
            },
            _clearDate: function (e) {
                e = V(e)
                this._selectDate(e, '')
            },
            _selectDate: function (e, t) {
                var a = V(e),
                    e = this._getInst(a[0])
                ;(t = null != t ? t : this._formatDate(e)),
                    e.input && e.input.val(t),
                    this._updateAlternate(e),
                    (a = this._get(e, 'onSelect'))
                        ? a.apply(e.input ? e.input[0] : null, [t, e])
                        : e.input && e.input.trigger('change'),
                    e.inline
                        ? this._updateDatepicker(e)
                        : (this._hideDatepicker(),
                          (this._lastInput = e.input[0]),
                          'object' != typeof e.input[0] &&
                              e.input.trigger('focus'),
                          (this._lastInput = null))
            },
            _updateAlternate: function (e) {
                var t,
                    a,
                    i = this._get(e, 'altField')
                i &&
                    ((t =
                        this._get(e, 'altFormat') ||
                        this._get(e, 'dateFormat')),
                    (a = this._getDate(e)),
                    (e = this.formatDate(t, a, this._getFormatConfig(e))),
                    V(document).find(i).val(e))
            },
            noWeekends: function (e) {
                e = e.getDay()
                return [0 < e && e < 6, '']
            },
            iso8601Week: function (e) {
                var t = new Date(e.getTime())
                return (
                    t.setDate(t.getDate() + 4 - (t.getDay() || 7)),
                    (e = t.getTime()),
                    t.setMonth(0),
                    t.setDate(1),
                    Math.floor(Math.round((e - t) / 864e5) / 7) + 1
                )
            },
            parseDate: function (t, s, e) {
                if (null == t || null == s) throw 'Invalid arguments'
                if ('' === (s = 'object' == typeof s ? s.toString() : s + ''))
                    return null
                for (
                    var a,
                        i,
                        r,
                        n = 0,
                        d =
                            (e ? e.shortYearCutoff : null) ||
                            this._defaults.shortYearCutoff,
                        d =
                            'string' != typeof d
                                ? d
                                : (new Date().getFullYear() % 100) +
                                  parseInt(d, 10),
                        o =
                            (e ? e.dayNamesShort : null) ||
                            this._defaults.dayNamesShort,
                        c = (e ? e.dayNames : null) || this._defaults.dayNames,
                        l =
                            (e ? e.monthNamesShort : null) ||
                            this._defaults.monthNamesShort,
                        h =
                            (e ? e.monthNames : null) ||
                            this._defaults.monthNames,
                        u = -1,
                        p = -1,
                        g = -1,
                        _ = -1,
                        f = !1,
                        k = function (e) {
                            e = v + 1 < t.length && t.charAt(v + 1) === e
                            return e && v++, e
                        },
                        D = function (e) {
                            var t = k(e),
                                t =
                                    '@' === e
                                        ? 14
                                        : '!' === e
                                          ? 20
                                          : 'y' === e && t
                                            ? 4
                                            : 'o' === e
                                              ? 3
                                              : 2,
                                t = new RegExp(
                                    '^\\d{' +
                                        ('y' === e ? t : 1) +
                                        ',' +
                                        t +
                                        '}'
                                ),
                                t = s.substring(n).match(t)
                            if (!t) throw 'Missing number at position ' + n
                            return (n += t[0].length), parseInt(t[0], 10)
                        },
                        m = function (e, t, a) {
                            var i = -1,
                                t = V.map(k(e) ? a : t, function (e, t) {
                                    return [[t, e]]
                                }).sort(function (e, t) {
                                    return -(e[1].length - t[1].length)
                                })
                            if (
                                (V.each(t, function (e, t) {
                                    var a = t[1]
                                    if (
                                        s.substr(n, a.length).toLowerCase() ===
                                        a.toLowerCase()
                                    )
                                        return (i = t[0]), (n += a.length), !1
                                }),
                                -1 !== i)
                            )
                                return i + 1
                            throw 'Unknown name at position ' + n
                        },
                        y = function () {
                            if (s.charAt(n) !== t.charAt(v))
                                throw 'Unexpected literal at position ' + n
                            n++
                        },
                        v = 0;
                    v < t.length;
                    v++
                )
                    if (f) "'" !== t.charAt(v) || k("'") ? y() : (f = !1)
                    else
                        switch (t.charAt(v)) {
                            case 'd':
                                g = D('d')
                                break
                            case 'D':
                                m('D', o, c)
                                break
                            case 'o':
                                _ = D('o')
                                break
                            case 'm':
                                p = D('m')
                                break
                            case 'M':
                                p = m('M', l, h)
                                break
                            case 'y':
                                u = D('y')
                                break
                            case '@':
                                ;(u = (r = new Date(D('@'))).getFullYear()),
                                    (p = r.getMonth() + 1),
                                    (g = r.getDate())
                                break
                            case '!':
                                ;(u = (r = new Date(
                                    (D('!') - this._ticksTo1970) / 1e4
                                )).getFullYear()),
                                    (p = r.getMonth() + 1),
                                    (g = r.getDate())
                                break
                            case "'":
                                k("'") ? y() : (f = !0)
                                break
                            default:
                                y()
                        }
                if (n < s.length && ((i = s.substr(n)), !/^\s+/.test(i)))
                    throw 'Extra/unparsed characters found in date: ' + i
                if (
                    (-1 === u
                        ? (u = new Date().getFullYear())
                        : u < 100 &&
                          (u +=
                              new Date().getFullYear() -
                              (new Date().getFullYear() % 100) +
                              (u <= d ? 0 : -100)),
                    -1 < _)
                )
                    for (p = 1, g = _; ; ) {
                        if (g <= (a = this._getDaysInMonth(u, p - 1))) break
                        p++, (g -= a)
                    }
                if (
                    (r = this._daylightSavingAdjust(
                        new Date(u, p - 1, g)
                    )).getFullYear() !== u ||
                    r.getMonth() + 1 !== p ||
                    r.getDate() !== g
                )
                    throw 'Invalid date'
                return r
            },
            ATOM: 'yy-mm-dd',
            COOKIE: 'D, dd M yy',
            ISO_8601: 'yy-mm-dd',
            RFC_822: 'D, d M y',
            RFC_850: 'DD, dd-M-y',
            RFC_1036: 'D, d M y',
            RFC_1123: 'D, d M yy',
            RFC_2822: 'D, d M yy',
            RSS: 'D, d M y',
            TICKS: '!',
            TIMESTAMP: '@',
            W3C: 'yy-mm-dd',
            _ticksTo1970:
                24 *
                (718685 +
                    Math.floor(492.5) -
                    Math.floor(19.7) +
                    Math.floor(4.925)) *
                60 *
                60 *
                1e7,
            formatDate: function (t, e, a) {
                if (!e) return ''
                function i(e, t, a) {
                    var i = '' + t
                    if (l(e)) for (; i.length < a; ) i = '0' + i
                    return i
                }
                function s(e, t, a, i) {
                    return (l(e) ? i : a)[t]
                }
                var r,
                    n =
                        (a ? a.dayNamesShort : null) ||
                        this._defaults.dayNamesShort,
                    d = (a ? a.dayNames : null) || this._defaults.dayNames,
                    o =
                        (a ? a.monthNamesShort : null) ||
                        this._defaults.monthNamesShort,
                    c = (a ? a.monthNames : null) || this._defaults.monthNames,
                    l = function (e) {
                        e = r + 1 < t.length && t.charAt(r + 1) === e
                        return e && r++, e
                    },
                    h = '',
                    u = !1
                if (e)
                    for (r = 0; r < t.length; r++)
                        if (u)
                            "'" !== t.charAt(r) || l("'")
                                ? (h += t.charAt(r))
                                : (u = !1)
                        else
                            switch (t.charAt(r)) {
                                case 'd':
                                    h += i('d', e.getDate(), 2)
                                    break
                                case 'D':
                                    h += s('D', e.getDay(), n, d)
                                    break
                                case 'o':
                                    h += i(
                                        'o',
                                        Math.round(
                                            (new Date(
                                                e.getFullYear(),
                                                e.getMonth(),
                                                e.getDate()
                                            ).getTime() -
                                                new Date(
                                                    e.getFullYear(),
                                                    0,
                                                    0
                                                ).getTime()) /
                                                864e5
                                        ),
                                        3
                                    )
                                    break
                                case 'm':
                                    h += i('m', e.getMonth() + 1, 2)
                                    break
                                case 'M':
                                    h += s('M', e.getMonth(), o, c)
                                    break
                                case 'y':
                                    h += l('y')
                                        ? e.getFullYear()
                                        : (e.getFullYear() % 100 < 10
                                              ? '0'
                                              : '') +
                                          (e.getFullYear() % 100)
                                    break
                                case '@':
                                    h += e.getTime()
                                    break
                                case '!':
                                    h += 1e4 * e.getTime() + this._ticksTo1970
                                    break
                                case "'":
                                    l("'") ? (h += "'") : (u = !0)
                                    break
                                default:
                                    h += t.charAt(r)
                            }
                return h
            },
            _possibleChars: function (t) {
                for (
                    var e = '',
                        a = !1,
                        i = function (e) {
                            e = s + 1 < t.length && t.charAt(s + 1) === e
                            return e && s++, e
                        },
                        s = 0;
                    s < t.length;
                    s++
                )
                    if (a)
                        "'" !== t.charAt(s) || i("'")
                            ? (e += t.charAt(s))
                            : (a = !1)
                    else
                        switch (t.charAt(s)) {
                            case 'd':
                            case 'm':
                            case 'y':
                            case '@':
                                e += '0123456789'
                                break
                            case 'D':
                            case 'M':
                                return null
                            case "'":
                                i("'") ? (e += "'") : (a = !0)
                                break
                            default:
                                e += t.charAt(s)
                        }
                return e
            },
            _get: function (e, t) {
                return (void 0 !== e.settings[t] ? e.settings : this._defaults)[
                    t
                ]
            },
            _setDateFromField: function (e, t) {
                if (e.input.val() !== e.lastVal) {
                    var a = this._get(e, 'dateFormat'),
                        i = (e.lastVal = e.input ? e.input.val() : null),
                        s = this._getDefaultDate(e),
                        r = s,
                        n = this._getFormatConfig(e)
                    try {
                        r = this.parseDate(a, i, n) || s
                    } catch (e) {
                        i = t ? '' : i
                    }
                    ;(e.selectedDay = r.getDate()),
                        (e.drawMonth = e.selectedMonth = r.getMonth()),
                        (e.drawYear = e.selectedYear = r.getFullYear()),
                        (e.currentDay = i ? r.getDate() : 0),
                        (e.currentMonth = i ? r.getMonth() : 0),
                        (e.currentYear = i ? r.getFullYear() : 0),
                        this._adjustInstDate(e)
                }
            },
            _getDefaultDate: function (e) {
                return this._restrictMinMax(
                    e,
                    this._determineDate(
                        e,
                        this._get(e, 'defaultDate'),
                        new Date()
                    )
                )
            },
            _determineDate: function (d, e, t) {
                var a,
                    i,
                    e =
                        null == e || '' === e
                            ? t
                            : 'string' == typeof e
                              ? (function (e) {
                                    try {
                                        return V.datepicker.parseDate(
                                            V.datepicker._get(d, 'dateFormat'),
                                            e,
                                            V.datepicker._getFormatConfig(d)
                                        )
                                    } catch (e) {}
                                    for (
                                        var t =
                                                (e.toLowerCase().match(/^c/)
                                                    ? V.datepicker._getDate(d)
                                                    : null) || new Date(),
                                            a = t.getFullYear(),
                                            i = t.getMonth(),
                                            s = t.getDate(),
                                            r =
                                                /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,
                                            n = r.exec(e);
                                        n;

                                    ) {
                                        switch (n[2] || 'd') {
                                            case 'd':
                                            case 'D':
                                                s += parseInt(n[1], 10)
                                                break
                                            case 'w':
                                            case 'W':
                                                s += 7 * parseInt(n[1], 10)
                                                break
                                            case 'm':
                                            case 'M':
                                                ;(i += parseInt(n[1], 10)),
                                                    (s = Math.min(
                                                        s,
                                                        V.datepicker._getDaysInMonth(
                                                            a,
                                                            i
                                                        )
                                                    ))
                                                break
                                            case 'y':
                                            case 'Y':
                                                ;(a += parseInt(n[1], 10)),
                                                    (s = Math.min(
                                                        s,
                                                        V.datepicker._getDaysInMonth(
                                                            a,
                                                            i
                                                        )
                                                    ))
                                        }
                                        n = r.exec(e)
                                    }
                                    return new Date(a, i, s)
                                })(e)
                              : 'number' == typeof e
                                ? isNaN(e)
                                    ? t
                                    : ((a = e),
                                      (i = new Date()).setDate(i.getDate() + a),
                                      i)
                                : new Date(e.getTime())
                return (
                    (e = e && 'Invalid Date' === e.toString() ? t : e) &&
                        (e.setHours(0),
                        e.setMinutes(0),
                        e.setSeconds(0),
                        e.setMilliseconds(0)),
                    this._daylightSavingAdjust(e)
                )
            },
            _daylightSavingAdjust: function (e) {
                return e
                    ? (e.setHours(12 < e.getHours() ? e.getHours() + 2 : 0), e)
                    : null
            },
            _setDate: function (e, t, a) {
                var i = !t,
                    s = e.selectedMonth,
                    r = e.selectedYear,
                    t = this._restrictMinMax(
                        e,
                        this._determineDate(e, t, new Date())
                    )
                ;(e.selectedDay = e.currentDay = t.getDate()),
                    (e.drawMonth =
                        e.selectedMonth =
                        e.currentMonth =
                            t.getMonth()),
                    (e.drawYear =
                        e.selectedYear =
                        e.currentYear =
                            t.getFullYear()),
                    (s === e.selectedMonth && r === e.selectedYear) ||
                        a ||
                        this._notifyChange(e),
                    this._adjustInstDate(e),
                    e.input && e.input.val(i ? '' : this._formatDate(e))
            },
            _getDate: function (e) {
                return !e.currentYear || (e.input && '' === e.input.val())
                    ? null
                    : this._daylightSavingAdjust(
                          new Date(e.currentYear, e.currentMonth, e.currentDay)
                      )
            },
            _attachHandlers: function (e) {
                var t = this._get(e, 'stepMonths'),
                    a = '#' + e.id.replace(/\\\\/g, '\\')
                e.dpDiv.find('[data-handler]').map(function () {
                    var e = {
                        prev: function () {
                            V.datepicker._adjustDate(a, -t, 'M')
                        },
                        next: function () {
                            V.datepicker._adjustDate(a, +t, 'M')
                        },
                        hide: function () {
                            V.datepicker._hideDatepicker()
                        },
                        today: function () {
                            V.datepicker._gotoToday(a)
                        },
                        selectDay: function () {
                            return (
                                V.datepicker._selectDay(
                                    a,
                                    +this.getAttribute('data-month'),
                                    +this.getAttribute('data-year'),
                                    this
                                ),
                                !1
                            )
                        },
                        selectMonth: function () {
                            return (
                                V.datepicker._selectMonthYear(a, this, 'M'), !1
                            )
                        },
                        selectYear: function () {
                            return (
                                V.datepicker._selectMonthYear(a, this, 'Y'), !1
                            )
                        },
                    }
                    V(this).on(
                        this.getAttribute('data-event'),
                        e[this.getAttribute('data-handler')]
                    )
                })
            },
            _generateHTML: function (e) {
                var t,
                    a,
                    i,
                    s,
                    r,
                    n,
                    d,
                    o,
                    c,
                    l,
                    h,
                    u,
                    p,
                    g,
                    _,
                    f,
                    k,
                    D,
                    m,
                    y,
                    v,
                    M,
                    b,
                    w,
                    C,
                    I,
                    x,
                    Y,
                    S,
                    N,
                    T,
                    F,
                    A = new Date(),
                    K = this._daylightSavingAdjust(
                        new Date(A.getFullYear(), A.getMonth(), A.getDate())
                    ),
                    j = this._get(e, 'isRTL'),
                    O = this._get(e, 'showButtonPanel'),
                    E = this._get(e, 'hideIfNoPrevNext'),
                    L = this._get(e, 'navigationAsDateFormat'),
                    R = this._getNumberOfMonths(e),
                    H = this._get(e, 'showCurrentAtPos'),
                    A = this._get(e, 'stepMonths'),
                    P = 1 !== R[0] || 1 !== R[1],
                    W = this._daylightSavingAdjust(
                        e.currentDay
                            ? new Date(
                                  e.currentYear,
                                  e.currentMonth,
                                  e.currentDay
                              )
                            : new Date(9999, 9, 9)
                    ),
                    U = this._getMinMaxDate(e, 'min'),
                    z = this._getMinMaxDate(e, 'max'),
                    B = e.drawMonth - H,
                    J = e.drawYear
                if ((B < 0 && ((B += 12), J--), z))
                    for (
                        t = this._daylightSavingAdjust(
                            new Date(
                                z.getFullYear(),
                                z.getMonth() - R[0] * R[1] + 1,
                                z.getDate()
                            )
                        ),
                            t = U && t < U ? U : t;
                        this._daylightSavingAdjust(new Date(J, B, 1)) > t;

                    )
                        --B < 0 && ((B = 11), J--)
                for (
                    e.drawMonth = B,
                        e.drawYear = J,
                        H = this._get(e, 'prevText'),
                        H = L
                            ? this.formatDate(
                                  H,
                                  this._daylightSavingAdjust(
                                      new Date(J, B - A, 1)
                                  ),
                                  this._getFormatConfig(e)
                              )
                            : H,
                        a = this._canAdjustMonth(e, -1, J, B)
                            ? V('<a>')
                                  .attr({
                                      class: 'ui-datepicker-prev ui-corner-all',
                                      'data-handler': 'prev',
                                      'data-event': 'click',
                                      title: H,
                                  })
                                  .append(
                                      V('<span>')
                                          .addClass(
                                              'ui-icon ui-icon-circle-triangle-' +
                                                  (j ? 'e' : 'w')
                                          )
                                          .text(H)
                                  )[0].outerHTML
                            : E
                              ? ''
                              : V('<a>')
                                    .attr({
                                        class: 'ui-datepicker-prev ui-corner-all ui-state-disabled',
                                        title: H,
                                    })
                                    .append(
                                        V('<span>')
                                            .addClass(
                                                'ui-icon ui-icon-circle-triangle-' +
                                                    (j ? 'e' : 'w')
                                            )
                                            .text(H)
                                    )[0].outerHTML,
                        H = this._get(e, 'nextText'),
                        H = L
                            ? this.formatDate(
                                  H,
                                  this._daylightSavingAdjust(
                                      new Date(J, B + A, 1)
                                  ),
                                  this._getFormatConfig(e)
                              )
                            : H,
                        i = this._canAdjustMonth(e, 1, J, B)
                            ? V('<a>')
                                  .attr({
                                      class: 'ui-datepicker-next ui-corner-all',
                                      'data-handler': 'next',
                                      'data-event': 'click',
                                      title: H,
                                  })
                                  .append(
                                      V('<span>')
                                          .addClass(
                                              'ui-icon ui-icon-circle-triangle-' +
                                                  (j ? 'w' : 'e')
                                          )
                                          .text(H)
                                  )[0].outerHTML
                            : E
                              ? ''
                              : V('<a>')
                                    .attr({
                                        class: 'ui-datepicker-next ui-corner-all ui-state-disabled',
                                        title: H,
                                    })
                                    .append(
                                        V('<span>')
                                            .attr(
                                                'class',
                                                'ui-icon ui-icon-circle-triangle-' +
                                                    (j ? 'w' : 'e')
                                            )
                                            .text(H)
                                    )[0].outerHTML,
                        A = this._get(e, 'currentText'),
                        E = this._get(e, 'gotoCurrent') && e.currentDay ? W : K,
                        A = L
                            ? this.formatDate(A, E, this._getFormatConfig(e))
                            : A,
                        H = '',
                        e.inline ||
                            (H = V('<button>')
                                .attr({
                                    type: 'button',
                                    class: 'ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all',
                                    'data-handler': 'hide',
                                    'data-event': 'click',
                                })
                                .text(this._get(e, 'closeText'))[0].outerHTML),
                        L = '',
                        O &&
                            (L = V(
                                "<div class='ui-datepicker-buttonpane ui-widget-content'>"
                            )
                                .append(j ? H : '')
                                .append(
                                    this._isInRange(e, E)
                                        ? V('<button>')
                                              .attr({
                                                  type: 'button',
                                                  class: 'ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all',
                                                  'data-handler': 'today',
                                                  'data-event': 'click',
                                              })
                                              .text(A)
                                        : ''
                                )
                                .append(j ? '' : H)[0].outerHTML),
                        s = parseInt(this._get(e, 'firstDay'), 10),
                        s = isNaN(s) ? 0 : s,
                        r = this._get(e, 'showWeek'),
                        n = this._get(e, 'dayNames'),
                        d = this._get(e, 'dayNamesMin'),
                        o = this._get(e, 'monthNames'),
                        c = this._get(e, 'monthNamesShort'),
                        l = this._get(e, 'beforeShowDay'),
                        h = this._get(e, 'showOtherMonths'),
                        u = this._get(e, 'selectOtherMonths'),
                        p = this._getDefaultDate(e),
                        g = '',
                        f = 0;
                    f < R[0];
                    f++
                ) {
                    for (k = '', this.maxRows = 4, D = 0; D < R[1]; D++) {
                        if (
                            ((m = this._daylightSavingAdjust(
                                new Date(J, B, e.selectedDay)
                            )),
                            (y = ' ui-corner-all'),
                            (v = ''),
                            P)
                        ) {
                            if (
                                ((v += "<div class='ui-datepicker-group"),
                                1 < R[1])
                            )
                                switch (D) {
                                    case 0:
                                        ;(v += ' ui-datepicker-group-first'),
                                            (y =
                                                ' ui-corner-' +
                                                (j ? 'right' : 'left'))
                                        break
                                    case R[1] - 1:
                                        ;(v += ' ui-datepicker-group-last'),
                                            (y =
                                                ' ui-corner-' +
                                                (j ? 'left' : 'right'))
                                        break
                                    default:
                                        ;(v += ' ui-datepicker-group-middle'),
                                            (y = '')
                                }
                            v += "'>"
                        }
                        for (
                            v +=
                                "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" +
                                y +
                                "'>" +
                                (/all|left/.test(y) && 0 === f
                                    ? j
                                        ? i
                                        : a
                                    : '') +
                                (/all|right/.test(y) && 0 === f
                                    ? j
                                        ? a
                                        : i
                                    : '') +
                                this._generateMonthYearHeader(
                                    e,
                                    B,
                                    J,
                                    U,
                                    z,
                                    0 < f || 0 < D,
                                    o,
                                    c
                                ) +
                                "</div><table class='ui-datepicker-calendar'><thead><tr>",
                                M = r
                                    ? "<th class='ui-datepicker-week-col'>" +
                                      this._get(e, 'weekHeader') +
                                      '</th>'
                                    : '',
                                _ = 0;
                            _ < 7;
                            _++
                        )
                            M +=
                                "<th scope='col'" +
                                (5 <= (_ + s + 6) % 7
                                    ? " class='ui-datepicker-week-end'"
                                    : '') +
                                "><span title='" +
                                n[(b = (_ + s) % 7)] +
                                "'>" +
                                d[b] +
                                '</span></th>'
                        for (
                            v += M + '</tr></thead><tbody>',
                                C = this._getDaysInMonth(J, B),
                                J === e.selectedYear &&
                                    B === e.selectedMonth &&
                                    (e.selectedDay = Math.min(
                                        e.selectedDay,
                                        C
                                    )),
                                w =
                                    (this._getFirstDayOfMonth(J, B) - s + 7) %
                                    7,
                                C = Math.ceil((w + C) / 7),
                                I = P && this.maxRows > C ? this.maxRows : C,
                                this.maxRows = I,
                                x = this._daylightSavingAdjust(
                                    new Date(J, B, 1 - w)
                                ),
                                Y = 0;
                            Y < I;
                            Y++
                        ) {
                            for (
                                v += '<tr>',
                                    S = r
                                        ? "<td class='ui-datepicker-week-col'>" +
                                          this._get(e, 'calculateWeek')(x) +
                                          '</td>'
                                        : '',
                                    _ = 0;
                                _ < 7;
                                _++
                            )
                                (N = l
                                    ? l.apply(e.input ? e.input[0] : null, [x])
                                    : [!0, '']),
                                    (F =
                                        ((T = x.getMonth() !== B) && !u) ||
                                        !N[0] ||
                                        (U && x < U) ||
                                        (z && z < x)),
                                    (S +=
                                        "<td class='" +
                                        (5 <= (_ + s + 6) % 7
                                            ? ' ui-datepicker-week-end'
                                            : '') +
                                        (T
                                            ? ' ui-datepicker-other-month'
                                            : '') +
                                        ((x.getTime() === m.getTime() &&
                                            B === e.selectedMonth &&
                                            e._keyEvent) ||
                                        (p.getTime() === x.getTime() &&
                                            p.getTime() === m.getTime())
                                            ? ' ' + this._dayOverClass
                                            : '') +
                                        (F
                                            ? ' ' +
                                              this._unselectableClass +
                                              ' ui-state-disabled'
                                            : '') +
                                        (T && !h
                                            ? ''
                                            : ' ' +
                                              N[1] +
                                              (x.getTime() === W.getTime()
                                                  ? ' ' + this._currentClass
                                                  : '') +
                                              (x.getTime() === K.getTime()
                                                  ? ' ui-datepicker-today'
                                                  : '')) +
                                        "'" +
                                        ((T && !h) || !N[2]
                                            ? ''
                                            : " title='" +
                                              N[2].replace(/'/g, '&#39;') +
                                              "'") +
                                        (F
                                            ? ''
                                            : " data-handler='selectDay' data-event='click' data-month='" +
                                              x.getMonth() +
                                              "' data-year='" +
                                              x.getFullYear() +
                                              "'") +
                                        '>' +
                                        (T && !h
                                            ? '&#xa0;'
                                            : F
                                              ? "<span class='ui-state-default'>" +
                                                x.getDate() +
                                                '</span>'
                                              : "<a class='ui-state-default" +
                                                (x.getTime() === K.getTime()
                                                    ? ' ui-state-highlight'
                                                    : '') +
                                                (x.getTime() === W.getTime()
                                                    ? ' ui-state-active'
                                                    : '') +
                                                (T
                                                    ? ' ui-priority-secondary'
                                                    : '') +
                                                "' href='#' aria-current='" +
                                                (x.getTime() === W.getTime()
                                                    ? 'true'
                                                    : 'false') +
                                                "' data-date='" +
                                                x.getDate() +
                                                "'>" +
                                                x.getDate() +
                                                '</a>') +
                                        '</td>'),
                                    x.setDate(x.getDate() + 1),
                                    (x = this._daylightSavingAdjust(x))
                            v += S + '</tr>'
                        }
                        11 < ++B && ((B = 0), J++),
                            (k += v +=
                                '</tbody></table>' +
                                (P
                                    ? '</div>' +
                                      (0 < R[0] && D === R[1] - 1
                                          ? "<div class='ui-datepicker-row-break'></div>"
                                          : '')
                                    : ''))
                    }
                    g += k
                }
                return (g += L), (e._keyEvent = !1), g
            },
            _generateMonthYearHeader: function (e, t, a, i, s, r, n, d) {
                var o,
                    c,
                    l,
                    h,
                    u,
                    p,
                    g = this._get(e, 'changeMonth'),
                    _ = this._get(e, 'changeYear'),
                    f = this._get(e, 'showMonthAfterYear'),
                    k = this._get(e, 'selectMonthLabel'),
                    D = this._get(e, 'selectYearLabel'),
                    m = "<div class='ui-datepicker-title'>",
                    y = ''
                if (r || !g)
                    y += "<span class='ui-datepicker-month'>" + n[t] + '</span>'
                else {
                    for (
                        o = i && i.getFullYear() === a,
                            c = s && s.getFullYear() === a,
                            y +=
                                "<select class='ui-datepicker-month' aria-label='" +
                                k +
                                "' data-handler='selectMonth' data-event='change'>",
                            l = 0;
                        l < 12;
                        l++
                    )
                        (!o || l >= i.getMonth()) &&
                            (!c || l <= s.getMonth()) &&
                            (y +=
                                "<option value='" +
                                l +
                                "'" +
                                (l === t ? " selected='selected'" : '') +
                                '>' +
                                d[l] +
                                '</option>')
                    y += '</select>'
                }
                if (
                    (f || (m += y + (!r && g && _ ? '' : '&#xa0;')),
                    !e.yearshtml)
                )
                    if (((e.yearshtml = ''), r || !_))
                        m += "<span class='ui-datepicker-year'>" + a + '</span>'
                    else {
                        for (
                            n = this._get(e, 'yearRange').split(':'),
                                h = new Date().getFullYear(),
                                u = (k = function (e) {
                                    e = e.match(/c[+\-].*/)
                                        ? a + parseInt(e.substring(1), 10)
                                        : e.match(/[+\-].*/)
                                          ? h + parseInt(e, 10)
                                          : parseInt(e, 10)
                                    return isNaN(e) ? h : e
                                })(n[0]),
                                p = Math.max(u, k(n[1] || '')),
                                u = i ? Math.max(u, i.getFullYear()) : u,
                                p = s ? Math.min(p, s.getFullYear()) : p,
                                e.yearshtml +=
                                    "<select class='ui-datepicker-year' aria-label='" +
                                    D +
                                    "' data-handler='selectYear' data-event='change'>";
                            u <= p;
                            u++
                        )
                            e.yearshtml +=
                                "<option value='" +
                                u +
                                "'" +
                                (u === a ? " selected='selected'" : '') +
                                '>' +
                                u +
                                '</option>'
                        ;(e.yearshtml += '</select>'),
                            (m += e.yearshtml),
                            (e.yearshtml = null)
                    }
                return (
                    (m += this._get(e, 'yearSuffix')),
                    f && (m += (!r && g && _ ? '' : '&#xa0;') + y),
                    (m += '</div>')
                )
            },
            _adjustInstDate: function (e, t, a) {
                var i = e.selectedYear + ('Y' === a ? t : 0),
                    s = e.selectedMonth + ('M' === a ? t : 0),
                    t =
                        Math.min(e.selectedDay, this._getDaysInMonth(i, s)) +
                        ('D' === a ? t : 0),
                    t = this._restrictMinMax(
                        e,
                        this._daylightSavingAdjust(new Date(i, s, t))
                    )
                ;(e.selectedDay = t.getDate()),
                    (e.drawMonth = e.selectedMonth = t.getMonth()),
                    (e.drawYear = e.selectedYear = t.getFullYear()),
                    ('M' !== a && 'Y' !== a) || this._notifyChange(e)
            },
            _restrictMinMax: function (e, t) {
                var a = this._getMinMaxDate(e, 'min'),
                    e = this._getMinMaxDate(e, 'max'),
                    t = a && t < a ? a : t
                return e && e < t ? e : t
            },
            _notifyChange: function (e) {
                var t = this._get(e, 'onChangeMonthYear')
                t &&
                    t.apply(e.input ? e.input[0] : null, [
                        e.selectedYear,
                        e.selectedMonth + 1,
                        e,
                    ])
            },
            _getNumberOfMonths: function (e) {
                e = this._get(e, 'numberOfMonths')
                return null == e ? [1, 1] : 'number' == typeof e ? [1, e] : e
            },
            _getMinMaxDate: function (e, t) {
                return this._determineDate(e, this._get(e, t + 'Date'), null)
            },
            _getDaysInMonth: function (e, t) {
                return (
                    32 -
                    this._daylightSavingAdjust(new Date(e, t, 32)).getDate()
                )
            },
            _getFirstDayOfMonth: function (e, t) {
                return new Date(e, t, 1).getDay()
            },
            _canAdjustMonth: function (e, t, a, i) {
                var s = this._getNumberOfMonths(e),
                    s = this._daylightSavingAdjust(
                        new Date(a, i + (t < 0 ? t : s[0] * s[1]), 1)
                    )
                return (
                    t < 0 &&
                        s.setDate(
                            this._getDaysInMonth(s.getFullYear(), s.getMonth())
                        ),
                    this._isInRange(e, s)
                )
            },
            _isInRange: function (e, t) {
                var a = this._getMinMaxDate(e, 'min'),
                    i = this._getMinMaxDate(e, 'max'),
                    s = null,
                    r = null,
                    n = this._get(e, 'yearRange')
                return (
                    n &&
                        ((e = n.split(':')),
                        (n = new Date().getFullYear()),
                        (s = parseInt(e[0], 10)),
                        (r = parseInt(e[1], 10)),
                        e[0].match(/[+\-].*/) && (s += n),
                        e[1].match(/[+\-].*/) && (r += n)),
                    (!a || t.getTime() >= a.getTime()) &&
                        (!i || t.getTime() <= i.getTime()) &&
                        (!s || t.getFullYear() >= s) &&
                        (!r || t.getFullYear() <= r)
                )
            },
            _getFormatConfig: function (e) {
                var t = this._get(e, 'shortYearCutoff')
                return {
                    shortYearCutoff: (t =
                        'string' != typeof t
                            ? t
                            : (new Date().getFullYear() % 100) +
                              parseInt(t, 10)),
                    dayNamesShort: this._get(e, 'dayNamesShort'),
                    dayNames: this._get(e, 'dayNames'),
                    monthNamesShort: this._get(e, 'monthNamesShort'),
                    monthNames: this._get(e, 'monthNames'),
                }
            },
            _formatDate: function (e, t, a, i) {
                t ||
                    ((e.currentDay = e.selectedDay),
                    (e.currentMonth = e.selectedMonth),
                    (e.currentYear = e.selectedYear))
                t = t
                    ? 'object' == typeof t
                        ? t
                        : this._daylightSavingAdjust(new Date(i, a, t))
                    : this._daylightSavingAdjust(
                          new Date(e.currentYear, e.currentMonth, e.currentDay)
                      )
                return this.formatDate(
                    this._get(e, 'dateFormat'),
                    t,
                    this._getFormatConfig(e)
                )
            },
        }),
        (V.fn.datepicker = function (e) {
            if (!this.length) return this
            V.datepicker.initialized ||
                (V(document).on('mousedown', V.datepicker._checkExternalClick),
                (V.datepicker.initialized = !0)),
                0 === V('#' + V.datepicker._mainDivId).length &&
                    V('body').append(V.datepicker.dpDiv)
            var t = Array.prototype.slice.call(arguments, 1)
            return ('string' == typeof e &&
                ('isDisabled' === e || 'getDate' === e || 'widget' === e)) ||
                ('option' === e &&
                    2 === arguments.length &&
                    'string' == typeof arguments[1])
                ? V.datepicker['_' + e + 'Datepicker'].apply(
                      V.datepicker,
                      [this[0]].concat(t)
                  )
                : this.each(function () {
                      'string' == typeof e
                          ? V.datepicker['_' + e + 'Datepicker'].apply(
                                V.datepicker,
                                [this].concat(t)
                            )
                          : V.datepicker._attachDatepicker(this, e)
                  })
        }),
        (V.datepicker = new e()),
        (V.datepicker.initialized = !1),
        (V.datepicker.uuid = new Date().getTime()),
        (V.datepicker.version = '1.13.2')
    V.datepicker
})

/* END datepicker */

/* START horizontal calendar */

!(function (e, a) {
    'object' == typeof exports && 'undefined' != typeof module
        ? (module.exports = a())
        : 'function' == typeof define && define.amd
          ? define(a)
          : (e.moment = a())
})(this, function () {
    'use strict'
    var e, n
    function l() {
        return e.apply(null, arguments)
    }
    function _(e) {
        return (
            e instanceof Array ||
            '[object Array]' === Object.prototype.toString.call(e)
        )
    }
    function i(e) {
        return (
            null != e && '[object Object]' === Object.prototype.toString.call(e)
        )
    }
    function o(e) {
        return void 0 === e
    }
    function m(e) {
        return (
            'number' == typeof e ||
            '[object Number]' === Object.prototype.toString.call(e)
        )
    }
    function u(e) {
        return (
            e instanceof Date ||
            '[object Date]' === Object.prototype.toString.call(e)
        )
    }
    function M(e, a) {
        var t,
            s = []
        for (t = 0; t < e.length; ++t) s.push(a(e[t], t))
        return s
    }
    function h(e, a) {
        return Object.prototype.hasOwnProperty.call(e, a)
    }
    function L(e, a) {
        for (var t in a) h(a, t) && (e[t] = a[t])
        return (
            h(a, 'toString') && (e.toString = a.toString),
            h(a, 'valueOf') && (e.valueOf = a.valueOf),
            e
        )
    }
    function c(e, a, t, s) {
        return Sa(e, a, t, s, !0).utc()
    }
    function Y(e) {
        return (
            null == e._pf &&
                (e._pf = {
                    empty: !1,
                    unusedTokens: [],
                    unusedInput: [],
                    overflow: -2,
                    charsLeftOver: 0,
                    nullInput: !1,
                    invalidMonth: null,
                    invalidFormat: !1,
                    userInvalidated: !1,
                    iso: !1,
                    parsedDateParts: [],
                    meridiem: null,
                    rfc2822: !1,
                    weekdayMismatch: !1,
                }),
            e._pf
        )
    }
    function y(e) {
        if (null == e._isValid) {
            var a = Y(e),
                t = n.call(a.parsedDateParts, function (e) {
                    return null != e
                }),
                s =
                    !isNaN(e._d.getTime()) &&
                    a.overflow < 0 &&
                    !a.empty &&
                    !a.invalidMonth &&
                    !a.invalidWeekday &&
                    !a.weekdayMismatch &&
                    !a.nullInput &&
                    !a.invalidFormat &&
                    !a.userInvalidated &&
                    (!a.meridiem || (a.meridiem && t))
            if (
                (e._strict &&
                    (s =
                        s &&
                        0 === a.charsLeftOver &&
                        0 === a.unusedTokens.length &&
                        void 0 === a.bigHour),
                null != Object.isFrozen && Object.isFrozen(e))
            )
                return s
            e._isValid = s
        }
        return e._isValid
    }
    function f(e) {
        var a = c(NaN)
        return null != e ? L(Y(a), e) : (Y(a).userInvalidated = !0), a
    }
    n = Array.prototype.some
        ? Array.prototype.some
        : function (e) {
              for (var a = Object(this), t = a.length >>> 0, s = 0; s < t; s++)
                  if (s in a && e.call(this, a[s], s, a)) return !0
              return !1
          }
    var d = (l.momentProperties = [])
    function k(e, a) {
        var t, s, n
        if (
            (o(a._isAMomentObject) || (e._isAMomentObject = a._isAMomentObject),
            o(a._i) || (e._i = a._i),
            o(a._f) || (e._f = a._f),
            o(a._l) || (e._l = a._l),
            o(a._strict) || (e._strict = a._strict),
            o(a._tzm) || (e._tzm = a._tzm),
            o(a._isUTC) || (e._isUTC = a._isUTC),
            o(a._offset) || (e._offset = a._offset),
            o(a._pf) || (e._pf = Y(a)),
            o(a._locale) || (e._locale = a._locale),
            0 < d.length)
        )
            for (t = 0; t < d.length; t++) o((n = a[(s = d[t])])) || (e[s] = n)
        return e
    }
    var a = !1
    function p(e) {
        k(this, e),
            (this._d = new Date(null != e._d ? e._d.getTime() : NaN)),
            this.isValid() || (this._d = new Date(NaN)),
            !1 === a && ((a = !0), l.updateOffset(this), (a = !1))
    }
    function D(e) {
        return e instanceof p || (null != e && null != e._isAMomentObject)
    }
    function T(e) {
        return e < 0 ? Math.ceil(e) || 0 : Math.floor(e)
    }
    function g(e) {
        var a = +e,
            t = 0
        return 0 !== a && isFinite(a) && (t = T(a)), t
    }
    function r(e, a, t) {
        var s,
            n = Math.min(e.length, a.length),
            d = Math.abs(e.length - a.length),
            r = 0
        for (s = 0; s < n; s++)
            ((t && e[s] !== a[s]) || (!t && g(e[s]) !== g(a[s]))) && r++
        return r + d
    }
    function w(e) {
        !1 === l.suppressDeprecationWarnings &&
            'undefined' != typeof console &&
            console.warn &&
            console.warn('Deprecation warning: ' + e)
    }
    function t(n, d) {
        var r = !0
        return L(function () {
            if (
                (null != l.deprecationHandler && l.deprecationHandler(null, n),
                r)
            ) {
                for (var e, a = [], t = 0; t < arguments.length; t++) {
                    if (((e = ''), 'object' == typeof arguments[t])) {
                        for (var s in ((e += '\n[' + t + '] '), arguments[0]))
                            e += s + ': ' + arguments[0][s] + ', '
                        e = e.slice(0, -2)
                    } else e = arguments[t]
                    a.push(e)
                }
                w(
                    n +
                        '\nArguments: ' +
                        Array.prototype.slice.call(a).join('') +
                        '\n' +
                        new Error().stack
                ),
                    (r = !1)
            }
            return d.apply(this, arguments)
        }, d)
    }
    var s,
        v = {}
    function S(e, a) {
        null != l.deprecationHandler && l.deprecationHandler(e, a),
            v[e] || (w(a), (v[e] = !0))
    }
    function H(e) {
        return (
            e instanceof Function ||
            '[object Function]' === Object.prototype.toString.call(e)
        )
    }
    function b(e, a) {
        var t,
            s = L({}, e)
        for (t in a)
            h(a, t) &&
                (i(e[t]) && i(a[t])
                    ? ((s[t] = {}), L(s[t], e[t]), L(s[t], a[t]))
                    : null != a[t]
                      ? (s[t] = a[t])
                      : delete s[t])
        for (t in e) h(e, t) && !h(a, t) && i(e[t]) && (s[t] = L({}, s[t]))
        return s
    }
    function j(e) {
        null != e && this.set(e)
    }
    ;(l.suppressDeprecationWarnings = !1),
        (l.deprecationHandler = null),
        (s = Object.keys
            ? Object.keys
            : function (e) {
                  var a,
                      t = []
                  for (a in e) h(e, a) && t.push(a)
                  return t
              })
    var x = {}
    function O(e, a) {
        var t = e.toLowerCase()
        x[t] = x[t + 's'] = x[a] = e
    }
    function P(e) {
        return 'string' == typeof e ? x[e] || x[e.toLowerCase()] : void 0
    }
    function W(e) {
        var a,
            t,
            s = {}
        for (t in e) h(e, t) && (a = P(t)) && (s[a] = e[t])
        return s
    }
    var A = {}
    function E(e, a) {
        A[e] = a
    }
    function F(e, a, t) {
        var s = '' + Math.abs(e),
            n = a - s.length
        return (
            (0 <= e ? (t ? '+' : '') : '-') +
            Math.pow(10, Math.max(0, n)).toString().substr(1) +
            s
        )
    }
    var z =
            /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
        J = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
        N = {},
        R = {}
    function C(e, a, t, s) {
        var n = s
        'string' == typeof s &&
            (n = function () {
                return this[s]()
            }),
            e && (R[e] = n),
            a &&
                (R[a[0]] = function () {
                    return F(n.apply(this, arguments), a[1], a[2])
                }),
            t &&
                (R[t] = function () {
                    return this.localeData().ordinal(
                        n.apply(this, arguments),
                        e
                    )
                })
    }
    function I(e, a) {
        return e.isValid()
            ? ((a = U(a, e.localeData())),
              (N[a] =
                  N[a] ||
                  (function (s) {
                      var e,
                          n,
                          a,
                          d = s.match(z)
                      for (e = 0, n = d.length; e < n; e++)
                          R[d[e]]
                              ? (d[e] = R[d[e]])
                              : (d[e] = (a = d[e]).match(/\[[\s\S]/)
                                    ? a.replace(/^\[|\]$/g, '')
                                    : a.replace(/\\/g, ''))
                      return function (e) {
                          var a,
                              t = ''
                          for (a = 0; a < n; a++)
                              t += H(d[a]) ? d[a].call(e, s) : d[a]
                          return t
                      }
                  })(a)),
              N[a](e))
            : e.localeData().invalidDate()
    }
    function U(e, a) {
        var t = 5
        function s(e) {
            return a.longDateFormat(e) || e
        }
        for (J.lastIndex = 0; 0 <= t && J.test(e); )
            (e = e.replace(J, s)), (J.lastIndex = 0), (t -= 1)
        return e
    }
    var G = /\d/,
        V = /\d\d/,
        K = /\d{3}/,
        Z = /\d{4}/,
        $ = /[+-]?\d{6}/,
        B = /\d\d?/,
        q = /\d\d\d\d?/,
        Q = /\d\d\d\d\d\d?/,
        X = /\d{1,3}/,
        ee = /\d{1,4}/,
        ae = /[+-]?\d{1,6}/,
        te = /\d+/,
        se = /[+-]?\d+/,
        ne = /Z|[+-]\d\d:?\d\d/gi,
        de = /Z|[+-]\d\d(?::?\d\d)?/gi,
        re =
            /[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,
        _e = {}
    function ie(e, t, s) {
        _e[e] = H(t)
            ? t
            : function (e, a) {
                  return e && s ? s : t
              }
    }
    function oe(e, a) {
        return h(_e, e)
            ? _e[e](a._strict, a._locale)
            : new RegExp(
                  me(
                      e
                          .replace('\\', '')
                          .replace(
                              /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,
                              function (e, a, t, s, n) {
                                  return a || t || s || n
                              }
                          )
                  )
              )
    }
    function me(e) {
        return e.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')
    }
    var ue = {}
    function le(e, t) {
        var a,
            s = t
        for (
            'string' == typeof e && (e = [e]),
                m(t) &&
                    (s = function (e, a) {
                        a[t] = g(e)
                    }),
                a = 0;
            a < e.length;
            a++
        )
            ue[e[a]] = s
    }
    function Me(e, n) {
        le(e, function (e, a, t, s) {
            ;(t._w = t._w || {}), n(e, t._w, t, s)
        })
    }
    var he = 0,
        Le = 1,
        ce = 2,
        Ye = 3,
        ye = 4,
        fe = 5,
        ke = 6,
        pe = 7,
        De = 8
    function Te(e) {
        return ge(e) ? 366 : 365
    }
    function ge(e) {
        return (e % 4 == 0 && e % 100 != 0) || e % 400 == 0
    }
    C('Y', 0, 0, function () {
        var e = this.year()
        return e <= 9999 ? '' + e : '+' + e
    }),
        C(0, ['YY', 2], 0, function () {
            return this.year() % 100
        }),
        C(0, ['YYYY', 4], 0, 'year'),
        C(0, ['YYYYY', 5], 0, 'year'),
        C(0, ['YYYYYY', 6, !0], 0, 'year'),
        O('year', 'y'),
        E('year', 1),
        ie('Y', se),
        ie('YY', B, V),
        ie('YYYY', ee, Z),
        ie('YYYYY', ae, $),
        ie('YYYYYY', ae, $),
        le(['YYYYY', 'YYYYYY'], he),
        le('YYYY', function (e, a) {
            a[he] = 2 === e.length ? l.parseTwoDigitYear(e) : g(e)
        }),
        le('YY', function (e, a) {
            a[he] = l.parseTwoDigitYear(e)
        }),
        le('Y', function (e, a) {
            a[he] = parseInt(e, 10)
        }),
        (l.parseTwoDigitYear = function (e) {
            return g(e) + (68 < g(e) ? 1900 : 2e3)
        })
    var we,
        ve = Se('FullYear', !0)
    function Se(a, t) {
        return function (e) {
            return null != e
                ? (be(this, a, e), l.updateOffset(this, t), this)
                : He(this, a)
        }
    }
    function He(e, a) {
        return e.isValid() ? e._d['get' + (e._isUTC ? 'UTC' : '') + a]() : NaN
    }
    function be(e, a, t) {
        e.isValid() &&
            !isNaN(t) &&
            ('FullYear' === a &&
            ge(e.year()) &&
            1 === e.month() &&
            29 === e.date()
                ? e._d['set' + (e._isUTC ? 'UTC' : '') + a](
                      t,
                      e.month(),
                      je(t, e.month())
                  )
                : e._d['set' + (e._isUTC ? 'UTC' : '') + a](t))
    }
    function je(e, a) {
        if (isNaN(e) || isNaN(a)) return NaN
        var t,
            s = ((a % (t = 12)) + t) % t
        return (
            (e += (a - s) / 12),
            1 === s ? (ge(e) ? 29 : 28) : 31 - ((s % 7) % 2)
        )
    }
    ;(we = Array.prototype.indexOf
        ? Array.prototype.indexOf
        : function (e) {
              var a
              for (a = 0; a < this.length; ++a) if (this[a] === e) return a
              return -1
          }),
        C('M', ['MM', 2], 'Mo', function () {
            return this.month() + 1
        }),
        C('MMM', 0, 0, function (e) {
            return this.localeData().monthsShort(this, e)
        }),
        C('MMMM', 0, 0, function (e) {
            return this.localeData().months(this, e)
        }),
        O('month', 'M'),
        E('month', 8),
        ie('M', B),
        ie('MM', B, V),
        ie('MMM', function (e, a) {
            return a.monthsShortRegex(e)
        }),
        ie('MMMM', function (e, a) {
            return a.monthsRegex(e)
        }),
        le(['M', 'MM'], function (e, a) {
            a[Le] = g(e) - 1
        }),
        le(['MMM', 'MMMM'], function (e, a, t, s) {
            var n = t._locale.monthsParse(e, s, t._strict)
            null != n ? (a[Le] = n) : (Y(t).invalidMonth = e)
        })
    var xe = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,
        Oe =
            'January_February_March_April_May_June_July_August_September_October_November_December'.split(
                '_'
            )
    var Pe = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_')
    function We(e, a) {
        var t
        if (!e.isValid()) return e
        if ('string' == typeof a)
            if (/^\d+$/.test(a)) a = g(a)
            else if (!m((a = e.localeData().monthsParse(a)))) return e
        return (
            (t = Math.min(e.date(), je(e.year(), a))),
            e._d['set' + (e._isUTC ? 'UTC' : '') + 'Month'](a, t),
            e
        )
    }
    function Ae(e) {
        return null != e
            ? (We(this, e), l.updateOffset(this, !0), this)
            : He(this, 'Month')
    }
    var Ee = re
    var Fe = re
    function ze() {
        function e(e, a) {
            return a.length - e.length
        }
        var a,
            t,
            s = [],
            n = [],
            d = []
        for (a = 0; a < 12; a++)
            (t = c([2e3, a])),
                s.push(this.monthsShort(t, '')),
                n.push(this.months(t, '')),
                d.push(this.months(t, '')),
                d.push(this.monthsShort(t, ''))
        for (s.sort(e), n.sort(e), d.sort(e), a = 0; a < 12; a++)
            (s[a] = me(s[a])), (n[a] = me(n[a]))
        for (a = 0; a < 24; a++) d[a] = me(d[a])
        ;(this._monthsRegex = new RegExp('^(' + d.join('|') + ')', 'i')),
            (this._monthsShortRegex = this._monthsRegex),
            (this._monthsStrictRegex = new RegExp(
                '^(' + n.join('|') + ')',
                'i'
            )),
            (this._monthsShortStrictRegex = new RegExp(
                '^(' + s.join('|') + ')',
                'i'
            ))
    }
    function Je(e) {
        var a
        if (e < 100 && 0 <= e) {
            var t = Array.prototype.slice.call(arguments)
            ;(t[0] = e + 400),
                (a = new Date(Date.UTC.apply(null, t))),
                isFinite(a.getUTCFullYear()) && a.setUTCFullYear(e)
        } else a = new Date(Date.UTC.apply(null, arguments))
        return a
    }
    function Ne(e, a, t) {
        var s = 7 + a - t
        return -((7 + Je(e, 0, s).getUTCDay() - a) % 7) + s - 1
    }
    function Re(e, a, t, s, n) {
        var d,
            r,
            _ = 1 + 7 * (a - 1) + ((7 + t - s) % 7) + Ne(e, s, n)
        return (
            (r =
                _ <= 0
                    ? Te((d = e - 1)) + _
                    : _ > Te(e)
                      ? ((d = e + 1), _ - Te(e))
                      : ((d = e), _)),
            { year: d, dayOfYear: r }
        )
    }
    function Ce(e, a, t) {
        var s,
            n,
            d = Ne(e.year(), a, t),
            r = Math.floor((e.dayOfYear() - d - 1) / 7) + 1
        return (
            r < 1
                ? (s = r + Ie((n = e.year() - 1), a, t))
                : r > Ie(e.year(), a, t)
                  ? ((s = r - Ie(e.year(), a, t)), (n = e.year() + 1))
                  : ((n = e.year()), (s = r)),
            { week: s, year: n }
        )
    }
    function Ie(e, a, t) {
        var s = Ne(e, a, t),
            n = Ne(e + 1, a, t)
        return (Te(e) - s + n) / 7
    }
    C('w', ['ww', 2], 'wo', 'week'),
        C('W', ['WW', 2], 'Wo', 'isoWeek'),
        O('week', 'w'),
        O('isoWeek', 'W'),
        E('week', 5),
        E('isoWeek', 5),
        ie('w', B),
        ie('ww', B, V),
        ie('W', B),
        ie('WW', B, V),
        Me(['w', 'ww', 'W', 'WW'], function (e, a, t, s) {
            a[s.substr(0, 1)] = g(e)
        })
    function Ue(e, a) {
        return e.slice(a, 7).concat(e.slice(0, a))
    }
    C('d', 0, 'do', 'day'),
        C('dd', 0, 0, function (e) {
            return this.localeData().weekdaysMin(this, e)
        }),
        C('ddd', 0, 0, function (e) {
            return this.localeData().weekdaysShort(this, e)
        }),
        C('dddd', 0, 0, function (e) {
            return this.localeData().weekdays(this, e)
        }),
        C('e', 0, 0, 'weekday'),
        C('E', 0, 0, 'isoWeekday'),
        O('day', 'd'),
        O('weekday', 'e'),
        O('isoWeekday', 'E'),
        E('day', 11),
        E('weekday', 11),
        E('isoWeekday', 11),
        ie('d', B),
        ie('e', B),
        ie('E', B),
        ie('dd', function (e, a) {
            return a.weekdaysMinRegex(e)
        }),
        ie('ddd', function (e, a) {
            return a.weekdaysShortRegex(e)
        }),
        ie('dddd', function (e, a) {
            return a.weekdaysRegex(e)
        }),
        Me(['dd', 'ddd', 'dddd'], function (e, a, t, s) {
            var n = t._locale.weekdaysParse(e, s, t._strict)
            null != n ? (a.d = n) : (Y(t).invalidWeekday = e)
        }),
        Me(['d', 'e', 'E'], function (e, a, t, s) {
            a[s] = g(e)
        })
    var Ge = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
        '_'
    )
    var Ve = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_')
    var Ke = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_')
    var Ze = re
    var $e = re
    var Be = re
    function qe() {
        function e(e, a) {
            return a.length - e.length
        }
        var a,
            t,
            s,
            n,
            d,
            r = [],
            _ = [],
            i = [],
            o = []
        for (a = 0; a < 7; a++)
            (t = c([2e3, 1]).day(a)),
                (s = this.weekdaysMin(t, '')),
                (n = this.weekdaysShort(t, '')),
                (d = this.weekdays(t, '')),
                r.push(s),
                _.push(n),
                i.push(d),
                o.push(s),
                o.push(n),
                o.push(d)
        for (r.sort(e), _.sort(e), i.sort(e), o.sort(e), a = 0; a < 7; a++)
            (_[a] = me(_[a])), (i[a] = me(i[a])), (o[a] = me(o[a]))
        ;(this._weekdaysRegex = new RegExp('^(' + o.join('|') + ')', 'i')),
            (this._weekdaysShortRegex = this._weekdaysRegex),
            (this._weekdaysMinRegex = this._weekdaysRegex),
            (this._weekdaysStrictRegex = new RegExp(
                '^(' + i.join('|') + ')',
                'i'
            )),
            (this._weekdaysShortStrictRegex = new RegExp(
                '^(' + _.join('|') + ')',
                'i'
            )),
            (this._weekdaysMinStrictRegex = new RegExp(
                '^(' + r.join('|') + ')',
                'i'
            ))
    }
    function Qe() {
        return this.hours() % 12 || 12
    }
    function Xe(e, a) {
        C(e, 0, 0, function () {
            return this.localeData().meridiem(this.hours(), this.minutes(), a)
        })
    }
    function ea(e, a) {
        return a._meridiemParse
    }
    C('H', ['HH', 2], 0, 'hour'),
        C('h', ['hh', 2], 0, Qe),
        C('k', ['kk', 2], 0, function () {
            return this.hours() || 24
        }),
        C('hmm', 0, 0, function () {
            return '' + Qe.apply(this) + F(this.minutes(), 2)
        }),
        C('hmmss', 0, 0, function () {
            return (
                '' +
                Qe.apply(this) +
                F(this.minutes(), 2) +
                F(this.seconds(), 2)
            )
        }),
        C('Hmm', 0, 0, function () {
            return '' + this.hours() + F(this.minutes(), 2)
        }),
        C('Hmmss', 0, 0, function () {
            return (
                '' + this.hours() + F(this.minutes(), 2) + F(this.seconds(), 2)
            )
        }),
        Xe('a', !0),
        Xe('A', !1),
        O('hour', 'h'),
        E('hour', 13),
        ie('a', ea),
        ie('A', ea),
        ie('H', B),
        ie('h', B),
        ie('k', B),
        ie('HH', B, V),
        ie('hh', B, V),
        ie('kk', B, V),
        ie('hmm', q),
        ie('hmmss', Q),
        ie('Hmm', q),
        ie('Hmmss', Q),
        le(['H', 'HH'], Ye),
        le(['k', 'kk'], function (e, a, t) {
            var s = g(e)
            a[Ye] = 24 === s ? 0 : s
        }),
        le(['a', 'A'], function (e, a, t) {
            ;(t._isPm = t._locale.isPM(e)), (t._meridiem = e)
        }),
        le(['h', 'hh'], function (e, a, t) {
            ;(a[Ye] = g(e)), (Y(t).bigHour = !0)
        }),
        le('hmm', function (e, a, t) {
            var s = e.length - 2
            ;(a[Ye] = g(e.substr(0, s))),
                (a[ye] = g(e.substr(s))),
                (Y(t).bigHour = !0)
        }),
        le('hmmss', function (e, a, t) {
            var s = e.length - 4,
                n = e.length - 2
            ;(a[Ye] = g(e.substr(0, s))),
                (a[ye] = g(e.substr(s, 2))),
                (a[fe] = g(e.substr(n))),
                (Y(t).bigHour = !0)
        }),
        le('Hmm', function (e, a, t) {
            var s = e.length - 2
            ;(a[Ye] = g(e.substr(0, s))), (a[ye] = g(e.substr(s)))
        }),
        le('Hmmss', function (e, a, t) {
            var s = e.length - 4,
                n = e.length - 2
            ;(a[Ye] = g(e.substr(0, s))),
                (a[ye] = g(e.substr(s, 2))),
                (a[fe] = g(e.substr(n)))
        })
    var aa,
        ta = Se('Hours', !0),
        sa = {
            calendar: {
                sameDay: '[Today at] LT',
                nextDay: '[Tomorrow at] LT',
                nextWeek: 'dddd [at] LT',
                lastDay: '[Yesterday at] LT',
                lastWeek: '[Last] dddd [at] LT',
                sameElse: 'L',
            },
            longDateFormat: {
                LTS: 'h:mm:ss A',
                LT: 'h:mm A',
                L: 'MM/DD/YYYY',
                LL: 'MMMM D, YYYY',
                LLL: 'MMMM D, YYYY h:mm A',
                LLLL: 'dddd, MMMM D, YYYY h:mm A',
            },
            invalidDate: 'Invalid date',
            ordinal: '%d',
            dayOfMonthOrdinalParse: /\d{1,2}/,
            relativeTime: {
                future: 'in %s',
                past: '%s ago',
                s: 'a few seconds',
                ss: '%d seconds',
                m: 'a minute',
                mm: '%d minutes',
                h: 'an hour',
                hh: '%d hours',
                d: 'a day',
                dd: '%d days',
                M: 'a month',
                MM: '%d months',
                y: 'a year',
                yy: '%d years',
            },
            months: Oe,
            monthsShort: Pe,
            week: { dow: 0, doy: 6 },
            weekdays: Ge,
            weekdaysMin: Ke,
            weekdaysShort: Ve,
            meridiemParse: /[ap]\.?m?\.?/i,
        },
        na = {},
        da = {}
    function ra(e) {
        return e ? e.toLowerCase().replace('_', '-') : e
    }
    function _a(e) {
        var a = null
        if (!na[e] && 'undefined' != typeof module && module && module.exports)
            try {
                ;(a = aa._abbr), require('./locale/' + e), ia(a)
            } catch (e) {}
        return na[e]
    }
    function ia(e, a) {
        var t
        return (
            e &&
                ((t = o(a) ? ma(e) : oa(e, a))
                    ? (aa = t)
                    : 'undefined' != typeof console &&
                      console.warn &&
                      console.warn(
                          'Locale ' +
                              e +
                              ' not found. Did you forget to load it?'
                      )),
            aa._abbr
        )
    }
    function oa(e, a) {
        if (null === a) return delete na[e], null
        var t,
            s = sa
        if (((a.abbr = e), null != na[e]))
            S(
                'defineLocaleOverride',
                'use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'
            ),
                (s = na[e]._config)
        else if (null != a.parentLocale)
            if (null != na[a.parentLocale]) s = na[a.parentLocale]._config
            else {
                if (null == (t = _a(a.parentLocale)))
                    return (
                        da[a.parentLocale] || (da[a.parentLocale] = []),
                        da[a.parentLocale].push({ name: e, config: a }),
                        null
                    )
                s = t._config
            }
        return (
            (na[e] = new j(b(s, a))),
            da[e] &&
                da[e].forEach(function (e) {
                    oa(e.name, e.config)
                }),
            ia(e),
            na[e]
        )
    }
    function ma(e) {
        var a
        if ((e && e._locale && e._locale._abbr && (e = e._locale._abbr), !e))
            return aa
        if (!_(e)) {
            if ((a = _a(e))) return a
            e = [e]
        }
        return (function (e) {
            for (var a, t, s, n, d = 0; d < e.length; ) {
                for (
                    a = (n = ra(e[d]).split('-')).length,
                        t = (t = ra(e[d + 1])) ? t.split('-') : null;
                    0 < a;

                ) {
                    if ((s = _a(n.slice(0, a).join('-')))) return s
                    if (t && t.length >= a && r(n, t, !0) >= a - 1) break
                    a--
                }
                d++
            }
            return aa
        })(e)
    }
    function ua(e) {
        var a,
            t = e._a
        return (
            t &&
                -2 === Y(e).overflow &&
                ((a =
                    t[Le] < 0 || 11 < t[Le]
                        ? Le
                        : t[ce] < 1 || t[ce] > je(t[he], t[Le])
                          ? ce
                          : t[Ye] < 0 ||
                              24 < t[Ye] ||
                              (24 === t[Ye] &&
                                  (0 !== t[ye] || 0 !== t[fe] || 0 !== t[ke]))
                            ? Ye
                            : t[ye] < 0 || 59 < t[ye]
                              ? ye
                              : t[fe] < 0 || 59 < t[fe]
                                ? fe
                                : t[ke] < 0 || 999 < t[ke]
                                  ? ke
                                  : -1),
                Y(e)._overflowDayOfYear && (a < he || ce < a) && (a = ce),
                Y(e)._overflowWeeks && -1 === a && (a = pe),
                Y(e)._overflowWeekday && -1 === a && (a = De),
                (Y(e).overflow = a)),
            e
        )
    }
    function la(e, a, t) {
        return null != e ? e : null != a ? a : t
    }
    function Ma(e) {
        var a,
            t,
            s,
            n,
            d,
            r = []
        if (!e._d) {
            var _, i
            for (
                _ = e,
                    i = new Date(l.now()),
                    s = _._useUTC
                        ? [i.getUTCFullYear(), i.getUTCMonth(), i.getUTCDate()]
                        : [i.getFullYear(), i.getMonth(), i.getDate()],
                    e._w &&
                        null == e._a[ce] &&
                        null == e._a[Le] &&
                        (function (e) {
                            var a, t, s, n, d, r, _, i
                            if (
                                null != (a = e._w).GG ||
                                null != a.W ||
                                null != a.E
                            )
                                (d = 1),
                                    (r = 4),
                                    (t = la(
                                        a.GG,
                                        e._a[he],
                                        Ce(Ha(), 1, 4).year
                                    )),
                                    (s = la(a.W, 1)),
                                    ((n = la(a.E, 1)) < 1 || 7 < n) && (i = !0)
                            else {
                                ;(d = e._locale._week.dow),
                                    (r = e._locale._week.doy)
                                var o = Ce(Ha(), d, r)
                                ;(t = la(a.gg, e._a[he], o.year)),
                                    (s = la(a.w, o.week)),
                                    null != a.d
                                        ? ((n = a.d) < 0 || 6 < n) && (i = !0)
                                        : null != a.e
                                          ? ((n = a.e + d),
                                            (a.e < 0 || 6 < a.e) && (i = !0))
                                          : (n = d)
                            }
                            s < 1 || s > Ie(t, d, r)
                                ? (Y(e)._overflowWeeks = !0)
                                : null != i
                                  ? (Y(e)._overflowWeekday = !0)
                                  : ((_ = Re(t, s, n, d, r)),
                                    (e._a[he] = _.year),
                                    (e._dayOfYear = _.dayOfYear))
                        })(e),
                    null != e._dayOfYear &&
                        ((d = la(e._a[he], s[he])),
                        (e._dayOfYear > Te(d) || 0 === e._dayOfYear) &&
                            (Y(e)._overflowDayOfYear = !0),
                        (t = Je(d, 0, e._dayOfYear)),
                        (e._a[Le] = t.getUTCMonth()),
                        (e._a[ce] = t.getUTCDate())),
                    a = 0;
                a < 3 && null == e._a[a];
                ++a
            )
                e._a[a] = r[a] = s[a]
            for (; a < 7; a++)
                e._a[a] = r[a] = null == e._a[a] ? (2 === a ? 1 : 0) : e._a[a]
            24 === e._a[Ye] &&
                0 === e._a[ye] &&
                0 === e._a[fe] &&
                0 === e._a[ke] &&
                ((e._nextDay = !0), (e._a[Ye] = 0)),
                (e._d = (
                    e._useUTC
                        ? Je
                        : function (e, a, t, s, n, d, r) {
                              var _
                              return (
                                  e < 100 && 0 <= e
                                      ? ((_ = new Date(
                                            e + 400,
                                            a,
                                            t,
                                            s,
                                            n,
                                            d,
                                            r
                                        )),
                                        isFinite(_.getFullYear()) &&
                                            _.setFullYear(e))
                                      : (_ = new Date(e, a, t, s, n, d, r)),
                                  _
                              )
                          }
                ).apply(null, r)),
                (n = e._useUTC ? e._d.getUTCDay() : e._d.getDay()),
                null != e._tzm &&
                    e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm),
                e._nextDay && (e._a[Ye] = 24),
                e._w &&
                    void 0 !== e._w.d &&
                    e._w.d !== n &&
                    (Y(e).weekdayMismatch = !0)
        }
    }
    var ha =
            /^\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)?)?$/,
        La =
            /^\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)?)?$/,
        ca = /Z|[+-]\d\d(?::?\d\d)?/,
        Ya = [
            ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
            ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
            ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
            ['GGGG-[W]WW', /\d{4}-W\d\d/, !1],
            ['YYYY-DDD', /\d{4}-\d{3}/],
            ['YYYY-MM', /\d{4}-\d\d/, !1],
            ['YYYYYYMMDD', /[+-]\d{10}/],
            ['YYYYMMDD', /\d{8}/],
            ['GGGG[W]WWE', /\d{4}W\d{3}/],
            ['GGGG[W]WW', /\d{4}W\d{2}/, !1],
            ['YYYYDDD', /\d{7}/],
        ],
        ya = [
            ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
            ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
            ['HH:mm:ss', /\d\d:\d\d:\d\d/],
            ['HH:mm', /\d\d:\d\d/],
            ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
            ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
            ['HHmmss', /\d\d\d\d\d\d/],
            ['HHmm', /\d\d\d\d/],
            ['HH', /\d\d/],
        ],
        fa = /^\/?Date\((\-?\d+)/i
    function ka(e) {
        var a,
            t,
            s,
            n,
            d,
            r,
            _ = e._i,
            i = ha.exec(_) || La.exec(_)
        if (i) {
            for (Y(e).iso = !0, a = 0, t = Ya.length; a < t; a++)
                if (Ya[a][1].exec(i[1])) {
                    ;(n = Ya[a][0]), (s = !1 !== Ya[a][2])
                    break
                }
            if (null == n) return void (e._isValid = !1)
            if (i[3]) {
                for (a = 0, t = ya.length; a < t; a++)
                    if (ya[a][1].exec(i[3])) {
                        d = (i[2] || ' ') + ya[a][0]
                        break
                    }
                if (null == d) return void (e._isValid = !1)
            }
            if (!s && null != d) return void (e._isValid = !1)
            if (i[4]) {
                if (!ca.exec(i[4])) return void (e._isValid = !1)
                r = 'Z'
            }
            ;(e._f = n + (d || '') + (r || '')), wa(e)
        } else e._isValid = !1
    }
    var pa =
        /^(?:(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}))$/
    function Da(e, a, t, s, n, d) {
        var r = [
            (function (e) {
                var a = parseInt(e, 10)
                {
                    if (a <= 49) return 2e3 + a
                    if (a <= 999) return 1900 + a
                }
                return a
            })(e),
            Pe.indexOf(a),
            parseInt(t, 10),
            parseInt(s, 10),
            parseInt(n, 10),
        ]
        return d && r.push(parseInt(d, 10)), r
    }
    var Ta = {
        UT: 0,
        GMT: 0,
        EDT: -240,
        EST: -300,
        CDT: -300,
        CST: -360,
        MDT: -360,
        MST: -420,
        PDT: -420,
        PST: -480,
    }
    function ga(e) {
        var a,
            t,
            s,
            n = pa.exec(
                e._i
                    .replace(/\([^)]*\)|[\n\t]/g, ' ')
                    .replace(/(\s\s+)/g, ' ')
                    .replace(/^\s\s*/, '')
                    .replace(/\s\s*$/, '')
            )
        if (n) {
            var d = Da(n[4], n[3], n[2], n[5], n[6], n[7])
            if (
                ((a = n[1]),
                (t = d),
                (s = e),
                a &&
                    Ve.indexOf(a) !== new Date(t[0], t[1], t[2]).getDay() &&
                    ((Y(s).weekdayMismatch = !0), !(s._isValid = !1)))
            )
                return
            ;(e._a = d),
                (e._tzm = (function (e, a, t) {
                    if (e) return Ta[e]
                    if (a) return 0
                    var s = parseInt(t, 10),
                        n = s % 100
                    return ((s - n) / 100) * 60 + n
                })(n[8], n[9], n[10])),
                (e._d = Je.apply(null, e._a)),
                e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm),
                (Y(e).rfc2822 = !0)
        } else e._isValid = !1
    }
    function wa(e) {
        if (e._f !== l.ISO_8601)
            if (e._f !== l.RFC_2822) {
                ;(e._a = []), (Y(e).empty = !0)
                var a,
                    t,
                    s,
                    n,
                    d,
                    r,
                    _,
                    i,
                    o = '' + e._i,
                    m = o.length,
                    u = 0
                for (
                    s = U(e._f, e._locale).match(z) || [], a = 0;
                    a < s.length;
                    a++
                )
                    (n = s[a]),
                        (t = (o.match(oe(n, e)) || [])[0]) &&
                            (0 < (d = o.substr(0, o.indexOf(t))).length &&
                                Y(e).unusedInput.push(d),
                            (o = o.slice(o.indexOf(t) + t.length)),
                            (u += t.length)),
                        R[n]
                            ? (t
                                  ? (Y(e).empty = !1)
                                  : Y(e).unusedTokens.push(n),
                              (r = n),
                              (i = e),
                              null != (_ = t) &&
                                  h(ue, r) &&
                                  ue[r](_, i._a, i, r))
                            : e._strict && !t && Y(e).unusedTokens.push(n)
                ;(Y(e).charsLeftOver = m - u),
                    0 < o.length && Y(e).unusedInput.push(o),
                    e._a[Ye] <= 12 &&
                        !0 === Y(e).bigHour &&
                        0 < e._a[Ye] &&
                        (Y(e).bigHour = void 0),
                    (Y(e).parsedDateParts = e._a.slice(0)),
                    (Y(e).meridiem = e._meridiem),
                    (e._a[Ye] = (function (e, a, t) {
                        var s
                        if (null == t) return a
                        return null != e.meridiemHour
                            ? e.meridiemHour(a, t)
                            : (null != e.isPM &&
                                  ((s = e.isPM(t)) && a < 12 && (a += 12),
                                  s || 12 !== a || (a = 0)),
                              a)
                    })(e._locale, e._a[Ye], e._meridiem)),
                    Ma(e),
                    ua(e)
            } else ga(e)
        else ka(e)
    }
    function va(e) {
        var a,
            t,
            s,
            n,
            d = e._i,
            r = e._f
        return (
            (e._locale = e._locale || ma(e._l)),
            null === d || (void 0 === r && '' === d)
                ? f({ nullInput: !0 })
                : ('string' == typeof d && (e._i = d = e._locale.preparse(d)),
                  D(d)
                      ? new p(ua(d))
                      : (u(d)
                            ? (e._d = d)
                            : _(r)
                              ? (function (e) {
                                    var a, t, s, n, d
                                    if (0 === e._f.length)
                                        return (
                                            (Y(e).invalidFormat = !0),
                                            (e._d = new Date(NaN))
                                        )
                                    for (n = 0; n < e._f.length; n++)
                                        (d = 0),
                                            (a = k({}, e)),
                                            null != e._useUTC &&
                                                (a._useUTC = e._useUTC),
                                            (a._f = e._f[n]),
                                            wa(a),
                                            y(a) &&
                                                ((d += Y(a).charsLeftOver),
                                                (d +=
                                                    10 *
                                                    Y(a).unusedTokens.length),
                                                (Y(a).score = d),
                                                (null == s || d < s) &&
                                                    ((s = d), (t = a)))
                                    L(e, t || a)
                                })(e)
                              : r
                                ? wa(e)
                                : o((t = (a = e)._i))
                                  ? (a._d = new Date(l.now()))
                                  : u(t)
                                    ? (a._d = new Date(t.valueOf()))
                                    : 'string' == typeof t
                                      ? ((s = a),
                                        null === (n = fa.exec(s._i))
                                            ? (ka(s),
                                              !1 === s._isValid &&
                                                  (delete s._isValid,
                                                  ga(s),
                                                  !1 === s._isValid &&
                                                      (delete s._isValid,
                                                      l.createFromInputFallback(
                                                          s
                                                      ))))
                                            : (s._d = new Date(+n[1])))
                                      : _(t)
                                        ? ((a._a = M(t.slice(0), function (e) {
                                              return parseInt(e, 10)
                                          })),
                                          Ma(a))
                                        : i(t)
                                          ? (function (e) {
                                                if (!e._d) {
                                                    var a = W(e._i)
                                                    ;(e._a = M(
                                                        [
                                                            a.year,
                                                            a.month,
                                                            a.day || a.date,
                                                            a.hour,
                                                            a.minute,
                                                            a.second,
                                                            a.millisecond,
                                                        ],
                                                        function (e) {
                                                            return (
                                                                e &&
                                                                parseInt(e, 10)
                                                            )
                                                        }
                                                    )),
                                                        Ma(e)
                                                }
                                            })(a)
                                          : m(t)
                                            ? (a._d = new Date(t))
                                            : l.createFromInputFallback(a),
                        y(e) || (e._d = null),
                        e))
        )
    }
    function Sa(e, a, t, s, n) {
        var d,
            r = {}
        return (
            (!0 !== t && !1 !== t) || ((s = t), (t = void 0)),
            ((i(e) &&
                (function (e) {
                    if (Object.getOwnPropertyNames)
                        return 0 === Object.getOwnPropertyNames(e).length
                    var a
                    for (a in e) if (e.hasOwnProperty(a)) return !1
                    return !0
                })(e)) ||
                (_(e) && 0 === e.length)) &&
                (e = void 0),
            (r._isAMomentObject = !0),
            (r._useUTC = r._isUTC = n),
            (r._l = t),
            (r._i = e),
            (r._f = a),
            (r._strict = s),
            (d = new p(ua(va(r))))._nextDay &&
                (d.add(1, 'd'), (d._nextDay = void 0)),
            d
        )
    }
    function Ha(e, a, t, s) {
        return Sa(e, a, t, s, !1)
    }
    ;(l.createFromInputFallback = t(
        'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',
        function (e) {
            e._d = new Date(e._i + (e._useUTC ? ' UTC' : ''))
        }
    )),
        (l.ISO_8601 = function () {}),
        (l.RFC_2822 = function () {})
    var ba = t(
            'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
            function () {
                var e = Ha.apply(null, arguments)
                return this.isValid() && e.isValid()
                    ? e < this
                        ? this
                        : e
                    : f()
            }
        ),
        ja = t(
            'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
            function () {
                var e = Ha.apply(null, arguments)
                return this.isValid() && e.isValid()
                    ? this < e
                        ? this
                        : e
                    : f()
            }
        )
    function xa(e, a) {
        var t, s
        if ((1 === a.length && _(a[0]) && (a = a[0]), !a.length)) return Ha()
        for (t = a[0], s = 1; s < a.length; ++s)
            (a[s].isValid() && !a[s][e](t)) || (t = a[s])
        return t
    }
    var Oa = [
        'year',
        'quarter',
        'month',
        'week',
        'day',
        'hour',
        'minute',
        'second',
        'millisecond',
    ]
    function Pa(e) {
        var a = W(e),
            t = a.year || 0,
            s = a.quarter || 0,
            n = a.month || 0,
            d = a.week || a.isoWeek || 0,
            r = a.day || 0,
            _ = a.hour || 0,
            i = a.minute || 0,
            o = a.second || 0,
            m = a.millisecond || 0
        ;(this._isValid = (function (e) {
            for (var a in e)
                if (-1 === we.call(Oa, a) || (null != e[a] && isNaN(e[a])))
                    return !1
            for (var t = !1, s = 0; s < Oa.length; ++s)
                if (e[Oa[s]]) {
                    if (t) return !1
                    parseFloat(e[Oa[s]]) !== g(e[Oa[s]]) && (t = !0)
                }
            return !0
        })(a)),
            (this._milliseconds = +m + 1e3 * o + 6e4 * i + 1e3 * _ * 60 * 60),
            (this._days = +r + 7 * d),
            (this._months = +n + 3 * s + 12 * t),
            (this._data = {}),
            (this._locale = ma()),
            this._bubble()
    }
    function Wa(e) {
        return e instanceof Pa
    }
    function Aa(e) {
        return e < 0 ? -1 * Math.round(-1 * e) : Math.round(e)
    }
    function Ea(e, t) {
        C(e, 0, 0, function () {
            var e = this.utcOffset(),
                a = '+'
            return (
                e < 0 && ((e = -e), (a = '-')),
                a + F(~~(e / 60), 2) + t + F(~~e % 60, 2)
            )
        })
    }
    Ea('Z', ':'),
        Ea('ZZ', ''),
        ie('Z', de),
        ie('ZZ', de),
        le(['Z', 'ZZ'], function (e, a, t) {
            ;(t._useUTC = !0), (t._tzm = za(de, e))
        })
    var Fa = /([\+\-]|\d\d)/gi
    function za(e, a) {
        var t = (a || '').match(e)
        if (null === t) return null
        var s = ((t[t.length - 1] || []) + '').match(Fa) || ['-', 0, 0],
            n = 60 * s[1] + g(s[2])
        return 0 === n ? 0 : '+' === s[0] ? n : -n
    }
    function Ja(e, a) {
        var t, s
        return a._isUTC
            ? ((t = a.clone()),
              (s =
                  (D(e) || u(e) ? e.valueOf() : Ha(e).valueOf()) - t.valueOf()),
              t._d.setTime(t._d.valueOf() + s),
              l.updateOffset(t, !1),
              t)
            : Ha(e).local()
    }
    function Na(e) {
        return 15 * -Math.round(e._d.getTimezoneOffset() / 15)
    }
    function Ra() {
        return !!this.isValid() && this._isUTC && 0 === this._offset
    }
    l.updateOffset = function () {}
    var Ca = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,
        Ia =
            /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/
    function Ua(e, a) {
        var t,
            s,
            n,
            d = e,
            r = null
        return (
            Wa(e)
                ? (d = { ms: e._milliseconds, d: e._days, M: e._months })
                : m(e)
                  ? ((d = {}), a ? (d[a] = e) : (d.milliseconds = e))
                  : (r = Ca.exec(e))
                    ? ((t = '-' === r[1] ? -1 : 1),
                      (d = {
                          y: 0,
                          d: g(r[ce]) * t,
                          h: g(r[Ye]) * t,
                          m: g(r[ye]) * t,
                          s: g(r[fe]) * t,
                          ms: g(Aa(1e3 * r[ke])) * t,
                      }))
                    : (r = Ia.exec(e))
                      ? ((t = '-' === r[1] ? -1 : 1),
                        (d = {
                            y: Ga(r[2], t),
                            M: Ga(r[3], t),
                            w: Ga(r[4], t),
                            d: Ga(r[5], t),
                            h: Ga(r[6], t),
                            m: Ga(r[7], t),
                            s: Ga(r[8], t),
                        }))
                      : null == d
                        ? (d = {})
                        : 'object' == typeof d &&
                          ('from' in d || 'to' in d) &&
                          ((n = (function (e, a) {
                              var t
                              if (!e.isValid() || !a.isValid())
                                  return { milliseconds: 0, months: 0 }
                              ;(a = Ja(a, e)),
                                  e.isBefore(a)
                                      ? (t = Va(e, a))
                                      : (((t = Va(a, e)).milliseconds =
                                            -t.milliseconds),
                                        (t.months = -t.months))
                              return t
                          })(Ha(d.from), Ha(d.to))),
                          ((d = {}).ms = n.milliseconds),
                          (d.M = n.months)),
            (s = new Pa(d)),
            Wa(e) && h(e, '_locale') && (s._locale = e._locale),
            s
        )
    }
    function Ga(e, a) {
        var t = e && parseFloat(e.replace(',', '.'))
        return (isNaN(t) ? 0 : t) * a
    }
    function Va(e, a) {
        var t = {}
        return (
            (t.months = a.month() - e.month() + 12 * (a.year() - e.year())),
            e.clone().add(t.months, 'M').isAfter(a) && --t.months,
            (t.milliseconds = +a - +e.clone().add(t.months, 'M')),
            t
        )
    }
    function Ka(s, n) {
        return function (e, a) {
            var t
            return (
                null === a ||
                    isNaN(+a) ||
                    (S(
                        n,
                        'moment().' +
                            n +
                            '(period, number) is deprecated. Please use moment().' +
                            n +
                            '(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'
                    ),
                    (t = e),
                    (e = a),
                    (a = t)),
                Za(this, Ua((e = 'string' == typeof e ? +e : e), a), s),
                this
            )
        }
    }
    function Za(e, a, t, s) {
        var n = a._milliseconds,
            d = Aa(a._days),
            r = Aa(a._months)
        e.isValid() &&
            ((s = null == s || s),
            r && We(e, He(e, 'Month') + r * t),
            d && be(e, 'Date', He(e, 'Date') + d * t),
            n && e._d.setTime(e._d.valueOf() + n * t),
            s && l.updateOffset(e, d || r))
    }
    ;(Ua.fn = Pa.prototype),
        (Ua.invalid = function () {
            return Ua(NaN)
        })
    var $a = Ka(1, 'add'),
        Ba = Ka(-1, 'subtract')
    function qa(e, a) {
        var t = 12 * (a.year() - e.year()) + (a.month() - e.month()),
            s = e.clone().add(t, 'months')
        return (
            -(
                t +
                (a - s < 0
                    ? (a - s) / (s - e.clone().add(t - 1, 'months'))
                    : (a - s) / (e.clone().add(t + 1, 'months') - s))
            ) || 0
        )
    }
    function Qa(e) {
        var a
        return void 0 === e
            ? this._locale._abbr
            : (null != (a = ma(e)) && (this._locale = a), this)
    }
    ;(l.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'),
        (l.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]')
    var Xa = t(
        'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
        function (e) {
            return void 0 === e ? this.localeData() : this.locale(e)
        }
    )
    function et() {
        return this._locale
    }
    var at = 126227808e5
    function tt(e, a) {
        return ((e % a) + a) % a
    }
    function st(e, a, t) {
        return e < 100 && 0 <= e
            ? new Date(e + 400, a, t) - at
            : new Date(e, a, t).valueOf()
    }
    function nt(e, a, t) {
        return e < 100 && 0 <= e
            ? Date.UTC(e + 400, a, t) - at
            : Date.UTC(e, a, t)
    }
    function dt(e, a) {
        C(0, [e, e.length], 0, a)
    }
    function rt(e, a, t, s, n) {
        var d
        return null == e
            ? Ce(this, s, n).year
            : ((d = Ie(e, s, n)) < a && (a = d),
              function (e, a, t, s, n) {
                  var d = Re(e, a, t, s, n),
                      r = Je(d.year, 0, d.dayOfYear)
                  return (
                      this.year(r.getUTCFullYear()),
                      this.month(r.getUTCMonth()),
                      this.date(r.getUTCDate()),
                      this
                  )
              }.call(this, e, a, t, s, n))
    }
    C(0, ['gg', 2], 0, function () {
        return this.weekYear() % 100
    }),
        C(0, ['GG', 2], 0, function () {
            return this.isoWeekYear() % 100
        }),
        dt('gggg', 'weekYear'),
        dt('ggggg', 'weekYear'),
        dt('GGGG', 'isoWeekYear'),
        dt('GGGGG', 'isoWeekYear'),
        O('weekYear', 'gg'),
        O('isoWeekYear', 'GG'),
        E('weekYear', 1),
        E('isoWeekYear', 1),
        ie('G', se),
        ie('g', se),
        ie('GG', B, V),
        ie('gg', B, V),
        ie('GGGG', ee, Z),
        ie('gggg', ee, Z),
        ie('GGGGG', ae, $),
        ie('ggggg', ae, $),
        Me(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (e, a, t, s) {
            a[s.substr(0, 2)] = g(e)
        }),
        Me(['gg', 'GG'], function (e, a, t, s) {
            a[s] = l.parseTwoDigitYear(e)
        }),
        C('Q', 0, 'Qo', 'quarter'),
        O('quarter', 'Q'),
        E('quarter', 7),
        ie('Q', G),
        le('Q', function (e, a) {
            a[Le] = 3 * (g(e) - 1)
        }),
        C('D', ['DD', 2], 'Do', 'date'),
        O('date', 'D'),
        E('date', 9),
        ie('D', B),
        ie('DD', B, V),
        ie('Do', function (e, a) {
            return e
                ? a._dayOfMonthOrdinalParse || a._ordinalParse
                : a._dayOfMonthOrdinalParseLenient
        }),
        le(['D', 'DD'], ce),
        le('Do', function (e, a) {
            a[ce] = g(e.match(B)[0])
        })
    var _t = Se('Date', !0)
    C('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'),
        O('dayOfYear', 'DDD'),
        E('dayOfYear', 4),
        ie('DDD', X),
        ie('DDDD', K),
        le(['DDD', 'DDDD'], function (e, a, t) {
            t._dayOfYear = g(e)
        }),
        C('m', ['mm', 2], 0, 'minute'),
        O('minute', 'm'),
        E('minute', 14),
        ie('m', B),
        ie('mm', B, V),
        le(['m', 'mm'], ye)
    var it = Se('Minutes', !1)
    C('s', ['ss', 2], 0, 'second'),
        O('second', 's'),
        E('second', 15),
        ie('s', B),
        ie('ss', B, V),
        le(['s', 'ss'], fe)
    var ot,
        mt = Se('Seconds', !1)
    for (
        C('S', 0, 0, function () {
            return ~~(this.millisecond() / 100)
        }),
            C(0, ['SS', 2], 0, function () {
                return ~~(this.millisecond() / 10)
            }),
            C(0, ['SSS', 3], 0, 'millisecond'),
            C(0, ['SSSS', 4], 0, function () {
                return 10 * this.millisecond()
            }),
            C(0, ['SSSSS', 5], 0, function () {
                return 100 * this.millisecond()
            }),
            C(0, ['SSSSSS', 6], 0, function () {
                return 1e3 * this.millisecond()
            }),
            C(0, ['SSSSSSS', 7], 0, function () {
                return 1e4 * this.millisecond()
            }),
            C(0, ['SSSSSSSS', 8], 0, function () {
                return 1e5 * this.millisecond()
            }),
            C(0, ['SSSSSSSSS', 9], 0, function () {
                return 1e6 * this.millisecond()
            }),
            O('millisecond', 'ms'),
            E('millisecond', 16),
            ie('S', X, G),
            ie('SS', X, V),
            ie('SSS', X, K),
            ot = 'SSSS';
        ot.length <= 9;
        ot += 'S'
    )
        ie(ot, te)
    function ut(e, a) {
        a[ke] = g(1e3 * ('0.' + e))
    }
    for (ot = 'S'; ot.length <= 9; ot += 'S') le(ot, ut)
    var lt = Se('Milliseconds', !1)
    C('z', 0, 0, 'zoneAbbr'), C('zz', 0, 0, 'zoneName')
    var Mt = p.prototype
    function ht(e) {
        return e
    }
    ;(Mt.add = $a),
        (Mt.calendar = function (e, a) {
            var t = e || Ha(),
                s = Ja(t, this).startOf('day'),
                n = l.calendarFormat(this, s) || 'sameElse',
                d = a && (H(a[n]) ? a[n].call(this, t) : a[n])
            return this.format(d || this.localeData().calendar(n, this, Ha(t)))
        }),
        (Mt.clone = function () {
            return new p(this)
        }),
        (Mt.diff = function (e, a, t) {
            var s, n, d
            if (!this.isValid()) return NaN
            if (!(s = Ja(e, this)).isValid()) return NaN
            switch (
                ((n = 6e4 * (s.utcOffset() - this.utcOffset())), (a = P(a)))
            ) {
                case 'year':
                    d = qa(this, s) / 12
                    break
                case 'month':
                    d = qa(this, s)
                    break
                case 'quarter':
                    d = qa(this, s) / 3
                    break
                case 'second':
                    d = (this - s) / 1e3
                    break
                case 'minute':
                    d = (this - s) / 6e4
                    break
                case 'hour':
                    d = (this - s) / 36e5
                    break
                case 'day':
                    d = (this - s - n) / 864e5
                    break
                case 'week':
                    d = (this - s - n) / 6048e5
                    break
                default:
                    d = this - s
            }
            return t ? d : T(d)
        }),
        (Mt.endOf = function (e) {
            var a
            if (void 0 === (e = P(e)) || 'millisecond' === e || !this.isValid())
                return this
            var t = this._isUTC ? nt : st
            switch (e) {
                case 'year':
                    a = t(this.year() + 1, 0, 1) - 1
                    break
                case 'quarter':
                    a =
                        t(
                            this.year(),
                            this.month() - (this.month() % 3) + 3,
                            1
                        ) - 1
                    break
                case 'month':
                    a = t(this.year(), this.month() + 1, 1) - 1
                    break
                case 'week':
                    a =
                        t(
                            this.year(),
                            this.month(),
                            this.date() - this.weekday() + 7
                        ) - 1
                    break
                case 'isoWeek':
                    a =
                        t(
                            this.year(),
                            this.month(),
                            this.date() - (this.isoWeekday() - 1) + 7
                        ) - 1
                    break
                case 'day':
                case 'date':
                    a = t(this.year(), this.month(), this.date() + 1) - 1
                    break
                case 'hour':
                    ;(a = this._d.valueOf()),
                        (a +=
                            36e5 -
                            tt(
                                a + (this._isUTC ? 0 : 6e4 * this.utcOffset()),
                                36e5
                            ) -
                            1)
                    break
                case 'minute':
                    ;(a = this._d.valueOf()), (a += 6e4 - tt(a, 6e4) - 1)
                    break
                case 'second':
                    ;(a = this._d.valueOf()), (a += 1e3 - tt(a, 1e3) - 1)
                    break
            }
            return this._d.setTime(a), l.updateOffset(this, !0), this
        }),
        (Mt.format = function (e) {
            e || (e = this.isUtc() ? l.defaultFormatUtc : l.defaultFormat)
            var a = I(this, e)
            return this.localeData().postformat(a)
        }),
        (Mt.from = function (e, a) {
            return this.isValid() && ((D(e) && e.isValid()) || Ha(e).isValid())
                ? Ua({ to: this, from: e }).locale(this.locale()).humanize(!a)
                : this.localeData().invalidDate()
        }),
        (Mt.fromNow = function (e) {
            return this.from(Ha(), e)
        }),
        (Mt.to = function (e, a) {
            return this.isValid() && ((D(e) && e.isValid()) || Ha(e).isValid())
                ? Ua({ from: this, to: e }).locale(this.locale()).humanize(!a)
                : this.localeData().invalidDate()
        }),
        (Mt.toNow = function (e) {
            return this.to(Ha(), e)
        }),
        (Mt.get = function (e) {
            return H(this[(e = P(e))]) ? this[e]() : this
        }),
        (Mt.invalidAt = function () {
            return Y(this).overflow
        }),
        (Mt.isAfter = function (e, a) {
            var t = D(e) ? e : Ha(e)
            return (
                !(!this.isValid() || !t.isValid()) &&
                ('millisecond' === (a = P(a) || 'millisecond')
                    ? this.valueOf() > t.valueOf()
                    : t.valueOf() < this.clone().startOf(a).valueOf())
            )
        }),
        (Mt.isBefore = function (e, a) {
            var t = D(e) ? e : Ha(e)
            return (
                !(!this.isValid() || !t.isValid()) &&
                ('millisecond' === (a = P(a) || 'millisecond')
                    ? this.valueOf() < t.valueOf()
                    : this.clone().endOf(a).valueOf() < t.valueOf())
            )
        }),
        (Mt.isBetween = function (e, a, t, s) {
            var n = D(e) ? e : Ha(e),
                d = D(a) ? a : Ha(a)
            return (
                !!(this.isValid() && n.isValid() && d.isValid()) &&
                ('(' === (s = s || '()')[0]
                    ? this.isAfter(n, t)
                    : !this.isBefore(n, t)) &&
                (')' === s[1] ? this.isBefore(d, t) : !this.isAfter(d, t))
            )
        }),
        (Mt.isSame = function (e, a) {
            var t,
                s = D(e) ? e : Ha(e)
            return (
                !(!this.isValid() || !s.isValid()) &&
                ('millisecond' === (a = P(a) || 'millisecond')
                    ? this.valueOf() === s.valueOf()
                    : ((t = s.valueOf()),
                      this.clone().startOf(a).valueOf() <= t &&
                          t <= this.clone().endOf(a).valueOf()))
            )
        }),
        (Mt.isSameOrAfter = function (e, a) {
            return this.isSame(e, a) || this.isAfter(e, a)
        }),
        (Mt.isSameOrBefore = function (e, a) {
            return this.isSame(e, a) || this.isBefore(e, a)
        }),
        (Mt.isValid = function () {
            return y(this)
        }),
        (Mt.lang = Xa),
        (Mt.locale = Qa),
        (Mt.localeData = et),
        (Mt.max = ja),
        (Mt.min = ba),
        (Mt.parsingFlags = function () {
            return L({}, Y(this))
        }),
        (Mt.set = function (e, a) {
            if ('object' == typeof e)
                for (
                    var t = (function (e) {
                            var a = []
                            for (var t in e) a.push({ unit: t, priority: A[t] })
                            return (
                                a.sort(function (e, a) {
                                    return e.priority - a.priority
                                }),
                                a
                            )
                        })((e = W(e))),
                        s = 0;
                    s < t.length;
                    s++
                )
                    this[t[s].unit](e[t[s].unit])
            else if (H(this[(e = P(e))])) return this[e](a)
            return this
        }),
        (Mt.startOf = function (e) {
            var a
            if (void 0 === (e = P(e)) || 'millisecond' === e || !this.isValid())
                return this
            var t = this._isUTC ? nt : st
            switch (e) {
                case 'year':
                    a = t(this.year(), 0, 1)
                    break
                case 'quarter':
                    a = t(this.year(), this.month() - (this.month() % 3), 1)
                    break
                case 'month':
                    a = t(this.year(), this.month(), 1)
                    break
                case 'week':
                    a = t(
                        this.year(),
                        this.month(),
                        this.date() - this.weekday()
                    )
                    break
                case 'isoWeek':
                    a = t(
                        this.year(),
                        this.month(),
                        this.date() - (this.isoWeekday() - 1)
                    )
                    break
                case 'day':
                case 'date':
                    a = t(this.year(), this.month(), this.date())
                    break
                case 'hour':
                    ;(a = this._d.valueOf()),
                        (a -= tt(
                            a + (this._isUTC ? 0 : 6e4 * this.utcOffset()),
                            36e5
                        ))
                    break
                case 'minute':
                    ;(a = this._d.valueOf()), (a -= tt(a, 6e4))
                    break
                case 'second':
                    ;(a = this._d.valueOf()), (a -= tt(a, 1e3))
                    break
            }
            return this._d.setTime(a), l.updateOffset(this, !0), this
        }),
        (Mt.subtract = Ba),
        (Mt.toArray = function () {
            var e = this
            return [
                e.year(),
                e.month(),
                e.date(),
                e.hour(),
                e.minute(),
                e.second(),
                e.millisecond(),
            ]
        }),
        (Mt.toObject = function () {
            var e = this
            return {
                years: e.year(),
                months: e.month(),
                date: e.date(),
                hours: e.hours(),
                minutes: e.minutes(),
                seconds: e.seconds(),
                milliseconds: e.milliseconds(),
            }
        }),
        (Mt.toDate = function () {
            return new Date(this.valueOf())
        }),
        (Mt.toISOString = function (e) {
            if (!this.isValid()) return null
            var a = !0 !== e,
                t = a ? this.clone().utc() : this
            return t.year() < 0 || 9999 < t.year()
                ? I(
                      t,
                      a
                          ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'
                          : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'
                  )
                : H(Date.prototype.toISOString)
                  ? a
                      ? this.toDate().toISOString()
                      : new Date(this.valueOf() + 60 * this.utcOffset() * 1e3)
                            .toISOString()
                            .replace('Z', I(t, 'Z'))
                  : I(
                        t,
                        a
                            ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'
                            : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'
                    )
        }),
        (Mt.inspect = function () {
            if (!this.isValid()) return 'moment.invalid(/* ' + this._i + ' */)'
            var e = 'moment',
                a = ''
            this.isLocal() ||
                ((e =
                    0 === this.utcOffset() ? 'moment.utc' : 'moment.parseZone'),
                (a = 'Z'))
            var t = '[' + e + '("]',
                s = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY',
                n = a + '[")]'
            return this.format(t + s + '-MM-DD[T]HH:mm:ss.SSS' + n)
        }),
        (Mt.toJSON = function () {
            return this.isValid() ? this.toISOString() : null
        }),
        (Mt.toString = function () {
            return this.clone()
                .locale('en')
                .format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ')
        }),
        (Mt.unix = function () {
            return Math.floor(this.valueOf() / 1e3)
        }),
        (Mt.valueOf = function () {
            return this._d.valueOf() - 6e4 * (this._offset || 0)
        }),
        (Mt.creationData = function () {
            return {
                input: this._i,
                format: this._f,
                locale: this._locale,
                isUTC: this._isUTC,
                strict: this._strict,
            }
        }),
        (Mt.year = ve),
        (Mt.isLeapYear = function () {
            return ge(this.year())
        }),
        (Mt.weekYear = function (e) {
            return rt.call(
                this,
                e,
                this.week(),
                this.weekday(),
                this.localeData()._week.dow,
                this.localeData()._week.doy
            )
        }),
        (Mt.isoWeekYear = function (e) {
            return rt.call(this, e, this.isoWeek(), this.isoWeekday(), 1, 4)
        }),
        (Mt.quarter = Mt.quarters =
            function (e) {
                return null == e
                    ? Math.ceil((this.month() + 1) / 3)
                    : this.month(3 * (e - 1) + (this.month() % 3))
            }),
        (Mt.month = Ae),
        (Mt.daysInMonth = function () {
            return je(this.year(), this.month())
        }),
        (Mt.week = Mt.weeks =
            function (e) {
                var a = this.localeData().week(this)
                return null == e ? a : this.add(7 * (e - a), 'd')
            }),
        (Mt.isoWeek = Mt.isoWeeks =
            function (e) {
                var a = Ce(this, 1, 4).week
                return null == e ? a : this.add(7 * (e - a), 'd')
            }),
        (Mt.weeksInYear = function () {
            var e = this.localeData()._week
            return Ie(this.year(), e.dow, e.doy)
        }),
        (Mt.isoWeeksInYear = function () {
            return Ie(this.year(), 1, 4)
        }),
        (Mt.date = _t),
        (Mt.day = Mt.days =
            function (e) {
                if (!this.isValid()) return null != e ? this : NaN
                var a,
                    t,
                    s = this._isUTC ? this._d.getUTCDay() : this._d.getDay()
                return null != e
                    ? ((a = e),
                      (t = this.localeData()),
                      (e =
                          'string' != typeof a
                              ? a
                              : isNaN(a)
                                ? 'number' == typeof (a = t.weekdaysParse(a))
                                    ? a
                                    : null
                                : parseInt(a, 10)),
                      this.add(e - s, 'd'))
                    : s
            }),
        (Mt.weekday = function (e) {
            if (!this.isValid()) return null != e ? this : NaN
            var a = (this.day() + 7 - this.localeData()._week.dow) % 7
            return null == e ? a : this.add(e - a, 'd')
        }),
        (Mt.isoWeekday = function (e) {
            if (!this.isValid()) return null != e ? this : NaN
            if (null == e) return this.day() || 7
            var a,
                t,
                s =
                    ((a = e),
                    (t = this.localeData()),
                    'string' == typeof a
                        ? t.weekdaysParse(a) % 7 || 7
                        : isNaN(a)
                          ? null
                          : a)
            return this.day(this.day() % 7 ? s : s - 7)
        }),
        (Mt.dayOfYear = function (e) {
            var a =
                Math.round(
                    (this.clone().startOf('day') -
                        this.clone().startOf('year')) /
                        864e5
                ) + 1
            return null == e ? a : this.add(e - a, 'd')
        }),
        (Mt.hour = Mt.hours = ta),
        (Mt.minute = Mt.minutes = it),
        (Mt.second = Mt.seconds = mt),
        (Mt.millisecond = Mt.milliseconds = lt),
        (Mt.utcOffset = function (e, a, t) {
            var s,
                n = this._offset || 0
            if (!this.isValid()) return null != e ? this : NaN
            if (null == e) return this._isUTC ? n : Na(this)
            if ('string' == typeof e) {
                if (null === (e = za(de, e))) return this
            } else Math.abs(e) < 16 && !t && (e *= 60)
            return (
                !this._isUTC && a && (s = Na(this)),
                (this._offset = e),
                (this._isUTC = !0),
                null != s && this.add(s, 'm'),
                n !== e &&
                    (!a || this._changeInProgress
                        ? Za(this, Ua(e - n, 'm'), 1, !1)
                        : this._changeInProgress ||
                          ((this._changeInProgress = !0),
                          l.updateOffset(this, !0),
                          (this._changeInProgress = null))),
                this
            )
        }),
        (Mt.utc = function (e) {
            return this.utcOffset(0, e)
        }),
        (Mt.local = function (e) {
            return (
                this._isUTC &&
                    (this.utcOffset(0, e),
                    (this._isUTC = !1),
                    e && this.subtract(Na(this), 'm')),
                this
            )
        }),
        (Mt.parseZone = function () {
            if (null != this._tzm) this.utcOffset(this._tzm, !1, !0)
            else if ('string' == typeof this._i) {
                var e = za(ne, this._i)
                null != e ? this.utcOffset(e) : this.utcOffset(0, !0)
            }
            return this
        }),
        (Mt.hasAlignedHourOffset = function (e) {
            return (
                !!this.isValid() &&
                ((e = e ? Ha(e).utcOffset() : 0),
                (this.utcOffset() - e) % 60 == 0)
            )
        }),
        (Mt.isDST = function () {
            return (
                this.utcOffset() > this.clone().month(0).utcOffset() ||
                this.utcOffset() > this.clone().month(5).utcOffset()
            )
        }),
        (Mt.isLocal = function () {
            return !!this.isValid() && !this._isUTC
        }),
        (Mt.isUtcOffset = function () {
            return !!this.isValid() && this._isUTC
        }),
        (Mt.isUtc = Ra),
        (Mt.isUTC = Ra),
        (Mt.zoneAbbr = function () {
            return this._isUTC ? 'UTC' : ''
        }),
        (Mt.zoneName = function () {
            return this._isUTC ? 'Coordinated Universal Time' : ''
        }),
        (Mt.dates = t('dates accessor is deprecated. Use date instead.', _t)),
        (Mt.months = t('months accessor is deprecated. Use month instead', Ae)),
        (Mt.years = t('years accessor is deprecated. Use year instead', ve)),
        (Mt.zone = t(
            'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',
            function (e, a) {
                return null != e
                    ? ('string' != typeof e && (e = -e),
                      this.utcOffset(e, a),
                      this)
                    : -this.utcOffset()
            }
        )),
        (Mt.isDSTShifted = t(
            'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',
            function () {
                if (!o(this._isDSTShifted)) return this._isDSTShifted
                var e = {}
                if ((k(e, this), (e = va(e))._a)) {
                    var a = e._isUTC ? c(e._a) : Ha(e._a)
                    this._isDSTShifted =
                        this.isValid() && 0 < r(e._a, a.toArray())
                } else this._isDSTShifted = !1
                return this._isDSTShifted
            }
        ))
    var Lt = j.prototype
    function ct(e, a, t, s) {
        var n = ma(),
            d = c().set(s, a)
        return n[t](d, e)
    }
    function Yt(e, a, t) {
        if ((m(e) && ((a = e), (e = void 0)), (e = e || ''), null != a))
            return ct(e, a, t, 'month')
        var s,
            n = []
        for (s = 0; s < 12; s++) n[s] = ct(e, s, t, 'month')
        return n
    }
    function yt(e, a, t, s) {
        a =
            ('boolean' == typeof e
                ? m(a) && ((t = a), (a = void 0))
                : ((a = e), (e = !1), m((t = a)) && ((t = a), (a = void 0))),
            a || '')
        var n,
            d = ma(),
            r = e ? d._week.dow : 0
        if (null != t) return ct(a, (t + r) % 7, s, 'day')
        var _ = []
        for (n = 0; n < 7; n++) _[n] = ct(a, (n + r) % 7, s, 'day')
        return _
    }
    ;(Lt.calendar = function (e, a, t) {
        var s = this._calendar[e] || this._calendar.sameElse
        return H(s) ? s.call(a, t) : s
    }),
        (Lt.longDateFormat = function (e) {
            var a = this._longDateFormat[e],
                t = this._longDateFormat[e.toUpperCase()]
            return a || !t
                ? a
                : ((this._longDateFormat[e] = t.replace(
                      /MMMM|MM|DD|dddd/g,
                      function (e) {
                          return e.slice(1)
                      }
                  )),
                  this._longDateFormat[e])
        }),
        (Lt.invalidDate = function () {
            return this._invalidDate
        }),
        (Lt.ordinal = function (e) {
            return this._ordinal.replace('%d', e)
        }),
        (Lt.preparse = ht),
        (Lt.postformat = ht),
        (Lt.relativeTime = function (e, a, t, s) {
            var n = this._relativeTime[t]
            return H(n) ? n(e, a, t, s) : n.replace(/%d/i, e)
        }),
        (Lt.pastFuture = function (e, a) {
            var t = this._relativeTime[0 < e ? 'future' : 'past']
            return H(t) ? t(a) : t.replace(/%s/i, a)
        }),
        (Lt.set = function (e) {
            var a, t
            for (t in e) H((a = e[t])) ? (this[t] = a) : (this['_' + t] = a)
            ;(this._config = e),
                (this._dayOfMonthOrdinalParseLenient = new RegExp(
                    (this._dayOfMonthOrdinalParse.source ||
                        this._ordinalParse.source) +
                        '|' +
                        /\d{1,2}/.source
                ))
        }),
        (Lt.months = function (e, a) {
            return e
                ? _(this._months)
                    ? this._months[e.month()]
                    : this._months[
                          (this._months.isFormat || xe).test(a)
                              ? 'format'
                              : 'standalone'
                      ][e.month()]
                : _(this._months)
                  ? this._months
                  : this._months.standalone
        }),
        (Lt.monthsShort = function (e, a) {
            return e
                ? _(this._monthsShort)
                    ? this._monthsShort[e.month()]
                    : this._monthsShort[xe.test(a) ? 'format' : 'standalone'][
                          e.month()
                      ]
                : _(this._monthsShort)
                  ? this._monthsShort
                  : this._monthsShort.standalone
        }),
        (Lt.monthsParse = function (e, a, t) {
            var s, n, d
            if (this._monthsParseExact)
                return function (e, a, t) {
                    var s,
                        n,
                        d,
                        r = e.toLocaleLowerCase()
                    if (!this._monthsParse)
                        for (
                            this._monthsParse = [],
                                this._longMonthsParse = [],
                                this._shortMonthsParse = [],
                                s = 0;
                            s < 12;
                            ++s
                        )
                            (d = c([2e3, s])),
                                (this._shortMonthsParse[s] = this.monthsShort(
                                    d,
                                    ''
                                ).toLocaleLowerCase()),
                                (this._longMonthsParse[s] = this.months(
                                    d,
                                    ''
                                ).toLocaleLowerCase())
                    return t
                        ? 'MMM' === a
                            ? -1 !== (n = we.call(this._shortMonthsParse, r))
                                ? n
                                : null
                            : -1 !== (n = we.call(this._longMonthsParse, r))
                              ? n
                              : null
                        : 'MMM' === a
                          ? -1 !== (n = we.call(this._shortMonthsParse, r))
                              ? n
                              : -1 !== (n = we.call(this._longMonthsParse, r))
                                ? n
                                : null
                          : -1 !== (n = we.call(this._longMonthsParse, r))
                            ? n
                            : -1 !== (n = we.call(this._shortMonthsParse, r))
                              ? n
                              : null
                }.call(this, e, a, t)
            for (
                this._monthsParse ||
                    ((this._monthsParse = []),
                    (this._longMonthsParse = []),
                    (this._shortMonthsParse = [])),
                    s = 0;
                s < 12;
                s++
            ) {
                if (
                    ((n = c([2e3, s])),
                    t &&
                        !this._longMonthsParse[s] &&
                        ((this._longMonthsParse[s] = new RegExp(
                            '^' + this.months(n, '').replace('.', '') + '$',
                            'i'
                        )),
                        (this._shortMonthsParse[s] = new RegExp(
                            '^' +
                                this.monthsShort(n, '').replace('.', '') +
                                '$',
                            'i'
                        ))),
                    t ||
                        this._monthsParse[s] ||
                        ((d =
                            '^' +
                            this.months(n, '') +
                            '|^' +
                            this.monthsShort(n, '')),
                        (this._monthsParse[s] = new RegExp(
                            d.replace('.', ''),
                            'i'
                        ))),
                    t && 'MMMM' === a && this._longMonthsParse[s].test(e))
                )
                    return s
                if (t && 'MMM' === a && this._shortMonthsParse[s].test(e))
                    return s
                if (!t && this._monthsParse[s].test(e)) return s
            }
        }),
        (Lt.monthsRegex = function (e) {
            return this._monthsParseExact
                ? (h(this, '_monthsRegex') || ze.call(this),
                  e ? this._monthsStrictRegex : this._monthsRegex)
                : (h(this, '_monthsRegex') || (this._monthsRegex = Fe),
                  this._monthsStrictRegex && e
                      ? this._monthsStrictRegex
                      : this._monthsRegex)
        }),
        (Lt.monthsShortRegex = function (e) {
            return this._monthsParseExact
                ? (h(this, '_monthsRegex') || ze.call(this),
                  e ? this._monthsShortStrictRegex : this._monthsShortRegex)
                : (h(this, '_monthsShortRegex') ||
                      (this._monthsShortRegex = Ee),
                  this._monthsShortStrictRegex && e
                      ? this._monthsShortStrictRegex
                      : this._monthsShortRegex)
        }),
        (Lt.week = function (e) {
            return Ce(e, this._week.dow, this._week.doy).week
        }),
        (Lt.firstDayOfYear = function () {
            return this._week.doy
        }),
        (Lt.firstDayOfWeek = function () {
            return this._week.dow
        }),
        (Lt.weekdays = function (e, a) {
            var t = _(this._weekdays)
                ? this._weekdays
                : this._weekdays[
                      e && !0 !== e && this._weekdays.isFormat.test(a)
                          ? 'format'
                          : 'standalone'
                  ]
            return !0 === e ? Ue(t, this._week.dow) : e ? t[e.day()] : t
        }),
        (Lt.weekdaysMin = function (e) {
            return !0 === e
                ? Ue(this._weekdaysMin, this._week.dow)
                : e
                  ? this._weekdaysMin[e.day()]
                  : this._weekdaysMin
        }),
        (Lt.weekdaysShort = function (e) {
            return !0 === e
                ? Ue(this._weekdaysShort, this._week.dow)
                : e
                  ? this._weekdaysShort[e.day()]
                  : this._weekdaysShort
        }),
        (Lt.weekdaysParse = function (e, a, t) {
            var s, n, d
            if (this._weekdaysParseExact)
                return function (e, a, t) {
                    var s,
                        n,
                        d,
                        r = e.toLocaleLowerCase()
                    if (!this._weekdaysParse)
                        for (
                            this._weekdaysParse = [],
                                this._shortWeekdaysParse = [],
                                this._minWeekdaysParse = [],
                                s = 0;
                            s < 7;
                            ++s
                        )
                            (d = c([2e3, 1]).day(s)),
                                (this._minWeekdaysParse[s] = this.weekdaysMin(
                                    d,
                                    ''
                                ).toLocaleLowerCase()),
                                (this._shortWeekdaysParse[s] =
                                    this.weekdaysShort(
                                        d,
                                        ''
                                    ).toLocaleLowerCase()),
                                (this._weekdaysParse[s] = this.weekdays(
                                    d,
                                    ''
                                ).toLocaleLowerCase())
                    return t
                        ? 'dddd' === a
                            ? -1 !== (n = we.call(this._weekdaysParse, r))
                                ? n
                                : null
                            : 'ddd' === a
                              ? -1 !==
                                (n = we.call(this._shortWeekdaysParse, r))
                                  ? n
                                  : null
                              : -1 !== (n = we.call(this._minWeekdaysParse, r))
                                ? n
                                : null
                        : 'dddd' === a
                          ? -1 !== (n = we.call(this._weekdaysParse, r))
                              ? n
                              : -1 !==
                                  (n = we.call(this._shortWeekdaysParse, r))
                                ? n
                                : -1 !==
                                    (n = we.call(this._minWeekdaysParse, r))
                                  ? n
                                  : null
                          : 'ddd' === a
                            ? -1 !== (n = we.call(this._shortWeekdaysParse, r))
                                ? n
                                : -1 !== (n = we.call(this._weekdaysParse, r))
                                  ? n
                                  : -1 !==
                                      (n = we.call(this._minWeekdaysParse, r))
                                    ? n
                                    : null
                            : -1 !== (n = we.call(this._minWeekdaysParse, r))
                              ? n
                              : -1 !== (n = we.call(this._weekdaysParse, r))
                                ? n
                                : -1 !==
                                    (n = we.call(this._shortWeekdaysParse, r))
                                  ? n
                                  : null
                }.call(this, e, a, t)
            for (
                this._weekdaysParse ||
                    ((this._weekdaysParse = []),
                    (this._minWeekdaysParse = []),
                    (this._shortWeekdaysParse = []),
                    (this._fullWeekdaysParse = [])),
                    s = 0;
                s < 7;
                s++
            ) {
                if (
                    ((n = c([2e3, 1]).day(s)),
                    t &&
                        !this._fullWeekdaysParse[s] &&
                        ((this._fullWeekdaysParse[s] = new RegExp(
                            '^' +
                                this.weekdays(n, '').replace('.', '\\.?') +
                                '$',
                            'i'
                        )),
                        (this._shortWeekdaysParse[s] = new RegExp(
                            '^' +
                                this.weekdaysShort(n, '').replace('.', '\\.?') +
                                '$',
                            'i'
                        )),
                        (this._minWeekdaysParse[s] = new RegExp(
                            '^' +
                                this.weekdaysMin(n, '').replace('.', '\\.?') +
                                '$',
                            'i'
                        ))),
                    this._weekdaysParse[s] ||
                        ((d =
                            '^' +
                            this.weekdays(n, '') +
                            '|^' +
                            this.weekdaysShort(n, '') +
                            '|^' +
                            this.weekdaysMin(n, '')),
                        (this._weekdaysParse[s] = new RegExp(
                            d.replace('.', ''),
                            'i'
                        ))),
                    t && 'dddd' === a && this._fullWeekdaysParse[s].test(e))
                )
                    return s
                if (t && 'ddd' === a && this._shortWeekdaysParse[s].test(e))
                    return s
                if (t && 'dd' === a && this._minWeekdaysParse[s].test(e))
                    return s
                if (!t && this._weekdaysParse[s].test(e)) return s
            }
        }),
        (Lt.weekdaysRegex = function (e) {
            return this._weekdaysParseExact
                ? (h(this, '_weekdaysRegex') || qe.call(this),
                  e ? this._weekdaysStrictRegex : this._weekdaysRegex)
                : (h(this, '_weekdaysRegex') || (this._weekdaysRegex = Ze),
                  this._weekdaysStrictRegex && e
                      ? this._weekdaysStrictRegex
                      : this._weekdaysRegex)
        }),
        (Lt.weekdaysShortRegex = function (e) {
            return this._weekdaysParseExact
                ? (h(this, '_weekdaysRegex') || qe.call(this),
                  e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex)
                : (h(this, '_weekdaysShortRegex') ||
                      (this._weekdaysShortRegex = $e),
                  this._weekdaysShortStrictRegex && e
                      ? this._weekdaysShortStrictRegex
                      : this._weekdaysShortRegex)
        }),
        (Lt.weekdaysMinRegex = function (e) {
            return this._weekdaysParseExact
                ? (h(this, '_weekdaysRegex') || qe.call(this),
                  e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex)
                : (h(this, '_weekdaysMinRegex') ||
                      (this._weekdaysMinRegex = Be),
                  this._weekdaysMinStrictRegex && e
                      ? this._weekdaysMinStrictRegex
                      : this._weekdaysMinRegex)
        }),
        (Lt.isPM = function (e) {
            return 'p' === (e + '').toLowerCase().charAt(0)
        }),
        (Lt.meridiem = function (e, a, t) {
            return 11 < e ? (t ? 'pm' : 'PM') : t ? 'am' : 'AM'
        }),
        ia('en', {
            dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
            ordinal: function (e) {
                var a = e % 10
                return (
                    e +
                    (1 === g((e % 100) / 10)
                        ? 'th'
                        : 1 === a
                          ? 'st'
                          : 2 === a
                            ? 'nd'
                            : 3 === a
                              ? 'rd'
                              : 'th')
                )
            },
        }),
        (l.lang = t(
            'moment.lang is deprecated. Use moment.locale instead.',
            ia
        )),
        (l.langData = t(
            'moment.langData is deprecated. Use moment.localeData instead.',
            ma
        ))
    var ft = Math.abs
    function kt(e, a, t, s) {
        var n = Ua(a, t)
        return (
            (e._milliseconds += s * n._milliseconds),
            (e._days += s * n._days),
            (e._months += s * n._months),
            e._bubble()
        )
    }
    function pt(e) {
        return e < 0 ? Math.floor(e) : Math.ceil(e)
    }
    function Dt(e) {
        return (4800 * e) / 146097
    }
    function Tt(e) {
        return (146097 * e) / 4800
    }
    function gt(e) {
        return function () {
            return this.as(e)
        }
    }
    var wt = gt('ms'),
        vt = gt('s'),
        St = gt('m'),
        Ht = gt('h'),
        bt = gt('d'),
        jt = gt('w'),
        xt = gt('M'),
        Ot = gt('Q'),
        Pt = gt('y')
    function Wt(e) {
        return function () {
            return this.isValid() ? this._data[e] : NaN
        }
    }
    var At = Wt('milliseconds'),
        Et = Wt('seconds'),
        Ft = Wt('minutes'),
        zt = Wt('hours'),
        Jt = Wt('days'),
        Nt = Wt('months'),
        Rt = Wt('years')
    var Ct = Math.round,
        It = { ss: 44, s: 45, m: 45, h: 22, d: 26, M: 11 }
    var Ut = Math.abs
    function Gt(e) {
        return (0 < e) - (e < 0) || +e
    }
    function Vt() {
        if (!this.isValid()) return this.localeData().invalidDate()
        var e,
            a,
            t = Ut(this._milliseconds) / 1e3,
            s = Ut(this._days),
            n = Ut(this._months)
        ;(a = T((e = T(t / 60)) / 60)), (t %= 60), (e %= 60)
        var d = T(n / 12),
            r = (n %= 12),
            _ = s,
            i = a,
            o = e,
            m = t ? t.toFixed(3).replace(/\.?0+$/, '') : '',
            u = this.asSeconds()
        if (!u) return 'P0D'
        var l = u < 0 ? '-' : '',
            M = Gt(this._months) !== Gt(u) ? '-' : '',
            h = Gt(this._days) !== Gt(u) ? '-' : '',
            L = Gt(this._milliseconds) !== Gt(u) ? '-' : ''
        return (
            l +
            'P' +
            (d ? M + d + 'Y' : '') +
            (r ? M + r + 'M' : '') +
            (_ ? h + _ + 'D' : '') +
            (i || o || m ? 'T' : '') +
            (i ? L + i + 'H' : '') +
            (o ? L + o + 'M' : '') +
            (m ? L + m + 'S' : '')
        )
    }
    var Kt = Pa.prototype
    ;(Kt.isValid = function () {
        return this._isValid
    }),
        (Kt.abs = function () {
            var e = this._data
            return (
                (this._milliseconds = ft(this._milliseconds)),
                (this._days = ft(this._days)),
                (this._months = ft(this._months)),
                (e.milliseconds = ft(e.milliseconds)),
                (e.seconds = ft(e.seconds)),
                (e.minutes = ft(e.minutes)),
                (e.hours = ft(e.hours)),
                (e.months = ft(e.months)),
                (e.years = ft(e.years)),
                this
            )
        }),
        (Kt.add = function (e, a) {
            return kt(this, e, a, 1)
        }),
        (Kt.subtract = function (e, a) {
            return kt(this, e, a, -1)
        }),
        (Kt.as = function (e) {
            if (!this.isValid()) return NaN
            var a,
                t,
                s = this._milliseconds
            if ('month' === (e = P(e)) || 'quarter' === e || 'year' === e)
                switch (
                    ((a = this._days + s / 864e5),
                    (t = this._months + Dt(a)),
                    e)
                ) {
                    case 'month':
                        return t
                    case 'quarter':
                        return t / 3
                    case 'year':
                        return t / 12
                }
            else
                switch (((a = this._days + Math.round(Tt(this._months))), e)) {
                    case 'week':
                        return a / 7 + s / 6048e5
                    case 'day':
                        return a + s / 864e5
                    case 'hour':
                        return 24 * a + s / 36e5
                    case 'minute':
                        return 1440 * a + s / 6e4
                    case 'second':
                        return 86400 * a + s / 1e3
                    case 'millisecond':
                        return Math.floor(864e5 * a) + s
                    default:
                        throw new Error('Unknown unit ' + e)
                }
        }),
        (Kt.asMilliseconds = wt),
        (Kt.asSeconds = vt),
        (Kt.asMinutes = St),
        (Kt.asHours = Ht),
        (Kt.asDays = bt),
        (Kt.asWeeks = jt),
        (Kt.asMonths = xt),
        (Kt.asQuarters = Ot),
        (Kt.asYears = Pt),
        (Kt.valueOf = function () {
            return this.isValid()
                ? this._milliseconds +
                      864e5 * this._days +
                      (this._months % 12) * 2592e6 +
                      31536e6 * g(this._months / 12)
                : NaN
        }),
        (Kt._bubble = function () {
            var e,
                a,
                t,
                s,
                n,
                d = this._milliseconds,
                r = this._days,
                _ = this._months,
                i = this._data
            return (
                (0 <= d && 0 <= r && 0 <= _) ||
                    (d <= 0 && r <= 0 && _ <= 0) ||
                    ((d += 864e5 * pt(Tt(_) + r)), (_ = r = 0)),
                (i.milliseconds = d % 1e3),
                (e = T(d / 1e3)),
                (i.seconds = e % 60),
                (a = T(e / 60)),
                (i.minutes = a % 60),
                (t = T(a / 60)),
                (i.hours = t % 24),
                (_ += n = T(Dt((r += T(t / 24))))),
                (r -= pt(Tt(n))),
                (s = T(_ / 12)),
                (_ %= 12),
                (i.days = r),
                (i.months = _),
                (i.years = s),
                this
            )
        }),
        (Kt.clone = function () {
            return Ua(this)
        }),
        (Kt.get = function (e) {
            return (e = P(e)), this.isValid() ? this[e + 's']() : NaN
        }),
        (Kt.milliseconds = At),
        (Kt.seconds = Et),
        (Kt.minutes = Ft),
        (Kt.hours = zt),
        (Kt.days = Jt),
        (Kt.weeks = function () {
            return T(this.days() / 7)
        }),
        (Kt.months = Nt),
        (Kt.years = Rt),
        (Kt.humanize = function (e) {
            if (!this.isValid()) return this.localeData().invalidDate()
            var a,
                t,
                s,
                n,
                d,
                r,
                _,
                i,
                o,
                m,
                u,
                l = this.localeData(),
                M =
                    ((t = !e),
                    (s = l),
                    (n = Ua((a = this)).abs()),
                    (d = Ct(n.as('s'))),
                    (r = Ct(n.as('m'))),
                    (_ = Ct(n.as('h'))),
                    (i = Ct(n.as('d'))),
                    (o = Ct(n.as('M'))),
                    (m = Ct(n.as('y'))),
                    ((u = (d <= It.ss && ['s', d]) ||
                        (d < It.s && ['ss', d]) ||
                        (r <= 1 && ['m']) ||
                        (r < It.m && ['mm', r]) ||
                        (_ <= 1 && ['h']) ||
                        (_ < It.h && ['hh', _]) ||
                        (i <= 1 && ['d']) ||
                        (i < It.d && ['dd', i]) ||
                        (o <= 1 && ['M']) ||
                        (o < It.M && ['MM', o]) ||
                        (m <= 1 && ['y']) || ['yy', m])[2] = t),
                    (u[3] = 0 < +a),
                    (u[4] = s),
                    function (e, a, t, s, n) {
                        return n.relativeTime(a || 1, !!t, e, s)
                    }.apply(null, u))
            return e && (M = l.pastFuture(+this, M)), l.postformat(M)
        }),
        (Kt.toISOString = Vt),
        (Kt.toString = Vt),
        (Kt.toJSON = Vt),
        (Kt.locale = Qa),
        (Kt.localeData = et),
        (Kt.toIsoString = t(
            'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',
            Vt
        )),
        (Kt.lang = Xa),
        C('X', 0, 0, 'unix'),
        C('x', 0, 0, 'valueOf'),
        ie('x', se),
        ie('X', /[+-]?\d+(\.\d{1,3})?/),
        le('X', function (e, a, t) {
            t._d = new Date(1e3 * parseFloat(e, 10))
        }),
        le('x', function (e, a, t) {
            t._d = new Date(g(e))
        }),
        (l.version = '2.24.0'),
        (e = Ha),
        (l.fn = Mt),
        (l.min = function () {
            return xa('isBefore', [].slice.call(arguments, 0))
        }),
        (l.max = function () {
            return xa('isAfter', [].slice.call(arguments, 0))
        }),
        (l.now = function () {
            return Date.now ? Date.now() : +new Date()
        }),
        (l.utc = c),
        (l.unix = function (e) {
            return Ha(1e3 * e)
        }),
        (l.months = function (e, a) {
            return Yt(e, a, 'months')
        }),
        (l.isDate = u),
        (l.locale = ia),
        (l.invalid = f),
        (l.duration = Ua),
        (l.isMoment = D),
        (l.weekdays = function (e, a, t) {
            return yt(e, a, t, 'weekdays')
        }),
        (l.parseZone = function () {
            return Ha.apply(null, arguments).parseZone()
        }),
        (l.localeData = ma),
        (l.isDuration = Wa),
        (l.monthsShort = function (e, a) {
            return Yt(e, a, 'monthsShort')
        }),
        (l.weekdaysMin = function (e, a, t) {
            return yt(e, a, t, 'weekdaysMin')
        }),
        (l.defineLocale = oa),
        (l.updateLocale = function (e, a) {
            if (null != a) {
                var t,
                    s,
                    n = sa
                null != (s = _a(e)) && (n = s._config),
                    ((t = new j((a = b(n, a)))).parentLocale = na[e]),
                    (na[e] = t),
                    ia(e)
            } else
                null != na[e] &&
                    (null != na[e].parentLocale
                        ? (na[e] = na[e].parentLocale)
                        : null != na[e] && delete na[e])
            return na[e]
        }),
        (l.locales = function () {
            return s(na)
        }),
        (l.weekdaysShort = function (e, a, t) {
            return yt(e, a, t, 'weekdaysShort')
        }),
        (l.normalizeUnits = P),
        (l.relativeTimeRounding = function (e) {
            return void 0 === e ? Ct : 'function' == typeof e && ((Ct = e), !0)
        }),
        (l.relativeTimeThreshold = function (e, a) {
            return (
                void 0 !== It[e] &&
                (void 0 === a
                    ? It[e]
                    : ((It[e] = a), 's' === e && (It.ss = a - 1), !0))
            )
        }),
        (l.calendarFormat = function (e, a) {
            var t = e.diff(a, 'days', !0)
            return t < -6
                ? 'sameElse'
                : t < -1
                  ? 'lastWeek'
                  : t < 0
                    ? 'lastDay'
                    : t < 1
                      ? 'sameDay'
                      : t < 2
                        ? 'nextDay'
                        : t < 7
                          ? 'nextWeek'
                          : 'sameElse'
        }),
        (l.prototype = Mt),
        (l.HTML5_FMT = {
            DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',
            DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',
            DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',
            DATE: 'YYYY-MM-DD',
            TIME: 'HH:mm',
            TIME_SECONDS: 'HH:mm:ss',
            TIME_MS: 'HH:mm:ss.SSS',
            WEEK: 'GGGG-[W]WW',
            MONTH: 'YYYY-MM',
        }),
        l.defineLocale('af', {
            months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(
                '_'
            ),
            monthsShort:
                'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
            weekdays:
                'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(
                    '_'
                ),
            weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
            weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
            meridiemParse: /vm|nm/i,
            isPM: function (e) {
                return /^nm$/i.test(e)
            },
            meridiem: function (e, a, t) {
                return e < 12 ? (t ? 'vm' : 'VM') : t ? 'nm' : 'NM'
            },
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Vandag om] LT',
                nextDay: '[M\xf4re om] LT',
                nextWeek: 'dddd [om] LT',
                lastDay: '[Gister om] LT',
                lastWeek: '[Laas] dddd [om] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'oor %s',
                past: '%s gelede',
                s: "'n paar sekondes",
                ss: '%d sekondes',
                m: "'n minuut",
                mm: '%d minute',
                h: "'n uur",
                hh: '%d ure',
                d: "'n dag",
                dd: '%d dae',
                M: "'n maand",
                MM: '%d maande',
                y: "'n jaar",
                yy: '%d jaar',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
            ordinal: function (e) {
                return e + (1 === e || 8 === e || 20 <= e ? 'ste' : 'de')
            },
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('ar-dz', {
            months: '\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631'.split(
                '_'
            ),
            monthsShort:
                '\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631'.split(
                    '_'
                ),
            weekdays:
                '\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a'.split(
                    '_'
                ),
            weekdaysShort:
                '\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a'.split(
                    '_'
                ),
            weekdaysMin:
                '\u0623\u062d_\u0625\u062b_\u062b\u0644\u0627_\u0623\u0631_\u062e\u0645_\u062c\u0645_\u0633\u0628'.split(
                    '_'
                ),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay:
                    '[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                nextDay:
                    '[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                nextWeek:
                    'dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                lastDay:
                    '[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                lastWeek:
                    'dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '\u0641\u064a %s',
                past: '\u0645\u0646\u0630 %s',
                s: '\u062b\u0648\u0627\u0646',
                ss: '%d \u062b\u0627\u0646\u064a\u0629',
                m: '\u062f\u0642\u064a\u0642\u0629',
                mm: '%d \u062f\u0642\u0627\u0626\u0642',
                h: '\u0633\u0627\u0639\u0629',
                hh: '%d \u0633\u0627\u0639\u0627\u062a',
                d: '\u064a\u0648\u0645',
                dd: '%d \u0623\u064a\u0627\u0645',
                M: '\u0634\u0647\u0631',
                MM: '%d \u0623\u0634\u0647\u0631',
                y: '\u0633\u0646\u0629',
                yy: '%d \u0633\u0646\u0648\u0627\u062a',
            },
            week: { dow: 0, doy: 4 },
        }),
        l.defineLocale('ar-kw', {
            months: '\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631'.split(
                '_'
            ),
            monthsShort:
                '\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631'.split(
                    '_'
                ),
            weekdays:
                '\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a'.split(
                    '_'
                ),
            weekdaysShort:
                '\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a'.split(
                    '_'
                ),
            weekdaysMin:
                '\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay:
                    '[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                nextDay:
                    '[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                nextWeek:
                    'dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                lastDay:
                    '[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                lastWeek:
                    'dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '\u0641\u064a %s',
                past: '\u0645\u0646\u0630 %s',
                s: '\u062b\u0648\u0627\u0646',
                ss: '%d \u062b\u0627\u0646\u064a\u0629',
                m: '\u062f\u0642\u064a\u0642\u0629',
                mm: '%d \u062f\u0642\u0627\u0626\u0642',
                h: '\u0633\u0627\u0639\u0629',
                hh: '%d \u0633\u0627\u0639\u0627\u062a',
                d: '\u064a\u0648\u0645',
                dd: '%d \u0623\u064a\u0627\u0645',
                M: '\u0634\u0647\u0631',
                MM: '%d \u0623\u0634\u0647\u0631',
                y: '\u0633\u0646\u0629',
                yy: '%d \u0633\u0646\u0648\u0627\u062a',
            },
            week: { dow: 0, doy: 12 },
        })
    var Zt = {
            1: '1',
            2: '2',
            3: '3',
            4: '4',
            5: '5',
            6: '6',
            7: '7',
            8: '8',
            9: '9',
            0: '0',
        },
        $t = function (e) {
            return 0 === e
                ? 0
                : 1 === e
                  ? 1
                  : 2 === e
                    ? 2
                    : 3 <= e % 100 && e % 100 <= 10
                      ? 3
                      : 11 <= e % 100
                        ? 4
                        : 5
        },
        Bt = {
            s: [
                '\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629',
                '\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629',
                [
                    '\u062b\u0627\u0646\u064a\u062a\u0627\u0646',
                    '\u062b\u0627\u0646\u064a\u062a\u064a\u0646',
                ],
                '%d \u062b\u0648\u0627\u0646',
                '%d \u062b\u0627\u0646\u064a\u0629',
                '%d \u062b\u0627\u0646\u064a\u0629',
            ],
            m: [
                '\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629',
                '\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629',
                [
                    '\u062f\u0642\u064a\u0642\u062a\u0627\u0646',
                    '\u062f\u0642\u064a\u0642\u062a\u064a\u0646',
                ],
                '%d \u062f\u0642\u0627\u0626\u0642',
                '%d \u062f\u0642\u064a\u0642\u0629',
                '%d \u062f\u0642\u064a\u0642\u0629',
            ],
            h: [
                '\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629',
                '\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629',
                [
                    '\u0633\u0627\u0639\u062a\u0627\u0646',
                    '\u0633\u0627\u0639\u062a\u064a\u0646',
                ],
                '%d \u0633\u0627\u0639\u0627\u062a',
                '%d \u0633\u0627\u0639\u0629',
                '%d \u0633\u0627\u0639\u0629',
            ],
            d: [
                '\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645',
                '\u064a\u0648\u0645 \u0648\u0627\u062d\u062f',
                [
                    '\u064a\u0648\u0645\u0627\u0646',
                    '\u064a\u0648\u0645\u064a\u0646',
                ],
                '%d \u0623\u064a\u0627\u0645',
                '%d \u064a\u0648\u0645\u064b\u0627',
                '%d \u064a\u0648\u0645',
            ],
            M: [
                '\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631',
                '\u0634\u0647\u0631 \u0648\u0627\u062d\u062f',
                [
                    '\u0634\u0647\u0631\u0627\u0646',
                    '\u0634\u0647\u0631\u064a\u0646',
                ],
                '%d \u0623\u0634\u0647\u0631',
                '%d \u0634\u0647\u0631\u0627',
                '%d \u0634\u0647\u0631',
            ],
            y: [
                '\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645',
                '\u0639\u0627\u0645 \u0648\u0627\u062d\u062f',
                [
                    '\u0639\u0627\u0645\u0627\u0646',
                    '\u0639\u0627\u0645\u064a\u0646',
                ],
                '%d \u0623\u0639\u0648\u0627\u0645',
                '%d \u0639\u0627\u0645\u064b\u0627',
                '%d \u0639\u0627\u0645',
            ],
        },
        qt = function (r) {
            return function (e, a, t, s) {
                var n = $t(e),
                    d = Bt[r][$t(e)]
                return 2 === n && (d = d[a ? 0 : 1]), d.replace(/%d/i, e)
            }
        },
        Qt = [
            '\u064a\u0646\u0627\u064a\u0631',
            '\u0641\u0628\u0631\u0627\u064a\u0631',
            '\u0645\u0627\u0631\u0633',
            '\u0623\u0628\u0631\u064a\u0644',
            '\u0645\u0627\u064a\u0648',
            '\u064a\u0648\u0646\u064a\u0648',
            '\u064a\u0648\u0644\u064a\u0648',
            '\u0623\u063a\u0633\u0637\u0633',
            '\u0633\u0628\u062a\u0645\u0628\u0631',
            '\u0623\u0643\u062a\u0648\u0628\u0631',
            '\u0646\u0648\u0641\u0645\u0628\u0631',
            '\u062f\u064a\u0633\u0645\u0628\u0631',
        ]
    l.defineLocale('ar-ly', {
        months: Qt,
        monthsShort: Qt,
        weekdays:
            '\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a'.split(
                '_'
            ),
        weekdaysShort:
            '\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a'.split(
                '_'
            ),
        weekdaysMin: '\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633'.split(
            '_'
        ),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'D/\u200fM/\u200fYYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u0635|\u0645/,
        isPM: function (e) {
            return '\u0645' === e
        },
        meridiem: function (e, a, t) {
            return e < 12 ? '\u0635' : '\u0645'
        },
        calendar: {
            sameDay:
                '[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT',
            nextDay:
                '[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT',
            nextWeek:
                'dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT',
            lastDay:
                '[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT',
            lastWeek:
                'dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '\u0628\u0639\u062f %s',
            past: '\u0645\u0646\u0630 %s',
            s: qt('s'),
            ss: qt('s'),
            m: qt('m'),
            mm: qt('m'),
            h: qt('h'),
            hh: qt('h'),
            d: qt('d'),
            dd: qt('d'),
            M: qt('M'),
            MM: qt('M'),
            y: qt('y'),
            yy: qt('y'),
        },
        preparse: function (e) {
            return e.replace(/\u060c/g, ',')
        },
        postformat: function (e) {
            return e
                .replace(/\d/g, function (e) {
                    return Zt[e]
                })
                .replace(/,/g, '\u060c')
        },
        week: { dow: 6, doy: 12 },
    }),
        l.defineLocale('ar-ma', {
            months: '\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631'.split(
                '_'
            ),
            monthsShort:
                '\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631'.split(
                    '_'
                ),
            weekdays:
                '\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a'.split(
                    '_'
                ),
            weekdaysShort:
                '\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a'.split(
                    '_'
                ),
            weekdaysMin:
                '\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay:
                    '[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                nextDay:
                    '[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                nextWeek:
                    'dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                lastDay:
                    '[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                lastWeek:
                    'dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '\u0641\u064a %s',
                past: '\u0645\u0646\u0630 %s',
                s: '\u062b\u0648\u0627\u0646',
                ss: '%d \u062b\u0627\u0646\u064a\u0629',
                m: '\u062f\u0642\u064a\u0642\u0629',
                mm: '%d \u062f\u0642\u0627\u0626\u0642',
                h: '\u0633\u0627\u0639\u0629',
                hh: '%d \u0633\u0627\u0639\u0627\u062a',
                d: '\u064a\u0648\u0645',
                dd: '%d \u0623\u064a\u0627\u0645',
                M: '\u0634\u0647\u0631',
                MM: '%d \u0623\u0634\u0647\u0631',
                y: '\u0633\u0646\u0629',
                yy: '%d \u0633\u0646\u0648\u0627\u062a',
            },
            week: { dow: 6, doy: 12 },
        })
    var Xt = {
            1: '\u0661',
            2: '\u0662',
            3: '\u0663',
            4: '\u0664',
            5: '\u0665',
            6: '\u0666',
            7: '\u0667',
            8: '\u0668',
            9: '\u0669',
            0: '\u0660',
        },
        es = {
            '\u0661': '1',
            '\u0662': '2',
            '\u0663': '3',
            '\u0664': '4',
            '\u0665': '5',
            '\u0666': '6',
            '\u0667': '7',
            '\u0668': '8',
            '\u0669': '9',
            '\u0660': '0',
        }
    l.defineLocale('ar-sa', {
        months: '\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631'.split(
            '_'
        ),
        monthsShort:
            '\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631'.split(
                '_'
            ),
        weekdays:
            '\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a'.split(
                '_'
            ),
        weekdaysShort:
            '\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a'.split(
                '_'
            ),
        weekdaysMin: '\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633'.split(
            '_'
        ),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u0635|\u0645/,
        isPM: function (e) {
            return '\u0645' === e
        },
        meridiem: function (e, a, t) {
            return e < 12 ? '\u0635' : '\u0645'
        },
        calendar: {
            sameDay:
                '[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
            nextDay:
                '[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
            nextWeek:
                'dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
            lastDay:
                '[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
            lastWeek:
                'dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '\u0641\u064a %s',
            past: '\u0645\u0646\u0630 %s',
            s: '\u062b\u0648\u0627\u0646',
            ss: '%d \u062b\u0627\u0646\u064a\u0629',
            m: '\u062f\u0642\u064a\u0642\u0629',
            mm: '%d \u062f\u0642\u0627\u0626\u0642',
            h: '\u0633\u0627\u0639\u0629',
            hh: '%d \u0633\u0627\u0639\u0627\u062a',
            d: '\u064a\u0648\u0645',
            dd: '%d \u0623\u064a\u0627\u0645',
            M: '\u0634\u0647\u0631',
            MM: '%d \u0623\u0634\u0647\u0631',
            y: '\u0633\u0646\u0629',
            yy: '%d \u0633\u0646\u0648\u0627\u062a',
        },
        preparse: function (e) {
            return e
                .replace(
                    /[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,
                    function (e) {
                        return es[e]
                    }
                )
                .replace(/\u060c/g, ',')
        },
        postformat: function (e) {
            return e
                .replace(/\d/g, function (e) {
                    return Xt[e]
                })
                .replace(/,/g, '\u060c')
        },
        week: { dow: 0, doy: 6 },
    }),
        l.defineLocale('ar-tn', {
            months: '\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631'.split(
                '_'
            ),
            monthsShort:
                '\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631'.split(
                    '_'
                ),
            weekdays:
                '\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a'.split(
                    '_'
                ),
            weekdaysShort:
                '\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a'.split(
                    '_'
                ),
            weekdaysMin:
                '\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay:
                    '[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                nextDay:
                    '[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                nextWeek:
                    'dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                lastDay:
                    '[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                lastWeek:
                    'dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '\u0641\u064a %s',
                past: '\u0645\u0646\u0630 %s',
                s: '\u062b\u0648\u0627\u0646',
                ss: '%d \u062b\u0627\u0646\u064a\u0629',
                m: '\u062f\u0642\u064a\u0642\u0629',
                mm: '%d \u062f\u0642\u0627\u0626\u0642',
                h: '\u0633\u0627\u0639\u0629',
                hh: '%d \u0633\u0627\u0639\u0627\u062a',
                d: '\u064a\u0648\u0645',
                dd: '%d \u0623\u064a\u0627\u0645',
                M: '\u0634\u0647\u0631',
                MM: '%d \u0623\u0634\u0647\u0631',
                y: '\u0633\u0646\u0629',
                yy: '%d \u0633\u0646\u0648\u0627\u062a',
            },
            week: { dow: 1, doy: 4 },
        })
    var as = {
            1: '\u0661',
            2: '\u0662',
            3: '\u0663',
            4: '\u0664',
            5: '\u0665',
            6: '\u0666',
            7: '\u0667',
            8: '\u0668',
            9: '\u0669',
            0: '\u0660',
        },
        ts = {
            '\u0661': '1',
            '\u0662': '2',
            '\u0663': '3',
            '\u0664': '4',
            '\u0665': '5',
            '\u0666': '6',
            '\u0667': '7',
            '\u0668': '8',
            '\u0669': '9',
            '\u0660': '0',
        },
        ss = function (e) {
            return 0 === e
                ? 0
                : 1 === e
                  ? 1
                  : 2 === e
                    ? 2
                    : 3 <= e % 100 && e % 100 <= 10
                      ? 3
                      : 11 <= e % 100
                        ? 4
                        : 5
        },
        ns = {
            s: [
                '\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629',
                '\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629',
                [
                    '\u062b\u0627\u0646\u064a\u062a\u0627\u0646',
                    '\u062b\u0627\u0646\u064a\u062a\u064a\u0646',
                ],
                '%d \u062b\u0648\u0627\u0646',
                '%d \u062b\u0627\u0646\u064a\u0629',
                '%d \u062b\u0627\u0646\u064a\u0629',
            ],
            m: [
                '\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629',
                '\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629',
                [
                    '\u062f\u0642\u064a\u0642\u062a\u0627\u0646',
                    '\u062f\u0642\u064a\u0642\u062a\u064a\u0646',
                ],
                '%d \u062f\u0642\u0627\u0626\u0642',
                '%d \u062f\u0642\u064a\u0642\u0629',
                '%d \u062f\u0642\u064a\u0642\u0629',
            ],
            h: [
                '\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629',
                '\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629',
                [
                    '\u0633\u0627\u0639\u062a\u0627\u0646',
                    '\u0633\u0627\u0639\u062a\u064a\u0646',
                ],
                '%d \u0633\u0627\u0639\u0627\u062a',
                '%d \u0633\u0627\u0639\u0629',
                '%d \u0633\u0627\u0639\u0629',
            ],
            d: [
                '\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645',
                '\u064a\u0648\u0645 \u0648\u0627\u062d\u062f',
                [
                    '\u064a\u0648\u0645\u0627\u0646',
                    '\u064a\u0648\u0645\u064a\u0646',
                ],
                '%d \u0623\u064a\u0627\u0645',
                '%d \u064a\u0648\u0645\u064b\u0627',
                '%d \u064a\u0648\u0645',
            ],
            M: [
                '\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631',
                '\u0634\u0647\u0631 \u0648\u0627\u062d\u062f',
                [
                    '\u0634\u0647\u0631\u0627\u0646',
                    '\u0634\u0647\u0631\u064a\u0646',
                ],
                '%d \u0623\u0634\u0647\u0631',
                '%d \u0634\u0647\u0631\u0627',
                '%d \u0634\u0647\u0631',
            ],
            y: [
                '\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645',
                '\u0639\u0627\u0645 \u0648\u0627\u062d\u062f',
                [
                    '\u0639\u0627\u0645\u0627\u0646',
                    '\u0639\u0627\u0645\u064a\u0646',
                ],
                '%d \u0623\u0639\u0648\u0627\u0645',
                '%d \u0639\u0627\u0645\u064b\u0627',
                '%d \u0639\u0627\u0645',
            ],
        },
        ds = function (r) {
            return function (e, a, t, s) {
                var n = ss(e),
                    d = ns[r][ss(e)]
                return 2 === n && (d = d[a ? 0 : 1]), d.replace(/%d/i, e)
            }
        },
        rs = [
            '\u064a\u0646\u0627\u064a\u0631',
            '\u0641\u0628\u0631\u0627\u064a\u0631',
            '\u0645\u0627\u0631\u0633',
            '\u0623\u0628\u0631\u064a\u0644',
            '\u0645\u0627\u064a\u0648',
            '\u064a\u0648\u0646\u064a\u0648',
            '\u064a\u0648\u0644\u064a\u0648',
            '\u0623\u063a\u0633\u0637\u0633',
            '\u0633\u0628\u062a\u0645\u0628\u0631',
            '\u0623\u0643\u062a\u0648\u0628\u0631',
            '\u0646\u0648\u0641\u0645\u0628\u0631',
            '\u062f\u064a\u0633\u0645\u0628\u0631',
        ]
    l.defineLocale('ar', {
        months: rs,
        monthsShort: rs,
        weekdays:
            '\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a'.split(
                '_'
            ),
        weekdaysShort:
            '\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a'.split(
                '_'
            ),
        weekdaysMin: '\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633'.split(
            '_'
        ),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'D/\u200fM/\u200fYYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u0635|\u0645/,
        isPM: function (e) {
            return '\u0645' === e
        },
        meridiem: function (e, a, t) {
            return e < 12 ? '\u0635' : '\u0645'
        },
        calendar: {
            sameDay:
                '[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT',
            nextDay:
                '[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT',
            nextWeek:
                'dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT',
            lastDay:
                '[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT',
            lastWeek:
                'dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '\u0628\u0639\u062f %s',
            past: '\u0645\u0646\u0630 %s',
            s: ds('s'),
            ss: ds('s'),
            m: ds('m'),
            mm: ds('m'),
            h: ds('h'),
            hh: ds('h'),
            d: ds('d'),
            dd: ds('d'),
            M: ds('M'),
            MM: ds('M'),
            y: ds('y'),
            yy: ds('y'),
        },
        preparse: function (e) {
            return e
                .replace(
                    /[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,
                    function (e) {
                        return ts[e]
                    }
                )
                .replace(/\u060c/g, ',')
        },
        postformat: function (e) {
            return e
                .replace(/\d/g, function (e) {
                    return as[e]
                })
                .replace(/,/g, '\u060c')
        },
        week: { dow: 6, doy: 12 },
    })
    var _s = {
        1: '-inci',
        5: '-inci',
        8: '-inci',
        70: '-inci',
        80: '-inci',
        2: '-nci',
        7: '-nci',
        20: '-nci',
        50: '-nci',
        3: '-\xfcnc\xfc',
        4: '-\xfcnc\xfc',
        100: '-\xfcnc\xfc',
        6: '-nc\u0131',
        9: '-uncu',
        10: '-uncu',
        30: '-uncu',
        60: '-\u0131nc\u0131',
        90: '-\u0131nc\u0131',
    }
    function is(e, a, t) {
        var s, n
        return 'm' === t
            ? a
                ? '\u0445\u0432\u0456\u043b\u0456\u043d\u0430'
                : '\u0445\u0432\u0456\u043b\u0456\u043d\u0443'
            : 'h' === t
              ? a
                  ? '\u0433\u0430\u0434\u0437\u0456\u043d\u0430'
                  : '\u0433\u0430\u0434\u0437\u0456\u043d\u0443'
              : e +
                ' ' +
                ((s = +e),
                (n = {
                    ss: a
                        ? '\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434'
                        : '\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434',
                    mm: a
                        ? '\u0445\u0432\u0456\u043b\u0456\u043d\u0430_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d'
                        : '\u0445\u0432\u0456\u043b\u0456\u043d\u0443_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d',
                    hh: a
                        ? '\u0433\u0430\u0434\u0437\u0456\u043d\u0430_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d'
                        : '\u0433\u0430\u0434\u0437\u0456\u043d\u0443_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d',
                    dd: '\u0434\u0437\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u0437\u0451\u043d',
                    MM: '\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u044b_\u043c\u0435\u0441\u044f\u0446\u0430\u045e',
                    yy: '\u0433\u043e\u0434_\u0433\u0430\u0434\u044b_\u0433\u0430\u0434\u043e\u045e',
                }[t].split('_')),
                s % 10 == 1 && s % 100 != 11
                    ? n[0]
                    : 2 <= s % 10 &&
                        s % 10 <= 4 &&
                        (s % 100 < 10 || 20 <= s % 100)
                      ? n[1]
                      : n[2])
    }
    l.defineLocale('az', {
        months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(
            '_'
        ),
        monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split(
            '_'
        ),
        weekdays:
            'Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259'.split(
                '_'
            ),
        weekdaysShort:
            'Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n'.split('_'),
        weekdaysMin: 'Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[bug\xfcn saat] LT',
            nextDay: '[sabah saat] LT',
            nextWeek: '[g\u0259l\u0259n h\u0259ft\u0259] dddd [saat] LT',
            lastDay: '[d\xfcn\u0259n] LT',
            lastWeek: '[ke\xe7\u0259n h\u0259ft\u0259] dddd [saat] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s sonra',
            past: '%s \u0259vv\u0259l',
            s: 'birne\xe7\u0259 saniy\u0259',
            ss: '%d saniy\u0259',
            m: 'bir d\u0259qiq\u0259',
            mm: '%d d\u0259qiq\u0259',
            h: 'bir saat',
            hh: '%d saat',
            d: 'bir g\xfcn',
            dd: '%d g\xfcn',
            M: 'bir ay',
            MM: '%d ay',
            y: 'bir il',
            yy: '%d il',
        },
        meridiemParse: /gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,
        isPM: function (e) {
            return /^(g\xfcnd\xfcz|ax\u015fam)$/.test(e)
        },
        meridiem: function (e, a, t) {
            return e < 4
                ? 'gec\u0259'
                : e < 12
                  ? 's\u0259h\u0259r'
                  : e < 17
                    ? 'g\xfcnd\xfcz'
                    : 'ax\u015fam'
        },
        dayOfMonthOrdinalParse:
            /\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,
        ordinal: function (e) {
            if (0 === e) return e + '-\u0131nc\u0131'
            var a = e % 10
            return e + (_s[a] || _s[(e % 100) - a] || _s[100 <= e ? 100 : null])
        },
        week: { dow: 1, doy: 7 },
    }),
        l.defineLocale('be', {
            months: {
                format: '\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f'.split(
                    '_'
                ),
                standalone:
                    '\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c_\u043b\u044e\u0442\u044b_\u0441\u0430\u043a\u0430\u0432\u0456\u043a_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u044d\u0440\u0432\u0435\u043d\u044c_\u043b\u0456\u043f\u0435\u043d\u044c_\u0436\u043d\u0456\u0432\u0435\u043d\u044c_\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434_\u0441\u043d\u0435\u0436\u0430\u043d\u044c'.split(
                        '_'
                    ),
            },
            monthsShort:
                '\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436'.split(
                    '_'
                ),
            weekdays: {
                format: '\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443'.split(
                    '_'
                ),
                standalone:
                    '\u043d\u044f\u0434\u0437\u0435\u043b\u044f_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0430_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0430_\u0441\u0443\u0431\u043e\u0442\u0430'.split(
                        '_'
                    ),
                isFormat:
                    /\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/,
            },
            weekdaysShort:
                '\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431'.split(
                    '_'
                ),
            weekdaysMin:
                '\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431'.split(
                    '_'
                ),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D MMMM YYYY \u0433.',
                LLL: 'D MMMM YYYY \u0433., HH:mm',
                LLLL: 'dddd, D MMMM YYYY \u0433., HH:mm',
            },
            calendar: {
                sameDay: '[\u0421\u0451\u043d\u043d\u044f \u045e] LT',
                nextDay: '[\u0417\u0430\u045e\u0442\u0440\u0430 \u045e] LT',
                lastDay: '[\u0423\u0447\u043e\u0440\u0430 \u045e] LT',
                nextWeek: function () {
                    return '[\u0423] dddd [\u045e] LT'
                },
                lastWeek: function () {
                    switch (this.day()) {
                        case 0:
                        case 3:
                        case 5:
                        case 6:
                            return '[\u0423 \u043c\u0456\u043d\u0443\u043b\u0443\u044e] dddd [\u045e] LT'
                        case 1:
                        case 2:
                        case 4:
                            return '[\u0423 \u043c\u0456\u043d\u0443\u043b\u044b] dddd [\u045e] LT'
                    }
                },
                sameElse: 'L',
            },
            relativeTime: {
                future: '\u043f\u0440\u0430\u0437 %s',
                past: '%s \u0442\u0430\u043c\u0443',
                s: '\u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0441\u0435\u043a\u0443\u043d\u0434',
                m: is,
                mm: is,
                h: is,
                hh: is,
                d: '\u0434\u0437\u0435\u043d\u044c',
                dd: is,
                M: '\u043c\u0435\u0441\u044f\u0446',
                MM: is,
                y: '\u0433\u043e\u0434',
                yy: is,
            },
            meridiemParse:
                /\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,
            isPM: function (e) {
                return /^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(
                    e
                )
            },
            meridiem: function (e, a, t) {
                return e < 4
                    ? '\u043d\u043e\u0447\u044b'
                    : e < 12
                      ? '\u0440\u0430\u043d\u0456\u0446\u044b'
                      : e < 17
                        ? '\u0434\u043d\u044f'
                        : '\u0432\u0435\u0447\u0430\u0440\u0430'
            },
            dayOfMonthOrdinalParse: /\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,
            ordinal: function (e, a) {
                switch (a) {
                    case 'M':
                    case 'd':
                    case 'DDD':
                    case 'w':
                    case 'W':
                        return (e % 10 != 2 && e % 10 != 3) ||
                            e % 100 == 12 ||
                            e % 100 == 13
                            ? e + '-\u044b'
                            : e + '-\u0456'
                    case 'D':
                        return e + '-\u0433\u0430'
                    default:
                        return e
                }
            },
            week: { dow: 1, doy: 7 },
        }),
        l.defineLocale('bg', {
            months: '\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438'.split(
                '_'
            ),
            monthsShort:
                '\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a'.split(
                    '_'
                ),
            weekdays:
                '\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430'.split(
                    '_'
                ),
            weekdaysShort:
                '\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431'.split(
                    '_'
                ),
            weekdaysMin:
                '\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431'.split(
                    '_'
                ),
            longDateFormat: {
                LT: 'H:mm',
                LTS: 'H:mm:ss',
                L: 'D.MM.YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY H:mm',
                LLLL: 'dddd, D MMMM YYYY H:mm',
            },
            calendar: {
                sameDay: '[\u0414\u043d\u0435\u0441 \u0432] LT',
                nextDay: '[\u0423\u0442\u0440\u0435 \u0432] LT',
                nextWeek: 'dddd [\u0432] LT',
                lastDay: '[\u0412\u0447\u0435\u0440\u0430 \u0432] LT',
                lastWeek: function () {
                    switch (this.day()) {
                        case 0:
                        case 3:
                        case 6:
                            return '[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT'
                        case 1:
                        case 2:
                        case 4:
                        case 5:
                            return '[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT'
                    }
                },
                sameElse: 'L',
            },
            relativeTime: {
                future: '\u0441\u043b\u0435\u0434 %s',
                past: '\u043f\u0440\u0435\u0434\u0438 %s',
                s: '\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438',
                ss: '%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438',
                m: '\u043c\u0438\u043d\u0443\u0442\u0430',
                mm: '%d \u043c\u0438\u043d\u0443\u0442\u0438',
                h: '\u0447\u0430\u0441',
                hh: '%d \u0447\u0430\u0441\u0430',
                d: '\u0434\u0435\u043d',
                dd: '%d \u0434\u043d\u0438',
                M: '\u043c\u0435\u0441\u0435\u0446',
                MM: '%d \u043c\u0435\u0441\u0435\u0446\u0430',
                y: '\u0433\u043e\u0434\u0438\u043d\u0430',
                yy: '%d \u0433\u043e\u0434\u0438\u043d\u0438',
            },
            dayOfMonthOrdinalParse:
                /\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,
            ordinal: function (e) {
                var a = e % 10,
                    t = e % 100
                return 0 === e
                    ? e + '-\u0435\u0432'
                    : 0 === t
                      ? e + '-\u0435\u043d'
                      : 10 < t && t < 20
                        ? e + '-\u0442\u0438'
                        : 1 === a
                          ? e + '-\u0432\u0438'
                          : 2 === a
                            ? e + '-\u0440\u0438'
                            : 7 === a || 8 === a
                              ? e + '-\u043c\u0438'
                              : e + '-\u0442\u0438'
            },
            week: { dow: 1, doy: 7 },
        }),
        l.defineLocale('bm', {
            months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo'.split(
                '_'
            ),
            monthsShort:
                'Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des'.split(
                    '_'
                ),
            weekdays:
                'Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri'.split(
                    '_'
                ),
            weekdaysShort: 'Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib'.split('_'),
            weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'MMMM [tile] D [san] YYYY',
                LLL: 'MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm',
                LLLL: 'dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm',
            },
            calendar: {
                sameDay: '[Bi l\u025br\u025b] LT',
                nextDay: '[Sini l\u025br\u025b] LT',
                nextWeek: 'dddd [don l\u025br\u025b] LT',
                lastDay: '[Kunu l\u025br\u025b] LT',
                lastWeek: 'dddd [t\u025bm\u025bnen l\u025br\u025b] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '%s k\u0254n\u0254',
                past: 'a b\u025b %s b\u0254',
                s: 'sanga dama dama',
                ss: 'sekondi %d',
                m: 'miniti kelen',
                mm: 'miniti %d',
                h: 'l\u025br\u025b kelen',
                hh: 'l\u025br\u025b %d',
                d: 'tile kelen',
                dd: 'tile %d',
                M: 'kalo kelen',
                MM: 'kalo %d',
                y: 'san kelen',
                yy: 'san %d',
            },
            week: { dow: 1, doy: 4 },
        })
    var os = {
            1: '\u09e7',
            2: '\u09e8',
            3: '\u09e9',
            4: '\u09ea',
            5: '\u09eb',
            6: '\u09ec',
            7: '\u09ed',
            8: '\u09ee',
            9: '\u09ef',
            0: '\u09e6',
        },
        ms = {
            '\u09e7': '1',
            '\u09e8': '2',
            '\u09e9': '3',
            '\u09ea': '4',
            '\u09eb': '5',
            '\u09ec': '6',
            '\u09ed': '7',
            '\u09ee': '8',
            '\u09ef': '9',
            '\u09e6': '0',
        }
    l.defineLocale('bn', {
        months: '\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0'.split(
            '_'
        ),
        monthsShort:
            '\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2_\u0986\u0997_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7'.split(
                '_'
            ),
        weekdays:
            '\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0'.split(
                '_'
            ),
        weekdaysShort:
            '\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf'.split(
                '_'
            ),
        weekdaysMin:
            '\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u0983_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf'.split(
                '_'
            ),
        longDateFormat: {
            LT: 'A h:mm \u09b8\u09ae\u09df',
            LTS: 'A h:mm:ss \u09b8\u09ae\u09df',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm \u09b8\u09ae\u09df',
            LLLL: 'dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df',
        },
        calendar: {
            sameDay: '[\u0986\u099c] LT',
            nextDay: '[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT',
            nextWeek: 'dddd, LT',
            lastDay: '[\u0997\u09a4\u0995\u09be\u09b2] LT',
            lastWeek: '[\u0997\u09a4] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s \u09aa\u09b0\u09c7',
            past: '%s \u0986\u0997\u09c7',
            s: '\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1',
            ss: '%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1',
            m: '\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f',
            mm: '%d \u09ae\u09bf\u09a8\u09bf\u099f',
            h: '\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be',
            hh: '%d \u0998\u09a8\u09cd\u099f\u09be',
            d: '\u098f\u0995 \u09a6\u09bf\u09a8',
            dd: '%d \u09a6\u09bf\u09a8',
            M: '\u098f\u0995 \u09ae\u09be\u09b8',
            MM: '%d \u09ae\u09be\u09b8',
            y: '\u098f\u0995 \u09ac\u099b\u09b0',
            yy: '%d \u09ac\u099b\u09b0',
        },
        preparse: function (e) {
            return e.replace(
                /[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,
                function (e) {
                    return ms[e]
                }
            )
        },
        postformat: function (e) {
            return e.replace(/\d/g, function (e) {
                return os[e]
            })
        },
        meridiemParse:
            /\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,
        meridiemHour: function (e, a) {
            return (
                12 === e && (e = 0),
                ('\u09b0\u09be\u09a4' === a && 4 <= e) ||
                ('\u09a6\u09c1\u09aa\u09c1\u09b0' === a && e < 5) ||
                '\u09ac\u09bf\u0995\u09be\u09b2' === a
                    ? e + 12
                    : e
            )
        },
        meridiem: function (e, a, t) {
            return e < 4
                ? '\u09b0\u09be\u09a4'
                : e < 10
                  ? '\u09b8\u0995\u09be\u09b2'
                  : e < 17
                    ? '\u09a6\u09c1\u09aa\u09c1\u09b0'
                    : e < 20
                      ? '\u09ac\u09bf\u0995\u09be\u09b2'
                      : '\u09b0\u09be\u09a4'
        },
        week: { dow: 0, doy: 6 },
    })
    var us = {
            1: '\u0f21',
            2: '\u0f22',
            3: '\u0f23',
            4: '\u0f24',
            5: '\u0f25',
            6: '\u0f26',
            7: '\u0f27',
            8: '\u0f28',
            9: '\u0f29',
            0: '\u0f20',
        },
        ls = {
            '\u0f21': '1',
            '\u0f22': '2',
            '\u0f23': '3',
            '\u0f24': '4',
            '\u0f25': '5',
            '\u0f26': '6',
            '\u0f27': '7',
            '\u0f28': '8',
            '\u0f29': '9',
            '\u0f20': '0',
        }
    function Ms(e, a, t) {
        var s, n, d
        return (
            e +
            ' ' +
            ((s = { mm: 'munutenn', MM: 'miz', dd: 'devezh' }[t]),
            2 !== e
                ? s
                : void 0 !== (d = { m: 'v', b: 'v', d: 'z' })[(n = s).charAt(0)]
                  ? d[n.charAt(0)] + n.substring(1)
                  : n)
        )
    }
    function hs(e, a, t) {
        var s = e + ' '
        switch (t) {
            case 'ss':
                return (s +=
                    1 === e
                        ? 'sekunda'
                        : 2 === e || 3 === e || 4 === e
                          ? 'sekunde'
                          : 'sekundi')
            case 'm':
                return a ? 'jedna minuta' : 'jedne minute'
            case 'mm':
                return (s +=
                    1 === e
                        ? 'minuta'
                        : 2 === e || 3 === e || 4 === e
                          ? 'minute'
                          : 'minuta')
            case 'h':
                return a ? 'jedan sat' : 'jednog sata'
            case 'hh':
                return (s +=
                    1 === e
                        ? 'sat'
                        : 2 === e || 3 === e || 4 === e
                          ? 'sata'
                          : 'sati')
            case 'dd':
                return (s += 1 === e ? 'dan' : 'dana')
            case 'MM':
                return (s +=
                    1 === e
                        ? 'mjesec'
                        : 2 === e || 3 === e || 4 === e
                          ? 'mjeseca'
                          : 'mjeseci')
            case 'yy':
                return (s +=
                    1 === e
                        ? 'godina'
                        : 2 === e || 3 === e || 4 === e
                          ? 'godine'
                          : 'godina')
        }
    }
    l.defineLocale('bo', {
        months: '\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54'.split(
            '_'
        ),
        monthsShort:
            '\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54'.split(
                '_'
            ),
        weekdays:
            '\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b'.split(
                '_'
            ),
        weekdaysShort:
            '\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b'.split(
                '_'
            ),
        weekdaysMin:
            '\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b'.split(
                '_'
            ),
        longDateFormat: {
            LT: 'A h:mm',
            LTS: 'A h:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm',
            LLLL: 'dddd, D MMMM YYYY, A h:mm',
        },
        calendar: {
            sameDay: '[\u0f51\u0f72\u0f0b\u0f62\u0f72\u0f44] LT',
            nextDay: '[\u0f66\u0f44\u0f0b\u0f49\u0f72\u0f53] LT',
            nextWeek:
                '[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f62\u0f97\u0f7a\u0f66\u0f0b\u0f58], LT',
            lastDay: '[\u0f41\u0f0b\u0f66\u0f44] LT',
            lastWeek:
                '[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f58] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s \u0f63\u0f0b',
            past: '%s \u0f66\u0f94\u0f53\u0f0b\u0f63',
            s: '\u0f63\u0f58\u0f0b\u0f66\u0f44',
            ss: '%d \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f0d',
            m: '\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42',
            mm: '%d \u0f66\u0f90\u0f62\u0f0b\u0f58',
            h: '\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42',
            hh: '%d \u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51',
            d: '\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42',
            dd: '%d \u0f49\u0f72\u0f53\u0f0b',
            M: '\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42',
            MM: '%d \u0f5f\u0fb3\u0f0b\u0f56',
            y: '\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42',
            yy: '%d \u0f63\u0f7c',
        },
        preparse: function (e) {
            return e.replace(
                /[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,
                function (e) {
                    return ls[e]
                }
            )
        },
        postformat: function (e) {
            return e.replace(/\d/g, function (e) {
                return us[e]
            })
        },
        meridiemParse:
            /\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,
        meridiemHour: function (e, a) {
            return (
                12 === e && (e = 0),
                ('\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c' === a && 4 <= e) ||
                ('\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44' === a && e < 5) ||
                '\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42' === a
                    ? e + 12
                    : e
            )
        },
        meridiem: function (e, a, t) {
            return e < 4
                ? '\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c'
                : e < 10
                  ? '\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66'
                  : e < 17
                    ? '\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44'
                    : e < 20
                      ? '\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42'
                      : '\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c'
        },
        week: { dow: 0, doy: 6 },
    }),
        l.defineLocale('br', {
            months: "Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split(
                '_'
            ),
            monthsShort:
                "Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split('_'),
            weekdays: "Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split('_'),
            weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
            weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'h[e]mm A',
                LTS: 'h[e]mm:ss A',
                L: 'DD/MM/YYYY',
                LL: 'D [a viz] MMMM YYYY',
                LLL: 'D [a viz] MMMM YYYY h[e]mm A',
                LLLL: 'dddd, D [a viz] MMMM YYYY h[e]mm A',
            },
            calendar: {
                sameDay: '[Hiziv da] LT',
                nextDay: "[Warc'hoazh da] LT",
                nextWeek: 'dddd [da] LT',
                lastDay: "[Dec'h da] LT",
                lastWeek: 'dddd [paset da] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'a-benn %s',
                past: "%s 'zo",
                s: 'un nebeud segondenno\xf9',
                ss: '%d eilenn',
                m: 'ur vunutenn',
                mm: Ms,
                h: 'un eur',
                hh: '%d eur',
                d: 'un devezh',
                dd: Ms,
                M: 'ur miz',
                MM: Ms,
                y: 'ur bloaz',
                yy: function (e) {
                    switch (
                        (function e(a) {
                            return 9 < a ? e(a % 10) : a
                        })(e)
                    ) {
                        case 1:
                        case 3:
                        case 4:
                        case 5:
                        case 9:
                            return e + ' bloaz'
                        default:
                            return e + ' vloaz'
                    }
                },
            },
            dayOfMonthOrdinalParse: /\d{1,2}(a\xf1|vet)/,
            ordinal: function (e) {
                return e + (1 === e ? 'a\xf1' : 'vet')
            },
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('bs', {
            months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(
                '_'
            ),
            monthsShort:
                'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota'.split(
                    '_'
                ),
            weekdaysShort: 'ned._pon._uto._sri._\u010det._pet._sub.'.split('_'),
            weekdaysMin: 'ne_po_ut_sr_\u010de_pe_su'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'H:mm',
                LTS: 'H:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D. MMMM YYYY',
                LLL: 'D. MMMM YYYY H:mm',
                LLLL: 'dddd, D. MMMM YYYY H:mm',
            },
            calendar: {
                sameDay: '[danas u] LT',
                nextDay: '[sutra u] LT',
                nextWeek: function () {
                    switch (this.day()) {
                        case 0:
                            return '[u] [nedjelju] [u] LT'
                        case 3:
                            return '[u] [srijedu] [u] LT'
                        case 6:
                            return '[u] [subotu] [u] LT'
                        case 1:
                        case 2:
                        case 4:
                        case 5:
                            return '[u] dddd [u] LT'
                    }
                },
                lastDay: '[ju\u010der u] LT',
                lastWeek: function () {
                    switch (this.day()) {
                        case 0:
                        case 3:
                            return '[pro\u0161lu] dddd [u] LT'
                        case 6:
                            return '[pro\u0161le] [subote] [u] LT'
                        case 1:
                        case 2:
                        case 4:
                        case 5:
                            return '[pro\u0161li] dddd [u] LT'
                    }
                },
                sameElse: 'L',
            },
            relativeTime: {
                future: 'za %s',
                past: 'prije %s',
                s: 'par sekundi',
                ss: hs,
                m: hs,
                mm: hs,
                h: hs,
                hh: hs,
                d: 'dan',
                dd: hs,
                M: 'mjesec',
                MM: hs,
                y: 'godinu',
                yy: hs,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 7 },
        }),
        l.defineLocale('ca', {
            months: {
                standalone:
                    'gener_febrer_mar\xe7_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(
                        '_'
                    ),
                format: "de gener_de febrer_de mar\xe7_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split(
                    '_'
                ),
                isFormat: /D[oD]?(\s)+MMMM/,
            },
            monthsShort:
                'gen._febr._mar\xe7_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(
                    '_'
                ),
            weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
            weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'H:mm',
                LTS: 'H:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM [de] YYYY',
                ll: 'D MMM YYYY',
                LLL: 'D MMMM [de] YYYY [a les] H:mm',
                lll: 'D MMM YYYY, H:mm',
                LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',
                llll: 'ddd D MMM YYYY, H:mm',
            },
            calendar: {
                sameDay: function () {
                    return (
                        '[avui a ' +
                        (1 !== this.hours() ? 'les' : 'la') +
                        '] LT'
                    )
                },
                nextDay: function () {
                    return (
                        '[dem\xe0 a ' +
                        (1 !== this.hours() ? 'les' : 'la') +
                        '] LT'
                    )
                },
                nextWeek: function () {
                    return (
                        'dddd [a ' +
                        (1 !== this.hours() ? 'les' : 'la') +
                        '] LT'
                    )
                },
                lastDay: function () {
                    return (
                        '[ahir a ' +
                        (1 !== this.hours() ? 'les' : 'la') +
                        '] LT'
                    )
                },
                lastWeek: function () {
                    return (
                        '[el] dddd [passat a ' +
                        (1 !== this.hours() ? 'les' : 'la') +
                        '] LT'
                    )
                },
                sameElse: 'L',
            },
            relativeTime: {
                future: "d'aqu\xed %s",
                past: 'fa %s',
                s: 'uns segons',
                ss: '%d segons',
                m: 'un minut',
                mm: '%d minuts',
                h: 'una hora',
                hh: '%d hores',
                d: 'un dia',
                dd: '%d dies',
                M: 'un mes',
                MM: '%d mesos',
                y: 'un any',
                yy: '%d anys',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|\xe8|a)/,
            ordinal: function (e, a) {
                var t =
                    1 === e
                        ? 'r'
                        : 2 === e
                          ? 'n'
                          : 3 === e
                            ? 'r'
                            : 4 === e
                              ? 't'
                              : '\xe8'
                return ('w' !== a && 'W' !== a) || (t = 'a'), e + t
            },
            week: { dow: 1, doy: 4 },
        })
    var Ls =
            'leden_\xfanor_b\u0159ezen_duben_kv\u011bten_\u010derven_\u010dervenec_srpen_z\xe1\u0159\xed_\u0159\xedjen_listopad_prosinec'.split(
                '_'
            ),
        cs =
            'led_\xfano_b\u0159e_dub_kv\u011b_\u010dvn_\u010dvc_srp_z\xe1\u0159_\u0159\xedj_lis_pro'.split(
                '_'
            ),
        Ys = [
            /^led/i,
            /^\xfano/i,
            /^b\u0159e/i,
            /^dub/i,
            /^kv\u011b/i,
            /^(\u010dvn|\u010derven$|\u010dervna)/i,
            /^(\u010dvc|\u010dervenec|\u010dervence)/i,
            /^srp/i,
            /^z\xe1\u0159/i,
            /^\u0159\xedj/i,
            /^lis/i,
            /^pro/i,
        ],
        ys =
            /^(leden|\xfanor|b\u0159ezen|duben|kv\u011bten|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|z\xe1\u0159\xed|\u0159\xedjen|listopad|prosinec|led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i
    function fs(e) {
        return 1 < e && e < 5 && 1 != ~~(e / 10)
    }
    function ks(e, a, t, s) {
        var n = e + ' '
        switch (t) {
            case 's':
                return a || s ? 'p\xe1r sekund' : 'p\xe1r sekundami'
            case 'ss':
                return a || s
                    ? n + (fs(e) ? 'sekundy' : 'sekund')
                    : n + 'sekundami'
                break
            case 'm':
                return a ? 'minuta' : s ? 'minutu' : 'minutou'
            case 'mm':
                return a || s
                    ? n + (fs(e) ? 'minuty' : 'minut')
                    : n + 'minutami'
                break
            case 'h':
                return a ? 'hodina' : s ? 'hodinu' : 'hodinou'
            case 'hh':
                return a || s
                    ? n + (fs(e) ? 'hodiny' : 'hodin')
                    : n + 'hodinami'
                break
            case 'd':
                return a || s ? 'den' : 'dnem'
            case 'dd':
                return a || s ? n + (fs(e) ? 'dny' : 'dn\xed') : n + 'dny'
                break
            case 'M':
                return a || s ? 'm\u011bs\xedc' : 'm\u011bs\xedcem'
            case 'MM':
                return a || s
                    ? n + (fs(e) ? 'm\u011bs\xedce' : 'm\u011bs\xedc\u016f')
                    : n + 'm\u011bs\xedci'
                break
            case 'y':
                return a || s ? 'rok' : 'rokem'
            case 'yy':
                return a || s ? n + (fs(e) ? 'roky' : 'let') : n + 'lety'
                break
        }
    }
    function ps(e, a, t, s) {
        var n = {
            m: ['eine Minute', 'einer Minute'],
            h: ['eine Stunde', 'einer Stunde'],
            d: ['ein Tag', 'einem Tag'],
            dd: [e + ' Tage', e + ' Tagen'],
            M: ['ein Monat', 'einem Monat'],
            MM: [e + ' Monate', e + ' Monaten'],
            y: ['ein Jahr', 'einem Jahr'],
            yy: [e + ' Jahre', e + ' Jahren'],
        }
        return a ? n[t][0] : n[t][1]
    }
    function Ds(e, a, t, s) {
        var n = {
            m: ['eine Minute', 'einer Minute'],
            h: ['eine Stunde', 'einer Stunde'],
            d: ['ein Tag', 'einem Tag'],
            dd: [e + ' Tage', e + ' Tagen'],
            M: ['ein Monat', 'einem Monat'],
            MM: [e + ' Monate', e + ' Monaten'],
            y: ['ein Jahr', 'einem Jahr'],
            yy: [e + ' Jahre', e + ' Jahren'],
        }
        return a ? n[t][0] : n[t][1]
    }
    function Ts(e, a, t, s) {
        var n = {
            m: ['eine Minute', 'einer Minute'],
            h: ['eine Stunde', 'einer Stunde'],
            d: ['ein Tag', 'einem Tag'],
            dd: [e + ' Tage', e + ' Tagen'],
            M: ['ein Monat', 'einem Monat'],
            MM: [e + ' Monate', e + ' Monaten'],
            y: ['ein Jahr', 'einem Jahr'],
            yy: [e + ' Jahre', e + ' Jahren'],
        }
        return a ? n[t][0] : n[t][1]
    }
    l.defineLocale('cs', {
        months: Ls,
        monthsShort: cs,
        monthsRegex: ys,
        monthsShortRegex: ys,
        monthsStrictRegex:
            /^(leden|ledna|\xfanora|\xfanor|b\u0159ezen|b\u0159ezna|duben|dubna|kv\u011bten|kv\u011btna|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|srpna|z\xe1\u0159\xed|\u0159\xedjen|\u0159\xedjna|listopadu|listopad|prosinec|prosince)/i,
        monthsShortStrictRegex:
            /^(led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i,
        monthsParse: Ys,
        longMonthsParse: Ys,
        shortMonthsParse: Ys,
        weekdays:
            'ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota'.split(
                '_'
            ),
        weekdaysShort: 'ne_po_\xfat_st_\u010dt_p\xe1_so'.split('_'),
        weekdaysMin: 'ne_po_\xfat_st_\u010dt_p\xe1_so'.split('_'),
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY H:mm',
            LLLL: 'dddd D. MMMM YYYY H:mm',
            l: 'D. M. YYYY',
        },
        calendar: {
            sameDay: '[dnes v] LT',
            nextDay: '[z\xedtra v] LT',
            nextWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[v ned\u011bli v] LT'
                    case 1:
                    case 2:
                        return '[v] dddd [v] LT'
                    case 3:
                        return '[ve st\u0159edu v] LT'
                    case 4:
                        return '[ve \u010dtvrtek v] LT'
                    case 5:
                        return '[v p\xe1tek v] LT'
                    case 6:
                        return '[v sobotu v] LT'
                }
            },
            lastDay: '[v\u010dera v] LT',
            lastWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[minulou ned\u011bli v] LT'
                    case 1:
                    case 2:
                        return '[minul\xe9] dddd [v] LT'
                    case 3:
                        return '[minulou st\u0159edu v] LT'
                    case 4:
                    case 5:
                        return '[minul\xfd] dddd [v] LT'
                    case 6:
                        return '[minulou sobotu v] LT'
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'za %s',
            past: 'p\u0159ed %s',
            s: ks,
            ss: ks,
            m: ks,
            mm: ks,
            h: ks,
            hh: ks,
            d: ks,
            dd: ks,
            M: ks,
            MM: ks,
            y: ks,
            yy: ks,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }),
        l.defineLocale('cv', {
            months: '\u043a\u04d1\u0440\u043b\u0430\u0447_\u043d\u0430\u0440\u04d1\u0441_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440\u0442\u043c\u0435_\u0443\u0442\u04d1_\u04ab\u0443\u0440\u043b\u0430_\u0430\u0432\u04d1\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448\u0442\u0430\u0432'.split(
                '_'
            ),
            monthsShort:
                '\u043a\u04d1\u0440_\u043d\u0430\u0440_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440_\u0443\u0442\u04d1_\u04ab\u0443\u0440_\u0430\u0432\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448'.split(
                    '_'
                ),
            weekdays:
                '\u0432\u044b\u0440\u0441\u0430\u0440\u043d\u0438\u043a\u0443\u043d_\u0442\u0443\u043d\u0442\u0438\u043a\u0443\u043d_\u044b\u0442\u043b\u0430\u0440\u0438\u043a\u0443\u043d_\u044e\u043d\u043a\u0443\u043d_\u043a\u04d7\u04ab\u043d\u0435\u0440\u043d\u0438\u043a\u0443\u043d_\u044d\u0440\u043d\u0435\u043a\u0443\u043d_\u0448\u04d1\u043c\u0430\u0442\u043a\u0443\u043d'.split(
                    '_'
                ),
            weekdaysShort:
                '\u0432\u044b\u0440_\u0442\u0443\u043d_\u044b\u0442\u043b_\u044e\u043d_\u043a\u04d7\u04ab_\u044d\u0440\u043d_\u0448\u04d1\u043c'.split(
                    '_'
                ),
            weekdaysMin:
                '\u0432\u0440_\u0442\u043d_\u044b\u0442_\u044e\u043d_\u043a\u04ab_\u044d\u0440_\u0448\u043c'.split(
                    '_'
                ),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD-MM-YYYY',
                LL: 'YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7]',
                LLL: 'YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm',
                LLLL: 'dddd, YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm',
            },
            calendar: {
                sameDay:
                    '[\u041f\u0430\u044f\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]',
                nextDay:
                    '[\u042b\u0440\u0430\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]',
                lastDay:
                    '[\u04d6\u043d\u0435\u0440] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]',
                nextWeek:
                    '[\u04aa\u0438\u0442\u0435\u0441] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]',
                lastWeek:
                    '[\u0418\u0440\u0442\u043d\u04d7] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]',
                sameElse: 'L',
            },
            relativeTime: {
                future: function (e) {
                    return (
                        e +
                        (/\u0441\u0435\u0445\u0435\u0442$/i.exec(e)
                            ? '\u0440\u0435\u043d'
                            : /\u04ab\u0443\u043b$/i.exec(e)
                              ? '\u0442\u0430\u043d'
                              : '\u0440\u0430\u043d')
                    )
                },
                past: '%s \u043a\u0430\u044f\u043b\u043b\u0430',
                s: '\u043f\u04d7\u0440-\u0438\u043a \u04ab\u0435\u043a\u043a\u0443\u043d\u0442',
                ss: '%d \u04ab\u0435\u043a\u043a\u0443\u043d\u0442',
                m: '\u043f\u04d7\u0440 \u043c\u0438\u043d\u0443\u0442',
                mm: '%d \u043c\u0438\u043d\u0443\u0442',
                h: '\u043f\u04d7\u0440 \u0441\u0435\u0445\u0435\u0442',
                hh: '%d \u0441\u0435\u0445\u0435\u0442',
                d: '\u043f\u04d7\u0440 \u043a\u0443\u043d',
                dd: '%d \u043a\u0443\u043d',
                M: '\u043f\u04d7\u0440 \u0443\u0439\u04d1\u0445',
                MM: '%d \u0443\u0439\u04d1\u0445',
                y: '\u043f\u04d7\u0440 \u04ab\u0443\u043b',
                yy: '%d \u04ab\u0443\u043b',
            },
            dayOfMonthOrdinalParse: /\d{1,2}-\u043c\u04d7\u0448/,
            ordinal: '%d-\u043c\u04d7\u0448',
            week: { dow: 1, doy: 7 },
        }),
        l.defineLocale('cy', {
            months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(
                '_'
            ),
            monthsShort:
                'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),
            weekdays:
                'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(
                    '_'
                ),
            weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
            weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Heddiw am] LT',
                nextDay: '[Yfory am] LT',
                nextWeek: 'dddd [am] LT',
                lastDay: '[Ddoe am] LT',
                lastWeek: 'dddd [diwethaf am] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'mewn %s',
                past: '%s yn \xf4l',
                s: 'ychydig eiliadau',
                ss: '%d eiliad',
                m: 'munud',
                mm: '%d munud',
                h: 'awr',
                hh: '%d awr',
                d: 'diwrnod',
                dd: '%d diwrnod',
                M: 'mis',
                MM: '%d mis',
                y: 'blwyddyn',
                yy: '%d flynedd',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
            ordinal: function (e) {
                var a = ''
                return (
                    20 < e
                        ? (a =
                              40 === e ||
                              50 === e ||
                              60 === e ||
                              80 === e ||
                              100 === e
                                  ? 'fed'
                                  : 'ain')
                        : 0 < e &&
                          (a = [
                              '',
                              'af',
                              'il',
                              'ydd',
                              'ydd',
                              'ed',
                              'ed',
                              'ed',
                              'fed',
                              'fed',
                              'fed',
                              'eg',
                              'fed',
                              'eg',
                              'eg',
                              'fed',
                              'eg',
                              'eg',
                              'fed',
                              'eg',
                              'fed',
                          ][e]),
                    e + a
                )
            },
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('da', {
            months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(
                '_'
            ),
            monthsShort:
                'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
            weekdays:
                's\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag'.split(
                    '_'
                ),
            weekdaysShort: 's\xf8n_man_tir_ons_tor_fre_l\xf8r'.split('_'),
            weekdaysMin: 's\xf8_ma_ti_on_to_fr_l\xf8'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D. MMMM YYYY',
                LLL: 'D. MMMM YYYY HH:mm',
                LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',
            },
            calendar: {
                sameDay: '[i dag kl.] LT',
                nextDay: '[i morgen kl.] LT',
                nextWeek: 'p\xe5 dddd [kl.] LT',
                lastDay: '[i g\xe5r kl.] LT',
                lastWeek: '[i] dddd[s kl.] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'om %s',
                past: '%s siden',
                s: 'f\xe5 sekunder',
                ss: '%d sekunder',
                m: 'et minut',
                mm: '%d minutter',
                h: 'en time',
                hh: '%d timer',
                d: 'en dag',
                dd: '%d dage',
                M: 'en m\xe5ned',
                MM: '%d m\xe5neder',
                y: 'et \xe5r',
                yy: '%d \xe5r',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('de-at', {
            months: 'J\xe4nner_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
                '_'
            ),
            monthsShort:
                'J\xe4n._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
                    '_'
                ),
            weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
            weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D. MMMM YYYY',
                LLL: 'D. MMMM YYYY HH:mm',
                LLLL: 'dddd, D. MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[heute um] LT [Uhr]',
                sameElse: 'L',
                nextDay: '[morgen um] LT [Uhr]',
                nextWeek: 'dddd [um] LT [Uhr]',
                lastDay: '[gestern um] LT [Uhr]',
                lastWeek: '[letzten] dddd [um] LT [Uhr]',
            },
            relativeTime: {
                future: 'in %s',
                past: 'vor %s',
                s: 'ein paar Sekunden',
                ss: '%d Sekunden',
                m: ps,
                mm: '%d Minuten',
                h: ps,
                hh: '%d Stunden',
                d: ps,
                dd: ps,
                M: ps,
                MM: ps,
                y: ps,
                yy: ps,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('de-ch', {
            months: 'Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
                '_'
            ),
            monthsShort:
                'Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
                    '_'
                ),
            weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
            weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D. MMMM YYYY',
                LLL: 'D. MMMM YYYY HH:mm',
                LLLL: 'dddd, D. MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[heute um] LT [Uhr]',
                sameElse: 'L',
                nextDay: '[morgen um] LT [Uhr]',
                nextWeek: 'dddd [um] LT [Uhr]',
                lastDay: '[gestern um] LT [Uhr]',
                lastWeek: '[letzten] dddd [um] LT [Uhr]',
            },
            relativeTime: {
                future: 'in %s',
                past: 'vor %s',
                s: 'ein paar Sekunden',
                ss: '%d Sekunden',
                m: Ds,
                mm: '%d Minuten',
                h: Ds,
                hh: '%d Stunden',
                d: Ds,
                dd: Ds,
                M: Ds,
                MM: Ds,
                y: Ds,
                yy: Ds,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('de', {
            months: 'Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
                '_'
            ),
            monthsShort:
                'Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
                    '_'
                ),
            weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
            weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D. MMMM YYYY',
                LLL: 'D. MMMM YYYY HH:mm',
                LLLL: 'dddd, D. MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[heute um] LT [Uhr]',
                sameElse: 'L',
                nextDay: '[morgen um] LT [Uhr]',
                nextWeek: 'dddd [um] LT [Uhr]',
                lastDay: '[gestern um] LT [Uhr]',
                lastWeek: '[letzten] dddd [um] LT [Uhr]',
            },
            relativeTime: {
                future: 'in %s',
                past: 'vor %s',
                s: 'ein paar Sekunden',
                ss: '%d Sekunden',
                m: Ts,
                mm: '%d Minuten',
                h: Ts,
                hh: '%d Stunden',
                d: Ts,
                dd: Ts,
                M: Ts,
                MM: Ts,
                y: Ts,
                yy: Ts,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
        })
    var gs = [
            '\u0796\u07ac\u0782\u07aa\u0787\u07a6\u0783\u07a9',
            '\u078a\u07ac\u0784\u07b0\u0783\u07aa\u0787\u07a6\u0783\u07a9',
            '\u0789\u07a7\u0783\u07a8\u0797\u07aa',
            '\u0787\u07ad\u0795\u07b0\u0783\u07a9\u078d\u07aa',
            '\u0789\u07ad',
            '\u0796\u07ab\u0782\u07b0',
            '\u0796\u07aa\u078d\u07a6\u0787\u07a8',
            '\u0787\u07af\u078e\u07a6\u0790\u07b0\u0793\u07aa',
            '\u0790\u07ac\u0795\u07b0\u0793\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa',
            '\u0787\u07ae\u0786\u07b0\u0793\u07af\u0784\u07a6\u0783\u07aa',
            '\u0782\u07ae\u0788\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa',
            '\u0791\u07a8\u0790\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa',
        ],
        ws = [
            '\u0787\u07a7\u078b\u07a8\u0787\u07b0\u078c\u07a6',
            '\u0780\u07af\u0789\u07a6',
            '\u0787\u07a6\u0782\u07b0\u078e\u07a7\u0783\u07a6',
            '\u0784\u07aa\u078b\u07a6',
            '\u0784\u07aa\u0783\u07a7\u0790\u07b0\u078a\u07a6\u078c\u07a8',
            '\u0780\u07aa\u0786\u07aa\u0783\u07aa',
            '\u0780\u07ae\u0782\u07a8\u0780\u07a8\u0783\u07aa',
        ]
    l.defineLocale('dv', {
        months: gs,
        monthsShort: gs,
        weekdays: ws,
        weekdaysShort: ws,
        weekdaysMin:
            '\u0787\u07a7\u078b\u07a8_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7_\u0780\u07aa\u0786\u07aa_\u0780\u07ae\u0782\u07a8'.split(
                '_'
            ),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'D/M/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u0789\u0786|\u0789\u078a/,
        isPM: function (e) {
            return '\u0789\u078a' === e
        },
        meridiem: function (e, a, t) {
            return e < 12 ? '\u0789\u0786' : '\u0789\u078a'
        },
        calendar: {
            sameDay: '[\u0789\u07a8\u0787\u07a6\u078b\u07aa] LT',
            nextDay: '[\u0789\u07a7\u078b\u07a6\u0789\u07a7] LT',
            nextWeek: 'dddd LT',
            lastDay: '[\u0787\u07a8\u0787\u07b0\u0794\u07ac] LT',
            lastWeek:
                '[\u078a\u07a7\u0787\u07a8\u078c\u07aa\u0788\u07a8] dddd LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '\u078c\u07ac\u0783\u07ad\u078e\u07a6\u0787\u07a8 %s',
            past: '\u0786\u07aa\u0783\u07a8\u0782\u07b0 %s',
            s: '\u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa\u0786\u07ae\u0785\u07ac\u0787\u07b0',
            ss: 'd% \u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa',
            m: '\u0789\u07a8\u0782\u07a8\u0793\u07ac\u0787\u07b0',
            mm: '\u0789\u07a8\u0782\u07a8\u0793\u07aa %d',
            h: '\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07ac\u0787\u07b0',
            hh: '\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07aa %d',
            d: '\u078b\u07aa\u0788\u07a6\u0780\u07ac\u0787\u07b0',
            dd: '\u078b\u07aa\u0788\u07a6\u0790\u07b0 %d',
            M: '\u0789\u07a6\u0780\u07ac\u0787\u07b0',
            MM: '\u0789\u07a6\u0790\u07b0 %d',
            y: '\u0787\u07a6\u0780\u07a6\u0783\u07ac\u0787\u07b0',
            yy: '\u0787\u07a6\u0780\u07a6\u0783\u07aa %d',
        },
        preparse: function (e) {
            return e.replace(/\u060c/g, ',')
        },
        postformat: function (e) {
            return e.replace(/,/g, '\u060c')
        },
        week: { dow: 7, doy: 12 },
    }),
        l.defineLocale('el', {
            monthsNominativeEl:
                '\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2_\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2_\u039c\u03ac\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2_\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2_\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2_\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2'.split(
                    '_'
                ),
            monthsGenitiveEl:
                '\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5_\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5_\u039c\u03b1\u0390\u03bf\u03c5_\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5_\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5_\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5_\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5_\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5'.split(
                    '_'
                ),
            months: function (e, a) {
                return e
                    ? 'string' == typeof a &&
                      /D/.test(a.substring(0, a.indexOf('MMMM')))
                        ? this._monthsGenitiveEl[e.month()]
                        : this._monthsNominativeEl[e.month()]
                    : this._monthsNominativeEl
            },
            monthsShort:
                '\u0399\u03b1\u03bd_\u03a6\u03b5\u03b2_\u039c\u03b1\u03c1_\u0391\u03c0\u03c1_\u039c\u03b1\u03ca_\u0399\u03bf\u03c5\u03bd_\u0399\u03bf\u03c5\u03bb_\u0391\u03c5\u03b3_\u03a3\u03b5\u03c0_\u039f\u03ba\u03c4_\u039d\u03bf\u03b5_\u0394\u03b5\u03ba'.split(
                    '_'
                ),
            weekdays:
                '\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae_\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1_\u03a4\u03c1\u03af\u03c4\u03b7_\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7_\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7_\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae_\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf'.split(
                    '_'
                ),
            weekdaysShort:
                '\u039a\u03c5\u03c1_\u0394\u03b5\u03c5_\u03a4\u03c1\u03b9_\u03a4\u03b5\u03c4_\u03a0\u03b5\u03bc_\u03a0\u03b1\u03c1_\u03a3\u03b1\u03b2'.split(
                    '_'
                ),
            weekdaysMin:
                '\u039a\u03c5_\u0394\u03b5_\u03a4\u03c1_\u03a4\u03b5_\u03a0\u03b5_\u03a0\u03b1_\u03a3\u03b1'.split(
                    '_'
                ),
            meridiem: function (e, a, t) {
                return 11 < e
                    ? t
                        ? '\u03bc\u03bc'
                        : '\u039c\u039c'
                    : t
                      ? '\u03c0\u03bc'
                      : '\u03a0\u039c'
            },
            isPM: function (e) {
                return '\u03bc' === (e + '').toLowerCase()[0]
            },
            meridiemParse: /[\u03a0\u039c]\.?\u039c?\.?/i,
            longDateFormat: {
                LT: 'h:mm A',
                LTS: 'h:mm:ss A',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY h:mm A',
                LLLL: 'dddd, D MMMM YYYY h:mm A',
            },
            calendarEl: {
                sameDay: '[\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1 {}] LT',
                nextDay: '[\u0391\u03cd\u03c1\u03b9\u03bf {}] LT',
                nextWeek: 'dddd [{}] LT',
                lastDay: '[\u03a7\u03b8\u03b5\u03c2 {}] LT',
                lastWeek: function () {
                    switch (this.day()) {
                        case 6:
                            return '[\u03c4\u03bf \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf] dddd [{}] LT'
                        default:
                            return '[\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7] dddd [{}] LT'
                    }
                },
                sameElse: 'L',
            },
            calendar: function (e, a) {
                var t = this._calendarEl[e],
                    s = a && a.hours()
                return (
                    H(t) && (t = t.apply(a)),
                    t.replace(
                        '{}',
                        s % 12 == 1
                            ? '\u03c3\u03c4\u03b7'
                            : '\u03c3\u03c4\u03b9\u03c2'
                    )
                )
            },
            relativeTime: {
                future: '\u03c3\u03b5 %s',
                past: '%s \u03c0\u03c1\u03b9\u03bd',
                s: '\u03bb\u03af\u03b3\u03b1 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1',
                ss: '%d \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1',
                m: '\u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc',
                mm: '%d \u03bb\u03b5\u03c0\u03c4\u03ac',
                h: '\u03bc\u03af\u03b1 \u03ce\u03c1\u03b1',
                hh: '%d \u03ce\u03c1\u03b5\u03c2',
                d: '\u03bc\u03af\u03b1 \u03bc\u03ad\u03c1\u03b1',
                dd: '%d \u03bc\u03ad\u03c1\u03b5\u03c2',
                M: '\u03ad\u03bd\u03b1\u03c2 \u03bc\u03ae\u03bd\u03b1\u03c2',
                MM: '%d \u03bc\u03ae\u03bd\u03b5\u03c2',
                y: '\u03ad\u03bd\u03b1\u03c2 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c2',
                yy: '%d \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\u03b7/,
            ordinal: '%d\u03b7',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('en-SG', {
            months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
                '_'
            ),
            monthsShort:
                'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
            weekdays:
                'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
                    '_'
                ),
            weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Today at] LT',
                nextDay: '[Tomorrow at] LT',
                nextWeek: 'dddd [at] LT',
                lastDay: '[Yesterday at] LT',
                lastWeek: '[Last] dddd [at] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'in %s',
                past: '%s ago',
                s: 'a few seconds',
                ss: '%d seconds',
                m: 'a minute',
                mm: '%d minutes',
                h: 'an hour',
                hh: '%d hours',
                d: 'a day',
                dd: '%d days',
                M: 'a month',
                MM: '%d months',
                y: 'a year',
                yy: '%d years',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
                var a = e % 10
                return (
                    e +
                    (1 == ~~((e % 100) / 10)
                        ? 'th'
                        : 1 === a
                          ? 'st'
                          : 2 === a
                            ? 'nd'
                            : 3 === a
                              ? 'rd'
                              : 'th')
                )
            },
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('en-au', {
            months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
                '_'
            ),
            monthsShort:
                'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
            weekdays:
                'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
                    '_'
                ),
            weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            longDateFormat: {
                LT: 'h:mm A',
                LTS: 'h:mm:ss A',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY h:mm A',
                LLLL: 'dddd, D MMMM YYYY h:mm A',
            },
            calendar: {
                sameDay: '[Today at] LT',
                nextDay: '[Tomorrow at] LT',
                nextWeek: 'dddd [at] LT',
                lastDay: '[Yesterday at] LT',
                lastWeek: '[Last] dddd [at] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'in %s',
                past: '%s ago',
                s: 'a few seconds',
                ss: '%d seconds',
                m: 'a minute',
                mm: '%d minutes',
                h: 'an hour',
                hh: '%d hours',
                d: 'a day',
                dd: '%d days',
                M: 'a month',
                MM: '%d months',
                y: 'a year',
                yy: '%d years',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
                var a = e % 10
                return (
                    e +
                    (1 == ~~((e % 100) / 10)
                        ? 'th'
                        : 1 === a
                          ? 'st'
                          : 2 === a
                            ? 'nd'
                            : 3 === a
                              ? 'rd'
                              : 'th')
                )
            },
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('en-ca', {
            months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
                '_'
            ),
            monthsShort:
                'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
            weekdays:
                'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
                    '_'
                ),
            weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            longDateFormat: {
                LT: 'h:mm A',
                LTS: 'h:mm:ss A',
                L: 'YYYY-MM-DD',
                LL: 'MMMM D, YYYY',
                LLL: 'MMMM D, YYYY h:mm A',
                LLLL: 'dddd, MMMM D, YYYY h:mm A',
            },
            calendar: {
                sameDay: '[Today at] LT',
                nextDay: '[Tomorrow at] LT',
                nextWeek: 'dddd [at] LT',
                lastDay: '[Yesterday at] LT',
                lastWeek: '[Last] dddd [at] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'in %s',
                past: '%s ago',
                s: 'a few seconds',
                ss: '%d seconds',
                m: 'a minute',
                mm: '%d minutes',
                h: 'an hour',
                hh: '%d hours',
                d: 'a day',
                dd: '%d days',
                M: 'a month',
                MM: '%d months',
                y: 'a year',
                yy: '%d years',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
                var a = e % 10
                return (
                    e +
                    (1 == ~~((e % 100) / 10)
                        ? 'th'
                        : 1 === a
                          ? 'st'
                          : 2 === a
                            ? 'nd'
                            : 3 === a
                              ? 'rd'
                              : 'th')
                )
            },
        }),
        l.defineLocale('en-gb', {
            months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
                '_'
            ),
            monthsShort:
                'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
            weekdays:
                'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
                    '_'
                ),
            weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Today at] LT',
                nextDay: '[Tomorrow at] LT',
                nextWeek: 'dddd [at] LT',
                lastDay: '[Yesterday at] LT',
                lastWeek: '[Last] dddd [at] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'in %s',
                past: '%s ago',
                s: 'a few seconds',
                ss: '%d seconds',
                m: 'a minute',
                mm: '%d minutes',
                h: 'an hour',
                hh: '%d hours',
                d: 'a day',
                dd: '%d days',
                M: 'a month',
                MM: '%d months',
                y: 'a year',
                yy: '%d years',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
                var a = e % 10
                return (
                    e +
                    (1 == ~~((e % 100) / 10)
                        ? 'th'
                        : 1 === a
                          ? 'st'
                          : 2 === a
                            ? 'nd'
                            : 3 === a
                              ? 'rd'
                              : 'th')
                )
            },
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('en-ie', {
            months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
                '_'
            ),
            monthsShort:
                'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
            weekdays:
                'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
                    '_'
                ),
            weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Today at] LT',
                nextDay: '[Tomorrow at] LT',
                nextWeek: 'dddd [at] LT',
                lastDay: '[Yesterday at] LT',
                lastWeek: '[Last] dddd [at] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'in %s',
                past: '%s ago',
                s: 'a few seconds',
                ss: '%d seconds',
                m: 'a minute',
                mm: '%d minutes',
                h: 'an hour',
                hh: '%d hours',
                d: 'a day',
                dd: '%d days',
                M: 'a month',
                MM: '%d months',
                y: 'a year',
                yy: '%d years',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
                var a = e % 10
                return (
                    e +
                    (1 == ~~((e % 100) / 10)
                        ? 'th'
                        : 1 === a
                          ? 'st'
                          : 2 === a
                            ? 'nd'
                            : 3 === a
                              ? 'rd'
                              : 'th')
                )
            },
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('en-il', {
            months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
                '_'
            ),
            monthsShort:
                'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
            weekdays:
                'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
                    '_'
                ),
            weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Today at] LT',
                nextDay: '[Tomorrow at] LT',
                nextWeek: 'dddd [at] LT',
                lastDay: '[Yesterday at] LT',
                lastWeek: '[Last] dddd [at] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'in %s',
                past: '%s ago',
                s: 'a few seconds',
                m: 'a minute',
                mm: '%d minutes',
                h: 'an hour',
                hh: '%d hours',
                d: 'a day',
                dd: '%d days',
                M: 'a month',
                MM: '%d months',
                y: 'a year',
                yy: '%d years',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
                var a = e % 10
                return (
                    e +
                    (1 == ~~((e % 100) / 10)
                        ? 'th'
                        : 1 === a
                          ? 'st'
                          : 2 === a
                            ? 'nd'
                            : 3 === a
                              ? 'rd'
                              : 'th')
                )
            },
        }),
        l.defineLocale('en-nz', {
            months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
                '_'
            ),
            monthsShort:
                'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
            weekdays:
                'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
                    '_'
                ),
            weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            longDateFormat: {
                LT: 'h:mm A',
                LTS: 'h:mm:ss A',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY h:mm A',
                LLLL: 'dddd, D MMMM YYYY h:mm A',
            },
            calendar: {
                sameDay: '[Today at] LT',
                nextDay: '[Tomorrow at] LT',
                nextWeek: 'dddd [at] LT',
                lastDay: '[Yesterday at] LT',
                lastWeek: '[Last] dddd [at] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'in %s',
                past: '%s ago',
                s: 'a few seconds',
                ss: '%d seconds',
                m: 'a minute',
                mm: '%d minutes',
                h: 'an hour',
                hh: '%d hours',
                d: 'a day',
                dd: '%d days',
                M: 'a month',
                MM: '%d months',
                y: 'a year',
                yy: '%d years',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
                var a = e % 10
                return (
                    e +
                    (1 == ~~((e % 100) / 10)
                        ? 'th'
                        : 1 === a
                          ? 'st'
                          : 2 === a
                            ? 'nd'
                            : 3 === a
                              ? 'rd'
                              : 'th')
                )
            },
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('eo', {
            months: 'januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro'.split(
                '_'
            ),
            monthsShort:
                'jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec'.split(
                    '_'
                ),
            weekdays:
                'diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato'.split(
                    '_'
                ),
            weekdaysShort: 'dim_lun_mard_merk_\u0135a\u016d_ven_sab'.split('_'),
            weekdaysMin: 'di_lu_ma_me_\u0135a_ve_sa'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'YYYY-MM-DD',
                LL: 'D[-a de] MMMM, YYYY',
                LLL: 'D[-a de] MMMM, YYYY HH:mm',
                LLLL: 'dddd, [la] D[-a de] MMMM, YYYY HH:mm',
            },
            meridiemParse: /[ap]\.t\.m/i,
            isPM: function (e) {
                return 'p' === e.charAt(0).toLowerCase()
            },
            meridiem: function (e, a, t) {
                return 11 < e
                    ? t
                        ? 'p.t.m.'
                        : 'P.T.M.'
                    : t
                      ? 'a.t.m.'
                      : 'A.T.M.'
            },
            calendar: {
                sameDay: '[Hodia\u016d je] LT',
                nextDay: '[Morga\u016d je] LT',
                nextWeek: 'dddd [je] LT',
                lastDay: '[Hiera\u016d je] LT',
                lastWeek: '[pasinta] dddd [je] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'post %s',
                past: 'anta\u016d %s',
                s: 'sekundoj',
                ss: '%d sekundoj',
                m: 'minuto',
                mm: '%d minutoj',
                h: 'horo',
                hh: '%d horoj',
                d: 'tago',
                dd: '%d tagoj',
                M: 'monato',
                MM: '%d monatoj',
                y: 'jaro',
                yy: '%d jaroj',
            },
            dayOfMonthOrdinalParse: /\d{1,2}a/,
            ordinal: '%da',
            week: { dow: 1, doy: 7 },
        })
    var vs =
            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
                '_'
            ),
        Ss = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
        Hs = [
            /^ene/i,
            /^feb/i,
            /^mar/i,
            /^abr/i,
            /^may/i,
            /^jun/i,
            /^jul/i,
            /^ago/i,
            /^sep/i,
            /^oct/i,
            /^nov/i,
            /^dic/i,
        ],
        bs =
            /^(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
    l.defineLocale('es-do', {
        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
            '_'
        ),
        monthsShort: function (e, a) {
            return e ? (/-MMM-/.test(a) ? Ss[e.month()] : vs[e.month()]) : vs
        },
        monthsRegex: bs,
        monthsShortRegex: bs,
        monthsStrictRegex:
            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
        monthsShortStrictRegex:
            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
        monthsParse: Hs,
        longMonthsParse: Hs,
        shortMonthsParse: Hs,
        weekdays:
            'domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado'.split(
                '_'
            ),
        weekdaysShort: 'dom._lun._mar._mi\xe9._jue._vie._s\xe1b.'.split('_'),
        weekdaysMin: 'do_lu_ma_mi_ju_vi_s\xe1'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'h:mm A',
            LTS: 'h:mm:ss A',
            L: 'DD/MM/YYYY',
            LL: 'D [de] MMMM [de] YYYY',
            LLL: 'D [de] MMMM [de] YYYY h:mm A',
            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
        },
        calendar: {
            sameDay: function () {
                return '[hoy a la' + (1 !== this.hours() ? 's' : '') + '] LT'
            },
            nextDay: function () {
                return (
                    '[ma\xf1ana a la' + (1 !== this.hours() ? 's' : '') + '] LT'
                )
            },
            nextWeek: function () {
                return 'dddd [a la' + (1 !== this.hours() ? 's' : '') + '] LT'
            },
            lastDay: function () {
                return '[ayer a la' + (1 !== this.hours() ? 's' : '') + '] LT'
            },
            lastWeek: function () {
                return (
                    '[el] dddd [pasado a la' +
                    (1 !== this.hours() ? 's' : '') +
                    '] LT'
                )
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'en %s',
            past: 'hace %s',
            s: 'unos segundos',
            ss: '%d segundos',
            m: 'un minuto',
            mm: '%d minutos',
            h: 'una hora',
            hh: '%d horas',
            d: 'un d\xeda',
            dd: '%d d\xedas',
            M: 'un mes',
            MM: '%d meses',
            y: 'un a\xf1o',
            yy: '%d a\xf1os',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\xba/,
        ordinal: '%d\xba',
        week: { dow: 1, doy: 4 },
    })
    var js =
            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
                '_'
            ),
        xs = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
        Os = [
            /^ene/i,
            /^feb/i,
            /^mar/i,
            /^abr/i,
            /^may/i,
            /^jun/i,
            /^jul/i,
            /^ago/i,
            /^sep/i,
            /^oct/i,
            /^nov/i,
            /^dic/i,
        ],
        Ps =
            /^(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
    l.defineLocale('es-us', {
        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
            '_'
        ),
        monthsShort: function (e, a) {
            return e ? (/-MMM-/.test(a) ? xs[e.month()] : js[e.month()]) : js
        },
        monthsRegex: Ps,
        monthsShortRegex: Ps,
        monthsStrictRegex:
            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
        monthsShortStrictRegex:
            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
        monthsParse: Os,
        longMonthsParse: Os,
        shortMonthsParse: Os,
        weekdays:
            'domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado'.split(
                '_'
            ),
        weekdaysShort: 'dom._lun._mar._mi\xe9._jue._vie._s\xe1b.'.split('_'),
        weekdaysMin: 'do_lu_ma_mi_ju_vi_s\xe1'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'h:mm A',
            LTS: 'h:mm:ss A',
            L: 'MM/DD/YYYY',
            LL: 'D [de] MMMM [de] YYYY',
            LLL: 'D [de] MMMM [de] YYYY h:mm A',
            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
        },
        calendar: {
            sameDay: function () {
                return '[hoy a la' + (1 !== this.hours() ? 's' : '') + '] LT'
            },
            nextDay: function () {
                return (
                    '[ma\xf1ana a la' + (1 !== this.hours() ? 's' : '') + '] LT'
                )
            },
            nextWeek: function () {
                return 'dddd [a la' + (1 !== this.hours() ? 's' : '') + '] LT'
            },
            lastDay: function () {
                return '[ayer a la' + (1 !== this.hours() ? 's' : '') + '] LT'
            },
            lastWeek: function () {
                return (
                    '[el] dddd [pasado a la' +
                    (1 !== this.hours() ? 's' : '') +
                    '] LT'
                )
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'en %s',
            past: 'hace %s',
            s: 'unos segundos',
            ss: '%d segundos',
            m: 'un minuto',
            mm: '%d minutos',
            h: 'una hora',
            hh: '%d horas',
            d: 'un d\xeda',
            dd: '%d d\xedas',
            M: 'un mes',
            MM: '%d meses',
            y: 'un a\xf1o',
            yy: '%d a\xf1os',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\xba/,
        ordinal: '%d\xba',
        week: { dow: 0, doy: 6 },
    })
    var Ws =
            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
                '_'
            ),
        As = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
        Es = [
            /^ene/i,
            /^feb/i,
            /^mar/i,
            /^abr/i,
            /^may/i,
            /^jun/i,
            /^jul/i,
            /^ago/i,
            /^sep/i,
            /^oct/i,
            /^nov/i,
            /^dic/i,
        ],
        Fs =
            /^(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
    function zs(e, a, t, s) {
        var n = {
            s: ['m\xf5ne sekundi', 'm\xf5ni sekund', 'paar sekundit'],
            ss: [e + 'sekundi', e + 'sekundit'],
            m: ['\xfche minuti', '\xfcks minut'],
            mm: [e + ' minuti', e + ' minutit'],
            h: ['\xfche tunni', 'tund aega', '\xfcks tund'],
            hh: [e + ' tunni', e + ' tundi'],
            d: ['\xfche p\xe4eva', '\xfcks p\xe4ev'],
            M: ['kuu aja', 'kuu aega', '\xfcks kuu'],
            MM: [e + ' kuu', e + ' kuud'],
            y: ['\xfche aasta', 'aasta', '\xfcks aasta'],
            yy: [e + ' aasta', e + ' aastat'],
        }
        return a ? (n[t][2] ? n[t][2] : n[t][1]) : s ? n[t][0] : n[t][1]
    }
    l.defineLocale('es', {
        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
            '_'
        ),
        monthsShort: function (e, a) {
            return e ? (/-MMM-/.test(a) ? As[e.month()] : Ws[e.month()]) : Ws
        },
        monthsRegex: Fs,
        monthsShortRegex: Fs,
        monthsStrictRegex:
            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
        monthsShortStrictRegex:
            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
        monthsParse: Es,
        longMonthsParse: Es,
        shortMonthsParse: Es,
        weekdays:
            'domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado'.split(
                '_'
            ),
        weekdaysShort: 'dom._lun._mar._mi\xe9._jue._vie._s\xe1b.'.split('_'),
        weekdaysMin: 'do_lu_ma_mi_ju_vi_s\xe1'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D [de] MMMM [de] YYYY',
            LLL: 'D [de] MMMM [de] YYYY H:mm',
            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
        },
        calendar: {
            sameDay: function () {
                return '[hoy a la' + (1 !== this.hours() ? 's' : '') + '] LT'
            },
            nextDay: function () {
                return (
                    '[ma\xf1ana a la' + (1 !== this.hours() ? 's' : '') + '] LT'
                )
            },
            nextWeek: function () {
                return 'dddd [a la' + (1 !== this.hours() ? 's' : '') + '] LT'
            },
            lastDay: function () {
                return '[ayer a la' + (1 !== this.hours() ? 's' : '') + '] LT'
            },
            lastWeek: function () {
                return (
                    '[el] dddd [pasado a la' +
                    (1 !== this.hours() ? 's' : '') +
                    '] LT'
                )
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'en %s',
            past: 'hace %s',
            s: 'unos segundos',
            ss: '%d segundos',
            m: 'un minuto',
            mm: '%d minutos',
            h: 'una hora',
            hh: '%d horas',
            d: 'un d\xeda',
            dd: '%d d\xedas',
            M: 'un mes',
            MM: '%d meses',
            y: 'un a\xf1o',
            yy: '%d a\xf1os',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\xba/,
        ordinal: '%d\xba',
        week: { dow: 1, doy: 4 },
    }),
        l.defineLocale('et', {
            months: 'jaanuar_veebruar_m\xe4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(
                '_'
            ),
            monthsShort:
                'jaan_veebr_m\xe4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(
                    '_'
                ),
            weekdays:
                'p\xfchap\xe4ev_esmasp\xe4ev_teisip\xe4ev_kolmap\xe4ev_neljap\xe4ev_reede_laup\xe4ev'.split(
                    '_'
                ),
            weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),
            weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),
            longDateFormat: {
                LT: 'H:mm',
                LTS: 'H:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D. MMMM YYYY',
                LLL: 'D. MMMM YYYY H:mm',
                LLLL: 'dddd, D. MMMM YYYY H:mm',
            },
            calendar: {
                sameDay: '[T\xe4na,] LT',
                nextDay: '[Homme,] LT',
                nextWeek: '[J\xe4rgmine] dddd LT',
                lastDay: '[Eile,] LT',
                lastWeek: '[Eelmine] dddd LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '%s p\xe4rast',
                past: '%s tagasi',
                s: zs,
                ss: zs,
                m: zs,
                mm: zs,
                h: zs,
                hh: zs,
                d: zs,
                dd: '%d p\xe4eva',
                M: zs,
                MM: zs,
                y: zs,
                yy: zs,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('eu', {
            months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(
                '_'
            ),
            monthsShort:
                'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(
                    '_'
                ),
            weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),
            weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'YYYY-MM-DD',
                LL: 'YYYY[ko] MMMM[ren] D[a]',
                LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',
                LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
                l: 'YYYY-M-D',
                ll: 'YYYY[ko] MMM D[a]',
                lll: 'YYYY[ko] MMM D[a] HH:mm',
                llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',
            },
            calendar: {
                sameDay: '[gaur] LT[etan]',
                nextDay: '[bihar] LT[etan]',
                nextWeek: 'dddd LT[etan]',
                lastDay: '[atzo] LT[etan]',
                lastWeek: '[aurreko] dddd LT[etan]',
                sameElse: 'L',
            },
            relativeTime: {
                future: '%s barru',
                past: 'duela %s',
                s: 'segundo batzuk',
                ss: '%d segundo',
                m: 'minutu bat',
                mm: '%d minutu',
                h: 'ordu bat',
                hh: '%d ordu',
                d: 'egun bat',
                dd: '%d egun',
                M: 'hilabete bat',
                MM: '%d hilabete',
                y: 'urte bat',
                yy: '%d urte',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 7 },
        })
    var Js = {
            1: '\u06f1',
            2: '\u06f2',
            3: '\u06f3',
            4: '\u06f4',
            5: '\u06f5',
            6: '\u06f6',
            7: '\u06f7',
            8: '\u06f8',
            9: '\u06f9',
            0: '\u06f0',
        },
        Ns = {
            '\u06f1': '1',
            '\u06f2': '2',
            '\u06f3': '3',
            '\u06f4': '4',
            '\u06f5': '5',
            '\u06f6': '6',
            '\u06f7': '7',
            '\u06f8': '8',
            '\u06f9': '9',
            '\u06f0': '0',
        }
    l.defineLocale('fa', {
        months: '\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631'.split(
            '_'
        ),
        monthsShort:
            '\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631'.split(
                '_'
            ),
        weekdays:
            '\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647'.split(
                '_'
            ),
        weekdaysShort:
            '\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647'.split(
                '_'
            ),
        weekdaysMin: '\u06cc_\u062f_\u0633_\u0686_\u067e_\u062c_\u0634'.split(
            '_'
        ),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        meridiemParse:
            /\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,
        isPM: function (e) {
            return /\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(e)
        },
        meridiem: function (e, a, t) {
            return e < 12
                ? '\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631'
                : '\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631'
        },
        calendar: {
            sameDay:
                '[\u0627\u0645\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT',
            nextDay: '[\u0641\u0631\u062f\u0627 \u0633\u0627\u0639\u062a] LT',
            nextWeek: 'dddd [\u0633\u0627\u0639\u062a] LT',
            lastDay:
                '[\u062f\u06cc\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT',
            lastWeek: 'dddd [\u067e\u06cc\u0634] [\u0633\u0627\u0639\u062a] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '\u062f\u0631 %s',
            past: '%s \u067e\u06cc\u0634',
            s: '\u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647',
            ss: '\u062b\u0627\u0646\u06cc\u0647 d%',
            m: '\u06cc\u06a9 \u062f\u0642\u06cc\u0642\u0647',
            mm: '%d \u062f\u0642\u06cc\u0642\u0647',
            h: '\u06cc\u06a9 \u0633\u0627\u0639\u062a',
            hh: '%d \u0633\u0627\u0639\u062a',
            d: '\u06cc\u06a9 \u0631\u0648\u0632',
            dd: '%d \u0631\u0648\u0632',
            M: '\u06cc\u06a9 \u0645\u0627\u0647',
            MM: '%d \u0645\u0627\u0647',
            y: '\u06cc\u06a9 \u0633\u0627\u0644',
            yy: '%d \u0633\u0627\u0644',
        },
        preparse: function (e) {
            return e
                .replace(/[\u06f0-\u06f9]/g, function (e) {
                    return Ns[e]
                })
                .replace(/\u060c/g, ',')
        },
        postformat: function (e) {
            return e
                .replace(/\d/g, function (e) {
                    return Js[e]
                })
                .replace(/,/g, '\u060c')
        },
        dayOfMonthOrdinalParse: /\d{1,2}\u0645/,
        ordinal: '%d\u0645',
        week: { dow: 6, doy: 12 },
    })
    var Rs =
            'nolla yksi kaksi kolme nelj\xe4 viisi kuusi seitsem\xe4n kahdeksan yhdeks\xe4n'.split(
                ' '
            ),
        Cs = [
            'nolla',
            'yhden',
            'kahden',
            'kolmen',
            'nelj\xe4n',
            'viiden',
            'kuuden',
            Rs[7],
            Rs[8],
            Rs[9],
        ]
    function Is(e, a, t, s) {
        var n,
            d,
            r = ''
        switch (t) {
            case 's':
                return s ? 'muutaman sekunnin' : 'muutama sekunti'
            case 'ss':
                return s ? 'sekunnin' : 'sekuntia'
            case 'm':
                return s ? 'minuutin' : 'minuutti'
            case 'mm':
                r = s ? 'minuutin' : 'minuuttia'
                break
            case 'h':
                return s ? 'tunnin' : 'tunti'
            case 'hh':
                r = s ? 'tunnin' : 'tuntia'
                break
            case 'd':
                return s ? 'p\xe4iv\xe4n' : 'p\xe4iv\xe4'
            case 'dd':
                r = s ? 'p\xe4iv\xe4n' : 'p\xe4iv\xe4\xe4'
                break
            case 'M':
                return s ? 'kuukauden' : 'kuukausi'
            case 'MM':
                r = s ? 'kuukauden' : 'kuukautta'
                break
            case 'y':
                return s ? 'vuoden' : 'vuosi'
            case 'yy':
                r = s ? 'vuoden' : 'vuotta'
                break
        }
        return (d = s), (r = ((n = e) < 10 ? (d ? Cs[n] : Rs[n]) : n) + ' ' + r)
    }
    l.defineLocale('fi', {
        months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xe4kuu_hein\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(
            '_'
        ),
        monthsShort:
            'tammi_helmi_maalis_huhti_touko_kes\xe4_hein\xe4_elo_syys_loka_marras_joulu'.split(
                '_'
            ),
        weekdays:
            'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(
                '_'
            ),
        weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),
        weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),
        longDateFormat: {
            LT: 'HH.mm',
            LTS: 'HH.mm.ss',
            L: 'DD.MM.YYYY',
            LL: 'Do MMMM[ta] YYYY',
            LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',
            LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
            l: 'D.M.YYYY',
            ll: 'Do MMM YYYY',
            lll: 'Do MMM YYYY, [klo] HH.mm',
            llll: 'ddd, Do MMM YYYY, [klo] HH.mm',
        },
        calendar: {
            sameDay: '[t\xe4n\xe4\xe4n] [klo] LT',
            nextDay: '[huomenna] [klo] LT',
            nextWeek: 'dddd [klo] LT',
            lastDay: '[eilen] [klo] LT',
            lastWeek: '[viime] dddd[na] [klo] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s p\xe4\xe4st\xe4',
            past: '%s sitten',
            s: Is,
            ss: Is,
            m: Is,
            mm: Is,
            h: Is,
            hh: Is,
            d: Is,
            dd: Is,
            M: Is,
            MM: Is,
            y: Is,
            yy: Is,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }),
        l.defineLocale('fo', {
            months: 'januar_februar_mars_apr\xedl_mai_juni_juli_august_september_oktober_november_desember'.split(
                '_'
            ),
            monthsShort:
                'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
            weekdays:
                'sunnudagur_m\xe1nadagur_t\xfdsdagur_mikudagur_h\xf3sdagur_fr\xedggjadagur_leygardagur'.split(
                    '_'
                ),
            weekdaysShort: 'sun_m\xe1n_t\xfds_mik_h\xf3s_fr\xed_ley'.split('_'),
            weekdaysMin: 'su_m\xe1_t\xfd_mi_h\xf3_fr_le'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd D. MMMM, YYYY HH:mm',
            },
            calendar: {
                sameDay: '[\xcd dag kl.] LT',
                nextDay: '[\xcd morgin kl.] LT',
                nextWeek: 'dddd [kl.] LT',
                lastDay: '[\xcd gj\xe1r kl.] LT',
                lastWeek: '[s\xed\xf0stu] dddd [kl] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'um %s',
                past: '%s s\xed\xf0ani',
                s: 'f\xe1 sekund',
                ss: '%d sekundir',
                m: 'ein minuttur',
                mm: '%d minuttir',
                h: 'ein t\xedmi',
                hh: '%d t\xedmar',
                d: 'ein dagur',
                dd: '%d dagar',
                M: 'ein m\xe1na\xf0ur',
                MM: '%d m\xe1na\xf0ir',
                y: 'eitt \xe1r',
                yy: '%d \xe1r',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('fr-ca', {
            months: 'janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre'.split(
                '_'
            ),
            monthsShort:
                'janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split(
                    '_'
                ),
            weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
            weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'YYYY-MM-DD',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Aujourd\u2019hui \xe0] LT',
                nextDay: '[Demain \xe0] LT',
                nextWeek: 'dddd [\xe0] LT',
                lastDay: '[Hier \xe0] LT',
                lastWeek: 'dddd [dernier \xe0] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'dans %s',
                past: 'il y a %s',
                s: 'quelques secondes',
                ss: '%d secondes',
                m: 'une minute',
                mm: '%d minutes',
                h: 'une heure',
                hh: '%d heures',
                d: 'un jour',
                dd: '%d jours',
                M: 'un mois',
                MM: '%d mois',
                y: 'un an',
                yy: '%d ans',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
            ordinal: function (e, a) {
                switch (a) {
                    default:
                    case 'M':
                    case 'Q':
                    case 'D':
                    case 'DDD':
                    case 'd':
                        return e + (1 === e ? 'er' : 'e')
                    case 'w':
                    case 'W':
                        return e + (1 === e ? 're' : 'e')
                }
            },
        }),
        l.defineLocale('fr-ch', {
            months: 'janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre'.split(
                '_'
            ),
            monthsShort:
                'janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split(
                    '_'
                ),
            weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
            weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Aujourd\u2019hui \xe0] LT',
                nextDay: '[Demain \xe0] LT',
                nextWeek: 'dddd [\xe0] LT',
                lastDay: '[Hier \xe0] LT',
                lastWeek: 'dddd [dernier \xe0] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'dans %s',
                past: 'il y a %s',
                s: 'quelques secondes',
                ss: '%d secondes',
                m: 'une minute',
                mm: '%d minutes',
                h: 'une heure',
                hh: '%d heures',
                d: 'un jour',
                dd: '%d jours',
                M: 'un mois',
                MM: '%d mois',
                y: 'un an',
                yy: '%d ans',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
            ordinal: function (e, a) {
                switch (a) {
                    default:
                    case 'M':
                    case 'Q':
                    case 'D':
                    case 'DDD':
                    case 'd':
                        return e + (1 === e ? 'er' : 'e')
                    case 'w':
                    case 'W':
                        return e + (1 === e ? 're' : 'e')
                }
            },
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('fr', {
            months: 'janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre'.split(
                '_'
            ),
            monthsShort:
                'janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split(
                    '_'
                ),
            weekdaysShort: 'dim._lunX._mar._mer._jeu._ven._sam.'.split('_'),
            weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Aujourd\u2019hui \xe0] LT',
                nextDay: '[Demain \xe0] LT',
                nextWeek: 'dddd [\xe0] LT',
                lastDay: '[Hier \xe0] LT',
                lastWeek: 'dddd [dernier \xe0] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'dans %s',
                past: 'il y a %s',
                s: 'quelques secondes',
                ss: '%d secondes',
                m: 'une minute',
                mm: '%d minutes',
                h: 'une heure',
                hh: '%d heures',
                d: 'un jour',
                dd: '%d jours',
                M: 'un mois',
                MM: '%d mois',
                y: 'un an',
                yy: '%d ans',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
            ordinal: function (e, a) {
                switch (a) {
                    case 'D':
                        return e + (1 === e ? 'er' : '')
                    default:
                    case 'M':
                    case 'Q':
                    case 'DDD':
                    case 'd':
                        return e + (1 === e ? 'er' : 'e')
                    case 'w':
                    case 'W':
                        return e + (1 === e ? 're' : 'e')
                }
            },
            week: { dow: 1, doy: 4 },
        })
    var Us = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(
            '_'
        ),
        Gs = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_')
    l.defineLocale('fy', {
        months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(
            '_'
        ),
        monthsShort: function (e, a) {
            return e ? (/-MMM-/.test(a) ? Gs[e.month()] : Us[e.month()]) : Us
        },
        monthsParseExact: !0,
        weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(
            '_'
        ),
        weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),
        weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD-MM-YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[hjoed om] LT',
            nextDay: '[moarn om] LT',
            nextWeek: 'dddd [om] LT',
            lastDay: '[juster om] LT',
            lastWeek: '[\xf4fr\xfbne] dddd [om] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'oer %s',
            past: '%s lyn',
            s: 'in pear sekonden',
            ss: '%d sekonden',
            m: 'ien min\xfat',
            mm: '%d minuten',
            h: 'ien oere',
            hh: '%d oeren',
            d: 'ien dei',
            dd: '%d dagen',
            M: 'ien moanne',
            MM: '%d moannen',
            y: 'ien jier',
            yy: '%d jierren',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
        ordinal: function (e) {
            return e + (1 === e || 8 === e || 20 <= e ? 'ste' : 'de')
        },
        week: { dow: 1, doy: 4 },
    })
    l.defineLocale('ga', {
        months: [
            'Ean\xe1ir',
            'Feabhra',
            'M\xe1rta',
            'Aibre\xe1n',
            'Bealtaine',
            'M\xe9itheamh',
            'I\xfail',
            'L\xfanasa',
            'Me\xe1n F\xf3mhair',
            'Deaireadh F\xf3mhair',
            'Samhain',
            'Nollaig',
        ],
        monthsShort: [
            'Ean\xe1',
            'Feab',
            'M\xe1rt',
            'Aibr',
            'Beal',
            'M\xe9it',
            'I\xfail',
            'L\xfana',
            'Me\xe1n',
            'Deai',
            'Samh',
            'Noll',
        ],
        monthsParseExact: !0,
        weekdays: [
            'D\xe9 Domhnaigh',
            'D\xe9 Luain',
            'D\xe9 M\xe1irt',
            'D\xe9 C\xe9adaoin',
            'D\xe9ardaoin',
            'D\xe9 hAoine',
            'D\xe9 Satharn',
        ],
        weekdaysShort: [
            'Dom',
            'Lua',
            'M\xe1i',
            'C\xe9a',
            'D\xe9a',
            'hAo',
            'Sat',
        ],
        weekdaysMin: ['Do', 'Lu', 'M\xe1', 'Ce', 'D\xe9', 'hA', 'Sa'],
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Inniu ag] LT',
            nextDay: '[Am\xe1rach ag] LT',
            nextWeek: 'dddd [ag] LT',
            lastDay: '[Inn\xe9 aig] LT',
            lastWeek: 'dddd [seo caite] [ag] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'i %s',
            past: '%s \xf3 shin',
            s: 'c\xfapla soicind',
            ss: '%d soicind',
            m: 'n\xf3im\xe9ad',
            mm: '%d n\xf3im\xe9ad',
            h: 'uair an chloig',
            hh: '%d uair an chloig',
            d: 'l\xe1',
            dd: '%d l\xe1',
            M: 'm\xed',
            MM: '%d m\xed',
            y: 'bliain',
            yy: '%d bliain',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
        ordinal: function (e) {
            return e + (1 === e ? 'd' : e % 10 == 2 ? 'na' : 'mh')
        },
        week: { dow: 1, doy: 4 },
    })
    function Vs(e, a, t, s) {
        var n = {
            s: ['thodde secondanim', 'thodde second'],
            ss: [e + ' secondanim', e + ' second'],
            m: ['eka mintan', 'ek minute'],
            mm: [e + ' mintanim', e + ' mintam'],
            h: ['eka voran', 'ek vor'],
            hh: [e + ' voranim', e + ' voram'],
            d: ['eka disan', 'ek dis'],
            dd: [e + ' disanim', e + ' dis'],
            M: ['eka mhoinean', 'ek mhoino'],
            MM: [e + ' mhoineanim', e + ' mhoine'],
            y: ['eka vorsan', 'ek voros'],
            yy: [e + ' vorsanim', e + ' vorsam'],
        }
        return a ? n[t][0] : n[t][1]
    }
    l.defineLocale('gd', {
        months: [
            'Am Faoilleach',
            'An Gearran',
            'Am M\xe0rt',
            'An Giblean',
            'An C\xe8itean',
            'An t-\xd2gmhios',
            'An t-Iuchar',
            'An L\xf9nastal',
            'An t-Sultain',
            'An D\xe0mhair',
            'An t-Samhain',
            'An D\xf9bhlachd',
        ],
        monthsShort: [
            'Faoi',
            'Gear',
            'M\xe0rt',
            'Gibl',
            'C\xe8it',
            '\xd2gmh',
            'Iuch',
            'L\xf9n',
            'Sult',
            'D\xe0mh',
            'Samh',
            'D\xf9bh',
        ],
        monthsParseExact: !0,
        weekdays: [
            'Did\xf2mhnaich',
            'Diluain',
            'Dim\xe0irt',
            'Diciadain',
            'Diardaoin',
            'Dihaoine',
            'Disathairne',
        ],
        weekdaysShort: ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],
        weekdaysMin: ['D\xf2', 'Lu', 'M\xe0', 'Ci', 'Ar', 'Ha', 'Sa'],
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[An-diugh aig] LT',
            nextDay: '[A-m\xe0ireach aig] LT',
            nextWeek: 'dddd [aig] LT',
            lastDay: '[An-d\xe8 aig] LT',
            lastWeek: 'dddd [seo chaidh] [aig] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'ann an %s',
            past: 'bho chionn %s',
            s: 'beagan diogan',
            ss: '%d diogan',
            m: 'mionaid',
            mm: '%d mionaidean',
            h: 'uair',
            hh: '%d uairean',
            d: 'latha',
            dd: '%d latha',
            M: 'm\xecos',
            MM: '%d m\xecosan',
            y: 'bliadhna',
            yy: '%d bliadhna',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
        ordinal: function (e) {
            return e + (1 === e ? 'd' : e % 10 == 2 ? 'na' : 'mh')
        },
        week: { dow: 1, doy: 4 },
    }),
        l.defineLocale('gl', {
            months: 'xaneiro_febreiro_marzo_abril_maio_xu\xf1o_xullo_agosto_setembro_outubro_novembro_decembro'.split(
                '_'
            ),
            monthsShort:
                'xan._feb._mar._abr._mai._xu\xf1._xul._ago._set._out._nov._dec.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'domingo_luns_martes_m\xe9rcores_xoves_venres_s\xe1bado'.split(
                    '_'
                ),
            weekdaysShort: 'dom._lun._mar._m\xe9r._xov._ven._s\xe1b.'.split(
                '_'
            ),
            weekdaysMin: 'do_lu_ma_m\xe9_xo_ve_s\xe1'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'H:mm',
                LTS: 'H:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D [de] MMMM [de] YYYY',
                LLL: 'D [de] MMMM [de] YYYY H:mm',
                LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
            },
            calendar: {
                sameDay: function () {
                    return (
                        '[hoxe ' +
                        (1 !== this.hours() ? '\xe1s' : '\xe1') +
                        '] LT'
                    )
                },
                nextDay: function () {
                    return (
                        '[ma\xf1\xe1 ' +
                        (1 !== this.hours() ? '\xe1s' : '\xe1') +
                        '] LT'
                    )
                },
                nextWeek: function () {
                    return (
                        'dddd [' + (1 !== this.hours() ? '\xe1s' : 'a') + '] LT'
                    )
                },
                lastDay: function () {
                    return (
                        '[onte ' + (1 !== this.hours() ? '\xe1' : 'a') + '] LT'
                    )
                },
                lastWeek: function () {
                    return (
                        '[o] dddd [pasado ' +
                        (1 !== this.hours() ? '\xe1s' : 'a') +
                        '] LT'
                    )
                },
                sameElse: 'L',
            },
            relativeTime: {
                future: function (e) {
                    return 0 === e.indexOf('un') ? 'n' + e : 'en ' + e
                },
                past: 'hai %s',
                s: 'uns segundos',
                ss: '%d segundos',
                m: 'un minuto',
                mm: '%d minutos',
                h: 'unha hora',
                hh: '%d horas',
                d: 'un d\xeda',
                dd: '%d d\xedas',
                M: 'un mes',
                MM: '%d meses',
                y: 'un ano',
                yy: '%d anos',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\xba/,
            ordinal: '%d\xba',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('gom-latn', {
            months: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(
                '_'
            ),
            monthsShort:
                'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                "Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split('_'),
            weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
            weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'A h:mm [vazta]',
                LTS: 'A h:mm:ss [vazta]',
                L: 'DD-MM-YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY A h:mm [vazta]',
                LLLL: 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',
                llll: 'ddd, D MMM YYYY, A h:mm [vazta]',
            },
            calendar: {
                sameDay: '[Aiz] LT',
                nextDay: '[Faleam] LT',
                nextWeek: '[Ieta to] dddd[,] LT',
                lastDay: '[Kal] LT',
                lastWeek: '[Fatlo] dddd[,] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '%s',
                past: '%s adim',
                s: Vs,
                ss: Vs,
                m: Vs,
                mm: Vs,
                h: Vs,
                hh: Vs,
                d: Vs,
                dd: Vs,
                M: Vs,
                MM: Vs,
                y: Vs,
                yy: Vs,
            },
            dayOfMonthOrdinalParse: /\d{1,2}(er)/,
            ordinal: function (e, a) {
                switch (a) {
                    case 'D':
                        return e + 'er'
                    default:
                    case 'M':
                    case 'Q':
                    case 'DDD':
                    case 'd':
                    case 'w':
                    case 'W':
                        return e
                }
            },
            week: { dow: 1, doy: 4 },
            meridiemParse: /rati|sokalli|donparam|sanje/,
            meridiemHour: function (e, a) {
                return (
                    12 === e && (e = 0),
                    'rati' === a
                        ? e < 4
                            ? e
                            : e + 12
                        : 'sokalli' === a
                          ? e
                          : 'donparam' === a
                            ? 12 < e
                                ? e
                                : e + 12
                            : 'sanje' === a
                              ? e + 12
                              : void 0
                )
            },
            meridiem: function (e, a, t) {
                return e < 4
                    ? 'rati'
                    : e < 12
                      ? 'sokalli'
                      : e < 16
                        ? 'donparam'
                        : e < 20
                          ? 'sanje'
                          : 'rati'
            },
        })
    var Ks = {
            1: '\u0ae7',
            2: '\u0ae8',
            3: '\u0ae9',
            4: '\u0aea',
            5: '\u0aeb',
            6: '\u0aec',
            7: '\u0aed',
            8: '\u0aee',
            9: '\u0aef',
            0: '\u0ae6',
        },
        Zs = {
            '\u0ae7': '1',
            '\u0ae8': '2',
            '\u0ae9': '3',
            '\u0aea': '4',
            '\u0aeb': '5',
            '\u0aec': '6',
            '\u0aed': '7',
            '\u0aee': '8',
            '\u0aef': '9',
            '\u0ae6': '0',
        }
    l.defineLocale('gu', {
        months: '\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0_\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0_\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2_\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe\u0a88_\u0a91\u0a97\u0ab8\u0acd\u0a9f_\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0_\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0'.split(
            '_'
        ),
        monthsShort:
            '\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1._\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1._\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf._\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe._\u0a91\u0a97._\u0ab8\u0aaa\u0acd\u0a9f\u0ac7._\u0a91\u0a95\u0acd\u0a9f\u0acd._\u0aa8\u0ab5\u0ac7._\u0aa1\u0abf\u0ab8\u0ac7.'.split(
                '_'
            ),
        monthsParseExact: !0,
        weekdays:
            '\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0_\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0_\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0_\u0aac\u0ac1\u0aa7\u0acd\u0ab5\u0abe\u0ab0_\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0_\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0_\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0'.split(
                '_'
            ),
        weekdaysShort:
            '\u0ab0\u0ab5\u0abf_\u0ab8\u0acb\u0aae_\u0aae\u0a82\u0a97\u0ab3_\u0aac\u0ac1\u0aa7\u0acd_\u0a97\u0ac1\u0ab0\u0ac1_\u0ab6\u0ac1\u0a95\u0acd\u0ab0_\u0ab6\u0aa8\u0abf'.split(
                '_'
            ),
        weekdaysMin:
            '\u0ab0_\u0ab8\u0acb_\u0aae\u0a82_\u0aac\u0ac1_\u0a97\u0ac1_\u0ab6\u0ac1_\u0ab6'.split(
                '_'
            ),
        longDateFormat: {
            LT: 'A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7',
            LTS: 'A h:mm:ss \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7',
            LLLL: 'dddd, D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7',
        },
        calendar: {
            sameDay: '[\u0a86\u0a9c] LT',
            nextDay: '[\u0a95\u0abe\u0ab2\u0ac7] LT',
            nextWeek: 'dddd, LT',
            lastDay: '[\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7] LT',
            lastWeek: '[\u0aaa\u0abe\u0a9b\u0ab2\u0abe] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s \u0aae\u0abe',
            past: '%s \u0aaa\u0ac7\u0ab9\u0ab2\u0abe',
            s: '\u0a85\u0aae\u0ac1\u0a95 \u0aaa\u0ab3\u0acb',
            ss: '%d \u0ab8\u0ac7\u0a95\u0a82\u0aa1',
            m: '\u0a8f\u0a95 \u0aae\u0abf\u0aa8\u0abf\u0a9f',
            mm: '%d \u0aae\u0abf\u0aa8\u0abf\u0a9f',
            h: '\u0a8f\u0a95 \u0a95\u0ab2\u0abe\u0a95',
            hh: '%d \u0a95\u0ab2\u0abe\u0a95',
            d: '\u0a8f\u0a95 \u0aa6\u0abf\u0ab5\u0ab8',
            dd: '%d \u0aa6\u0abf\u0ab5\u0ab8',
            M: '\u0a8f\u0a95 \u0aae\u0ab9\u0abf\u0aa8\u0acb',
            MM: '%d \u0aae\u0ab9\u0abf\u0aa8\u0acb',
            y: '\u0a8f\u0a95 \u0ab5\u0ab0\u0acd\u0ab7',
            yy: '%d \u0ab5\u0ab0\u0acd\u0ab7',
        },
        preparse: function (e) {
            return e.replace(
                /[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,
                function (e) {
                    return Zs[e]
                }
            )
        },
        postformat: function (e) {
            return e.replace(/\d/g, function (e) {
                return Ks[e]
            })
        },
        meridiemParse:
            /\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,
        meridiemHour: function (e, a) {
            return (
                12 === e && (e = 0),
                '\u0ab0\u0abe\u0aa4' === a
                    ? e < 4
                        ? e
                        : e + 12
                    : '\u0ab8\u0ab5\u0abe\u0ab0' === a
                      ? e
                      : '\u0aac\u0aaa\u0acb\u0ab0' === a
                        ? 10 <= e
                            ? e
                            : e + 12
                        : '\u0ab8\u0abe\u0a82\u0a9c' === a
                          ? e + 12
                          : void 0
            )
        },
        meridiem: function (e, a, t) {
            return e < 4
                ? '\u0ab0\u0abe\u0aa4'
                : e < 10
                  ? '\u0ab8\u0ab5\u0abe\u0ab0'
                  : e < 17
                    ? '\u0aac\u0aaa\u0acb\u0ab0'
                    : e < 20
                      ? '\u0ab8\u0abe\u0a82\u0a9c'
                      : '\u0ab0\u0abe\u0aa4'
        },
        week: { dow: 0, doy: 6 },
    }),
        l.defineLocale('he', {
            months: '\u05d9\u05e0\u05d5\u05d0\u05e8_\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05d9\u05dc_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8_\u05e1\u05e4\u05d8\u05de\u05d1\u05e8_\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8_\u05e0\u05d5\u05d1\u05de\u05d1\u05e8_\u05d3\u05e6\u05de\u05d1\u05e8'.split(
                '_'
            ),
            monthsShort:
                '\u05d9\u05e0\u05d5\u05f3_\u05e4\u05d1\u05e8\u05f3_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05f3_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05f3_\u05e1\u05e4\u05d8\u05f3_\u05d0\u05d5\u05e7\u05f3_\u05e0\u05d5\u05d1\u05f3_\u05d3\u05e6\u05de\u05f3'.split(
                    '_'
                ),
            weekdays:
                '\u05e8\u05d0\u05e9\u05d5\u05df_\u05e9\u05e0\u05d9_\u05e9\u05dc\u05d9\u05e9\u05d9_\u05e8\u05d1\u05d9\u05e2\u05d9_\u05d7\u05de\u05d9\u05e9\u05d9_\u05e9\u05d9\u05e9\u05d9_\u05e9\u05d1\u05ea'.split(
                    '_'
                ),
            weekdaysShort:
                '\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5\u05f3_\u05e9\u05f3'.split(
                    '_'
                ),
            weekdaysMin:
                '\u05d0_\u05d1_\u05d2_\u05d3_\u05d4_\u05d5_\u05e9'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D [\u05d1]MMMM YYYY',
                LLL: 'D [\u05d1]MMMM YYYY HH:mm',
                LLLL: 'dddd, D [\u05d1]MMMM YYYY HH:mm',
                l: 'D/M/YYYY',
                ll: 'D MMM YYYY',
                lll: 'D MMM YYYY HH:mm',
                llll: 'ddd, D MMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[\u05d4\u05d9\u05d5\u05dd \u05d1\u05be]LT',
                nextDay: '[\u05de\u05d7\u05e8 \u05d1\u05be]LT',
                nextWeek: 'dddd [\u05d1\u05e9\u05e2\u05d4] LT',
                lastDay: '[\u05d0\u05ea\u05de\u05d5\u05dc \u05d1\u05be]LT',
                lastWeek:
                    '[\u05d1\u05d9\u05d5\u05dd] dddd [\u05d4\u05d0\u05d7\u05e8\u05d5\u05df \u05d1\u05e9\u05e2\u05d4] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '\u05d1\u05e2\u05d5\u05d3 %s',
                past: '\u05dc\u05e4\u05e0\u05d9 %s',
                s: '\u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05d5\u05ea',
                ss: '%d \u05e9\u05e0\u05d9\u05d5\u05ea',
                m: '\u05d3\u05e7\u05d4',
                mm: '%d \u05d3\u05e7\u05d5\u05ea',
                h: '\u05e9\u05e2\u05d4',
                hh: function (e) {
                    return 2 === e
                        ? '\u05e9\u05e2\u05ea\u05d9\u05d9\u05dd'
                        : e + ' \u05e9\u05e2\u05d5\u05ea'
                },
                d: '\u05d9\u05d5\u05dd',
                dd: function (e) {
                    return 2 === e
                        ? '\u05d9\u05d5\u05de\u05d9\u05d9\u05dd'
                        : e + ' \u05d9\u05de\u05d9\u05dd'
                },
                M: '\u05d7\u05d5\u05d3\u05e9',
                MM: function (e) {
                    return 2 === e
                        ? '\u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd'
                        : e + ' \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd'
                },
                y: '\u05e9\u05e0\u05d4',
                yy: function (e) {
                    return 2 === e
                        ? '\u05e9\u05e0\u05ea\u05d9\u05d9\u05dd'
                        : e % 10 == 0 && 10 !== e
                          ? e + ' \u05e9\u05e0\u05d4'
                          : e + ' \u05e9\u05e0\u05d9\u05dd'
                },
            },
            meridiemParse:
                /\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,
            isPM: function (e) {
                return /^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(
                    e
                )
            },
            meridiem: function (e, a, t) {
                return e < 5
                    ? '\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8'
                    : e < 10
                      ? '\u05d1\u05d1\u05d5\u05e7\u05e8'
                      : e < 12
                        ? t
                            ? '\u05dc\u05e4\u05e0\u05d4"\u05e6'
                            : '\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd'
                        : e < 18
                          ? t
                              ? '\u05d0\u05d7\u05d4"\u05e6'
                              : '\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd'
                          : '\u05d1\u05e2\u05e8\u05d1'
            },
        })
    var $s = {
            1: '\u0967',
            2: '\u0968',
            3: '\u0969',
            4: '\u096a',
            5: '\u096b',
            6: '\u096c',
            7: '\u096d',
            8: '\u096e',
            9: '\u096f',
            0: '\u0966',
        },
        Bs = {
            '\u0967': '1',
            '\u0968': '2',
            '\u0969': '3',
            '\u096a': '4',
            '\u096b': '5',
            '\u096c': '6',
            '\u096d': '7',
            '\u096e': '8',
            '\u096f': '9',
            '\u0966': '0',
        }
    function qs(e, a, t) {
        var s = e + ' '
        switch (t) {
            case 'ss':
                return (s +=
                    1 === e
                        ? 'sekunda'
                        : 2 === e || 3 === e || 4 === e
                          ? 'sekunde'
                          : 'sekundi')
            case 'm':
                return a ? 'jedna minuta' : 'jedne minute'
            case 'mm':
                return (s +=
                    1 === e
                        ? 'minuta'
                        : 2 === e || 3 === e || 4 === e
                          ? 'minute'
                          : 'minuta')
            case 'h':
                return a ? 'jedan sat' : 'jednog sata'
            case 'hh':
                return (s +=
                    1 === e
                        ? 'sat'
                        : 2 === e || 3 === e || 4 === e
                          ? 'sata'
                          : 'sati')
            case 'dd':
                return (s += 1 === e ? 'dan' : 'dana')
            case 'MM':
                return (s +=
                    1 === e
                        ? 'mjesec'
                        : 2 === e || 3 === e || 4 === e
                          ? 'mjeseca'
                          : 'mjeseci')
            case 'yy':
                return (s +=
                    1 === e
                        ? 'godina'
                        : 2 === e || 3 === e || 4 === e
                          ? 'godine'
                          : 'godina')
        }
    }
    l.defineLocale('hi', {
        months: '\u091c\u0928\u0935\u0930\u0940_\u092b\u093c\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u092e\u094d\u092c\u0930_\u0926\u093f\u0938\u092e\u094d\u092c\u0930'.split(
            '_'
        ),
        monthsShort:
            '\u091c\u0928._\u092b\u093c\u0930._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948._\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0905\u0917._\u0938\u093f\u0924._\u0905\u0915\u094d\u091f\u0942._\u0928\u0935._\u0926\u093f\u0938.'.split(
                '_'
            ),
        monthsParseExact: !0,
        weekdays:
            '\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0932\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930'.split(
                '_'
            ),
        weekdaysShort:
            '\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0932_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f'.split(
                '_'
            ),
        weekdaysMin:
            '\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936'.split(
                '_'
            ),
        longDateFormat: {
            LT: 'A h:mm \u092c\u091c\u0947',
            LTS: 'A h:mm:ss \u092c\u091c\u0947',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm \u092c\u091c\u0947',
            LLLL: 'dddd, D MMMM YYYY, A h:mm \u092c\u091c\u0947',
        },
        calendar: {
            sameDay: '[\u0906\u091c] LT',
            nextDay: '[\u0915\u0932] LT',
            nextWeek: 'dddd, LT',
            lastDay: '[\u0915\u0932] LT',
            lastWeek: '[\u092a\u093f\u091b\u0932\u0947] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s \u092e\u0947\u0902',
            past: '%s \u092a\u0939\u0932\u0947',
            s: '\u0915\u0941\u091b \u0939\u0940 \u0915\u094d\u0937\u0923',
            ss: '%d \u0938\u0947\u0915\u0902\u0921',
            m: '\u090f\u0915 \u092e\u093f\u0928\u091f',
            mm: '%d \u092e\u093f\u0928\u091f',
            h: '\u090f\u0915 \u0918\u0902\u091f\u093e',
            hh: '%d \u0918\u0902\u091f\u0947',
            d: '\u090f\u0915 \u0926\u093f\u0928',
            dd: '%d \u0926\u093f\u0928',
            M: '\u090f\u0915 \u092e\u0939\u0940\u0928\u0947',
            MM: '%d \u092e\u0939\u0940\u0928\u0947',
            y: '\u090f\u0915 \u0935\u0930\u094d\u0937',
            yy: '%d \u0935\u0930\u094d\u0937',
        },
        preparse: function (e) {
            return e.replace(
                /[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,
                function (e) {
                    return Bs[e]
                }
            )
        },
        postformat: function (e) {
            return e.replace(/\d/g, function (e) {
                return $s[e]
            })
        },
        meridiemParse:
            /\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,
        meridiemHour: function (e, a) {
            return (
                12 === e && (e = 0),
                '\u0930\u093e\u0924' === a
                    ? e < 4
                        ? e
                        : e + 12
                    : '\u0938\u0941\u092c\u0939' === a
                      ? e
                      : '\u0926\u094b\u092a\u0939\u0930' === a
                        ? 10 <= e
                            ? e
                            : e + 12
                        : '\u0936\u093e\u092e' === a
                          ? e + 12
                          : void 0
            )
        },
        meridiem: function (e, a, t) {
            return e < 4
                ? '\u0930\u093e\u0924'
                : e < 10
                  ? '\u0938\u0941\u092c\u0939'
                  : e < 17
                    ? '\u0926\u094b\u092a\u0939\u0930'
                    : e < 20
                      ? '\u0936\u093e\u092e'
                      : '\u0930\u093e\u0924'
        },
        week: { dow: 0, doy: 6 },
    }),
        l.defineLocale('hr', {
            months: {
                format: 'sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(
                    '_'
                ),
                standalone:
                    'sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(
                        '_'
                    ),
            },
            monthsShort:
                'sij._velj._o\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota'.split(
                    '_'
                ),
            weekdaysShort: 'ned._pon._uto._sri._\u010det._pet._sub.'.split('_'),
            weekdaysMin: 'ne_po_ut_sr_\u010de_pe_su'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'H:mm',
                LTS: 'H:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D. MMMM YYYY',
                LLL: 'D. MMMM YYYY H:mm',
                LLLL: 'dddd, D. MMMM YYYY H:mm',
            },
            calendar: {
                sameDay: '[danas u] LT',
                nextDay: '[sutra u] LT',
                nextWeek: function () {
                    switch (this.day()) {
                        case 0:
                            return '[u] [nedjelju] [u] LT'
                        case 3:
                            return '[u] [srijedu] [u] LT'
                        case 6:
                            return '[u] [subotu] [u] LT'
                        case 1:
                        case 2:
                        case 4:
                        case 5:
                            return '[u] dddd [u] LT'
                    }
                },
                lastDay: '[ju\u010der u] LT',
                lastWeek: function () {
                    switch (this.day()) {
                        case 0:
                        case 3:
                            return '[pro\u0161lu] dddd [u] LT'
                        case 6:
                            return '[pro\u0161le] [subote] [u] LT'
                        case 1:
                        case 2:
                        case 4:
                        case 5:
                            return '[pro\u0161li] dddd [u] LT'
                    }
                },
                sameElse: 'L',
            },
            relativeTime: {
                future: 'za %s',
                past: 'prije %s',
                s: 'par sekundi',
                ss: qs,
                m: qs,
                mm: qs,
                h: qs,
                hh: qs,
                d: 'dan',
                dd: qs,
                M: 'mjesec',
                MM: qs,
                y: 'godinu',
                yy: qs,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 7 },
        })
    var Qs =
        'vas\xe1rnap h\xe9tf\u0151n kedden szerd\xe1n cs\xfct\xf6rt\xf6k\xf6n p\xe9nteken szombaton'.split(
            ' '
        )
    function Xs(e, a, t, s) {
        var n = e
        switch (t) {
            case 's':
                return s || a
                    ? 'n\xe9h\xe1ny m\xe1sodperc'
                    : 'n\xe9h\xe1ny m\xe1sodperce'
            case 'ss':
                return n + (s || a) ? ' m\xe1sodperc' : ' m\xe1sodperce'
            case 'm':
                return 'egy' + (s || a ? ' perc' : ' perce')
            case 'mm':
                return n + (s || a ? ' perc' : ' perce')
            case 'h':
                return 'egy' + (s || a ? ' \xf3ra' : ' \xf3r\xe1ja')
            case 'hh':
                return n + (s || a ? ' \xf3ra' : ' \xf3r\xe1ja')
            case 'd':
                return 'egy' + (s || a ? ' nap' : ' napja')
            case 'dd':
                return n + (s || a ? ' nap' : ' napja')
            case 'M':
                return 'egy' + (s || a ? ' h\xf3nap' : ' h\xf3napja')
            case 'MM':
                return n + (s || a ? ' h\xf3nap' : ' h\xf3napja')
            case 'y':
                return 'egy' + (s || a ? ' \xe9v' : ' \xe9ve')
            case 'yy':
                return n + (s || a ? ' \xe9v' : ' \xe9ve')
        }
        return ''
    }
    function en(e) {
        return (e ? '' : '[m\xfalt] ') + '[' + Qs[this.day()] + '] LT[-kor]'
    }
    function an(e) {
        return e % 100 == 11 || e % 10 != 1
    }
    function tn(e, a, t, s) {
        var n = e + ' '
        switch (t) {
            case 's':
                return a || s ? 'nokkrar sek\xfandur' : 'nokkrum sek\xfandum'
            case 'ss':
                return an(e)
                    ? n + (a || s ? 'sek\xfandur' : 'sek\xfandum')
                    : n + 'sek\xfanda'
            case 'm':
                return a ? 'm\xedn\xfata' : 'm\xedn\xfatu'
            case 'mm':
                return an(e)
                    ? n + (a || s ? 'm\xedn\xfatur' : 'm\xedn\xfatum')
                    : a
                      ? n + 'm\xedn\xfata'
                      : n + 'm\xedn\xfatu'
            case 'hh':
                return an(e)
                    ? n + (a || s ? 'klukkustundir' : 'klukkustundum')
                    : n + 'klukkustund'
            case 'd':
                return a ? 'dagur' : s ? 'dag' : 'degi'
            case 'dd':
                return an(e)
                    ? a
                        ? n + 'dagar'
                        : n + (s ? 'daga' : 'd\xf6gum')
                    : a
                      ? n + 'dagur'
                      : n + (s ? 'dag' : 'degi')
            case 'M':
                return a ? 'm\xe1nu\xf0ur' : s ? 'm\xe1nu\xf0' : 'm\xe1nu\xf0i'
            case 'MM':
                return an(e)
                    ? a
                        ? n + 'm\xe1nu\xf0ir'
                        : n + (s ? 'm\xe1nu\xf0i' : 'm\xe1nu\xf0um')
                    : a
                      ? n + 'm\xe1nu\xf0ur'
                      : n + (s ? 'm\xe1nu\xf0' : 'm\xe1nu\xf0i')
            case 'y':
                return a || s ? '\xe1r' : '\xe1ri'
            case 'yy':
                return an(e)
                    ? n + (a || s ? '\xe1r' : '\xe1rum')
                    : n + (a || s ? '\xe1r' : '\xe1ri')
        }
    }
    l.defineLocale('hu', {
        months: 'janu\xe1r_febru\xe1r_m\xe1rcius_\xe1prilis_m\xe1jus_j\xfanius_j\xfalius_augusztus_szeptember_okt\xf3ber_november_december'.split(
            '_'
        ),
        monthsShort:
            'jan_feb_m\xe1rc_\xe1pr_m\xe1j_j\xfan_j\xfal_aug_szept_okt_nov_dec'.split(
                '_'
            ),
        weekdays:
            'vas\xe1rnap_h\xe9tf\u0151_kedd_szerda_cs\xfct\xf6rt\xf6k_p\xe9ntek_szombat'.split(
                '_'
            ),
        weekdaysShort: 'vas_h\xe9t_kedd_sze_cs\xfct_p\xe9n_szo'.split('_'),
        weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'YYYY.MM.DD.',
            LL: 'YYYY. MMMM D.',
            LLL: 'YYYY. MMMM D. H:mm',
            LLLL: 'YYYY. MMMM D., dddd H:mm',
        },
        meridiemParse: /de|du/i,
        isPM: function (e) {
            return 'u' === e.charAt(1).toLowerCase()
        },
        meridiem: function (e, a, t) {
            return e < 12 ? (!0 === t ? 'de' : 'DE') : !0 === t ? 'du' : 'DU'
        },
        calendar: {
            sameDay: '[ma] LT[-kor]',
            nextDay: '[holnap] LT[-kor]',
            nextWeek: function () {
                return en.call(this, !0)
            },
            lastDay: '[tegnap] LT[-kor]',
            lastWeek: function () {
                return en.call(this, !1)
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s m\xfalva',
            past: '%s',
            s: Xs,
            ss: Xs,
            m: Xs,
            mm: Xs,
            h: Xs,
            hh: Xs,
            d: Xs,
            dd: Xs,
            M: Xs,
            MM: Xs,
            y: Xs,
            yy: Xs,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }),
        l.defineLocale('hy-am', {
            months: {
                format: '\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b'.split(
                    '_'
                ),
                standalone:
                    '\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580'.split(
                        '_'
                    ),
            },
            monthsShort:
                '\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f'.split(
                    '_'
                ),
            weekdays:
                '\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569'.split(
                    '_'
                ),
            weekdaysShort:
                '\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569'.split(
                    '_'
                ),
            weekdaysMin:
                '\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569'.split(
                    '_'
                ),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D MMMM YYYY \u0569.',
                LLL: 'D MMMM YYYY \u0569., HH:mm',
                LLLL: 'dddd, D MMMM YYYY \u0569., HH:mm',
            },
            calendar: {
                sameDay: '[\u0561\u0575\u057d\u0585\u0580] LT',
                nextDay: '[\u057e\u0561\u0572\u0568] LT',
                lastDay: '[\u0565\u0580\u0565\u056f] LT',
                nextWeek: function () {
                    return 'dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT'
                },
                lastWeek: function () {
                    return '[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT'
                },
                sameElse: 'L',
            },
            relativeTime: {
                future: '%s \u0570\u0565\u057f\u0578',
                past: '%s \u0561\u057c\u0561\u057b',
                s: '\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576',
                ss: '%d \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576',
                m: '\u0580\u0578\u057a\u0565',
                mm: '%d \u0580\u0578\u057a\u0565',
                h: '\u056a\u0561\u0574',
                hh: '%d \u056a\u0561\u0574',
                d: '\u0585\u0580',
                dd: '%d \u0585\u0580',
                M: '\u0561\u0574\u056b\u057d',
                MM: '%d \u0561\u0574\u056b\u057d',
                y: '\u057f\u0561\u0580\u056b',
                yy: '%d \u057f\u0561\u0580\u056b',
            },
            meridiemParse:
                /\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,
            isPM: function (e) {
                return /^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(
                    e
                )
            },
            meridiem: function (e) {
                return e < 4
                    ? '\u0563\u056b\u0577\u0565\u0580\u057e\u0561'
                    : e < 12
                      ? '\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561'
                      : e < 17
                        ? '\u0581\u0565\u0580\u0565\u056f\u057e\u0561'
                        : '\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576'
            },
            dayOfMonthOrdinalParse:
                /\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,
            ordinal: function (e, a) {
                switch (a) {
                    case 'DDD':
                    case 'w':
                    case 'W':
                    case 'DDDo':
                        return 1 === e
                            ? e + '-\u056b\u0576'
                            : e + '-\u0580\u0564'
                    default:
                        return e
                }
            },
            week: { dow: 1, doy: 7 },
        }),
        l.defineLocale('id', {
            months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(
                '_'
            ),
            monthsShort:
                'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
            weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
            weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
            weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
            longDateFormat: {
                LT: 'HH.mm',
                LTS: 'HH.mm.ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY [pukul] HH.mm',
                LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
            },
            meridiemParse: /pagi|siang|sore|malam/,
            meridiemHour: function (e, a) {
                return (
                    12 === e && (e = 0),
                    'pagi' === a
                        ? e
                        : 'siang' === a
                          ? 11 <= e
                              ? e
                              : e + 12
                          : 'sore' === a || 'malam' === a
                            ? e + 12
                            : void 0
                )
            },
            meridiem: function (e, a, t) {
                return e < 11
                    ? 'pagi'
                    : e < 15
                      ? 'siang'
                      : e < 19
                        ? 'sore'
                        : 'malam'
            },
            calendar: {
                sameDay: '[Hari ini pukul] LT',
                nextDay: '[Besok pukul] LT',
                nextWeek: 'dddd [pukul] LT',
                lastDay: '[Kemarin pukul] LT',
                lastWeek: 'dddd [lalu pukul] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'dalam %s',
                past: '%s yang lalu',
                s: 'beberapa detik',
                ss: '%d detik',
                m: 'semenit',
                mm: '%d menit',
                h: 'sejam',
                hh: '%d jam',
                d: 'sehari',
                dd: '%d hari',
                M: 'sebulan',
                MM: '%d bulan',
                y: 'setahun',
                yy: '%d tahun',
            },
            week: { dow: 1, doy: 7 },
        }),
        l.defineLocale('is', {
            months: 'jan\xfaar_febr\xfaar_mars_apr\xedl_ma\xed_j\xfan\xed_j\xfal\xed_\xe1g\xfast_september_okt\xf3ber_n\xf3vember_desember'.split(
                '_'
            ),
            monthsShort:
                'jan_feb_mar_apr_ma\xed_j\xfan_j\xfal_\xe1g\xfa_sep_okt_n\xf3v_des'.split(
                    '_'
                ),
            weekdays:
                'sunnudagur_m\xe1nudagur_\xferi\xf0judagur_mi\xf0vikudagur_fimmtudagur_f\xf6studagur_laugardagur'.split(
                    '_'
                ),
            weekdaysShort: 'sun_m\xe1n_\xferi_mi\xf0_fim_f\xf6s_lau'.split('_'),
            weekdaysMin: 'Su_M\xe1_\xder_Mi_Fi_F\xf6_La'.split('_'),
            longDateFormat: {
                LT: 'H:mm',
                LTS: 'H:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D. MMMM YYYY',
                LLL: 'D. MMMM YYYY [kl.] H:mm',
                LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',
            },
            calendar: {
                sameDay: '[\xed dag kl.] LT',
                nextDay: '[\xe1 morgun kl.] LT',
                nextWeek: 'dddd [kl.] LT',
                lastDay: '[\xed g\xe6r kl.] LT',
                lastWeek: '[s\xed\xf0asta] dddd [kl.] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'eftir %s',
                past: 'fyrir %s s\xed\xf0an',
                s: tn,
                ss: tn,
                m: tn,
                mm: tn,
                h: 'klukkustund',
                hh: tn,
                d: tn,
                dd: tn,
                M: tn,
                MM: tn,
                y: tn,
                yy: tn,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('it-ch', {
            months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
                '_'
            ),
            monthsShort:
                'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
            weekdays:
                'domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato'.split(
                    '_'
                ),
            weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
            weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Oggi alle] LT',
                nextDay: '[Domani alle] LT',
                nextWeek: 'dddd [alle] LT',
                lastDay: '[Ieri alle] LT',
                lastWeek: function () {
                    switch (this.day()) {
                        case 0:
                            return '[la scorsa] dddd [alle] LT'
                        default:
                            return '[lo scorso] dddd [alle] LT'
                    }
                },
                sameElse: 'L',
            },
            relativeTime: {
                future: function (e) {
                    return (/^[0-9].+$/.test(e) ? 'tra' : 'in') + ' ' + e
                },
                past: '%s fa',
                s: 'alcuni secondi',
                ss: '%d secondi',
                m: 'un minuto',
                mm: '%d minuti',
                h: "un'ora",
                hh: '%d ore',
                d: 'un giorno',
                dd: '%d giorni',
                M: 'un mese',
                MM: '%d mesi',
                y: 'un anno',
                yy: '%d anni',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\xba/,
            ordinal: '%d\xba',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('it', {
            months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
                '_'
            ),
            monthsShort:
                'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
            weekdays:
                'domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato'.split(
                    '_'
                ),
            weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
            weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Oggi alle] LT',
                nextDay: '[Domani alle] LT',
                nextWeek: 'dddd [alle] LT',
                lastDay: '[Ieri alle] LT',
                lastWeek: function () {
                    switch (this.day()) {
                        case 0:
                            return '[la scorsa] dddd [alle] LT'
                        default:
                            return '[lo scorso] dddd [alle] LT'
                    }
                },
                sameElse: 'L',
            },
            relativeTime: {
                future: function (e) {
                    return (/^[0-9].+$/.test(e) ? 'tra' : 'in') + ' ' + e
                },
                past: '%s fa',
                s: 'alcuni secondi',
                ss: '%d secondi',
                m: 'un minuto',
                mm: '%d minuti',
                h: "un'ora",
                hh: '%d ore',
                d: 'un giorno',
                dd: '%d giorni',
                M: 'un mese',
                MM: '%d mesi',
                y: 'un anno',
                yy: '%d anni',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\xba/,
            ordinal: '%d\xba',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('ja', {
            months: '\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708'.split(
                '_'
            ),
            monthsShort:
                '1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708'.split(
                    '_'
                ),
            weekdays:
                '\u65e5\u66dc\u65e5_\u6708\u66dc\u65e5_\u706b\u66dc\u65e5_\u6c34\u66dc\u65e5_\u6728\u66dc\u65e5_\u91d1\u66dc\u65e5_\u571f\u66dc\u65e5'.split(
                    '_'
                ),
            weekdaysShort:
                '\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f'.split('_'),
            weekdaysMin:
                '\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'YYYY/MM/DD',
                LL: 'YYYY\u5e74M\u6708D\u65e5',
                LLL: 'YYYY\u5e74M\u6708D\u65e5 HH:mm',
                LLLL: 'YYYY\u5e74M\u6708D\u65e5 dddd HH:mm',
                l: 'YYYY/MM/DD',
                ll: 'YYYY\u5e74M\u6708D\u65e5',
                lll: 'YYYY\u5e74M\u6708D\u65e5 HH:mm',
                llll: 'YYYY\u5e74M\u6708D\u65e5(ddd) HH:mm',
            },
            meridiemParse: /\u5348\u524d|\u5348\u5f8c/i,
            isPM: function (e) {
                return '\u5348\u5f8c' === e
            },
            meridiem: function (e, a, t) {
                return e < 12 ? '\u5348\u524d' : '\u5348\u5f8c'
            },
            calendar: {
                sameDay: '[\u4eca\u65e5] LT',
                nextDay: '[\u660e\u65e5] LT',
                nextWeek: function (e) {
                    return e.week() < this.week()
                        ? '[\u6765\u9031]dddd LT'
                        : 'dddd LT'
                },
                lastDay: '[\u6628\u65e5] LT',
                lastWeek: function (e) {
                    return this.week() < e.week()
                        ? '[\u5148\u9031]dddd LT'
                        : 'dddd LT'
                },
                sameElse: 'L',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\u65e5/,
            ordinal: function (e, a) {
                switch (a) {
                    case 'd':
                    case 'D':
                    case 'DDD':
                        return e + '\u65e5'
                    default:
                        return e
                }
            },
            relativeTime: {
                future: '%s\u5f8c',
                past: '%s\u524d',
                s: '\u6570\u79d2',
                ss: '%d\u79d2',
                m: '1\u5206',
                mm: '%d\u5206',
                h: '1\u6642\u9593',
                hh: '%d\u6642\u9593',
                d: '1\u65e5',
                dd: '%d\u65e5',
                M: '1\u30f6\u6708',
                MM: '%d\u30f6\u6708',
                y: '1\u5e74',
                yy: '%d\u5e74',
            },
        }),
        l.defineLocale('jv', {
            months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(
                '_'
            ),
            monthsShort:
                'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
            weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
            weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
            weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
            longDateFormat: {
                LT: 'HH.mm',
                LTS: 'HH.mm.ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY [pukul] HH.mm',
                LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
            },
            meridiemParse: /enjing|siyang|sonten|ndalu/,
            meridiemHour: function (e, a) {
                return (
                    12 === e && (e = 0),
                    'enjing' === a
                        ? e
                        : 'siyang' === a
                          ? 11 <= e
                              ? e
                              : e + 12
                          : 'sonten' === a || 'ndalu' === a
                            ? e + 12
                            : void 0
                )
            },
            meridiem: function (e, a, t) {
                return e < 11
                    ? 'enjing'
                    : e < 15
                      ? 'siyang'
                      : e < 19
                        ? 'sonten'
                        : 'ndalu'
            },
            calendar: {
                sameDay: '[Dinten puniko pukul] LT',
                nextDay: '[Mbenjang pukul] LT',
                nextWeek: 'dddd [pukul] LT',
                lastDay: '[Kala wingi pukul] LT',
                lastWeek: 'dddd [kepengker pukul] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'wonten ing %s',
                past: '%s ingkang kepengker',
                s: 'sawetawis detik',
                ss: '%d detik',
                m: 'setunggal menit',
                mm: '%d menit',
                h: 'setunggal jam',
                hh: '%d jam',
                d: 'sedinten',
                dd: '%d dinten',
                M: 'sewulan',
                MM: '%d wulan',
                y: 'setaun',
                yy: '%d taun',
            },
            week: { dow: 1, doy: 7 },
        }),
        l.defineLocale('ka', {
            months: {
                standalone:
                    '\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8_\u10db\u10d0\u10e0\u10e2\u10d8_\u10d0\u10de\u10e0\u10d8\u10da\u10d8_\u10db\u10d0\u10d8\u10e1\u10d8_\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8_\u10d8\u10d5\u10da\u10d8\u10e1\u10d8_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8'.split(
                        '_'
                    ),
                format: '\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10e1_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10e1_\u10db\u10d0\u10e0\u10e2\u10e1_\u10d0\u10de\u10e0\u10d8\u10da\u10d8\u10e1_\u10db\u10d0\u10d8\u10e1\u10e1_\u10d8\u10d5\u10dc\u10d8\u10e1\u10e1_\u10d8\u10d5\u10da\u10d8\u10e1\u10e1_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10e1_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10e1_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10e1'.split(
                    '_'
                ),
            },
            monthsShort:
                '\u10d8\u10d0\u10dc_\u10d7\u10d4\u10d1_\u10db\u10d0\u10e0_\u10d0\u10de\u10e0_\u10db\u10d0\u10d8_\u10d8\u10d5\u10dc_\u10d8\u10d5\u10da_\u10d0\u10d2\u10d5_\u10e1\u10d4\u10e5_\u10dd\u10e5\u10e2_\u10dc\u10dd\u10d4_\u10d3\u10d4\u10d9'.split(
                    '_'
                ),
            weekdays: {
                standalone:
                    '\u10d9\u10d5\u10d8\u10e0\u10d0_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8_\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8'.split(
                        '_'
                    ),
                format: '\u10d9\u10d5\u10d8\u10e0\u10d0\u10e1_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10e1_\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1'.split(
                    '_'
                ),
                isFormat:
                    /(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/,
            },
            weekdaysShort:
                '\u10d9\u10d5\u10d8_\u10dd\u10e0\u10e8_\u10e1\u10d0\u10db_\u10dd\u10d7\u10ee_\u10ee\u10e3\u10d7_\u10de\u10d0\u10e0_\u10e8\u10d0\u10d1'.split(
                    '_'
                ),
            weekdaysMin:
                '\u10d9\u10d5_\u10dd\u10e0_\u10e1\u10d0_\u10dd\u10d7_\u10ee\u10e3_\u10de\u10d0_\u10e8\u10d0'.split(
                    '_'
                ),
            longDateFormat: {
                LT: 'h:mm A',
                LTS: 'h:mm:ss A',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY h:mm A',
                LLLL: 'dddd, D MMMM YYYY h:mm A',
            },
            calendar: {
                sameDay: '[\u10d3\u10e6\u10d4\u10e1] LT[-\u10d6\u10d4]',
                nextDay: '[\u10ee\u10d5\u10d0\u10da] LT[-\u10d6\u10d4]',
                lastDay: '[\u10d2\u10e3\u10e8\u10d8\u10dc] LT[-\u10d6\u10d4]',
                nextWeek:
                    '[\u10e8\u10d4\u10db\u10d3\u10d4\u10d2] dddd LT[-\u10d6\u10d4]',
                lastWeek: '[\u10ec\u10d8\u10dc\u10d0] dddd LT-\u10d6\u10d4',
                sameElse: 'L',
            },
            relativeTime: {
                future: function (e) {
                    return /(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10ec\u10d4\u10da\u10d8)/.test(
                        e
                    )
                        ? e.replace(/\u10d8$/, '\u10e8\u10d8')
                        : e + '\u10e8\u10d8'
                },
                past: function (e) {
                    return /(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(
                        e
                    )
                        ? e.replace(
                              /(\u10d8|\u10d4)$/,
                              '\u10d8\u10e1 \u10ec\u10d8\u10dc'
                          )
                        : /\u10ec\u10d4\u10da\u10d8/.test(e)
                          ? e.replace(
                                /\u10ec\u10d4\u10da\u10d8$/,
                                '\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc'
                            )
                          : void 0
                },
                s: '\u10e0\u10d0\u10db\u10d3\u10d4\u10dc\u10d8\u10db\u10d4 \u10ec\u10d0\u10db\u10d8',
                ss: '%d \u10ec\u10d0\u10db\u10d8',
                m: '\u10ec\u10e3\u10d7\u10d8',
                mm: '%d \u10ec\u10e3\u10d7\u10d8',
                h: '\u10e1\u10d0\u10d0\u10d7\u10d8',
                hh: '%d \u10e1\u10d0\u10d0\u10d7\u10d8',
                d: '\u10d3\u10e6\u10d4',
                dd: '%d \u10d3\u10e6\u10d4',
                M: '\u10d7\u10d5\u10d4',
                MM: '%d \u10d7\u10d5\u10d4',
                y: '\u10ec\u10d4\u10da\u10d8',
                yy: '%d \u10ec\u10d4\u10da\u10d8',
            },
            dayOfMonthOrdinalParse:
                /0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,
            ordinal: function (e) {
                return 0 === e
                    ? e
                    : 1 === e
                      ? e + '-\u10da\u10d8'
                      : e < 20 || (e <= 100 && e % 20 == 0) || e % 100 == 0
                        ? '\u10db\u10d4-' + e
                        : e + '-\u10d4'
            },
            week: { dow: 1, doy: 7 },
        })
    var sn = {
        0: '-\u0448\u0456',
        1: '-\u0448\u0456',
        2: '-\u0448\u0456',
        3: '-\u0448\u0456',
        4: '-\u0448\u0456',
        5: '-\u0448\u0456',
        6: '-\u0448\u044b',
        7: '-\u0448\u0456',
        8: '-\u0448\u0456',
        9: '-\u0448\u044b',
        10: '-\u0448\u044b',
        20: '-\u0448\u044b',
        30: '-\u0448\u044b',
        40: '-\u0448\u044b',
        50: '-\u0448\u0456',
        60: '-\u0448\u044b',
        70: '-\u0448\u0456',
        80: '-\u0448\u0456',
        90: '-\u0448\u044b',
        100: '-\u0448\u0456',
    }
    l.defineLocale('kk', {
        months: '\u049b\u0430\u04a3\u0442\u0430\u0440_\u0430\u049b\u043f\u0430\u043d_\u043d\u0430\u0443\u0440\u044b\u0437_\u0441\u04d9\u0443\u0456\u0440_\u043c\u0430\u043c\u044b\u0440_\u043c\u0430\u0443\u0441\u044b\u043c_\u0448\u0456\u043b\u0434\u0435_\u0442\u0430\u043c\u044b\u0437_\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a_\u049b\u0430\u0437\u0430\u043d_\u049b\u0430\u0440\u0430\u0448\u0430_\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d'.split(
            '_'
        ),
        monthsShort:
            '\u049b\u0430\u04a3_\u0430\u049b\u043f_\u043d\u0430\u0443_\u0441\u04d9\u0443_\u043c\u0430\u043c_\u043c\u0430\u0443_\u0448\u0456\u043b_\u0442\u0430\u043c_\u049b\u044b\u0440_\u049b\u0430\u0437_\u049b\u0430\u0440_\u0436\u0435\u043b'.split(
                '_'
            ),
        weekdays:
            '\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456_\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456_\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0436\u04b1\u043c\u0430_\u0441\u0435\u043d\u0431\u0456'.split(
                '_'
            ),
        weekdaysShort:
            '\u0436\u0435\u043a_\u0434\u04af\u0439_\u0441\u0435\u0439_\u0441\u04d9\u0440_\u0431\u0435\u0439_\u0436\u04b1\u043c_\u0441\u0435\u043d'.split(
                '_'
            ),
        weekdaysMin:
            '\u0436\u043a_\u0434\u0439_\u0441\u0439_\u0441\u0440_\u0431\u0439_\u0436\u043c_\u0441\u043d'.split(
                '_'
            ),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay:
                '[\u0411\u04af\u0433\u0456\u043d \u0441\u0430\u0493\u0430\u0442] LT',
            nextDay:
                '[\u0415\u0440\u0442\u0435\u04a3 \u0441\u0430\u0493\u0430\u0442] LT',
            nextWeek: 'dddd [\u0441\u0430\u0493\u0430\u0442] LT',
            lastDay:
                '[\u041a\u0435\u0448\u0435 \u0441\u0430\u0493\u0430\u0442] LT',
            lastWeek:
                '[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u04a3] dddd [\u0441\u0430\u0493\u0430\u0442] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s \u0456\u0448\u0456\u043d\u0434\u0435',
            past: '%s \u0431\u04b1\u0440\u044b\u043d',
            s: '\u0431\u0456\u0440\u043d\u0435\u0448\u0435 \u0441\u0435\u043a\u0443\u043d\u0434',
            ss: '%d \u0441\u0435\u043a\u0443\u043d\u0434',
            m: '\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442',
            mm: '%d \u043c\u0438\u043d\u0443\u0442',
            h: '\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442',
            hh: '%d \u0441\u0430\u0493\u0430\u0442',
            d: '\u0431\u0456\u0440 \u043a\u04af\u043d',
            dd: '%d \u043a\u04af\u043d',
            M: '\u0431\u0456\u0440 \u0430\u0439',
            MM: '%d \u0430\u0439',
            y: '\u0431\u0456\u0440 \u0436\u044b\u043b',
            yy: '%d \u0436\u044b\u043b',
        },
        dayOfMonthOrdinalParse: /\d{1,2}-(\u0448\u0456|\u0448\u044b)/,
        ordinal: function (e) {
            return e + (sn[e] || sn[e % 10] || sn[100 <= e ? 100 : null])
        },
        week: { dow: 1, doy: 7 },
    })
    var nn = {
            1: '\u17e1',
            2: '\u17e2',
            3: '\u17e3',
            4: '\u17e4',
            5: '\u17e5',
            6: '\u17e6',
            7: '\u17e7',
            8: '\u17e8',
            9: '\u17e9',
            0: '\u17e0',
        },
        dn = {
            '\u17e1': '1',
            '\u17e2': '2',
            '\u17e3': '3',
            '\u17e4': '4',
            '\u17e5': '5',
            '\u17e6': '6',
            '\u17e7': '7',
            '\u17e8': '8',
            '\u17e9': '9',
            '\u17e0': '0',
        }
    l.defineLocale('km', {
        months: '\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc'.split(
            '_'
        ),
        monthsShort:
            '\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc'.split(
                '_'
            ),
        weekdays:
            '\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799_\u1785\u17d0\u1793\u17d2\u1791_\u17a2\u1784\u17d2\u1782\u17b6\u179a_\u1796\u17bb\u1792_\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd_\u179f\u17bb\u1780\u17d2\u179a_\u179f\u17c5\u179a\u17cd'.split(
                '_'
            ),
        weekdaysShort:
            '\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f'.split(
                '_'
            ),
        weekdaysMin:
            '\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f'.split(
                '_'
            ),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        meridiemParse:
            /\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,
        isPM: function (e) {
            return '\u179b\u17d2\u1784\u17b6\u1785' === e
        },
        meridiem: function (e, a, t) {
            return e < 12
                ? '\u1796\u17d2\u179a\u17b9\u1780'
                : '\u179b\u17d2\u1784\u17b6\u1785'
        },
        calendar: {
            sameDay:
                '[\u1790\u17d2\u1784\u17c3\u1793\u17c1\u17c7 \u1798\u17c9\u17c4\u1784] LT',
            nextDay:
                '[\u179f\u17d2\u17a2\u17c2\u1780 \u1798\u17c9\u17c4\u1784] LT',
            nextWeek: 'dddd [\u1798\u17c9\u17c4\u1784] LT',
            lastDay:
                '[\u1798\u17d2\u179f\u17b7\u179b\u1798\u17b7\u1789 \u1798\u17c9\u17c4\u1784] LT',
            lastWeek:
                'dddd [\u179f\u1794\u17d2\u178f\u17b6\u17a0\u17cd\u1798\u17bb\u1793] [\u1798\u17c9\u17c4\u1784] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s\u1791\u17c0\u178f',
            past: '%s\u1798\u17bb\u1793',
            s: '\u1794\u17c9\u17bb\u1793\u17d2\u1798\u17b6\u1793\u179c\u17b7\u1793\u17b6\u1791\u17b8',
            ss: '%d \u179c\u17b7\u1793\u17b6\u1791\u17b8',
            m: '\u1798\u17bd\u1799\u1793\u17b6\u1791\u17b8',
            mm: '%d \u1793\u17b6\u1791\u17b8',
            h: '\u1798\u17bd\u1799\u1798\u17c9\u17c4\u1784',
            hh: '%d \u1798\u17c9\u17c4\u1784',
            d: '\u1798\u17bd\u1799\u1790\u17d2\u1784\u17c3',
            dd: '%d \u1790\u17d2\u1784\u17c3',
            M: '\u1798\u17bd\u1799\u1781\u17c2',
            MM: '%d \u1781\u17c2',
            y: '\u1798\u17bd\u1799\u1786\u17d2\u1793\u17b6\u17c6',
            yy: '%d \u1786\u17d2\u1793\u17b6\u17c6',
        },
        dayOfMonthOrdinalParse: /\u1791\u17b8\d{1,2}/,
        ordinal: '\u1791\u17b8%d',
        preparse: function (e) {
            return e.replace(
                /[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,
                function (e) {
                    return dn[e]
                }
            )
        },
        postformat: function (e) {
            return e.replace(/\d/g, function (e) {
                return nn[e]
            })
        },
        week: { dow: 1, doy: 4 },
    })
    var rn = {
            1: '\u0ce7',
            2: '\u0ce8',
            3: '\u0ce9',
            4: '\u0cea',
            5: '\u0ceb',
            6: '\u0cec',
            7: '\u0ced',
            8: '\u0cee',
            9: '\u0cef',
            0: '\u0ce6',
        },
        _n = {
            '\u0ce7': '1',
            '\u0ce8': '2',
            '\u0ce9': '3',
            '\u0cea': '4',
            '\u0ceb': '5',
            '\u0cec': '6',
            '\u0ced': '7',
            '\u0cee': '8',
            '\u0cef': '9',
            '\u0ce6': '0',
        }
    l.defineLocale('kn', {
        months: '\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf_\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5\u0cac\u0cb0\u0ccd_\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd'.split(
            '_'
        ),
        monthsShort:
            '\u0c9c\u0ca8_\u0cab\u0cc6\u0cac\u0ccd\u0cb0_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5_\u0ca8\u0cb5\u0cc6\u0c82_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82'.split(
                '_'
            ),
        monthsParseExact: !0,
        weekdays:
            '\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae\u0cb5\u0cbe\u0cb0_\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0_\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0_\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0_\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0'.split(
                '_'
            ),
        weekdaysShort:
            '\u0cad\u0cbe\u0ca8\u0cc1_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae_\u0cae\u0c82\u0c97\u0cb3_\u0cac\u0cc1\u0ca7_\u0c97\u0cc1\u0cb0\u0cc1_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0_\u0cb6\u0ca8\u0cbf'.split(
                '_'
            ),
        weekdaysMin:
            '\u0cad\u0cbe_\u0cb8\u0cc6\u0cc2\u0cd5_\u0cae\u0c82_\u0cac\u0cc1_\u0c97\u0cc1_\u0cb6\u0cc1_\u0cb6'.split(
                '_'
            ),
        longDateFormat: {
            LT: 'A h:mm',
            LTS: 'A h:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm',
            LLLL: 'dddd, D MMMM YYYY, A h:mm',
        },
        calendar: {
            sameDay: '[\u0c87\u0c82\u0ca6\u0cc1] LT',
            nextDay: '[\u0ca8\u0cbe\u0cb3\u0cc6] LT',
            nextWeek: 'dddd, LT',
            lastDay: '[\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6] LT',
            lastWeek: '[\u0c95\u0cc6\u0cc2\u0ca8\u0cc6\u0caf] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s \u0ca8\u0c82\u0ca4\u0cb0',
            past: '%s \u0cb9\u0cbf\u0c82\u0ca6\u0cc6',
            s: '\u0c95\u0cc6\u0cb2\u0cb5\u0cc1 \u0c95\u0ccd\u0cb7\u0ca3\u0c97\u0cb3\u0cc1',
            ss: '%d \u0cb8\u0cc6\u0c95\u0cc6\u0c82\u0ca1\u0cc1\u0c97\u0cb3\u0cc1',
            m: '\u0c92\u0c82\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0cbf\u0cb7',
            mm: '%d \u0ca8\u0cbf\u0cae\u0cbf\u0cb7',
            h: '\u0c92\u0c82\u0ca6\u0cc1 \u0c97\u0c82\u0c9f\u0cc6',
            hh: '%d \u0c97\u0c82\u0c9f\u0cc6',
            d: '\u0c92\u0c82\u0ca6\u0cc1 \u0ca6\u0cbf\u0ca8',
            dd: '%d \u0ca6\u0cbf\u0ca8',
            M: '\u0c92\u0c82\u0ca6\u0cc1 \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1',
            MM: '%d \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1',
            y: '\u0c92\u0c82\u0ca6\u0cc1 \u0cb5\u0cb0\u0ccd\u0cb7',
            yy: '%d \u0cb5\u0cb0\u0ccd\u0cb7',
        },
        preparse: function (e) {
            return e.replace(
                /[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,
                function (e) {
                    return _n[e]
                }
            )
        },
        postformat: function (e) {
            return e.replace(/\d/g, function (e) {
                return rn[e]
            })
        },
        meridiemParse:
            /\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,
        meridiemHour: function (e, a) {
            return (
                12 === e && (e = 0),
                '\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf' === a
                    ? e < 4
                        ? e
                        : e + 12
                    : '\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6' === a
                      ? e
                      : '\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8' === a
                        ? 10 <= e
                            ? e
                            : e + 12
                        : '\u0cb8\u0c82\u0c9c\u0cc6' === a
                          ? e + 12
                          : void 0
            )
        },
        meridiem: function (e, a, t) {
            return e < 4
                ? '\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf'
                : e < 10
                  ? '\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6'
                  : e < 17
                    ? '\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8'
                    : e < 20
                      ? '\u0cb8\u0c82\u0c9c\u0cc6'
                      : '\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf'
        },
        dayOfMonthOrdinalParse: /\d{1,2}(\u0ca8\u0cc6\u0cd5)/,
        ordinal: function (e) {
            return e + '\u0ca8\u0cc6\u0cd5'
        },
        week: { dow: 0, doy: 6 },
    }),
        l.defineLocale('ko', {
            months: '1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4'.split(
                '_'
            ),
            monthsShort:
                '1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4'.split(
                    '_'
                ),
            weekdays:
                '\uc77c\uc694\uc77c_\uc6d4\uc694\uc77c_\ud654\uc694\uc77c_\uc218\uc694\uc77c_\ubaa9\uc694\uc77c_\uae08\uc694\uc77c_\ud1a0\uc694\uc77c'.split(
                    '_'
                ),
            weekdaysShort:
                '\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0'.split('_'),
            weekdaysMin:
                '\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0'.split('_'),
            longDateFormat: {
                LT: 'A h:mm',
                LTS: 'A h:mm:ss',
                L: 'YYYY.MM.DD.',
                LL: 'YYYY\ub144 MMMM D\uc77c',
                LLL: 'YYYY\ub144 MMMM D\uc77c A h:mm',
                LLLL: 'YYYY\ub144 MMMM D\uc77c dddd A h:mm',
                l: 'YYYY.MM.DD.',
                ll: 'YYYY\ub144 MMMM D\uc77c',
                lll: 'YYYY\ub144 MMMM D\uc77c A h:mm',
                llll: 'YYYY\ub144 MMMM D\uc77c dddd A h:mm',
            },
            calendar: {
                sameDay: '\uc624\ub298 LT',
                nextDay: '\ub0b4\uc77c LT',
                nextWeek: 'dddd LT',
                lastDay: '\uc5b4\uc81c LT',
                lastWeek: '\uc9c0\ub09c\uc8fc dddd LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '%s \ud6c4',
                past: '%s \uc804',
                s: '\uba87 \ucd08',
                ss: '%d\ucd08',
                m: '1\ubd84',
                mm: '%d\ubd84',
                h: '\ud55c \uc2dc\uac04',
                hh: '%d\uc2dc\uac04',
                d: '\ud558\ub8e8',
                dd: '%d\uc77c',
                M: '\ud55c \ub2ec',
                MM: '%d\ub2ec',
                y: '\uc77c \ub144',
                yy: '%d\ub144',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,
            ordinal: function (e, a) {
                switch (a) {
                    case 'd':
                    case 'D':
                    case 'DDD':
                        return e + '\uc77c'
                    case 'M':
                        return e + '\uc6d4'
                    case 'w':
                    case 'W':
                        return e + '\uc8fc'
                    default:
                        return e
                }
            },
            meridiemParse: /\uc624\uc804|\uc624\ud6c4/,
            isPM: function (e) {
                return '\uc624\ud6c4' === e
            },
            meridiem: function (e, a, t) {
                return e < 12 ? '\uc624\uc804' : '\uc624\ud6c4'
            },
        })
    var on = {
            1: '\u0661',
            2: '\u0662',
            3: '\u0663',
            4: '\u0664',
            5: '\u0665',
            6: '\u0666',
            7: '\u0667',
            8: '\u0668',
            9: '\u0669',
            0: '\u0660',
        },
        mn = {
            '\u0661': '1',
            '\u0662': '2',
            '\u0663': '3',
            '\u0664': '4',
            '\u0665': '5',
            '\u0666': '6',
            '\u0667': '7',
            '\u0668': '8',
            '\u0669': '9',
            '\u0660': '0',
        },
        un = [
            '\u06a9\u0627\u0646\u0648\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645',
            '\u0634\u0648\u0628\u0627\u062a',
            '\u0626\u0627\u0632\u0627\u0631',
            '\u0646\u06cc\u0633\u0627\u0646',
            '\u0626\u0627\u06cc\u0627\u0631',
            '\u062d\u0648\u0632\u06d5\u06cc\u0631\u0627\u0646',
            '\u062a\u06d5\u0645\u0645\u0648\u0632',
            '\u0626\u0627\u0628',
            '\u0626\u06d5\u06cc\u0644\u0648\u0648\u0644',
            '\u062a\u0634\u0631\u06cc\u0646\u06cc \u06cc\u06d5\u0643\u06d5\u0645',
            '\u062a\u0634\u0631\u06cc\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645',
            '\u0643\u0627\u0646\u0648\u0646\u06cc \u06cc\u06d5\u06a9\u06d5\u0645',
        ]
    l.defineLocale('ku', {
        months: un,
        monthsShort: un,
        weekdays:
            '\u06cc\u0647\u200c\u0643\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u062f\u0648\u0648\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0633\u06ce\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0686\u0648\u0627\u0631\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u067e\u06ce\u0646\u062c\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0647\u0647\u200c\u06cc\u0646\u06cc_\u0634\u0647\u200c\u0645\u0645\u0647\u200c'.split(
                '_'
            ),
        weekdaysShort:
            '\u06cc\u0647\u200c\u0643\u0634\u0647\u200c\u0645_\u062f\u0648\u0648\u0634\u0647\u200c\u0645_\u0633\u06ce\u0634\u0647\u200c\u0645_\u0686\u0648\u0627\u0631\u0634\u0647\u200c\u0645_\u067e\u06ce\u0646\u062c\u0634\u0647\u200c\u0645_\u0647\u0647\u200c\u06cc\u0646\u06cc_\u0634\u0647\u200c\u0645\u0645\u0647\u200c'.split(
                '_'
            ),
        weekdaysMin: '\u06cc_\u062f_\u0633_\u0686_\u067e_\u0647_\u0634'.split(
            '_'
        ),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        meridiemParse:
            /\u0626\u06ce\u0648\u0627\u0631\u0647\u200c|\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc/,
        isPM: function (e) {
            return /\u0626\u06ce\u0648\u0627\u0631\u0647\u200c/.test(e)
        },
        meridiem: function (e, a, t) {
            return e < 12
                ? '\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc'
                : '\u0626\u06ce\u0648\u0627\u0631\u0647\u200c'
        },
        calendar: {
            sameDay:
                '[\u0626\u0647\u200c\u0645\u0631\u06c6 \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT',
            nextDay:
                '[\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT',
            nextWeek: 'dddd [\u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT',
            lastDay:
                '[\u062f\u0648\u06ce\u0646\u06ce \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT',
            lastWeek: 'dddd [\u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '\u0644\u0647\u200c %s',
            past: '%s',
            s: '\u0686\u0647\u200c\u0646\u062f \u0686\u0631\u0643\u0647\u200c\u06cc\u0647\u200c\u0643',
            ss: '\u0686\u0631\u0643\u0647\u200c %d',
            m: '\u06cc\u0647\u200c\u0643 \u062e\u0648\u0644\u0647\u200c\u0643',
            mm: '%d \u062e\u0648\u0644\u0647\u200c\u0643',
            h: '\u06cc\u0647\u200c\u0643 \u0643\u0627\u062a\u0698\u0645\u06ce\u0631',
            hh: '%d \u0643\u0627\u062a\u0698\u0645\u06ce\u0631',
            d: '\u06cc\u0647\u200c\u0643 \u0695\u06c6\u0698',
            dd: '%d \u0695\u06c6\u0698',
            M: '\u06cc\u0647\u200c\u0643 \u0645\u0627\u0646\u06af',
            MM: '%d \u0645\u0627\u0646\u06af',
            y: '\u06cc\u0647\u200c\u0643 \u0633\u0627\u06b5',
            yy: '%d \u0633\u0627\u06b5',
        },
        preparse: function (e) {
            return e
                .replace(
                    /[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,
                    function (e) {
                        return mn[e]
                    }
                )
                .replace(/\u060c/g, ',')
        },
        postformat: function (e) {
            return e
                .replace(/\d/g, function (e) {
                    return on[e]
                })
                .replace(/,/g, '\u060c')
        },
        week: { dow: 6, doy: 12 },
    })
    var ln = {
        0: '-\u0447\u04af',
        1: '-\u0447\u0438',
        2: '-\u0447\u0438',
        3: '-\u0447\u04af',
        4: '-\u0447\u04af',
        5: '-\u0447\u0438',
        6: '-\u0447\u044b',
        7: '-\u0447\u0438',
        8: '-\u0447\u0438',
        9: '-\u0447\u0443',
        10: '-\u0447\u0443',
        20: '-\u0447\u044b',
        30: '-\u0447\u0443',
        40: '-\u0447\u044b',
        50: '-\u0447\u04af',
        60: '-\u0447\u044b',
        70: '-\u0447\u0438',
        80: '-\u0447\u0438',
        90: '-\u0447\u0443',
        100: '-\u0447\u04af',
    }
    function Mn(e, a, t, s) {
        var n = {
            m: ['eng Minutt', 'enger Minutt'],
            h: ['eng Stonn', 'enger Stonn'],
            d: ['een Dag', 'engem Dag'],
            M: ['ee Mount', 'engem Mount'],
            y: ['ee Joer', 'engem Joer'],
        }
        return a ? n[t][0] : n[t][1]
    }
    function hn(e) {
        if (((e = parseInt(e, 10)), isNaN(e))) return !1
        if (e < 0) return !0
        if (e < 10) return 4 <= e && e <= 7
        if (e < 100) {
            var a = e % 10
            return hn(0 === a ? e / 10 : a)
        }
        if (e < 1e4) {
            for (; 10 <= e; ) e /= 10
            return hn(e)
        }
        return hn((e /= 1e3))
    }
    l.defineLocale('ky', {
        months: '\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c'.split(
            '_'
        ),
        monthsShort:
            '\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a'.split(
                '_'
            ),
        weekdays:
            '\u0416\u0435\u043a\u0448\u0435\u043c\u0431\u0438_\u0414\u04af\u0439\u0448\u04e9\u043c\u0431\u04af_\u0428\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0428\u0430\u0440\u0448\u0435\u043c\u0431\u0438_\u0411\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0416\u0443\u043c\u0430_\u0418\u0448\u0435\u043c\u0431\u0438'.split(
                '_'
            ),
        weekdaysShort:
            '\u0416\u0435\u043a_\u0414\u04af\u0439_\u0428\u0435\u0439_\u0428\u0430\u0440_\u0411\u0435\u0439_\u0416\u0443\u043c_\u0418\u0448\u0435'.split(
                '_'
            ),
        weekdaysMin:
            '\u0416\u043a_\u0414\u0439_\u0428\u0439_\u0428\u0440_\u0411\u0439_\u0416\u043c_\u0418\u0448'.split(
                '_'
            ),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay:
                '[\u0411\u04af\u0433\u04af\u043d \u0441\u0430\u0430\u0442] LT',
            nextDay:
                '[\u042d\u0440\u0442\u0435\u04a3 \u0441\u0430\u0430\u0442] LT',
            nextWeek: 'dddd [\u0441\u0430\u0430\u0442] LT',
            lastDay:
                '[\u041a\u0435\u0447\u044d\u044d \u0441\u0430\u0430\u0442] LT',
            lastWeek:
                '[\u04e8\u0442\u043a\u04e9\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u043d] dddd [\u043a\u04af\u043d\u04af] [\u0441\u0430\u0430\u0442] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s \u0438\u0447\u0438\u043d\u0434\u0435',
            past: '%s \u043c\u0443\u0440\u0443\u043d',
            s: '\u0431\u0438\u0440\u043d\u0435\u0447\u0435 \u0441\u0435\u043a\u0443\u043d\u0434',
            ss: '%d \u0441\u0435\u043a\u0443\u043d\u0434',
            m: '\u0431\u0438\u0440 \u043c\u04af\u043d\u04e9\u0442',
            mm: '%d \u043c\u04af\u043d\u04e9\u0442',
            h: '\u0431\u0438\u0440 \u0441\u0430\u0430\u0442',
            hh: '%d \u0441\u0430\u0430\u0442',
            d: '\u0431\u0438\u0440 \u043a\u04af\u043d',
            dd: '%d \u043a\u04af\u043d',
            M: '\u0431\u0438\u0440 \u0430\u0439',
            MM: '%d \u0430\u0439',
            y: '\u0431\u0438\u0440 \u0436\u044b\u043b',
            yy: '%d \u0436\u044b\u043b',
        },
        dayOfMonthOrdinalParse:
            /\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,
        ordinal: function (e) {
            return e + (ln[e] || ln[e % 10] || ln[100 <= e ? 100 : null])
        },
        week: { dow: 1, doy: 7 },
    }),
        l.defineLocale('lb', {
            months: 'Januar_Februar_M\xe4erz_Abr\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(
                '_'
            ),
            monthsShort:
                'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'Sonndeg_M\xe9indeg_D\xebnschdeg_M\xebttwoch_Donneschdeg_Freideg_Samschdeg'.split(
                    '_'
                ),
            weekdaysShort: 'So._M\xe9._D\xeb._M\xeb._Do._Fr._Sa.'.split('_'),
            weekdaysMin: 'So_M\xe9_D\xeb_M\xeb_Do_Fr_Sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'H:mm [Auer]',
                LTS: 'H:mm:ss [Auer]',
                L: 'DD.MM.YYYY',
                LL: 'D. MMMM YYYY',
                LLL: 'D. MMMM YYYY H:mm [Auer]',
                LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',
            },
            calendar: {
                sameDay: '[Haut um] LT',
                sameElse: 'L',
                nextDay: '[Muer um] LT',
                nextWeek: 'dddd [um] LT',
                lastDay: '[G\xebschter um] LT',
                lastWeek: function () {
                    switch (this.day()) {
                        case 2:
                        case 4:
                            return '[Leschten] dddd [um] LT'
                        default:
                            return '[Leschte] dddd [um] LT'
                    }
                },
            },
            relativeTime: {
                future: function (e) {
                    return hn(e.substr(0, e.indexOf(' ')))
                        ? 'a ' + e
                        : 'an ' + e
                },
                past: function (e) {
                    return hn(e.substr(0, e.indexOf(' ')))
                        ? 'viru ' + e
                        : 'virun ' + e
                },
                s: 'e puer Sekonnen',
                ss: '%d Sekonnen',
                m: Mn,
                mm: '%d Minutten',
                h: Mn,
                hh: '%d Stonnen',
                d: Mn,
                dd: '%d Deeg',
                M: Mn,
                MM: '%d M\xe9int',
                y: Mn,
                yy: '%d Joer',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('lo', {
            months: '\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2'.split(
                '_'
            ),
            monthsShort:
                '\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2'.split(
                    '_'
                ),
            weekdays:
                '\u0ead\u0eb2\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2'.split(
                    '_'
                ),
            weekdaysShort:
                '\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2'.split(
                    '_'
                ),
            weekdaysMin:
                '\u0e97_\u0e88_\u0ead\u0e84_\u0e9e_\u0e9e\u0eab_\u0eaa\u0e81_\u0eaa'.split(
                    '_'
                ),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: '\u0ea7\u0eb1\u0e99dddd D MMMM YYYY HH:mm',
            },
            meridiemParse:
                /\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,
            isPM: function (e) {
                return '\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87' === e
            },
            meridiem: function (e, a, t) {
                return e < 12
                    ? '\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2'
                    : '\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87'
            },
            calendar: {
                sameDay:
                    '[\u0ea1\u0eb7\u0ec9\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT',
                nextDay:
                    '[\u0ea1\u0eb7\u0ec9\u0ead\u0eb7\u0ec8\u0e99\u0ec0\u0ea7\u0ea5\u0eb2] LT',
                nextWeek:
                    '[\u0ea7\u0eb1\u0e99]dddd[\u0edc\u0ec9\u0eb2\u0ec0\u0ea7\u0ea5\u0eb2] LT',
                lastDay:
                    '[\u0ea1\u0eb7\u0ec9\u0ea7\u0eb2\u0e99\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT',
                lastWeek:
                    '[\u0ea7\u0eb1\u0e99]dddd[\u0ec1\u0ea5\u0ec9\u0ea7\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '\u0ead\u0eb5\u0e81 %s',
                past: '%s\u0e9c\u0ec8\u0eb2\u0e99\u0ea1\u0eb2',
                s: '\u0e9a\u0ecd\u0ec8\u0ec0\u0e97\u0ebb\u0ec8\u0eb2\u0ec3\u0e94\u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5',
                ss: '%d \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5',
                m: '1 \u0e99\u0eb2\u0e97\u0eb5',
                mm: '%d \u0e99\u0eb2\u0e97\u0eb5',
                h: '1 \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87',
                hh: '%d \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87',
                d: '1 \u0ea1\u0eb7\u0ec9',
                dd: '%d \u0ea1\u0eb7\u0ec9',
                M: '1 \u0ec0\u0e94\u0eb7\u0ead\u0e99',
                MM: '%d \u0ec0\u0e94\u0eb7\u0ead\u0e99',
                y: '1 \u0e9b\u0eb5',
                yy: '%d \u0e9b\u0eb5',
            },
            dayOfMonthOrdinalParse: /(\u0e97\u0eb5\u0ec8)\d{1,2}/,
            ordinal: function (e) {
                return '\u0e97\u0eb5\u0ec8' + e
            },
        })
    var Ln = {
        ss: 'sekund\u0117_sekund\u017ei\u0173_sekundes',
        m: 'minut\u0117_minut\u0117s_minut\u0119',
        mm: 'minut\u0117s_minu\u010di\u0173_minutes',
        h: 'valanda_valandos_valand\u0105',
        hh: 'valandos_valand\u0173_valandas',
        d: 'diena_dienos_dien\u0105',
        dd: 'dienos_dien\u0173_dienas',
        M: 'm\u0117nuo_m\u0117nesio_m\u0117nes\u012f',
        MM: 'm\u0117nesiai_m\u0117nesi\u0173_m\u0117nesius',
        y: 'metai_met\u0173_metus',
        yy: 'metai_met\u0173_metus',
    }
    function cn(e, a, t, s) {
        return a ? yn(t)[0] : s ? yn(t)[1] : yn(t)[2]
    }
    function Yn(e) {
        return e % 10 == 0 || (10 < e && e < 20)
    }
    function yn(e) {
        return Ln[e].split('_')
    }
    function fn(e, a, t, s) {
        var n = e + ' '
        return 1 === e
            ? n + cn(0, a, t[0], s)
            : a
              ? n + (Yn(e) ? yn(t)[1] : yn(t)[0])
              : s
                ? n + yn(t)[1]
                : n + (Yn(e) ? yn(t)[1] : yn(t)[2])
    }
    l.defineLocale('lt', {
        months: {
            format: 'sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio'.split(
                '_'
            ),
            standalone:
                'sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis'.split(
                    '_'
                ),
            isFormat:
                /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,
        },
        monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split(
            '_'
        ),
        weekdays: {
            format: 'sekmadien\u012f_pirmadien\u012f_antradien\u012f_tre\u010diadien\u012f_ketvirtadien\u012f_penktadien\u012f_\u0161e\u0161tadien\u012f'.split(
                '_'
            ),
            standalone:
                'sekmadienis_pirmadienis_antradienis_tre\u010diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis'.split(
                    '_'
                ),
            isFormat: /dddd HH:mm/,
        },
        weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_\u0160e\u0161'.split('_'),
        weekdaysMin: 'S_P_A_T_K_Pn_\u0160'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'YYYY-MM-DD',
            LL: 'YYYY [m.] MMMM D [d.]',
            LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
            LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
            l: 'YYYY-MM-DD',
            ll: 'YYYY [m.] MMMM D [d.]',
            lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
            llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',
        },
        calendar: {
            sameDay: '[\u0160iandien] LT',
            nextDay: '[Rytoj] LT',
            nextWeek: 'dddd LT',
            lastDay: '[Vakar] LT',
            lastWeek: '[Pra\u0117jus\u012f] dddd LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'po %s',
            past: 'prie\u0161 %s',
            s: function (e, a, t, s) {
                return a
                    ? 'kelios sekund\u0117s'
                    : s
                      ? 'keli\u0173 sekund\u017ei\u0173'
                      : 'kelias sekundes'
            },
            ss: fn,
            m: cn,
            mm: fn,
            h: cn,
            hh: fn,
            d: cn,
            dd: fn,
            M: cn,
            MM: fn,
            y: cn,
            yy: fn,
        },
        dayOfMonthOrdinalParse: /\d{1,2}-oji/,
        ordinal: function (e) {
            return e + '-oji'
        },
        week: { dow: 1, doy: 4 },
    })
    var kn = {
        ss: 'sekundes_sekund\u0113m_sekunde_sekundes'.split('_'),
        m: 'min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes'.split('_'),
        mm: 'min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes'.split(
            '_'
        ),
        h: 'stundas_stund\u0101m_stunda_stundas'.split('_'),
        hh: 'stundas_stund\u0101m_stunda_stundas'.split('_'),
        d: 'dienas_dien\u0101m_diena_dienas'.split('_'),
        dd: 'dienas_dien\u0101m_diena_dienas'.split('_'),
        M: 'm\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i'.split(
            '_'
        ),
        MM: 'm\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i'.split(
            '_'
        ),
        y: 'gada_gadiem_gads_gadi'.split('_'),
        yy: 'gada_gadiem_gads_gadi'.split('_'),
    }
    function pn(e, a, t) {
        return t
            ? a % 10 == 1 && a % 100 != 11
                ? e[2]
                : e[3]
            : a % 10 == 1 && a % 100 != 11
              ? e[0]
              : e[1]
    }
    function Dn(e, a, t) {
        return e + ' ' + pn(kn[t], e, a)
    }
    function Tn(e, a, t) {
        return pn(kn[t], e, a)
    }
    l.defineLocale('lv', {
        months: 'janv\u0101ris_febru\u0101ris_marts_apr\u012blis_maijs_j\u016bnijs_j\u016blijs_augusts_septembris_oktobris_novembris_decembris'.split(
            '_'
        ),
        monthsShort:
            'jan_feb_mar_apr_mai_j\u016bn_j\u016bl_aug_sep_okt_nov_dec'.split(
                '_'
            ),
        weekdays:
            'sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena'.split(
                '_'
            ),
        weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),
        weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY.',
            LL: 'YYYY. [gada] D. MMMM',
            LLL: 'YYYY. [gada] D. MMMM, HH:mm',
            LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',
        },
        calendar: {
            sameDay: '[\u0160odien pulksten] LT',
            nextDay: '[R\u012bt pulksten] LT',
            nextWeek: 'dddd [pulksten] LT',
            lastDay: '[Vakar pulksten] LT',
            lastWeek: '[Pag\u0101ju\u0161\u0101] dddd [pulksten] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'p\u0113c %s',
            past: 'pirms %s',
            s: function (e, a) {
                return a
                    ? 'da\u017eas sekundes'
                    : 'da\u017e\u0101m sekund\u0113m'
            },
            ss: Dn,
            m: Tn,
            mm: Dn,
            h: Tn,
            hh: Dn,
            d: Tn,
            dd: Dn,
            M: Tn,
            MM: Dn,
            y: Tn,
            yy: Dn,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    })
    var gn = {
        words: {
            ss: ['sekund', 'sekunda', 'sekundi'],
            m: ['jedan minut', 'jednog minuta'],
            mm: ['minut', 'minuta', 'minuta'],
            h: ['jedan sat', 'jednog sata'],
            hh: ['sat', 'sata', 'sati'],
            dd: ['dan', 'dana', 'dana'],
            MM: ['mjesec', 'mjeseca', 'mjeseci'],
            yy: ['godina', 'godine', 'godina'],
        },
        correctGrammaticalCase: function (e, a) {
            return 1 === e ? a[0] : 2 <= e && e <= 4 ? a[1] : a[2]
        },
        translate: function (e, a, t) {
            var s = gn.words[t]
            return 1 === t.length
                ? a
                    ? s[0]
                    : s[1]
                : e + ' ' + gn.correctGrammaticalCase(e, s)
        },
    }
    function wn(e, a, t, s) {
        switch (t) {
            case 's':
                return a
                    ? '\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434'
                    : '\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d'
            case 'ss':
                return (
                    e +
                    (a
                        ? ' \u0441\u0435\u043a\u0443\u043d\u0434'
                        : ' \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d')
                )
            case 'm':
            case 'mm':
                return (
                    e +
                    (a
                        ? ' \u043c\u0438\u043d\u0443\u0442'
                        : ' \u043c\u0438\u043d\u0443\u0442\u044b\u043d')
                )
            case 'h':
            case 'hh':
                return (
                    e +
                    (a
                        ? ' \u0446\u0430\u0433'
                        : ' \u0446\u0430\u0433\u0438\u0439\u043d')
                )
            case 'd':
            case 'dd':
                return (
                    e +
                    (a
                        ? ' \u04e9\u0434\u04e9\u0440'
                        : ' \u04e9\u0434\u0440\u0438\u0439\u043d')
                )
            case 'M':
            case 'MM':
                return (
                    e +
                    (a
                        ? ' \u0441\u0430\u0440'
                        : ' \u0441\u0430\u0440\u044b\u043d')
                )
            case 'y':
            case 'yy':
                return (
                    e +
                    (a
                        ? ' \u0436\u0438\u043b'
                        : ' \u0436\u0438\u043b\u0438\u0439\u043d')
                )
            default:
                return e
        }
    }
    l.defineLocale('me', {
        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
            '_'
        ),
        monthsShort:
            'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(
                '_'
            ),
        monthsParseExact: !0,
        weekdays:
            'nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota'.split(
                '_'
            ),
        weekdaysShort: 'ned._pon._uto._sri._\u010det._pet._sub.'.split('_'),
        weekdaysMin: 'ne_po_ut_sr_\u010de_pe_su'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY H:mm',
            LLLL: 'dddd, D. MMMM YYYY H:mm',
        },
        calendar: {
            sameDay: '[danas u] LT',
            nextDay: '[sjutra u] LT',
            nextWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[u] [nedjelju] [u] LT'
                    case 3:
                        return '[u] [srijedu] [u] LT'
                    case 6:
                        return '[u] [subotu] [u] LT'
                    case 1:
                    case 2:
                    case 4:
                    case 5:
                        return '[u] dddd [u] LT'
                }
            },
            lastDay: '[ju\u010de u] LT',
            lastWeek: function () {
                return [
                    '[pro\u0161le] [nedjelje] [u] LT',
                    '[pro\u0161log] [ponedjeljka] [u] LT',
                    '[pro\u0161log] [utorka] [u] LT',
                    '[pro\u0161le] [srijede] [u] LT',
                    '[pro\u0161log] [\u010detvrtka] [u] LT',
                    '[pro\u0161log] [petka] [u] LT',
                    '[pro\u0161le] [subote] [u] LT',
                ][this.day()]
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'za %s',
            past: 'prije %s',
            s: 'nekoliko sekundi',
            ss: gn.translate,
            m: gn.translate,
            mm: gn.translate,
            h: gn.translate,
            hh: gn.translate,
            d: 'dan',
            dd: gn.translate,
            M: 'mjesec',
            MM: gn.translate,
            y: 'godinu',
            yy: gn.translate,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 7 },
    }),
        l.defineLocale('mi', {
            months: 'Kohi-t\u0101te_Hui-tanguru_Pout\u016b-te-rangi_Paenga-wh\u0101wh\u0101_Haratua_Pipiri_H\u014dngoingoi_Here-turi-k\u014dk\u0101_Mahuru_Whiringa-\u0101-nuku_Whiringa-\u0101-rangi_Hakihea'.split(
                '_'
            ),
            monthsShort:
                'Kohi_Hui_Pou_Pae_Hara_Pipi_H\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(
                    '_'
                ),
            monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
            monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
            monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
            monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
            weekdays:
                'R\u0101tapu_Mane_T\u016brei_Wenerei_T\u0101ite_Paraire_H\u0101tarei'.split(
                    '_'
                ),
            weekdaysShort: 'Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101'.split('_'),
            weekdaysMin: 'Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY [i] HH:mm',
                LLLL: 'dddd, D MMMM YYYY [i] HH:mm',
            },
            calendar: {
                sameDay: '[i teie mahana, i] LT',
                nextDay: '[apopo i] LT',
                nextWeek: 'dddd [i] LT',
                lastDay: '[inanahi i] LT',
                lastWeek: 'dddd [whakamutunga i] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'i roto i %s',
                past: '%s i mua',
                s: 'te h\u0113kona ruarua',
                ss: '%d h\u0113kona',
                m: 'he meneti',
                mm: '%d meneti',
                h: 'te haora',
                hh: '%d haora',
                d: 'he ra',
                dd: '%d ra',
                M: 'he marama',
                MM: '%d marama',
                y: 'he tau',
                yy: '%d tau',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\xba/,
            ordinal: '%d\xba',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('mk', {
            months: '\u0458\u0430\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d\u0438_\u0458\u0443\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438'.split(
                '_'
            ),
            monthsShort:
                '\u0458\u0430\u043d_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a'.split(
                    '_'
                ),
            weekdays:
                '\u043d\u0435\u0434\u0435\u043b\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a_\u043f\u0435\u0442\u043e\u043a_\u0441\u0430\u0431\u043e\u0442\u0430'.split(
                    '_'
                ),
            weekdaysShort:
                '\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u0435_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u0430\u0431'.split(
                    '_'
                ),
            weekdaysMin:
                '\u043de_\u043fo_\u0432\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441a'.split(
                    '_'
                ),
            longDateFormat: {
                LT: 'H:mm',
                LTS: 'H:mm:ss',
                L: 'D.MM.YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY H:mm',
                LLLL: 'dddd, D MMMM YYYY H:mm',
            },
            calendar: {
                sameDay: '[\u0414\u0435\u043d\u0435\u0441 \u0432\u043e] LT',
                nextDay: '[\u0423\u0442\u0440\u0435 \u0432\u043e] LT',
                nextWeek: '[\u0412\u043e] dddd [\u0432\u043e] LT',
                lastDay: '[\u0412\u0447\u0435\u0440\u0430 \u0432\u043e] LT',
                lastWeek: function () {
                    switch (this.day()) {
                        case 0:
                        case 3:
                        case 6:
                            return '[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0430\u0442\u0430] dddd [\u0432\u043e] LT'
                        case 1:
                        case 2:
                        case 4:
                        case 5:
                            return '[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0438\u043e\u0442] dddd [\u0432\u043e] LT'
                    }
                },
                sameElse: 'L',
            },
            relativeTime: {
                future: '\u043f\u043e\u0441\u043b\u0435 %s',
                past: '\u043f\u0440\u0435\u0434 %s',
                s: '\u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0438',
                ss: '%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438',
                m: '\u043c\u0438\u043d\u0443\u0442\u0430',
                mm: '%d \u043c\u0438\u043d\u0443\u0442\u0438',
                h: '\u0447\u0430\u0441',
                hh: '%d \u0447\u0430\u0441\u0430',
                d: '\u0434\u0435\u043d',
                dd: '%d \u0434\u0435\u043d\u0430',
                M: '\u043c\u0435\u0441\u0435\u0446',
                MM: '%d \u043c\u0435\u0441\u0435\u0446\u0438',
                y: '\u0433\u043e\u0434\u0438\u043d\u0430',
                yy: '%d \u0433\u043e\u0434\u0438\u043d\u0438',
            },
            dayOfMonthOrdinalParse:
                /\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,
            ordinal: function (e) {
                var a = e % 10,
                    t = e % 100
                return 0 === e
                    ? e + '-\u0435\u0432'
                    : 0 === t
                      ? e + '-\u0435\u043d'
                      : 10 < t && t < 20
                        ? e + '-\u0442\u0438'
                        : 1 === a
                          ? e + '-\u0432\u0438'
                          : 2 === a
                            ? e + '-\u0440\u0438'
                            : 7 === a || 8 === a
                              ? e + '-\u043c\u0438'
                              : e + '-\u0442\u0438'
            },
            week: { dow: 1, doy: 7 },
        }),
        l.defineLocale('ml', {
            months: '\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f_\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f_\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d_\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d_\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48_\u0d13\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d_\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c_\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c_\u0d28\u0d35\u0d02\u0d2c\u0d7c_\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c'.split(
                '_'
            ),
            monthsShort:
                '\u0d1c\u0d28\u0d41._\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41._\u0d2e\u0d3e\u0d7c._\u0d0f\u0d2a\u0d4d\u0d30\u0d3f._\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48._\u0d13\u0d17._\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31._\u0d12\u0d15\u0d4d\u0d1f\u0d4b._\u0d28\u0d35\u0d02._\u0d21\u0d3f\u0d38\u0d02.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                '\u0d1e\u0d3e\u0d2f\u0d31\u0d3e\u0d34\u0d4d\u0d1a_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a_\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u0d3e\u0d34\u0d4d\u0d1a_\u0d2c\u0d41\u0d27\u0d28\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a_\u0d36\u0d28\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a'.split(
                    '_'
                ),
            weekdaysShort:
                '\u0d1e\u0d3e\u0d2f\u0d7c_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d7e_\u0d1a\u0d4a\u0d35\u0d4d\u0d35_\u0d2c\u0d41\u0d27\u0d7b_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f_\u0d36\u0d28\u0d3f'.split(
                    '_'
                ),
            weekdaysMin:
                '\u0d1e\u0d3e_\u0d24\u0d3f_\u0d1a\u0d4a_\u0d2c\u0d41_\u0d35\u0d4d\u0d2f\u0d3e_\u0d35\u0d46_\u0d36'.split(
                    '_'
                ),
            longDateFormat: {
                LT: 'A h:mm -\u0d28\u0d41',
                LTS: 'A h:mm:ss -\u0d28\u0d41',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY, A h:mm -\u0d28\u0d41',
                LLLL: 'dddd, D MMMM YYYY, A h:mm -\u0d28\u0d41',
            },
            calendar: {
                sameDay: '[\u0d07\u0d28\u0d4d\u0d28\u0d4d] LT',
                nextDay: '[\u0d28\u0d3e\u0d33\u0d46] LT',
                nextWeek: 'dddd, LT',
                lastDay: '[\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46] LT',
                lastWeek: '[\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e] dddd, LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '%s \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d',
                past: '%s \u0d2e\u0d41\u0d7b\u0d2a\u0d4d',
                s: '\u0d05\u0d7d\u0d2a \u0d28\u0d3f\u0d2e\u0d3f\u0d37\u0d19\u0d4d\u0d19\u0d7e',
                ss: '%d \u0d38\u0d46\u0d15\u0d4d\u0d15\u0d7b\u0d21\u0d4d',
                m: '\u0d12\u0d30\u0d41 \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d',
                mm: '%d \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d',
                h: '\u0d12\u0d30\u0d41 \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c',
                hh: '%d \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c',
                d: '\u0d12\u0d30\u0d41 \u0d26\u0d3f\u0d35\u0d38\u0d02',
                dd: '%d \u0d26\u0d3f\u0d35\u0d38\u0d02',
                M: '\u0d12\u0d30\u0d41 \u0d2e\u0d3e\u0d38\u0d02',
                MM: '%d \u0d2e\u0d3e\u0d38\u0d02',
                y: '\u0d12\u0d30\u0d41 \u0d35\u0d7c\u0d37\u0d02',
                yy: '%d \u0d35\u0d7c\u0d37\u0d02',
            },
            meridiemParse:
                /\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,
            meridiemHour: function (e, a) {
                return (
                    12 === e && (e = 0),
                    ('\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f' === a && 4 <= e) ||
                    '\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d' ===
                        a ||
                    '\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02' ===
                        a
                        ? e + 12
                        : e
                )
            },
            meridiem: function (e, a, t) {
                return e < 4
                    ? '\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f'
                    : e < 12
                      ? '\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46'
                      : e < 17
                        ? '\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d'
                        : e < 20
                          ? '\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02'
                          : '\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f'
            },
        }),
        l.defineLocale('mn', {
            months: '\u041d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0425\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u04e9\u0440\u04e9\u0432\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0417\u0443\u0440\u0433\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u043e\u043b\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u041d\u0430\u0439\u043c\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0415\u0441\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u043d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u0445\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440'.split(
                '_'
            ),
            monthsShort:
                '1 \u0441\u0430\u0440_2 \u0441\u0430\u0440_3 \u0441\u0430\u0440_4 \u0441\u0430\u0440_5 \u0441\u0430\u0440_6 \u0441\u0430\u0440_7 \u0441\u0430\u0440_8 \u0441\u0430\u0440_9 \u0441\u0430\u0440_10 \u0441\u0430\u0440_11 \u0441\u0430\u0440_12 \u0441\u0430\u0440'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                '\u041d\u044f\u043c_\u0414\u0430\u0432\u0430\u0430_\u041c\u044f\u0433\u043c\u0430\u0440_\u041b\u0445\u0430\u0433\u0432\u0430_\u041f\u04af\u0440\u044d\u0432_\u0411\u0430\u0430\u0441\u0430\u043d_\u0411\u044f\u043c\u0431\u0430'.split(
                    '_'
                ),
            weekdaysShort:
                '\u041d\u044f\u043c_\u0414\u0430\u0432_\u041c\u044f\u0433_\u041b\u0445\u0430_\u041f\u04af\u0440_\u0411\u0430\u0430_\u0411\u044f\u043c'.split(
                    '_'
                ),
            weekdaysMin:
                '\u041d\u044f_\u0414\u0430_\u041c\u044f_\u041b\u0445_\u041f\u04af_\u0411\u0430_\u0411\u044f'.split(
                    '_'
                ),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'YYYY-MM-DD',
                LL: 'YYYY \u043e\u043d\u044b MMMM\u044b\u043d D',
                LLL: 'YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm',
                LLLL: 'dddd, YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm',
            },
            meridiemParse: /\u04ae\u04e8|\u04ae\u0425/i,
            isPM: function (e) {
                return '\u04ae\u0425' === e
            },
            meridiem: function (e, a, t) {
                return e < 12 ? '\u04ae\u04e8' : '\u04ae\u0425'
            },
            calendar: {
                sameDay: '[\u04e8\u043d\u04e9\u04e9\u0434\u04e9\u0440] LT',
                nextDay: '[\u041c\u0430\u0440\u0433\u0430\u0430\u0448] LT',
                nextWeek: '[\u0418\u0440\u044d\u0445] dddd LT',
                lastDay: '[\u04e8\u0447\u0438\u0433\u0434\u04e9\u0440] LT',
                lastWeek:
                    '[\u04e8\u043d\u0433\u04e9\u0440\u0441\u04e9\u043d] dddd LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '%s \u0434\u0430\u0440\u0430\u0430',
                past: '%s \u04e9\u043c\u043d\u04e9',
                s: wn,
                ss: wn,
                m: wn,
                mm: wn,
                h: wn,
                hh: wn,
                d: wn,
                dd: wn,
                M: wn,
                MM: wn,
                y: wn,
                yy: wn,
            },
            dayOfMonthOrdinalParse: /\d{1,2} \u04e9\u0434\u04e9\u0440/,
            ordinal: function (e, a) {
                switch (a) {
                    case 'd':
                    case 'D':
                    case 'DDD':
                        return e + ' \u04e9\u0434\u04e9\u0440'
                    default:
                        return e
                }
            },
        })
    var vn = {
            1: '\u0967',
            2: '\u0968',
            3: '\u0969',
            4: '\u096a',
            5: '\u096b',
            6: '\u096c',
            7: '\u096d',
            8: '\u096e',
            9: '\u096f',
            0: '\u0966',
        },
        Sn = {
            '\u0967': '1',
            '\u0968': '2',
            '\u0969': '3',
            '\u096a': '4',
            '\u096b': '5',
            '\u096c': '6',
            '\u096d': '7',
            '\u096e': '8',
            '\u096f': '9',
            '\u0966': '0',
        }
    function Hn(e, a, t, s) {
        var n = ''
        if (a)
            switch (t) {
                case 's':
                    n =
                        '\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926'
                    break
                case 'ss':
                    n = '%d \u0938\u0947\u0915\u0902\u0926'
                    break
                case 'm':
                    n = '\u090f\u0915 \u092e\u093f\u0928\u093f\u091f'
                    break
                case 'mm':
                    n = '%d \u092e\u093f\u0928\u093f\u091f\u0947'
                    break
                case 'h':
                    n = '\u090f\u0915 \u0924\u093e\u0938'
                    break
                case 'hh':
                    n = '%d \u0924\u093e\u0938'
                    break
                case 'd':
                    n = '\u090f\u0915 \u0926\u093f\u0935\u0938'
                    break
                case 'dd':
                    n = '%d \u0926\u093f\u0935\u0938'
                    break
                case 'M':
                    n = '\u090f\u0915 \u092e\u0939\u093f\u0928\u093e'
                    break
                case 'MM':
                    n = '%d \u092e\u0939\u093f\u0928\u0947'
                    break
                case 'y':
                    n = '\u090f\u0915 \u0935\u0930\u094d\u0937'
                    break
                case 'yy':
                    n = '%d \u0935\u0930\u094d\u0937\u0947'
                    break
            }
        else
            switch (t) {
                case 's':
                    n =
                        '\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926\u093e\u0902'
                    break
                case 'ss':
                    n = '%d \u0938\u0947\u0915\u0902\u0926\u093e\u0902'
                    break
                case 'm':
                    n =
                        '\u090f\u0915\u093e \u092e\u093f\u0928\u093f\u091f\u093e'
                    break
                case 'mm':
                    n = '%d \u092e\u093f\u0928\u093f\u091f\u093e\u0902'
                    break
                case 'h':
                    n = '\u090f\u0915\u093e \u0924\u093e\u0938\u093e'
                    break
                case 'hh':
                    n = '%d \u0924\u093e\u0938\u093e\u0902'
                    break
                case 'd':
                    n = '\u090f\u0915\u093e \u0926\u093f\u0935\u0938\u093e'
                    break
                case 'dd':
                    n = '%d \u0926\u093f\u0935\u0938\u093e\u0902'
                    break
                case 'M':
                    n =
                        '\u090f\u0915\u093e \u092e\u0939\u093f\u0928\u094d\u092f\u093e'
                    break
                case 'MM':
                    n = '%d \u092e\u0939\u093f\u0928\u094d\u092f\u093e\u0902'
                    break
                case 'y':
                    n = '\u090f\u0915\u093e \u0935\u0930\u094d\u0937\u093e'
                    break
                case 'yy':
                    n = '%d \u0935\u0930\u094d\u0937\u093e\u0902'
                    break
            }
        return n.replace(/%d/i, e)
    }
    l.defineLocale('mr', {
        months: '\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u0948_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930'.split(
            '_'
        ),
        monthsShort:
            '\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a._\u090f\u092a\u094d\u0930\u093f._\u092e\u0947._\u091c\u0942\u0928._\u091c\u0941\u0932\u0948._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.'.split(
                '_'
            ),
        monthsParseExact: !0,
        weekdays:
            '\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0933\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930'.split(
                '_'
            ),
        weekdaysShort:
            '\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0933_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f'.split(
                '_'
            ),
        weekdaysMin:
            '\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936'.split(
                '_'
            ),
        longDateFormat: {
            LT: 'A h:mm \u0935\u093e\u091c\u0924\u093e',
            LTS: 'A h:mm:ss \u0935\u093e\u091c\u0924\u093e',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e',
            LLLL: 'dddd, D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e',
        },
        calendar: {
            sameDay: '[\u0906\u091c] LT',
            nextDay: '[\u0909\u0926\u094d\u092f\u093e] LT',
            nextWeek: 'dddd, LT',
            lastDay: '[\u0915\u093e\u0932] LT',
            lastWeek: '[\u092e\u093e\u0917\u0940\u0932] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s\u092e\u0927\u094d\u092f\u0947',
            past: '%s\u092a\u0942\u0930\u094d\u0935\u0940',
            s: Hn,
            ss: Hn,
            m: Hn,
            mm: Hn,
            h: Hn,
            hh: Hn,
            d: Hn,
            dd: Hn,
            M: Hn,
            MM: Hn,
            y: Hn,
            yy: Hn,
        },
        preparse: function (e) {
            return e.replace(
                /[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,
                function (e) {
                    return Sn[e]
                }
            )
        },
        postformat: function (e) {
            return e.replace(/\d/g, function (e) {
                return vn[e]
            })
        },
        meridiemParse:
            /\u0930\u093e\u0924\u094d\u0930\u0940|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940/,
        meridiemHour: function (e, a) {
            return (
                12 === e && (e = 0),
                '\u0930\u093e\u0924\u094d\u0930\u0940' === a
                    ? e < 4
                        ? e
                        : e + 12
                    : '\u0938\u0915\u093e\u0933\u0940' === a
                      ? e
                      : '\u0926\u0941\u092a\u093e\u0930\u0940' === a
                        ? 10 <= e
                            ? e
                            : e + 12
                        : '\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940' ===
                            a
                          ? e + 12
                          : void 0
            )
        },
        meridiem: function (e, a, t) {
            return e < 4
                ? '\u0930\u093e\u0924\u094d\u0930\u0940'
                : e < 10
                  ? '\u0938\u0915\u093e\u0933\u0940'
                  : e < 17
                    ? '\u0926\u0941\u092a\u093e\u0930\u0940'
                    : e < 20
                      ? '\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940'
                      : '\u0930\u093e\u0924\u094d\u0930\u0940'
        },
        week: { dow: 0, doy: 6 },
    }),
        l.defineLocale('ms-my', {
            months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
                '_'
            ),
            monthsShort:
                'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
            weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
            weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
            weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
            longDateFormat: {
                LT: 'HH.mm',
                LTS: 'HH.mm.ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY [pukul] HH.mm',
                LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
            },
            meridiemParse: /pagi|tengahari|petang|malam/,
            meridiemHour: function (e, a) {
                return (
                    12 === e && (e = 0),
                    'pagi' === a
                        ? e
                        : 'tengahari' === a
                          ? 11 <= e
                              ? e
                              : e + 12
                          : 'petang' === a || 'malam' === a
                            ? e + 12
                            : void 0
                )
            },
            meridiem: function (e, a, t) {
                return e < 11
                    ? 'pagi'
                    : e < 15
                      ? 'tengahari'
                      : e < 19
                        ? 'petang'
                        : 'malam'
            },
            calendar: {
                sameDay: '[Hari ini pukul] LT',
                nextDay: '[Esok pukul] LT',
                nextWeek: 'dddd [pukul] LT',
                lastDay: '[Kelmarin pukul] LT',
                lastWeek: 'dddd [lepas pukul] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'dalam %s',
                past: '%s yang lepas',
                s: 'beberapa saat',
                ss: '%d saat',
                m: 'seminit',
                mm: '%d minit',
                h: 'sejam',
                hh: '%d jam',
                d: 'sehari',
                dd: '%d hari',
                M: 'sebulan',
                MM: '%d bulan',
                y: 'setahun',
                yy: '%d tahun',
            },
            week: { dow: 1, doy: 7 },
        }),
        l.defineLocale('ms', {
            months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
                '_'
            ),
            monthsShort:
                'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
            weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
            weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
            weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
            longDateFormat: {
                LT: 'HH.mm',
                LTS: 'HH.mm.ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY [pukul] HH.mm',
                LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
            },
            meridiemParse: /pagi|tengahari|petang|malam/,
            meridiemHour: function (e, a) {
                return (
                    12 === e && (e = 0),
                    'pagi' === a
                        ? e
                        : 'tengahari' === a
                          ? 11 <= e
                              ? e
                              : e + 12
                          : 'petang' === a || 'malam' === a
                            ? e + 12
                            : void 0
                )
            },
            meridiem: function (e, a, t) {
                return e < 11
                    ? 'pagi'
                    : e < 15
                      ? 'tengahari'
                      : e < 19
                        ? 'petang'
                        : 'malam'
            },
            calendar: {
                sameDay: '[Hari ini pukul] LT',
                nextDay: '[Esok pukul] LT',
                nextWeek: 'dddd [pukul] LT',
                lastDay: '[Kelmarin pukul] LT',
                lastWeek: 'dddd [lepas pukul] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'dalam %s',
                past: '%s yang lepas',
                s: 'beberapa saat',
                ss: '%d saat',
                m: 'seminit',
                mm: '%d minit',
                h: 'sejam',
                hh: '%d jam',
                d: 'sehari',
                dd: '%d hari',
                M: 'sebulan',
                MM: '%d bulan',
                y: 'setahun',
                yy: '%d tahun',
            },
            week: { dow: 1, doy: 7 },
        }),
        l.defineLocale('mt', {
            months: 'Jannar_Frar_Marzu_April_Mejju_\u0120unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di\u010bembru'.split(
                '_'
            ),
            monthsShort:
                'Jan_Fra_Mar_Apr_Mej_\u0120un_Lul_Aww_Set_Ott_Nov_Di\u010b'.split(
                    '_'
                ),
            weekdays:
                'Il-\u0126add_It-Tnejn_It-Tlieta_L-Erbg\u0127a_Il-\u0126amis_Il-\u0120img\u0127a_Is-Sibt'.split(
                    '_'
                ),
            weekdaysShort: '\u0126ad_Tne_Tli_Erb_\u0126am_\u0120im_Sib'.split(
                '_'
            ),
            weekdaysMin: '\u0126a_Tn_Tl_Er_\u0126a_\u0120i_Si'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Illum fil-]LT',
                nextDay: '[G\u0127ada fil-]LT',
                nextWeek: 'dddd [fil-]LT',
                lastDay: '[Il-biera\u0127 fil-]LT',
                lastWeek: 'dddd [li g\u0127adda] [fil-]LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'f\u2019 %s',
                past: '%s ilu',
                s: 'ftit sekondi',
                ss: '%d sekondi',
                m: 'minuta',
                mm: '%d minuti',
                h: 'sieg\u0127a',
                hh: '%d sieg\u0127at',
                d: '\u0121urnata',
                dd: '%d \u0121ranet',
                M: 'xahar',
                MM: '%d xhur',
                y: 'sena',
                yy: '%d sni',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\xba/,
            ordinal: '%d\xba',
            week: { dow: 1, doy: 4 },
        })
    var bn = {
            1: '\u1041',
            2: '\u1042',
            3: '\u1043',
            4: '\u1044',
            5: '\u1045',
            6: '\u1046',
            7: '\u1047',
            8: '\u1048',
            9: '\u1049',
            0: '\u1040',
        },
        jn = {
            '\u1041': '1',
            '\u1042': '2',
            '\u1043': '3',
            '\u1044': '4',
            '\u1045': '5',
            '\u1046': '6',
            '\u1047': '7',
            '\u1048': '8',
            '\u1049': '9',
            '\u1040': '0',
        }
    l.defineLocale('my', {
        months: '\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e_\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e_\u1019\u1010\u103a_\u1027\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u1007\u1030\u101c\u102d\u102f\u1004\u103a_\u101e\u103c\u1002\u102f\u1010\u103a_\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c_\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c_\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c_\u1012\u102e\u1007\u1004\u103a\u1018\u102c'.split(
            '_'
        ),
        monthsShort:
            '\u1007\u1014\u103a_\u1016\u1031_\u1019\u1010\u103a_\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u101c\u102d\u102f\u1004\u103a_\u101e\u103c_\u1005\u1000\u103a_\u1021\u1031\u102c\u1000\u103a_\u1014\u102d\u102f_\u1012\u102e'.split(
                '_'
            ),
        weekdays:
            '\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031_\u1010\u1014\u1004\u103a\u1039\u101c\u102c_\u1021\u1004\u103a\u1039\u1002\u102b_\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038_\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038_\u101e\u1031\u102c\u1000\u103c\u102c_\u1005\u1014\u1031'.split(
                '_'
            ),
        weekdaysShort:
            '\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031'.split(
                '_'
            ),
        weekdaysMin:
            '\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031'.split(
                '_'
            ),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[\u101a\u1014\u1031.] LT [\u1019\u103e\u102c]',
            nextDay:
                '[\u1019\u1014\u1000\u103a\u1016\u103c\u1014\u103a] LT [\u1019\u103e\u102c]',
            nextWeek: 'dddd LT [\u1019\u103e\u102c]',
            lastDay: '[\u1019\u1014\u1031.\u1000] LT [\u1019\u103e\u102c]',
            lastWeek:
                '[\u1015\u103c\u102e\u1038\u1001\u1032\u1037\u101e\u1031\u102c] dddd LT [\u1019\u103e\u102c]',
            sameElse: 'L',
        },
        relativeTime: {
            future: '\u101c\u102c\u1019\u100a\u103a\u1037 %s \u1019\u103e\u102c',
            past: '\u101c\u103d\u1014\u103a\u1001\u1032\u1037\u101e\u1031\u102c %s \u1000',
            s: '\u1005\u1000\u1039\u1000\u1014\u103a.\u1021\u1014\u100a\u103a\u1038\u1004\u101a\u103a',
            ss: '%d \u1005\u1000\u1039\u1000\u1014\u1037\u103a',
            m: '\u1010\u1005\u103a\u1019\u102d\u1014\u1005\u103a',
            mm: '%d \u1019\u102d\u1014\u1005\u103a',
            h: '\u1010\u1005\u103a\u1014\u102c\u101b\u102e',
            hh: '%d \u1014\u102c\u101b\u102e',
            d: '\u1010\u1005\u103a\u101b\u1000\u103a',
            dd: '%d \u101b\u1000\u103a',
            M: '\u1010\u1005\u103a\u101c',
            MM: '%d \u101c',
            y: '\u1010\u1005\u103a\u1014\u103e\u1005\u103a',
            yy: '%d \u1014\u103e\u1005\u103a',
        },
        preparse: function (e) {
            return e.replace(
                /[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,
                function (e) {
                    return jn[e]
                }
            )
        },
        postformat: function (e) {
            return e.replace(/\d/g, function (e) {
                return bn[e]
            })
        },
        week: { dow: 1, doy: 4 },
    }),
        l.defineLocale('nb', {
            months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
                '_'
            ),
            monthsShort:
                'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                's\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag'.split(
                    '_'
                ),
            weekdaysShort: 's\xf8._ma._ti._on._to._fr._l\xf8.'.split('_'),
            weekdaysMin: 's\xf8_ma_ti_on_to_fr_l\xf8'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D. MMMM YYYY',
                LLL: 'D. MMMM YYYY [kl.] HH:mm',
                LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
            },
            calendar: {
                sameDay: '[i dag kl.] LT',
                nextDay: '[i morgen kl.] LT',
                nextWeek: 'dddd [kl.] LT',
                lastDay: '[i g\xe5r kl.] LT',
                lastWeek: '[forrige] dddd [kl.] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'om %s',
                past: '%s siden',
                s: 'noen sekunder',
                ss: '%d sekunder',
                m: 'ett minutt',
                mm: '%d minutter',
                h: 'en time',
                hh: '%d timer',
                d: 'en dag',
                dd: '%d dager',
                M: 'en m\xe5ned',
                MM: '%d m\xe5neder',
                y: 'ett \xe5r',
                yy: '%d \xe5r',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
        })
    var xn = {
            1: '\u0967',
            2: '\u0968',
            3: '\u0969',
            4: '\u096a',
            5: '\u096b',
            6: '\u096c',
            7: '\u096d',
            8: '\u096e',
            9: '\u096f',
            0: '\u0966',
        },
        On = {
            '\u0967': '1',
            '\u0968': '2',
            '\u0969': '3',
            '\u096a': '4',
            '\u096b': '5',
            '\u096c': '6',
            '\u096d': '7',
            '\u096e': '8',
            '\u096f': '9',
            '\u0966': '0',
        }
    l.defineLocale('ne', {
        months: '\u091c\u0928\u0935\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f\u0932_\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0937\u094d\u091f_\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930_\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930'.split(
            '_'
        ),
        monthsShort:
            '\u091c\u0928._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f._\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908._\u0905\u0917._\u0938\u0947\u092a\u094d\u091f._\u0905\u0915\u094d\u091f\u094b._\u0928\u094b\u092d\u0947._\u0921\u093f\u0938\u0947.'.split(
                '_'
            ),
        monthsParseExact: !0,
        weekdays:
            '\u0906\u0907\u0924\u092c\u093e\u0930_\u0938\u094b\u092e\u092c\u093e\u0930_\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930_\u092c\u0941\u0927\u092c\u093e\u0930_\u092c\u093f\u0939\u093f\u092c\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930_\u0936\u0928\u093f\u092c\u093e\u0930'.split(
                '_'
            ),
        weekdaysShort:
            '\u0906\u0907\u0924._\u0938\u094b\u092e._\u092e\u0919\u094d\u0917\u0932._\u092c\u0941\u0927._\u092c\u093f\u0939\u093f._\u0936\u0941\u0915\u094d\u0930._\u0936\u0928\u093f.'.split(
                '_'
            ),
        weekdaysMin:
            '\u0906._\u0938\u094b._\u092e\u0902._\u092c\u0941._\u092c\u093f._\u0936\u0941._\u0936.'.split(
                '_'
            ),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'A\u0915\u094b h:mm \u092c\u091c\u0947',
            LTS: 'A\u0915\u094b h:mm:ss \u092c\u091c\u0947',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947',
            LLLL: 'dddd, D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947',
        },
        preparse: function (e) {
            return e.replace(
                /[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,
                function (e) {
                    return On[e]
                }
            )
        },
        postformat: function (e) {
            return e.replace(/\d/g, function (e) {
                return xn[e]
            })
        },
        meridiemParse:
            /\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,
        meridiemHour: function (e, a) {
            return (
                12 === e && (e = 0),
                '\u0930\u093e\u0924\u093f' === a
                    ? e < 4
                        ? e
                        : e + 12
                    : '\u092c\u093f\u0939\u093e\u0928' === a
                      ? e
                      : '\u0926\u093f\u0909\u0901\u0938\u094b' === a
                        ? 10 <= e
                            ? e
                            : e + 12
                        : '\u0938\u093e\u0901\u091d' === a
                          ? e + 12
                          : void 0
            )
        },
        meridiem: function (e, a, t) {
            return e < 3
                ? '\u0930\u093e\u0924\u093f'
                : e < 12
                  ? '\u092c\u093f\u0939\u093e\u0928'
                  : e < 16
                    ? '\u0926\u093f\u0909\u0901\u0938\u094b'
                    : e < 20
                      ? '\u0938\u093e\u0901\u091d'
                      : '\u0930\u093e\u0924\u093f'
        },
        calendar: {
            sameDay: '[\u0906\u091c] LT',
            nextDay: '[\u092d\u094b\u0932\u093f] LT',
            nextWeek: '[\u0906\u0909\u0901\u0926\u094b] dddd[,] LT',
            lastDay: '[\u0939\u093f\u091c\u094b] LT',
            lastWeek: '[\u0917\u090f\u0915\u094b] dddd[,] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s\u092e\u093e',
            past: '%s \u0905\u0917\u093e\u0921\u093f',
            s: '\u0915\u0947\u0939\u0940 \u0915\u094d\u0937\u0923',
            ss: '%d \u0938\u0947\u0915\u0947\u0923\u094d\u0921',
            m: '\u090f\u0915 \u092e\u093f\u0928\u0947\u091f',
            mm: '%d \u092e\u093f\u0928\u0947\u091f',
            h: '\u090f\u0915 \u0918\u0923\u094d\u091f\u093e',
            hh: '%d \u0918\u0923\u094d\u091f\u093e',
            d: '\u090f\u0915 \u0926\u093f\u0928',
            dd: '%d \u0926\u093f\u0928',
            M: '\u090f\u0915 \u092e\u0939\u093f\u0928\u093e',
            MM: '%d \u092e\u0939\u093f\u0928\u093e',
            y: '\u090f\u0915 \u092c\u0930\u094d\u0937',
            yy: '%d \u092c\u0930\u094d\u0937',
        },
        week: { dow: 0, doy: 6 },
    })
    var Pn = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(
            '_'
        ),
        Wn = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
        An = [
            /^jan/i,
            /^feb/i,
            /^maart|mrt.?$/i,
            /^apr/i,
            /^mei$/i,
            /^jun[i.]?$/i,
            /^jul[i.]?$/i,
            /^aug/i,
            /^sep/i,
            /^okt/i,
            /^nov/i,
            /^dec/i,
        ],
        En =
            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i
    l.defineLocale('nl-be', {
        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
            '_'
        ),
        monthsShort: function (e, a) {
            return e ? (/-MMM-/.test(a) ? Wn[e.month()] : Pn[e.month()]) : Pn
        },
        monthsRegex: En,
        monthsShortRegex: En,
        monthsStrictRegex:
            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
        monthsShortStrictRegex:
            /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
        monthsParse: An,
        longMonthsParse: An,
        shortMonthsParse: An,
        weekdays:
            'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(
                '_'
            ),
        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[vandaag om] LT',
            nextDay: '[morgen om] LT',
            nextWeek: 'dddd [om] LT',
            lastDay: '[gisteren om] LT',
            lastWeek: '[afgelopen] dddd [om] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'over %s',
            past: '%s geleden',
            s: 'een paar seconden',
            ss: '%d seconden',
            m: '\xe9\xe9n minuut',
            mm: '%d minuten',
            h: '\xe9\xe9n uur',
            hh: '%d uur',
            d: '\xe9\xe9n dag',
            dd: '%d dagen',
            M: '\xe9\xe9n maand',
            MM: '%d maanden',
            y: '\xe9\xe9n jaar',
            yy: '%d jaar',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
        ordinal: function (e) {
            return e + (1 === e || 8 === e || 20 <= e ? 'ste' : 'de')
        },
        week: { dow: 1, doy: 4 },
    })
    var Fn = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(
            '_'
        ),
        zn = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
        Jn = [
            /^jan/i,
            /^feb/i,
            /^maart|mrt.?$/i,
            /^apr/i,
            /^mei$/i,
            /^jun[i.]?$/i,
            /^jul[i.]?$/i,
            /^aug/i,
            /^sep/i,
            /^okt/i,
            /^nov/i,
            /^dec/i,
        ],
        Nn =
            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i
    l.defineLocale('nl', {
        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
            '_'
        ),
        monthsShort: function (e, a) {
            return e ? (/-MMM-/.test(a) ? zn[e.month()] : Fn[e.month()]) : Fn
        },
        monthsRegex: Nn,
        monthsShortRegex: Nn,
        monthsStrictRegex:
            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
        monthsShortStrictRegex:
            /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
        monthsParse: Jn,
        longMonthsParse: Jn,
        shortMonthsParse: Jn,
        weekdays:
            'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(
                '_'
            ),
        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD-MM-YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[vandaag om] LT',
            nextDay: '[morgen om] LT',
            nextWeek: 'dddd [om] LT',
            lastDay: '[gisteren om] LT',
            lastWeek: '[afgelopen] dddd [om] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'over %s',
            past: '%s geleden',
            s: 'een paar seconden',
            ss: '%d seconden',
            m: '\xe9\xe9n minuut',
            mm: '%d minuten',
            h: '\xe9\xe9n uur',
            hh: '%d uur',
            d: '\xe9\xe9n dag',
            dd: '%d dagen',
            M: '\xe9\xe9n maand',
            MM: '%d maanden',
            y: '\xe9\xe9n jaar',
            yy: '%d jaar',
        },
        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
        ordinal: function (e) {
            return e + (1 === e || 8 === e || 20 <= e ? 'ste' : 'de')
        },
        week: { dow: 1, doy: 4 },
    }),
        l.defineLocale('nn', {
            months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
                '_'
            ),
            monthsShort:
                'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
            weekdays:
                'sundag_m\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split(
                    '_'
                ),
            weekdaysShort: 'sun_m\xe5n_tys_ons_tor_fre_lau'.split('_'),
            weekdaysMin: 'su_m\xe5_ty_on_to_fr_l\xf8'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D. MMMM YYYY',
                LLL: 'D. MMMM YYYY [kl.] H:mm',
                LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
            },
            calendar: {
                sameDay: '[I dag klokka] LT',
                nextDay: '[I morgon klokka] LT',
                nextWeek: 'dddd [klokka] LT',
                lastDay: '[I g\xe5r klokka] LT',
                lastWeek: '[F\xf8reg\xe5ande] dddd [klokka] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'om %s',
                past: '%s sidan',
                s: 'nokre sekund',
                ss: '%d sekund',
                m: 'eit minutt',
                mm: '%d minutt',
                h: 'ein time',
                hh: '%d timar',
                d: 'ein dag',
                dd: '%d dagar',
                M: 'ein m\xe5nad',
                MM: '%d m\xe5nader',
                y: 'eit \xe5r',
                yy: '%d \xe5r',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
        })
    var Rn = {
            1: '\u0a67',
            2: '\u0a68',
            3: '\u0a69',
            4: '\u0a6a',
            5: '\u0a6b',
            6: '\u0a6c',
            7: '\u0a6d',
            8: '\u0a6e',
            9: '\u0a6f',
            0: '\u0a66',
        },
        Cn = {
            '\u0a67': '1',
            '\u0a68': '2',
            '\u0a69': '3',
            '\u0a6a': '4',
            '\u0a6b': '5',
            '\u0a6c': '6',
            '\u0a6d': '7',
            '\u0a6e': '8',
            '\u0a6f': '9',
            '\u0a66': '0',
        }
    l.defineLocale('pa-in', {
        months: '\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30'.split(
            '_'
        ),
        monthsShort:
            '\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30'.split(
                '_'
            ),
        weekdays:
            '\u0a10\u0a24\u0a35\u0a3e\u0a30_\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30_\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30_\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30_\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30'.split(
                '_'
            ),
        weekdaysShort:
            '\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40'.split(
                '_'
            ),
        weekdaysMin:
            '\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40'.split(
                '_'
            ),
        longDateFormat: {
            LT: 'A h:mm \u0a35\u0a1c\u0a47',
            LTS: 'A h:mm:ss \u0a35\u0a1c\u0a47',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47',
            LLLL: 'dddd, D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47',
        },
        calendar: {
            sameDay: '[\u0a05\u0a1c] LT',
            nextDay: '[\u0a15\u0a32] LT',
            nextWeek: '[\u0a05\u0a17\u0a32\u0a3e] dddd, LT',
            lastDay: '[\u0a15\u0a32] LT',
            lastWeek: '[\u0a2a\u0a3f\u0a1b\u0a32\u0a47] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s \u0a35\u0a3f\u0a71\u0a1a',
            past: '%s \u0a2a\u0a3f\u0a1b\u0a32\u0a47',
            s: '\u0a15\u0a41\u0a1d \u0a38\u0a15\u0a3f\u0a70\u0a1f',
            ss: '%d \u0a38\u0a15\u0a3f\u0a70\u0a1f',
            m: '\u0a07\u0a15 \u0a2e\u0a3f\u0a70\u0a1f',
            mm: '%d \u0a2e\u0a3f\u0a70\u0a1f',
            h: '\u0a07\u0a71\u0a15 \u0a18\u0a70\u0a1f\u0a3e',
            hh: '%d \u0a18\u0a70\u0a1f\u0a47',
            d: '\u0a07\u0a71\u0a15 \u0a26\u0a3f\u0a28',
            dd: '%d \u0a26\u0a3f\u0a28',
            M: '\u0a07\u0a71\u0a15 \u0a2e\u0a39\u0a40\u0a28\u0a3e',
            MM: '%d \u0a2e\u0a39\u0a40\u0a28\u0a47',
            y: '\u0a07\u0a71\u0a15 \u0a38\u0a3e\u0a32',
            yy: '%d \u0a38\u0a3e\u0a32',
        },
        preparse: function (e) {
            return e.replace(
                /[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,
                function (e) {
                    return Cn[e]
                }
            )
        },
        postformat: function (e) {
            return e.replace(/\d/g, function (e) {
                return Rn[e]
            })
        },
        meridiemParse:
            /\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,
        meridiemHour: function (e, a) {
            return (
                12 === e && (e = 0),
                '\u0a30\u0a3e\u0a24' === a
                    ? e < 4
                        ? e
                        : e + 12
                    : '\u0a38\u0a35\u0a47\u0a30' === a
                      ? e
                      : '\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30' === a
                        ? 10 <= e
                            ? e
                            : e + 12
                        : '\u0a38\u0a3c\u0a3e\u0a2e' === a
                          ? e + 12
                          : void 0
            )
        },
        meridiem: function (e, a, t) {
            return e < 4
                ? '\u0a30\u0a3e\u0a24'
                : e < 10
                  ? '\u0a38\u0a35\u0a47\u0a30'
                  : e < 17
                    ? '\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30'
                    : e < 20
                      ? '\u0a38\u0a3c\u0a3e\u0a2e'
                      : '\u0a30\u0a3e\u0a24'
        },
        week: { dow: 0, doy: 6 },
    })
    var In =
            'stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144'.split(
                '_'
            ),
        Un =
            'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia'.split(
                '_'
            )
    function Gn(e) {
        return e % 10 < 5 && 1 < e % 10 && ~~(e / 10) % 10 != 1
    }
    function Vn(e, a, t) {
        var s = e + ' '
        switch (t) {
            case 'ss':
                return s + (Gn(e) ? 'sekundy' : 'sekund')
            case 'm':
                return a ? 'minuta' : 'minut\u0119'
            case 'mm':
                return s + (Gn(e) ? 'minuty' : 'minut')
            case 'h':
                return a ? 'godzina' : 'godzin\u0119'
            case 'hh':
                return s + (Gn(e) ? 'godziny' : 'godzin')
            case 'MM':
                return s + (Gn(e) ? 'miesi\u0105ce' : 'miesi\u0119cy')
            case 'yy':
                return s + (Gn(e) ? 'lata' : 'lat')
        }
    }
    function Kn(e, a, t) {
        var s = ' '
        return (
            (20 <= e % 100 || (100 <= e && e % 100 == 0)) && (s = ' de '),
            e +
                s +
                {
                    ss: 'secunde',
                    mm: 'minute',
                    hh: 'ore',
                    dd: 'zile',
                    MM: 'luni',
                    yy: 'ani',
                }[t]
        )
    }
    function Zn(e, a, t) {
        var s, n
        return 'm' === t
            ? a
                ? '\u043c\u0438\u043d\u0443\u0442\u0430'
                : '\u043c\u0438\u043d\u0443\u0442\u0443'
            : e +
                  ' ' +
                  ((s = +e),
                  (n = {
                      ss: a
                          ? '\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434'
                          : '\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434',
                      mm: a
                          ? '\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442'
                          : '\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442',
                      hh: '\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432',
                      dd: '\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439',
                      MM: '\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432',
                      yy: '\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442',
                  }[t].split('_')),
                  s % 10 == 1 && s % 100 != 11
                      ? n[0]
                      : 2 <= s % 10 &&
                          s % 10 <= 4 &&
                          (s % 100 < 10 || 20 <= s % 100)
                        ? n[1]
                        : n[2])
    }
    l.defineLocale('pl', {
        months: function (e, a) {
            return e
                ? '' === a
                    ? '(' + Un[e.month()] + '|' + In[e.month()] + ')'
                    : /D MMMM/.test(a)
                      ? Un[e.month()]
                      : In[e.month()]
                : In
        },
        monthsShort:
            'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru'.split('_'),
        weekdays:
            'niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota'.split(
                '_'
            ),
        weekdaysShort: 'ndz_pon_wt_\u015br_czw_pt_sob'.split('_'),
        weekdaysMin: 'Nd_Pn_Wt_\u015ar_Cz_Pt_So'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[Dzi\u015b o] LT',
            nextDay: '[Jutro o] LT',
            nextWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[W niedziel\u0119 o] LT'
                    case 2:
                        return '[We wtorek o] LT'
                    case 3:
                        return '[W \u015brod\u0119 o] LT'
                    case 6:
                        return '[W sobot\u0119 o] LT'
                    default:
                        return '[W] dddd [o] LT'
                }
            },
            lastDay: '[Wczoraj o] LT',
            lastWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[W zesz\u0142\u0105 niedziel\u0119 o] LT'
                    case 3:
                        return '[W zesz\u0142\u0105 \u015brod\u0119 o] LT'
                    case 6:
                        return '[W zesz\u0142\u0105 sobot\u0119 o] LT'
                    default:
                        return '[W zesz\u0142y] dddd [o] LT'
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'za %s',
            past: '%s temu',
            s: 'kilka sekund',
            ss: Vn,
            m: Vn,
            mm: Vn,
            h: Vn,
            hh: Vn,
            d: '1 dzie\u0144',
            dd: '%d dni',
            M: 'miesi\u0105c',
            MM: Vn,
            y: 'rok',
            yy: Vn,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }),
        l.defineLocale('pt-br', {
            months: 'Janeiro_Fevereiro_Mar\xe7o_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split(
                '_'
            ),
            monthsShort:
                'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
            weekdays:
                'Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado'.split(
                    '_'
                ),
            weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b'.split('_'),
            weekdaysMin: 'Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D [de] MMMM [de] YYYY',
                LLL: 'D [de] MMMM [de] YYYY [\xe0s] HH:mm',
                LLLL: 'dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm',
            },
            calendar: {
                sameDay: '[Hoje \xe0s] LT',
                nextDay: '[Amanh\xe3 \xe0s] LT',
                nextWeek: 'dddd [\xe0s] LT',
                lastDay: '[Ontem \xe0s] LT',
                lastWeek: function () {
                    return 0 === this.day() || 6 === this.day()
                        ? '[\xdaltimo] dddd [\xe0s] LT'
                        : '[\xdaltima] dddd [\xe0s] LT'
                },
                sameElse: 'L',
            },
            relativeTime: {
                future: 'em %s',
                past: 'h\xe1 %s',
                s: 'poucos segundos',
                ss: '%d segundos',
                m: 'um minuto',
                mm: '%d minutos',
                h: 'uma hora',
                hh: '%d horas',
                d: 'um dia',
                dd: '%d dias',
                M: 'um m\xeas',
                MM: '%d meses',
                y: 'um ano',
                yy: '%d anos',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\xba/,
            ordinal: '%d\xba',
        }),
        l.defineLocale('pt', {
            months: 'Janeiro_Fevereiro_Mar\xe7o_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split(
                '_'
            ),
            monthsShort:
                'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
            weekdays:
                'Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado'.split(
                    '_'
                ),
            weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b'.split('_'),
            weekdaysMin: 'Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D [de] MMMM [de] YYYY',
                LLL: 'D [de] MMMM [de] YYYY HH:mm',
                LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Hoje \xe0s] LT',
                nextDay: '[Amanh\xe3 \xe0s] LT',
                nextWeek: 'dddd [\xe0s] LT',
                lastDay: '[Ontem \xe0s] LT',
                lastWeek: function () {
                    return 0 === this.day() || 6 === this.day()
                        ? '[\xdaltimo] dddd [\xe0s] LT'
                        : '[\xdaltima] dddd [\xe0s] LT'
                },
                sameElse: 'L',
            },
            relativeTime: {
                future: 'em %s',
                past: 'h\xe1 %s',
                s: 'segundos',
                ss: '%d segundos',
                m: 'um minuto',
                mm: '%d minutos',
                h: 'uma hora',
                hh: '%d horas',
                d: 'um dia',
                dd: '%d dias',
                M: 'um m\xeas',
                MM: '%d meses',
                y: 'um ano',
                yy: '%d anos',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\xba/,
            ordinal: '%d\xba',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('ro', {
            months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(
                '_'
            ),
            monthsShort:
                'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'duminic\u0103_luni_mar\u021bi_miercuri_joi_vineri_s\xe2mb\u0103t\u0103'.split(
                    '_'
                ),
            weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_S\xe2m'.split('_'),
            weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_S\xe2'.split('_'),
            longDateFormat: {
                LT: 'H:mm',
                LTS: 'H:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY H:mm',
                LLLL: 'dddd, D MMMM YYYY H:mm',
            },
            calendar: {
                sameDay: '[azi la] LT',
                nextDay: '[m\xe2ine la] LT',
                nextWeek: 'dddd [la] LT',
                lastDay: '[ieri la] LT',
                lastWeek: '[fosta] dddd [la] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'peste %s',
                past: '%s \xeen urm\u0103',
                s: 'c\xe2teva secunde',
                ss: Kn,
                m: 'un minut',
                mm: Kn,
                h: 'o or\u0103',
                hh: Kn,
                d: 'o zi',
                dd: Kn,
                M: 'o lun\u0103',
                MM: Kn,
                y: 'un an',
                yy: Kn,
            },
            week: { dow: 1, doy: 7 },
        })
    var $n = [
        /^\u044f\u043d\u0432/i,
        /^\u0444\u0435\u0432/i,
        /^\u043c\u0430\u0440/i,
        /^\u0430\u043f\u0440/i,
        /^\u043c\u0430[\u0439\u044f]/i,
        /^\u0438\u044e\u043d/i,
        /^\u0438\u044e\u043b/i,
        /^\u0430\u0432\u0433/i,
        /^\u0441\u0435\u043d/i,
        /^\u043e\u043a\u0442/i,
        /^\u043d\u043e\u044f/i,
        /^\u0434\u0435\u043a/i,
    ]
    l.defineLocale('ru', {
        months: {
            format: '\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f'.split(
                '_'
            ),
            standalone:
                '\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c'.split(
                    '_'
                ),
        },
        monthsShort: {
            format: '\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.'.split(
                '_'
            ),
            standalone:
                '\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.'.split(
                    '_'
                ),
        },
        weekdays: {
            standalone:
                '\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430'.split(
                    '_'
                ),
            format: '\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443'.split(
                '_'
            ),
            isFormat:
                /\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/,
        },
        weekdaysShort:
            '\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431'.split(
                '_'
            ),
        weekdaysMin:
            '\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431'.split(
                '_'
            ),
        monthsParse: $n,
        longMonthsParse: $n,
        shortMonthsParse: $n,
        monthsRegex:
            /^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,
        monthsShortRegex:
            /^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,
        monthsStrictRegex:
            /^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,
        monthsShortStrictRegex:
            /^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY \u0433.',
            LLL: 'D MMMM YYYY \u0433., H:mm',
            LLLL: 'dddd, D MMMM YYYY \u0433., H:mm',
        },
        calendar: {
            sameDay: '[\u0421\u0435\u0433\u043e\u0434\u043d\u044f, \u0432] LT',
            nextDay: '[\u0417\u0430\u0432\u0442\u0440\u0430, \u0432] LT',
            lastDay: '[\u0412\u0447\u0435\u0440\u0430, \u0432] LT',
            nextWeek: function (e) {
                if (e.week() === this.week())
                    return 2 === this.day()
                        ? '[\u0412\u043e] dddd, [\u0432] LT'
                        : '[\u0412] dddd, [\u0432] LT'
                switch (this.day()) {
                    case 0:
                        return '[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435] dddd, [\u0432] LT'
                    case 1:
                    case 2:
                    case 4:
                        return '[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439] dddd, [\u0432] LT'
                    case 3:
                    case 5:
                    case 6:
                        return '[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e] dddd, [\u0432] LT'
                }
            },
            lastWeek: function (e) {
                if (e.week() === this.week())
                    return 2 === this.day()
                        ? '[\u0412\u043e] dddd, [\u0432] LT'
                        : '[\u0412] dddd, [\u0432] LT'
                switch (this.day()) {
                    case 0:
                        return '[\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0435] dddd, [\u0432] LT'
                    case 1:
                    case 2:
                    case 4:
                        return '[\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0439] dddd, [\u0432] LT'
                    case 3:
                    case 5:
                    case 6:
                        return '[\u0412 \u043f\u0440\u043e\u0448\u043b\u0443\u044e] dddd, [\u0432] LT'
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: '\u0447\u0435\u0440\u0435\u0437 %s',
            past: '%s \u043d\u0430\u0437\u0430\u0434',
            s: '\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434',
            ss: Zn,
            m: Zn,
            mm: Zn,
            h: '\u0447\u0430\u0441',
            hh: Zn,
            d: '\u0434\u0435\u043d\u044c',
            dd: Zn,
            M: '\u043c\u0435\u0441\u044f\u0446',
            MM: Zn,
            y: '\u0433\u043e\u0434',
            yy: Zn,
        },
        meridiemParse:
            /\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,
        isPM: function (e) {
            return /^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(
                e
            )
        },
        meridiem: function (e, a, t) {
            return e < 4
                ? '\u043d\u043e\u0447\u0438'
                : e < 12
                  ? '\u0443\u0442\u0440\u0430'
                  : e < 17
                    ? '\u0434\u043d\u044f'
                    : '\u0432\u0435\u0447\u0435\u0440\u0430'
        },
        dayOfMonthOrdinalParse: /\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,
        ordinal: function (e, a) {
            switch (a) {
                case 'M':
                case 'd':
                case 'DDD':
                    return e + '-\u0439'
                case 'D':
                    return e + '-\u0433\u043e'
                case 'w':
                case 'W':
                    return e + '-\u044f'
                default:
                    return e
            }
        },
        week: { dow: 1, doy: 4 },
    })
    var Bn = [
            '\u062c\u0646\u0648\u0631\u064a',
            '\u0641\u064a\u0628\u0631\u0648\u0631\u064a',
            '\u0645\u0627\u0631\u0686',
            '\u0627\u067e\u0631\u064a\u0644',
            '\u0645\u0626\u064a',
            '\u062c\u0648\u0646',
            '\u062c\u0648\u0644\u0627\u0621\u0650',
            '\u0622\u06af\u0633\u067d',
            '\u0633\u064a\u067e\u067d\u0645\u0628\u0631',
            '\u0622\u06aa\u067d\u0648\u0628\u0631',
            '\u0646\u0648\u0645\u0628\u0631',
            '\u068a\u0633\u0645\u0628\u0631',
        ],
        qn = [
            '\u0622\u0686\u0631',
            '\u0633\u0648\u0645\u0631',
            '\u0627\u06b1\u0627\u0631\u0648',
            '\u0627\u0631\u0628\u0639',
            '\u062e\u0645\u064a\u0633',
            '\u062c\u0645\u0639',
            '\u0687\u0646\u0687\u0631',
        ]
    l.defineLocale('sd', {
        months: Bn,
        monthsShort: Bn,
        weekdays: qn,
        weekdaysShort: qn,
        weekdaysMin: qn,
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd\u060c D MMMM YYYY HH:mm',
        },
        meridiemParse: /\u0635\u0628\u062d|\u0634\u0627\u0645/,
        isPM: function (e) {
            return '\u0634\u0627\u0645' === e
        },
        meridiem: function (e, a, t) {
            return e < 12 ? '\u0635\u0628\u062d' : '\u0634\u0627\u0645'
        },
        calendar: {
            sameDay: '[\u0627\u0684] LT',
            nextDay: '[\u0633\u0680\u0627\u06bb\u064a] LT',
            nextWeek:
                'dddd [\u0627\u06b3\u064a\u0646 \u0647\u0641\u062a\u064a \u062a\u064a] LT',
            lastDay: '[\u06aa\u0627\u0644\u0647\u0647] LT',
            lastWeek:
                '[\u06af\u0632\u0631\u064a\u0644 \u0647\u0641\u062a\u064a] dddd [\u062a\u064a] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s \u067e\u0648\u0621',
            past: '%s \u0627\u06b3',
            s: '\u0686\u0646\u062f \u0633\u064a\u06aa\u0646\u068a',
            ss: '%d \u0633\u064a\u06aa\u0646\u068a',
            m: '\u0647\u06aa \u0645\u0646\u067d',
            mm: '%d \u0645\u0646\u067d',
            h: '\u0647\u06aa \u06aa\u0644\u0627\u06aa',
            hh: '%d \u06aa\u0644\u0627\u06aa',
            d: '\u0647\u06aa \u068f\u064a\u0646\u0647\u0646',
            dd: '%d \u068f\u064a\u0646\u0647\u0646',
            M: '\u0647\u06aa \u0645\u0647\u064a\u0646\u0648',
            MM: '%d \u0645\u0647\u064a\u0646\u0627',
            y: '\u0647\u06aa \u0633\u0627\u0644',
            yy: '%d \u0633\u0627\u0644',
        },
        preparse: function (e) {
            return e.replace(/\u060c/g, ',')
        },
        postformat: function (e) {
            return e.replace(/,/g, '\u060c')
        },
        week: { dow: 1, doy: 4 },
    }),
        l.defineLocale('se', {
            months: 'o\u0111\u0111ajagem\xe1nnu_guovvam\xe1nnu_njuk\u010dam\xe1nnu_cuo\u014bom\xe1nnu_miessem\xe1nnu_geassem\xe1nnu_suoidnem\xe1nnu_borgem\xe1nnu_\u010dak\u010dam\xe1nnu_golggotm\xe1nnu_sk\xe1bmam\xe1nnu_juovlam\xe1nnu'.split(
                '_'
            ),
            monthsShort:
                'o\u0111\u0111j_guov_njuk_cuo_mies_geas_suoi_borg_\u010dak\u010d_golg_sk\xe1b_juov'.split(
                    '_'
                ),
            weekdays:
                'sotnabeaivi_vuoss\xe1rga_ma\u014b\u014beb\xe1rga_gaskavahkku_duorastat_bearjadat_l\xe1vvardat'.split(
                    '_'
                ),
            weekdaysShort: 'sotn_vuos_ma\u014b_gask_duor_bear_l\xe1v'.split(
                '_'
            ),
            weekdaysMin: 's_v_m_g_d_b_L'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'MMMM D. [b.] YYYY',
                LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',
                LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',
            },
            calendar: {
                sameDay: '[otne ti] LT',
                nextDay: '[ihttin ti] LT',
                nextWeek: 'dddd [ti] LT',
                lastDay: '[ikte ti] LT',
                lastWeek: '[ovddit] dddd [ti] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '%s gea\u017ees',
                past: 'ma\u014bit %s',
                s: 'moadde sekunddat',
                ss: '%d sekunddat',
                m: 'okta minuhta',
                mm: '%d minuhtat',
                h: 'okta diimmu',
                hh: '%d diimmut',
                d: 'okta beaivi',
                dd: '%d beaivvit',
                M: 'okta m\xe1nnu',
                MM: '%d m\xe1nut',
                y: 'okta jahki',
                yy: '%d jagit',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('si', {
            months: '\u0da2\u0db1\u0dc0\u0dcf\u0dbb\u0dd2_\u0db4\u0dd9\u0db6\u0dbb\u0dc0\u0dcf\u0dbb\u0dd2_\u0db8\u0dcf\u0dbb\u0dca\u0dad\u0dd4_\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd\u0dc3\u0dca\u0dad\u0dd4_\u0dc3\u0dd0\u0db4\u0dca\u0dad\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0d94\u0d9a\u0dca\u0dad\u0ddd\u0db6\u0dbb\u0dca_\u0db1\u0ddc\u0dc0\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0daf\u0dd9\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca'.split(
                '_'
            ),
            monthsShort:
                '\u0da2\u0db1_\u0db4\u0dd9\u0db6_\u0db8\u0dcf\u0dbb\u0dca_\u0d85\u0db4\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd_\u0dc3\u0dd0\u0db4\u0dca_\u0d94\u0d9a\u0dca_\u0db1\u0ddc\u0dc0\u0dd0_\u0daf\u0dd9\u0dc3\u0dd0'.split(
                    '_'
                ),
            weekdays:
                '\u0d89\u0dbb\u0dd2\u0daf\u0dcf_\u0dc3\u0db3\u0dd4\u0daf\u0dcf_\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf_\u0db6\u0daf\u0dcf\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf_\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf_\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf'.split(
                    '_'
                ),
            weekdaysShort:
                '\u0d89\u0dbb\u0dd2_\u0dc3\u0db3\u0dd4_\u0d85\u0d9f_\u0db6\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4_\u0dc3\u0dd2\u0d9a\u0dd4_\u0dc3\u0dd9\u0db1'.split(
                    '_'
                ),
            weekdaysMin:
                '\u0d89_\u0dc3_\u0d85_\u0db6_\u0db6\u0dca\u200d\u0dbb_\u0dc3\u0dd2_\u0dc3\u0dd9'.split(
                    '_'
                ),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'a h:mm',
                LTS: 'a h:mm:ss',
                L: 'YYYY/MM/DD',
                LL: 'YYYY MMMM D',
                LLL: 'YYYY MMMM D, a h:mm',
                LLLL: 'YYYY MMMM D [\u0dc0\u0dd0\u0db1\u0dd2] dddd, a h:mm:ss',
            },
            calendar: {
                sameDay: '[\u0d85\u0daf] LT[\u0da7]',
                nextDay: '[\u0dc4\u0dd9\u0da7] LT[\u0da7]',
                nextWeek: 'dddd LT[\u0da7]',
                lastDay: '[\u0d8a\u0dba\u0dda] LT[\u0da7]',
                lastWeek:
                    '[\u0db4\u0dc3\u0dd4\u0d9c\u0dd2\u0dba] dddd LT[\u0da7]',
                sameElse: 'L',
            },
            relativeTime: {
                future: '%s\u0d9a\u0dd2\u0db1\u0dca',
                past: '%s\u0d9a\u0da7 \u0db4\u0dd9\u0dbb',
                s: '\u0dad\u0dad\u0dca\u0db4\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba',
                ss: '\u0dad\u0dad\u0dca\u0db4\u0dbb %d',
                m: '\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4\u0dc0',
                mm: '\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4 %d',
                h: '\u0db4\u0dd0\u0dba',
                hh: '\u0db4\u0dd0\u0dba %d',
                d: '\u0daf\u0dd2\u0db1\u0dba',
                dd: '\u0daf\u0dd2\u0db1 %d',
                M: '\u0db8\u0dcf\u0dc3\u0dba',
                MM: '\u0db8\u0dcf\u0dc3 %d',
                y: '\u0dc0\u0dc3\u0dbb',
                yy: '\u0dc0\u0dc3\u0dbb %d',
            },
            dayOfMonthOrdinalParse: /\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,
            ordinal: function (e) {
                return e + ' \u0dc0\u0dd0\u0db1\u0dd2'
            },
            meridiemParse:
                /\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,
            isPM: function (e) {
                return (
                    '\u0db4.\u0dc0.' === e ||
                    '\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4' === e
                )
            },
            meridiem: function (e, a, t) {
                return 11 < e
                    ? t
                        ? '\u0db4.\u0dc0.'
                        : '\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4'
                    : t
                      ? '\u0db4\u0dd9.\u0dc0.'
                      : '\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4'
            },
        })
    var Qn =
            'janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december'.split(
                '_'
            ),
        Xn = 'jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec'.split(
            '_'
        )
    function ed(e) {
        return 1 < e && e < 5
    }
    function ad(e, a, t, s) {
        var n = e + ' '
        switch (t) {
            case 's':
                return a || s ? 'p\xe1r sek\xfand' : 'p\xe1r sekundami'
            case 'ss':
                return a || s
                    ? n + (ed(e) ? 'sekundy' : 'sek\xfand')
                    : n + 'sekundami'
                break
            case 'm':
                return a ? 'min\xfata' : s ? 'min\xfatu' : 'min\xfatou'
            case 'mm':
                return a || s
                    ? n + (ed(e) ? 'min\xfaty' : 'min\xfat')
                    : n + 'min\xfatami'
                break
            case 'h':
                return a ? 'hodina' : s ? 'hodinu' : 'hodinou'
            case 'hh':
                return a || s
                    ? n + (ed(e) ? 'hodiny' : 'hod\xedn')
                    : n + 'hodinami'
                break
            case 'd':
                return a || s ? 'de\u0148' : 'd\u0148om'
            case 'dd':
                return a || s
                    ? n + (ed(e) ? 'dni' : 'dn\xed')
                    : n + 'd\u0148ami'
                break
            case 'M':
                return a || s ? 'mesiac' : 'mesiacom'
            case 'MM':
                return a || s
                    ? n + (ed(e) ? 'mesiace' : 'mesiacov')
                    : n + 'mesiacmi'
                break
            case 'y':
                return a || s ? 'rok' : 'rokom'
            case 'yy':
                return a || s ? n + (ed(e) ? 'roky' : 'rokov') : n + 'rokmi'
                break
        }
    }
    function td(e, a, t, s) {
        var n = e + ' '
        switch (t) {
            case 's':
                return a || s ? 'nekaj sekund' : 'nekaj sekundami'
            case 'ss':
                return (n +=
                    1 === e
                        ? a
                            ? 'sekundo'
                            : 'sekundi'
                        : 2 === e
                          ? a || s
                              ? 'sekundi'
                              : 'sekundah'
                          : e < 5
                            ? a || s
                                ? 'sekunde'
                                : 'sekundah'
                            : 'sekund')
            case 'm':
                return a ? 'ena minuta' : 'eno minuto'
            case 'mm':
                return (n +=
                    1 === e
                        ? a
                            ? 'minuta'
                            : 'minuto'
                        : 2 === e
                          ? a || s
                              ? 'minuti'
                              : 'minutama'
                          : e < 5
                            ? a || s
                                ? 'minute'
                                : 'minutami'
                            : a || s
                              ? 'minut'
                              : 'minutami')
            case 'h':
                return a ? 'ena ura' : 'eno uro'
            case 'hh':
                return (n +=
                    1 === e
                        ? a
                            ? 'ura'
                            : 'uro'
                        : 2 === e
                          ? a || s
                              ? 'uri'
                              : 'urama'
                          : e < 5
                            ? a || s
                                ? 'ure'
                                : 'urami'
                            : a || s
                              ? 'ur'
                              : 'urami')
            case 'd':
                return a || s ? 'en dan' : 'enim dnem'
            case 'dd':
                return (n +=
                    1 === e
                        ? a || s
                            ? 'dan'
                            : 'dnem'
                        : 2 === e
                          ? a || s
                              ? 'dni'
                              : 'dnevoma'
                          : a || s
                            ? 'dni'
                            : 'dnevi')
            case 'M':
                return a || s ? 'en mesec' : 'enim mesecem'
            case 'MM':
                return (n +=
                    1 === e
                        ? a || s
                            ? 'mesec'
                            : 'mesecem'
                        : 2 === e
                          ? a || s
                              ? 'meseca'
                              : 'mesecema'
                          : e < 5
                            ? a || s
                                ? 'mesece'
                                : 'meseci'
                            : a || s
                              ? 'mesecev'
                              : 'meseci')
            case 'y':
                return a || s ? 'eno leto' : 'enim letom'
            case 'yy':
                return (n +=
                    1 === e
                        ? a || s
                            ? 'leto'
                            : 'letom'
                        : 2 === e
                          ? a || s
                              ? 'leti'
                              : 'letoma'
                          : e < 5
                            ? a || s
                                ? 'leta'
                                : 'leti'
                            : a || s
                              ? 'let'
                              : 'leti')
        }
    }
    l.defineLocale('sk', {
        months: Qn,
        monthsShort: Xn,
        weekdays:
            'nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota'.split(
                '_'
            ),
        weekdaysShort: 'ne_po_ut_st_\u0161t_pi_so'.split('_'),
        weekdaysMin: 'ne_po_ut_st_\u0161t_pi_so'.split('_'),
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY H:mm',
            LLLL: 'dddd D. MMMM YYYY H:mm',
        },
        calendar: {
            sameDay: '[dnes o] LT',
            nextDay: '[zajtra o] LT',
            nextWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[v nede\u013eu o] LT'
                    case 1:
                    case 2:
                        return '[v] dddd [o] LT'
                    case 3:
                        return '[v stredu o] LT'
                    case 4:
                        return '[vo \u0161tvrtok o] LT'
                    case 5:
                        return '[v piatok o] LT'
                    case 6:
                        return '[v sobotu o] LT'
                }
            },
            lastDay: '[v\u010dera o] LT',
            lastWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[minul\xfa nede\u013eu o] LT'
                    case 1:
                    case 2:
                        return '[minul\xfd] dddd [o] LT'
                    case 3:
                        return '[minul\xfa stredu o] LT'
                    case 4:
                    case 5:
                        return '[minul\xfd] dddd [o] LT'
                    case 6:
                        return '[minul\xfa sobotu o] LT'
                }
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'za %s',
            past: 'pred %s',
            s: ad,
            ss: ad,
            m: ad,
            mm: ad,
            h: ad,
            hh: ad,
            d: ad,
            dd: ad,
            M: ad,
            MM: ad,
            y: ad,
            yy: ad,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    }),
        l.defineLocale('sl', {
            months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(
                '_'
            ),
            monthsShort:
                'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota'.split(
                    '_'
                ),
            weekdaysShort: 'ned._pon._tor._sre._\u010det._pet._sob.'.split('_'),
            weekdaysMin: 'ne_po_to_sr_\u010de_pe_so'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'H:mm',
                LTS: 'H:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D. MMMM YYYY',
                LLL: 'D. MMMM YYYY H:mm',
                LLLL: 'dddd, D. MMMM YYYY H:mm',
            },
            calendar: {
                sameDay: '[danes ob] LT',
                nextDay: '[jutri ob] LT',
                nextWeek: function () {
                    switch (this.day()) {
                        case 0:
                            return '[v] [nedeljo] [ob] LT'
                        case 3:
                            return '[v] [sredo] [ob] LT'
                        case 6:
                            return '[v] [soboto] [ob] LT'
                        case 1:
                        case 2:
                        case 4:
                        case 5:
                            return '[v] dddd [ob] LT'
                    }
                },
                lastDay: '[v\u010deraj ob] LT',
                lastWeek: function () {
                    switch (this.day()) {
                        case 0:
                            return '[prej\u0161njo] [nedeljo] [ob] LT'
                        case 3:
                            return '[prej\u0161njo] [sredo] [ob] LT'
                        case 6:
                            return '[prej\u0161njo] [soboto] [ob] LT'
                        case 1:
                        case 2:
                        case 4:
                        case 5:
                            return '[prej\u0161nji] dddd [ob] LT'
                    }
                },
                sameElse: 'L',
            },
            relativeTime: {
                future: '\u010dez %s',
                past: 'pred %s',
                s: td,
                ss: td,
                m: td,
                mm: td,
                h: td,
                hh: td,
                d: td,
                dd: td,
                M: td,
                MM: td,
                y: td,
                yy: td,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 7 },
        }),
        l.defineLocale('sq', {
            months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor'.split(
                '_'
            ),
            monthsShort:
                'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj'.split('_'),
            weekdays:
                'E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb'.split(
                    '_'
                ),
            weekdaysShort: 'Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht'.split('_'),
            weekdaysMin: 'D_H_Ma_M\xeb_E_P_Sh'.split('_'),
            weekdaysParseExact: !0,
            meridiemParse: /PD|MD/,
            isPM: function (e) {
                return 'M' === e.charAt(0)
            },
            meridiem: function (e, a, t) {
                return e < 12 ? 'PD' : 'MD'
            },
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Sot n\xeb] LT',
                nextDay: '[Nes\xebr n\xeb] LT',
                nextWeek: 'dddd [n\xeb] LT',
                lastDay: '[Dje n\xeb] LT',
                lastWeek: 'dddd [e kaluar n\xeb] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'n\xeb %s',
                past: '%s m\xeb par\xeb',
                s: 'disa sekonda',
                ss: '%d sekonda',
                m: 'nj\xeb minut\xeb',
                mm: '%d minuta',
                h: 'nj\xeb or\xeb',
                hh: '%d or\xeb',
                d: 'nj\xeb dit\xeb',
                dd: '%d dit\xeb',
                M: 'nj\xeb muaj',
                MM: '%d muaj',
                y: 'nj\xeb vit',
                yy: '%d vite',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
        })
    var sd = {
        words: {
            ss: [
                '\u0441\u0435\u043a\u0443\u043d\u0434\u0430',
                '\u0441\u0435\u043a\u0443\u043d\u0434\u0435',
                '\u0441\u0435\u043a\u0443\u043d\u0434\u0438',
            ],
            m: [
                '\u0458\u0435\u0434\u0430\u043d \u043c\u0438\u043d\u0443\u0442',
                '\u0458\u0435\u0434\u043d\u0435 \u043c\u0438\u043d\u0443\u0442\u0435',
            ],
            mm: [
                '\u043c\u0438\u043d\u0443\u0442',
                '\u043c\u0438\u043d\u0443\u0442\u0435',
                '\u043c\u0438\u043d\u0443\u0442\u0430',
            ],
            h: [
                '\u0458\u0435\u0434\u0430\u043d \u0441\u0430\u0442',
                '\u0458\u0435\u0434\u043d\u043e\u0433 \u0441\u0430\u0442\u0430',
            ],
            hh: [
                '\u0441\u0430\u0442',
                '\u0441\u0430\u0442\u0430',
                '\u0441\u0430\u0442\u0438',
            ],
            dd: [
                '\u0434\u0430\u043d',
                '\u0434\u0430\u043d\u0430',
                '\u0434\u0430\u043d\u0430',
            ],
            MM: [
                '\u043c\u0435\u0441\u0435\u0446',
                '\u043c\u0435\u0441\u0435\u0446\u0430',
                '\u043c\u0435\u0441\u0435\u0446\u0438',
            ],
            yy: [
                '\u0433\u043e\u0434\u0438\u043d\u0430',
                '\u0433\u043e\u0434\u0438\u043d\u0435',
                '\u0433\u043e\u0434\u0438\u043d\u0430',
            ],
        },
        correctGrammaticalCase: function (e, a) {
            return 1 === e ? a[0] : 2 <= e && e <= 4 ? a[1] : a[2]
        },
        translate: function (e, a, t) {
            var s = sd.words[t]
            return 1 === t.length
                ? a
                    ? s[0]
                    : s[1]
                : e + ' ' + sd.correctGrammaticalCase(e, s)
        },
    }
    l.defineLocale('sr-cyrl', {
        months: '\u0458\u0430\u043d\u0443\u0430\u0440_\u0444\u0435\u0431\u0440\u0443\u0430\u0440_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440_\u043e\u043a\u0442\u043e\u0431\u0430\u0440_\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440_\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440'.split(
            '_'
        ),
        monthsShort:
            '\u0458\u0430\u043d._\u0444\u0435\u0431._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433._\u0441\u0435\u043f._\u043e\u043a\u0442._\u043d\u043e\u0432._\u0434\u0435\u0446.'.split(
                '_'
            ),
        monthsParseExact: !0,
        weekdays:
            '\u043d\u0435\u0434\u0435\u0459\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a_\u0443\u0442\u043e\u0440\u0430\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a_\u043f\u0435\u0442\u0430\u043a_\u0441\u0443\u0431\u043e\u0442\u0430'.split(
                '_'
            ),
        weekdaysShort:
            '\u043d\u0435\u0434._\u043f\u043e\u043d._\u0443\u0442\u043e._\u0441\u0440\u0435._\u0447\u0435\u0442._\u043f\u0435\u0442._\u0441\u0443\u0431.'.split(
                '_'
            ),
        weekdaysMin:
            '\u043d\u0435_\u043f\u043e_\u0443\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441\u0443'.split(
                '_'
            ),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY H:mm',
            LLLL: 'dddd, D. MMMM YYYY H:mm',
        },
        calendar: {
            sameDay: '[\u0434\u0430\u043d\u0430\u0441 \u0443] LT',
            nextDay: '[\u0441\u0443\u0442\u0440\u0430 \u0443] LT',
            nextWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[\u0443] [\u043d\u0435\u0434\u0435\u0459\u0443] [\u0443] LT'
                    case 3:
                        return '[\u0443] [\u0441\u0440\u0435\u0434\u0443] [\u0443] LT'
                    case 6:
                        return '[\u0443] [\u0441\u0443\u0431\u043e\u0442\u0443] [\u0443] LT'
                    case 1:
                    case 2:
                    case 4:
                    case 5:
                        return '[\u0443] dddd [\u0443] LT'
                }
            },
            lastDay: '[\u0458\u0443\u0447\u0435 \u0443] LT',
            lastWeek: function () {
                return [
                    '[\u043f\u0440\u043e\u0448\u043b\u0435] [\u043d\u0435\u0434\u0435\u0459\u0435] [\u0443] LT',
                    '[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u043a\u0430] [\u0443] LT',
                    '[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0443\u0442\u043e\u0440\u043a\u0430] [\u0443] LT',
                    '[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0440\u0435\u0434\u0435] [\u0443] LT',
                    '[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0447\u0435\u0442\u0432\u0440\u0442\u043a\u0430] [\u0443] LT',
                    '[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u0435\u0442\u043a\u0430] [\u0443] LT',
                    '[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0443\u0431\u043e\u0442\u0435] [\u0443] LT',
                ][this.day()]
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: '\u0437\u0430 %s',
            past: '\u043f\u0440\u0435 %s',
            s: '\u043d\u0435\u043a\u043e\u043b\u0438\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438',
            ss: sd.translate,
            m: sd.translate,
            mm: sd.translate,
            h: sd.translate,
            hh: sd.translate,
            d: '\u0434\u0430\u043d',
            dd: sd.translate,
            M: '\u043c\u0435\u0441\u0435\u0446',
            MM: sd.translate,
            y: '\u0433\u043e\u0434\u0438\u043d\u0443',
            yy: sd.translate,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 7 },
    })
    var nd = {
        words: {
            ss: ['sekunda', 'sekunde', 'sekundi'],
            m: ['jedan minut', 'jedne minute'],
            mm: ['minut', 'minute', 'minuta'],
            h: ['jedan sat', 'jednog sata'],
            hh: ['sat', 'sata', 'sati'],
            dd: ['dan', 'dana', 'dana'],
            MM: ['mesec', 'meseca', 'meseci'],
            yy: ['godina', 'godine', 'godina'],
        },
        correctGrammaticalCase: function (e, a) {
            return 1 === e ? a[0] : 2 <= e && e <= 4 ? a[1] : a[2]
        },
        translate: function (e, a, t) {
            var s = nd.words[t]
            return 1 === t.length
                ? a
                    ? s[0]
                    : s[1]
                : e + ' ' + nd.correctGrammaticalCase(e, s)
        },
    }
    l.defineLocale('sr', {
        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
            '_'
        ),
        monthsShort:
            'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(
                '_'
            ),
        monthsParseExact: !0,
        weekdays:
            'nedelja_ponedeljak_utorak_sreda_\u010detvrtak_petak_subota'.split(
                '_'
            ),
        weekdaysShort: 'ned._pon._uto._sre._\u010det._pet._sub.'.split('_'),
        weekdaysMin: 'ne_po_ut_sr_\u010de_pe_su'.split('_'),
        weekdaysParseExact: !0,
        longDateFormat: {
            LT: 'H:mm',
            LTS: 'H:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM YYYY',
            LLL: 'D. MMMM YYYY H:mm',
            LLLL: 'dddd, D. MMMM YYYY H:mm',
        },
        calendar: {
            sameDay: '[danas u] LT',
            nextDay: '[sutra u] LT',
            nextWeek: function () {
                switch (this.day()) {
                    case 0:
                        return '[u] [nedelju] [u] LT'
                    case 3:
                        return '[u] [sredu] [u] LT'
                    case 6:
                        return '[u] [subotu] [u] LT'
                    case 1:
                    case 2:
                    case 4:
                    case 5:
                        return '[u] dddd [u] LT'
                }
            },
            lastDay: '[ju\u010de u] LT',
            lastWeek: function () {
                return [
                    '[pro\u0161le] [nedelje] [u] LT',
                    '[pro\u0161log] [ponedeljka] [u] LT',
                    '[pro\u0161log] [utorka] [u] LT',
                    '[pro\u0161le] [srede] [u] LT',
                    '[pro\u0161log] [\u010detvrtka] [u] LT',
                    '[pro\u0161log] [petka] [u] LT',
                    '[pro\u0161le] [subote] [u] LT',
                ][this.day()]
            },
            sameElse: 'L',
        },
        relativeTime: {
            future: 'za %s',
            past: 'pre %s',
            s: 'nekoliko sekundi',
            ss: nd.translate,
            m: nd.translate,
            mm: nd.translate,
            h: nd.translate,
            hh: nd.translate,
            d: 'dan',
            dd: nd.translate,
            M: 'mesec',
            MM: nd.translate,
            y: 'godinu',
            yy: nd.translate,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 7 },
    }),
        l.defineLocale('ss', {
            months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split(
                '_'
            ),
            monthsShort:
                'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),
            weekdays:
                'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(
                    '_'
                ),
            weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
            weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'h:mm A',
                LTS: 'h:mm:ss A',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY h:mm A',
                LLLL: 'dddd, D MMMM YYYY h:mm A',
            },
            calendar: {
                sameDay: '[Namuhla nga] LT',
                nextDay: '[Kusasa nga] LT',
                nextWeek: 'dddd [nga] LT',
                lastDay: '[Itolo nga] LT',
                lastWeek: 'dddd [leliphelile] [nga] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'nga %s',
                past: 'wenteka nga %s',
                s: 'emizuzwana lomcane',
                ss: '%d mzuzwana',
                m: 'umzuzu',
                mm: '%d emizuzu',
                h: 'lihora',
                hh: '%d emahora',
                d: 'lilanga',
                dd: '%d emalanga',
                M: 'inyanga',
                MM: '%d tinyanga',
                y: 'umnyaka',
                yy: '%d iminyaka',
            },
            meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
            meridiem: function (e, a, t) {
                return e < 11
                    ? 'ekuseni'
                    : e < 15
                      ? 'emini'
                      : e < 19
                        ? 'entsambama'
                        : 'ebusuku'
            },
            meridiemHour: function (e, a) {
                return (
                    12 === e && (e = 0),
                    'ekuseni' === a
                        ? e
                        : 'emini' === a
                          ? 11 <= e
                              ? e
                              : e + 12
                          : 'entsambama' === a || 'ebusuku' === a
                            ? 0 === e
                                ? 0
                                : e + 12
                            : void 0
                )
            },
            dayOfMonthOrdinalParse: /\d{1,2}/,
            ordinal: '%d',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('sv', {
            months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(
                '_'
            ),
            monthsShort:
                'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
            weekdays:
                's\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag'.split(
                    '_'
                ),
            weekdaysShort: 's\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r'.split('_'),
            weekdaysMin: 's\xf6_m\xe5_ti_on_to_fr_l\xf6'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'YYYY-MM-DD',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY [kl.] HH:mm',
                LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',
                lll: 'D MMM YYYY HH:mm',
                llll: 'ddd D MMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Idag] LT',
                nextDay: '[Imorgon] LT',
                lastDay: '[Ig\xe5r] LT',
                nextWeek: '[P\xe5] dddd LT',
                lastWeek: '[I] dddd[s] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'om %s',
                past: 'f\xf6r %s sedan',
                s: 'n\xe5gra sekunder',
                ss: '%d sekunder',
                m: 'en minut',
                mm: '%d minuter',
                h: 'en timme',
                hh: '%d timmar',
                d: 'en dag',
                dd: '%d dagar',
                M: 'en m\xe5nad',
                MM: '%d m\xe5nader',
                y: 'ett \xe5r',
                yy: '%d \xe5r',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(e|a)/,
            ordinal: function (e) {
                var a = e % 10
                return (
                    e +
                    (1 == ~~((e % 100) / 10)
                        ? 'e'
                        : 1 === a
                          ? 'a'
                          : 2 === a
                            ? 'a'
                            : 'e')
                )
            },
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('sw', {
            months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(
                '_'
            ),
            monthsShort:
                'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
            weekdays:
                'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(
                    '_'
                ),
            weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
            weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[leo saa] LT',
                nextDay: '[kesho saa] LT',
                nextWeek: '[wiki ijayo] dddd [saat] LT',
                lastDay: '[jana] LT',
                lastWeek: '[wiki iliyopita] dddd [saat] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '%s baadaye',
                past: 'tokea %s',
                s: 'hivi punde',
                ss: 'sekunde %d',
                m: 'dakika moja',
                mm: 'dakika %d',
                h: 'saa limoja',
                hh: 'masaa %d',
                d: 'siku moja',
                dd: 'masiku %d',
                M: 'mwezi mmoja',
                MM: 'miezi %d',
                y: 'mwaka mmoja',
                yy: 'miaka %d',
            },
            week: { dow: 1, doy: 7 },
        })
    var dd = {
            1: '\u0be7',
            2: '\u0be8',
            3: '\u0be9',
            4: '\u0bea',
            5: '\u0beb',
            6: '\u0bec',
            7: '\u0bed',
            8: '\u0bee',
            9: '\u0bef',
            0: '\u0be6',
        },
        rd = {
            '\u0be7': '1',
            '\u0be8': '2',
            '\u0be9': '3',
            '\u0bea': '4',
            '\u0beb': '5',
            '\u0bec': '6',
            '\u0bed': '7',
            '\u0bee': '8',
            '\u0bef': '9',
            '\u0be6': '0',
        }
    l.defineLocale('ta', {
        months: '\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd'.split(
            '_'
        ),
        monthsShort:
            '\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd'.split(
                '_'
            ),
        weekdays:
            '\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8'.split(
                '_'
            ),
        weekdaysShort:
            '\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf_\u0b9a\u0ba9\u0bbf'.split(
                '_'
            ),
        weekdaysMin:
            '\u0b9e\u0bbe_\u0ba4\u0bbf_\u0b9a\u0bc6_\u0baa\u0bc1_\u0bb5\u0bbf_\u0bb5\u0bc6_\u0b9a'.split(
                '_'
            ),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY, HH:mm',
            LLLL: 'dddd, D MMMM YYYY, HH:mm',
        },
        calendar: {
            sameDay: '[\u0b87\u0ba9\u0bcd\u0bb1\u0bc1] LT',
            nextDay: '[\u0ba8\u0bbe\u0bb3\u0bc8] LT',
            nextWeek: 'dddd, LT',
            lastDay: '[\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1] LT',
            lastWeek:
                '[\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbe\u0bb0\u0bae\u0bcd] dddd, LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s \u0b87\u0bb2\u0bcd',
            past: '%s \u0bae\u0bc1\u0ba9\u0bcd',
            s: '\u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb2 \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd',
            ss: '%d \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd',
            m: '\u0b92\u0bb0\u0bc1 \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0bae\u0bcd',
            mm: '%d \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd',
            h: '\u0b92\u0bb0\u0bc1 \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd',
            hh: '%d \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd',
            d: '\u0b92\u0bb0\u0bc1 \u0ba8\u0bbe\u0bb3\u0bcd',
            dd: '%d \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd',
            M: '\u0b92\u0bb0\u0bc1 \u0bae\u0bbe\u0ba4\u0bae\u0bcd',
            MM: '%d \u0bae\u0bbe\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd',
            y: '\u0b92\u0bb0\u0bc1 \u0bb5\u0bb0\u0bc1\u0b9f\u0bae\u0bcd',
            yy: '%d \u0b86\u0ba3\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd',
        },
        dayOfMonthOrdinalParse: /\d{1,2}\u0bb5\u0ba4\u0bc1/,
        ordinal: function (e) {
            return e + '\u0bb5\u0ba4\u0bc1'
        },
        preparse: function (e) {
            return e.replace(
                /[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,
                function (e) {
                    return rd[e]
                }
            )
        },
        postformat: function (e) {
            return e.replace(/\d/g, function (e) {
                return dd[e]
            })
        },
        meridiemParse:
            /\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,
        meridiem: function (e, a, t) {
            return e < 2
                ? ' \u0baf\u0bbe\u0bae\u0bae\u0bcd'
                : e < 6
                  ? ' \u0bb5\u0bc8\u0b95\u0bb1\u0bc8'
                  : e < 10
                    ? ' \u0b95\u0bbe\u0bb2\u0bc8'
                    : e < 14
                      ? ' \u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd'
                      : e < 18
                        ? ' \u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1'
                        : e < 22
                          ? ' \u0bae\u0bbe\u0bb2\u0bc8'
                          : ' \u0baf\u0bbe\u0bae\u0bae\u0bcd'
        },
        meridiemHour: function (e, a) {
            return (
                12 === e && (e = 0),
                '\u0baf\u0bbe\u0bae\u0bae\u0bcd' === a
                    ? e < 2
                        ? e
                        : e + 12
                    : '\u0bb5\u0bc8\u0b95\u0bb1\u0bc8' === a ||
                        '\u0b95\u0bbe\u0bb2\u0bc8' === a
                      ? e
                      : '\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd' === a &&
                          10 <= e
                        ? e
                        : e + 12
            )
        },
        week: { dow: 0, doy: 6 },
    }),
        l.defineLocale('te', {
            months: '\u0c1c\u0c28\u0c35\u0c30\u0c3f_\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f_\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d_\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41_\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d_\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d_\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d_\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d'.split(
                '_'
            ),
            monthsShort:
                '\u0c1c\u0c28._\u0c2b\u0c3f\u0c2c\u0c4d\u0c30._\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f._\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17._\u0c38\u0c46\u0c2a\u0c4d._\u0c05\u0c15\u0c4d\u0c1f\u0c4b._\u0c28\u0c35._\u0c21\u0c3f\u0c38\u0c46.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                '\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02_\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02_\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02_\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02_\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02'.split(
                    '_'
                ),
            weekdaysShort:
                '\u0c06\u0c26\u0c3f_\u0c38\u0c4b\u0c2e_\u0c2e\u0c02\u0c17\u0c33_\u0c2c\u0c41\u0c27_\u0c17\u0c41\u0c30\u0c41_\u0c36\u0c41\u0c15\u0c4d\u0c30_\u0c36\u0c28\u0c3f'.split(
                    '_'
                ),
            weekdaysMin:
                '\u0c06_\u0c38\u0c4b_\u0c2e\u0c02_\u0c2c\u0c41_\u0c17\u0c41_\u0c36\u0c41_\u0c36'.split(
                    '_'
                ),
            longDateFormat: {
                LT: 'A h:mm',
                LTS: 'A h:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY, A h:mm',
                LLLL: 'dddd, D MMMM YYYY, A h:mm',
            },
            calendar: {
                sameDay: '[\u0c28\u0c47\u0c21\u0c41] LT',
                nextDay: '[\u0c30\u0c47\u0c2a\u0c41] LT',
                nextWeek: 'dddd, LT',
                lastDay: '[\u0c28\u0c3f\u0c28\u0c4d\u0c28] LT',
                lastWeek: '[\u0c17\u0c24] dddd, LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '%s \u0c32\u0c4b',
                past: '%s \u0c15\u0c4d\u0c30\u0c3f\u0c24\u0c02',
                s: '\u0c15\u0c4a\u0c28\u0c4d\u0c28\u0c3f \u0c15\u0c4d\u0c37\u0c23\u0c3e\u0c32\u0c41',
                ss: '%d \u0c38\u0c46\u0c15\u0c28\u0c4d\u0c32\u0c41',
                m: '\u0c12\u0c15 \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c02',
                mm: '%d \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c3e\u0c32\u0c41',
                h: '\u0c12\u0c15 \u0c17\u0c02\u0c1f',
                hh: '%d \u0c17\u0c02\u0c1f\u0c32\u0c41',
                d: '\u0c12\u0c15 \u0c30\u0c4b\u0c1c\u0c41',
                dd: '%d \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41',
                M: '\u0c12\u0c15 \u0c28\u0c46\u0c32',
                MM: '%d \u0c28\u0c46\u0c32\u0c32\u0c41',
                y: '\u0c12\u0c15 \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c02',
                yy: '%d \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c3e\u0c32\u0c41',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\u0c35/,
            ordinal: '%d\u0c35',
            meridiemParse:
                /\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,
            meridiemHour: function (e, a) {
                return (
                    12 === e && (e = 0),
                    '\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f' === a
                        ? e < 4
                            ? e
                            : e + 12
                        : '\u0c09\u0c26\u0c2f\u0c02' === a
                          ? e
                          : '\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02' ===
                              a
                            ? 10 <= e
                                ? e
                                : e + 12
                            : '\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02' ===
                                a
                              ? e + 12
                              : void 0
                )
            },
            meridiem: function (e, a, t) {
                return e < 4
                    ? '\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f'
                    : e < 10
                      ? '\u0c09\u0c26\u0c2f\u0c02'
                      : e < 17
                        ? '\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02'
                        : e < 20
                          ? '\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02'
                          : '\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f'
            },
            week: { dow: 0, doy: 6 },
        }),
        l.defineLocale('tet', {
            months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(
                '_'
            ),
            monthsShort:
                'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
            weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split(
                '_'
            ),
            weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),
            weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[Ohin iha] LT',
                nextDay: '[Aban iha] LT',
                nextWeek: 'dddd [iha] LT',
                lastDay: '[Horiseik iha] LT',
                lastWeek: 'dddd [semana kotuk] [iha] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'iha %s',
                past: '%s liuba',
                s: 'minutu balun',
                ss: 'minutu %d',
                m: 'minutu ida',
                mm: 'minutu %d',
                h: 'oras ida',
                hh: 'oras %d',
                d: 'loron ida',
                dd: 'loron %d',
                M: 'fulan ida',
                MM: 'fulan %d',
                y: 'tinan ida',
                yy: 'tinan %d',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
                var a = e % 10
                return (
                    e +
                    (1 == ~~((e % 100) / 10)
                        ? 'th'
                        : 1 === a
                          ? 'st'
                          : 2 === a
                            ? 'nd'
                            : 3 === a
                              ? 'rd'
                              : 'th')
                )
            },
            week: { dow: 1, doy: 4 },
        })
    var _d = {
        0: '-\u0443\u043c',
        1: '-\u0443\u043c',
        2: '-\u044e\u043c',
        3: '-\u044e\u043c',
        4: '-\u0443\u043c',
        5: '-\u0443\u043c',
        6: '-\u0443\u043c',
        7: '-\u0443\u043c',
        8: '-\u0443\u043c',
        9: '-\u0443\u043c',
        10: '-\u0443\u043c',
        12: '-\u0443\u043c',
        13: '-\u0443\u043c',
        20: '-\u0443\u043c',
        30: '-\u044e\u043c',
        40: '-\u0443\u043c',
        50: '-\u0443\u043c',
        60: '-\u0443\u043c',
        70: '-\u0443\u043c',
        80: '-\u0443\u043c',
        90: '-\u0443\u043c',
        100: '-\u0443\u043c',
    }
    l.defineLocale('tg', {
        months: '\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440'.split(
            '_'
        ),
        monthsShort:
            '\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a'.split(
                '_'
            ),
        weekdays:
            '\u044f\u043a\u0448\u0430\u043d\u0431\u0435_\u0434\u0443\u0448\u0430\u043d\u0431\u0435_\u0441\u0435\u0448\u0430\u043d\u0431\u0435_\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435_\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435_\u04b7\u0443\u043c\u044a\u0430_\u0448\u0430\u043d\u0431\u0435'.split(
                '_'
            ),
        weekdaysShort:
            '\u044f\u0448\u0431_\u0434\u0448\u0431_\u0441\u0448\u0431_\u0447\u0448\u0431_\u043f\u0448\u0431_\u04b7\u0443\u043c_\u0448\u043d\u0431'.split(
                '_'
            ),
        weekdaysMin:
            '\u044f\u0448_\u0434\u0448_\u0441\u0448_\u0447\u0448_\u043f\u0448_\u04b7\u043c_\u0448\u0431'.split(
                '_'
            ),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD/MM/YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay:
                '[\u0418\u043c\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT',
            nextDay:
                '[\u041f\u0430\u0433\u043e\u04b3 \u0441\u043e\u0430\u0442\u0438] LT',
            lastDay:
                '[\u0414\u0438\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT',
            nextWeek:
                'dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u043e\u044f\u043d\u0434\u0430 \u0441\u043e\u0430\u0442\u0438] LT',
            lastWeek:
                'dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u0433\u0443\u0437\u0430\u0448\u0442\u0430 \u0441\u043e\u0430\u0442\u0438] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '\u0431\u0430\u044a\u0434\u0438 %s',
            past: '%s \u043f\u0435\u0448',
            s: '\u044f\u043a\u0447\u0430\u043d\u0434 \u0441\u043e\u043d\u0438\u044f',
            m: '\u044f\u043a \u0434\u0430\u049b\u0438\u049b\u0430',
            mm: '%d \u0434\u0430\u049b\u0438\u049b\u0430',
            h: '\u044f\u043a \u0441\u043e\u0430\u0442',
            hh: '%d \u0441\u043e\u0430\u0442',
            d: '\u044f\u043a \u0440\u04ef\u0437',
            dd: '%d \u0440\u04ef\u0437',
            M: '\u044f\u043a \u043c\u043e\u04b3',
            MM: '%d \u043c\u043e\u04b3',
            y: '\u044f\u043a \u0441\u043e\u043b',
            yy: '%d \u0441\u043e\u043b',
        },
        meridiemParse:
            /\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,
        meridiemHour: function (e, a) {
            return (
                12 === e && (e = 0),
                '\u0448\u0430\u0431' === a
                    ? e < 4
                        ? e
                        : e + 12
                    : '\u0441\u0443\u0431\u04b3' === a
                      ? e
                      : '\u0440\u04ef\u0437' === a
                        ? 11 <= e
                            ? e
                            : e + 12
                        : '\u0431\u0435\u0433\u043e\u04b3' === a
                          ? e + 12
                          : void 0
            )
        },
        meridiem: function (e, a, t) {
            return e < 4
                ? '\u0448\u0430\u0431'
                : e < 11
                  ? '\u0441\u0443\u0431\u04b3'
                  : e < 16
                    ? '\u0440\u04ef\u0437'
                    : e < 19
                      ? '\u0431\u0435\u0433\u043e\u04b3'
                      : '\u0448\u0430\u0431'
        },
        dayOfMonthOrdinalParse: /\d{1,2}-(\u0443\u043c|\u044e\u043c)/,
        ordinal: function (e) {
            return e + (_d[e] || _d[e % 10] || _d[100 <= e ? 100 : null])
        },
        week: { dow: 1, doy: 7 },
    }),
        l.defineLocale('th', {
            months: '\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21_\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c_\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21_\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19_\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21_\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19_\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21_\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21_\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19_\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21_\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19_\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21'.split(
                '_'
            ),
            monthsShort:
                '\u0e21.\u0e04._\u0e01.\u0e1e._\u0e21\u0e35.\u0e04._\u0e40\u0e21.\u0e22._\u0e1e.\u0e04._\u0e21\u0e34.\u0e22._\u0e01.\u0e04._\u0e2a.\u0e04._\u0e01.\u0e22._\u0e15.\u0e04._\u0e1e.\u0e22._\u0e18.\u0e04.'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                '\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c'.split(
                    '_'
                ),
            weekdaysShort:
                '\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c'.split(
                    '_'
                ),
            weekdaysMin:
                '\u0e2d\u0e32._\u0e08._\u0e2d._\u0e1e._\u0e1e\u0e24._\u0e28._\u0e2a.'.split(
                    '_'
                ),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'H:mm',
                LTS: 'H:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm',
                LLLL: '\u0e27\u0e31\u0e19dddd\u0e17\u0e35\u0e48 D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm',
            },
            meridiemParse:
                /\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,
            isPM: function (e) {
                return (
                    '\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07' ===
                    e
                )
            },
            meridiem: function (e, a, t) {
                return e < 12
                    ? '\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07'
                    : '\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07'
            },
            calendar: {
                sameDay:
                    '[\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT',
                nextDay:
                    '[\u0e1e\u0e23\u0e38\u0e48\u0e07\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT',
                nextWeek:
                    'dddd[\u0e2b\u0e19\u0e49\u0e32 \u0e40\u0e27\u0e25\u0e32] LT',
                lastDay:
                    '[\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e27\u0e32\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT',
                lastWeek:
                    '[\u0e27\u0e31\u0e19]dddd[\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e40\u0e27\u0e25\u0e32] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '\u0e2d\u0e35\u0e01 %s',
                past: '%s\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27',
                s: '\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35',
                ss: '%d \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35',
                m: '1 \u0e19\u0e32\u0e17\u0e35',
                mm: '%d \u0e19\u0e32\u0e17\u0e35',
                h: '1 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07',
                hh: '%d \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07',
                d: '1 \u0e27\u0e31\u0e19',
                dd: '%d \u0e27\u0e31\u0e19',
                M: '1 \u0e40\u0e14\u0e37\u0e2d\u0e19',
                MM: '%d \u0e40\u0e14\u0e37\u0e2d\u0e19',
                y: '1 \u0e1b\u0e35',
                yy: '%d \u0e1b\u0e35',
            },
        }),
        l.defineLocale('tl-ph', {
            months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
                '_'
            ),
            monthsShort:
                'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
            weekdays:
                'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
                    '_'
                ),
            weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
            weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'MM/D/YYYY',
                LL: 'MMMM D, YYYY',
                LLL: 'MMMM D, YYYY HH:mm',
                LLLL: 'dddd, MMMM DD, YYYY HH:mm',
            },
            calendar: {
                sameDay: 'LT [ngayong araw]',
                nextDay: '[Bukas ng] LT',
                nextWeek: 'LT [sa susunod na] dddd',
                lastDay: 'LT [kahapon]',
                lastWeek: 'LT [noong nakaraang] dddd',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'sa loob ng %s',
                past: '%s ang nakalipas',
                s: 'ilang segundo',
                ss: '%d segundo',
                m: 'isang minuto',
                mm: '%d minuto',
                h: 'isang oras',
                hh: '%d oras',
                d: 'isang araw',
                dd: '%d araw',
                M: 'isang buwan',
                MM: '%d buwan',
                y: 'isang taon',
                yy: '%d taon',
            },
            dayOfMonthOrdinalParse: /\d{1,2}/,
            ordinal: function (e) {
                return e
            },
            week: { dow: 1, doy: 4 },
        })
    var id = 'pagh_wa\u2019_cha\u2019_wej_loS_vagh_jav_Soch_chorgh_Hut'.split(
        '_'
    )
    function od(e, a, t, s) {
        var n = (function (e) {
            var a = Math.floor((e % 1e3) / 100),
                t = Math.floor((e % 100) / 10),
                s = e % 10,
                n = ''
            0 < a && (n += id[a] + 'vatlh')
            0 < t && (n += ('' !== n ? ' ' : '') + id[t] + 'maH')
            0 < s && (n += ('' !== n ? ' ' : '') + id[s])
            return '' === n ? 'pagh' : n
        })(e)
        switch (t) {
            case 'ss':
                return n + ' lup'
            case 'mm':
                return n + ' tup'
            case 'hh':
                return n + ' rep'
            case 'dd':
                return n + ' jaj'
            case 'MM':
                return n + ' jar'
            case 'yy':
                return n + ' DIS'
        }
    }
    l.defineLocale('tlh', {
        months: 'tera\u2019 jar wa\u2019_tera\u2019 jar cha\u2019_tera\u2019 jar wej_tera\u2019 jar loS_tera\u2019 jar vagh_tera\u2019 jar jav_tera\u2019 jar Soch_tera\u2019 jar chorgh_tera\u2019 jar Hut_tera\u2019 jar wa\u2019maH_tera\u2019 jar wa\u2019maH wa\u2019_tera\u2019 jar wa\u2019maH cha\u2019'.split(
            '_'
        ),
        monthsShort:
            'jar wa\u2019_jar cha\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\u2019maH_jar wa\u2019maH wa\u2019_jar wa\u2019maH cha\u2019'.split(
                '_'
            ),
        monthsParseExact: !0,
        weekdays:
            'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
                '_'
            ),
        weekdaysShort:
            'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
                '_'
            ),
        weekdaysMin:
            'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
                '_'
            ),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[DaHjaj] LT',
            nextDay: '[wa\u2019leS] LT',
            nextWeek: 'LLL',
            lastDay: '[wa\u2019Hu\u2019] LT',
            lastWeek: 'LLL',
            sameElse: 'L',
        },
        relativeTime: {
            future: function (e) {
                var a = e
                return (a =
                    -1 !== e.indexOf('jaj')
                        ? a.slice(0, -3) + 'leS'
                        : -1 !== e.indexOf('jar')
                          ? a.slice(0, -3) + 'waQ'
                          : -1 !== e.indexOf('DIS')
                            ? a.slice(0, -3) + 'nem'
                            : a + ' pIq')
            },
            past: function (e) {
                var a = e
                return (a =
                    -1 !== e.indexOf('jaj')
                        ? a.slice(0, -3) + 'Hu\u2019'
                        : -1 !== e.indexOf('jar')
                          ? a.slice(0, -3) + 'wen'
                          : -1 !== e.indexOf('DIS')
                            ? a.slice(0, -3) + 'ben'
                            : a + ' ret')
            },
            s: 'puS lup',
            ss: od,
            m: 'wa\u2019 tup',
            mm: od,
            h: 'wa\u2019 rep',
            hh: od,
            d: 'wa\u2019 jaj',
            dd: od,
            M: 'wa\u2019 jar',
            MM: od,
            y: 'wa\u2019 DIS',
            yy: od,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: { dow: 1, doy: 4 },
    })
    var md = {
        1: "'inci",
        5: "'inci",
        8: "'inci",
        70: "'inci",
        80: "'inci",
        2: "'nci",
        7: "'nci",
        20: "'nci",
        50: "'nci",
        3: "'\xfcnc\xfc",
        4: "'\xfcnc\xfc",
        100: "'\xfcnc\xfc",
        6: "'nc\u0131",
        9: "'uncu",
        10: "'uncu",
        30: "'uncu",
        60: "'\u0131nc\u0131",
        90: "'\u0131nc\u0131",
    }
    function ud(e, a, t, s) {
        var n = {
            s: ['viensas secunds', "'iensas secunds"],
            ss: [e + ' secunds', e + ' secunds'],
            m: ["'n m\xedut", "'iens m\xedut"],
            mm: [e + ' m\xeduts', e + ' m\xeduts'],
            h: ["'n \xfeora", "'iensa \xfeora"],
            hh: [e + ' \xfeoras', e + ' \xfeoras'],
            d: ["'n ziua", "'iensa ziua"],
            dd: [e + ' ziuas', e + ' ziuas'],
            M: ["'n mes", "'iens mes"],
            MM: [e + ' mesen', e + ' mesen'],
            y: ["'n ar", "'iens ar"],
            yy: [e + ' ars', e + ' ars'],
        }
        return s ? n[t][0] : a ? n[t][0] : n[t][1]
    }
    function ld(e, a, t) {
        var s, n
        return 'm' === t
            ? a
                ? '\u0445\u0432\u0438\u043b\u0438\u043d\u0430'
                : '\u0445\u0432\u0438\u043b\u0438\u043d\u0443'
            : 'h' === t
              ? a
                  ? '\u0433\u043e\u0434\u0438\u043d\u0430'
                  : '\u0433\u043e\u0434\u0438\u043d\u0443'
              : e +
                ' ' +
                ((s = +e),
                (n = {
                    ss: a
                        ? '\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434'
                        : '\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434',
                    mm: a
                        ? '\u0445\u0432\u0438\u043b\u0438\u043d\u0430_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d'
                        : '\u0445\u0432\u0438\u043b\u0438\u043d\u0443_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d',
                    hh: a
                        ? '\u0433\u043e\u0434\u0438\u043d\u0430_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d'
                        : '\u0433\u043e\u0434\u0438\u043d\u0443_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d',
                    dd: '\u0434\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u043d\u0456\u0432',
                    MM: '\u043c\u0456\u0441\u044f\u0446\u044c_\u043c\u0456\u0441\u044f\u0446\u0456_\u043c\u0456\u0441\u044f\u0446\u0456\u0432',
                    yy: '\u0440\u0456\u043a_\u0440\u043e\u043a\u0438_\u0440\u043e\u043a\u0456\u0432',
                }[t].split('_')),
                s % 10 == 1 && s % 100 != 11
                    ? n[0]
                    : 2 <= s % 10 &&
                        s % 10 <= 4 &&
                        (s % 100 < 10 || 20 <= s % 100)
                      ? n[1]
                      : n[2])
    }
    function Md(e) {
        return function () {
            return e + '\u043e' + (11 === this.hours() ? '\u0431' : '') + '] LT'
        }
    }
    l.defineLocale('tr', {
        months: 'Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k'.split(
            '_'
        ),
        monthsShort:
            'Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara'.split(
                '_'
            ),
        weekdays:
            'Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi'.split(
                '_'
            ),
        weekdaysShort: 'Paz_Pts_Sal_\xc7ar_Per_Cum_Cts'.split('_'),
        weekdaysMin: 'Pz_Pt_Sa_\xc7a_Pe_Cu_Ct'.split('_'),
        longDateFormat: {
            LT: 'HH:mm',
            LTS: 'HH:mm:ss',
            L: 'DD.MM.YYYY',
            LL: 'D MMMM YYYY',
            LLL: 'D MMMM YYYY HH:mm',
            LLLL: 'dddd, D MMMM YYYY HH:mm',
        },
        calendar: {
            sameDay: '[bug\xfcn saat] LT',
            nextDay: '[yar\u0131n saat] LT',
            nextWeek: '[gelecek] dddd [saat] LT',
            lastDay: '[d\xfcn] LT',
            lastWeek: '[ge\xe7en] dddd [saat] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: '%s sonra',
            past: '%s \xf6nce',
            s: 'birka\xe7 saniye',
            ss: '%d saniye',
            m: 'bir dakika',
            mm: '%d dakika',
            h: 'bir saat',
            hh: '%d saat',
            d: 'bir g\xfcn',
            dd: '%d g\xfcn',
            M: 'bir ay',
            MM: '%d ay',
            y: 'bir y\u0131l',
            yy: '%d y\u0131l',
        },
        ordinal: function (e, a) {
            switch (a) {
                case 'd':
                case 'D':
                case 'Do':
                case 'DD':
                    return e
                default:
                    if (0 === e) return e + "'\u0131nc\u0131"
                    var t = e % 10
                    return (
                        e +
                        (md[t] ||
                            md[(e % 100) - t] ||
                            md[100 <= e ? 100 : null])
                    )
            }
        },
        week: { dow: 1, doy: 7 },
    }),
        l.defineLocale('tzl', {
            months: 'Januar_Fevraglh_Mar\xe7_Avr\xefu_Mai_G\xfcn_Julia_Guscht_Setemvar_Listop\xe4ts_Noemvar_Zecemvar'.split(
                '_'
            ),
            monthsShort:
                'Jan_Fev_Mar_Avr_Mai_G\xfcn_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
            weekdays:
                'S\xfaladi_L\xfane\xe7i_Maitzi_M\xe1rcuri_Xh\xfaadi_Vi\xe9ner\xe7i_S\xe1turi'.split(
                    '_'
                ),
            weekdaysShort:
                'S\xfal_L\xfan_Mai_M\xe1r_Xh\xfa_Vi\xe9_S\xe1t'.split('_'),
            weekdaysMin: 'S\xfa_L\xfa_Ma_M\xe1_Xh_Vi_S\xe1'.split('_'),
            longDateFormat: {
                LT: 'HH.mm',
                LTS: 'HH.mm.ss',
                L: 'DD.MM.YYYY',
                LL: 'D. MMMM [dallas] YYYY',
                LLL: 'D. MMMM [dallas] YYYY HH.mm',
                LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',
            },
            meridiemParse: /d\'o|d\'a/i,
            isPM: function (e) {
                return "d'o" === e.toLowerCase()
            },
            meridiem: function (e, a, t) {
                return 11 < e ? (t ? "d'o" : "D'O") : t ? "d'a" : "D'A"
            },
            calendar: {
                sameDay: '[oxhi \xe0] LT',
                nextDay: '[dem\xe0 \xe0] LT',
                nextWeek: 'dddd [\xe0] LT',
                lastDay: '[ieiri \xe0] LT',
                lastWeek: '[s\xfcr el] dddd [lasteu \xe0] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'osprei %s',
                past: 'ja%s',
                s: ud,
                ss: ud,
                m: ud,
                mm: ud,
                h: ud,
                hh: ud,
                d: ud,
                dd: ud,
                M: ud,
                MM: ud,
                y: ud,
                yy: ud,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('tzm-latn', {
            months: 'innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir'.split(
                '_'
            ),
            monthsShort:
                'innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir'.split(
                    '_'
                ),
            weekdays:
                'asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas'.split(
                    '_'
                ),
            weekdaysShort:
                'asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas'.split(
                    '_'
                ),
            weekdaysMin:
                'asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas'.split(
                    '_'
                ),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[asdkh g] LT',
                nextDay: '[aska g] LT',
                nextWeek: 'dddd [g] LT',
                lastDay: '[assant g] LT',
                lastWeek: 'dddd [g] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'dadkh s yan %s',
                past: 'yan %s',
                s: 'imik',
                ss: '%d imik',
                m: 'minu\u1e0d',
                mm: '%d minu\u1e0d',
                h: 'sa\u025ba',
                hh: '%d tassa\u025bin',
                d: 'ass',
                dd: '%d ossan',
                M: 'ayowr',
                MM: '%d iyyirn',
                y: 'asgas',
                yy: '%d isgasn',
            },
            week: { dow: 6, doy: 12 },
        }),
        l.defineLocale('tzm', {
            months: '\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54'.split(
                '_'
            ),
            monthsShort:
                '\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54'.split(
                    '_'
                ),
            weekdays:
                '\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59'.split(
                    '_'
                ),
            weekdaysShort:
                '\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59'.split(
                    '_'
                ),
            weekdaysMin:
                '\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59'.split(
                    '_'
                ),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[\u2d30\u2d59\u2d37\u2d45 \u2d34] LT',
                nextDay: '[\u2d30\u2d59\u2d3d\u2d30 \u2d34] LT',
                nextWeek: 'dddd [\u2d34] LT',
                lastDay: '[\u2d30\u2d5a\u2d30\u2d4f\u2d5c \u2d34] LT',
                lastWeek: 'dddd [\u2d34] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '\u2d37\u2d30\u2d37\u2d45 \u2d59 \u2d62\u2d30\u2d4f %s',
                past: '\u2d62\u2d30\u2d4f %s',
                s: '\u2d49\u2d4e\u2d49\u2d3d',
                ss: '%d \u2d49\u2d4e\u2d49\u2d3d',
                m: '\u2d4e\u2d49\u2d4f\u2d53\u2d3a',
                mm: '%d \u2d4e\u2d49\u2d4f\u2d53\u2d3a',
                h: '\u2d59\u2d30\u2d44\u2d30',
                hh: '%d \u2d5c\u2d30\u2d59\u2d59\u2d30\u2d44\u2d49\u2d4f',
                d: '\u2d30\u2d59\u2d59',
                dd: '%d o\u2d59\u2d59\u2d30\u2d4f',
                M: '\u2d30\u2d62o\u2d53\u2d54',
                MM: '%d \u2d49\u2d62\u2d62\u2d49\u2d54\u2d4f',
                y: '\u2d30\u2d59\u2d33\u2d30\u2d59',
                yy: '%d \u2d49\u2d59\u2d33\u2d30\u2d59\u2d4f',
            },
            week: { dow: 6, doy: 12 },
        }),
        l.defineLocale('ug-cn', {
            months: '\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631'.split(
                '_'
            ),
            monthsShort:
                '\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631'.split(
                    '_'
                ),
            weekdays:
                '\u064a\u06d5\u0643\u0634\u06d5\u0646\u0628\u06d5_\u062f\u06c8\u0634\u06d5\u0646\u0628\u06d5_\u0633\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u0686\u0627\u0631\u0634\u06d5\u0646\u0628\u06d5_\u067e\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u062c\u06c8\u0645\u06d5_\u0634\u06d5\u0646\u0628\u06d5'.split(
                    '_'
                ),
            weekdaysShort:
                '\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5'.split(
                    '_'
                ),
            weekdaysMin:
                '\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5'.split(
                    '_'
                ),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'YYYY-MM-DD',
                LL: 'YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649',
                LLL: 'YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm',
                LLLL: 'dddd\u060c YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm',
            },
            meridiemParse:
                /\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,
            meridiemHour: function (e, a) {
                return (
                    12 === e && (e = 0),
                    '\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5' ===
                        a ||
                    '\u0633\u06d5\u06be\u06d5\u0631' === a ||
                    '\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646' ===
                        a
                        ? e
                        : '\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646' ===
                                a || '\u0643\u06d5\u0686' === a
                          ? e + 12
                          : 11 <= e
                            ? e
                            : e + 12
                )
            },
            meridiem: function (e, a, t) {
                var s = 100 * e + a
                return s < 600
                    ? '\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5'
                    : s < 900
                      ? '\u0633\u06d5\u06be\u06d5\u0631'
                      : s < 1130
                        ? '\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646'
                        : s < 1230
                          ? '\u0686\u06c8\u0634'
                          : s < 1800
                            ? '\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646'
                            : '\u0643\u06d5\u0686'
            },
            calendar: {
                sameDay:
                    '[\u0628\u06c8\u06af\u06c8\u0646 \u0633\u0627\u0626\u06d5\u062a] LT',
                nextDay:
                    '[\u0626\u06d5\u062a\u06d5 \u0633\u0627\u0626\u06d5\u062a] LT',
                nextWeek:
                    '[\u0643\u06d0\u0644\u06d5\u0631\u0643\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT',
                lastDay: '[\u062a\u06c6\u0646\u06c8\u06af\u06c8\u0646] LT',
                lastWeek:
                    '[\u0626\u0627\u0644\u062f\u0649\u0646\u0642\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '%s \u0643\u06d0\u064a\u0649\u0646',
                past: '%s \u0628\u06c7\u0631\u06c7\u0646',
                s: '\u0646\u06d5\u0686\u0686\u06d5 \u0633\u06d0\u0643\u0648\u0646\u062a',
                ss: '%d \u0633\u06d0\u0643\u0648\u0646\u062a',
                m: '\u0628\u0649\u0631 \u0645\u0649\u0646\u06c7\u062a',
                mm: '%d \u0645\u0649\u0646\u06c7\u062a',
                h: '\u0628\u0649\u0631 \u0633\u0627\u0626\u06d5\u062a',
                hh: '%d \u0633\u0627\u0626\u06d5\u062a',
                d: '\u0628\u0649\u0631 \u0643\u06c8\u0646',
                dd: '%d \u0643\u06c8\u0646',
                M: '\u0628\u0649\u0631 \u0626\u0627\u064a',
                MM: '%d \u0626\u0627\u064a',
                y: '\u0628\u0649\u0631 \u064a\u0649\u0644',
                yy: '%d \u064a\u0649\u0644',
            },
            dayOfMonthOrdinalParse:
                /\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,
            ordinal: function (e, a) {
                switch (a) {
                    case 'd':
                    case 'D':
                    case 'DDD':
                        return e + '-\u0643\u06c8\u0646\u0649'
                    case 'w':
                    case 'W':
                        return e + '-\u06be\u06d5\u067e\u062a\u06d5'
                    default:
                        return e
                }
            },
            preparse: function (e) {
                return e.replace(/\u060c/g, ',')
            },
            postformat: function (e) {
                return e.replace(/,/g, '\u060c')
            },
            week: { dow: 1, doy: 7 },
        }),
        l.defineLocale('uk', {
            months: {
                format: '\u0441\u0456\u0447\u043d\u044f_\u043b\u044e\u0442\u043e\u0433\u043e_\u0431\u0435\u0440\u0435\u0437\u043d\u044f_\u043a\u0432\u0456\u0442\u043d\u044f_\u0442\u0440\u0430\u0432\u043d\u044f_\u0447\u0435\u0440\u0432\u043d\u044f_\u043b\u0438\u043f\u043d\u044f_\u0441\u0435\u0440\u043f\u043d\u044f_\u0432\u0435\u0440\u0435\u0441\u043d\u044f_\u0436\u043e\u0432\u0442\u043d\u044f_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043d\u044f'.split(
                    '_'
                ),
                standalone:
                    '\u0441\u0456\u0447\u0435\u043d\u044c_\u043b\u044e\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c_\u043a\u0432\u0456\u0442\u0435\u043d\u044c_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u0435\u0440\u0432\u0435\u043d\u044c_\u043b\u0438\u043f\u0435\u043d\u044c_\u0441\u0435\u0440\u043f\u0435\u043d\u044c_\u0432\u0435\u0440\u0435\u0441\u0435\u043d\u044c_\u0436\u043e\u0432\u0442\u0435\u043d\u044c_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043d\u044c'.split(
                        '_'
                    ),
            },
            monthsShort:
                '\u0441\u0456\u0447_\u043b\u044e\u0442_\u0431\u0435\u0440_\u043a\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043b\u0438\u043f_\u0441\u0435\u0440\u043f_\u0432\u0435\u0440_\u0436\u043e\u0432\u0442_\u043b\u0438\u0441\u0442_\u0433\u0440\u0443\u0434'.split(
                    '_'
                ),
            weekdays: function (e, a) {
                var t = {
                    nominative:
                        '\u043d\u0435\u0434\u0456\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f_\u0441\u0443\u0431\u043e\u0442\u0430'.split(
                            '_'
                        ),
                    accusative:
                        '\u043d\u0435\u0434\u0456\u043b\u044e_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044e_\u0441\u0443\u0431\u043e\u0442\u0443'.split(
                            '_'
                        ),
                    genitive:
                        '\u043d\u0435\u0434\u0456\u043b\u0456_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043a\u0430_\u0432\u0456\u0432\u0442\u043e\u0440\u043a\u0430_\u0441\u0435\u0440\u0435\u0434\u0438_\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u0456_\u0441\u0443\u0431\u043e\u0442\u0438'.split(
                            '_'
                        ),
                }
                return !0 === e
                    ? t.nominative.slice(1, 7).concat(t.nominative.slice(0, 1))
                    : e
                      ? t[
                            /(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(a)
                                ? 'accusative'
                                : /\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(
                                        a
                                    )
                                  ? 'genitive'
                                  : 'nominative'
                        ][e.day()]
                      : t.nominative
            },
            weekdaysShort:
                '\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431'.split(
                    '_'
                ),
            weekdaysMin:
                '\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431'.split(
                    '_'
                ),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD.MM.YYYY',
                LL: 'D MMMM YYYY \u0440.',
                LLL: 'D MMMM YYYY \u0440., HH:mm',
                LLLL: 'dddd, D MMMM YYYY \u0440., HH:mm',
            },
            calendar: {
                sameDay: Md(
                    '[\u0421\u044c\u043e\u0433\u043e\u0434\u043d\u0456 '
                ),
                nextDay: Md('[\u0417\u0430\u0432\u0442\u0440\u0430 '),
                lastDay: Md('[\u0412\u0447\u043e\u0440\u0430 '),
                nextWeek: Md('[\u0423] dddd ['),
                lastWeek: function () {
                    switch (this.day()) {
                        case 0:
                        case 3:
                        case 5:
                        case 6:
                            return Md(
                                '[\u041c\u0438\u043d\u0443\u043b\u043e\u0457] dddd ['
                            ).call(this)
                        case 1:
                        case 2:
                        case 4:
                            return Md(
                                '[\u041c\u0438\u043d\u0443\u043b\u043e\u0433\u043e] dddd ['
                            ).call(this)
                    }
                },
                sameElse: 'L',
            },
            relativeTime: {
                future: '\u0437\u0430 %s',
                past: '%s \u0442\u043e\u043c\u0443',
                s: '\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434',
                ss: ld,
                m: ld,
                mm: ld,
                h: '\u0433\u043e\u0434\u0438\u043d\u0443',
                hh: ld,
                d: '\u0434\u0435\u043d\u044c',
                dd: ld,
                M: '\u043c\u0456\u0441\u044f\u0446\u044c',
                MM: ld,
                y: '\u0440\u0456\u043a',
                yy: ld,
            },
            meridiemParse:
                /\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,
            isPM: function (e) {
                return /^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(
                    e
                )
            },
            meridiem: function (e, a, t) {
                return e < 4
                    ? '\u043d\u043e\u0447\u0456'
                    : e < 12
                      ? '\u0440\u0430\u043d\u043a\u0443'
                      : e < 17
                        ? '\u0434\u043d\u044f'
                        : '\u0432\u0435\u0447\u043e\u0440\u0430'
            },
            dayOfMonthOrdinalParse: /\d{1,2}-(\u0439|\u0433\u043e)/,
            ordinal: function (e, a) {
                switch (a) {
                    case 'M':
                    case 'd':
                    case 'DDD':
                    case 'w':
                    case 'W':
                        return e + '-\u0439'
                    case 'D':
                        return e + '-\u0433\u043e'
                    default:
                        return e
                }
            },
            week: { dow: 1, doy: 7 },
        })
    var hd = [
            '\u062c\u0646\u0648\u0631\u06cc',
            '\u0641\u0631\u0648\u0631\u06cc',
            '\u0645\u0627\u0631\u0686',
            '\u0627\u067e\u0631\u06cc\u0644',
            '\u0645\u0626\u06cc',
            '\u062c\u0648\u0646',
            '\u062c\u0648\u0644\u0627\u0626\u06cc',
            '\u0627\u06af\u0633\u062a',
            '\u0633\u062a\u0645\u0628\u0631',
            '\u0627\u06a9\u062a\u0648\u0628\u0631',
            '\u0646\u0648\u0645\u0628\u0631',
            '\u062f\u0633\u0645\u0628\u0631',
        ],
        Ld = [
            '\u0627\u062a\u0648\u0627\u0631',
            '\u067e\u06cc\u0631',
            '\u0645\u0646\u06af\u0644',
            '\u0628\u062f\u06be',
            '\u062c\u0645\u0639\u0631\u0627\u062a',
            '\u062c\u0645\u0639\u06c1',
            '\u06c1\u0641\u062a\u06c1',
        ]
    return (
        l.defineLocale('ur', {
            months: hd,
            monthsShort: hd,
            weekdays: Ld,
            weekdaysShort: Ld,
            weekdaysMin: Ld,
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd\u060c D MMMM YYYY HH:mm',
            },
            meridiemParse: /\u0635\u0628\u062d|\u0634\u0627\u0645/,
            isPM: function (e) {
                return '\u0634\u0627\u0645' === e
            },
            meridiem: function (e, a, t) {
                return e < 12 ? '\u0635\u0628\u062d' : '\u0634\u0627\u0645'
            },
            calendar: {
                sameDay: '[\u0622\u062c \u0628\u0648\u0642\u062a] LT',
                nextDay: '[\u06a9\u0644 \u0628\u0648\u0642\u062a] LT',
                nextWeek: 'dddd [\u0628\u0648\u0642\u062a] LT',
                lastDay:
                    '[\u06af\u0630\u0634\u062a\u06c1 \u0631\u0648\u0632 \u0628\u0648\u0642\u062a] LT',
                lastWeek:
                    '[\u06af\u0630\u0634\u062a\u06c1] dddd [\u0628\u0648\u0642\u062a] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '%s \u0628\u0639\u062f',
                past: '%s \u0642\u0628\u0644',
                s: '\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688',
                ss: '%d \u0633\u06cc\u06a9\u0646\u0688',
                m: '\u0627\u06cc\u06a9 \u0645\u0646\u0679',
                mm: '%d \u0645\u0646\u0679',
                h: '\u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1',
                hh: '%d \u06af\u06be\u0646\u0679\u06d2',
                d: '\u0627\u06cc\u06a9 \u062f\u0646',
                dd: '%d \u062f\u0646',
                M: '\u0627\u06cc\u06a9 \u0645\u0627\u06c1',
                MM: '%d \u0645\u0627\u06c1',
                y: '\u0627\u06cc\u06a9 \u0633\u0627\u0644',
                yy: '%d \u0633\u0627\u0644',
            },
            preparse: function (e) {
                return e.replace(/\u060c/g, ',')
            },
            postformat: function (e) {
                return e.replace(/,/g, '\u060c')
            },
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('uz-latn', {
            months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(
                '_'
            ),
            monthsShort:
                'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),
            weekdays:
                'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(
                    '_'
                ),
            weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
            weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'D MMMM YYYY, dddd HH:mm',
            },
            calendar: {
                sameDay: '[Bugun soat] LT [da]',
                nextDay: '[Ertaga] LT [da]',
                nextWeek: 'dddd [kuni soat] LT [da]',
                lastDay: '[Kecha soat] LT [da]',
                lastWeek: "[O'tgan] dddd [kuni soat] LT [da]",
                sameElse: 'L',
            },
            relativeTime: {
                future: 'Yaqin %s ichida',
                past: 'Bir necha %s oldin',
                s: 'soniya',
                ss: '%d soniya',
                m: 'bir daqiqa',
                mm: '%d daqiqa',
                h: 'bir soat',
                hh: '%d soat',
                d: 'bir kun',
                dd: '%d kun',
                M: 'bir oy',
                MM: '%d oy',
                y: 'bir yil',
                yy: '%d yil',
            },
            week: { dow: 1, doy: 7 },
        }),
        l.defineLocale('uz', {
            months: '\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440'.split(
                '_'
            ),
            monthsShort:
                '\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a'.split(
                    '_'
                ),
            weekdays:
                '\u042f\u043a\u0448\u0430\u043d\u0431\u0430_\u0414\u0443\u0448\u0430\u043d\u0431\u0430_\u0421\u0435\u0448\u0430\u043d\u0431\u0430_\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430_\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430_\u0416\u0443\u043c\u0430_\u0428\u0430\u043d\u0431\u0430'.split(
                    '_'
                ),
            weekdaysShort:
                '\u042f\u043a\u0448_\u0414\u0443\u0448_\u0421\u0435\u0448_\u0427\u043e\u0440_\u041f\u0430\u0439_\u0416\u0443\u043c_\u0428\u0430\u043d'.split(
                    '_'
                ),
            weekdaysMin:
                '\u042f\u043a_\u0414\u0443_\u0421\u0435_\u0427\u043e_\u041f\u0430_\u0416\u0443_\u0428\u0430'.split(
                    '_'
                ),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'D MMMM YYYY, dddd HH:mm',
            },
            calendar: {
                sameDay:
                    '[\u0411\u0443\u0433\u0443\u043d \u0441\u043e\u0430\u0442] LT [\u0434\u0430]',
                nextDay:
                    '[\u042d\u0440\u0442\u0430\u0433\u0430] LT [\u0434\u0430]',
                nextWeek:
                    'dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]',
                lastDay:
                    '[\u041a\u0435\u0447\u0430 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]',
                lastWeek:
                    '[\u0423\u0442\u0433\u0430\u043d] dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]',
                sameElse: 'L',
            },
            relativeTime: {
                future: '\u042f\u043a\u0438\u043d %s \u0438\u0447\u0438\u0434\u0430',
                past: '\u0411\u0438\u0440 \u043d\u0435\u0447\u0430 %s \u043e\u043b\u0434\u0438\u043d',
                s: '\u0444\u0443\u0440\u0441\u0430\u0442',
                ss: '%d \u0444\u0443\u0440\u0441\u0430\u0442',
                m: '\u0431\u0438\u0440 \u0434\u0430\u043a\u0438\u043a\u0430',
                mm: '%d \u0434\u0430\u043a\u0438\u043a\u0430',
                h: '\u0431\u0438\u0440 \u0441\u043e\u0430\u0442',
                hh: '%d \u0441\u043e\u0430\u0442',
                d: '\u0431\u0438\u0440 \u043a\u0443\u043d',
                dd: '%d \u043a\u0443\u043d',
                M: '\u0431\u0438\u0440 \u043e\u0439',
                MM: '%d \u043e\u0439',
                y: '\u0431\u0438\u0440 \u0439\u0438\u043b',
                yy: '%d \u0439\u0438\u043b',
            },
            week: { dow: 1, doy: 7 },
        }),
        l.defineLocale('vi', {
            months: 'th\xe1ng 1_th\xe1ng 2_th\xe1ng 3_th\xe1ng 4_th\xe1ng 5_th\xe1ng 6_th\xe1ng 7_th\xe1ng 8_th\xe1ng 9_th\xe1ng 10_th\xe1ng 11_th\xe1ng 12'.split(
                '_'
            ),
            monthsShort:
                'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'ch\u1ee7 nh\u1eadt_th\u1ee9 hai_th\u1ee9 ba_th\u1ee9 t\u01b0_th\u1ee9 n\u0103m_th\u1ee9 s\xe1u_th\u1ee9 b\u1ea3y'.split(
                    '_'
                ),
            weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
            weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
            weekdaysParseExact: !0,
            meridiemParse: /sa|ch/i,
            isPM: function (e) {
                return /^ch$/i.test(e)
            },
            meridiem: function (e, a, t) {
                return e < 12 ? (t ? 'sa' : 'SA') : t ? 'ch' : 'CH'
            },
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM [n\u0103m] YYYY',
                LLL: 'D MMMM [n\u0103m] YYYY HH:mm',
                LLLL: 'dddd, D MMMM [n\u0103m] YYYY HH:mm',
                l: 'DD/M/YYYY',
                ll: 'D MMM YYYY',
                lll: 'D MMM YYYY HH:mm',
                llll: 'ddd, D MMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[H\xf4m nay l\xfac] LT',
                nextDay: '[Ng\xe0y mai l\xfac] LT',
                nextWeek: 'dddd [tu\u1ea7n t\u1edbi l\xfac] LT',
                lastDay: '[H\xf4m qua l\xfac] LT',
                lastWeek: 'dddd [tu\u1ea7n r\u1ed3i l\xfac] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '%s t\u1edbi',
                past: '%s tr\u01b0\u1edbc',
                s: 'v\xe0i gi\xe2y',
                ss: '%d gi\xe2y',
                m: 'm\u1ed9t ph\xfat',
                mm: '%d ph\xfat',
                h: 'm\u1ed9t gi\u1edd',
                hh: '%d gi\u1edd',
                d: 'm\u1ed9t ng\xe0y',
                dd: '%d ng\xe0y',
                M: 'm\u1ed9t th\xe1ng',
                MM: '%d th\xe1ng',
                y: 'm\u1ed9t n\u0103m',
                yy: '%d n\u0103m',
            },
            dayOfMonthOrdinalParse: /\d{1,2}/,
            ordinal: function (e) {
                return e
            },
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('x-pseudo', {
            months: 'J~\xe1\xf1\xfa\xe1~r\xfd_F~\xe9br\xfa~\xe1r\xfd_~M\xe1rc~h_\xc1p~r\xedl_~M\xe1\xfd_~J\xfa\xf1\xe9~_J\xfal~\xfd_\xc1\xfa~g\xfast~_S\xe9p~t\xe9mb~\xe9r_\xd3~ct\xf3b~\xe9r_\xd1~\xf3v\xe9m~b\xe9r_~D\xe9c\xe9~mb\xe9r'.split(
                '_'
            ),
            monthsShort:
                'J~\xe1\xf1_~F\xe9b_~M\xe1r_~\xc1pr_~M\xe1\xfd_~J\xfa\xf1_~J\xfal_~\xc1\xfag_~S\xe9p_~\xd3ct_~\xd1\xf3v_~D\xe9c'.split(
                    '_'
                ),
            monthsParseExact: !0,
            weekdays:
                'S~\xfa\xf1d\xe1~\xfd_M\xf3~\xf1d\xe1\xfd~_T\xfa\xe9~sd\xe1\xfd~_W\xe9d~\xf1\xe9sd~\xe1\xfd_T~h\xfars~d\xe1\xfd_~Fr\xedd~\xe1\xfd_S~\xe1t\xfar~d\xe1\xfd'.split(
                    '_'
                ),
            weekdaysShort:
                'S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t'.split(
                    '_'
                ),
            weekdaysMin: 'S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
                LT: 'HH:mm',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY HH:mm',
                LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
                sameDay: '[T~\xf3d\xe1~\xfd \xe1t] LT',
                nextDay: '[T~\xf3m\xf3~rr\xf3~w \xe1t] LT',
                nextWeek: 'dddd [\xe1t] LT',
                lastDay: '[\xdd~\xe9st~\xe9rd\xe1~\xfd \xe1t] LT',
                lastWeek: '[L~\xe1st] dddd [\xe1t] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: '\xed~\xf1 %s',
                past: '%s \xe1~g\xf3',
                s: '\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds',
                ss: '%d s~\xe9c\xf3\xf1~ds',
                m: '\xe1 ~m\xed\xf1~\xfat\xe9',
                mm: '%d m~\xed\xf1\xfa~t\xe9s',
                h: '\xe1~\xf1 h\xf3~\xfar',
                hh: '%d h~\xf3\xfars',
                d: '\xe1 ~d\xe1\xfd',
                dd: '%d d~\xe1\xfds',
                M: '\xe1 ~m\xf3\xf1~th',
                MM: '%d m~\xf3\xf1t~hs',
                y: '\xe1 ~\xfd\xe9\xe1r',
                yy: '%d \xfd~\xe9\xe1rs',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
            ordinal: function (e) {
                var a = e % 10
                return (
                    e +
                    (1 == ~~((e % 100) / 10)
                        ? 'th'
                        : 1 === a
                          ? 'st'
                          : 2 === a
                            ? 'nd'
                            : 3 === a
                              ? 'rd'
                              : 'th')
                )
            },
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('yo', {
            months: 'S\u1eb9\u0301r\u1eb9\u0301_E\u0300re\u0300le\u0300_\u1eb8r\u1eb9\u0300na\u0300_I\u0300gbe\u0301_E\u0300bibi_O\u0300ku\u0300du_Ag\u1eb9mo_O\u0300gu\u0301n_Owewe_\u1ecc\u0300wa\u0300ra\u0300_Be\u0301lu\u0301_\u1ecc\u0300p\u1eb9\u0300\u0300'.split(
                '_'
            ),
            monthsShort:
                'S\u1eb9\u0301r_E\u0300rl_\u1eb8rn_I\u0300gb_E\u0300bi_O\u0300ku\u0300_Ag\u1eb9_O\u0300gu\u0301_Owe_\u1ecc\u0300wa\u0300_Be\u0301l_\u1ecc\u0300p\u1eb9\u0300\u0300'.split(
                    '_'
                ),
            weekdays:
                'A\u0300i\u0300ku\u0301_Aje\u0301_I\u0300s\u1eb9\u0301gun_\u1eccj\u1ecd\u0301ru\u0301_\u1eccj\u1ecd\u0301b\u1ecd_\u1eb8ti\u0300_A\u0300ba\u0301m\u1eb9\u0301ta'.split(
                    '_'
                ),
            weekdaysShort:
                'A\u0300i\u0300k_Aje\u0301_I\u0300s\u1eb9\u0301_\u1eccjr_\u1eccjb_\u1eb8ti\u0300_A\u0300ba\u0301'.split(
                    '_'
                ),
            weekdaysMin:
                'A\u0300i\u0300_Aj_I\u0300s_\u1eccr_\u1eccb_\u1eb8t_A\u0300b'.split(
                    '_'
                ),
            longDateFormat: {
                LT: 'h:mm A',
                LTS: 'h:mm:ss A',
                L: 'DD/MM/YYYY',
                LL: 'D MMMM YYYY',
                LLL: 'D MMMM YYYY h:mm A',
                LLLL: 'dddd, D MMMM YYYY h:mm A',
            },
            calendar: {
                sameDay: '[O\u0300ni\u0300 ni] LT',
                nextDay: '[\u1ecc\u0300la ni] LT',
                nextWeek:
                    "dddd [\u1eccs\u1eb9\u0300 to\u0301n'b\u1ecd] [ni] LT",
                lastDay: '[A\u0300na ni] LT',
                lastWeek:
                    'dddd [\u1eccs\u1eb9\u0300 to\u0301l\u1ecd\u0301] [ni] LT',
                sameElse: 'L',
            },
            relativeTime: {
                future: 'ni\u0301 %s',
                past: '%s k\u1ecdja\u0301',
                s: 'i\u0300s\u1eb9ju\u0301 aaya\u0301 die',
                ss: 'aaya\u0301 %d',
                m: 'i\u0300s\u1eb9ju\u0301 kan',
                mm: 'i\u0300s\u1eb9ju\u0301 %d',
                h: 'wa\u0301kati kan',
                hh: 'wa\u0301kati %d',
                d: '\u1ecdj\u1ecd\u0301 kan',
                dd: '\u1ecdj\u1ecd\u0301 %d',
                M: 'osu\u0300 kan',
                MM: 'osu\u0300 %d',
                y: '\u1ecddu\u0301n kan',
                yy: '\u1ecddu\u0301n %d',
            },
            dayOfMonthOrdinalParse: /\u1ecdj\u1ecd\u0301\s\d{1,2}/,
            ordinal: '\u1ecdj\u1ecd\u0301 %d',
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('zh-cn', {
            months: '\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708'.split(
                '_'
            ),
            monthsShort:
                '1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708'.split(
                    '_'
                ),
            weekdays:
                '\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d'.split(
                    '_'
                ),
            weekdaysShort:
                '\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d'.split(
                    '_'
                ),
            weekdaysMin:
                '\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'YYYY/MM/DD',
                LL: 'YYYY\u5e74M\u6708D\u65e5',
                LLL: 'YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206',
                LLLL: 'YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206',
                l: 'YYYY/M/D',
                ll: 'YYYY\u5e74M\u6708D\u65e5',
                lll: 'YYYY\u5e74M\u6708D\u65e5 HH:mm',
                llll: 'YYYY\u5e74M\u6708D\u65e5dddd HH:mm',
            },
            meridiemParse:
                /\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,
            meridiemHour: function (e, a) {
                return (
                    12 === e && (e = 0),
                    '\u51cc\u6668' === a ||
                    '\u65e9\u4e0a' === a ||
                    '\u4e0a\u5348' === a
                        ? e
                        : '\u4e0b\u5348' === a || '\u665a\u4e0a' === a
                          ? e + 12
                          : 11 <= e
                            ? e
                            : e + 12
                )
            },
            meridiem: function (e, a, t) {
                var s = 100 * e + a
                return s < 600
                    ? '\u51cc\u6668'
                    : s < 900
                      ? '\u65e9\u4e0a'
                      : s < 1130
                        ? '\u4e0a\u5348'
                        : s < 1230
                          ? '\u4e2d\u5348'
                          : s < 1800
                            ? '\u4e0b\u5348'
                            : '\u665a\u4e0a'
            },
            calendar: {
                sameDay: '[\u4eca\u5929]LT',
                nextDay: '[\u660e\u5929]LT',
                nextWeek: '[\u4e0b]ddddLT',
                lastDay: '[\u6628\u5929]LT',
                lastWeek: '[\u4e0a]ddddLT',
                sameElse: 'L',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(\u65e5|\u6708|\u5468)/,
            ordinal: function (e, a) {
                switch (a) {
                    case 'd':
                    case 'D':
                    case 'DDD':
                        return e + '\u65e5'
                    case 'M':
                        return e + '\u6708'
                    case 'w':
                    case 'W':
                        return e + '\u5468'
                    default:
                        return e
                }
            },
            relativeTime: {
                future: '%s\u5185',
                past: '%s\u524d',
                s: '\u51e0\u79d2',
                ss: '%d \u79d2',
                m: '1 \u5206\u949f',
                mm: '%d \u5206\u949f',
                h: '1 \u5c0f\u65f6',
                hh: '%d \u5c0f\u65f6',
                d: '1 \u5929',
                dd: '%d \u5929',
                M: '1 \u4e2a\u6708',
                MM: '%d \u4e2a\u6708',
                y: '1 \u5e74',
                yy: '%d \u5e74',
            },
            week: { dow: 1, doy: 4 },
        }),
        l.defineLocale('zh-hk', {
            months: '\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708'.split(
                '_'
            ),
            monthsShort:
                '1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708'.split(
                    '_'
                ),
            weekdays:
                '\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d'.split(
                    '_'
                ),
            weekdaysShort:
                '\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d'.split(
                    '_'
                ),
            weekdaysMin:
                '\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'YYYY/MM/DD',
                LL: 'YYYY\u5e74M\u6708D\u65e5',
                LLL: 'YYYY\u5e74M\u6708D\u65e5 HH:mm',
                LLLL: 'YYYY\u5e74M\u6708D\u65e5dddd HH:mm',
                l: 'YYYY/M/D',
                ll: 'YYYY\u5e74M\u6708D\u65e5',
                lll: 'YYYY\u5e74M\u6708D\u65e5 HH:mm',
                llll: 'YYYY\u5e74M\u6708D\u65e5dddd HH:mm',
            },
            meridiemParse:
                /\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,
            meridiemHour: function (e, a) {
                return (
                    12 === e && (e = 0),
                    '\u51cc\u6668' === a ||
                    '\u65e9\u4e0a' === a ||
                    '\u4e0a\u5348' === a
                        ? e
                        : '\u4e2d\u5348' === a
                          ? 11 <= e
                              ? e
                              : e + 12
                          : '\u4e0b\u5348' === a || '\u665a\u4e0a' === a
                            ? e + 12
                            : void 0
                )
            },
            meridiem: function (e, a, t) {
                var s = 100 * e + a
                return s < 600
                    ? '\u51cc\u6668'
                    : s < 900
                      ? '\u65e9\u4e0a'
                      : s < 1130
                        ? '\u4e0a\u5348'
                        : s < 1230
                          ? '\u4e2d\u5348'
                          : s < 1800
                            ? '\u4e0b\u5348'
                            : '\u665a\u4e0a'
            },
            calendar: {
                sameDay: '[\u4eca\u5929]LT',
                nextDay: '[\u660e\u5929]LT',
                nextWeek: '[\u4e0b]ddddLT',
                lastDay: '[\u6628\u5929]LT',
                lastWeek: '[\u4e0a]ddddLT',
                sameElse: 'L',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(\u65e5|\u6708|\u9031)/,
            ordinal: function (e, a) {
                switch (a) {
                    case 'd':
                    case 'D':
                    case 'DDD':
                        return e + '\u65e5'
                    case 'M':
                        return e + '\u6708'
                    case 'w':
                    case 'W':
                        return e + '\u9031'
                    default:
                        return e
                }
            },
            relativeTime: {
                future: '%s\u5167',
                past: '%s\u524d',
                s: '\u5e7e\u79d2',
                ss: '%d \u79d2',
                m: '1 \u5206\u9418',
                mm: '%d \u5206\u9418',
                h: '1 \u5c0f\u6642',
                hh: '%d \u5c0f\u6642',
                d: '1 \u5929',
                dd: '%d \u5929',
                M: '1 \u500b\u6708',
                MM: '%d \u500b\u6708',
                y: '1 \u5e74',
                yy: '%d \u5e74',
            },
        }),
        l.defineLocale('zh-tw', {
            months: '\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708'.split(
                '_'
            ),
            monthsShort:
                '1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708'.split(
                    '_'
                ),
            weekdays:
                '\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d'.split(
                    '_'
                ),
            weekdaysShort:
                '\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d'.split(
                    '_'
                ),
            weekdaysMin:
                '\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d'.split('_'),
            longDateFormat: {
                LT: 'HH:mm',
                LTS: 'HH:mm:ss',
                L: 'YYYY/MM/DD',
                LL: 'YYYY\u5e74M\u6708D\u65e5',
                LLL: 'YYYY\u5e74M\u6708D\u65e5 HH:mm',
                LLLL: 'YYYY\u5e74M\u6708D\u65e5dddd HH:mm',
                l: 'YYYY/M/D',
                ll: 'YYYY\u5e74M\u6708D\u65e5',
                lll: 'YYYY\u5e74M\u6708D\u65e5 HH:mm',
                llll: 'YYYY\u5e74M\u6708D\u65e5dddd HH:mm',
            },
            meridiemParse:
                /\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,
            meridiemHour: function (e, a) {
                return (
                    12 === e && (e = 0),
                    '\u51cc\u6668' === a ||
                    '\u65e9\u4e0a' === a ||
                    '\u4e0a\u5348' === a
                        ? e
                        : '\u4e2d\u5348' === a
                          ? 11 <= e
                              ? e
                              : e + 12
                          : '\u4e0b\u5348' === a || '\u665a\u4e0a' === a
                            ? e + 12
                            : void 0
                )
            },
            meridiem: function (e, a, t) {
                var s = 100 * e + a
                return s < 600
                    ? '\u51cc\u6668'
                    : s < 900
                      ? '\u65e9\u4e0a'
                      : s < 1130
                        ? '\u4e0a\u5348'
                        : s < 1230
                          ? '\u4e2d\u5348'
                          : s < 1800
                            ? '\u4e0b\u5348'
                            : '\u665a\u4e0a'
            },
            calendar: {
                sameDay: '[\u4eca\u5929] LT',
                nextDay: '[\u660e\u5929] LT',
                nextWeek: '[\u4e0b]dddd LT',
                lastDay: '[\u6628\u5929] LT',
                lastWeek: '[\u4e0a]dddd LT',
                sameElse: 'L',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(\u65e5|\u6708|\u9031)/,
            ordinal: function (e, a) {
                switch (a) {
                    case 'd':
                    case 'D':
                    case 'DDD':
                        return e + '\u65e5'
                    case 'M':
                        return e + '\u6708'
                    case 'w':
                    case 'W':
                        return e + '\u9031'
                    default:
                        return e
                }
            },
            relativeTime: {
                future: '%s\u5167',
                past: '%s\u524d',
                s: '\u5e7e\u79d2',
                ss: '%d \u79d2',
                m: '1 \u5206\u9418',
                mm: '%d \u5206\u9418',
                h: '1 \u5c0f\u6642',
                hh: '%d \u5c0f\u6642',
                d: '1 \u5929',
                dd: '%d \u5929',
                M: '1 \u500b\u6708',
                MM: '%d \u500b\u6708',
                y: '1 \u5e74',
                yy: '%d \u5e74',
            },
        }),
        l.locale('en'),
        l
    )
})

/*!
    Rescalendar.js - https://cesarchas.es/rescalendar
    Licensed under the MIT license - http://opensource.org/licenses/MIT
    
    Copyright (c) 2019 César Chas
    */

/*!
    Rescalendar.js - https://cesarchas.es/rescalendar
    Licensed under the MIT license - http://opensource.org/licenses/MIT
    
    Copyright (c) 2019 César Chas
    */
;(function ($) {
    $.fn.rescalendar = function (options) {
        function alert_error(error_message) {
            return [
                '<div class="error_wrapper">',

                '<div class="thumbnail_image vertical-center">',

                '<p>',
                '<span class="error">',
                error_message,
                '</span>',
                '</p>',
                '</div>',

                '</div>',
            ].join('')
        }

        function set_template(targetObj, settings) {
            var template = '',
                id = targetObj.attr('id') || ''

            if (id == '' || settings.dataKeyValues.length == 0) {
                targetObj.html(
                    alert_error(
                        settings.lang.init_error + ': No id or dataKeyValues'
                    )
                )
                return false
            }

            if (settings.refDate.length != 10) {
                targetObj.html(alert_error(settings.lang.no_ref_date))
                return false
            }

            template = settings.template_html(targetObj, settings)

            targetObj.html(template)

            return true
        }

        function dateInRange(date, startDate, endDate) {
            if (date == startDate || date == endDate) {
                return true
            }

            var date1 = moment(startDate, settings.format),
                date2 = moment(endDate, settings.format),
                date_compare = moment(date, settings.format)

            return date_compare.isBetween(date1, date2, null, '[]')
        }

        function dataInSet(data, name, date) {
            var obj_data = {}

            for (var i = 0; i < data.length; i++) {
                obj_data = data[i]

                if (
                    name == obj_data.name &&
                    dateInRange(date, obj_data.startDate, obj_data.endDate)
                ) {
                    return obj_data
                }
            }

            return false
        }

        function setData(targetObj, dataKeyValues, data) {
            var html = '',
                dataKeyValues = settings.dataKeyValues,
                data = settings.data,
                arr_dates = [],
                name = '',
                content = '',
                hasEventClass = '',
                customClass = '',
                classInSet = false,
                obj_data = {}

            targetObj.find('td.day_cell').each(function (index, value) {
                arr_dates.push($(this).attr('data-cellDate'))
            })

            for (var i = 0; i < dataKeyValues.length; i++) {
                content = ''
                date = ''
                name = dataKeyValues[i]

                html += '<tr class="dataRow">'
                html += '<td class="firstColumn">' + name + '</td>'

                for (var j = 0; j < arr_dates.length; j++) {
                    title = ''
                    date = arr_dates[j]
                    obj_data = dataInSet(data, name, date)

                    if (typeof obj_data === 'object') {
                        if (obj_data.title) {
                            title = ' title="' + obj_data.title + '" '
                        }

                        content = '<a href="#" ' + title + '>&nbsp;</a>'
                        hasEventClass = 'hasEvent'
                        customClass = obj_data.customClass
                    } else {
                        content = ' '
                        hasEventClass = ''
                        customClass = ''
                    }

                    html +=
                        '<td data-date="' +
                        date +
                        '" data-name="' +
                        name +
                        '" class="data_cell ' +
                        hasEventClass +
                        ' ' +
                        customClass +
                        '">' +
                        content +
                        '</td>'
                }

                html += '</tr>'
            }

            targetObj.find('.rescalendar_data_rows').html(html)
        }

        function setDayCells(targetObj, refDate) {
            var format = settings.format,
                f_inicio = moment(refDate, format).subtract(
                    settings.jumpSize,
                    'days'
                ),
                f_fin = moment(refDate, format).add(settings.jumpSize, 'days'),
                today = moment().startOf('day'),
                html = '<td class="firstColumn"></td>',
                f_aux = '',
                f_aux_format = '',
                dia = '',
                dia_semana = '',
                num_dia_semana = 0,
                mes = '',
                clase_today = '',
                clase_middleDay = '',
                clase_disabled = '',
                middleDay = targetObj.find('input.refDate').val()

            for (var i = 0; i < settings.calSize + 1; i++) {
                clase_disabled = ''

                f_aux = moment(f_inicio).add(i, 'days')
                f_aux_format = f_aux.format(format)

                dia = f_aux.format('DD')
                mes = f_aux
                    .locale(settings.locale)
                    .format('MMM')
                    .replace('.', '')
                dia_semana = f_aux.locale(settings.locale).format('dd')
                num_dia_semana = f_aux.day()

                f_aux_format == today.format(format)
                    ? (clase_today = 'today')
                    : (clase_today = '')
                f_aux_format == middleDay
                    ? (clase_middleDay = 'middleDay')
                    : (clase_middleDay = '')

                if (
                    settings.disabledDays.indexOf(f_aux_format) > -1 ||
                    settings.disabledWeekDays.indexOf(num_dia_semana) > -1
                ) {
                    clase_disabled = 'disabledDay'
                }

                html += [
                    '<td class="day_cell ' +
                        clase_today +
                        ' ' +
                        clase_middleDay +
                        ' ' +
                        clase_disabled +
                        '" data-cellDate="' +
                        f_aux_format +
                        '"><div class="cell_inner">',
                    /*'<span class="dia_semana">' + dia_semana + '</span>',*/
                    '<span class="mes">' + mes + '</span>',
                    '<span class="dia">' + dia + '</span>',
                    '</div></td>',
                ].join('')
            }

            targetObj.find('.rescalendar_day_cells').html(html)

            addTdClickEvent(targetObj)

            setData(targetObj)
        }

        function addTdClickEvent(targetObj) {
            var day_cell = targetObj.find('td.day_cell')

            day_cell.on('click', function (e) {
                var cellDate = e.currentTarget.attributes['data-cellDate'].value

                targetObj.find('input.refDate').val(cellDate)

                setDayCells(targetObj, moment(cellDate, settings.format))
            })
        }

        function change_day(targetObj, action, num_days) {
            var refDate = targetObj.find('input.refDate').val(),
                f_ref = ''

            if (action == 'subtract') {
                f_ref = moment(refDate, settings.format).subtract(
                    num_days,
                    'days'
                )
            } else {
                f_ref = moment(refDate, settings.format).add(num_days, 'days')
            }

            targetObj.find('input.refDate').val(f_ref.format(settings.format))

            setDayCells(targetObj, f_ref)
        }

        // INITIALIZATION
        var settings = $.extend(
            {
                id: 'rescalendar',
                format: 'YYYY-MM-DD',
                refDate: moment().format('YYYY-MM-DD'),
                jumpSize: 15,
                calSize: 30,
                locale: 'en',
                disabledDays: [],
                disabledWeekDays: [],
                dataKeyField: 'name',
                dataKeyValues: [],
                data: {},

                lang: {
                    init_error: 'Error when initializing',
                    no_data_error: 'No data found',
                    no_ref_date: 'No refDate found',
                    today: 'Today',
                },

                template_html: function (targetObj, settings) {
                    var id = targetObj.attr('id'),
                        refDate = settings.refDate

                    return [
                        '<div class="rescalendar ',
                        id,
                        '_wrapper">',

                        '<div class="rescalendar_controls">',

                        '<button class="move_to_last_month"> << </button>',
                        '<button class="move_to_yesterday"> < </button>',

                        '<input class="refDate" type="text" value="' +
                            refDate +
                            '" />',

                        '<button class="move_to_tomorrow"> > </button>',
                        '<button class="move_to_next_month"> >> </button>',

                        '<br>',
                        '<button class="move_to_today"> ' +
                            settings.lang.today +
                            ' </button>',

                        '</div>',

                        '<div class="rescalendar_table_wrapper"><button class="move_to_yesterday"></button><table class="rescalendar_table">',
                        '<thead>',
                        '<tr class="rescalendar_day_cells"></tr>',
                        '</thead>',
                        '<tbody class="rescalendar_data_rows">',

                        '</tbody>',
                        '</table><button class="move_to_tomorrow"></button></div>',

                        '</div>',
                    ].join('')
                },
            },
            options
        )

        return this.each(function () {
            var targetObj = $(this)

            set_template(targetObj, settings)

            setDayCells(targetObj, settings.refDate)

            // Events
            var move_to_last_month = targetObj.find('.move_to_last_month'),
                move_to_yesterday = targetObj.find('.move_to_yesterday'),
                move_to_tomorrow = targetObj.find('.move_to_tomorrow'),
                move_to_next_month = targetObj.find('.move_to_next_month'),
                move_to_today = targetObj.find('.move_to_today'),
                refDate = targetObj.find('.refDate')

            move_to_last_month.on('click', function (e) {
                change_day(targetObj, 'subtract', settings.jumpSize)
            })

            move_to_yesterday.on('click', function (e) {
                change_day(targetObj, 'subtract', 1)
            })

            move_to_tomorrow.on('click', function (e) {
                change_day(targetObj, 'add', 1)
            })

            move_to_next_month.on('click', function (e) {
                change_day(targetObj, 'add', settings.jumpSize)
            })

            refDate.on('blur', function (e) {
                var refDate = targetObj.find('input.refDate').val()
                setDayCells(targetObj, refDate)
            })

            move_to_today.on('click', function (e) {
                var today = moment().startOf('day').format(settings.format)
                targetObj.find('input.refDate').val(today)

                setDayCells(targetObj, today)
            })

            return this
        })
    } // end rescalendar plugin
})(jQuery)

/* END horizontal calendar */

/* START select country phone code
 * International Telephone Input v17.0.19
 * https://github.com/jackocnr/intl-tel-input.git
 * Licensed under the MIT license
 */

!(function (a) {
    'object' == typeof module && module.exports
        ? (module.exports = a())
        : (window.intlTelInput = a())
})(function (a) {
    'use strict'
    return (function () {
        function b(a, b) {
            if (!(a instanceof b))
                throw new TypeError('Cannot call a class as a function')
        }
        function c(a, b) {
            for (var c = 0; c < b.length; c++) {
                var d = b[c]
                ;(d.enumerable = d.enumerable || !1),
                    (d.configurable = !0),
                    'value' in d && (d.writable = !0),
                    Object.defineProperty(a, d.key, d)
            }
        }
        function d(a, b, d) {
            return b && c(a.prototype, b), d && c(a, d), a
        }
        for (
            var e = [
                    ['Afghanistan (‫افغانستان‬‎)', 'af', '93'],
                    ['Albania (Shqipëri)', 'al', '355'],
                    ['Algeria (‫الجزائر‬‎)', 'dz', '213'],
                    ['American Samoa', 'as', '1', 5, ['684']],
                    ['Andorra', 'ad', '376'],
                    ['Angola', 'ao', '244'],
                    ['Anguilla', 'ai', '1', 6, ['264']],
                    ['Antigua and Barbuda', 'ag', '1', 7, ['268']],
                    ['Argentina', 'ar', '54'],
                    ['Armenia (Հայաստան)', 'am', '374'],
                    ['Aruba', 'aw', '297'],
                    ['Ascension Island', 'ac', '247'],
                    ['Australia', 'au', '61', 0],
                    ['Austria (Österreich)', 'at', '43'],
                    ['Azerbaijan (Azərbaycan)', 'az', '994'],
                    ['Bahamas', 'bs', '1', 8, ['242']],
                    ['Bahrain (‫البحرين‬‎)', 'bh', '973'],
                    ['Bangladesh (বাংলাদেশ)', 'bd', '880'],
                    ['Barbados', 'bb', '1', 9, ['246']],
                    ['Belarus (Беларусь)', 'by', '375'],
                    ['Belgium (België)', 'be', '32'],
                    ['Belize', 'bz', '501'],
                    ['Benin (Bénin)', 'bj', '229'],
                    ['Bermuda', 'bm', '1', 10, ['441']],
                    ['Bhutan (འབྲུག)', 'bt', '975'],
                    ['Bolivia', 'bo', '591'],
                    [
                        'Bosnia and Herzegovina (Босна и Херцеговина)',
                        'ba',
                        '387',
                    ],
                    ['Botswana', 'bw', '267'],
                    ['Brazil (Brasil)', 'br', '55'],
                    ['British Indian Ocean Territory', 'io', '246'],
                    ['British Virgin Islands', 'vg', '1', 11, ['284']],
                    ['Brunei', 'bn', '673'],
                    ['Bulgaria (България)', 'bg', '359'],
                    ['Burkina Faso', 'bf', '226'],
                    ['Burundi (Uburundi)', 'bi', '257'],
                    ['Cambodia (កម្ពុជា)', 'kh', '855'],
                    ['Cameroon (Cameroun)', 'cm', '237'],
                    [
                        'Canada',
                        'ca',
                        '1',
                        1,
                        [
                            '204',
                            '226',
                            '236',
                            '249',
                            '250',
                            '289',
                            '306',
                            '343',
                            '365',
                            '387',
                            '403',
                            '416',
                            '418',
                            '431',
                            '437',
                            '438',
                            '450',
                            '506',
                            '514',
                            '519',
                            '548',
                            '579',
                            '581',
                            '587',
                            '604',
                            '613',
                            '639',
                            '647',
                            '672',
                            '705',
                            '709',
                            '742',
                            '778',
                            '780',
                            '782',
                            '807',
                            '819',
                            '825',
                            '867',
                            '873',
                            '902',
                            '905',
                        ],
                    ],
                    ['Cape Verde (Kabu Verdi)', 'cv', '238'],
                    ['Caribbean Netherlands', 'bq', '599', 1, ['3', '4', '7']],
                    ['Cayman Islands', 'ky', '1', 12, ['345']],
                    [
                        'Central African Republic (République centrafricaine)',
                        'cf',
                        '236',
                    ],
                    ['Chad (Tchad)', 'td', '235'],
                    ['Chile', 'cl', '56'],
                    ['China (中国)', 'cn', '86'],
                    ['Christmas Island', 'cx', '61', 2, ['89164']],
                    ['Cocos (Keeling) Islands', 'cc', '61', 1, ['89162']],
                    ['Colombia', 'co', '57'],
                    ['Comoros (‫جزر القمر‬‎)', 'km', '269'],
                    [
                        'Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)',
                        'cd',
                        '243',
                    ],
                    ['Congo (Republic) (Congo-Brazzaville)', 'cg', '242'],
                    ['Cook Islands', 'ck', '682'],
                    ['Costa Rica', 'cr', '506'],
                    ['Côte d’Ivoire', 'ci', '225'],
                    ['Croatia (Hrvatska)', 'hr', '385'],
                    ['Cuba', 'cu', '53'],
                    ['Curaçao', 'cw', '599', 0],
                    ['Cyprus (Κύπρος)', 'cy', '357'],
                    ['Czech Republic (Česká republika)', 'cz', '420'],
                    ['Denmark (Danmark)', 'dk', '45'],
                    ['Djibouti', 'dj', '253'],
                    ['Dominica', 'dm', '1', 13, ['767']],
                    [
                        'Dominican Republic (República Dominicana)',
                        'do',
                        '1',
                        2,
                        ['809', '829', '849'],
                    ],
                    ['Ecuador', 'ec', '593'],
                    ['Egypt (‫مصر‬‎)', 'eg', '20'],
                    ['El Salvador', 'sv', '503'],
                    ['Equatorial Guinea (Guinea Ecuatorial)', 'gq', '240'],
                    ['Eritrea', 'er', '291'],
                    ['Estonia (Eesti)', 'ee', '372'],
                    ['Eswatini', 'sz', '268'],
                    ['Ethiopia', 'et', '251'],
                    ['Falkland Islands (Islas Malvinas)', 'fk', '500'],
                    ['Faroe Islands (Føroyar)', 'fo', '298'],
                    ['Fiji', 'fj', '679'],
                    ['Finland (Suomi)', 'fi', '358', 0],
                    ['France', 'fr', '33'],
                    ['French Guiana (Guyane française)', 'gf', '594'],
                    ['French Polynesia (Polynésie française)', 'pf', '689'],
                    ['Gabon', 'ga', '241'],
                    ['Gambia', 'gm', '220'],
                    ['Georgia (საქართველო)', 'ge', '995'],
                    ['Germany (Deutschland)', 'de', '49'],
                    ['Ghana (Gaana)', 'gh', '233'],
                    ['Gibraltar', 'gi', '350'],
                    ['Greece (Ελλάδα)', 'gr', '30'],
                    ['Greenland (Kalaallit Nunaat)', 'gl', '299'],
                    ['Grenada', 'gd', '1', 14, ['473']],
                    ['Guadeloupe', 'gp', '590', 0],
                    ['Guam', 'gu', '1', 15, ['671']],
                    ['Guatemala', 'gt', '502'],
                    [
                        'Guernsey',
                        'gg',
                        '44',
                        1,
                        ['1481', '7781', '7839', '7911'],
                    ],
                    ['Guinea (Guinée)', 'gn', '224'],
                    ['Guinea-Bissau (Guiné Bissau)', 'gw', '245'],
                    ['Guyana', 'gy', '592'],
                    ['Haiti', 'ht', '509'],
                    ['Honduras', 'hn', '504'],
                    ['Hong Kong (香港)', 'hk', '852'],
                    ['Hungary (Magyarország)', 'hu', '36'],
                    ['Iceland (Ísland)', 'is', '354'],
                    ['India (भारत)', 'in', '91'],
                    ['Indonesia', 'id', '62'],
                    ['Iran (‫ایران‬‎)', 'ir', '98'],
                    ['Iraq (‫العراق‬‎)', 'iq', '964'],
                    ['Ireland', 'ie', '353'],
                    [
                        'Isle of Man',
                        'im',
                        '44',
                        2,
                        ['1624', '74576', '7524', '7924', '7624'],
                    ],
                    ['Israel (‫ישראל‬‎)', 'il', '972'],
                    ['Italy (Italia)', 'it', '39', 0],
                    ['Jamaica', 'jm', '1', 4, ['876', '658']],
                    ['Japan (日本)', 'jp', '81'],
                    [
                        'Jersey',
                        'je',
                        '44',
                        3,
                        ['1534', '7509', '7700', '7797', '7829', '7937'],
                    ],
                    ['Jordan (‫الأردن‬‎)', 'jo', '962'],
                    ['Kazakhstan (Казахстан)', 'kz', '7', 1, ['33', '7']],
                    ['Kenya', 'ke', '254'],
                    ['Kiribati', 'ki', '686'],
                    ['Kosovo', 'xk', '383'],
                    ['Kuwait (‫الكويت‬‎)', 'kw', '965'],
                    ['Kyrgyzstan (Кыргызстан)', 'kg', '996'],
                    ['Laos (ລາວ)', 'la', '856'],
                    ['Latvia (Latvija)', 'lv', '371'],
                    ['Lebanon (‫لبنان‬‎)', 'lb', '961'],
                    ['Lesotho', 'ls', '266'],
                    ['Liberia', 'lr', '231'],
                    ['Libya (‫ليبيا‬‎)', 'ly', '218'],
                    ['Liechtenstein', 'li', '423'],
                    ['Lithuania (Lietuva)', 'lt', '370'],
                    ['Luxembourg', 'lu', '352'],
                    ['Macau (澳門)', 'mo', '853'],
                    ['North Macedonia (Македонија)', 'mk', '389'],
                    ['Madagascar (Madagasikara)', 'mg', '261'],
                    ['Malawi', 'mw', '265'],
                    ['Malaysia', 'my', '60'],
                    ['Maldives', 'mv', '960'],
                    ['Mali', 'ml', '223'],
                    ['Malta', 'mt', '356'],
                    ['Marshall Islands', 'mh', '692'],
                    ['Martinique', 'mq', '596'],
                    ['Mauritania (‫موريتانيا‬‎)', 'mr', '222'],
                    ['Mauritius (Moris)', 'mu', '230'],
                    ['Mayotte', 'yt', '262', 1, ['269', '639']],
                    ['Mexico (México)', 'mx', '52'],
                    ['Micronesia', 'fm', '691'],
                    ['Moldova (Republica Moldova)', 'md', '373'],
                    ['Monaco', 'mc', '377'],
                    ['Mongolia (Монгол)', 'mn', '976'],
                    ['Montenegro (Crna Gora)', 'me', '382'],
                    ['Montserrat', 'ms', '1', 16, ['664']],
                    ['Morocco (‫المغرب‬‎)', 'ma', '212', 0],
                    ['Mozambique (Moçambique)', 'mz', '258'],
                    ['Myanmar (Burma) (မြန်မာ)', 'mm', '95'],
                    ['Namibia (Namibië)', 'na', '264'],
                    ['Nauru', 'nr', '674'],
                    ['Nepal (नेपाल)', 'np', '977'],
                    ['Netherlands (Nederland)', 'nl', '31'],
                    ['New Caledonia (Nouvelle-Calédonie)', 'nc', '687'],
                    ['New Zealand', 'nz', '64'],
                    ['Nicaragua', 'ni', '505'],
                    ['Niger (Nijar)', 'ne', '227'],
                    ['Nigeria', 'ng', '234'],
                    ['Niue', 'nu', '683'],
                    ['Norfolk Island', 'nf', '672'],
                    ['North Korea (조선 민주주의 인민 공화국)', 'kp', '850'],
                    ['Northern Mariana Islands', 'mp', '1', 17, ['670']],
                    ['Norway (Norge)', 'no', '47', 0],
                    ['Oman (‫عُمان‬‎)', 'om', '968'],
                    ['Pakistan (‫پاکستان‬‎)', 'pk', '92'],
                    ['Palau', 'pw', '680'],
                    ['Palestine (‫فلسطين‬‎)', 'ps', '970'],
                    ['Panama (Panamá)', 'pa', '507'],
                    ['Papua New Guinea', 'pg', '675'],
                    ['Paraguay', 'py', '595'],
                    ['Peru (Perú)', 'pe', '51'],
                    ['Philippines', 'ph', '63'],
                    ['Poland (Polska)', 'pl', '48'],
                    ['Portugal', 'pt', '351'],
                    ['Puerto Rico', 'pr', '1', 3, ['787', '939']],
                    ['Qatar (‫قطر‬‎)', 'qa', '974'],
                    ['Réunion (La Réunion)', 're', '262', 0],
                    ['Romania (România)', 'ro', '40'],
                    ['Russia (Россия)', 'ru', '7', 0],
                    ['Rwanda', 'rw', '250'],
                    ['Saint Barthélemy', 'bl', '590', 1],
                    ['Saint Helena', 'sh', '290'],
                    ['Saint Kitts and Nevis', 'kn', '1', 18, ['869']],
                    ['Saint Lucia', 'lc', '1', 19, ['758']],
                    [
                        'Saint Martin (Saint-Martin (partie française))',
                        'mf',
                        '590',
                        2,
                    ],
                    [
                        'Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)',
                        'pm',
                        '508',
                    ],
                    [
                        'Saint Vincent and the Grenadines',
                        'vc',
                        '1',
                        20,
                        ['784'],
                    ],
                    ['Samoa', 'ws', '685'],
                    ['San Marino', 'sm', '378'],
                    [
                        'São Tomé and Príncipe (São Tomé e Príncipe)',
                        'st',
                        '239',
                    ],
                    ['Saudi Arabia (‫المملكة العربية السعودية‬‎)', 'sa', '966'],
                    ['Senegal (Sénégal)', 'sn', '221'],
                    ['Serbia (Србија)', 'rs', '381'],
                    ['Seychelles', 'sc', '248'],
                    ['Sierra Leone', 'sl', '232'],
                    ['Singapore', 'sg', '65'],
                    ['Sint Maarten', 'sx', '1', 21, ['721']],
                    ['Slovakia (Slovensko)', 'sk', '421'],
                    ['Slovenia (Slovenija)', 'si', '386'],
                    ['Solomon Islands', 'sb', '677'],
                    ['Somalia (Soomaaliya)', 'so', '252'],
                    ['South Africa', 'za', '27'],
                    ['South Korea (대한민국)', 'kr', '82'],
                    ['South Sudan (‫جنوب السودان‬‎)', 'ss', '211'],
                    ['Spain (España)', 'es', '34'],
                    ['Sri Lanka (ශ්‍රී ලංකාව)', 'lk', '94'],
                    ['Sudan (‫السودان‬‎)', 'sd', '249'],
                    ['Suriname', 'sr', '597'],
                    ['Svalbard and Jan Mayen', 'sj', '47', 1, ['79']],
                    ['Sweden (Sverige)', 'se', '46'],
                    ['Switzerland (Schweiz)', 'ch', '41'],
                    ['Syria (‫سوريا‬‎)', 'sy', '963'],
                    ['Taiwan (台灣)', 'tw', '886'],
                    ['Tajikistan', 'tj', '992'],
                    ['Tanzania', 'tz', '255'],
                    ['Thailand (ไทย)', 'th', '66'],
                    ['Timor-Leste', 'tl', '670'],
                    ['Togo', 'tg', '228'],
                    ['Tokelau', 'tk', '690'],
                    ['Tonga', 'to', '676'],
                    ['Trinidad and Tobago', 'tt', '1', 22, ['868']],
                    ['Tunisia (‫تونس‬‎)', 'tn', '216'],
                    ['Turkey (Türkiye)', 'tr', '90'],
                    ['Turkmenistan', 'tm', '993'],
                    ['Turks and Caicos Islands', 'tc', '1', 23, ['649']],
                    ['Tuvalu', 'tv', '688'],
                    ['U.S. Virgin Islands', 'vi', '1', 24, ['340']],
                    ['Uganda', 'ug', '256'],
                    ['Ukraine (Україна)', 'ua', '380'],
                    [
                        'United Arab Emirates (‫الإمارات العربية المتحدة‬‎)',
                        'ae',
                        '971',
                    ],
                    ['United Kingdom', 'gb', '44', 0],
                    ['United States', 'us', '1', 0],
                    ['Uruguay', 'uy', '598'],
                    ['Uzbekistan (Oʻzbekiston)', 'uz', '998'],
                    ['Vanuatu', 'vu', '678'],
                    [
                        'Vatican City (Città del Vaticano)',
                        'va',
                        '39',
                        1,
                        ['06698'],
                    ],
                    ['Venezuela', 've', '58'],
                    ['Vietnam (Việt Nam)', 'vn', '84'],
                    ['Wallis and Futuna (Wallis-et-Futuna)', 'wf', '681'],
                    [
                        'Western Sahara (‫الصحراء الغربية‬‎)',
                        'eh',
                        '212',
                        1,
                        ['5288', '5289'],
                    ],
                    ['Yemen (‫اليمن‬‎)', 'ye', '967'],
                    ['Zambia', 'zm', '260'],
                    ['Zimbabwe', 'zw', '263'],
                    ['Åland Islands', 'ax', '358', 1, ['18']],
                ],
                f = 0;
            f < e.length;
            f++
        ) {
            var g = e[f]
            e[f] = {
                name: g[0],
                iso2: g[1],
                dialCode: g[2],
                priority: g[3] || 0,
                areaCodes: g[4] || null,
            }
        }
        var h = {
            getInstance: function (a) {
                var b = a.getAttribute('data-intl-tel-input-id')
                return window.intlTelInputGlobals.instances[b]
            },
            instances: {},
            documentReady: function () {
                return 'complete' === document.readyState
            },
        }
        'object' == typeof window && (window.intlTelInputGlobals = h)
        var i = 0,
            j = {
                allowDropdown: !0,
                autoHideDialCode: !0,
                autoPlaceholder: 'polite',
                customContainer: '',
                customPlaceholder: null,
                dropdownContainer: null,
                excludeCountries: [],
                formatOnDisplay: !0,
                geoIpLookup: null,
                hiddenInput: '',
                initialCountry: '',
                localizedCountries: null,
                nationalMode: !0,
                onlyCountries: [],
                placeholderNumberType: 'MOBILE',
                preferredCountries: ['us', 'gb'],
                separateDialCode: !1,
                utilsScript: '',
            },
            k = [
                '800',
                '822',
                '833',
                '844',
                '855',
                '866',
                '877',
                '880',
                '881',
                '882',
                '883',
                '884',
                '885',
                '886',
                '887',
                '888',
                '889',
            ],
            l = function (a, b) {
                for (var c = Object.keys(a), d = 0; d < c.length; d++)
                    b(c[d], a[c[d]])
            },
            m = function (a) {
                l(window.intlTelInputGlobals.instances, function (b) {
                    window.intlTelInputGlobals.instances[b][a]()
                })
            },
            n = (function () {
                function c(a, d) {
                    var e = this
                    b(this, c),
                        (this.id = i++),
                        (this.a = a),
                        (this.b = null),
                        (this.c = null)
                    var f = d || {}
                    ;(this.d = {}),
                        l(j, function (a, b) {
                            e.d[a] = f.hasOwnProperty(a) ? f[a] : b
                        }),
                        (this.e = Boolean(a.getAttribute('placeholder')))
                }
                return (
                    d(c, [
                        {
                            key: '_init',
                            value: function () {
                                var a = this
                                if (
                                    (this.d.nationalMode &&
                                        (this.d.autoHideDialCode = !1),
                                    this.d.separateDialCode &&
                                        (this.d.autoHideDialCode =
                                            this.d.nationalMode =
                                                !1),
                                    (this.g =
                                        /Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
                                            navigator.userAgent
                                        )),
                                    this.g &&
                                        (document.body.classList.add(
                                            'iti-mobile'
                                        ),
                                        this.d.dropdownContainer ||
                                            (this.d.dropdownContainer =
                                                document.body)),
                                    'undefined' != typeof Promise)
                                ) {
                                    var b = new Promise(function (b, c) {
                                            ;(a.h = b), (a.i = c)
                                        }),
                                        c = new Promise(function (b, c) {
                                            ;(a.i0 = b), (a.i1 = c)
                                        })
                                    this.promise = Promise.all([b, c])
                                } else
                                    (this.h = this.i = function () {}),
                                        (this.i0 = this.i1 = function () {})
                                ;(this.s = {}),
                                    this._b(),
                                    this._f(),
                                    this._h(),
                                    this._i(),
                                    this._i3()
                            },
                        },
                        {
                            key: '_b',
                            value: function () {
                                this._d(),
                                    this._d2(),
                                    this._e(),
                                    this.d.localizedCountries && this._d0(),
                                    (this.d.onlyCountries.length ||
                                        this.d.localizedCountries) &&
                                        this.p.sort(this._d1)
                            },
                        },
                        {
                            key: '_c',
                            value: function (b, c, d) {
                                c.length > this.countryCodeMaxLen &&
                                    (this.countryCodeMaxLen = c.length),
                                    this.q.hasOwnProperty(c) || (this.q[c] = [])
                                for (var e = 0; e < this.q[c].length; e++)
                                    if (this.q[c][e] === b) return
                                var f = d !== a ? d : this.q[c].length
                                this.q[c][f] = b
                            },
                        },
                        {
                            key: '_d',
                            value: function () {
                                if (this.d.onlyCountries.length) {
                                    var a = this.d.onlyCountries.map(
                                        function (a) {
                                            return a.toLowerCase()
                                        }
                                    )
                                    this.p = e.filter(function (b) {
                                        return a.indexOf(b.iso2) > -1
                                    })
                                } else if (this.d.excludeCountries.length) {
                                    var b = this.d.excludeCountries.map(
                                        function (a) {
                                            return a.toLowerCase()
                                        }
                                    )
                                    this.p = e.filter(function (a) {
                                        return -1 === b.indexOf(a.iso2)
                                    })
                                } else this.p = e
                            },
                        },
                        {
                            key: '_d0',
                            value: function () {
                                for (var a = 0; a < this.p.length; a++) {
                                    var b = this.p[a].iso2.toLowerCase()
                                    this.d.localizedCountries.hasOwnProperty(
                                        b
                                    ) &&
                                        (this.p[a].name =
                                            this.d.localizedCountries[b])
                                }
                            },
                        },
                        {
                            key: '_d1',
                            value: function (a, b) {
                                return a.name.localeCompare(b.name)
                            },
                        },
                        {
                            key: '_d2',
                            value: function () {
                                ;(this.countryCodeMaxLen = 0),
                                    (this.dialCodes = {}),
                                    (this.q = {})
                                for (var a = 0; a < this.p.length; a++) {
                                    var b = this.p[a]
                                    this.dialCodes[b.dialCode] ||
                                        (this.dialCodes[b.dialCode] = !0),
                                        this._c(b.iso2, b.dialCode, b.priority)
                                }
                                for (var c = 0; c < this.p.length; c++) {
                                    var d = this.p[c]
                                    if (d.areaCodes)
                                        for (
                                            var e = this.q[d.dialCode][0],
                                                f = 0;
                                            f < d.areaCodes.length;
                                            f++
                                        ) {
                                            for (
                                                var g = d.areaCodes[f], h = 1;
                                                h < g.length;
                                                h++
                                            ) {
                                                var i =
                                                    d.dialCode + g.substr(0, h)
                                                this._c(e, i),
                                                    this._c(d.iso2, i)
                                            }
                                            this._c(d.iso2, d.dialCode + g)
                                        }
                                }
                            },
                        },
                        {
                            key: '_e',
                            value: function () {
                                this.preferredCountries = []
                                for (
                                    var a = 0;
                                    a < this.d.preferredCountries.length;
                                    a++
                                ) {
                                    var b =
                                            this.d.preferredCountries[
                                                a
                                            ].toLowerCase(),
                                        c = this._y(b, !1, !0)
                                    c && this.preferredCountries.push(c)
                                }
                            },
                        },
                        {
                            key: '_e2',
                            value: function (a, b, c) {
                                var d = document.createElement(a)
                                return (
                                    b &&
                                        l(b, function (a, b) {
                                            return d.setAttribute(a, b)
                                        }),
                                    c && c.appendChild(d),
                                    d
                                )
                            },
                        },
                        {
                            key: '_f',
                            value: function () {
                                this.a.hasAttribute('autocomplete') ||
                                    (this.a.form &&
                                        this.a.form.hasAttribute(
                                            'autocomplete'
                                        )) ||
                                    this.a.setAttribute('autocomplete', 'off')
                                var a = 'iti'
                                this.d.allowDropdown &&
                                    (a += ' iti--allow-dropdown'),
                                    this.d.separateDialCode &&
                                        (a += ' iti--separate-dial-code'),
                                    this.d.customContainer &&
                                        ((a += ' '),
                                        (a += this.d.customContainer))
                                var b = this._e2('div', { class: a })
                                if (
                                    (this.a.parentNode.insertBefore(b, this.a),
                                    (this.k = this._e2(
                                        'div',
                                        { class: 'iti__flag-container' },
                                        b
                                    )),
                                    b.appendChild(this.a),
                                    (this.selectedFlag = this._e2(
                                        'div',
                                        {
                                            class: 'iti__selected-flag',
                                            role: 'combobox',
                                            'aria-controls': 'iti-'.concat(
                                                this.id,
                                                '__country-listbox'
                                            ),
                                            'aria-owns': 'iti-'.concat(
                                                this.id,
                                                '__country-listbox'
                                            ),
                                            'aria-expanded': 'false',
                                        },
                                        this.k
                                    )),
                                    (this.l = this._e2(
                                        'div',
                                        { class: 'iti__flag' },
                                        this.selectedFlag
                                    )),
                                    this.d.separateDialCode &&
                                        (this.t = this._e2(
                                            'div',
                                            {
                                                class: 'iti__selected-dial-code',
                                            },
                                            this.selectedFlag
                                        )),
                                    this.d.allowDropdown &&
                                        (this.selectedFlag.setAttribute(
                                            'tabindex',
                                            '0'
                                        ),
                                        (this.u = this._e2(
                                            'div',
                                            { class: 'iti__arrow' },
                                            this.selectedFlag
                                        )),
                                        (this.m = this._e2('ul', {
                                            class: 'iti__country-list iti__hide',
                                            id: 'iti-'.concat(
                                                this.id,
                                                '__country-listbox'
                                            ),
                                            role: 'listbox',
                                            'aria-label': 'List of countries',
                                        })),
                                        this.preferredCountries.length &&
                                            (this._g(
                                                this.preferredCountries,
                                                'iti__preferred',
                                                !0
                                            ),
                                            this._e2(
                                                'li',
                                                {
                                                    class: 'iti__divider',
                                                    role: 'separator',
                                                    'aria-disabled': 'true',
                                                },
                                                this.m
                                            )),
                                        this._g(this.p, 'iti__standard'),
                                        this.d.dropdownContainer
                                            ? ((this.dropdown = this._e2(
                                                  'div',
                                                  {
                                                      class: 'iti iti--container',
                                                  }
                                              )),
                                              this.dropdown.appendChild(this.m))
                                            : this.k.appendChild(this.m)),
                                    this.d.hiddenInput)
                                ) {
                                    var c = this.d.hiddenInput,
                                        d = this.a.getAttribute('name')
                                    if (d) {
                                        var e = d.lastIndexOf('[')
                                        ;-1 !== e &&
                                            (c = ''
                                                .concat(d.substr(0, e), '[')
                                                .concat(c, ']'))
                                    }
                                    ;(this.hiddenInput = this._e2('input', {
                                        type: 'hidden',
                                        name: c,
                                    })),
                                        b.appendChild(this.hiddenInput)
                                }
                            },
                        },
                        {
                            key: '_g',
                            value: function (a, b, c) {
                                for (var d = '', e = 0; e < a.length; e++) {
                                    var f = a[e],
                                        g = c ? '-preferred' : ''
                                    ;(d += "<li class='iti__country "
                                        .concat(b, "' tabIndex='-1' id='iti-")
                                        .concat(this.id, '__item-')
                                        .concat(f.iso2)
                                        .concat(
                                            g,
                                            "' role='option' data-dial-code='"
                                        )
                                        .concat(
                                            f.dialCode,
                                            "' data-country-code='"
                                        )
                                        .concat(
                                            f.iso2,
                                            "' aria-selected='false'>"
                                        )),
                                        (d +=
                                            "<div class='iti__flag-box'><div class='iti__flag iti__".concat(
                                                f.iso2,
                                                "'></div></div>"
                                            )),
                                        (d +=
                                            "<span class='iti__country-name'>".concat(
                                                f.name,
                                                '</span>'
                                            )),
                                        (d +=
                                            "<span class='iti__dial-code'>+".concat(
                                                f.dialCode,
                                                '</span>'
                                            )),
                                        (d += '</li>')
                                }
                                this.m.insertAdjacentHTML('beforeend', d)
                            },
                        },
                        {
                            key: '_h',
                            value: function () {
                                var a = this.a.getAttribute('value'),
                                    b = this.a.value,
                                    c =
                                        a &&
                                        '+' === a.charAt(0) &&
                                        (!b || '+' !== b.charAt(0)),
                                    d = c ? a : b,
                                    e = this._5(d),
                                    f = this._w(d),
                                    g = this.d,
                                    h = g.initialCountry,
                                    i = g.nationalMode,
                                    j = g.autoHideDialCode,
                                    k = g.separateDialCode
                                e && !f
                                    ? this._v(d)
                                    : 'auto' !== h &&
                                      (h
                                          ? this._z(h.toLowerCase())
                                          : e && f
                                            ? this._z('us')
                                            : ((this.j = this.preferredCountries
                                                  .length
                                                  ? this.preferredCountries[0]
                                                        .iso2
                                                  : this.p[0].iso2),
                                              d || this._z(this.j)),
                                      d ||
                                          i ||
                                          j ||
                                          k ||
                                          (this.a.value = '+'.concat(
                                              this.s.dialCode
                                          ))),
                                    d && this._u(d)
                            },
                        },
                        {
                            key: '_i',
                            value: function () {
                                this._j(),
                                    this.d.autoHideDialCode && this._l(),
                                    this.d.allowDropdown && this._i2(),
                                    this.hiddenInput && this._i0()
                            },
                        },
                        {
                            key: '_i0',
                            value: function () {
                                var a = this
                                ;(this._a14 = function () {
                                    a.hiddenInput.value = a.getNumber()
                                }),
                                    this.a.form &&
                                        this.a.form.addEventListener(
                                            'submit',
                                            this._a14
                                        )
                            },
                        },
                        {
                            key: '_i1',
                            value: function () {
                                for (
                                    var a = this.a;
                                    a && 'LABEL' !== a.tagName;

                                )
                                    a = a.parentNode
                                return a
                            },
                        },
                        {
                            key: '_i2',
                            value: function () {
                                var a = this
                                this._a9 = function (b) {
                                    a.m.classList.contains('iti__hide')
                                        ? a.a.focus()
                                        : b.preventDefault()
                                }
                                var b = this._i1()
                                b && b.addEventListener('click', this._a9),
                                    (this._a10 = function () {
                                        !a.m.classList.contains('iti__hide') ||
                                            a.a.disabled ||
                                            a.a.readOnly ||
                                            a._n()
                                    }),
                                    this.selectedFlag.addEventListener(
                                        'click',
                                        this._a10
                                    ),
                                    (this._a11 = function (b) {
                                        a.m.classList.contains('iti__hide') &&
                                            -1 !==
                                                [
                                                    'ArrowUp',
                                                    'Up',
                                                    'ArrowDown',
                                                    'Down',
                                                    ' ',
                                                    'Enter',
                                                ].indexOf(b.key) &&
                                            (b.preventDefault(),
                                            b.stopPropagation(),
                                            a._n()),
                                            'Tab' === b.key && a._2()
                                    }),
                                    this.k.addEventListener(
                                        'keydown',
                                        this._a11
                                    )
                            },
                        },
                        {
                            key: '_i3',
                            value: function () {
                                var a = this
                                this.d.utilsScript && !window.intlTelInputUtils
                                    ? window.intlTelInputGlobals.documentReady()
                                        ? window.intlTelInputGlobals.loadUtils(
                                              this.d.utilsScript
                                          )
                                        : window.addEventListener(
                                              'load',
                                              function () {
                                                  window.intlTelInputGlobals.loadUtils(
                                                      a.d.utilsScript
                                                  )
                                              }
                                          )
                                    : this.i0(),
                                    'auto' === this.d.initialCountry
                                        ? this._i4()
                                        : this.h()
                            },
                        },
                        {
                            key: '_i4',
                            value: function () {
                                window.intlTelInputGlobals.autoCountry
                                    ? this.handleAutoCountry()
                                    : window.intlTelInputGlobals
                                          .startedLoadingAutoCountry ||
                                      ((window.intlTelInputGlobals.startedLoadingAutoCountry =
                                          !0),
                                      'function' == typeof this.d.geoIpLookup &&
                                          this.d.geoIpLookup(
                                              function (a) {
                                                  ;(window.intlTelInputGlobals.autoCountry =
                                                      a.toLowerCase()),
                                                      setTimeout(function () {
                                                          return m(
                                                              'handleAutoCountry'
                                                          )
                                                      })
                                              },
                                              function () {
                                                  return m(
                                                      'rejectAutoCountryPromise'
                                                  )
                                              }
                                          ))
                            },
                        },
                        {
                            key: '_j',
                            value: function () {
                                var a = this
                                ;(this._a12 = function () {
                                    a._v(a.a.value) && a._m2CountryChange()
                                }),
                                    this.a.addEventListener('keyup', this._a12),
                                    (this._a13 = function () {
                                        setTimeout(a._a12)
                                    }),
                                    this.a.addEventListener('cut', this._a13),
                                    this.a.addEventListener('paste', this._a13)
                            },
                        },
                        {
                            key: '_j2',
                            value: function (a) {
                                var b = this.a.getAttribute('maxlength')
                                return b && a.length > b ? a.substr(0, b) : a
                            },
                        },
                        {
                            key: '_l',
                            value: function () {
                                var a = this
                                ;(this._a8 = function () {
                                    a._l2()
                                }),
                                    this.a.form &&
                                        this.a.form.addEventListener(
                                            'submit',
                                            this._a8
                                        ),
                                    this.a.addEventListener('blur', this._a8)
                            },
                        },
                        {
                            key: '_l2',
                            value: function () {
                                if ('+' === this.a.value.charAt(0)) {
                                    var a = this._m(this.a.value)
                                    ;(a && this.s.dialCode !== a) ||
                                        (this.a.value = '')
                                }
                            },
                        },
                        {
                            key: '_m',
                            value: function (a) {
                                return a.replace(/\D/g, '')
                            },
                        },
                        {
                            key: '_m2',
                            value: function (a) {
                                var b = document.createEvent('Event')
                                b.initEvent(a, !0, !0), this.a.dispatchEvent(b)
                            },
                        },
                        {
                            key: '_n',
                            value: function () {
                                this.m.classList.remove('iti__hide'),
                                    this.selectedFlag.setAttribute(
                                        'aria-expanded',
                                        'true'
                                    ),
                                    this._o(),
                                    this.b &&
                                        (this._x(this.b, !1),
                                        this._3(this.b, !0)),
                                    this._p(),
                                    this.u.classList.add('iti__arrow--up'),
                                    this._m2('open:countrydropdown')
                            },
                        },
                        {
                            key: '_n2',
                            value: function (a, b, c) {
                                c && !a.classList.contains(b)
                                    ? a.classList.add(b)
                                    : !c &&
                                      a.classList.contains(b) &&
                                      a.classList.remove(b)
                            },
                        },
                        {
                            key: '_o',
                            value: function () {
                                var a = this
                                if (
                                    (this.d.dropdownContainer &&
                                        this.d.dropdownContainer.appendChild(
                                            this.dropdown
                                        ),
                                    !this.g)
                                ) {
                                    var b = this.a.getBoundingClientRect(),
                                        c =
                                            window.pageYOffset ||
                                            document.documentElement.scrollTop,
                                        d = b.top + c,
                                        e = this.m.offsetHeight,
                                        f =
                                            d + this.a.offsetHeight + e <
                                            c + window.innerHeight,
                                        g = d - e > c
                                    if (
                                        (this._n2(
                                            this.m,
                                            'iti__country-list--dropup',
                                            !f && g
                                        ),
                                        this.d.dropdownContainer)
                                    ) {
                                        var h =
                                            !f && g ? 0 : this.a.offsetHeight
                                        ;(this.dropdown.style.top = ''.concat(
                                            d + h,
                                            'px'
                                        )),
                                            (this.dropdown.style.left =
                                                ''.concat(
                                                    b.left +
                                                        document.body
                                                            .scrollLeft,
                                                    'px'
                                                )),
                                            (this._a4 = function () {
                                                return a._2()
                                            }),
                                            window.addEventListener(
                                                'scroll',
                                                this._a4
                                            )
                                    }
                                }
                            },
                        },
                        {
                            key: '_o2',
                            value: function (a) {
                                for (
                                    var b = a;
                                    b &&
                                    b !== this.m &&
                                    !b.classList.contains('iti__country');

                                )
                                    b = b.parentNode
                                return b === this.m ? null : b
                            },
                        },
                        {
                            key: '_p',
                            value: function () {
                                var a = this
                                ;(this._a0 = function (b) {
                                    var c = a._o2(b.target)
                                    c && a._x(c, !1)
                                }),
                                    this.m.addEventListener(
                                        'mouseover',
                                        this._a0
                                    ),
                                    (this._a1 = function (b) {
                                        var c = a._o2(b.target)
                                        c && a._1(c)
                                    }),
                                    this.m.addEventListener('click', this._a1)
                                var b = !0
                                ;(this._a2 = function () {
                                    b || a._2(), (b = !1)
                                }),
                                    document.documentElement.addEventListener(
                                        'click',
                                        this._a2
                                    )
                                var c = '',
                                    d = null
                                ;(this._a3 = function (b) {
                                    b.preventDefault(),
                                        'ArrowUp' === b.key ||
                                        'Up' === b.key ||
                                        'ArrowDown' === b.key ||
                                        'Down' === b.key
                                            ? a._q(b.key)
                                            : 'Enter' === b.key
                                              ? a._r()
                                              : 'Escape' === b.key
                                                ? a._2()
                                                : /^[a-zA-ZÀ-ÿа-яА-Я ]$/.test(
                                                      b.key
                                                  ) &&
                                                  (d && clearTimeout(d),
                                                  (c += b.key.toLowerCase()),
                                                  a._s(c),
                                                  (d = setTimeout(function () {
                                                      c = ''
                                                  }, 1e3)))
                                }),
                                    document.addEventListener(
                                        'keydown',
                                        this._a3
                                    )
                            },
                        },
                        {
                            key: '_q',
                            value: function (a) {
                                var b =
                                    'ArrowUp' === a || 'Up' === a
                                        ? this.c.previousElementSibling
                                        : this.c.nextElementSibling
                                b &&
                                    (b.classList.contains('iti__divider') &&
                                        (b =
                                            'ArrowUp' === a || 'Up' === a
                                                ? b.previousElementSibling
                                                : b.nextElementSibling),
                                    this._x(b, !0))
                            },
                        },
                        {
                            key: '_r',
                            value: function () {
                                this.c && this._1(this.c)
                            },
                        },
                        {
                            key: '_s',
                            value: function (a) {
                                for (var b = 0; b < this.p.length; b++)
                                    if (this._t(this.p[b].name, a)) {
                                        var c = this.m.querySelector(
                                            '#iti-'
                                                .concat(this.id, '__item-')
                                                .concat(this.p[b].iso2)
                                        )
                                        this._x(c, !1), this._3(c, !0)
                                        break
                                    }
                            },
                        },
                        {
                            key: '_t',
                            value: function (a, b) {
                                return a.substr(0, b.length).toLowerCase() === b
                            },
                        },
                        {
                            key: '_u',
                            value: function (a) {
                                var b = a
                                if (
                                    this.d.formatOnDisplay &&
                                    window.intlTelInputUtils &&
                                    this.s
                                ) {
                                    var c =
                                            !this.d.separateDialCode &&
                                            (this.d.nationalMode ||
                                                '+' !== b.charAt(0)),
                                        d = intlTelInputUtils.numberFormat,
                                        e = d.NATIONAL,
                                        f = d.INTERNATIONAL,
                                        g = c ? e : f
                                    b = intlTelInputUtils.formatNumber(
                                        b,
                                        this.s.iso2,
                                        g
                                    )
                                }
                                ;(b = this._7(b)), (this.a.value = b)
                            },
                        },
                        {
                            key: '_v',
                            value: function (a) {
                                var b = a,
                                    c = this.s.dialCode,
                                    d = '1' === c
                                b &&
                                    this.d.nationalMode &&
                                    d &&
                                    '+' !== b.charAt(0) &&
                                    ('1' !== b.charAt(0) && (b = '1'.concat(b)),
                                    (b = '+'.concat(b))),
                                    this.d.separateDialCode &&
                                        c &&
                                        '+' !== b.charAt(0) &&
                                        (b = '+'.concat(c).concat(b))
                                var e = this._5(b, !0),
                                    f = this._m(b),
                                    g = null
                                if (e) {
                                    var h = this.q[this._m(e)],
                                        i =
                                            -1 !== h.indexOf(this.s.iso2) &&
                                            f.length <= e.length - 1
                                    if (!('1' === c && this._w(f)) && !i)
                                        for (var j = 0; j < h.length; j++)
                                            if (h[j]) {
                                                g = h[j]
                                                break
                                            }
                                } else
                                    '+' === b.charAt(0) && f.length
                                        ? (g = '')
                                        : (b && '+' !== b) || (g = this.j)
                                return null !== g && this._z(g)
                            },
                        },
                        {
                            key: '_w',
                            value: function (a) {
                                var b = this._m(a)
                                if ('1' === b.charAt(0)) {
                                    var c = b.substr(1, 3)
                                    return -1 !== k.indexOf(c)
                                }
                                return !1
                            },
                        },
                        {
                            key: '_x',
                            value: function (a, b) {
                                var c = this.c
                                c && c.classList.remove('iti__highlight'),
                                    (this.c = a),
                                    this.c.classList.add('iti__highlight'),
                                    b && this.c.focus()
                            },
                        },
                        {
                            key: '_y',
                            value: function (a, b, c) {
                                for (
                                    var d = b ? e : this.p, f = 0;
                                    f < d.length;
                                    f++
                                )
                                    if (d[f].iso2 === a) return d[f]
                                if (c) return null
                                throw new Error(
                                    "No country data for '".concat(a, "'")
                                )
                            },
                        },
                        {
                            key: '_z',
                            value: function (a) {
                                var b = this.s.iso2 ? this.s : {}
                                ;(this.s = a ? this._y(a, !1, !1) : {}),
                                    this.s.iso2 && (this.j = this.s.iso2),
                                    this.l.setAttribute(
                                        'class',
                                        'iti__flag iti__'.concat(a)
                                    )
                                var c = a
                                    ? ''
                                          .concat(this.s.name, ': +')
                                          .concat(this.s.dialCode)
                                    : 'Unknown'
                                if (
                                    (this.selectedFlag.setAttribute('title', c),
                                    this.d.separateDialCode)
                                ) {
                                    var d = this.s.dialCode
                                        ? '+'.concat(this.s.dialCode)
                                        : ''
                                    this.t.innerHTML = d
                                    var e =
                                        this.selectedFlag.offsetWidth ||
                                        this._z2()
                                    this.a.style.paddingLeft = ''.concat(
                                        e + 6,
                                        'px'
                                    )
                                }
                                if ((this._0(), this.d.allowDropdown)) {
                                    var f = this.b
                                    if (
                                        (f &&
                                            (f.classList.remove('iti__active'),
                                            f.setAttribute(
                                                'aria-selected',
                                                'false'
                                            )),
                                        a)
                                    ) {
                                        var g =
                                            this.m.querySelector(
                                                '#iti-'
                                                    .concat(this.id, '__item-')
                                                    .concat(a, '-preferred')
                                            ) ||
                                            this.m.querySelector(
                                                '#iti-'
                                                    .concat(this.id, '__item-')
                                                    .concat(a)
                                            )
                                        g.setAttribute('aria-selected', 'true'),
                                            g.classList.add('iti__active'),
                                            (this.b = g),
                                            this.selectedFlag.setAttribute(
                                                'aria-activedescendant',
                                                g.getAttribute('id')
                                            )
                                    }
                                }
                                return b.iso2 !== a
                            },
                        },
                        {
                            key: '_z2',
                            value: function () {
                                var a = this.a.parentNode.cloneNode()
                                ;(a.style.visibility = 'hidden'),
                                    document.body.appendChild(a)
                                var b = this.k.cloneNode()
                                a.appendChild(b)
                                var c = this.selectedFlag.cloneNode(!0)
                                b.appendChild(c)
                                var d = c.offsetWidth
                                return a.parentNode.removeChild(a), d
                            },
                        },
                        {
                            key: '_0',
                            value: function () {
                                var a =
                                    'aggressive' === this.d.autoPlaceholder ||
                                    (!this.e &&
                                        'polite' === this.d.autoPlaceholder)
                                if (window.intlTelInputUtils && a) {
                                    var b =
                                            intlTelInputUtils.numberType[
                                                this.d.placeholderNumberType
                                            ],
                                        c = this.s.iso2
                                            ? intlTelInputUtils.getExampleNumber(
                                                  this.s.iso2,
                                                  this.d.nationalMode,
                                                  b
                                              )
                                            : ''
                                    ;(c = this._7(c)),
                                        'function' ==
                                            typeof this.d.customPlaceholder &&
                                            (c = this.d.customPlaceholder(
                                                c,
                                                this.s
                                            )),
                                        this.a.setAttribute('placeholder', c)
                                }
                            },
                        },
                        {
                            key: '_1',
                            value: function (a) {
                                var b = this._z(
                                    a.getAttribute('data-country-code')
                                )
                                this._2(),
                                    this._4(
                                        a.getAttribute('data-dial-code'),
                                        !0
                                    ),
                                    this.a.focus()
                                var c = this.a.value.length
                                this.a.setSelectionRange(c, c),
                                    b && this._m2CountryChange()
                            },
                        },
                        {
                            key: '_2',
                            value: function () {
                                this.m.classList.add('iti__hide'),
                                    this.selectedFlag.setAttribute(
                                        'aria-expanded',
                                        'false'
                                    ),
                                    this.u.classList.remove('iti__arrow--up'),
                                    document.removeEventListener(
                                        'keydown',
                                        this._a3
                                    ),
                                    document.documentElement.removeEventListener(
                                        'click',
                                        this._a2
                                    ),
                                    this.m.removeEventListener(
                                        'mouseover',
                                        this._a0
                                    ),
                                    this.m.removeEventListener(
                                        'click',
                                        this._a1
                                    ),
                                    this.d.dropdownContainer &&
                                        (this.g ||
                                            window.removeEventListener(
                                                'scroll',
                                                this._a4
                                            ),
                                        this.dropdown.parentNode &&
                                            this.dropdown.parentNode.removeChild(
                                                this.dropdown
                                            )),
                                    this._m2('close:countrydropdown')
                            },
                        },
                        {
                            key: '_3',
                            value: function (a, b) {
                                var c = this.m,
                                    d =
                                        window.pageYOffset ||
                                        document.documentElement.scrollTop,
                                    e = c.offsetHeight,
                                    f = c.getBoundingClientRect().top + d,
                                    g = f + e,
                                    h = a.offsetHeight,
                                    i = a.getBoundingClientRect().top + d,
                                    j = i + h,
                                    k = i - f + c.scrollTop,
                                    l = e / 2 - h / 2
                                if (i < f) b && (k -= l), (c.scrollTop = k)
                                else if (j > g) {
                                    b && (k += l)
                                    var m = e - h
                                    c.scrollTop = k - m
                                }
                            },
                        },
                        {
                            key: '_4',
                            value: function (a, b) {
                                var c,
                                    d = this.a.value,
                                    e = '+'.concat(a)
                                if ('+' === d.charAt(0)) {
                                    var f = this._5(d)
                                    c = f ? d.replace(f, e) : e
                                } else {
                                    if (
                                        this.d.nationalMode ||
                                        this.d.separateDialCode
                                    )
                                        return
                                    if (d) c = e + d
                                    else {
                                        if (!b && this.d.autoHideDialCode)
                                            return
                                        c = e
                                    }
                                }
                                this.a.value = c
                            },
                        },
                        {
                            key: '_5',
                            value: function (a, b) {
                                var c = ''
                                if ('+' === a.charAt(0))
                                    for (var d = '', e = 0; e < a.length; e++) {
                                        var f = a.charAt(e)
                                        if (!isNaN(parseInt(f, 10))) {
                                            if (((d += f), b))
                                                this.q[d] &&
                                                    (c = a.substr(0, e + 1))
                                            else if (this.dialCodes[d]) {
                                                c = a.substr(0, e + 1)
                                                break
                                            }
                                            if (
                                                d.length ===
                                                this.countryCodeMaxLen
                                            )
                                                break
                                        }
                                    }
                                return c
                            },
                        },
                        {
                            key: '_6',
                            value: function () {
                                var a = this.a.value.trim(),
                                    b = this.s.dialCode,
                                    c = this._m(a)
                                return (
                                    (this.d.separateDialCode &&
                                    '+' !== a.charAt(0) &&
                                    b &&
                                    c
                                        ? '+'.concat(b)
                                        : '') + a
                                )
                            },
                        },
                        {
                            key: '_7',
                            value: function (a) {
                                var b = a
                                if (this.d.separateDialCode) {
                                    var c = this._5(b)
                                    if (c) {
                                        c = '+'.concat(this.s.dialCode)
                                        var d =
                                            ' ' === b[c.length] ||
                                            '-' === b[c.length]
                                                ? c.length + 1
                                                : c.length
                                        b = b.substr(d)
                                    }
                                }
                                return this._j2(b)
                            },
                        },
                        {
                            key: '_m2CountryChange',
                            value: function () {
                                this._m2('countrychange')
                            },
                        },
                        {
                            key: 'handleAutoCountry',
                            value: function () {
                                'auto' === this.d.initialCountry &&
                                    ((this.j =
                                        window.intlTelInputGlobals.autoCountry),
                                    this.a.value || this.setCountry(this.j),
                                    this.h())
                            },
                        },
                        {
                            key: 'handleUtils',
                            value: function () {
                                window.intlTelInputUtils &&
                                    (this.a.value && this._u(this.a.value),
                                    this._0()),
                                    this.i0()
                            },
                        },
                        {
                            key: 'destroy',
                            value: function () {
                                var a = this.a.form
                                if (this.d.allowDropdown) {
                                    this._2(),
                                        this.selectedFlag.removeEventListener(
                                            'click',
                                            this._a10
                                        ),
                                        this.k.removeEventListener(
                                            'keydown',
                                            this._a11
                                        )
                                    var b = this._i1()
                                    b &&
                                        b.removeEventListener('click', this._a9)
                                }
                                this.hiddenInput &&
                                    a &&
                                    a.removeEventListener('submit', this._a14),
                                    this.d.autoHideDialCode &&
                                        (a &&
                                            a.removeEventListener(
                                                'submit',
                                                this._a8
                                            ),
                                        this.a.removeEventListener(
                                            'blur',
                                            this._a8
                                        )),
                                    this.a.removeEventListener(
                                        'keyup',
                                        this._a12
                                    ),
                                    this.a.removeEventListener(
                                        'cut',
                                        this._a13
                                    ),
                                    this.a.removeEventListener(
                                        'paste',
                                        this._a13
                                    ),
                                    this.a.removeAttribute(
                                        'data-intl-tel-input-id'
                                    )
                                var c = this.a.parentNode
                                c.parentNode.insertBefore(this.a, c),
                                    c.parentNode.removeChild(c),
                                    delete window.intlTelInputGlobals.instances[
                                        this.id
                                    ]
                            },
                        },
                        {
                            key: 'getExtension',
                            value: function () {
                                return window.intlTelInputUtils
                                    ? intlTelInputUtils.getExtension(
                                          this._6(),
                                          this.s.iso2
                                      )
                                    : ''
                            },
                        },
                        {
                            key: 'getNumber',
                            value: function (a) {
                                if (window.intlTelInputUtils) {
                                    var b = this.s.iso2
                                    return intlTelInputUtils.formatNumber(
                                        this._6(),
                                        b,
                                        a
                                    )
                                }
                                return ''
                            },
                        },
                        {
                            key: 'getNumberType',
                            value: function () {
                                return window.intlTelInputUtils
                                    ? intlTelInputUtils.getNumberType(
                                          this._6(),
                                          this.s.iso2
                                      )
                                    : -99
                            },
                        },
                        {
                            key: 'getSelectedCountryData',
                            value: function () {
                                return this.s
                            },
                        },
                        {
                            key: 'getValidationError',
                            value: function () {
                                if (window.intlTelInputUtils) {
                                    var a = this.s.iso2
                                    return intlTelInputUtils.getValidationError(
                                        this._6(),
                                        a
                                    )
                                }
                                return -99
                            },
                        },
                        {
                            key: 'isValidNumber',
                            value: function () {
                                var a = this._6().trim(),
                                    b = this.d.nationalMode ? this.s.iso2 : ''
                                return window.intlTelInputUtils
                                    ? intlTelInputUtils.isValidNumber(a, b)
                                    : null
                            },
                        },
                        {
                            key: 'setCountry',
                            value: function (a) {
                                var b = a.toLowerCase()
                                this.l.classList.contains('iti__'.concat(b)) ||
                                    (this._z(b),
                                    this._4(this.s.dialCode, !1),
                                    this._m2CountryChange())
                            },
                        },
                        {
                            key: 'setNumber',
                            value: function (a) {
                                var b = this._v(a)
                                this._u(a), b && this._m2CountryChange()
                            },
                        },
                        {
                            key: 'setPlaceholderNumberType',
                            value: function (a) {
                                ;(this.d.placeholderNumberType = a), this._0()
                            },
                        },
                    ]),
                    c
                )
            })()
        h.getCountryData = function () {
            return e
        }
        var o = function (a, b, c) {
            var d = document.createElement('script')
            ;(d.onload = function () {
                m('handleUtils'), b && b()
            }),
                (d.onerror = function () {
                    m('rejectUtilsScriptPromise'), c && c()
                }),
                (d.className = 'iti-load-utils'),
                (d.async = !0),
                (d.src = a),
                document.body.appendChild(d)
        }
        return (
            (h.loadUtils = function (a) {
                if (
                    !window.intlTelInputUtils &&
                    !window.intlTelInputGlobals.startedLoadingUtilsScript
                ) {
                    if (
                        ((window.intlTelInputGlobals.startedLoadingUtilsScript =
                            !0),
                        'undefined' != typeof Promise)
                    )
                        return new Promise(function (b, c) {
                            return o(a, b, c)
                        })
                    o(a)
                }
                return null
            }),
            (h.defaults = j),
            (h.version = '17.0.19'),
            function (a, b) {
                var c = new n(a, b)
                return (
                    c._init(),
                    a.setAttribute('data-intl-tel-input-id', c.id),
                    (window.intlTelInputGlobals.instances[c.id] = c),
                    c
                )
            }
        )
    })()
})

/* END select country phone code */

/* START custom table */

/*!
       SpryMedia Ltd.
    
     This source file is free software, available under the following license:
       MIT license - http://datatables.net/license
    
     This source file is distributed in the hope that it will be useful, but
     WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
    
     For details please refer to: http://www.datatables.net
     DataTables 1.12.1
     ©2008-2022 SpryMedia Ltd - datatables.net/license
    */
var $jscomp = $jscomp || {}
$jscomp.scope = {}
$jscomp.findInternal = function (l, y, A) {
    l instanceof String && (l = String(l))
    for (var q = l.length, E = 0; E < q; E++) {
        var P = l[E]
        if (y.call(A, P, E, l)) return { i: E, v: P }
    }
    return { i: -1, v: void 0 }
}
$jscomp.ASSUME_ES5 = !1
$jscomp.ASSUME_NO_NATIVE_MAP = !1
$jscomp.ASSUME_NO_NATIVE_SET = !1
$jscomp.SIMPLE_FROUND_POLYFILL = !1
$jscomp.ISOLATE_POLYFILLS = !1
$jscomp.defineProperty =
    $jscomp.ASSUME_ES5 || 'function' == typeof Object.defineProperties
        ? Object.defineProperty
        : function (l, y, A) {
              if (l == Array.prototype || l == Object.prototype) return l
              l[y] = A.value
              return l
          }
$jscomp.getGlobal = function (l) {
    l = [
        'object' == typeof globalThis && globalThis,
        l,
        'object' == typeof window && window,
        'object' == typeof self && self,
        'object' == typeof global && global,
    ]
    for (var y = 0; y < l.length; ++y) {
        var A = l[y]
        if (A && A.Math == Math) return A
    }
    throw Error('Cannot find global object')
}
$jscomp.global = $jscomp.getGlobal(this)
$jscomp.IS_SYMBOL_NATIVE =
    'function' === typeof Symbol && 'symbol' === typeof Symbol('x')
$jscomp.TRUST_ES6_POLYFILLS =
    !$jscomp.ISOLATE_POLYFILLS || $jscomp.IS_SYMBOL_NATIVE
$jscomp.polyfills = {}
$jscomp.propertyToPolyfillSymbol = {}
$jscomp.POLYFILL_PREFIX = '$jscp$'
var $jscomp$lookupPolyfilledValue = function (l, y) {
    var A = $jscomp.propertyToPolyfillSymbol[y]
    if (null == A) return l[y]
    A = l[A]
    return void 0 !== A ? A : l[y]
}
$jscomp.polyfill = function (l, y, A, q) {
    y &&
        ($jscomp.ISOLATE_POLYFILLS
            ? $jscomp.polyfillIsolated(l, y, A, q)
            : $jscomp.polyfillUnisolated(l, y, A, q))
}
$jscomp.polyfillUnisolated = function (l, y, A, q) {
    A = $jscomp.global
    l = l.split('.')
    for (q = 0; q < l.length - 1; q++) {
        var E = l[q]
        if (!(E in A)) return
        A = A[E]
    }
    l = l[l.length - 1]
    q = A[l]
    y = y(q)
    y != q &&
        null != y &&
        $jscomp.defineProperty(A, l, {
            configurable: !0,
            writable: !0,
            value: y,
        })
}
$jscomp.polyfillIsolated = function (l, y, A, q) {
    var E = l.split('.')
    l = 1 === E.length
    q = E[0]
    q = !l && q in $jscomp.polyfills ? $jscomp.polyfills : $jscomp.global
    for (var P = 0; P < E.length - 1; P++) {
        var la = E[P]
        if (!(la in q)) return
        q = q[la]
    }
    E = E[E.length - 1]
    A = $jscomp.IS_SYMBOL_NATIVE && 'es6' === A ? q[E] : null
    y = y(A)
    null != y &&
        (l
            ? $jscomp.defineProperty($jscomp.polyfills, E, {
                  configurable: !0,
                  writable: !0,
                  value: y,
              })
            : y !== A &&
              (($jscomp.propertyToPolyfillSymbol[E] = $jscomp.IS_SYMBOL_NATIVE
                  ? $jscomp.global.Symbol(E)
                  : $jscomp.POLYFILL_PREFIX + E),
              (E = $jscomp.propertyToPolyfillSymbol[E]),
              $jscomp.defineProperty(q, E, {
                  configurable: !0,
                  writable: !0,
                  value: y,
              })))
}
$jscomp.polyfill(
    'Array.prototype.find',
    function (l) {
        return l
            ? l
            : function (y, A) {
                  return $jscomp.findInternal(this, y, A).v
              }
    },
    'es6',
    'es3'
)
;(function (l) {
    'function' === typeof define && define.amd
        ? define(['jquery'], function (y) {
              return l(y, window, document)
          })
        : 'object' === typeof exports
          ? (module.exports = function (y, A) {
                y || (y = window)
                A ||
                    (A =
                        'undefined' !== typeof window
                            ? require('jquery')
                            : require('jquery')(y))
                return l(A, y, y.document)
            })
          : (window.DataTable = l(jQuery, window, document))
})(function (l, y, A, q) {
    function E(a) {
        var b,
            c,
            d = {}
        l.each(a, function (e, h) {
            ;(b = e.match(/^([^A-Z]+?)([A-Z])/)) &&
                -1 !== 'a aa ai ao as b fn i m o s '.indexOf(b[1] + ' ') &&
                ((c = e.replace(b[0], b[2].toLowerCase())),
                (d[c] = e),
                'o' === b[1] && E(a[e]))
        })
        a._hungarianMap = d
    }
    function P(a, b, c) {
        a._hungarianMap || E(a)
        var d
        l.each(b, function (e, h) {
            d = a._hungarianMap[e]
            d === q ||
                (!c && b[d] !== q) ||
                ('o' === d.charAt(0)
                    ? (b[d] || (b[d] = {}),
                      l.extend(!0, b[d], b[e]),
                      P(a[d], b[d], c))
                    : (b[d] = b[e]))
        })
    }
    function la(a) {
        var b = u.defaults.oLanguage,
            c = b.sDecimal
        c && bb(c)
        if (a) {
            var d = a.sZeroRecords
            !a.sEmptyTable &&
                d &&
                'No data available in table' === b.sEmptyTable &&
                Y(a, a, 'sZeroRecords', 'sEmptyTable')
            !a.sLoadingRecords &&
                d &&
                'Loading...' === b.sLoadingRecords &&
                Y(a, a, 'sZeroRecords', 'sLoadingRecords')
            a.sInfoThousands && (a.sThousands = a.sInfoThousands)
            ;(a = a.sDecimal) && c !== a && bb(a)
        }
    }
    function Db(a) {
        S(a, 'ordering', 'bSort')
        S(a, 'orderMulti', 'bSortMulti')
        S(a, 'orderClasses', 'bSortClasses')
        S(a, 'orderCellsTop', 'bSortCellsTop')
        S(a, 'order', 'aaSorting')
        S(a, 'orderFixed', 'aaSortingFixed')
        S(a, 'paging', 'bPaginate')
        S(a, 'pagingType', 'sPaginationType')
        S(a, 'pageLength', 'iDisplayLength')
        S(a, 'searching', 'bFilter')
        'boolean' === typeof a.sScrollX &&
            (a.sScrollX = a.sScrollX ? '100%' : '')
        'boolean' === typeof a.scrollX && (a.scrollX = a.scrollX ? '100%' : '')
        if ((a = a.aoSearchCols))
            for (var b = 0, c = a.length; b < c; b++)
                a[b] && P(u.models.oSearch, a[b])
    }
    function Eb(a) {
        S(a, 'orderable', 'bSortable')
        S(a, 'orderData', 'aDataSort')
        S(a, 'orderSequence', 'asSorting')
        S(a, 'orderDataType', 'sortDataType')
        var b = a.aDataSort
        'number' !== typeof b || Array.isArray(b) || (a.aDataSort = [b])
    }
    function Fb(a) {
        if (!u.__browser) {
            var b = {}
            u.__browser = b
            var c = l('<div/>')
                    .css({
                        position: 'fixed',
                        top: 0,
                        left: -1 * l(y).scrollLeft(),
                        height: 1,
                        width: 1,
                        overflow: 'hidden',
                    })
                    .append(
                        l('<div/>')
                            .css({
                                position: 'absolute',
                                top: 1,
                                left: 1,
                                width: 100,
                                overflow: 'scroll',
                            })
                            .append(
                                l('<div/>').css({ width: '100%', height: 10 })
                            )
                    )
                    .appendTo('body'),
                d = c.children(),
                e = d.children()
            b.barWidth = d[0].offsetWidth - d[0].clientWidth
            b.bScrollOversize =
                100 === e[0].offsetWidth && 100 !== d[0].clientWidth
            b.bScrollbarLeft = 1 !== Math.round(e.offset().left)
            b.bBounding = c[0].getBoundingClientRect().width ? !0 : !1
            c.remove()
        }
        l.extend(a.oBrowser, u.__browser)
        a.oScroll.iBarWidth = u.__browser.barWidth
    }
    function Gb(a, b, c, d, e, h) {
        var f = !1
        if (c !== q) {
            var g = c
            f = !0
        }
        for (; d !== e; )
            a.hasOwnProperty(d) &&
                ((g = f ? b(g, a[d], d, a) : a[d]), (f = !0), (d += h))
        return g
    }
    function cb(a, b) {
        var c = u.defaults.column,
            d = a.aoColumns.length
        c = l.extend({}, u.models.oColumn, c, {
            nTh: b ? b : A.createElement('th'),
            sTitle: c.sTitle ? c.sTitle : b ? b.innerHTML : '',
            aDataSort: c.aDataSort ? c.aDataSort : [d],
            mData: c.mData ? c.mData : d,
            idx: d,
        })
        a.aoColumns.push(c)
        c = a.aoPreSearchCols
        c[d] = l.extend({}, u.models.oSearch, c[d])
        Ia(a, d, l(b).data())
    }
    function Ia(a, b, c) {
        b = a.aoColumns[b]
        var d = a.oClasses,
            e = l(b.nTh)
        if (!b.sWidthOrig) {
            b.sWidthOrig = e.attr('width') || null
            var h = (e.attr('style') || '').match(/width:\s*(\d+[pxem%]+)/)
            h && (b.sWidthOrig = h[1])
        }
        c !== q &&
            null !== c &&
            (Eb(c),
            P(u.defaults.column, c, !0),
            c.mDataProp === q || c.mData || (c.mData = c.mDataProp),
            c.sType && (b._sManualType = c.sType),
            c.className && !c.sClass && (c.sClass = c.className),
            c.sClass && e.addClass(c.sClass),
            (h = b.sClass),
            l.extend(b, c),
            Y(b, c, 'sWidth', 'sWidthOrig'),
            h !== b.sClass && (b.sClass = h + ' ' + b.sClass),
            c.iDataSort !== q && (b.aDataSort = [c.iDataSort]),
            Y(b, c, 'aDataSort'))
        var f = b.mData,
            g = ma(f),
            k = b.mRender ? ma(b.mRender) : null
        c = function (m) {
            return 'string' === typeof m && -1 !== m.indexOf('@')
        }
        b._bAttrSrc =
            l.isPlainObject(f) && (c(f.sort) || c(f.type) || c(f.filter))
        b._setter = null
        b.fnGetData = function (m, n, p) {
            var t = g(m, n, q, p)
            return k && n ? k(t, n, m, p) : t
        }
        b.fnSetData = function (m, n, p) {
            return ha(f)(m, n, p)
        }
        'number' !== typeof f && (a._rowReadObject = !0)
        a.oFeatures.bSort || ((b.bSortable = !1), e.addClass(d.sSortableNone))
        a = -1 !== l.inArray('asc', b.asSorting)
        c = -1 !== l.inArray('desc', b.asSorting)
        b.bSortable && (a || c)
            ? a && !c
                ? ((b.sSortingClass = d.sSortableAsc),
                  (b.sSortingClassJUI = d.sSortJUIAscAllowed))
                : !a && c
                  ? ((b.sSortingClass = d.sSortableDesc),
                    (b.sSortingClassJUI = d.sSortJUIDescAllowed))
                  : ((b.sSortingClass = d.sSortable),
                    (b.sSortingClassJUI = d.sSortJUI))
            : ((b.sSortingClass = d.sSortableNone), (b.sSortingClassJUI = ''))
    }
    function sa(a) {
        if (!1 !== a.oFeatures.bAutoWidth) {
            var b = a.aoColumns
            db(a)
            for (var c = 0, d = b.length; c < d; c++)
                b[c].nTh.style.width = b[c].sWidth
        }
        b = a.oScroll
        ;('' === b.sY && '' === b.sX) || Ja(a)
        F(a, null, 'column-sizing', [a])
    }
    function ta(a, b) {
        a = Ka(a, 'bVisible')
        return 'number' === typeof a[b] ? a[b] : null
    }
    function ua(a, b) {
        a = Ka(a, 'bVisible')
        b = l.inArray(b, a)
        return -1 !== b ? b : null
    }
    function na(a) {
        var b = 0
        l.each(a.aoColumns, function (c, d) {
            d.bVisible && 'none' !== l(d.nTh).css('display') && b++
        })
        return b
    }
    function Ka(a, b) {
        var c = []
        l.map(a.aoColumns, function (d, e) {
            d[b] && c.push(e)
        })
        return c
    }
    function eb(a) {
        var b = a.aoColumns,
            c = a.aoData,
            d = u.ext.type.detect,
            e,
            h,
            f
        var g = 0
        for (e = b.length; g < e; g++) {
            var k = b[g]
            var m = []
            if (!k.sType && k._sManualType) k.sType = k._sManualType
            else if (!k.sType) {
                var n = 0
                for (h = d.length; n < h; n++) {
                    var p = 0
                    for (f = c.length; p < f; p++) {
                        m[p] === q && (m[p] = T(a, p, g, 'type'))
                        var t = d[n](m[p], a)
                        if (!t && n !== d.length - 1) break
                        if ('html' === t && !aa(m[p])) break
                    }
                    if (t) {
                        k.sType = t
                        break
                    }
                }
                k.sType || (k.sType = 'string')
            }
        }
    }
    function Hb(a, b, c, d) {
        var e,
            h,
            f,
            g = a.aoColumns
        if (b)
            for (e = b.length - 1; 0 <= e; e--) {
                var k = b[e]
                var m =
                    k.target !== q
                        ? k.target
                        : k.targets !== q
                          ? k.targets
                          : k.aTargets
                Array.isArray(m) || (m = [m])
                var n = 0
                for (h = m.length; n < h; n++)
                    if ('number' === typeof m[n] && 0 <= m[n]) {
                        for (; g.length <= m[n]; ) cb(a)
                        d(m[n], k)
                    } else if ('number' === typeof m[n] && 0 > m[n])
                        d(g.length + m[n], k)
                    else if ('string' === typeof m[n]) {
                        var p = 0
                        for (f = g.length; p < f; p++)
                            ('_all' == m[n] || l(g[p].nTh).hasClass(m[n])) &&
                                d(p, k)
                    }
            }
        if (c) for (e = 0, a = c.length; e < a; e++) d(e, c[e])
    }
    function ia(a, b, c, d) {
        var e = a.aoData.length,
            h = l.extend(!0, {}, u.models.oRow, {
                src: c ? 'dom' : 'data',
                idx: e,
            })
        h._aData = b
        a.aoData.push(h)
        for (var f = a.aoColumns, g = 0, k = f.length; g < k; g++)
            f[g].sType = null
        a.aiDisplayMaster.push(e)
        b = a.rowIdFn(b)
        b !== q && (a.aIds[b] = h)
        ;(!c && a.oFeatures.bDeferRender) || fb(a, e, c, d)
        return e
    }
    function La(a, b) {
        var c
        b instanceof l || (b = l(b))
        return b.map(function (d, e) {
            c = gb(a, e)
            return ia(a, c.data, e, c.cells)
        })
    }
    function T(a, b, c, d) {
        'search' === d ? (d = 'filter') : 'order' === d && (d = 'sort')
        var e = a.iDraw,
            h = a.aoColumns[c],
            f = a.aoData[b]._aData,
            g = h.sDefaultContent,
            k = h.fnGetData(f, d, { settings: a, row: b, col: c })
        if (k === q)
            return (
                a.iDrawError != e &&
                    null === g &&
                    (ea(
                        a,
                        0,
                        'Requested unknown parameter ' +
                            ('function' == typeof h.mData
                                ? '{function}'
                                : "'" + h.mData + "'") +
                            ' for row ' +
                            b +
                            ', column ' +
                            c,
                        4
                    ),
                    (a.iDrawError = e)),
                g
            )
        if ((k === f || null === k) && null !== g && d !== q) k = g
        else if ('function' === typeof k) return k.call(f)
        if (null === k && 'display' === d) return ''
        'filter' === d &&
            ((a = u.ext.type.search), a[h.sType] && (k = a[h.sType](k)))
        return k
    }
    function Ib(a, b, c, d) {
        a.aoColumns[c].fnSetData(a.aoData[b]._aData, d, {
            settings: a,
            row: b,
            col: c,
        })
    }
    function hb(a) {
        return l.map(a.match(/(\\.|[^\.])+/g) || [''], function (b) {
            return b.replace(/\\\./g, '.')
        })
    }
    function ib(a) {
        return U(a.aoData, '_aData')
    }
    function Ma(a) {
        a.aoData.length = 0
        a.aiDisplayMaster.length = 0
        a.aiDisplay.length = 0
        a.aIds = {}
    }
    function Na(a, b, c) {
        for (var d = -1, e = 0, h = a.length; e < h; e++)
            a[e] == b ? (d = e) : a[e] > b && a[e]--
        ;-1 != d && c === q && a.splice(d, 1)
    }
    function va(a, b, c, d) {
        var e = a.aoData[b],
            h,
            f = function (k, m) {
                for (; k.childNodes.length; ) k.removeChild(k.firstChild)
                k.innerHTML = T(a, b, m, 'display')
            }
        if ('dom' !== c && ((c && 'auto' !== c) || 'dom' !== e.src)) {
            var g = e.anCells
            if (g)
                if (d !== q) f(g[d], d)
                else for (c = 0, h = g.length; c < h; c++) f(g[c], c)
        } else e._aData = gb(a, e, d, d === q ? q : e._aData).data
        e._aSortData = null
        e._aFilterData = null
        f = a.aoColumns
        if (d !== q) f[d].sType = null
        else {
            c = 0
            for (h = f.length; c < h; c++) f[c].sType = null
            jb(a, e)
        }
    }
    function gb(a, b, c, d) {
        var e = [],
            h = b.firstChild,
            f,
            g = 0,
            k,
            m = a.aoColumns,
            n = a._rowReadObject
        d = d !== q ? d : n ? {} : []
        var p = function (x, w) {
                if ('string' === typeof x) {
                    var r = x.indexOf('@')
                    ;-1 !== r &&
                        ((r = x.substring(r + 1)), ha(x)(d, w.getAttribute(r)))
                }
            },
            t = function (x) {
                if (c === q || c === g)
                    (f = m[g]),
                        (k = x.innerHTML.trim()),
                        f && f._bAttrSrc
                            ? (ha(f.mData._)(d, k),
                              p(f.mData.sort, x),
                              p(f.mData.type, x),
                              p(f.mData.filter, x))
                            : n
                              ? (f._setter || (f._setter = ha(f.mData)),
                                f._setter(d, k))
                              : (d[g] = k)
                g++
            }
        if (h)
            for (; h; ) {
                var v = h.nodeName.toUpperCase()
                if ('TD' == v || 'TH' == v) t(h), e.push(h)
                h = h.nextSibling
            }
        else for (e = b.anCells, h = 0, v = e.length; h < v; h++) t(e[h])
        ;(b = b.firstChild ? b : b.nTr) &&
            (b = b.getAttribute('id')) &&
            ha(a.rowId)(d, b)
        return { data: d, cells: e }
    }
    function fb(a, b, c, d) {
        var e = a.aoData[b],
            h = e._aData,
            f = [],
            g,
            k
        if (null === e.nTr) {
            var m = c || A.createElement('tr')
            e.nTr = m
            e.anCells = f
            m._DT_RowIndex = b
            jb(a, e)
            var n = 0
            for (g = a.aoColumns.length; n < g; n++) {
                var p = a.aoColumns[n]
                e = (k = c ? !1 : !0) ? A.createElement(p.sCellType) : d[n]
                e._DT_CellIndex = { row: b, column: n }
                f.push(e)
                if (
                    k ||
                    !(
                        (!p.mRender && p.mData === n) ||
                        (l.isPlainObject(p.mData) &&
                            p.mData._ === n + '.display')
                    )
                )
                    e.innerHTML = T(a, b, n, 'display')
                p.sClass && (e.className += ' ' + p.sClass)
                p.bVisible && !c
                    ? m.appendChild(e)
                    : !p.bVisible && c && e.parentNode.removeChild(e)
                p.fnCreatedCell &&
                    p.fnCreatedCell.call(a.oInstance, e, T(a, b, n), h, b, n)
            }
            F(a, 'aoRowCreatedCallback', null, [m, h, b, f])
        }
    }
    function jb(a, b) {
        var c = b.nTr,
            d = b._aData
        if (c) {
            if ((a = a.rowIdFn(d))) c.id = a
            d.DT_RowClass &&
                ((a = d.DT_RowClass.split(' ')),
                (b.__rowc = b.__rowc ? Oa(b.__rowc.concat(a)) : a),
                l(c).removeClass(b.__rowc.join(' ')).addClass(d.DT_RowClass))
            d.DT_RowAttr && l(c).attr(d.DT_RowAttr)
            d.DT_RowData && l(c).data(d.DT_RowData)
        }
    }
    function Jb(a) {
        var b,
            c,
            d = a.nTHead,
            e = a.nTFoot,
            h = 0 === l('th, td', d).length,
            f = a.oClasses,
            g = a.aoColumns
        h && (c = l('<tr/>').appendTo(d))
        var k = 0
        for (b = g.length; k < b; k++) {
            var m = g[k]
            var n = l(m.nTh).addClass(m.sClass)
            h && n.appendTo(c)
            a.oFeatures.bSort &&
                (n.addClass(m.sSortingClass),
                !1 !== m.bSortable &&
                    (n
                        .attr('tabindex', a.iTabIndex)
                        .attr('aria-controls', a.sTableId),
                    kb(a, m.nTh, k)))
            m.sTitle != n[0].innerHTML && n.html(m.sTitle)
            lb(a, 'header')(a, n, m, f)
        }
        h && wa(a.aoHeader, d)
        l(d).children('tr').children('th, td').addClass(f.sHeaderTH)
        l(e).children('tr').children('th, td').addClass(f.sFooterTH)
        if (null !== e)
            for (a = a.aoFooter[0], k = 0, b = a.length; k < b; k++)
                (m = g[k]),
                    (m.nTf = a[k].cell),
                    m.sClass && l(m.nTf).addClass(m.sClass)
    }
    function xa(a, b, c) {
        var d,
            e,
            h = [],
            f = [],
            g = a.aoColumns.length
        if (b) {
            c === q && (c = !1)
            var k = 0
            for (d = b.length; k < d; k++) {
                h[k] = b[k].slice()
                h[k].nTr = b[k].nTr
                for (e = g - 1; 0 <= e; e--)
                    a.aoColumns[e].bVisible || c || h[k].splice(e, 1)
                f.push([])
            }
            k = 0
            for (d = h.length; k < d; k++) {
                if ((a = h[k].nTr))
                    for (; (e = a.firstChild); ) a.removeChild(e)
                e = 0
                for (b = h[k].length; e < b; e++) {
                    var m = (g = 1)
                    if (f[k][e] === q) {
                        a.appendChild(h[k][e].cell)
                        for (
                            f[k][e] = 1;
                            h[k + g] !== q && h[k][e].cell == h[k + g][e].cell;

                        )
                            (f[k + g][e] = 1), g++
                        for (
                            ;
                            h[k][e + m] !== q &&
                            h[k][e].cell == h[k][e + m].cell;

                        ) {
                            for (c = 0; c < g; c++) f[k + c][e + m] = 1
                            m++
                        }
                        l(h[k][e].cell).attr('rowspan', g).attr('colspan', m)
                    }
                }
            }
        }
    }
    function ja(a, b) {
        var c = 'ssp' == Q(a),
            d = a.iInitDisplayStart
        d !== q &&
            -1 !== d &&
            ((a._iDisplayStart = c ? d : d >= a.fnRecordsDisplay() ? 0 : d),
            (a.iInitDisplayStart = -1))
        c = F(a, 'aoPreDrawCallback', 'preDraw', [a])
        if (-1 !== l.inArray(!1, c)) V(a, !1)
        else {
            c = []
            var e = 0
            d = a.asStripeClasses
            var h = d.length,
                f = a.oLanguage,
                g = 'ssp' == Q(a),
                k = a.aiDisplay,
                m = a._iDisplayStart,
                n = a.fnDisplayEnd()
            a.bDrawing = !0
            if (a.bDeferLoading) (a.bDeferLoading = !1), a.iDraw++, V(a, !1)
            else if (!g) a.iDraw++
            else if (!a.bDestroying && !b) {
                Kb(a)
                return
            }
            if (0 !== k.length)
                for (b = g ? a.aoData.length : n, f = g ? 0 : m; f < b; f++) {
                    g = k[f]
                    var p = a.aoData[g]
                    null === p.nTr && fb(a, g)
                    var t = p.nTr
                    if (0 !== h) {
                        var v = d[e % h]
                        p._sRowStripe != v &&
                            (l(t).removeClass(p._sRowStripe).addClass(v),
                            (p._sRowStripe = v))
                    }
                    F(a, 'aoRowCallback', null, [t, p._aData, e, f, g])
                    c.push(t)
                    e++
                }
            else
                (e = f.sZeroRecords),
                    1 == a.iDraw && 'ajax' == Q(a)
                        ? (e = f.sLoadingRecords)
                        : f.sEmptyTable &&
                          0 === a.fnRecordsTotal() &&
                          (e = f.sEmptyTable),
                    (c[0] = l('<tr/>', { class: h ? d[0] : '' }).append(
                        l('<td />', {
                            valign: 'top',
                            colSpan: na(a),
                            class: a.oClasses.sRowEmpty,
                        }).html(e)
                    )[0])
            F(a, 'aoHeaderCallback', 'header', [
                l(a.nTHead).children('tr')[0],
                ib(a),
                m,
                n,
                k,
            ])
            F(a, 'aoFooterCallback', 'footer', [
                l(a.nTFoot).children('tr')[0],
                ib(a),
                m,
                n,
                k,
            ])
            d = l(a.nTBody)
            d.children().detach()
            d.append(l(c))
            F(a, 'aoDrawCallback', 'draw', [a])
            a.bSorted = !1
            a.bFiltered = !1
            a.bDrawing = !1
        }
    }
    function ka(a, b) {
        var c = a.oFeatures,
            d = c.bFilter
        c.bSort && Lb(a)
        d ? ya(a, a.oPreviousSearch) : (a.aiDisplay = a.aiDisplayMaster.slice())
        !0 !== b && (a._iDisplayStart = 0)
        a._drawHold = b
        ja(a)
        a._drawHold = !1
    }
    function Mb(a) {
        var b = a.oClasses,
            c = l(a.nTable)
        c = l('<div/>').insertBefore(c)
        var d = a.oFeatures,
            e = l('<div/>', {
                id: a.sTableId + '_wrapper',
                class: b.sWrapper + (a.nTFoot ? '' : ' ' + b.sNoFooter),
            })
        a.nHolding = c[0]
        a.nTableWrapper = e[0]
        a.nTableReinsertBefore = a.nTable.nextSibling
        for (
            var h = a.sDom.split(''), f, g, k, m, n, p, t = 0;
            t < h.length;
            t++
        ) {
            f = null
            g = h[t]
            if ('<' == g) {
                k = l('<div/>')[0]
                m = h[t + 1]
                if ("'" == m || '"' == m) {
                    n = ''
                    for (p = 2; h[t + p] != m; ) (n += h[t + p]), p++
                    'H' == n
                        ? (n = b.sJUIHeader)
                        : 'F' == n && (n = b.sJUIFooter)
                    ;-1 != n.indexOf('.')
                        ? ((m = n.split('.')),
                          (k.id = m[0].substr(1, m[0].length - 1)),
                          (k.className = m[1]))
                        : '#' == n.charAt(0)
                          ? (k.id = n.substr(1, n.length - 1))
                          : (k.className = n)
                    t += p
                }
                e.append(k)
                e = l(k)
            } else if ('>' == g) e = e.parent()
            else if ('l' == g && d.bPaginate && d.bLengthChange) f = Nb(a)
            else if ('f' == g && d.bFilter) f = Ob(a)
            else if ('r' == g && d.bProcessing) f = Pb(a)
            else if ('t' == g) f = Qb(a)
            else if ('i' == g && d.bInfo) f = Rb(a)
            else if ('p' == g && d.bPaginate) f = Sb(a)
            else if (0 !== u.ext.feature.length)
                for (k = u.ext.feature, p = 0, m = k.length; p < m; p++)
                    if (g == k[p].cFeature) {
                        f = k[p].fnInit(a)
                        break
                    }
            f &&
                ((k = a.aanFeatures),
                k[g] || (k[g] = []),
                k[g].push(f),
                e.append(f))
        }
        c.replaceWith(e)
        a.nHolding = null
    }
    function wa(a, b) {
        b = l(b).children('tr')
        var c, d, e
        a.splice(0, a.length)
        var h = 0
        for (e = b.length; h < e; h++) a.push([])
        h = 0
        for (e = b.length; h < e; h++) {
            var f = b[h]
            for (c = f.firstChild; c; ) {
                if (
                    'TD' == c.nodeName.toUpperCase() ||
                    'TH' == c.nodeName.toUpperCase()
                ) {
                    var g = 1 * c.getAttribute('colspan')
                    var k = 1 * c.getAttribute('rowspan')
                    g = g && 0 !== g && 1 !== g ? g : 1
                    k = k && 0 !== k && 1 !== k ? k : 1
                    var m = 0
                    for (d = a[h]; d[m]; ) m++
                    var n = m
                    var p = 1 === g ? !0 : !1
                    for (d = 0; d < g; d++)
                        for (m = 0; m < k; m++)
                            (a[h + m][n + d] = { cell: c, unique: p }),
                                (a[h + m].nTr = f)
                }
                c = c.nextSibling
            }
        }
    }
    function Pa(a, b, c) {
        var d = []
        c || ((c = a.aoHeader), b && ((c = []), wa(c, b)))
        b = 0
        for (var e = c.length; b < e; b++)
            for (var h = 0, f = c[b].length; h < f; h++)
                !c[b][h].unique ||
                    (d[h] && a.bSortCellsTop) ||
                    (d[h] = c[b][h].cell)
        return d
    }
    function Qa(a, b, c) {
        F(a, 'aoServerParams', 'serverParams', [b])
        if (b && Array.isArray(b)) {
            var d = {},
                e = /(.*?)\[\]$/
            l.each(b, function (n, p) {
                ;(n = p.name.match(e))
                    ? ((n = n[0]), d[n] || (d[n] = []), d[n].push(p.value))
                    : (d[p.name] = p.value)
            })
            b = d
        }
        var h = a.ajax,
            f = a.oInstance,
            g = function (n) {
                var p = a.jqXHR ? a.jqXHR.status : null
                if (null === n || ('number' === typeof p && 204 == p))
                    (n = {}), za(a, n, [])
                ;(p = n.error || n.sError) && ea(a, 0, p)
                a.json = n
                F(a, null, 'xhr', [a, n, a.jqXHR])
                c(n)
            }
        if (l.isPlainObject(h) && h.data) {
            var k = h.data
            var m = 'function' === typeof k ? k(b, a) : k
            b = 'function' === typeof k && m ? m : l.extend(!0, b, m)
            delete h.data
        }
        m = {
            data: b,
            success: g,
            dataType: 'json',
            cache: !1,
            type: a.sServerMethod,
            error: function (n, p, t) {
                t = F(a, null, 'xhr', [a, null, a.jqXHR])
                ;-1 === l.inArray(!0, t) &&
                    ('parsererror' == p
                        ? ea(a, 0, 'Invalid JSON response', 1)
                        : 4 === n.readyState && ea(a, 0, 'Ajax error', 7))
                V(a, !1)
            },
        }
        a.oAjaxData = b
        F(a, null, 'preXhr', [a, b])
        a.fnServerData
            ? a.fnServerData.call(
                  f,
                  a.sAjaxSource,
                  l.map(b, function (n, p) {
                      return { name: p, value: n }
                  }),
                  g,
                  a
              )
            : a.sAjaxSource || 'string' === typeof h
              ? (a.jqXHR = l.ajax(l.extend(m, { url: h || a.sAjaxSource })))
              : 'function' === typeof h
                ? (a.jqXHR = h.call(f, b, g, a))
                : ((a.jqXHR = l.ajax(l.extend(m, h))), (h.data = k))
    }
    function Kb(a) {
        a.iDraw++
        V(a, !0)
        Qa(a, Tb(a), function (b) {
            Ub(a, b)
        })
    }
    function Tb(a) {
        var b = a.aoColumns,
            c = b.length,
            d = a.oFeatures,
            e = a.oPreviousSearch,
            h = a.aoPreSearchCols,
            f = [],
            g = oa(a)
        var k = a._iDisplayStart
        var m = !1 !== d.bPaginate ? a._iDisplayLength : -1
        var n = function (x, w) {
            f.push({ name: x, value: w })
        }
        n('sEcho', a.iDraw)
        n('iColumns', c)
        n('sColumns', U(b, 'sName').join(','))
        n('iDisplayStart', k)
        n('iDisplayLength', m)
        var p = {
            draw: a.iDraw,
            columns: [],
            order: [],
            start: k,
            length: m,
            search: { value: e.sSearch, regex: e.bRegex },
        }
        for (k = 0; k < c; k++) {
            var t = b[k]
            var v = h[k]
            m = 'function' == typeof t.mData ? 'function' : t.mData
            p.columns.push({
                data: m,
                name: t.sName,
                searchable: t.bSearchable,
                orderable: t.bSortable,
                search: { value: v.sSearch, regex: v.bRegex },
            })
            n('mDataProp_' + k, m)
            d.bFilter &&
                (n('sSearch_' + k, v.sSearch),
                n('bRegex_' + k, v.bRegex),
                n('bSearchable_' + k, t.bSearchable))
            d.bSort && n('bSortable_' + k, t.bSortable)
        }
        d.bFilter && (n('sSearch', e.sSearch), n('bRegex', e.bRegex))
        d.bSort &&
            (l.each(g, function (x, w) {
                p.order.push({ column: w.col, dir: w.dir })
                n('iSortCol_' + x, w.col)
                n('sSortDir_' + x, w.dir)
            }),
            n('iSortingCols', g.length))
        b = u.ext.legacy.ajax
        return null === b ? (a.sAjaxSource ? f : p) : b ? f : p
    }
    function Ub(a, b) {
        var c = function (f, g) {
                return b[f] !== q ? b[f] : b[g]
            },
            d = za(a, b),
            e = c('sEcho', 'draw'),
            h = c('iTotalRecords', 'recordsTotal')
        c = c('iTotalDisplayRecords', 'recordsFiltered')
        if (e !== q) {
            if (1 * e < a.iDraw) return
            a.iDraw = 1 * e
        }
        d || (d = [])
        Ma(a)
        a._iRecordsTotal = parseInt(h, 10)
        a._iRecordsDisplay = parseInt(c, 10)
        e = 0
        for (h = d.length; e < h; e++) ia(a, d[e])
        a.aiDisplay = a.aiDisplayMaster.slice()
        ja(a, !0)
        a._bInitComplete || Ra(a, b)
        V(a, !1)
    }
    function za(a, b, c) {
        a =
            l.isPlainObject(a.ajax) && a.ajax.dataSrc !== q
                ? a.ajax.dataSrc
                : a.sAjaxDataProp
        if (!c) return 'data' === a ? b.aaData || b[a] : '' !== a ? ma(a)(b) : b
        ha(a)(b, c)
    }
    function Ob(a) {
        var b = a.oClasses,
            c = a.sTableId,
            d = a.oLanguage,
            e = a.oPreviousSearch,
            h = a.aanFeatures,
            f = '<input type="search" class="' + b.sFilterInput + '"/>',
            g = d.sSearch
        g = g.match(/_INPUT_/) ? g.replace('_INPUT_', f) : g + f
        b = l('<div/>', {
            id: h.f ? null : c + '_filter',
            class: b.sFilter,
        }).append(l('<label/>').append(g))
        var k = function (n) {
            var p = this.value ? this.value : ''
            ;(e.return && 'Enter' !== n.key) ||
                p == e.sSearch ||
                (ya(a, {
                    sSearch: p,
                    bRegex: e.bRegex,
                    bSmart: e.bSmart,
                    bCaseInsensitive: e.bCaseInsensitive,
                    return: e.return,
                }),
                (a._iDisplayStart = 0),
                ja(a))
        }
        h = null !== a.searchDelay ? a.searchDelay : 'ssp' === Q(a) ? 400 : 0
        var m = l('input', b)
            .val(e.sSearch)
            .attr('placeholder', d.sSearchPlaceholder)
            .on('keyup.DT search.DT input.DT paste.DT cut.DT', h ? mb(k, h) : k)
            .on('mouseup', function (n) {
                setTimeout(function () {
                    k.call(m[0], n)
                }, 10)
            })
            .on('keypress.DT', function (n) {
                if (13 == n.keyCode) return !1
            })
            .attr('aria-controls', c)
        l(a.nTable).on('search.dt.DT', function (n, p) {
            if (a === p)
                try {
                    m[0] !== A.activeElement && m.val(e.sSearch)
                } catch (t) {}
        })
        return b[0]
    }
    function ya(a, b, c) {
        var d = a.oPreviousSearch,
            e = a.aoPreSearchCols,
            h = function (g) {
                d.sSearch = g.sSearch
                d.bRegex = g.bRegex
                d.bSmart = g.bSmart
                d.bCaseInsensitive = g.bCaseInsensitive
                d.return = g.return
            },
            f = function (g) {
                return g.bEscapeRegex !== q ? !g.bEscapeRegex : g.bRegex
            }
        eb(a)
        if ('ssp' != Q(a)) {
            Vb(a, b.sSearch, c, f(b), b.bSmart, b.bCaseInsensitive, b.return)
            h(b)
            for (b = 0; b < e.length; b++)
                Wb(
                    a,
                    e[b].sSearch,
                    b,
                    f(e[b]),
                    e[b].bSmart,
                    e[b].bCaseInsensitive
                )
            Xb(a)
        } else h(b)
        a.bFiltered = !0
        F(a, null, 'search', [a])
    }
    function Xb(a) {
        for (
            var b = u.ext.search, c = a.aiDisplay, d, e, h = 0, f = b.length;
            h < f;
            h++
        ) {
            for (var g = [], k = 0, m = c.length; k < m; k++)
                (e = c[k]),
                    (d = a.aoData[e]),
                    b[h](a, d._aFilterData, e, d._aData, k) && g.push(e)
            c.length = 0
            l.merge(c, g)
        }
    }
    function Wb(a, b, c, d, e, h) {
        if ('' !== b) {
            var f = [],
                g = a.aiDisplay
            d = nb(b, d, e, h)
            for (e = 0; e < g.length; e++)
                (b = a.aoData[g[e]]._aFilterData[c]), d.test(b) && f.push(g[e])
            a.aiDisplay = f
        }
    }
    function Vb(a, b, c, d, e, h) {
        e = nb(b, d, e, h)
        var f = a.oPreviousSearch.sSearch,
            g = a.aiDisplayMaster
        h = []
        0 !== u.ext.search.length && (c = !0)
        var k = Yb(a)
        if (0 >= b.length) a.aiDisplay = g.slice()
        else {
            if (
                k ||
                c ||
                d ||
                f.length > b.length ||
                0 !== b.indexOf(f) ||
                a.bSorted
            )
                a.aiDisplay = g.slice()
            b = a.aiDisplay
            for (c = 0; c < b.length; c++)
                e.test(a.aoData[b[c]]._sFilterRow) && h.push(b[c])
            a.aiDisplay = h
        }
    }
    function nb(a, b, c, d) {
        a = b ? a : ob(a)
        c &&
            (a =
                '^(?=.*?' +
                l
                    .map(a.match(/"[^"]+"|[^ ]+/g) || [''], function (e) {
                        if ('"' === e.charAt(0)) {
                            var h = e.match(/^"(.*)"$/)
                            e = h ? h[1] : e
                        }
                        return e.replace('"', '')
                    })
                    .join(')(?=.*?') +
                ').*$')
        return new RegExp(a, d ? 'i' : '')
    }
    function Yb(a) {
        var b = a.aoColumns,
            c,
            d
        var e = !1
        var h = 0
        for (c = a.aoData.length; h < c; h++) {
            var f = a.aoData[h]
            if (!f._aFilterData) {
                var g = []
                e = 0
                for (d = b.length; e < d; e++) {
                    var k = b[e]
                    k.bSearchable
                        ? ((k = T(a, h, e, 'filter')),
                          null === k && (k = ''),
                          'string' !== typeof k &&
                              k.toString &&
                              (k = k.toString()))
                        : (k = '')
                    k.indexOf &&
                        -1 !== k.indexOf('&') &&
                        ((Sa.innerHTML = k),
                        (k = Bc ? Sa.textContent : Sa.innerText))
                    k.replace && (k = k.replace(/[\r\n\u2028]/g, ''))
                    g.push(k)
                }
                f._aFilterData = g
                f._sFilterRow = g.join('  ')
                e = !0
            }
        }
        return e
    }
    function Zb(a) {
        return {
            search: a.sSearch,
            smart: a.bSmart,
            regex: a.bRegex,
            caseInsensitive: a.bCaseInsensitive,
        }
    }
    function $b(a) {
        return {
            sSearch: a.search,
            bSmart: a.smart,
            bRegex: a.regex,
            bCaseInsensitive: a.caseInsensitive,
        }
    }
    function Rb(a) {
        var b = a.sTableId,
            c = a.aanFeatures.i,
            d = l('<div/>', {
                class: a.oClasses.sInfo,
                id: c ? null : b + '_info',
            })
        c ||
            (a.aoDrawCallback.push({ fn: ac, sName: 'information' }),
            d.attr('role', 'status').attr('aria-live', 'polite'),
            l(a.nTable).attr('aria-describedby', b + '_info'))
        return d[0]
    }
    function ac(a) {
        var b = a.aanFeatures.i
        if (0 !== b.length) {
            var c = a.oLanguage,
                d = a._iDisplayStart + 1,
                e = a.fnDisplayEnd(),
                h = a.fnRecordsTotal(),
                f = a.fnRecordsDisplay(),
                g = f ? c.sInfo : c.sInfoEmpty
            f !== h && (g += ' ' + c.sInfoFiltered)
            g += c.sInfoPostFix
            g = bc(a, g)
            c = c.fnInfoCallback
            null !== c && (g = c.call(a.oInstance, a, d, e, h, f, g))
            l(b).html(g)
        }
    }
    function bc(a, b) {
        var c = a.fnFormatNumber,
            d = a._iDisplayStart + 1,
            e = a._iDisplayLength,
            h = a.fnRecordsDisplay(),
            f = -1 === e
        return b
            .replace(/_START_/g, c.call(a, d))
            .replace(/_END_/g, c.call(a, a.fnDisplayEnd()))
            .replace(/_MAX_/g, c.call(a, a.fnRecordsTotal()))
            .replace(/_TOTAL_/g, c.call(a, h))
            .replace(/_PAGE_/g, c.call(a, f ? 1 : Math.ceil(d / e)))
            .replace(/_PAGES_/g, c.call(a, f ? 1 : Math.ceil(h / e)))
    }
    function Aa(a) {
        var b = a.iInitDisplayStart,
            c = a.aoColumns
        var d = a.oFeatures
        var e = a.bDeferLoading
        if (a.bInitialised) {
            Mb(a)
            Jb(a)
            xa(a, a.aoHeader)
            xa(a, a.aoFooter)
            V(a, !0)
            d.bAutoWidth && db(a)
            var h = 0
            for (d = c.length; h < d; h++) {
                var f = c[h]
                f.sWidth && (f.nTh.style.width = K(f.sWidth))
            }
            F(a, null, 'preInit', [a])
            ka(a)
            c = Q(a)
            if ('ssp' != c || e)
                'ajax' == c
                    ? Qa(
                          a,
                          [],
                          function (g) {
                              var k = za(a, g)
                              for (h = 0; h < k.length; h++) ia(a, k[h])
                              a.iInitDisplayStart = b
                              ka(a)
                              V(a, !1)
                              Ra(a, g)
                          },
                          a
                      )
                    : (V(a, !1), Ra(a))
        } else
            setTimeout(function () {
                Aa(a)
            }, 200)
    }
    function Ra(a, b) {
        a._bInitComplete = !0
        ;(b || a.oInit.aaData) && sa(a)
        F(a, null, 'plugin-init', [a, b])
        F(a, 'aoInitComplete', 'init', [a, b])
    }
    function pb(a, b) {
        b = parseInt(b, 10)
        a._iDisplayLength = b
        qb(a)
        F(a, null, 'length', [a, b])
    }
    function Nb(a) {
        var b = a.oClasses,
            c = a.sTableId,
            d = a.aLengthMenu,
            e = Array.isArray(d[0]),
            h = e ? d[0] : d
        d = e ? d[1] : d
        e = l('<select/>', {
            name: c + '_length',
            'aria-controls': c,
            class: b.sLengthSelect,
        })
        for (var f = 0, g = h.length; f < g; f++)
            e[0][f] = new Option(
                'number' === typeof d[f] ? a.fnFormatNumber(d[f]) : d[f],
                h[f]
            )
        var k = l('<div><label/></div>').addClass(b.sLength)
        a.aanFeatures.l || (k[0].id = c + '_length')
        k.children().append(
            a.oLanguage.sLengthMenu.replace('_MENU_', e[0].outerHTML)
        )
        l('select', k)
            .val(a._iDisplayLength)
            .on('change.DT', function (m) {
                pb(a, l(this).val())
                ja(a)
            })
        l(a.nTable).on('length.dt.DT', function (m, n, p) {
            a === n && l('select', k).val(p)
        })
        return k[0]
    }
    function Sb(a) {
        var b = a.sPaginationType,
            c = u.ext.pager[b],
            d = 'function' === typeof c,
            e = function (f) {
                ja(f)
            }
        b = l('<div/>').addClass(a.oClasses.sPaging + b)[0]
        var h = a.aanFeatures
        d || c.fnInit(a, b, e)
        h.p ||
            ((b.id = a.sTableId + '_paginate'),
            a.aoDrawCallback.push({
                fn: function (f) {
                    if (d) {
                        var g = f._iDisplayStart,
                            k = f._iDisplayLength,
                            m = f.fnRecordsDisplay(),
                            n = -1 === k
                        g = n ? 0 : Math.ceil(g / k)
                        k = n ? 1 : Math.ceil(m / k)
                        m = c(g, k)
                        var p
                        n = 0
                        for (p = h.p.length; n < p; n++)
                            lb(f, 'pageButton')(f, h.p[n], n, m, g, k)
                    } else c.fnUpdate(f, e)
                },
                sName: 'pagination',
            }))
        return b
    }
    function Ta(a, b, c) {
        var d = a._iDisplayStart,
            e = a._iDisplayLength,
            h = a.fnRecordsDisplay()
        0 === h || -1 === e
            ? (d = 0)
            : 'number' === typeof b
              ? ((d = b * e), d > h && (d = 0))
              : 'first' == b
                ? (d = 0)
                : 'previous' == b
                  ? ((d = 0 <= e ? d - e : 0), 0 > d && (d = 0))
                  : 'next' == b
                    ? d + e < h && (d += e)
                    : 'last' == b
                      ? (d = Math.floor((h - 1) / e) * e)
                      : ea(a, 0, 'Unknown paging action: ' + b, 5)
        b = a._iDisplayStart !== d
        a._iDisplayStart = d
        b && (F(a, null, 'page', [a]), c && ja(a))
        return b
    }
    function Pb(a) {
        return l('<div/>', {
            id: a.aanFeatures.r ? null : a.sTableId + '_processing',
            class: a.oClasses.sProcessing,
        })
            .html(a.oLanguage.sProcessing)
            .append('<div><div></div><div></div><div></div><div></div></div>')
            .insertBefore(a.nTable)[0]
    }
    function V(a, b) {
        a.oFeatures.bProcessing &&
            l(a.aanFeatures.r).css('display', b ? 'block' : 'none')
        F(a, null, 'processing', [a, b])
    }
    function Qb(a) {
        var b = l(a.nTable),
            c = a.oScroll
        if ('' === c.sX && '' === c.sY) return a.nTable
        var d = c.sX,
            e = c.sY,
            h = a.oClasses,
            f = b.children('caption'),
            g = f.length ? f[0]._captionSide : null,
            k = l(b[0].cloneNode(!1)),
            m = l(b[0].cloneNode(!1)),
            n = b.children('tfoot')
        n.length || (n = null)
        k = l('<div/>', { class: h.sScrollWrapper })
            .append(
                l('<div/>', { class: h.sScrollHead })
                    .css({
                        overflow: 'hidden',
                        position: 'relative',
                        border: 0,
                        width: d ? (d ? K(d) : null) : '100%',
                    })
                    .append(
                        l('<div/>', { class: h.sScrollHeadInner })
                            .css({
                                'box-sizing': 'content-box',
                                width: c.sXInner || '100%',
                            })
                            .append(
                                k
                                    .removeAttr('id')
                                    .css('margin-left', 0)
                                    .append('top' === g ? f : null)
                                    .append(b.children('thead'))
                            )
                    )
            )
            .append(
                l('<div/>', { class: h.sScrollBody })
                    .css({
                        position: 'relative',
                        overflow: 'auto',
                        width: d ? K(d) : null,
                    })
                    .append(b)
            )
        n &&
            k.append(
                l('<div/>', { class: h.sScrollFoot })
                    .css({
                        overflow: 'hidden',
                        border: 0,
                        width: d ? (d ? K(d) : null) : '100%',
                    })
                    .append(
                        l('<div/>', { class: h.sScrollFootInner }).append(
                            m
                                .removeAttr('id')
                                .css('margin-left', 0)
                                .append('bottom' === g ? f : null)
                                .append(b.children('tfoot'))
                        )
                    )
            )
        b = k.children()
        var p = b[0]
        h = b[1]
        var t = n ? b[2] : null
        if (d)
            l(h).on('scroll.DT', function (v) {
                v = this.scrollLeft
                p.scrollLeft = v
                n && (t.scrollLeft = v)
            })
        l(h).css('max-height', e)
        c.bCollapse || l(h).css('height', e)
        a.nScrollHead = p
        a.nScrollBody = h
        a.nScrollFoot = t
        a.aoDrawCallback.push({ fn: Ja, sName: 'scrolling' })
        return k[0]
    }
    function Ja(a) {
        var b = a.oScroll,
            c = b.sX,
            d = b.sXInner,
            e = b.sY
        b = b.iBarWidth
        var h = l(a.nScrollHead),
            f = h[0].style,
            g = h.children('div'),
            k = g[0].style,
            m = g.children('table')
        g = a.nScrollBody
        var n = l(g),
            p = g.style,
            t = l(a.nScrollFoot).children('div'),
            v = t.children('table'),
            x = l(a.nTHead),
            w = l(a.nTable),
            r = w[0],
            C = r.style,
            G = a.nTFoot ? l(a.nTFoot) : null,
            ba = a.oBrowser,
            L = ba.bScrollOversize
        U(a.aoColumns, 'nTh')
        var O = [],
            I = [],
            H = [],
            fa = [],
            Z,
            Ba = function (D) {
                D = D.style
                D.paddingTop = '0'
                D.paddingBottom = '0'
                D.borderTopWidth = '0'
                D.borderBottomWidth = '0'
                D.height = 0
            }
        var X = g.scrollHeight > g.clientHeight
        if (a.scrollBarVis !== X && a.scrollBarVis !== q)
            (a.scrollBarVis = X), sa(a)
        else {
            a.scrollBarVis = X
            w.children('thead, tfoot').remove()
            if (G) {
                X = G.clone().prependTo(w)
                var ca = G.find('tr')
                var Ca = X.find('tr')
                X.find('[id]').removeAttr('id')
            }
            var Ua = x.clone().prependTo(w)
            x = x.find('tr')
            X = Ua.find('tr')
            Ua.find('th, td').removeAttr('tabindex')
            Ua.find('[id]').removeAttr('id')
            c || ((p.width = '100%'), (h[0].style.width = '100%'))
            l.each(Pa(a, Ua), function (D, W) {
                Z = ta(a, D)
                W.style.width = a.aoColumns[Z].sWidth
            })
            G &&
                da(function (D) {
                    D.style.width = ''
                }, Ca)
            h = w.outerWidth()
            '' === c
                ? ((C.width = '100%'),
                  L &&
                      (w.find('tbody').height() > g.offsetHeight ||
                          'scroll' == n.css('overflow-y')) &&
                      (C.width = K(w.outerWidth() - b)),
                  (h = w.outerWidth()))
                : '' !== d && ((C.width = K(d)), (h = w.outerWidth()))
            da(Ba, X)
            da(function (D) {
                var W = y.getComputedStyle
                    ? y.getComputedStyle(D).width
                    : K(l(D).width())
                H.push(D.innerHTML)
                O.push(W)
            }, X)
            da(function (D, W) {
                D.style.width = O[W]
            }, x)
            l(X).css('height', 0)
            G &&
                (da(Ba, Ca),
                da(function (D) {
                    fa.push(D.innerHTML)
                    I.push(K(l(D).css('width')))
                }, Ca),
                da(function (D, W) {
                    D.style.width = I[W]
                }, ca),
                l(Ca).height(0))
            da(function (D, W) {
                D.innerHTML =
                    '<div class="dataTables_sizing">' + H[W] + '</div>'
                D.childNodes[0].style.height = '0'
                D.childNodes[0].style.overflow = 'hidden'
                D.style.width = O[W]
            }, X)
            G &&
                da(function (D, W) {
                    D.innerHTML =
                        '<div class="dataTables_sizing">' + fa[W] + '</div>'
                    D.childNodes[0].style.height = '0'
                    D.childNodes[0].style.overflow = 'hidden'
                    D.style.width = I[W]
                }, Ca)
            Math.round(w.outerWidth()) < Math.round(h)
                ? ((ca =
                      g.scrollHeight > g.offsetHeight ||
                      'scroll' == n.css('overflow-y')
                          ? h + b
                          : h),
                  L &&
                      (g.scrollHeight > g.offsetHeight ||
                          'scroll' == n.css('overflow-y')) &&
                      (C.width = K(ca - b)),
                  ('' !== c && '' === d) ||
                      ea(a, 1, 'Possible column misalignment', 6))
                : (ca = '100%')
            p.width = K(ca)
            f.width = K(ca)
            G && (a.nScrollFoot.style.width = K(ca))
            !e && L && (p.height = K(r.offsetHeight + b))
            c = w.outerWidth()
            m[0].style.width = K(c)
            k.width = K(c)
            d = w.height() > g.clientHeight || 'scroll' == n.css('overflow-y')
            e = 'padding' + (ba.bScrollbarLeft ? 'Left' : 'Right')
            k[e] = d ? b + 'px' : '0px'
            G &&
                ((v[0].style.width = K(c)),
                (t[0].style.width = K(c)),
                (t[0].style[e] = d ? b + 'px' : '0px'))
            w.children('colgroup').insertBefore(w.children('thead'))
            n.trigger('scroll')
            ;(!a.bSorted && !a.bFiltered) || a._drawHold || (g.scrollTop = 0)
        }
    }
    function da(a, b, c) {
        for (var d = 0, e = 0, h = b.length, f, g; e < h; ) {
            f = b[e].firstChild
            for (g = c ? c[e].firstChild : null; f; )
                1 === f.nodeType && (c ? a(f, g, d) : a(f, d), d++),
                    (f = f.nextSibling),
                    (g = c ? g.nextSibling : null)
            e++
        }
    }
    function db(a) {
        var b = a.nTable,
            c = a.aoColumns,
            d = a.oScroll,
            e = d.sY,
            h = d.sX,
            f = d.sXInner,
            g = c.length,
            k = Ka(a, 'bVisible'),
            m = l('th', a.nTHead),
            n = b.getAttribute('width'),
            p = b.parentNode,
            t = !1,
            v,
            x = a.oBrowser
        d = x.bScrollOversize
        ;(v = b.style.width) && -1 !== v.indexOf('%') && (n = v)
        for (v = 0; v < k.length; v++) {
            var w = c[k[v]]
            null !== w.sWidth && ((w.sWidth = cc(w.sWidthOrig, p)), (t = !0))
        }
        if (d || (!t && !h && !e && g == na(a) && g == m.length))
            for (v = 0; v < g; v++)
                (k = ta(a, v)), null !== k && (c[k].sWidth = K(m.eq(v).width()))
        else {
            g = l(b).clone().css('visibility', 'hidden').removeAttr('id')
            g.find('tbody tr').remove()
            var r = l('<tr/>').appendTo(g.find('tbody'))
            g.find('thead, tfoot').remove()
            g.append(l(a.nTHead).clone()).append(l(a.nTFoot).clone())
            g.find('tfoot th, tfoot td').css('width', '')
            m = Pa(a, g.find('thead')[0])
            for (v = 0; v < k.length; v++)
                (w = c[k[v]]),
                    (m[v].style.width =
                        null !== w.sWidthOrig && '' !== w.sWidthOrig
                            ? K(w.sWidthOrig)
                            : ''),
                    w.sWidthOrig &&
                        h &&
                        l(m[v]).append(
                            l('<div/>').css({
                                width: w.sWidthOrig,
                                margin: 0,
                                padding: 0,
                                border: 0,
                                height: 1,
                            })
                        )
            if (a.aoData.length)
                for (v = 0; v < k.length; v++)
                    (t = k[v]),
                        (w = c[t]),
                        l(dc(a, t))
                            .clone(!1)
                            .append(w.sContentPadding)
                            .appendTo(r)
            l('[name]', g).removeAttr('name')
            w = l('<div/>')
                .css(
                    h || e
                        ? {
                              position: 'absolute',
                              top: 0,
                              left: 0,
                              height: 1,
                              right: 0,
                              overflow: 'hidden',
                          }
                        : {}
                )
                .append(g)
                .appendTo(p)
            h && f
                ? g.width(f)
                : h
                  ? (g.css('width', 'auto'),
                    g.removeAttr('width'),
                    g.width() < p.clientWidth && n && g.width(p.clientWidth))
                  : e
                    ? g.width(p.clientWidth)
                    : n && g.width(n)
            for (v = e = 0; v < k.length; v++)
                (p = l(m[v])),
                    (f = p.outerWidth() - p.width()),
                    (p = x.bBounding
                        ? Math.ceil(m[v].getBoundingClientRect().width)
                        : p.outerWidth()),
                    (e += p),
                    (c[k[v]].sWidth = K(p - f))
            b.style.width = K(e)
            w.remove()
        }
        n && (b.style.width = K(n))
        ;(!n && !h) ||
            a._reszEvt ||
            ((b = function () {
                l(y).on(
                    'resize.DT-' + a.sInstance,
                    mb(function () {
                        sa(a)
                    })
                )
            }),
            d ? setTimeout(b, 1e3) : b(),
            (a._reszEvt = !0))
    }
    function cc(a, b) {
        if (!a) return 0
        a = l('<div/>')
            .css('width', K(a))
            .appendTo(b || A.body)
        b = a[0].offsetWidth
        a.remove()
        return b
    }
    function dc(a, b) {
        var c = ec(a, b)
        if (0 > c) return null
        var d = a.aoData[c]
        return d.nTr ? d.anCells[b] : l('<td/>').html(T(a, c, b, 'display'))[0]
    }
    function ec(a, b) {
        for (var c, d = -1, e = -1, h = 0, f = a.aoData.length; h < f; h++)
            (c = T(a, h, b, 'display') + ''),
                (c = c.replace(Cc, '')),
                (c = c.replace(/&nbsp;/g, ' ')),
                c.length > d && ((d = c.length), (e = h))
        return e
    }
    function K(a) {
        return null === a
            ? '0px'
            : 'number' == typeof a
              ? 0 > a
                  ? '0px'
                  : a + 'px'
              : a.match(/\d$/)
                ? a + 'px'
                : a
    }
    function oa(a) {
        var b = [],
            c = a.aoColumns
        var d = a.aaSortingFixed
        var e = l.isPlainObject(d)
        var h = []
        var f = function (n) {
            n.length && !Array.isArray(n[0]) ? h.push(n) : l.merge(h, n)
        }
        Array.isArray(d) && f(d)
        e && d.pre && f(d.pre)
        f(a.aaSorting)
        e && d.post && f(d.post)
        for (a = 0; a < h.length; a++) {
            var g = h[a][0]
            f = c[g].aDataSort
            d = 0
            for (e = f.length; d < e; d++) {
                var k = f[d]
                var m = c[k].sType || 'string'
                h[a]._idx === q &&
                    (h[a]._idx = l.inArray(h[a][1], c[k].asSorting))
                b.push({
                    src: g,
                    col: k,
                    dir: h[a][1],
                    index: h[a]._idx,
                    type: m,
                    formatter: u.ext.type.order[m + '-pre'],
                })
            }
        }
        return b
    }
    function Lb(a) {
        var b,
            c = [],
            d = u.ext.type.order,
            e = a.aoData,
            h = 0,
            f = a.aiDisplayMaster
        eb(a)
        var g = oa(a)
        var k = 0
        for (b = g.length; k < b; k++) {
            var m = g[k]
            m.formatter && h++
            fc(a, m.col)
        }
        if ('ssp' != Q(a) && 0 !== g.length) {
            k = 0
            for (b = f.length; k < b; k++) c[f[k]] = k
            h === g.length
                ? f.sort(function (n, p) {
                      var t,
                          v = g.length,
                          x = e[n]._aSortData,
                          w = e[p]._aSortData
                      for (t = 0; t < v; t++) {
                          var r = g[t]
                          var C = x[r.col]
                          var G = w[r.col]
                          C = C < G ? -1 : C > G ? 1 : 0
                          if (0 !== C) return 'asc' === r.dir ? C : -C
                      }
                      C = c[n]
                      G = c[p]
                      return C < G ? -1 : C > G ? 1 : 0
                  })
                : f.sort(function (n, p) {
                      var t,
                          v = g.length,
                          x = e[n]._aSortData,
                          w = e[p]._aSortData
                      for (t = 0; t < v; t++) {
                          var r = g[t]
                          var C = x[r.col]
                          var G = w[r.col]
                          r = d[r.type + '-' + r.dir] || d['string-' + r.dir]
                          C = r(C, G)
                          if (0 !== C) return C
                      }
                      C = c[n]
                      G = c[p]
                      return C < G ? -1 : C > G ? 1 : 0
                  })
        }
        a.bSorted = !0
    }
    function gc(a) {
        var b = a.aoColumns,
            c = oa(a)
        a = a.oLanguage.oAria
        for (var d = 0, e = b.length; d < e; d++) {
            var h = b[d]
            var f = h.asSorting
            var g = h.ariaTitle || h.sTitle.replace(/<.*?>/g, '')
            var k = h.nTh
            k.removeAttribute('aria-sort')
            h.bSortable &&
                (0 < c.length && c[0].col == d
                    ? (k.setAttribute(
                          'aria-sort',
                          'asc' == c[0].dir ? 'ascending' : 'descending'
                      ),
                      (h = f[c[0].index + 1] || f[0]))
                    : (h = f[0]),
                (g += 'asc' === h ? a.sSortAscending : a.sSortDescending))
            k.setAttribute('aria-label', g)
        }
    }
    function rb(a, b, c, d) {
        var e = a.aaSorting,
            h = a.aoColumns[b].asSorting,
            f = function (g, k) {
                var m = g._idx
                m === q && (m = l.inArray(g[1], h))
                return m + 1 < h.length ? m + 1 : k ? null : 0
            }
        'number' === typeof e[0] && (e = a.aaSorting = [e])
        c && a.oFeatures.bSortMulti
            ? ((c = l.inArray(b, U(e, '0'))),
              -1 !== c
                  ? ((b = f(e[c], !0)),
                    null === b && 1 === e.length && (b = 0),
                    null === b
                        ? e.splice(c, 1)
                        : ((e[c][1] = h[b]), (e[c]._idx = b)))
                  : (e.push([b, h[0], 0]), (e[e.length - 1]._idx = 0)))
            : e.length && e[0][0] == b
              ? ((b = f(e[0])),
                (e.length = 1),
                (e[0][1] = h[b]),
                (e[0]._idx = b))
              : ((e.length = 0), e.push([b, h[0]]), (e[0]._idx = 0))
        ka(a)
        'function' == typeof d && d(a)
    }
    function kb(a, b, c, d) {
        var e = a.aoColumns[c]
        sb(b, {}, function (h) {
            !1 !== e.bSortable &&
                (a.oFeatures.bProcessing
                    ? (V(a, !0),
                      setTimeout(function () {
                          rb(a, c, h.shiftKey, d)
                          'ssp' !== Q(a) && V(a, !1)
                      }, 0))
                    : rb(a, c, h.shiftKey, d))
        })
    }
    function Va(a) {
        var b = a.aLastSort,
            c = a.oClasses.sSortColumn,
            d = oa(a),
            e = a.oFeatures,
            h
        if (e.bSort && e.bSortClasses) {
            e = 0
            for (h = b.length; e < h; e++) {
                var f = b[e].src
                l(U(a.aoData, 'anCells', f)).removeClass(
                    c + (2 > e ? e + 1 : 3)
                )
            }
            e = 0
            for (h = d.length; e < h; e++)
                (f = d[e].src),
                    l(U(a.aoData, 'anCells', f)).addClass(
                        c + (2 > e ? e + 1 : 3)
                    )
        }
        a.aLastSort = d
    }
    function fc(a, b) {
        var c = a.aoColumns[b],
            d = u.ext.order[c.sSortDataType],
            e
        d && (e = d.call(a.oInstance, a, b, ua(a, b)))
        for (
            var h,
                f = u.ext.type.order[c.sType + '-pre'],
                g = 0,
                k = a.aoData.length;
            g < k;
            g++
        )
            if (
                ((c = a.aoData[g]),
                c._aSortData || (c._aSortData = []),
                !c._aSortData[b] || d)
            )
                (h = d ? e[g] : T(a, g, b, 'sort')),
                    (c._aSortData[b] = f ? f(h) : h)
    }
    function Da(a) {
        if (!a._bLoadingState) {
            var b = {
                time: +new Date(),
                start: a._iDisplayStart,
                length: a._iDisplayLength,
                order: l.extend(!0, [], a.aaSorting),
                search: Zb(a.oPreviousSearch),
                columns: l.map(a.aoColumns, function (c, d) {
                    return {
                        visible: c.bVisible,
                        search: Zb(a.aoPreSearchCols[d]),
                    }
                }),
            }
            a.oSavedState = b
            F(a, 'aoStateSaveParams', 'stateSaveParams', [a, b])
            a.oFeatures.bStateSave &&
                !a.bDestroying &&
                a.fnStateSaveCallback.call(a.oInstance, a, b)
        }
    }
    function hc(a, b, c) {
        if (a.oFeatures.bStateSave)
            return (
                (b = a.fnStateLoadCallback.call(a.oInstance, a, function (d) {
                    tb(a, d, c)
                })),
                b !== q && tb(a, b, c),
                !0
            )
        c()
    }
    function tb(a, b, c) {
        var d,
            e = a.aoColumns
        a._bLoadingState = !0
        var h = a._bInitComplete ? new u.Api(a) : null
        if (b && b.time) {
            var f = F(a, 'aoStateLoadParams', 'stateLoadParams', [a, b])
            if (-1 !== l.inArray(!1, f)) a._bLoadingState = !1
            else if (
                ((f = a.iStateDuration),
                0 < f && b.time < +new Date() - 1e3 * f)
            )
                a._bLoadingState = !1
            else if (b.columns && e.length !== b.columns.length)
                a._bLoadingState = !1
            else {
                a.oLoadedState = l.extend(!0, {}, b)
                b.length !== q &&
                    (h ? h.page.len(b.length) : (a._iDisplayLength = b.length))
                b.start !== q &&
                    (null === h
                        ? ((a._iDisplayStart = b.start),
                          (a.iInitDisplayStart = b.start))
                        : Ta(a, b.start / a._iDisplayLength))
                b.order !== q &&
                    ((a.aaSorting = []),
                    l.each(b.order, function (k, m) {
                        a.aaSorting.push(m[0] >= e.length ? [0, m[1]] : m)
                    }))
                b.search !== q && l.extend(a.oPreviousSearch, $b(b.search))
                if (b.columns) {
                    f = 0
                    for (d = b.columns.length; f < d; f++) {
                        var g = b.columns[f]
                        g.visible !== q &&
                            (h
                                ? h.column(f).visible(g.visible, !1)
                                : (e[f].bVisible = g.visible))
                        g.search !== q &&
                            l.extend(a.aoPreSearchCols[f], $b(g.search))
                    }
                    h && h.columns.adjust()
                }
                a._bLoadingState = !1
                F(a, 'aoStateLoaded', 'stateLoaded', [a, b])
            }
        } else a._bLoadingState = !1
        c()
    }
    function Wa(a) {
        var b = u.settings
        a = l.inArray(a, U(b, 'nTable'))
        return -1 !== a ? b[a] : null
    }
    function ea(a, b, c, d) {
        c =
            'DataTables warning: ' +
            (a ? 'table id=' + a.sTableId + ' - ' : '') +
            c
        d &&
            (c +=
                '. For more information about this error, please see http://datatables.net/tn/' +
                d)
        if (b) y.console && console.log && console.log(c)
        else if (
            ((b = u.ext),
            (b = b.sErrMode || b.errMode),
            a && F(a, null, 'error', [a, d, c]),
            'alert' == b)
        )
            alert(c)
        else {
            if ('throw' == b) throw Error(c)
            'function' == typeof b && b(a, d, c)
        }
    }
    function Y(a, b, c, d) {
        Array.isArray(c)
            ? l.each(c, function (e, h) {
                  Array.isArray(h) ? Y(a, b, h[0], h[1]) : Y(a, b, h)
              })
            : (d === q && (d = c), b[c] !== q && (a[d] = b[c]))
    }
    function ub(a, b, c) {
        var d
        for (d in b)
            if (b.hasOwnProperty(d)) {
                var e = b[d]
                l.isPlainObject(e)
                    ? (l.isPlainObject(a[d]) || (a[d] = {}),
                      l.extend(!0, a[d], e))
                    : c && 'data' !== d && 'aaData' !== d && Array.isArray(e)
                      ? (a[d] = e.slice())
                      : (a[d] = e)
            }
        return a
    }
    function sb(a, b, c) {
        l(a)
            .on('click.DT', b, function (d) {
                l(a).trigger('blur')
                c(d)
            })
            .on('keypress.DT', b, function (d) {
                13 === d.which && (d.preventDefault(), c(d))
            })
            .on('selectstart.DT', function () {
                return !1
            })
    }
    function R(a, b, c, d) {
        c && a[b].push({ fn: c, sName: d })
    }
    function F(a, b, c, d) {
        var e = []
        b &&
            (e = l.map(a[b].slice().reverse(), function (h, f) {
                return h.fn.apply(a.oInstance, d)
            }))
        null !== c &&
            ((b = l.Event(c + '.dt')),
            l(a.nTable).trigger(b, d),
            e.push(b.result))
        return e
    }
    function qb(a) {
        var b = a._iDisplayStart,
            c = a.fnDisplayEnd(),
            d = a._iDisplayLength
        b >= c && (b = c - d)
        b -= b % d
        if (-1 === d || 0 > b) b = 0
        a._iDisplayStart = b
    }
    function lb(a, b) {
        a = a.renderer
        var c = u.ext.renderer[b]
        return l.isPlainObject(a) && a[b]
            ? c[a[b]] || c._
            : 'string' === typeof a
              ? c[a] || c._
              : c._
    }
    function Q(a) {
        return a.oFeatures.bServerSide
            ? 'ssp'
            : a.ajax || a.sAjaxSource
              ? 'ajax'
              : 'dom'
    }
    function Ea(a, b) {
        var c = ic.numbers_length,
            d = Math.floor(c / 2)
        b <= c
            ? (a = pa(0, b))
            : a <= d
              ? ((a = pa(0, c - 2)), a.push('ellipsis'), a.push(b - 1))
              : (a >= b - 1 - d
                    ? (a = pa(b - (c - 2), b))
                    : ((a = pa(a - d + 2, a + d - 1)),
                      a.push('ellipsis'),
                      a.push(b - 1)),
                a.splice(0, 0, 'ellipsis'),
                a.splice(0, 0, 0))
        a.DT_el = 'span'
        return a
    }
    function bb(a) {
        l.each(
            {
                num: function (b) {
                    return Xa(b, a)
                },
                'num-fmt': function (b) {
                    return Xa(b, a, vb)
                },
                'html-num': function (b) {
                    return Xa(b, a, Ya)
                },
                'html-num-fmt': function (b) {
                    return Xa(b, a, Ya, vb)
                },
            },
            function (b, c) {
                M.type.order[b + a + '-pre'] = c
                b.match(/^html\-/) &&
                    (M.type.search[b + a] = M.type.search.html)
            }
        )
    }
    function jc(a, b, c, d, e) {
        return y.moment ? a[b](e) : y.luxon ? a[c](e) : d ? a[d](e) : a
    }
    function Za(a, b, c) {
        if (y.moment) {
            var d = y.moment.utc(a, b, c, !0)
            if (!d.isValid()) return null
        } else if (y.luxon) {
            d = b
                ? y.luxon.DateTime.fromFormat(a, b)
                : y.luxon.DateTime.fromISO(a)
            if (!d.isValid) return null
            d.setLocale(c)
        } else
            b
                ? (kc ||
                      alert(
                          'DataTables warning: Formatted date without Moment.js or Luxon - https://datatables.net/tn/17'
                      ),
                  (kc = !0))
                : (d = new Date(a))
        return d
    }
    function wb(a) {
        return function (b, c, d, e) {
            0 === arguments.length
                ? ((d = 'en'), (b = c = null))
                : 1 === arguments.length
                  ? ((d = 'en'), (c = b), (b = null))
                  : 2 === arguments.length && ((d = c), (c = b), (b = null))
            var h = 'datetime-' + c
            u.ext.type.order[h] ||
                (u.ext.type.detect.unshift(function (f) {
                    return f === h ? h : !1
                }),
                (u.ext.type.order[h + '-asc'] = function (f, g) {
                    f = f.valueOf()
                    g = g.valueOf()
                    return f === g ? 0 : f < g ? -1 : 1
                }),
                (u.ext.type.order[h + '-desc'] = function (f, g) {
                    f = f.valueOf()
                    g = g.valueOf()
                    return f === g ? 0 : f > g ? -1 : 1
                }))
            return function (f, g) {
                if (null === f || f === q)
                    '--now' === e
                        ? ((f = new Date()),
                          (f = new Date(
                              Date.UTC(
                                  f.getFullYear(),
                                  f.getMonth(),
                                  f.getDate(),
                                  f.getHours(),
                                  f.getMinutes(),
                                  f.getSeconds()
                              )
                          )))
                        : (f = '')
                if ('type' === g) return h
                if ('' === f)
                    return 'sort' !== g
                        ? ''
                        : Za('0000-01-01 00:00:00', null, d)
                if (
                    null !== c &&
                    b === c &&
                    'sort' !== g &&
                    'type' !== g &&
                    !(f instanceof Date)
                )
                    return f
                var k = Za(f, b, d)
                if (null === k) return f
                if ('sort' === g) return k
                f =
                    null === c
                        ? jc(k, 'toDate', 'toJSDate', '')[a]()
                        : jc(k, 'format', 'toFormat', 'toISOString', c)
                return 'display' === g ? $a(f) : f
            }
        }
    }
    function lc(a) {
        return function () {
            var b = [Wa(this[u.ext.iApiIndex])].concat(
                Array.prototype.slice.call(arguments)
            )
            return u.ext.internal[a].apply(this, b)
        }
    }
    var u = function (a, b) {
            if (this instanceof u) return l(a).DataTable(b)
            b = a
            this.$ = function (f, g) {
                return this.api(!0).$(f, g)
            }
            this._ = function (f, g) {
                return this.api(!0).rows(f, g).data()
            }
            this.api = function (f) {
                return f ? new B(Wa(this[M.iApiIndex])) : new B(this)
            }
            this.fnAddData = function (f, g) {
                var k = this.api(!0)
                f =
                    Array.isArray(f) &&
                    (Array.isArray(f[0]) || l.isPlainObject(f[0]))
                        ? k.rows.add(f)
                        : k.row.add(f)
                ;(g === q || g) && k.draw()
                return f.flatten().toArray()
            }
            this.fnAdjustColumnSizing = function (f) {
                var g = this.api(!0).columns.adjust(),
                    k = g.settings()[0],
                    m = k.oScroll
                f === q || f
                    ? g.draw(!1)
                    : ('' !== m.sX || '' !== m.sY) && Ja(k)
            }
            this.fnClearTable = function (f) {
                var g = this.api(!0).clear()
                ;(f === q || f) && g.draw()
            }
            this.fnClose = function (f) {
                this.api(!0).row(f).child.hide()
            }
            this.fnDeleteRow = function (f, g, k) {
                var m = this.api(!0)
                f = m.rows(f)
                var n = f.settings()[0],
                    p = n.aoData[f[0][0]]
                f.remove()
                g && g.call(this, n, p)
                ;(k === q || k) && m.draw()
                return p
            }
            this.fnDestroy = function (f) {
                this.api(!0).destroy(f)
            }
            this.fnDraw = function (f) {
                this.api(!0).draw(f)
            }
            this.fnFilter = function (f, g, k, m, n, p) {
                n = this.api(!0)
                null === g || g === q
                    ? n.search(f, k, m, p)
                    : n.column(g).search(f, k, m, p)
                n.draw()
            }
            this.fnGetData = function (f, g) {
                var k = this.api(!0)
                if (f !== q) {
                    var m = f.nodeName ? f.nodeName.toLowerCase() : ''
                    return g !== q || 'td' == m || 'th' == m
                        ? k.cell(f, g).data()
                        : k.row(f).data() || null
                }
                return k.data().toArray()
            }
            this.fnGetNodes = function (f) {
                var g = this.api(!0)
                return f !== q
                    ? g.row(f).node()
                    : g.rows().nodes().flatten().toArray()
            }
            this.fnGetPosition = function (f) {
                var g = this.api(!0),
                    k = f.nodeName.toUpperCase()
                return 'TR' == k
                    ? g.row(f).index()
                    : 'TD' == k || 'TH' == k
                      ? ((f = g.cell(f).index()),
                        [f.row, f.columnVisible, f.column])
                      : null
            }
            this.fnIsOpen = function (f) {
                return this.api(!0).row(f).child.isShown()
            }
            this.fnOpen = function (f, g, k) {
                return this.api(!0).row(f).child(g, k).show().child()[0]
            }
            this.fnPageChange = function (f, g) {
                f = this.api(!0).page(f)
                ;(g === q || g) && f.draw(!1)
            }
            this.fnSetColumnVis = function (f, g, k) {
                f = this.api(!0).column(f).visible(g)
                ;(k === q || k) && f.columns.adjust().draw()
            }
            this.fnSettings = function () {
                return Wa(this[M.iApiIndex])
            }
            this.fnSort = function (f) {
                this.api(!0).order(f).draw()
            }
            this.fnSortListener = function (f, g, k) {
                this.api(!0).order.listener(f, g, k)
            }
            this.fnUpdate = function (f, g, k, m, n) {
                var p = this.api(!0)
                k === q || null === k ? p.row(g).data(f) : p.cell(g, k).data(f)
                ;(n === q || n) && p.columns.adjust()
                ;(m === q || m) && p.draw()
                return 0
            }
            this.fnVersionCheck = M.fnVersionCheck
            var c = this,
                d = b === q,
                e = this.length
            d && (b = {})
            this.oApi = this.internal = M.internal
            for (var h in u.ext.internal) h && (this[h] = lc(h))
            this.each(function () {
                var f = {},
                    g = 1 < e ? ub(f, b, !0) : b,
                    k = 0,
                    m
                f = this.getAttribute('id')
                var n = !1,
                    p = u.defaults,
                    t = l(this)
                if ('table' != this.nodeName.toLowerCase())
                    ea(
                        null,
                        0,
                        'Non-table node initialisation (' + this.nodeName + ')',
                        2
                    )
                else {
                    Db(p)
                    Eb(p.column)
                    P(p, p, !0)
                    P(p.column, p.column, !0)
                    P(p, l.extend(g, t.data()), !0)
                    var v = u.settings
                    k = 0
                    for (m = v.length; k < m; k++) {
                        var x = v[k]
                        if (
                            x.nTable == this ||
                            (x.nTHead && x.nTHead.parentNode == this) ||
                            (x.nTFoot && x.nTFoot.parentNode == this)
                        ) {
                            var w =
                                g.bRetrieve !== q ? g.bRetrieve : p.bRetrieve
                            if (d || w) return x.oInstance
                            if (g.bDestroy !== q ? g.bDestroy : p.bDestroy) {
                                x.oInstance.fnDestroy()
                                break
                            } else {
                                ea(x, 0, 'Cannot reinitialise DataTable', 3)
                                return
                            }
                        }
                        if (x.sTableId == this.id) {
                            v.splice(k, 1)
                            break
                        }
                    }
                    if (null === f || '' === f)
                        this.id = f = 'DataTables_Table_' + u.ext._unique++
                    var r = l.extend(!0, {}, u.models.oSettings, {
                        sDestroyWidth: t[0].style.width,
                        sInstance: f,
                        sTableId: f,
                    })
                    r.nTable = this
                    r.oApi = c.internal
                    r.oInit = g
                    v.push(r)
                    r.oInstance = 1 === c.length ? c : t.dataTable()
                    Db(g)
                    la(g.oLanguage)
                    g.aLengthMenu &&
                        !g.iDisplayLength &&
                        (g.iDisplayLength = Array.isArray(g.aLengthMenu[0])
                            ? g.aLengthMenu[0][0]
                            : g.aLengthMenu[0])
                    g = ub(l.extend(!0, {}, p), g)
                    Y(
                        r.oFeatures,
                        g,
                        'bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender'.split(
                            ' '
                        )
                    )
                    Y(r, g, [
                        'asStripeClasses',
                        'ajax',
                        'fnServerData',
                        'fnFormatNumber',
                        'sServerMethod',
                        'aaSorting',
                        'aaSortingFixed',
                        'aLengthMenu',
                        'sPaginationType',
                        'sAjaxSource',
                        'sAjaxDataProp',
                        'iStateDuration',
                        'sDom',
                        'bSortCellsTop',
                        'iTabIndex',
                        'fnStateLoadCallback',
                        'fnStateSaveCallback',
                        'renderer',
                        'searchDelay',
                        'rowId',
                        ['iCookieDuration', 'iStateDuration'],
                        ['oSearch', 'oPreviousSearch'],
                        ['aoSearchCols', 'aoPreSearchCols'],
                        ['iDisplayLength', '_iDisplayLength'],
                    ])
                    Y(r.oScroll, g, [
                        ['sScrollX', 'sX'],
                        ['sScrollXInner', 'sXInner'],
                        ['sScrollY', 'sY'],
                        ['bScrollCollapse', 'bCollapse'],
                    ])
                    Y(r.oLanguage, g, 'fnInfoCallback')
                    R(r, 'aoDrawCallback', g.fnDrawCallback, 'user')
                    R(r, 'aoServerParams', g.fnServerParams, 'user')
                    R(r, 'aoStateSaveParams', g.fnStateSaveParams, 'user')
                    R(r, 'aoStateLoadParams', g.fnStateLoadParams, 'user')
                    R(r, 'aoStateLoaded', g.fnStateLoaded, 'user')
                    R(r, 'aoRowCallback', g.fnRowCallback, 'user')
                    R(r, 'aoRowCreatedCallback', g.fnCreatedRow, 'user')
                    R(r, 'aoHeaderCallback', g.fnHeaderCallback, 'user')
                    R(r, 'aoFooterCallback', g.fnFooterCallback, 'user')
                    R(r, 'aoInitComplete', g.fnInitComplete, 'user')
                    R(r, 'aoPreDrawCallback', g.fnPreDrawCallback, 'user')
                    r.rowIdFn = ma(g.rowId)
                    Fb(r)
                    var C = r.oClasses
                    l.extend(C, u.ext.classes, g.oClasses)
                    t.addClass(C.sTable)
                    r.iInitDisplayStart === q &&
                        ((r.iInitDisplayStart = g.iDisplayStart),
                        (r._iDisplayStart = g.iDisplayStart))
                    null !== g.iDeferLoading &&
                        ((r.bDeferLoading = !0),
                        (f = Array.isArray(g.iDeferLoading)),
                        (r._iRecordsDisplay = f
                            ? g.iDeferLoading[0]
                            : g.iDeferLoading),
                        (r._iRecordsTotal = f
                            ? g.iDeferLoading[1]
                            : g.iDeferLoading))
                    var G = r.oLanguage
                    l.extend(!0, G, g.oLanguage)
                    G.sUrl
                        ? (l.ajax({
                              dataType: 'json',
                              url: G.sUrl,
                              success: function (I) {
                                  P(p.oLanguage, I)
                                  la(I)
                                  l.extend(!0, G, I, r.oInit.oLanguage)
                                  F(r, null, 'i18n', [r])
                                  Aa(r)
                              },
                              error: function () {
                                  Aa(r)
                              },
                          }),
                          (n = !0))
                        : F(r, null, 'i18n', [r])
                    null === g.asStripeClasses &&
                        (r.asStripeClasses = [C.sStripeOdd, C.sStripeEven])
                    f = r.asStripeClasses
                    var ba = t.children('tbody').find('tr').eq(0)
                    ;-1 !==
                        l.inArray(
                            !0,
                            l.map(f, function (I, H) {
                                return ba.hasClass(I)
                            })
                        ) &&
                        (l('tbody tr', this).removeClass(f.join(' ')),
                        (r.asDestroyStripes = f.slice()))
                    f = []
                    v = this.getElementsByTagName('thead')
                    0 !== v.length && (wa(r.aoHeader, v[0]), (f = Pa(r)))
                    if (null === g.aoColumns)
                        for (v = [], k = 0, m = f.length; k < m; k++)
                            v.push(null)
                    else v = g.aoColumns
                    k = 0
                    for (m = v.length; k < m; k++) cb(r, f ? f[k] : null)
                    Hb(r, g.aoColumnDefs, v, function (I, H) {
                        Ia(r, I, H)
                    })
                    if (ba.length) {
                        var L = function (I, H) {
                            return null !== I.getAttribute('data-' + H)
                                ? H
                                : null
                        }
                        l(ba[0])
                            .children('th, td')
                            .each(function (I, H) {
                                var fa = r.aoColumns[I]
                                if (fa.mData === I) {
                                    var Z = L(H, 'sort') || L(H, 'order')
                                    H = L(H, 'filter') || L(H, 'search')
                                    if (null !== Z || null !== H)
                                        (fa.mData = {
                                            _: I + '.display',
                                            sort:
                                                null !== Z
                                                    ? I + '.@data-' + Z
                                                    : q,
                                            type:
                                                null !== Z
                                                    ? I + '.@data-' + Z
                                                    : q,
                                            filter:
                                                null !== H
                                                    ? I + '.@data-' + H
                                                    : q,
                                        }),
                                            Ia(r, I)
                                }
                            })
                    }
                    var O = r.oFeatures
                    f = function () {
                        if (g.aaSorting === q) {
                            var I = r.aaSorting
                            k = 0
                            for (m = I.length; k < m; k++)
                                I[k][1] = r.aoColumns[k].asSorting[0]
                        }
                        Va(r)
                        O.bSort &&
                            R(r, 'aoDrawCallback', function () {
                                if (r.bSorted) {
                                    var Z = oa(r),
                                        Ba = {}
                                    l.each(Z, function (X, ca) {
                                        Ba[ca.src] = ca.dir
                                    })
                                    F(r, null, 'order', [r, Z, Ba])
                                    gc(r)
                                }
                            })
                        R(
                            r,
                            'aoDrawCallback',
                            function () {
                                ;(r.bSorted ||
                                    'ssp' === Q(r) ||
                                    O.bDeferRender) &&
                                    Va(r)
                            },
                            'sc'
                        )
                        I = t.children('caption').each(function () {
                            this._captionSide = l(this).css('caption-side')
                        })
                        var H = t.children('thead')
                        0 === H.length && (H = l('<thead/>').appendTo(t))
                        r.nTHead = H[0]
                        var fa = t.children('tbody')
                        0 === fa.length && (fa = l('<tbody/>').insertAfter(H))
                        r.nTBody = fa[0]
                        H = t.children('tfoot')
                        0 === H.length &&
                            0 < I.length &&
                            ('' !== r.oScroll.sX || '' !== r.oScroll.sY) &&
                            (H = l('<tfoot/>').appendTo(t))
                        0 === H.length || 0 === H.children().length
                            ? t.addClass(C.sNoFooter)
                            : 0 < H.length &&
                              ((r.nTFoot = H[0]), wa(r.aoFooter, r.nTFoot))
                        if (g.aaData)
                            for (k = 0; k < g.aaData.length; k++)
                                ia(r, g.aaData[k])
                        else
                            (r.bDeferLoading || 'dom' == Q(r)) &&
                                La(r, l(r.nTBody).children('tr'))
                        r.aiDisplay = r.aiDisplayMaster.slice()
                        r.bInitialised = !0
                        !1 === n && Aa(r)
                    }
                    R(r, 'aoDrawCallback', Da, 'state_save')
                    g.bStateSave ? ((O.bStateSave = !0), hc(r, g, f)) : f()
                }
            })
            c = null
            return this
        },
        M,
        z,
        J,
        xb = {},
        mc = /[\r\n\u2028]/g,
        Ya = /<.*?>/g,
        Dc =
            /^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,
        Ec = /(\/|\.|\*|\+|\?|\||\(|\)|\[|\]|\{|\}|\\|\$|\^|\-)/g,
        vb = /['\u00A0,$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,
        aa = function (a) {
            return a && !0 !== a && '-' !== a ? !1 : !0
        },
        nc = function (a) {
            var b = parseInt(a, 10)
            return !isNaN(b) && isFinite(a) ? b : null
        },
        oc = function (a, b) {
            xb[b] || (xb[b] = new RegExp(ob(b), 'g'))
            return 'string' === typeof a && '.' !== b
                ? a.replace(/\./g, '').replace(xb[b], '.')
                : a
        },
        yb = function (a, b, c) {
            var d = 'string' === typeof a
            if (aa(a)) return !0
            b && d && (a = oc(a, b))
            c && d && (a = a.replace(vb, ''))
            return !isNaN(parseFloat(a)) && isFinite(a)
        },
        pc = function (a, b, c) {
            return aa(a)
                ? !0
                : aa(a) || 'string' === typeof a
                  ? yb(a.replace(Ya, ''), b, c)
                      ? !0
                      : null
                  : null
        },
        U = function (a, b, c) {
            var d = [],
                e = 0,
                h = a.length
            if (c !== q)
                for (; e < h; e++) a[e] && a[e][b] && d.push(a[e][b][c])
            else for (; e < h; e++) a[e] && d.push(a[e][b])
            return d
        },
        Fa = function (a, b, c, d) {
            var e = [],
                h = 0,
                f = b.length
            if (d !== q) for (; h < f; h++) a[b[h]][c] && e.push(a[b[h]][c][d])
            else for (; h < f; h++) e.push(a[b[h]][c])
            return e
        },
        pa = function (a, b) {
            var c = []
            if (b === q) {
                b = 0
                var d = a
            } else (d = b), (b = a)
            for (a = b; a < d; a++) c.push(a)
            return c
        },
        qc = function (a) {
            for (var b = [], c = 0, d = a.length; c < d; c++)
                a[c] && b.push(a[c])
            return b
        },
        Oa = function (a) {
            a: {
                if (!(2 > a.length)) {
                    var b = a.slice().sort()
                    for (var c = b[0], d = 1, e = b.length; d < e; d++) {
                        if (b[d] === c) {
                            b = !1
                            break a
                        }
                        c = b[d]
                    }
                }
                b = !0
            }
            if (b) return a.slice()
            b = []
            e = a.length
            var h,
                f = 0
            d = 0
            a: for (; d < e; d++) {
                c = a[d]
                for (h = 0; h < f; h++) if (b[h] === c) continue a
                b.push(c)
                f++
            }
            return b
        },
        rc = function (a, b) {
            if (Array.isArray(b)) for (var c = 0; c < b.length; c++) rc(a, b[c])
            else a.push(b)
            return a
        },
        sc = function (a, b) {
            b === q && (b = 0)
            return -1 !== this.indexOf(a, b)
        }
    Array.isArray ||
        (Array.isArray = function (a) {
            return '[object Array]' === Object.prototype.toString.call(a)
        })
    Array.prototype.includes || (Array.prototype.includes = sc)
    String.prototype.trim ||
        (String.prototype.trim = function () {
            return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '')
        })
    String.prototype.includes || (String.prototype.includes = sc)
    u.util = {
        throttle: function (a, b) {
            var c = b !== q ? b : 200,
                d,
                e
            return function () {
                var h = this,
                    f = +new Date(),
                    g = arguments
                d && f < d + c
                    ? (clearTimeout(e),
                      (e = setTimeout(function () {
                          d = q
                          a.apply(h, g)
                      }, c)))
                    : ((d = f), a.apply(h, g))
            }
        },
        escapeRegex: function (a) {
            return a.replace(Ec, '\\$1')
        },
        set: function (a) {
            if (l.isPlainObject(a)) return u.util.set(a._)
            if (null === a) return function () {}
            if ('function' === typeof a)
                return function (c, d, e) {
                    a(c, 'set', d, e)
                }
            if (
                'string' !== typeof a ||
                (-1 === a.indexOf('.') &&
                    -1 === a.indexOf('[') &&
                    -1 === a.indexOf('('))
            )
                return function (c, d) {
                    c[a] = d
                }
            var b = function (c, d, e) {
                e = hb(e)
                var h = e[e.length - 1]
                for (var f, g, k = 0, m = e.length - 1; k < m; k++) {
                    if ('__proto__' === e[k] || 'constructor' === e[k])
                        throw Error('Cannot set prototype values')
                    f = e[k].match(Ga)
                    g = e[k].match(qa)
                    if (f) {
                        e[k] = e[k].replace(Ga, '')
                        c[e[k]] = []
                        h = e.slice()
                        h.splice(0, k + 1)
                        f = h.join('.')
                        if (Array.isArray(d))
                            for (g = 0, m = d.length; g < m; g++)
                                (h = {}), b(h, d[g], f), c[e[k]].push(h)
                        else c[e[k]] = d
                        return
                    }
                    g && ((e[k] = e[k].replace(qa, '')), (c = c[e[k]](d)))
                    if (null === c[e[k]] || c[e[k]] === q) c[e[k]] = {}
                    c = c[e[k]]
                }
                if (h.match(qa)) c[h.replace(qa, '')](d)
                else c[h.replace(Ga, '')] = d
            }
            return function (c, d) {
                return b(c, d, a)
            }
        },
        get: function (a) {
            if (l.isPlainObject(a)) {
                var b = {}
                l.each(a, function (d, e) {
                    e && (b[d] = u.util.get(e))
                })
                return function (d, e, h, f) {
                    var g = b[e] || b._
                    return g !== q ? g(d, e, h, f) : d
                }
            }
            if (null === a)
                return function (d) {
                    return d
                }
            if ('function' === typeof a)
                return function (d, e, h, f) {
                    return a(d, e, h, f)
                }
            if (
                'string' !== typeof a ||
                (-1 === a.indexOf('.') &&
                    -1 === a.indexOf('[') &&
                    -1 === a.indexOf('('))
            )
                return function (d, e) {
                    return d[a]
                }
            var c = function (d, e, h) {
                if ('' !== h) {
                    var f = hb(h)
                    for (var g = 0, k = f.length; g < k; g++) {
                        h = f[g].match(Ga)
                        var m = f[g].match(qa)
                        if (h) {
                            f[g] = f[g].replace(Ga, '')
                            '' !== f[g] && (d = d[f[g]])
                            m = []
                            f.splice(0, g + 1)
                            f = f.join('.')
                            if (Array.isArray(d))
                                for (g = 0, k = d.length; g < k; g++)
                                    m.push(c(d[g], e, f))
                            d = h[0].substring(1, h[0].length - 1)
                            d = '' === d ? m : m.join(d)
                            break
                        } else if (m) {
                            f[g] = f[g].replace(qa, '')
                            d = d[f[g]]()
                            continue
                        }
                        if (null === d || d[f[g]] === q) return q
                        d = d[f[g]]
                    }
                }
                return d
            }
            return function (d, e) {
                return c(d, e, a)
            }
        },
    }
    var S = function (a, b, c) {
            a[b] !== q && (a[c] = a[b])
        },
        Ga = /\[.*?\]$/,
        qa = /\(\)$/,
        ma = u.util.get,
        ha = u.util.set,
        ob = u.util.escapeRegex,
        Sa = l('<div>')[0],
        Bc = Sa.textContent !== q,
        Cc = /<.*?>/g,
        mb = u.util.throttle,
        tc = [],
        N = Array.prototype,
        Fc = function (a) {
            var b,
                c = u.settings,
                d = l.map(c, function (h, f) {
                    return h.nTable
                })
            if (a) {
                if (a.nTable && a.oApi) return [a]
                if (a.nodeName && 'table' === a.nodeName.toLowerCase()) {
                    var e = l.inArray(a, d)
                    return -1 !== e ? [c[e]] : null
                }
                if (a && 'function' === typeof a.settings)
                    return a.settings().toArray()
                'string' === typeof a ? (b = l(a)) : a instanceof l && (b = a)
            } else return []
            if (b)
                return b
                    .map(function (h) {
                        e = l.inArray(this, d)
                        return -1 !== e ? c[e] : null
                    })
                    .toArray()
        }
    var B = function (a, b) {
        if (!(this instanceof B)) return new B(a, b)
        var c = [],
            d = function (f) {
                ;(f = Fc(f)) && c.push.apply(c, f)
            }
        if (Array.isArray(a)) for (var e = 0, h = a.length; e < h; e++) d(a[e])
        else d(a)
        this.context = Oa(c)
        b && l.merge(this, b)
        this.selector = { rows: null, cols: null, opts: null }
        B.extend(this, this, tc)
    }
    u.Api = B
    l.extend(B.prototype, {
        any: function () {
            return 0 !== this.count()
        },
        concat: N.concat,
        context: [],
        count: function () {
            return this.flatten().length
        },
        each: function (a) {
            for (var b = 0, c = this.length; b < c; b++)
                a.call(this, this[b], b, this)
            return this
        },
        eq: function (a) {
            var b = this.context
            return b.length > a ? new B(b[a], this[a]) : null
        },
        filter: function (a) {
            var b = []
            if (N.filter) b = N.filter.call(this, a, this)
            else
                for (var c = 0, d = this.length; c < d; c++)
                    a.call(this, this[c], c, this) && b.push(this[c])
            return new B(this.context, b)
        },
        flatten: function () {
            var a = []
            return new B(this.context, a.concat.apply(a, this.toArray()))
        },
        join: N.join,
        indexOf:
            N.indexOf ||
            function (a, b) {
                b = b || 0
                for (var c = this.length; b < c; b++)
                    if (this[b] === a) return b
                return -1
            },
        iterator: function (a, b, c, d) {
            var e = [],
                h,
                f,
                g = this.context,
                k,
                m = this.selector
            'string' === typeof a && ((d = c), (c = b), (b = a), (a = !1))
            var n = 0
            for (h = g.length; n < h; n++) {
                var p = new B(g[n])
                if ('table' === b) {
                    var t = c.call(p, g[n], n)
                    t !== q && e.push(t)
                } else if ('columns' === b || 'rows' === b)
                    (t = c.call(p, g[n], this[n], n)), t !== q && e.push(t)
                else if (
                    'column' === b ||
                    'column-rows' === b ||
                    'row' === b ||
                    'cell' === b
                ) {
                    var v = this[n]
                    'column-rows' === b && (k = ab(g[n], m.opts))
                    var x = 0
                    for (f = v.length; x < f; x++)
                        (t = v[x]),
                            (t =
                                'cell' === b
                                    ? c.call(p, g[n], t.row, t.column, n, x)
                                    : c.call(p, g[n], t, n, x, k)),
                            t !== q && e.push(t)
                }
            }
            return e.length || d
                ? ((a = new B(g, a ? e.concat.apply([], e) : e)),
                  (b = a.selector),
                  (b.rows = m.rows),
                  (b.cols = m.cols),
                  (b.opts = m.opts),
                  a)
                : this
        },
        lastIndexOf:
            N.lastIndexOf ||
            function (a, b) {
                return this.indexOf.apply(this.toArray.reverse(), arguments)
            },
        length: 0,
        map: function (a) {
            var b = []
            if (N.map) b = N.map.call(this, a, this)
            else
                for (var c = 0, d = this.length; c < d; c++)
                    b.push(a.call(this, this[c], c))
            return new B(this.context, b)
        },
        pluck: function (a) {
            var b = u.util.get(a)
            return this.map(function (c) {
                return b(c)
            })
        },
        pop: N.pop,
        push: N.push,
        reduce:
            N.reduce ||
            function (a, b) {
                return Gb(this, a, b, 0, this.length, 1)
            },
        reduceRight:
            N.reduceRight ||
            function (a, b) {
                return Gb(this, a, b, this.length - 1, -1, -1)
            },
        reverse: N.reverse,
        selector: null,
        shift: N.shift,
        slice: function () {
            return new B(this.context, this)
        },
        sort: N.sort,
        splice: N.splice,
        toArray: function () {
            return N.slice.call(this)
        },
        to$: function () {
            return l(this)
        },
        toJQuery: function () {
            return l(this)
        },
        unique: function () {
            return new B(this.context, Oa(this))
        },
        unshift: N.unshift,
    })
    B.extend = function (a, b, c) {
        if (c.length && b && (b instanceof B || b.__dt_wrapper)) {
            var d,
                e = function (g, k, m) {
                    return function () {
                        var n = k.apply(g, arguments)
                        B.extend(n, n, m.methodExt)
                        return n
                    }
                }
            var h = 0
            for (d = c.length; h < d; h++) {
                var f = c[h]
                b[f.name] =
                    'function' === f.type
                        ? e(a, f.val, f)
                        : 'object' === f.type
                          ? {}
                          : f.val
                b[f.name].__dt_wrapper = !0
                B.extend(a, b[f.name], f.propExt)
            }
        }
    }
    B.register = z = function (a, b) {
        if (Array.isArray(a))
            for (var c = 0, d = a.length; c < d; c++) B.register(a[c], b)
        else {
            d = a.split('.')
            var e = tc,
                h
            a = 0
            for (c = d.length; a < c; a++) {
                var f = (h = -1 !== d[a].indexOf('()'))
                    ? d[a].replace('()', '')
                    : d[a]
                a: {
                    var g = 0
                    for (var k = e.length; g < k; g++)
                        if (e[g].name === f) {
                            g = e[g]
                            break a
                        }
                    g = null
                }
                g ||
                    ((g = {
                        name: f,
                        val: {},
                        methodExt: [],
                        propExt: [],
                        type: 'object',
                    }),
                    e.push(g))
                a === c - 1
                    ? ((g.val = b),
                      (g.type =
                          'function' === typeof b
                              ? 'function'
                              : l.isPlainObject(b)
                                ? 'object'
                                : 'other'))
                    : (e = h ? g.methodExt : g.propExt)
            }
        }
    }
    B.registerPlural = J = function (a, b, c) {
        B.register(a, c)
        B.register(b, function () {
            var d = c.apply(this, arguments)
            return d === this
                ? this
                : d instanceof B
                  ? d.length
                      ? Array.isArray(d[0])
                          ? new B(d.context, d[0])
                          : d[0]
                      : q
                  : d
        })
    }
    var uc = function (a, b) {
        if (Array.isArray(a))
            return l.map(a, function (d) {
                return uc(d, b)
            })
        if ('number' === typeof a) return [b[a]]
        var c = l.map(b, function (d, e) {
            return d.nTable
        })
        return l(c)
            .filter(a)
            .map(function (d) {
                d = l.inArray(this, c)
                return b[d]
            })
            .toArray()
    }
    z('tables()', function (a) {
        return a !== q && null !== a ? new B(uc(a, this.context)) : this
    })
    z('table()', function (a) {
        a = this.tables(a)
        var b = a.context
        return b.length ? new B(b[0]) : a
    })
    J('tables().nodes()', 'table().node()', function () {
        return this.iterator(
            'table',
            function (a) {
                return a.nTable
            },
            1
        )
    })
    J('tables().body()', 'table().body()', function () {
        return this.iterator(
            'table',
            function (a) {
                return a.nTBody
            },
            1
        )
    })
    J('tables().header()', 'table().header()', function () {
        return this.iterator(
            'table',
            function (a) {
                return a.nTHead
            },
            1
        )
    })
    J('tables().footer()', 'table().footer()', function () {
        return this.iterator(
            'table',
            function (a) {
                return a.nTFoot
            },
            1
        )
    })
    J('tables().containers()', 'table().container()', function () {
        return this.iterator(
            'table',
            function (a) {
                return a.nTableWrapper
            },
            1
        )
    })
    z('draw()', function (a) {
        return this.iterator('table', function (b) {
            'page' === a
                ? ja(b)
                : ('string' === typeof a && (a = 'full-hold' === a ? !1 : !0),
                  ka(b, !1 === a))
        })
    })
    z('page()', function (a) {
        return a === q
            ? this.page.info().page
            : this.iterator('table', function (b) {
                  Ta(b, a)
              })
    })
    z('page.info()', function (a) {
        if (0 === this.context.length) return q
        a = this.context[0]
        var b = a._iDisplayStart,
            c = a.oFeatures.bPaginate ? a._iDisplayLength : -1,
            d = a.fnRecordsDisplay(),
            e = -1 === c
        return {
            page: e ? 0 : Math.floor(b / c),
            pages: e ? 1 : Math.ceil(d / c),
            start: b,
            end: a.fnDisplayEnd(),
            length: c,
            recordsTotal: a.fnRecordsTotal(),
            recordsDisplay: d,
            serverSide: 'ssp' === Q(a),
        }
    })
    z('page.len()', function (a) {
        return a === q
            ? 0 !== this.context.length
                ? this.context[0]._iDisplayLength
                : q
            : this.iterator('table', function (b) {
                  pb(b, a)
              })
    })
    var vc = function (a, b, c) {
        if (c) {
            var d = new B(a)
            d.one('draw', function () {
                c(d.ajax.json())
            })
        }
        if ('ssp' == Q(a)) ka(a, b)
        else {
            V(a, !0)
            var e = a.jqXHR
            e && 4 !== e.readyState && e.abort()
            Qa(a, [], function (h) {
                Ma(a)
                h = za(a, h)
                for (var f = 0, g = h.length; f < g; f++) ia(a, h[f])
                ka(a, b)
                V(a, !1)
            })
        }
    }
    z('ajax.json()', function () {
        var a = this.context
        if (0 < a.length) return a[0].json
    })
    z('ajax.params()', function () {
        var a = this.context
        if (0 < a.length) return a[0].oAjaxData
    })
    z('ajax.reload()', function (a, b) {
        return this.iterator('table', function (c) {
            vc(c, !1 === b, a)
        })
    })
    z('ajax.url()', function (a) {
        var b = this.context
        if (a === q) {
            if (0 === b.length) return q
            b = b[0]
            return b.ajax
                ? l.isPlainObject(b.ajax)
                    ? b.ajax.url
                    : b.ajax
                : b.sAjaxSource
        }
        return this.iterator('table', function (c) {
            l.isPlainObject(c.ajax) ? (c.ajax.url = a) : (c.ajax = a)
        })
    })
    z('ajax.url().load()', function (a, b) {
        return this.iterator('table', function (c) {
            vc(c, !1 === b, a)
        })
    })
    var zb = function (a, b, c, d, e) {
            var h = [],
                f,
                g,
                k
            var m = typeof b
            ;(b && 'string' !== m && 'function' !== m && b.length !== q) ||
                (b = [b])
            m = 0
            for (g = b.length; m < g; m++) {
                var n =
                    b[m] && b[m].split && !b[m].match(/[\[\(:]/)
                        ? b[m].split(',')
                        : [b[m]]
                var p = 0
                for (k = n.length; p < k; p++)
                    (f = c('string' === typeof n[p] ? n[p].trim() : n[p])) &&
                        f.length &&
                        (h = h.concat(f))
            }
            a = M.selector[a]
            if (a.length)
                for (m = 0, g = a.length; m < g; m++) h = a[m](d, e, h)
            return Oa(h)
        },
        Ab = function (a) {
            a || (a = {})
            a.filter && a.search === q && (a.search = a.filter)
            return l.extend(
                { search: 'none', order: 'current', page: 'all' },
                a
            )
        },
        Bb = function (a) {
            for (var b = 0, c = a.length; b < c; b++)
                if (0 < a[b].length)
                    return (
                        (a[0] = a[b]),
                        (a[0].length = 1),
                        (a.length = 1),
                        (a.context = [a.context[b]]),
                        a
                    )
            a.length = 0
            return a
        },
        ab = function (a, b) {
            var c = [],
                d = a.aiDisplay
            var e = a.aiDisplayMaster
            var h = b.search
            var f = b.order
            b = b.page
            if ('ssp' == Q(a)) return 'removed' === h ? [] : pa(0, e.length)
            if ('current' == b)
                for (f = a._iDisplayStart, a = a.fnDisplayEnd(); f < a; f++)
                    c.push(d[f])
            else if ('current' == f || 'applied' == f)
                if ('none' == h) c = e.slice()
                else if ('applied' == h) c = d.slice()
                else {
                    if ('removed' == h) {
                        var g = {}
                        f = 0
                        for (a = d.length; f < a; f++) g[d[f]] = null
                        c = l.map(e, function (k) {
                            return g.hasOwnProperty(k) ? null : k
                        })
                    }
                }
            else if ('index' == f || 'original' == f)
                for (f = 0, a = a.aoData.length; f < a; f++)
                    'none' == h
                        ? c.push(f)
                        : ((e = l.inArray(f, d)),
                          ((-1 === e && 'removed' == h) ||
                              (0 <= e && 'applied' == h)) &&
                              c.push(f))
            return c
        },
        Gc = function (a, b, c) {
            var d
            return zb(
                'row',
                b,
                function (e) {
                    var h = nc(e),
                        f = a.aoData
                    if (null !== h && !c) return [h]
                    d || (d = ab(a, c))
                    if (null !== h && -1 !== l.inArray(h, d)) return [h]
                    if (null === e || e === q || '' === e) return d
                    if ('function' === typeof e)
                        return l.map(d, function (k) {
                            var m = f[k]
                            return e(k, m._aData, m.nTr) ? k : null
                        })
                    if (e.nodeName) {
                        h = e._DT_RowIndex
                        var g = e._DT_CellIndex
                        if (h !== q) return f[h] && f[h].nTr === e ? [h] : []
                        if (g)
                            return f[g.row] && f[g.row].nTr === e.parentNode
                                ? [g.row]
                                : []
                        h = l(e).closest('*[data-dt-row]')
                        return h.length ? [h.data('dt-row')] : []
                    }
                    if (
                        'string' === typeof e &&
                        '#' === e.charAt(0) &&
                        ((h = a.aIds[e.replace(/^#/, '')]), h !== q)
                    )
                        return [h.idx]
                    h = qc(Fa(a.aoData, d, 'nTr'))
                    return l(h)
                        .filter(e)
                        .map(function () {
                            return this._DT_RowIndex
                        })
                        .toArray()
                },
                a,
                c
            )
        }
    z('rows()', function (a, b) {
        a === q ? (a = '') : l.isPlainObject(a) && ((b = a), (a = ''))
        b = Ab(b)
        var c = this.iterator(
            'table',
            function (d) {
                return Gc(d, a, b)
            },
            1
        )
        c.selector.rows = a
        c.selector.opts = b
        return c
    })
    z('rows().nodes()', function () {
        return this.iterator(
            'row',
            function (a, b) {
                return a.aoData[b].nTr || q
            },
            1
        )
    })
    z('rows().data()', function () {
        return this.iterator(
            !0,
            'rows',
            function (a, b) {
                return Fa(a.aoData, b, '_aData')
            },
            1
        )
    })
    J('rows().cache()', 'row().cache()', function (a) {
        return this.iterator(
            'row',
            function (b, c) {
                b = b.aoData[c]
                return 'search' === a ? b._aFilterData : b._aSortData
            },
            1
        )
    })
    J('rows().invalidate()', 'row().invalidate()', function (a) {
        return this.iterator('row', function (b, c) {
            va(b, c, a)
        })
    })
    J('rows().indexes()', 'row().index()', function () {
        return this.iterator(
            'row',
            function (a, b) {
                return b
            },
            1
        )
    })
    J('rows().ids()', 'row().id()', function (a) {
        for (var b = [], c = this.context, d = 0, e = c.length; d < e; d++)
            for (var h = 0, f = this[d].length; h < f; h++) {
                var g = c[d].rowIdFn(c[d].aoData[this[d][h]]._aData)
                b.push((!0 === a ? '#' : '') + g)
            }
        return new B(c, b)
    })
    J('rows().remove()', 'row().remove()', function () {
        var a = this
        this.iterator('row', function (b, c, d) {
            var e = b.aoData,
                h = e[c],
                f,
                g
            e.splice(c, 1)
            var k = 0
            for (f = e.length; k < f; k++) {
                var m = e[k]
                var n = m.anCells
                null !== m.nTr && (m.nTr._DT_RowIndex = k)
                if (null !== n)
                    for (m = 0, g = n.length; m < g; m++)
                        n[m]._DT_CellIndex.row = k
            }
            Na(b.aiDisplayMaster, c)
            Na(b.aiDisplay, c)
            Na(a[d], c, !1)
            0 < b._iRecordsDisplay && b._iRecordsDisplay--
            qb(b)
            c = b.rowIdFn(h._aData)
            c !== q && delete b.aIds[c]
        })
        this.iterator('table', function (b) {
            for (var c = 0, d = b.aoData.length; c < d; c++) b.aoData[c].idx = c
        })
        return this
    })
    z('rows.add()', function (a) {
        var b = this.iterator(
                'table',
                function (d) {
                    var e,
                        h = []
                    var f = 0
                    for (e = a.length; f < e; f++) {
                        var g = a[f]
                        g.nodeName && 'TR' === g.nodeName.toUpperCase()
                            ? h.push(La(d, g)[0])
                            : h.push(ia(d, g))
                    }
                    return h
                },
                1
            ),
            c = this.rows(-1)
        c.pop()
        l.merge(c, b)
        return c
    })
    z('row()', function (a, b) {
        return Bb(this.rows(a, b))
    })
    z('row().data()', function (a) {
        var b = this.context
        if (a === q)
            return b.length && this.length ? b[0].aoData[this[0]]._aData : q
        var c = b[0].aoData[this[0]]
        c._aData = a
        Array.isArray(a) && c.nTr && c.nTr.id && ha(b[0].rowId)(a, c.nTr.id)
        va(b[0], this[0], 'data')
        return this
    })
    z('row().node()', function () {
        var a = this.context
        return a.length && this.length ? a[0].aoData[this[0]].nTr || null : null
    })
    z('row.add()', function (a) {
        a instanceof l && a.length && (a = a[0])
        var b = this.iterator('table', function (c) {
            return a.nodeName && 'TR' === a.nodeName.toUpperCase()
                ? La(c, a)[0]
                : ia(c, a)
        })
        return this.row(b[0])
    })
    l(A).on('plugin-init.dt', function (a, b) {
        a = new B(b)
        a.on('stateSaveParams', function (d, e, h) {
            d = e.rowIdFn
            e = e.aoData
            for (var f = [], g = 0; g < e.length; g++)
                e[g]._detailsShow && f.push('#' + d(e[g]._aData))
            h.childRows = f
        })
        var c = a.state.loaded()
        c &&
            c.childRows &&
            a
                .rows(
                    l.map(c.childRows, function (d) {
                        return d.replace(/:/g, '\\:')
                    })
                )
                .every(function () {
                    F(b, null, 'requestChild', [this])
                })
    })
    var Hc = function (a, b, c, d) {
            var e = [],
                h = function (f, g) {
                    if (Array.isArray(f) || f instanceof l)
                        for (var k = 0, m = f.length; k < m; k++) h(f[k], g)
                    else
                        f.nodeName && 'tr' === f.nodeName.toLowerCase()
                            ? e.push(f)
                            : ((k = l('<tr><td></td></tr>').addClass(g)),
                              (l('td', k).addClass(g).html(f)[0].colSpan =
                                  na(a)),
                              e.push(k[0]))
                }
            h(c, d)
            b._details && b._details.detach()
            b._details = l(e)
            b._detailsShow && b._details.insertAfter(b.nTr)
        },
        wc = u.util.throttle(function (a) {
            Da(a[0])
        }, 500),
        Cb = function (a, b) {
            var c = a.context
            c.length &&
                (a = c[0].aoData[b !== q ? b : a[0]]) &&
                a._details &&
                (a._details.remove(),
                (a._detailsShow = q),
                (a._details = q),
                l(a.nTr).removeClass('dt-hasChild'),
                wc(c))
        },
        xc = function (a, b) {
            var c = a.context
            if (c.length && a.length) {
                var d = c[0].aoData[a[0]]
                d._details &&
                    ((d._detailsShow = b)
                        ? (d._details.insertAfter(d.nTr),
                          l(d.nTr).addClass('dt-hasChild'))
                        : (d._details.detach(),
                          l(d.nTr).removeClass('dt-hasChild')),
                    F(c[0], null, 'childRow', [b, a.row(a[0])]),
                    Ic(c[0]),
                    wc(c))
            }
        },
        Ic = function (a) {
            var b = new B(a),
                c = a.aoData
            b.off(
                'draw.dt.DT_details column-sizing.dt.DT_details destroy.dt.DT_details'
            )
            0 < U(c, '_details').length &&
                (b.on('draw.dt.DT_details', function (d, e) {
                    a === e &&
                        b
                            .rows({ page: 'current' })
                            .eq(0)
                            .each(function (h) {
                                h = c[h]
                                h._detailsShow && h._details.insertAfter(h.nTr)
                            })
                }),
                b.on('column-sizing.dt.DT_details', function (d, e, h, f) {
                    if (a === e)
                        for (e = na(e), h = 0, f = c.length; h < f; h++)
                            (d = c[h]),
                                d._details &&
                                    d._details
                                        .children('td[colspan]')
                                        .attr('colspan', e)
                }),
                b.on('destroy.dt.DT_details', function (d, e) {
                    if (a === e)
                        for (d = 0, e = c.length; d < e; d++)
                            c[d]._details && Cb(b, d)
                }))
        }
    z('row().child()', function (a, b) {
        var c = this.context
        if (a === q)
            return c.length && this.length ? c[0].aoData[this[0]]._details : q
        !0 === a
            ? this.child.show()
            : !1 === a
              ? Cb(this)
              : c.length && this.length && Hc(c[0], c[0].aoData[this[0]], a, b)
        return this
    })
    z(['row().child.show()', 'row().child().show()'], function (a) {
        xc(this, !0)
        return this
    })
    z(['row().child.hide()', 'row().child().hide()'], function () {
        xc(this, !1)
        return this
    })
    z(['row().child.remove()', 'row().child().remove()'], function () {
        Cb(this)
        return this
    })
    z('row().child.isShown()', function () {
        var a = this.context
        return a.length && this.length
            ? a[0].aoData[this[0]]._detailsShow || !1
            : !1
    })
    var Jc = /^([^:]+):(name|visIdx|visible)$/,
        yc = function (a, b, c, d, e) {
            c = []
            d = 0
            for (var h = e.length; d < h; d++) c.push(T(a, e[d], b))
            return c
        },
        Kc = function (a, b, c) {
            var d = a.aoColumns,
                e = U(d, 'sName'),
                h = U(d, 'nTh')
            return zb(
                'column',
                b,
                function (f) {
                    var g = nc(f)
                    if ('' === f) return pa(d.length)
                    if (null !== g) return [0 <= g ? g : d.length + g]
                    if ('function' === typeof f) {
                        var k = ab(a, c)
                        return l.map(d, function (p, t) {
                            return f(t, yc(a, t, 0, 0, k), h[t]) ? t : null
                        })
                    }
                    var m = 'string' === typeof f ? f.match(Jc) : ''
                    if (m)
                        switch (m[2]) {
                            case 'visIdx':
                            case 'visible':
                                g = parseInt(m[1], 10)
                                if (0 > g) {
                                    var n = l.map(d, function (p, t) {
                                        return p.bVisible ? t : null
                                    })
                                    return [n[n.length + g]]
                                }
                                return [ta(a, g)]
                            case 'name':
                                return l.map(e, function (p, t) {
                                    return p === m[1] ? t : null
                                })
                            default:
                                return []
                        }
                    if (f.nodeName && f._DT_CellIndex)
                        return [f._DT_CellIndex.column]
                    g = l(h)
                        .filter(f)
                        .map(function () {
                            return l.inArray(this, h)
                        })
                        .toArray()
                    if (g.length || !f.nodeName) return g
                    g = l(f).closest('*[data-dt-column]')
                    return g.length ? [g.data('dt-column')] : []
                },
                a,
                c
            )
        }
    z('columns()', function (a, b) {
        a === q ? (a = '') : l.isPlainObject(a) && ((b = a), (a = ''))
        b = Ab(b)
        var c = this.iterator(
            'table',
            function (d) {
                return Kc(d, a, b)
            },
            1
        )
        c.selector.cols = a
        c.selector.opts = b
        return c
    })
    J('columns().header()', 'column().header()', function (a, b) {
        return this.iterator(
            'column',
            function (c, d) {
                return c.aoColumns[d].nTh
            },
            1
        )
    })
    J('columns().footer()', 'column().footer()', function (a, b) {
        return this.iterator(
            'column',
            function (c, d) {
                return c.aoColumns[d].nTf
            },
            1
        )
    })
    J('columns().data()', 'column().data()', function () {
        return this.iterator('column-rows', yc, 1)
    })
    J('columns().dataSrc()', 'column().dataSrc()', function () {
        return this.iterator(
            'column',
            function (a, b) {
                return a.aoColumns[b].mData
            },
            1
        )
    })
    J('columns().cache()', 'column().cache()', function (a) {
        return this.iterator(
            'column-rows',
            function (b, c, d, e, h) {
                return Fa(
                    b.aoData,
                    h,
                    'search' === a ? '_aFilterData' : '_aSortData',
                    c
                )
            },
            1
        )
    })
    J('columns().nodes()', 'column().nodes()', function () {
        return this.iterator(
            'column-rows',
            function (a, b, c, d, e) {
                return Fa(a.aoData, e, 'anCells', b)
            },
            1
        )
    })
    J('columns().visible()', 'column().visible()', function (a, b) {
        var c = this,
            d = this.iterator('column', function (e, h) {
                if (a === q) return e.aoColumns[h].bVisible
                var f = e.aoColumns,
                    g = f[h],
                    k = e.aoData,
                    m
                if (a !== q && g.bVisible !== a) {
                    if (a) {
                        var n = l.inArray(!0, U(f, 'bVisible'), h + 1)
                        f = 0
                        for (m = k.length; f < m; f++) {
                            var p = k[f].nTr
                            e = k[f].anCells
                            p && p.insertBefore(e[h], e[n] || null)
                        }
                    } else l(U(e.aoData, 'anCells', h)).detach()
                    g.bVisible = a
                }
            })
        a !== q &&
            this.iterator('table', function (e) {
                xa(e, e.aoHeader)
                xa(e, e.aoFooter)
                e.aiDisplay.length ||
                    l(e.nTBody).find('td[colspan]').attr('colspan', na(e))
                Da(e)
                c.iterator('column', function (h, f) {
                    F(h, null, 'column-visibility', [h, f, a, b])
                })
                ;(b === q || b) && c.columns.adjust()
            })
        return d
    })
    J('columns().indexes()', 'column().index()', function (a) {
        return this.iterator(
            'column',
            function (b, c) {
                return 'visible' === a ? ua(b, c) : c
            },
            1
        )
    })
    z('columns.adjust()', function () {
        return this.iterator(
            'table',
            function (a) {
                sa(a)
            },
            1
        )
    })
    z('column.index()', function (a, b) {
        if (0 !== this.context.length) {
            var c = this.context[0]
            if ('fromVisible' === a || 'toData' === a) return ta(c, b)
            if ('fromData' === a || 'toVisible' === a) return ua(c, b)
        }
    })
    z('column()', function (a, b) {
        return Bb(this.columns(a, b))
    })
    var Lc = function (a, b, c) {
        var d = a.aoData,
            e = ab(a, c),
            h = qc(Fa(d, e, 'anCells')),
            f = l(rc([], h)),
            g,
            k = a.aoColumns.length,
            m,
            n,
            p,
            t,
            v,
            x
        return zb(
            'cell',
            b,
            function (w) {
                var r = 'function' === typeof w
                if (null === w || w === q || r) {
                    m = []
                    n = 0
                    for (p = e.length; n < p; n++)
                        for (g = e[n], t = 0; t < k; t++)
                            (v = { row: g, column: t }),
                                r
                                    ? ((x = d[g]),
                                      w(
                                          v,
                                          T(a, g, t),
                                          x.anCells ? x.anCells[t] : null
                                      ) && m.push(v))
                                    : m.push(v)
                    return m
                }
                if (l.isPlainObject(w))
                    return w.column !== q &&
                        w.row !== q &&
                        -1 !== l.inArray(w.row, e)
                        ? [w]
                        : []
                r = f
                    .filter(w)
                    .map(function (C, G) {
                        return {
                            row: G._DT_CellIndex.row,
                            column: G._DT_CellIndex.column,
                        }
                    })
                    .toArray()
                if (r.length || !w.nodeName) return r
                x = l(w).closest('*[data-dt-row]')
                return x.length
                    ? [{ row: x.data('dt-row'), column: x.data('dt-column') }]
                    : []
            },
            a,
            c
        )
    }
    z('cells()', function (a, b, c) {
        l.isPlainObject(a) &&
            (a.row === q ? ((c = a), (a = null)) : ((c = b), (b = null)))
        l.isPlainObject(b) && ((c = b), (b = null))
        if (null === b || b === q)
            return this.iterator('table', function (n) {
                return Lc(n, a, Ab(c))
            })
        var d = c ? { page: c.page, order: c.order, search: c.search } : {},
            e = this.columns(b, d),
            h = this.rows(a, d),
            f,
            g,
            k,
            m
        d = this.iterator(
            'table',
            function (n, p) {
                n = []
                f = 0
                for (g = h[p].length; f < g; f++)
                    for (k = 0, m = e[p].length; k < m; k++)
                        n.push({ row: h[p][f], column: e[p][k] })
                return n
            },
            1
        )
        d = c && c.selected ? this.cells(d, c) : d
        l.extend(d.selector, { cols: b, rows: a, opts: c })
        return d
    })
    J('cells().nodes()', 'cell().node()', function () {
        return this.iterator(
            'cell',
            function (a, b, c) {
                return (a = a.aoData[b]) && a.anCells ? a.anCells[c] : q
            },
            1
        )
    })
    z('cells().data()', function () {
        return this.iterator(
            'cell',
            function (a, b, c) {
                return T(a, b, c)
            },
            1
        )
    })
    J('cells().cache()', 'cell().cache()', function (a) {
        a = 'search' === a ? '_aFilterData' : '_aSortData'
        return this.iterator(
            'cell',
            function (b, c, d) {
                return b.aoData[c][a][d]
            },
            1
        )
    })
    J('cells().render()', 'cell().render()', function (a) {
        return this.iterator(
            'cell',
            function (b, c, d) {
                return T(b, c, d, a)
            },
            1
        )
    })
    J('cells().indexes()', 'cell().index()', function () {
        return this.iterator(
            'cell',
            function (a, b, c) {
                return { row: b, column: c, columnVisible: ua(a, c) }
            },
            1
        )
    })
    J('cells().invalidate()', 'cell().invalidate()', function (a) {
        return this.iterator('cell', function (b, c, d) {
            va(b, c, a, d)
        })
    })
    z('cell()', function (a, b, c) {
        return Bb(this.cells(a, b, c))
    })
    z('cell().data()', function (a) {
        var b = this.context,
            c = this[0]
        if (a === q)
            return b.length && c.length ? T(b[0], c[0].row, c[0].column) : q
        Ib(b[0], c[0].row, c[0].column, a)
        va(b[0], c[0].row, 'data', c[0].column)
        return this
    })
    z('order()', function (a, b) {
        var c = this.context
        if (a === q) return 0 !== c.length ? c[0].aaSorting : q
        'number' === typeof a
            ? (a = [[a, b]])
            : a.length &&
              !Array.isArray(a[0]) &&
              (a = Array.prototype.slice.call(arguments))
        return this.iterator('table', function (d) {
            d.aaSorting = a.slice()
        })
    })
    z('order.listener()', function (a, b, c) {
        return this.iterator('table', function (d) {
            kb(d, a, b, c)
        })
    })
    z('order.fixed()', function (a) {
        if (!a) {
            var b = this.context
            b = b.length ? b[0].aaSortingFixed : q
            return Array.isArray(b) ? { pre: b } : b
        }
        return this.iterator('table', function (c) {
            c.aaSortingFixed = l.extend(!0, {}, a)
        })
    })
    z(['columns().order()', 'column().order()'], function (a) {
        var b = this
        return this.iterator('table', function (c, d) {
            var e = []
            l.each(b[d], function (h, f) {
                e.push([f, a])
            })
            c.aaSorting = e
        })
    })
    z('search()', function (a, b, c, d) {
        var e = this.context
        return a === q
            ? 0 !== e.length
                ? e[0].oPreviousSearch.sSearch
                : q
            : this.iterator('table', function (h) {
                  h.oFeatures.bFilter &&
                      ya(
                          h,
                          l.extend({}, h.oPreviousSearch, {
                              sSearch: a + '',
                              bRegex: null === b ? !1 : b,
                              bSmart: null === c ? !0 : c,
                              bCaseInsensitive: null === d ? !0 : d,
                          }),
                          1
                      )
              })
    })
    J('columns().search()', 'column().search()', function (a, b, c, d) {
        return this.iterator('column', function (e, h) {
            var f = e.aoPreSearchCols
            if (a === q) return f[h].sSearch
            e.oFeatures.bFilter &&
                (l.extend(f[h], {
                    sSearch: a + '',
                    bRegex: null === b ? !1 : b,
                    bSmart: null === c ? !0 : c,
                    bCaseInsensitive: null === d ? !0 : d,
                }),
                ya(e, e.oPreviousSearch, 1))
        })
    })
    z('state()', function () {
        return this.context.length ? this.context[0].oSavedState : null
    })
    z('state.clear()', function () {
        return this.iterator('table', function (a) {
            a.fnStateSaveCallback.call(a.oInstance, a, {})
        })
    })
    z('state.loaded()', function () {
        return this.context.length ? this.context[0].oLoadedState : null
    })
    z('state.save()', function () {
        return this.iterator('table', function (a) {
            Da(a)
        })
    })
    u.versionCheck = u.fnVersionCheck = function (a) {
        var b = u.version.split('.')
        a = a.split('.')
        for (var c, d, e = 0, h = a.length; e < h; e++)
            if (
                ((c = parseInt(b[e], 10) || 0),
                (d = parseInt(a[e], 10) || 0),
                c !== d)
            )
                return c > d
        return !0
    }
    u.isDataTable = u.fnIsDataTable = function (a) {
        var b = l(a).get(0),
            c = !1
        if (a instanceof u.Api) return !0
        l.each(u.settings, function (d, e) {
            d = e.nScrollHead ? l('table', e.nScrollHead)[0] : null
            var h = e.nScrollFoot ? l('table', e.nScrollFoot)[0] : null
            if (e.nTable === b || d === b || h === b) c = !0
        })
        return c
    }
    u.tables = u.fnTables = function (a) {
        var b = !1
        l.isPlainObject(a) && ((b = a.api), (a = a.visible))
        var c = l.map(u.settings, function (d) {
            if (!a || (a && l(d.nTable).is(':visible'))) return d.nTable
        })
        return b ? new B(c) : c
    }
    u.camelToHungarian = P
    z('$()', function (a, b) {
        b = this.rows(b).nodes()
        b = l(b)
        return l([].concat(b.filter(a).toArray(), b.find(a).toArray()))
    })
    l.each(['on', 'one', 'off'], function (a, b) {
        z(b + '()', function () {
            var c = Array.prototype.slice.call(arguments)
            c[0] = l
                .map(c[0].split(/\s/), function (e) {
                    return e.match(/\.dt\b/) ? e : e + '.dt'
                })
                .join(' ')
            var d = l(this.tables().nodes())
            d[b].apply(d, c)
            return this
        })
    })
    z('clear()', function () {
        return this.iterator('table', function (a) {
            Ma(a)
        })
    })
    z('settings()', function () {
        return new B(this.context, this.context)
    })
    z('init()', function () {
        var a = this.context
        return a.length ? a[0].oInit : null
    })
    z('data()', function () {
        return this.iterator('table', function (a) {
            return U(a.aoData, '_aData')
        }).flatten()
    })
    z('destroy()', function (a) {
        a = a || !1
        return this.iterator('table', function (b) {
            var c = b.oClasses,
                d = b.nTable,
                e = b.nTBody,
                h = b.nTHead,
                f = b.nTFoot,
                g = l(d)
            e = l(e)
            var k = l(b.nTableWrapper),
                m = l.map(b.aoData, function (p) {
                    return p.nTr
                }),
                n
            b.bDestroying = !0
            F(b, 'aoDestroyCallback', 'destroy', [b])
            a || new B(b).columns().visible(!0)
            k.off('.DT').find(':not(tbody *)').off('.DT')
            l(y).off('.DT-' + b.sInstance)
            d != h.parentNode && (g.children('thead').detach(), g.append(h))
            f &&
                d != f.parentNode &&
                (g.children('tfoot').detach(), g.append(f))
            b.aaSorting = []
            b.aaSortingFixed = []
            Va(b)
            l(m).removeClass(b.asStripeClasses.join(' '))
            l('th, td', h).removeClass(
                c.sSortable +
                    ' ' +
                    c.sSortableAsc +
                    ' ' +
                    c.sSortableDesc +
                    ' ' +
                    c.sSortableNone
            )
            e.children().detach()
            e.append(m)
            h = b.nTableWrapper.parentNode
            f = a ? 'remove' : 'detach'
            g[f]()
            k[f]()
            !a &&
                h &&
                (h.insertBefore(d, b.nTableReinsertBefore),
                g.css('width', b.sDestroyWidth).removeClass(c.sTable),
                (n = b.asDestroyStripes.length) &&
                    e.children().each(function (p) {
                        l(this).addClass(b.asDestroyStripes[p % n])
                    }))
            c = l.inArray(b, u.settings)
            ;-1 !== c && u.settings.splice(c, 1)
        })
    })
    l.each(['column', 'row', 'cell'], function (a, b) {
        z(b + 's().every()', function (c) {
            var d = this.selector.opts,
                e = this
            return this.iterator(b, function (h, f, g, k, m) {
                c.call(
                    e[b](f, 'cell' === b ? g : d, 'cell' === b ? d : q),
                    f,
                    g,
                    k,
                    m
                )
            })
        })
    })
    z('i18n()', function (a, b, c) {
        var d = this.context[0]
        a = ma(a)(d.oLanguage)
        a === q && (a = b)
        c !== q && l.isPlainObject(a) && (a = a[c] !== q ? a[c] : a._)
        return a.replace('%d', c)
    })
    u.version = '1.12.1'
    u.settings = []
    u.models = {}
    u.models.oSearch = {
        bCaseInsensitive: !0,
        sSearch: '',
        bRegex: !1,
        bSmart: !0,
        return: !1,
    }
    u.models.oRow = {
        nTr: null,
        anCells: null,
        _aData: [],
        _aSortData: null,
        _aFilterData: null,
        _sFilterRow: null,
        _sRowStripe: '',
        src: null,
        idx: -1,
    }
    u.models.oColumn = {
        idx: null,
        aDataSort: null,
        asSorting: null,
        bSearchable: null,
        bSortable: null,
        bVisible: null,
        _sManualType: null,
        _bAttrSrc: !1,
        fnCreatedCell: null,
        fnGetData: null,
        fnSetData: null,
        mData: null,
        mRender: null,
        nTh: null,
        nTf: null,
        sClass: null,
        sContentPadding: null,
        sDefaultContent: null,
        sName: null,
        sSortDataType: 'std',
        sSortingClass: null,
        sSortingClassJUI: null,
        sTitle: null,
        sType: null,
        sWidth: null,
        sWidthOrig: null,
    }
    u.defaults = {
        aaData: null,
        aaSorting: [[0, 'asc']],
        aaSortingFixed: [],
        ajax: null,
        aLengthMenu: [10, 25, 50, 100],
        aoColumns: null,
        aoColumnDefs: null,
        aoSearchCols: [],
        asStripeClasses: null,
        bAutoWidth: !0,
        bDeferRender: !1,
        bDestroy: !1,
        bFilter: !0,
        bInfo: !0,
        bLengthChange: !0,
        bPaginate: !0,
        bProcessing: !1,
        bRetrieve: !1,
        bScrollCollapse: !1,
        bServerSide: !1,
        bSort: !0,
        bSortMulti: !0,
        bSortCellsTop: !1,
        bSortClasses: !0,
        bStateSave: !1,
        fnCreatedRow: null,
        fnDrawCallback: null,
        fnFooterCallback: null,
        fnFormatNumber: function (a) {
            return a
                .toString()
                .replace(/\B(?=(\d{3})+(?!\d))/g, this.oLanguage.sThousands)
        },
        fnHeaderCallback: null,
        fnInfoCallback: null,
        fnInitComplete: null,
        fnPreDrawCallback: null,
        fnRowCallback: null,
        fnServerData: null,
        fnServerParams: null,
        fnStateLoadCallback: function (a) {
            try {
                return JSON.parse(
                    (-1 === a.iStateDuration
                        ? sessionStorage
                        : localStorage
                    ).getItem(
                        'DataTables_' + a.sInstance + '_' + location.pathname
                    )
                )
            } catch (b) {
                return {}
            }
        },
        fnStateLoadParams: null,
        fnStateLoaded: null,
        fnStateSaveCallback: function (a, b) {
            try {
                ;(-1 === a.iStateDuration
                    ? sessionStorage
                    : localStorage
                ).setItem(
                    'DataTables_' + a.sInstance + '_' + location.pathname,
                    JSON.stringify(b)
                )
            } catch (c) {}
        },
        fnStateSaveParams: null,
        iStateDuration: 7200,
        iDeferLoading: null,
        iDisplayLength: 10,
        iDisplayStart: 0,
        iTabIndex: 0,
        oClasses: {},
        oLanguage: {
            oAria: {
                sSortAscending: ': activate to sort column ascending',
                sSortDescending: ': activate to sort column descending',
            },
            oPaginate: {
                sFirst: 'First',
                sLast: 'Last',
                sNext: 'Next',
                sPrevious: 'Previous',
            },
            sEmptyTable: 'No data available in table',
            sInfo: 'Showing _START_ to _END_ of _TOTAL_ entries',
            sInfoEmpty: 'Showing 0 to 0 of 0 entries',
            sInfoFiltered: '(filtered from _MAX_ total entries)',
            sInfoPostFix: '',
            sDecimal: '',
            sThousands: ',',
            sLengthMenu: 'Show _MENU_ entries',
            sLoadingRecords: 'Loading...',
            sProcessing: '',
            sSearch: 'Search:',
            sSearchPlaceholder: '',
            sUrl: '',
            sZeroRecords: 'No matching records found',
        },
        oSearch: l.extend({}, u.models.oSearch),
        sAjaxDataProp: 'data',
        sAjaxSource: null,
        sDom: 'lfrtip',
        searchDelay: null,
        sPaginationType: 'simple_numbers',
        sScrollX: '',
        sScrollXInner: '',
        sScrollY: '',
        sServerMethod: 'GET',
        renderer: null,
        rowId: 'DT_RowId',
    }
    E(u.defaults)
    u.defaults.column = {
        aDataSort: null,
        iDataSort: -1,
        asSorting: ['asc', 'desc'],
        bSearchable: !0,
        bSortable: !0,
        bVisible: !0,
        fnCreatedCell: null,
        mData: null,
        mRender: null,
        sCellType: 'td',
        sClass: '',
        sContentPadding: '',
        sDefaultContent: null,
        sName: '',
        sSortDataType: 'std',
        sTitle: null,
        sType: null,
        sWidth: null,
    }
    E(u.defaults.column)
    u.models.oSettings = {
        oFeatures: {
            bAutoWidth: null,
            bDeferRender: null,
            bFilter: null,
            bInfo: null,
            bLengthChange: null,
            bPaginate: null,
            bProcessing: null,
            bServerSide: null,
            bSort: null,
            bSortMulti: null,
            bSortClasses: null,
            bStateSave: null,
        },
        oScroll: {
            bCollapse: null,
            iBarWidth: 0,
            sX: null,
            sXInner: null,
            sY: null,
        },
        oLanguage: { fnInfoCallback: null },
        oBrowser: {
            bScrollOversize: !1,
            bScrollbarLeft: !1,
            bBounding: !1,
            barWidth: 0,
        },
        ajax: null,
        aanFeatures: [],
        aoData: [],
        aiDisplay: [],
        aiDisplayMaster: [],
        aIds: {},
        aoColumns: [],
        aoHeader: [],
        aoFooter: [],
        oPreviousSearch: {},
        aoPreSearchCols: [],
        aaSorting: null,
        aaSortingFixed: [],
        asStripeClasses: null,
        asDestroyStripes: [],
        sDestroyWidth: 0,
        aoRowCallback: [],
        aoHeaderCallback: [],
        aoFooterCallback: [],
        aoDrawCallback: [],
        aoRowCreatedCallback: [],
        aoPreDrawCallback: [],
        aoInitComplete: [],
        aoStateSaveParams: [],
        aoStateLoadParams: [],
        aoStateLoaded: [],
        sTableId: '',
        nTable: null,
        nTHead: null,
        nTFoot: null,
        nTBody: null,
        nTableWrapper: null,
        bDeferLoading: !1,
        bInitialised: !1,
        aoOpenRows: [],
        sDom: null,
        searchDelay: null,
        sPaginationType: 'two_button',
        iStateDuration: 0,
        aoStateSave: [],
        aoStateLoad: [],
        oSavedState: null,
        oLoadedState: null,
        sAjaxSource: null,
        sAjaxDataProp: null,
        jqXHR: null,
        json: q,
        oAjaxData: q,
        fnServerData: null,
        aoServerParams: [],
        sServerMethod: null,
        fnFormatNumber: null,
        aLengthMenu: null,
        iDraw: 0,
        bDrawing: !1,
        iDrawError: -1,
        _iDisplayLength: 10,
        _iDisplayStart: 0,
        _iRecordsTotal: 0,
        _iRecordsDisplay: 0,
        oClasses: {},
        bFiltered: !1,
        bSorted: !1,
        bSortCellsTop: null,
        oInit: null,
        aoDestroyCallback: [],
        fnRecordsTotal: function () {
            return 'ssp' == Q(this)
                ? 1 * this._iRecordsTotal
                : this.aiDisplayMaster.length
        },
        fnRecordsDisplay: function () {
            return 'ssp' == Q(this)
                ? 1 * this._iRecordsDisplay
                : this.aiDisplay.length
        },
        fnDisplayEnd: function () {
            var a = this._iDisplayLength,
                b = this._iDisplayStart,
                c = b + a,
                d = this.aiDisplay.length,
                e = this.oFeatures,
                h = e.bPaginate
            return e.bServerSide
                ? !1 === h || -1 === a
                    ? b + d
                    : Math.min(b + a, this._iRecordsDisplay)
                : !h || c > d || -1 === a
                  ? d
                  : c
        },
        oInstance: null,
        sInstance: null,
        iTabIndex: 0,
        nScrollHead: null,
        nScrollFoot: null,
        aLastSort: [],
        oPlugins: {},
        rowIdFn: null,
        rowId: null,
    }
    u.ext = M = {
        buttons: {},
        classes: {},
        builder: '-source-',
        errMode: 'alert',
        feature: [],
        search: [],
        selector: { cell: [], column: [], row: [] },
        internal: {},
        legacy: { ajax: null },
        pager: {},
        renderer: { pageButton: {}, header: {} },
        order: {},
        type: { detect: [], search: {}, order: {} },
        _unique: 0,
        fnVersionCheck: u.fnVersionCheck,
        iApiIndex: 0,
        oJUIClasses: {},
        sVersion: u.version,
    }
    l.extend(M, {
        afnFiltering: M.search,
        aTypes: M.type.detect,
        ofnSearch: M.type.search,
        oSort: M.type.order,
        afnSortData: M.order,
        aoFeatures: M.feature,
        oApi: M.internal,
        oStdClasses: M.classes,
        oPagination: M.pager,
    })
    l.extend(u.ext.classes, {
        sTable: 'dataTable',
        sNoFooter: 'no-footer',
        sPageButton: 'paginate_button',
        sPageButtonActive: 'current',
        sPageButtonDisabled: 'disabled',
        sStripeOdd: 'odd',
        sStripeEven: 'even',
        sRowEmpty: 'dataTables_empty',
        sWrapper: 'dataTables_wrapper',
        sFilter: 'dataTables_filter',
        sInfo: 'dataTables_info',
        sPaging: 'dataTables_paginate paging_',
        sLength: 'dataTables_length',
        sProcessing: 'dataTables_processing',
        sSortAsc: 'sorting_asc',
        sSortDesc: 'sorting_desc',
        sSortable: 'sorting',
        sSortableAsc: 'sorting_desc_disabled',
        sSortableDesc: 'sorting_asc_disabled',
        sSortableNone: 'sorting_disabled',
        sSortColumn: 'sorting_',
        sFilterInput: '',
        sLengthSelect: '',
        sScrollWrapper: 'dataTables_scroll',
        sScrollHead: 'dataTables_scrollHead',
        sScrollHeadInner: 'dataTables_scrollHeadInner',
        sScrollBody: 'dataTables_scrollBody',
        sScrollFoot: 'dataTables_scrollFoot',
        sScrollFootInner: 'dataTables_scrollFootInner',
        sHeaderTH: '',
        sFooterTH: '',
        sSortJUIAsc: '',
        sSortJUIDesc: '',
        sSortJUI: '',
        sSortJUIAscAllowed: '',
        sSortJUIDescAllowed: '',
        sSortJUIWrapper: '',
        sSortIcon: '',
        sJUIHeader: '',
        sJUIFooter: '',
    })
    var ic = u.ext.pager
    l.extend(ic, {
        simple: function (a, b) {
            return ['previous', 'next']
        },
        full: function (a, b) {
            return ['first', 'previous', 'next', 'last']
        },
        numbers: function (a, b) {
            return [Ea(a, b)]
        },
        simple_numbers: function (a, b) {
            return ['previous', Ea(a, b), 'next']
        },
        full_numbers: function (a, b) {
            return ['first', 'previous', Ea(a, b), 'next', 'last']
        },
        first_last_numbers: function (a, b) {
            return ['first', Ea(a, b), 'last']
        },
        _numbers: Ea,
        numbers_length: 7,
    })
    l.extend(!0, u.ext.renderer, {
        pageButton: {
            _: function (a, b, c, d, e, h) {
                var f = a.oClasses,
                    g = a.oLanguage.oPaginate,
                    k = a.oLanguage.oAria.paginate || {},
                    m,
                    n,
                    p = 0,
                    t = function (x, w) {
                        var r,
                            C = f.sPageButtonDisabled,
                            G = function (I) {
                                Ta(a, I.data.action, !0)
                            }
                        var ba = 0
                        for (r = w.length; ba < r; ba++) {
                            var L = w[ba]
                            if (Array.isArray(L)) {
                                var O = l(
                                    '<' + (L.DT_el || 'div') + '/>'
                                ).appendTo(x)
                                t(O, L)
                            } else {
                                m = null
                                n = L
                                O = a.iTabIndex
                                switch (L) {
                                    case 'ellipsis':
                                        x.append(
                                            '<span class="ellipsis">&#x2026;</span>'
                                        )
                                        break
                                    case 'first':
                                        m = g.sFirst
                                        0 === e && ((O = -1), (n += ' ' + C))
                                        break
                                    case 'previous':
                                        m = g.sPrevious
                                        0 === e && ((O = -1), (n += ' ' + C))
                                        break
                                    case 'next':
                                        m = g.sNext
                                        if (0 === h || e === h - 1)
                                            (O = -1), (n += ' ' + C)
                                        break
                                    case 'last':
                                        m = g.sLast
                                        if (0 === h || e === h - 1)
                                            (O = -1), (n += ' ' + C)
                                        break
                                    default:
                                        ;(m = a.fnFormatNumber(L + 1)),
                                            (n =
                                                e === L
                                                    ? f.sPageButtonActive
                                                    : '')
                                }
                                null !== m &&
                                    ((O = l('<a>', {
                                        class: f.sPageButton + ' ' + n,
                                        'aria-controls': a.sTableId,
                                        'aria-label': k[L],
                                        'data-dt-idx': p,
                                        tabindex: O,
                                        id:
                                            0 === c && 'string' === typeof L
                                                ? a.sTableId + '_' + L
                                                : null,
                                    })
                                        .html(m)
                                        .appendTo(x)),
                                    sb(O, { action: L }, G),
                                    p++)
                            }
                        }
                    }
                try {
                    var v = l(b).find(A.activeElement).data('dt-idx')
                } catch (x) {}
                t(l(b).empty(), d)
                v !== q &&
                    l(b)
                        .find('[data-dt-idx=' + v + ']')
                        .trigger('focus')
            },
        },
    })
    l.extend(u.ext.type.detect, [
        function (a, b) {
            b = b.oLanguage.sDecimal
            return yb(a, b) ? 'num' + b : null
        },
        function (a, b) {
            if (a && !(a instanceof Date) && !Dc.test(a)) return null
            b = Date.parse(a)
            return (null !== b && !isNaN(b)) || aa(a) ? 'date' : null
        },
        function (a, b) {
            b = b.oLanguage.sDecimal
            return yb(a, b, !0) ? 'num-fmt' + b : null
        },
        function (a, b) {
            b = b.oLanguage.sDecimal
            return pc(a, b) ? 'html-num' + b : null
        },
        function (a, b) {
            b = b.oLanguage.sDecimal
            return pc(a, b, !0) ? 'html-num-fmt' + b : null
        },
        function (a, b) {
            return aa(a) || ('string' === typeof a && -1 !== a.indexOf('<'))
                ? 'html'
                : null
        },
    ])
    l.extend(u.ext.type.search, {
        html: function (a) {
            return aa(a)
                ? a
                : 'string' === typeof a
                  ? a.replace(mc, ' ').replace(Ya, '')
                  : ''
        },
        string: function (a) {
            return aa(a) ? a : 'string' === typeof a ? a.replace(mc, ' ') : a
        },
    })
    var Xa = function (a, b, c, d) {
        if (0 !== a && (!a || '-' === a)) return -Infinity
        b && (a = oc(a, b))
        a.replace && (c && (a = a.replace(c, '')), d && (a = a.replace(d, '')))
        return 1 * a
    }
    l.extend(M.type.order, {
        'date-pre': function (a) {
            a = Date.parse(a)
            return isNaN(a) ? -Infinity : a
        },
        'html-pre': function (a) {
            return aa(a)
                ? ''
                : a.replace
                  ? a.replace(/<.*?>/g, '').toLowerCase()
                  : a + ''
        },
        'string-pre': function (a) {
            return aa(a)
                ? ''
                : 'string' === typeof a
                  ? a.toLowerCase()
                  : a.toString
                    ? a.toString()
                    : ''
        },
        'string-asc': function (a, b) {
            return a < b ? -1 : a > b ? 1 : 0
        },
        'string-desc': function (a, b) {
            return a < b ? 1 : a > b ? -1 : 0
        },
    })
    bb('')
    l.extend(!0, u.ext.renderer, {
        header: {
            _: function (a, b, c, d) {
                l(a.nTable).on('order.dt.DT', function (e, h, f, g) {
                    a === h &&
                        ((e = c.idx),
                        b
                            .removeClass(d.sSortAsc + ' ' + d.sSortDesc)
                            .addClass(
                                'asc' == g[e]
                                    ? d.sSortAsc
                                    : 'desc' == g[e]
                                      ? d.sSortDesc
                                      : c.sSortingClass
                            ))
                })
            },
            jqueryui: function (a, b, c, d) {
                l('<div/>')
                    .addClass(d.sSortJUIWrapper)
                    .append(b.contents())
                    .append(
                        l('<span/>').addClass(
                            d.sSortIcon + ' ' + c.sSortingClassJUI
                        )
                    )
                    .appendTo(b)
                l(a.nTable).on('order.dt.DT', function (e, h, f, g) {
                    a === h &&
                        ((e = c.idx),
                        b
                            .removeClass(d.sSortAsc + ' ' + d.sSortDesc)
                            .addClass(
                                'asc' == g[e]
                                    ? d.sSortAsc
                                    : 'desc' == g[e]
                                      ? d.sSortDesc
                                      : c.sSortingClass
                            ),
                        b
                            .find('span.' + d.sSortIcon)
                            .removeClass(
                                d.sSortJUIAsc +
                                    ' ' +
                                    d.sSortJUIDesc +
                                    ' ' +
                                    d.sSortJUI +
                                    ' ' +
                                    d.sSortJUIAscAllowed +
                                    ' ' +
                                    d.sSortJUIDescAllowed
                            )
                            .addClass(
                                'asc' == g[e]
                                    ? d.sSortJUIAsc
                                    : 'desc' == g[e]
                                      ? d.sSortJUIDesc
                                      : c.sSortingClassJUI
                            ))
                })
            },
        },
    })
    var $a = function (a) {
            Array.isArray(a) && (a = a.join(','))
            return 'string' === typeof a
                ? a
                      .replace(/&/g, '&amp;')
                      .replace(/</g, '&lt;')
                      .replace(/>/g, '&gt;')
                      .replace(/"/g, '&quot;')
                : a
        },
        kc = !1,
        zc = ',',
        Ac = '.'
    if (Intl)
        try {
            for (
                var Ha = new Intl.NumberFormat().formatToParts(100000.1),
                    ra = 0;
                ra < Ha.length;
                ra++
            )
                'group' === Ha[ra].type
                    ? (zc = Ha[ra].value)
                    : 'decimal' === Ha[ra].type && (Ac = Ha[ra].value)
        } catch (a) {}
    u.datetime = function (a, b) {
        var c = 'datetime-detect-' + a
        b || (b = 'en')
        u.ext.type.order[c] ||
            (u.ext.type.detect.unshift(function (d) {
                var e = Za(d, a, b)
                return '' === d || e ? c : !1
            }),
            (u.ext.type.order[c + '-pre'] = function (d) {
                return Za(d, a, b) || 0
            }))
    }
    u.render = {
        date: wb('toLocaleDateString'),
        datetime: wb('toLocaleString'),
        time: wb('toLocaleTimeString'),
        number: function (a, b, c, d, e) {
            if (null === a || a === q) a = zc
            if (null === b || b === q) b = Ac
            return {
                display: function (h) {
                    if (
                        ('number' !== typeof h && 'string' !== typeof h) ||
                        '' === h ||
                        null === h
                    )
                        return h
                    var f = 0 > h ? '-' : '',
                        g = parseFloat(h)
                    if (isNaN(g)) return $a(h)
                    g = g.toFixed(c)
                    h = Math.abs(g)
                    g = parseInt(h, 10)
                    h = c ? b + (h - g).toFixed(c).substring(2) : ''
                    0 === g && 0 === parseFloat(h) && (f = '')
                    return (
                        f +
                        (d || '') +
                        g.toString().replace(/\B(?=(\d{3})+(?!\d))/g, a) +
                        h +
                        (e || '')
                    )
                },
            }
        },
        text: function () {
            return { display: $a, filter: $a }
        },
    }
    l.extend(u.ext.internal, {
        _fnExternApiFunc: lc,
        _fnBuildAjax: Qa,
        _fnAjaxUpdate: Kb,
        _fnAjaxParameters: Tb,
        _fnAjaxUpdateDraw: Ub,
        _fnAjaxDataSrc: za,
        _fnAddColumn: cb,
        _fnColumnOptions: Ia,
        _fnAdjustColumnSizing: sa,
        _fnVisibleToColumnIndex: ta,
        _fnColumnIndexToVisible: ua,
        _fnVisbleColumns: na,
        _fnGetColumns: Ka,
        _fnColumnTypes: eb,
        _fnApplyColumnDefs: Hb,
        _fnHungarianMap: E,
        _fnCamelToHungarian: P,
        _fnLanguageCompat: la,
        _fnBrowserDetect: Fb,
        _fnAddData: ia,
        _fnAddTr: La,
        _fnNodeToDataIndex: function (a, b) {
            return b._DT_RowIndex !== q ? b._DT_RowIndex : null
        },
        _fnNodeToColumnIndex: function (a, b, c) {
            return l.inArray(c, a.aoData[b].anCells)
        },
        _fnGetCellData: T,
        _fnSetCellData: Ib,
        _fnSplitObjNotation: hb,
        _fnGetObjectDataFn: ma,
        _fnSetObjectDataFn: ha,
        _fnGetDataMaster: ib,
        _fnClearTable: Ma,
        _fnDeleteIndex: Na,
        _fnInvalidate: va,
        _fnGetRowElements: gb,
        _fnCreateTr: fb,
        _fnBuildHead: Jb,
        _fnDrawHead: xa,
        _fnDraw: ja,
        _fnReDraw: ka,
        _fnAddOptionsHtml: Mb,
        _fnDetectHeader: wa,
        _fnGetUniqueThs: Pa,
        _fnFeatureHtmlFilter: Ob,
        _fnFilterComplete: ya,
        _fnFilterCustom: Xb,
        _fnFilterColumn: Wb,
        _fnFilter: Vb,
        _fnFilterCreateSearch: nb,
        _fnEscapeRegex: ob,
        _fnFilterData: Yb,
        _fnFeatureHtmlInfo: Rb,
        _fnUpdateInfo: ac,
        _fnInfoMacros: bc,
        _fnInitialise: Aa,
        _fnInitComplete: Ra,
        _fnLengthChange: pb,
        _fnFeatureHtmlLength: Nb,
        _fnFeatureHtmlPaginate: Sb,
        _fnPageChange: Ta,
        _fnFeatureHtmlProcessing: Pb,
        _fnProcessingDisplay: V,
        _fnFeatureHtmlTable: Qb,
        _fnScrollDraw: Ja,
        _fnApplyToChildren: da,
        _fnCalculateColumnWidths: db,
        _fnThrottle: mb,
        _fnConvertToWidth: cc,
        _fnGetWidestNode: dc,
        _fnGetMaxLenString: ec,
        _fnStringToCss: K,
        _fnSortFlatten: oa,
        _fnSort: Lb,
        _fnSortAria: gc,
        _fnSortListener: rb,
        _fnSortAttachListener: kb,
        _fnSortingClasses: Va,
        _fnSortData: fc,
        _fnSaveState: Da,
        _fnLoadState: hc,
        _fnImplementState: tb,
        _fnSettingsFromNode: Wa,
        _fnLog: ea,
        _fnMap: Y,
        _fnBindAction: sb,
        _fnCallbackReg: R,
        _fnCallbackFire: F,
        _fnLengthOverflow: qb,
        _fnRenderer: lb,
        _fnDataSource: Q,
        _fnRowAttributes: jb,
        _fnExtend: ub,
        _fnCalculateEnd: function () {},
    })
    l.fn.dataTable = u
    u.$ = l
    l.fn.dataTableSettings = u.settings
    l.fn.dataTableExt = u.ext
    l.fn.DataTable = function (a) {
        return l(this).dataTable(a).api()
    }
    l.each(u, function (a, b) {
        l.fn.DataTable[a] = b
    })
    return u
})

/* END custom table */

/* START fullcalendar */

/*!
    FullCalendar v5.11.3
    Docs & License: https://fullcalendar.io/
    (c) 2022 Adam Shaw
    */
var FullCalendar = (function (e) {
    'use strict'
    var t = function (e, n) {
        return (t =
            Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array &&
                function (e, t) {
                    e.__proto__ = t
                }) ||
            function (e, t) {
                for (var n in t)
                    Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n])
            })(e, n)
    }
    function n(e, n) {
        if ('function' != typeof n && null !== n)
            throw new TypeError(
                'Class extends value ' +
                    String(n) +
                    ' is not a constructor or null'
            )
        function r() {
            this.constructor = e
        }
        t(e, n),
            (e.prototype =
                null === n
                    ? Object.create(n)
                    : ((r.prototype = n.prototype), new r()))
    }
    var r = function () {
        return (r =
            Object.assign ||
            function (e) {
                for (var t, n = 1, r = arguments.length; n < r; n++)
                    for (var o in (t = arguments[n]))
                        Object.prototype.hasOwnProperty.call(t, o) &&
                            (e[o] = t[o])
                return e
            }).apply(this, arguments)
    }
    function o(e, t, n) {
        if (n || 2 === arguments.length)
            for (var r, o = 0, i = t.length; o < i; o++)
                (!r && o in t) ||
                    (r || (r = Array.prototype.slice.call(t, 0, o)),
                    (r[o] = t[o]))
        return e.concat(r || t)
    }
    var i,
        a,
        s,
        l,
        u,
        c = {},
        d = [],
        p = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i
    function f(e, t) {
        for (var n in t) e[n] = t[n]
        return e
    }
    function h(e) {
        var t = e.parentNode
        t && t.removeChild(e)
    }
    function v(e, t, n) {
        var r,
            o,
            i,
            a = arguments,
            s = {}
        for (i in t)
            'key' == i ? (r = t[i]) : 'ref' == i ? (o = t[i]) : (s[i] = t[i])
        if (arguments.length > 3)
            for (n = [n], i = 3; i < arguments.length; i++) n.push(a[i])
        if (
            (null != n && (s.children = n),
            'function' == typeof e && null != e.defaultProps)
        )
            for (i in e.defaultProps)
                void 0 === s[i] && (s[i] = e.defaultProps[i])
        return g(e, s, r, o, null)
    }
    function g(e, t, n, r, o) {
        var a = {
            type: e,
            props: t,
            key: n,
            ref: r,
            __k: null,
            __: null,
            __b: 0,
            __e: null,
            __d: void 0,
            __c: null,
            __h: null,
            constructor: void 0,
            __v: null == o ? ++i.__v : o,
        }
        return null != i.vnode && i.vnode(a), a
    }
    function m(e) {
        return e.children
    }
    function y(e, t) {
        ;(this.props = e), (this.context = t)
    }
    function E(e, t) {
        if (null == t) return e.__ ? E(e.__, e.__.__k.indexOf(e) + 1) : null
        for (var n; t < e.__k.length; t++)
            if (null != (n = e.__k[t]) && null != n.__e) return n.__e
        return 'function' == typeof e.type ? E(e) : null
    }
    function S(e) {
        var t, n
        if (null != (e = e.__) && null != e.__c) {
            for (e.__e = e.__c.base = null, t = 0; t < e.__k.length; t++)
                if (null != (n = e.__k[t]) && null != n.__e) {
                    e.__e = e.__c.base = n.__e
                    break
                }
            return S(e)
        }
    }
    function b(e) {
        ;((!e.__d && (e.__d = !0) && a.push(e) && !D.__r++) ||
            l !== i.debounceRendering) &&
            ((l = i.debounceRendering) || s)(D)
    }
    function D() {
        for (var e; (D.__r = a.length); )
            (e = a.sort(function (e, t) {
                return e.__v.__b - t.__v.__b
            })),
                (a = []),
                e.some(function (e) {
                    var t, n, r, o, i, a
                    e.__d &&
                        ((i = (o = (t = e).__v).__e),
                        (a = t.__P) &&
                            ((n = []),
                            ((r = f({}, o)).__v = o.__v + 1),
                            I(
                                a,
                                o,
                                r,
                                t.__n,
                                void 0 !== a.ownerSVGElement,
                                null != o.__h ? [i] : null,
                                n,
                                null == i ? E(o) : i,
                                o.__h
                            ),
                            P(n, o),
                            o.__e != i && S(o)))
                })
    }
    function C(e, t, n, r, o, i, a, s, l, u) {
        var p,
            f,
            h,
            v,
            y,
            S,
            b,
            D = (r && r.__k) || d,
            C = D.length
        for (n.__k = [], p = 0; p < t.length; p++)
            if (
                null !=
                (v = n.__k[p] =
                    null == (v = t[p]) || 'boolean' == typeof v
                        ? null
                        : 'string' == typeof v ||
                            'number' == typeof v ||
                            'bigint' == typeof v
                          ? g(null, v, null, null, v)
                          : Array.isArray(v)
                            ? g(m, { children: v }, null, null, null)
                            : v.__b > 0
                              ? g(v.type, v.props, v.key, null, v.__v)
                              : v)
            ) {
                if (
                    ((v.__ = n),
                    (v.__b = n.__b + 1),
                    null === (h = D[p]) ||
                        (h && v.key == h.key && v.type === h.type))
                )
                    D[p] = void 0
                else
                    for (f = 0; f < C; f++) {
                        if ((h = D[f]) && v.key == h.key && v.type === h.type) {
                            D[f] = void 0
                            break
                        }
                        h = null
                    }
                I(e, v, (h = h || c), o, i, a, s, l, u),
                    (y = v.__e),
                    (f = v.ref) &&
                        h.ref != f &&
                        (b || (b = []),
                        h.ref && b.push(h.ref, null, v),
                        b.push(f, v.__c || y, v)),
                    null != y
                        ? (null == S && (S = y),
                          'function' == typeof v.type &&
                          null != v.__k &&
                          v.__k === h.__k
                              ? (v.__d = l = w(v, l, e))
                              : (l = _(e, v, h, D, y, l)),
                          u || 'option' !== n.type
                              ? 'function' == typeof n.type && (n.__d = l)
                              : (e.value = ''))
                        : l && h.__e == l && l.parentNode != e && (l = E(h))
            }
        for (n.__e = S, p = C; p--; )
            null != D[p] &&
                ('function' == typeof n.type &&
                    null != D[p].__e &&
                    D[p].__e == n.__d &&
                    (n.__d = E(r, p + 1)),
                O(D[p], D[p]))
        if (b) for (p = 0; p < b.length; p++) H(b[p], b[++p], b[++p])
    }
    function w(e, t, n) {
        var r, o
        for (r = 0; r < e.__k.length; r++)
            (o = e.__k[r]) &&
                ((o.__ = e),
                (t =
                    'function' == typeof o.type
                        ? w(o, t, n)
                        : _(n, o, o, e.__k, o.__e, t)))
        return t
    }
    function R(e, t) {
        return (
            (t = t || []),
            null == e ||
                'boolean' == typeof e ||
                (Array.isArray(e)
                    ? e.some(function (e) {
                          R(e, t)
                      })
                    : t.push(e)),
            t
        )
    }
    function _(e, t, n, r, o, i) {
        var a, s, l
        if (void 0 !== t.__d) (a = t.__d), (t.__d = void 0)
        else if (null == n || o != i || null == o.parentNode)
            e: if (null == i || i.parentNode !== e) e.appendChild(o), (a = null)
            else {
                for (s = i, l = 0; (s = s.nextSibling) && l < r.length; l += 2)
                    if (s == o) break e
                e.insertBefore(o, i), (a = i)
            }
        return void 0 !== a ? a : o.nextSibling
    }
    function T(e, t, n) {
        '-' === t[0]
            ? e.setProperty(t, n)
            : (e[t] =
                  null == n
                      ? ''
                      : 'number' != typeof n || p.test(t)
                        ? n
                        : n + 'px')
    }
    function k(e, t, n, r, o) {
        var i
        e: if ('style' === t)
            if ('string' == typeof n) e.style.cssText = n
            else {
                if (('string' == typeof r && (e.style.cssText = r = ''), r))
                    for (t in r) (n && t in n) || T(e.style, t, '')
                if (n) for (t in n) (r && n[t] === r[t]) || T(e.style, t, n[t])
            }
        else if ('o' === t[0] && 'n' === t[1])
            (i = t !== (t = t.replace(/Capture$/, ''))),
                (t =
                    t.toLowerCase() in e
                        ? t.toLowerCase().slice(2)
                        : t.slice(2)),
                e.l || (e.l = {}),
                (e.l[t + i] = n),
                n
                    ? r || e.addEventListener(t, i ? M : x, i)
                    : e.removeEventListener(t, i ? M : x, i)
        else if ('dangerouslySetInnerHTML' !== t) {
            if (o) t = t.replace(/xlink[H:h]/, 'h').replace(/sName$/, 's')
            else if (
                'href' !== t &&
                'list' !== t &&
                'form' !== t &&
                'tabIndex' !== t &&
                'download' !== t &&
                t in e
            )
                try {
                    e[t] = null == n ? '' : n
                    break e
                } catch (e) {}
            'function' == typeof n ||
                (null != n && (!1 !== n || ('a' === t[0] && 'r' === t[1]))
                    ? e.setAttribute(t, n)
                    : e.removeAttribute(t))
        }
    }
    function x(e) {
        this.l[e.type + !1](i.event ? i.event(e) : e)
    }
    function M(e) {
        this.l[e.type + !0](i.event ? i.event(e) : e)
    }
    function I(e, t, n, r, o, a, s, l, u) {
        var c,
            d,
            p,
            h,
            v,
            g,
            E,
            S,
            b,
            D,
            w,
            R = t.type
        if (void 0 !== t.constructor) return null
        null != n.__h &&
            ((u = n.__h), (l = t.__e = n.__e), (t.__h = null), (a = [l])),
            (c = i.__b) && c(t)
        try {
            e: if ('function' == typeof R) {
                if (
                    ((S = t.props),
                    (b = (c = R.contextType) && r[c.__c]),
                    (D = c ? (b ? b.props.value : c.__) : r),
                    n.__c
                        ? (E = (d = t.__c = n.__c).__ = d.__E)
                        : ('prototype' in R && R.prototype.render
                              ? (t.__c = d = new R(S, D))
                              : ((t.__c = d = new y(S, D)),
                                (d.constructor = R),
                                (d.render = A)),
                          b && b.sub(d),
                          (d.props = S),
                          d.state || (d.state = {}),
                          (d.context = D),
                          (d.__n = r),
                          (p = d.__d = !0),
                          (d.__h = [])),
                    null == d.__s && (d.__s = d.state),
                    null != R.getDerivedStateFromProps &&
                        (d.__s == d.state && (d.__s = f({}, d.__s)),
                        f(d.__s, R.getDerivedStateFromProps(S, d.__s))),
                    (h = d.props),
                    (v = d.state),
                    p)
                )
                    null == R.getDerivedStateFromProps &&
                        null != d.componentWillMount &&
                        d.componentWillMount(),
                        null != d.componentDidMount &&
                            d.__h.push(d.componentDidMount)
                else {
                    if (
                        (null == R.getDerivedStateFromProps &&
                            S !== h &&
                            null != d.componentWillReceiveProps &&
                            d.componentWillReceiveProps(S, D),
                        (!d.__e &&
                            null != d.shouldComponentUpdate &&
                            !1 === d.shouldComponentUpdate(S, d.__s, D)) ||
                            t.__v === n.__v)
                    ) {
                        ;(d.props = S),
                            (d.state = d.__s),
                            t.__v !== n.__v && (d.__d = !1),
                            (d.__v = t),
                            (t.__e = n.__e),
                            (t.__k = n.__k),
                            t.__k.forEach(function (e) {
                                e && (e.__ = t)
                            }),
                            d.__h.length && s.push(d)
                        break e
                    }
                    null != d.componentWillUpdate &&
                        d.componentWillUpdate(S, d.__s, D),
                        null != d.componentDidUpdate &&
                            d.__h.push(function () {
                                d.componentDidUpdate(h, v, g)
                            })
                }
                ;(d.context = D),
                    (d.props = S),
                    (d.state = d.__s),
                    (c = i.__r) && c(t),
                    (d.__d = !1),
                    (d.__v = t),
                    (d.__P = e),
                    (c = d.render(d.props, d.state, d.context)),
                    (d.state = d.__s),
                    null != d.getChildContext &&
                        (r = f(f({}, r), d.getChildContext())),
                    p ||
                        null == d.getSnapshotBeforeUpdate ||
                        (g = d.getSnapshotBeforeUpdate(h, v)),
                    (w =
                        null != c && c.type === m && null == c.key
                            ? c.props.children
                            : c),
                    C(e, Array.isArray(w) ? w : [w], t, n, r, o, a, s, l, u),
                    (d.base = t.__e),
                    (t.__h = null),
                    d.__h.length && s.push(d),
                    E && (d.__E = d.__ = null),
                    (d.__e = !1)
            } else
                null == a && t.__v === n.__v
                    ? ((t.__k = n.__k), (t.__e = n.__e))
                    : (t.__e = N(n.__e, t, n, r, o, a, s, u))
            ;(c = i.diffed) && c(t)
        } catch (e) {
            ;(t.__v = null),
                (u || null != a) &&
                    ((t.__e = l), (t.__h = !!u), (a[a.indexOf(l)] = null)),
                i.__e(e, t, n)
        }
    }
    function P(e, t) {
        i.__c && i.__c(t, e),
            e.some(function (t) {
                try {
                    ;(e = t.__h),
                        (t.__h = []),
                        e.some(function (e) {
                            e.call(t)
                        })
                } catch (e) {
                    i.__e(e, t.__v)
                }
            })
    }
    function N(e, t, n, r, o, i, a, s) {
        var l,
            u,
            p,
            f,
            v = n.props,
            g = t.props,
            m = t.type,
            y = 0
        if (('svg' === m && (o = !0), null != i))
            for (; y < i.length; y++)
                if (
                    (l = i[y]) &&
                    (l === e || (m ? l.localName == m : 3 == l.nodeType))
                ) {
                    ;(e = l), (i[y] = null)
                    break
                }
        if (null == e) {
            if (null === m) return document.createTextNode(g)
            ;(e = o
                ? document.createElementNS('http://www.w3.org/2000/svg', m)
                : document.createElement(m, g.is && g)),
                (i = null),
                (s = !1)
        }
        if (null === m) v === g || (s && e.data === g) || (e.data = g)
        else {
            if (
                ((i = i && d.slice.call(e.childNodes)),
                (u = (v = n.props || c).dangerouslySetInnerHTML),
                (p = g.dangerouslySetInnerHTML),
                !s)
            ) {
                if (null != i)
                    for (v = {}, f = 0; f < e.attributes.length; f++)
                        v[e.attributes[f].name] = e.attributes[f].value
                ;(p || u) &&
                    ((p &&
                        ((u && p.__html == u.__html) ||
                            p.__html === e.innerHTML)) ||
                        (e.innerHTML = (p && p.__html) || ''))
            }
            if (
                ((function (e, t, n, r, o) {
                    var i
                    for (i in n)
                        'children' === i ||
                            'key' === i ||
                            i in t ||
                            k(e, i, null, n[i], r)
                    for (i in t)
                        (o && 'function' != typeof t[i]) ||
                            'children' === i ||
                            'key' === i ||
                            'value' === i ||
                            'checked' === i ||
                            n[i] === t[i] ||
                            k(e, i, t[i], n[i], r)
                })(e, g, v, o, s),
                p)
            )
                t.__k = []
            else if (
                ((y = t.props.children),
                C(
                    e,
                    Array.isArray(y) ? y : [y],
                    t,
                    n,
                    r,
                    o && 'foreignObject' !== m,
                    i,
                    a,
                    e.firstChild,
                    s
                ),
                null != i)
            )
                for (y = i.length; y--; ) null != i[y] && h(i[y])
            s ||
                ('value' in g &&
                    void 0 !== (y = g.value) &&
                    (y !== e.value || ('progress' === m && !y)) &&
                    k(e, 'value', y, v.value, !1),
                'checked' in g &&
                    void 0 !== (y = g.checked) &&
                    y !== e.checked &&
                    k(e, 'checked', y, v.checked, !1))
        }
        return e
    }
    function H(e, t, n) {
        try {
            'function' == typeof e ? e(t) : (e.current = t)
        } catch (e) {
            i.__e(e, n)
        }
    }
    function O(e, t, n) {
        var r, o, a
        if (
            (i.unmount && i.unmount(e),
            (r = e.ref) &&
                ((r.current && r.current !== e.__e) || H(r, null, t)),
            n || 'function' == typeof e.type || (n = null != (o = e.__e)),
            (e.__e = e.__d = void 0),
            null != (r = e.__c))
        ) {
            if (r.componentWillUnmount)
                try {
                    r.componentWillUnmount()
                } catch (e) {
                    i.__e(e, t)
                }
            r.base = r.__P = null
        }
        if ((r = e.__k)) for (a = 0; a < r.length; a++) r[a] && O(r[a], t, n)
        null != o && h(o)
    }
    function A(e, t, n) {
        return this.constructor(e, n)
    }
    function L(e, t, n) {
        var r, o, a
        i.__ && i.__(e, t),
            (o = (r = 'function' == typeof n) ? null : (n && n.__k) || t.__k),
            (a = []),
            I(
                t,
                (e = ((!r && n) || t).__k = v(m, null, [e])),
                o || c,
                c,
                void 0 !== t.ownerSVGElement,
                !r && n
                    ? [n]
                    : o
                      ? null
                      : t.firstChild
                        ? d.slice.call(t.childNodes)
                        : null,
                a,
                !r && n ? n : o ? o.__e : t.firstChild,
                r
            ),
            P(a, e)
    }
    ;(i = {
        __e: function (e, t) {
            for (var n, r, o; (t = t.__); )
                if ((n = t.__c) && !n.__)
                    try {
                        if (
                            ((r = n.constructor) &&
                                null != r.getDerivedStateFromError &&
                                (n.setState(r.getDerivedStateFromError(e)),
                                (o = n.__d)),
                            null != n.componentDidCatch &&
                                (n.componentDidCatch(e), (o = n.__d)),
                            o)
                        )
                            return (n.__E = n)
                    } catch (t) {
                        e = t
                    }
            throw e
        },
        __v: 0,
    }),
        (y.prototype.setState = function (e, t) {
            var n
            ;(n =
                null != this.__s && this.__s !== this.state
                    ? this.__s
                    : (this.__s = f({}, this.state))),
                'function' == typeof e && (e = e(f({}, n), this.props)),
                e && f(n, e),
                null != e && this.__v && (t && this.__h.push(t), b(this))
        }),
        (y.prototype.forceUpdate = function (e) {
            this.__v && ((this.__e = !0), e && this.__h.push(e), b(this))
        }),
        (y.prototype.render = m),
        (a = []),
        (s =
            'function' == typeof Promise
                ? Promise.prototype.then.bind(Promise.resolve())
                : setTimeout),
        (D.__r = 0),
        (u = 0)
    var U,
        W = [],
        V = i.__b,
        F = i.__r,
        B = i.diffed,
        z = i.__c,
        j = i.unmount
    function G() {
        W.forEach(function (e) {
            if (e.__P)
                try {
                    e.__H.__h.forEach(Y), e.__H.__h.forEach(Z), (e.__H.__h = [])
                } catch (t) {
                    ;(e.__H.__h = []), i.__e(t, e.__v)
                }
        }),
            (W = [])
    }
    ;(i.__b = function (e) {
        V && V(e)
    }),
        (i.__r = function (e) {
            F && F(e)
            var t = e.__c.__H
            t && (t.__h.forEach(Y), t.__h.forEach(Z), (t.__h = []))
        }),
        (i.diffed = function (e) {
            B && B(e)
            var t = e.__c
            t &&
                t.__H &&
                t.__H.__h.length &&
                ((1 !== W.push(t) && U === i.requestAnimationFrame) ||
                    (
                        (U = i.requestAnimationFrame) ||
                        function (e) {
                            var t,
                                n = function () {
                                    clearTimeout(r),
                                        q && cancelAnimationFrame(t),
                                        setTimeout(e)
                                },
                                r = setTimeout(n, 100)
                            q && (t = requestAnimationFrame(n))
                        }
                    )(G))
        }),
        (i.__c = function (e, t) {
            t.some(function (e) {
                try {
                    e.__h.forEach(Y),
                        (e.__h = e.__h.filter(function (e) {
                            return !e.__ || Z(e)
                        }))
                } catch (n) {
                    t.some(function (e) {
                        e.__h && (e.__h = [])
                    }),
                        (t = []),
                        i.__e(n, e.__v)
                }
            }),
                z && z(e, t)
        }),
        (i.unmount = function (e) {
            j && j(e)
            var t = e.__c
            if (t && t.__H)
                try {
                    t.__H.__.forEach(Y)
                } catch (e) {
                    i.__e(e, t.__v)
                }
        })
    var q = 'function' == typeof requestAnimationFrame
    function Y(e) {
        'function' == typeof e.__c && e.__c()
    }
    function Z(e) {
        e.__c = e.__()
    }
    function X(e, t) {
        for (var n in e) if ('__source' !== n && !(n in t)) return !0
        for (var r in t) if ('__source' !== r && e[r] !== t[r]) return !0
        return !1
    }
    function K(e) {
        this.props = e
    }
    ;((K.prototype = new y()).isPureReactComponent = !0),
        (K.prototype.shouldComponentUpdate = function (e, t) {
            return X(this.props, e) || X(this.state, t)
        })
    var $ = i.__b
    i.__b = function (e) {
        e.type &&
            e.type.__f &&
            e.ref &&
            ((e.props.ref = e.ref), (e.ref = null)),
            $ && $(e)
    }
    var J = i.__e
    i.__e = function (e, t, n) {
        if (e.then)
            for (var r, o = t; (o = o.__); )
                if ((r = o.__c) && r.__c)
                    return (
                        null == t.__e && ((t.__e = n.__e), (t.__k = n.__k)),
                        r.__c(e, t)
                    )
        J(e, t, n)
    }
    var Q = i.unmount
    function ee() {
        ;(this.__u = 0), (this.t = null), (this.__b = null)
    }
    function te(e) {
        var t = e.__.__c
        return t && t.__e && t.__e(e)
    }
    function ne() {
        ;(this.u = null), (this.o = null)
    }
    ;(i.unmount = function (e) {
        var t = e.__c
        t && t.__R && t.__R(), t && !0 === e.__h && (e.type = null), Q && Q(e)
    }),
        ((ee.prototype = new y()).__c = function (e, t) {
            var n = t.__c,
                r = this
            null == r.t && (r.t = []), r.t.push(n)
            var o = te(r.__v),
                i = !1,
                a = function () {
                    i || ((i = !0), (n.__R = null), o ? o(s) : s())
                }
            n.__R = a
            var s = function () {
                    if (!--r.__u) {
                        if (r.state.__e) {
                            var e = r.state.__e
                            r.__v.__k[0] = (function e(t, n, r) {
                                return (
                                    t &&
                                        ((t.__v = null),
                                        (t.__k =
                                            t.__k &&
                                            t.__k.map(function (t) {
                                                return e(t, n, r)
                                            })),
                                        t.__c &&
                                            t.__c.__P === n &&
                                            (t.__e &&
                                                r.insertBefore(t.__e, t.__d),
                                            (t.__c.__e = !0),
                                            (t.__c.__P = r))),
                                    t
                                )
                            })(e, e.__c.__P, e.__c.__O)
                        }
                        var t
                        for (
                            r.setState({ __e: (r.__b = null) });
                            (t = r.t.pop());

                        )
                            t.forceUpdate()
                    }
                },
                l = !0 === t.__h
            r.__u++ || l || r.setState({ __e: (r.__b = r.__v.__k[0]) }),
                e.then(a, a)
        }),
        (ee.prototype.componentWillUnmount = function () {
            this.t = []
        }),
        (ee.prototype.render = function (e, t) {
            if (this.__b) {
                if (this.__v.__k) {
                    var n = document.createElement('div'),
                        r = this.__v.__k[0].__c
                    this.__v.__k[0] = (function e(t, n, r) {
                        return (
                            t &&
                                (t.__c &&
                                    t.__c.__H &&
                                    (t.__c.__H.__.forEach(function (e) {
                                        'function' == typeof e.__c && e.__c()
                                    }),
                                    (t.__c.__H = null)),
                                null !=
                                    (t = (function (e, t) {
                                        for (var n in t) e[n] = t[n]
                                        return e
                                    })({}, t)).__c &&
                                    (t.__c.__P === r && (t.__c.__P = n),
                                    (t.__c = null)),
                                (t.__k =
                                    t.__k &&
                                    t.__k.map(function (t) {
                                        return e(t, n, r)
                                    }))),
                            t
                        )
                    })(this.__b, n, (r.__O = r.__P))
                }
                this.__b = null
            }
            var o = t.__e && v(m, null, e.fallback)
            return (
                o && (o.__h = null), [v(m, null, t.__e ? null : e.children), o]
            )
        })
    var re = function (e, t, n) {
        if (
            (++n[1] === n[0] && e.o.delete(t),
            e.props.revealOrder &&
                ('t' !== e.props.revealOrder[0] || !e.o.size))
        )
            for (n = e.u; n; ) {
                for (; n.length > 3; ) n.pop()()
                if (n[1] < n[0]) break
                e.u = n = n[2]
            }
    }
    function oe(e) {
        return (
            (this.getChildContext = function () {
                return e.context
            }),
            e.children
        )
    }
    function ie(e) {
        var t = this,
            n = e.i
        ;(t.componentWillUnmount = function () {
            L(null, t.l), (t.l = null), (t.i = null)
        }),
            t.i && t.i !== n && t.componentWillUnmount(),
            e.__v
                ? (t.l ||
                      ((t.i = n),
                      (t.l = {
                          nodeType: 1,
                          parentNode: n,
                          childNodes: [],
                          appendChild: function (e) {
                              this.childNodes.push(e), t.i.appendChild(e)
                          },
                          insertBefore: function (e, n) {
                              this.childNodes.push(e), t.i.appendChild(e)
                          },
                          removeChild: function (e) {
                              this.childNodes.splice(
                                  this.childNodes.indexOf(e) >>> 1,
                                  1
                              ),
                                  t.i.removeChild(e)
                          },
                      })),
                  L(v(oe, { context: t.context }, e.__v), t.l))
                : t.l && t.componentWillUnmount()
    }
    ;((ne.prototype = new y()).__e = function (e) {
        var t = this,
            n = te(t.__v),
            r = t.o.get(e)
        return (
            r[0]++,
            function (o) {
                var i = function () {
                    t.props.revealOrder ? (r.push(o), re(t, e, r)) : o()
                }
                n ? n(i) : i()
            }
        )
    }),
        (ne.prototype.render = function (e) {
            ;(this.u = null), (this.o = new Map())
            var t = R(e.children)
            e.revealOrder && 'b' === e.revealOrder[0] && t.reverse()
            for (var n = t.length; n--; )
                this.o.set(t[n], (this.u = [1, 0, this.u]))
            return e.children
        }),
        (ne.prototype.componentDidUpdate = ne.prototype.componentDidMount =
            function () {
                var e = this
                this.o.forEach(function (t, n) {
                    re(e, n, t)
                })
            })
    var ae =
            ('undefined' != typeof Symbol &&
                Symbol.for &&
                Symbol.for('react.element')) ||
            60103,
        se =
            /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,
        le = function (e) {
            return (
                'undefined' != typeof Symbol && 'symbol' == typeof Symbol()
                    ? /fil|che|rad/i
                    : /fil|che|ra/i
            ).test(e)
        }
    ;(y.prototype.isReactComponent = {}),
        [
            'componentWillMount',
            'componentWillReceiveProps',
            'componentWillUpdate',
        ].forEach(function (e) {
            Object.defineProperty(y.prototype, e, {
                configurable: !0,
                get: function () {
                    return this['UNSAFE_' + e]
                },
                set: function (t) {
                    Object.defineProperty(this, e, {
                        configurable: !0,
                        writable: !0,
                        value: t,
                    })
                },
            })
        })
    var ue = i.event
    function ce() {}
    function de() {
        return this.cancelBubble
    }
    function pe() {
        return this.defaultPrevented
    }
    i.event = function (e) {
        return (
            ue && (e = ue(e)),
            (e.persist = ce),
            (e.isPropagationStopped = de),
            (e.isDefaultPrevented = pe),
            (e.nativeEvent = e)
        )
    }
    var fe = {
            configurable: !0,
            get: function () {
                return this.class
            },
        },
        he = i.vnode
    i.vnode = function (e) {
        var t = e.type,
            n = e.props,
            r = n
        if ('string' == typeof t) {
            for (var o in ((r = {}), n)) {
                var i = n[o]
                ;('value' === o && 'defaultValue' in n && null == i) ||
                    ('defaultValue' === o && 'value' in n && null == n.value
                        ? (o = 'value')
                        : 'download' === o && !0 === i
                          ? (i = '')
                          : /ondoubleclick/i.test(o)
                            ? (o = 'ondblclick')
                            : /^onchange(textarea|input)/i.test(o + t) &&
                                !le(n.type)
                              ? (o = 'oninput')
                              : /^on(Ani|Tra|Tou|BeforeInp)/.test(o)
                                ? (o = o.toLowerCase())
                                : se.test(o)
                                  ? (o = o
                                        .replace(/[A-Z0-9]/, '-$&')
                                        .toLowerCase())
                                  : null === i && (i = void 0),
                    (r[o] = i))
            }
            'select' == t &&
                r.multiple &&
                Array.isArray(r.value) &&
                (r.value = R(n.children).forEach(function (e) {
                    e.props.selected = -1 != r.value.indexOf(e.props.value)
                })),
                'select' == t &&
                    null != r.defaultValue &&
                    (r.value = R(n.children).forEach(function (e) {
                        e.props.selected = r.multiple
                            ? -1 != r.defaultValue.indexOf(e.props.value)
                            : r.defaultValue == e.props.value
                    })),
                (e.props = r)
        }
        t &&
            n.class != n.className &&
            ((fe.enumerable = 'className' in n),
            null != n.className && (r.class = n.className),
            Object.defineProperty(r, 'className', fe)),
            (e.$$typeof = ae),
            he && he(e)
    }
    var ve = i.__r
    ;(i.__r = function (e) {
        ve && ve(e)
    }),
        'object' == typeof performance &&
            'function' == typeof performance.now &&
            performance.now.bind(performance)
    var ge = 'undefined' != typeof globalThis ? globalThis : window
    ge.FullCalendarVDom
        ? console.warn('FullCalendar VDOM already loaded')
        : (ge.FullCalendarVDom = {
              Component: y,
              createElement: v,
              render: L,
              createRef: function () {
                  return { current: null }
              },
              Fragment: m,
              createContext: function (e) {
                  var t = (function (e, t) {
                          var n = {
                              __c: (t = '__cC' + u++),
                              __: e,
                              Consumer: function (e, t) {
                                  return e.children(t)
                              },
                              Provider: function (e) {
                                  var n, r
                                  return (
                                      this.getChildContext ||
                                          ((n = []),
                                          ((r = {})[t] = this),
                                          (this.getChildContext = function () {
                                              return r
                                          }),
                                          (this.shouldComponentUpdate =
                                              function (e) {
                                                  this.props.value !==
                                                      e.value && n.some(b)
                                              }),
                                          (this.sub = function (e) {
                                              n.push(e)
                                              var t = e.componentWillUnmount
                                              e.componentWillUnmount =
                                                  function () {
                                                      n.splice(n.indexOf(e), 1),
                                                          t && t.call(e)
                                                  }
                                          })),
                                      e.children
                                  )
                              },
                          }
                          return (n.Provider.__ = n.Consumer.contextType = n)
                      })(e),
                      n = t.Provider
                  return (
                      (t.Provider = function () {
                          var e = this,
                              t = !this.getChildContext,
                              r = n.apply(this, arguments)
                          if (t) {
                              var o = []
                              ;(this.shouldComponentUpdate = function (t) {
                                  e.props.value !== t.value &&
                                      o.forEach(function (e) {
                                          ;(e.context = t.value),
                                              e.forceUpdate()
                                      })
                              }),
                                  (this.sub = function (e) {
                                      o.push(e)
                                      var t = e.componentWillUnmount
                                      e.componentWillUnmount = function () {
                                          o.splice(o.indexOf(e), 1),
                                              t && t.call(e)
                                      }
                                  })
                          }
                          return r
                      }),
                      t
                  )
              },
              createPortal: function (e, t) {
                  return v(ie, { __v: e, i: t })
              },
              flushSync: function (e) {
                  e()
                  var t = i.debounceRendering,
                      n = []
                  function r(e) {
                      n.push(e)
                  }
                  ;(i.debounceRendering = r),
                      L(v(me, {}), document.createElement('div'))
                  for (; n.length; ) n.shift()()
                  i.debounceRendering = t
              },
              unmountComponentAtNode: function (e) {
                  L(null, e)
              },
          })
    var me = (function (e) {
        function t() {
            return (null !== e && e.apply(this, arguments)) || this
        }
        return (
            n(t, e),
            (t.prototype.render = function () {
                return v('div', {})
            }),
            (t.prototype.componentDidMount = function () {
                this.setState({})
            }),
            t
        )
    })(y)
    var ye = (function () {
        function e(e, t) {
            ;(this.context = e), (this.internalEventSource = t)
        }
        return (
            (e.prototype.remove = function () {
                this.context.dispatch({
                    type: 'REMOVE_EVENT_SOURCE',
                    sourceId: this.internalEventSource.sourceId,
                })
            }),
            (e.prototype.refetch = function () {
                this.context.dispatch({
                    type: 'FETCH_EVENT_SOURCES',
                    sourceIds: [this.internalEventSource.sourceId],
                    isRefetch: !0,
                })
            }),
            Object.defineProperty(e.prototype, 'id', {
                get: function () {
                    return this.internalEventSource.publicId
                },
                enumerable: !1,
                configurable: !0,
            }),
            Object.defineProperty(e.prototype, 'url', {
                get: function () {
                    return this.internalEventSource.meta.url
                },
                enumerable: !1,
                configurable: !0,
            }),
            Object.defineProperty(e.prototype, 'format', {
                get: function () {
                    return this.internalEventSource.meta.format
                },
                enumerable: !1,
                configurable: !0,
            }),
            e
        )
    })()
    function Ee(e) {
        e.parentNode && e.parentNode.removeChild(e)
    }
    function Se(e, t) {
        if (e.closest) return e.closest(t)
        if (!document.documentElement.contains(e)) return null
        do {
            if (be(e, t)) return e
            e = e.parentElement || e.parentNode
        } while (null !== e && 1 === e.nodeType)
        return null
    }
    function be(e, t) {
        return (e.matches || e.matchesSelector || e.msMatchesSelector).call(
            e,
            t
        )
    }
    function De(e, t) {
        for (
            var n = e instanceof HTMLElement ? [e] : e, r = [], o = 0;
            o < n.length;
            o += 1
        )
            for (var i = n[o].querySelectorAll(t), a = 0; a < i.length; a += 1)
                r.push(i[a])
        return r
    }
    var Ce = /(top|left|right|bottom|width|height)$/i
    function we(e, t) {
        for (var n in t) Re(e, n, t[n])
    }
    function Re(e, t, n) {
        null == n
            ? (e.style[t] = '')
            : 'number' == typeof n && Ce.test(t)
              ? (e.style[t] = n + 'px')
              : (e.style[t] = n)
    }
    function _e(e) {
        var t, n
        return null !==
            (n =
                null === (t = e.composedPath) || void 0 === t
                    ? void 0
                    : t.call(e)[0]) && void 0 !== n
            ? n
            : e.target
    }
    function Te(e) {
        return e.getRootNode ? e.getRootNode() : document
    }
    var ke = 0
    function xe() {
        return 'fc-dom-' + (ke += 1)
    }
    function Me(e) {
        e.preventDefault()
    }
    function Ie(e, t, n, r) {
        var o = (function (e, t) {
            return function (n) {
                var r = Se(n.target, e)
                r && t.call(r, n, r)
            }
        })(n, r)
        return (
            e.addEventListener(t, o),
            function () {
                e.removeEventListener(t, o)
            }
        )
    }
    var Pe = [
        'webkitTransitionEnd',
        'otransitionend',
        'oTransitionEnd',
        'msTransitionEnd',
        'transitionend',
    ]
    function Ne(e, t) {
        var n = function (r) {
            t(r),
                Pe.forEach(function (t) {
                    e.removeEventListener(t, n)
                })
        }
        Pe.forEach(function (t) {
            e.addEventListener(t, n)
        })
    }
    function He(e) {
        return r({ onClick: e }, Oe(e))
    }
    function Oe(e) {
        return {
            tabIndex: 0,
            onKeyDown: function (t) {
                ;('Enter' !== t.key && ' ' !== t.key) ||
                    (e(t), t.preventDefault())
            },
        }
    }
    var Ae = 0
    function Le() {
        return String((Ae += 1))
    }
    function Ue() {
        document.body.classList.add('fc-not-allowed')
    }
    function We() {
        document.body.classList.remove('fc-not-allowed')
    }
    function Ve(e) {
        e.classList.add('fc-unselectable'),
            e.addEventListener('selectstart', Me)
    }
    function Fe(e) {
        e.classList.remove('fc-unselectable'),
            e.removeEventListener('selectstart', Me)
    }
    function Be(e) {
        e.addEventListener('contextmenu', Me)
    }
    function ze(e) {
        e.removeEventListener('contextmenu', Me)
    }
    function je(e) {
        var t,
            n,
            r = [],
            o = []
        for (
            'string' == typeof e
                ? (o = e.split(/\s*,\s*/))
                : 'function' == typeof e
                  ? (o = [e])
                  : Array.isArray(e) && (o = e),
                t = 0;
            t < o.length;
            t += 1
        )
            'string' == typeof (n = o[t])
                ? r.push(
                      '-' === n.charAt(0)
                          ? { field: n.substring(1), order: -1 }
                          : { field: n, order: 1 }
                  )
                : 'function' == typeof n && r.push({ func: n })
        return r
    }
    function Ge(e, t, n) {
        var r, o
        for (r = 0; r < n.length; r += 1) if ((o = qe(e, t, n[r]))) return o
        return 0
    }
    function qe(e, t, n) {
        return n.func
            ? n.func(e, t)
            : Ye(e[n.field], t[n.field]) * (n.order || 1)
    }
    function Ye(e, t) {
        return e || t
            ? null == t
                ? -1
                : null == e
                  ? 1
                  : 'string' == typeof e || 'string' == typeof t
                    ? String(e).localeCompare(String(t))
                    : e - t
            : 0
    }
    function Ze(e, t) {
        var n = String(e)
        return '000'.substr(0, t - n.length) + n
    }
    function Xe(e, t, n) {
        return 'function' == typeof e
            ? e.apply(void 0, t)
            : 'string' == typeof e
              ? t.reduce(function (e, t, n) {
                    return e.replace('$' + n, t || '')
                }, e)
              : n
    }
    function Ke(e, t) {
        return e - t
    }
    function $e(e) {
        return e % 1 == 0
    }
    function Je(e) {
        var t = e.querySelector('.fc-scrollgrid-shrink-frame'),
            n = e.querySelector('.fc-scrollgrid-shrink-cushion')
        if (!t) throw new Error('needs fc-scrollgrid-shrink-frame className')
        if (!n) throw new Error('needs fc-scrollgrid-shrink-cushion className')
        return (
            e.getBoundingClientRect().width -
            t.getBoundingClientRect().width +
            n.getBoundingClientRect().width
        )
    }
    var Qe = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']
    function et(e, t) {
        var n = ft(e)
        return (n[2] += 7 * t), ht(n)
    }
    function tt(e, t) {
        var n = ft(e)
        return (n[2] += t), ht(n)
    }
    function nt(e, t) {
        var n = ft(e)
        return (n[6] += t), ht(n)
    }
    function rt(e, t) {
        return ot(e, t) / 7
    }
    function ot(e, t) {
        return (t.valueOf() - e.valueOf()) / 864e5
    }
    function it(e, t) {
        var n = lt(e),
            r = lt(t)
        return {
            years: 0,
            months: 0,
            days: Math.round(ot(n, r)),
            milliseconds:
                t.valueOf() - r.valueOf() - (e.valueOf() - n.valueOf()),
        }
    }
    function at(e, t) {
        var n = st(e, t)
        return null !== n && n % 7 == 0 ? n / 7 : null
    }
    function st(e, t) {
        return gt(e) === gt(t) ? Math.round(ot(e, t)) : null
    }
    function lt(e) {
        return ht([e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate()])
    }
    function ut(e, t, n, r) {
        var o = ht([t, 0, 1 + ct(t, n, r)]),
            i = lt(e),
            a = Math.round(ot(o, i))
        return Math.floor(a / 7) + 1
    }
    function ct(e, t, n) {
        var r = 7 + t - n
        return -((7 + ht([e, 0, r]).getUTCDay() - t) % 7) + r - 1
    }
    function dt(e) {
        return [
            e.getFullYear(),
            e.getMonth(),
            e.getDate(),
            e.getHours(),
            e.getMinutes(),
            e.getSeconds(),
            e.getMilliseconds(),
        ]
    }
    function pt(e) {
        return new Date(
            e[0],
            e[1] || 0,
            null == e[2] ? 1 : e[2],
            e[3] || 0,
            e[4] || 0,
            e[5] || 0
        )
    }
    function ft(e) {
        return [
            e.getUTCFullYear(),
            e.getUTCMonth(),
            e.getUTCDate(),
            e.getUTCHours(),
            e.getUTCMinutes(),
            e.getUTCSeconds(),
            e.getUTCMilliseconds(),
        ]
    }
    function ht(e) {
        return (
            1 === e.length && (e = e.concat([0])),
            new Date(Date.UTC.apply(Date, e))
        )
    }
    function vt(e) {
        return !isNaN(e.valueOf())
    }
    function gt(e) {
        return (
            1e3 * e.getUTCHours() * 60 * 60 +
            1e3 * e.getUTCMinutes() * 60 +
            1e3 * e.getUTCSeconds() +
            e.getUTCMilliseconds()
        )
    }
    function mt(e, t, n, r) {
        return {
            instanceId: Le(),
            defId: e,
            range: t,
            forcedStartTzo: null == n ? null : n,
            forcedEndTzo: null == r ? null : r,
        }
    }
    var yt = Object.prototype.hasOwnProperty
    function Et(e, t) {
        var n = {}
        if (t)
            for (var r in t) {
                for (var o = [], i = e.length - 1; i >= 0; i -= 1) {
                    var a = e[i][r]
                    if ('object' == typeof a && a) o.unshift(a)
                    else if (void 0 !== a) {
                        n[r] = a
                        break
                    }
                }
                o.length && (n[r] = Et(o))
            }
        for (i = e.length - 1; i >= 0; i -= 1) {
            var s = e[i]
            for (var l in s) l in n || (n[l] = s[l])
        }
        return n
    }
    function St(e, t) {
        var n = {}
        for (var r in e) t(e[r], r) && (n[r] = e[r])
        return n
    }
    function bt(e, t) {
        var n = {}
        for (var r in e) n[r] = t(e[r], r)
        return n
    }
    function Dt(e) {
        for (var t = {}, n = 0, r = e; n < r.length; n++) {
            t[r[n]] = !0
        }
        return t
    }
    function Ct(e) {
        var t = []
        for (var n in e) t.push(e[n])
        return t
    }
    function wt(e, t) {
        if (e === t) return !0
        for (var n in e) if (yt.call(e, n) && !(n in t)) return !1
        for (var n in t) if (yt.call(t, n) && e[n] !== t[n]) return !1
        return !0
    }
    function Rt(e, t) {
        var n = []
        for (var r in e) yt.call(e, r) && (r in t || n.push(r))
        for (var r in t) yt.call(t, r) && e[r] !== t[r] && n.push(r)
        return n
    }
    function _t(e, t, n) {
        if ((void 0 === n && (n = {}), e === t)) return !0
        for (var r in t) if (!(r in e) || !Tt(e[r], t[r], n[r])) return !1
        for (var r in e) if (!(r in t)) return !1
        return !0
    }
    function Tt(e, t, n) {
        return e === t || !0 === n || (!!n && n(e, t))
    }
    function kt(e, t, n, r) {
        void 0 === t && (t = 0), void 0 === r && (r = 1)
        var o = []
        null == n && (n = Object.keys(e).length)
        for (var i = t; i < n; i += r) {
            var a = e[i]
            void 0 !== a && o.push(a)
        }
        return o
    }
    function xt(e, t, n) {
        var r = n.dateEnv,
            o = n.pluginHooks,
            i = n.options,
            a = e.defs,
            s = e.instances
        for (var l in ((s = St(s, function (e) {
            return !a[e.defId].recurringDef
        })),
        a)) {
            var u = a[l]
            if (u.recurringDef) {
                var c = u.recurringDef.duration
                c ||
                    (c = u.allDay
                        ? i.defaultAllDayEventDuration
                        : i.defaultTimedEventDuration)
                for (
                    var d = 0, p = Mt(u, c, t, r, o.recurringTypes);
                    d < p.length;
                    d++
                ) {
                    var f = p[d],
                        h = mt(l, { start: f, end: r.add(f, c) })
                    s[h.instanceId] = h
                }
            }
        }
        return { defs: a, instances: s }
    }
    function Mt(e, t, n, r, o) {
        var i = o[e.recurringDef.typeId].expand(
            e.recurringDef.typeData,
            { start: r.subtract(n.start, t), end: n.end },
            r
        )
        return e.allDay && (i = i.map(lt)), i
    }
    var It = ['years', 'months', 'days', 'milliseconds'],
        Pt = /^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/
    function Nt(e, t) {
        var n
        return 'string' == typeof e
            ? (function (e) {
                  var t = Pt.exec(e)
                  if (t) {
                      var n = t[1] ? -1 : 1
                      return {
                          years: 0,
                          months: 0,
                          days: n * (t[2] ? parseInt(t[2], 10) : 0),
                          milliseconds:
                              n *
                              (60 * (t[3] ? parseInt(t[3], 10) : 0) * 60 * 1e3 +
                                  60 * (t[4] ? parseInt(t[4], 10) : 0) * 1e3 +
                                  1e3 * (t[5] ? parseInt(t[5], 10) : 0) +
                                  (t[6] ? parseInt(t[6], 10) : 0)),
                      }
                  }
                  return null
              })(e)
            : 'object' == typeof e && e
              ? Ht(e)
              : 'number' == typeof e
                ? Ht((((n = {})[t || 'milliseconds'] = e), n))
                : null
    }
    function Ht(e) {
        var t = {
                years: e.years || e.year || 0,
                months: e.months || e.month || 0,
                days: e.days || e.day || 0,
                milliseconds:
                    60 * (e.hours || e.hour || 0) * 60 * 1e3 +
                    60 * (e.minutes || e.minute || 0) * 1e3 +
                    1e3 * (e.seconds || e.second || 0) +
                    (e.milliseconds || e.millisecond || e.ms || 0),
            },
            n = e.weeks || e.week
        return n && ((t.days += 7 * n), (t.specifiedWeeks = !0)), t
    }
    function Ot(e, t) {
        return {
            years: e.years + t.years,
            months: e.months + t.months,
            days: e.days + t.days,
            milliseconds: e.milliseconds + t.milliseconds,
        }
    }
    function At(e, t) {
        return {
            years: e.years * t,
            months: e.months * t,
            days: e.days * t,
            milliseconds: e.milliseconds * t,
        }
    }
    function Lt(e) {
        return Ut(e) / 864e5
    }
    function Ut(e) {
        return (
            31536e6 * e.years +
            2592e6 * e.months +
            864e5 * e.days +
            e.milliseconds
        )
    }
    function Wt(e, t) {
        for (var n = null, r = 0; r < It.length; r += 1) {
            var o = It[r]
            if (t[o]) {
                var i = e[o] / t[o]
                if (!$e(i) || (null !== n && n !== i)) return null
                n = i
            } else if (e[o]) return null
        }
        return n
    }
    function Vt(e) {
        var t = e.milliseconds
        if (t) {
            if (t % 1e3 != 0) return { unit: 'millisecond', value: t }
            if (t % 6e4 != 0) return { unit: 'second', value: t / 1e3 }
            if (t % 36e5 != 0) return { unit: 'minute', value: t / 6e4 }
            if (t) return { unit: 'hour', value: t / 36e5 }
        }
        return e.days
            ? e.specifiedWeeks && e.days % 7 == 0
                ? { unit: 'week', value: e.days / 7 }
                : { unit: 'day', value: e.days }
            : e.months
              ? { unit: 'month', value: e.months }
              : e.years
                ? { unit: 'year', value: e.years }
                : { unit: 'millisecond', value: 0 }
    }
    function Ft(e, t, n) {
        void 0 === n && (n = !1)
        var r = e.toISOString()
        return (
            (r = r.replace('.000', '')),
            n && (r = r.replace('T00:00:00Z', '')),
            r.length > 10 &&
                (null == t
                    ? (r = r.replace('Z', ''))
                    : 0 !== t && (r = r.replace('Z', jt(t, !0)))),
            r
        )
    }
    function Bt(e) {
        return e.toISOString().replace(/T.*$/, '')
    }
    function zt(e) {
        return (
            Ze(e.getUTCHours(), 2) +
            ':' +
            Ze(e.getUTCMinutes(), 2) +
            ':' +
            Ze(e.getUTCSeconds(), 2)
        )
    }
    function jt(e, t) {
        void 0 === t && (t = !1)
        var n = e < 0 ? '-' : '+',
            r = Math.abs(e),
            o = Math.floor(r / 60),
            i = Math.round(r % 60)
        return t
            ? n + Ze(o, 2) + ':' + Ze(i, 2)
            : 'GMT' + n + o + (i ? ':' + Ze(i, 2) : '')
    }
    function Gt(e, t, n) {
        if (e === t) return !0
        var r,
            o = e.length
        if (o !== t.length) return !1
        for (r = 0; r < o; r += 1)
            if (!(n ? n(e[r], t[r]) : e[r] === t[r])) return !1
        return !0
    }
    function qt(e, t, n) {
        var r, o
        return function () {
            for (var i = [], a = 0; a < arguments.length; a++)
                i[a] = arguments[a]
            if (r) {
                if (!Gt(r, i)) {
                    n && n(o)
                    var s = e.apply(this, i)
                    ;(t && t(s, o)) || (o = s)
                }
            } else o = e.apply(this, i)
            return (r = i), o
        }
    }
    function Yt(e, t, n) {
        var r,
            o,
            i = this
        return function (a) {
            if (r) {
                if (!wt(r, a)) {
                    n && n(o)
                    var s = e.call(i, a)
                    ;(t && t(s, o)) || (o = s)
                }
            } else o = e.call(i, a)
            return (r = a), o
        }
    }
    var Zt = {
            week: 3,
            separator: 0,
            omitZeroMinute: 0,
            meridiem: 0,
            omitCommas: 0,
        },
        Xt = {
            timeZoneName: 7,
            era: 6,
            year: 5,
            month: 4,
            day: 2,
            weekday: 2,
            hour: 1,
            minute: 1,
            second: 1,
        },
        Kt = /\s*([ap])\.?m\.?/i,
        $t = /,/g,
        Jt = /\s+/g,
        Qt = /\u200e/g,
        en = /UTC|GMT/,
        tn = (function () {
            function e(e) {
                var t = {},
                    n = {},
                    r = 0
                for (var o in e)
                    o in Zt
                        ? ((n[o] = e[o]), (r = Math.max(Zt[o], r)))
                        : ((t[o] = e[o]), o in Xt && (r = Math.max(Xt[o], r)))
                ;(this.standardDateProps = t),
                    (this.extendedSettings = n),
                    (this.severity = r),
                    (this.buildFormattingFunc = qt(nn))
            }
            return (
                (e.prototype.format = function (e, t) {
                    return this.buildFormattingFunc(
                        this.standardDateProps,
                        this.extendedSettings,
                        t
                    )(e)
                }),
                (e.prototype.formatRange = function (e, t, n, r) {
                    var o = this.standardDateProps,
                        i = this.extendedSettings,
                        a = (function (e, t, n) {
                            if (n.getMarkerYear(e) !== n.getMarkerYear(t))
                                return 5
                            if (n.getMarkerMonth(e) !== n.getMarkerMonth(t))
                                return 4
                            if (n.getMarkerDay(e) !== n.getMarkerDay(t))
                                return 2
                            if (gt(e) !== gt(t)) return 1
                            return 0
                        })(e.marker, t.marker, n.calendarSystem)
                    if (!a) return this.format(e, n)
                    var s = a
                    !(s > 1) ||
                        ('numeric' !== o.year && '2-digit' !== o.year) ||
                        ('numeric' !== o.month && '2-digit' !== o.month) ||
                        ('numeric' !== o.day && '2-digit' !== o.day) ||
                        (s = 1)
                    var l = this.format(e, n),
                        u = this.format(t, n)
                    if (l === u) return l
                    var c = nn(
                            (function (e, t) {
                                var n = {}
                                for (var r in e)
                                    (!(r in Xt) || Xt[r] <= t) && (n[r] = e[r])
                                return n
                            })(o, s),
                            i,
                            n
                        ),
                        d = c(e),
                        p = c(t),
                        f = (function (e, t, n, r) {
                            var o = 0
                            for (; o < e.length; ) {
                                var i = e.indexOf(t, o)
                                if (-1 === i) break
                                var a = e.substr(0, i)
                                o = i + t.length
                                for (
                                    var s = e.substr(o), l = 0;
                                    l < n.length;

                                ) {
                                    var u = n.indexOf(r, l)
                                    if (-1 === u) break
                                    var c = n.substr(0, u)
                                    l = u + r.length
                                    var d = n.substr(l)
                                    if (a === c && s === d)
                                        return { before: a, after: s }
                                }
                            }
                            return null
                        })(l, d, u, p),
                        h = i.separator || r || n.defaultSeparator || ''
                    return f ? f.before + d + h + p + f.after : l + h + u
                }),
                (e.prototype.getLargestUnit = function () {
                    switch (this.severity) {
                        case 7:
                        case 6:
                        case 5:
                            return 'year'
                        case 4:
                            return 'month'
                        case 3:
                            return 'week'
                        case 2:
                            return 'day'
                        default:
                            return 'time'
                    }
                }),
                e
            )
        })()
    function nn(e, t, n) {
        var o = Object.keys(e).length
        return 1 === o && 'short' === e.timeZoneName
            ? function (e) {
                  return jt(e.timeZoneOffset)
              }
            : 0 === o && t.week
              ? function (e) {
                    return (function (e, t, n, r, o) {
                        var i = []
                        'long' === o
                            ? i.push(n)
                            : ('short' !== o && 'narrow' !== o) || i.push(t)
                        ;('long' !== o && 'short' !== o) || i.push(' ')
                        i.push(r.simpleNumberFormat.format(e)),
                            'rtl' === r.options.direction && i.reverse()
                        return i.join('')
                    })(
                        n.computeWeekNumber(e.marker),
                        n.weekText,
                        n.weekTextLong,
                        n.locale,
                        t.week
                    )
                }
              : (function (e, t, n) {
                    ;(e = r({}, e)),
                        (t = r({}, t)),
                        (function (e, t) {
                            e.timeZoneName &&
                                (e.hour || (e.hour = '2-digit'),
                                e.minute || (e.minute = '2-digit'))
                            'long' === e.timeZoneName &&
                                (e.timeZoneName = 'short')
                            t.omitZeroMinute &&
                                (e.second || e.millisecond) &&
                                delete t.omitZeroMinute
                        })(e, t),
                        (e.timeZone = 'UTC')
                    var o,
                        i = new Intl.DateTimeFormat(n.locale.codes, e)
                    if (t.omitZeroMinute) {
                        var a = r({}, e)
                        delete a.minute,
                            (o = new Intl.DateTimeFormat(n.locale.codes, a))
                    }
                    return function (r) {
                        var a = r.marker
                        return (function (e, t, n, r, o) {
                            ;(e = e.replace(Qt, '')),
                                'short' === n.timeZoneName &&
                                    (e = (function (e, t) {
                                        var n = !1
                                        ;(e = e.replace(en, function () {
                                            return (n = !0), t
                                        })),
                                            n || (e += ' ' + t)
                                        return e
                                    })(
                                        e,
                                        'UTC' === o.timeZone ||
                                            null == t.timeZoneOffset
                                            ? 'UTC'
                                            : jt(t.timeZoneOffset)
                                    ))
                            r.omitCommas && (e = e.replace($t, '').trim())
                            r.omitZeroMinute && (e = e.replace(':00', ''))
                            !1 === r.meridiem
                                ? (e = e.replace(Kt, '').trim())
                                : 'narrow' === r.meridiem
                                  ? (e = e.replace(Kt, function (e, t) {
                                        return t.toLocaleLowerCase()
                                    }))
                                  : 'short' === r.meridiem
                                    ? (e = e.replace(Kt, function (e, t) {
                                          return t.toLocaleLowerCase() + 'm'
                                      }))
                                    : 'lowercase' === r.meridiem &&
                                      (e = e.replace(Kt, function (e) {
                                          return e.toLocaleLowerCase()
                                      }))
                            return (e = (e = e.replace(Jt, ' ')).trim())
                        })(
                            (o && !a.getUTCMinutes() ? o : i).format(a),
                            r,
                            e,
                            t,
                            n
                        )
                    }
                })(e, t, n)
    }
    function rn(e, t) {
        var n = t.markerToArray(e.marker)
        return {
            marker: e.marker,
            timeZoneOffset: e.timeZoneOffset,
            array: n,
            year: n[0],
            month: n[1],
            day: n[2],
            hour: n[3],
            minute: n[4],
            second: n[5],
            millisecond: n[6],
        }
    }
    function on(e, t, n, r) {
        var o = rn(e, n.calendarSystem)
        return {
            date: o,
            start: o,
            end: t ? rn(t, n.calendarSystem) : null,
            timeZone: n.timeZone,
            localeCodes: n.locale.codes,
            defaultSeparator: r || n.defaultSeparator,
        }
    }
    var an = (function () {
            function e(e) {
                this.cmdStr = e
            }
            return (
                (e.prototype.format = function (e, t, n) {
                    return t.cmdFormatter(this.cmdStr, on(e, null, t, n))
                }),
                (e.prototype.formatRange = function (e, t, n, r) {
                    return n.cmdFormatter(this.cmdStr, on(e, t, n, r))
                }),
                e
            )
        })(),
        sn = (function () {
            function e(e) {
                this.func = e
            }
            return (
                (e.prototype.format = function (e, t, n) {
                    return this.func(on(e, null, t, n))
                }),
                (e.prototype.formatRange = function (e, t, n, r) {
                    return this.func(on(e, t, n, r))
                }),
                e
            )
        })()
    function ln(e) {
        return 'object' == typeof e && e
            ? new tn(e)
            : 'string' == typeof e
              ? new an(e)
              : 'function' == typeof e
                ? new sn(e)
                : null
    }
    var un = {
            navLinkDayClick: yn,
            navLinkWeekClick: yn,
            duration: Nt,
            bootstrapFontAwesome: yn,
            buttonIcons: yn,
            customButtons: yn,
            defaultAllDayEventDuration: Nt,
            defaultTimedEventDuration: Nt,
            nextDayThreshold: Nt,
            scrollTime: Nt,
            scrollTimeReset: Boolean,
            slotMinTime: Nt,
            slotMaxTime: Nt,
            dayPopoverFormat: ln,
            slotDuration: Nt,
            snapDuration: Nt,
            headerToolbar: yn,
            footerToolbar: yn,
            defaultRangeSeparator: String,
            titleRangeSeparator: String,
            forceEventDuration: Boolean,
            dayHeaders: Boolean,
            dayHeaderFormat: ln,
            dayHeaderClassNames: yn,
            dayHeaderContent: yn,
            dayHeaderDidMount: yn,
            dayHeaderWillUnmount: yn,
            dayCellClassNames: yn,
            dayCellContent: yn,
            dayCellDidMount: yn,
            dayCellWillUnmount: yn,
            initialView: String,
            aspectRatio: Number,
            weekends: Boolean,
            weekNumberCalculation: yn,
            weekNumbers: Boolean,
            weekNumberClassNames: yn,
            weekNumberContent: yn,
            weekNumberDidMount: yn,
            weekNumberWillUnmount: yn,
            editable: Boolean,
            viewClassNames: yn,
            viewDidMount: yn,
            viewWillUnmount: yn,
            nowIndicator: Boolean,
            nowIndicatorClassNames: yn,
            nowIndicatorContent: yn,
            nowIndicatorDidMount: yn,
            nowIndicatorWillUnmount: yn,
            showNonCurrentDates: Boolean,
            lazyFetching: Boolean,
            startParam: String,
            endParam: String,
            timeZoneParam: String,
            timeZone: String,
            locales: yn,
            locale: yn,
            themeSystem: String,
            dragRevertDuration: Number,
            dragScroll: Boolean,
            allDayMaintainDuration: Boolean,
            unselectAuto: Boolean,
            dropAccept: yn,
            eventOrder: je,
            eventOrderStrict: Boolean,
            handleWindowResize: Boolean,
            windowResizeDelay: Number,
            longPressDelay: Number,
            eventDragMinDistance: Number,
            expandRows: Boolean,
            height: yn,
            contentHeight: yn,
            direction: String,
            weekNumberFormat: ln,
            eventResizableFromStart: Boolean,
            displayEventTime: Boolean,
            displayEventEnd: Boolean,
            weekText: String,
            weekTextLong: String,
            progressiveEventRendering: Boolean,
            businessHours: yn,
            initialDate: yn,
            now: yn,
            eventDataTransform: yn,
            stickyHeaderDates: yn,
            stickyFooterScrollbar: yn,
            viewHeight: yn,
            defaultAllDay: Boolean,
            eventSourceFailure: yn,
            eventSourceSuccess: yn,
            eventDisplay: String,
            eventStartEditable: Boolean,
            eventDurationEditable: Boolean,
            eventOverlap: yn,
            eventConstraint: yn,
            eventAllow: yn,
            eventBackgroundColor: String,
            eventBorderColor: String,
            eventTextColor: String,
            eventColor: String,
            eventClassNames: yn,
            eventContent: yn,
            eventDidMount: yn,
            eventWillUnmount: yn,
            selectConstraint: yn,
            selectOverlap: yn,
            selectAllow: yn,
            droppable: Boolean,
            unselectCancel: String,
            slotLabelFormat: yn,
            slotLaneClassNames: yn,
            slotLaneContent: yn,
            slotLaneDidMount: yn,
            slotLaneWillUnmount: yn,
            slotLabelClassNames: yn,
            slotLabelContent: yn,
            slotLabelDidMount: yn,
            slotLabelWillUnmount: yn,
            dayMaxEvents: yn,
            dayMaxEventRows: yn,
            dayMinWidth: Number,
            slotLabelInterval: Nt,
            allDayText: String,
            allDayClassNames: yn,
            allDayContent: yn,
            allDayDidMount: yn,
            allDayWillUnmount: yn,
            slotMinWidth: Number,
            navLinks: Boolean,
            eventTimeFormat: ln,
            rerenderDelay: Number,
            moreLinkText: yn,
            moreLinkHint: yn,
            selectMinDistance: Number,
            selectable: Boolean,
            selectLongPressDelay: Number,
            eventLongPressDelay: Number,
            selectMirror: Boolean,
            eventMaxStack: Number,
            eventMinHeight: Number,
            eventMinWidth: Number,
            eventShortHeight: Number,
            slotEventOverlap: Boolean,
            plugins: yn,
            firstDay: Number,
            dayCount: Number,
            dateAlignment: String,
            dateIncrement: Nt,
            hiddenDays: yn,
            monthMode: Boolean,
            fixedWeekCount: Boolean,
            validRange: yn,
            visibleRange: yn,
            titleFormat: yn,
            eventInteractive: Boolean,
            noEventsText: String,
            viewHint: yn,
            navLinkHint: yn,
            closeHint: String,
            timeHint: String,
            eventHint: String,
            moreLinkClick: yn,
            moreLinkClassNames: yn,
            moreLinkContent: yn,
            moreLinkDidMount: yn,
            moreLinkWillUnmount: yn,
        },
        cn = {
            eventDisplay: 'auto',
            defaultRangeSeparator: ' - ',
            titleRangeSeparator: ' – ',
            defaultTimedEventDuration: '01:00:00',
            defaultAllDayEventDuration: { day: 1 },
            forceEventDuration: !1,
            nextDayThreshold: '00:00:00',
            dayHeaders: !0,
            initialView: '',
            aspectRatio: 1.35,
            headerToolbar: {
                start: 'title',
                center: '',
                end: 'today prev,next',
            },
            weekends: !0,
            weekNumbers: !1,
            weekNumberCalculation: 'local',
            editable: !1,
            nowIndicator: !1,
            scrollTime: '06:00:00',
            scrollTimeReset: !0,
            slotMinTime: '00:00:00',
            slotMaxTime: '24:00:00',
            showNonCurrentDates: !0,
            lazyFetching: !0,
            startParam: 'start',
            endParam: 'end',
            timeZoneParam: 'timeZone',
            timeZone: 'local',
            locales: [],
            locale: '',
            themeSystem: 'standard',
            dragRevertDuration: 500,
            dragScroll: !0,
            allDayMaintainDuration: !1,
            unselectAuto: !0,
            dropAccept: '*',
            eventOrder: 'start,-duration,allDay,title',
            dayPopoverFormat: {
                month: 'long',
                day: 'numeric',
                year: 'numeric',
            },
            handleWindowResize: !0,
            windowResizeDelay: 100,
            longPressDelay: 1e3,
            eventDragMinDistance: 5,
            expandRows: !1,
            navLinks: !1,
            selectable: !1,
            eventMinHeight: 15,
            eventMinWidth: 30,
            eventShortHeight: 30,
        },
        dn = {
            datesSet: yn,
            eventsSet: yn,
            eventAdd: yn,
            eventChange: yn,
            eventRemove: yn,
            windowResize: yn,
            eventClick: yn,
            eventMouseEnter: yn,
            eventMouseLeave: yn,
            select: yn,
            unselect: yn,
            loading: yn,
            _unmount: yn,
            _beforeprint: yn,
            _afterprint: yn,
            _noEventDrop: yn,
            _noEventResize: yn,
            _resize: yn,
            _scrollRequest: yn,
        },
        pn = {
            buttonText: yn,
            buttonHints: yn,
            views: yn,
            plugins: yn,
            initialEvents: yn,
            events: yn,
            eventSources: yn,
        },
        fn = {
            headerToolbar: hn,
            footerToolbar: hn,
            buttonText: hn,
            buttonHints: hn,
            buttonIcons: hn,
            dateIncrement: hn,
        }
    function hn(e, t) {
        return 'object' == typeof e && 'object' == typeof t && e && t
            ? wt(e, t)
            : e === t
    }
    var vn = {
        type: String,
        component: yn,
        buttonText: String,
        buttonTextKey: String,
        dateProfileGeneratorClass: yn,
        usesMinMaxTime: Boolean,
        classNames: yn,
        content: yn,
        didMount: yn,
        willUnmount: yn,
    }
    function gn(e) {
        return Et(e, fn)
    }
    function mn(e, t) {
        var n = {},
            r = {}
        for (var o in t) o in e && (n[o] = t[o](e[o]))
        for (var o in e) o in t || (r[o] = e[o])
        return { refined: n, extra: r }
    }
    function yn(e) {
        return e
    }
    function En(e, t, n, r) {
        for (
            var o = { defs: {}, instances: {} }, i = An(n), a = 0, s = e;
            a < s.length;
            a++
        ) {
            var l = Hn(s[a], t, n, r, i)
            l && Sn(l, o)
        }
        return o
    }
    function Sn(e, t) {
        return (
            void 0 === t && (t = { defs: {}, instances: {} }),
            (t.defs[e.def.defId] = e.def),
            e.instance && (t.instances[e.instance.instanceId] = e.instance),
            t
        )
    }
    function bn(e, t) {
        var n = e.instances[t]
        if (n) {
            var r = e.defs[n.defId],
                o = wn(e, function (e) {
                    return (
                        (t = r),
                        (n = e),
                        Boolean(t.groupId && t.groupId === n.groupId)
                    )
                    var t, n
                })
            return (o.defs[r.defId] = r), (o.instances[n.instanceId] = n), o
        }
        return { defs: {}, instances: {} }
    }
    function Dn() {
        return { defs: {}, instances: {} }
    }
    function Cn(e, t) {
        return {
            defs: r(r({}, e.defs), t.defs),
            instances: r(r({}, e.instances), t.instances),
        }
    }
    function wn(e, t) {
        var n = St(e.defs, t),
            r = St(e.instances, function (e) {
                return n[e.defId]
            })
        return { defs: n, instances: r }
    }
    function Rn(e) {
        return Array.isArray(e) ? e : 'string' == typeof e ? e.split(/\s+/) : []
    }
    var _n = {
            display: String,
            editable: Boolean,
            startEditable: Boolean,
            durationEditable: Boolean,
            constraint: yn,
            overlap: yn,
            allow: yn,
            className: Rn,
            classNames: Rn,
            color: String,
            backgroundColor: String,
            borderColor: String,
            textColor: String,
        },
        Tn = {
            display: null,
            startEditable: null,
            durationEditable: null,
            constraints: [],
            overlap: null,
            allows: [],
            backgroundColor: '',
            borderColor: '',
            textColor: '',
            classNames: [],
        }
    function kn(e, t) {
        var n = (function (e, t) {
            return Array.isArray(e)
                ? En(e, null, t, !0)
                : 'object' == typeof e && e
                  ? En([e], null, t, !0)
                  : null != e
                    ? String(e)
                    : null
        })(e.constraint, t)
        return {
            display: e.display || null,
            startEditable:
                null != e.startEditable ? e.startEditable : e.editable,
            durationEditable:
                null != e.durationEditable ? e.durationEditable : e.editable,
            constraints: null != n ? [n] : [],
            overlap: null != e.overlap ? e.overlap : null,
            allows: null != e.allow ? [e.allow] : [],
            backgroundColor: e.backgroundColor || e.color || '',
            borderColor: e.borderColor || e.color || '',
            textColor: e.textColor || '',
            classNames: (e.className || []).concat(e.classNames || []),
        }
    }
    function xn(e) {
        return e.reduce(Mn, Tn)
    }
    function Mn(e, t) {
        return {
            display: null != t.display ? t.display : e.display,
            startEditable:
                null != t.startEditable ? t.startEditable : e.startEditable,
            durationEditable:
                null != t.durationEditable
                    ? t.durationEditable
                    : e.durationEditable,
            constraints: e.constraints.concat(t.constraints),
            overlap: 'boolean' == typeof t.overlap ? t.overlap : e.overlap,
            allows: e.allows.concat(t.allows),
            backgroundColor: t.backgroundColor || e.backgroundColor,
            borderColor: t.borderColor || e.borderColor,
            textColor: t.textColor || e.textColor,
            classNames: e.classNames.concat(t.classNames),
        }
    }
    var In = {
            id: String,
            groupId: String,
            title: String,
            url: String,
            interactive: Boolean,
        },
        Pn = { start: yn, end: yn, date: yn, allDay: Boolean },
        Nn = r(r(r({}, In), Pn), { extendedProps: yn })
    function Hn(e, t, n, r, o) {
        void 0 === o && (o = An(n))
        var i = On(e, n, o),
            a = i.refined,
            s = i.extra,
            l = (function (e, t) {
                var n = null
                e && (n = e.defaultAllDay)
                null == n && (n = t.options.defaultAllDay)
                return n
            })(t, n),
            u = (function (e, t, n, r) {
                for (var o = 0; o < r.length; o += 1) {
                    var i = r[o].parse(e, n)
                    if (i) {
                        var a = e.allDay
                        return (
                            null == a &&
                                null == (a = t) &&
                                null == (a = i.allDayGuess) &&
                                (a = !1),
                            {
                                allDay: a,
                                duration: i.duration,
                                typeData: i.typeData,
                                typeId: o,
                            }
                        )
                    }
                }
                return null
            })(a, l, n.dateEnv, n.pluginHooks.recurringTypes)
        if (u)
            return (
                ((c = Ln(
                    a,
                    s,
                    t ? t.sourceId : '',
                    u.allDay,
                    Boolean(u.duration),
                    n
                )).recurringDef = {
                    typeId: u.typeId,
                    typeData: u.typeData,
                    duration: u.duration,
                }),
                { def: c, instance: null }
            )
        var c,
            d = (function (e, t, n, r) {
                var o,
                    i,
                    a = e.allDay,
                    s = null,
                    l = !1,
                    u = null,
                    c = null != e.start ? e.start : e.date
                if ((o = n.dateEnv.createMarkerMeta(c))) s = o.marker
                else if (!r) return null
                null != e.end && (i = n.dateEnv.createMarkerMeta(e.end))
                null == a &&
                    (a =
                        null != t
                            ? t
                            : (!o || o.isTimeUnspecified) &&
                              (!i || i.isTimeUnspecified))
                a && s && (s = lt(s))
                i &&
                    ((u = i.marker),
                    a && (u = lt(u)),
                    s && u <= s && (u = null))
                u
                    ? (l = !0)
                    : r ||
                      ((l = n.options.forceEventDuration || !1),
                      (u = n.dateEnv.add(
                          s,
                          a
                              ? n.options.defaultAllDayEventDuration
                              : n.options.defaultTimedEventDuration
                      )))
                return {
                    allDay: a,
                    hasEnd: l,
                    range: { start: s, end: u },
                    forcedStartTzo: o ? o.forcedTzo : null,
                    forcedEndTzo: i ? i.forcedTzo : null,
                }
            })(a, l, n, r)
        return d
            ? {
                  def: (c = Ln(
                      a,
                      s,
                      t ? t.sourceId : '',
                      d.allDay,
                      d.hasEnd,
                      n
                  )),
                  instance: mt(
                      c.defId,
                      d.range,
                      d.forcedStartTzo,
                      d.forcedEndTzo
                  ),
              }
            : null
    }
    function On(e, t, n) {
        return void 0 === n && (n = An(t)), mn(e, n)
    }
    function An(e) {
        return r(r(r({}, _n), Nn), e.pluginHooks.eventRefiners)
    }
    function Ln(e, t, n, o, i, a) {
        for (
            var s = {
                    title: e.title || '',
                    groupId: e.groupId || '',
                    publicId: e.id || '',
                    url: e.url || '',
                    recurringDef: null,
                    defId: Le(),
                    sourceId: n,
                    allDay: o,
                    hasEnd: i,
                    interactive: e.interactive,
                    ui: kn(e, a),
                    extendedProps: r(r({}, e.extendedProps || {}), t),
                },
                l = 0,
                u = a.pluginHooks.eventDefMemberAdders;
            l < u.length;
            l++
        ) {
            var c = u[l]
            r(s, c(e))
        }
        return Object.freeze(s.ui.classNames), Object.freeze(s.extendedProps), s
    }
    function Un(e) {
        var t = Math.floor(ot(e.start, e.end)) || 1,
            n = lt(e.start)
        return { start: n, end: tt(n, t) }
    }
    function Wn(e, t) {
        void 0 === t && (t = Nt(0))
        var n = null,
            r = null
        if (e.end) {
            r = lt(e.end)
            var o = e.end.valueOf() - r.valueOf()
            o && o >= Ut(t) && (r = tt(r, 1))
        }
        return (
            e.start && ((n = lt(e.start)), r && r <= n && (r = tt(n, 1))),
            { start: n, end: r }
        )
    }
    function Vn(e) {
        var t = Wn(e)
        return ot(t.start, t.end) > 1
    }
    function Fn(e, t, n, r) {
        return 'year' === r
            ? Nt(n.diffWholeYears(e, t), 'year')
            : 'month' === r
              ? Nt(n.diffWholeMonths(e, t), 'month')
              : it(e, t)
    }
    function Bn(e, t) {
        var n,
            r,
            o = [],
            i = t.start
        for (e.sort(zn), n = 0; n < e.length; n += 1)
            (r = e[n]).start > i && o.push({ start: i, end: r.start }),
                r.end > i && (i = r.end)
        return i < t.end && o.push({ start: i, end: t.end }), o
    }
    function zn(e, t) {
        return e.start.valueOf() - t.start.valueOf()
    }
    function jn(e, t) {
        var n = e.start,
            r = e.end,
            o = null
        return (
            null !== t.start &&
                (n =
                    null === n
                        ? t.start
                        : new Date(Math.max(n.valueOf(), t.start.valueOf()))),
            null != t.end &&
                (r =
                    null === r
                        ? t.end
                        : new Date(Math.min(r.valueOf(), t.end.valueOf()))),
            (null === n || null === r || n < r) && (o = { start: n, end: r }),
            o
        )
    }
    function Gn(e, t) {
        return (
            (null === e.start ? null : e.start.valueOf()) ===
                (null === t.start ? null : t.start.valueOf()) &&
            (null === e.end ? null : e.end.valueOf()) ===
                (null === t.end ? null : t.end.valueOf())
        )
    }
    function qn(e, t) {
        return (
            (null === e.end || null === t.start || e.end > t.start) &&
            (null === e.start || null === t.end || e.start < t.end)
        )
    }
    function Yn(e, t) {
        return (
            (null === e.start || (null !== t.start && t.start >= e.start)) &&
            (null === e.end || (null !== t.end && t.end <= e.end))
        )
    }
    function Zn(e, t) {
        return (
            (null === e.start || t >= e.start) && (null === e.end || t < e.end)
        )
    }
    function Xn(e, t, n, r) {
        var o = {},
            i = {},
            a = {},
            s = [],
            l = [],
            u = Qn(e.defs, t)
        for (var c in e.defs) {
            'inverse-background' === (f = u[(S = e.defs[c]).defId]).display &&
                (S.groupId
                    ? ((o[S.groupId] = []), a[S.groupId] || (a[S.groupId] = S))
                    : (i[c] = []))
        }
        for (var d in e.instances) {
            var p = e.instances[d],
                f = u[(S = e.defs[p.defId]).defId],
                h = p.range,
                v = !S.allDay && r ? Wn(h, r) : h,
                g = jn(v, n)
            g &&
                ('inverse-background' === f.display
                    ? S.groupId
                        ? o[S.groupId].push(g)
                        : i[p.defId].push(g)
                    : 'none' !== f.display &&
                      ('background' === f.display ? s : l).push({
                          def: S,
                          ui: f,
                          instance: p,
                          range: g,
                          isStart:
                              v.start &&
                              v.start.valueOf() === g.start.valueOf(),
                          isEnd: v.end && v.end.valueOf() === g.end.valueOf(),
                      }))
        }
        for (var m in o)
            for (var y = 0, E = Bn(o[m], n); y < E.length; y++) {
                var S,
                    b = E[y]
                f = u[(S = a[m]).defId]
                s.push({
                    def: S,
                    ui: f,
                    instance: null,
                    range: b,
                    isStart: !1,
                    isEnd: !1,
                })
            }
        for (var c in i)
            for (var D = 0, C = Bn(i[c], n); D < C.length; D++) {
                b = C[D]
                s.push({
                    def: e.defs[c],
                    ui: u[c],
                    instance: null,
                    range: b,
                    isStart: !1,
                    isEnd: !1,
                })
            }
        return { bg: s, fg: l }
    }
    function Kn(e) {
        return (
            'background' === e.ui.display ||
            'inverse-background' === e.ui.display
        )
    }
    function $n(e, t) {
        e.fcSeg = t
    }
    function Jn(e) {
        return e.fcSeg || e.parentNode.fcSeg || null
    }
    function Qn(e, t) {
        return bt(e, function (e) {
            return er(e, t)
        })
    }
    function er(e, t) {
        var n = []
        return (
            t[''] && n.push(t['']),
            t[e.defId] && n.push(t[e.defId]),
            n.push(e.ui),
            xn(n)
        )
    }
    function tr(e, t) {
        var n = e.map(nr)
        return (
            n.sort(function (e, n) {
                return Ge(e, n, t)
            }),
            n.map(function (e) {
                return e._seg
            })
        )
    }
    function nr(e) {
        var t = e.eventRange,
            n = t.def,
            o = t.instance ? t.instance.range : t.range,
            i = o.start ? o.start.valueOf() : 0,
            a = o.end ? o.end.valueOf() : 0
        return r(r(r({}, n.extendedProps), n), {
            id: n.publicId,
            start: i,
            end: a,
            duration: a - i,
            allDay: Number(n.allDay),
            _seg: e,
        })
    }
    function rr(e, t) {
        for (
            var n = t.pluginHooks.isDraggableTransformers,
                r = e.eventRange,
                o = r.def,
                i = r.ui,
                a = i.startEditable,
                s = 0,
                l = n;
            s < l.length;
            s++
        ) {
            a = (0, l[s])(a, o, i, t)
        }
        return a
    }
    function or(e, t) {
        return (
            e.isStart &&
            e.eventRange.ui.durationEditable &&
            t.options.eventResizableFromStart
        )
    }
    function ir(e, t) {
        return e.isEnd && e.eventRange.ui.durationEditable
    }
    function ar(e, t, n, r, o, i, a) {
        var s = n.dateEnv,
            l = n.options,
            u = l.displayEventTime,
            c = l.displayEventEnd,
            d = e.eventRange.def,
            p = e.eventRange.instance
        null == u && (u = !1 !== r), null == c && (c = !1 !== o)
        var f = p.range.start,
            h = p.range.end,
            v = i || e.start || e.eventRange.range.start,
            g = a || e.end || e.eventRange.range.end,
            m = lt(f).valueOf() === lt(v).valueOf(),
            y = lt(nt(h, -1)).valueOf() === lt(nt(g, -1)).valueOf()
        return u && !d.allDay && (m || y)
            ? ((v = m ? f : v),
              (g = y ? h : g),
              c && d.hasEnd
                  ? s.formatRange(v, g, t, {
                        forcedStartTzo: i ? null : p.forcedStartTzo,
                        forcedEndTzo: a ? null : p.forcedEndTzo,
                    })
                  : s.format(v, t, { forcedTzo: i ? null : p.forcedStartTzo }))
            : ''
    }
    function sr(e, t, n) {
        var r = e.eventRange.range
        return {
            isPast: r.end < (n || t.start),
            isFuture: r.start >= (n || t.end),
            isToday: t && Zn(t, r.start),
        }
    }
    function lr(e) {
        var t = ['fc-event']
        return (
            e.isMirror && t.push('fc-event-mirror'),
            e.isDraggable && t.push('fc-event-draggable'),
            (e.isStartResizable || e.isEndResizable) &&
                t.push('fc-event-resizable'),
            e.isDragging && t.push('fc-event-dragging'),
            e.isResizing && t.push('fc-event-resizing'),
            e.isSelected && t.push('fc-event-selected'),
            e.isStart && t.push('fc-event-start'),
            e.isEnd && t.push('fc-event-end'),
            e.isPast && t.push('fc-event-past'),
            e.isToday && t.push('fc-event-today'),
            e.isFuture && t.push('fc-event-future'),
            t
        )
    }
    function ur(e) {
        return e.instance
            ? e.instance.instanceId
            : e.def.defId + ':' + e.range.start.toISOString()
    }
    function cr(e, t) {
        var n = e.eventRange,
            r = n.def,
            o = n.instance,
            i = r.url
        if (i) return { href: i }
        var a = t.emitter,
            s = t.options.eventInteractive
        return (
            null == s &&
                null == (s = r.interactive) &&
                (s = Boolean(a.hasHandlers('eventClick'))),
            s
                ? Oe(function (e) {
                      a.trigger('eventClick', {
                          el: e.target,
                          event: new xr(t, r, o),
                          jsEvent: e,
                          view: t.viewApi,
                      })
                  })
                : {}
        )
    }
    var dr = { start: yn, end: yn, allDay: Boolean }
    function pr(e, t, n) {
        var o = (function (e, t) {
                var n = mn(e, dr),
                    o = n.refined,
                    i = n.extra,
                    a = o.start ? t.createMarkerMeta(o.start) : null,
                    s = o.end ? t.createMarkerMeta(o.end) : null,
                    l = o.allDay
                null == l &&
                    (l =
                        a && a.isTimeUnspecified && (!s || s.isTimeUnspecified))
                return r(
                    {
                        range: {
                            start: a ? a.marker : null,
                            end: s ? s.marker : null,
                        },
                        allDay: l,
                    },
                    i
                )
            })(e, t),
            i = o.range
        if (!i.start) return null
        if (!i.end) {
            if (null == n) return null
            i.end = t.add(i.start, n)
        }
        return o
    }
    function fr(e, t) {
        return (
            Gn(e.range, t.range) &&
            e.allDay === t.allDay &&
            (function (e, t) {
                for (var n in t)
                    if ('range' !== n && 'allDay' !== n && e[n] !== t[n])
                        return !1
                for (var n in e) if (!(n in t)) return !1
                return !0
            })(e, t)
        )
    }
    function hr(e, t, n) {
        return r(r({}, vr(e, t, n)), { timeZone: t.timeZone })
    }
    function vr(e, t, n) {
        return {
            start: t.toDate(e.start),
            end: t.toDate(e.end),
            startStr: t.formatIso(e.start, { omitTime: n }),
            endStr: t.formatIso(e.end, { omitTime: n }),
        }
    }
    function gr(e, t, n) {
        var r = On({ editable: !1 }, n),
            o = Ln(r.refined, r.extra, '', e.allDay, !0, n)
        return {
            def: o,
            ui: er(o, t),
            instance: mt(o.defId, e.range),
            range: e.range,
            isStart: !0,
            isEnd: !0,
        }
    }
    function mr(e, t, n) {
        n.emitter.trigger(
            'select',
            r(r({}, yr(e, n)), {
                jsEvent: t ? t.origEvent : null,
                view: n.viewApi || n.calendarApi.view,
            })
        )
    }
    function yr(e, t) {
        for (
            var n, o, i = {}, a = 0, s = t.pluginHooks.dateSpanTransforms;
            a < s.length;
            a++
        ) {
            var l = s[a]
            r(i, l(e, t))
        }
        return (
            r(
                i,
                ((n = e),
                (o = t.dateEnv),
                r(r({}, vr(n.range, o, n.allDay)), { allDay: n.allDay }))
            ),
            i
        )
    }
    function Er(e, t, n) {
        var r = n.dateEnv,
            o = n.options,
            i = t
        return (
            e
                ? ((i = lt(i)), (i = r.add(i, o.defaultAllDayEventDuration)))
                : (i = r.add(i, o.defaultTimedEventDuration)),
            i
        )
    }
    function Sr(e, t, n, r) {
        var o = Qn(e.defs, t),
            i = { defs: {}, instances: {} }
        for (var a in e.defs) {
            var s = e.defs[a]
            i.defs[a] = br(s, o[a], n, r)
        }
        for (var l in e.instances) {
            var u = e.instances[l]
            s = i.defs[u.defId]
            i.instances[l] = Dr(u, s, o[u.defId], n, r)
        }
        return i
    }
    function br(e, t, n, o) {
        var i = n.standardProps || {}
        null == i.hasEnd &&
            t.durationEditable &&
            (n.startDelta || n.endDelta) &&
            (i.hasEnd = !0)
        var a = r(r(r({}, e), i), { ui: r(r({}, e.ui), i.ui) })
        n.extendedProps &&
            (a.extendedProps = r(r({}, a.extendedProps), n.extendedProps))
        for (
            var s = 0, l = o.pluginHooks.eventDefMutationAppliers;
            s < l.length;
            s++
        ) {
            ;(0, l[s])(a, n, o)
        }
        return !a.hasEnd && o.options.forceEventDuration && (a.hasEnd = !0), a
    }
    function Dr(e, t, n, o, i) {
        var a = i.dateEnv,
            s = o.standardProps && !0 === o.standardProps.allDay,
            l = o.standardProps && !1 === o.standardProps.hasEnd,
            u = r({}, e)
        return (
            s && (u.range = Un(u.range)),
            o.datesDelta &&
                n.startEditable &&
                (u.range = {
                    start: a.add(u.range.start, o.datesDelta),
                    end: a.add(u.range.end, o.datesDelta),
                }),
            o.startDelta &&
                n.durationEditable &&
                (u.range = {
                    start: a.add(u.range.start, o.startDelta),
                    end: u.range.end,
                }),
            o.endDelta &&
                n.durationEditable &&
                (u.range = {
                    start: u.range.start,
                    end: a.add(u.range.end, o.endDelta),
                }),
            l &&
                (u.range = {
                    start: u.range.start,
                    end: Er(t.allDay, u.range.start, i),
                }),
            t.allDay &&
                (u.range = { start: lt(u.range.start), end: lt(u.range.end) }),
            u.range.end < u.range.start &&
                (u.range.end = Er(t.allDay, u.range.start, i)),
            u
        )
    }
    var Cr = (function () {
            function e(e, t, n) {
                ;(this.type = e), (this.getCurrentData = t), (this.dateEnv = n)
            }
            return (
                Object.defineProperty(e.prototype, 'calendar', {
                    get: function () {
                        return this.getCurrentData().calendarApi
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'title', {
                    get: function () {
                        return this.getCurrentData().viewTitle
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'activeStart', {
                    get: function () {
                        return this.dateEnv.toDate(
                            this.getCurrentData().dateProfile.activeRange.start
                        )
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'activeEnd', {
                    get: function () {
                        return this.dateEnv.toDate(
                            this.getCurrentData().dateProfile.activeRange.end
                        )
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'currentStart', {
                    get: function () {
                        return this.dateEnv.toDate(
                            this.getCurrentData().dateProfile.currentRange.start
                        )
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'currentEnd', {
                    get: function () {
                        return this.dateEnv.toDate(
                            this.getCurrentData().dateProfile.currentRange.end
                        )
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                (e.prototype.getOption = function (e) {
                    return this.getCurrentData().options[e]
                }),
                e
            )
        })(),
        wr = {
            id: String,
            defaultAllDay: Boolean,
            url: String,
            format: String,
            events: yn,
            eventDataTransform: yn,
            success: yn,
            failure: yn,
        }
    function Rr(e, t, n) {
        var r
        if (
            (void 0 === n && (n = _r(t)),
            'string' == typeof e
                ? (r = { url: e })
                : 'function' == typeof e || Array.isArray(e)
                  ? (r = { events: e })
                  : 'object' == typeof e && e && (r = e),
            r)
        ) {
            var o = mn(r, n),
                i = o.refined,
                a = o.extra,
                s = (function (e, t) {
                    for (
                        var n = t.pluginHooks.eventSourceDefs, r = n.length - 1;
                        r >= 0;
                        r -= 1
                    ) {
                        var o = n[r].parseMeta(e)
                        if (o) return { sourceDefId: r, meta: o }
                    }
                    return null
                })(i, t)
            if (s)
                return {
                    _raw: e,
                    isFetching: !1,
                    latestFetchId: '',
                    fetchRange: null,
                    defaultAllDay: i.defaultAllDay,
                    eventDataTransform: i.eventDataTransform,
                    success: i.success,
                    failure: i.failure,
                    publicId: i.id || '',
                    sourceId: Le(),
                    sourceDefId: s.sourceDefId,
                    meta: s.meta,
                    ui: kn(i, t),
                    extendedProps: a,
                }
        }
        return null
    }
    function _r(e) {
        return r(r(r({}, _n), wr), e.pluginHooks.eventSourceRefiners)
    }
    function Tr(e, t) {
        return (
            'function' == typeof e && (e = e()),
            null == e ? t.createNowMarker() : t.createMarker(e)
        )
    }
    var kr = (function () {
            function e() {}
            return (
                (e.prototype.getCurrentData = function () {
                    return this.currentDataManager.getCurrentData()
                }),
                (e.prototype.dispatch = function (e) {
                    return this.currentDataManager.dispatch(e)
                }),
                Object.defineProperty(e.prototype, 'view', {
                    get: function () {
                        return this.getCurrentData().viewApi
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                (e.prototype.batchRendering = function (e) {
                    e()
                }),
                (e.prototype.updateSize = function () {
                    this.trigger('_resize', !0)
                }),
                (e.prototype.setOption = function (e, t) {
                    this.dispatch({
                        type: 'SET_OPTION',
                        optionName: e,
                        rawOptionValue: t,
                    })
                }),
                (e.prototype.getOption = function (e) {
                    return this.currentDataManager.currentCalendarOptionsInput[
                        e
                    ]
                }),
                (e.prototype.getAvailableLocaleCodes = function () {
                    return Object.keys(
                        this.getCurrentData().availableRawLocales
                    )
                }),
                (e.prototype.on = function (e, t) {
                    var n = this.currentDataManager
                    n.currentCalendarOptionsRefiners[e]
                        ? n.emitter.on(e, t)
                        : console.warn("Unknown listener name '" + e + "'")
                }),
                (e.prototype.off = function (e, t) {
                    this.currentDataManager.emitter.off(e, t)
                }),
                (e.prototype.trigger = function (e) {
                    for (var t, n = [], r = 1; r < arguments.length; r++)
                        n[r - 1] = arguments[r]
                    ;(t = this.currentDataManager.emitter).trigger.apply(
                        t,
                        o([e], n)
                    )
                }),
                (e.prototype.changeView = function (e, t) {
                    var n = this
                    this.batchRendering(function () {
                        if ((n.unselect(), t))
                            if (t.start && t.end)
                                n.dispatch({
                                    type: 'CHANGE_VIEW_TYPE',
                                    viewType: e,
                                }),
                                    n.dispatch({
                                        type: 'SET_OPTION',
                                        optionName: 'visibleRange',
                                        rawOptionValue: t,
                                    })
                            else {
                                var r = n.getCurrentData().dateEnv
                                n.dispatch({
                                    type: 'CHANGE_VIEW_TYPE',
                                    viewType: e,
                                    dateMarker: r.createMarker(t),
                                })
                            }
                        else
                            n.dispatch({
                                type: 'CHANGE_VIEW_TYPE',
                                viewType: e,
                            })
                    })
                }),
                (e.prototype.zoomTo = function (e, t) {
                    var n
                    ;(t = t || 'day'),
                        (n =
                            this.getCurrentData().viewSpecs[t] ||
                            this.getUnitViewSpec(t)),
                        this.unselect(),
                        n
                            ? this.dispatch({
                                  type: 'CHANGE_VIEW_TYPE',
                                  viewType: n.type,
                                  dateMarker: e,
                              })
                            : this.dispatch({
                                  type: 'CHANGE_DATE',
                                  dateMarker: e,
                              })
                }),
                (e.prototype.getUnitViewSpec = function (e) {
                    var t,
                        n,
                        r = this.getCurrentData(),
                        o = r.viewSpecs,
                        i = r.toolbarConfig,
                        a = [].concat(
                            i.header ? i.header.viewsWithButtons : [],
                            i.footer ? i.footer.viewsWithButtons : []
                        )
                    for (var s in o) a.push(s)
                    for (t = 0; t < a.length; t += 1)
                        if ((n = o[a[t]]) && n.singleUnit === e) return n
                    return null
                }),
                (e.prototype.prev = function () {
                    this.unselect(), this.dispatch({ type: 'PREV' })
                }),
                (e.prototype.next = function () {
                    this.unselect(), this.dispatch({ type: 'NEXT' })
                }),
                (e.prototype.prevYear = function () {
                    var e = this.getCurrentData()
                    this.unselect(),
                        this.dispatch({
                            type: 'CHANGE_DATE',
                            dateMarker: e.dateEnv.addYears(e.currentDate, -1),
                        })
                }),
                (e.prototype.nextYear = function () {
                    var e = this.getCurrentData()
                    this.unselect(),
                        this.dispatch({
                            type: 'CHANGE_DATE',
                            dateMarker: e.dateEnv.addYears(e.currentDate, 1),
                        })
                }),
                (e.prototype.today = function () {
                    var e = this.getCurrentData()
                    this.unselect(),
                        this.dispatch({
                            type: 'CHANGE_DATE',
                            dateMarker: Tr(e.calendarOptions.now, e.dateEnv),
                        })
                }),
                (e.prototype.gotoDate = function (e) {
                    var t = this.getCurrentData()
                    this.unselect(),
                        this.dispatch({
                            type: 'CHANGE_DATE',
                            dateMarker: t.dateEnv.createMarker(e),
                        })
                }),
                (e.prototype.incrementDate = function (e) {
                    var t = this.getCurrentData(),
                        n = Nt(e)
                    n &&
                        (this.unselect(),
                        this.dispatch({
                            type: 'CHANGE_DATE',
                            dateMarker: t.dateEnv.add(t.currentDate, n),
                        }))
                }),
                (e.prototype.getDate = function () {
                    var e = this.getCurrentData()
                    return e.dateEnv.toDate(e.currentDate)
                }),
                (e.prototype.formatDate = function (e, t) {
                    var n = this.getCurrentData().dateEnv
                    return n.format(n.createMarker(e), ln(t))
                }),
                (e.prototype.formatRange = function (e, t, n) {
                    var r = this.getCurrentData().dateEnv
                    return r.formatRange(
                        r.createMarker(e),
                        r.createMarker(t),
                        ln(n),
                        n
                    )
                }),
                (e.prototype.formatIso = function (e, t) {
                    var n = this.getCurrentData().dateEnv
                    return n.formatIso(n.createMarker(e), { omitTime: t })
                }),
                (e.prototype.select = function (e, t) {
                    var n
                    n =
                        null == t
                            ? null != e.start
                                ? e
                                : { start: e, end: null }
                            : { start: e, end: t }
                    var r = this.getCurrentData(),
                        o = pr(n, r.dateEnv, Nt({ days: 1 }))
                    o &&
                        (this.dispatch({ type: 'SELECT_DATES', selection: o }),
                        mr(o, null, r))
                }),
                (e.prototype.unselect = function (e) {
                    var t = this.getCurrentData()
                    t.dateSelection &&
                        (this.dispatch({ type: 'UNSELECT_DATES' }),
                        (function (e, t) {
                            t.emitter.trigger('unselect', {
                                jsEvent: e ? e.origEvent : null,
                                view: t.viewApi || t.calendarApi.view,
                            })
                        })(e, t))
                }),
                (e.prototype.addEvent = function (e, t) {
                    if (e instanceof xr) {
                        var n = e._def,
                            r = e._instance
                        return (
                            this.getCurrentData().eventStore.defs[n.defId] ||
                                (this.dispatch({
                                    type: 'ADD_EVENTS',
                                    eventStore: Sn({ def: n, instance: r }),
                                }),
                                this.triggerEventAdd(e)),
                            e
                        )
                    }
                    var o,
                        i = this.getCurrentData()
                    if (t instanceof ye) o = t.internalEventSource
                    else if ('boolean' == typeof t)
                        t && (o = Ct(i.eventSources)[0])
                    else if (null != t) {
                        var a = this.getEventSourceById(t)
                        if (!a)
                            return (
                                console.warn(
                                    'Could not find an event source with ID "' +
                                        t +
                                        '"'
                                ),
                                null
                            )
                        o = a.internalEventSource
                    }
                    var s = Hn(e, o, i, !1)
                    if (s) {
                        var l = new xr(
                            i,
                            s.def,
                            s.def.recurringDef ? null : s.instance
                        )
                        return (
                            this.dispatch({
                                type: 'ADD_EVENTS',
                                eventStore: Sn(s),
                            }),
                            this.triggerEventAdd(l),
                            l
                        )
                    }
                    return null
                }),
                (e.prototype.triggerEventAdd = function (e) {
                    var t = this
                    this.getCurrentData().emitter.trigger('eventAdd', {
                        event: e,
                        relatedEvents: [],
                        revert: function () {
                            t.dispatch({
                                type: 'REMOVE_EVENTS',
                                eventStore: Mr(e),
                            })
                        },
                    })
                }),
                (e.prototype.getEventById = function (e) {
                    var t = this.getCurrentData(),
                        n = t.eventStore,
                        r = n.defs,
                        o = n.instances
                    for (var i in ((e = String(e)), r)) {
                        var a = r[i]
                        if (a.publicId === e) {
                            if (a.recurringDef) return new xr(t, a, null)
                            for (var s in o) {
                                var l = o[s]
                                if (l.defId === a.defId) return new xr(t, a, l)
                            }
                        }
                    }
                    return null
                }),
                (e.prototype.getEvents = function () {
                    var e = this.getCurrentData()
                    return Ir(e.eventStore, e)
                }),
                (e.prototype.removeAllEvents = function () {
                    this.dispatch({ type: 'REMOVE_ALL_EVENTS' })
                }),
                (e.prototype.getEventSources = function () {
                    var e = this.getCurrentData(),
                        t = e.eventSources,
                        n = []
                    for (var r in t) n.push(new ye(e, t[r]))
                    return n
                }),
                (e.prototype.getEventSourceById = function (e) {
                    var t = this.getCurrentData(),
                        n = t.eventSources
                    for (var r in ((e = String(e)), n))
                        if (n[r].publicId === e) return new ye(t, n[r])
                    return null
                }),
                (e.prototype.addEventSource = function (e) {
                    var t = this.getCurrentData()
                    if (e instanceof ye)
                        return (
                            t.eventSources[e.internalEventSource.sourceId] ||
                                this.dispatch({
                                    type: 'ADD_EVENT_SOURCES',
                                    sources: [e.internalEventSource],
                                }),
                            e
                        )
                    var n = Rr(e, t)
                    return n
                        ? (this.dispatch({
                              type: 'ADD_EVENT_SOURCES',
                              sources: [n],
                          }),
                          new ye(t, n))
                        : null
                }),
                (e.prototype.removeAllEventSources = function () {
                    this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' })
                }),
                (e.prototype.refetchEvents = function () {
                    this.dispatch({
                        type: 'FETCH_EVENT_SOURCES',
                        isRefetch: !0,
                    })
                }),
                (e.prototype.scrollToTime = function (e) {
                    var t = Nt(e)
                    t && this.trigger('_scrollRequest', { time: t })
                }),
                e
            )
        })(),
        xr = (function () {
            function e(e, t, n) {
                ;(this._context = e),
                    (this._def = t),
                    (this._instance = n || null)
            }
            return (
                (e.prototype.setProp = function (e, t) {
                    var n, r
                    if (e in Pn)
                        console.warn(
                            "Could not set date-related prop 'name'. Use one of the date-related methods instead."
                        )
                    else if ('id' === e)
                        (t = In[e](t)),
                            this.mutate({ standardProps: { publicId: t } })
                    else if (e in In)
                        (t = In[e](t)),
                            this.mutate({
                                standardProps: ((n = {}), (n[e] = t), n),
                            })
                    else if (e in _n) {
                        var o = _n[e](t)
                        'color' === e
                            ? (o = { backgroundColor: t, borderColor: t })
                            : 'editable' === e
                              ? (o = { startEditable: t, durationEditable: t })
                              : (((r = {})[e] = t), (o = r)),
                            this.mutate({ standardProps: { ui: o } })
                    } else
                        console.warn(
                            "Could not set prop '" +
                                e +
                                "'. Use setExtendedProp instead."
                        )
                }),
                (e.prototype.setExtendedProp = function (e, t) {
                    var n
                    this.mutate({ extendedProps: ((n = {}), (n[e] = t), n) })
                }),
                (e.prototype.setStart = function (e, t) {
                    void 0 === t && (t = {})
                    var n = this._context.dateEnv,
                        r = n.createMarker(e)
                    if (r && this._instance) {
                        var o = Fn(
                            this._instance.range.start,
                            r,
                            n,
                            t.granularity
                        )
                        t.maintainDuration
                            ? this.mutate({ datesDelta: o })
                            : this.mutate({ startDelta: o })
                    }
                }),
                (e.prototype.setEnd = function (e, t) {
                    void 0 === t && (t = {})
                    var n,
                        r = this._context.dateEnv
                    if (
                        (null == e || (n = r.createMarker(e))) &&
                        this._instance
                    )
                        if (n) {
                            var o = Fn(
                                this._instance.range.end,
                                n,
                                r,
                                t.granularity
                            )
                            this.mutate({ endDelta: o })
                        } else this.mutate({ standardProps: { hasEnd: !1 } })
                }),
                (e.prototype.setDates = function (e, t, n) {
                    void 0 === n && (n = {})
                    var r,
                        o,
                        i,
                        a = this._context.dateEnv,
                        s = { allDay: n.allDay },
                        l = a.createMarker(e)
                    if (
                        l &&
                        (null == t || (r = a.createMarker(t))) &&
                        this._instance
                    ) {
                        var u = this._instance.range
                        !0 === n.allDay && (u = Un(u))
                        var c = Fn(u.start, l, a, n.granularity)
                        if (r) {
                            var d = Fn(u.end, r, a, n.granularity)
                            ;(i = d),
                                (o = c).years === i.years &&
                                o.months === i.months &&
                                o.days === i.days &&
                                o.milliseconds === i.milliseconds
                                    ? this.mutate({
                                          datesDelta: c,
                                          standardProps: s,
                                      })
                                    : this.mutate({
                                          startDelta: c,
                                          endDelta: d,
                                          standardProps: s,
                                      })
                        } else
                            (s.hasEnd = !1),
                                this.mutate({ datesDelta: c, standardProps: s })
                    }
                }),
                (e.prototype.moveStart = function (e) {
                    var t = Nt(e)
                    t && this.mutate({ startDelta: t })
                }),
                (e.prototype.moveEnd = function (e) {
                    var t = Nt(e)
                    t && this.mutate({ endDelta: t })
                }),
                (e.prototype.moveDates = function (e) {
                    var t = Nt(e)
                    t && this.mutate({ datesDelta: t })
                }),
                (e.prototype.setAllDay = function (e, t) {
                    void 0 === t && (t = {})
                    var n = { allDay: e },
                        r = t.maintainDuration
                    null == r &&
                        (r = this._context.options.allDayMaintainDuration),
                        this._def.allDay !== e && (n.hasEnd = r),
                        this.mutate({ standardProps: n })
                }),
                (e.prototype.formatRange = function (e) {
                    var t = this._context.dateEnv,
                        n = this._instance,
                        r = ln(e)
                    return this._def.hasEnd
                        ? t.formatRange(n.range.start, n.range.end, r, {
                              forcedStartTzo: n.forcedStartTzo,
                              forcedEndTzo: n.forcedEndTzo,
                          })
                        : t.format(n.range.start, r, {
                              forcedTzo: n.forcedStartTzo,
                          })
                }),
                (e.prototype.mutate = function (t) {
                    var n = this._instance
                    if (n) {
                        var r = this._def,
                            o = this._context,
                            i = o.getCurrentData().eventStore,
                            a = bn(i, n.instanceId)
                        a = Sr(
                            a,
                            {
                                '': {
                                    display: '',
                                    startEditable: !0,
                                    durationEditable: !0,
                                    constraints: [],
                                    overlap: null,
                                    allows: [],
                                    backgroundColor: '',
                                    borderColor: '',
                                    textColor: '',
                                    classNames: [],
                                },
                            },
                            t,
                            o
                        )
                        var s = new e(o, r, n)
                        ;(this._def = a.defs[r.defId]),
                            (this._instance = a.instances[n.instanceId]),
                            o.dispatch({ type: 'MERGE_EVENTS', eventStore: a }),
                            o.emitter.trigger('eventChange', {
                                oldEvent: s,
                                event: this,
                                relatedEvents: Ir(a, o, n),
                                revert: function () {
                                    o.dispatch({
                                        type: 'RESET_EVENTS',
                                        eventStore: i,
                                    })
                                },
                            })
                    }
                }),
                (e.prototype.remove = function () {
                    var e = this._context,
                        t = Mr(this)
                    e.dispatch({ type: 'REMOVE_EVENTS', eventStore: t }),
                        e.emitter.trigger('eventRemove', {
                            event: this,
                            relatedEvents: [],
                            revert: function () {
                                e.dispatch({
                                    type: 'MERGE_EVENTS',
                                    eventStore: t,
                                })
                            },
                        })
                }),
                Object.defineProperty(e.prototype, 'source', {
                    get: function () {
                        var e = this._def.sourceId
                        return e
                            ? new ye(
                                  this._context,
                                  this._context.getCurrentData().eventSources[e]
                              )
                            : null
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'start', {
                    get: function () {
                        return this._instance
                            ? this._context.dateEnv.toDate(
                                  this._instance.range.start
                              )
                            : null
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'end', {
                    get: function () {
                        return this._instance && this._def.hasEnd
                            ? this._context.dateEnv.toDate(
                                  this._instance.range.end
                              )
                            : null
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'startStr', {
                    get: function () {
                        var e = this._instance
                        return e
                            ? this._context.dateEnv.formatIso(e.range.start, {
                                  omitTime: this._def.allDay,
                                  forcedTzo: e.forcedStartTzo,
                              })
                            : ''
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'endStr', {
                    get: function () {
                        var e = this._instance
                        return e && this._def.hasEnd
                            ? this._context.dateEnv.formatIso(e.range.end, {
                                  omitTime: this._def.allDay,
                                  forcedTzo: e.forcedEndTzo,
                              })
                            : ''
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'id', {
                    get: function () {
                        return this._def.publicId
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'groupId', {
                    get: function () {
                        return this._def.groupId
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'allDay', {
                    get: function () {
                        return this._def.allDay
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'title', {
                    get: function () {
                        return this._def.title
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'url', {
                    get: function () {
                        return this._def.url
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'display', {
                    get: function () {
                        return this._def.ui.display || 'auto'
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'startEditable', {
                    get: function () {
                        return this._def.ui.startEditable
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'durationEditable', {
                    get: function () {
                        return this._def.ui.durationEditable
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'constraint', {
                    get: function () {
                        return this._def.ui.constraints[0] || null
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'overlap', {
                    get: function () {
                        return this._def.ui.overlap
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'allow', {
                    get: function () {
                        return this._def.ui.allows[0] || null
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'backgroundColor', {
                    get: function () {
                        return this._def.ui.backgroundColor
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'borderColor', {
                    get: function () {
                        return this._def.ui.borderColor
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'textColor', {
                    get: function () {
                        return this._def.ui.textColor
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'classNames', {
                    get: function () {
                        return this._def.ui.classNames
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                Object.defineProperty(e.prototype, 'extendedProps', {
                    get: function () {
                        return this._def.extendedProps
                    },
                    enumerable: !1,
                    configurable: !0,
                }),
                (e.prototype.toPlainObject = function (e) {
                    void 0 === e && (e = {})
                    var t = this._def,
                        n = t.ui,
                        o = this.startStr,
                        i = this.endStr,
                        a = {}
                    return (
                        t.title && (a.title = t.title),
                        o && (a.start = o),
                        i && (a.end = i),
                        t.publicId && (a.id = t.publicId),
                        t.groupId && (a.groupId = t.groupId),
                        t.url && (a.url = t.url),
                        n.display &&
                            'auto' !== n.display &&
                            (a.display = n.display),
                        e.collapseColor &&
                        n.backgroundColor &&
                        n.backgroundColor === n.borderColor
                            ? (a.color = n.backgroundColor)
                            : (n.backgroundColor &&
                                  (a.backgroundColor = n.backgroundColor),
                              n.borderColor && (a.borderColor = n.borderColor)),
                        n.textColor && (a.textColor = n.textColor),
                        n.classNames.length && (a.classNames = n.classNames),
                        Object.keys(t.extendedProps).length &&
                            (e.collapseExtendedProps
                                ? r(a, t.extendedProps)
                                : (a.extendedProps = t.extendedProps)),
                        a
                    )
                }),
                (e.prototype.toJSON = function () {
                    return this.toPlainObject()
                }),
                e
            )
        })()
    function Mr(e) {
        var t,
            n,
            r = e._def,
            o = e._instance
        return {
            defs: ((t = {}), (t[r.defId] = r), t),
            instances: o ? ((n = {}), (n[o.instanceId] = o), n) : {},
        }
    }
    function Ir(e, t, n) {
        var r = e.defs,
            o = e.instances,
            i = [],
            a = n ? n.instanceId : ''
        for (var s in o) {
            var l = o[s],
                u = r[l.defId]
            l.instanceId !== a && i.push(new xr(t, u, l))
        }
        return i
    }
    var Pr = {}
    var Nr,
        Hr = (function () {
            function e() {}
            return (
                (e.prototype.getMarkerYear = function (e) {
                    return e.getUTCFullYear()
                }),
                (e.prototype.getMarkerMonth = function (e) {
                    return e.getUTCMonth()
                }),
                (e.prototype.getMarkerDay = function (e) {
                    return e.getUTCDate()
                }),
                (e.prototype.arrayToMarker = function (e) {
                    return ht(e)
                }),
                (e.prototype.markerToArray = function (e) {
                    return ft(e)
                }),
                e
            )
        })()
    ;(Nr = Hr), (Pr['gregory'] = Nr)
    var Or =
        /^\s*(\d{4})(-?(\d{2})(-?(\d{2})([T ](\d{2}):?(\d{2})(:?(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/
    function Ar(e) {
        var t = Or.exec(e)
        if (t) {
            var n = new Date(
                Date.UTC(
                    Number(t[1]),
                    t[3] ? Number(t[3]) - 1 : 0,
                    Number(t[5] || 1),
                    Number(t[7] || 0),
                    Number(t[8] || 0),
                    Number(t[10] || 0),
                    t[12] ? 1e3 * Number('0.' + t[12]) : 0
                )
            )
            if (vt(n)) {
                var r = null
                return (
                    t[13] &&
                        (r =
                            ('-' === t[15] ? -1 : 1) *
                            (60 * Number(t[16] || 0) + Number(t[18] || 0))),
                    { marker: n, isTimeUnspecified: !t[6], timeZoneOffset: r }
                )
            }
        }
        return null
    }
    var Lr = (function () {
            function e(e) {
                var t = (this.timeZone = e.timeZone),
                    n = 'local' !== t && 'UTC' !== t
                e.namedTimeZoneImpl &&
                    n &&
                    (this.namedTimeZoneImpl = new e.namedTimeZoneImpl(t)),
                    (this.canComputeOffset = Boolean(
                        !n || this.namedTimeZoneImpl
                    )),
                    (this.calendarSystem = (function (e) {
                        return new Pr[e]()
                    })(e.calendarSystem)),
                    (this.locale = e.locale),
                    (this.weekDow = e.locale.week.dow),
                    (this.weekDoy = e.locale.week.doy),
                    'ISO' === e.weekNumberCalculation &&
                        ((this.weekDow = 1), (this.weekDoy = 4)),
                    'number' == typeof e.firstDay &&
                        (this.weekDow = e.firstDay),
                    'function' == typeof e.weekNumberCalculation &&
                        (this.weekNumberFunc = e.weekNumberCalculation),
                    (this.weekText =
                        null != e.weekText
                            ? e.weekText
                            : e.locale.options.weekText),
                    (this.weekTextLong =
                        (null != e.weekTextLong
                            ? e.weekTextLong
                            : e.locale.options.weekTextLong) || this.weekText),
                    (this.cmdFormatter = e.cmdFormatter),
                    (this.defaultSeparator = e.defaultSeparator)
            }
            return (
                (e.prototype.createMarker = function (e) {
                    var t = this.createMarkerMeta(e)
                    return null === t ? null : t.marker
                }),
                (e.prototype.createNowMarker = function () {
                    return this.canComputeOffset
                        ? this.timestampToMarker(new Date().valueOf())
                        : ht(dt(new Date()))
                }),
                (e.prototype.createMarkerMeta = function (e) {
                    if ('string' == typeof e) return this.parse(e)
                    var t = null
                    return (
                        'number' == typeof e
                            ? (t = this.timestampToMarker(e))
                            : e instanceof Date
                              ? ((e = e.valueOf()),
                                isNaN(e) || (t = this.timestampToMarker(e)))
                              : Array.isArray(e) && (t = ht(e)),
                        null !== t && vt(t)
                            ? {
                                  marker: t,
                                  isTimeUnspecified: !1,
                                  forcedTzo: null,
                              }
                            : null
                    )
                }),
                (e.prototype.parse = function (e) {
                    var t = Ar(e)
                    if (null === t) return null
                    var n = t.marker,
                        r = null
                    return (
                        null !== t.timeZoneOffset &&
                            (this.canComputeOffset
                                ? (n = this.timestampToMarker(
                                      n.valueOf() - 60 * t.timeZoneOffset * 1e3
                                  ))
                                : (r = t.timeZoneOffset)),
                        {
                            marker: n,
                            isTimeUnspecified: t.isTimeUnspecified,
                            forcedTzo: r,
                        }
                    )
                }),
                (e.prototype.getYear = function (e) {
                    return this.calendarSystem.getMarkerYear(e)
                }),
                (e.prototype.getMonth = function (e) {
                    return this.calendarSystem.getMarkerMonth(e)
                }),
                (e.prototype.add = function (e, t) {
                    var n = this.calendarSystem.markerToArray(e)
                    return (
                        (n[0] += t.years),
                        (n[1] += t.months),
                        (n[2] += t.days),
                        (n[6] += t.milliseconds),
                        this.calendarSystem.arrayToMarker(n)
                    )
                }),
                (e.prototype.subtract = function (e, t) {
                    var n = this.calendarSystem.markerToArray(e)
                    return (
                        (n[0] -= t.years),
                        (n[1] -= t.months),
                        (n[2] -= t.days),
                        (n[6] -= t.milliseconds),
                        this.calendarSystem.arrayToMarker(n)
                    )
                }),
                (e.prototype.addYears = function (e, t) {
                    var n = this.calendarSystem.markerToArray(e)
                    return (n[0] += t), this.calendarSystem.arrayToMarker(n)
                }),
                (e.prototype.addMonths = function (e, t) {
                    var n = this.calendarSystem.markerToArray(e)
                    return (n[1] += t), this.calendarSystem.arrayToMarker(n)
                }),
                (e.prototype.diffWholeYears = function (e, t) {
                    var n = this.calendarSystem
                    return gt(e) === gt(t) &&
                        n.getMarkerDay(e) === n.getMarkerDay(t) &&
                        n.getMarkerMonth(e) === n.getMarkerMonth(t)
                        ? n.getMarkerYear(t) - n.getMarkerYear(e)
                        : null
                }),
                (e.prototype.diffWholeMonths = function (e, t) {
                    var n = this.calendarSystem
                    return gt(e) === gt(t) &&
                        n.getMarkerDay(e) === n.getMarkerDay(t)
                        ? n.getMarkerMonth(t) -
                              n.getMarkerMonth(e) +
                              12 * (n.getMarkerYear(t) - n.getMarkerYear(e))
                        : null
                }),
                (e.prototype.greatestWholeUnit = function (e, t) {
                    var n = this.diffWholeYears(e, t)
                    return null !== n
                        ? { unit: 'year', value: n }
                        : null !== (n = this.diffWholeMonths(e, t))
                          ? { unit: 'month', value: n }
                          : null !== (n = at(e, t))
                            ? { unit: 'week', value: n }
                            : null !== (n = st(e, t))
                              ? { unit: 'day', value: n }
                              : $e(
                                      (n = (function (e, t) {
                                          return (
                                              (t.valueOf() - e.valueOf()) / 36e5
                                          )
                                      })(e, t))
                                  )
                                ? { unit: 'hour', value: n }
                                : $e(
                                        (n = (function (e, t) {
                                            return (
                                                (t.valueOf() - e.valueOf()) /
                                                6e4
                                            )
                                        })(e, t))
                                    )
                                  ? { unit: 'minute', value: n }
                                  : $e(
                                          (n = (function (e, t) {
                                              return (
                                                  (t.valueOf() - e.valueOf()) /
                                                  1e3
                                              )
                                          })(e, t))
                                      )
                                    ? { unit: 'second', value: n }
                                    : {
                                          unit: 'millisecond',
                                          value: t.valueOf() - e.valueOf(),
                                      }
                }),
                (e.prototype.countDurationsBetween = function (e, t, n) {
                    var r
                    return n.years && null !== (r = this.diffWholeYears(e, t))
                        ? r / (Lt(n) / 365)
                        : n.months && null !== (r = this.diffWholeMonths(e, t))
                          ? r /
                            (function (e) {
                                return Lt(e) / 30
                            })(n)
                          : n.days && null !== (r = st(e, t))
                            ? r / Lt(n)
                            : (t.valueOf() - e.valueOf()) / Ut(n)
                }),
                (e.prototype.startOf = function (e, t) {
                    return 'year' === t
                        ? this.startOfYear(e)
                        : 'month' === t
                          ? this.startOfMonth(e)
                          : 'week' === t
                            ? this.startOfWeek(e)
                            : 'day' === t
                              ? lt(e)
                              : 'hour' === t
                                ? (function (e) {
                                      return ht([
                                          e.getUTCFullYear(),
                                          e.getUTCMonth(),
                                          e.getUTCDate(),
                                          e.getUTCHours(),
                                      ])
                                  })(e)
                                : 'minute' === t
                                  ? (function (e) {
                                        return ht([
                                            e.getUTCFullYear(),
                                            e.getUTCMonth(),
                                            e.getUTCDate(),
                                            e.getUTCHours(),
                                            e.getUTCMinutes(),
                                        ])
                                    })(e)
                                  : 'second' === t
                                    ? (function (e) {
                                          return ht([
                                              e.getUTCFullYear(),
                                              e.getUTCMonth(),
                                              e.getUTCDate(),
                                              e.getUTCHours(),
                                              e.getUTCMinutes(),
                                              e.getUTCSeconds(),
                                          ])
                                      })(e)
                                    : null
                }),
                (e.prototype.startOfYear = function (e) {
                    return this.calendarSystem.arrayToMarker([
                        this.calendarSystem.getMarkerYear(e),
                    ])
                }),
                (e.prototype.startOfMonth = function (e) {
                    return this.calendarSystem.arrayToMarker([
                        this.calendarSystem.getMarkerYear(e),
                        this.calendarSystem.getMarkerMonth(e),
                    ])
                }),
                (e.prototype.startOfWeek = function (e) {
                    return this.calendarSystem.arrayToMarker([
                        this.calendarSystem.getMarkerYear(e),
                        this.calendarSystem.getMarkerMonth(e),
                        e.getUTCDate() -
                            ((e.getUTCDay() - this.weekDow + 7) % 7),
                    ])
                }),
                (e.prototype.computeWeekNumber = function (e) {
                    return this.weekNumberFunc
                        ? this.weekNumberFunc(this.toDate(e))
                        : (function (e, t, n) {
                              var r = e.getUTCFullYear(),
                                  o = ut(e, r, t, n)
                              if (o < 1) return ut(e, r - 1, t, n)
                              var i = ut(e, r + 1, t, n)
                              return i >= 1 ? Math.min(o, i) : o
                          })(e, this.weekDow, this.weekDoy)
                }),
                (e.prototype.format = function (e, t, n) {
                    return (
                        void 0 === n && (n = {}),
                        t.format(
                            {
                                marker: e,
                                timeZoneOffset:
                                    null != n.forcedTzo
                                        ? n.forcedTzo
                                        : this.offsetForMarker(e),
                            },
                            this
                        )
                    )
                }),
                (e.prototype.formatRange = function (e, t, n, r) {
                    return (
                        void 0 === r && (r = {}),
                        r.isEndExclusive && (t = nt(t, -1)),
                        n.formatRange(
                            {
                                marker: e,
                                timeZoneOffset:
                                    null != r.forcedStartTzo
                                        ? r.forcedStartTzo
                                        : this.offsetForMarker(e),
                            },
                            {
                                marker: t,
                                timeZoneOffset:
                                    null != r.forcedEndTzo
                                        ? r.forcedEndTzo
                                        : this.offsetForMarker(t),
                            },
                            this,
                            r.defaultSeparator
                        )
                    )
                }),
                (e.prototype.formatIso = function (e, t) {
                    void 0 === t && (t = {})
                    var n = null
                    return (
                        t.omitTimeZoneOffset ||
                            (n =
                                null != t.forcedTzo
                                    ? t.forcedTzo
                                    : this.offsetForMarker(e)),
                        Ft(e, n, t.omitTime)
                    )
                }),
                (e.prototype.timestampToMarker = function (e) {
                    return 'local' === this.timeZone
                        ? ht(dt(new Date(e)))
                        : 'UTC' !== this.timeZone && this.namedTimeZoneImpl
                          ? ht(this.namedTimeZoneImpl.timestampToArray(e))
                          : new Date(e)
                }),
                (e.prototype.offsetForMarker = function (e) {
                    return 'local' === this.timeZone
                        ? -pt(ft(e)).getTimezoneOffset()
                        : 'UTC' === this.timeZone
                          ? 0
                          : this.namedTimeZoneImpl
                            ? this.namedTimeZoneImpl.offsetForArray(ft(e))
                            : null
                }),
                (e.prototype.toDate = function (e, t) {
                    return 'local' === this.timeZone
                        ? pt(ft(e))
                        : 'UTC' === this.timeZone
                          ? new Date(e.valueOf())
                          : this.namedTimeZoneImpl
                            ? new Date(
                                  e.valueOf() -
                                      1e3 *
                                          this.namedTimeZoneImpl.offsetForArray(
                                              ft(e)
                                          ) *
                                          60
                              )
                            : new Date(e.valueOf() - (t || 0))
                }),
                e
            )
        })(),
        Ur = [],
        Wr = {
            code: 'en',
            week: { dow: 0, doy: 4 },
            direction: 'ltr',
            buttonText: {
                prev: 'prev',
                next: 'next',
                prevYear: 'prev year',
                nextYear: 'next year',
                year: 'year',
                today: 'today',
                month: 'month',
                week: 'week',
                day: 'day',
                list: 'list',
            },
            weekText: 'W',
            weekTextLong: 'Week',
            closeHint: 'Close',
            timeHint: 'Time',
            eventHint: 'Event',
            allDayText: 'all-day',
            moreLinkText: 'more',
            noEventsText: 'No events to display',
        },
        Vr = r(r({}, Wr), {
            buttonHints: {
                prev: 'Previous $0',
                next: 'Next $0',
                today: function (e, t) {
                    return 'day' === t ? 'Today' : 'This ' + e
                },
            },
            viewHint: '$0 view',
            navLinkHint: 'Go to $0',
            moreLinkHint: function (e) {
                return 'Show ' + e + ' more event' + (1 === e ? '' : 's')
            },
        })
    function Fr(e) {
        for (
            var t = e.length > 0 ? e[0].code : 'en',
                n = Ur.concat(e),
                r = { en: Vr },
                o = 0,
                i = n;
            o < i.length;
            o++
        ) {
            var a = i[o]
            r[a.code] = a
        }
        return { map: r, defaultCode: t }
    }
    function Br(e, t) {
        return 'object' != typeof e || Array.isArray(e)
            ? (function (e, t) {
                  var n = [].concat(e || []),
                      r =
                          (function (e, t) {
                              for (var n = 0; n < e.length; n += 1)
                                  for (
                                      var r = e[n]
                                              .toLocaleLowerCase()
                                              .split('-'),
                                          o = r.length;
                                      o > 0;
                                      o -= 1
                                  ) {
                                      var i = r.slice(0, o).join('-')
                                      if (t[i]) return t[i]
                                  }
                              return null
                          })(n, t) || Vr
                  return zr(e, n, r)
              })(e, t)
            : zr(e.code, [e.code], e)
    }
    function zr(e, t, n) {
        var r = Et([Wr, n], ['buttonText'])
        delete r.code
        var o = r.week
        return (
            delete r.week,
            {
                codeArg: e,
                codes: t,
                week: o,
                simpleNumberFormat: new Intl.NumberFormat(e),
                options: r,
            }
        )
    }
    function jr(e) {
        var t = Br(e.locale || 'en', Fr([]).map)
        return new Lr(
            r(r({ timeZone: cn.timeZone, calendarSystem: 'gregory' }, e), {
                locale: t,
            })
        )
    }
    var Gr,
        qr = {
            startTime: '09:00',
            endTime: '17:00',
            daysOfWeek: [1, 2, 3, 4, 5],
            display: 'inverse-background',
            classNames: 'fc-non-business',
            groupId: '_businessHours',
        }
    function Yr(e, t) {
        return En(
            (function (e) {
                var t
                t =
                    !0 === e
                        ? [{}]
                        : Array.isArray(e)
                          ? e.filter(function (e) {
                                return e.daysOfWeek
                            })
                          : 'object' == typeof e && e
                            ? [e]
                            : []
                return (t = t.map(function (e) {
                    return r(r({}, qr), e)
                }))
            })(e),
            null,
            t
        )
    }
    function Zr(e, t) {
        return (
            e.left >= t.left &&
            e.left < t.right &&
            e.top >= t.top &&
            e.top < t.bottom
        )
    }
    function Xr(e, t) {
        var n = {
            left: Math.max(e.left, t.left),
            right: Math.min(e.right, t.right),
            top: Math.max(e.top, t.top),
            bottom: Math.min(e.bottom, t.bottom),
        }
        return n.left < n.right && n.top < n.bottom && n
    }
    function Kr(e, t) {
        return {
            left: Math.min(Math.max(e.left, t.left), t.right),
            top: Math.min(Math.max(e.top, t.top), t.bottom),
        }
    }
    function $r(e) {
        return { left: (e.left + e.right) / 2, top: (e.top + e.bottom) / 2 }
    }
    function Jr(e, t) {
        return { left: e.left - t.left, top: e.top - t.top }
    }
    function Qr() {
        return (
            null == Gr &&
                (Gr = (function () {
                    if ('undefined' == typeof document) return !0
                    var e = document.createElement('div')
                    ;(e.style.position = 'absolute'),
                        (e.style.top = '0px'),
                        (e.style.left = '0px'),
                        (e.innerHTML =
                            '<table><tr><td><div></div></td></tr></table>'),
                        (e.querySelector('table').style.height = '100px'),
                        (e.querySelector('div').style.height = '100%'),
                        document.body.appendChild(e)
                    var t = e.querySelector('div').offsetHeight > 0
                    return document.body.removeChild(e), t
                })()),
            Gr
        )
    }
    var eo = { defs: {}, instances: {} },
        to = (function () {
            function e() {
                ;(this.getKeysForEventDefs = qt(this._getKeysForEventDefs)),
                    (this.splitDateSelection = qt(this._splitDateSpan)),
                    (this.splitEventStore = qt(this._splitEventStore)),
                    (this.splitIndividualUi = qt(this._splitIndividualUi)),
                    (this.splitEventDrag = qt(this._splitInteraction)),
                    (this.splitEventResize = qt(this._splitInteraction)),
                    (this.eventUiBuilders = {})
            }
            return (
                (e.prototype.splitProps = function (e) {
                    var t = this,
                        n = this.getKeyInfo(e),
                        r = this.getKeysForEventDefs(e.eventStore),
                        o = this.splitDateSelection(e.dateSelection),
                        i = this.splitIndividualUi(e.eventUiBases, r),
                        a = this.splitEventStore(e.eventStore, r),
                        s = this.splitEventDrag(e.eventDrag),
                        l = this.splitEventResize(e.eventResize),
                        u = {}
                    for (var c in ((this.eventUiBuilders = bt(
                        n,
                        function (e, n) {
                            return t.eventUiBuilders[n] || qt(no)
                        }
                    )),
                    n)) {
                        var d = n[c],
                            p = a[c] || eo,
                            f = this.eventUiBuilders[c]
                        u[c] = {
                            businessHours: d.businessHours || e.businessHours,
                            dateSelection: o[c] || null,
                            eventStore: p,
                            eventUiBases: f(e.eventUiBases[''], d.ui, i[c]),
                            eventSelection: p.instances[e.eventSelection]
                                ? e.eventSelection
                                : '',
                            eventDrag: s[c] || null,
                            eventResize: l[c] || null,
                        }
                    }
                    return u
                }),
                (e.prototype._splitDateSpan = function (e) {
                    var t = {}
                    if (e)
                        for (
                            var n = 0, r = this.getKeysForDateSpan(e);
                            n < r.length;
                            n++
                        ) {
                            t[r[n]] = e
                        }
                    return t
                }),
                (e.prototype._getKeysForEventDefs = function (e) {
                    var t = this
                    return bt(e.defs, function (e) {
                        return t.getKeysForEventDef(e)
                    })
                }),
                (e.prototype._splitEventStore = function (e, t) {
                    var n = e.defs,
                        r = e.instances,
                        o = {}
                    for (var i in n)
                        for (var a = 0, s = t[i]; a < s.length; a++) {
                            o[(p = s[a])] ||
                                (o[p] = { defs: {}, instances: {} }),
                                (o[p].defs[i] = n[i])
                        }
                    for (var l in r)
                        for (
                            var u = r[l], c = 0, d = t[u.defId];
                            c < d.length;
                            c++
                        ) {
                            var p
                            o[(p = d[c])] && (o[p].instances[l] = u)
                        }
                    return o
                }),
                (e.prototype._splitIndividualUi = function (e, t) {
                    var n = {}
                    for (var r in e)
                        if (r)
                            for (var o = 0, i = t[r]; o < i.length; o++) {
                                var a = i[o]
                                n[a] || (n[a] = {}), (n[a][r] = e[r])
                            }
                    return n
                }),
                (e.prototype._splitInteraction = function (e) {
                    var t = {}
                    if (e) {
                        var n = this._splitEventStore(
                                e.affectedEvents,
                                this._getKeysForEventDefs(e.affectedEvents)
                            ),
                            r = this._getKeysForEventDefs(e.mutatedEvents),
                            o = this._splitEventStore(e.mutatedEvents, r),
                            i = function (r) {
                                t[r] ||
                                    (t[r] = {
                                        affectedEvents: n[r] || eo,
                                        mutatedEvents: o[r] || eo,
                                        isEvent: e.isEvent,
                                    })
                            }
                        for (var a in n) i(a)
                        for (var a in o) i(a)
                    }
                    return t
                }),
                e
            )
        })()
    function no(e, t, n) {
        var o = []
        e && o.push(e), t && o.push(t)
        var i = { '': xn(o) }
        return n && r(i, n), i
    }
    function ro(e, t, n, r) {
        return {
            dow: e.getUTCDay(),
            isDisabled: Boolean(r && !Zn(r.activeRange, e)),
            isOther: Boolean(r && !Zn(r.currentRange, e)),
            isToday: Boolean(t && Zn(t, e)),
            isPast: Boolean(n ? e < n : !!t && e < t.start),
            isFuture: Boolean(n ? e > n : !!t && e >= t.end),
        }
    }
    function oo(e, t) {
        var n = ['fc-day', 'fc-day-' + Qe[e.dow]]
        return (
            e.isDisabled
                ? n.push('fc-day-disabled')
                : (e.isToday &&
                      (n.push('fc-day-today'), n.push(t.getClass('today'))),
                  e.isPast && n.push('fc-day-past'),
                  e.isFuture && n.push('fc-day-future'),
                  e.isOther && n.push('fc-day-other')),
            n
        )
    }
    var io = ln({ year: 'numeric', month: 'long', day: 'numeric' }),
        ao = ln({ week: 'long' })
    function so(e, t, n, o) {
        void 0 === n && (n = 'day'), void 0 === o && (o = !0)
        var i = e.dateEnv,
            a = e.options,
            s = e.calendarApi,
            l = i.format(t, 'week' === n ? ao : io)
        if (a.navLinks) {
            var u = i.toDate(t),
                c = function (e) {
                    var r =
                        'day' === n
                            ? a.navLinkDayClick
                            : 'week' === n
                              ? a.navLinkWeekClick
                              : null
                    'function' == typeof r
                        ? r.call(s, i.toDate(t), e)
                        : ('string' == typeof r && (n = r), s.zoomTo(t, n))
                }
            return r(
                { title: Xe(a.navLinkHint, [l, u], l), 'data-navlink': '' },
                o ? He(c) : { onClick: c }
            )
        }
        return { 'aria-label': l }
    }
    var lo,
        uo = null
    function co() {
        return (
            null === uo &&
                (uo = (function () {
                    var e = document.createElement('div')
                    we(e, {
                        position: 'absolute',
                        top: -1e3,
                        left: 0,
                        border: 0,
                        padding: 0,
                        overflow: 'scroll',
                        direction: 'rtl',
                    }),
                        (e.innerHTML = '<div></div>'),
                        document.body.appendChild(e)
                    var t =
                        e.firstChild.getBoundingClientRect().left >
                        e.getBoundingClientRect().left
                    return Ee(e), t
                })()),
            uo
        )
    }
    function po() {
        return (
            lo ||
                (lo = (function () {
                    var e = document.createElement('div')
                    ;(e.style.overflow = 'scroll'),
                        (e.style.position = 'absolute'),
                        (e.style.top = '-9999px'),
                        (e.style.left = '-9999px'),
                        document.body.appendChild(e)
                    var t = fo(e)
                    return document.body.removeChild(e), t
                })()),
            lo
        )
    }
    function fo(e) {
        return {
            x: e.offsetHeight - e.clientHeight,
            y: e.offsetWidth - e.clientWidth,
        }
    }
    function ho(e, t) {
        void 0 === t && (t = !1)
        var n = window.getComputedStyle(e),
            r = parseInt(n.borderLeftWidth, 10) || 0,
            o = parseInt(n.borderRightWidth, 10) || 0,
            i = parseInt(n.borderTopWidth, 10) || 0,
            a = parseInt(n.borderBottomWidth, 10) || 0,
            s = fo(e),
            l = s.y - r - o,
            u = {
                borderLeft: r,
                borderRight: o,
                borderTop: i,
                borderBottom: a,
                scrollbarBottom: s.x - i - a,
                scrollbarLeft: 0,
                scrollbarRight: 0,
            }
        return (
            co() && 'rtl' === n.direction
                ? (u.scrollbarLeft = l)
                : (u.scrollbarRight = l),
            t &&
                ((u.paddingLeft = parseInt(n.paddingLeft, 10) || 0),
                (u.paddingRight = parseInt(n.paddingRight, 10) || 0),
                (u.paddingTop = parseInt(n.paddingTop, 10) || 0),
                (u.paddingBottom = parseInt(n.paddingBottom, 10) || 0)),
            u
        )
    }
    function vo(e, t, n) {
        void 0 === t && (t = !1)
        var r = n ? e.getBoundingClientRect() : go(e),
            o = ho(e, t),
            i = {
                left: r.left + o.borderLeft + o.scrollbarLeft,
                right: r.right - o.borderRight - o.scrollbarRight,
                top: r.top + o.borderTop,
                bottom: r.bottom - o.borderBottom - o.scrollbarBottom,
            }
        return (
            t &&
                ((i.left += o.paddingLeft),
                (i.right -= o.paddingRight),
                (i.top += o.paddingTop),
                (i.bottom -= o.paddingBottom)),
            i
        )
    }
    function go(e) {
        var t = e.getBoundingClientRect()
        return {
            left: t.left + window.pageXOffset,
            top: t.top + window.pageYOffset,
            right: t.right + window.pageXOffset,
            bottom: t.bottom + window.pageYOffset,
        }
    }
    function mo(e) {
        for (var t = []; e instanceof HTMLElement; ) {
            var n = window.getComputedStyle(e)
            if ('fixed' === n.position) break
            ;/(auto|scroll)/.test(n.overflow + n.overflowY + n.overflowX) &&
                t.push(e),
                (e = e.parentNode)
        }
        return t
    }
    function yo(e, t, n) {
        var r = !1,
            o = function () {
                r || ((r = !0), t.apply(this, arguments))
            },
            i = function () {
                r || ((r = !0), n && n.apply(this, arguments))
            },
            a = e(o, i)
        a && 'function' == typeof a.then && a.then(o, i)
    }
    var Eo = (function () {
        function e() {
            ;(this.handlers = {}), (this.thisContext = null)
        }
        return (
            (e.prototype.setThisContext = function (e) {
                this.thisContext = e
            }),
            (e.prototype.setOptions = function (e) {
                this.options = e
            }),
            (e.prototype.on = function (e, t) {
                !(function (e, t, n) {
                    ;(e[t] || (e[t] = [])).push(n)
                })(this.handlers, e, t)
            }),
            (e.prototype.off = function (e, t) {
                !(function (e, t, n) {
                    n
                        ? e[t] &&
                          (e[t] = e[t].filter(function (e) {
                              return e !== n
                          }))
                        : delete e[t]
                })(this.handlers, e, t)
            }),
            (e.prototype.trigger = function (e) {
                for (var t = [], n = 1; n < arguments.length; n++)
                    t[n - 1] = arguments[n]
                for (
                    var r = this.handlers[e] || [],
                        o = this.options && this.options[e],
                        i = [].concat(o || [], r),
                        a = 0,
                        s = i;
                    a < s.length;
                    a++
                ) {
                    var l = s[a]
                    l.apply(this.thisContext, t)
                }
            }),
            (e.prototype.hasHandlers = function (e) {
                return Boolean(
                    (this.handlers[e] && this.handlers[e].length) ||
                        (this.options && this.options[e])
                )
            }),
            e
        )
    })()
    var So = (function () {
            function e(e, t, n, r) {
                this.els = t
                var o = (this.originClientRect = e.getBoundingClientRect())
                n && this.buildElHorizontals(o.left),
                    r && this.buildElVerticals(o.top)
            }
            return (
                (e.prototype.buildElHorizontals = function (e) {
                    for (
                        var t = [], n = [], r = 0, o = this.els;
                        r < o.length;
                        r++
                    ) {
                        var i = o[r].getBoundingClientRect()
                        t.push(i.left - e), n.push(i.right - e)
                    }
                    ;(this.lefts = t), (this.rights = n)
                }),
                (e.prototype.buildElVerticals = function (e) {
                    for (
                        var t = [], n = [], r = 0, o = this.els;
                        r < o.length;
                        r++
                    ) {
                        var i = o[r].getBoundingClientRect()
                        t.push(i.top - e), n.push(i.bottom - e)
                    }
                    ;(this.tops = t), (this.bottoms = n)
                }),
                (e.prototype.leftToIndex = function (e) {
                    var t,
                        n = this.lefts,
                        r = this.rights,
                        o = n.length
                    for (t = 0; t < o; t += 1)
                        if (e >= n[t] && e < r[t]) return t
                }),
                (e.prototype.topToIndex = function (e) {
                    var t,
                        n = this.tops,
                        r = this.bottoms,
                        o = n.length
                    for (t = 0; t < o; t += 1)
                        if (e >= n[t] && e < r[t]) return t
                }),
                (e.prototype.getWidth = function (e) {
                    return this.rights[e] - this.lefts[e]
                }),
                (e.prototype.getHeight = function (e) {
                    return this.bottoms[e] - this.tops[e]
                }),
                e
            )
        })(),
        bo = (function () {
            function e() {}
            return (
                (e.prototype.getMaxScrollTop = function () {
                    return this.getScrollHeight() - this.getClientHeight()
                }),
                (e.prototype.getMaxScrollLeft = function () {
                    return this.getScrollWidth() - this.getClientWidth()
                }),
                (e.prototype.canScrollVertically = function () {
                    return this.getMaxScrollTop() > 0
                }),
                (e.prototype.canScrollHorizontally = function () {
                    return this.getMaxScrollLeft() > 0
                }),
                (e.prototype.canScrollUp = function () {
                    return this.getScrollTop() > 0
                }),
                (e.prototype.canScrollDown = function () {
                    return this.getScrollTop() < this.getMaxScrollTop()
                }),
                (e.prototype.canScrollLeft = function () {
                    return this.getScrollLeft() > 0
                }),
                (e.prototype.canScrollRight = function () {
                    return this.getScrollLeft() < this.getMaxScrollLeft()
                }),
                e
            )
        })(),
        Do = (function (e) {
            function t(t) {
                var n = e.call(this) || this
                return (n.el = t), n
            }
            return (
                n(t, e),
                (t.prototype.getScrollTop = function () {
                    return this.el.scrollTop
                }),
                (t.prototype.getScrollLeft = function () {
                    return this.el.scrollLeft
                }),
                (t.prototype.setScrollTop = function (e) {
                    this.el.scrollTop = e
                }),
                (t.prototype.setScrollLeft = function (e) {
                    this.el.scrollLeft = e
                }),
                (t.prototype.getScrollWidth = function () {
                    return this.el.scrollWidth
                }),
                (t.prototype.getScrollHeight = function () {
                    return this.el.scrollHeight
                }),
                (t.prototype.getClientHeight = function () {
                    return this.el.clientHeight
                }),
                (t.prototype.getClientWidth = function () {
                    return this.el.clientWidth
                }),
                t
            )
        })(bo),
        Co = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.getScrollTop = function () {
                    return window.pageYOffset
                }),
                (t.prototype.getScrollLeft = function () {
                    return window.pageXOffset
                }),
                (t.prototype.setScrollTop = function (e) {
                    window.scroll(window.pageXOffset, e)
                }),
                (t.prototype.setScrollLeft = function (e) {
                    window.scroll(e, window.pageYOffset)
                }),
                (t.prototype.getScrollWidth = function () {
                    return document.documentElement.scrollWidth
                }),
                (t.prototype.getScrollHeight = function () {
                    return document.documentElement.scrollHeight
                }),
                (t.prototype.getClientHeight = function () {
                    return document.documentElement.clientHeight
                }),
                (t.prototype.getClientWidth = function () {
                    return document.documentElement.clientWidth
                }),
                t
            )
        })(bo),
        wo = (function () {
            function e(e) {
                this.iconOverrideOption &&
                    this.setIconOverride(e[this.iconOverrideOption])
            }
            return (
                (e.prototype.setIconOverride = function (e) {
                    var t, n
                    if ('object' == typeof e && e) {
                        for (n in ((t = r({}, this.iconClasses)), e))
                            t[n] = this.applyIconOverridePrefix(e[n])
                        this.iconClasses = t
                    } else !1 === e && (this.iconClasses = {})
                }),
                (e.prototype.applyIconOverridePrefix = function (e) {
                    var t = this.iconOverridePrefix
                    return t && 0 !== e.indexOf(t) && (e = t + e), e
                }),
                (e.prototype.getClass = function (e) {
                    return this.classes[e] || ''
                }),
                (e.prototype.getIconClass = function (e, t) {
                    var n
                    return (n =
                        (t && this.rtlIconClasses && this.rtlIconClasses[e]) ||
                        this.iconClasses[e])
                        ? this.baseIconClass + ' ' + n
                        : ''
                }),
                (e.prototype.getCustomButtonIconClass = function (e) {
                    var t
                    return this.iconOverrideCustomButtonOption &&
                        (t = e[this.iconOverrideCustomButtonOption])
                        ? this.baseIconClass +
                              ' ' +
                              this.applyIconOverridePrefix(t)
                        : ''
                }),
                e
            )
        })()
    if (
        ((wo.prototype.classes = {}),
        (wo.prototype.iconClasses = {}),
        (wo.prototype.baseIconClass = ''),
        (wo.prototype.iconOverridePrefix = ''),
        'undefined' == typeof FullCalendarVDom)
    )
        throw new Error(
            'Please import the top-level fullcalendar lib before attempting to import a plugin.'
        )
    var Ro = FullCalendarVDom.Component,
        _o = FullCalendarVDom.createElement,
        To = FullCalendarVDom.render,
        ko = FullCalendarVDom.createRef,
        xo = FullCalendarVDom.Fragment,
        Mo = FullCalendarVDom.createContext,
        Io = FullCalendarVDom.createPortal,
        Po = FullCalendarVDom.flushSync,
        No = FullCalendarVDom.unmountComponentAtNode,
        Ho = (function () {
            function e(e, t, n, o) {
                var i = this
                ;(this.execFunc = e),
                    (this.emitter = t),
                    (this.scrollTime = n),
                    (this.scrollTimeReset = o),
                    (this.handleScrollRequest = function (e) {
                        ;(i.queuedRequest = r({}, i.queuedRequest || {}, e)),
                            i.drain()
                    }),
                    t.on('_scrollRequest', this.handleScrollRequest),
                    this.fireInitialScroll()
            }
            return (
                (e.prototype.detach = function () {
                    this.emitter.off('_scrollRequest', this.handleScrollRequest)
                }),
                (e.prototype.update = function (e) {
                    e && this.scrollTimeReset
                        ? this.fireInitialScroll()
                        : this.drain()
                }),
                (e.prototype.fireInitialScroll = function () {
                    this.handleScrollRequest({ time: this.scrollTime })
                }),
                (e.prototype.drain = function () {
                    this.queuedRequest &&
                        this.execFunc(this.queuedRequest) &&
                        (this.queuedRequest = null)
                }),
                e
            )
        })(),
        Oo = Mo({})
    function Ao(e, t, n, r, o, i, a, s, l, u, c, d, p) {
        return {
            dateEnv: o,
            options: n,
            pluginHooks: a,
            emitter: u,
            dispatch: s,
            getCurrentData: l,
            calendarApi: c,
            viewSpec: e,
            viewApi: t,
            dateProfileGenerator: r,
            theme: i,
            isRtl: 'rtl' === n.direction,
            addResizeHandler: function (e) {
                u.on('_resize', e)
            },
            removeResizeHandler: function (e) {
                u.off('_resize', e)
            },
            createScrollResponder: function (e) {
                return new Ho(e, u, Nt(n.scrollTime), n.scrollTimeReset)
            },
            registerInteractiveComponent: d,
            unregisterInteractiveComponent: p,
        }
    }
    var Lo = (function (e) {
        function t() {
            return (null !== e && e.apply(this, arguments)) || this
        }
        return (
            n(t, e),
            (t.prototype.shouldComponentUpdate = function (e, t) {
                return (
                    this.debug &&
                        console.log(Rt(e, this.props), Rt(t, this.state)),
                    !_t(this.props, e, this.propEquality) ||
                        !_t(this.state, t, this.stateEquality)
                )
            }),
            (t.prototype.safeSetState = function (e) {
                _t(this.state, r(r({}, this.state), e), this.stateEquality) ||
                    this.setState(e)
            }),
            (t.addPropsEquality = Wo),
            (t.addStateEquality = Vo),
            (t.contextType = Oo),
            t
        )
    })(Ro)
    ;(Lo.prototype.propEquality = {}), (Lo.prototype.stateEquality = {})
    var Uo = (function (e) {
        function t() {
            return (null !== e && e.apply(this, arguments)) || this
        }
        return n(t, e), (t.contextType = Oo), t
    })(Lo)
    function Wo(e) {
        var t = Object.create(this.prototype.propEquality)
        r(t, e), (this.prototype.propEquality = t)
    }
    function Vo(e) {
        var t = Object.create(this.prototype.stateEquality)
        r(t, e), (this.prototype.stateEquality = t)
    }
    function Fo(e, t) {
        'function' == typeof e ? e(t) : e && (e.current = t)
    }
    var Bo = (function (e) {
        function t() {
            var t = (null !== e && e.apply(this, arguments)) || this
            return (t.uid = Le()), t
        }
        return (
            n(t, e),
            (t.prototype.prepareHits = function () {}),
            (t.prototype.queryHit = function (e, t, n, r) {
                return null
            }),
            (t.prototype.isValidSegDownEl = function (e) {
                return (
                    !this.props.eventDrag &&
                    !this.props.eventResize &&
                    !Se(e, '.fc-event-mirror')
                )
            }),
            (t.prototype.isValidDateDownEl = function (e) {
                return !(
                    Se(e, '.fc-event:not(.fc-bg-event)') ||
                    Se(e, '.fc-more-link') ||
                    Se(e, 'a[data-navlink]') ||
                    Se(e, '.fc-popover')
                )
            }),
            t
        )
    })(Uo)
    function zo(e) {
        return {
            id: Le(),
            deps: e.deps || [],
            reducers: e.reducers || [],
            isLoadingFuncs: e.isLoadingFuncs || [],
            contextInit: [].concat(e.contextInit || []),
            eventRefiners: e.eventRefiners || {},
            eventDefMemberAdders: e.eventDefMemberAdders || [],
            eventSourceRefiners: e.eventSourceRefiners || {},
            isDraggableTransformers: e.isDraggableTransformers || [],
            eventDragMutationMassagers: e.eventDragMutationMassagers || [],
            eventDefMutationAppliers: e.eventDefMutationAppliers || [],
            dateSelectionTransformers: e.dateSelectionTransformers || [],
            datePointTransforms: e.datePointTransforms || [],
            dateSpanTransforms: e.dateSpanTransforms || [],
            views: e.views || {},
            viewPropsTransformers: e.viewPropsTransformers || [],
            isPropsValid: e.isPropsValid || null,
            externalDefTransforms: e.externalDefTransforms || [],
            viewContainerAppends: e.viewContainerAppends || [],
            eventDropTransformers: e.eventDropTransformers || [],
            componentInteractions: e.componentInteractions || [],
            calendarInteractions: e.calendarInteractions || [],
            themeClasses: e.themeClasses || {},
            eventSourceDefs: e.eventSourceDefs || [],
            cmdFormatter: e.cmdFormatter,
            recurringTypes: e.recurringTypes || [],
            namedTimeZonedImpl: e.namedTimeZonedImpl,
            initialView: e.initialView || '',
            elementDraggingImpl: e.elementDraggingImpl,
            optionChangeHandlers: e.optionChangeHandlers || {},
            scrollGridImpl: e.scrollGridImpl || null,
            contentTypeHandlers: e.contentTypeHandlers || {},
            listenerRefiners: e.listenerRefiners || {},
            optionRefiners: e.optionRefiners || {},
            propSetHandlers: e.propSetHandlers || {},
        }
    }
    function jo() {
        var e,
            t = [],
            n = []
        return function (o, i) {
            return (
                (e && Gt(o, t) && Gt(i, n)) ||
                    (e = (function (e, t) {
                        var n = {},
                            o = {
                                reducers: [],
                                isLoadingFuncs: [],
                                contextInit: [],
                                eventRefiners: {},
                                eventDefMemberAdders: [],
                                eventSourceRefiners: {},
                                isDraggableTransformers: [],
                                eventDragMutationMassagers: [],
                                eventDefMutationAppliers: [],
                                dateSelectionTransformers: [],
                                datePointTransforms: [],
                                dateSpanTransforms: [],
                                views: {},
                                viewPropsTransformers: [],
                                isPropsValid: null,
                                externalDefTransforms: [],
                                viewContainerAppends: [],
                                eventDropTransformers: [],
                                componentInteractions: [],
                                calendarInteractions: [],
                                themeClasses: {},
                                eventSourceDefs: [],
                                cmdFormatter: null,
                                recurringTypes: [],
                                namedTimeZonedImpl: null,
                                initialView: '',
                                elementDraggingImpl: null,
                                optionChangeHandlers: {},
                                scrollGridImpl: null,
                                contentTypeHandlers: {},
                                listenerRefiners: {},
                                optionRefiners: {},
                                propSetHandlers: {},
                            }
                        function i(e) {
                            for (var t = 0, a = e; t < a.length; t++) {
                                var s = a[t]
                                n[s.id] ||
                                    ((n[s.id] = !0),
                                    i(s.deps),
                                    (u = s),
                                    (o = {
                                        reducers: (l = o).reducers.concat(
                                            u.reducers
                                        ),
                                        isLoadingFuncs: l.isLoadingFuncs.concat(
                                            u.isLoadingFuncs
                                        ),
                                        contextInit: l.contextInit.concat(
                                            u.contextInit
                                        ),
                                        eventRefiners: r(
                                            r({}, l.eventRefiners),
                                            u.eventRefiners
                                        ),
                                        eventDefMemberAdders:
                                            l.eventDefMemberAdders.concat(
                                                u.eventDefMemberAdders
                                            ),
                                        eventSourceRefiners: r(
                                            r({}, l.eventSourceRefiners),
                                            u.eventSourceRefiners
                                        ),
                                        isDraggableTransformers:
                                            l.isDraggableTransformers.concat(
                                                u.isDraggableTransformers
                                            ),
                                        eventDragMutationMassagers:
                                            l.eventDragMutationMassagers.concat(
                                                u.eventDragMutationMassagers
                                            ),
                                        eventDefMutationAppliers:
                                            l.eventDefMutationAppliers.concat(
                                                u.eventDefMutationAppliers
                                            ),
                                        dateSelectionTransformers:
                                            l.dateSelectionTransformers.concat(
                                                u.dateSelectionTransformers
                                            ),
                                        datePointTransforms:
                                            l.datePointTransforms.concat(
                                                u.datePointTransforms
                                            ),
                                        dateSpanTransforms:
                                            l.dateSpanTransforms.concat(
                                                u.dateSpanTransforms
                                            ),
                                        views: r(r({}, l.views), u.views),
                                        viewPropsTransformers:
                                            l.viewPropsTransformers.concat(
                                                u.viewPropsTransformers
                                            ),
                                        isPropsValid:
                                            u.isPropsValid || l.isPropsValid,
                                        externalDefTransforms:
                                            l.externalDefTransforms.concat(
                                                u.externalDefTransforms
                                            ),
                                        viewContainerAppends:
                                            l.viewContainerAppends.concat(
                                                u.viewContainerAppends
                                            ),
                                        eventDropTransformers:
                                            l.eventDropTransformers.concat(
                                                u.eventDropTransformers
                                            ),
                                        calendarInteractions:
                                            l.calendarInteractions.concat(
                                                u.calendarInteractions
                                            ),
                                        componentInteractions:
                                            l.componentInteractions.concat(
                                                u.componentInteractions
                                            ),
                                        themeClasses: r(
                                            r({}, l.themeClasses),
                                            u.themeClasses
                                        ),
                                        eventSourceDefs:
                                            l.eventSourceDefs.concat(
                                                u.eventSourceDefs
                                            ),
                                        cmdFormatter:
                                            u.cmdFormatter || l.cmdFormatter,
                                        recurringTypes: l.recurringTypes.concat(
                                            u.recurringTypes
                                        ),
                                        namedTimeZonedImpl:
                                            u.namedTimeZonedImpl ||
                                            l.namedTimeZonedImpl,
                                        initialView:
                                            l.initialView || u.initialView,
                                        elementDraggingImpl:
                                            l.elementDraggingImpl ||
                                            u.elementDraggingImpl,
                                        optionChangeHandlers: r(
                                            r({}, l.optionChangeHandlers),
                                            u.optionChangeHandlers
                                        ),
                                        scrollGridImpl:
                                            u.scrollGridImpl ||
                                            l.scrollGridImpl,
                                        contentTypeHandlers: r(
                                            r({}, l.contentTypeHandlers),
                                            u.contentTypeHandlers
                                        ),
                                        listenerRefiners: r(
                                            r({}, l.listenerRefiners),
                                            u.listenerRefiners
                                        ),
                                        optionRefiners: r(
                                            r({}, l.optionRefiners),
                                            u.optionRefiners
                                        ),
                                        propSetHandlers: r(
                                            r({}, l.propSetHandlers),
                                            u.propSetHandlers
                                        ),
                                    }))
                            }
                            var l, u
                        }
                        return e && i(e), i(t), o
                    })(o, i)),
                (t = o),
                (n = i),
                e
            )
        }
    }
    var Go = (function (e) {
        function t() {
            return (null !== e && e.apply(this, arguments)) || this
        }
        return n(t, e), t
    })(wo)
    function qo(e, t, n, o) {
        if (t[e]) return t[e]
        var i = (function (e, t, n, o) {
            var i = n[e],
                a = o[e],
                s = function (e) {
                    return i && null !== i[e]
                        ? i[e]
                        : a && null !== a[e]
                          ? a[e]
                          : null
                },
                l = s('component'),
                u = s('superType'),
                c = null
            if (u) {
                if (u === e)
                    throw new Error(
                        "Can't have a custom view type that references itself"
                    )
                c = qo(u, t, n, o)
            }
            !l && c && (l = c.component)
            if (!l) return null
            return {
                type: e,
                component: l,
                defaults: r(r({}, c ? c.defaults : {}), i ? i.rawOptions : {}),
                overrides: r(
                    r({}, c ? c.overrides : {}),
                    a ? a.rawOptions : {}
                ),
            }
        })(e, t, n, o)
        return i && (t[e] = i), i
    }
    ;(Go.prototype.classes = {
        root: 'fc-theme-standard',
        tableCellShaded: 'fc-cell-shaded',
        buttonGroup: 'fc-button-group',
        button: 'fc-button fc-button-primary',
        buttonActive: 'fc-button-active',
    }),
        (Go.prototype.baseIconClass = 'fc-icon'),
        (Go.prototype.iconClasses = {
            close: 'fc-icon-x',
            prev: 'fc-icon-chevron-left',
            next: 'fc-icon-chevron-right',
            prevYear: 'fc-icon-chevrons-left',
            nextYear: 'fc-icon-chevrons-right',
        }),
        (Go.prototype.rtlIconClasses = {
            prev: 'fc-icon-chevron-right',
            next: 'fc-icon-chevron-left',
            prevYear: 'fc-icon-chevrons-right',
            nextYear: 'fc-icon-chevrons-left',
        }),
        (Go.prototype.iconOverrideOption = 'buttonIcons'),
        (Go.prototype.iconOverrideCustomButtonOption = 'icon'),
        (Go.prototype.iconOverridePrefix = 'fc-icon-')
    var Yo = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (
                    (t.rootElRef = ko()),
                    (t.handleRootEl = function (e) {
                        Fo(t.rootElRef, e),
                            t.props.elRef && Fo(t.props.elRef, e)
                    }),
                    t
                )
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this,
                        t = this.props,
                        n = t.hookProps
                    return _o(
                        $o,
                        {
                            hookProps: n,
                            didMount: t.didMount,
                            willUnmount: t.willUnmount,
                            elRef: this.handleRootEl,
                        },
                        function (r) {
                            return _o(
                                Xo,
                                {
                                    hookProps: n,
                                    content: t.content,
                                    defaultContent: t.defaultContent,
                                    backupElRef: e.rootElRef,
                                },
                                function (e, o) {
                                    return t.children(
                                        r,
                                        Qo(t.classNames, n),
                                        e,
                                        o
                                    )
                                }
                            )
                        }
                    )
                }),
                t
            )
        })(Uo),
        Zo = Mo(0)
    function Xo(e) {
        return _o(Zo.Consumer, null, function (t) {
            return _o(Ko, r({ renderId: t }, e))
        })
    }
    var Ko = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (t.innerElRef = ko()), t
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    return this.props.children(
                        this.innerElRef,
                        this.renderInnerContent()
                    )
                }),
                (t.prototype.componentDidMount = function () {
                    this.updateCustomContent()
                }),
                (t.prototype.componentDidUpdate = function () {
                    this.updateCustomContent()
                }),
                (t.prototype.componentWillUnmount = function () {
                    this.customContentInfo &&
                        this.customContentInfo.destroy &&
                        this.customContentInfo.destroy()
                }),
                (t.prototype.renderInnerContent = function () {
                    var e = this.customContentInfo,
                        t = this.getInnerContent(),
                        n = this.getContentMeta(t)
                    return (
                        e && e.contentKey === n.contentKey
                            ? e && (e.contentVal = t[n.contentKey])
                            : (e &&
                                  (e.destroy && e.destroy(),
                                  (e = this.customContentInfo = null)),
                              n.contentKey &&
                                  (e = this.customContentInfo =
                                      r(
                                          {
                                              contentKey: n.contentKey,
                                              contentVal: t[n.contentKey],
                                          },
                                          n.buildLifecycleFuncs()
                                      ))),
                        e ? [] : t
                    )
                }),
                (t.prototype.getInnerContent = function () {
                    var e = this.props,
                        t = ei(e.content, e.hookProps)
                    return (
                        void 0 === t && (t = ei(e.defaultContent, e.hookProps)),
                        null == t ? null : t
                    )
                }),
                (t.prototype.getContentMeta = function (e) {
                    var t = this.context.pluginHooks.contentTypeHandlers,
                        n = '',
                        r = null
                    if (e)
                        for (var o in t)
                            if (void 0 !== e[o]) {
                                ;(n = o), (r = t[o])
                                break
                            }
                    return { contentKey: n, buildLifecycleFuncs: r }
                }),
                (t.prototype.updateCustomContent = function () {
                    this.customContentInfo &&
                        this.customContentInfo.render(
                            this.innerElRef.current ||
                                this.props.backupElRef.current,
                            this.customContentInfo.contentVal
                        )
                }),
                t
            )
        })(Uo),
        $o = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (
                    (t.handleRootEl = function (e) {
                        ;(t.rootEl = e), t.props.elRef && Fo(t.props.elRef, e)
                    }),
                    t
                )
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    return this.props.children(this.handleRootEl)
                }),
                (t.prototype.componentDidMount = function () {
                    var e = this.props.didMount
                    e && e(r(r({}, this.props.hookProps), { el: this.rootEl }))
                }),
                (t.prototype.componentWillUnmount = function () {
                    var e = this.props.willUnmount
                    e && e(r(r({}, this.props.hookProps), { el: this.rootEl }))
                }),
                t
            )
        })(Uo)
    function Jo() {
        var e,
            t,
            n = []
        return function (r, o) {
            return (
                (t && wt(t, o) && r === e) ||
                    ((e = r), (t = o), (n = Qo(r, o))),
                n
            )
        }
    }
    function Qo(e, t) {
        return 'function' == typeof e && (e = e(t)), Rn(e)
    }
    function ei(e, t) {
        return 'function' == typeof e ? e(t, _o) : e
    }
    var ti = (function (e) {
        function t() {
            var t = (null !== e && e.apply(this, arguments)) || this
            return (t.normalizeClassNames = Jo()), t
        }
        return (
            n(t, e),
            (t.prototype.render = function () {
                var e = this.props,
                    t = this.context,
                    n = t.options,
                    r = { view: t.viewApi },
                    o = this.normalizeClassNames(n.viewClassNames, r)
                return _o(
                    $o,
                    {
                        hookProps: r,
                        didMount: n.viewDidMount,
                        willUnmount: n.viewWillUnmount,
                        elRef: e.elRef,
                    },
                    function (t) {
                        return e.children(
                            t,
                            [
                                'fc-' + e.viewSpec.type + '-view',
                                'fc-view',
                            ].concat(o)
                        )
                    }
                )
            }),
            t
        )
    })(Uo)
    function ni(e) {
        return bt(e, ri)
    }
    function ri(e) {
        var t,
            n = 'function' == typeof e ? { component: e } : e,
            o = n.component
        return (
            n.content &&
                ((t = n),
                (o = function (e) {
                    return _o(Oo.Consumer, null, function (n) {
                        return _o(
                            ti,
                            { viewSpec: n.viewSpec },
                            function (o, i) {
                                var a = r(r({}, e), {
                                    nextDayThreshold:
                                        n.options.nextDayThreshold,
                                })
                                return _o(
                                    Yo,
                                    {
                                        hookProps: a,
                                        classNames: t.classNames,
                                        content: t.content,
                                        didMount: t.didMount,
                                        willUnmount: t.willUnmount,
                                        elRef: o,
                                    },
                                    function (e, t, n, r) {
                                        return _o(
                                            'div',
                                            {
                                                className: i
                                                    .concat(t)
                                                    .join(' '),
                                                ref: e,
                                            },
                                            r
                                        )
                                    }
                                )
                            }
                        )
                    })
                })),
            { superType: n.type, component: o, rawOptions: n }
        )
    }
    function oi(e, t, n, o) {
        var i = ni(e),
            a = ni(t.views)
        return bt(
            (function (e, t) {
                var n,
                    r = {}
                for (n in e) qo(n, r, e, t)
                for (n in t) qo(n, r, e, t)
                return r
            })(i, a),
            function (e) {
                return (function (e, t, n, o, i) {
                    var a =
                            e.overrides.duration ||
                            e.defaults.duration ||
                            o.duration ||
                            n.duration,
                        s = null,
                        l = '',
                        u = '',
                        c = {}
                    if (
                        a &&
                        (s = (function (e) {
                            var t = JSON.stringify(e),
                                n = ii[t]
                            void 0 === n && ((n = Nt(e)), (ii[t] = n))
                            return n
                        })(a))
                    ) {
                        var d = Vt(s)
                        ;(l = d.unit),
                            1 === d.value &&
                                ((u = l), (c = t[l] ? t[l].rawOptions : {}))
                    }
                    var p = function (t) {
                            var n = t.buttonText || {},
                                r = e.defaults.buttonTextKey
                            return null != r && null != n[r]
                                ? n[r]
                                : null != n[e.type]
                                  ? n[e.type]
                                  : null != n[u]
                                    ? n[u]
                                    : null
                        },
                        f = function (t) {
                            var n = t.buttonHints || {},
                                r = e.defaults.buttonTextKey
                            return null != r && null != n[r]
                                ? n[r]
                                : null != n[e.type]
                                  ? n[e.type]
                                  : null != n[u]
                                    ? n[u]
                                    : null
                        }
                    return {
                        type: e.type,
                        component: e.component,
                        duration: s,
                        durationUnit: l,
                        singleUnit: u,
                        optionDefaults: e.defaults,
                        optionOverrides: r(r({}, c), e.overrides),
                        buttonTextOverride:
                            p(o) || p(n) || e.overrides.buttonText,
                        buttonTextDefault:
                            p(i) || e.defaults.buttonText || p(cn) || e.type,
                        buttonTitleOverride:
                            f(o) || f(n) || e.overrides.buttonHint,
                        buttonTitleDefault:
                            f(i) || e.defaults.buttonHint || f(cn),
                    }
                })(e, a, t, n, o)
            }
        )
    }
    var ii = {}
    var ai = (function () {
        function e(e) {
            ;(this.props = e),
                (this.nowDate = Tr(e.nowInput, e.dateEnv)),
                this.initHiddenDays()
        }
        return (
            (e.prototype.buildPrev = function (e, t, n) {
                var r = this.props.dateEnv,
                    o = r.subtract(
                        r.startOf(t, e.currentRangeUnit),
                        e.dateIncrement
                    )
                return this.build(o, -1, n)
            }),
            (e.prototype.buildNext = function (e, t, n) {
                var r = this.props.dateEnv,
                    o = r.add(r.startOf(t, e.currentRangeUnit), e.dateIncrement)
                return this.build(o, 1, n)
            }),
            (e.prototype.build = function (e, t, n) {
                void 0 === n && (n = !0)
                var r,
                    o,
                    i,
                    a,
                    s,
                    l,
                    u,
                    c,
                    d = this.props
                return (
                    (r = this.buildValidRange()),
                    (r = this.trimHiddenDays(r)),
                    n &&
                        ((u = e),
                        (e =
                            null != (c = r).start && u < c.start
                                ? c.start
                                : null != c.end && u >= c.end
                                  ? new Date(c.end.valueOf() - 1)
                                  : u)),
                    (o = this.buildCurrentRangeInfo(e, t)),
                    (i = /^(year|month|week|day)$/.test(o.unit)),
                    (a = this.buildRenderRange(
                        this.trimHiddenDays(o.range),
                        o.unit,
                        i
                    )),
                    (s = a = this.trimHiddenDays(a)),
                    d.showNonCurrentDates || (s = jn(s, o.range)),
                    (s = jn((s = this.adjustActiveRange(s)), r)),
                    (l = qn(o.range, r)),
                    {
                        validRange: r,
                        currentRange: o.range,
                        currentRangeUnit: o.unit,
                        isRangeAllDay: i,
                        activeRange: s,
                        renderRange: a,
                        slotMinTime: d.slotMinTime,
                        slotMaxTime: d.slotMaxTime,
                        isValid: l,
                        dateIncrement: this.buildDateIncrement(o.duration),
                    }
                )
            }),
            (e.prototype.buildValidRange = function () {
                var e = this.props.validRangeInput,
                    t =
                        'function' == typeof e
                            ? e.call(this.props.calendarApi, this.nowDate)
                            : e
                return this.refineRange(t) || { start: null, end: null }
            }),
            (e.prototype.buildCurrentRangeInfo = function (e, t) {
                var n,
                    r = this.props,
                    o = null,
                    i = null,
                    a = null
                return (
                    r.duration
                        ? ((o = r.duration),
                          (i = r.durationUnit),
                          (a = this.buildRangeFromDuration(e, t, o, i)))
                        : (n = this.props.dayCount)
                          ? ((i = 'day'),
                            (a = this.buildRangeFromDayCount(e, t, n)))
                          : (a = this.buildCustomVisibleRange(e))
                            ? (i = r.dateEnv.greatestWholeUnit(
                                  a.start,
                                  a.end
                              ).unit)
                            : ((i = Vt((o = this.getFallbackDuration())).unit),
                              (a = this.buildRangeFromDuration(e, t, o, i))),
                    { duration: o, unit: i, range: a }
                )
            }),
            (e.prototype.getFallbackDuration = function () {
                return Nt({ day: 1 })
            }),
            (e.prototype.adjustActiveRange = function (e) {
                var t = this.props,
                    n = t.dateEnv,
                    r = t.usesMinMaxTime,
                    o = t.slotMinTime,
                    i = t.slotMaxTime,
                    a = e.start,
                    s = e.end
                return (
                    r &&
                        (Lt(o) < 0 && ((a = lt(a)), (a = n.add(a, o))),
                        Lt(i) > 1 &&
                            ((s = tt((s = lt(s)), -1)), (s = n.add(s, i)))),
                    { start: a, end: s }
                )
            }),
            (e.prototype.buildRangeFromDuration = function (e, t, n, r) {
                var o,
                    i,
                    a,
                    s = this.props,
                    l = s.dateEnv,
                    u = s.dateAlignment
                if (!u) {
                    var c = this.props.dateIncrement
                    u = c && Ut(c) < Ut(n) ? Vt(c).unit : r
                }
                function d() {
                    ;(o = l.startOf(e, u)),
                        (i = l.add(o, n)),
                        (a = { start: o, end: i })
                }
                return (
                    Lt(n) <= 1 &&
                        this.isHiddenDay(o) &&
                        (o = lt((o = this.skipHiddenDays(o, t)))),
                    d(),
                    this.trimHiddenDays(a) ||
                        ((e = this.skipHiddenDays(e, t)), d()),
                    a
                )
            }),
            (e.prototype.buildRangeFromDayCount = function (e, t, n) {
                var r,
                    o = this.props,
                    i = o.dateEnv,
                    a = o.dateAlignment,
                    s = 0,
                    l = e
                a && (l = i.startOf(l, a)),
                    (l = lt(l)),
                    (r = l = this.skipHiddenDays(l, t))
                do {
                    ;(r = tt(r, 1)), this.isHiddenDay(r) || (s += 1)
                } while (s < n)
                return { start: l, end: r }
            }),
            (e.prototype.buildCustomVisibleRange = function (e) {
                var t = this.props,
                    n = t.visibleRangeInput,
                    r =
                        'function' == typeof n
                            ? n.call(t.calendarApi, t.dateEnv.toDate(e))
                            : n,
                    o = this.refineRange(r)
                return !o || (null != o.start && null != o.end) ? o : null
            }),
            (e.prototype.buildRenderRange = function (e, t, n) {
                return e
            }),
            (e.prototype.buildDateIncrement = function (e) {
                var t,
                    n = this.props.dateIncrement
                return (
                    n ||
                    ((t = this.props.dateAlignment)
                        ? Nt(1, t)
                        : e || Nt({ days: 1 }))
                )
            }),
            (e.prototype.refineRange = function (e) {
                if (e) {
                    var t =
                        ((n = e),
                        (r = this.props.dateEnv),
                        (o = null),
                        (i = null),
                        n.start && (o = r.createMarker(n.start)),
                        n.end && (i = r.createMarker(n.end)),
                        o || i
                            ? o && i && i < o
                                ? null
                                : { start: o, end: i }
                            : null)
                    return t && (t = Wn(t)), t
                }
                var n, r, o, i
                return null
            }),
            (e.prototype.initHiddenDays = function () {
                var e,
                    t = this.props.hiddenDays || [],
                    n = [],
                    r = 0
                for (
                    !1 === this.props.weekends && t.push(0, 6), e = 0;
                    e < 7;
                    e += 1
                )
                    (n[e] = -1 !== t.indexOf(e)) || (r += 1)
                if (!r) throw new Error('invalid hiddenDays')
                this.isHiddenDayHash = n
            }),
            (e.prototype.trimHiddenDays = function (e) {
                var t = e.start,
                    n = e.end
                return (
                    t && (t = this.skipHiddenDays(t)),
                    n && (n = this.skipHiddenDays(n, -1, !0)),
                    null == t || null == n || t < n
                        ? { start: t, end: n }
                        : null
                )
            }),
            (e.prototype.isHiddenDay = function (e) {
                return (
                    e instanceof Date && (e = e.getUTCDay()),
                    this.isHiddenDayHash[e]
                )
            }),
            (e.prototype.skipHiddenDays = function (e, t, n) {
                for (
                    void 0 === t && (t = 1), void 0 === n && (n = !1);
                    this.isHiddenDayHash[(e.getUTCDay() + (n ? t : 0) + 7) % 7];

                )
                    e = tt(e, t)
                return e
            }),
            e
        )
    })()
    function si(e, t, n) {
        var r = t ? t.activeRange : null
        return ci(
            {},
            (function (e, t) {
                var n = _r(t),
                    r = [].concat(e.eventSources || []),
                    o = []
                e.initialEvents && r.unshift(e.initialEvents)
                e.events && r.unshift(e.events)
                for (var i = 0, a = r; i < a.length; i++) {
                    var s = Rr(a[i], t, n)
                    s && o.push(s)
                }
                return o
            })(e, n),
            r,
            n
        )
    }
    function li(e, t, n, o) {
        var i,
            a,
            s = n ? n.activeRange : null
        switch (t.type) {
            case 'ADD_EVENT_SOURCES':
                return ci(e, t.sources, s, o)
            case 'REMOVE_EVENT_SOURCE':
                return (
                    (i = e),
                    (a = t.sourceId),
                    St(i, function (e) {
                        return e.sourceId !== a
                    })
                )
            case 'PREV':
            case 'NEXT':
            case 'CHANGE_DATE':
            case 'CHANGE_VIEW_TYPE':
                return n ? di(e, s, o) : e
            case 'FETCH_EVENT_SOURCES':
                return pi(
                    e,
                    t.sourceIds ? Dt(t.sourceIds) : hi(e, o),
                    s,
                    t.isRefetch || !1,
                    o
                )
            case 'RECEIVE_EVENTS':
            case 'RECEIVE_EVENT_ERROR':
                return (function (e, t, n, o) {
                    var i,
                        a = e[t]
                    if (a && n === a.latestFetchId)
                        return r(
                            r({}, e),
                            (((i = {})[t] = r(r({}, a), {
                                isFetching: !1,
                                fetchRange: o,
                            })),
                            i)
                        )
                    return e
                })(e, t.sourceId, t.fetchId, t.fetchRange)
            case 'REMOVE_ALL_EVENT_SOURCES':
                return {}
            default:
                return e
        }
    }
    function ui(e) {
        for (var t in e) if (e[t].isFetching) return !0
        return !1
    }
    function ci(e, t, n, o) {
        for (var i = {}, a = 0, s = t; a < s.length; a++) {
            var l = s[a]
            i[l.sourceId] = l
        }
        return n && (i = di(i, n, o)), r(r({}, e), i)
    }
    function di(e, t, n) {
        return pi(
            e,
            St(e, function (e) {
                return (function (e, t, n) {
                    if (!vi(e, n)) return !e.latestFetchId
                    return (
                        !n.options.lazyFetching ||
                        !e.fetchRange ||
                        e.isFetching ||
                        t.start < e.fetchRange.start ||
                        t.end > e.fetchRange.end
                    )
                })(e, t, n)
            }),
            t,
            !1,
            n
        )
    }
    function pi(e, t, n, r, o) {
        var i = {}
        for (var a in e) {
            var s = e[a]
            t[a] ? (i[a] = fi(s, n, r, o)) : (i[a] = s)
        }
        return i
    }
    function fi(e, t, n, o) {
        var i = o.options,
            a = o.calendarApi,
            s = o.pluginHooks.eventSourceDefs[e.sourceDefId],
            l = Le()
        return (
            s.fetch(
                { eventSource: e, range: t, isRefetch: n, context: o },
                function (n) {
                    var r = n.rawEvents
                    i.eventSourceSuccess &&
                        (r = i.eventSourceSuccess.call(a, r, n.xhr) || r),
                        e.success && (r = e.success.call(a, r, n.xhr) || r),
                        o.dispatch({
                            type: 'RECEIVE_EVENTS',
                            sourceId: e.sourceId,
                            fetchId: l,
                            fetchRange: t,
                            rawEvents: r,
                        })
                },
                function (n) {
                    console.warn(n.message, n),
                        i.eventSourceFailure && i.eventSourceFailure.call(a, n),
                        e.failure && e.failure(n),
                        o.dispatch({
                            type: 'RECEIVE_EVENT_ERROR',
                            sourceId: e.sourceId,
                            fetchId: l,
                            fetchRange: t,
                            error: n,
                        })
                }
            ),
            r(r({}, e), { isFetching: !0, latestFetchId: l })
        )
    }
    function hi(e, t) {
        return St(e, function (e) {
            return vi(e, t)
        })
    }
    function vi(e, t) {
        return !t.pluginHooks.eventSourceDefs[e.sourceDefId].ignoreRange
    }
    function gi(e, t, n, r, o) {
        switch (t.type) {
            case 'RECEIVE_EVENTS':
                return (function (e, t, n, r, o, i) {
                    if (t && n === t.latestFetchId) {
                        var a = En(
                            (function (e, t, n) {
                                var r = n.options.eventDataTransform,
                                    o = t ? t.eventDataTransform : null
                                o && (e = mi(e, o))
                                r && (e = mi(e, r))
                                return e
                            })(o, t, i),
                            t,
                            i
                        )
                        return r && (a = xt(a, r, i)), Cn(yi(e, t.sourceId), a)
                    }
                    return e
                })(e, n[t.sourceId], t.fetchId, t.fetchRange, t.rawEvents, o)
            case 'ADD_EVENTS':
                return (function (e, t, n, r) {
                    n && (t = xt(t, n, r))
                    return Cn(e, t)
                })(e, t.eventStore, r ? r.activeRange : null, o)
            case 'RESET_EVENTS':
                return t.eventStore
            case 'MERGE_EVENTS':
                return Cn(e, t.eventStore)
            case 'PREV':
            case 'NEXT':
            case 'CHANGE_DATE':
            case 'CHANGE_VIEW_TYPE':
                return r ? xt(e, r.activeRange, o) : e
            case 'REMOVE_EVENTS':
                return (function (e, t) {
                    var n = e.defs,
                        r = e.instances,
                        o = {},
                        i = {}
                    for (var a in n) t.defs[a] || (o[a] = n[a])
                    for (var s in r)
                        !t.instances[s] && o[r[s].defId] && (i[s] = r[s])
                    return { defs: o, instances: i }
                })(e, t.eventStore)
            case 'REMOVE_EVENT_SOURCE':
                return yi(e, t.sourceId)
            case 'REMOVE_ALL_EVENT_SOURCES':
                return wn(e, function (e) {
                    return !e.sourceId
                })
            case 'REMOVE_ALL_EVENTS':
                return { defs: {}, instances: {} }
            default:
                return e
        }
    }
    function mi(e, t) {
        var n
        if (t) {
            n = []
            for (var r = 0, o = e; r < o.length; r++) {
                var i = o[r],
                    a = t(i)
                a ? n.push(a) : null == a && n.push(i)
            }
        } else n = e
        return n
    }
    function yi(e, t) {
        return wn(e, function (e) {
            return e.sourceId !== t
        })
    }
    function Ei(e, t) {
        switch (t.type) {
            case 'UNSELECT_DATES':
                return null
            case 'SELECT_DATES':
                return t.selection
            default:
                return e
        }
    }
    function Si(e, t) {
        switch (t.type) {
            case 'UNSELECT_EVENT':
                return ''
            case 'SELECT_EVENT':
                return t.eventInstanceId
            default:
                return e
        }
    }
    function bi(e, t) {
        var n
        switch (t.type) {
            case 'UNSET_EVENT_DRAG':
                return null
            case 'SET_EVENT_DRAG':
                return {
                    affectedEvents: (n = t.state).affectedEvents,
                    mutatedEvents: n.mutatedEvents,
                    isEvent: n.isEvent,
                }
            default:
                return e
        }
    }
    function Di(e, t) {
        var n
        switch (t.type) {
            case 'UNSET_EVENT_RESIZE':
                return null
            case 'SET_EVENT_RESIZE':
                return {
                    affectedEvents: (n = t.state).affectedEvents,
                    mutatedEvents: n.mutatedEvents,
                    isEvent: n.isEvent,
                }
            default:
                return e
        }
    }
    function Ci(e, t, n, r, o) {
        return {
            header: e.headerToolbar ? wi(e.headerToolbar, e, t, n, r, o) : null,
            footer: e.footerToolbar ? wi(e.footerToolbar, e, t, n, r, o) : null,
        }
    }
    function wi(e, t, n, r, o, i) {
        var a = {},
            s = [],
            l = !1
        for (var u in e) {
            var c = Ri(e[u], t, n, r, o, i)
            ;(a[u] = c.widgets),
                s.push.apply(s, c.viewsWithButtons),
                (l = l || c.hasTitle)
        }
        return { sectionWidgets: a, viewsWithButtons: s, hasTitle: l }
    }
    function Ri(e, t, n, r, o, i) {
        var a = 'rtl' === t.direction,
            s = t.customButtons || {},
            l = n.buttonText || {},
            u = t.buttonText || {},
            c = n.buttonHints || {},
            d = t.buttonHints || {},
            p = e ? e.split(' ') : [],
            f = [],
            h = !1
        return {
            widgets: p.map(function (e) {
                return e.split(',').map(function (e) {
                    if ('title' === e) return (h = !0), { buttonName: e }
                    var n, p, v, g, m, y
                    if ((n = s[e]))
                        (v = function (e) {
                            n.click && n.click.call(e.target, e, e.target)
                        }),
                            (g = r.getCustomButtonIconClass(n)) ||
                                (g = r.getIconClass(e, a)) ||
                                (m = n.text),
                            (y = n.hint || n.text)
                    else if ((p = o[e])) {
                        f.push(e),
                            (v = function () {
                                i.changeView(e)
                            }),
                            (m = p.buttonTextOverride) ||
                                (g = r.getIconClass(e, a)) ||
                                (m = p.buttonTextDefault)
                        var E = p.buttonTextOverride || p.buttonTextDefault
                        y = Xe(
                            p.buttonTitleOverride ||
                                p.buttonTitleDefault ||
                                t.viewHint,
                            [E, e],
                            E
                        )
                    } else if (i[e])
                        if (
                            ((v = function () {
                                i[e]()
                            }),
                            (m = l[e]) ||
                                (g = r.getIconClass(e, a)) ||
                                (m = u[e]),
                            'prevYear' === e || 'nextYear' === e)
                        ) {
                            var S = 'prevYear' === e ? 'prev' : 'next'
                            y = Xe(
                                c[S] || d[S],
                                [u.year || 'year', 'year'],
                                u[e]
                            )
                        } else
                            y = function (t) {
                                return Xe(c[e] || d[e], [u[t] || t, t], u[e])
                            }
                    return {
                        buttonName: e,
                        buttonClick: v,
                        buttonIcon: g,
                        buttonText: m,
                        buttonHint: y,
                    }
                })
            }),
            viewsWithButtons: f,
            hasTitle: h,
        }
    }
    function _i(e, t, n, r, o) {
        var i = null
        'GET' === (e = e.toUpperCase())
            ? (t = (function (e, t) {
                  return e + (-1 === e.indexOf('?') ? '?' : '&') + Ti(t)
              })(t, n))
            : (i = Ti(n))
        var a = new XMLHttpRequest()
        a.open(e, t, !0),
            'GET' !== e &&
                a.setRequestHeader(
                    'Content-Type',
                    'application/x-www-form-urlencoded'
                ),
            (a.onload = function () {
                if (a.status >= 200 && a.status < 400) {
                    var e = !1,
                        t = void 0
                    try {
                        ;(t = JSON.parse(a.responseText)), (e = !0)
                    } catch (e) {}
                    e ? r(t, a) : o('Failure parsing JSON', a)
                } else o('Request failed', a)
            }),
            (a.onerror = function () {
                o('Request failed', a)
            }),
            a.send(i)
    }
    function Ti(e) {
        var t = []
        for (var n in e)
            t.push(encodeURIComponent(n) + '=' + encodeURIComponent(e[n]))
        return t.join('&')
    }
    function ki(e, t) {
        for (
            var n = Ct(t.getCurrentData().eventSources), r = [], o = 0, i = e;
            o < i.length;
            o++
        ) {
            for (var a = i[o], s = !1, l = 0; l < n.length; l += 1)
                if (n[l]._raw === a) {
                    n.splice(l, 1), (s = !0)
                    break
                }
            s || r.push(a)
        }
        for (var u = 0, c = n; u < c.length; u++) {
            var d = c[u]
            t.dispatch({ type: 'REMOVE_EVENT_SOURCE', sourceId: d.sourceId })
        }
        for (var p = 0, f = r; p < f.length; p++) {
            var h = f[p]
            t.calendarApi.addEventSource(h)
        }
    }
    var xi = [
        zo({
            eventSourceDefs: [
                {
                    ignoreRange: !0,
                    parseMeta: function (e) {
                        return Array.isArray(e.events) ? e.events : null
                    },
                    fetch: function (e, t) {
                        t({ rawEvents: e.eventSource.meta })
                    },
                },
            ],
        }),
        zo({
            eventSourceDefs: [
                {
                    parseMeta: function (e) {
                        return 'function' == typeof e.events ? e.events : null
                    },
                    fetch: function (e, t, n) {
                        var r = e.context.dateEnv
                        yo(
                            e.eventSource.meta.bind(null, hr(e.range, r)),
                            function (e) {
                                t({ rawEvents: e })
                            },
                            n
                        )
                    },
                },
            ],
        }),
        zo({
            eventSourceRefiners: {
                method: String,
                extraParams: yn,
                startParam: String,
                endParam: String,
                timeZoneParam: String,
            },
            eventSourceDefs: [
                {
                    parseMeta: function (e) {
                        return !e.url || ('json' !== e.format && e.format)
                            ? null
                            : {
                                  url: e.url,
                                  format: 'json',
                                  method: (e.method || 'GET').toUpperCase(),
                                  extraParams: e.extraParams,
                                  startParam: e.startParam,
                                  endParam: e.endParam,
                                  timeZoneParam: e.timeZoneParam,
                              }
                    },
                    fetch: function (e, t, n) {
                        var o = e.eventSource.meta,
                            i = (function (e, t, n) {
                                var o,
                                    i,
                                    a,
                                    s,
                                    l = n.dateEnv,
                                    u = n.options,
                                    c = {}
                                null == (o = e.startParam) && (o = u.startParam)
                                null == (i = e.endParam) && (i = u.endParam)
                                null == (a = e.timeZoneParam) &&
                                    (a = u.timeZoneParam)
                                s =
                                    'function' == typeof e.extraParams
                                        ? e.extraParams()
                                        : e.extraParams || {}
                                r(c, s),
                                    (c[o] = l.formatIso(t.start)),
                                    (c[i] = l.formatIso(t.end)),
                                    'local' !== l.timeZone &&
                                        (c[a] = l.timeZone)
                                return c
                            })(o, e.range, e.context)
                        _i(
                            o.method,
                            o.url,
                            i,
                            function (e, n) {
                                t({ rawEvents: e, xhr: n })
                            },
                            function (e, t) {
                                n({ message: e, xhr: t })
                            }
                        )
                    },
                },
            ],
        }),
        zo({
            recurringTypes: [
                {
                    parse: function (e, t) {
                        if (
                            e.daysOfWeek ||
                            e.startTime ||
                            e.endTime ||
                            e.startRecur ||
                            e.endRecur
                        ) {
                            var n = {
                                    daysOfWeek: e.daysOfWeek || null,
                                    startTime: e.startTime || null,
                                    endTime: e.endTime || null,
                                    startRecur: e.startRecur
                                        ? t.createMarker(e.startRecur)
                                        : null,
                                    endRecur: e.endRecur
                                        ? t.createMarker(e.endRecur)
                                        : null,
                                },
                                r = void 0
                            return (
                                e.duration && (r = e.duration),
                                !r &&
                                    e.startTime &&
                                    e.endTime &&
                                    ((o = e.endTime),
                                    (i = e.startTime),
                                    (r = {
                                        years: o.years - i.years,
                                        months: o.months - i.months,
                                        days: o.days - i.days,
                                        milliseconds:
                                            o.milliseconds - i.milliseconds,
                                    })),
                                {
                                    allDayGuess: Boolean(
                                        !e.startTime && !e.endTime
                                    ),
                                    duration: r,
                                    typeData: n,
                                }
                            )
                        }
                        var o, i
                        return null
                    },
                    expand: function (e, t, n) {
                        var r = jn(t, { start: e.startRecur, end: e.endRecur })
                        return r
                            ? (function (e, t, n, r) {
                                  var o = e ? Dt(e) : null,
                                      i = lt(n.start),
                                      a = n.end,
                                      s = []
                                  for (; i < a; ) {
                                      var l = void 0
                                      ;(o && !o[i.getUTCDay()]) ||
                                          ((l = t ? r.add(i, t) : i),
                                          s.push(l)),
                                          (i = tt(i, 1))
                                  }
                                  return s
                              })(e.daysOfWeek, e.startTime, r, n)
                            : []
                    },
                },
            ],
            eventRefiners: {
                daysOfWeek: yn,
                startTime: Nt,
                endTime: Nt,
                duration: Nt,
                startRecur: yn,
                endRecur: yn,
            },
        }),
        zo({
            optionChangeHandlers: {
                events: function (e, t) {
                    ki([e], t)
                },
                eventSources: ki,
            },
        }),
        zo({
            isLoadingFuncs: [
                function (e) {
                    return ui(e.eventSources)
                },
            ],
            contentTypeHandlers: {
                html: function () {
                    var e = null,
                        t = ''
                    return {
                        render: function (n, r) {
                            ;(n === e && r === t) || (n.innerHTML = r),
                                (e = n),
                                (t = r)
                        },
                        destroy: function () {
                            ;(e.innerHTML = ''), (e = null), (t = '')
                        },
                    }
                },
                domNodes: function () {
                    var e = null,
                        t = []
                    function n() {
                        t.forEach(Ee), (t = []), (e = null)
                    }
                    return {
                        render: function (r, o) {
                            var i = Array.prototype.slice.call(o)
                            if (r !== e || !Gt(t, i)) {
                                for (var a = 0, s = i; a < s.length; a++) {
                                    var l = s[a]
                                    r.appendChild(l)
                                }
                                n()
                            }
                            ;(e = r), (t = i)
                        },
                        destroy: n,
                    }
                },
            },
            propSetHandlers: {
                dateProfile: function (e, t) {
                    t.emitter.trigger(
                        'datesSet',
                        r(r({}, hr(e.activeRange, t.dateEnv)), {
                            view: t.viewApi,
                        })
                    )
                },
                eventStore: function (e, t) {
                    var n = t.emitter
                    n.hasHandlers('eventsSet') &&
                        n.trigger('eventsSet', Ir(e, t))
                },
            },
        }),
    ]
    var Mi = (function () {
            function e(e) {
                ;(this.drainedOption = e),
                    (this.isRunning = !1),
                    (this.isDirty = !1),
                    (this.pauseDepths = {}),
                    (this.timeoutId = 0)
            }
            return (
                (e.prototype.request = function (e) {
                    ;(this.isDirty = !0),
                        this.isPaused() ||
                            (this.clearTimeout(),
                            null == e
                                ? this.tryDrain()
                                : (this.timeoutId = setTimeout(
                                      this.tryDrain.bind(this),
                                      e
                                  )))
                }),
                (e.prototype.pause = function (e) {
                    void 0 === e && (e = '')
                    var t = this.pauseDepths
                    ;(t[e] = (t[e] || 0) + 1), this.clearTimeout()
                }),
                (e.prototype.resume = function (e, t) {
                    void 0 === e && (e = '')
                    var n = this.pauseDepths
                    if (e in n) {
                        if (t) delete n[e]
                        else (n[e] -= 1), n[e] <= 0 && delete n[e]
                        this.tryDrain()
                    }
                }),
                (e.prototype.isPaused = function () {
                    return Object.keys(this.pauseDepths).length
                }),
                (e.prototype.tryDrain = function () {
                    if (!this.isRunning && !this.isPaused()) {
                        for (this.isRunning = !0; this.isDirty; )
                            (this.isDirty = !1), this.drained()
                        this.isRunning = !1
                    }
                }),
                (e.prototype.clear = function () {
                    this.clearTimeout(),
                        (this.isDirty = !1),
                        (this.pauseDepths = {})
                }),
                (e.prototype.clearTimeout = function () {
                    this.timeoutId &&
                        (clearTimeout(this.timeoutId), (this.timeoutId = 0))
                }),
                (e.prototype.drained = function () {
                    this.drainedOption && this.drainedOption()
                }),
                e
            )
        })(),
        Ii = (function () {
            function e(e, t) {
                ;(this.runTaskOption = e),
                    (this.drainedOption = t),
                    (this.queue = []),
                    (this.delayedRunner = new Mi(this.drain.bind(this)))
            }
            return (
                (e.prototype.request = function (e, t) {
                    this.queue.push(e), this.delayedRunner.request(t)
                }),
                (e.prototype.pause = function (e) {
                    this.delayedRunner.pause(e)
                }),
                (e.prototype.resume = function (e, t) {
                    this.delayedRunner.resume(e, t)
                }),
                (e.prototype.drain = function () {
                    for (var e = this.queue; e.length; ) {
                        for (var t = [], n = void 0; (n = e.shift()); )
                            this.runTask(n), t.push(n)
                        this.drained(t)
                    }
                }),
                (e.prototype.runTask = function (e) {
                    this.runTaskOption && this.runTaskOption(e)
                }),
                (e.prototype.drained = function (e) {
                    this.drainedOption && this.drainedOption(e)
                }),
                e
            )
        })()
    function Pi(e, t, n) {
        var r
        return (
            (r = /^(year|month)$/.test(e.currentRangeUnit)
                ? e.currentRange
                : e.activeRange),
            n.formatRange(
                r.start,
                r.end,
                ln(
                    t.titleFormat ||
                        (function (e) {
                            var t = e.currentRangeUnit
                            if ('year' === t) return { year: 'numeric' }
                            if ('month' === t)
                                return { year: 'numeric', month: 'long' }
                            var n = st(e.currentRange.start, e.currentRange.end)
                            if (null !== n && n > 1)
                                return {
                                    year: 'numeric',
                                    month: 'short',
                                    day: 'numeric',
                                }
                            return {
                                year: 'numeric',
                                month: 'long',
                                day: 'numeric',
                            }
                        })(e)
                ),
                {
                    isEndExclusive: e.isRangeAllDay,
                    defaultSeparator: t.titleRangeSeparator,
                }
            )
        )
    }
    var Ni = (function () {
        function e(e) {
            var t = this
            ;(this.computeOptionsData = qt(this._computeOptionsData)),
                (this.computeCurrentViewData = qt(
                    this._computeCurrentViewData
                )),
                (this.organizeRawLocales = qt(Fr)),
                (this.buildLocale = qt(Br)),
                (this.buildPluginHooks = jo()),
                (this.buildDateEnv = qt(Hi)),
                (this.buildTheme = qt(Oi)),
                (this.parseToolbars = qt(Ci)),
                (this.buildViewSpecs = qt(oi)),
                (this.buildDateProfileGenerator = Yt(Ai)),
                (this.buildViewApi = qt(Li)),
                (this.buildViewUiProps = Yt(Vi)),
                (this.buildEventUiBySource = qt(Ui, wt)),
                (this.buildEventUiBases = qt(Wi)),
                (this.parseContextBusinessHours = Yt(Bi)),
                (this.buildTitle = qt(Pi)),
                (this.emitter = new Eo()),
                (this.actionRunner = new Ii(
                    this._handleAction.bind(this),
                    this.updateData.bind(this)
                )),
                (this.currentCalendarOptionsInput = {}),
                (this.currentCalendarOptionsRefined = {}),
                (this.currentViewOptionsInput = {}),
                (this.currentViewOptionsRefined = {}),
                (this.currentCalendarOptionsRefiners = {}),
                (this.getCurrentData = function () {
                    return t.data
                }),
                (this.dispatch = function (e) {
                    t.actionRunner.request(e)
                }),
                (this.props = e),
                this.actionRunner.pause()
            var n = {},
                o = this.computeOptionsData(
                    e.optionOverrides,
                    n,
                    e.calendarApi
                ),
                i = o.calendarOptions.initialView || o.pluginHooks.initialView,
                a = this.computeCurrentViewData(i, o, e.optionOverrides, n)
            ;(e.calendarApi.currentDataManager = this),
                this.emitter.setThisContext(e.calendarApi),
                this.emitter.setOptions(a.options)
            var s,
                l,
                u,
                c =
                    ((s = o.calendarOptions),
                    (l = o.dateEnv),
                    null != (u = s.initialDate)
                        ? l.createMarker(u)
                        : Tr(s.now, l)),
                d = a.dateProfileGenerator.build(c)
            Zn(d.activeRange, c) || (c = d.currentRange.start)
            for (
                var p = {
                        dateEnv: o.dateEnv,
                        options: o.calendarOptions,
                        pluginHooks: o.pluginHooks,
                        calendarApi: e.calendarApi,
                        dispatch: this.dispatch,
                        emitter: this.emitter,
                        getCurrentData: this.getCurrentData,
                    },
                    f = 0,
                    h = o.pluginHooks.contextInit;
                f < h.length;
                f++
            ) {
                ;(0, h[f])(p)
            }
            for (
                var v = si(o.calendarOptions, d, p),
                    g = {
                        dynamicOptionOverrides: n,
                        currentViewType: i,
                        currentDate: c,
                        dateProfile: d,
                        businessHours: this.parseContextBusinessHours(p),
                        eventSources: v,
                        eventUiBases: {},
                        eventStore: { defs: {}, instances: {} },
                        renderableEventStore: { defs: {}, instances: {} },
                        dateSelection: null,
                        eventSelection: '',
                        eventDrag: null,
                        eventResize: null,
                        selectionConfig:
                            this.buildViewUiProps(p).selectionConfig,
                    },
                    m = r(r({}, p), g),
                    y = 0,
                    E = o.pluginHooks.reducers;
                y < E.length;
                y++
            ) {
                var S = E[y]
                r(g, S(null, null, m))
            }
            Fi(g, p) && this.emitter.trigger('loading', !0),
                (this.state = g),
                this.updateData(),
                this.actionRunner.resume()
        }
        return (
            (e.prototype.resetOptions = function (e, t) {
                var n = this.props
                ;(n.optionOverrides = t ? r(r({}, n.optionOverrides), e) : e),
                    this.actionRunner.request({ type: 'NOTHING' })
            }),
            (e.prototype._handleAction = function (e) {
                var t = this,
                    n = t.props,
                    o = t.state,
                    i = t.emitter,
                    a = (function (e, t) {
                        var n
                        switch (t.type) {
                            case 'SET_OPTION':
                                return r(
                                    r({}, e),
                                    (((n = {})[t.optionName] =
                                        t.rawOptionValue),
                                    n)
                                )
                            default:
                                return e
                        }
                    })(o.dynamicOptionOverrides, e),
                    s = this.computeOptionsData(
                        n.optionOverrides,
                        a,
                        n.calendarApi
                    ),
                    l = (function (e, t) {
                        switch (t.type) {
                            case 'CHANGE_VIEW_TYPE':
                                e = t.viewType
                        }
                        return e
                    })(o.currentViewType, e),
                    u = this.computeCurrentViewData(l, s, n.optionOverrides, a)
                ;(n.calendarApi.currentDataManager = this),
                    i.setThisContext(n.calendarApi),
                    i.setOptions(u.options)
                var c = {
                        dateEnv: s.dateEnv,
                        options: s.calendarOptions,
                        pluginHooks: s.pluginHooks,
                        calendarApi: n.calendarApi,
                        dispatch: this.dispatch,
                        emitter: i,
                        getCurrentData: this.getCurrentData,
                    },
                    d = o.currentDate,
                    p = o.dateProfile
                this.data &&
                    this.data.dateProfileGenerator !== u.dateProfileGenerator &&
                    (p = u.dateProfileGenerator.build(d)),
                    (p = (function (e, t, n, r) {
                        var o
                        switch (t.type) {
                            case 'CHANGE_VIEW_TYPE':
                                return r.build(t.dateMarker || n)
                            case 'CHANGE_DATE':
                                return r.build(t.dateMarker)
                            case 'PREV':
                                if ((o = r.buildPrev(e, n)).isValid) return o
                                break
                            case 'NEXT':
                                if ((o = r.buildNext(e, n)).isValid) return o
                        }
                        return e
                    })(
                        p,
                        e,
                        (d = (function (e, t) {
                            switch (t.type) {
                                case 'CHANGE_DATE':
                                    return t.dateMarker
                                default:
                                    return e
                            }
                        })(d, e)),
                        u.dateProfileGenerator
                    )),
                    ('PREV' !== e.type &&
                        'NEXT' !== e.type &&
                        Zn(p.currentRange, d)) ||
                        (d = p.currentRange.start)
                for (
                    var f = li(o.eventSources, e, p, c),
                        h = gi(o.eventStore, e, f, p, c),
                        v =
                            (ui(f) &&
                                !u.options.progressiveEventRendering &&
                                o.renderableEventStore) ||
                            h,
                        g = this.buildViewUiProps(c),
                        m = g.eventUiSingleBase,
                        y = g.selectionConfig,
                        E = this.buildEventUiBySource(f),
                        S = {
                            dynamicOptionOverrides: a,
                            currentViewType: l,
                            currentDate: d,
                            dateProfile: p,
                            eventSources: f,
                            eventStore: h,
                            renderableEventStore: v,
                            selectionConfig: y,
                            eventUiBases: this.buildEventUiBases(v.defs, m, E),
                            businessHours: this.parseContextBusinessHours(c),
                            dateSelection: Ei(o.dateSelection, e),
                            eventSelection: Si(o.eventSelection, e),
                            eventDrag: bi(o.eventDrag, e),
                            eventResize: Di(o.eventResize, e),
                        },
                        b = r(r({}, c), S),
                        D = 0,
                        C = s.pluginHooks.reducers;
                    D < C.length;
                    D++
                ) {
                    var w = C[D]
                    r(S, w(o, e, b))
                }
                var R = Fi(o, c),
                    _ = Fi(S, c)
                !R && _
                    ? i.trigger('loading', !0)
                    : R && !_ && i.trigger('loading', !1),
                    (this.state = S),
                    n.onAction && n.onAction(e)
            }),
            (e.prototype.updateData = function () {
                var e,
                    t,
                    n,
                    o,
                    i,
                    a,
                    s,
                    l,
                    u,
                    c = this.props,
                    d = this.state,
                    p = this.data,
                    f = this.computeOptionsData(
                        c.optionOverrides,
                        d.dynamicOptionOverrides,
                        c.calendarApi
                    ),
                    h = this.computeCurrentViewData(
                        d.currentViewType,
                        f,
                        c.optionOverrides,
                        d.dynamicOptionOverrides
                    ),
                    v = (this.data = r(
                        r(
                            r(
                                {
                                    viewTitle: this.buildTitle(
                                        d.dateProfile,
                                        h.options,
                                        f.dateEnv
                                    ),
                                    calendarApi: c.calendarApi,
                                    dispatch: this.dispatch,
                                    emitter: this.emitter,
                                    getCurrentData: this.getCurrentData,
                                },
                                f
                            ),
                            h
                        ),
                        d
                    )),
                    g = f.pluginHooks.optionChangeHandlers,
                    m = p && p.calendarOptions,
                    y = f.calendarOptions
                if (m && m !== y)
                    for (var E in (m.timeZone !== y.timeZone &&
                        ((d.eventSources = v.eventSources =
                            ((a = v.eventSources),
                            (s = d.dateProfile),
                            (l = v),
                            (u = s ? s.activeRange : null),
                            pi(a, hi(a, l), u, !0, l))),
                        (d.eventStore = v.eventStore =
                            ((e = v.eventStore),
                            (t = p.dateEnv),
                            (n = v.dateEnv),
                            (o = e.defs),
                            (i = bt(e.instances, function (e) {
                                var i = o[e.defId]
                                return i.allDay || i.recurringDef
                                    ? e
                                    : r(r({}, e), {
                                          range: {
                                              start: n.createMarker(
                                                  t.toDate(
                                                      e.range.start,
                                                      e.forcedStartTzo
                                                  )
                                              ),
                                              end: n.createMarker(
                                                  t.toDate(
                                                      e.range.end,
                                                      e.forcedEndTzo
                                                  )
                                              ),
                                          },
                                          forcedStartTzo: n.canComputeOffset
                                              ? null
                                              : e.forcedStartTzo,
                                          forcedEndTzo: n.canComputeOffset
                                              ? null
                                              : e.forcedEndTzo,
                                      })
                            })),
                            { defs: o, instances: i }))),
                    g))
                        m[E] !== y[E] && g[E](y[E], v)
                c.onData && c.onData(v)
            }),
            (e.prototype._computeOptionsData = function (e, t, n) {
                var r = this.processRawCalendarOptions(e, t),
                    o = r.refinedOptions,
                    i = r.pluginHooks,
                    a = r.localeDefaults,
                    s = r.availableLocaleData
                zi(r.extra)
                var l = this.buildDateEnv(
                        o.timeZone,
                        o.locale,
                        o.weekNumberCalculation,
                        o.firstDay,
                        o.weekText,
                        i,
                        s,
                        o.defaultRangeSeparator
                    ),
                    u = this.buildViewSpecs(i.views, e, t, a),
                    c = this.buildTheme(o, i)
                return {
                    calendarOptions: o,
                    pluginHooks: i,
                    dateEnv: l,
                    viewSpecs: u,
                    theme: c,
                    toolbarConfig: this.parseToolbars(o, e, c, u, n),
                    localeDefaults: a,
                    availableRawLocales: s.map,
                }
            }),
            (e.prototype.processRawCalendarOptions = function (e, t) {
                var n = gn([cn, e, t]),
                    o = n.locales,
                    i = n.locale,
                    a = this.organizeRawLocales(o),
                    s = a.map,
                    l = this.buildLocale(i || a.defaultCode, s).options,
                    u = this.buildPluginHooks(e.plugins || [], xi),
                    c = (this.currentCalendarOptionsRefiners = r(
                        r(r(r(r({}, un), dn), pn), u.listenerRefiners),
                        u.optionRefiners
                    )),
                    d = {},
                    p = gn([cn, l, e, t]),
                    f = {},
                    h = this.currentCalendarOptionsInput,
                    v = this.currentCalendarOptionsRefined,
                    g = !1
                for (var m in p)
                    'plugins' !== m &&
                        (p[m] === h[m] || (fn[m] && m in h && fn[m](h[m], p[m]))
                            ? (f[m] = v[m])
                            : c[m]
                              ? ((f[m] = c[m](p[m])), (g = !0))
                              : (d[m] = h[m]))
                return (
                    g &&
                        ((this.currentCalendarOptionsInput = p),
                        (this.currentCalendarOptionsRefined = f)),
                    {
                        rawOptions: this.currentCalendarOptionsInput,
                        refinedOptions: this.currentCalendarOptionsRefined,
                        pluginHooks: u,
                        availableLocaleData: a,
                        localeDefaults: l,
                        extra: d,
                    }
                )
            }),
            (e.prototype._computeCurrentViewData = function (e, t, n, r) {
                var o = t.viewSpecs[e]
                if (!o)
                    throw new Error(
                        'viewType "' +
                            e +
                            '" is not available. Please make sure you\'ve loaded all neccessary plugins'
                    )
                var i = this.processRawViewOptions(
                        o,
                        t.pluginHooks,
                        t.localeDefaults,
                        n,
                        r
                    ),
                    a = i.refinedOptions
                return (
                    zi(i.extra),
                    {
                        viewSpec: o,
                        options: a,
                        dateProfileGenerator: this.buildDateProfileGenerator({
                            dateProfileGeneratorClass:
                                o.optionDefaults.dateProfileGeneratorClass,
                            duration: o.duration,
                            durationUnit: o.durationUnit,
                            usesMinMaxTime: o.optionDefaults.usesMinMaxTime,
                            dateEnv: t.dateEnv,
                            calendarApi: this.props.calendarApi,
                            slotMinTime: a.slotMinTime,
                            slotMaxTime: a.slotMaxTime,
                            showNonCurrentDates: a.showNonCurrentDates,
                            dayCount: a.dayCount,
                            dateAlignment: a.dateAlignment,
                            dateIncrement: a.dateIncrement,
                            hiddenDays: a.hiddenDays,
                            weekends: a.weekends,
                            nowInput: a.now,
                            validRangeInput: a.validRange,
                            visibleRangeInput: a.visibleRange,
                            monthMode: a.monthMode,
                            fixedWeekCount: a.fixedWeekCount,
                        }),
                        viewApi: this.buildViewApi(
                            e,
                            this.getCurrentData,
                            t.dateEnv
                        ),
                    }
                )
            }),
            (e.prototype.processRawViewOptions = function (e, t, n, o, i) {
                var a = gn([cn, e.optionDefaults, n, o, e.optionOverrides, i]),
                    s = r(
                        r(r(r(r(r({}, un), dn), pn), vn), t.listenerRefiners),
                        t.optionRefiners
                    ),
                    l = {},
                    u = this.currentViewOptionsInput,
                    c = this.currentViewOptionsRefined,
                    d = !1,
                    p = {}
                for (var f in a)
                    a[f] === u[f] || (fn[f] && fn[f](a[f], u[f]))
                        ? (l[f] = c[f])
                        : (a[f] === this.currentCalendarOptionsInput[f] ||
                          (fn[f] &&
                              fn[f](a[f], this.currentCalendarOptionsInput[f]))
                              ? f in this.currentCalendarOptionsRefined &&
                                (l[f] = this.currentCalendarOptionsRefined[f])
                              : s[f]
                                ? (l[f] = s[f](a[f]))
                                : (p[f] = a[f]),
                          (d = !0))
                return (
                    d &&
                        ((this.currentViewOptionsInput = a),
                        (this.currentViewOptionsRefined = l)),
                    {
                        rawOptions: this.currentViewOptionsInput,
                        refinedOptions: this.currentViewOptionsRefined,
                        extra: p,
                    }
                )
            }),
            e
        )
    })()
    function Hi(e, t, n, r, o, i, a, s) {
        var l = Br(t || a.defaultCode, a.map)
        return new Lr({
            calendarSystem: 'gregory',
            timeZone: e,
            namedTimeZoneImpl: i.namedTimeZonedImpl,
            locale: l,
            weekNumberCalculation: n,
            firstDay: r,
            weekText: o,
            cmdFormatter: i.cmdFormatter,
            defaultSeparator: s,
        })
    }
    function Oi(e, t) {
        return new (t.themeClasses[e.themeSystem] || Go)(e)
    }
    function Ai(e) {
        return new (e.dateProfileGeneratorClass || ai)(e)
    }
    function Li(e, t, n) {
        return new Cr(e, t, n)
    }
    function Ui(e) {
        return bt(e, function (e) {
            return e.ui
        })
    }
    function Wi(e, t, n) {
        var r = { '': t }
        for (var o in e) {
            var i = e[o]
            i.sourceId && n[i.sourceId] && (r[o] = n[i.sourceId])
        }
        return r
    }
    function Vi(e) {
        var t = e.options
        return {
            eventUiSingleBase: kn(
                {
                    display: t.eventDisplay,
                    editable: t.editable,
                    startEditable: t.eventStartEditable,
                    durationEditable: t.eventDurationEditable,
                    constraint: t.eventConstraint,
                    overlap:
                        'boolean' == typeof t.eventOverlap
                            ? t.eventOverlap
                            : void 0,
                    allow: t.eventAllow,
                    backgroundColor: t.eventBackgroundColor,
                    borderColor: t.eventBorderColor,
                    textColor: t.eventTextColor,
                    color: t.eventColor,
                },
                e
            ),
            selectionConfig: kn(
                {
                    constraint: t.selectConstraint,
                    overlap:
                        'boolean' == typeof t.selectOverlap
                            ? t.selectOverlap
                            : void 0,
                    allow: t.selectAllow,
                },
                e
            ),
        }
    }
    function Fi(e, t) {
        for (var n = 0, r = t.pluginHooks.isLoadingFuncs; n < r.length; n++) {
            if ((0, r[n])(e)) return !0
        }
        return !1
    }
    function Bi(e) {
        return Yr(e.options.businessHours, e)
    }
    function zi(e, t) {
        for (var n in e)
            console.warn(
                "Unknown option '" +
                    n +
                    "'" +
                    (t ? " for view '" + t + "'" : '')
            )
    }
    var ji = (function (e) {
        function t(t) {
            var n = e.call(this, t) || this
            return (
                (n.handleData = function (e) {
                    n.dataManager ? n.setState(e) : (n.state = e)
                }),
                (n.dataManager = new Ni({
                    optionOverrides: t.optionOverrides,
                    calendarApi: t.calendarApi,
                    onData: n.handleData,
                })),
                n
            )
        }
        return (
            n(t, e),
            (t.prototype.render = function () {
                return this.props.children(this.state)
            }),
            (t.prototype.componentDidUpdate = function (e) {
                var t = this.props.optionOverrides
                t !== e.optionOverrides && this.dataManager.resetOptions(t)
            }),
            t
        )
    })(Ro)
    var Gi = function (e) {
            this.timeZoneName = e
        },
        qi = (function () {
            function e() {
                ;(this.strictOrder = !1),
                    (this.allowReslicing = !1),
                    (this.maxCoord = -1),
                    (this.maxStackCnt = -1),
                    (this.levelCoords = []),
                    (this.entriesByLevel = []),
                    (this.stackCnts = {})
            }
            return (
                (e.prototype.addSegs = function (e) {
                    for (var t = [], n = 0, r = e; n < r.length; n++) {
                        var o = r[n]
                        this.insertEntry(o, t)
                    }
                    return t
                }),
                (e.prototype.insertEntry = function (e, t) {
                    var n = this.findInsertion(e)
                    return this.isInsertionValid(n, e)
                        ? (this.insertEntryAt(e, n), 1)
                        : this.handleInvalidInsertion(n, e, t)
                }),
                (e.prototype.isInsertionValid = function (e, t) {
                    return (
                        (-1 === this.maxCoord ||
                            e.levelCoord + t.thickness <= this.maxCoord) &&
                        (-1 === this.maxStackCnt ||
                            e.stackCnt < this.maxStackCnt)
                    )
                }),
                (e.prototype.handleInvalidInsertion = function (e, t, n) {
                    return this.allowReslicing && e.touchingEntry
                        ? this.splitEntry(t, e.touchingEntry, n)
                        : (n.push(t), 0)
                }),
                (e.prototype.splitEntry = function (e, t, n) {
                    var r = 0,
                        i = [],
                        a = e.span,
                        s = t.span
                    return (
                        a.start < s.start &&
                            (r += this.insertEntry(
                                {
                                    index: e.index,
                                    thickness: e.thickness,
                                    span: { start: a.start, end: s.start },
                                },
                                i
                            )),
                        a.end > s.end &&
                            (r += this.insertEntry(
                                {
                                    index: e.index,
                                    thickness: e.thickness,
                                    span: { start: s.end, end: a.end },
                                },
                                i
                            )),
                        r
                            ? (n.push.apply(
                                  n,
                                  o(
                                      [
                                          {
                                              index: e.index,
                                              thickness: e.thickness,
                                              span: $i(s, a),
                                          },
                                      ],
                                      i
                                  )
                              ),
                              r)
                            : (n.push(e), 0)
                    )
                }),
                (e.prototype.insertEntryAt = function (e, t) {
                    var n = this.entriesByLevel,
                        r = this.levelCoords
                    ;-1 === t.lateral
                        ? (Ji(r, t.level, t.levelCoord), Ji(n, t.level, [e]))
                        : Ji(n[t.level], t.lateral, e),
                        (this.stackCnts[Zi(e)] = t.stackCnt)
                }),
                (e.prototype.findInsertion = function (e) {
                    for (
                        var t = this,
                            n = t.levelCoords,
                            r = t.entriesByLevel,
                            o = t.strictOrder,
                            i = t.stackCnts,
                            a = n.length,
                            s = 0,
                            l = -1,
                            u = -1,
                            c = null,
                            d = 0,
                            p = 0;
                        p < a;
                        p += 1
                    ) {
                        var f = n[p]
                        if (!o && f >= s + e.thickness) break
                        for (
                            var h = r[p],
                                v = void 0,
                                g = Qi(h, e.span.start, Yi),
                                m = g[0] + g[1];
                            (v = h[m]) && v.span.start < e.span.end;

                        ) {
                            var y = f + v.thickness
                            y > s && ((s = y), (c = v), (l = p), (u = m)),
                                y === s && (d = Math.max(d, i[Zi(v)] + 1)),
                                (m += 1)
                        }
                    }
                    var E = 0
                    if (c) for (E = l + 1; E < a && n[E] < s; ) E += 1
                    var S = -1
                    return (
                        E < a &&
                            n[E] === s &&
                            (S = Qi(r[E], e.span.end, Yi)[0]),
                        {
                            touchingLevel: l,
                            touchingLateral: u,
                            touchingEntry: c,
                            stackCnt: d,
                            levelCoord: s,
                            level: E,
                            lateral: S,
                        }
                    )
                }),
                (e.prototype.toRects = function () {
                    for (
                        var e = this.entriesByLevel,
                            t = this.levelCoords,
                            n = e.length,
                            o = [],
                            i = 0;
                        i < n;
                        i += 1
                    )
                        for (
                            var a = e[i], s = t[i], l = 0, u = a;
                            l < u.length;
                            l++
                        ) {
                            var c = u[l]
                            o.push(r(r({}, c), { levelCoord: s }))
                        }
                    return o
                }),
                e
            )
        })()
    function Yi(e) {
        return e.span.end
    }
    function Zi(e) {
        return e.index + ':' + e.span.start
    }
    function Xi(e) {
        for (var t = [], n = 0, r = e; n < r.length; n++) {
            for (
                var o = r[n],
                    i = [],
                    a = { span: o.span, entries: [o] },
                    s = 0,
                    l = t;
                s < l.length;
                s++
            ) {
                var u = l[s]
                $i(u.span, a.span)
                    ? (a = {
                          entries: u.entries.concat(a.entries),
                          span: Ki(u.span, a.span),
                      })
                    : i.push(u)
            }
            i.push(a), (t = i)
        }
        return t
    }
    function Ki(e, t) {
        return {
            start: Math.min(e.start, t.start),
            end: Math.max(e.end, t.end),
        }
    }
    function $i(e, t) {
        var n = Math.max(e.start, t.start),
            r = Math.min(e.end, t.end)
        return n < r ? { start: n, end: r } : null
    }
    function Ji(e, t, n) {
        e.splice(t, 0, n)
    }
    function Qi(e, t, n) {
        var r = 0,
            o = e.length
        if (!o || t < n(e[r])) return [0, 0]
        if (t > n(e[o - 1])) return [o, 0]
        for (; r < o; ) {
            var i = Math.floor(r + (o - r) / 2),
                a = n(e[i])
            if (t < a) o = i
            else {
                if (!(t > a)) return [i, 1]
                r = i + 1
            }
        }
        return [r, 0]
    }
    var ea = (function () {
        function e(e) {
            ;(this.component = e.component),
                (this.isHitComboAllowed = e.isHitComboAllowed || null)
        }
        return (e.prototype.destroy = function () {}), e
    })()
    function ta(e, t) {
        return {
            component: e,
            el: t.el,
            useEventCenter: null == t.useEventCenter || t.useEventCenter,
            isHitComboAllowed: t.isHitComboAllowed || null,
        }
    }
    function na(e) {
        var t
        return ((t = {})[e.component.uid] = e), t
    }
    var ra = {},
        oa = (function () {
            function e(e, t) {
                this.emitter = new Eo()
            }
            return (
                (e.prototype.destroy = function () {}),
                (e.prototype.setMirrorIsVisible = function (e) {}),
                (e.prototype.setMirrorNeedsRevert = function (e) {}),
                (e.prototype.setAutoScrollEnabled = function (e) {}),
                e
            )
        })(),
        ia = {},
        aa = { startTime: Nt, duration: Nt, create: Boolean, sourceId: String }
    function sa(e) {
        var t = mn(e, aa),
            n = t.refined,
            r = t.extra
        return {
            startTime: n.startTime || null,
            duration: n.duration || null,
            create: null == n.create || n.create,
            sourceId: n.sourceId,
            leftoverProps: r,
        }
    }
    var la = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this,
                        t = this.props.widgetGroups.map(function (t) {
                            return e.renderWidgetGroup(t)
                        })
                    return _o.apply(
                        void 0,
                        o(['div', { className: 'fc-toolbar-chunk' }], t)
                    )
                }),
                (t.prototype.renderWidgetGroup = function (e) {
                    for (
                        var t = this.props,
                            n = this.context.theme,
                            r = [],
                            i = !0,
                            a = 0,
                            s = e;
                        a < s.length;
                        a++
                    ) {
                        var l = s[a],
                            u = l.buttonName,
                            c = l.buttonClick,
                            d = l.buttonText,
                            p = l.buttonIcon,
                            f = l.buttonHint
                        if ('title' === u)
                            (i = !1),
                                r.push(
                                    _o(
                                        'h2',
                                        {
                                            className: 'fc-toolbar-title',
                                            id: t.titleId,
                                        },
                                        t.title
                                    )
                                )
                        else {
                            var h = u === t.activeButton,
                                v =
                                    (!t.isTodayEnabled && 'today' === u) ||
                                    (!t.isPrevEnabled && 'prev' === u) ||
                                    (!t.isNextEnabled && 'next' === u),
                                g = [
                                    'fc-' + u + '-button',
                                    n.getClass('button'),
                                ]
                            h && g.push(n.getClass('buttonActive')),
                                r.push(
                                    _o(
                                        'button',
                                        {
                                            type: 'button',
                                            title:
                                                'function' == typeof f
                                                    ? f(t.navUnit)
                                                    : f,
                                            disabled: v,
                                            'aria-pressed': h,
                                            className: g.join(' '),
                                            onClick: c,
                                        },
                                        d ||
                                            (p
                                                ? _o('span', { className: p })
                                                : '')
                                    )
                                )
                        }
                    }
                    if (r.length > 1) {
                        var m = (i && n.getClass('buttonGroup')) || ''
                        return _o.apply(void 0, o(['div', { className: m }], r))
                    }
                    return r[0]
                }),
                t
            )
        })(Uo),
        ua = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e,
                        t,
                        n = this.props,
                        r = n.model,
                        o = n.extraClassName,
                        i = !1,
                        a = r.sectionWidgets,
                        s = a.center
                    return (
                        a.left ? ((i = !0), (e = a.left)) : (e = a.start),
                        a.right ? ((i = !0), (t = a.right)) : (t = a.end),
                        _o(
                            'div',
                            {
                                className: [
                                    o || '',
                                    'fc-toolbar',
                                    i ? 'fc-toolbar-ltr' : '',
                                ].join(' '),
                            },
                            this.renderSection('start', e || []),
                            this.renderSection('center', s || []),
                            this.renderSection('end', t || [])
                        )
                    )
                }),
                (t.prototype.renderSection = function (e, t) {
                    var n = this.props
                    return _o(la, {
                        key: e,
                        widgetGroups: t,
                        title: n.title,
                        navUnit: n.navUnit,
                        activeButton: n.activeButton,
                        isTodayEnabled: n.isTodayEnabled,
                        isPrevEnabled: n.isPrevEnabled,
                        isNextEnabled: n.isNextEnabled,
                        titleId: n.titleId,
                    })
                }),
                t
            )
        })(Uo),
        ca = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (
                    (t.state = { availableWidth: null }),
                    (t.handleEl = function (e) {
                        ;(t.el = e),
                            Fo(t.props.elRef, e),
                            t.updateAvailableWidth()
                    }),
                    (t.handleResize = function () {
                        t.updateAvailableWidth()
                    }),
                    t
                )
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.props,
                        t = this.state,
                        n = e.aspectRatio,
                        r = [
                            'fc-view-harness',
                            n || e.liquid || e.height
                                ? 'fc-view-harness-active'
                                : 'fc-view-harness-passive',
                        ],
                        o = '',
                        i = ''
                    return (
                        n
                            ? null !== t.availableWidth
                                ? (o = t.availableWidth / n)
                                : (i = (1 / n) * 100 + '%')
                            : (o = e.height || ''),
                        _o(
                            'div',
                            {
                                'aria-labelledby': e.labeledById,
                                ref: this.handleEl,
                                className: r.join(' '),
                                style: { height: o, paddingBottom: i },
                            },
                            e.children
                        )
                    )
                }),
                (t.prototype.componentDidMount = function () {
                    this.context.addResizeHandler(this.handleResize)
                }),
                (t.prototype.componentWillUnmount = function () {
                    this.context.removeResizeHandler(this.handleResize)
                }),
                (t.prototype.updateAvailableWidth = function () {
                    this.el &&
                        this.props.aspectRatio &&
                        this.setState({ availableWidth: this.el.offsetWidth })
                }),
                t
            )
        })(Uo),
        da = (function (e) {
            function t(t) {
                var n = e.call(this, t) || this
                return (
                    (n.handleSegClick = function (e, t) {
                        var r = n.component,
                            o = r.context,
                            i = Jn(t)
                        if (i && r.isValidSegDownEl(e.target)) {
                            var a = Se(e.target, '.fc-event-forced-url'),
                                s = a ? a.querySelector('a[href]').href : ''
                            o.emitter.trigger('eventClick', {
                                el: t,
                                event: new xr(
                                    r.context,
                                    i.eventRange.def,
                                    i.eventRange.instance
                                ),
                                jsEvent: e,
                                view: o.viewApi,
                            }),
                                s &&
                                    !e.defaultPrevented &&
                                    (window.location.href = s)
                        }
                    }),
                    (n.destroy = Ie(
                        t.el,
                        'click',
                        '.fc-event',
                        n.handleSegClick
                    )),
                    n
                )
            }
            return n(t, e), t
        })(ea),
        pa = (function (e) {
            function t(t) {
                var n,
                    r,
                    o,
                    i,
                    a,
                    s = e.call(this, t) || this
                return (
                    (s.handleEventElRemove = function (e) {
                        e === s.currentSegEl &&
                            s.handleSegLeave(null, s.currentSegEl)
                    }),
                    (s.handleSegEnter = function (e, t) {
                        Jn(t) &&
                            ((s.currentSegEl = t),
                            s.triggerEvent('eventMouseEnter', e, t))
                    }),
                    (s.handleSegLeave = function (e, t) {
                        s.currentSegEl &&
                            ((s.currentSegEl = null),
                            s.triggerEvent('eventMouseLeave', e, t))
                    }),
                    (s.removeHoverListeners =
                        ((n = t.el),
                        (r = '.fc-event'),
                        (o = s.handleSegEnter),
                        (i = s.handleSegLeave),
                        Ie(n, 'mouseover', r, function (e, t) {
                            if (t !== a) {
                                ;(a = t), o(e, t)
                                var n = function (e) {
                                    ;(a = null),
                                        i(e, t),
                                        t.removeEventListener('mouseleave', n)
                                }
                                t.addEventListener('mouseleave', n)
                            }
                        }))),
                    s
                )
            }
            return (
                n(t, e),
                (t.prototype.destroy = function () {
                    this.removeHoverListeners()
                }),
                (t.prototype.triggerEvent = function (e, t, n) {
                    var r = this.component,
                        o = r.context,
                        i = Jn(n)
                    ;(t && !r.isValidSegDownEl(t.target)) ||
                        o.emitter.trigger(e, {
                            el: n,
                            event: new xr(
                                o,
                                i.eventRange.def,
                                i.eventRange.instance
                            ),
                            jsEvent: t,
                            view: o.viewApi,
                        })
                }),
                t
            )
        })(ea),
        fa = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (
                    (t.buildViewContext = qt(Ao)),
                    (t.buildViewPropTransformers = qt(va)),
                    (t.buildToolbarProps = qt(ha)),
                    (t.headerRef = ko()),
                    (t.footerRef = ko()),
                    (t.interactionsStore = {}),
                    (t.state = { viewLabelId: xe() }),
                    (t.registerInteractiveComponent = function (e, n) {
                        var r = ta(e, n),
                            o = [da, pa]
                                .concat(
                                    t.props.pluginHooks.componentInteractions
                                )
                                .map(function (e) {
                                    return new e(r)
                                })
                        ;(t.interactionsStore[e.uid] = o), (ra[e.uid] = r)
                    }),
                    (t.unregisterInteractiveComponent = function (e) {
                        var n = t.interactionsStore[e.uid]
                        if (n) {
                            for (var r = 0, o = n; r < o.length; r++) {
                                o[r].destroy()
                            }
                            delete t.interactionsStore[e.uid]
                        }
                        delete ra[e.uid]
                    }),
                    (t.resizeRunner = new Mi(function () {
                        t.props.emitter.trigger('_resize', !0),
                            t.props.emitter.trigger('windowResize', {
                                view: t.props.viewApi,
                            })
                    })),
                    (t.handleWindowResize = function (e) {
                        var n = t.props.options
                        n.handleWindowResize &&
                            e.target === window &&
                            t.resizeRunner.request(n.windowResizeDelay)
                    }),
                    t
                )
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e,
                        t = this.props,
                        n = t.toolbarConfig,
                        o = t.options,
                        i = this.buildToolbarProps(
                            t.viewSpec,
                            t.dateProfile,
                            t.dateProfileGenerator,
                            t.currentDate,
                            Tr(t.options.now, t.dateEnv),
                            t.viewTitle
                        ),
                        a = !1,
                        s = ''
                    t.isHeightAuto || t.forPrint
                        ? (s = '')
                        : null != o.height
                          ? (a = !0)
                          : null != o.contentHeight
                            ? (s = o.contentHeight)
                            : (e = Math.max(o.aspectRatio, 0.5))
                    var l = this.buildViewContext(
                            t.viewSpec,
                            t.viewApi,
                            t.options,
                            t.dateProfileGenerator,
                            t.dateEnv,
                            t.theme,
                            t.pluginHooks,
                            t.dispatch,
                            t.getCurrentData,
                            t.emitter,
                            t.calendarApi,
                            this.registerInteractiveComponent,
                            this.unregisterInteractiveComponent
                        ),
                        u =
                            n.header && n.header.hasTitle
                                ? this.state.viewLabelId
                                : ''
                    return _o(
                        Oo.Provider,
                        { value: l },
                        n.header &&
                            _o(
                                ua,
                                r(
                                    {
                                        ref: this.headerRef,
                                        extraClassName: 'fc-header-toolbar',
                                        model: n.header,
                                        titleId: u,
                                    },
                                    i
                                )
                            ),
                        _o(
                            ca,
                            {
                                liquid: a,
                                height: s,
                                aspectRatio: e,
                                labeledById: u,
                            },
                            this.renderView(t),
                            this.buildAppendContent()
                        ),
                        n.footer &&
                            _o(
                                ua,
                                r(
                                    {
                                        ref: this.footerRef,
                                        extraClassName: 'fc-footer-toolbar',
                                        model: n.footer,
                                        titleId: '',
                                    },
                                    i
                                )
                            )
                    )
                }),
                (t.prototype.componentDidMount = function () {
                    var e = this.props
                    ;(this.calendarInteractions =
                        e.pluginHooks.calendarInteractions.map(function (t) {
                            return new t(e)
                        })),
                        window.addEventListener(
                            'resize',
                            this.handleWindowResize
                        )
                    var t = e.pluginHooks.propSetHandlers
                    for (var n in t) t[n](e[n], e)
                }),
                (t.prototype.componentDidUpdate = function (e) {
                    var t = this.props,
                        n = t.pluginHooks.propSetHandlers
                    for (var r in n) t[r] !== e[r] && n[r](t[r], t)
                }),
                (t.prototype.componentWillUnmount = function () {
                    window.removeEventListener(
                        'resize',
                        this.handleWindowResize
                    ),
                        this.resizeRunner.clear()
                    for (
                        var e = 0, t = this.calendarInteractions;
                        e < t.length;
                        e++
                    ) {
                        t[e].destroy()
                    }
                    this.props.emitter.trigger('_unmount')
                }),
                (t.prototype.buildAppendContent = function () {
                    var e = this.props,
                        t = e.pluginHooks.viewContainerAppends.map(
                            function (t) {
                                return t(e)
                            }
                        )
                    return _o.apply(void 0, o([xo, {}], t))
                }),
                (t.prototype.renderView = function (e) {
                    for (
                        var t = e.pluginHooks,
                            n = e.viewSpec,
                            o = {
                                dateProfile: e.dateProfile,
                                businessHours: e.businessHours,
                                eventStore: e.renderableEventStore,
                                eventUiBases: e.eventUiBases,
                                dateSelection: e.dateSelection,
                                eventSelection: e.eventSelection,
                                eventDrag: e.eventDrag,
                                eventResize: e.eventResize,
                                isHeightAuto: e.isHeightAuto,
                                forPrint: e.forPrint,
                            },
                            i = 0,
                            a = this.buildViewPropTransformers(
                                t.viewPropsTransformers
                            );
                        i < a.length;
                        i++
                    ) {
                        var s = a[i]
                        r(o, s.transform(o, e))
                    }
                    var l = n.component
                    return _o(l, r({}, o))
                }),
                t
            )
        })(Lo)
    function ha(e, t, n, r, o, i) {
        var a = n.build(o, void 0, !1),
            s = n.buildPrev(t, r, !1),
            l = n.buildNext(t, r, !1)
        return {
            title: i,
            activeButton: e.type,
            navUnit: e.singleUnit,
            isTodayEnabled: a.isValid && !Zn(t.currentRange, o),
            isPrevEnabled: s.isValid,
            isNextEnabled: l.isValid,
        }
    }
    function va(e) {
        return e.map(function (e) {
            return new e()
        })
    }
    var ga = (function (e) {
        function t() {
            var t = (null !== e && e.apply(this, arguments)) || this
            return (
                (t.state = { forPrint: !1 }),
                (t.handleBeforePrint = function () {
                    t.setState({ forPrint: !0 })
                }),
                (t.handleAfterPrint = function () {
                    t.setState({ forPrint: !1 })
                }),
                t
            )
        }
        return (
            n(t, e),
            (t.prototype.render = function () {
                var e = this.props,
                    t = e.options,
                    n = this.state.forPrint,
                    r = n || 'auto' === t.height || 'auto' === t.contentHeight,
                    o = r || null == t.height ? '' : t.height,
                    i = [
                        'fc',
                        n ? 'fc-media-print' : 'fc-media-screen',
                        'fc-direction-' + t.direction,
                        e.theme.getClass('root'),
                    ]
                return Qr() || i.push('fc-liquid-hack'), e.children(i, o, r, n)
            }),
            (t.prototype.componentDidMount = function () {
                var e = this.props.emitter
                e.on('_beforeprint', this.handleBeforePrint),
                    e.on('_afterprint', this.handleAfterPrint)
            }),
            (t.prototype.componentWillUnmount = function () {
                var e = this.props.emitter
                e.off('_beforeprint', this.handleBeforePrint),
                    e.off('_afterprint', this.handleAfterPrint)
            }),
            t
        )
    })(Uo)
    function ma(e, t) {
        return ln(
            !e || t > 10
                ? { weekday: 'short' }
                : t > 1
                  ? {
                        weekday: 'short',
                        month: 'numeric',
                        day: 'numeric',
                        omitCommas: !0,
                    }
                  : { weekday: 'long' }
        )
    }
    var ya = 'fc-col-header-cell'
    function Ea(e) {
        return e.text
    }
    var Sa = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.context,
                        t = e.dateEnv,
                        n = e.options,
                        o = e.theme,
                        i = e.viewApi,
                        a = this.props,
                        s = a.date,
                        l = a.dateProfile,
                        u = ro(s, a.todayRange, null, l),
                        c = [ya].concat(oo(u, o)),
                        d = t.format(s, a.dayHeaderFormat),
                        p =
                            !u.isDisabled && a.colCnt > 1
                                ? so(this.context, s)
                                : {},
                        f = r(
                            r(
                                r(
                                    { date: t.toDate(s), view: i },
                                    a.extraHookProps
                                ),
                                { text: d }
                            ),
                            u
                        )
                    return _o(
                        Yo,
                        {
                            hookProps: f,
                            classNames: n.dayHeaderClassNames,
                            content: n.dayHeaderContent,
                            defaultContent: Ea,
                            didMount: n.dayHeaderDidMount,
                            willUnmount: n.dayHeaderWillUnmount,
                        },
                        function (e, t, n, o) {
                            return _o(
                                'th',
                                r(
                                    {
                                        ref: e,
                                        role: 'columnheader',
                                        className: c.concat(t).join(' '),
                                        'data-date': u.isDisabled
                                            ? void 0
                                            : Bt(s),
                                        colSpan: a.colSpan,
                                    },
                                    a.extraDataAttrs
                                ),
                                _o(
                                    'div',
                                    { className: 'fc-scrollgrid-sync-inner' },
                                    !u.isDisabled &&
                                        _o(
                                            'a',
                                            r(
                                                {
                                                    ref: n,
                                                    className: [
                                                        'fc-col-header-cell-cushion',
                                                        a.isSticky
                                                            ? 'fc-sticky'
                                                            : '',
                                                    ].join(' '),
                                                },
                                                p
                                            ),
                                            o
                                        )
                                )
                            )
                        }
                    )
                }),
                t
            )
        })(Uo),
        ba = ln({ weekday: 'long' }),
        Da = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.props,
                        t = this.context,
                        n = t.dateEnv,
                        o = t.theme,
                        i = t.viewApi,
                        a = t.options,
                        s = tt(new Date(2592e5), e.dow),
                        l = {
                            dow: e.dow,
                            isDisabled: !1,
                            isFuture: !1,
                            isPast: !1,
                            isToday: !1,
                            isOther: !1,
                        },
                        u = [ya].concat(oo(l, o), e.extraClassNames || []),
                        c = n.format(s, e.dayHeaderFormat),
                        d = r(
                            r(
                                r(r({ date: s }, l), { view: i }),
                                e.extraHookProps
                            ),
                            { text: c }
                        )

                    return _o(
                        Yo,
                        {
                            hookProps: d,
                            classNames: a.dayHeaderClassNames,
                            content: a.dayHeaderContent,
                            defaultContent: Ea,
                            didMount: a.dayHeaderDidMount,
                            willUnmount: a.dayHeaderWillUnmount,
                        },
                        function (t, o, i, a) {
                            return _o(
                                'th',
                                r(
                                    {
                                        ref: t,
                                        role: 'columnheader',
                                        className: u.concat(o).join(' '),
                                        colSpan: e.colSpan,
                                    },
                                    e.extraDataAttrs
                                ),
                                _o(
                                    'div',
                                    { className: 'fc-scrollgrid-sync-inner' },
                                    _o(
                                        'a',
                                        {
                                            'aria-label': n.format(s, ba),
                                            className: [
                                                'fc-col-header-cell-cushion',
                                                e.isSticky ? 'fc-sticky' : '',
                                            ].join(' '),
                                            ref: i,
                                        },
                                        a
                                    )
                                )
                            )
                        }
                    )
                }),
                t
            )
        })(Uo),
        Ca = (function (e) {
            function t(t, n) {
                var r = e.call(this, t, n) || this
                return (
                    (r.initialNowDate = Tr(n.options.now, n.dateEnv)),
                    (r.initialNowQueriedMs = new Date().valueOf()),
                    (r.state = r.computeTiming().currentState),
                    r
                )
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.props,
                        t = this.state
                    return e.children(t.nowDate, t.todayRange)
                }),
                (t.prototype.componentDidMount = function () {
                    this.setTimeout()
                }),
                (t.prototype.componentDidUpdate = function (e) {
                    e.unit !== this.props.unit &&
                        (this.clearTimeout(), this.setTimeout())
                }),
                (t.prototype.componentWillUnmount = function () {
                    this.clearTimeout()
                }),
                (t.prototype.computeTiming = function () {
                    var e = this.props,
                        t = this.context,
                        n = nt(
                            this.initialNowDate,
                            new Date().valueOf() - this.initialNowQueriedMs
                        ),
                        r = t.dateEnv.startOf(n, e.unit),
                        o = t.dateEnv.add(r, Nt(1, e.unit)),
                        i = o.valueOf() - n.valueOf()
                    return (
                        (i = Math.min(864e5, i)),
                        {
                            currentState: { nowDate: r, todayRange: wa(r) },
                            nextState: { nowDate: o, todayRange: wa(o) },
                            waitMs: i,
                        }
                    )
                }),
                (t.prototype.setTimeout = function () {
                    var e = this,
                        t = this.computeTiming(),
                        n = t.nextState,
                        r = t.waitMs
                    this.timeoutId = setTimeout(function () {
                        e.setState(n, function () {
                            e.setTimeout()
                        })
                    }, r)
                }),
                (t.prototype.clearTimeout = function () {
                    this.timeoutId && clearTimeout(this.timeoutId)
                }),
                (t.contextType = Oo),
                t
            )
        })(Ro)
    function wa(e) {
        var t = lt(e)
        return { start: t, end: tt(t, 1) }
    }
    var Ra = (function (e) {
        function t() {
            var t = (null !== e && e.apply(this, arguments)) || this
            return (t.createDayHeaderFormatter = qt(_a)), t
        }
        return (
            n(t, e),
            (t.prototype.render = function () {
                var e = this.context,
                    t = this.props,
                    n = t.dates,
                    r = t.dateProfile,
                    o = t.datesRepDistinctDays,
                    i = t.renderIntro,
                    a = this.createDayHeaderFormatter(
                        e.options.dayHeaderFormat,
                        o,
                        n.length
                    )
                return _o(Ca, { unit: 'day' }, function (e, t) {
                    return _o(
                        'tr',
                        { role: 'row' },
                        i && i('day'),
                        n.map(function (e) {
                            return o
                                ? _o(Sa, {
                                      key: e.toISOString(),
                                      date: e,
                                      dateProfile: r,
                                      todayRange: t,
                                      colCnt: n.length,
                                      dayHeaderFormat: a,
                                  })
                                : _o(Da, {
                                      key: e.getUTCDay(),
                                      dow: e.getUTCDay(),
                                      dayHeaderFormat: a,
                                  })
                        })
                    )
                })
            }),
            t
        )
    })(Uo)
    function _a(e, t, n) {
        return e || ma(t, n)
    }
    var Ta = (function () {
            function e(e, t) {
                for (
                    var n = e.start, r = e.end, o = [], i = [], a = -1;
                    n < r;

                )
                    t.isHiddenDay(n)
                        ? o.push(a + 0.5)
                        : ((a += 1), o.push(a), i.push(n)),
                        (n = tt(n, 1))
                ;(this.dates = i), (this.indices = o), (this.cnt = i.length)
            }
            return (
                (e.prototype.sliceRange = function (e) {
                    var t = this.getDateDayIndex(e.start),
                        n = this.getDateDayIndex(tt(e.end, -1)),
                        r = Math.max(0, t),
                        o = Math.min(this.cnt - 1, n)
                    return (r = Math.ceil(r)) <= (o = Math.floor(o))
                        ? {
                              firstIndex: r,
                              lastIndex: o,
                              isStart: t === r,
                              isEnd: n === o,
                          }
                        : null
                }),
                (e.prototype.getDateDayIndex = function (e) {
                    var t = this.indices,
                        n = Math.floor(ot(this.dates[0], e))
                    return n < 0
                        ? t[0] - 1
                        : n >= t.length
                          ? t[t.length - 1] + 1
                          : t[n]
                }),
                e
            )
        })(),
        ka = (function () {
            function e(e, t) {
                var n,
                    r,
                    o,
                    i = e.dates
                if (t) {
                    for (
                        r = i[0].getUTCDay(), n = 1;
                        n < i.length && i[n].getUTCDay() !== r;
                        n += 1
                    );
                    o = Math.ceil(i.length / n)
                } else (o = 1), (n = i.length)
                ;(this.rowCnt = o),
                    (this.colCnt = n),
                    (this.daySeries = e),
                    (this.cells = this.buildCells()),
                    (this.headerDates = this.buildHeaderDates())
            }
            return (
                (e.prototype.buildCells = function () {
                    for (var e = [], t = 0; t < this.rowCnt; t += 1) {
                        for (var n = [], r = 0; r < this.colCnt; r += 1)
                            n.push(this.buildCell(t, r))
                        e.push(n)
                    }
                    return e
                }),
                (e.prototype.buildCell = function (e, t) {
                    var n = this.daySeries.dates[e * this.colCnt + t]
                    return { key: n.toISOString(), date: n }
                }),
                (e.prototype.buildHeaderDates = function () {
                    for (var e = [], t = 0; t < this.colCnt; t += 1)
                        e.push(this.cells[0][t].date)
                    return e
                }),
                (e.prototype.sliceRange = function (e) {
                    var t = this.colCnt,
                        n = this.daySeries.sliceRange(e),
                        r = []
                    if (n)
                        for (
                            var o = n.firstIndex, i = n.lastIndex, a = o;
                            a <= i;

                        ) {
                            var s = Math.floor(a / t),
                                l = Math.min((s + 1) * t, i + 1)
                            r.push({
                                row: s,
                                firstCol: a % t,
                                lastCol: (l - 1) % t,
                                isStart: n.isStart && a === o,
                                isEnd: n.isEnd && l - 1 === i,
                            }),
                                (a = l)
                        }
                    return r
                }),
                e
            )
        })(),
        xa = (function () {
            function e() {
                ;(this.sliceBusinessHours = qt(this._sliceBusinessHours)),
                    (this.sliceDateSelection = qt(this._sliceDateSpan)),
                    (this.sliceEventStore = qt(this._sliceEventStore)),
                    (this.sliceEventDrag = qt(this._sliceInteraction)),
                    (this.sliceEventResize = qt(this._sliceInteraction)),
                    (this.forceDayIfListItem = !1)
            }
            return (
                (e.prototype.sliceProps = function (e, t, n, r) {
                    for (var i = [], a = 4; a < arguments.length; a++)
                        i[a - 4] = arguments[a]
                    var s = e.eventUiBases,
                        l = this.sliceEventStore.apply(
                            this,
                            o([e.eventStore, s, t, n], i)
                        )
                    return {
                        dateSelectionSegs: this.sliceDateSelection.apply(
                            this,
                            o([e.dateSelection, s, r], i)
                        ),
                        businessHourSegs: this.sliceBusinessHours.apply(
                            this,
                            o([e.businessHours, t, n, r], i)
                        ),
                        fgEventSegs: l.fg,
                        bgEventSegs: l.bg,
                        eventDrag: this.sliceEventDrag.apply(
                            this,
                            o([e.eventDrag, s, t, n], i)
                        ),
                        eventResize: this.sliceEventResize.apply(
                            this,
                            o([e.eventResize, s, t, n], i)
                        ),
                        eventSelection: e.eventSelection,
                    }
                }),
                (e.prototype.sliceNowDate = function (e, t) {
                    for (var n = [], r = 2; r < arguments.length; r++)
                        n[r - 2] = arguments[r]
                    return this._sliceDateSpan.apply(
                        this,
                        o(
                            [
                                {
                                    range: { start: e, end: nt(e, 1) },
                                    allDay: !1,
                                },
                                {},
                                t,
                            ],
                            n
                        )
                    )
                }),
                (e.prototype._sliceBusinessHours = function (e, t, n, r) {
                    for (var i = [], a = 4; a < arguments.length; a++)
                        i[a - 4] = arguments[a]
                    return e
                        ? this._sliceEventStore.apply(
                              this,
                              o([xt(e, Ma(t, Boolean(n)), r), {}, t, n], i)
                          ).bg
                        : []
                }),
                (e.prototype._sliceEventStore = function (e, t, n, r) {
                    for (var o = [], i = 4; i < arguments.length; i++)
                        o[i - 4] = arguments[i]
                    if (e) {
                        var a = Xn(e, t, Ma(n, Boolean(r)), r)
                        return {
                            bg: this.sliceEventRanges(a.bg, o),
                            fg: this.sliceEventRanges(a.fg, o),
                        }
                    }
                    return { bg: [], fg: [] }
                }),
                (e.prototype._sliceInteraction = function (e, t, n, r) {
                    for (var o = [], i = 4; i < arguments.length; i++)
                        o[i - 4] = arguments[i]
                    if (!e) return null
                    var a = Xn(e.mutatedEvents, t, Ma(n, Boolean(r)), r)
                    return {
                        segs: this.sliceEventRanges(a.fg, o),
                        affectedInstances: e.affectedEvents.instances,
                        isEvent: e.isEvent,
                    }
                }),
                (e.prototype._sliceDateSpan = function (e, t, n) {
                    for (var r = [], i = 3; i < arguments.length; i++)
                        r[i - 3] = arguments[i]
                    if (!e) return []
                    for (
                        var a = gr(e, t, n),
                            s = this.sliceRange.apply(this, o([e.range], r)),
                            l = 0,
                            u = s;
                        l < u.length;
                        l++
                    ) {
                        var c = u[l]
                        c.eventRange = a
                    }
                    return s
                }),
                (e.prototype.sliceEventRanges = function (e, t) {
                    for (var n = [], r = 0, o = e; r < o.length; r++) {
                        var i = o[r]
                        n.push.apply(n, this.sliceEventRange(i, t))
                    }
                    return n
                }),
                (e.prototype.sliceEventRange = function (e, t) {
                    var n = e.range
                    this.forceDayIfListItem &&
                        'list-item' === e.ui.display &&
                        (n = { start: n.start, end: tt(n.start, 1) })
                    for (
                        var r = this.sliceRange.apply(this, o([n], t)),
                            i = 0,
                            a = r;
                        i < a.length;
                        i++
                    ) {
                        var s = a[i]
                        ;(s.eventRange = e),
                            (s.isStart = e.isStart && s.isStart),
                            (s.isEnd = e.isEnd && s.isEnd)
                    }
                    return r
                }),
                e
            )
        })()
    function Ma(e, t) {
        var n = e.activeRange
        return t
            ? n
            : {
                  start: nt(n.start, e.slotMinTime.milliseconds),
                  end: nt(n.end, e.slotMaxTime.milliseconds - 864e5),
              }
    }
    function Ia(e, t, n) {
        var r = e.mutatedEvents.instances
        for (var o in r) if (!Yn(t.validRange, r[o].range)) return !1
        return Na({ eventDrag: e }, n)
    }
    function Pa(e, t, n) {
        return !!Yn(t.validRange, e.range) && Na({ dateSelection: e }, n)
    }
    function Na(e, t) {
        var n = t.getCurrentData(),
            o = r(
                {
                    businessHours: n.businessHours,
                    dateSelection: '',
                    eventStore: n.eventStore,
                    eventUiBases: n.eventUiBases,
                    eventSelection: '',
                    eventDrag: null,
                    eventResize: null,
                },
                e
            )
        return (t.pluginHooks.isPropsValid || Ha)(o, t)
    }
    function Ha(e, t, n, o) {
        return (
            void 0 === n && (n = {}),
            !(
                e.eventDrag &&
                !(function (e, t, n, o) {
                    var i = t.getCurrentData(),
                        a = e.eventDrag,
                        s = a.mutatedEvents,
                        l = s.defs,
                        u = s.instances,
                        c = Qn(
                            l,
                            a.isEvent
                                ? e.eventUiBases
                                : { '': i.selectionConfig }
                        )
                    o && (c = bt(c, o))
                    var d =
                            ((v = e.eventStore),
                            (g = a.affectedEvents.instances),
                            {
                                defs: v.defs,
                                instances: St(v.instances, function (e) {
                                    return !g[e.instanceId]
                                }),
                            }),
                        p = d.defs,
                        f = d.instances,
                        h = Qn(p, e.eventUiBases)
                    var v, g
                    for (var m in u) {
                        var y = u[m],
                            E = y.range,
                            S = c[y.defId],
                            b = l[y.defId]
                        if (!Oa(S.constraints, E, d, e.businessHours, t))
                            return !1
                        var D = t.options.eventOverlap,
                            C = 'function' == typeof D ? D : null
                        for (var w in f) {
                            var R = f[w]
                            if (qn(E, R.range)) {
                                if (!1 === h[R.defId].overlap && a.isEvent)
                                    return !1
                                if (!1 === S.overlap) return !1
                                if (
                                    C &&
                                    !C(
                                        new xr(t, p[R.defId], R),
                                        new xr(t, b, y)
                                    )
                                )
                                    return !1
                            }
                        }
                        for (
                            var _ = i.eventStore, T = 0, k = S.allows;
                            T < k.length;
                            T++
                        ) {
                            var x = k[T],
                                M = r(r({}, n), {
                                    range: y.range,
                                    allDay: b.allDay,
                                }),
                                I = _.defs[b.defId],
                                P = _.instances[m],
                                N = void 0
                            if (
                                ((N = I ? new xr(t, I, P) : new xr(t, b)),
                                !x(yr(M, t), N))
                            )
                                return !1
                        }
                    }
                    return !0
                })(e, t, n, o)
            ) &&
                !(
                    e.dateSelection &&
                    !(function (e, t, n, o) {
                        var i = e.eventStore,
                            a = i.defs,
                            s = i.instances,
                            l = e.dateSelection,
                            u = l.range,
                            c = t.getCurrentData().selectionConfig
                        o && (c = o(c))
                        if (!Oa(c.constraints, u, i, e.businessHours, t))
                            return !1
                        var d = t.options.selectOverlap,
                            p = 'function' == typeof d ? d : null
                        for (var f in s) {
                            var h = s[f]
                            if (qn(u, h.range)) {
                                if (!1 === c.overlap) return !1
                                if (p && !p(new xr(t, a[h.defId], h), null))
                                    return !1
                            }
                        }
                        for (var v = 0, g = c.allows; v < g.length; v++) {
                            if (!(0, g[v])(yr(r(r({}, n), l), t), null))
                                return !1
                        }
                        return !0
                    })(e, t, n, o)
                )
        )
    }
    function Oa(e, t, n, r, o) {
        for (var i = 0, a = e; i < a.length; i++) {
            if (!Ua(Aa(a[i], t, n, r, o), t)) return !1
        }
        return !0
    }
    function Aa(e, t, n, r, o) {
        return 'businessHours' === e
            ? La(xt(r, t, o))
            : 'string' == typeof e
              ? La(
                    wn(n, function (t) {
                        return t.groupId === e
                    })
                )
              : 'object' == typeof e && e
                ? La(xt(e, t, o))
                : []
    }
    function La(e) {
        var t = e.instances,
            n = []
        for (var r in t) n.push(t[r].range)
        return n
    }
    function Ua(e, t) {
        for (var n = 0, r = e; n < r.length; n++) {
            if (Yn(r[n], t)) return !0
        }
        return !1
    }
    var Wa = /^(visible|hidden)$/,
        Va = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (
                    (t.handleEl = function (e) {
                        ;(t.el = e), Fo(t.props.elRef, e)
                    }),
                    t
                )
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.props,
                        t = e.liquid,
                        n = e.liquidIsAbsolute,
                        r = t && n,
                        o = ['fc-scroller']
                    return (
                        t &&
                            (n
                                ? o.push('fc-scroller-liquid-absolute')
                                : o.push('fc-scroller-liquid')),
                        _o(
                            'div',
                            {
                                ref: this.handleEl,
                                className: o.join(' '),
                                style: {
                                    overflowX: e.overflowX,
                                    overflowY: e.overflowY,
                                    left: (r && -(e.overcomeLeft || 0)) || '',
                                    right: (r && -(e.overcomeRight || 0)) || '',
                                    bottom:
                                        (r && -(e.overcomeBottom || 0)) || '',
                                    marginLeft:
                                        (!r && -(e.overcomeLeft || 0)) || '',
                                    marginRight:
                                        (!r && -(e.overcomeRight || 0)) || '',
                                    marginBottom:
                                        (!r && -(e.overcomeBottom || 0)) || '',
                                    maxHeight: e.maxHeight || '',
                                },
                            },
                            e.children
                        )
                    )
                }),
                (t.prototype.needsXScrolling = function () {
                    if (Wa.test(this.props.overflowX)) return !1
                    for (
                        var e = this.el,
                            t =
                                this.el.getBoundingClientRect().width -
                                this.getYScrollbarWidth(),
                            n = e.children,
                            r = 0;
                        r < n.length;
                        r += 1
                    ) {
                        if (n[r].getBoundingClientRect().width > t) return !0
                    }
                    return !1
                }),
                (t.prototype.needsYScrolling = function () {
                    if (Wa.test(this.props.overflowY)) return !1
                    for (
                        var e = this.el,
                            t =
                                this.el.getBoundingClientRect().height -
                                this.getXScrollbarWidth(),
                            n = e.children,
                            r = 0;
                        r < n.length;
                        r += 1
                    ) {
                        if (n[r].getBoundingClientRect().height > t) return !0
                    }
                    return !1
                }),
                (t.prototype.getXScrollbarWidth = function () {
                    return Wa.test(this.props.overflowX)
                        ? 0
                        : this.el.offsetHeight - this.el.clientHeight
                }),
                (t.prototype.getYScrollbarWidth = function () {
                    return Wa.test(this.props.overflowY)
                        ? 0
                        : this.el.offsetWidth - this.el.clientWidth
                }),
                t
            )
        })(Uo),
        Fa = (function () {
            function e(e) {
                var t = this
                ;(this.masterCallback = e),
                    (this.currentMap = {}),
                    (this.depths = {}),
                    (this.callbackMap = {}),
                    (this.handleValue = function (e, n) {
                        var r = t,
                            o = r.depths,
                            i = r.currentMap,
                            a = !1,
                            s = !1
                        null !== e
                            ? ((a = n in i),
                              (i[n] = e),
                              (o[n] = (o[n] || 0) + 1),
                              (s = !0))
                            : ((o[n] -= 1),
                              o[n] ||
                                  (delete i[n],
                                  delete t.callbackMap[n],
                                  (a = !0))),
                            t.masterCallback &&
                                (a && t.masterCallback(null, String(n)),
                                s && t.masterCallback(e, String(n)))
                    })
            }
            return (
                (e.prototype.createRef = function (e) {
                    var t = this,
                        n = this.callbackMap[e]
                    return (
                        n ||
                            (n = this.callbackMap[e] =
                                function (n) {
                                    t.handleValue(n, String(e))
                                }),
                        n
                    )
                }),
                (e.prototype.collect = function (e, t, n) {
                    return kt(this.currentMap, e, t, n)
                }),
                (e.prototype.getAll = function () {
                    return Ct(this.currentMap)
                }),
                e
            )
        })()
    function Ba(e) {
        for (
            var t = 0, n = 0, r = De(e, '.fc-scrollgrid-shrink');
            n < r.length;
            n++
        ) {
            var o = r[n]
            t = Math.max(t, Je(o))
        }
        return Math.ceil(t)
    }
    function za(e, t) {
        return e.liquid && t.liquid
    }
    function ja(e, t) {
        return null != t.maxHeight || za(e, t)
    }
    function Ga(e, t, n, r) {
        var o = n.expandRows
        return 'function' == typeof t.content
            ? t.content(n)
            : _o(
                  'table',
                  {
                      role: 'presentation',
                      className: [
                          t.tableClassName,
                          e.syncRowHeights ? 'fc-scrollgrid-sync-table' : '',
                      ].join(' '),
                      style: {
                          minWidth: n.tableMinWidth,
                          width: n.clientWidth,
                          height: o ? n.clientHeight : '',
                      },
                  },
                  n.tableColGroupNode,
                  _o(
                      r ? 'thead' : 'tbody',
                      { role: 'presentation' },
                      'function' == typeof t.rowContent
                          ? t.rowContent(n)
                          : t.rowContent
                  )
              )
    }
    function qa(e, t) {
        return Gt(e, t, wt)
    }
    function Ya(e, t) {
        for (var n = [], r = 0, i = e; r < i.length; r++)
            for (var a = i[r], s = a.span || 1, l = 0; l < s; l += 1)
                n.push(
                    _o('col', {
                        style: {
                            width: 'shrink' === a.width ? Za(t) : a.width || '',
                            minWidth: a.minWidth || '',
                        },
                    })
                )
        return _o.apply(void 0, o(['colgroup', {}], n))
    }
    function Za(e) {
        return null == e ? 4 : e
    }
    function Xa(e) {
        for (var t = 0, n = e; t < n.length; t++) {
            if ('shrink' === n[t].width) return !0
        }
        return !1
    }
    function Ka(e, t) {
        var n = ['fc-scrollgrid', t.theme.getClass('table')]
        return e && n.push('fc-scrollgrid-liquid'), n
    }
    function $a(e, t) {
        var n = [
            'fc-scrollgrid-section',
            'fc-scrollgrid-section-' + e.type,
            e.className,
        ]
        return (
            t &&
                e.liquid &&
                null == e.maxHeight &&
                n.push('fc-scrollgrid-section-liquid'),
            e.isSticky && n.push('fc-scrollgrid-section-sticky'),
            n
        )
    }
    function Ja(e) {
        return _o('div', {
            className: 'fc-scrollgrid-sticky-shim',
            style: { width: e.clientWidth, minWidth: e.tableMinWidth },
        })
    }
    function Qa(e) {
        var t = e.stickyHeaderDates
        return (
            (null != t && 'auto' !== t) ||
                (t = 'auto' === e.height || 'auto' === e.viewHeight),
            t
        )
    }
    function es(e) {
        var t = e.stickyFooterScrollbar
        return (
            (null != t && 'auto' !== t) ||
                (t = 'auto' === e.height || 'auto' === e.viewHeight),
            t
        )
    }
    var ts = (function (e) {
        function t() {
            var t = (null !== e && e.apply(this, arguments)) || this
            return (
                (t.processCols = qt(function (e) {
                    return e
                }, qa)),
                (t.renderMicroColGroup = qt(Ya)),
                (t.scrollerRefs = new Fa()),
                (t.scrollerElRefs = new Fa(t._handleScrollerEl.bind(t))),
                (t.state = {
                    shrinkWidth: null,
                    forceYScrollbars: !1,
                    scrollerClientWidths: {},
                    scrollerClientHeights: {},
                }),
                (t.handleSizing = function () {
                    t.safeSetState(
                        r(
                            { shrinkWidth: t.computeShrinkWidth() },
                            t.computeScrollerDims()
                        )
                    )
                }),
                t
            )
        }
        return (
            n(t, e),
            (t.prototype.render = function () {
                var e = this,
                    t = e.props,
                    n = e.state,
                    r = e.context,
                    i = t.sections || [],
                    a = this.processCols(t.cols),
                    s = this.renderMicroColGroup(a, n.shrinkWidth),
                    l = Ka(t.liquid, r)
                t.collapsibleWidth && l.push('fc-scrollgrid-collapsible')
                for (
                    var u, c = i.length, d = 0, p = [], f = [], h = [];
                    d < c && 'header' === (u = i[d]).type;

                )
                    p.push(this.renderSection(u, s, !0)), (d += 1)
                for (; d < c && 'body' === (u = i[d]).type; )
                    f.push(this.renderSection(u, s, !1)), (d += 1)
                for (; d < c && 'footer' === (u = i[d]).type; )
                    h.push(this.renderSection(u, s, !0)), (d += 1)
                var v = !Qr(),
                    g = { role: 'rowgroup' }
                return _o(
                    'table',
                    {
                        role: 'grid',
                        className: l.join(' '),
                        style: { height: t.height },
                    },
                    Boolean(!v && p.length) &&
                        _o.apply(void 0, o(['thead', g], p)),
                    Boolean(!v && f.length) &&
                        _o.apply(void 0, o(['tbody', g], f)),
                    Boolean(!v && h.length) &&
                        _o.apply(void 0, o(['tfoot', g], h)),
                    v && _o.apply(void 0, o(o(o(['tbody', g], p), f), h))
                )
            }),
            (t.prototype.renderSection = function (e, t, n) {
                return 'outerContent' in e
                    ? _o(xo, { key: e.key }, e.outerContent)
                    : _o(
                          'tr',
                          {
                              key: e.key,
                              role: 'presentation',
                              className: $a(e, this.props.liquid).join(' '),
                          },
                          this.renderChunkTd(e, t, e.chunk, n)
                      )
            }),
            (t.prototype.renderChunkTd = function (e, t, n, r) {
                if ('outerContent' in n) return n.outerContent
                var o = this.props,
                    i = this.state,
                    a = i.forceYScrollbars,
                    s = i.scrollerClientWidths,
                    l = i.scrollerClientHeights,
                    u = ja(o, e),
                    c = za(o, e),
                    d = o.liquid
                        ? a
                            ? 'scroll'
                            : u
                              ? 'auto'
                              : 'hidden'
                        : 'visible',
                    p = e.key,
                    f = Ga(
                        e,
                        n,
                        {
                            tableColGroupNode: t,
                            tableMinWidth: '',
                            clientWidth:
                                o.collapsibleWidth || void 0 === s[p]
                                    ? null
                                    : s[p],
                            clientHeight: void 0 !== l[p] ? l[p] : null,
                            expandRows: e.expandRows,
                            syncRowHeights: !1,
                            rowSyncHeights: [],
                            reportRowHeightChange: function () {},
                        },
                        r
                    )
                return _o(
                    r ? 'th' : 'td',
                    { ref: n.elRef, role: 'presentation' },
                    _o(
                        'div',
                        {
                            className:
                                'fc-scroller-harness' +
                                (c ? ' fc-scroller-harness-liquid' : ''),
                        },
                        _o(
                            Va,
                            {
                                ref: this.scrollerRefs.createRef(p),
                                elRef: this.scrollerElRefs.createRef(p),
                                overflowY: d,
                                overflowX: o.liquid ? 'hidden' : 'visible',
                                maxHeight: e.maxHeight,
                                liquid: c,
                                liquidIsAbsolute: !0,
                            },
                            f
                        )
                    )
                )
            }),
            (t.prototype._handleScrollerEl = function (e, t) {
                var n = (function (e, t) {
                    for (var n = 0, r = e; n < r.length; n++) {
                        var o = r[n]
                        if (o.key === t) return o
                    }
                    return null
                })(this.props.sections, t)
                n && Fo(n.chunk.scrollerElRef, e)
            }),
            (t.prototype.componentDidMount = function () {
                this.handleSizing(),
                    this.context.addResizeHandler(this.handleSizing)
            }),
            (t.prototype.componentDidUpdate = function () {
                this.handleSizing()
            }),
            (t.prototype.componentWillUnmount = function () {
                this.context.removeResizeHandler(this.handleSizing)
            }),
            (t.prototype.computeShrinkWidth = function () {
                return Xa(this.props.cols)
                    ? Ba(this.scrollerElRefs.getAll())
                    : 0
            }),
            (t.prototype.computeScrollerDims = function () {
                var e = po(),
                    t = this.scrollerRefs,
                    n = this.scrollerElRefs,
                    r = !1,
                    o = {},
                    i = {}
                for (var a in t.currentMap) {
                    var s = t.currentMap[a]
                    if (s && s.needsYScrolling()) {
                        r = !0
                        break
                    }
                }
                for (var l = 0, u = this.props.sections; l < u.length; l++) {
                    a = u[l].key
                    var c = n.currentMap[a]
                    if (c) {
                        var d = c.parentNode
                        ;(o[a] = Math.floor(
                            d.getBoundingClientRect().width - (r ? e.y : 0)
                        )),
                            (i[a] = Math.floor(
                                d.getBoundingClientRect().height
                            ))
                    }
                }
                return {
                    forceYScrollbars: r,
                    scrollerClientWidths: o,
                    scrollerClientHeights: i,
                }
            }),
            t
        )
    })(Uo)
    ts.addStateEquality({ scrollerClientWidths: wt, scrollerClientHeights: wt })
    var ns = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (t.elRef = ko()), t
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.props,
                        t = this.context,
                        n = t.options,
                        r = e.seg,
                        o = r.eventRange,
                        i = o.ui,
                        a = {
                            event: new xr(t, o.def, o.instance),
                            view: t.viewApi,
                            timeText: e.timeText,
                            textColor: i.textColor,
                            backgroundColor: i.backgroundColor,
                            borderColor: i.borderColor,
                            isDraggable: !e.disableDragging && rr(r, t),
                            isStartResizable: !e.disableResizing && or(r, t),
                            isEndResizable: !e.disableResizing && ir(r),
                            isMirror: Boolean(
                                e.isDragging ||
                                    e.isResizing ||
                                    e.isDateSelecting
                            ),
                            isStart: Boolean(r.isStart),
                            isEnd: Boolean(r.isEnd),
                            isPast: Boolean(e.isPast),
                            isFuture: Boolean(e.isFuture),
                            isToday: Boolean(e.isToday),
                            isSelected: Boolean(e.isSelected),
                            isDragging: Boolean(e.isDragging),
                            isResizing: Boolean(e.isResizing),
                        },
                        s = lr(a).concat(i.classNames)
                    return _o(
                        Yo,
                        {
                            hookProps: a,
                            classNames: n.eventClassNames,
                            content: n.eventContent,
                            defaultContent: e.defaultContent,
                            didMount: n.eventDidMount,
                            willUnmount: n.eventWillUnmount,
                            elRef: this.elRef,
                        },
                        function (t, n, r, o) {
                            return e.children(t, s.concat(n), r, o, a)
                        }
                    )
                }),
                (t.prototype.componentDidMount = function () {
                    $n(this.elRef.current, this.props.seg)
                }),
                (t.prototype.componentDidUpdate = function (e) {
                    var t = this.props.seg
                    t !== e.seg && $n(this.elRef.current, t)
                }),
                t
            )
        })(Uo),
        rs = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.props,
                        t = this.context,
                        n = e.seg,
                        o = t.options.eventTimeFormat || e.defaultTimeFormat,
                        i = ar(
                            n,
                            o,
                            t,
                            e.defaultDisplayEventTime,
                            e.defaultDisplayEventEnd
                        )
                    return _o(
                        ns,
                        {
                            seg: n,
                            timeText: i,
                            disableDragging: e.disableDragging,
                            disableResizing: e.disableResizing,
                            defaultContent: e.defaultContent || os,
                            isDragging: e.isDragging,
                            isResizing: e.isResizing,
                            isDateSelecting: e.isDateSelecting,
                            isSelected: e.isSelected,
                            isPast: e.isPast,
                            isFuture: e.isFuture,
                            isToday: e.isToday,
                        },
                        function (o, i, a, s, l) {
                            return _o(
                                'a',
                                r(
                                    {
                                        className: e.extraClassNames
                                            .concat(i)
                                            .join(' '),
                                        style: {
                                            borderColor: l.borderColor,
                                            backgroundColor: l.backgroundColor,
                                        },
                                        ref: o,
                                    },
                                    cr(n, t)
                                ),
                                _o(
                                    'div',
                                    {
                                        className: 'fc-event-main',
                                        ref: a,
                                        style: { color: l.textColor },
                                    },
                                    s
                                ),
                                l.isStartResizable &&
                                    _o('div', {
                                        className:
                                            'fc-event-resizer fc-event-resizer-start',
                                    }),
                                l.isEndResizable &&
                                    _o('div', {
                                        className:
                                            'fc-event-resizer fc-event-resizer-end',
                                    })
                            )
                        }
                    )
                }),
                t
            )
        })(Uo)
    function os(e) {
        return _o(
            'div',
            { className: 'fc-event-main-frame' },
            e.timeText && _o('div', { className: 'fc-event-time' }, e.timeText),
            _o(
                'div',
                { className: 'fc-event-title-container' },
                _o(
                    'div',
                    { className: 'fc-event-title fc-sticky' },
                    e.event.title || _o(xo, null, ' ')
                )
            )
        )
    }
    var is = function (e) {
            return _o(Oo.Consumer, null, function (t) {
                var n = t.options,
                    r = {
                        isAxis: e.isAxis,
                        date: t.dateEnv.toDate(e.date),
                        view: t.viewApi,
                    }
                return _o(
                    Yo,
                    {
                        hookProps: r,
                        classNames: n.nowIndicatorClassNames,
                        content: n.nowIndicatorContent,
                        didMount: n.nowIndicatorDidMount,
                        willUnmount: n.nowIndicatorWillUnmount,
                    },
                    e.children
                )
            })
        },
        as = ln({ day: 'numeric' }),
        ss = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.props,
                        t = this.context,
                        n = t.options,
                        r = ls({
                            date: e.date,
                            dateProfile: e.dateProfile,
                            todayRange: e.todayRange,
                            showDayNumber: e.showDayNumber,
                            extraProps: e.extraHookProps,
                            viewApi: t.viewApi,
                            dateEnv: t.dateEnv,
                        })
                    return _o(
                        Xo,
                        {
                            hookProps: r,
                            content: n.dayCellContent,
                            defaultContent: e.defaultContent,
                        },
                        e.children
                    )
                }),
                t
            )
        })(Uo)
    function ls(e) {
        var t = e.date,
            n = e.dateEnv,
            o = ro(t, e.todayRange, null, e.dateProfile)
        return r(
            r(r({ date: n.toDate(t), view: e.viewApi }, o), {
                dayNumberText: e.showDayNumber ? n.format(t, as) : '',
            }),
            e.extraProps
        )
    }
    var us = (function (e) {
        function t() {
            var t = (null !== e && e.apply(this, arguments)) || this
            return (
                (t.refineHookProps = Yt(ls)), (t.normalizeClassNames = Jo()), t
            )
        }
        return (
            n(t, e),
            (t.prototype.render = function () {
                var e = this.props,
                    t = this.context,
                    n = t.options,
                    r = this.refineHookProps({
                        date: e.date,
                        dateProfile: e.dateProfile,
                        todayRange: e.todayRange,
                        showDayNumber: e.showDayNumber,
                        extraProps: e.extraHookProps,
                        viewApi: t.viewApi,
                        dateEnv: t.dateEnv,
                    }),
                    o = oo(r, t.theme).concat(
                        r.isDisabled
                            ? []
                            : this.normalizeClassNames(n.dayCellClassNames, r)
                    ),
                    i = r.isDisabled ? {} : { 'data-date': Bt(e.date) }
                return _o(
                    $o,
                    {
                        hookProps: r,
                        didMount: n.dayCellDidMount,
                        willUnmount: n.dayCellWillUnmount,
                        elRef: e.elRef,
                    },
                    function (t) {
                        return e.children(t, o, i, r.isDisabled)
                    }
                )
            }),
            t
        )
    })(Uo)
    function cs(e) {
        return _o('div', { className: 'fc-' + e })
    }
    var ds = function (e) {
        return _o(
            ns,
            {
                defaultContent: ps,
                seg: e.seg,
                timeText: '',
                disableDragging: !0,
                disableResizing: !0,
                isDragging: !1,
                isResizing: !1,
                isDateSelecting: !1,
                isSelected: !1,
                isPast: e.isPast,
                isFuture: e.isFuture,
                isToday: e.isToday,
            },
            function (e, t, n, r, o) {
                return _o(
                    'div',
                    {
                        ref: e,
                        className: ['fc-bg-event'].concat(t).join(' '),
                        style: { backgroundColor: o.backgroundColor },
                    },
                    r
                )
            }
        )
    }
    function ps(e) {
        return (
            e.event.title &&
            _o('div', { className: 'fc-event-title' }, e.event.title)
        )
    }
    var fs = function (e) {
        return _o(Oo.Consumer, null, function (t) {
            var n = t.dateEnv,
                r = t.options,
                o = e.date,
                i = r.weekNumberFormat || e.defaultFormat,
                a = n.computeWeekNumber(o),
                s = n.format(o, i)
            return _o(
                Yo,
                {
                    hookProps: { num: a, text: s, date: o },
                    classNames: r.weekNumberClassNames,
                    content: r.weekNumberContent,
                    defaultContent: hs,
                    didMount: r.weekNumberDidMount,
                    willUnmount: r.weekNumberWillUnmount,
                },
                e.children
            )
        })
    }
    function hs(e) {
        return e.text
    }
    var vs = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (
                    (t.state = { titleId: xe() }),
                    (t.handleRootEl = function (e) {
                        ;(t.rootEl = e), t.props.elRef && Fo(t.props.elRef, e)
                    }),
                    (t.handleDocumentMouseDown = function (e) {
                        var n = _e(e)
                        t.rootEl.contains(n) || t.handleCloseClick()
                    }),
                    (t.handleDocumentKeyDown = function (e) {
                        'Escape' === e.key && t.handleCloseClick()
                    }),
                    (t.handleCloseClick = function () {
                        var e = t.props.onClose
                        e && e()
                    }),
                    t
                )
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.context,
                        t = e.theme,
                        n = e.options,
                        o = this.props,
                        i = this.state,
                        a = ['fc-popover', t.getClass('popover')].concat(
                            o.extraClassNames || []
                        )
                    return Io(
                        _o(
                            'div',
                            r(
                                {
                                    id: o.id,
                                    className: a.join(' '),
                                    'aria-labelledby': i.titleId,
                                },
                                o.extraAttrs,
                                { ref: this.handleRootEl }
                            ),
                            _o(
                                'div',
                                {
                                    className:
                                        'fc-popover-header ' +
                                        t.getClass('popoverHeader'),
                                },
                                _o(
                                    'span',
                                    {
                                        className: 'fc-popover-title',
                                        id: i.titleId,
                                    },
                                    o.title
                                ),
                                _o('span', {
                                    className:
                                        'fc-popover-close ' +
                                        t.getIconClass('close'),
                                    title: n.closeHint,
                                    onClick: this.handleCloseClick,
                                })
                            ),
                            _o(
                                'div',
                                {
                                    className:
                                        'fc-popover-body ' +
                                        t.getClass('popoverContent'),
                                },
                                o.children
                            )
                        ),
                        o.parentEl
                    )
                }),
                (t.prototype.componentDidMount = function () {
                    document.addEventListener(
                        'mousedown',
                        this.handleDocumentMouseDown
                    ),
                        document.addEventListener(
                            'keydown',
                            this.handleDocumentKeyDown
                        ),
                        this.updateSize()
                }),
                (t.prototype.componentWillUnmount = function () {
                    document.removeEventListener(
                        'mousedown',
                        this.handleDocumentMouseDown
                    ),
                        document.removeEventListener(
                            'keydown',
                            this.handleDocumentKeyDown
                        )
                }),
                (t.prototype.updateSize = function () {
                    var e = this.context.isRtl,
                        t = this.props,
                        n = t.alignmentEl,
                        r = t.alignGridTop,
                        o = this.rootEl,
                        i = (function (e) {
                            for (
                                var t = mo(e),
                                    n = e.getBoundingClientRect(),
                                    r = 0,
                                    o = t;
                                r < o.length;
                                r++
                            ) {
                                var i = Xr(n, o[r].getBoundingClientRect())
                                if (!i) return null
                                n = i
                            }
                            return n
                        })(n)
                    if (i) {
                        var a = o.getBoundingClientRect(),
                            s = r
                                ? Se(
                                      n,
                                      '.fc-scrollgrid'
                                  ).getBoundingClientRect().top
                                : i.top,
                            l = e ? i.right - a.width : i.left
                        ;(s = Math.max(s, 10)),
                            (l = Math.min(
                                l,
                                document.documentElement.clientWidth -
                                    10 -
                                    a.width
                            )),
                            (l = Math.max(l, 10))
                        var u = o.offsetParent.getBoundingClientRect()
                        we(o, { top: s - u.top, left: l - u.left })
                    }
                }),
                t
            )
        })(Uo),
        gs = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (
                    (t.handleRootEl = function (e) {
                        ;(t.rootEl = e),
                            e
                                ? t.context.registerInteractiveComponent(t, {
                                      el: e,
                                      useEventCenter: !1,
                                  })
                                : t.context.unregisterInteractiveComponent(t)
                    }),
                    t
                )
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.context,
                        t = e.options,
                        n = e.dateEnv,
                        r = this.props,
                        o = r.startDate,
                        i = r.todayRange,
                        a = r.dateProfile,
                        s = n.format(o, t.dayPopoverFormat)
                    return _o(
                        us,
                        {
                            date: o,
                            dateProfile: a,
                            todayRange: i,
                            elRef: this.handleRootEl,
                        },
                        function (e, t, n) {
                            return _o(
                                vs,
                                {
                                    elRef: e,
                                    id: r.id,
                                    title: s,
                                    extraClassNames: ['fc-more-popover'].concat(
                                        t
                                    ),
                                    extraAttrs: n,
                                    parentEl: r.parentEl,
                                    alignmentEl: r.alignmentEl,
                                    alignGridTop: r.alignGridTop,
                                    onClose: r.onClose,
                                },
                                _o(
                                    ss,
                                    { date: o, dateProfile: a, todayRange: i },
                                    function (e, t) {
                                        return (
                                            t &&
                                            _o(
                                                'div',
                                                {
                                                    className:
                                                        'fc-more-popover-misc',
                                                    ref: e,
                                                },
                                                t
                                            )
                                        )
                                    }
                                ),
                                r.children
                            )
                        }
                    )
                }),
                (t.prototype.queryHit = function (e, t, n, o) {
                    var i = this.rootEl,
                        a = this.props
                    return e >= 0 && e < n && t >= 0 && t < o
                        ? {
                              dateProfile: a.dateProfile,
                              dateSpan: r(
                                  {
                                      allDay: !0,
                                      range: {
                                          start: a.startDate,
                                          end: a.endDate,
                                      },
                                  },
                                  a.extraDateSpan
                              ),
                              dayEl: i,
                              rect: { left: 0, top: 0, right: n, bottom: o },
                              layer: 1,
                          }
                        : null
                }),
                t
            )
        })(Bo),
        ms = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (
                    (t.linkElRef = ko()),
                    (t.state = { isPopoverOpen: !1, popoverId: xe() }),
                    (t.handleClick = function (e) {
                        var n = t,
                            r = n.props,
                            o = n.context,
                            i = o.options.moreLinkClick,
                            a = Es(r).start
                        function s(e) {
                            var t = e.eventRange,
                                n = t.def,
                                r = t.instance,
                                i = t.range
                            return {
                                event: new xr(o, n, r),
                                start: o.dateEnv.toDate(i.start),
                                end: o.dateEnv.toDate(i.end),
                                isStart: e.isStart,
                                isEnd: e.isEnd,
                            }
                        }
                        'function' == typeof i &&
                            (i = i({
                                date: a,
                                allDay: Boolean(r.allDayDate),
                                allSegs: r.allSegs.map(s),
                                hiddenSegs: r.hiddenSegs.map(s),
                                jsEvent: e,
                                view: o.viewApi,
                            })),
                            i && 'popover' !== i
                                ? 'string' == typeof i &&
                                  o.calendarApi.zoomTo(a, i)
                                : t.setState({ isPopoverOpen: !0 })
                    }),
                    (t.handlePopoverClose = function () {
                        t.setState({ isPopoverOpen: !1 })
                    }),
                    t
                )
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this,
                        t = this.props,
                        n = this.state
                    return _o(Oo.Consumer, null, function (r) {
                        var o = r.viewApi,
                            i = r.options,
                            a = r.calendarApi,
                            s = i.moreLinkText,
                            l = t.moreCnt,
                            u = Es(t),
                            c =
                                'function' == typeof s
                                    ? s.call(a, l)
                                    : '+' + l + ' ' + s,
                            d = Xe(i.moreLinkHint, [l], c),
                            p = { num: l, shortText: '+' + l, text: c, view: o }
                        return _o(
                            xo,
                            null,
                            Boolean(t.moreCnt) &&
                                _o(
                                    Yo,
                                    {
                                        elRef: e.linkElRef,
                                        hookProps: p,
                                        classNames: i.moreLinkClassNames,
                                        content: i.moreLinkContent,
                                        defaultContent: t.defaultContent || ys,
                                        didMount: i.moreLinkDidMount,
                                        willUnmount: i.moreLinkWillUnmount,
                                    },
                                    function (r, o, i, a) {
                                        return t.children(
                                            r,
                                            ['fc-more-link'].concat(o),
                                            i,
                                            a,
                                            e.handleClick,
                                            d,
                                            n.isPopoverOpen,
                                            n.isPopoverOpen ? n.popoverId : ''
                                        )
                                    }
                                ),
                            n.isPopoverOpen &&
                                _o(
                                    gs,
                                    {
                                        id: n.popoverId,
                                        startDate: u.start,
                                        endDate: u.end,
                                        dateProfile: t.dateProfile,
                                        todayRange: t.todayRange,
                                        extraDateSpan: t.extraDateSpan,
                                        parentEl: e.parentEl,
                                        alignmentEl: t.alignmentElRef.current,
                                        alignGridTop: t.alignGridTop,
                                        onClose: e.handlePopoverClose,
                                    },
                                    t.popoverContent()
                                )
                        )
                    })
                }),
                (t.prototype.componentDidMount = function () {
                    this.updateParentEl()
                }),
                (t.prototype.componentDidUpdate = function () {
                    this.updateParentEl()
                }),
                (t.prototype.updateParentEl = function () {
                    this.linkElRef.current &&
                        (this.parentEl = Se(
                            this.linkElRef.current,
                            '.fc-view-harness'
                        ))
                }),
                t
            )
        })(Uo)
    function ys(e) {
        return e.text
    }
    function Es(e) {
        if (e.allDayDate)
            return { start: e.allDayDate, end: tt(e.allDayDate, 1) }
        var t,
            n = e.hiddenSegs
        return {
            start: Ss(n),
            end: ((t = n), t.reduce(Ds).eventRange.range.end),
        }
    }
    function Ss(e) {
        return e.reduce(bs).eventRange.range.start
    }
    function bs(e, t) {
        return e.eventRange.range.start < t.eventRange.range.start ? e : t
    }
    function Ds(e, t) {
        return e.eventRange.range.end > t.eventRange.range.end ? e : t
    }
    var Cs = (function (e) {
        function t(t, n) {
            void 0 === n && (n = {})
            var o = e.call(this) || this
            return (
                (o.isRendering = !1),
                (o.isRendered = !1),
                (o.currentClassNames = []),
                (o.customContentRenderId = 0),
                (o.handleAction = function (e) {
                    switch (e.type) {
                        case 'SET_EVENT_DRAG':
                        case 'SET_EVENT_RESIZE':
                            o.renderRunner.tryDrain()
                    }
                }),
                (o.handleData = function (e) {
                    ;(o.currentData = e),
                        o.renderRunner.request(e.calendarOptions.rerenderDelay)
                }),
                (o.handleRenderRequest = function () {
                    if (o.isRendering) {
                        o.isRendered = !0
                        var e = o.currentData
                        Po(function () {
                            To(
                                _o(
                                    ga,
                                    {
                                        options: e.calendarOptions,
                                        theme: e.theme,
                                        emitter: e.emitter,
                                    },
                                    function (t, n, i, a) {
                                        return (
                                            o.setClassNames(t),
                                            o.setHeight(n),
                                            _o(
                                                Zo.Provider,
                                                {
                                                    value: o.customContentRenderId,
                                                },
                                                _o(
                                                    fa,
                                                    r(
                                                        {
                                                            isHeightAuto: i,
                                                            forPrint: a,
                                                        },
                                                        e
                                                    )
                                                )
                                            )
                                        )
                                    }
                                ),
                                o.el
                            )
                        })
                    } else
                        o.isRendered &&
                            ((o.isRendered = !1),
                            No(o.el),
                            o.setClassNames([]),
                            o.setHeight(''))
                }),
                (o.el = t),
                (o.renderRunner = new Mi(o.handleRenderRequest)),
                new Ni({
                    optionOverrides: n,
                    calendarApi: o,
                    onAction: o.handleAction,
                    onData: o.handleData,
                }),
                o
            )
        }
        return (
            n(t, e),
            Object.defineProperty(t.prototype, 'view', {
                get: function () {
                    return this.currentData.viewApi
                },
                enumerable: !1,
                configurable: !0,
            }),
            (t.prototype.render = function () {
                var e = this.isRendering
                e ? (this.customContentRenderId += 1) : (this.isRendering = !0),
                    this.renderRunner.request(),
                    e && this.updateSize()
            }),
            (t.prototype.destroy = function () {
                this.isRendering &&
                    ((this.isRendering = !1), this.renderRunner.request())
            }),
            (t.prototype.updateSize = function () {
                var t = this
                Po(function () {
                    e.prototype.updateSize.call(t)
                })
            }),
            (t.prototype.batchRendering = function (e) {
                this.renderRunner.pause('batchRendering'),
                    e(),
                    this.renderRunner.resume('batchRendering')
            }),
            (t.prototype.pauseRendering = function () {
                this.renderRunner.pause('pauseRendering')
            }),
            (t.prototype.resumeRendering = function () {
                this.renderRunner.resume('pauseRendering', !0)
            }),
            (t.prototype.resetOptions = function (e, t) {
                this.currentDataManager.resetOptions(e, t)
            }),
            (t.prototype.setClassNames = function (e) {
                if (!Gt(e, this.currentClassNames)) {
                    for (
                        var t = this.el.classList,
                            n = 0,
                            r = this.currentClassNames;
                        n < r.length;
                        n++
                    ) {
                        var o = r[n]
                        t.remove(o)
                    }
                    for (var i = 0, a = e; i < a.length; i++) {
                        o = a[i]
                        t.add(o)
                    }
                    this.currentClassNames = e
                }
            }),
            (t.prototype.setHeight = function (e) {
                Re(this.el, 'height', e)
            }),
            t
        )
    })(kr)
    ia.touchMouseIgnoreWait = 500
    var ws = 0,
        Rs = 0,
        _s = !1,
        Ts = (function () {
            function e(e) {
                var t = this
                ;(this.subjectEl = null),
                    (this.selector = ''),
                    (this.handleSelector = ''),
                    (this.shouldIgnoreMove = !1),
                    (this.shouldWatchScroll = !0),
                    (this.isDragging = !1),
                    (this.isTouchDragging = !1),
                    (this.wasTouchScroll = !1),
                    (this.handleMouseDown = function (e) {
                        if (
                            !t.shouldIgnoreMouse() &&
                            (function (e) {
                                return 0 === e.button && !e.ctrlKey
                            })(e) &&
                            t.tryStart(e)
                        ) {
                            var n = t.createEventFromMouse(e, !0)
                            t.emitter.trigger('pointerdown', n),
                                t.initScrollWatch(n),
                                t.shouldIgnoreMove ||
                                    document.addEventListener(
                                        'mousemove',
                                        t.handleMouseMove
                                    ),
                                document.addEventListener(
                                    'mouseup',
                                    t.handleMouseUp
                                )
                        }
                    }),
                    (this.handleMouseMove = function (e) {
                        var n = t.createEventFromMouse(e)
                        t.recordCoords(n), t.emitter.trigger('pointermove', n)
                    }),
                    (this.handleMouseUp = function (e) {
                        document.removeEventListener(
                            'mousemove',
                            t.handleMouseMove
                        ),
                            document.removeEventListener(
                                'mouseup',
                                t.handleMouseUp
                            ),
                            t.emitter.trigger(
                                'pointerup',
                                t.createEventFromMouse(e)
                            ),
                            t.cleanup()
                    }),
                    (this.handleTouchStart = function (e) {
                        if (t.tryStart(e)) {
                            t.isTouchDragging = !0
                            var n = t.createEventFromTouch(e, !0)
                            t.emitter.trigger('pointerdown', n),
                                t.initScrollWatch(n)
                            var r = e.target
                            t.shouldIgnoreMove ||
                                r.addEventListener(
                                    'touchmove',
                                    t.handleTouchMove
                                ),
                                r.addEventListener(
                                    'touchend',
                                    t.handleTouchEnd
                                ),
                                r.addEventListener(
                                    'touchcancel',
                                    t.handleTouchEnd
                                ),
                                window.addEventListener(
                                    'scroll',
                                    t.handleTouchScroll,
                                    !0
                                )
                        }
                    }),
                    (this.handleTouchMove = function (e) {
                        var n = t.createEventFromTouch(e)
                        t.recordCoords(n), t.emitter.trigger('pointermove', n)
                    }),
                    (this.handleTouchEnd = function (e) {
                        if (t.isDragging) {
                            var n = e.target
                            n.removeEventListener(
                                'touchmove',
                                t.handleTouchMove
                            ),
                                n.removeEventListener(
                                    'touchend',
                                    t.handleTouchEnd
                                ),
                                n.removeEventListener(
                                    'touchcancel',
                                    t.handleTouchEnd
                                ),
                                window.removeEventListener(
                                    'scroll',
                                    t.handleTouchScroll,
                                    !0
                                ),
                                t.emitter.trigger(
                                    'pointerup',
                                    t.createEventFromTouch(e)
                                ),
                                t.cleanup(),
                                (t.isTouchDragging = !1),
                                (ws += 1),
                                setTimeout(function () {
                                    ws -= 1
                                }, ia.touchMouseIgnoreWait)
                        }
                    }),
                    (this.handleTouchScroll = function () {
                        t.wasTouchScroll = !0
                    }),
                    (this.handleScroll = function (e) {
                        if (!t.shouldIgnoreMove) {
                            var n =
                                    window.pageXOffset -
                                    t.prevScrollX +
                                    t.prevPageX,
                                r =
                                    window.pageYOffset -
                                    t.prevScrollY +
                                    t.prevPageY
                            t.emitter.trigger('pointermove', {
                                origEvent: e,
                                isTouch: t.isTouchDragging,
                                subjectEl: t.subjectEl,
                                pageX: n,
                                pageY: r,
                                deltaX: n - t.origPageX,
                                deltaY: r - t.origPageY,
                            })
                        }
                    }),
                    (this.containerEl = e),
                    (this.emitter = new Eo()),
                    e.addEventListener('mousedown', this.handleMouseDown),
                    e.addEventListener('touchstart', this.handleTouchStart, {
                        passive: !0,
                    }),
                    1 === (Rs += 1) &&
                        window.addEventListener('touchmove', ks, {
                            passive: !1,
                        })
            }
            return (
                (e.prototype.destroy = function () {
                    this.containerEl.removeEventListener(
                        'mousedown',
                        this.handleMouseDown
                    ),
                        this.containerEl.removeEventListener(
                            'touchstart',
                            this.handleTouchStart,
                            { passive: !0 }
                        ),
                        (Rs -= 1) ||
                            window.removeEventListener('touchmove', ks, {
                                passive: !1,
                            })
                }),
                (e.prototype.tryStart = function (e) {
                    var t = this.querySubjectEl(e),
                        n = e.target
                    return (
                        !(
                            !t ||
                            (this.handleSelector && !Se(n, this.handleSelector))
                        ) &&
                        ((this.subjectEl = t),
                        (this.isDragging = !0),
                        (this.wasTouchScroll = !1),
                        !0)
                    )
                }),
                (e.prototype.cleanup = function () {
                    ;(_s = !1),
                        (this.isDragging = !1),
                        (this.subjectEl = null),
                        this.destroyScrollWatch()
                }),
                (e.prototype.querySubjectEl = function (e) {
                    return this.selector
                        ? Se(e.target, this.selector)
                        : this.containerEl
                }),
                (e.prototype.shouldIgnoreMouse = function () {
                    return ws || this.isTouchDragging
                }),
                (e.prototype.cancelTouchScroll = function () {
                    this.isDragging && (_s = !0)
                }),
                (e.prototype.initScrollWatch = function (e) {
                    this.shouldWatchScroll &&
                        (this.recordCoords(e),
                        window.addEventListener(
                            'scroll',
                            this.handleScroll,
                            !0
                        ))
                }),
                (e.prototype.recordCoords = function (e) {
                    this.shouldWatchScroll &&
                        ((this.prevPageX = e.pageX),
                        (this.prevPageY = e.pageY),
                        (this.prevScrollX = window.pageXOffset),
                        (this.prevScrollY = window.pageYOffset))
                }),
                (e.prototype.destroyScrollWatch = function () {
                    this.shouldWatchScroll &&
                        window.removeEventListener(
                            'scroll',
                            this.handleScroll,
                            !0
                        )
                }),
                (e.prototype.createEventFromMouse = function (e, t) {
                    var n = 0,
                        r = 0
                    return (
                        t
                            ? ((this.origPageX = e.pageX),
                              (this.origPageY = e.pageY))
                            : ((n = e.pageX - this.origPageX),
                              (r = e.pageY - this.origPageY)),
                        {
                            origEvent: e,
                            isTouch: !1,
                            subjectEl: this.subjectEl,
                            pageX: e.pageX,
                            pageY: e.pageY,
                            deltaX: n,
                            deltaY: r,
                        }
                    )
                }),
                (e.prototype.createEventFromTouch = function (e, t) {
                    var n,
                        r,
                        o = e.touches,
                        i = 0,
                        a = 0
                    return (
                        o && o.length
                            ? ((n = o[0].pageX), (r = o[0].pageY))
                            : ((n = e.pageX), (r = e.pageY)),
                        t
                            ? ((this.origPageX = n), (this.origPageY = r))
                            : ((i = n - this.origPageX),
                              (a = r - this.origPageY)),
                        {
                            origEvent: e,
                            isTouch: !0,
                            subjectEl: this.subjectEl,
                            pageX: n,
                            pageY: r,
                            deltaX: i,
                            deltaY: a,
                        }
                    )
                }),
                e
            )
        })()
    function ks(e) {
        _s && e.preventDefault()
    }
    var xs = (function () {
            function e() {
                ;(this.isVisible = !1),
                    (this.sourceEl = null),
                    (this.mirrorEl = null),
                    (this.sourceElRect = null),
                    (this.parentNode = document.body),
                    (this.zIndex = 9999),
                    (this.revertDuration = 0)
            }
            return (
                (e.prototype.start = function (e, t, n) {
                    ;(this.sourceEl = e),
                        (this.sourceElRect =
                            this.sourceEl.getBoundingClientRect()),
                        (this.origScreenX = t - window.pageXOffset),
                        (this.origScreenY = n - window.pageYOffset),
                        (this.deltaX = 0),
                        (this.deltaY = 0),
                        this.updateElPosition()
                }),
                (e.prototype.handleMove = function (e, t) {
                    ;(this.deltaX = e - window.pageXOffset - this.origScreenX),
                        (this.deltaY =
                            t - window.pageYOffset - this.origScreenY),
                        this.updateElPosition()
                }),
                (e.prototype.setIsVisible = function (e) {
                    e
                        ? this.isVisible ||
                          (this.mirrorEl && (this.mirrorEl.style.display = ''),
                          (this.isVisible = e),
                          this.updateElPosition())
                        : this.isVisible &&
                          (this.mirrorEl &&
                              (this.mirrorEl.style.display = 'none'),
                          (this.isVisible = e))
                }),
                (e.prototype.stop = function (e, t) {
                    var n = this,
                        r = function () {
                            n.cleanup(), t()
                        }
                    e &&
                    this.mirrorEl &&
                    this.isVisible &&
                    this.revertDuration &&
                    (this.deltaX || this.deltaY)
                        ? this.doRevertAnimation(r, this.revertDuration)
                        : setTimeout(r, 0)
                }),
                (e.prototype.doRevertAnimation = function (e, t) {
                    var n = this.mirrorEl,
                        r = this.sourceEl.getBoundingClientRect()
                    ;(n.style.transition = 'top ' + t + 'ms,left ' + t + 'ms'),
                        we(n, { left: r.left, top: r.top }),
                        Ne(n, function () {
                            ;(n.style.transition = ''), e()
                        })
                }),
                (e.prototype.cleanup = function () {
                    this.mirrorEl &&
                        (Ee(this.mirrorEl), (this.mirrorEl = null)),
                        (this.sourceEl = null)
                }),
                (e.prototype.updateElPosition = function () {
                    this.sourceEl &&
                        this.isVisible &&
                        we(this.getMirrorEl(), {
                            left: this.sourceElRect.left + this.deltaX,
                            top: this.sourceElRect.top + this.deltaY,
                        })
                }),
                (e.prototype.getMirrorEl = function () {
                    var e = this.sourceElRect,
                        t = this.mirrorEl
                    return (
                        t ||
                            ((t = this.mirrorEl =
                                this.sourceEl.cloneNode(!0)).classList.add(
                                'fc-unselectable'
                            ),
                            t.classList.add('fc-event-dragging'),
                            we(t, {
                                position: 'fixed',
                                zIndex: this.zIndex,
                                visibility: '',
                                boxSizing: 'border-box',
                                width: e.right - e.left,
                                height: e.bottom - e.top,
                                right: 'auto',
                                bottom: 'auto',
                                margin: 0,
                            }),
                            this.parentNode.appendChild(t)),
                        t
                    )
                }),
                e
            )
        })(),
        Ms = (function (e) {
            function t(t, n) {
                var r = e.call(this) || this
                return (
                    (r.handleScroll = function () {
                        ;(r.scrollTop = r.scrollController.getScrollTop()),
                            (r.scrollLeft = r.scrollController.getScrollLeft()),
                            r.handleScrollChange()
                    }),
                    (r.scrollController = t),
                    (r.doesListening = n),
                    (r.scrollTop = r.origScrollTop = t.getScrollTop()),
                    (r.scrollLeft = r.origScrollLeft = t.getScrollLeft()),
                    (r.scrollWidth = t.getScrollWidth()),
                    (r.scrollHeight = t.getScrollHeight()),
                    (r.clientWidth = t.getClientWidth()),
                    (r.clientHeight = t.getClientHeight()),
                    (r.clientRect = r.computeClientRect()),
                    r.doesListening &&
                        r
                            .getEventTarget()
                            .addEventListener('scroll', r.handleScroll),
                    r
                )
            }
            return (
                n(t, e),
                (t.prototype.destroy = function () {
                    this.doesListening &&
                        this.getEventTarget().removeEventListener(
                            'scroll',
                            this.handleScroll
                        )
                }),
                (t.prototype.getScrollTop = function () {
                    return this.scrollTop
                }),
                (t.prototype.getScrollLeft = function () {
                    return this.scrollLeft
                }),
                (t.prototype.setScrollTop = function (e) {
                    this.scrollController.setScrollTop(e),
                        this.doesListening ||
                            ((this.scrollTop = Math.max(
                                Math.min(e, this.getMaxScrollTop()),
                                0
                            )),
                            this.handleScrollChange())
                }),
                (t.prototype.setScrollLeft = function (e) {
                    this.scrollController.setScrollLeft(e),
                        this.doesListening ||
                            ((this.scrollLeft = Math.max(
                                Math.min(e, this.getMaxScrollLeft()),
                                0
                            )),
                            this.handleScrollChange())
                }),
                (t.prototype.getClientWidth = function () {
                    return this.clientWidth
                }),
                (t.prototype.getClientHeight = function () {
                    return this.clientHeight
                }),
                (t.prototype.getScrollWidth = function () {
                    return this.scrollWidth
                }),
                (t.prototype.getScrollHeight = function () {
                    return this.scrollHeight
                }),
                (t.prototype.handleScrollChange = function () {}),
                t
            )
        })(bo),
        Is = (function (e) {
            function t(t, n) {
                return e.call(this, new Do(t), n) || this
            }
            return (
                n(t, e),
                (t.prototype.getEventTarget = function () {
                    return this.scrollController.el
                }),
                (t.prototype.computeClientRect = function () {
                    return vo(this.scrollController.el)
                }),
                t
            )
        })(Ms),
        Ps = (function (e) {
            function t(t) {
                return e.call(this, new Co(), t) || this
            }
            return (
                n(t, e),
                (t.prototype.getEventTarget = function () {
                    return window
                }),
                (t.prototype.computeClientRect = function () {
                    return {
                        left: this.scrollLeft,
                        right: this.scrollLeft + this.clientWidth,
                        top: this.scrollTop,
                        bottom: this.scrollTop + this.clientHeight,
                    }
                }),
                (t.prototype.handleScrollChange = function () {
                    this.clientRect = this.computeClientRect()
                }),
                t
            )
        })(Ms),
        Ns = 'function' == typeof performance ? performance.now : Date.now,
        Hs = (function () {
            function e() {
                var e = this
                ;(this.isEnabled = !0),
                    (this.scrollQuery = [window, '.fc-scroller']),
                    (this.edgeThreshold = 50),
                    (this.maxVelocity = 300),
                    (this.pointerScreenX = null),
                    (this.pointerScreenY = null),
                    (this.isAnimating = !1),
                    (this.scrollCaches = null),
                    (this.everMovedUp = !1),
                    (this.everMovedDown = !1),
                    (this.everMovedLeft = !1),
                    (this.everMovedRight = !1),
                    (this.animate = function () {
                        if (e.isAnimating) {
                            var t = e.computeBestEdge(
                                e.pointerScreenX + window.pageXOffset,
                                e.pointerScreenY + window.pageYOffset
                            )
                            if (t) {
                                var n = Ns()
                                e.handleSide(t, (n - e.msSinceRequest) / 1e3),
                                    e.requestAnimation(n)
                            } else e.isAnimating = !1
                        }
                    })
            }
            return (
                (e.prototype.start = function (e, t, n) {
                    this.isEnabled &&
                        ((this.scrollCaches = this.buildCaches(n)),
                        (this.pointerScreenX = null),
                        (this.pointerScreenY = null),
                        (this.everMovedUp = !1),
                        (this.everMovedDown = !1),
                        (this.everMovedLeft = !1),
                        (this.everMovedRight = !1),
                        this.handleMove(e, t))
                }),
                (e.prototype.handleMove = function (e, t) {
                    if (this.isEnabled) {
                        var n = e - window.pageXOffset,
                            r = t - window.pageYOffset,
                            o =
                                null === this.pointerScreenY
                                    ? 0
                                    : r - this.pointerScreenY,
                            i =
                                null === this.pointerScreenX
                                    ? 0
                                    : n - this.pointerScreenX
                        o < 0
                            ? (this.everMovedUp = !0)
                            : o > 0 && (this.everMovedDown = !0),
                            i < 0
                                ? (this.everMovedLeft = !0)
                                : i > 0 && (this.everMovedRight = !0),
                            (this.pointerScreenX = n),
                            (this.pointerScreenY = r),
                            this.isAnimating ||
                                ((this.isAnimating = !0),
                                this.requestAnimation(Ns()))
                    }
                }),
                (e.prototype.stop = function () {
                    if (this.isEnabled) {
                        this.isAnimating = !1
                        for (
                            var e = 0, t = this.scrollCaches;
                            e < t.length;
                            e++
                        ) {
                            t[e].destroy()
                        }
                        this.scrollCaches = null
                    }
                }),
                (e.prototype.requestAnimation = function (e) {
                    ;(this.msSinceRequest = e),
                        requestAnimationFrame(this.animate)
                }),
                (e.prototype.handleSide = function (e, t) {
                    var n = e.scrollCache,
                        r = this.edgeThreshold,
                        o = r - e.distance,
                        i = ((o * o) / (r * r)) * this.maxVelocity * t,
                        a = 1
                    switch (e.name) {
                        case 'left':
                            a = -1
                        case 'right':
                            n.setScrollLeft(n.getScrollLeft() + i * a)
                            break
                        case 'top':
                            a = -1
                        case 'bottom':
                            n.setScrollTop(n.getScrollTop() + i * a)
                    }
                }),
                (e.prototype.computeBestEdge = function (e, t) {
                    for (
                        var n = this.edgeThreshold,
                            r = null,
                            o = 0,
                            i = this.scrollCaches || [];
                        o < i.length;
                        o++
                    ) {
                        var a = i[o],
                            s = a.clientRect,
                            l = e - s.left,
                            u = s.right - e,
                            c = t - s.top,
                            d = s.bottom - t
                        l >= 0 &&
                            u >= 0 &&
                            c >= 0 &&
                            d >= 0 &&
                            (c <= n &&
                                this.everMovedUp &&
                                a.canScrollUp() &&
                                (!r || r.distance > c) &&
                                (r = {
                                    scrollCache: a,
                                    name: 'top',
                                    distance: c,
                                }),
                            d <= n &&
                                this.everMovedDown &&
                                a.canScrollDown() &&
                                (!r || r.distance > d) &&
                                (r = {
                                    scrollCache: a,
                                    name: 'bottom',
                                    distance: d,
                                }),
                            l <= n &&
                                this.everMovedLeft &&
                                a.canScrollLeft() &&
                                (!r || r.distance > l) &&
                                (r = {
                                    scrollCache: a,
                                    name: 'left',
                                    distance: l,
                                }),
                            u <= n &&
                                this.everMovedRight &&
                                a.canScrollRight() &&
                                (!r || r.distance > u) &&
                                (r = {
                                    scrollCache: a,
                                    name: 'right',
                                    distance: u,
                                }))
                    }
                    return r
                }),
                (e.prototype.buildCaches = function (e) {
                    return this.queryScrollEls(e).map(function (e) {
                        return e === window ? new Ps(!1) : new Is(e, !1)
                    })
                }),
                (e.prototype.queryScrollEls = function (e) {
                    for (
                        var t = [], n = 0, r = this.scrollQuery;
                        n < r.length;
                        n++
                    ) {
                        var o = r[n]
                        'object' == typeof o
                            ? t.push(o)
                            : t.push.apply(
                                  t,
                                  Array.prototype.slice.call(
                                      Te(e).querySelectorAll(o)
                                  )
                              )
                    }
                    return t
                }),
                e
            )
        })(),
        Os = (function (e) {
            function t(t, n) {
                var r = e.call(this, t) || this
                ;(r.containerEl = t),
                    (r.delay = null),
                    (r.minDistance = 0),
                    (r.touchScrollAllowed = !0),
                    (r.mirrorNeedsRevert = !1),
                    (r.isInteracting = !1),
                    (r.isDragging = !1),
                    (r.isDelayEnded = !1),
                    (r.isDistanceSurpassed = !1),
                    (r.delayTimeoutId = null),
                    (r.onPointerDown = function (e) {
                        r.isDragging ||
                            ((r.isInteracting = !0),
                            (r.isDelayEnded = !1),
                            (r.isDistanceSurpassed = !1),
                            Ve(document.body),
                            Be(document.body),
                            e.isTouch || e.origEvent.preventDefault(),
                            r.emitter.trigger('pointerdown', e),
                            r.isInteracting &&
                                !r.pointer.shouldIgnoreMove &&
                                (r.mirror.setIsVisible(!1),
                                r.mirror.start(e.subjectEl, e.pageX, e.pageY),
                                r.startDelay(e),
                                r.minDistance || r.handleDistanceSurpassed(e)))
                    }),
                    (r.onPointerMove = function (e) {
                        if (r.isInteracting) {
                            if (
                                (r.emitter.trigger('pointermove', e),
                                !r.isDistanceSurpassed)
                            ) {
                                var t = r.minDistance,
                                    n = e.deltaX,
                                    o = e.deltaY
                                n * n + o * o >= t * t &&
                                    r.handleDistanceSurpassed(e)
                            }
                            r.isDragging &&
                                ('scroll' !== e.origEvent.type &&
                                    (r.mirror.handleMove(e.pageX, e.pageY),
                                    r.autoScroller.handleMove(
                                        e.pageX,
                                        e.pageY
                                    )),
                                r.emitter.trigger('dragmove', e))
                        }
                    }),
                    (r.onPointerUp = function (e) {
                        r.isInteracting &&
                            ((r.isInteracting = !1),
                            Fe(document.body),
                            ze(document.body),
                            r.emitter.trigger('pointerup', e),
                            r.isDragging &&
                                (r.autoScroller.stop(), r.tryStopDrag(e)),
                            r.delayTimeoutId &&
                                (clearTimeout(r.delayTimeoutId),
                                (r.delayTimeoutId = null)))
                    })
                var o = (r.pointer = new Ts(t))
                return (
                    o.emitter.on('pointerdown', r.onPointerDown),
                    o.emitter.on('pointermove', r.onPointerMove),
                    o.emitter.on('pointerup', r.onPointerUp),
                    n && (o.selector = n),
                    (r.mirror = new xs()),
                    (r.autoScroller = new Hs()),
                    r
                )
            }
            return (
                n(t, e),
                (t.prototype.destroy = function () {
                    this.pointer.destroy(), this.onPointerUp({})
                }),
                (t.prototype.startDelay = function (e) {
                    var t = this
                    'number' == typeof this.delay
                        ? (this.delayTimeoutId = setTimeout(function () {
                              ;(t.delayTimeoutId = null), t.handleDelayEnd(e)
                          }, this.delay))
                        : this.handleDelayEnd(e)
                }),
                (t.prototype.handleDelayEnd = function (e) {
                    ;(this.isDelayEnded = !0), this.tryStartDrag(e)
                }),
                (t.prototype.handleDistanceSurpassed = function (e) {
                    ;(this.isDistanceSurpassed = !0), this.tryStartDrag(e)
                }),
                (t.prototype.tryStartDrag = function (e) {
                    this.isDelayEnded &&
                        this.isDistanceSurpassed &&
                        ((this.pointer.wasTouchScroll &&
                            !this.touchScrollAllowed) ||
                            ((this.isDragging = !0),
                            (this.mirrorNeedsRevert = !1),
                            this.autoScroller.start(
                                e.pageX,
                                e.pageY,
                                this.containerEl
                            ),
                            this.emitter.trigger('dragstart', e),
                            !1 === this.touchScrollAllowed &&
                                this.pointer.cancelTouchScroll()))
                }),
                (t.prototype.tryStopDrag = function (e) {
                    this.mirror.stop(
                        this.mirrorNeedsRevert,
                        this.stopDrag.bind(this, e)
                    )
                }),
                (t.prototype.stopDrag = function (e) {
                    ;(this.isDragging = !1), this.emitter.trigger('dragend', e)
                }),
                (t.prototype.setIgnoreMove = function (e) {
                    this.pointer.shouldIgnoreMove = e
                }),
                (t.prototype.setMirrorIsVisible = function (e) {
                    this.mirror.setIsVisible(e)
                }),
                (t.prototype.setMirrorNeedsRevert = function (e) {
                    this.mirrorNeedsRevert = e
                }),
                (t.prototype.setAutoScrollEnabled = function (e) {
                    this.autoScroller.isEnabled = e
                }),
                t
            )
        })(oa),
        As = (function () {
            function e(e) {
                ;(this.origRect = go(e)),
                    (this.scrollCaches = mo(e).map(function (e) {
                        return new Is(e, !0)
                    }))
            }
            return (
                (e.prototype.destroy = function () {
                    for (var e = 0, t = this.scrollCaches; e < t.length; e++) {
                        t[e].destroy()
                    }
                }),
                (e.prototype.computeLeft = function () {
                    for (
                        var e = this.origRect.left,
                            t = 0,
                            n = this.scrollCaches;
                        t < n.length;
                        t++
                    ) {
                        var r = n[t]
                        e += r.origScrollLeft - r.getScrollLeft()
                    }
                    return e
                }),
                (e.prototype.computeTop = function () {
                    for (
                        var e = this.origRect.top, t = 0, n = this.scrollCaches;
                        t < n.length;
                        t++
                    ) {
                        var r = n[t]
                        e += r.origScrollTop - r.getScrollTop()
                    }
                    return e
                }),
                (e.prototype.isWithinClipping = function (e, t) {
                    for (
                        var n,
                            r,
                            o = { left: e, top: t },
                            i = 0,
                            a = this.scrollCaches;
                        i < a.length;
                        i++
                    ) {
                        var s = a[i]
                        if (
                            ((n = s.getEventTarget()),
                            (r = void 0),
                            'HTML' !== (r = n.tagName) &&
                                'BODY' !== r &&
                                !Zr(o, s.clientRect))
                        )
                            return !1
                    }
                    return !0
                }),
                e
            )
        })()
    var Ls = (function () {
        function e(e, t) {
            var n = this
            ;(this.useSubjectCenter = !1),
                (this.requireInitial = !0),
                (this.initialHit = null),
                (this.movingHit = null),
                (this.finalHit = null),
                (this.handlePointerDown = function (e) {
                    var t = n.dragging
                    ;(n.initialHit = null),
                        (n.movingHit = null),
                        (n.finalHit = null),
                        n.prepareHits(),
                        n.processFirstCoord(e),
                        n.initialHit || !n.requireInitial
                            ? (t.setIgnoreMove(!1),
                              n.emitter.trigger('pointerdown', e))
                            : t.setIgnoreMove(!0)
                }),
                (this.handleDragStart = function (e) {
                    n.emitter.trigger('dragstart', e), n.handleMove(e, !0)
                }),
                (this.handleDragMove = function (e) {
                    n.emitter.trigger('dragmove', e), n.handleMove(e)
                }),
                (this.handlePointerUp = function (e) {
                    n.releaseHits(), n.emitter.trigger('pointerup', e)
                }),
                (this.handleDragEnd = function (e) {
                    n.movingHit && n.emitter.trigger('hitupdate', null, !0, e),
                        (n.finalHit = n.movingHit),
                        (n.movingHit = null),
                        n.emitter.trigger('dragend', e)
                }),
                (this.droppableStore = t),
                e.emitter.on('pointerdown', this.handlePointerDown),
                e.emitter.on('dragstart', this.handleDragStart),
                e.emitter.on('dragmove', this.handleDragMove),
                e.emitter.on('pointerup', this.handlePointerUp),
                e.emitter.on('dragend', this.handleDragEnd),
                (this.dragging = e),
                (this.emitter = new Eo())
        }
        return (
            (e.prototype.processFirstCoord = function (e) {
                var t,
                    n = { left: e.pageX, top: e.pageY },
                    r = n,
                    o = e.subjectEl
                o instanceof HTMLElement && (r = Kr(r, (t = go(o))))
                var i = (this.initialHit = this.queryHitForOffset(
                    r.left,
                    r.top
                ))
                if (i) {
                    if (this.useSubjectCenter && t) {
                        var a = Xr(t, i.rect)
                        a && (r = $r(a))
                    }
                    this.coordAdjust = Jr(r, n)
                } else this.coordAdjust = { left: 0, top: 0 }
            }),
            (e.prototype.handleMove = function (e, t) {
                var n = this.queryHitForOffset(
                    e.pageX + this.coordAdjust.left,
                    e.pageY + this.coordAdjust.top
                )
                ;(!t && Us(this.movingHit, n)) ||
                    ((this.movingHit = n),
                    this.emitter.trigger('hitupdate', n, !1, e))
            }),
            (e.prototype.prepareHits = function () {
                this.offsetTrackers = bt(this.droppableStore, function (e) {
                    return e.component.prepareHits(), new As(e.el)
                })
            }),
            (e.prototype.releaseHits = function () {
                var e = this.offsetTrackers
                for (var t in e) e[t].destroy()
                this.offsetTrackers = {}
            }),
            (e.prototype.queryHitForOffset = function (e, t) {
                var n = this.droppableStore,
                    r = this.offsetTrackers,
                    o = null
                for (var i in n) {
                    var a = n[i].component,
                        s = r[i]
                    if (s && s.isWithinClipping(e, t)) {
                        var l = s.computeLeft(),
                            u = s.computeTop(),
                            c = e - l,
                            d = t - u,
                            p = s.origRect,
                            f = p.right - p.left,
                            h = p.bottom - p.top
                        if (c >= 0 && c < f && d >= 0 && d < h) {
                            var v = a.queryHit(c, d, f, h)
                            v &&
                                Yn(
                                    v.dateProfile.activeRange,
                                    v.dateSpan.range
                                ) &&
                                (!o || v.layer > o.layer) &&
                                ((v.componentId = i),
                                (v.context = a.context),
                                (v.rect.left += l),
                                (v.rect.right += l),
                                (v.rect.top += u),
                                (v.rect.bottom += u),
                                (o = v))
                        }
                    }
                }
                return o
            }),
            e
        )
    })()
    function Us(e, t) {
        return (
            (!e && !t) ||
            (Boolean(e) === Boolean(t) && fr(e.dateSpan, t.dateSpan))
        )
    }
    function Ws(e, t) {
        for (
            var n, o, i = {}, a = 0, s = t.pluginHooks.datePointTransforms;
            a < s.length;
            a++
        ) {
            var l = s[a]
            r(i, l(e, t))
        }
        return (
            r(
                i,
                ((n = e),
                {
                    date: (o = t.dateEnv).toDate(n.range.start),
                    dateStr: o.formatIso(n.range.start, { omitTime: n.allDay }),
                    allDay: n.allDay,
                })
            ),
            i
        )
    }
    var Vs = (function (e) {
            function t(t) {
                var n = e.call(this, t) || this
                ;(n.handlePointerDown = function (e) {
                    var t = n.dragging,
                        r = e.origEvent.target
                    t.setIgnoreMove(!n.component.isValidDateDownEl(r))
                }),
                    (n.handleDragEnd = function (e) {
                        var t = n.component
                        if (!n.dragging.pointer.wasTouchScroll) {
                            var o = n.hitDragging,
                                i = o.initialHit,
                                a = o.finalHit
                            if (i && a && Us(i, a)) {
                                var s = t.context,
                                    l = r(r({}, Ws(i.dateSpan, s)), {
                                        dayEl: i.dayEl,
                                        jsEvent: e.origEvent,
                                        view: s.viewApi || s.calendarApi.view,
                                    })
                                s.emitter.trigger('dateClick', l)
                            }
                        }
                    }),
                    (n.dragging = new Os(t.el)),
                    (n.dragging.autoScroller.isEnabled = !1)
                var o = (n.hitDragging = new Ls(n.dragging, na(t)))
                return (
                    o.emitter.on('pointerdown', n.handlePointerDown),
                    o.emitter.on('dragend', n.handleDragEnd),
                    n
                )
            }
            return (
                n(t, e),
                (t.prototype.destroy = function () {
                    this.dragging.destroy()
                }),
                t
            )
        })(ea),
        Fs = (function (e) {
            function t(t) {
                var n = e.call(this, t) || this
                ;(n.dragSelection = null),
                    (n.handlePointerDown = function (e) {
                        var t = n,
                            r = t.component,
                            o = t.dragging,
                            i =
                                r.context.options.selectable &&
                                r.isValidDateDownEl(e.origEvent.target)
                        o.setIgnoreMove(!i),
                            (o.delay = e.isTouch
                                ? (function (e) {
                                      var t = e.context.options,
                                          n = t.selectLongPressDelay
                                      null == n && (n = t.longPressDelay)
                                      return n
                                  })(r)
                                : null)
                    }),
                    (n.handleDragStart = function (e) {
                        n.component.context.calendarApi.unselect(e)
                    }),
                    (n.handleHitUpdate = function (e, t) {
                        var o = n.component.context,
                            i = null,
                            a = !1
                        if (e) {
                            var s = n.hitDragging.initialHit
                            ;(e.componentId === s.componentId &&
                                n.isHitComboAllowed &&
                                !n.isHitComboAllowed(s, e)) ||
                                (i = (function (e, t, n) {
                                    var o = e.dateSpan,
                                        i = t.dateSpan,
                                        a = [
                                            o.range.start,
                                            o.range.end,
                                            i.range.start,
                                            i.range.end,
                                        ]
                                    a.sort(Ke)
                                    for (
                                        var s = {}, l = 0, u = n;
                                        l < u.length;
                                        l++
                                    ) {
                                        var c = (0, u[l])(e, t)
                                        if (!1 === c) return null
                                        c && r(s, c)
                                    }
                                    return (
                                        (s.range = { start: a[0], end: a[3] }),
                                        (s.allDay = o.allDay),
                                        s
                                    )
                                })(
                                    s,
                                    e,
                                    o.pluginHooks.dateSelectionTransformers
                                )),
                                (i && Pa(i, e.dateProfile, o)) ||
                                    ((a = !0), (i = null))
                        }
                        i
                            ? o.dispatch({ type: 'SELECT_DATES', selection: i })
                            : t || o.dispatch({ type: 'UNSELECT_DATES' }),
                            a ? Ue() : We(),
                            t || (n.dragSelection = i)
                    }),
                    (n.handlePointerUp = function (e) {
                        n.dragSelection &&
                            (mr(n.dragSelection, e, n.component.context),
                            (n.dragSelection = null))
                    })
                var o = t.component.context.options,
                    i = (n.dragging = new Os(t.el))
                ;(i.touchScrollAllowed = !1),
                    (i.minDistance = o.selectMinDistance || 0),
                    (i.autoScroller.isEnabled = o.dragScroll)
                var a = (n.hitDragging = new Ls(n.dragging, na(t)))
                return (
                    a.emitter.on('pointerdown', n.handlePointerDown),
                    a.emitter.on('dragstart', n.handleDragStart),
                    a.emitter.on('hitupdate', n.handleHitUpdate),
                    a.emitter.on('pointerup', n.handlePointerUp),
                    n
                )
            }
            return (
                n(t, e),
                (t.prototype.destroy = function () {
                    this.dragging.destroy()
                }),
                t
            )
        })(ea)
    var Bs = (function (e) {
        function t(n) {
            var o = e.call(this, n) || this
            ;(o.subjectEl = null),
                (o.subjectSeg = null),
                (o.isDragging = !1),
                (o.eventRange = null),
                (o.relevantEvents = null),
                (o.receivingContext = null),
                (o.validMutation = null),
                (o.mutatedRelevantEvents = null),
                (o.handlePointerDown = function (e) {
                    var t = e.origEvent.target,
                        n = o,
                        r = n.component,
                        i = n.dragging,
                        a = i.mirror,
                        s = r.context.options,
                        l = r.context
                    o.subjectEl = e.subjectEl
                    var u = (o.subjectSeg = Jn(e.subjectEl)),
                        c = (o.eventRange = u.eventRange).instance.instanceId
                    ;(o.relevantEvents = bn(l.getCurrentData().eventStore, c)),
                        (i.minDistance = e.isTouch
                            ? 0
                            : s.eventDragMinDistance),
                        (i.delay =
                            e.isTouch && c !== r.props.eventSelection
                                ? (function (e) {
                                      var t = e.context.options,
                                          n = t.eventLongPressDelay
                                      null == n && (n = t.longPressDelay)
                                      return n
                                  })(r)
                                : null),
                        s.fixedMirrorParent
                            ? (a.parentNode = s.fixedMirrorParent)
                            : (a.parentNode = Se(t, '.fc')),
                        (a.revertDuration = s.dragRevertDuration)
                    var d = r.isValidSegDownEl(t) && !Se(t, '.fc-event-resizer')
                    i.setIgnoreMove(!d),
                        (o.isDragging =
                            d &&
                            e.subjectEl.classList.contains(
                                'fc-event-draggable'
                            ))
                }),
                (o.handleDragStart = function (e) {
                    var t = o.component.context,
                        n = o.eventRange,
                        r = n.instance.instanceId
                    e.isTouch
                        ? r !== o.component.props.eventSelection &&
                          t.dispatch({
                              type: 'SELECT_EVENT',
                              eventInstanceId: r,
                          })
                        : t.dispatch({ type: 'UNSELECT_EVENT' }),
                        o.isDragging &&
                            (t.calendarApi.unselect(e),
                            t.emitter.trigger('eventDragStart', {
                                el: o.subjectEl,
                                event: new xr(t, n.def, n.instance),
                                jsEvent: e.origEvent,
                                view: t.viewApi,
                            }))
                }),
                (o.handleHitUpdate = function (e, t) {
                    if (o.isDragging) {
                        var n = o.relevantEvents,
                            r = o.hitDragging.initialHit,
                            i = o.component.context,
                            a = null,
                            s = null,
                            l = null,
                            u = !1,
                            c = {
                                affectedEvents: n,
                                mutatedEvents: { defs: {}, instances: {} },
                                isEvent: !0,
                            }
                        if (e) {
                            var d = (a = e.context).options
                            i === a || (d.editable && d.droppable)
                                ? (s = (function (e, t, n) {
                                      var r = e.dateSpan,
                                          o = t.dateSpan,
                                          i = r.range.start,
                                          a = o.range.start,
                                          s = {}
                                      r.allDay !== o.allDay &&
                                          ((s.allDay = o.allDay),
                                          (s.hasEnd =
                                              t.context.options.allDayMaintainDuration),
                                          o.allDay && (i = lt(i)))
                                      var l = Fn(
                                          i,
                                          a,
                                          e.context.dateEnv,
                                          e.componentId === t.componentId
                                              ? e.largeUnit
                                              : null
                                      )
                                      l.milliseconds && (s.allDay = !1)
                                      for (
                                          var u = {
                                                  datesDelta: l,
                                                  standardProps: s,
                                              },
                                              c = 0,
                                              d = n;
                                          c < d.length;
                                          c++
                                      ) {
                                          ;(0, d[c])(u, e, t)
                                      }
                                      return u
                                  })(
                                      r,
                                      e,
                                      a.getCurrentData().pluginHooks
                                          .eventDragMutationMassagers
                                  )) &&
                                  ((l = Sr(
                                      n,
                                      a.getCurrentData().eventUiBases,
                                      s,
                                      a
                                  )),
                                  (c.mutatedEvents = l),
                                  Ia(c, e.dateProfile, a) ||
                                      ((u = !0),
                                      (s = null),
                                      (l = null),
                                      (c.mutatedEvents = {
                                          defs: {},
                                          instances: {},
                                      })))
                                : (a = null)
                        }
                        o.displayDrag(a, c),
                            u ? Ue() : We(),
                            t ||
                                (i === a && Us(r, e) && (s = null),
                                o.dragging.setMirrorNeedsRevert(!s),
                                o.dragging.setMirrorIsVisible(
                                    !e ||
                                        !Te(o.subjectEl).querySelector(
                                            '.fc-event-mirror'
                                        )
                                ),
                                (o.receivingContext = a),
                                (o.validMutation = s),
                                (o.mutatedRelevantEvents = l))
                    }
                }),
                (o.handlePointerUp = function () {
                    o.isDragging || o.cleanup()
                }),
                (o.handleDragEnd = function (e) {
                    if (o.isDragging) {
                        var t = o.component.context,
                            n = t.viewApi,
                            i = o,
                            a = i.receivingContext,
                            s = i.validMutation,
                            l = o.eventRange.def,
                            u = o.eventRange.instance,
                            c = new xr(t, l, u),
                            d = o.relevantEvents,
                            p = o.mutatedRelevantEvents,
                            f = o.hitDragging.finalHit
                        if (
                            (o.clearDrag(),
                            t.emitter.trigger('eventDragStop', {
                                el: o.subjectEl,
                                event: c,
                                jsEvent: e.origEvent,
                                view: n,
                            }),
                            s)
                        ) {
                            if (a === t) {
                                var h = new xr(
                                    t,
                                    p.defs[l.defId],
                                    u ? p.instances[u.instanceId] : null
                                )
                                t.dispatch({
                                    type: 'MERGE_EVENTS',
                                    eventStore: p,
                                })
                                for (
                                    var v = {
                                            oldEvent: c,
                                            event: h,
                                            relatedEvents: Ir(p, t, u),
                                            revert: function () {
                                                t.dispatch({
                                                    type: 'MERGE_EVENTS',
                                                    eventStore: d,
                                                })
                                            },
                                        },
                                        g = {},
                                        m = 0,
                                        y =
                                            t.getCurrentData().pluginHooks
                                                .eventDropTransformers;
                                    m < y.length;
                                    m++
                                ) {
                                    var E = y[m]
                                    r(g, E(s, t))
                                }
                                t.emitter.trigger(
                                    'eventDrop',
                                    r(r(r({}, v), g), {
                                        el: e.subjectEl,
                                        delta: s.datesDelta,
                                        jsEvent: e.origEvent,
                                        view: n,
                                    })
                                ),
                                    t.emitter.trigger('eventChange', v)
                            } else if (a) {
                                var S = {
                                    event: c,
                                    relatedEvents: Ir(d, t, u),
                                    revert: function () {
                                        t.dispatch({
                                            type: 'MERGE_EVENTS',
                                            eventStore: d,
                                        })
                                    },
                                }
                                t.emitter.trigger(
                                    'eventLeave',
                                    r(r({}, S), {
                                        draggedEl: e.subjectEl,
                                        view: n,
                                    })
                                ),
                                    t.dispatch({
                                        type: 'REMOVE_EVENTS',
                                        eventStore: d,
                                    }),
                                    t.emitter.trigger('eventRemove', S)
                                var b = p.defs[l.defId],
                                    D = p.instances[u.instanceId],
                                    C = new xr(a, b, D)
                                a.dispatch({
                                    type: 'MERGE_EVENTS',
                                    eventStore: p,
                                })
                                var w = {
                                    event: C,
                                    relatedEvents: Ir(p, a, D),
                                    revert: function () {
                                        a.dispatch({
                                            type: 'REMOVE_EVENTS',
                                            eventStore: p,
                                        })
                                    },
                                }
                                a.emitter.trigger('eventAdd', w),
                                    e.isTouch &&
                                        a.dispatch({
                                            type: 'SELECT_EVENT',
                                            eventInstanceId: u.instanceId,
                                        }),
                                    a.emitter.trigger(
                                        'drop',
                                        r(r({}, Ws(f.dateSpan, a)), {
                                            draggedEl: e.subjectEl,
                                            jsEvent: e.origEvent,
                                            view: f.context.viewApi,
                                        })
                                    ),
                                    a.emitter.trigger(
                                        'eventReceive',
                                        r(r({}, w), {
                                            draggedEl: e.subjectEl,
                                            view: f.context.viewApi,
                                        })
                                    )
                            }
                        } else t.emitter.trigger('_noEventDrop')
                    }
                    o.cleanup()
                })
            var i = o.component.context.options,
                a = (o.dragging = new Os(n.el))
            ;(a.pointer.selector = t.SELECTOR),
                (a.touchScrollAllowed = !1),
                (a.autoScroller.isEnabled = i.dragScroll)
            var s = (o.hitDragging = new Ls(o.dragging, ra))
            return (
                (s.useSubjectCenter = n.useEventCenter),
                s.emitter.on('pointerdown', o.handlePointerDown),
                s.emitter.on('dragstart', o.handleDragStart),
                s.emitter.on('hitupdate', o.handleHitUpdate),
                s.emitter.on('pointerup', o.handlePointerUp),
                s.emitter.on('dragend', o.handleDragEnd),
                o
            )
        }
        return (
            n(t, e),
            (t.prototype.destroy = function () {
                this.dragging.destroy()
            }),
            (t.prototype.displayDrag = function (e, t) {
                var n = this.component.context,
                    r = this.receivingContext
                r &&
                    r !== e &&
                    (r === n
                        ? r.dispatch({
                              type: 'SET_EVENT_DRAG',
                              state: {
                                  affectedEvents: t.affectedEvents,
                                  mutatedEvents: { defs: {}, instances: {} },
                                  isEvent: !0,
                              },
                          })
                        : r.dispatch({ type: 'UNSET_EVENT_DRAG' })),
                    e && e.dispatch({ type: 'SET_EVENT_DRAG', state: t })
            }),
            (t.prototype.clearDrag = function () {
                var e = this.component.context,
                    t = this.receivingContext
                t && t.dispatch({ type: 'UNSET_EVENT_DRAG' }),
                    e !== t && e.dispatch({ type: 'UNSET_EVENT_DRAG' })
            }),
            (t.prototype.cleanup = function () {
                ;(this.subjectSeg = null),
                    (this.isDragging = !1),
                    (this.eventRange = null),
                    (this.relevantEvents = null),
                    (this.receivingContext = null),
                    (this.validMutation = null),
                    (this.mutatedRelevantEvents = null)
            }),
            (t.SELECTOR = '.fc-event-draggable, .fc-event-resizable'),
            t
        )
    })(ea)
    var zs = (function (e) {
        function t(t) {
            var n = e.call(this, t) || this
            ;(n.draggingSegEl = null),
                (n.draggingSeg = null),
                (n.eventRange = null),
                (n.relevantEvents = null),
                (n.validMutation = null),
                (n.mutatedRelevantEvents = null),
                (n.handlePointerDown = function (e) {
                    var t = n.component,
                        r = Jn(n.querySegEl(e)),
                        o = (n.eventRange = r.eventRange)
                    ;(n.dragging.minDistance =
                        t.context.options.eventDragMinDistance),
                        n.dragging.setIgnoreMove(
                            !n.component.isValidSegDownEl(e.origEvent.target) ||
                                (e.isTouch &&
                                    n.component.props.eventSelection !==
                                        o.instance.instanceId)
                        )
                }),
                (n.handleDragStart = function (e) {
                    var t = n.component.context,
                        r = n.eventRange
                    n.relevantEvents = bn(
                        t.getCurrentData().eventStore,
                        n.eventRange.instance.instanceId
                    )
                    var o = n.querySegEl(e)
                    ;(n.draggingSegEl = o),
                        (n.draggingSeg = Jn(o)),
                        t.calendarApi.unselect(),
                        t.emitter.trigger('eventResizeStart', {
                            el: o,
                            event: new xr(t, r.def, r.instance),
                            jsEvent: e.origEvent,
                            view: t.viewApi,
                        })
                }),
                (n.handleHitUpdate = function (e, t, r) {
                    var o = n.component.context,
                        i = n.relevantEvents,
                        a = n.hitDragging.initialHit,
                        s = n.eventRange.instance,
                        l = null,
                        u = null,
                        c = !1,
                        d = {
                            affectedEvents: i,
                            mutatedEvents: { defs: {}, instances: {} },
                            isEvent: !0,
                        }
                    e &&
                        ((e.componentId === a.componentId &&
                            n.isHitComboAllowed &&
                            !n.isHitComboAllowed(a, e)) ||
                            (l = (function (e, t, n, r) {
                                var o = e.context.dateEnv,
                                    i = e.dateSpan.range.start,
                                    a = t.dateSpan.range.start,
                                    s = Fn(i, a, o, e.largeUnit)
                                if (n) {
                                    if (o.add(r.start, s) < r.end)
                                        return { startDelta: s }
                                } else if (o.add(r.end, s) > r.start)
                                    return { endDelta: s }
                                return null
                            })(
                                a,
                                e,
                                r.subjectEl.classList.contains(
                                    'fc-event-resizer-start'
                                ),
                                s.range
                            )))
                    l &&
                        ((u = Sr(i, o.getCurrentData().eventUiBases, l, o)),
                        (d.mutatedEvents = u),
                        Ia(d, e.dateProfile, o) ||
                            ((c = !0),
                            (l = null),
                            (u = null),
                            (d.mutatedEvents = null))),
                        u
                            ? o.dispatch({ type: 'SET_EVENT_RESIZE', state: d })
                            : o.dispatch({ type: 'UNSET_EVENT_RESIZE' }),
                        c ? Ue() : We(),
                        t ||
                            (l && Us(a, e) && (l = null),
                            (n.validMutation = l),
                            (n.mutatedRelevantEvents = u))
                }),
                (n.handleDragEnd = function (e) {
                    var t = n.component.context,
                        o = n.eventRange.def,
                        i = n.eventRange.instance,
                        a = new xr(t, o, i),
                        s = n.relevantEvents,
                        l = n.mutatedRelevantEvents
                    if (
                        (t.emitter.trigger('eventResizeStop', {
                            el: n.draggingSegEl,
                            event: a,
                            jsEvent: e.origEvent,
                            view: t.viewApi,
                        }),
                        n.validMutation)
                    ) {
                        var u = new xr(
                            t,
                            l.defs[o.defId],
                            i ? l.instances[i.instanceId] : null
                        )
                        t.dispatch({ type: 'MERGE_EVENTS', eventStore: l })
                        var c = {
                            oldEvent: a,
                            event: u,
                            relatedEvents: Ir(l, t, i),
                            revert: function () {
                                t.dispatch({
                                    type: 'MERGE_EVENTS',
                                    eventStore: s,
                                })
                            },
                        }
                        t.emitter.trigger(
                            'eventResize',
                            r(r({}, c), {
                                el: n.draggingSegEl,
                                startDelta: n.validMutation.startDelta || Nt(0),
                                endDelta: n.validMutation.endDelta || Nt(0),
                                jsEvent: e.origEvent,
                                view: t.viewApi,
                            })
                        ),
                            t.emitter.trigger('eventChange', c)
                    } else t.emitter.trigger('_noEventResize')
                    ;(n.draggingSeg = null),
                        (n.relevantEvents = null),
                        (n.validMutation = null)
                })
            var o = t.component,
                i = (n.dragging = new Os(t.el))
            ;(i.pointer.selector = '.fc-event-resizer'),
                (i.touchScrollAllowed = !1),
                (i.autoScroller.isEnabled = o.context.options.dragScroll)
            var a = (n.hitDragging = new Ls(n.dragging, na(t)))
            return (
                a.emitter.on('pointerdown', n.handlePointerDown),
                a.emitter.on('dragstart', n.handleDragStart),
                a.emitter.on('hitupdate', n.handleHitUpdate),
                a.emitter.on('dragend', n.handleDragEnd),
                n
            )
        }
        return (
            n(t, e),
            (t.prototype.destroy = function () {
                this.dragging.destroy()
            }),
            (t.prototype.querySegEl = function (e) {
                return Se(e.subjectEl, '.fc-event')
            }),
            t
        )
    })(ea)
    var js = (function () {
            function e(e) {
                var t = this
                ;(this.context = e),
                    (this.isRecentPointerDateSelect = !1),
                    (this.matchesCancel = !1),
                    (this.matchesEvent = !1),
                    (this.onSelect = function (e) {
                        e.jsEvent && (t.isRecentPointerDateSelect = !0)
                    }),
                    (this.onDocumentPointerDown = function (e) {
                        var n = t.context.options.unselectCancel,
                            r = _e(e.origEvent)
                        ;(t.matchesCancel = !!Se(r, n)),
                            (t.matchesEvent = !!Se(r, Bs.SELECTOR))
                    }),
                    (this.onDocumentPointerUp = function (e) {
                        var n = t.context,
                            r = t.documentPointer,
                            o = n.getCurrentData()
                        if (!r.wasTouchScroll) {
                            if (
                                o.dateSelection &&
                                !t.isRecentPointerDateSelect
                            ) {
                                var i = n.options.unselectAuto
                                !i ||
                                    (i && t.matchesCancel) ||
                                    n.calendarApi.unselect(e)
                            }
                            o.eventSelection &&
                                !t.matchesEvent &&
                                n.dispatch({ type: 'UNSELECT_EVENT' })
                        }
                        t.isRecentPointerDateSelect = !1
                    })
                var n = (this.documentPointer = new Ts(document))
                ;(n.shouldIgnoreMove = !0),
                    (n.shouldWatchScroll = !1),
                    n.emitter.on('pointerdown', this.onDocumentPointerDown),
                    n.emitter.on('pointerup', this.onDocumentPointerUp),
                    e.emitter.on('select', this.onSelect)
            }
            return (
                (e.prototype.destroy = function () {
                    this.context.emitter.off('select', this.onSelect),
                        this.documentPointer.destroy()
                }),
                e
            )
        })(),
        Gs = { fixedMirrorParent: yn },
        qs = {
            dateClick: yn,
            eventDragStart: yn,
            eventDragStop: yn,
            eventDrop: yn,
            eventResizeStart: yn,
            eventResizeStop: yn,
            eventResize: yn,
            drop: yn,
            eventReceive: yn,
            eventLeave: yn,
        },
        Ys = (function () {
            function e(e, t) {
                var n = this
                ;(this.receivingContext = null),
                    (this.droppableEvent = null),
                    (this.suppliedDragMeta = null),
                    (this.dragMeta = null),
                    (this.handleDragStart = function (e) {
                        n.dragMeta = n.buildDragMeta(e.subjectEl)
                    }),
                    (this.handleHitUpdate = function (e, t, o) {
                        var i = n.hitDragging.dragging,
                            a = null,
                            s = null,
                            l = !1,
                            u = {
                                affectedEvents: { defs: {}, instances: {} },
                                mutatedEvents: { defs: {}, instances: {} },
                                isEvent: n.dragMeta.create,
                            }
                        e &&
                            ((a = e.context),
                            n.canDropElOnCalendar(o.subjectEl, a) &&
                                ((s = (function (e, t, n) {
                                    for (
                                        var o = r({}, t.leftoverProps),
                                            i = 0,
                                            a =
                                                n.pluginHooks
                                                    .externalDefTransforms;
                                        i < a.length;
                                        i++
                                    ) {
                                        var s = a[i]
                                        r(o, s(e, t))
                                    }
                                    var l = On(o, n),
                                        u = l.refined,
                                        c = l.extra,
                                        d = Ln(
                                            u,
                                            c,
                                            t.sourceId,
                                            e.allDay,
                                            n.options.forceEventDuration ||
                                                Boolean(t.duration),
                                            n
                                        ),
                                        p = e.range.start
                                    e.allDay &&
                                        t.startTime &&
                                        (p = n.dateEnv.add(p, t.startTime))
                                    var f = t.duration
                                            ? n.dateEnv.add(p, t.duration)
                                            : Er(e.allDay, p, n),
                                        h = mt(d.defId, { start: p, end: f })
                                    return { def: d, instance: h }
                                })(e.dateSpan, n.dragMeta, a)),
                                (u.mutatedEvents = Sn(s)),
                                (l = !Ia(u, e.dateProfile, a)) &&
                                    ((u.mutatedEvents = {
                                        defs: {},
                                        instances: {},
                                    }),
                                    (s = null)))),
                            n.displayDrag(a, u),
                            i.setMirrorIsVisible(
                                t ||
                                    !s ||
                                    !document.querySelector('.fc-event-mirror')
                            ),
                            l ? Ue() : We(),
                            t ||
                                (i.setMirrorNeedsRevert(!s),
                                (n.receivingContext = a),
                                (n.droppableEvent = s))
                    }),
                    (this.handleDragEnd = function (e) {
                        var t = n,
                            o = t.receivingContext,
                            i = t.droppableEvent
                        if ((n.clearDrag(), o && i)) {
                            var a = n.hitDragging.finalHit,
                                s = a.context.viewApi,
                                l = n.dragMeta
                            if (
                                (o.emitter.trigger(
                                    'drop',
                                    r(r({}, Ws(a.dateSpan, o)), {
                                        draggedEl: e.subjectEl,
                                        jsEvent: e.origEvent,
                                        view: s,
                                    })
                                ),
                                l.create)
                            ) {
                                var u = Sn(i)
                                o.dispatch({
                                    type: 'MERGE_EVENTS',
                                    eventStore: u,
                                }),
                                    e.isTouch &&
                                        o.dispatch({
                                            type: 'SELECT_EVENT',
                                            eventInstanceId:
                                                i.instance.instanceId,
                                        }),
                                    o.emitter.trigger('eventReceive', {
                                        event: new xr(o, i.def, i.instance),
                                        relatedEvents: [],
                                        revert: function () {
                                            o.dispatch({
                                                type: 'REMOVE_EVENTS',
                                                eventStore: u,
                                            })
                                        },
                                        draggedEl: e.subjectEl,
                                        view: s,
                                    })
                            }
                        }
                        ;(n.receivingContext = null), (n.droppableEvent = null)
                    })
                var o = (this.hitDragging = new Ls(e, ra))
                ;(o.requireInitial = !1),
                    o.emitter.on('dragstart', this.handleDragStart),
                    o.emitter.on('hitupdate', this.handleHitUpdate),
                    o.emitter.on('dragend', this.handleDragEnd),
                    (this.suppliedDragMeta = t)
            }
            return (
                (e.prototype.buildDragMeta = function (e) {
                    return 'object' == typeof this.suppliedDragMeta
                        ? sa(this.suppliedDragMeta)
                        : 'function' == typeof this.suppliedDragMeta
                          ? sa(this.suppliedDragMeta(e))
                          : sa(
                                (t = (function (e, t) {
                                    var n = ia.dataAttrPrefix,
                                        r = (n ? n + '-' : '') + t
                                    return e.getAttribute('data-' + r) || ''
                                })(e, 'event'))
                                    ? JSON.parse(t)
                                    : { create: !1 }
                            )
                    var t
                }),
                (e.prototype.displayDrag = function (e, t) {
                    var n = this.receivingContext
                    n && n !== e && n.dispatch({ type: 'UNSET_EVENT_DRAG' }),
                        e && e.dispatch({ type: 'SET_EVENT_DRAG', state: t })
                }),
                (e.prototype.clearDrag = function () {
                    this.receivingContext &&
                        this.receivingContext.dispatch({
                            type: 'UNSET_EVENT_DRAG',
                        })
                }),
                (e.prototype.canDropElOnCalendar = function (e, t) {
                    var n = t.options.dropAccept
                    return 'function' == typeof n
                        ? n.call(t.calendarApi, e)
                        : 'string' != typeof n || !n || Boolean(be(e, n))
                }),
                e
            )
        })()
    ia.dataAttrPrefix = ''
    var Zs = (function () {
            function e(e, t) {
                var n = this
                void 0 === t && (t = {}),
                    (this.handlePointerDown = function (e) {
                        var t = n.dragging,
                            r = n.settings,
                            o = r.minDistance,
                            i = r.longPressDelay
                        ;(t.minDistance =
                            null != o
                                ? o
                                : e.isTouch
                                  ? 0
                                  : cn.eventDragMinDistance),
                            (t.delay = e.isTouch
                                ? null != i
                                    ? i
                                    : cn.longPressDelay
                                : 0)
                    }),
                    (this.handleDragStart = function (e) {
                        e.isTouch &&
                            n.dragging.delay &&
                            e.subjectEl.classList.contains('fc-event') &&
                            n.dragging.mirror
                                .getMirrorEl()
                                .classList.add('fc-event-selected')
                    }),
                    (this.settings = t)
                var r = (this.dragging = new Os(e))
                ;(r.touchScrollAllowed = !1),
                    null != t.itemSelector &&
                        (r.pointer.selector = t.itemSelector),
                    null != t.appendTo && (r.mirror.parentNode = t.appendTo),
                    r.emitter.on('pointerdown', this.handlePointerDown),
                    r.emitter.on('dragstart', this.handleDragStart),
                    new Ys(r, t.eventData)
            }
            return (
                (e.prototype.destroy = function () {
                    this.dragging.destroy()
                }),
                e
            )
        })(),
        Xs = (function (e) {
            function t(t) {
                var n = e.call(this, t) || this
                ;(n.shouldIgnoreMove = !1),
                    (n.mirrorSelector = ''),
                    (n.currentMirrorEl = null),
                    (n.handlePointerDown = function (e) {
                        n.emitter.trigger('pointerdown', e),
                            n.shouldIgnoreMove ||
                                n.emitter.trigger('dragstart', e)
                    }),
                    (n.handlePointerMove = function (e) {
                        n.shouldIgnoreMove || n.emitter.trigger('dragmove', e)
                    }),
                    (n.handlePointerUp = function (e) {
                        n.emitter.trigger('pointerup', e),
                            n.shouldIgnoreMove ||
                                n.emitter.trigger('dragend', e)
                    })
                var r = (n.pointer = new Ts(t))
                return (
                    r.emitter.on('pointerdown', n.handlePointerDown),
                    r.emitter.on('pointermove', n.handlePointerMove),
                    r.emitter.on('pointerup', n.handlePointerUp),
                    n
                )
            }
            return (
                n(t, e),
                (t.prototype.destroy = function () {
                    this.pointer.destroy()
                }),
                (t.prototype.setIgnoreMove = function (e) {
                    this.shouldIgnoreMove = e
                }),
                (t.prototype.setMirrorIsVisible = function (e) {
                    if (e)
                        this.currentMirrorEl &&
                            ((this.currentMirrorEl.style.visibility = ''),
                            (this.currentMirrorEl = null))
                    else {
                        var t = this.mirrorSelector
                            ? document.querySelector(this.mirrorSelector)
                            : null
                        t &&
                            ((this.currentMirrorEl = t),
                            (t.style.visibility = 'hidden'))
                    }
                }),
                t
            )
        })(oa),
        Ks = (function () {
            function e(e, t) {
                var n = document
                e === document || e instanceof Element
                    ? ((n = e), (t = t || {}))
                    : (t = e || {})
                var r = (this.dragging = new Xs(n))
                'string' == typeof t.itemSelector
                    ? (r.pointer.selector = t.itemSelector)
                    : n === document && (r.pointer.selector = '[data-event]'),
                    'string' == typeof t.mirrorSelector &&
                        (r.mirrorSelector = t.mirrorSelector),
                    new Ys(r, t.eventData)
            }
            return (
                (e.prototype.destroy = function () {
                    this.dragging.destroy()
                }),
                e
            )
        })(),
        $s = zo({
            componentInteractions: [Vs, Fs, Bs, zs],
            calendarInteractions: [js],
            elementDraggingImpl: Os,
            optionRefiners: Gs,
            listenerRefiners: qs,
        }),
        Js = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (t.headerElRef = ko()), t
            }
            return (
                n(t, e),
                (t.prototype.renderSimpleLayout = function (e, t) {
                    var n = this.props,
                        r = this.context,
                        o = [],
                        i = Qa(r.options)
                    return (
                        e &&
                            o.push({
                                type: 'header',
                                key: 'header',
                                isSticky: i,
                                chunk: {
                                    elRef: this.headerElRef,
                                    tableClassName: 'fc-col-header',
                                    rowContent: e,
                                },
                            }),
                        o.push({
                            type: 'body',
                            key: 'body',
                            liquid: !0,
                            chunk: { content: t },
                        }),
                        _o(ti, { viewSpec: r.viewSpec }, function (e, t) {
                            return _o(
                                'div',
                                {
                                    ref: e,
                                    className: ['fc-daygrid']
                                        .concat(t)
                                        .join(' '),
                                },
                                _o(ts, {
                                    liquid: !n.isHeightAuto && !n.forPrint,
                                    collapsibleWidth: n.forPrint,
                                    cols: [],
                                    sections: o,
                                })
                            )
                        })
                    )
                }),
                (t.prototype.renderHScrollLayout = function (e, t, n, r) {
                    var o = this.context.pluginHooks.scrollGridImpl
                    if (!o) throw new Error('No ScrollGrid implementation')
                    var i = this.props,
                        a = this.context,
                        s = !i.forPrint && Qa(a.options),
                        l = !i.forPrint && es(a.options),
                        u = []
                    return (
                        e &&
                            u.push({
                                type: 'header',
                                key: 'header',
                                isSticky: s,
                                chunks: [
                                    {
                                        key: 'main',
                                        elRef: this.headerElRef,
                                        tableClassName: 'fc-col-header',
                                        rowContent: e,
                                    },
                                ],
                            }),
                        u.push({
                            type: 'body',
                            key: 'body',
                            liquid: !0,
                            chunks: [{ key: 'main', content: t }],
                        }),
                        l &&
                            u.push({
                                type: 'footer',
                                key: 'footer',
                                isSticky: !0,
                                chunks: [{ key: 'main', content: Ja }],
                            }),
                        _o(ti, { viewSpec: a.viewSpec }, function (e, t) {
                            return _o(
                                'div',
                                {
                                    ref: e,
                                    className: ['fc-daygrid']
                                        .concat(t)
                                        .join(' '),
                                },
                                _o(o, {
                                    liquid: !i.isHeightAuto && !i.forPrint,
                                    collapsibleWidth: i.forPrint,
                                    colGroups: [
                                        { cols: [{ span: n, minWidth: r }] },
                                    ],
                                    sections: u,
                                })
                            )
                        })
                    )
                }),
                t
            )
        })(Bo)
    function Qs(e, t) {
        for (var n = [], r = 0; r < t; r += 1) n[r] = []
        for (var o = 0, i = e; o < i.length; o++) {
            var a = i[o]
            n[a.row].push(a)
        }
        return n
    }
    function el(e, t) {
        for (var n = [], r = 0; r < t; r += 1) n[r] = []
        for (var o = 0, i = e; o < i.length; o++) {
            var a = i[o]
            n[a.firstCol].push(a)
        }
        return n
    }
    function tl(e, t) {
        var n = []
        if (e) {
            for (a = 0; a < t; a += 1)
                n[a] = {
                    affectedInstances: e.affectedInstances,
                    isEvent: e.isEvent,
                    segs: [],
                }
            for (var r = 0, o = e.segs; r < o.length; r++) {
                var i = o[r]
                n[i.row].segs.push(i)
            }
        } else for (var a = 0; a < t; a += 1) n[a] = null
        return n
    }
    var nl = (function (e) {
        function t() {
            return (null !== e && e.apply(this, arguments)) || this
        }
        return (
            n(t, e),
            (t.prototype.render = function () {
                var e = this.props,
                    t = so(this.context, e.date)
                return _o(
                    ss,
                    {
                        date: e.date,
                        dateProfile: e.dateProfile,
                        todayRange: e.todayRange,
                        showDayNumber: e.showDayNumber,
                        extraHookProps: e.extraHookProps,
                        defaultContent: rl,
                    },
                    function (n, o) {
                        return (
                            (o || e.forceDayTop) &&
                            _o(
                                'div',
                                { className: 'fc-daygrid-day-top', ref: n },
                                _o(
                                    'a',
                                    r(
                                        {
                                            id: e.dayNumberId,
                                            className: 'fc-daygrid-day-number',
                                        },
                                        t
                                    ),
                                    o || _o(xo, null, ' ')
                                )
                            )
                        )
                    }
                )
            }),
            t
        )
    })(Uo)
    function rl(e) {
        return e.dayNumberText
    }
    var ol = ln({
        hour: 'numeric',
        minute: '2-digit',
        omitZeroMinute: !0,
        meridiem: 'narrow',
    })
    function il(e) {
        var t = e.eventRange.ui.display
        return (
            'list-item' === t ||
            ('auto' === t &&
                !e.eventRange.def.allDay &&
                e.firstCol === e.lastCol &&
                e.isStart &&
                e.isEnd)
        )
    }
    var al = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.props
                    return _o(
                        rs,
                        r({}, e, {
                            extraClassNames: [
                                'fc-daygrid-event',
                                'fc-daygrid-block-event',
                                'fc-h-event',
                            ],
                            defaultTimeFormat: ol,
                            defaultDisplayEventEnd: e.defaultDisplayEventEnd,
                            disableResizing: !e.seg.eventRange.def.allDay,
                        })
                    )
                }),
                t
            )
        })(Uo),
        sl = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.props,
                        t = this.context,
                        n = t.options.eventTimeFormat || ol,
                        o = ar(e.seg, n, t, !0, e.defaultDisplayEventEnd)
                    return _o(
                        ns,
                        {
                            seg: e.seg,
                            timeText: o,
                            defaultContent: ll,
                            isDragging: e.isDragging,
                            isResizing: !1,
                            isDateSelecting: !1,
                            isSelected: e.isSelected,
                            isPast: e.isPast,
                            isFuture: e.isFuture,
                            isToday: e.isToday,
                        },
                        function (n, o, i, a) {
                            return _o(
                                'a',
                                r(
                                    {
                                        className: [
                                            'fc-daygrid-event',
                                            'fc-daygrid-dot-event',
                                        ]
                                            .concat(o)
                                            .join(' '),
                                        ref: n,
                                    },
                                    cr(e.seg, t)
                                ),
                                a
                            )
                        }
                    )
                }),
                t
            )
        })(Uo)
    function ll(e) {
        return _o(
            xo,
            null,
            _o('div', {
                className: 'fc-daygrid-event-dot',
                style: { borderColor: e.borderColor || e.backgroundColor },
            }),
            e.timeText && _o('div', { className: 'fc-event-time' }, e.timeText),
            _o(
                'div',
                { className: 'fc-event-title' },
                e.event.title || _o(xo, null, ' ')
            )
        )
    }
    var ul = (function (e) {
        function t() {
            var t = (null !== e && e.apply(this, arguments)) || this
            return (t.compileSegs = qt(cl)), t
        }
        return (
            n(t, e),
            (t.prototype.render = function () {
                var e = this.props,
                    t = this.compileSegs(e.singlePlacements),
                    n = t.allSegs,
                    o = t.invisibleSegs
                return _o(
                    ms,
                    {
                        dateProfile: e.dateProfile,
                        todayRange: e.todayRange,
                        allDayDate: e.allDayDate,
                        moreCnt: e.moreCnt,
                        allSegs: n,
                        hiddenSegs: o,
                        alignmentElRef: e.alignmentElRef,
                        alignGridTop: e.alignGridTop,
                        extraDateSpan: e.extraDateSpan,
                        popoverContent: function () {
                            var t =
                                (e.eventDrag
                                    ? e.eventDrag.affectedInstances
                                    : null) ||
                                (e.eventResize
                                    ? e.eventResize.affectedInstances
                                    : null) ||
                                {}
                            return _o(
                                xo,
                                null,
                                n.map(function (n) {
                                    var o = n.eventRange.instance.instanceId
                                    return _o(
                                        'div',
                                        {
                                            className:
                                                'fc-daygrid-event-harness',
                                            key: o,
                                            style: {
                                                visibility: t[o]
                                                    ? 'hidden'
                                                    : '',
                                            },
                                        },
                                        il(n)
                                            ? _o(
                                                  sl,
                                                  r(
                                                      {
                                                          seg: n,
                                                          isDragging: !1,
                                                          isSelected:
                                                              o ===
                                                              e.eventSelection,
                                                          defaultDisplayEventEnd:
                                                              !1,
                                                      },
                                                      sr(n, e.todayRange)
                                                  )
                                              )
                                            : _o(
                                                  al,
                                                  r(
                                                      {
                                                          seg: n,
                                                          isDragging: !1,
                                                          isResizing: !1,
                                                          isDateSelecting: !1,
                                                          isSelected:
                                                              o ===
                                                              e.eventSelection,
                                                          defaultDisplayEventEnd:
                                                              !1,
                                                      },
                                                      sr(n, e.todayRange)
                                                  )
                                              )
                                    )
                                })
                            )
                        },
                    },
                    function (e, t, n, o, i, a, s, l) {
                        return _o(
                            'a',
                            r(
                                {
                                    ref: e,
                                    className: ['fc-daygrid-more-link']
                                        .concat(t)
                                        .join(' '),
                                    title: a,
                                    'aria-expanded': s,
                                    'aria-controls': l,
                                },
                                He(i)
                            ),
                            o
                        )
                    }
                )
            }),
            t
        )
    })(Uo)
    function cl(e) {
        for (var t = [], n = [], r = 0, o = e; r < o.length; r++) {
            var i = o[r]
            t.push(i.seg), i.isVisible || n.push(i.seg)
        }
        return { allSegs: t, invisibleSegs: n }
    }
    var dl = ln({ week: 'narrow' }),
        pl = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (
                    (t.rootElRef = ko()),
                    (t.state = { dayNumberId: xe() }),
                    (t.handleRootEl = function (e) {
                        Fo(t.rootElRef, e), Fo(t.props.elRef, e)
                    }),
                    t
                )
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this,
                        t = e.context,
                        n = e.props,
                        o = e.state,
                        i = e.rootElRef,
                        a = n.date,
                        s = n.dateProfile,
                        l = so(t, a, 'week')
                    return _o(
                        us,
                        {
                            date: a,
                            dateProfile: s,
                            todayRange: n.todayRange,
                            showDayNumber: n.showDayNumber,
                            extraHookProps: n.extraHookProps,
                            elRef: this.handleRootEl,
                        },
                        function (e, t, u, c) {
                            return _o(
                                'td',
                                r(
                                    {
                                        ref: e,
                                        role: 'gridcell',
                                        className: ['fc-daygrid-day']
                                            .concat(t, n.extraClassNames || [])
                                            .join(' '),
                                    },
                                    u,
                                    n.extraDataAttrs,
                                    n.showDayNumber
                                        ? { 'aria-labelledby': o.dayNumberId }
                                        : {}
                                ),
                                _o(
                                    'div',
                                    {
                                        className:
                                            'fc-daygrid-day-frame fc-scrollgrid-sync-inner',
                                        ref: n.innerElRef,
                                    },
                                    n.showWeekNumber &&
                                        _o(
                                            fs,
                                            { date: a, defaultFormat: dl },
                                            function (e, t, n, o) {
                                                return _o(
                                                    'a',
                                                    r(
                                                        {
                                                            ref: e,
                                                            className: [
                                                                'fc-daygrid-week-number',
                                                            ]
                                                                .concat(t)
                                                                .join(' '),
                                                        },
                                                        l
                                                    ),
                                                    o
                                                )
                                            }
                                        ),
                                    !c &&
                                        _o(nl, {
                                            date: a,
                                            dateProfile: s,
                                            showDayNumber: n.showDayNumber,
                                            dayNumberId: o.dayNumberId,
                                            forceDayTop: n.forceDayTop,
                                            todayRange: n.todayRange,
                                            extraHookProps: n.extraHookProps,
                                        }),
                                    _o(
                                        'div',
                                        {
                                            className: 'fc-daygrid-day-events',
                                            ref: n.fgContentElRef,
                                        },
                                        n.fgContent,
                                        _o(
                                            'div',
                                            {
                                                className:
                                                    'fc-daygrid-day-bottom',
                                                style: {
                                                    marginTop: n.moreMarginTop,
                                                },
                                            },
                                            _o(ul, {
                                                allDayDate: a,
                                                singlePlacements:
                                                    n.singlePlacements,
                                                moreCnt: n.moreCnt,
                                                alignmentElRef: i,
                                                alignGridTop: !n.showDayNumber,
                                                extraDateSpan: n.extraDateSpan,
                                                dateProfile: n.dateProfile,
                                                eventSelection:
                                                    n.eventSelection,
                                                eventDrag: n.eventDrag,
                                                eventResize: n.eventResize,
                                                todayRange: n.todayRange,
                                            })
                                        )
                                    ),
                                    _o(
                                        'div',
                                        { className: 'fc-daygrid-day-bg' },
                                        n.bgContent
                                    )
                                )
                            )
                        }
                    )
                }),
                t
            )
        })(Bo)
    function fl(e, t, n, r, o, i, a) {
        var s = new vl()
        ;(s.allowReslicing = !0),
            (s.strictOrder = r),
            !0 === t || !0 === n
                ? ((s.maxCoord = i), (s.hiddenConsumes = !0))
                : 'number' == typeof t
                  ? (s.maxStackCnt = t)
                  : 'number' == typeof n &&
                    ((s.maxStackCnt = n), (s.hiddenConsumes = !0))
        for (var l = [], u = [], c = 0; c < e.length; c += 1) {
            var d = o[(R = e[c]).eventRange.instance.instanceId]
            null != d
                ? l.push({
                      index: c,
                      thickness: d,
                      span: { start: R.firstCol, end: R.lastCol + 1 },
                  })
                : u.push(R)
        }
        for (
            var p = s.addSegs(l),
                f = (function (e, t, n) {
                    for (
                        var r = (function (e, t) {
                                for (var n = [], r = 0; r < t; r += 1)
                                    n.push([])
                                for (var o = 0, i = e; o < i.length; o++) {
                                    var a = i[o]
                                    for (
                                        r = a.span.start;
                                        r < a.span.end;
                                        r += 1
                                    )
                                        n[r].push(a)
                                }
                                return n
                            })(e, n.length),
                            o = [],
                            i = [],
                            a = [],
                            s = 0;
                        s < n.length;
                        s += 1
                    ) {
                        for (
                            var l = r[s], u = [], c = 0, d = 0, p = 0, f = l;
                            p < f.length;
                            p++
                        ) {
                            var h = t[(y = f[p]).index]
                            u.push({
                                seg: hl(h, s, s + 1, n),
                                isVisible: !0,
                                isAbsolute: !1,
                                absoluteTop: y.levelCoord,
                                marginTop: y.levelCoord - c,
                            }),
                                (c = y.levelCoord + y.thickness)
                        }
                        var v = []
                        ;(c = 0), (d = 0)
                        for (var g = 0, m = l; g < m.length; g++) {
                            h = t[(y = m[g]).index]
                            var y,
                                E = y.span.end - y.span.start > 1,
                                S = y.span.start === s
                            ;(d += y.levelCoord - c),
                                (c = y.levelCoord + y.thickness),
                                E
                                    ? ((d += y.thickness),
                                      S &&
                                          v.push({
                                              seg: hl(
                                                  h,
                                                  y.span.start,
                                                  y.span.end,
                                                  n
                                              ),
                                              isVisible: !0,
                                              isAbsolute: !0,
                                              absoluteTop: y.levelCoord,
                                              marginTop: 0,
                                          }))
                                    : S &&
                                      (v.push({
                                          seg: hl(
                                              h,
                                              y.span.start,
                                              y.span.end,
                                              n
                                          ),
                                          isVisible: !0,
                                          isAbsolute: !1,
                                          absoluteTop: y.levelCoord,
                                          marginTop: d,
                                      }),
                                      (d = 0))
                        }
                        o.push(u), i.push(v), a.push(d)
                    }
                    return {
                        singleColPlacements: o,
                        multiColPlacements: i,
                        leftoverMargins: a,
                    }
                })(s.toRects(), e, a),
                h = f.singleColPlacements,
                v = f.multiColPlacements,
                g = f.leftoverMargins,
                m = [],
                y = [],
                E = 0,
                S = u;
            E < S.length;
            E++
        ) {
            v[(R = S[E]).firstCol].push({
                seg: R,
                isVisible: !1,
                isAbsolute: !0,
                absoluteTop: 0,
                marginTop: 0,
            })
            for (var b = R.firstCol; b <= R.lastCol; b += 1)
                h[b].push({
                    seg: hl(R, b, b + 1, a),
                    isVisible: !1,
                    isAbsolute: !1,
                    absoluteTop: 0,
                    marginTop: 0,
                })
        }
        for (b = 0; b < a.length; b += 1) m.push(0)
        for (var D = 0, C = p; D < C.length; D++) {
            var w = C[D],
                R = e[w.index],
                _ = w.span
            v[_.start].push({
                seg: hl(R, _.start, _.end, a),
                isVisible: !1,
                isAbsolute: !0,
                absoluteTop: 0,
                marginTop: 0,
            })
            for (b = _.start; b < _.end; b += 1)
                (m[b] += 1),
                    h[b].push({
                        seg: hl(R, b, b + 1, a),
                        isVisible: !1,
                        isAbsolute: !1,
                        absoluteTop: 0,
                        marginTop: 0,
                    })
        }
        for (b = 0; b < a.length; b += 1) y.push(g[b])
        return {
            singleColPlacements: h,
            multiColPlacements: v,
            moreCnts: m,
            moreMarginTops: y,
        }
    }
    function hl(e, t, n, o) {
        if (e.firstCol === t && e.lastCol === n - 1) return e
        var i = e.eventRange,
            a = i.range,
            s = jn(a, { start: o[t].date, end: tt(o[n - 1].date, 1) })
        return r(r({}, e), {
            firstCol: t,
            lastCol: n - 1,
            eventRange: {
                def: i.def,
                ui: r(r({}, i.ui), { durationEditable: !1 }),
                instance: i.instance,
                range: s,
            },
            isStart: e.isStart && s.start.valueOf() === a.start.valueOf(),
            isEnd: e.isEnd && s.end.valueOf() === a.end.valueOf(),
        })
    }
    var vl = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (t.hiddenConsumes = !1), (t.forceHidden = {}), t
            }
            return (
                n(t, e),
                (t.prototype.addSegs = function (t) {
                    for (
                        var n = this,
                            r = e.prototype.addSegs.call(this, t),
                            o = this.entriesByLevel,
                            i = function (e) {
                                return !n.forceHidden[Zi(e)]
                            },
                            a = 0;
                        a < o.length;
                        a += 1
                    )
                        o[a] = o[a].filter(i)
                    return r
                }),
                (t.prototype.handleInvalidInsertion = function (t, n, o) {
                    var i = this.entriesByLevel,
                        a = this.forceHidden,
                        s = t.touchingEntry,
                        l = t.touchingLevel,
                        u = t.touchingLateral
                    if (this.hiddenConsumes && s) {
                        var c = Zi(s)
                        if (!a[c])
                            if (this.allowReslicing) {
                                var d = r(r({}, s), {
                                    span: $i(s.span, n.span),
                                })
                                ;(a[Zi(d)] = !0),
                                    (i[l][u] = d),
                                    this.splitEntry(s, n, o)
                            } else (a[c] = !0), o.push(s)
                    }
                    return e.prototype.handleInvalidInsertion.call(
                        this,
                        t,
                        n,
                        o
                    )
                }),
                t
            )
        })(qi),
        gl = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (
                    (t.cellElRefs = new Fa()),
                    (t.frameElRefs = new Fa()),
                    (t.fgElRefs = new Fa()),
                    (t.segHarnessRefs = new Fa()),
                    (t.rootElRef = ko()),
                    (t.state = {
                        framePositions: null,
                        maxContentHeight: null,
                        eventInstanceHeights: {},
                    }),
                    t
                )
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this,
                        t = this,
                        n = t.props,
                        r = t.state,
                        o = t.context.options,
                        i = n.cells.length,
                        a = el(n.businessHourSegs, i),
                        s = el(n.bgEventSegs, i),
                        l = el(this.getHighlightSegs(), i),
                        u = el(this.getMirrorSegs(), i),
                        c = fl(
                            tr(n.fgEventSegs, o.eventOrder),
                            n.dayMaxEvents,
                            n.dayMaxEventRows,
                            o.eventOrderStrict,
                            r.eventInstanceHeights,
                            r.maxContentHeight,
                            n.cells
                        ),
                        d = c.singleColPlacements,
                        p = c.multiColPlacements,
                        f = c.moreCnts,
                        h = c.moreMarginTops,
                        v =
                            (n.eventDrag && n.eventDrag.affectedInstances) ||
                            (n.eventResize &&
                                n.eventResize.affectedInstances) ||
                            {}
                    return _o(
                        'tr',
                        { ref: this.rootElRef, role: 'row' },
                        n.renderIntro && n.renderIntro(),
                        n.cells.map(function (t, r) {
                            var o = e.renderFgSegs(
                                    r,
                                    n.forPrint ? d[r] : p[r],
                                    n.todayRange,
                                    v
                                ),
                                i = e.renderFgSegs(
                                    r,
                                    (function (e, t) {
                                        if (!e.length) return []
                                        var n = (function (e) {
                                            for (
                                                var t = {}, n = 0, r = e;
                                                n < r.length;
                                                n++
                                            )
                                                for (
                                                    var o = 0, i = r[n];
                                                    o < i.length;
                                                    o++
                                                ) {
                                                    var a = i[o]
                                                    t[
                                                        a.seg.eventRange.instance.instanceId
                                                    ] = a.absoluteTop
                                                }
                                            return t
                                        })(t)
                                        return e.map(function (e) {
                                            return {
                                                seg: e,
                                                isVisible: !0,
                                                isAbsolute: !0,
                                                absoluteTop:
                                                    n[
                                                        e.eventRange.instance
                                                            .instanceId
                                                    ],
                                                marginTop: 0,
                                            }
                                        })
                                    })(u[r], p),
                                    n.todayRange,
                                    {},
                                    Boolean(n.eventDrag),
                                    Boolean(n.eventResize),
                                    !1
                                )
                            return _o(pl, {
                                key: t.key,
                                elRef: e.cellElRefs.createRef(t.key),
                                innerElRef: e.frameElRefs.createRef(t.key),
                                dateProfile: n.dateProfile,
                                date: t.date,
                                showDayNumber: n.showDayNumbers,
                                showWeekNumber: n.showWeekNumbers && 0 === r,
                                forceDayTop: n.showWeekNumbers,
                                todayRange: n.todayRange,
                                eventSelection: n.eventSelection,
                                eventDrag: n.eventDrag,
                                eventResize: n.eventResize,
                                extraHookProps: t.extraHookProps,
                                extraDataAttrs: t.extraDataAttrs,
                                extraClassNames: t.extraClassNames,
                                extraDateSpan: t.extraDateSpan,
                                moreCnt: f[r],
                                moreMarginTop: h[r],
                                singlePlacements: d[r],
                                fgContentElRef: e.fgElRefs.createRef(t.key),
                                fgContent: _o(
                                    xo,
                                    null,
                                    _o(xo, null, o),
                                    _o(xo, null, i)
                                ),
                                bgContent: _o(
                                    xo,
                                    null,
                                    e.renderFillSegs(l[r], 'highlight'),
                                    e.renderFillSegs(a[r], 'non-business'),
                                    e.renderFillSegs(s[r], 'bg-event')
                                ),
                            })
                        })
                    )
                }),
                (t.prototype.componentDidMount = function () {
                    this.updateSizing(!0)
                }),
                (t.prototype.componentDidUpdate = function (e, t) {
                    var n = this.props
                    this.updateSizing(!wt(e, n))
                }),
                (t.prototype.getHighlightSegs = function () {
                    var e = this.props
                    return e.eventDrag && e.eventDrag.segs.length
                        ? e.eventDrag.segs
                        : e.eventResize && e.eventResize.segs.length
                          ? e.eventResize.segs
                          : e.dateSelectionSegs
                }),
                (t.prototype.getMirrorSegs = function () {
                    var e = this.props
                    return e.eventResize && e.eventResize.segs.length
                        ? e.eventResize.segs
                        : []
                }),
                (t.prototype.renderFgSegs = function (e, t, n, o, i, a, s) {
                    var l = this.context,
                        u = this.props.eventSelection,
                        c = this.state.framePositions,
                        d = 1 === this.props.cells.length,
                        p = i || a || s,
                        f = []
                    if (c)
                        for (var h = 0, v = t; h < v.length; h++) {
                            var g = v[h],
                                m = g.seg,
                                y = m.eventRange.instance.instanceId,
                                E = y + ':' + e,
                                S = g.isVisible && !o[y],
                                b = g.isAbsolute,
                                D = '',
                                C = ''
                            b &&
                                (l.isRtl
                                    ? ((C = 0),
                                      (D =
                                          c.lefts[m.lastCol] -
                                          c.lefts[m.firstCol]))
                                    : ((D = 0),
                                      (C =
                                          c.rights[m.firstCol] -
                                          c.rights[m.lastCol]))),
                                f.push(
                                    _o(
                                        'div',
                                        {
                                            className:
                                                'fc-daygrid-event-harness' +
                                                (b
                                                    ? ' fc-daygrid-event-harness-abs'
                                                    : ''),
                                            key: E,
                                            ref: p
                                                ? null
                                                : this.segHarnessRefs.createRef(
                                                      E
                                                  ),
                                            style: {
                                                visibility: S ? '' : 'hidden',
                                                marginTop: b ? '' : g.marginTop,
                                                top: b ? g.absoluteTop : '',
                                                left: D,
                                                right: C,
                                            },
                                        },
                                        il(m)
                                            ? _o(
                                                  sl,
                                                  r(
                                                      {
                                                          seg: m,
                                                          isDragging: i,
                                                          isSelected: y === u,
                                                          defaultDisplayEventEnd:
                                                              d,
                                                      },
                                                      sr(m, n)
                                                  )
                                              )
                                            : _o(
                                                  al,
                                                  r(
                                                      {
                                                          seg: m,
                                                          isDragging: i,
                                                          isResizing: a,
                                                          isDateSelecting: s,
                                                          isSelected: y === u,
                                                          defaultDisplayEventEnd:
                                                              d,
                                                      },
                                                      sr(m, n)
                                                  )
                                              )
                                    )
                                )
                        }
                    return f
                }),
                (t.prototype.renderFillSegs = function (e, t) {
                    var n = this.context.isRtl,
                        i = this.props.todayRange,
                        a = this.state.framePositions,
                        s = []
                    if (a)
                        for (var l = 0, u = e; l < u.length; l++) {
                            var c = u[l],
                                d = n
                                    ? {
                                          right: 0,
                                          left:
                                              a.lefts[c.lastCol] -
                                              a.lefts[c.firstCol],
                                      }
                                    : {
                                          left: 0,
                                          right:
                                              a.rights[c.firstCol] -
                                              a.rights[c.lastCol],
                                      }
                            s.push(
                                _o(
                                    'div',
                                    {
                                        key: ur(c.eventRange),
                                        className: 'fc-daygrid-bg-harness',
                                        style: d,
                                    },
                                    'bg-event' === t
                                        ? _o(ds, r({ seg: c }, sr(c, i)))
                                        : cs(t)
                                )
                            )
                        }
                    return _o.apply(void 0, o([xo, {}], s))
                }),
                (t.prototype.updateSizing = function (e) {
                    var t = this.props,
                        n = this.frameElRefs
                    if (!t.forPrint && null !== t.clientWidth) {
                        if (e) {
                            var o = t.cells.map(function (e) {
                                return n.currentMap[e.key]
                            })
                            if (o.length) {
                                var i = this.rootElRef.current
                                this.setState({
                                    framePositions: new So(i, o, !0, !1),
                                })
                            }
                        }
                        var a = this.state.eventInstanceHeights,
                            s = this.queryEventInstanceHeights(),
                            l =
                                !0 === t.dayMaxEvents ||
                                !0 === t.dayMaxEventRows
                        this.safeSetState({
                            eventInstanceHeights: r(r({}, a), s),
                            maxContentHeight: l
                                ? this.computeMaxContentHeight()
                                : null,
                        })
                    }
                }),
                (t.prototype.queryEventInstanceHeights = function () {
                    var e = this.segHarnessRefs.currentMap,
                        t = {}
                    for (var n in e) {
                        var r = Math.round(e[n].getBoundingClientRect().height),
                            o = n.split(':')[0]
                        t[o] = Math.max(t[o] || 0, r)
                    }
                    return t
                }),
                (t.prototype.computeMaxContentHeight = function () {
                    var e = this.props.cells[0].key,
                        t = this.cellElRefs.currentMap[e],
                        n = this.fgElRefs.currentMap[e]
                    return (
                        t.getBoundingClientRect().bottom -
                        n.getBoundingClientRect().top
                    )
                }),
                (t.prototype.getCellEls = function () {
                    var e = this.cellElRefs.currentMap
                    return this.props.cells.map(function (t) {
                        return e[t.key]
                    })
                }),
                t
            )
        })(Bo)
    gl.addStateEquality({ eventInstanceHeights: wt })
    var ml = (function (e) {
        function t() {
            var t = (null !== e && e.apply(this, arguments)) || this
            return (
                (t.splitBusinessHourSegs = qt(Qs)),
                (t.splitBgEventSegs = qt(Qs)),
                (t.splitFgEventSegs = qt(Qs)),
                (t.splitDateSelectionSegs = qt(Qs)),
                (t.splitEventDrag = qt(tl)),
                (t.splitEventResize = qt(tl)),
                (t.rowRefs = new Fa()),
                (t.handleRootEl = function (e) {
                    ;(t.rootEl = e),
                        e
                            ? t.context.registerInteractiveComponent(t, {
                                  el: e,
                                  isHitComboAllowed: t.props.isHitComboAllowed,
                              })
                            : t.context.unregisterInteractiveComponent(t)
                }),
                t
            )
        }
        return (
            n(t, e),
            (t.prototype.render = function () {
                var e = this,
                    t = this.props,
                    n = t.dateProfile,
                    r = t.dayMaxEventRows,
                    o = t.dayMaxEvents,
                    i = t.expandRows,
                    a = t.cells.length,
                    s = this.splitBusinessHourSegs(t.businessHourSegs, a),
                    l = this.splitBgEventSegs(t.bgEventSegs, a),
                    u = this.splitFgEventSegs(t.fgEventSegs, a),
                    c = this.splitDateSelectionSegs(t.dateSelectionSegs, a),
                    d = this.splitEventDrag(t.eventDrag, a),
                    p = this.splitEventResize(t.eventResize, a),
                    f = !0 === o || !0 === r
                return (
                    f && !i && ((f = !1), (r = null), (o = null)),
                    _o(
                        'div',
                        {
                            className: [
                                'fc-daygrid-body',
                                f
                                    ? 'fc-daygrid-body-balanced'
                                    : 'fc-daygrid-body-unbalanced',
                                i ? '' : 'fc-daygrid-body-natural',
                            ].join(' '),
                            ref: this.handleRootEl,
                            style: {
                                width: t.clientWidth,
                                minWidth: t.tableMinWidth,
                            },
                        },
                        _o(Ca, { unit: 'day' }, function (f, h) {
                            return _o(
                                xo,
                                null,
                                _o(
                                    'table',
                                    {
                                        role: 'presentation',
                                        className: 'fc-scrollgrid-sync-table',
                                        style: {
                                            width: t.clientWidth,
                                            minWidth: t.tableMinWidth,
                                            height: i ? t.clientHeight : '',
                                        },
                                    },
                                    t.colGroupNode,
                                    _o(
                                        'tbody',
                                        { role: 'presentation' },
                                        t.cells.map(function (i, f) {
                                            return _o(gl, {
                                                ref: e.rowRefs.createRef(f),
                                                key: i.length
                                                    ? i[0].date.toISOString()
                                                    : f,
                                                showDayNumbers: a > 1,
                                                showWeekNumbers:
                                                    t.showWeekNumbers,
                                                todayRange: h,
                                                dateProfile: n,
                                                cells: i,
                                                renderIntro: t.renderRowIntro,
                                                businessHourSegs: s[f],
                                                eventSelection:
                                                    t.eventSelection,
                                                bgEventSegs: l[f].filter(yl),
                                                fgEventSegs: u[f],
                                                dateSelectionSegs: c[f],
                                                eventDrag: d[f],
                                                eventResize: p[f],
                                                dayMaxEvents: o,
                                                dayMaxEventRows: r,
                                                clientWidth: t.clientWidth,
                                                clientHeight: t.clientHeight,
                                                forPrint: t.forPrint,
                                            })
                                        })
                                    )
                                )
                            )
                        })
                    )
                )
            }),
            (t.prototype.prepareHits = function () {
                ;(this.rowPositions = new So(
                    this.rootEl,
                    this.rowRefs.collect().map(function (e) {
                        return e.getCellEls()[0]
                    }),
                    !1,
                    !0
                )),
                    (this.colPositions = new So(
                        this.rootEl,
                        this.rowRefs.currentMap[0].getCellEls(),
                        !0,
                        !1
                    ))
            }),
            (t.prototype.queryHit = function (e, t) {
                var n = this.colPositions,
                    o = this.rowPositions,
                    i = n.leftToIndex(e),
                    a = o.topToIndex(t)
                if (null != a && null != i) {
                    var s = this.props.cells[a][i]
                    return {
                        dateProfile: this.props.dateProfile,
                        dateSpan: r(
                            { range: this.getCellRange(a, i), allDay: !0 },
                            s.extraDateSpan
                        ),
                        dayEl: this.getCellEl(a, i),
                        rect: {
                            left: n.lefts[i],
                            right: n.rights[i],
                            top: o.tops[a],
                            bottom: o.bottoms[a],
                        },
                        layer: 0,
                    }
                }
                return null
            }),
            (t.prototype.getCellEl = function (e, t) {
                return this.rowRefs.currentMap[e].getCellEls()[t]
            }),
            (t.prototype.getCellRange = function (e, t) {
                var n = this.props.cells[e][t].date
                return { start: n, end: tt(n, 1) }
            }),
            t
        )
    })(Bo)
    function yl(e) {
        return e.eventRange.def.allDay
    }
    var El = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (t.forceDayIfListItem = !0), t
            }
            return (
                n(t, e),
                (t.prototype.sliceRange = function (e, t) {
                    return t.sliceRange(e)
                }),
                t
            )
        })(xa),
        Sl = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (t.slicer = new El()), (t.tableRef = ko()), t
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.props,
                        t = this.context
                    return _o(
                        ml,
                        r(
                            { ref: this.tableRef },
                            this.slicer.sliceProps(
                                e,
                                e.dateProfile,
                                e.nextDayThreshold,
                                t,
                                e.dayTableModel
                            ),
                            {
                                dateProfile: e.dateProfile,
                                cells: e.dayTableModel.cells,
                                colGroupNode: e.colGroupNode,
                                tableMinWidth: e.tableMinWidth,
                                renderRowIntro: e.renderRowIntro,
                                dayMaxEvents: e.dayMaxEvents,
                                dayMaxEventRows: e.dayMaxEventRows,
                                showWeekNumbers: e.showWeekNumbers,
                                expandRows: e.expandRows,
                                headerAlignElRef: e.headerAlignElRef,
                                clientWidth: e.clientWidth,
                                clientHeight: e.clientHeight,
                                forPrint: e.forPrint,
                            }
                        )
                    )
                }),
                t
            )
        })(Bo),
        bl = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (
                    (t.buildDayTableModel = qt(Dl)),
                    (t.headerRef = ko()),
                    (t.tableRef = ko()),
                    t
                )
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this,
                        t = this.context,
                        n = t.options,
                        r = t.dateProfileGenerator,
                        o = this.props,
                        i = this.buildDayTableModel(o.dateProfile, r),
                        a =
                            n.dayHeaders &&
                            _o(Ra, {
                                ref: this.headerRef,
                                dateProfile: o.dateProfile,
                                dates: i.headerDates,
                                datesRepDistinctDays: 1 === i.rowCnt,
                            }),
                        s = function (t) {
                            return _o(Sl, {
                                ref: e.tableRef,
                                dateProfile: o.dateProfile,
                                dayTableModel: i,
                                businessHours: o.businessHours,
                                dateSelection: o.dateSelection,
                                eventStore: o.eventStore,
                                eventUiBases: o.eventUiBases,
                                eventSelection: o.eventSelection,
                                eventDrag: o.eventDrag,
                                eventResize: o.eventResize,
                                nextDayThreshold: n.nextDayThreshold,
                                colGroupNode: t.tableColGroupNode,
                                tableMinWidth: t.tableMinWidth,
                                dayMaxEvents: n.dayMaxEvents,
                                dayMaxEventRows: n.dayMaxEventRows,
                                showWeekNumbers: n.weekNumbers,
                                expandRows: !o.isHeightAuto,
                                headerAlignElRef: e.headerElRef,
                                clientWidth: t.clientWidth,
                                clientHeight: t.clientHeight,
                                forPrint: o.forPrint,
                            })
                        }
                    return n.dayMinWidth
                        ? this.renderHScrollLayout(
                              a,
                              s,
                              i.colCnt,
                              n.dayMinWidth
                          )
                        : this.renderSimpleLayout(a, s)
                }),
                t
            )
        })(Js)
    function Dl(e, t) {
        var n = new Ta(e.renderRange, t)
        return new ka(n, /year|month|week/.test(e.currentRangeUnit))
    }
    var Cl = zo({
            initialView: 'dayGridMonth',
            views: {
                dayGrid: {
                    component: bl,
                    dateProfileGeneratorClass: (function (e) {
                        function t() {
                            return (
                                (null !== e && e.apply(this, arguments)) || this
                            )
                        }
                        return (
                            n(t, e),
                            (t.prototype.buildRenderRange = function (t, n, r) {
                                var o,
                                    i = this.props.dateEnv,
                                    a = e.prototype.buildRenderRange.call(
                                        this,
                                        t,
                                        n,
                                        r
                                    ),
                                    s = a.start,
                                    l = a.end
                                ;(/^(year|month)$/.test(n) &&
                                    ((s = i.startOfWeek(s)),
                                    (o = i.startOfWeek(l)).valueOf() !==
                                        l.valueOf() && (l = et(o, 1))),
                                this.props.monthMode &&
                                    this.props.fixedWeekCount) &&
                                    (l = et(l, 6 - Math.ceil(rt(s, l))))
                                return { start: s, end: l }
                            }),
                            t
                        )
                    })(ai),
                },
                dayGridDay: { type: 'dayGrid', duration: { days: 1 } },
                dayGridWeek: { type: 'dayGrid', duration: { weeks: 1 } },
                dayGridMonth: {
                    type: 'dayGrid',
                    duration: { months: 1 },
                    monthMode: !0,
                    fixedWeekCount: !0,
                },
            },
        }),
        wl = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.getKeyInfo = function () {
                    return { allDay: {}, timed: {} }
                }),
                (t.prototype.getKeysForDateSpan = function (e) {
                    return e.allDay ? ['allDay'] : ['timed']
                }),
                (t.prototype.getKeysForEventDef = function (e) {
                    return e.allDay
                        ? Kn(e)
                            ? ['timed', 'allDay']
                            : ['allDay']
                        : ['timed']
                }),
                t
            )
        })(to),
        Rl = ln({
            hour: 'numeric',
            minute: '2-digit',
            omitZeroMinute: !0,
            meridiem: 'short',
        })
    function _l(e) {
        var t = [
            'fc-timegrid-slot',
            'fc-timegrid-slot-label',
            e.isLabeled ? 'fc-scrollgrid-shrink' : 'fc-timegrid-slot-minor',
        ]
        return _o(Oo.Consumer, null, function (n) {
            if (!e.isLabeled)
                return _o('td', {
                    className: t.join(' '),
                    'data-time': e.isoTimeStr,
                })
            var r = n.dateEnv,
                o = n.options,
                i = n.viewApi,
                a =
                    null == o.slotLabelFormat
                        ? Rl
                        : Array.isArray(o.slotLabelFormat)
                          ? ln(o.slotLabelFormat[0])
                          : ln(o.slotLabelFormat),
                s = {
                    level: 0,
                    time: e.time,
                    date: r.toDate(e.date),
                    view: i,
                    text: r.format(e.date, a),
                }
            return _o(
                Yo,
                {
                    hookProps: s,
                    classNames: o.slotLabelClassNames,
                    content: o.slotLabelContent,
                    defaultContent: Tl,
                    didMount: o.slotLabelDidMount,
                    willUnmount: o.slotLabelWillUnmount,
                },
                function (n, r, o, i) {
                    return _o(
                        'td',
                        {
                            ref: n,
                            className: t.concat(r).join(' '),
                            'data-time': e.isoTimeStr,
                        },
                        _o(
                            'div',
                            {
                                className:
                                    'fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame',
                            },
                            _o(
                                'div',
                                {
                                    className:
                                        'fc-timegrid-slot-label-cushion fc-scrollgrid-shrink-cushion',
                                    ref: o,
                                },
                                i
                            )
                        )
                    )
                }
            )
        })
    }
    function Tl(e) {
        return e.text
    }
    var kl = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    return this.props.slatMetas.map(function (e) {
                        return _o('tr', { key: e.key }, _o(_l, r({}, e)))
                    })
                }),
                t
            )
        })(Uo),
        xl = ln({ week: 'short' }),
        Ml = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (
                    (t.allDaySplitter = new wl()),
                    (t.headerElRef = ko()),
                    (t.rootElRef = ko()),
                    (t.scrollerElRef = ko()),
                    (t.state = { slatCoords: null }),
                    (t.handleScrollTopRequest = function (e) {
                        var n = t.scrollerElRef.current
                        n && (n.scrollTop = e)
                    }),
                    (t.renderHeadAxis = function (e, n) {
                        void 0 === n && (n = '')
                        var o = t.context.options,
                            i = t.props.dateProfile.renderRange,
                            a =
                                1 === ot(i.start, i.end)
                                    ? so(t.context, i.start, 'week')
                                    : {}
                        return o.weekNumbers && 'day' === e
                            ? _o(
                                  fs,
                                  { date: i.start, defaultFormat: xl },
                                  function (e, t, o, i) {
                                      return _o(
                                          'th',
                                          {
                                              ref: e,
                                              'aria-hidden': !0,
                                              className: [
                                                  'fc-timegrid-axis',
                                                  'fc-scrollgrid-shrink',
                                              ]
                                                  .concat(t)
                                                  .join(' '),
                                          },
                                          _o(
                                              'div',
                                              {
                                                  className:
                                                      'fc-timegrid-axis-frame fc-scrollgrid-shrink-frame fc-timegrid-axis-frame-liquid',
                                                  style: { height: n },
                                              },
                                              _o(
                                                  'a',
                                                  r(
                                                      {
                                                          ref: o,
                                                          className:
                                                              'fc-timegrid-axis-cushion fc-scrollgrid-shrink-cushion fc-scrollgrid-sync-inner',
                                                      },
                                                      a
                                                  ),
                                                  i
                                              )
                                          )
                                      )
                                  }
                              )
                            : _o(
                                  'th',
                                  {
                                      'aria-hidden': !0,
                                      className: 'fc-timegrid-axis',
                                  },
                                  _o('div', {
                                      className: 'fc-timegrid-axis-frame',
                                      style: { height: n },
                                  })
                              )
                    }),
                    (t.renderTableRowAxis = function (e) {
                        var n = t.context,
                            r = n.options,
                            o = n.viewApi,
                            i = { text: r.allDayText, view: o }
                        return _o(
                            Yo,
                            {
                                hookProps: i,
                                classNames: r.allDayClassNames,
                                content: r.allDayContent,
                                defaultContent: Il,
                                didMount: r.allDayDidMount,
                                willUnmount: r.allDayWillUnmount,
                            },
                            function (t, n, r, o) {
                                return _o(
                                    'td',
                                    {
                                        ref: t,
                                        'aria-hidden': !0,
                                        className: [
                                            'fc-timegrid-axis',
                                            'fc-scrollgrid-shrink',
                                        ]
                                            .concat(n)
                                            .join(' '),
                                    },
                                    _o(
                                        'div',
                                        {
                                            className:
                                                'fc-timegrid-axis-frame fc-scrollgrid-shrink-frame' +
                                                (null == e
                                                    ? ' fc-timegrid-axis-frame-liquid'
                                                    : ''),
                                            style: { height: e },
                                        },
                                        _o(
                                            'span',
                                            {
                                                className:
                                                    'fc-timegrid-axis-cushion fc-scrollgrid-shrink-cushion fc-scrollgrid-sync-inner',
                                                ref: r,
                                            },
                                            o
                                        )
                                    )
                                )
                            }
                        )
                    }),
                    (t.handleSlatCoords = function (e) {
                        t.setState({ slatCoords: e })
                    }),
                    t
                )
            }
            return (
                n(t, e),
                (t.prototype.renderSimpleLayout = function (e, t, n) {
                    var r = this.context,
                        o = this.props,
                        i = [],
                        a = Qa(r.options)
                    return (
                        e &&
                            i.push({
                                type: 'header',
                                key: 'header',
                                isSticky: a,
                                chunk: {
                                    elRef: this.headerElRef,
                                    tableClassName: 'fc-col-header',
                                    rowContent: e,
                                },
                            }),
                        t &&
                            (i.push({
                                type: 'body',
                                key: 'all-day',
                                chunk: { content: t },
                            }),
                            i.push({
                                type: 'body',
                                key: 'all-day-divider',
                                outerContent: _o(
                                    'tr',
                                    {
                                        role: 'presentation',
                                        className: 'fc-scrollgrid-section',
                                    },
                                    _o('td', {
                                        className:
                                            'fc-timegrid-divider ' +
                                            r.theme.getClass('tableCellShaded'),
                                    })
                                ),
                            })),
                        i.push({
                            type: 'body',
                            key: 'body',
                            liquid: !0,
                            expandRows: Boolean(r.options.expandRows),
                            chunk: {
                                scrollerElRef: this.scrollerElRef,
                                content: n,
                            },
                        }),
                        _o(
                            ti,
                            { viewSpec: r.viewSpec, elRef: this.rootElRef },
                            function (e, t) {
                                return _o(
                                    'div',
                                    {
                                        className: ['fc-timegrid']
                                            .concat(t)
                                            .join(' '),
                                        ref: e,
                                    },
                                    _o(ts, {
                                        liquid: !o.isHeightAuto && !o.forPrint,
                                        collapsibleWidth: o.forPrint,
                                        cols: [{ width: 'shrink' }],
                                        sections: i,
                                    })
                                )
                            }
                        )
                    )
                }),
                (t.prototype.renderHScrollLayout = function (
                    e,
                    t,
                    n,
                    r,
                    o,
                    i,
                    a
                ) {
                    var s = this,
                        l = this.context.pluginHooks.scrollGridImpl
                    if (!l) throw new Error('No ScrollGrid implementation')
                    var u = this.context,
                        c = this.props,
                        d = !c.forPrint && Qa(u.options),
                        p = !c.forPrint && es(u.options),
                        f = []
                    e &&
                        f.push({
                            type: 'header',
                            key: 'header',
                            isSticky: d,
                            syncRowHeights: !0,
                            chunks: [
                                {
                                    key: 'axis',
                                    rowContent: function (e) {
                                        return _o(
                                            'tr',
                                            { role: 'presentation' },
                                            s.renderHeadAxis(
                                                'day',
                                                e.rowSyncHeights[0]
                                            )
                                        )
                                    },
                                },
                                {
                                    key: 'cols',
                                    elRef: this.headerElRef,
                                    tableClassName: 'fc-col-header',
                                    rowContent: e,
                                },
                            ],
                        }),
                        t &&
                            (f.push({
                                type: 'body',
                                key: 'all-day',
                                syncRowHeights: !0,
                                chunks: [
                                    {
                                        key: 'axis',
                                        rowContent: function (e) {
                                            return _o(
                                                'tr',
                                                { role: 'presentation' },
                                                s.renderTableRowAxis(
                                                    e.rowSyncHeights[0]
                                                )
                                            )
                                        },
                                    },
                                    { key: 'cols', content: t },
                                ],
                            }),
                            f.push({
                                key: 'all-day-divider',
                                type: 'body',
                                outerContent: _o(
                                    'tr',
                                    {
                                        role: 'presentation',
                                        className: 'fc-scrollgrid-section',
                                    },
                                    _o('td', {
                                        colSpan: 2,
                                        className:
                                            'fc-timegrid-divider ' +
                                            u.theme.getClass('tableCellShaded'),
                                    })
                                ),
                            }))
                    var h = u.options.nowIndicator
                    return (
                        f.push({
                            type: 'body',
                            key: 'body',
                            liquid: !0,
                            expandRows: Boolean(u.options.expandRows),
                            chunks: [
                                {
                                    key: 'axis',
                                    content: function (e) {
                                        return _o(
                                            'div',
                                            {
                                                className:
                                                    'fc-timegrid-axis-chunk',
                                            },
                                            _o(
                                                'table',
                                                {
                                                    'aria-hidden': !0,
                                                    style: {
                                                        height: e.expandRows
                                                            ? e.clientHeight
                                                            : '',
                                                    },
                                                },
                                                e.tableColGroupNode,
                                                _o(
                                                    'tbody',
                                                    null,
                                                    _o(kl, { slatMetas: i })
                                                )
                                            ),
                                            _o(
                                                'div',
                                                {
                                                    className:
                                                        'fc-timegrid-now-indicator-container',
                                                },
                                                _o(
                                                    Ca,
                                                    {
                                                        unit: h
                                                            ? 'minute'
                                                            : 'day',
                                                    },
                                                    function (e) {
                                                        var t =
                                                            h &&
                                                            a &&
                                                            a.safeComputeTop(e)
                                                        return 'number' ==
                                                            typeof t
                                                            ? _o(
                                                                  is,
                                                                  {
                                                                      isAxis: !0,
                                                                      date: e,
                                                                  },
                                                                  function (
                                                                      e,
                                                                      n,
                                                                      r,
                                                                      o
                                                                  ) {
                                                                      return _o(
                                                                          'div',
                                                                          {
                                                                              ref: e,
                                                                              className:
                                                                                  [
                                                                                      'fc-timegrid-now-indicator-arrow',
                                                                                  ]
                                                                                      .concat(
                                                                                          n
                                                                                      )
                                                                                      .join(
                                                                                          ' '
                                                                                      ),
                                                                              style: {
                                                                                  top: t,
                                                                              },
                                                                          },
                                                                          o
                                                                      )
                                                                  }
                                                              )
                                                            : null
                                                    }
                                                )
                                            )
                                        )
                                    },
                                },
                                {
                                    key: 'cols',
                                    scrollerElRef: this.scrollerElRef,
                                    content: n,
                                },
                            ],
                        }),
                        p &&
                            f.push({
                                key: 'footer',
                                type: 'footer',
                                isSticky: !0,
                                chunks: [
                                    { key: 'axis', content: Ja },
                                    { key: 'cols', content: Ja },
                                ],
                            }),
                        _o(
                            ti,
                            { viewSpec: u.viewSpec, elRef: this.rootElRef },
                            function (e, t) {
                                return _o(
                                    'div',
                                    {
                                        className: ['fc-timegrid']
                                            .concat(t)
                                            .join(' '),
                                        ref: e,
                                    },
                                    _o(l, {
                                        liquid: !c.isHeightAuto && !c.forPrint,
                                        collapsibleWidth: !1,
                                        colGroups: [
                                            {
                                                width: 'shrink',
                                                cols: [{ width: 'shrink' }],
                                            },
                                            {
                                                cols: [
                                                    { span: r, minWidth: o },
                                                ],
                                            },
                                        ],
                                        sections: f,
                                    })
                                )
                            }
                        )
                    )
                }),
                (t.prototype.getAllDayMaxEventProps = function () {
                    var e = this.context.options,
                        t = e.dayMaxEvents,
                        n = e.dayMaxEventRows
                    return (
                        (!0 !== t && !0 !== n) || ((t = void 0), (n = 5)),
                        { dayMaxEvents: t, dayMaxEventRows: n }
                    )
                }),
                t
            )
        })(Bo)
    function Il(e) {
        return e.text
    }
    var Pl = (function () {
            function e(e, t, n) {
                ;(this.positions = e),
                    (this.dateProfile = t),
                    (this.slotDuration = n)
            }
            return (
                (e.prototype.safeComputeTop = function (e) {
                    var t = this.dateProfile
                    if (Zn(t.currentRange, e)) {
                        var n = lt(e),
                            r = e.valueOf() - n.valueOf()
                        if (r >= Ut(t.slotMinTime) && r < Ut(t.slotMaxTime))
                            return this.computeTimeTop(Nt(r))
                    }
                    return null
                }),
                (e.prototype.computeDateTop = function (e, t) {
                    return (
                        t || (t = lt(e)),
                        this.computeTimeTop(Nt(e.valueOf() - t.valueOf()))
                    )
                }),
                (e.prototype.computeTimeTop = function (e) {
                    var t,
                        n,
                        r = this.positions,
                        o = this.dateProfile,
                        i = r.els.length,
                        a =
                            (e.milliseconds - Ut(o.slotMinTime)) /
                            Ut(this.slotDuration)
                    return (
                        (a = Math.max(0, a)),
                        (a = Math.min(i, a)),
                        (t = Math.floor(a)),
                        (n = a - (t = Math.min(t, i - 1))),
                        r.tops[t] + r.getHeight(t) * n
                    )
                }),
                e
            )
        })(),
        Nl = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.props,
                        t = this.context,
                        n = t.options,
                        o = e.slatElRefs
                    return _o(
                        'tbody',
                        null,
                        e.slatMetas.map(function (i, a) {
                            var s = {
                                    time: i.time,
                                    date: t.dateEnv.toDate(i.date),
                                    view: t.viewApi,
                                },
                                l = [
                                    'fc-timegrid-slot',
                                    'fc-timegrid-slot-lane',
                                    i.isLabeled ? '' : 'fc-timegrid-slot-minor',
                                ]
                            return _o(
                                'tr',
                                { key: i.key, ref: o.createRef(i.key) },
                                e.axis && _o(_l, r({}, i)),
                                _o(
                                    Yo,
                                    {
                                        hookProps: s,
                                        classNames: n.slotLaneClassNames,
                                        content: n.slotLaneContent,
                                        didMount: n.slotLaneDidMount,
                                        willUnmount: n.slotLaneWillUnmount,
                                    },
                                    function (e, t, n, r) {
                                        return _o(
                                            'td',
                                            {
                                                ref: e,
                                                className: l
                                                    .concat(t)
                                                    .join(' '),
                                                'data-time': i.isoTimeStr,
                                            },
                                            r
                                        )
                                    }
                                )
                            )
                        })
                    )
                }),
                t
            )
        })(Uo),
        Hl = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (t.rootElRef = ko()), (t.slatElRefs = new Fa()), t
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.props,
                        t = this.context
                    return _o(
                        'div',
                        { ref: this.rootElRef, className: 'fc-timegrid-slots' },
                        _o(
                            'table',
                            {
                                'aria-hidden': !0,
                                className: t.theme.getClass('table'),
                                style: {
                                    minWidth: e.tableMinWidth,
                                    width: e.clientWidth,
                                    height: e.minHeight,
                                },
                            },
                            e.tableColGroupNode,
                            _o(Nl, {
                                slatElRefs: this.slatElRefs,
                                axis: e.axis,
                                slatMetas: e.slatMetas,
                            })
                        )
                    )
                }),
                (t.prototype.componentDidMount = function () {
                    this.updateSizing()
                }),
                (t.prototype.componentDidUpdate = function () {
                    this.updateSizing()
                }),
                (t.prototype.componentWillUnmount = function () {
                    this.props.onCoords && this.props.onCoords(null)
                }),
                (t.prototype.updateSizing = function () {
                    var e,
                        t = this.context,
                        n = this.props
                    n.onCoords &&
                        null !== n.clientWidth &&
                        this.rootElRef.current.offsetHeight &&
                        n.onCoords(
                            new Pl(
                                new So(
                                    this.rootElRef.current,
                                    ((e = this.slatElRefs.currentMap),
                                    n.slatMetas.map(function (t) {
                                        return e[t.key]
                                    })),
                                    !1,
                                    !0
                                ),
                                this.props.dateProfile,
                                t.options.slotDuration
                            )
                        )
                }),
                t
            )
        })(Uo)
    function Ol(e, t) {
        var n,
            r = []
        for (n = 0; n < t; n += 1) r.push([])
        if (e) for (n = 0; n < e.length; n += 1) r[e[n].col].push(e[n])
        return r
    }
    function Al(e, t) {
        var n = []
        if (e) {
            for (a = 0; a < t; a += 1)
                n[a] = {
                    affectedInstances: e.affectedInstances,
                    isEvent: e.isEvent,
                    segs: [],
                }
            for (var r = 0, o = e.segs; r < o.length; r++) {
                var i = o[r]
                n[i.col].segs.push(i)
            }
        } else for (var a = 0; a < t; a += 1) n[a] = null
        return n
    }
    var Ll = (function (e) {
        function t() {
            var t = (null !== e && e.apply(this, arguments)) || this
            return (t.rootElRef = ko()), t
        }
        return (
            n(t, e),
            (t.prototype.render = function () {
                var e = this,
                    t = this.props
                return _o(
                    ms,
                    {
                        allDayDate: null,
                        moreCnt: t.hiddenSegs.length,
                        allSegs: t.hiddenSegs,
                        hiddenSegs: t.hiddenSegs,
                        alignmentElRef: this.rootElRef,
                        defaultContent: Ul,
                        extraDateSpan: t.extraDateSpan,
                        dateProfile: t.dateProfile,
                        todayRange: t.todayRange,
                        popoverContent: function () {
                            return Xl(t.hiddenSegs, t)
                        },
                    },
                    function (n, r, o, i, a, s, l, u) {
                        return _o(
                            'a',
                            {
                                ref: function (t) {
                                    Fo(n, t), Fo(e.rootElRef, t)
                                },
                                className: ['fc-timegrid-more-link']
                                    .concat(r)
                                    .join(' '),
                                style: { top: t.top, bottom: t.bottom },
                                onClick: a,
                                title: s,
                                'aria-expanded': l,
                                'aria-controls': u,
                            },
                            _o(
                                'div',
                                {
                                    ref: o,
                                    className:
                                        'fc-timegrid-more-link-inner fc-sticky',
                                },
                                i
                            )
                        )
                    }
                )
            }),
            t
        )
    })(Uo)
    function Ul(e) {
        return e.shortText
    }
    function Wl(e, t, n) {
        var o = new qi()
        null != t && (o.strictOrder = t), null != n && (o.maxStackCnt = n)
        var i,
            a,
            s,
            l = Xi(o.addSegs(e)),
            u = (function (e) {
                var t = e.entriesByLevel,
                    n = zl(
                        function (e, t) {
                            return e + ':' + t
                        },
                        function (o, i) {
                            var a = Vl(
                                    (function (e, t, n) {
                                        for (
                                            var r = e.levelCoords,
                                                o = e.entriesByLevel,
                                                i = o[t][n],
                                                a = r[t] + i.thickness,
                                                s = r.length,
                                                l = t;
                                            l < s && r[l] < a;
                                            l += 1
                                        );
                                        for (; l < s; l += 1) {
                                            for (
                                                var u = o[l],
                                                    c = void 0,
                                                    d = Qi(u, i.span.start, Yi),
                                                    p = d[0] + d[1],
                                                    f = p;
                                                (c = u[f]) &&
                                                c.span.start < i.span.end;

                                            )
                                                f += 1
                                            if (p < f)
                                                return {
                                                    level: l,
                                                    lateralStart: p,
                                                    lateralEnd: f,
                                                }
                                        }
                                        return null
                                    })(e, o, i),
                                    n
                                ),
                                s = t[o][i]
                            return [
                                r(r({}, s), { nextLevelNodes: a[0] }),
                                s.thickness + a[1],
                            ]
                        }
                    )
                return Vl(
                    t.length
                        ? { level: 0, lateralStart: 0, lateralEnd: t[0].length }
                        : null,
                    n
                )[0]
            })(o)
        return (
            (i = u),
            (a = 1),
            (s = zl(
                function (e, t, n) {
                    return Zi(e)
                },
                function (e, t, n) {
                    var o,
                        i = e.nextLevelNodes,
                        l = e.thickness,
                        u = l + n,
                        c = l / u,
                        d = []
                    if (i.length)
                        for (var p = 0, f = i; p < f.length; p++) {
                            var h = f[p]
                            if (void 0 === o)
                                (o = (v = s(h, t, u))[0]), d.push(v[1])
                            else {
                                var v = s(h, o, 0)
                                d.push(v[1])
                            }
                        }
                    else o = a
                    var g = (o - t) * c
                    return [
                        o - g,
                        r(r({}, e), { thickness: g, nextLevelNodes: d }),
                    ]
                }
            )),
            {
                segRects: (function (e) {
                    var t = [],
                        n = zl(
                            function (e, t, n) {
                                return Zi(e)
                            },
                            function (e, n, i) {
                                var a = r(r({}, e), {
                                    levelCoord: n,
                                    stackDepth: i,
                                    stackForward: 0,
                                })
                                return (
                                    t.push(a),
                                    (a.stackForward =
                                        o(
                                            e.nextLevelNodes,
                                            n + e.thickness,
                                            i + 1
                                        ) + 1)
                                )
                            }
                        )
                    function o(e, t, r) {
                        for (var o = 0, i = 0, a = e; i < a.length; i++) {
                            var s = a[i]
                            o = Math.max(n(s, t, r), o)
                        }
                        return o
                    }
                    return o(e, 0, 0), t
                })(
                    (u = i.map(function (e) {
                        return s(e, 0, 0)[1]
                    }))
                ),
                hiddenGroups: l,
            }
        )
    }
    function Vl(e, t) {
        if (!e) return [[], 0]
        for (
            var n = e.level,
                r = e.lateralStart,
                o = e.lateralEnd,
                i = r,
                a = [];
            i < o;

        )
            a.push(t(n, i)), (i += 1)
        return a.sort(Fl), [a.map(Bl), a[0][1]]
    }
    function Fl(e, t) {
        return t[1] - e[1]
    }
    function Bl(e) {
        return e[0]
    }
    function zl(e, t) {
        var n = {}
        return function () {
            for (var r = [], o = 0; o < arguments.length; o++)
                r[o] = arguments[o]
            var i = e.apply(void 0, r)
            return i in n ? n[i] : (n[i] = t.apply(void 0, r))
        }
    }
    function jl(e, t, n, r) {
        void 0 === n && (n = null), void 0 === r && (r = 0)
        var o = []
        if (n)
            for (var i = 0; i < e.length; i += 1) {
                var a = e[i],
                    s = n.computeDateTop(a.start, t),
                    l = Math.max(s + (r || 0), n.computeDateTop(a.end, t))
                o.push({ start: Math.round(s), end: Math.round(l) })
            }
        return o
    }
    var Gl = ln({ hour: 'numeric', minute: '2-digit', meridiem: !1 }),
        ql = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = ['fc-timegrid-event', 'fc-v-event']
                    return (
                        this.props.isShort && e.push('fc-timegrid-event-short'),
                        _o(
                            rs,
                            r({}, this.props, {
                                defaultTimeFormat: Gl,
                                extraClassNames: e,
                            })
                        )
                    )
                }),
                t
            )
        })(Uo),
        Yl = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.props
                    return _o(
                        ss,
                        {
                            date: e.date,
                            dateProfile: e.dateProfile,
                            todayRange: e.todayRange,
                            extraHookProps: e.extraHookProps,
                        },
                        function (e, t) {
                            return (
                                t &&
                                _o(
                                    'div',
                                    {
                                        className: 'fc-timegrid-col-misc',
                                        ref: e,
                                    },
                                    t
                                )
                            )
                        }
                    )
                }),
                t
            )
        })(Uo),
        Zl = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (t.sortEventSegs = qt(tr)), t
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this,
                        t = this.props,
                        n = this.context,
                        o = n.options.selectMirror,
                        i =
                            (t.eventDrag && t.eventDrag.segs) ||
                            (t.eventResize && t.eventResize.segs) ||
                            (o && t.dateSelectionSegs) ||
                            [],
                        a =
                            (t.eventDrag && t.eventDrag.affectedInstances) ||
                            (t.eventResize &&
                                t.eventResize.affectedInstances) ||
                            {},
                        s = this.sortEventSegs(
                            t.fgEventSegs,
                            n.options.eventOrder
                        )
                    return _o(
                        us,
                        {
                            elRef: t.elRef,
                            date: t.date,
                            dateProfile: t.dateProfile,
                            todayRange: t.todayRange,
                            extraHookProps: t.extraHookProps,
                        },
                        function (n, l, u) {
                            return _o(
                                'td',
                                r(
                                    {
                                        ref: n,
                                        role: 'gridcell',
                                        className: ['fc-timegrid-col']
                                            .concat(l, t.extraClassNames || [])
                                            .join(' '),
                                    },
                                    u,
                                    t.extraDataAttrs
                                ),
                                _o(
                                    'div',
                                    { className: 'fc-timegrid-col-frame' },
                                    _o(
                                        'div',
                                        { className: 'fc-timegrid-col-bg' },
                                        e.renderFillSegs(
                                            t.businessHourSegs,
                                            'non-business'
                                        ),
                                        e.renderFillSegs(
                                            t.bgEventSegs,
                                            'bg-event'
                                        ),
                                        e.renderFillSegs(
                                            t.dateSelectionSegs,
                                            'highlight'
                                        )
                                    ),
                                    _o(
                                        'div',
                                        { className: 'fc-timegrid-col-events' },
                                        e.renderFgSegs(s, a, !1, !1, !1)
                                    ),
                                    _o(
                                        'div',
                                        { className: 'fc-timegrid-col-events' },
                                        e.renderFgSegs(
                                            i,
                                            {},
                                            Boolean(t.eventDrag),
                                            Boolean(t.eventResize),
                                            Boolean(o)
                                        )
                                    ),
                                    _o(
                                        'div',
                                        {
                                            className:
                                                'fc-timegrid-now-indicator-container',
                                        },
                                        e.renderNowIndicator(t.nowIndicatorSegs)
                                    ),
                                    _o(Yl, {
                                        date: t.date,
                                        dateProfile: t.dateProfile,
                                        todayRange: t.todayRange,
                                        extraHookProps: t.extraHookProps,
                                    })
                                )
                            )
                        }
                    )
                }),
                (t.prototype.renderFgSegs = function (e, t, n, r, o) {
                    var i = this.props
                    return i.forPrint
                        ? Xl(e, i)
                        : this.renderPositionedFgSegs(e, t, n, r, o)
                }),
                (t.prototype.renderPositionedFgSegs = function (e, t, n, o, i) {
                    var a = this,
                        s = this.context.options,
                        l = s.eventMaxStack,
                        u = s.eventShortHeight,
                        c = s.eventOrderStrict,
                        d = s.eventMinHeight,
                        p = this.props,
                        f = p.date,
                        h = p.slatCoords,
                        v = p.eventSelection,
                        g = p.todayRange,
                        m = p.nowDate,
                        y = n || o || i,
                        E = (function (e, t, n, r) {
                            for (
                                var o = [], i = [], a = 0;
                                a < e.length;
                                a += 1
                            ) {
                                var s = t[a]
                                s
                                    ? o.push({
                                          index: a,
                                          thickness: 1,
                                          span: s,
                                      })
                                    : i.push(e[a])
                            }
                            for (
                                var l = Wl(o, n, r),
                                    u = l.segRects,
                                    c = l.hiddenGroups,
                                    d = [],
                                    p = 0,
                                    f = u;
                                p < f.length;
                                p++
                            ) {
                                var h = f[p]
                                d.push({ seg: e[h.index], rect: h })
                            }
                            for (var v = 0, g = i; v < g.length; v++) {
                                var m = g[v]
                                d.push({ seg: m, rect: null })
                            }
                            return { segPlacements: d, hiddenGroups: c }
                        })(e, jl(e, f, h, d), c, l),
                        S = E.segPlacements,
                        b = E.hiddenGroups
                    return _o(
                        xo,
                        null,
                        this.renderHiddenGroups(b, e),
                        S.map(function (e) {
                            var s = e.seg,
                                l = e.rect,
                                c = s.eventRange.instance.instanceId,
                                d = y || Boolean(!t[c] && l),
                                p = Kl(l && l.span),
                                f =
                                    !y && l
                                        ? a.computeSegHStyle(l)
                                        : { left: 0, right: 0 },
                                h = Boolean(l) && l.stackForward > 0,
                                E = Boolean(l) && l.span.end - l.span.start < u
                            return _o(
                                'div',
                                {
                                    className:
                                        'fc-timegrid-event-harness' +
                                        (h
                                            ? ' fc-timegrid-event-harness-inset'
                                            : ''),
                                    key: c,
                                    style: r(
                                        r({ visibility: d ? '' : 'hidden' }, p),
                                        f
                                    ),
                                },
                                _o(
                                    ql,
                                    r(
                                        {
                                            seg: s,
                                            isDragging: n,
                                            isResizing: o,
                                            isDateSelecting: i,
                                            isSelected: c === v,
                                            isShort: E,
                                        },
                                        sr(s, g, m)
                                    )
                                )
                            )
                        })
                    )
                }),
                (t.prototype.renderHiddenGroups = function (e, t) {
                    var n = this.props,
                        r = n.extraDateSpan,
                        o = n.dateProfile,
                        i = n.todayRange,
                        a = n.nowDate,
                        s = n.eventSelection,
                        l = n.eventDrag,
                        u = n.eventResize
                    return _o(
                        xo,
                        null,
                        e.map(function (e) {
                            var n,
                                c,
                                d = Kl(e.span),
                                p =
                                    ((n = e.entries),
                                    (c = t),
                                    n.map(function (e) {
                                        return c[e.index]
                                    }))
                            return _o(Ll, {
                                key: Ft(Ss(p)),
                                hiddenSegs: p,
                                top: d.top,
                                bottom: d.bottom,
                                extraDateSpan: r,
                                dateProfile: o,
                                todayRange: i,
                                nowDate: a,
                                eventSelection: s,
                                eventDrag: l,
                                eventResize: u,
                            })
                        })
                    )
                }),
                (t.prototype.renderFillSegs = function (e, t) {
                    var n = this.props,
                        o = this.context,
                        i = jl(
                            e,
                            n.date,
                            n.slatCoords,
                            o.options.eventMinHeight
                        ).map(function (o, i) {
                            var a = e[i]
                            return _o(
                                'div',
                                {
                                    key: ur(a.eventRange),
                                    className: 'fc-timegrid-bg-harness',
                                    style: Kl(o),
                                },
                                'bg-event' === t
                                    ? _o(
                                          ds,
                                          r(
                                              { seg: a },
                                              sr(a, n.todayRange, n.nowDate)
                                          )
                                      )
                                    : cs(t)
                            )
                        })
                    return _o(xo, null, i)
                }),
                (t.prototype.renderNowIndicator = function (e) {
                    var t = this.props,
                        n = t.slatCoords,
                        r = t.date
                    return n
                        ? e.map(function (e, t) {
                              return _o(
                                  is,
                                  { isAxis: !1, date: r, key: t },
                                  function (t, o, i, a) {
                                      return _o(
                                          'div',
                                          {
                                              ref: t,
                                              className: [
                                                  'fc-timegrid-now-indicator-line',
                                              ]
                                                  .concat(o)
                                                  .join(' '),
                                              style: {
                                                  top: n.computeDateTop(
                                                      e.start,
                                                      r
                                                  ),
                                              },
                                          },
                                          a
                                      )
                                  }
                              )
                          })
                        : null
                }),
                (t.prototype.computeSegHStyle = function (e) {
                    var t,
                        n,
                        r = this.context,
                        o = r.isRtl,
                        i = r.options.slotEventOverlap,
                        a = e.levelCoord,
                        s = e.levelCoord + e.thickness
                    i && (s = Math.min(1, a + 2 * (s - a))),
                        o ? ((t = 1 - s), (n = a)) : ((t = a), (n = 1 - s))
                    var l = {
                        zIndex: e.stackDepth + 1,
                        left: 100 * t + '%',
                        right: 100 * n + '%',
                    }
                    return (
                        i &&
                            !e.stackForward &&
                            (l[o ? 'marginLeft' : 'marginRight'] = 20),
                        l
                    )
                }),
                t
            )
        })(Uo)
    function Xl(e, t) {
        var n = t.todayRange,
            o = t.nowDate,
            i = t.eventSelection,
            a = t.eventDrag,
            s = t.eventResize,
            l =
                (a ? a.affectedInstances : null) ||
                (s ? s.affectedInstances : null) ||
                {}
        return _o(
            xo,
            null,
            e.map(function (e) {
                var t = e.eventRange.instance.instanceId
                return _o(
                    'div',
                    { key: t, style: { visibility: l[t] ? 'hidden' : '' } },
                    _o(
                        ql,
                        r(
                            {
                                seg: e,
                                isDragging: !1,
                                isResizing: !1,
                                isDateSelecting: !1,
                                isSelected: t === i,
                                isShort: !1,
                            },
                            sr(e, n, o)
                        )
                    )
                )
            })
        )
    }
    function Kl(e) {
        return e ? { top: e.start, bottom: -e.end } : { top: '', bottom: '' }
    }
    var $l = (function (e) {
        function t() {
            var t = (null !== e && e.apply(this, arguments)) || this
            return (
                (t.splitFgEventSegs = qt(Ol)),
                (t.splitBgEventSegs = qt(Ol)),
                (t.splitBusinessHourSegs = qt(Ol)),
                (t.splitNowIndicatorSegs = qt(Ol)),
                (t.splitDateSelectionSegs = qt(Ol)),
                (t.splitEventDrag = qt(Al)),
                (t.splitEventResize = qt(Al)),
                (t.rootElRef = ko()),
                (t.cellElRefs = new Fa()),
                t
            )
        }
        return (
            n(t, e),
            (t.prototype.render = function () {
                var e = this,
                    t = this.props,
                    n =
                        this.context.options.nowIndicator &&
                        t.slatCoords &&
                        t.slatCoords.safeComputeTop(t.nowDate),
                    r = t.cells.length,
                    o = this.splitFgEventSegs(t.fgEventSegs, r),
                    i = this.splitBgEventSegs(t.bgEventSegs, r),
                    a = this.splitBusinessHourSegs(t.businessHourSegs, r),
                    s = this.splitNowIndicatorSegs(t.nowIndicatorSegs, r),
                    l = this.splitDateSelectionSegs(t.dateSelectionSegs, r),
                    u = this.splitEventDrag(t.eventDrag, r),
                    c = this.splitEventResize(t.eventResize, r)
                return _o(
                    'div',
                    { className: 'fc-timegrid-cols', ref: this.rootElRef },
                    _o(
                        'table',
                        {
                            role: 'presentation',
                            style: {
                                minWidth: t.tableMinWidth,
                                width: t.clientWidth,
                            },
                        },
                        t.tableColGroupNode,
                        _o(
                            'tbody',
                            { role: 'presentation' },
                            _o(
                                'tr',
                                { role: 'row' },
                                t.axis &&
                                    _o(
                                        'td',
                                        {
                                            'aria-hidden': !0,
                                            className:
                                                'fc-timegrid-col fc-timegrid-axis',
                                        },
                                        _o(
                                            'div',
                                            {
                                                className:
                                                    'fc-timegrid-col-frame',
                                            },
                                            _o(
                                                'div',
                                                {
                                                    className:
                                                        'fc-timegrid-now-indicator-container',
                                                },
                                                'number' == typeof n &&
                                                    _o(
                                                        is,
                                                        {
                                                            isAxis: !0,
                                                            date: t.nowDate,
                                                        },
                                                        function (e, t, r, o) {
                                                            return _o(
                                                                'div',
                                                                {
                                                                    ref: e,
                                                                    className: [
                                                                        'fc-timegrid-now-indicator-arrow',
                                                                    ]
                                                                        .concat(
                                                                            t
                                                                        )
                                                                        .join(
                                                                            ' '
                                                                        ),
                                                                    style: {
                                                                        top: n,
                                                                    },
                                                                },
                                                                o
                                                            )
                                                        }
                                                    )
                                            )
                                        )
                                    ),
                                t.cells.map(function (n, r) {
                                    return _o(Zl, {
                                        key: n.key,
                                        elRef: e.cellElRefs.createRef(n.key),
                                        dateProfile: t.dateProfile,
                                        date: n.date,
                                        nowDate: t.nowDate,
                                        todayRange: t.todayRange,
                                        extraHookProps: n.extraHookProps,
                                        extraDataAttrs: n.extraDataAttrs,
                                        extraClassNames: n.extraClassNames,
                                        extraDateSpan: n.extraDateSpan,
                                        fgEventSegs: o[r],
                                        bgEventSegs: i[r],
                                        businessHourSegs: a[r],
                                        nowIndicatorSegs: s[r],
                                        dateSelectionSegs: l[r],
                                        eventDrag: u[r],
                                        eventResize: c[r],
                                        slatCoords: t.slatCoords,
                                        eventSelection: t.eventSelection,
                                        forPrint: t.forPrint,
                                    })
                                })
                            )
                        )
                    )
                )
            }),
            (t.prototype.componentDidMount = function () {
                this.updateCoords()
            }),
            (t.prototype.componentDidUpdate = function () {
                this.updateCoords()
            }),
            (t.prototype.updateCoords = function () {
                var e,
                    t = this.props
                t.onColCoords &&
                    null !== t.clientWidth &&
                    t.onColCoords(
                        new So(
                            this.rootElRef.current,
                            ((e = this.cellElRefs.currentMap),
                            t.cells.map(function (t) {
                                return e[t.key]
                            })),
                            !0,
                            !1
                        )
                    )
            }),
            t
        )
    })(Uo)
    var Jl = (function (e) {
        function t() {
            var t = (null !== e && e.apply(this, arguments)) || this
            return (
                (t.processSlotOptions = qt(Ql)),
                (t.state = { slatCoords: null }),
                (t.handleRootEl = function (e) {
                    e
                        ? t.context.registerInteractiveComponent(t, {
                              el: e,
                              isHitComboAllowed: t.props.isHitComboAllowed,
                          })
                        : t.context.unregisterInteractiveComponent(t)
                }),
                (t.handleScrollRequest = function (e) {
                    var n = t.props.onScrollTopRequest,
                        r = t.state.slatCoords
                    if (n && r) {
                        if (e.time) {
                            var o = r.computeTimeTop(e.time)
                            ;(o = Math.ceil(o)) && (o += 1), n(o)
                        }
                        return !0
                    }
                    return !1
                }),
                (t.handleColCoords = function (e) {
                    t.colCoords = e
                }),
                (t.handleSlatCoords = function (e) {
                    t.setState({ slatCoords: e }),
                        t.props.onSlatCoords && t.props.onSlatCoords(e)
                }),
                t
            )
        }
        return (
            n(t, e),
            (t.prototype.render = function () {
                var e = this.props,
                    t = this.state
                return _o(
                    'div',
                    {
                        className: 'fc-timegrid-body',
                        ref: this.handleRootEl,
                        style: {
                            width: e.clientWidth,
                            minWidth: e.tableMinWidth,
                        },
                    },
                    _o(Hl, {
                        axis: e.axis,
                        dateProfile: e.dateProfile,
                        slatMetas: e.slatMetas,
                        clientWidth: e.clientWidth,
                        minHeight: e.expandRows ? e.clientHeight : '',
                        tableMinWidth: e.tableMinWidth,
                        tableColGroupNode: e.axis ? e.tableColGroupNode : null,
                        onCoords: this.handleSlatCoords,
                    }),
                    _o($l, {
                        cells: e.cells,
                        axis: e.axis,
                        dateProfile: e.dateProfile,
                        businessHourSegs: e.businessHourSegs,
                        bgEventSegs: e.bgEventSegs,
                        fgEventSegs: e.fgEventSegs,
                        dateSelectionSegs: e.dateSelectionSegs,
                        eventSelection: e.eventSelection,
                        eventDrag: e.eventDrag,
                        eventResize: e.eventResize,
                        todayRange: e.todayRange,
                        nowDate: e.nowDate,
                        nowIndicatorSegs: e.nowIndicatorSegs,
                        clientWidth: e.clientWidth,
                        tableMinWidth: e.tableMinWidth,
                        tableColGroupNode: e.tableColGroupNode,
                        slatCoords: t.slatCoords,
                        onColCoords: this.handleColCoords,
                        forPrint: e.forPrint,
                    })
                )
            }),
            (t.prototype.componentDidMount = function () {
                this.scrollResponder = this.context.createScrollResponder(
                    this.handleScrollRequest
                )
            }),
            (t.prototype.componentDidUpdate = function (e) {
                this.scrollResponder.update(
                    e.dateProfile !== this.props.dateProfile
                )
            }),
            (t.prototype.componentWillUnmount = function () {
                this.scrollResponder.detach()
            }),
            (t.prototype.queryHit = function (e, t) {
                var n = this.context,
                    o = n.dateEnv,
                    i = n.options,
                    a = this.colCoords,
                    s = this.props.dateProfile,
                    l = this.state.slatCoords,
                    u = this.processSlotOptions(
                        this.props.slotDuration,
                        i.snapDuration
                    ),
                    c = u.snapDuration,
                    d = u.snapsPerSlot,
                    p = a.leftToIndex(e),
                    f = l.positions.topToIndex(t)
                if (null != p && null != f) {
                    var h = this.props.cells[p],
                        v = l.positions.tops[f],
                        g = l.positions.getHeight(f),
                        m = (t - v) / g,
                        y = f * d + Math.floor(m * d),
                        E = this.props.cells[p].date,
                        S = Ot(s.slotMinTime, At(c, y)),
                        b = o.add(E, S),
                        D = o.add(b, c)
                    return {
                        dateProfile: s,
                        dateSpan: r(
                            { range: { start: b, end: D }, allDay: !1 },
                            h.extraDateSpan
                        ),
                        dayEl: a.els[p],
                        rect: {
                            left: a.lefts[p],
                            right: a.rights[p],
                            top: v,
                            bottom: v + g,
                        },
                        layer: 0,
                    }
                }
                return null
            }),
            t
        )
    })(Bo)
    function Ql(e, t) {
        var n = t || e,
            r = Wt(e, n)
        return (
            null === r && ((n = e), (r = 1)),
            { snapDuration: n, snapsPerSlot: r }
        )
    }
    var eu = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.sliceRange = function (e, t) {
                    for (var n = [], r = 0; r < t.length; r += 1) {
                        var o = jn(e, t[r])
                        o &&
                            n.push({
                                start: o.start,
                                end: o.end,
                                isStart:
                                    o.start.valueOf() === e.start.valueOf(),
                                isEnd: o.end.valueOf() === e.end.valueOf(),
                                col: r,
                            })
                    }
                    return n
                }),
                t
            )
        })(xa),
        tu = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (
                    (t.buildDayRanges = qt(nu)),
                    (t.slicer = new eu()),
                    (t.timeColsRef = ko()),
                    t
                )
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this,
                        t = this.props,
                        n = this.context,
                        o = t.dateProfile,
                        i = t.dayTableModel,
                        a = n.options.nowIndicator,
                        s = this.buildDayRanges(i, o, n.dateEnv)
                    return _o(
                        Ca,
                        { unit: a ? 'minute' : 'day' },
                        function (l, u) {
                            return _o(
                                Jl,
                                r(
                                    { ref: e.timeColsRef },
                                    e.slicer.sliceProps(t, o, null, n, s),
                                    {
                                        forPrint: t.forPrint,
                                        axis: t.axis,
                                        dateProfile: o,
                                        slatMetas: t.slatMetas,
                                        slotDuration: t.slotDuration,
                                        cells: i.cells[0],
                                        tableColGroupNode: t.tableColGroupNode,
                                        tableMinWidth: t.tableMinWidth,
                                        clientWidth: t.clientWidth,
                                        clientHeight: t.clientHeight,
                                        expandRows: t.expandRows,
                                        nowDate: l,
                                        nowIndicatorSegs:
                                            a && e.slicer.sliceNowDate(l, n, s),
                                        todayRange: u,
                                        onScrollTopRequest:
                                            t.onScrollTopRequest,
                                        onSlatCoords: t.onSlatCoords,
                                    }
                                )
                            )
                        }
                    )
                }),
                t
            )
        })(Bo)
    function nu(e, t, n) {
        for (var r = [], o = 0, i = e.headerDates; o < i.length; o++) {
            var a = i[o]
            r.push({
                start: n.add(a, t.slotMinTime),
                end: n.add(a, t.slotMaxTime),
            })
        }
        return r
    }
    var ru = [
        { hours: 1 },
        { minutes: 30 },
        { minutes: 15 },
        { seconds: 30 },
        { seconds: 15 },
    ]
    function ou(e, t, n, r, o) {
        for (
            var i = new Date(0),
                a = e,
                s = Nt(0),
                l =
                    n ||
                    (function (e) {
                        var t, n, r
                        for (t = ru.length - 1; t >= 0; t -= 1)
                            if (null !== (r = Wt((n = Nt(ru[t])), e)) && r > 1)
                                return n
                        return e
                    })(r),
                u = [];
            Ut(a) < Ut(t);

        ) {
            var c = o.add(i, a),
                d = null !== Wt(s, l)
            u.push({
                date: c,
                time: a,
                key: c.toISOString(),
                isoTimeStr: zt(c),
                isLabeled: d,
            }),
                (a = Ot(a, r)),
                (s = Ot(s, r))
        }
        return u
    }
    var iu = (function (e) {
        function t() {
            var t = (null !== e && e.apply(this, arguments)) || this
            return (
                (t.buildTimeColsModel = qt(au)), (t.buildSlatMetas = qt(ou)), t
            )
        }
        return (
            n(t, e),
            (t.prototype.render = function () {
                var e = this,
                    t = this.context,
                    n = t.options,
                    o = t.dateEnv,
                    i = t.dateProfileGenerator,
                    a = this.props,
                    s = a.dateProfile,
                    l = this.buildTimeColsModel(s, i),
                    u = this.allDaySplitter.splitProps(a),
                    c = this.buildSlatMetas(
                        s.slotMinTime,
                        s.slotMaxTime,
                        n.slotLabelInterval,
                        n.slotDuration,
                        o
                    ),
                    d = n.dayMinWidth,
                    p = !d,
                    f = d,
                    h =
                        n.dayHeaders &&
                        _o(Ra, {
                            dates: l.headerDates,
                            dateProfile: s,
                            datesRepDistinctDays: !0,
                            renderIntro: p ? this.renderHeadAxis : null,
                        }),
                    v =
                        !1 !== n.allDaySlot &&
                        function (t) {
                            return _o(
                                Sl,
                                r(
                                    {},
                                    u.allDay,
                                    {
                                        dateProfile: s,
                                        dayTableModel: l,
                                        nextDayThreshold: n.nextDayThreshold,
                                        tableMinWidth: t.tableMinWidth,
                                        colGroupNode: t.tableColGroupNode,
                                        renderRowIntro: p
                                            ? e.renderTableRowAxis
                                            : null,
                                        showWeekNumbers: !1,
                                        expandRows: !1,
                                        headerAlignElRef: e.headerElRef,
                                        clientWidth: t.clientWidth,
                                        clientHeight: t.clientHeight,
                                        forPrint: a.forPrint,
                                    },
                                    e.getAllDayMaxEventProps()
                                )
                            )
                        },
                    g = function (t) {
                        return _o(
                            tu,
                            r({}, u.timed, {
                                dayTableModel: l,
                                dateProfile: s,
                                axis: p,
                                slotDuration: n.slotDuration,
                                slatMetas: c,
                                forPrint: a.forPrint,
                                tableColGroupNode: t.tableColGroupNode,
                                tableMinWidth: t.tableMinWidth,
                                clientWidth: t.clientWidth,
                                clientHeight: t.clientHeight,
                                onSlatCoords: e.handleSlatCoords,
                                expandRows: t.expandRows,
                                onScrollTopRequest: e.handleScrollTopRequest,
                            })
                        )
                    }
                return f
                    ? this.renderHScrollLayout(
                          h,
                          v,
                          g,
                          l.colCnt,
                          d,
                          c,
                          this.state.slatCoords
                      )
                    : this.renderSimpleLayout(h, v, g)
            }),
            t
        )
    })(Ml)
    function au(e, t) {
        var n = new Ta(e.renderRange, t)
        return new ka(n, !1)
    }
    var su = zo({
            initialView: 'timeGridWeek',
            optionRefiners: { allDaySlot: Boolean },
            views: {
                timeGrid: {
                    component: iu,
                    usesMinMaxTime: !0,
                    allDaySlot: !0,
                    slotDuration: '00:30:00',
                    slotEventOverlap: !0,
                },
                timeGridDay: { type: 'timeGrid', duration: { days: 1 } },
                timeGridWeek: { type: 'timeGrid', duration: { weeks: 1 } },
            },
        }),
        lu = (function (e) {
            function t() {
                var t = (null !== e && e.apply(this, arguments)) || this
                return (t.state = { textId: xe() }), t
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.context,
                        t = e.theme,
                        n = e.dateEnv,
                        o = e.options,
                        i = e.viewApi,
                        a = this.props,
                        s = a.cellId,
                        l = a.dayDate,
                        u = a.todayRange,
                        c = this.state.textId,
                        d = ro(l, u),
                        p = o.listDayFormat ? n.format(l, o.listDayFormat) : '',
                        f = o.listDaySideFormat
                            ? n.format(l, o.listDaySideFormat)
                            : '',
                        h = r(
                            {
                                date: n.toDate(l),
                                view: i,
                                textId: c,
                                text: p,
                                sideText: f,
                                navLinkAttrs: so(this.context, l),
                                sideNavLinkAttrs: so(
                                    this.context,
                                    l,
                                    'day',
                                    !1
                                ),
                            },
                            d
                        ),
                        v = ['fc-list-day'].concat(oo(d, t))
                    return _o(
                        Yo,
                        {
                            hookProps: h,
                            classNames: o.dayHeaderClassNames,
                            content: o.dayHeaderContent,
                            defaultContent: uu,
                            didMount: o.dayHeaderDidMount,
                            willUnmount: o.dayHeaderWillUnmount,
                        },
                        function (e, n, r, o) {
                            return _o(
                                'tr',
                                {
                                    ref: e,
                                    className: v.concat(n).join(' '),
                                    'data-date': Bt(l),
                                },
                                _o(
                                    'th',
                                    {
                                        scope: 'colgroup',
                                        colSpan: 3,
                                        id: s,
                                        'aria-labelledby': c,
                                    },
                                    _o(
                                        'div',
                                        {
                                            className:
                                                'fc-list-day-cushion ' +
                                                t.getClass('tableCellShaded'),
                                            ref: r,
                                        },
                                        o
                                    )
                                )
                            )
                        }
                    )
                }),
                t
            )
        })(Uo)
    function uu(e) {
        return _o(
            xo,
            null,
            e.text &&
                _o(
                    'a',
                    r(
                        { id: e.textId, className: 'fc-list-day-text' },
                        e.navLinkAttrs
                    ),
                    e.text
                ),
            e.sideText &&
                _o(
                    'a',
                    r(
                        {
                            'aria-hidden': !0,
                            className: 'fc-list-day-side-text',
                        },
                        e.sideNavLinkAttrs
                    ),
                    e.sideText
                )
        )
    }
    var cu = ln({ hour: 'numeric', minute: '2-digit', meridiem: 'short' }),
        du = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return (
                n(t, e),
                (t.prototype.render = function () {
                    var e = this.props,
                        t = this.context,
                        n = e.seg,
                        o = e.timeHeaderId,
                        i = e.eventHeaderId,
                        a = e.dateHeaderId,
                        s = t.options.eventTimeFormat || cu
                    return _o(
                        ns,
                        {
                            seg: n,
                            timeText: '',
                            disableDragging: !0,
                            disableResizing: !0,
                            defaultContent: function () {
                                return (function (e, t) {
                                    var n = cr(e, t)
                                    return _o(
                                        'a',
                                        r({}, n),
                                        e.eventRange.def.title
                                    )
                                })(n, t)
                            },
                            isPast: e.isPast,
                            isFuture: e.isFuture,
                            isToday: e.isToday,
                            isSelected: e.isSelected,
                            isDragging: e.isDragging,
                            isResizing: e.isResizing,
                            isDateSelecting: e.isDateSelecting,
                        },
                        function (e, r, l, u, c) {
                            return _o(
                                'tr',
                                {
                                    className: [
                                        'fc-list-event',
                                        c.event.url
                                            ? 'fc-event-forced-url'
                                            : '',
                                    ]
                                        .concat(r)
                                        .join(' '),
                                    ref: e,
                                },
                                (function (e, t, n, r, o) {
                                    var i = n.options
                                    if (!1 !== i.displayEventTime) {
                                        var a = e.eventRange.def,
                                            s = e.eventRange.instance,
                                            l = !1,
                                            u = void 0
                                        if (
                                            (a.allDay
                                                ? (l = !0)
                                                : Vn(e.eventRange.range)
                                                  ? e.isStart
                                                      ? (u = ar(
                                                            e,
                                                            t,
                                                            n,
                                                            null,
                                                            null,
                                                            s.range.start,
                                                            e.end
                                                        ))
                                                      : e.isEnd
                                                        ? (u = ar(
                                                              e,
                                                              t,
                                                              n,
                                                              null,
                                                              null,
                                                              e.start,
                                                              s.range.end
                                                          ))
                                                        : (l = !0)
                                                  : (u = ar(e, t, n)),
                                            l)
                                        ) {
                                            var c = {
                                                text: n.options.allDayText,
                                                view: n.viewApi,
                                            }
                                            return _o(
                                                Yo,
                                                {
                                                    hookProps: c,
                                                    classNames:
                                                        i.allDayClassNames,
                                                    content: i.allDayContent,
                                                    defaultContent: pu,
                                                    didMount: i.allDayDidMount,
                                                    willUnmount:
                                                        i.allDayWillUnmount,
                                                },
                                                function (e, t, n, i) {
                                                    return _o(
                                                        'td',
                                                        {
                                                            ref: e,
                                                            headers:
                                                                r + ' ' + o,
                                                            className: [
                                                                'fc-list-event-time',
                                                            ]
                                                                .concat(t)
                                                                .join(' '),
                                                        },
                                                        i
                                                    )
                                                }
                                            )
                                        }
                                        return _o(
                                            'td',
                                            { className: 'fc-list-event-time' },
                                            u
                                        )
                                    }
                                    return null
                                })(n, s, t, o, a),
                                _o(
                                    'td',
                                    {
                                        'aria-hidden': !0,
                                        className: 'fc-list-event-graphic',
                                    },
                                    _o('span', {
                                        className: 'fc-list-event-dot',
                                        style: {
                                            borderColor:
                                                c.borderColor ||
                                                c.backgroundColor,
                                        },
                                    })
                                ),
                                _o(
                                    'td',
                                    {
                                        ref: l,
                                        headers: i + ' ' + a,
                                        className: 'fc-list-event-title',
                                    },
                                    u
                                )
                            )
                        }
                    )
                }),
                t
            )
        })(Uo)
    function pu(e) {
        return e.text
    }
    var fu = (function (e) {
        function t() {
            var t = (null !== e && e.apply(this, arguments)) || this
            return (
                (t.computeDateVars = qt(vu)),
                (t.eventStoreToSegs = qt(t._eventStoreToSegs)),
                (t.state = {
                    timeHeaderId: xe(),
                    eventHeaderId: xe(),
                    dateHeaderIdRoot: xe(),
                }),
                (t.setRootEl = function (e) {
                    e
                        ? t.context.registerInteractiveComponent(t, { el: e })
                        : t.context.unregisterInteractiveComponent(t)
                }),
                t
            )
        }
        return (
            n(t, e),
            (t.prototype.render = function () {
                var e = this,
                    t = this.props,
                    n = this.context,
                    r = [
                        'fc-list',
                        n.theme.getClass('table'),
                        !1 !== n.options.stickyHeaderDates
                            ? 'fc-list-sticky'
                            : '',
                    ],
                    o = this.computeDateVars(t.dateProfile),
                    i = o.dayDates,
                    a = o.dayRanges,
                    s = this.eventStoreToSegs(t.eventStore, t.eventUiBases, a)
                return _o(
                    ti,
                    { viewSpec: n.viewSpec, elRef: this.setRootEl },
                    function (n, o) {
                        return _o(
                            'div',
                            { ref: n, className: r.concat(o).join(' ') },
                            _o(
                                Va,
                                {
                                    liquid: !t.isHeightAuto,
                                    overflowX: t.isHeightAuto
                                        ? 'visible'
                                        : 'hidden',
                                    overflowY: t.isHeightAuto
                                        ? 'visible'
                                        : 'auto',
                                },
                                s.length > 0
                                    ? e.renderSegList(s, i)
                                    : e.renderEmptyMessage()
                            )
                        )
                    }
                )
            }),
            (t.prototype.renderEmptyMessage = function () {
                var e = this.context,
                    t = e.options,
                    n = e.viewApi,
                    r = { text: t.noEventsText, view: n }
                return _o(
                    Yo,
                    {
                        hookProps: r,
                        classNames: t.noEventsClassNames,
                        content: t.noEventsContent,
                        defaultContent: hu,
                        didMount: t.noEventsDidMount,
                        willUnmount: t.noEventsWillUnmount,
                    },
                    function (e, t, n, r) {
                        return _o(
                            'div',
                            {
                                className: ['fc-list-empty']
                                    .concat(t)
                                    .join(' '),
                                ref: e,
                            },
                            _o(
                                'div',
                                { className: 'fc-list-empty-cushion', ref: n },
                                r
                            )
                        )
                    }
                )
            }),
            (t.prototype.renderSegList = function (e, t) {
                var n = this.context,
                    o = n.theme,
                    i = n.options,
                    a = this.state,
                    s = a.timeHeaderId,
                    l = a.eventHeaderId,
                    u = a.dateHeaderIdRoot,
                    c = (function (e) {
                        var t,
                            n,
                            r = []
                        for (t = 0; t < e.length; t += 1)
                            (
                                r[(n = e[t]).dayIndex] || (r[n.dayIndex] = [])
                            ).push(n)
                        return r
                    })(e)
                return _o(Ca, { unit: 'day' }, function (e, n) {
                    for (var a = [], d = 0; d < c.length; d += 1) {
                        var p = c[d]
                        if (p) {
                            var f = Bt(t[d]),
                                h = u + '-' + f
                            a.push(
                                _o(lu, {
                                    key: f,
                                    cellId: h,
                                    dayDate: t[d],
                                    todayRange: n,
                                })
                            )
                            for (
                                var v = 0, g = (p = tr(p, i.eventOrder));
                                v < g.length;
                                v++
                            ) {
                                var m = g[v]
                                a.push(
                                    _o(
                                        du,
                                        r(
                                            {
                                                key:
                                                    f +
                                                    ':' +
                                                    m.eventRange.instance
                                                        .instanceId,
                                                seg: m,
                                                isDragging: !1,
                                                isResizing: !1,
                                                isDateSelecting: !1,
                                                isSelected: !1,
                                                timeHeaderId: s,
                                                eventHeaderId: l,
                                                dateHeaderId: h,
                                            },
                                            sr(m, n, e)
                                        )
                                    )
                                )
                            }
                        }
                    }
                    return _o(
                        'table',
                        { className: 'fc-list-table ' + o.getClass('table') },
                        _o(
                            'thead',
                            null,
                            _o(
                                'tr',
                                null,
                                _o('th', { scope: 'col', id: s }, i.timeHint),
                                _o('th', { scope: 'col', 'aria-hidden': !0 }),
                                _o('th', { scope: 'col', id: l }, i.eventHint)
                            )
                        ),
                        _o('tbody', null, a)
                    )
                })
            }),
            (t.prototype._eventStoreToSegs = function (e, t, n) {
                return this.eventRangesToSegs(
                    Xn(
                        e,
                        t,
                        this.props.dateProfile.activeRange,
                        this.context.options.nextDayThreshold
                    ).fg,
                    n
                )
            }),
            (t.prototype.eventRangesToSegs = function (e, t) {
                for (var n = [], r = 0, o = e; r < o.length; r++) {
                    var i = o[r]
                    n.push.apply(n, this.eventRangeToSegs(i, t))
                }
                return n
            }),
            (t.prototype.eventRangeToSegs = function (e, t) {
                var n,
                    r,
                    o,
                    i = this.context.dateEnv,
                    a = this.context.options.nextDayThreshold,
                    s = e.range,
                    l = e.def.allDay,
                    u = []
                for (n = 0; n < t.length; n += 1)
                    if (
                        (r = jn(s, t[n])) &&
                        ((o = {
                            component: this,
                            eventRange: e,
                            start: r.start,
                            end: r.end,
                            isStart:
                                e.isStart &&
                                r.start.valueOf() === s.start.valueOf(),
                            isEnd:
                                e.isEnd && r.end.valueOf() === s.end.valueOf(),
                            dayIndex: n,
                        }),
                        u.push(o),
                        !o.isEnd &&
                            !l &&
                            n + 1 < t.length &&
                            s.end < i.add(t[n + 1].start, a))
                    ) {
                        ;(o.end = s.end), (o.isEnd = !0)
                        break
                    }
                return u
            }),
            t
        )
    })(Bo)
    function hu(e) {
        return e.text
    }
    function vu(e) {
        for (
            var t = lt(e.renderRange.start),
                n = e.renderRange.end,
                r = [],
                o = [];
            t < n;

        )
            r.push(t), o.push({ start: t, end: tt(t, 1) }), (t = tt(t, 1))
        return { dayDates: r, dayRanges: o }
    }
    function gu(e) {
        return !1 === e ? null : ln(e)
    }
    var mu = zo({
            optionRefiners: {
                listDayFormat: gu,
                listDaySideFormat: gu,
                noEventsClassNames: yn,
                noEventsContent: yn,
                noEventsDidMount: yn,
                noEventsWillUnmount: yn,
            },
            views: {
                list: {
                    component: fu,
                    buttonTextKey: 'list',
                    listDayFormat: {
                        month: 'long',
                        day: 'numeric',
                        year: 'numeric',
                    },
                },
                listDay: {
                    type: 'list',
                    duration: { days: 1 },
                    listDayFormat: { weekday: 'long' },
                },
                listWeek: {
                    type: 'list',
                    duration: { weeks: 1 },
                    listDayFormat: { weekday: 'long' },
                    listDaySideFormat: {
                        month: 'long',
                        day: 'numeric',
                        year: 'numeric',
                    },
                },
                listMonth: {
                    type: 'list',
                    duration: { month: 1 },
                    listDaySideFormat: { weekday: 'long' },
                },
                listYear: {
                    type: 'list',
                    duration: { year: 1 },
                    listDaySideFormat: { weekday: 'long' },
                },
            },
        }),
        yu = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return n(t, e), t
        })(wo)
    ;(yu.prototype.classes = {
        root: 'fc-theme-bootstrap',
        table: 'table-bordered',
        tableCellShaded: 'table-active',
        buttonGroup: 'btn-group',
        button: 'btn btn-primary',
        buttonActive: 'active',
        popover: 'popover',
        popoverHeader: 'popover-header',
        popoverContent: 'popover-body',
    }),
        (yu.prototype.baseIconClass = 'fa'),
        (yu.prototype.iconClasses = {
            close: 'fa-times',
            prev: 'fa-chevron-left',
            next: 'fa-chevron-right',
            prevYear: 'fa-angle-double-left',
            nextYear: 'fa-angle-double-right',
        }),
        (yu.prototype.rtlIconClasses = {
            prev: 'fa-chevron-right',
            next: 'fa-chevron-left',
            prevYear: 'fa-angle-double-right',
            nextYear: 'fa-angle-double-left',
        }),
        (yu.prototype.iconOverrideOption = 'bootstrapFontAwesome'),
        (yu.prototype.iconOverrideCustomButtonOption = 'bootstrapFontAwesome'),
        (yu.prototype.iconOverridePrefix = 'fa-')
    var Eu = zo({ themeClasses: { bootstrap: yu } }),
        Su = (function (e) {
            function t() {
                return (null !== e && e.apply(this, arguments)) || this
            }
            return n(t, e), t
        })(wo)
    ;(Su.prototype.classes = {
        root: 'fc-theme-bootstrap5',
        tableCellShaded: 'fc-theme-bootstrap5-shaded',
        buttonGroup: 'btn-group',
        button: 'btn btn-primary',
        buttonActive: 'active',
        popover: 'popover',
        popoverHeader: 'popover-header',
        popoverContent: 'popover-body',
    }),
        (Su.prototype.baseIconClass = 'bi'),
        (Su.prototype.iconClasses = {
            close: 'bi-x-lg',
            prev: 'bi-chevron-left',
            next: 'bi-chevron-right',
            prevYear: 'bi-chevron-double-left',
            nextYear: 'bi-chevron-double-right',
        }),
        (Su.prototype.rtlIconClasses = {
            prev: 'bi-chevron-right',
            next: 'bi-chevron-left',
            prevYear: 'bi-chevron-double-right',
            nextYear: 'bi-chevron-double-left',
        }),
        (Su.prototype.iconOverrideOption = 'buttonIcons'),
        (Su.prototype.iconOverrideCustomButtonOption = 'icon'),
        (Su.prototype.iconOverridePrefix = 'bi-')
    var bu = zo({ themeClasses: { bootstrap5: Su } }),
        Du = 'https://www.googleapis.com/calendar/v3/calendars'
    var Cu = zo({
        eventSourceDefs: [
            {
                parseMeta: function (e) {
                    var t = e.googleCalendarId
                    return (
                        !t &&
                            e.url &&
                            (t = (function (e) {
                                var t
                                if (
                                    /^[^/]+@([^/.]+\.)*(google|googlemail|gmail)\.com$/.test(
                                        e
                                    )
                                )
                                    return e
                                if (
                                    (t =
                                        /^https:\/\/www.googleapis.com\/calendar\/v3\/calendars\/([^/]*)/.exec(
                                            e
                                        )) ||
                                    (t =
                                        /^https?:\/\/www.google.com\/calendar\/feeds\/([^/]*)/.exec(
                                            e
                                        ))
                                )
                                    return decodeURIComponent(t[1])
                                return null
                            })(e.url)),
                        t
                            ? {
                                  googleCalendarId: t,
                                  googleCalendarApiKey: e.googleCalendarApiKey,
                                  googleCalendarApiBase:
                                      e.googleCalendarApiBase,
                                  extraParams: e.extraParams,
                              }
                            : null
                    )
                },
                fetch: function (e, t, n) {
                    var o = e.context,
                        i = o.dateEnv,
                        a = o.options,
                        s = e.eventSource.meta,
                        l = s.googleCalendarApiKey || a.googleCalendarApiKey
                    if (l) {
                        var u = (function (e) {
                                var t = e.googleCalendarApiBase
                                t || (t = Du)
                                return (
                                    t +
                                    '/' +
                                    encodeURIComponent(e.googleCalendarId) +
                                    '/events'
                                )
                            })(s),
                            c = s.extraParams,
                            d = 'function' == typeof c ? c() : c,
                            p = (function (e, t, n, o) {
                                var i, a, s
                                o.canComputeOffset
                                    ? ((a = o.formatIso(e.start)),
                                      (s = o.formatIso(e.end)))
                                    : ((a = tt(e.start, -1).toISOString()),
                                      (s = tt(e.end, 1).toISOString()))
                                ;(i = r(r({}, n || {}), {
                                    key: t,
                                    timeMin: a,
                                    timeMax: s,
                                    singleEvents: !0,
                                    maxResults: 9999,
                                })),
                                    'local' !== o.timeZone &&
                                        (i.timeZone = o.timeZone)
                                return i
                            })(e.range, l, d, i)
                        _i(
                            'GET',
                            u,
                            p,
                            function (e, r) {
                                var o, i
                                e.error
                                    ? n({
                                          message:
                                              'Google Calendar API: ' +
                                              e.error.message,
                                          errors: e.error.errors,
                                          xhr: r,
                                      })
                                    : t({
                                          rawEvents:
                                              ((o = e.items),
                                              (i = p.timeZone),
                                              o.map(function (e) {
                                                  return (function (e, t) {
                                                      var n = e.htmlLink || null
                                                      n &&
                                                          t &&
                                                          (n = (function (
                                                              e,
                                                              t
                                                          ) {
                                                              return e.replace(
                                                                  /(\?.*?)?(#|$)/,
                                                                  function (
                                                                      e,
                                                                      n,
                                                                      r
                                                                  ) {
                                                                      return (
                                                                          (n
                                                                              ? n +
                                                                                '&'
                                                                              : '?') +
                                                                          t +
                                                                          r
                                                                      )
                                                                  }
                                                              )
                                                          })(n, 'ctz=' + t))
                                                      return {
                                                          id: e.id,
                                                          title: e.summary,
                                                          start:
                                                              e.start
                                                                  .dateTime ||
                                                              e.start.date,
                                                          end:
                                                              e.end.dateTime ||
                                                              e.end.date,
                                                          url: n,
                                                          location: e.location,
                                                          description:
                                                              e.description,
                                                          attachments:
                                                              e.attachments ||
                                                              [],
                                                          extendedProps:
                                                              (
                                                                  e.extendedProperties ||
                                                                  {}
                                                              ).shared || {},
                                                      }
                                                  })(e, i)
                                              })),
                                          xhr: r,
                                      })
                            },
                            function (e, t) {
                                n({ message: e, xhr: t })
                            }
                        )
                    } else
                        n({
                            message:
                                'Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/',
                        })
                },
            },
        ],
        optionRefiners: { googleCalendarApiKey: String },
        eventSourceRefiners: {
            googleCalendarApiKey: String,
            googleCalendarId: String,
            googleCalendarApiBase: String,
            extraParams: yn,
        },
    })
    return (
        xi.push($s, Cl, su, mu, Eu, bu, Cu),
        (e.BASE_OPTION_DEFAULTS = cn),
        (e.BASE_OPTION_REFINERS = un),
        (e.BaseComponent = Uo),
        (e.BgEvent = ds),
        (e.BootstrapTheme = yu),
        (e.Calendar = Cs),
        (e.CalendarApi = kr),
        (e.CalendarContent = fa),
        (e.CalendarDataManager = Ni),
        (e.CalendarDataProvider = ji),
        (e.CalendarRoot = ga),
        (e.Component = Ro),
        (e.ContentHook = Xo),
        (e.CustomContentRenderContext = Zo),
        (e.DateComponent = Bo),
        (e.DateEnv = Lr),
        (e.DateProfileGenerator = ai),
        (e.DayCellContent = ss),
        (e.DayCellRoot = us),
        (e.DayGridView = bl),
        (e.DayHeader = Ra),
        (e.DaySeriesModel = Ta),
        (e.DayTable = Sl),
        (e.DayTableModel = ka),
        (e.DayTableSlicer = El),
        (e.DayTimeCols = tu),
        (e.DayTimeColsSlicer = eu),
        (e.DayTimeColsView = iu),
        (e.DelayedRunner = Mi),
        (e.Draggable = Zs),
        (e.ElementDragging = oa),
        (e.ElementScrollController = Do),
        (e.Emitter = Eo),
        (e.EventApi = xr),
        (e.EventRoot = ns),
        (e.EventSourceApi = ye),
        (e.FeaturefulElementDragging = Os),
        (e.Fragment = xo),
        (e.Interaction = ea),
        (e.ListView = fu),
        (e.MoreLinkRoot = ms),
        (e.MountHook = $o),
        (e.NamedTimeZoneImpl = Gi),
        (e.NowIndicatorRoot = is),
        (e.NowTimer = Ca),
        (e.PointerDragging = Ts),
        (e.PositionCache = So),
        (e.RefMap = Fa),
        (e.RenderHook = Yo),
        (e.ScrollController = bo),
        (e.ScrollResponder = Ho),
        (e.Scroller = Va),
        (e.SegHierarchy = qi),
        (e.SimpleScrollGrid = ts),
        (e.Slicer = xa),
        (e.Splitter = to),
        (e.StandardEvent = rs),
        (e.Table = ml),
        (e.TableDateCell = Sa),
        (e.TableDowCell = Da),
        (e.TableView = Js),
        (e.Theme = wo),
        (e.ThirdPartyDraggable = Ks),
        (e.TimeCols = Jl),
        (e.TimeColsSlatsCoords = Pl),
        (e.TimeColsView = Ml),
        (e.ViewApi = Cr),
        (e.ViewContextType = Oo),
        (e.ViewRoot = ti),
        (e.WeekNumberRoot = fs),
        (e.WindowScrollController = Co),
        (e.addDays = tt),
        (e.addDurations = Ot),
        (e.addMs = nt),
        (e.addWeeks = et),
        (e.allowContextMenu = ze),
        (e.allowSelection = Fe),
        (e.applyMutationToEventStore = Sr),
        (e.applyStyle = we),
        (e.applyStyleProp = Re),
        (e.asCleanDays = function (e) {
            return e.years || e.months || e.milliseconds ? 0 : e.days
        }),
        (e.asRoughMinutes = function (e) {
            return Ut(e) / 6e4
        }),
        (e.asRoughMs = Ut),
        (e.asRoughSeconds = function (e) {
            return Ut(e) / 1e3
        }),
        (e.binarySearch = Qi),
        (e.buildClassNameNormalizer = Jo),
        (e.buildDayRanges = nu),
        (e.buildDayTableModel = Dl),
        (e.buildEntryKey = Zi),
        (e.buildEventApis = Ir),
        (e.buildEventRangeKey = ur),
        (e.buildHashFromArray = function (e, t) {
            for (var n = {}, r = 0; r < e.length; r += 1) {
                var o = t(e[r], r)
                n[o[0]] = o[1]
            }
            return n
        }),
        (e.buildIsoString = Ft),
        (e.buildNavLinkAttrs = so),
        (e.buildSegCompareObj = nr),
        (e.buildSegTimeText = ar),
        (e.buildSlatMetas = ou),
        (e.buildTimeColsModel = au),
        (e.collectFromHash = kt),
        (e.combineEventUis = xn),
        (e.compareByFieldSpec = qe),
        (e.compareByFieldSpecs = Ge),
        (e.compareNumbers = Ke),
        (e.compareObjs = _t),
        (e.computeEarliestSegStart = Ss),
        (e.computeEdges = ho),
        (e.computeFallbackHeaderFormat = ma),
        (e.computeHeightAndMargins = function (e) {
            return (
                e.getBoundingClientRect().height +
                (function (e) {
                    var t = window.getComputedStyle(e)
                    return (
                        parseInt(t.marginTop, 10) + parseInt(t.marginBottom, 10)
                    )
                })(e)
            )
        }),
        (e.computeInnerRect = vo),
        (e.computeRect = go),
        (e.computeSegDraggable = rr),
        (e.computeSegEndResizable = ir),
        (e.computeSegStartResizable = or),
        (e.computeShrinkWidth = Ba),
        (e.computeSmallestCellWidth = Je),
        (e.computeVisibleDayRange = Wn),
        (e.config = ia),
        (e.constrainPoint = Kr),
        (e.createAriaClickAttrs = He),
        (e.createContext = Mo),
        (e.createDuration = Nt),
        (e.createElement = _o),
        (e.createEmptyEventStore = Dn),
        (e.createEventInstance = mt),
        (e.createEventUi = kn),
        (e.createFormatter = ln),
        (e.createPlugin = zo),
        (e.createPortal = Io),
        (e.createRef = ko),
        (e.diffDates = Fn),
        (e.diffDayAndTime = it),
        (e.diffDays = ot),
        (e.diffPoints = Jr),
        (e.diffWeeks = rt),
        (e.diffWholeDays = st),
        (e.diffWholeWeeks = at),
        (e.disableCursor = Ue),
        (e.elementClosest = Se),
        (e.elementMatches = be),
        (e.enableCursor = We),
        (e.eventTupleToStore = Sn),
        (e.filterEventStoreDefs = wn),
        (e.filterHash = St),
        (e.findDirectChildren = function (e, t) {
            for (
                var n = e instanceof HTMLElement ? [e] : e, r = [], o = 0;
                o < n.length;
                o += 1
            )
                for (var i = n[o].children, a = 0; a < i.length; a += 1) {
                    var s = i[a]
                    ;(t && !be(s, t)) || r.push(s)
                }
            return r
        }),
        (e.findElements = De),
        (e.flexibleCompare = Ye),
        (e.flushSync = Po),
        (e.formatDate = function (e, t) {
            void 0 === t && (t = {})
            var n = jr(t),
                r = ln(t),
                o = n.createMarkerMeta(e)
            return o ? n.format(o.marker, r, { forcedTzo: o.forcedTzo }) : ''
        }),
        (e.formatDayString = Bt),
        (e.formatIsoTimeString = zt),
        (e.formatRange = function (e, t, n) {
            var r = jr('object' == typeof n && n ? n : {}),
                o = ln(n),
                i = r.createMarkerMeta(e),
                a = r.createMarkerMeta(t)
            return i && a
                ? r.formatRange(i.marker, a.marker, o, {
                      forcedStartTzo: i.forcedTzo,
                      forcedEndTzo: a.forcedTzo,
                      isEndExclusive: n.isEndExclusive,
                      defaultSeparator: cn.defaultRangeSeparator,
                  })
                : ''
        }),
        (e.getAllowYScrolling = ja),
        (e.getCanVGrowWithinCell = Qr),
        (e.getClippingParents = mo),
        (e.getDateMeta = ro),
        (e.getDayClassNames = oo),
        (e.getDefaultEventEnd = Er),
        (e.getElRoot = Te),
        (e.getElSeg = Jn),
        (e.getEntrySpanEnd = Yi),
        (e.getEventClassNames = lr),
        (e.getEventTargetViaRoot = _e),
        (e.getIsRtlScrollbarOnLeft = co),
        (e.getRectCenter = $r),
        (e.getRelevantEvents = bn),
        (e.getScrollGridClassNames = Ka),
        (e.getScrollbarWidths = po),
        (e.getSectionClassNames = $a),
        (e.getSectionHasLiquidHeight = za),
        (e.getSegAnchorAttrs = cr),
        (e.getSegMeta = sr),
        (e.getSlotClassNames = function (e, t) {
            var n = ['fc-slot', 'fc-slot-' + Qe[e.dow]]
            return (
                e.isDisabled
                    ? n.push('fc-slot-disabled')
                    : (e.isToday &&
                          (n.push('fc-slot-today'),
                          n.push(t.getClass('today'))),
                      e.isPast && n.push('fc-slot-past'),
                      e.isFuture && n.push('fc-slot-future')),
                n
            )
        }),
        (e.getStickyFooterScrollbar = es),
        (e.getStickyHeaderDates = Qa),
        (e.getUnequalProps = Rt),
        (e.getUniqueDomId = xe),
        (e.globalLocales = Ur),
        (e.globalPlugins = xi),
        (e.greatestDurationDenominator = Vt),
        (e.groupIntersectingEntries = Xi),
        (e.guid = Le),
        (e.hasBgRendering = Kn),
        (e.hasShrinkWidth = Xa),
        (e.identity = yn),
        (e.interactionSettingsStore = ra),
        (e.interactionSettingsToStore = na),
        (e.intersectRanges = jn),
        (e.intersectRects = Xr),
        (e.intersectSpans = $i),
        (e.isArraysEqual = Gt),
        (e.isColPropsEqual = qa),
        (e.isDateSelectionValid = Pa),
        (e.isDateSpansEqual = fr),
        (e.isInt = $e),
        (e.isInteractionValid = Ia),
        (e.isMultiDayRange = Vn),
        (e.isPropsEqual = wt),
        (e.isPropsValid = Ha),
        (e.isValidDate = vt),
        (e.joinSpans = Ki),
        (e.listenBySelector = Ie),
        (e.mapHash = bt),
        (e.memoize = qt),
        (e.memoizeArraylike = function (e, t, n) {
            var r = this,
                o = [],
                i = []
            return function (a) {
                for (var s = o.length, l = a.length, u = 0; u < s; u += 1)
                    if (a[u]) {
                        if (!Gt(o[u], a[u])) {
                            n && n(i[u])
                            var c = e.apply(r, a[u])
                            ;(t && t(c, i[u])) || (i[u] = c)
                        }
                    } else n && n(i[u])
                for (; u < l; u += 1) i[u] = e.apply(r, a[u])
                return (o = a), i.splice(l), i
            }
        }),
        (e.memoizeHashlike = function (e, t, n) {
            var r = this,
                o = {},
                i = {}
            return function (a) {
                var s = {}
                for (var l in a)
                    if (i[l])
                        if (Gt(o[l], a[l])) s[l] = i[l]
                        else {
                            n && n(i[l])
                            var u = e.apply(r, a[l])
                            s[l] = t && t(u, i[l]) ? i[l] : u
                        }
                    else s[l] = e.apply(r, a[l])
                return (o = a), (i = s), s
            }
        }),
        (e.memoizeObjArg = Yt),
        (e.mergeEventStores = Cn),
        (e.multiplyDuration = At),
        (e.padStart = Ze),
        (e.parseBusinessHours = Yr),
        (e.parseClassNames = Rn),
        (e.parseDragMeta = sa),
        (e.parseEventDef = Ln),
        (e.parseFieldSpecs = je),
        (e.parseMarker = Ar),
        (e.pointInsideRect = Zr),
        (e.preventContextMenu = Be),
        (e.preventDefault = Me),
        (e.preventSelection = Ve),
        (e.rangeContainsMarker = Zn),
        (e.rangeContainsRange = Yn),
        (e.rangesEqual = Gn),
        (e.rangesIntersect = qn),
        (e.refineEventDef = On),
        (e.refineProps = mn),
        (e.removeElement = Ee),
        (e.removeExact = function (e, t) {
            for (var n = 0, r = 0; r < e.length; )
                e[r] === t ? (e.splice(r, 1), (n += 1)) : (r += 1)
            return n
        }),
        (e.render = To),
        (e.renderChunkContent = Ga),
        (e.renderFill = cs),
        (e.renderMicroColGroup = Ya),
        (e.renderScrollShim = Ja),
        (e.requestJson = _i),
        (e.sanitizeShrinkWidth = Za),
        (e.setElSeg = $n),
        (e.setRef = Fo),
        (e.sliceEventStore = Xn),
        (e.sliceEvents = function (e, t) {
            return Xn(
                e.eventStore,
                e.eventUiBases,
                e.dateProfile.activeRange,
                t ? e.nextDayThreshold : null
            ).fg
        }),
        (e.sortEventSegs = tr),
        (e.startOfDay = lt),
        (e.translateRect = function (e, t, n) {
            return {
                left: e.left + t,
                right: e.right + t,
                top: e.top + n,
                bottom: e.bottom + n,
            }
        }),
        (e.triggerDateSelect = mr),
        (e.unmountComponentAtNode = No),
        (e.unpromisify = yo),
        (e.version = '5.11.3'),
        (e.whenTransitionDone = Ne),
        (e.wholeDivideDurations = Wt),
        Object.defineProperty(e, '__esModule', { value: !0 }),
        e
    )
})({})
/*!
FullCalendar Core v6.1.5
Docs & License: https://fullcalendar.io
(c) 2023 Adam Shaw
*/
!(function (e) {
    'use strict'
    function t(e) {
        return 'Tag' === e || 'Monat' === e ? 'r' : 'Jahr' === e ? 's' : ''
    }
    function n(e) {
        return 'Tag' === e || 'Monat' === e ? 'r' : 'Jahr' === e ? 's' : ''
    }
    var o = [
        {
            code: 'af',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Vorige',
                next: 'Volgende',
                today: 'Vandag',
                year: 'Jaar',
                month: 'Maand',
                week: 'Week',
                day: 'Dag',
                list: 'Agenda',
            },
            allDayText: 'Heeldag',
            moreLinkText: 'Addisionele',
            noEventsText: 'Daar is geen gebeurtenisse nie',
        },
        {
            code: 'ar-dz',
            week: { dow: 0, doy: 4 },
            direction: 'rtl',
            buttonText: {
                prev: 'السابق',
                next: 'التالي',
                today: 'اليوم',
                year: 'سنة',
                month: 'شهر',
                week: 'أسبوع',
                day: 'يوم',
                list: 'أجندة',
            },
            weekText: 'أسبوع',
            allDayText: 'اليوم كله',
            moreLinkText: 'أخرى',
            noEventsText: 'أي أحداث لعرض',
        },
        {
            code: 'ar-kw',
            week: { dow: 0, doy: 12 },
            direction: 'rtl',
            buttonText: {
                prev: 'السابق',
                next: 'التالي',
                today: 'اليوم',
                year: 'سنة',
                month: 'شهر',
                week: 'أسبوع',
                day: 'يوم',
                list: 'أجندة',
            },
            weekText: 'أسبوع',
            allDayText: 'اليوم كله',
            moreLinkText: 'أخرى',
            noEventsText: 'أي أحداث لعرض',
        },
        {
            code: 'ar-ly',
            week: { dow: 6, doy: 12 },
            direction: 'rtl',
            buttonText: {
                prev: 'السابق',
                next: 'التالي',
                today: 'اليوم',
                year: 'سنة',
                month: 'شهر',
                week: 'أسبوع',
                day: 'يوم',
                list: 'أجندة',
            },
            weekText: 'أسبوع',
            allDayText: 'اليوم كله',
            moreLinkText: 'أخرى',
            noEventsText: 'أي أحداث لعرض',
        },
        {
            code: 'ar-ma',
            week: { dow: 6, doy: 12 },
            direction: 'rtl',
            buttonText: {
                prev: 'السابق',
                next: 'التالي',
                today: 'اليوم',
                year: 'سنة',
                month: 'شهر',
                week: 'أسبوع',
                day: 'يوم',
                list: 'أجندة',
            },
            weekText: 'أسبوع',
            allDayText: 'اليوم كله',
            moreLinkText: 'أخرى',
            noEventsText: 'أي أحداث لعرض',
        },
        {
            code: 'ar-sa',
            week: { dow: 0, doy: 6 },
            direction: 'rtl',
            buttonText: {
                prev: 'السابق',
                next: 'التالي',
                today: 'اليوم',
                year: 'سنة',
                month: 'شهر',
                week: 'أسبوع',
                day: 'يوم',
                list: 'أجندة',
            },
            weekText: 'أسبوع',
            allDayText: 'اليوم كله',
            moreLinkText: 'أخرى',
            noEventsText: 'أي أحداث لعرض',
        },
        {
            code: 'ar-tn',
            week: { dow: 1, doy: 4 },
            direction: 'rtl',
            buttonText: {
                prev: 'السابق',
                next: 'التالي',
                today: 'اليوم',
                year: 'سنة',
                month: 'شهر',
                week: 'أسبوع',
                day: 'يوم',
                list: 'أجندة',
            },
            weekText: 'أسبوع',
            allDayText: 'اليوم كله',
            moreLinkText: 'أخرى',
            noEventsText: 'أي أحداث لعرض',
        },
        {
            code: 'ar',
            week: { dow: 6, doy: 12 },
            direction: 'rtl',
            buttonText: {
                prev: 'السابق',
                next: 'التالي',
                today: 'اليوم',
                year: 'سنة',
                month: 'شهر',
                week: 'أسبوع',
                day: 'يوم',
                list: 'أجندة',
            },
            weekText: 'أسبوع',
            allDayText: 'اليوم كله',
            moreLinkText: 'أخرى',
            noEventsText: 'أي أحداث لعرض',
        },
        {
            code: 'az',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Əvvəl',
                next: 'Sonra',
                today: 'Bu Gün',
                year: 'Il',
                month: 'Ay',
                week: 'Həftə',
                day: 'Gün',
                list: 'Gündəm',
            },
            weekText: 'Həftə',
            allDayText: 'Bütün Gün',
            moreLinkText: (e) => '+ daha çox ' + e,
            noEventsText: 'Göstərmək üçün hadisə yoxdur',
        },
        {
            code: 'bg',
            week: { dow: 1, doy: 7 },
            buttonText: {
                prev: 'назад',
                next: 'напред',
                today: 'днес',
                year: 'година',
                month: 'Месец',
                week: 'Седмица',
                day: 'Ден',
                list: 'График',
            },
            allDayText: 'Цял ден',
            moreLinkText: (e) => '+още ' + e,
            noEventsText: 'Няма събития за показване',
        },
        {
            code: 'bn',
            week: { dow: 0, doy: 6 },
            buttonText: {
                prev: 'পেছনে',
                next: 'সামনে',
                today: 'আজ',
                year: 'বছর',
                month: 'মাস',
                week: 'সপ্তাহ',
                day: 'দিন',
                list: 'তালিকা',
            },
            weekText: 'সপ্তাহ',
            allDayText: 'সারাদিন',
            moreLinkText: (e) => '+অন্যান্য ' + e,
            noEventsText: 'কোনো ইভেন্ট নেই',
        },
        {
            code: 'bs',
            week: { dow: 1, doy: 7 },
            buttonText: {
                prev: 'Prošli',
                next: 'Sljedeći',
                today: 'Danas',
                year: 'Godina',
                month: 'Mjesec',
                week: 'Sedmica',
                day: 'Dan',
                list: 'Raspored',
            },
            weekText: 'Sed',
            allDayText: 'Cijeli dan',
            moreLinkText: (e) => '+ još ' + e,
            noEventsText: 'Nema događaja za prikazivanje',
        },
        {
            code: 'ca',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Anterior',
                next: 'Següent',
                today: 'Avui',
                year: 'Curs',
                month: 'Mes',
                week: 'Setmana',
                day: 'Dia',
                list: 'Agenda',
            },
            weekText: 'Set',
            allDayText: 'Tot el dia',
            moreLinkText: 'més',
            noEventsText: 'No hi ha esdeveniments per mostrar',
        },
        {
            code: 'cs',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Dříve',
                next: 'Později',
                today: 'Nyní',
                year: 'Rok',
                month: 'Měsíc',
                week: 'Týden',
                day: 'Den',
                list: 'Agenda',
            },
            weekText: 'Týd',
            allDayText: 'Celý den',
            moreLinkText: (e) => '+další: ' + e,
            noEventsText: 'Žádné akce k zobrazení',
        },
        {
            code: 'cy',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Blaenorol',
                next: 'Nesaf',
                today: 'Heddiw',
                year: 'Blwyddyn',
                month: 'Mis',
                week: 'Wythnos',
                day: 'Dydd',
                list: 'Rhestr',
            },
            weekText: 'Wythnos',
            allDayText: "Trwy'r dydd",
            moreLinkText: 'Mwy',
            noEventsText: 'Dim digwyddiadau',
        },
        {
            code: 'da',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Forrige',
                next: 'Næste',
                today: 'I dag',
                year: 'År',
                month: 'Måned',
                week: 'Uge',
                day: 'Dag',
                list: 'Agenda',
            },
            weekText: 'Uge',
            allDayText: 'Hele dagen',
            moreLinkText: 'flere',
            noEventsText: 'Ingen arrangementer at vise',
        },
        {
            code: 'de-at',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Zurück',
                next: 'Vor',
                today: 'Heute',
                year: 'Jahr',
                month: 'Monat',
                week: 'Woche',
                day: 'Tag',
                list: 'Terminübersicht',
            },
            weekText: 'KW',
            weekTextLong: 'Woche',
            allDayText: 'Ganztägig',
            moreLinkText: (e) => '+ weitere ' + e,
            noEventsText: 'Keine Ereignisse anzuzeigen',
            buttonHints: {
                prev: (e) => `Vorherige${t(e)} ${e}`,
                next: (e) => `Nächste${t(e)} ${e}`,
                today: (e) => ('Tag' === e ? 'Heute' : `Diese${t(e)} ${e}`),
            },
            viewHint: (e) =>
                e +
                ('Woche' === e ? 'n' : 'Monat' === e ? 's' : 'es') +
                'ansicht',
            navLinkHint: 'Gehe zu $0',
            moreLinkHint: (e) =>
                'Zeige ' +
                (1 === e ? 'ein weiteres Ereignis' : e + ' weitere Ereignisse'),
            closeHint: 'Schließen',
            timeHint: 'Uhrzeit',
            eventHint: 'Ereignis',
        },
        {
            code: 'de',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Zurück',
                next: 'Vor',
                today: 'Heute',
                year: 'Jahr',
                month: 'Monat',
                week: 'Woche',
                day: 'Tag',
                list: 'Terminübersicht',
            },
            weekText: 'KW',
            weekTextLong: 'Woche',
            allDayText: 'Ganztägig',
            moreLinkText: (e) => '+ weitere ' + e,
            noEventsText: 'Keine Ereignisse anzuzeigen',
            buttonHints: {
                prev: (e) => `Vorherige${n(e)} ${e}`,
                next: (e) => `Nächste${n(e)} ${e}`,
                today: (e) => ('Tag' === e ? 'Heute' : `Diese${n(e)} ${e}`),
            },
            viewHint: (e) =>
                e +
                ('Woche' === e ? 'n' : 'Monat' === e ? 's' : 'es') +
                'ansicht',
            navLinkHint: 'Gehe zu $0',
            moreLinkHint: (e) =>
                'Zeige ' +
                (1 === e ? 'ein weiteres Ereignis' : e + ' weitere Ereignisse'),
            closeHint: 'Schließen',
            timeHint: 'Uhrzeit',
            eventHint: 'Ereignis',
        },
        {
            code: 'el',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Προηγούμενος',
                next: 'Επόμενος',
                today: 'Σήμερα',
                year: 'Ετος',
                month: 'Μήνας',
                week: 'Εβδομάδα',
                day: 'Ημέρα',
                list: 'Ατζέντα',
            },
            weekText: 'Εβδ',
            allDayText: 'Ολοήμερο',
            moreLinkText: 'περισσότερα',
            noEventsText: 'Δεν υπάρχουν γεγονότα προς εμφάνιση',
        },
        {
            code: 'en-au',
            week: { dow: 1, doy: 4 },
            buttonHints: {
                prev: 'Previous $0',
                next: 'Next $0',
                today: 'This $0',
            },
            viewHint: '$0 view',
            navLinkHint: 'Go to $0',
            moreLinkHint: (e) => `Show ${e} more event${1 === e ? '' : 's'}`,
        },
        {
            code: 'en-gb',
            week: { dow: 1, doy: 4 },
            buttonHints: {
                prev: 'Previous $0',
                next: 'Next $0',
                today: 'This $0',
            },
            viewHint: '$0 view',
            navLinkHint: 'Go to $0',
            moreLinkHint: (e) => `Show ${e} more event${1 === e ? '' : 's'}`,
        },
        {
            code: 'en-nz',
            week: { dow: 1, doy: 4 },
            buttonHints: {
                prev: 'Previous $0',
                next: 'Next $0',
                today: 'This $0',
            },
            viewHint: '$0 view',
            navLinkHint: 'Go to $0',
            moreLinkHint: (e) => `Show ${e} more event${1 === e ? '' : 's'}`,
        },
        {
            code: 'eo',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Antaŭa',
                next: 'Sekva',
                today: 'Hodiaŭ',
                year: 'Jaro',
                month: 'Monato',
                week: 'Semajno',
                day: 'Tago',
                list: 'Tagordo',
            },
            weekText: 'Sm',
            allDayText: 'Tuta tago',
            moreLinkText: 'pli',
            noEventsText: 'Neniuj eventoj por montri',
        },
        {
            code: 'es',
            week: { dow: 0, doy: 6 },
            buttonText: {
                prev: 'Ant',
                next: 'Sig',
                today: 'Hoy',
                year: 'Año',
                month: 'Mes',
                week: 'Semana',
                day: 'Día',
                list: 'Agenda',
            },
            weekText: 'Sm',
            allDayText: 'Todo el día',
            moreLinkText: 'más',
            noEventsText: 'No hay eventos para mostrar',
        },
        {
            code: 'es',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Ant',
                next: 'Sig',
                today: 'Hoy',
                year: 'Año',
                month: 'Mes',
                week: 'Semana',
                day: 'Día',
                list: 'Agenda',
            },
            buttonHints: {
                prev: '$0 antes',
                next: '$0 siguiente',
                today: (e) =>
                    'Día' === e
                        ? 'Hoy'
                        : ('Semana' === e ? 'Esta' : 'Este') +
                          ' ' +
                          e.toLocaleLowerCase(),
            },
            viewHint: (e) =>
                'Vista ' +
                ('Semana' === e ? 'de la' : 'del') +
                ' ' +
                e.toLocaleLowerCase(),
            weekText: 'Sm',
            weekTextLong: 'Semana',
            allDayText: 'Todo el día',
            moreLinkText: 'más',
            moreLinkHint: (e) => `Mostrar ${e} eventos más`,
            noEventsText: 'No hay eventos para mostrar',
            navLinkHint: 'Ir al $0',
            closeHint: 'Cerrar',
            timeHint: 'La hora',
            eventHint: 'Evento',
        },
        {
            code: 'et',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Eelnev',
                next: 'Järgnev',
                today: 'Täna',
                year: 'Aasta',
                month: 'Kuu',
                week: 'Nädal',
                day: 'Päev',
                list: 'Päevakord',
            },
            weekText: 'näd',
            allDayText: 'Kogu päev',
            moreLinkText: (e) => '+ veel ' + e,
            noEventsText: 'Kuvamiseks puuduvad sündmused',
        },
        {
            code: 'eu',
            week: { dow: 1, doy: 7 },
            buttonText: {
                prev: 'Aur',
                next: 'Hur',
                today: 'Gaur',
                year: 'Urtea',
                month: 'Hilabetea',
                week: 'Astea',
                day: 'Eguna',
                list: 'Agenda',
            },
            weekText: 'As',
            allDayText: 'Egun osoa',
            moreLinkText: 'gehiago',
            noEventsText: 'Ez dago ekitaldirik erakusteko',
        },
        {
            code: 'fa',
            week: { dow: 6, doy: 12 },
            direction: 'rtl',
            buttonText: {
                prev: 'قبلی',
                next: 'بعدی',
                today: 'امروز',
                year: 'سال',
                month: 'ماه',
                week: 'هفته',
                day: 'روز',
                list: 'برنامه',
            },
            weekText: 'هف',
            allDayText: 'تمام روز',
            moreLinkText: (e) => 'بیش از ' + e,
            noEventsText: 'هیچ رویدادی به نمایش',
        },
        {
            code: 'fi',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Edellinen',
                next: 'Seuraava',
                today: 'Tänään',
                year: 'Vuosi',
                month: 'Kuukausi',
                week: 'Viikko',
                day: 'Päivä',
                list: 'Tapahtumat',
            },
            weekText: 'Vk',
            allDayText: 'Koko päivä',
            moreLinkText: 'lisää',
            noEventsText: 'Ei näytettäviä tapahtumia',
        },
        {
            code: 'fr',
            buttonText: {
                prev: 'Précédent',
                next: 'Suivant',
                today: "Aujourd'hui",
                year: 'Année',
                month: 'Mois',
                week: 'Semaine',
                day: 'Jour',
                list: 'Mon planning',
            },
            weekText: 'Sem.',
            allDayText: 'Toute la journée',
            moreLinkText: 'en plus',
            noEventsText: 'Aucun évènement à afficher',
        },
        {
            code: 'fr-ch',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Précédent',
                next: 'Suivant',
                today: 'Courant',
                year: 'Année',
                month: 'Mois',
                week: 'Semaine',
                day: 'Jour',
                list: 'Mon planning',
            },
            weekText: 'Sm',
            allDayText: 'Toute la journée',
            moreLinkText: 'en plus',
            noEventsText: 'Aucun évènement à afficher',
        },
        {
            code: 'fr',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Précédent',
                next: 'Suivant',
                today: "Aujourd'hui",
                year: 'Année',
                month: 'Mois',
                week: 'Semaine',
                day: 'Jour',
                list: 'Planning',
            },
            weekText: 'Sem.',
            weekTextLong: 'Semaine',
            allDayText: 'Toute la journée',
            moreLinkText: 'en plus',
            noEventsText: 'Aucun évènement à afficher',
        },
        {
            code: 'gl',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Ant',
                next: 'Seg',
                today: 'Hoxe',
                year: 'Ano',
                month: 'Mes',
                week: 'Semana',
                day: 'Día',
                list: 'Axenda',
            },
            buttonHints: {
                prev: '$0 antes',
                next: '$0 seguinte',
                today: (e) =>
                    'Día' === e
                        ? 'Hoxe'
                        : ('Semana' === e ? 'Esta' : 'Este') +
                          ' ' +
                          e.toLocaleLowerCase(),
            },
            viewHint: (e) =>
                'Vista ' +
                ('Semana' === e ? 'da' : 'do') +
                ' ' +
                e.toLocaleLowerCase(),
            weekText: 'Sm',
            weekTextLong: 'Semana',
            allDayText: 'Todo o día',
            moreLinkText: 'máis',
            moreLinkHint: (e) => `Amosar ${e} eventos máis`,
            noEventsText: 'Non hai eventos para amosar',
            navLinkHint: 'Ir ao $0',
            closeHint: 'Pechar',
            timeHint: 'A hora',
            eventHint: 'Evento',
        },
        {
            code: 'he',
            direction: 'rtl',
            buttonText: {
                prev: 'הקודם',
                next: 'הבא',
                today: 'היום',
                year: 'שנה',
                month: 'חודש',
                week: 'שבוע',
                day: 'יום',
                list: 'סדר יום',
            },
            allDayText: 'כל היום',
            moreLinkText: 'אחר',
            noEventsText: 'אין אירועים להצגה',
            weekText: 'שבוע',
        },
        {
            code: 'hi',
            week: { dow: 0, doy: 6 },
            buttonText: {
                prev: 'पिछला',
                next: 'अगला',
                today: 'आज',
                year: 'वर्ष',
                month: 'महीना',
                week: 'सप्ताह',
                day: 'दिन',
                list: 'कार्यसूची',
            },
            weekText: 'हफ्ता',
            allDayText: 'सभी दिन',
            moreLinkText: (e) => '+अधिक ' + e,
            noEventsText: 'कोई घटनाओं को प्रदर्शित करने के लिए',
        },
        {
            code: 'hr',
            week: { dow: 1, doy: 7 },
            buttonText: {
                prev: 'Prijašnji',
                next: 'Sljedeći',
                today: 'Danas',
                year: 'Godina',
                month: 'Mjesec',
                week: 'Tjedan',
                day: 'Dan',
                list: 'Raspored',
            },
            weekText: 'Tje',
            allDayText: 'Cijeli dan',
            moreLinkText: (e) => '+ još ' + e,
            noEventsText: 'Nema događaja za prikaz',
        },
        {
            code: 'hu',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'vissza',
                next: 'előre',
                today: 'ma',
                year: 'Év',
                month: 'Hónap',
                week: 'Hét',
                day: 'Nap',
                list: 'Lista',
            },
            weekText: 'Hét',
            allDayText: 'Egész nap',
            moreLinkText: 'további',
            noEventsText: 'Nincs megjeleníthető esemény',
        },
        {
            code: 'hy-am',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Նախորդ',
                next: 'Հաջորդ',
                today: 'Այսօր',
                year: 'Տարի',
                month: 'Ամիս',
                week: 'Շաբաթ',
                day: 'Օր',
                list: 'Օրվա ցուցակ',
            },
            weekText: 'Շաբ',
            allDayText: 'Ամբողջ օր',
            moreLinkText: (e) => '+ ևս ' + e,
            noEventsText: 'Բացակայում է իրադարձությունը ցուցադրելու',
        },
        {
            code: 'id',
            week: { dow: 1, doy: 7 },
            buttonText: {
                prev: 'mundur',
                next: 'maju',
                today: 'hari ini',
                year: 'Tahun',
                month: 'Bulan',
                week: 'Minggu',
                day: 'Hari',
                list: 'Agenda',
            },
            weekText: 'Mg',
            allDayText: 'Sehari penuh',
            moreLinkText: 'lebih',
            noEventsText: 'Tidak ada acara untuk ditampilkan',
        },
        {
            code: 'is',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Fyrri',
                next: 'Næsti',
                today: 'Í dag',
                year: 'Ár',
                month: 'Mánuður',
                week: 'Vika',
                day: 'Dagur',
                list: 'Dagskrá',
            },
            weekText: 'Vika',
            allDayText: 'Allan daginn',
            moreLinkText: 'meira',
            noEventsText: 'Engir viðburðir til að sýna',
        },
        {
            code: 'it',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Prec',
                next: 'Succ',
                today: 'Oggi',
                year: 'Anno',
                month: 'Mese',
                week: 'Settimana',
                day: 'Giorno',
                list: 'Agenda',
            },
            weekText: 'Sm',
            allDayText: 'Tutto il giorno',
            moreLinkText: (e) => '+altri ' + e,
            noEventsText: 'Non ci sono eventi da visualizzare',
        },
        {
            code: 'ja',
            buttonText: {
                prev: '前',
                next: '次',
                today: '今日',
                year: '年',
                month: '月',
                week: '週',
                day: '日',
                list: '予定リスト',
            },
            weekText: '週',
            allDayText: '終日',
            moreLinkText: (e) => '他 ' + e + ' 件',
            noEventsText: '表示する予定はありません',
        },
        {
            code: 'ka',
            week: { dow: 1, doy: 7 },
            buttonText: {
                prev: 'წინა',
                next: 'შემდეგი',
                today: 'დღეს',
                year: 'წელიწადი',
                month: 'თვე',
                week: 'კვირა',
                day: 'დღე',
                list: 'დღის წესრიგი',
            },
            weekText: 'კვ',
            allDayText: 'მთელი დღე',
            moreLinkText: (e) => '+ კიდევ ' + e,
            noEventsText: 'ღონისძიებები არ არის',
        },
        {
            code: 'kk',
            week: { dow: 1, doy: 7 },
            buttonText: {
                prev: 'Алдыңғы',
                next: 'Келесі',
                today: 'Бүгін',
                year: 'Жыл',
                month: 'Ай',
                week: 'Апта',
                day: 'Күн',
                list: 'Күн тәртібі',
            },
            weekText: 'Не',
            allDayText: 'Күні бойы',
            moreLinkText: (e) => '+ тағы ' + e,
            noEventsText: 'Көрсету үшін оқиғалар жоқ',
        },
        {
            code: 'km',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'មុន',
                next: 'បន្ទាប់',
                today: 'ថ្ងៃនេះ',
                year: 'ឆ្នាំ',
                month: 'ខែ',
                week: 'សប្តាហ៍',
                day: 'ថ្ងៃ',
                list: 'បញ្ជី',
            },
            weekText: 'សប្តាហ៍',
            allDayText: 'ពេញមួយថ្ងៃ',
            moreLinkText: 'ច្រើនទៀត',
            noEventsText: 'គ្មានព្រឹត្តិការណ៍ត្រូវបង្ហាញ',
        },
        {
            code: 'ko',
            buttonText: {
                prev: '이전달',
                next: '다음달',
                today: '오늘',
                year: '년도',
                month: '월',
                week: '주',
                day: '일',
                list: '일정목록',
            },
            weekText: '주',
            allDayText: '종일',
            moreLinkText: '개',
            noEventsText: '일정이 없습니다',
        },
        {
            code: 'ku',
            week: { dow: 6, doy: 12 },
            direction: 'rtl',
            buttonText: {
                prev: 'پێشتر',
                next: 'دواتر',
                today: 'ئەمڕو',
                year: 'ساڵ',
                month: 'مانگ',
                week: 'هەفتە',
                day: 'ڕۆژ',
                list: 'بەرنامە',
            },
            weekText: 'هەفتە',
            allDayText: 'هەموو ڕۆژەکە',
            moreLinkText: 'زیاتر',
            noEventsText: 'هیچ ڕووداوێك نیە',
        },
        {
            code: 'lb',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Zréck',
                next: 'Weider',
                today: 'Haut',
                year: 'Joer',
                month: 'Mount',
                week: 'Woch',
                day: 'Dag',
                list: 'Terminiwwersiicht',
            },
            weekText: 'W',
            allDayText: 'Ganzen Dag',
            moreLinkText: 'méi',
            noEventsText: 'Nee Evenementer ze affichéieren',
        },
        {
            code: 'lt',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Atgal',
                next: 'Pirmyn',
                today: 'Šiandien',
                year: 'Metai',
                month: 'Mėnuo',
                week: 'Savaitė',
                day: 'Diena',
                list: 'Darbotvarkė',
            },
            weekText: 'SAV',
            allDayText: 'Visą dieną',
            moreLinkText: 'daugiau',
            noEventsText: 'Nėra įvykių rodyti',
        },
        {
            code: 'lv',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Iepr.',
                next: 'Nāk.',
                today: 'Šodien',
                year: 'Gads',
                month: 'Mēnesis',
                week: 'Nedēļa',
                day: 'Diena',
                list: 'Dienas kārtība',
            },
            weekText: 'Ned.',
            allDayText: 'Visu dienu',
            moreLinkText: (e) => '+vēl ' + e,
            noEventsText: 'Nav notikumu',
        },
        {
            code: 'mk',
            buttonText: {
                prev: 'претходно',
                next: 'следно',
                today: 'Денес',
                year: 'година',
                month: 'Месец',
                week: 'Недела',
                day: 'Ден',
                list: 'График',
            },
            weekText: 'Сед',
            allDayText: 'Цел ден',
            moreLinkText: (e) => '+повеќе ' + e,
            noEventsText: 'Нема настани за прикажување',
        },
        {
            code: 'ms',
            week: { dow: 1, doy: 7 },
            buttonText: {
                prev: 'Sebelum',
                next: 'Selepas',
                today: 'hari ini',
                year: 'Tahun',
                month: 'Bulan',
                week: 'Minggu',
                day: 'Hari',
                list: 'Agenda',
            },
            weekText: 'Mg',
            allDayText: 'Sepanjang hari',
            moreLinkText: (e) => 'masih ada ' + e + ' acara',
            noEventsText: 'Tiada peristiwa untuk dipaparkan',
        },
        {
            code: 'nb',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Forrige',
                next: 'Neste',
                today: 'I dag',
                year: 'År',
                month: 'Måned',
                week: 'Uke',
                day: 'Dag',
                list: 'Agenda',
            },
            weekText: 'Uke',
            weekTextLong: 'Uke',
            allDayText: 'Hele dagen',
            moreLinkText: 'til',
            noEventsText: 'Ingen hendelser å vise',
            buttonHints: {
                prev: 'Forrige $0',
                next: 'Neste $0',
                today: 'Nåværende $0',
            },
            viewHint: '$0 visning',
            navLinkHint: 'Gå til $0',
            moreLinkHint: (e) => `Vis ${e} flere hendelse${1 === e ? '' : 'r'}`,
        },
        {
            code: 'ne',
            week: { dow: 7, doy: 1 },
            buttonText: {
                prev: 'अघिल्लो',
                next: 'अर्को',
                today: 'आज',
                year: 'वर्ष',
                month: 'महिना',
                week: 'हप्ता',
                day: 'दिन',
                list: 'सूची',
            },
            weekText: 'हप्ता',
            allDayText: 'दिनभरि',
            moreLinkText: 'थप लिंक',
            noEventsText: 'देखाउनको लागि कुनै घटनाहरू छैनन्',
        },
        {
            code: 'nl',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Vorige',
                next: 'Volgende',
                today: 'Vandaag',
                year: 'Jaar',
                month: 'Maand',
                week: 'Week',
                day: 'Dag',
                list: 'Agenda',
            },
            allDayText: 'Hele dag',
            moreLinkText: 'extra',
            noEventsText: 'Geen evenementen om te laten zien',
        },
        {
            code: 'nn',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Førre',
                next: 'Neste',
                today: 'I dag',
                year: 'År',
                month: 'Månad',
                week: 'Veke',
                day: 'Dag',
                list: 'Agenda',
            },
            weekText: 'Veke',
            allDayText: 'Heile dagen',
            moreLinkText: 'til',
            noEventsText: 'Ingen hendelser å vise',
        },
        {
            code: 'pl',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Poprzedni',
                next: 'Następny',
                today: 'Dziś',
                year: 'Rok',
                month: 'Miesiąc',
                week: 'Tydzień',
                day: 'Dzień',
                list: 'Plan dnia',
            },
            weekText: 'Tydz',
            allDayText: 'Cały dzień',
            moreLinkText: 'więcej',
            noEventsText: 'Brak wydarzeń do wyświetlenia',
        },
        {
            code: 'pt-br',
            buttonText: {
                prev: 'Anterior',
                next: 'Próximo',
                prevYear: 'Ano anterior',
                nextYear: 'Próximo ano',
                year: 'Ano',
                today: 'Hoje',
                month: 'Mês',
                week: 'Semana',
                day: 'Dia',
                list: 'Lista',
            },
            buttonHints: {
                prev: '$0 Anterior',
                next: 'Próximo $0',
                today: (e) =>
                    'Dia' === e
                        ? 'Hoje'
                        : ('Semana' === e ? 'Esta' : 'Este') +
                          ' ' +
                          e.toLocaleLowerCase(),
            },
            viewHint: (e) =>
                'Visualizar ' +
                ('Semana' === e ? 'a' : 'o') +
                ' ' +
                e.toLocaleLowerCase(),
            weekText: 'Sm',
            weekTextLong: 'Semana',
            allDayText: 'dia inteiro',
            moreLinkText: (e) => 'mais +' + e,
            moreLinkHint: (e) => `Mostrar mais ${e} eventos`,
            noEventsText: 'Não há eventos para mostrar',
            navLinkHint: 'Ir para $0',
            closeHint: 'Fechar',
            timeHint: 'A hora',
            eventHint: 'Evento',
        },
        {
            code: 'pt',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Anterior',
                next: 'Seguinte',
                today: 'Hoje',
                year: 'Ano',
                month: 'Mês',
                week: 'Semana',
                day: 'Dia',
                list: 'Agenda',
            },
            weekText: 'Sem',
            allDayText: 'Todo o dia',
            moreLinkText: 'mais',
            noEventsText: 'Não há eventos para mostrar',
        },
        {
            code: 'ro',
            week: { dow: 1, doy: 7 },
            buttonText: {
                prev: 'precedentă',
                next: 'următoare',
                today: 'Azi',
                year: 'An',
                month: 'Lună',
                week: 'Săptămână',
                day: 'Zi',
                list: 'Agendă',
            },
            weekText: 'Săpt',
            allDayText: 'Toată ziua',
            moreLinkText: (e) => '+alte ' + e,
            noEventsText: 'Nu există evenimente de afișat',
        },
        {
            code: 'ru',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Пред',
                next: 'След',
                today: 'Сегодня',
                year: 'Год',
                month: 'Месяц',
                week: 'Неделя',
                day: 'День',
                list: 'Повестка дня',
            },
            weekText: 'Нед',
            allDayText: 'Весь день',
            moreLinkText: (e) => '+ ещё ' + e,
            noEventsText: 'Нет событий для отображения',
        },
        {
            code: 'si-lk',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'පෙර',
                next: 'පසු',
                today: 'අද',
                year: 'අවුරුදු',
                month: 'මාසය',
                week: 'සතිය',
                day: 'දවස',
                list: 'ලැයිස්තුව',
            },
            weekText: 'සති',
            allDayText: 'සියලු',
            moreLinkText: 'තවත්',
            noEventsText: 'මුකුත් නැත',
        },
        {
            code: 'sk',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Predchádzajúci',
                next: 'Nasledujúci',
                today: 'Dnes',
                year: 'Rok',
                month: 'Mesiac',
                week: 'Týždeň',
                day: 'Deň',
                list: 'Rozvrh',
            },
            weekText: 'Ty',
            allDayText: 'Celý deň',
            moreLinkText: (e) => '+ďalšie: ' + e,
            noEventsText: 'Žiadne akcie na zobrazenie',
        },
        {
            code: 'sl',
            week: { dow: 1, doy: 7 },
            buttonText: {
                prev: 'Prejšnji',
                next: 'Naslednji',
                today: 'Trenutni',
                year: 'Leto',
                month: 'Mesec',
                week: 'Teden',
                day: 'Dan',
                list: 'Dnevni red',
            },
            weekText: 'Teden',
            allDayText: 'Ves dan',
            moreLinkText: 'več',
            noEventsText: 'Ni dogodkov za prikaz',
        },
        {
            code: 'sm',
            buttonText: {
                prev: 'Talu ai',
                next: 'Mulimuli atu',
                today: 'Aso nei',
                year: 'Tausaga',
                month: 'Masina',
                week: 'Vaiaso',
                day: 'Aso',
                list: 'Faasologa',
            },
            weekText: 'Vaiaso',
            allDayText: 'Aso atoa',
            moreLinkText: 'sili atu',
            noEventsText: 'Leai ni mea na tutupu',
        },
        {
            code: 'sq',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'mbrapa',
                next: 'Përpara',
                today: 'Sot',
                year: 'Viti',
                month: 'Muaj',
                week: 'Javë',
                day: 'Ditë',
                list: 'Listë',
            },
            weekText: 'Ja',
            allDayText: 'Gjithë ditën',
            moreLinkText: (e) => '+më tepër ' + e,
            noEventsText: 'Nuk ka evente për të shfaqur',
        },
        {
            code: 'sr-cyrl',
            week: { dow: 1, doy: 7 },
            buttonText: {
                prev: 'Претходна',
                next: 'следећи',
                today: 'Данас',
                year: 'Година',
                month: 'Месец',
                week: 'Недеља',
                day: 'Дан',
                list: 'Планер',
            },
            weekText: 'Сед',
            allDayText: 'Цео дан',
            moreLinkText: (e) => '+ још ' + e,
            noEventsText: 'Нема догађаја за приказ',
        },
        {
            code: 'sr',
            week: { dow: 1, doy: 7 },
            buttonText: {
                prev: 'Prethodna',
                next: 'Sledeći',
                today: 'Danas',
                year: 'Godina',
                month: 'Mеsеc',
                week: 'Nеdеlja',
                day: 'Dan',
                list: 'Planеr',
            },
            weekText: 'Sed',
            allDayText: 'Cеo dan',
            moreLinkText: (e) => '+ još ' + e,
            noEventsText: 'Nеma događaja za prikaz',
        },
        {
            code: 'sv',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Förra',
                next: 'Nästa',
                today: 'Idag',
                year: 'År',
                month: 'Månad',
                week: 'Vecka',
                day: 'Dag',
                list: 'Program',
            },
            buttonHints: {
                prev: (e) => 'Föregående ' + e.toLocaleLowerCase(),
                next: (e) => 'Nästa ' + e.toLocaleLowerCase(),
                today: (e) =>
                    ('Program' === e ? 'Detta' : 'Denna') +
                    ' ' +
                    e.toLocaleLowerCase(),
            },
            viewHint: '$0 vy',
            navLinkHint: 'Gå till $0',
            moreLinkHint: (e) =>
                `Visa ytterligare ${e} händelse${1 === e ? '' : 'r'}`,
            weekText: 'v.',
            weekTextLong: 'Vecka',
            allDayText: 'Heldag',
            moreLinkText: 'till',
            noEventsText: 'Inga händelser att visa',
            closeHint: 'Stäng',
            timeHint: 'Klockan',
            eventHint: 'Händelse',
        },
        {
            code: 'ta-in',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'முந்தைய',
                next: 'அடுத்தது',
                today: 'இன்று',
                year: 'ஆண்டு',
                month: 'மாதம்',
                week: 'வாரம்',
                day: 'நாள்',
                list: 'தினசரி அட்டவணை',
            },
            weekText: 'வாரம்',
            allDayText: 'நாள் முழுவதும்',
            moreLinkText: (e) => '+ மேலும் ' + e,
            noEventsText: 'காண்பிக்க நிகழ்வுகள் இல்லை',
        },
        {
            code: 'th',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'ก่อนหน้า',
                next: 'ถัดไป',
                prevYear: 'ปีก่อนหน้า',
                nextYear: 'ปีถัดไป',
                year: 'ปี',
                today: 'วันนี้',
                month: 'เดือน',
                week: 'สัปดาห์',
                day: 'วัน',
                list: 'กำหนดการ',
            },
            weekText: 'สัปดาห์',
            allDayText: 'ตลอดวัน',
            moreLinkText: 'เพิ่มเติม',
            noEventsText: 'ไม่มีกิจกรรมที่จะแสดง',
        },
        {
            code: 'tr',
            week: { dow: 1, doy: 7 },
            buttonText: {
                prev: 'geri',
                next: 'ileri',
                today: 'bugün',
                year: 'Yıl',
                month: 'Ay',
                week: 'Hafta',
                day: 'Gün',
                list: 'Ajanda',
            },
            weekText: 'Hf',
            allDayText: 'Tüm gün',
            moreLinkText: 'daha fazla',
            noEventsText: 'Gösterilecek etkinlik yok',
        },
        {
            code: 'ug',
            buttonText: {
                prev: 'ئالدىنقى',
                next: 'كېيىنكى',
                today: 'بۈگۈن',
                year: 'يىل',
                month: 'ئاي',
                week: 'ھەپتە',
                day: 'كۈن',
                list: 'كۈنتەرتىپ',
            },
            allDayText: 'پۈتۈن كۈن',
        },
        {
            code: 'uk',
            week: { dow: 1, doy: 7 },
            buttonText: {
                prev: 'Попередній',
                next: 'далі',
                today: 'Сьогодні',
                year: 'рік',
                month: 'Місяць',
                week: 'Тиждень',
                day: 'День',
                list: 'Порядок денний',
            },
            weekText: 'Тиж',
            allDayText: 'Увесь день',
            moreLinkText: (e) => '+ще ' + e + '...',
            noEventsText: 'Немає подій для відображення',
        },
        {
            code: 'uz-cy',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Олин',
                next: 'Кейин',
                today: 'Бугун',
                month: 'Ой',
                week: 'Ҳафта',
                day: 'Кун',
                list: 'Кун тартиби',
            },
            weekText: 'Ҳафта',
            allDayText: 'Кун бўйича',
            moreLinkText: (e) => '+ яна ' + e,
            noEventsText: 'Кўрсатиш учун воқеалар йўқ',
        },
        {
            code: 'uz',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Oldingi',
                next: 'Keyingi',
                today: 'Bugun',
                year: 'Yil',
                month: 'Oy',
                week: 'Xafta',
                day: 'Kun',
                list: 'Kun tartibi',
            },
            allDayText: "Kun bo'yi",
            moreLinkText: (e) => '+ yana ' + e,
            noEventsText: "Ko'rsatish uchun voqealar yo'q",
        },
        {
            code: 'vi',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: 'Trước',
                next: 'Tiếp',
                today: 'Hôm nay',
                year: 'Năm',
                month: 'Tháng',
                week: 'Tuần',
                day: 'Ngày',
                list: 'Lịch biểu',
            },
            weekText: 'Tu',
            allDayText: 'Cả ngày',
            moreLinkText: (e) => '+ thêm ' + e,
            noEventsText: 'Không có sự kiện để hiển thị',
        },
        {
            code: 'zh-cn',
            week: { dow: 1, doy: 4 },
            buttonText: {
                prev: '上月',
                next: '下月',
                today: '今天',
                year: '年',
                month: '月',
                week: '周',
                day: '日',
                list: '日程',
            },
            weekText: '周',
            allDayText: '全天',
            moreLinkText: (e) => '另外 ' + e + ' 个',
            noEventsText: '没有事件显示',
        },
        {
            code: 'zh-tw',
            buttonText: {
                prev: '上月',
                next: '下月',
                today: '今天',
                year: '年',
                month: '月',
                week: '週',
                day: '天',
                list: '活動列表',
            },
            weekText: '周',
            allDayText: '整天',
            moreLinkText: '顯示更多',
            noEventsText: '没有任何活動',
        },
    ]
    FullCalendar.globalLocales.push(...o)
})()

/* END fullcalendar */
/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/chart.js@4.3.0/dist/chart.umd.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
/*!
 * Chart.js v4.3.0
 * https://www.chartjs.org
 * (c) 2023 Chart.js Contributors
 * Released under the MIT License
 */
!(function (t, e) {
    'object' == typeof exports && 'undefined' != typeof module
        ? (module.exports = e())
        : 'function' == typeof define && define.amd
          ? define(e)
          : ((t =
                'undefined' != typeof globalThis
                    ? globalThis
                    : t || self).Chart = e())
})(this, function () {
    'use strict'
    var t = Object.freeze({
        __proto__: null,
        get Colors() {
            return Ko
        },
        get Decimation() {
            return Jo
        },
        get Filler() {
            return pa
        },
        get Legend() {
            return _a
        },
        get SubTitle() {
            return wa
        },
        get Title() {
            return va
        },
        get Tooltip() {
            return Va
        },
    })
    function e() {}
    const i = (() => {
        let t = 0
        return () => t++
    })()
    function s(t) {
        return null == t
    }
    function n(t) {
        if (Array.isArray && Array.isArray(t)) return !0
        const e = Object.prototype.toString.call(t)
        return '[object' === e.slice(0, 7) && 'Array]' === e.slice(-6)
    }
    function o(t) {
        return (
            null !== t &&
            '[object Object]' === Object.prototype.toString.call(t)
        )
    }
    function a(t) {
        return ('number' == typeof t || t instanceof Number) && isFinite(+t)
    }
    function r(t, e) {
        return a(t) ? t : e
    }
    function l(t, e) {
        return void 0 === t ? e : t
    }
    const h = (t, e) =>
            'string' == typeof t && t.endsWith('%')
                ? parseFloat(t) / 100
                : +t / e,
        c = (t, e) =>
            'string' == typeof t && t.endsWith('%')
                ? (parseFloat(t) / 100) * e
                : +t
    function d(t, e, i) {
        if (t && 'function' == typeof t.call) return t.apply(i, e)
    }
    function u(t, e, i, s) {
        let a, r, l
        if (n(t))
            if (((r = t.length), s))
                for (a = r - 1; a >= 0; a--) e.call(i, t[a], a)
            else for (a = 0; a < r; a++) e.call(i, t[a], a)
        else if (o(t))
            for (l = Object.keys(t), r = l.length, a = 0; a < r; a++)
                e.call(i, t[l[a]], l[a])
    }
    function f(t, e) {
        let i, s, n, o
        if (!t || !e || t.length !== e.length) return !1
        for (i = 0, s = t.length; i < s; ++i)
            if (
                ((n = t[i]),
                (o = e[i]),
                n.datasetIndex !== o.datasetIndex || n.index !== o.index)
            )
                return !1
        return !0
    }
    function g(t) {
        if (n(t)) return t.map(g)
        if (o(t)) {
            const e = Object.create(null),
                i = Object.keys(t),
                s = i.length
            let n = 0
            for (; n < s; ++n) e[i[n]] = g(t[i[n]])
            return e
        }
        return t
    }
    function p(t) {
        return -1 === ['__proto__', 'prototype', 'constructor'].indexOf(t)
    }
    function m(t, e, i, s) {
        if (!p(t)) return
        const n = e[t],
            a = i[t]
        o(n) && o(a) ? b(n, a, s) : (e[t] = g(a))
    }
    function b(t, e, i) {
        const s = n(e) ? e : [e],
            a = s.length
        if (!o(t)) return t
        const r = (i = i || {}).merger || m
        let l
        for (let e = 0; e < a; ++e) {
            if (((l = s[e]), !o(l))) continue
            const n = Object.keys(l)
            for (let e = 0, s = n.length; e < s; ++e) r(n[e], t, l, i)
        }
        return t
    }
    function x(t, e) {
        return b(t, e, { merger: _ })
    }
    function _(t, e, i) {
        if (!p(t)) return
        const s = e[t],
            n = i[t]
        o(s) && o(n)
            ? x(s, n)
            : Object.prototype.hasOwnProperty.call(e, t) || (e[t] = g(n))
    }
    const y = { '': (t) => t, x: (t) => t.x, y: (t) => t.y }
    function v(t) {
        const e = t.split('.'),
            i = []
        let s = ''
        for (const t of e)
            (s += t),
                s.endsWith('\\')
                    ? (s = s.slice(0, -1) + '.')
                    : (i.push(s), (s = ''))
        return i
    }
    function M(t, e) {
        const i =
            y[e] ||
            (y[e] = (function (t) {
                const e = v(t)
                return (t) => {
                    for (const i of e) {
                        if ('' === i) break
                        t = t && t[i]
                    }
                    return t
                }
            })(e))
        return i(t)
    }
    function w(t) {
        return t.charAt(0).toUpperCase() + t.slice(1)
    }
    const k = (t) => void 0 !== t,
        S = (t) => 'function' == typeof t,
        P = (t, e) => {
            if (t.size !== e.size) return !1
            for (const i of t) if (!e.has(i)) return !1
            return !0
        }
    function D(t) {
        return (
            'mouseup' === t.type ||
            'click' === t.type ||
            'contextmenu' === t.type
        )
    }
    const C = Math.PI,
        O = 2 * C,
        A = O + C,
        T = Number.POSITIVE_INFINITY,
        L = C / 180,
        E = C / 2,
        R = C / 4,
        I = (2 * C) / 3,
        z = Math.log10,
        F = Math.sign
    function V(t, e, i) {
        return Math.abs(t - e) < i
    }
    function B(t) {
        const e = Math.round(t)
        t = V(t, e, t / 1e3) ? e : t
        const i = Math.pow(10, Math.floor(z(t))),
            s = t / i
        return (s <= 1 ? 1 : s <= 2 ? 2 : s <= 5 ? 5 : 10) * i
    }
    function N(t) {
        const e = [],
            i = Math.sqrt(t)
        let s
        for (s = 1; s < i; s++) t % s == 0 && (e.push(s), e.push(t / s))
        return i === (0 | i) && e.push(i), e.sort((t, e) => t - e).pop(), e
    }
    function W(t) {
        return !isNaN(parseFloat(t)) && isFinite(t)
    }
    function H(t, e) {
        const i = Math.round(t)
        return i - e <= t && i + e >= t
    }
    function j(t, e, i) {
        let s, n, o
        for (s = 0, n = t.length; s < n; s++)
            (o = t[s][i]),
                isNaN(o) ||
                    ((e.min = Math.min(e.min, o)), (e.max = Math.max(e.max, o)))
    }
    function $(t) {
        return t * (C / 180)
    }
    function Y(t) {
        return t * (180 / C)
    }
    function U(t) {
        if (!a(t)) return
        let e = 1,
            i = 0
        for (; Math.round(t * e) / e !== t; ) (e *= 10), i++
        return i
    }
    function X(t, e) {
        const i = e.x - t.x,
            s = e.y - t.y,
            n = Math.sqrt(i * i + s * s)
        let o = Math.atan2(s, i)
        return o < -0.5 * C && (o += O), { angle: o, distance: n }
    }
    function q(t, e) {
        return Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2))
    }
    function K(t, e) {
        return ((t - e + A) % O) - C
    }
    function G(t) {
        return ((t % O) + O) % O
    }
    function Z(t, e, i, s) {
        const n = G(t),
            o = G(e),
            a = G(i),
            r = G(o - n),
            l = G(a - n),
            h = G(n - o),
            c = G(n - a)
        return n === o || n === a || (s && o === a) || (r > l && h < c)
    }
    function J(t, e, i) {
        return Math.max(e, Math.min(i, t))
    }
    function Q(t) {
        return J(t, -32768, 32767)
    }
    function tt(t, e, i, s = 1e-6) {
        return t >= Math.min(e, i) - s && t <= Math.max(e, i) + s
    }
    function et(t, e, i) {
        i = i || ((i) => t[i] < e)
        let s,
            n = t.length - 1,
            o = 0
        for (; n - o > 1; ) (s = (o + n) >> 1), i(s) ? (o = s) : (n = s)
        return { lo: o, hi: n }
    }
    const it = (t, e, i, s) =>
            et(
                t,
                i,
                s
                    ? (s) => {
                          const n = t[s][e]
                          return n < i || (n === i && t[s + 1][e] === i)
                      }
                    : (s) => t[s][e] < i
            ),
        st = (t, e, i) => et(t, i, (s) => t[s][e] >= i)
    function nt(t, e, i) {
        let s = 0,
            n = t.length
        for (; s < n && t[s] < e; ) s++
        for (; n > s && t[n - 1] > i; ) n--
        return s > 0 || n < t.length ? t.slice(s, n) : t
    }
    const ot = ['push', 'pop', 'shift', 'splice', 'unshift']
    function at(t, e) {
        t._chartjs
            ? t._chartjs.listeners.push(e)
            : (Object.defineProperty(t, '_chartjs', {
                  configurable: !0,
                  enumerable: !1,
                  value: { listeners: [e] },
              }),
              ot.forEach((e) => {
                  const i = '_onData' + w(e),
                      s = t[e]
                  Object.defineProperty(t, e, {
                      configurable: !0,
                      enumerable: !1,
                      value(...e) {
                          const n = s.apply(this, e)
                          return (
                              t._chartjs.listeners.forEach((t) => {
                                  'function' == typeof t[i] && t[i](...e)
                              }),
                              n
                          )
                      },
                  })
              }))
    }
    function rt(t, e) {
        const i = t._chartjs
        if (!i) return
        const s = i.listeners,
            n = s.indexOf(e)
        ;-1 !== n && s.splice(n, 1),
            s.length > 0 ||
                (ot.forEach((e) => {
                    delete t[e]
                }),
                delete t._chartjs)
    }
    function lt(t) {
        const e = new Set(t)
        return e.size === t.length ? t : Array.from(e)
    }
    const ht =
        'undefined' == typeof window
            ? function (t) {
                  return t()
              }
            : window.requestAnimationFrame
    function ct(t, e) {
        let i = [],
            s = !1
        return function (...n) {
            ;(i = n),
                s ||
                    ((s = !0),
                    ht.call(window, () => {
                        ;(s = !1), t.apply(e, i)
                    }))
        }
    }
    function dt(t, e) {
        let i
        return function (...s) {
            return (
                e
                    ? (clearTimeout(i), (i = setTimeout(t, e, s)))
                    : t.apply(this, s),
                e
            )
        }
    }
    const ut = (t) =>
            'start' === t ? 'left' : 'end' === t ? 'right' : 'center',
        ft = (t, e, i) => ('start' === t ? e : 'end' === t ? i : (e + i) / 2),
        gt = (t, e, i, s) =>
            t === (s ? 'left' : 'right') ? i : 'center' === t ? (e + i) / 2 : e
    function pt(t, e, i) {
        const s = e.length
        let n = 0,
            o = s
        if (t._sorted) {
            const { iScale: a, _parsed: r } = t,
                l = a.axis,
                {
                    min: h,
                    max: c,
                    minDefined: d,
                    maxDefined: u,
                } = a.getUserBounds()
            d &&
                (n = J(
                    Math.min(
                        it(r, a.axis, h).lo,
                        i ? s : it(e, l, a.getPixelForValue(h)).lo
                    ),
                    0,
                    s - 1
                )),
                (o = u
                    ? J(
                          Math.max(
                              it(r, a.axis, c, !0).hi + 1,
                              i ? 0 : it(e, l, a.getPixelForValue(c), !0).hi + 1
                          ),
                          n,
                          s
                      ) - n
                    : s - n)
        }
        return { start: n, count: o }
    }
    function mt(t) {
        const { xScale: e, yScale: i, _scaleRanges: s } = t,
            n = { xmin: e.min, xmax: e.max, ymin: i.min, ymax: i.max }
        if (!s) return (t._scaleRanges = n), !0
        const o =
            s.xmin !== e.min ||
            s.xmax !== e.max ||
            s.ymin !== i.min ||
            s.ymax !== i.max
        return Object.assign(s, n), o
    }
    class bt {
        constructor() {
            ;(this._request = null),
                (this._charts = new Map()),
                (this._running = !1),
                (this._lastDate = void 0)
        }
        _notify(t, e, i, s) {
            const n = e.listeners[s],
                o = e.duration
            n.forEach((s) =>
                s({
                    chart: t,
                    initial: e.initial,
                    numSteps: o,
                    currentStep: Math.min(i - e.start, o),
                })
            )
        }
        _refresh() {
            this._request ||
                ((this._running = !0),
                (this._request = ht.call(window, () => {
                    this._update(),
                        (this._request = null),
                        this._running && this._refresh()
                })))
        }
        _update(t = Date.now()) {
            let e = 0
            this._charts.forEach((i, s) => {
                if (!i.running || !i.items.length) return
                const n = i.items
                let o,
                    a = n.length - 1,
                    r = !1
                for (; a >= 0; --a)
                    (o = n[a]),
                        o._active
                            ? (o._total > i.duration && (i.duration = o._total),
                              o.tick(t),
                              (r = !0))
                            : ((n[a] = n[n.length - 1]), n.pop())
                r && (s.draw(), this._notify(s, i, t, 'progress')),
                    n.length ||
                        ((i.running = !1),
                        this._notify(s, i, t, 'complete'),
                        (i.initial = !1)),
                    (e += n.length)
            }),
                (this._lastDate = t),
                0 === e && (this._running = !1)
        }
        _getAnims(t) {
            const e = this._charts
            let i = e.get(t)
            return (
                i ||
                    ((i = {
                        running: !1,
                        initial: !0,
                        items: [],
                        listeners: { complete: [], progress: [] },
                    }),
                    e.set(t, i)),
                i
            )
        }
        listen(t, e, i) {
            this._getAnims(t).listeners[e].push(i)
        }
        add(t, e) {
            e && e.length && this._getAnims(t).items.push(...e)
        }
        has(t) {
            return this._getAnims(t).items.length > 0
        }
        start(t) {
            const e = this._charts.get(t)
            e &&
                ((e.running = !0),
                (e.start = Date.now()),
                (e.duration = e.items.reduce(
                    (t, e) => Math.max(t, e._duration),
                    0
                )),
                this._refresh())
        }
        running(t) {
            if (!this._running) return !1
            const e = this._charts.get(t)
            return !!(e && e.running && e.items.length)
        }
        stop(t) {
            const e = this._charts.get(t)
            if (!e || !e.items.length) return
            const i = e.items
            let s = i.length - 1
            for (; s >= 0; --s) i[s].cancel()
            ;(e.items = []), this._notify(t, e, Date.now(), 'complete')
        }
        remove(t) {
            return this._charts.delete(t)
        }
    }
    var xt = new bt()
    /*!
     * @kurkle/color v0.3.2
     * https://github.com/kurkle/color#readme
     * (c) 2023 Jukka Kurkela
     * Released under the MIT License
     */ function _t(t) {
        return (t + 0.5) | 0
    }
    const yt = (t, e, i) => Math.max(Math.min(t, i), e)
    function vt(t) {
        return yt(_t(2.55 * t), 0, 255)
    }
    function Mt(t) {
        return yt(_t(255 * t), 0, 255)
    }
    function wt(t) {
        return yt(_t(t / 2.55) / 100, 0, 1)
    }
    function kt(t) {
        return yt(_t(100 * t), 0, 100)
    }
    const St = {
            0: 0,
            1: 1,
            2: 2,
            3: 3,
            4: 4,
            5: 5,
            6: 6,
            7: 7,
            8: 8,
            9: 9,
            A: 10,
            B: 11,
            C: 12,
            D: 13,
            E: 14,
            F: 15,
            a: 10,
            b: 11,
            c: 12,
            d: 13,
            e: 14,
            f: 15,
        },
        Pt = [...'0123456789ABCDEF'],
        Dt = (t) => Pt[15 & t],
        Ct = (t) => Pt[(240 & t) >> 4] + Pt[15 & t],
        Ot = (t) => (240 & t) >> 4 == (15 & t)
    function At(t) {
        var e = ((t) => Ot(t.r) && Ot(t.g) && Ot(t.b) && Ot(t.a))(t) ? Dt : Ct
        return t
            ? '#' +
                  e(t.r) +
                  e(t.g) +
                  e(t.b) +
                  ((t, e) => (t < 255 ? e(t) : ''))(t.a, e)
            : void 0
    }
    const Tt =
        /^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/
    function Lt(t, e, i) {
        const s = e * Math.min(i, 1 - i),
            n = (e, n = (e + t / 30) % 12) =>
                i - s * Math.max(Math.min(n - 3, 9 - n, 1), -1)
        return [n(0), n(8), n(4)]
    }
    function Et(t, e, i) {
        const s = (s, n = (s + t / 60) % 6) =>
            i - i * e * Math.max(Math.min(n, 4 - n, 1), 0)
        return [s(5), s(3), s(1)]
    }
    function Rt(t, e, i) {
        const s = Lt(t, 1, 0.5)
        let n
        for (
            e + i > 1 && ((n = 1 / (e + i)), (e *= n), (i *= n)), n = 0;
            n < 3;
            n++
        )
            (s[n] *= 1 - e - i), (s[n] += e)
        return s
    }
    function It(t) {
        const e = t.r / 255,
            i = t.g / 255,
            s = t.b / 255,
            n = Math.max(e, i, s),
            o = Math.min(e, i, s),
            a = (n + o) / 2
        let r, l, h
        return (
            n !== o &&
                ((h = n - o),
                (l = a > 0.5 ? h / (2 - n - o) : h / (n + o)),
                (r = (function (t, e, i, s, n) {
                    return t === n
                        ? (e - i) / s + (e < i ? 6 : 0)
                        : e === n
                          ? (i - t) / s + 2
                          : (t - e) / s + 4
                })(e, i, s, h, n)),
                (r = 60 * r + 0.5)),
            [0 | r, l || 0, a]
        )
    }
    function zt(t, e, i, s) {
        return (Array.isArray(e) ? t(e[0], e[1], e[2]) : t(e, i, s)).map(Mt)
    }
    function Ft(t, e, i) {
        return zt(Lt, t, e, i)
    }
    function Vt(t) {
        return ((t % 360) + 360) % 360
    }
    function Bt(t) {
        const e = Tt.exec(t)
        let i,
            s = 255
        if (!e) return
        e[5] !== i && (s = e[6] ? vt(+e[5]) : Mt(+e[5]))
        const n = Vt(+e[2]),
            o = +e[3] / 100,
            a = +e[4] / 100
        return (
            (i =
                'hwb' === e[1]
                    ? (function (t, e, i) {
                          return zt(Rt, t, e, i)
                      })(n, o, a)
                    : 'hsv' === e[1]
                      ? (function (t, e, i) {
                            return zt(Et, t, e, i)
                        })(n, o, a)
                      : Ft(n, o, a)),
            { r: i[0], g: i[1], b: i[2], a: s }
        )
    }
    const Nt = {
            x: 'dark',
            Z: 'light',
            Y: 're',
            X: 'blu',
            W: 'gr',
            V: 'medium',
            U: 'slate',
            A: 'ee',
            T: 'ol',
            S: 'or',
            B: 'ra',
            C: 'lateg',
            D: 'ights',
            R: 'in',
            Q: 'turquois',
            E: 'hi',
            P: 'ro',
            O: 'al',
            N: 'le',
            M: 'de',
            L: 'yello',
            F: 'en',
            K: 'ch',
            G: 'arks',
            H: 'ea',
            I: 'ightg',
            J: 'wh',
        },
        Wt = {
            OiceXe: 'f0f8ff',
            antiquewEte: 'faebd7',
            aqua: 'ffff',
            aquamarRe: '7fffd4',
            azuY: 'f0ffff',
            beige: 'f5f5dc',
            bisque: 'ffe4c4',
            black: '0',
            blanKedOmond: 'ffebcd',
            Xe: 'ff',
            XeviTet: '8a2be2',
            bPwn: 'a52a2a',
            burlywood: 'deb887',
            caMtXe: '5f9ea0',
            KartYuse: '7fff00',
            KocTate: 'd2691e',
            cSO: 'ff7f50',
            cSnflowerXe: '6495ed',
            cSnsilk: 'fff8dc',
            crimson: 'dc143c',
            cyan: 'ffff',
            xXe: '8b',
            xcyan: '8b8b',
            xgTMnPd: 'b8860b',
            xWay: 'a9a9a9',
            xgYF: '6400',
            xgYy: 'a9a9a9',
            xkhaki: 'bdb76b',
            xmagFta: '8b008b',
            xTivegYF: '556b2f',
            xSange: 'ff8c00',
            xScEd: '9932cc',
            xYd: '8b0000',
            xsOmon: 'e9967a',
            xsHgYF: '8fbc8f',
            xUXe: '483d8b',
            xUWay: '2f4f4f',
            xUgYy: '2f4f4f',
            xQe: 'ced1',
            xviTet: '9400d3',
            dAppRk: 'ff1493',
            dApskyXe: 'bfff',
            dimWay: '696969',
            dimgYy: '696969',
            dodgerXe: '1e90ff',
            fiYbrick: 'b22222',
            flSOwEte: 'fffaf0',
            foYstWAn: '228b22',
            fuKsia: 'ff00ff',
            gaRsbSo: 'dcdcdc',
            ghostwEte: 'f8f8ff',
            gTd: 'ffd700',
            gTMnPd: 'daa520',
            Way: '808080',
            gYF: '8000',
            gYFLw: 'adff2f',
            gYy: '808080',
            honeyMw: 'f0fff0',
            hotpRk: 'ff69b4',
            RdianYd: 'cd5c5c',
            Rdigo: '4b0082',
            ivSy: 'fffff0',
            khaki: 'f0e68c',
            lavFMr: 'e6e6fa',
            lavFMrXsh: 'fff0f5',
            lawngYF: '7cfc00',
            NmoncEffon: 'fffacd',
            ZXe: 'add8e6',
            ZcSO: 'f08080',
            Zcyan: 'e0ffff',
            ZgTMnPdLw: 'fafad2',
            ZWay: 'd3d3d3',
            ZgYF: '90ee90',
            ZgYy: 'd3d3d3',
            ZpRk: 'ffb6c1',
            ZsOmon: 'ffa07a',
            ZsHgYF: '20b2aa',
            ZskyXe: '87cefa',
            ZUWay: '778899',
            ZUgYy: '778899',
            ZstAlXe: 'b0c4de',
            ZLw: 'ffffe0',
            lime: 'ff00',
            limegYF: '32cd32',
            lRF: 'faf0e6',
            magFta: 'ff00ff',
            maPon: '800000',
            VaquamarRe: '66cdaa',
            VXe: 'cd',
            VScEd: 'ba55d3',
            VpurpN: '9370db',
            VsHgYF: '3cb371',
            VUXe: '7b68ee',
            VsprRggYF: 'fa9a',
            VQe: '48d1cc',
            VviTetYd: 'c71585',
            midnightXe: '191970',
            mRtcYam: 'f5fffa',
            mistyPse: 'ffe4e1',
            moccasR: 'ffe4b5',
            navajowEte: 'ffdead',
            navy: '80',
            Tdlace: 'fdf5e6',
            Tive: '808000',
            TivedBb: '6b8e23',
            Sange: 'ffa500',
            SangeYd: 'ff4500',
            ScEd: 'da70d6',
            pOegTMnPd: 'eee8aa',
            pOegYF: '98fb98',
            pOeQe: 'afeeee',
            pOeviTetYd: 'db7093',
            papayawEp: 'ffefd5',
            pHKpuff: 'ffdab9',
            peru: 'cd853f',
            pRk: 'ffc0cb',
            plum: 'dda0dd',
            powMrXe: 'b0e0e6',
            purpN: '800080',
            YbeccapurpN: '663399',
            Yd: 'ff0000',
            Psybrown: 'bc8f8f',
            PyOXe: '4169e1',
            saddNbPwn: '8b4513',
            sOmon: 'fa8072',
            sandybPwn: 'f4a460',
            sHgYF: '2e8b57',
            sHshell: 'fff5ee',
            siFna: 'a0522d',
            silver: 'c0c0c0',
            skyXe: '87ceeb',
            UXe: '6a5acd',
            UWay: '708090',
            UgYy: '708090',
            snow: 'fffafa',
            sprRggYF: 'ff7f',
            stAlXe: '4682b4',
            tan: 'd2b48c',
            teO: '8080',
            tEstN: 'd8bfd8',
            tomato: 'ff6347',
            Qe: '40e0d0',
            viTet: 'ee82ee',
            JHt: 'f5deb3',
            wEte: 'ffffff',
            wEtesmoke: 'f5f5f5',
            Lw: 'ffff00',
            LwgYF: '9acd32',
        }
    let Ht
    function jt(t) {
        Ht ||
            ((Ht = (function () {
                const t = {},
                    e = Object.keys(Wt),
                    i = Object.keys(Nt)
                let s, n, o, a, r
                for (s = 0; s < e.length; s++) {
                    for (a = r = e[s], n = 0; n < i.length; n++)
                        (o = i[n]), (r = r.replace(o, Nt[o]))
                    ;(o = parseInt(Wt[a], 16)),
                        (t[r] = [(o >> 16) & 255, (o >> 8) & 255, 255 & o])
                }
                return t
            })()),
            (Ht.transparent = [0, 0, 0, 0]))
        const e = Ht[t.toLowerCase()]
        return (
            e && { r: e[0], g: e[1], b: e[2], a: 4 === e.length ? e[3] : 255 }
        )
    }
    const $t =
        /^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/
    const Yt = (t) =>
            t <= 0.0031308 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - 0.055,
        Ut = (t) =>
            t <= 0.04045 ? t / 12.92 : Math.pow((t + 0.055) / 1.055, 2.4)
    function Xt(t, e, i) {
        if (t) {
            let s = It(t)
            ;(s[e] = Math.max(0, Math.min(s[e] + s[e] * i, 0 === e ? 360 : 1))),
                (s = Ft(s)),
                (t.r = s[0]),
                (t.g = s[1]),
                (t.b = s[2])
        }
    }
    function qt(t, e) {
        return t ? Object.assign(e || {}, t) : t
    }
    function Kt(t) {
        var e = { r: 0, g: 0, b: 0, a: 255 }
        return (
            Array.isArray(t)
                ? t.length >= 3 &&
                  ((e = { r: t[0], g: t[1], b: t[2], a: 255 }),
                  t.length > 3 && (e.a = Mt(t[3])))
                : ((e = qt(t, { r: 0, g: 0, b: 0, a: 1 })).a = Mt(e.a)),
            e
        )
    }
    function Gt(t) {
        return 'r' === t.charAt(0)
            ? (function (t) {
                  const e = $t.exec(t)
                  let i,
                      s,
                      n,
                      o = 255
                  if (e) {
                      if (e[7] !== i) {
                          const t = +e[7]
                          o = e[8] ? vt(t) : yt(255 * t, 0, 255)
                      }
                      return (
                          (i = +e[1]),
                          (s = +e[3]),
                          (n = +e[5]),
                          (i = 255 & (e[2] ? vt(i) : yt(i, 0, 255))),
                          (s = 255 & (e[4] ? vt(s) : yt(s, 0, 255))),
                          (n = 255 & (e[6] ? vt(n) : yt(n, 0, 255))),
                          { r: i, g: s, b: n, a: o }
                      )
                  }
              })(t)
            : Bt(t)
    }
    class Zt {
        constructor(t) {
            if (t instanceof Zt) return t
            const e = typeof t
            let i
            var s, n, o
            'object' === e
                ? (i = Kt(t))
                : 'string' === e &&
                  ((o = (s = t).length),
                  '#' === s[0] &&
                      (4 === o || 5 === o
                          ? (n = {
                                r: 255 & (17 * St[s[1]]),
                                g: 255 & (17 * St[s[2]]),
                                b: 255 & (17 * St[s[3]]),
                                a: 5 === o ? 17 * St[s[4]] : 255,
                            })
                          : (7 !== o && 9 !== o) ||
                            (n = {
                                r: (St[s[1]] << 4) | St[s[2]],
                                g: (St[s[3]] << 4) | St[s[4]],
                                b: (St[s[5]] << 4) | St[s[6]],
                                a: 9 === o ? (St[s[7]] << 4) | St[s[8]] : 255,
                            })),
                  (i = n || jt(t) || Gt(t))),
                (this._rgb = i),
                (this._valid = !!i)
        }
        get valid() {
            return this._valid
        }
        get rgb() {
            var t = qt(this._rgb)
            return t && (t.a = wt(t.a)), t
        }
        set rgb(t) {
            this._rgb = Kt(t)
        }
        rgbString() {
            return this._valid
                ? (t = this._rgb) &&
                      (t.a < 255
                          ? `rgba(${t.r}, ${t.g}, ${t.b}, ${wt(t.a)})`
                          : `rgb(${t.r}, ${t.g}, ${t.b})`)
                : void 0
            var t
        }
        hexString() {
            return this._valid ? At(this._rgb) : void 0
        }
        hslString() {
            return this._valid
                ? (function (t) {
                      if (!t) return
                      const e = It(t),
                          i = e[0],
                          s = kt(e[1]),
                          n = kt(e[2])
                      return t.a < 255
                          ? `hsla(${i}, ${s}%, ${n}%, ${wt(t.a)})`
                          : `hsl(${i}, ${s}%, ${n}%)`
                  })(this._rgb)
                : void 0
        }
        mix(t, e) {
            if (t) {
                const i = this.rgb,
                    s = t.rgb
                let n
                const o = e === n ? 0.5 : e,
                    a = 2 * o - 1,
                    r = i.a - s.a,
                    l = ((a * r == -1 ? a : (a + r) / (1 + a * r)) + 1) / 2
                ;(n = 1 - l),
                    (i.r = 255 & (l * i.r + n * s.r + 0.5)),
                    (i.g = 255 & (l * i.g + n * s.g + 0.5)),
                    (i.b = 255 & (l * i.b + n * s.b + 0.5)),
                    (i.a = o * i.a + (1 - o) * s.a),
                    (this.rgb = i)
            }
            return this
        }
        interpolate(t, e) {
            return (
                t &&
                    (this._rgb = (function (t, e, i) {
                        const s = Ut(wt(t.r)),
                            n = Ut(wt(t.g)),
                            o = Ut(wt(t.b))
                        return {
                            r: Mt(Yt(s + i * (Ut(wt(e.r)) - s))),
                            g: Mt(Yt(n + i * (Ut(wt(e.g)) - n))),
                            b: Mt(Yt(o + i * (Ut(wt(e.b)) - o))),
                            a: t.a + i * (e.a - t.a),
                        }
                    })(this._rgb, t._rgb, e)),
                this
            )
        }
        clone() {
            return new Zt(this.rgb)
        }
        alpha(t) {
            return (this._rgb.a = Mt(t)), this
        }
        clearer(t) {
            return (this._rgb.a *= 1 - t), this
        }
        greyscale() {
            const t = this._rgb,
                e = _t(0.3 * t.r + 0.59 * t.g + 0.11 * t.b)
            return (t.r = t.g = t.b = e), this
        }
        opaquer(t) {
            return (this._rgb.a *= 1 + t), this
        }
        negate() {
            const t = this._rgb
            return (t.r = 255 - t.r), (t.g = 255 - t.g), (t.b = 255 - t.b), this
        }
        lighten(t) {
            return Xt(this._rgb, 2, t), this
        }
        darken(t) {
            return Xt(this._rgb, 2, -t), this
        }
        saturate(t) {
            return Xt(this._rgb, 1, t), this
        }
        desaturate(t) {
            return Xt(this._rgb, 1, -t), this
        }
        rotate(t) {
            return (
                (function (t, e) {
                    var i = It(t)
                    ;(i[0] = Vt(i[0] + e)),
                        (i = Ft(i)),
                        (t.r = i[0]),
                        (t.g = i[1]),
                        (t.b = i[2])
                })(this._rgb, t),
                this
            )
        }
    }
    function Jt(t) {
        if (t && 'object' == typeof t) {
            const e = t.toString()
            return (
                '[object CanvasPattern]' === e ||
                '[object CanvasGradient]' === e
            )
        }
        return !1
    }
    function Qt(t) {
        return Jt(t) ? t : new Zt(t)
    }
    function te(t) {
        return Jt(t) ? t : new Zt(t).saturate(0.5).darken(0.1).hexString()
    }
    const ee = ['x', 'y', 'borderWidth', 'radius', 'tension'],
        ie = ['color', 'borderColor', 'backgroundColor']
    const se = new Map()
    function ne(t, e, i) {
        return (function (t, e) {
            e = e || {}
            const i = t + JSON.stringify(e)
            let s = se.get(i)
            return s || ((s = new Intl.NumberFormat(t, e)), se.set(i, s)), s
        })(e, i).format(t)
    }
    const oe = {
        values: (t) => (n(t) ? t : '' + t),
        numeric(t, e, i) {
            if (0 === t) return '0'
            const s = this.chart.options.locale
            let n,
                o = t
            if (i.length > 1) {
                const e = Math.max(
                    Math.abs(i[0].value),
                    Math.abs(i[i.length - 1].value)
                )
                ;(e < 1e-4 || e > 1e15) && (n = 'scientific'),
                    (o = (function (t, e) {
                        let i =
                            e.length > 3
                                ? e[2].value - e[1].value
                                : e[1].value - e[0].value
                        Math.abs(i) >= 1 &&
                            t !== Math.floor(t) &&
                            (i = t - Math.floor(t))
                        return i
                    })(t, i))
            }
            const a = z(Math.abs(o)),
                r = isNaN(a)
                    ? 1
                    : Math.max(Math.min(-1 * Math.floor(a), 20), 0),
                l = {
                    notation: n,
                    minimumFractionDigits: r,
                    maximumFractionDigits: r,
                }
            return Object.assign(l, this.options.ticks.format), ne(t, s, l)
        },
        logarithmic(t, e, i) {
            if (0 === t) return '0'
            const s = i[e].significand || t / Math.pow(10, Math.floor(z(t)))
            return [1, 2, 3, 5, 10, 15].includes(s) || e > 0.8 * i.length
                ? oe.numeric.call(this, t, e, i)
                : ''
        },
    }
    var ae = { formatters: oe }
    const re = Object.create(null),
        le = Object.create(null)
    function he(t, e) {
        if (!e) return t
        const i = e.split('.')
        for (let e = 0, s = i.length; e < s; ++e) {
            const s = i[e]
            t = t[s] || (t[s] = Object.create(null))
        }
        return t
    }
    function ce(t, e, i) {
        return 'string' == typeof e ? b(he(t, e), i) : b(he(t, ''), e)
    }
    class de {
        constructor(t, e) {
            ;(this.animation = void 0),
                (this.backgroundColor = 'rgba(0,0,0,0.1)'),
                (this.borderColor = 'rgba(0,0,0,0.1)'),
                (this.color = '#666'),
                (this.datasets = {}),
                (this.devicePixelRatio = (t) =>
                    t.chart.platform.getDevicePixelRatio()),
                (this.elements = {}),
                (this.events = [
                    'mousemove',
                    'mouseout',
                    'click',
                    'touchstart',
                    'touchmove',
                ]),
                (this.font = {
                    family: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
                    size: 12,
                    style: 'normal',
                    lineHeight: 1.2,
                    weight: null,
                }),
                (this.hover = {}),
                (this.hoverBackgroundColor = (t, e) => te(e.backgroundColor)),
                (this.hoverBorderColor = (t, e) => te(e.borderColor)),
                (this.hoverColor = (t, e) => te(e.color)),
                (this.indexAxis = 'x'),
                (this.interaction = {
                    mode: 'nearest',
                    intersect: !0,
                    includeInvisible: !1,
                }),
                (this.maintainAspectRatio = !0),
                (this.onHover = null),
                (this.onClick = null),
                (this.parsing = !0),
                (this.plugins = {}),
                (this.responsive = !0),
                (this.scale = void 0),
                (this.scales = {}),
                (this.showLine = !0),
                (this.drawActiveElementsOnTop = !0),
                this.describe(t),
                this.apply(e)
        }
        set(t, e) {
            return ce(this, t, e)
        }
        get(t) {
            return he(this, t)
        }
        describe(t, e) {
            return ce(le, t, e)
        }
        override(t, e) {
            return ce(re, t, e)
        }
        route(t, e, i, s) {
            const n = he(this, t),
                a = he(this, i),
                r = '_' + e
            Object.defineProperties(n, {
                [r]: { value: n[e], writable: !0 },
                [e]: {
                    enumerable: !0,
                    get() {
                        const t = this[r],
                            e = a[s]
                        return o(t) ? Object.assign({}, e, t) : l(t, e)
                    },
                    set(t) {
                        this[r] = t
                    },
                },
            })
        }
        apply(t) {
            t.forEach((t) => t(this))
        }
    }
    var ue = new de(
        {
            _scriptable: (t) => !t.startsWith('on'),
            _indexable: (t) => 'events' !== t,
            hover: { _fallback: 'interaction' },
            interaction: { _scriptable: !1, _indexable: !1 },
        },
        [
            function (t) {
                t.set('animation', {
                    delay: void 0,
                    duration: 1e3,
                    easing: 'easeOutQuart',
                    fn: void 0,
                    from: void 0,
                    loop: void 0,
                    to: void 0,
                    type: void 0,
                }),
                    t.describe('animation', {
                        _fallback: !1,
                        _indexable: !1,
                        _scriptable: (t) =>
                            'onProgress' !== t &&
                            'onComplete' !== t &&
                            'fn' !== t,
                    }),
                    t.set('animations', {
                        colors: { type: 'color', properties: ie },
                        numbers: { type: 'number', properties: ee },
                    }),
                    t.describe('animations', { _fallback: 'animation' }),
                    t.set('transitions', {
                        active: { animation: { duration: 400 } },
                        resize: { animation: { duration: 0 } },
                        show: {
                            animations: {
                                colors: { from: 'transparent' },
                                visible: { type: 'boolean', duration: 0 },
                            },
                        },
                        hide: {
                            animations: {
                                colors: { to: 'transparent' },
                                visible: {
                                    type: 'boolean',
                                    easing: 'linear',
                                    fn: (t) => 0 | t,
                                },
                            },
                        },
                    })
            },
            function (t) {
                t.set('layout', {
                    autoPadding: !0,
                    padding: { top: 0, right: 0, bottom: 0, left: 0 },
                })
            },
            function (t) {
                t.set('scale', {
                    display: !0,
                    offset: !1,
                    reverse: !1,
                    beginAtZero: !1,
                    bounds: 'ticks',
                    grace: 0,
                    grid: {
                        display: !0,
                        lineWidth: 1,
                        drawOnChartArea: !0,
                        drawTicks: !0,
                        tickLength: 8,
                        tickWidth: (t, e) => e.lineWidth,
                        tickColor: (t, e) => e.color,
                        offset: !1,
                    },
                    border: { display: !0, dash: [], dashOffset: 0, width: 1 },
                    title: {
                        display: !1,
                        text: '',
                        padding: { top: 4, bottom: 4 },
                    },
                    ticks: {
                        minRotation: 0,
                        maxRotation: 50,
                        mirror: !1,
                        textStrokeWidth: 0,
                        textStrokeColor: '',
                        padding: 3,
                        display: !0,
                        autoSkip: !0,
                        autoSkipPadding: 3,
                        labelOffset: 0,
                        callback: ae.formatters.values,
                        minor: {},
                        major: {},
                        align: 'center',
                        crossAlign: 'near',
                        showLabelBackdrop: !1,
                        backdropColor: 'rgba(255, 255, 255, 0.75)',
                        backdropPadding: 2,
                    },
                }),
                    t.route('scale.ticks', 'color', '', 'color'),
                    t.route('scale.grid', 'color', '', 'borderColor'),
                    t.route('scale.border', 'color', '', 'borderColor'),
                    t.route('scale.title', 'color', '', 'color'),
                    t.describe('scale', {
                        _fallback: !1,
                        _scriptable: (t) =>
                            !t.startsWith('before') &&
                            !t.startsWith('after') &&
                            'callback' !== t &&
                            'parser' !== t,
                        _indexable: (t) =>
                            'borderDash' !== t &&
                            'tickBorderDash' !== t &&
                            'dash' !== t,
                    }),
                    t.describe('scales', { _fallback: 'scale' }),
                    t.describe('scale.ticks', {
                        _scriptable: (t) =>
                            'backdropPadding' !== t && 'callback' !== t,
                        _indexable: (t) => 'backdropPadding' !== t,
                    })
            },
        ]
    )
    function fe() {
        return 'undefined' != typeof window && 'undefined' != typeof document
    }
    function ge(t) {
        let e = t.parentNode
        return e && '[object ShadowRoot]' === e.toString() && (e = e.host), e
    }
    function pe(t, e, i) {
        let s
        return (
            'string' == typeof t
                ? ((s = parseInt(t, 10)),
                  -1 !== t.indexOf('%') && (s = (s / 100) * e.parentNode[i]))
                : (s = t),
            s
        )
    }
    const me = (t) => t.ownerDocument.defaultView.getComputedStyle(t, null)
    function be(t, e) {
        return me(t).getPropertyValue(e)
    }
    const xe = ['top', 'right', 'bottom', 'left']
    function _e(t, e, i) {
        const s = {}
        i = i ? '-' + i : ''
        for (let n = 0; n < 4; n++) {
            const o = xe[n]
            s[o] = parseFloat(t[e + '-' + o + i]) || 0
        }
        return (s.width = s.left + s.right), (s.height = s.top + s.bottom), s
    }
    const ye = (t, e, i) => (t > 0 || e > 0) && (!i || !i.shadowRoot)
    function ve(t, e) {
        if ('native' in t) return t
        const { canvas: i, currentDevicePixelRatio: s } = e,
            n = me(i),
            o = 'border-box' === n.boxSizing,
            a = _e(n, 'padding'),
            r = _e(n, 'border', 'width'),
            {
                x: l,
                y: h,
                box: c,
            } = (function (t, e) {
                const i = t.touches,
                    s = i && i.length ? i[0] : t,
                    { offsetX: n, offsetY: o } = s
                let a,
                    r,
                    l = !1
                if (ye(n, o, t.target)) (a = n), (r = o)
                else {
                    const t = e.getBoundingClientRect()
                    ;(a = s.clientX - t.left), (r = s.clientY - t.top), (l = !0)
                }
                return { x: a, y: r, box: l }
            })(t, i),
            d = a.left + (c && r.left),
            u = a.top + (c && r.top)
        let { width: f, height: g } = e
        return (
            o && ((f -= a.width + r.width), (g -= a.height + r.height)),
            {
                x: Math.round((((l - d) / f) * i.width) / s),
                y: Math.round((((h - u) / g) * i.height) / s),
            }
        )
    }
    const Me = (t) => Math.round(10 * t) / 10
    function we(t, e, i, s) {
        const n = me(t),
            o = _e(n, 'margin'),
            a = pe(n.maxWidth, t, 'clientWidth') || T,
            r = pe(n.maxHeight, t, 'clientHeight') || T,
            l = (function (t, e, i) {
                let s, n
                if (void 0 === e || void 0 === i) {
                    const o = ge(t)
                    if (o) {
                        const t = o.getBoundingClientRect(),
                            a = me(o),
                            r = _e(a, 'border', 'width'),
                            l = _e(a, 'padding')
                        ;(e = t.width - l.width - r.width),
                            (i = t.height - l.height - r.height),
                            (s = pe(a.maxWidth, o, 'clientWidth')),
                            (n = pe(a.maxHeight, o, 'clientHeight'))
                    } else (e = t.clientWidth), (i = t.clientHeight)
                }
                return {
                    width: e,
                    height: i,
                    maxWidth: s || T,
                    maxHeight: n || T,
                }
            })(t, e, i)
        let { width: h, height: c } = l
        if ('content-box' === n.boxSizing) {
            const t = _e(n, 'border', 'width'),
                e = _e(n, 'padding')
            ;(h -= e.width + t.width), (c -= e.height + t.height)
        }
        ;(h = Math.max(0, h - o.width)),
            (c = Math.max(0, s ? h / s : c - o.height)),
            (h = Me(Math.min(h, a, l.maxWidth))),
            (c = Me(Math.min(c, r, l.maxHeight))),
            h && !c && (c = Me(h / 2))
        return (
            (void 0 !== e || void 0 !== i) &&
                s &&
                l.height &&
                c > l.height &&
                ((c = l.height), (h = Me(Math.floor(c * s)))),
            { width: h, height: c }
        )
    }
    function ke(t, e, i) {
        const s = e || 1,
            n = Math.floor(t.height * s),
            o = Math.floor(t.width * s)
        ;(t.height = Math.floor(t.height)), (t.width = Math.floor(t.width))
        const a = t.canvas
        return (
            a.style &&
                (i || (!a.style.height && !a.style.width)) &&
                ((a.style.height = `${t.height}px`),
                (a.style.width = `${t.width}px`)),
            (t.currentDevicePixelRatio !== s ||
                a.height !== n ||
                a.width !== o) &&
                ((t.currentDevicePixelRatio = s),
                (a.height = n),
                (a.width = o),
                t.ctx.setTransform(s, 0, 0, s, 0, 0),
                !0)
        )
    }
    const Se = (function () {
        let t = !1
        try {
            const e = {
                get passive() {
                    return (t = !0), !1
                },
            }
            window.addEventListener('test', null, e),
                window.removeEventListener('test', null, e)
        } catch (t) {}
        return t
    })()
    function Pe(t, e) {
        const i = be(t, e),
            s = i && i.match(/^(\d+)(\.\d+)?px$/)
        return s ? +s[1] : void 0
    }
    function De(t) {
        return !t || s(t.size) || s(t.family)
            ? null
            : (t.style ? t.style + ' ' : '') +
                  (t.weight ? t.weight + ' ' : '') +
                  t.size +
                  'px ' +
                  t.family
    }
    function Ce(t, e, i, s, n) {
        let o = e[n]
        return (
            o || ((o = e[n] = t.measureText(n).width), i.push(n)),
            o > s && (s = o),
            s
        )
    }
    function Oe(t, e, i, s) {
        let o = ((s = s || {}).data = s.data || {}),
            a = (s.garbageCollect = s.garbageCollect || [])
        s.font !== e &&
            ((o = s.data = {}), (a = s.garbageCollect = []), (s.font = e)),
            t.save(),
            (t.font = e)
        let r = 0
        const l = i.length
        let h, c, d, u, f
        for (h = 0; h < l; h++)
            if (((u = i[h]), null == u || n(u))) {
                if (n(u))
                    for (c = 0, d = u.length; c < d; c++)
                        (f = u[c]), null == f || n(f) || (r = Ce(t, o, a, r, f))
            } else r = Ce(t, o, a, r, u)
        t.restore()
        const g = a.length / 2
        if (g > i.length) {
            for (h = 0; h < g; h++) delete o[a[h]]
            a.splice(0, g)
        }
        return r
    }
    function Ae(t, e, i) {
        const s = t.currentDevicePixelRatio,
            n = 0 !== i ? Math.max(i / 2, 0.5) : 0
        return Math.round((e - n) * s) / s + n
    }
    function Te(t, e) {
        ;(e = e || t.getContext('2d')).save(),
            e.resetTransform(),
            e.clearRect(0, 0, t.width, t.height),
            e.restore()
    }
    function Le(t, e, i, s) {
        Ee(t, e, i, s, null)
    }
    function Ee(t, e, i, s, n) {
        let o, a, r, l, h, c, d, u
        const f = e.pointStyle,
            g = e.rotation,
            p = e.radius
        let m = (g || 0) * L
        if (
            f &&
            'object' == typeof f &&
            ((o = f.toString()),
            '[object HTMLImageElement]' === o ||
                '[object HTMLCanvasElement]' === o)
        )
            return (
                t.save(),
                t.translate(i, s),
                t.rotate(m),
                t.drawImage(f, -f.width / 2, -f.height / 2, f.width, f.height),
                void t.restore()
            )
        if (!(isNaN(p) || p <= 0)) {
            switch ((t.beginPath(), f)) {
                default:
                    n
                        ? t.ellipse(i, s, n / 2, p, 0, 0, O)
                        : t.arc(i, s, p, 0, O),
                        t.closePath()
                    break
                case 'triangle':
                    ;(c = n ? n / 2 : p),
                        t.moveTo(i + Math.sin(m) * c, s - Math.cos(m) * p),
                        (m += I),
                        t.lineTo(i + Math.sin(m) * c, s - Math.cos(m) * p),
                        (m += I),
                        t.lineTo(i + Math.sin(m) * c, s - Math.cos(m) * p),
                        t.closePath()
                    break
                case 'rectRounded':
                    ;(h = 0.516 * p),
                        (l = p - h),
                        (a = Math.cos(m + R) * l),
                        (d = Math.cos(m + R) * (n ? n / 2 - h : l)),
                        (r = Math.sin(m + R) * l),
                        (u = Math.sin(m + R) * (n ? n / 2 - h : l)),
                        t.arc(i - d, s - r, h, m - C, m - E),
                        t.arc(i + u, s - a, h, m - E, m),
                        t.arc(i + d, s + r, h, m, m + E),
                        t.arc(i - u, s + a, h, m + E, m + C),
                        t.closePath()
                    break
                case 'rect':
                    if (!g) {
                        ;(l = Math.SQRT1_2 * p),
                            (c = n ? n / 2 : l),
                            t.rect(i - c, s - l, 2 * c, 2 * l)
                        break
                    }
                    m += R
                case 'rectRot':
                    ;(d = Math.cos(m) * (n ? n / 2 : p)),
                        (a = Math.cos(m) * p),
                        (r = Math.sin(m) * p),
                        (u = Math.sin(m) * (n ? n / 2 : p)),
                        t.moveTo(i - d, s - r),
                        t.lineTo(i + u, s - a),
                        t.lineTo(i + d, s + r),
                        t.lineTo(i - u, s + a),
                        t.closePath()
                    break
                case 'crossRot':
                    m += R
                case 'cross':
                    ;(d = Math.cos(m) * (n ? n / 2 : p)),
                        (a = Math.cos(m) * p),
                        (r = Math.sin(m) * p),
                        (u = Math.sin(m) * (n ? n / 2 : p)),
                        t.moveTo(i - d, s - r),
                        t.lineTo(i + d, s + r),
                        t.moveTo(i + u, s - a),
                        t.lineTo(i - u, s + a)
                    break
                case 'star':
                    ;(d = Math.cos(m) * (n ? n / 2 : p)),
                        (a = Math.cos(m) * p),
                        (r = Math.sin(m) * p),
                        (u = Math.sin(m) * (n ? n / 2 : p)),
                        t.moveTo(i - d, s - r),
                        t.lineTo(i + d, s + r),
                        t.moveTo(i + u, s - a),
                        t.lineTo(i - u, s + a),
                        (m += R),
                        (d = Math.cos(m) * (n ? n / 2 : p)),
                        (a = Math.cos(m) * p),
                        (r = Math.sin(m) * p),
                        (u = Math.sin(m) * (n ? n / 2 : p)),
                        t.moveTo(i - d, s - r),
                        t.lineTo(i + d, s + r),
                        t.moveTo(i + u, s - a),
                        t.lineTo(i - u, s + a)
                    break
                case 'line':
                    ;(a = n ? n / 2 : Math.cos(m) * p),
                        (r = Math.sin(m) * p),
                        t.moveTo(i - a, s - r),
                        t.lineTo(i + a, s + r)
                    break
                case 'dash':
                    t.moveTo(i, s),
                        t.lineTo(
                            i + Math.cos(m) * (n ? n / 2 : p),
                            s + Math.sin(m) * p
                        )
                    break
                case !1:
                    t.closePath()
            }
            t.fill(), e.borderWidth > 0 && t.stroke()
        }
    }
    function Re(t, e, i) {
        return (
            (i = i || 0.5),
            !e ||
                (t &&
                    t.x > e.left - i &&
                    t.x < e.right + i &&
                    t.y > e.top - i &&
                    t.y < e.bottom + i)
        )
    }
    function Ie(t, e) {
        t.save(),
            t.beginPath(),
            t.rect(e.left, e.top, e.right - e.left, e.bottom - e.top),
            t.clip()
    }
    function ze(t) {
        t.restore()
    }
    function Fe(t, e, i, s, n) {
        if (!e) return t.lineTo(i.x, i.y)
        if ('middle' === n) {
            const s = (e.x + i.x) / 2
            t.lineTo(s, e.y), t.lineTo(s, i.y)
        } else ('after' === n) != !!s ? t.lineTo(e.x, i.y) : t.lineTo(i.x, e.y)
        t.lineTo(i.x, i.y)
    }
    function Ve(t, e, i, s) {
        if (!e) return t.lineTo(i.x, i.y)
        t.bezierCurveTo(
            s ? e.cp1x : e.cp2x,
            s ? e.cp1y : e.cp2y,
            s ? i.cp2x : i.cp1x,
            s ? i.cp2y : i.cp1y,
            i.x,
            i.y
        )
    }
    function Be(t, e, i, s, n) {
        if (n.strikethrough || n.underline) {
            const o = t.measureText(s),
                a = e - o.actualBoundingBoxLeft,
                r = e + o.actualBoundingBoxRight,
                l = i - o.actualBoundingBoxAscent,
                h = i + o.actualBoundingBoxDescent,
                c = n.strikethrough ? (l + h) / 2 : h
            ;(t.strokeStyle = t.fillStyle),
                t.beginPath(),
                (t.lineWidth = n.decorationWidth || 2),
                t.moveTo(a, c),
                t.lineTo(r, c),
                t.stroke()
        }
    }
    function Ne(t, e) {
        const i = t.fillStyle
        ;(t.fillStyle = e.color),
            t.fillRect(e.left, e.top, e.width, e.height),
            (t.fillStyle = i)
    }
    function We(t, e, i, o, a, r = {}) {
        const l = n(e) ? e : [e],
            h = r.strokeWidth > 0 && '' !== r.strokeColor
        let c, d
        for (
            t.save(),
                t.font = a.string,
                (function (t, e) {
                    e.translation &&
                        t.translate(e.translation[0], e.translation[1]),
                        s(e.rotation) || t.rotate(e.rotation),
                        e.color && (t.fillStyle = e.color),
                        e.textAlign && (t.textAlign = e.textAlign),
                        e.textBaseline && (t.textBaseline = e.textBaseline)
                })(t, r),
                c = 0;
            c < l.length;
            ++c
        )
            (d = l[c]),
                r.backdrop && Ne(t, r.backdrop),
                h &&
                    (r.strokeColor && (t.strokeStyle = r.strokeColor),
                    s(r.strokeWidth) || (t.lineWidth = r.strokeWidth),
                    t.strokeText(d, i, o, r.maxWidth)),
                t.fillText(d, i, o, r.maxWidth),
                Be(t, i, o, d, r),
                (o += Number(a.lineHeight))
        t.restore()
    }
    function He(t, e) {
        const { x: i, y: s, w: n, h: o, radius: a } = e
        t.arc(i + a.topLeft, s + a.topLeft, a.topLeft, -E, C, !0),
            t.lineTo(i, s + o - a.bottomLeft),
            t.arc(
                i + a.bottomLeft,
                s + o - a.bottomLeft,
                a.bottomLeft,
                C,
                E,
                !0
            ),
            t.lineTo(i + n - a.bottomRight, s + o),
            t.arc(
                i + n - a.bottomRight,
                s + o - a.bottomRight,
                a.bottomRight,
                E,
                0,
                !0
            ),
            t.lineTo(i + n, s + a.topRight),
            t.arc(i + n - a.topRight, s + a.topRight, a.topRight, 0, -E, !0),
            t.lineTo(i + a.topLeft, s)
    }
    function je(t, e = [''], i, s, n = () => t[0]) {
        const o = i || t
        void 0 === s && (s = ti('_fallback', t))
        const a = {
            [Symbol.toStringTag]: 'Object',
            _cacheable: !0,
            _scopes: t,
            _rootScopes: o,
            _fallback: s,
            _getTarget: n,
            override: (i) => je([i, ...t], e, o, s),
        }
        return new Proxy(a, {
            deleteProperty: (e, i) => (
                delete e[i], delete e._keys, delete t[0][i], !0
            ),
            get: (i, s) =>
                qe(i, s, () =>
                    (function (t, e, i, s) {
                        let n
                        for (const o of e)
                            if (((n = ti(Ue(o, t), i)), void 0 !== n))
                                return Xe(t, n) ? Je(i, s, t, n) : n
                    })(s, e, t, i)
                ),
            getOwnPropertyDescriptor: (t, e) =>
                Reflect.getOwnPropertyDescriptor(t._scopes[0], e),
            getPrototypeOf: () => Reflect.getPrototypeOf(t[0]),
            has: (t, e) => ei(t).includes(e),
            ownKeys: (t) => ei(t),
            set(t, e, i) {
                const s = t._storage || (t._storage = n())
                return (t[e] = s[e] = i), delete t._keys, !0
            },
        })
    }
    function $e(t, e, i, s) {
        const a = {
            _cacheable: !1,
            _proxy: t,
            _context: e,
            _subProxy: i,
            _stack: new Set(),
            _descriptors: Ye(t, s),
            setContext: (e) => $e(t, e, i, s),
            override: (n) => $e(t.override(n), e, i, s),
        }
        return new Proxy(a, {
            deleteProperty: (e, i) => (delete e[i], delete t[i], !0),
            get: (t, e, i) =>
                qe(t, e, () =>
                    (function (t, e, i) {
                        const {
                            _proxy: s,
                            _context: a,
                            _subProxy: r,
                            _descriptors: l,
                        } = t
                        let h = s[e]
                        S(h) &&
                            l.isScriptable(e) &&
                            (h = (function (t, e, i, s) {
                                const {
                                    _proxy: n,
                                    _context: o,
                                    _subProxy: a,
                                    _stack: r,
                                } = i
                                if (r.has(t))
                                    throw new Error(
                                        'Recursion detected: ' +
                                            Array.from(r).join('->') +
                                            '->' +
                                            t
                                    )
                                r.add(t)
                                let l = e(o, a || s)
                                r.delete(t),
                                    Xe(t, l) && (l = Je(n._scopes, n, t, l))
                                return l
                            })(e, h, t, i))
                        n(h) &&
                            h.length &&
                            (h = (function (t, e, i, s) {
                                const {
                                    _proxy: n,
                                    _context: a,
                                    _subProxy: r,
                                    _descriptors: l,
                                } = i
                                if (void 0 !== a.index && s(t))
                                    return e[a.index % e.length]
                                if (o(e[0])) {
                                    const i = e,
                                        s = n._scopes.filter((t) => t !== i)
                                    e = []
                                    for (const o of i) {
                                        const i = Je(s, n, t, o)
                                        e.push($e(i, a, r && r[t], l))
                                    }
                                }
                                return e
                            })(e, h, t, l.isIndexable))
                        Xe(e, h) && (h = $e(h, a, r && r[e], l))
                        return h
                    })(t, e, i)
                ),
            getOwnPropertyDescriptor: (e, i) =>
                e._descriptors.allKeys
                    ? Reflect.has(t, i)
                        ? { enumerable: !0, configurable: !0 }
                        : void 0
                    : Reflect.getOwnPropertyDescriptor(t, i),
            getPrototypeOf: () => Reflect.getPrototypeOf(t),
            has: (e, i) => Reflect.has(t, i),
            ownKeys: () => Reflect.ownKeys(t),
            set: (e, i, s) => ((t[i] = s), delete e[i], !0),
        })
    }
    function Ye(t, e = { scriptable: !0, indexable: !0 }) {
        const {
            _scriptable: i = e.scriptable,
            _indexable: s = e.indexable,
            _allKeys: n = e.allKeys,
        } = t
        return {
            allKeys: n,
            scriptable: i,
            indexable: s,
            isScriptable: S(i) ? i : () => i,
            isIndexable: S(s) ? s : () => s,
        }
    }
    const Ue = (t, e) => (t ? t + w(e) : e),
        Xe = (t, e) =>
            o(e) &&
            'adapters' !== t &&
            (null === Object.getPrototypeOf(e) || e.constructor === Object)
    function qe(t, e, i) {
        if (Object.prototype.hasOwnProperty.call(t, e)) return t[e]
        const s = i()
        return (t[e] = s), s
    }
    function Ke(t, e, i) {
        return S(t) ? t(e, i) : t
    }
    const Ge = (t, e) =>
        !0 === t ? e : 'string' == typeof t ? M(e, t) : void 0
    function Ze(t, e, i, s, n) {
        for (const o of e) {
            const e = Ge(i, o)
            if (e) {
                t.add(e)
                const o = Ke(e._fallback, i, n)
                if (void 0 !== o && o !== i && o !== s) return o
            } else if (!1 === e && void 0 !== s && i !== s) return null
        }
        return !1
    }
    function Je(t, e, i, s) {
        const a = e._rootScopes,
            r = Ke(e._fallback, i, s),
            l = [...t, ...a],
            h = new Set()
        h.add(s)
        let c = Qe(h, l, i, r || i, s)
        return (
            null !== c &&
            (void 0 === r ||
                r === i ||
                ((c = Qe(h, l, r, c, s)), null !== c)) &&
            je(Array.from(h), [''], a, r, () =>
                (function (t, e, i) {
                    const s = t._getTarget()
                    e in s || (s[e] = {})
                    const a = s[e]
                    if (n(a) && o(i)) return i
                    return a || {}
                })(e, i, s)
            )
        )
    }
    function Qe(t, e, i, s, n) {
        for (; i; ) i = Ze(t, e, i, s, n)
        return i
    }
    function ti(t, e) {
        for (const i of e) {
            if (!i) continue
            const e = i[t]
            if (void 0 !== e) return e
        }
    }
    function ei(t) {
        let e = t._keys
        return (
            e ||
                (e = t._keys =
                    (function (t) {
                        const e = new Set()
                        for (const i of t)
                            for (const t of Object.keys(i).filter(
                                (t) => !t.startsWith('_')
                            ))
                                e.add(t)
                        return Array.from(e)
                    })(t._scopes)),
            e
        )
    }
    function ii(t, e, i, s) {
        const { iScale: n } = t,
            { key: o = 'r' } = this._parsing,
            a = new Array(s)
        let r, l, h, c
        for (r = 0, l = s; r < l; ++r)
            (h = r + i), (c = e[h]), (a[r] = { r: n.parse(M(c, o), h) })
        return a
    }
    const si = Number.EPSILON || 1e-14,
        ni = (t, e) => e < t.length && !t[e].skip && t[e],
        oi = (t) => ('x' === t ? 'y' : 'x')
    function ai(t, e, i, s) {
        const n = t.skip ? e : t,
            o = e,
            a = i.skip ? e : i,
            r = q(o, n),
            l = q(a, o)
        let h = r / (r + l),
            c = l / (r + l)
        ;(h = isNaN(h) ? 0 : h), (c = isNaN(c) ? 0 : c)
        const d = s * h,
            u = s * c
        return {
            previous: { x: o.x - d * (a.x - n.x), y: o.y - d * (a.y - n.y) },
            next: { x: o.x + u * (a.x - n.x), y: o.y + u * (a.y - n.y) },
        }
    }
    function ri(t, e = 'x') {
        const i = oi(e),
            s = t.length,
            n = Array(s).fill(0),
            o = Array(s)
        let a,
            r,
            l,
            h = ni(t, 0)
        for (a = 0; a < s; ++a)
            if (((r = l), (l = h), (h = ni(t, a + 1)), l)) {
                if (h) {
                    const t = h[e] - l[e]
                    n[a] = 0 !== t ? (h[i] - l[i]) / t : 0
                }
                o[a] = r
                    ? h
                        ? F(n[a - 1]) !== F(n[a])
                            ? 0
                            : (n[a - 1] + n[a]) / 2
                        : n[a - 1]
                    : n[a]
            }
        !(function (t, e, i) {
            const s = t.length
            let n,
                o,
                a,
                r,
                l,
                h = ni(t, 0)
            for (let c = 0; c < s - 1; ++c)
                (l = h),
                    (h = ni(t, c + 1)),
                    l &&
                        h &&
                        (V(e[c], 0, si)
                            ? (i[c] = i[c + 1] = 0)
                            : ((n = i[c] / e[c]),
                              (o = i[c + 1] / e[c]),
                              (r = Math.pow(n, 2) + Math.pow(o, 2)),
                              r <= 9 ||
                                  ((a = 3 / Math.sqrt(r)),
                                  (i[c] = n * a * e[c]),
                                  (i[c + 1] = o * a * e[c]))))
        })(t, n, o),
            (function (t, e, i = 'x') {
                const s = oi(i),
                    n = t.length
                let o,
                    a,
                    r,
                    l = ni(t, 0)
                for (let h = 0; h < n; ++h) {
                    if (((a = r), (r = l), (l = ni(t, h + 1)), !r)) continue
                    const n = r[i],
                        c = r[s]
                    a &&
                        ((o = (n - a[i]) / 3),
                        (r[`cp1${i}`] = n - o),
                        (r[`cp1${s}`] = c - o * e[h])),
                        l &&
                            ((o = (l[i] - n) / 3),
                            (r[`cp2${i}`] = n + o),
                            (r[`cp2${s}`] = c + o * e[h]))
                }
            })(t, o, e)
    }
    function li(t, e, i) {
        return Math.max(Math.min(t, i), e)
    }
    function hi(t, e, i, s, n) {
        let o, a, r, l
        if (
            (e.spanGaps && (t = t.filter((t) => !t.skip)),
            'monotone' === e.cubicInterpolationMode)
        )
            ri(t, n)
        else {
            let i = s ? t[t.length - 1] : t[0]
            for (o = 0, a = t.length; o < a; ++o)
                (r = t[o]),
                    (l = ai(
                        i,
                        r,
                        t[Math.min(o + 1, a - (s ? 0 : 1)) % a],
                        e.tension
                    )),
                    (r.cp1x = l.previous.x),
                    (r.cp1y = l.previous.y),
                    (r.cp2x = l.next.x),
                    (r.cp2y = l.next.y),
                    (i = r)
        }
        e.capBezierPoints &&
            (function (t, e) {
                let i,
                    s,
                    n,
                    o,
                    a,
                    r = Re(t[0], e)
                for (i = 0, s = t.length; i < s; ++i)
                    (a = o),
                        (o = r),
                        (r = i < s - 1 && Re(t[i + 1], e)),
                        o &&
                            ((n = t[i]),
                            a &&
                                ((n.cp1x = li(n.cp1x, e.left, e.right)),
                                (n.cp1y = li(n.cp1y, e.top, e.bottom))),
                            r &&
                                ((n.cp2x = li(n.cp2x, e.left, e.right)),
                                (n.cp2y = li(n.cp2y, e.top, e.bottom))))
            })(t, i)
    }
    const ci = (t) => 0 === t || 1 === t,
        di = (t, e, i) =>
            -Math.pow(2, 10 * (t -= 1)) * Math.sin(((t - e) * O) / i),
        ui = (t, e, i) =>
            Math.pow(2, -10 * t) * Math.sin(((t - e) * O) / i) + 1,
        fi = {
            linear: (t) => t,
            easeInQuad: (t) => t * t,
            easeOutQuad: (t) => -t * (t - 2),
            easeInOutQuad: (t) =>
                (t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1),
            easeInCubic: (t) => t * t * t,
            easeOutCubic: (t) => (t -= 1) * t * t + 1,
            easeInOutCubic: (t) =>
                (t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2),
            easeInQuart: (t) => t * t * t * t,
            easeOutQuart: (t) => -((t -= 1) * t * t * t - 1),
            easeInOutQuart: (t) =>
                (t /= 0.5) < 1
                    ? 0.5 * t * t * t * t
                    : -0.5 * ((t -= 2) * t * t * t - 2),
            easeInQuint: (t) => t * t * t * t * t,
            easeOutQuint: (t) => (t -= 1) * t * t * t * t + 1,
            easeInOutQuint: (t) =>
                (t /= 0.5) < 1
                    ? 0.5 * t * t * t * t * t
                    : 0.5 * ((t -= 2) * t * t * t * t + 2),
            easeInSine: (t) => 1 - Math.cos(t * E),
            easeOutSine: (t) => Math.sin(t * E),
            easeInOutSine: (t) => -0.5 * (Math.cos(C * t) - 1),
            easeInExpo: (t) => (0 === t ? 0 : Math.pow(2, 10 * (t - 1))),
            easeOutExpo: (t) => (1 === t ? 1 : 1 - Math.pow(2, -10 * t)),
            easeInOutExpo: (t) =>
                ci(t)
                    ? t
                    : t < 0.5
                      ? 0.5 * Math.pow(2, 10 * (2 * t - 1))
                      : 0.5 * (2 - Math.pow(2, -10 * (2 * t - 1))),
            easeInCirc: (t) => (t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1)),
            easeOutCirc: (t) => Math.sqrt(1 - (t -= 1) * t),
            easeInOutCirc: (t) =>
                (t /= 0.5) < 1
                    ? -0.5 * (Math.sqrt(1 - t * t) - 1)
                    : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),
            easeInElastic: (t) => (ci(t) ? t : di(t, 0.075, 0.3)),
            easeOutElastic: (t) => (ci(t) ? t : ui(t, 0.075, 0.3)),
            easeInOutElastic(t) {
                const e = 0.1125
                return ci(t)
                    ? t
                    : t < 0.5
                      ? 0.5 * di(2 * t, e, 0.45)
                      : 0.5 + 0.5 * ui(2 * t - 1, e, 0.45)
            },
            easeInBack(t) {
                const e = 1.70158
                return t * t * ((e + 1) * t - e)
            },
            easeOutBack(t) {
                const e = 1.70158
                return (t -= 1) * t * ((e + 1) * t + e) + 1
            },
            easeInOutBack(t) {
                let e = 1.70158
                return (t /= 0.5) < 1
                    ? t * t * ((1 + (e *= 1.525)) * t - e) * 0.5
                    : 0.5 * ((t -= 2) * t * ((1 + (e *= 1.525)) * t + e) + 2)
            },
            easeInBounce: (t) => 1 - fi.easeOutBounce(1 - t),
            easeOutBounce(t) {
                const e = 7.5625,
                    i = 2.75
                return t < 1 / i
                    ? e * t * t
                    : t < 2 / i
                      ? e * (t -= 1.5 / i) * t + 0.75
                      : t < 2.5 / i
                        ? e * (t -= 2.25 / i) * t + 0.9375
                        : e * (t -= 2.625 / i) * t + 0.984375
            },
            easeInOutBounce: (t) =>
                t < 0.5
                    ? 0.5 * fi.easeInBounce(2 * t)
                    : 0.5 * fi.easeOutBounce(2 * t - 1) + 0.5,
        }
    function gi(t, e, i, s) {
        return { x: t.x + i * (e.x - t.x), y: t.y + i * (e.y - t.y) }
    }
    function pi(t, e, i, s) {
        return {
            x: t.x + i * (e.x - t.x),
            y:
                'middle' === s
                    ? i < 0.5
                        ? t.y
                        : e.y
                    : 'after' === s
                      ? i < 1
                          ? t.y
                          : e.y
                      : i > 0
                        ? e.y
                        : t.y,
        }
    }
    function mi(t, e, i, s) {
        const n = { x: t.cp2x, y: t.cp2y },
            o = { x: e.cp1x, y: e.cp1y },
            a = gi(t, n, i),
            r = gi(n, o, i),
            l = gi(o, e, i),
            h = gi(a, r, i),
            c = gi(r, l, i)
        return gi(h, c, i)
    }
    const bi = /^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,
        xi =
            /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/
    function _i(t, e) {
        const i = ('' + t).match(bi)
        if (!i || 'normal' === i[1]) return 1.2 * e
        switch (((t = +i[2]), i[3])) {
            case 'px':
                return t
            case '%':
                t /= 100
        }
        return e * t
    }
    const yi = (t) => +t || 0
    function vi(t, e) {
        const i = {},
            s = o(e),
            n = s ? Object.keys(e) : e,
            a = o(t) ? (s ? (i) => l(t[i], t[e[i]]) : (e) => t[e]) : () => t
        for (const t of n) i[t] = yi(a(t))
        return i
    }
    function Mi(t) {
        return vi(t, { top: 'y', right: 'x', bottom: 'y', left: 'x' })
    }
    function wi(t) {
        return vi(t, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight'])
    }
    function ki(t) {
        const e = Mi(t)
        return (e.width = e.left + e.right), (e.height = e.top + e.bottom), e
    }
    function Si(t, e) {
        ;(t = t || {}), (e = e || ue.font)
        let i = l(t.size, e.size)
        'string' == typeof i && (i = parseInt(i, 10))
        let s = l(t.style, e.style)
        s &&
            !('' + s).match(xi) &&
            (console.warn('Invalid font style specified: "' + s + '"'),
            (s = void 0))
        const n = {
            family: l(t.family, e.family),
            lineHeight: _i(l(t.lineHeight, e.lineHeight), i),
            size: i,
            style: s,
            weight: l(t.weight, e.weight),
            string: '',
        }
        return (n.string = De(n)), n
    }
    function Pi(t, e, i, s) {
        let o,
            a,
            r,
            l = !0
        for (o = 0, a = t.length; o < a; ++o)
            if (
                ((r = t[o]),
                void 0 !== r &&
                    (void 0 !== e &&
                        'function' == typeof r &&
                        ((r = r(e)), (l = !1)),
                    void 0 !== i && n(r) && ((r = r[i % r.length]), (l = !1)),
                    void 0 !== r))
            )
                return s && !l && (s.cacheable = !1), r
    }
    function Di(t, e, i) {
        const { min: s, max: n } = t,
            o = c(e, (n - s) / 2),
            a = (t, e) => (i && 0 === t ? 0 : t + e)
        return { min: a(s, -Math.abs(o)), max: a(n, o) }
    }
    function Ci(t, e) {
        return Object.assign(Object.create(t), e)
    }
    function Oi(t, e, i) {
        return t
            ? (function (t, e) {
                  return {
                      x: (i) => t + t + e - i,
                      setWidth(t) {
                          e = t
                      },
                      textAlign: (t) =>
                          'center' === t ? t : 'right' === t ? 'left' : 'right',
                      xPlus: (t, e) => t - e,
                      leftForLtr: (t, e) => t - e,
                  }
              })(e, i)
            : {
                  x: (t) => t,
                  setWidth(t) {},
                  textAlign: (t) => t,
                  xPlus: (t, e) => t + e,
                  leftForLtr: (t, e) => t,
              }
    }
    function Ai(t, e) {
        let i, s
        ;('ltr' !== e && 'rtl' !== e) ||
            ((i = t.canvas.style),
            (s = [
                i.getPropertyValue('direction'),
                i.getPropertyPriority('direction'),
            ]),
            i.setProperty('direction', e, 'important'),
            (t.prevTextDirection = s))
    }
    function Ti(t, e) {
        void 0 !== e &&
            (delete t.prevTextDirection,
            t.canvas.style.setProperty('direction', e[0], e[1]))
    }
    function Li(t) {
        return 'angle' === t
            ? { between: Z, compare: K, normalize: G }
            : { between: tt, compare: (t, e) => t - e, normalize: (t) => t }
    }
    function Ei({ start: t, end: e, count: i, loop: s, style: n }) {
        return {
            start: t % i,
            end: e % i,
            loop: s && (e - t + 1) % i == 0,
            style: n,
        }
    }
    function Ri(t, e, i) {
        if (!i) return [t]
        const { property: s, start: n, end: o } = i,
            a = e.length,
            { compare: r, between: l, normalize: h } = Li(s),
            {
                start: c,
                end: d,
                loop: u,
                style: f,
            } = (function (t, e, i) {
                const { property: s, start: n, end: o } = i,
                    { between: a, normalize: r } = Li(s),
                    l = e.length
                let h,
                    c,
                    { start: d, end: u, loop: f } = t
                if (f) {
                    for (
                        d += l, u += l, h = 0, c = l;
                        h < c && a(r(e[d % l][s]), n, o);
                        ++h
                    )
                        d--, u--
                    ;(d %= l), (u %= l)
                }
                return (
                    u < d && (u += l),
                    { start: d, end: u, loop: f, style: t.style }
                )
            })(t, e, i),
            g = []
        let p,
            m,
            b,
            x = !1,
            _ = null
        const y = () => x || (l(n, b, p) && 0 !== r(n, b)),
            v = () => !x || 0 === r(o, p) || l(o, b, p)
        for (let t = c, i = c; t <= d; ++t)
            (m = e[t % a]),
                m.skip ||
                    ((p = h(m[s])),
                    p !== b &&
                        ((x = l(p, n, o)),
                        null === _ && y() && (_ = 0 === r(p, n) ? t : i),
                        null !== _ &&
                            v() &&
                            (g.push(
                                Ei({
                                    start: _,
                                    end: t,
                                    loop: u,
                                    count: a,
                                    style: f,
                                })
                            ),
                            (_ = null)),
                        (i = t),
                        (b = p)))
        return (
            null !== _ &&
                g.push(Ei({ start: _, end: d, loop: u, count: a, style: f })),
            g
        )
    }
    function Ii(t, e) {
        const i = [],
            s = t.segments
        for (let n = 0; n < s.length; n++) {
            const o = Ri(s[n], t.points, e)
            o.length && i.push(...o)
        }
        return i
    }
    function zi(t, e) {
        const i = t.points,
            s = t.options.spanGaps,
            n = i.length
        if (!n) return []
        const o = !!t._loop,
            { start: a, end: r } = (function (t, e, i, s) {
                let n = 0,
                    o = e - 1
                if (i && !s) for (; n < e && !t[n].skip; ) n++
                for (; n < e && t[n].skip; ) n++
                for (n %= e, i && (o += n); o > n && t[o % e].skip; ) o--
                return (o %= e), { start: n, end: o }
            })(i, n, o, s)
        if (!0 === s) return Fi(t, [{ start: a, end: r, loop: o }], i, e)
        return Fi(
            t,
            (function (t, e, i, s) {
                const n = t.length,
                    o = []
                let a,
                    r = e,
                    l = t[e]
                for (a = e + 1; a <= i; ++a) {
                    const i = t[a % n]
                    i.skip || i.stop
                        ? l.skip ||
                          ((s = !1),
                          o.push({ start: e % n, end: (a - 1) % n, loop: s }),
                          (e = r = i.stop ? a : null))
                        : ((r = a), l.skip && (e = a)),
                        (l = i)
                }
                return (
                    null !== r && o.push({ start: e % n, end: r % n, loop: s }),
                    o
                )
            })(
                i,
                a,
                r < a ? r + n : r,
                !!t._fullLoop && 0 === a && r === n - 1
            ),
            i,
            e
        )
    }
    function Fi(t, e, i, s) {
        return s && s.setContext && i
            ? (function (t, e, i, s) {
                  const n = t._chart.getContext(),
                      o = Vi(t.options),
                      {
                          _datasetIndex: a,
                          options: { spanGaps: r },
                      } = t,
                      l = i.length,
                      h = []
                  let c = o,
                      d = e[0].start,
                      u = d
                  function f(t, e, s, n) {
                      const o = r ? -1 : 1
                      if (t !== e) {
                          for (t += l; i[t % l].skip; ) t -= o
                          for (; i[e % l].skip; ) e += o
                          t % l != e % l &&
                              (h.push({
                                  start: t % l,
                                  end: e % l,
                                  loop: s,
                                  style: n,
                              }),
                              (c = n),
                              (d = e % l))
                      }
                  }
                  for (const t of e) {
                      d = r ? d : t.start
                      let e,
                          o = i[d % l]
                      for (u = d + 1; u <= t.end; u++) {
                          const r = i[u % l]
                          ;(e = Vi(
                              s.setContext(
                                  Ci(n, {
                                      type: 'segment',
                                      p0: o,
                                      p1: r,
                                      p0DataIndex: (u - 1) % l,
                                      p1DataIndex: u % l,
                                      datasetIndex: a,
                                  })
                              )
                          )),
                              Bi(e, c) && f(d, u - 1, t.loop, c),
                              (o = r),
                              (c = e)
                      }
                      d < u - 1 && f(d, u - 1, t.loop, c)
                  }
                  return h
              })(t, e, i, s)
            : e
    }
    function Vi(t) {
        return {
            backgroundColor: t.backgroundColor,
            borderCapStyle: t.borderCapStyle,
            borderDash: t.borderDash,
            borderDashOffset: t.borderDashOffset,
            borderJoinStyle: t.borderJoinStyle,
            borderWidth: t.borderWidth,
            borderColor: t.borderColor,
        }
    }
    function Bi(t, e) {
        if (!e) return !1
        const i = [],
            s = function (t, e) {
                return Jt(e) ? (i.includes(e) || i.push(e), i.indexOf(e)) : e
            }
        return JSON.stringify(t, s) !== JSON.stringify(e, s)
    }
    var Ni = Object.freeze({
        __proto__: null,
        HALF_PI: E,
        INFINITY: T,
        PI: C,
        PITAU: A,
        QUARTER_PI: R,
        RAD_PER_DEG: L,
        TAU: O,
        TWO_THIRDS_PI: I,
        _addGrace: Di,
        _alignPixel: Ae,
        _alignStartEnd: ft,
        _angleBetween: Z,
        _angleDiff: K,
        _arrayUnique: lt,
        _attachContext: $e,
        _bezierCurveTo: Ve,
        _bezierInterpolation: mi,
        _boundSegment: Ri,
        _boundSegments: Ii,
        _capitalize: w,
        _computeSegments: zi,
        _createResolver: je,
        _decimalPlaces: U,
        _deprecated: function (t, e, i, s) {
            void 0 !== e &&
                console.warn(
                    t +
                        ': "' +
                        i +
                        '" is deprecated. Please use "' +
                        s +
                        '" instead'
                )
        },
        _descriptors: Ye,
        _elementsEqual: f,
        _factorize: N,
        _filterBetween: nt,
        _getParentNode: ge,
        _getStartAndCountOfVisiblePoints: pt,
        _int16Range: Q,
        _isBetween: tt,
        _isClickEvent: D,
        _isDomSupported: fe,
        _isPointInArea: Re,
        _limitValue: J,
        _longestText: Oe,
        _lookup: et,
        _lookupByKey: it,
        _measureText: Ce,
        _merger: m,
        _mergerIf: _,
        _normalizeAngle: G,
        _parseObjectDataRadialScale: ii,
        _pointInLine: gi,
        _readValueToProps: vi,
        _rlookupByKey: st,
        _scaleRangesChanged: mt,
        _setMinAndMaxByKey: j,
        _splitKey: v,
        _steppedInterpolation: pi,
        _steppedLineTo: Fe,
        _textX: gt,
        _toLeftRightCenter: ut,
        _updateBezierControlPoints: hi,
        addRoundedRectPath: He,
        almostEquals: V,
        almostWhole: H,
        callback: d,
        clearCanvas: Te,
        clipArea: Ie,
        clone: g,
        color: Qt,
        createContext: Ci,
        debounce: dt,
        defined: k,
        distanceBetweenPoints: q,
        drawPoint: Le,
        drawPointLegend: Ee,
        each: u,
        easingEffects: fi,
        finiteOrDefault: r,
        fontString: function (t, e, i) {
            return e + ' ' + t + 'px ' + i
        },
        formatNumber: ne,
        getAngleFromPoint: X,
        getHoverColor: te,
        getMaximumSize: we,
        getRelativePosition: ve,
        getRtlAdapter: Oi,
        getStyle: be,
        isArray: n,
        isFinite: a,
        isFunction: S,
        isNullOrUndef: s,
        isNumber: W,
        isObject: o,
        isPatternOrGradient: Jt,
        listenArrayEvents: at,
        log10: z,
        merge: b,
        mergeIf: x,
        niceNum: B,
        noop: e,
        overrideTextDirection: Ai,
        readUsedSize: Pe,
        renderText: We,
        requestAnimFrame: ht,
        resolve: Pi,
        resolveObjectKey: M,
        restoreTextDirection: Ti,
        retinaScale: ke,
        setsEqual: P,
        sign: F,
        splineCurve: ai,
        splineCurveMonotone: ri,
        supportsEventListenerOptions: Se,
        throttled: ct,
        toDegrees: Y,
        toDimension: c,
        toFont: Si,
        toFontString: De,
        toLineHeight: _i,
        toPadding: ki,
        toPercentage: h,
        toRadians: $,
        toTRBL: Mi,
        toTRBLCorners: wi,
        uid: i,
        unclipArea: ze,
        unlistenArrayEvents: rt,
        valueOrDefault: l,
    })
    function Wi(t, e, i, s) {
        const { controller: n, data: o, _sorted: a } = t,
            r = n._cachedMeta.iScale
        if (r && e === r.axis && 'r' !== e && a && o.length) {
            const t = r._reversePixels ? st : it
            if (!s) return t(o, e, i)
            if (n._sharedOptions) {
                const s = o[0],
                    n = 'function' == typeof s.getRange && s.getRange(e)
                if (n) {
                    const s = t(o, e, i - n),
                        a = t(o, e, i + n)
                    return { lo: s.lo, hi: a.hi }
                }
            }
        }
        return { lo: 0, hi: o.length - 1 }
    }
    function Hi(t, e, i, s, n) {
        const o = t.getSortedVisibleDatasetMetas(),
            a = i[e]
        for (let t = 0, i = o.length; t < i; ++t) {
            const { index: i, data: r } = o[t],
                { lo: l, hi: h } = Wi(o[t], e, a, n)
            for (let t = l; t <= h; ++t) {
                const e = r[t]
                e.skip || s(e, i, t)
            }
        }
    }
    function ji(t, e, i, s, n) {
        const o = []
        if (!n && !t.isPointInArea(e)) return o
        return (
            Hi(
                t,
                i,
                e,
                function (i, a, r) {
                    ;(n || Re(i, t.chartArea, 0)) &&
                        i.inRange(e.x, e.y, s) &&
                        o.push({ element: i, datasetIndex: a, index: r })
                },
                !0
            ),
            o
        )
    }
    function $i(t, e, i, s, n, o) {
        let a = []
        const r = (function (t) {
            const e = -1 !== t.indexOf('x'),
                i = -1 !== t.indexOf('y')
            return function (t, s) {
                const n = e ? Math.abs(t.x - s.x) : 0,
                    o = i ? Math.abs(t.y - s.y) : 0
                return Math.sqrt(Math.pow(n, 2) + Math.pow(o, 2))
            }
        })(i)
        let l = Number.POSITIVE_INFINITY
        return (
            Hi(t, i, e, function (i, h, c) {
                const d = i.inRange(e.x, e.y, n)
                if (s && !d) return
                const u = i.getCenterPoint(n)
                if (!(!!o || t.isPointInArea(u)) && !d) return
                const f = r(e, u)
                f < l
                    ? ((a = [{ element: i, datasetIndex: h, index: c }]),
                      (l = f))
                    : f === l &&
                      a.push({ element: i, datasetIndex: h, index: c })
            }),
            a
        )
    }
    function Yi(t, e, i, s, n, o) {
        return o || t.isPointInArea(e)
            ? 'r' !== i || s
                ? $i(t, e, i, s, n, o)
                : (function (t, e, i, s) {
                      let n = []
                      return (
                          Hi(t, i, e, function (t, i, o) {
                              const { startAngle: a, endAngle: r } = t.getProps(
                                      ['startAngle', 'endAngle'],
                                      s
                                  ),
                                  { angle: l } = X(t, { x: e.x, y: e.y })
                              Z(l, a, r) &&
                                  n.push({
                                      element: t,
                                      datasetIndex: i,
                                      index: o,
                                  })
                          }),
                          n
                      )
                  })(t, e, i, n)
            : []
    }
    function Ui(t, e, i, s, n) {
        const o = [],
            a = 'x' === i ? 'inXRange' : 'inYRange'
        let r = !1
        return (
            Hi(t, i, e, (t, s, l) => {
                t[a](e[i], n) &&
                    (o.push({ element: t, datasetIndex: s, index: l }),
                    (r = r || t.inRange(e.x, e.y, n)))
            }),
            s && !r ? [] : o
        )
    }
    var Xi = {
        evaluateInteractionItems: Hi,
        modes: {
            index(t, e, i, s) {
                const n = ve(e, t),
                    o = i.axis || 'x',
                    a = i.includeInvisible || !1,
                    r = i.intersect ? ji(t, n, o, s, a) : Yi(t, n, o, !1, s, a),
                    l = []
                return r.length
                    ? (t.getSortedVisibleDatasetMetas().forEach((t) => {
                          const e = r[0].index,
                              i = t.data[e]
                          i &&
                              !i.skip &&
                              l.push({
                                  element: i,
                                  datasetIndex: t.index,
                                  index: e,
                              })
                      }),
                      l)
                    : []
            },
            dataset(t, e, i, s) {
                const n = ve(e, t),
                    o = i.axis || 'xy',
                    a = i.includeInvisible || !1
                let r = i.intersect ? ji(t, n, o, s, a) : Yi(t, n, o, !1, s, a)
                if (r.length > 0) {
                    const e = r[0].datasetIndex,
                        i = t.getDatasetMeta(e).data
                    r = []
                    for (let t = 0; t < i.length; ++t)
                        r.push({ element: i[t], datasetIndex: e, index: t })
                }
                return r
            },
            point: (t, e, i, s) =>
                ji(t, ve(e, t), i.axis || 'xy', s, i.includeInvisible || !1),
            nearest(t, e, i, s) {
                const n = ve(e, t),
                    o = i.axis || 'xy',
                    a = i.includeInvisible || !1
                return Yi(t, n, o, i.intersect, s, a)
            },
            x: (t, e, i, s) => Ui(t, ve(e, t), 'x', i.intersect, s),
            y: (t, e, i, s) => Ui(t, ve(e, t), 'y', i.intersect, s),
        },
    }
    const qi = ['left', 'top', 'right', 'bottom']
    function Ki(t, e) {
        return t.filter((t) => t.pos === e)
    }
    function Gi(t, e) {
        return t.filter((t) => -1 === qi.indexOf(t.pos) && t.box.axis === e)
    }
    function Zi(t, e) {
        return t.sort((t, i) => {
            const s = e ? i : t,
                n = e ? t : i
            return s.weight === n.weight
                ? s.index - n.index
                : s.weight - n.weight
        })
    }
    function Ji(t, e) {
        const i = (function (t) {
                const e = {}
                for (const i of t) {
                    const { stack: t, pos: s, stackWeight: n } = i
                    if (!t || !qi.includes(s)) continue
                    const o =
                        e[t] ||
                        (e[t] = { count: 0, placed: 0, weight: 0, size: 0 })
                    o.count++, (o.weight += n)
                }
                return e
            })(t),
            { vBoxMaxWidth: s, hBoxMaxHeight: n } = e
        let o, a, r
        for (o = 0, a = t.length; o < a; ++o) {
            r = t[o]
            const { fullSize: a } = r.box,
                l = i[r.stack],
                h = l && r.stackWeight / l.weight
            r.horizontal
                ? ((r.width = h ? h * s : a && e.availableWidth),
                  (r.height = n))
                : ((r.width = s),
                  (r.height = h ? h * n : a && e.availableHeight))
        }
        return i
    }
    function Qi(t, e, i, s) {
        return Math.max(t[i], e[i]) + Math.max(t[s], e[s])
    }
    function ts(t, e) {
        ;(t.top = Math.max(t.top, e.top)),
            (t.left = Math.max(t.left, e.left)),
            (t.bottom = Math.max(t.bottom, e.bottom)),
            (t.right = Math.max(t.right, e.right))
    }
    function es(t, e, i, s) {
        const { pos: n, box: a } = i,
            r = t.maxPadding
        if (!o(n)) {
            i.size && (t[n] -= i.size)
            const e = s[i.stack] || { size: 0, count: 1 }
            ;(e.size = Math.max(e.size, i.horizontal ? a.height : a.width)),
                (i.size = e.size / e.count),
                (t[n] += i.size)
        }
        a.getPadding && ts(r, a.getPadding())
        const l = Math.max(0, e.outerWidth - Qi(r, t, 'left', 'right')),
            h = Math.max(0, e.outerHeight - Qi(r, t, 'top', 'bottom')),
            c = l !== t.w,
            d = h !== t.h
        return (
            (t.w = l),
            (t.h = h),
            i.horizontal ? { same: c, other: d } : { same: d, other: c }
        )
    }
    function is(t, e) {
        const i = e.maxPadding
        function s(t) {
            const s = { left: 0, top: 0, right: 0, bottom: 0 }
            return (
                t.forEach((t) => {
                    s[t] = Math.max(e[t], i[t])
                }),
                s
            )
        }
        return s(t ? ['left', 'right'] : ['top', 'bottom'])
    }
    function ss(t, e, i, s) {
        const n = []
        let o, a, r, l, h, c
        for (o = 0, a = t.length, h = 0; o < a; ++o) {
            ;(r = t[o]),
                (l = r.box),
                l.update(r.width || e.w, r.height || e.h, is(r.horizontal, e))
            const { same: a, other: d } = es(e, i, r, s)
            ;(h |= a && n.length), (c = c || d), l.fullSize || n.push(r)
        }
        return (h && ss(n, e, i, s)) || c
    }
    function ns(t, e, i, s, n) {
        ;(t.top = i),
            (t.left = e),
            (t.right = e + s),
            (t.bottom = i + n),
            (t.width = s),
            (t.height = n)
    }
    function os(t, e, i, s) {
        const n = i.padding
        let { x: o, y: a } = e
        for (const r of t) {
            const t = r.box,
                l = s[r.stack] || { count: 1, placed: 0, weight: 1 },
                h = r.stackWeight / l.weight || 1
            if (r.horizontal) {
                const s = e.w * h,
                    o = l.size || t.height
                k(l.start) && (a = l.start),
                    t.fullSize
                        ? ns(t, n.left, a, i.outerWidth - n.right - n.left, o)
                        : ns(t, e.left + l.placed, a, s, o),
                    (l.start = a),
                    (l.placed += s),
                    (a = t.bottom)
            } else {
                const s = e.h * h,
                    a = l.size || t.width
                k(l.start) && (o = l.start),
                    t.fullSize
                        ? ns(t, o, n.top, a, i.outerHeight - n.bottom - n.top)
                        : ns(t, o, e.top + l.placed, a, s),
                    (l.start = o),
                    (l.placed += s),
                    (o = t.right)
            }
        }
        ;(e.x = o), (e.y = a)
    }
    var as = {
        addBox(t, e) {
            t.boxes || (t.boxes = []),
                (e.fullSize = e.fullSize || !1),
                (e.position = e.position || 'top'),
                (e.weight = e.weight || 0),
                (e._layers =
                    e._layers ||
                    function () {
                        return [
                            {
                                z: 0,
                                draw(t) {
                                    e.draw(t)
                                },
                            },
                        ]
                    }),
                t.boxes.push(e)
        },
        removeBox(t, e) {
            const i = t.boxes ? t.boxes.indexOf(e) : -1
            ;-1 !== i && t.boxes.splice(i, 1)
        },
        configure(t, e, i) {
            ;(e.fullSize = i.fullSize),
                (e.position = i.position),
                (e.weight = i.weight)
        },
        update(t, e, i, s) {
            if (!t) return
            const n = ki(t.options.layout.padding),
                o = Math.max(e - n.width, 0),
                a = Math.max(i - n.height, 0),
                r = (function (t) {
                    const e = (function (t) {
                            const e = []
                            let i, s, n, o, a, r
                            for (i = 0, s = (t || []).length; i < s; ++i)
                                (n = t[i]),
                                    ({
                                        position: o,
                                        options: {
                                            stack: a,
                                            stackWeight: r = 1,
                                        },
                                    } = n),
                                    e.push({
                                        index: i,
                                        box: n,
                                        pos: o,
                                        horizontal: n.isHorizontal(),
                                        weight: n.weight,
                                        stack: a && o + a,
                                        stackWeight: r,
                                    })
                            return e
                        })(t),
                        i = Zi(
                            e.filter((t) => t.box.fullSize),
                            !0
                        ),
                        s = Zi(Ki(e, 'left'), !0),
                        n = Zi(Ki(e, 'right')),
                        o = Zi(Ki(e, 'top'), !0),
                        a = Zi(Ki(e, 'bottom')),
                        r = Gi(e, 'x'),
                        l = Gi(e, 'y')
                    return {
                        fullSize: i,
                        leftAndTop: s.concat(o),
                        rightAndBottom: n.concat(l).concat(a).concat(r),
                        chartArea: Ki(e, 'chartArea'),
                        vertical: s.concat(n).concat(l),
                        horizontal: o.concat(a).concat(r),
                    }
                })(t.boxes),
                l = r.vertical,
                h = r.horizontal
            u(t.boxes, (t) => {
                'function' == typeof t.beforeLayout && t.beforeLayout()
            })
            const c =
                    l.reduce(
                        (t, e) =>
                            e.box.options && !1 === e.box.options.display
                                ? t
                                : t + 1,
                        0
                    ) || 1,
                d = Object.freeze({
                    outerWidth: e,
                    outerHeight: i,
                    padding: n,
                    availableWidth: o,
                    availableHeight: a,
                    vBoxMaxWidth: o / 2 / c,
                    hBoxMaxHeight: a / 2,
                }),
                f = Object.assign({}, n)
            ts(f, ki(s))
            const g = Object.assign(
                    { maxPadding: f, w: o, h: a, x: n.left, y: n.top },
                    n
                ),
                p = Ji(l.concat(h), d)
            ss(r.fullSize, g, d, p),
                ss(l, g, d, p),
                ss(h, g, d, p) && ss(l, g, d, p),
                (function (t) {
                    const e = t.maxPadding
                    function i(i) {
                        const s = Math.max(e[i] - t[i], 0)
                        return (t[i] += s), s
                    }
                    ;(t.y += i('top')),
                        (t.x += i('left')),
                        i('right'),
                        i('bottom')
                })(g),
                os(r.leftAndTop, g, d, p),
                (g.x += g.w),
                (g.y += g.h),
                os(r.rightAndBottom, g, d, p),
                (t.chartArea = {
                    left: g.left,
                    top: g.top,
                    right: g.left + g.w,
                    bottom: g.top + g.h,
                    height: g.h,
                    width: g.w,
                }),
                u(r.chartArea, (e) => {
                    const i = e.box
                    Object.assign(i, t.chartArea),
                        i.update(g.w, g.h, {
                            left: 0,
                            top: 0,
                            right: 0,
                            bottom: 0,
                        })
                })
        },
    }
    class rs {
        acquireContext(t, e) {}
        releaseContext(t) {
            return !1
        }
        addEventListener(t, e, i) {}
        removeEventListener(t, e, i) {}
        getDevicePixelRatio() {
            return 1
        }
        getMaximumSize(t, e, i, s) {
            return (
                (e = Math.max(0, e || t.width)),
                (i = i || t.height),
                { width: e, height: Math.max(0, s ? Math.floor(e / s) : i) }
            )
        }
        isAttached(t) {
            return !0
        }
        updateConfig(t) {}
    }
    class ls extends rs {
        acquireContext(t) {
            return (t && t.getContext && t.getContext('2d')) || null
        }
        updateConfig(t) {
            t.options.animation = !1
        }
    }
    const hs = '$chartjs',
        cs = {
            touchstart: 'mousedown',
            touchmove: 'mousemove',
            touchend: 'mouseup',
            pointerenter: 'mouseenter',
            pointerdown: 'mousedown',
            pointermove: 'mousemove',
            pointerup: 'mouseup',
            pointerleave: 'mouseout',
            pointerout: 'mouseout',
        },
        ds = (t) => null === t || '' === t
    const us = !!Se && { passive: !0 }
    function fs(t, e, i) {
        t.canvas.removeEventListener(e, i, us)
    }
    function gs(t, e) {
        for (const i of t) if (i === e || i.contains(e)) return !0
    }
    function ps(t, e, i) {
        const s = t.canvas,
            n = new MutationObserver((t) => {
                let e = !1
                for (const i of t)
                    (e = e || gs(i.addedNodes, s)),
                        (e = e && !gs(i.removedNodes, s))
                e && i()
            })
        return n.observe(document, { childList: !0, subtree: !0 }), n
    }
    function ms(t, e, i) {
        const s = t.canvas,
            n = new MutationObserver((t) => {
                let e = !1
                for (const i of t)
                    (e = e || gs(i.removedNodes, s)),
                        (e = e && !gs(i.addedNodes, s))
                e && i()
            })
        return n.observe(document, { childList: !0, subtree: !0 }), n
    }
    const bs = new Map()
    let xs = 0
    function _s() {
        const t = window.devicePixelRatio
        t !== xs &&
            ((xs = t),
            bs.forEach((e, i) => {
                i.currentDevicePixelRatio !== t && e()
            }))
    }
    function ys(t, e, i) {
        const s = t.canvas,
            n = s && ge(s)
        if (!n) return
        const o = ct((t, e) => {
                const s = n.clientWidth
                i(t, e), s < n.clientWidth && i()
            }, window),
            a = new ResizeObserver((t) => {
                const e = t[0],
                    i = e.contentRect.width,
                    s = e.contentRect.height
                ;(0 === i && 0 === s) || o(i, s)
            })
        return (
            a.observe(n),
            (function (t, e) {
                bs.size || window.addEventListener('resize', _s), bs.set(t, e)
            })(t, o),
            a
        )
    }
    function vs(t, e, i) {
        i && i.disconnect(),
            'resize' === e &&
                (function (t) {
                    bs.delete(t),
                        bs.size || window.removeEventListener('resize', _s)
                })(t)
    }
    function Ms(t, e, i) {
        const s = t.canvas,
            n = ct((e) => {
                null !== t.ctx &&
                    i(
                        (function (t, e) {
                            const i = cs[t.type] || t.type,
                                { x: s, y: n } = ve(t, e)
                            return {
                                type: i,
                                chart: e,
                                native: t,
                                x: void 0 !== s ? s : null,
                                y: void 0 !== n ? n : null,
                            }
                        })(e, t)
                    )
            }, t)
        return (
            (function (t, e, i) {
                t.addEventListener(e, i, us)
            })(s, e, n),
            n
        )
    }
    class ws extends rs {
        acquireContext(t, e) {
            const i = t && t.getContext && t.getContext('2d')
            return i && i.canvas === t
                ? ((function (t, e) {
                      const i = t.style,
                          s = t.getAttribute('height'),
                          n = t.getAttribute('width')
                      if (
                          ((t[hs] = {
                              initial: {
                                  height: s,
                                  width: n,
                                  style: {
                                      display: i.display,
                                      height: i.height,
                                      width: i.width,
                                  },
                              },
                          }),
                          (i.display = i.display || 'block'),
                          (i.boxSizing = i.boxSizing || 'border-box'),
                          ds(n))
                      ) {
                          const e = Pe(t, 'width')
                          void 0 !== e && (t.width = e)
                      }
                      if (ds(s))
                          if ('' === t.style.height)
                              t.height = t.width / (e || 2)
                          else {
                              const e = Pe(t, 'height')
                              void 0 !== e && (t.height = e)
                          }
                  })(t, e),
                  i)
                : null
        }
        releaseContext(t) {
            const e = t.canvas
            if (!e[hs]) return !1
            const i = e[hs].initial
            ;['height', 'width'].forEach((t) => {
                const n = i[t]
                s(n) ? e.removeAttribute(t) : e.setAttribute(t, n)
            })
            const n = i.style || {}
            return (
                Object.keys(n).forEach((t) => {
                    e.style[t] = n[t]
                }),
                (e.width = e.width),
                delete e[hs],
                !0
            )
        }
        addEventListener(t, e, i) {
            this.removeEventListener(t, e)
            const s = t.$proxies || (t.$proxies = {}),
                n = { attach: ps, detach: ms, resize: ys }[e] || Ms
            s[e] = n(t, e, i)
        }
        removeEventListener(t, e) {
            const i = t.$proxies || (t.$proxies = {}),
                s = i[e]
            if (!s) return
            ;(({ attach: vs, detach: vs, resize: vs })[e] || fs)(t, e, s),
                (i[e] = void 0)
        }
        getDevicePixelRatio() {
            return window.devicePixelRatio
        }
        getMaximumSize(t, e, i, s) {
            return we(t, e, i, s)
        }
        isAttached(t) {
            const e = ge(t)
            return !(!e || !e.isConnected)
        }
    }
    function ks(t) {
        return !fe() ||
            ('undefined' != typeof OffscreenCanvas &&
                t instanceof OffscreenCanvas)
            ? ls
            : ws
    }
    var Ss = Object.freeze({
        __proto__: null,
        BasePlatform: rs,
        BasicPlatform: ls,
        DomPlatform: ws,
        _detectPlatform: ks,
    })
    const Ps = 'transparent',
        Ds = {
            boolean: (t, e, i) => (i > 0.5 ? e : t),
            color(t, e, i) {
                const s = Qt(t || Ps),
                    n = s.valid && Qt(e || Ps)
                return n && n.valid ? n.mix(s, i).hexString() : e
            },
            number: (t, e, i) => t + (e - t) * i,
        }
    class Cs {
        constructor(t, e, i, s) {
            const n = e[i]
            s = Pi([t.to, s, n, t.from])
            const o = Pi([t.from, n, s])
            ;(this._active = !0),
                (this._fn = t.fn || Ds[t.type || typeof o]),
                (this._easing = fi[t.easing] || fi.linear),
                (this._start = Math.floor(Date.now() + (t.delay || 0))),
                (this._duration = this._total = Math.floor(t.duration)),
                (this._loop = !!t.loop),
                (this._target = e),
                (this._prop = i),
                (this._from = o),
                (this._to = s),
                (this._promises = void 0)
        }
        active() {
            return this._active
        }
        update(t, e, i) {
            if (this._active) {
                this._notify(!1)
                const s = this._target[this._prop],
                    n = i - this._start,
                    o = this._duration - n
                ;(this._start = i),
                    (this._duration = Math.floor(Math.max(o, t.duration))),
                    (this._total += n),
                    (this._loop = !!t.loop),
                    (this._to = Pi([t.to, e, s, t.from])),
                    (this._from = Pi([t.from, s, e]))
            }
        }
        cancel() {
            this._active &&
                (this.tick(Date.now()), (this._active = !1), this._notify(!1))
        }
        tick(t) {
            const e = t - this._start,
                i = this._duration,
                s = this._prop,
                n = this._from,
                o = this._loop,
                a = this._to
            let r
            if (((this._active = n !== a && (o || e < i)), !this._active))
                return (this._target[s] = a), void this._notify(!0)
            e < 0
                ? (this._target[s] = n)
                : ((r = (e / i) % 2),
                  (r = o && r > 1 ? 2 - r : r),
                  (r = this._easing(Math.min(1, Math.max(0, r)))),
                  (this._target[s] = this._fn(n, a, r)))
        }
        wait() {
            const t = this._promises || (this._promises = [])
            return new Promise((e, i) => {
                t.push({ res: e, rej: i })
            })
        }
        _notify(t) {
            const e = t ? 'res' : 'rej',
                i = this._promises || []
            for (let t = 0; t < i.length; t++) i[t][e]()
        }
    }
    class Os {
        constructor(t, e) {
            ;(this._chart = t),
                (this._properties = new Map()),
                this.configure(e)
        }
        configure(t) {
            if (!o(t)) return
            const e = Object.keys(ue.animation),
                i = this._properties
            Object.getOwnPropertyNames(t).forEach((s) => {
                const a = t[s]
                if (!o(a)) return
                const r = {}
                for (const t of e) r[t] = a[t]
                ;((n(a.properties) && a.properties) || [s]).forEach((t) => {
                    ;(t !== s && i.has(t)) || i.set(t, r)
                })
            })
        }
        _animateOptions(t, e) {
            const i = e.options,
                s = (function (t, e) {
                    if (!e) return
                    let i = t.options
                    if (!i) return void (t.options = e)
                    i.$shared &&
                        (t.options = i =
                            Object.assign({}, i, {
                                $shared: !1,
                                $animations: {},
                            }))
                    return i
                })(t, i)
            if (!s) return []
            const n = this._createAnimations(s, i)
            return (
                i.$shared &&
                    (function (t, e) {
                        const i = [],
                            s = Object.keys(e)
                        for (let e = 0; e < s.length; e++) {
                            const n = t[s[e]]
                            n && n.active() && i.push(n.wait())
                        }
                        return Promise.all(i)
                    })(t.options.$animations, i).then(
                        () => {
                            t.options = i
                        },
                        () => {}
                    ),
                n
            )
        }
        _createAnimations(t, e) {
            const i = this._properties,
                s = [],
                n = t.$animations || (t.$animations = {}),
                o = Object.keys(e),
                a = Date.now()
            let r
            for (r = o.length - 1; r >= 0; --r) {
                const l = o[r]
                if ('$' === l.charAt(0)) continue
                if ('options' === l) {
                    s.push(...this._animateOptions(t, e))
                    continue
                }
                const h = e[l]
                let c = n[l]
                const d = i.get(l)
                if (c) {
                    if (d && c.active()) {
                        c.update(d, h, a)
                        continue
                    }
                    c.cancel()
                }
                d && d.duration
                    ? ((n[l] = c = new Cs(d, t, l, h)), s.push(c))
                    : (t[l] = h)
            }
            return s
        }
        update(t, e) {
            if (0 === this._properties.size) return void Object.assign(t, e)
            const i = this._createAnimations(t, e)
            return i.length ? (xt.add(this._chart, i), !0) : void 0
        }
    }
    function As(t, e) {
        const i = (t && t.options) || {},
            s = i.reverse,
            n = void 0 === i.min ? e : 0,
            o = void 0 === i.max ? e : 0
        return { start: s ? o : n, end: s ? n : o }
    }
    function Ts(t, e) {
        const i = [],
            s = t._getSortedDatasetMetas(e)
        let n, o
        for (n = 0, o = s.length; n < o; ++n) i.push(s[n].index)
        return i
    }
    function Ls(t, e, i, s = {}) {
        const n = t.keys,
            o = 'single' === s.mode
        let r, l, h, c
        if (null !== e) {
            for (r = 0, l = n.length; r < l; ++r) {
                if (((h = +n[r]), h === i)) {
                    if (s.all) continue
                    break
                }
                ;(c = t.values[h]),
                    a(c) && (o || 0 === e || F(e) === F(c)) && (e += c)
            }
            return e
        }
    }
    function Es(t, e) {
        const i = t && t.options.stacked
        return i || (void 0 === i && void 0 !== e.stack)
    }
    function Rs(t, e, i) {
        const s = t[e] || (t[e] = {})
        return s[i] || (s[i] = {})
    }
    function Is(t, e, i, s) {
        for (const n of e.getMatchingVisibleMetas(s).reverse()) {
            const e = t[n.index]
            if ((i && e > 0) || (!i && e < 0)) return n.index
        }
        return null
    }
    function zs(t, e) {
        const { chart: i, _cachedMeta: s } = t,
            n = i._stacks || (i._stacks = {}),
            { iScale: o, vScale: a, index: r } = s,
            l = o.axis,
            h = a.axis,
            c = (function (t, e, i) {
                return `${t.id}.${e.id}.${i.stack || i.type}`
            })(o, a, s),
            d = e.length
        let u
        for (let t = 0; t < d; ++t) {
            const i = e[t],
                { [l]: o, [h]: d } = i
            ;(u = (i._stacks || (i._stacks = {}))[h] = Rs(n, c, o)),
                (u[r] = d),
                (u._top = Is(u, a, !0, s.type)),
                (u._bottom = Is(u, a, !1, s.type))
            ;(u._visualValues || (u._visualValues = {}))[r] = d
        }
    }
    function Fs(t, e) {
        const i = t.scales
        return Object.keys(i)
            .filter((t) => i[t].axis === e)
            .shift()
    }
    function Vs(t, e) {
        const i = t.controller.index,
            s = t.vScale && t.vScale.axis
        if (s) {
            e = e || t._parsed
            for (const t of e) {
                const e = t._stacks
                if (!e || void 0 === e[s] || void 0 === e[s][i]) return
                delete e[s][i],
                    void 0 !== e[s]._visualValues &&
                        void 0 !== e[s]._visualValues[i] &&
                        delete e[s]._visualValues[i]
            }
        }
    }
    const Bs = (t) => 'reset' === t || 'none' === t,
        Ns = (t, e) => (e ? t : Object.assign({}, t))
    class Ws {
        static defaults = {}
        static datasetElementType = null
        static dataElementType = null
        constructor(t, e) {
            ;(this.chart = t),
                (this._ctx = t.ctx),
                (this.index = e),
                (this._cachedDataOpts = {}),
                (this._cachedMeta = this.getMeta()),
                (this._type = this._cachedMeta.type),
                (this.options = void 0),
                (this._parsing = !1),
                (this._data = void 0),
                (this._objectData = void 0),
                (this._sharedOptions = void 0),
                (this._drawStart = void 0),
                (this._drawCount = void 0),
                (this.enableOptionSharing = !1),
                (this.supportsDecimation = !1),
                (this.$context = void 0),
                (this._syncList = []),
                (this.datasetElementType = new.target.datasetElementType),
                (this.dataElementType = new.target.dataElementType),
                this.initialize()
        }
        initialize() {
            const t = this._cachedMeta
            this.configure(),
                this.linkScales(),
                (t._stacked = Es(t.vScale, t)),
                this.addElements(),
                this.options.fill &&
                    !this.chart.isPluginEnabled('filler') &&
                    console.warn(
                        "Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options"
                    )
        }
        updateIndex(t) {
            this.index !== t && Vs(this._cachedMeta), (this.index = t)
        }
        linkScales() {
            const t = this.chart,
                e = this._cachedMeta,
                i = this.getDataset(),
                s = (t, e, i, s) => ('x' === t ? e : 'r' === t ? s : i),
                n = (e.xAxisID = l(i.xAxisID, Fs(t, 'x'))),
                o = (e.yAxisID = l(i.yAxisID, Fs(t, 'y'))),
                a = (e.rAxisID = l(i.rAxisID, Fs(t, 'r'))),
                r = e.indexAxis,
                h = (e.iAxisID = s(r, n, o, a)),
                c = (e.vAxisID = s(r, o, n, a))
            ;(e.xScale = this.getScaleForId(n)),
                (e.yScale = this.getScaleForId(o)),
                (e.rScale = this.getScaleForId(a)),
                (e.iScale = this.getScaleForId(h)),
                (e.vScale = this.getScaleForId(c))
        }
        getDataset() {
            return this.chart.data.datasets[this.index]
        }
        getMeta() {
            return this.chart.getDatasetMeta(this.index)
        }
        getScaleForId(t) {
            return this.chart.scales[t]
        }
        _getOtherScale(t) {
            const e = this._cachedMeta
            return t === e.iScale ? e.vScale : e.iScale
        }
        reset() {
            this._update('reset')
        }
        _destroy() {
            const t = this._cachedMeta
            this._data && rt(this._data, this), t._stacked && Vs(t)
        }
        _dataCheck() {
            const t = this.getDataset(),
                e = t.data || (t.data = []),
                i = this._data
            if (o(e))
                this._data = (function (t) {
                    const e = Object.keys(t),
                        i = new Array(e.length)
                    let s, n, o
                    for (s = 0, n = e.length; s < n; ++s)
                        (o = e[s]), (i[s] = { x: o, y: t[o] })
                    return i
                })(e)
            else if (i !== e) {
                if (i) {
                    rt(i, this)
                    const t = this._cachedMeta
                    Vs(t), (t._parsed = [])
                }
                e && Object.isExtensible(e) && at(e, this),
                    (this._syncList = []),
                    (this._data = e)
            }
        }
        addElements() {
            const t = this._cachedMeta
            this._dataCheck(),
                this.datasetElementType &&
                    (t.dataset = new this.datasetElementType())
        }
        buildOrUpdateElements(t) {
            const e = this._cachedMeta,
                i = this.getDataset()
            let s = !1
            this._dataCheck()
            const n = e._stacked
            ;(e._stacked = Es(e.vScale, e)),
                e.stack !== i.stack && ((s = !0), Vs(e), (e.stack = i.stack)),
                this._resyncElements(t),
                (s || n !== e._stacked) && zs(this, e._parsed)
        }
        configure() {
            const t = this.chart.config,
                e = t.datasetScopeKeys(this._type),
                i = t.getOptionScopes(this.getDataset(), e, !0)
            ;(this.options = t.createResolver(i, this.getContext())),
                (this._parsing = this.options.parsing),
                (this._cachedDataOpts = {})
        }
        parse(t, e) {
            const { _cachedMeta: i, _data: s } = this,
                { iScale: a, _stacked: r } = i,
                l = a.axis
            let h,
                c,
                d,
                u = (0 === t && e === s.length) || i._sorted,
                f = t > 0 && i._parsed[t - 1]
            if (!1 === this._parsing) (i._parsed = s), (i._sorted = !0), (d = s)
            else {
                d = n(s[t])
                    ? this.parseArrayData(i, s, t, e)
                    : o(s[t])
                      ? this.parseObjectData(i, s, t, e)
                      : this.parsePrimitiveData(i, s, t, e)
                const a = () => null === c[l] || (f && c[l] < f[l])
                for (h = 0; h < e; ++h)
                    (i._parsed[h + t] = c = d[h]),
                        u && (a() && (u = !1), (f = c))
                i._sorted = u
            }
            r && zs(this, d)
        }
        parsePrimitiveData(t, e, i, s) {
            const { iScale: n, vScale: o } = t,
                a = n.axis,
                r = o.axis,
                l = n.getLabels(),
                h = n === o,
                c = new Array(s)
            let d, u, f
            for (d = 0, u = s; d < u; ++d)
                (f = d + i),
                    (c[d] = {
                        [a]: h || n.parse(l[f], f),
                        [r]: o.parse(e[f], f),
                    })
            return c
        }
        parseArrayData(t, e, i, s) {
            const { xScale: n, yScale: o } = t,
                a = new Array(s)
            let r, l, h, c
            for (r = 0, l = s; r < l; ++r)
                (h = r + i),
                    (c = e[h]),
                    (a[r] = { x: n.parse(c[0], h), y: o.parse(c[1], h) })
            return a
        }
        parseObjectData(t, e, i, s) {
            const { xScale: n, yScale: o } = t,
                { xAxisKey: a = 'x', yAxisKey: r = 'y' } = this._parsing,
                l = new Array(s)
            let h, c, d, u
            for (h = 0, c = s; h < c; ++h)
                (d = h + i),
                    (u = e[d]),
                    (l[h] = { x: n.parse(M(u, a), d), y: o.parse(M(u, r), d) })
            return l
        }
        getParsed(t) {
            return this._cachedMeta._parsed[t]
        }
        getDataElement(t) {
            return this._cachedMeta.data[t]
        }
        applyStack(t, e, i) {
            const s = this.chart,
                n = this._cachedMeta,
                o = e[t.axis]
            return Ls(
                { keys: Ts(s, !0), values: e._stacks[t.axis]._visualValues },
                o,
                n.index,
                { mode: i }
            )
        }
        updateRangeFromParsed(t, e, i, s) {
            const n = i[e.axis]
            let o = null === n ? NaN : n
            const a = s && i._stacks[e.axis]
            s && a && ((s.values = a), (o = Ls(s, n, this._cachedMeta.index))),
                (t.min = Math.min(t.min, o)),
                (t.max = Math.max(t.max, o))
        }
        getMinMax(t, e) {
            const i = this._cachedMeta,
                s = i._parsed,
                n = i._sorted && t === i.iScale,
                o = s.length,
                r = this._getOtherScale(t),
                l = ((t, e, i) =>
                    t &&
                    !e.hidden &&
                    e._stacked && { keys: Ts(i, !0), values: null })(
                    e,
                    i,
                    this.chart
                ),
                h = {
                    min: Number.POSITIVE_INFINITY,
                    max: Number.NEGATIVE_INFINITY,
                },
                { min: c, max: d } = (function (t) {
                    const {
                        min: e,
                        max: i,
                        minDefined: s,
                        maxDefined: n,
                    } = t.getUserBounds()
                    return {
                        min: s ? e : Number.NEGATIVE_INFINITY,
                        max: n ? i : Number.POSITIVE_INFINITY,
                    }
                })(r)
            let u, f
            function g() {
                f = s[u]
                const e = f[r.axis]
                return !a(f[t.axis]) || c > e || d < e
            }
            for (
                u = 0;
                u < o && (g() || (this.updateRangeFromParsed(h, t, f, l), !n));
                ++u
            );
            if (n)
                for (u = o - 1; u >= 0; --u)
                    if (!g()) {
                        this.updateRangeFromParsed(h, t, f, l)
                        break
                    }
            return h
        }
        getAllParsedValues(t) {
            const e = this._cachedMeta._parsed,
                i = []
            let s, n, o
            for (s = 0, n = e.length; s < n; ++s)
                (o = e[s][t.axis]), a(o) && i.push(o)
            return i
        }
        getMaxOverflow() {
            return !1
        }
        getLabelAndValue(t) {
            const e = this._cachedMeta,
                i = e.iScale,
                s = e.vScale,
                n = this.getParsed(t)
            return {
                label: i ? '' + i.getLabelForValue(n[i.axis]) : '',
                value: s ? '' + s.getLabelForValue(n[s.axis]) : '',
            }
        }
        _update(t) {
            const e = this._cachedMeta
            this.update(t || 'default'),
                (e._clip = (function (t) {
                    let e, i, s, n
                    return (
                        o(t)
                            ? ((e = t.top),
                              (i = t.right),
                              (s = t.bottom),
                              (n = t.left))
                            : (e = i = s = n = t),
                        {
                            top: e,
                            right: i,
                            bottom: s,
                            left: n,
                            disabled: !1 === t,
                        }
                    )
                })(
                    l(
                        this.options.clip,
                        (function (t, e, i) {
                            if (!1 === i) return !1
                            const s = As(t, i),
                                n = As(e, i)
                            return {
                                top: n.end,
                                right: s.end,
                                bottom: n.start,
                                left: s.start,
                            }
                        })(e.xScale, e.yScale, this.getMaxOverflow())
                    )
                ))
        }
        update(t) {}
        draw() {
            const t = this._ctx,
                e = this.chart,
                i = this._cachedMeta,
                s = i.data || [],
                n = e.chartArea,
                o = [],
                a = this._drawStart || 0,
                r = this._drawCount || s.length - a,
                l = this.options.drawActiveElementsOnTop
            let h
            for (
                i.dataset && i.dataset.draw(t, n, a, r), h = a;
                h < a + r;
                ++h
            ) {
                const e = s[h]
                e.hidden || (e.active && l ? o.push(e) : e.draw(t, n))
            }
            for (h = 0; h < o.length; ++h) o[h].draw(t, n)
        }
        getStyle(t, e) {
            const i = e ? 'active' : 'default'
            return void 0 === t && this._cachedMeta.dataset
                ? this.resolveDatasetElementOptions(i)
                : this.resolveDataElementOptions(t || 0, i)
        }
        getContext(t, e, i) {
            const s = this.getDataset()
            let n
            if (t >= 0 && t < this._cachedMeta.data.length) {
                const e = this._cachedMeta.data[t]
                ;(n =
                    e.$context ||
                    (e.$context = (function (t, e, i) {
                        return Ci(t, {
                            active: !1,
                            dataIndex: e,
                            parsed: void 0,
                            raw: void 0,
                            element: i,
                            index: e,
                            mode: 'default',
                            type: 'data',
                        })
                    })(this.getContext(), t, e))),
                    (n.parsed = this.getParsed(t)),
                    (n.raw = s.data[t]),
                    (n.index = n.dataIndex = t)
            } else
                (n =
                    this.$context ||
                    (this.$context = (function (t, e) {
                        return Ci(t, {
                            active: !1,
                            dataset: void 0,
                            datasetIndex: e,
                            index: e,
                            mode: 'default',
                            type: 'dataset',
                        })
                    })(this.chart.getContext(), this.index))),
                    (n.dataset = s),
                    (n.index = n.datasetIndex = this.index)
            return (n.active = !!e), (n.mode = i), n
        }
        resolveDatasetElementOptions(t) {
            return this._resolveElementOptions(this.datasetElementType.id, t)
        }
        resolveDataElementOptions(t, e) {
            return this._resolveElementOptions(this.dataElementType.id, e, t)
        }
        _resolveElementOptions(t, e = 'default', i) {
            const s = 'active' === e,
                n = this._cachedDataOpts,
                o = t + '-' + e,
                a = n[o],
                r = this.enableOptionSharing && k(i)
            if (a) return Ns(a, r)
            const l = this.chart.config,
                h = l.datasetElementScopeKeys(this._type, t),
                c = s ? [`${t}Hover`, 'hover', t, ''] : [t, ''],
                d = l.getOptionScopes(this.getDataset(), h),
                u = Object.keys(ue.elements[t]),
                f = l.resolveNamedOptions(
                    d,
                    u,
                    () => this.getContext(i, s, e),
                    c
                )
            return (
                f.$shared &&
                    ((f.$shared = r), (n[o] = Object.freeze(Ns(f, r)))),
                f
            )
        }
        _resolveAnimations(t, e, i) {
            const s = this.chart,
                n = this._cachedDataOpts,
                o = `animation-${e}`,
                a = n[o]
            if (a) return a
            let r
            if (!1 !== s.options.animation) {
                const s = this.chart.config,
                    n = s.datasetAnimationScopeKeys(this._type, e),
                    o = s.getOptionScopes(this.getDataset(), n)
                r = s.createResolver(o, this.getContext(t, i, e))
            }
            const l = new Os(s, r && r.animations)
            return r && r._cacheable && (n[o] = Object.freeze(l)), l
        }
        getSharedOptions(t) {
            if (t.$shared)
                return (
                    this._sharedOptions ||
                    (this._sharedOptions = Object.assign({}, t))
                )
        }
        includeOptions(t, e) {
            return !e || Bs(t) || this.chart._animationsDisabled
        }
        _getSharedOptions(t, e) {
            const i = this.resolveDataElementOptions(t, e),
                s = this._sharedOptions,
                n = this.getSharedOptions(i),
                o = this.includeOptions(e, n) || n !== s
            return (
                this.updateSharedOptions(n, e, i),
                { sharedOptions: n, includeOptions: o }
            )
        }
        updateElement(t, e, i, s) {
            Bs(s)
                ? Object.assign(t, i)
                : this._resolveAnimations(e, s).update(t, i)
        }
        updateSharedOptions(t, e, i) {
            t && !Bs(e) && this._resolveAnimations(void 0, e).update(t, i)
        }
        _setStyle(t, e, i, s) {
            t.active = s
            const n = this.getStyle(e, s)
            this._resolveAnimations(e, i, s).update(t, {
                options: (!s && this.getSharedOptions(n)) || n,
            })
        }
        removeHoverStyle(t, e, i) {
            this._setStyle(t, i, 'active', !1)
        }
        setHoverStyle(t, e, i) {
            this._setStyle(t, i, 'active', !0)
        }
        _removeDatasetHoverStyle() {
            const t = this._cachedMeta.dataset
            t && this._setStyle(t, void 0, 'active', !1)
        }
        _setDatasetHoverStyle() {
            const t = this._cachedMeta.dataset
            t && this._setStyle(t, void 0, 'active', !0)
        }
        _resyncElements(t) {
            const e = this._data,
                i = this._cachedMeta.data
            for (const [t, e, i] of this._syncList) this[t](e, i)
            this._syncList = []
            const s = i.length,
                n = e.length,
                o = Math.min(n, s)
            o && this.parse(0, o),
                n > s
                    ? this._insertElements(s, n - s, t)
                    : n < s && this._removeElements(n, s - n)
        }
        _insertElements(t, e, i = !0) {
            const s = this._cachedMeta,
                n = s.data,
                o = t + e
            let a
            const r = (t) => {
                for (t.length += e, a = t.length - 1; a >= o; a--)
                    t[a] = t[a - e]
            }
            for (r(n), a = t; a < o; ++a) n[a] = new this.dataElementType()
            this._parsing && r(s._parsed),
                this.parse(t, e),
                i && this.updateElements(n, t, e, 'reset')
        }
        updateElements(t, e, i, s) {}
        _removeElements(t, e) {
            const i = this._cachedMeta
            if (this._parsing) {
                const s = i._parsed.splice(t, e)
                i._stacked && Vs(i, s)
            }
            i.data.splice(t, e)
        }
        _sync(t) {
            if (this._parsing) this._syncList.push(t)
            else {
                const [e, i, s] = t
                this[e](i, s)
            }
            this.chart._dataChanges.push([this.index, ...t])
        }
        _onDataPush() {
            const t = arguments.length
            this._sync([
                '_insertElements',
                this.getDataset().data.length - t,
                t,
            ])
        }
        _onDataPop() {
            this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1])
        }
        _onDataShift() {
            this._sync(['_removeElements', 0, 1])
        }
        _onDataSplice(t, e) {
            e && this._sync(['_removeElements', t, e])
            const i = arguments.length - 2
            i && this._sync(['_insertElements', t, i])
        }
        _onDataUnshift() {
            this._sync(['_insertElements', 0, arguments.length])
        }
    }
    class Hs {
        static defaults = {}
        static defaultRoutes = void 0
        x
        y
        active = !1
        options
        $animations
        tooltipPosition(t) {
            const { x: e, y: i } = this.getProps(['x', 'y'], t)
            return { x: e, y: i }
        }
        hasValue() {
            return W(this.x) && W(this.y)
        }
        getProps(t, e) {
            const i = this.$animations
            if (!e || !i) return this
            const s = {}
            return (
                t.forEach((t) => {
                    s[t] = i[t] && i[t].active() ? i[t]._to : this[t]
                }),
                s
            )
        }
    }
    function js(t, e) {
        const i = t.options.ticks,
            n = (function (t) {
                const e = t.options.offset,
                    i = t._tickSize(),
                    s = t._length / i + (e ? 0 : 1),
                    n = t._maxLength / i
                return Math.floor(Math.min(s, n))
            })(t),
            o = Math.min(i.maxTicksLimit || n, n),
            a = i.major.enabled
                ? (function (t) {
                      const e = []
                      let i, s
                      for (i = 0, s = t.length; i < s; i++)
                          t[i].major && e.push(i)
                      return e
                  })(e)
                : [],
            r = a.length,
            l = a[0],
            h = a[r - 1],
            c = []
        if (r > o)
            return (
                (function (t, e, i, s) {
                    let n,
                        o = 0,
                        a = i[0]
                    for (s = Math.ceil(s), n = 0; n < t.length; n++)
                        n === a && (e.push(t[n]), o++, (a = i[o * s]))
                })(e, c, a, r / o),
                c
            )
        const d = (function (t, e, i) {
            const s = (function (t) {
                    const e = t.length
                    let i, s
                    if (e < 2) return !1
                    for (s = t[0], i = 1; i < e; ++i)
                        if (t[i] - t[i - 1] !== s) return !1
                    return s
                })(t),
                n = e.length / i
            if (!s) return Math.max(n, 1)
            const o = N(s)
            for (let t = 0, e = o.length - 1; t < e; t++) {
                const e = o[t]
                if (e > n) return e
            }
            return Math.max(n, 1)
        })(a, e, o)
        if (r > 0) {
            let t, i
            const n = r > 1 ? Math.round((h - l) / (r - 1)) : null
            for ($s(e, c, d, s(n) ? 0 : l - n, l), t = 0, i = r - 1; t < i; t++)
                $s(e, c, d, a[t], a[t + 1])
            return $s(e, c, d, h, s(n) ? e.length : h + n), c
        }
        return $s(e, c, d), c
    }
    function $s(t, e, i, s, n) {
        const o = l(s, 0),
            a = Math.min(l(n, t.length), t.length)
        let r,
            h,
            c,
            d = 0
        for (
            i = Math.ceil(i),
                n && ((r = n - s), (i = r / Math.floor(r / i))),
                c = o;
            c < 0;

        )
            d++, (c = Math.round(o + d * i))
        for (h = Math.max(o, 0); h < a; h++)
            h === c && (e.push(t[h]), d++, (c = Math.round(o + d * i)))
    }
    const Ys = (t, e, i) => ('top' === e || 'left' === e ? t[e] + i : t[e] - i),
        Us = (t, e) => Math.min(e || t, t)
    function Xs(t, e) {
        const i = [],
            s = t.length / e,
            n = t.length
        let o = 0
        for (; o < n; o += s) i.push(t[Math.floor(o)])
        return i
    }
    function qs(t, e, i) {
        const s = t.ticks.length,
            n = Math.min(e, s - 1),
            o = t._startPixel,
            a = t._endPixel,
            r = 1e-6
        let l,
            h = t.getPixelForTick(n)
        if (
            !(
                i &&
                ((l =
                    1 === s
                        ? Math.max(h - o, a - h)
                        : 0 === e
                          ? (t.getPixelForTick(1) - h) / 2
                          : (h - t.getPixelForTick(n - 1)) / 2),
                (h += n < e ? l : -l),
                h < o - r || h > a + r)
            )
        )
            return h
    }
    function Ks(t) {
        return t.drawTicks ? t.tickLength : 0
    }
    function Gs(t, e) {
        if (!t.display) return 0
        const i = Si(t.font, e),
            s = ki(t.padding)
        return (n(t.text) ? t.text.length : 1) * i.lineHeight + s.height
    }
    function Zs(t, e, i) {
        let s = ut(t)
        return (
            ((i && 'right' !== e) || (!i && 'right' === e)) &&
                (s = ((t) =>
                    'left' === t ? 'right' : 'right' === t ? 'left' : t)(s)),
            s
        )
    }
    class Js extends Hs {
        constructor(t) {
            super(),
                (this.id = t.id),
                (this.type = t.type),
                (this.options = void 0),
                (this.ctx = t.ctx),
                (this.chart = t.chart),
                (this.top = void 0),
                (this.bottom = void 0),
                (this.left = void 0),
                (this.right = void 0),
                (this.width = void 0),
                (this.height = void 0),
                (this._margins = { left: 0, right: 0, top: 0, bottom: 0 }),
                (this.maxWidth = void 0),
                (this.maxHeight = void 0),
                (this.paddingTop = void 0),
                (this.paddingBottom = void 0),
                (this.paddingLeft = void 0),
                (this.paddingRight = void 0),
                (this.axis = void 0),
                (this.labelRotation = void 0),
                (this.min = void 0),
                (this.max = void 0),
                (this._range = void 0),
                (this.ticks = []),
                (this._gridLineItems = null),
                (this._labelItems = null),
                (this._labelSizes = null),
                (this._length = 0),
                (this._maxLength = 0),
                (this._longestTextCache = {}),
                (this._startPixel = void 0),
                (this._endPixel = void 0),
                (this._reversePixels = !1),
                (this._userMax = void 0),
                (this._userMin = void 0),
                (this._suggestedMax = void 0),
                (this._suggestedMin = void 0),
                (this._ticksLength = 0),
                (this._borderValue = 0),
                (this._cache = {}),
                (this._dataLimitsCached = !1),
                (this.$context = void 0)
        }
        init(t) {
            ;(this.options = t.setContext(this.getContext())),
                (this.axis = t.axis),
                (this._userMin = this.parse(t.min)),
                (this._userMax = this.parse(t.max)),
                (this._suggestedMin = this.parse(t.suggestedMin)),
                (this._suggestedMax = this.parse(t.suggestedMax))
        }
        parse(t, e) {
            return t
        }
        getUserBounds() {
            let {
                _userMin: t,
                _userMax: e,
                _suggestedMin: i,
                _suggestedMax: s,
            } = this
            return (
                (t = r(t, Number.POSITIVE_INFINITY)),
                (e = r(e, Number.NEGATIVE_INFINITY)),
                (i = r(i, Number.POSITIVE_INFINITY)),
                (s = r(s, Number.NEGATIVE_INFINITY)),
                {
                    min: r(t, i),
                    max: r(e, s),
                    minDefined: a(t),
                    maxDefined: a(e),
                }
            )
        }
        getMinMax(t) {
            let e,
                {
                    min: i,
                    max: s,
                    minDefined: n,
                    maxDefined: o,
                } = this.getUserBounds()
            if (n && o) return { min: i, max: s }
            const a = this.getMatchingVisibleMetas()
            for (let r = 0, l = a.length; r < l; ++r)
                (e = a[r].controller.getMinMax(this, t)),
                    n || (i = Math.min(i, e.min)),
                    o || (s = Math.max(s, e.max))
            return (
                (i = o && i > s ? s : i),
                (s = n && i > s ? i : s),
                { min: r(i, r(s, i)), max: r(s, r(i, s)) }
            )
        }
        getPadding() {
            return {
                left: this.paddingLeft || 0,
                top: this.paddingTop || 0,
                right: this.paddingRight || 0,
                bottom: this.paddingBottom || 0,
            }
        }
        getTicks() {
            return this.ticks
        }
        getLabels() {
            const t = this.chart.data
            return (
                this.options.labels ||
                (this.isHorizontal() ? t.xLabels : t.yLabels) ||
                t.labels ||
                []
            )
        }
        getLabelItems(t = this.chart.chartArea) {
            return (
                this._labelItems ||
                (this._labelItems = this._computeLabelItems(t))
            )
        }
        beforeLayout() {
            ;(this._cache = {}), (this._dataLimitsCached = !1)
        }
        beforeUpdate() {
            d(this.options.beforeUpdate, [this])
        }
        update(t, e, i) {
            const { beginAtZero: s, grace: n, ticks: o } = this.options,
                a = o.sampleSize
            this.beforeUpdate(),
                (this.maxWidth = t),
                (this.maxHeight = e),
                (this._margins = i =
                    Object.assign({ left: 0, right: 0, top: 0, bottom: 0 }, i)),
                (this.ticks = null),
                (this._labelSizes = null),
                (this._gridLineItems = null),
                (this._labelItems = null),
                this.beforeSetDimensions(),
                this.setDimensions(),
                this.afterSetDimensions(),
                (this._maxLength = this.isHorizontal()
                    ? this.width + i.left + i.right
                    : this.height + i.top + i.bottom),
                this._dataLimitsCached ||
                    (this.beforeDataLimits(),
                    this.determineDataLimits(),
                    this.afterDataLimits(),
                    (this._range = Di(this, n, s)),
                    (this._dataLimitsCached = !0)),
                this.beforeBuildTicks(),
                (this.ticks = this.buildTicks() || []),
                this.afterBuildTicks()
            const r = a < this.ticks.length
            this._convertTicksToLabels(r ? Xs(this.ticks, a) : this.ticks),
                this.configure(),
                this.beforeCalculateLabelRotation(),
                this.calculateLabelRotation(),
                this.afterCalculateLabelRotation(),
                o.display &&
                    (o.autoSkip || 'auto' === o.source) &&
                    ((this.ticks = js(this, this.ticks)),
                    (this._labelSizes = null),
                    this.afterAutoSkip()),
                r && this._convertTicksToLabels(this.ticks),
                this.beforeFit(),
                this.fit(),
                this.afterFit(),
                this.afterUpdate()
        }
        configure() {
            let t,
                e,
                i = this.options.reverse
            this.isHorizontal()
                ? ((t = this.left), (e = this.right))
                : ((t = this.top), (e = this.bottom), (i = !i)),
                (this._startPixel = t),
                (this._endPixel = e),
                (this._reversePixels = i),
                (this._length = e - t),
                (this._alignToPixels = this.options.alignToPixels)
        }
        afterUpdate() {
            d(this.options.afterUpdate, [this])
        }
        beforeSetDimensions() {
            d(this.options.beforeSetDimensions, [this])
        }
        setDimensions() {
            this.isHorizontal()
                ? ((this.width = this.maxWidth),
                  (this.left = 0),
                  (this.right = this.width))
                : ((this.height = this.maxHeight),
                  (this.top = 0),
                  (this.bottom = this.height)),
                (this.paddingLeft = 0),
                (this.paddingTop = 0),
                (this.paddingRight = 0),
                (this.paddingBottom = 0)
        }
        afterSetDimensions() {
            d(this.options.afterSetDimensions, [this])
        }
        _callHooks(t) {
            this.chart.notifyPlugins(t, this.getContext()),
                d(this.options[t], [this])
        }
        beforeDataLimits() {
            this._callHooks('beforeDataLimits')
        }
        determineDataLimits() {}
        afterDataLimits() {
            this._callHooks('afterDataLimits')
        }
        beforeBuildTicks() {
            this._callHooks('beforeBuildTicks')
        }
        buildTicks() {
            return []
        }
        afterBuildTicks() {
            this._callHooks('afterBuildTicks')
        }
        beforeTickToLabelConversion() {
            d(this.options.beforeTickToLabelConversion, [this])
        }
        generateTickLabels(t) {
            const e = this.options.ticks
            let i, s, n
            for (i = 0, s = t.length; i < s; i++)
                (n = t[i]), (n.label = d(e.callback, [n.value, i, t], this))
        }
        afterTickToLabelConversion() {
            d(this.options.afterTickToLabelConversion, [this])
        }
        beforeCalculateLabelRotation() {
            d(this.options.beforeCalculateLabelRotation, [this])
        }
        calculateLabelRotation() {
            const t = this.options,
                e = t.ticks,
                i = Us(this.ticks.length, t.ticks.maxTicksLimit),
                s = e.minRotation || 0,
                n = e.maxRotation
            let o,
                a,
                r,
                l = s
            if (
                !this._isVisible() ||
                !e.display ||
                s >= n ||
                i <= 1 ||
                !this.isHorizontal()
            )
                return void (this.labelRotation = s)
            const h = this._getLabelSizes(),
                c = h.widest.width,
                d = h.highest.height,
                u = J(this.chart.width - c, 0, this.maxWidth)
            ;(o = t.offset ? this.maxWidth / i : u / (i - 1)),
                c + 6 > o &&
                    ((o = u / (i - (t.offset ? 0.5 : 1))),
                    (a =
                        this.maxHeight -
                        Ks(t.grid) -
                        e.padding -
                        Gs(t.title, this.chart.options.font)),
                    (r = Math.sqrt(c * c + d * d)),
                    (l = Y(
                        Math.min(
                            Math.asin(J((h.highest.height + 6) / o, -1, 1)),
                            Math.asin(J(a / r, -1, 1)) -
                                Math.asin(J(d / r, -1, 1))
                        )
                    )),
                    (l = Math.max(s, Math.min(n, l)))),
                (this.labelRotation = l)
        }
        afterCalculateLabelRotation() {
            d(this.options.afterCalculateLabelRotation, [this])
        }
        afterAutoSkip() {}
        beforeFit() {
            d(this.options.beforeFit, [this])
        }
        fit() {
            const t = { width: 0, height: 0 },
                {
                    chart: e,
                    options: { ticks: i, title: s, grid: n },
                } = this,
                o = this._isVisible(),
                a = this.isHorizontal()
            if (o) {
                const o = Gs(s, e.options.font)
                if (
                    (a
                        ? ((t.width = this.maxWidth), (t.height = Ks(n) + o))
                        : ((t.height = this.maxHeight), (t.width = Ks(n) + o)),
                    i.display && this.ticks.length)
                ) {
                    const {
                            first: e,
                            last: s,
                            widest: n,
                            highest: o,
                        } = this._getLabelSizes(),
                        r = 2 * i.padding,
                        l = $(this.labelRotation),
                        h = Math.cos(l),
                        c = Math.sin(l)
                    if (a) {
                        const e = i.mirror ? 0 : c * n.width + h * o.height
                        t.height = Math.min(this.maxHeight, t.height + e + r)
                    } else {
                        const e = i.mirror ? 0 : h * n.width + c * o.height
                        t.width = Math.min(this.maxWidth, t.width + e + r)
                    }
                    this._calculatePadding(e, s, c, h)
                }
            }
            this._handleMargins(),
                a
                    ? ((this.width = this._length =
                          e.width - this._margins.left - this._margins.right),
                      (this.height = t.height))
                    : ((this.width = t.width),
                      (this.height = this._length =
                          e.height - this._margins.top - this._margins.bottom))
        }
        _calculatePadding(t, e, i, s) {
            const {
                    ticks: { align: n, padding: o },
                    position: a,
                } = this.options,
                r = 0 !== this.labelRotation,
                l = 'top' !== a && 'x' === this.axis
            if (this.isHorizontal()) {
                const a = this.getPixelForTick(0) - this.left,
                    h = this.right - this.getPixelForTick(this.ticks.length - 1)
                let c = 0,
                    d = 0
                r
                    ? l
                        ? ((c = s * t.width), (d = i * e.height))
                        : ((c = i * t.height), (d = s * e.width))
                    : 'start' === n
                      ? (d = e.width)
                      : 'end' === n
                        ? (c = t.width)
                        : 'inner' !== n &&
                          ((c = t.width / 2), (d = e.width / 2)),
                    (this.paddingLeft = Math.max(
                        ((c - a + o) * this.width) / (this.width - a),
                        0
                    )),
                    (this.paddingRight = Math.max(
                        ((d - h + o) * this.width) / (this.width - h),
                        0
                    ))
            } else {
                let i = e.height / 2,
                    s = t.height / 2
                'start' === n
                    ? ((i = 0), (s = t.height))
                    : 'end' === n && ((i = e.height), (s = 0)),
                    (this.paddingTop = i + o),
                    (this.paddingBottom = s + o)
            }
        }
        _handleMargins() {
            this._margins &&
                ((this._margins.left = Math.max(
                    this.paddingLeft,
                    this._margins.left
                )),
                (this._margins.top = Math.max(
                    this.paddingTop,
                    this._margins.top
                )),
                (this._margins.right = Math.max(
                    this.paddingRight,
                    this._margins.right
                )),
                (this._margins.bottom = Math.max(
                    this.paddingBottom,
                    this._margins.bottom
                )))
        }
        afterFit() {
            d(this.options.afterFit, [this])
        }
        isHorizontal() {
            const { axis: t, position: e } = this.options
            return 'top' === e || 'bottom' === e || 'x' === t
        }
        isFullSize() {
            return this.options.fullSize
        }
        _convertTicksToLabels(t) {
            let e, i
            for (
                this.beforeTickToLabelConversion(),
                    this.generateTickLabels(t),
                    e = 0,
                    i = t.length;
                e < i;
                e++
            )
                s(t[e].label) && (t.splice(e, 1), i--, e--)
            this.afterTickToLabelConversion()
        }
        _getLabelSizes() {
            let t = this._labelSizes
            if (!t) {
                const e = this.options.ticks.sampleSize
                let i = this.ticks
                e < i.length && (i = Xs(i, e)),
                    (this._labelSizes = t =
                        this._computeLabelSizes(
                            i,
                            i.length,
                            this.options.ticks.maxTicksLimit
                        ))
            }
            return t
        }
        _computeLabelSizes(t, e, i) {
            const { ctx: o, _longestTextCache: a } = this,
                r = [],
                l = [],
                h = Math.floor(e / Us(e, i))
            let c,
                d,
                f,
                g,
                p,
                m,
                b,
                x,
                _,
                y,
                v,
                M = 0,
                w = 0
            for (c = 0; c < e; c += h) {
                if (
                    ((g = t[c].label),
                    (p = this._resolveTickFontOptions(c)),
                    (o.font = m = p.string),
                    (b = a[m] = a[m] || { data: {}, gc: [] }),
                    (x = p.lineHeight),
                    (_ = y = 0),
                    s(g) || n(g))
                ) {
                    if (n(g))
                        for (d = 0, f = g.length; d < f; ++d)
                            (v = g[d]),
                                s(v) ||
                                    n(v) ||
                                    ((_ = Ce(o, b.data, b.gc, _, v)), (y += x))
                } else (_ = Ce(o, b.data, b.gc, _, g)), (y = x)
                r.push(_), l.push(y), (M = Math.max(_, M)), (w = Math.max(y, w))
            }
            !(function (t, e) {
                u(t, (t) => {
                    const i = t.gc,
                        s = i.length / 2
                    let n
                    if (s > e) {
                        for (n = 0; n < s; ++n) delete t.data[i[n]]
                        i.splice(0, s)
                    }
                })
            })(a, e)
            const k = r.indexOf(M),
                S = l.indexOf(w),
                P = (t) => ({ width: r[t] || 0, height: l[t] || 0 })
            return {
                first: P(0),
                last: P(e - 1),
                widest: P(k),
                highest: P(S),
                widths: r,
                heights: l,
            }
        }
        getLabelForValue(t) {
            return t
        }
        getPixelForValue(t, e) {
            return NaN
        }
        getValueForPixel(t) {}
        getPixelForTick(t) {
            const e = this.ticks
            return t < 0 || t > e.length - 1
                ? null
                : this.getPixelForValue(e[t].value)
        }
        getPixelForDecimal(t) {
            this._reversePixels && (t = 1 - t)
            const e = this._startPixel + t * this._length
            return Q(this._alignToPixels ? Ae(this.chart, e, 0) : e)
        }
        getDecimalForPixel(t) {
            const e = (t - this._startPixel) / this._length
            return this._reversePixels ? 1 - e : e
        }
        getBasePixel() {
            return this.getPixelForValue(this.getBaseValue())
        }
        getBaseValue() {
            const { min: t, max: e } = this
            return t < 0 && e < 0 ? e : t > 0 && e > 0 ? t : 0
        }
        getContext(t) {
            const e = this.ticks || []
            if (t >= 0 && t < e.length) {
                const i = e[t]
                return (
                    i.$context ||
                    (i.$context = (function (t, e, i) {
                        return Ci(t, { tick: i, index: e, type: 'tick' })
                    })(this.getContext(), t, i))
                )
            }
            return (
                this.$context ||
                (this.$context = Ci(this.chart.getContext(), {
                    scale: this,
                    type: 'scale',
                }))
            )
        }
        _tickSize() {
            const t = this.options.ticks,
                e = $(this.labelRotation),
                i = Math.abs(Math.cos(e)),
                s = Math.abs(Math.sin(e)),
                n = this._getLabelSizes(),
                o = t.autoSkipPadding || 0,
                a = n ? n.widest.width + o : 0,
                r = n ? n.highest.height + o : 0
            return this.isHorizontal()
                ? r * i > a * s
                    ? a / i
                    : r / s
                : r * s < a * i
                  ? r / i
                  : a / s
        }
        _isVisible() {
            const t = this.options.display
            return 'auto' !== t
                ? !!t
                : this.getMatchingVisibleMetas().length > 0
        }
        _computeGridLineItems(t) {
            const e = this.axis,
                i = this.chart,
                s = this.options,
                { grid: n, position: a, border: r } = s,
                h = n.offset,
                c = this.isHorizontal(),
                d = this.ticks.length + (h ? 1 : 0),
                u = Ks(n),
                f = [],
                g = r.setContext(this.getContext()),
                p = g.display ? g.width : 0,
                m = p / 2,
                b = function (t) {
                    return Ae(i, t, p)
                }
            let x, _, y, v, M, w, k, S, P, D, C, O
            if ('top' === a)
                (x = b(this.bottom)),
                    (w = this.bottom - u),
                    (S = x - m),
                    (D = b(t.top) + m),
                    (O = t.bottom)
            else if ('bottom' === a)
                (x = b(this.top)),
                    (D = t.top),
                    (O = b(t.bottom) - m),
                    (w = x + m),
                    (S = this.top + u)
            else if ('left' === a)
                (x = b(this.right)),
                    (M = this.right - u),
                    (k = x - m),
                    (P = b(t.left) + m),
                    (C = t.right)
            else if ('right' === a)
                (x = b(this.left)),
                    (P = t.left),
                    (C = b(t.right) - m),
                    (M = x + m),
                    (k = this.left + u)
            else if ('x' === e) {
                if ('center' === a) x = b((t.top + t.bottom) / 2 + 0.5)
                else if (o(a)) {
                    const t = Object.keys(a)[0],
                        e = a[t]
                    x = b(this.chart.scales[t].getPixelForValue(e))
                }
                ;(D = t.top), (O = t.bottom), (w = x + m), (S = w + u)
            } else if ('y' === e) {
                if ('center' === a) x = b((t.left + t.right) / 2)
                else if (o(a)) {
                    const t = Object.keys(a)[0],
                        e = a[t]
                    x = b(this.chart.scales[t].getPixelForValue(e))
                }
                ;(M = x - m), (k = M - u), (P = t.left), (C = t.right)
            }
            const A = l(s.ticks.maxTicksLimit, d),
                T = Math.max(1, Math.ceil(d / A))
            for (_ = 0; _ < d; _ += T) {
                const t = this.getContext(_),
                    e = n.setContext(t),
                    s = r.setContext(t),
                    o = e.lineWidth,
                    a = e.color,
                    l = s.dash || [],
                    d = s.dashOffset,
                    u = e.tickWidth,
                    g = e.tickColor,
                    p = e.tickBorderDash || [],
                    m = e.tickBorderDashOffset
                ;(y = qs(this, _, h)),
                    void 0 !== y &&
                        ((v = Ae(i, y, o)),
                        c ? (M = k = P = C = v) : (w = S = D = O = v),
                        f.push({
                            tx1: M,
                            ty1: w,
                            tx2: k,
                            ty2: S,
                            x1: P,
                            y1: D,
                            x2: C,
                            y2: O,
                            width: o,
                            color: a,
                            borderDash: l,
                            borderDashOffset: d,
                            tickWidth: u,
                            tickColor: g,
                            tickBorderDash: p,
                            tickBorderDashOffset: m,
                        }))
            }
            return (this._ticksLength = d), (this._borderValue = x), f
        }
        _computeLabelItems(t) {
            const e = this.axis,
                i = this.options,
                { position: s, ticks: a } = i,
                r = this.isHorizontal(),
                l = this.ticks,
                { align: h, crossAlign: c, padding: d, mirror: u } = a,
                f = Ks(i.grid),
                g = f + d,
                p = u ? -d : g,
                m = -$(this.labelRotation),
                b = []
            let x,
                _,
                y,
                v,
                M,
                w,
                k,
                S,
                P,
                D,
                C,
                O,
                A = 'middle'
            if ('top' === s)
                (w = this.bottom - p), (k = this._getXAxisLabelAlignment())
            else if ('bottom' === s)
                (w = this.top + p), (k = this._getXAxisLabelAlignment())
            else if ('left' === s) {
                const t = this._getYAxisLabelAlignment(f)
                ;(k = t.textAlign), (M = t.x)
            } else if ('right' === s) {
                const t = this._getYAxisLabelAlignment(f)
                ;(k = t.textAlign), (M = t.x)
            } else if ('x' === e) {
                if ('center' === s) w = (t.top + t.bottom) / 2 + g
                else if (o(s)) {
                    const t = Object.keys(s)[0],
                        e = s[t]
                    w = this.chart.scales[t].getPixelForValue(e) + g
                }
                k = this._getXAxisLabelAlignment()
            } else if ('y' === e) {
                if ('center' === s) M = (t.left + t.right) / 2 - g
                else if (o(s)) {
                    const t = Object.keys(s)[0],
                        e = s[t]
                    M = this.chart.scales[t].getPixelForValue(e)
                }
                k = this._getYAxisLabelAlignment(f).textAlign
            }
            'y' === e &&
                ('start' === h ? (A = 'top') : 'end' === h && (A = 'bottom'))
            const T = this._getLabelSizes()
            for (x = 0, _ = l.length; x < _; ++x) {
                ;(y = l[x]), (v = y.label)
                const t = a.setContext(this.getContext(x))
                ;(S = this.getPixelForTick(x) + a.labelOffset),
                    (P = this._resolveTickFontOptions(x)),
                    (D = P.lineHeight),
                    (C = n(v) ? v.length : 1)
                const e = C / 2,
                    i = t.color,
                    o = t.textStrokeColor,
                    h = t.textStrokeWidth
                let d,
                    f = k
                if (
                    (r
                        ? ((M = S),
                          'inner' === k &&
                              (f =
                                  x === _ - 1
                                      ? this.options.reverse
                                          ? 'left'
                                          : 'right'
                                      : 0 === x
                                        ? this.options.reverse
                                            ? 'right'
                                            : 'left'
                                        : 'center'),
                          (O =
                              'top' === s
                                  ? 'near' === c || 0 !== m
                                      ? -C * D + D / 2
                                      : 'center' === c
                                        ? -T.highest.height / 2 - e * D + D
                                        : -T.highest.height + D / 2
                                  : 'near' === c || 0 !== m
                                    ? D / 2
                                    : 'center' === c
                                      ? T.highest.height / 2 - e * D
                                      : T.highest.height - C * D),
                          u && (O *= -1),
                          0 === m ||
                              t.showLabelBackdrop ||
                              (M += (D / 2) * Math.sin(m)))
                        : ((w = S), (O = ((1 - C) * D) / 2)),
                    t.showLabelBackdrop)
                ) {
                    const e = ki(t.backdropPadding),
                        i = T.heights[x],
                        s = T.widths[x]
                    let n = O - e.top,
                        o = 0 - e.left
                    switch (A) {
                        case 'middle':
                            n -= i / 2
                            break
                        case 'bottom':
                            n -= i
                    }
                    switch (k) {
                        case 'center':
                            o -= s / 2
                            break
                        case 'right':
                            o -= s
                    }
                    d = {
                        left: o,
                        top: n,
                        width: s + e.width,
                        height: i + e.height,
                        color: t.backdropColor,
                    }
                }
                b.push({
                    label: v,
                    font: P,
                    textOffset: O,
                    options: {
                        rotation: m,
                        color: i,
                        strokeColor: o,
                        strokeWidth: h,
                        textAlign: f,
                        textBaseline: A,
                        translation: [M, w],
                        backdrop: d,
                    },
                })
            }
            return b
        }
        _getXAxisLabelAlignment() {
            const { position: t, ticks: e } = this.options
            if (-$(this.labelRotation)) return 'top' === t ? 'left' : 'right'
            let i = 'center'
            return (
                'start' === e.align
                    ? (i = 'left')
                    : 'end' === e.align
                      ? (i = 'right')
                      : 'inner' === e.align && (i = 'inner'),
                i
            )
        }
        _getYAxisLabelAlignment(t) {
            const {
                    position: e,
                    ticks: { crossAlign: i, mirror: s, padding: n },
                } = this.options,
                o = t + n,
                a = this._getLabelSizes().widest.width
            let r, l
            return (
                'left' === e
                    ? s
                        ? ((l = this.right + n),
                          'near' === i
                              ? (r = 'left')
                              : 'center' === i
                                ? ((r = 'center'), (l += a / 2))
                                : ((r = 'right'), (l += a)))
                        : ((l = this.right - o),
                          'near' === i
                              ? (r = 'right')
                              : 'center' === i
                                ? ((r = 'center'), (l -= a / 2))
                                : ((r = 'left'), (l = this.left)))
                    : 'right' === e
                      ? s
                          ? ((l = this.left + n),
                            'near' === i
                                ? (r = 'right')
                                : 'center' === i
                                  ? ((r = 'center'), (l -= a / 2))
                                  : ((r = 'left'), (l -= a)))
                          : ((l = this.left + o),
                            'near' === i
                                ? (r = 'left')
                                : 'center' === i
                                  ? ((r = 'center'), (l += a / 2))
                                  : ((r = 'right'), (l = this.right)))
                      : (r = 'right'),
                { textAlign: r, x: l }
            )
        }
        _computeLabelArea() {
            if (this.options.ticks.mirror) return
            const t = this.chart,
                e = this.options.position
            return 'left' === e || 'right' === e
                ? {
                      top: 0,
                      left: this.left,
                      bottom: t.height,
                      right: this.right,
                  }
                : 'top' === e || 'bottom' === e
                  ? {
                        top: this.top,
                        left: 0,
                        bottom: this.bottom,
                        right: t.width,
                    }
                  : void 0
        }
        drawBackground() {
            const {
                ctx: t,
                options: { backgroundColor: e },
                left: i,
                top: s,
                width: n,
                height: o,
            } = this
            e &&
                (t.save(),
                (t.fillStyle = e),
                t.fillRect(i, s, n, o),
                t.restore())
        }
        getLineWidthForValue(t) {
            const e = this.options.grid
            if (!this._isVisible() || !e.display) return 0
            const i = this.ticks.findIndex((e) => e.value === t)
            if (i >= 0) {
                return e.setContext(this.getContext(i)).lineWidth
            }
            return 0
        }
        drawGrid(t) {
            const e = this.options.grid,
                i = this.ctx,
                s =
                    this._gridLineItems ||
                    (this._gridLineItems = this._computeGridLineItems(t))
            let n, o
            const a = (t, e, s) => {
                s.width &&
                    s.color &&
                    (i.save(),
                    (i.lineWidth = s.width),
                    (i.strokeStyle = s.color),
                    i.setLineDash(s.borderDash || []),
                    (i.lineDashOffset = s.borderDashOffset),
                    i.beginPath(),
                    i.moveTo(t.x, t.y),
                    i.lineTo(e.x, e.y),
                    i.stroke(),
                    i.restore())
            }
            if (e.display)
                for (n = 0, o = s.length; n < o; ++n) {
                    const t = s[n]
                    e.drawOnChartArea &&
                        a({ x: t.x1, y: t.y1 }, { x: t.x2, y: t.y2 }, t),
                        e.drawTicks &&
                            a(
                                { x: t.tx1, y: t.ty1 },
                                { x: t.tx2, y: t.ty2 },
                                {
                                    color: t.tickColor,
                                    width: t.tickWidth,
                                    borderDash: t.tickBorderDash,
                                    borderDashOffset: t.tickBorderDashOffset,
                                }
                            )
                }
        }
        drawBorder() {
            const {
                    chart: t,
                    ctx: e,
                    options: { border: i, grid: s },
                } = this,
                n = i.setContext(this.getContext()),
                o = i.display ? n.width : 0
            if (!o) return
            const a = s.setContext(this.getContext(0)).lineWidth,
                r = this._borderValue
            let l, h, c, d
            this.isHorizontal()
                ? ((l = Ae(t, this.left, o) - o / 2),
                  (h = Ae(t, this.right, a) + a / 2),
                  (c = d = r))
                : ((c = Ae(t, this.top, o) - o / 2),
                  (d = Ae(t, this.bottom, a) + a / 2),
                  (l = h = r)),
                e.save(),
                (e.lineWidth = n.width),
                (e.strokeStyle = n.color),
                e.beginPath(),
                e.moveTo(l, c),
                e.lineTo(h, d),
                e.stroke(),
                e.restore()
        }
        drawLabels(t) {
            if (!this.options.ticks.display) return
            const e = this.ctx,
                i = this._computeLabelArea()
            i && Ie(e, i)
            const s = this.getLabelItems(t)
            for (const t of s) {
                const i = t.options,
                    s = t.font
                We(e, t.label, 0, t.textOffset, s, i)
            }
            i && ze(e)
        }
        drawTitle() {
            const {
                ctx: t,
                options: { position: e, title: i, reverse: s },
            } = this
            if (!i.display) return
            const a = Si(i.font),
                r = ki(i.padding),
                l = i.align
            let h = a.lineHeight / 2
            'bottom' === e || 'center' === e || o(e)
                ? ((h += r.bottom),
                  n(i.text) && (h += a.lineHeight * (i.text.length - 1)))
                : (h += r.top)
            const {
                titleX: c,
                titleY: d,
                maxWidth: u,
                rotation: f,
            } = (function (t, e, i, s) {
                const { top: n, left: a, bottom: r, right: l, chart: h } = t,
                    { chartArea: c, scales: d } = h
                let u,
                    f,
                    g,
                    p = 0
                const m = r - n,
                    b = l - a
                if (t.isHorizontal()) {
                    if (((f = ft(s, a, l)), o(i))) {
                        const t = Object.keys(i)[0],
                            s = i[t]
                        g = d[t].getPixelForValue(s) + m - e
                    } else
                        g =
                            'center' === i
                                ? (c.bottom + c.top) / 2 + m - e
                                : Ys(t, i, e)
                    u = l - a
                } else {
                    if (o(i)) {
                        const t = Object.keys(i)[0],
                            s = i[t]
                        f = d[t].getPixelForValue(s) - b + e
                    } else
                        f =
                            'center' === i
                                ? (c.left + c.right) / 2 - b + e
                                : Ys(t, i, e)
                    ;(g = ft(s, r, n)), (p = 'left' === i ? -E : E)
                }
                return { titleX: f, titleY: g, maxWidth: u, rotation: p }
            })(this, h, e, l)
            We(t, i.text, 0, 0, a, {
                color: i.color,
                maxWidth: u,
                rotation: f,
                textAlign: Zs(l, e, s),
                textBaseline: 'middle',
                translation: [c, d],
            })
        }
        draw(t) {
            this._isVisible() &&
                (this.drawBackground(),
                this.drawGrid(t),
                this.drawBorder(),
                this.drawTitle(),
                this.drawLabels(t))
        }
        _layers() {
            const t = this.options,
                e = (t.ticks && t.ticks.z) || 0,
                i = l(t.grid && t.grid.z, -1),
                s = l(t.border && t.border.z, 0)
            return this._isVisible() && this.draw === Js.prototype.draw
                ? [
                      {
                          z: i,
                          draw: (t) => {
                              this.drawBackground(),
                                  this.drawGrid(t),
                                  this.drawTitle()
                          },
                      },
                      {
                          z: s,
                          draw: () => {
                              this.drawBorder()
                          },
                      },
                      {
                          z: e,
                          draw: (t) => {
                              this.drawLabels(t)
                          },
                      },
                  ]
                : [
                      {
                          z: e,
                          draw: (t) => {
                              this.draw(t)
                          },
                      },
                  ]
        }
        getMatchingVisibleMetas(t) {
            const e = this.chart.getSortedVisibleDatasetMetas(),
                i = this.axis + 'AxisID',
                s = []
            let n, o
            for (n = 0, o = e.length; n < o; ++n) {
                const o = e[n]
                o[i] !== this.id || (t && o.type !== t) || s.push(o)
            }
            return s
        }
        _resolveTickFontOptions(t) {
            return Si(this.options.ticks.setContext(this.getContext(t)).font)
        }
        _maxDigits() {
            const t = this._resolveTickFontOptions(0).lineHeight
            return (this.isHorizontal() ? this.width : this.height) / t
        }
    }
    class Qs {
        constructor(t, e, i) {
            ;(this.type = t),
                (this.scope = e),
                (this.override = i),
                (this.items = Object.create(null))
        }
        isForType(t) {
            return Object.prototype.isPrototypeOf.call(
                this.type.prototype,
                t.prototype
            )
        }
        register(t) {
            const e = Object.getPrototypeOf(t)
            let i
            ;(function (t) {
                return 'id' in t && 'defaults' in t
            })(e) && (i = this.register(e))
            const s = this.items,
                n = t.id,
                o = this.scope + '.' + n
            if (!n) throw new Error('class does not have id: ' + t)
            return (
                n in s ||
                    ((s[n] = t),
                    (function (t, e, i) {
                        const s = b(Object.create(null), [
                            i ? ue.get(i) : {},
                            ue.get(e),
                            t.defaults,
                        ])
                        ue.set(e, s),
                            t.defaultRoutes &&
                                (function (t, e) {
                                    Object.keys(e).forEach((i) => {
                                        const s = i.split('.'),
                                            n = s.pop(),
                                            o = [t].concat(s).join('.'),
                                            a = e[i].split('.'),
                                            r = a.pop(),
                                            l = a.join('.')
                                        ue.route(o, n, l, r)
                                    })
                                })(e, t.defaultRoutes)
                        t.descriptors && ue.describe(e, t.descriptors)
                    })(t, o, i),
                    this.override && ue.override(t.id, t.overrides)),
                o
            )
        }
        get(t) {
            return this.items[t]
        }
        unregister(t) {
            const e = this.items,
                i = t.id,
                s = this.scope
            i in e && delete e[i],
                s &&
                    i in ue[s] &&
                    (delete ue[s][i], this.override && delete re[i])
        }
    }
    class tn {
        constructor() {
            ;(this.controllers = new Qs(Ws, 'datasets', !0)),
                (this.elements = new Qs(Hs, 'elements')),
                (this.plugins = new Qs(Object, 'plugins')),
                (this.scales = new Qs(Js, 'scales')),
                (this._typedRegistries = [
                    this.controllers,
                    this.scales,
                    this.elements,
                ])
        }
        add(...t) {
            this._each('register', t)
        }
        remove(...t) {
            this._each('unregister', t)
        }
        addControllers(...t) {
            this._each('register', t, this.controllers)
        }
        addElements(...t) {
            this._each('register', t, this.elements)
        }
        addPlugins(...t) {
            this._each('register', t, this.plugins)
        }
        addScales(...t) {
            this._each('register', t, this.scales)
        }
        getController(t) {
            return this._get(t, this.controllers, 'controller')
        }
        getElement(t) {
            return this._get(t, this.elements, 'element')
        }
        getPlugin(t) {
            return this._get(t, this.plugins, 'plugin')
        }
        getScale(t) {
            return this._get(t, this.scales, 'scale')
        }
        removeControllers(...t) {
            this._each('unregister', t, this.controllers)
        }
        removeElements(...t) {
            this._each('unregister', t, this.elements)
        }
        removePlugins(...t) {
            this._each('unregister', t, this.plugins)
        }
        removeScales(...t) {
            this._each('unregister', t, this.scales)
        }
        _each(t, e, i) {
            ;[...e].forEach((e) => {
                const s = i || this._getRegistryForType(e)
                i || s.isForType(e) || (s === this.plugins && e.id)
                    ? this._exec(t, s, e)
                    : u(e, (e) => {
                          const s = i || this._getRegistryForType(e)
                          this._exec(t, s, e)
                      })
            })
        }
        _exec(t, e, i) {
            const s = w(t)
            d(i['before' + s], [], i), e[t](i), d(i['after' + s], [], i)
        }
        _getRegistryForType(t) {
            for (let e = 0; e < this._typedRegistries.length; e++) {
                const i = this._typedRegistries[e]
                if (i.isForType(t)) return i
            }
            return this.plugins
        }
        _get(t, e, i) {
            const s = e.get(t)
            if (void 0 === s)
                throw new Error('"' + t + '" is not a registered ' + i + '.')
            return s
        }
    }
    var en = new tn()
    class sn {
        constructor() {
            this._init = []
        }
        notify(t, e, i, s) {
            'beforeInit' === e &&
                ((this._init = this._createDescriptors(t, !0)),
                this._notify(this._init, t, 'install'))
            const n = s ? this._descriptors(t).filter(s) : this._descriptors(t),
                o = this._notify(n, t, e, i)
            return (
                'afterDestroy' === e &&
                    (this._notify(n, t, 'stop'),
                    this._notify(this._init, t, 'uninstall')),
                o
            )
        }
        _notify(t, e, i, s) {
            s = s || {}
            for (const n of t) {
                const t = n.plugin
                if (!1 === d(t[i], [e, s, n.options], t) && s.cancelable)
                    return !1
            }
            return !0
        }
        invalidate() {
            s(this._cache) ||
                ((this._oldCache = this._cache), (this._cache = void 0))
        }
        _descriptors(t) {
            if (this._cache) return this._cache
            const e = (this._cache = this._createDescriptors(t))
            return this._notifyStateChanges(t), e
        }
        _createDescriptors(t, e) {
            const i = t && t.config,
                s = l(i.options && i.options.plugins, {}),
                n = (function (t) {
                    const e = {},
                        i = [],
                        s = Object.keys(en.plugins.items)
                    for (let t = 0; t < s.length; t++)
                        i.push(en.getPlugin(s[t]))
                    const n = t.plugins || []
                    for (let t = 0; t < n.length; t++) {
                        const s = n[t]
                        ;-1 === i.indexOf(s) && (i.push(s), (e[s.id] = !0))
                    }
                    return { plugins: i, localIds: e }
                })(i)
            return !1 !== s || e
                ? (function (t, { plugins: e, localIds: i }, s, n) {
                      const o = [],
                          a = t.getContext()
                      for (const r of e) {
                          const e = r.id,
                              l = nn(s[e], n)
                          null !== l &&
                              o.push({
                                  plugin: r,
                                  options: on(
                                      t.config,
                                      { plugin: r, local: i[e] },
                                      l,
                                      a
                                  ),
                              })
                      }
                      return o
                  })(t, n, s, e)
                : []
        }
        _notifyStateChanges(t) {
            const e = this._oldCache || [],
                i = this._cache,
                s = (t, e) =>
                    t.filter((t) => !e.some((e) => t.plugin.id === e.plugin.id))
            this._notify(s(e, i), t, 'stop'), this._notify(s(i, e), t, 'start')
        }
    }
    function nn(t, e) {
        return e || !1 !== t ? (!0 === t ? {} : t) : null
    }
    function on(t, { plugin: e, local: i }, s, n) {
        const o = t.pluginScopeKeys(e),
            a = t.getOptionScopes(s, o)
        return (
            i && e.defaults && a.push(e.defaults),
            t.createResolver(a, n, [''], {
                scriptable: !1,
                indexable: !1,
                allKeys: !0,
            })
        )
    }
    function an(t, e) {
        const i = ue.datasets[t] || {}
        return (
            ((e.datasets || {})[t] || {}).indexAxis ||
            e.indexAxis ||
            i.indexAxis ||
            'x'
        )
    }
    function rn(t) {
        if ('x' === t || 'y' === t || 'r' === t) return t
    }
    function ln(t, ...e) {
        if (rn(t)) return t
        for (const s of e) {
            const e =
                s.axis ||
                ('top' === (i = s.position) || 'bottom' === i
                    ? 'x'
                    : 'left' === i || 'right' === i
                      ? 'y'
                      : void 0) ||
                (t.length > 1 && rn(t[0].toLowerCase()))
            if (e) return e
        }
        var i
        throw new Error(
            `Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`
        )
    }
    function hn(t, e, i) {
        if (i[e + 'AxisID'] === t) return { axis: e }
    }
    function cn(t, e) {
        const i = re[t.type] || { scales: {} },
            s = e.scales || {},
            n = an(t.type, e),
            a = Object.create(null)
        return (
            Object.keys(s).forEach((e) => {
                const r = s[e]
                if (!o(r))
                    return console.error(
                        `Invalid scale configuration for scale: ${e}`
                    )
                if (r._proxy)
                    return console.warn(
                        `Ignoring resolver passed as options for scale: ${e}`
                    )
                const l = ln(
                        e,
                        r,
                        (function (t, e) {
                            if (e.data && e.data.datasets) {
                                const i = e.data.datasets.filter(
                                    (e) => e.xAxisID === t || e.yAxisID === t
                                )
                                if (i.length)
                                    return hn(t, 'x', i[0]) || hn(t, 'y', i[0])
                            }
                            return {}
                        })(e, t),
                        ue.scales[r.type]
                    ),
                    h = (function (t, e) {
                        return t === e ? '_index_' : '_value_'
                    })(l, n),
                    c = i.scales || {}
                a[e] = x(Object.create(null), [{ axis: l }, r, c[l], c[h]])
            }),
            t.data.datasets.forEach((i) => {
                const n = i.type || t.type,
                    o = i.indexAxis || an(n, e),
                    r = (re[n] || {}).scales || {}
                Object.keys(r).forEach((t) => {
                    const e = (function (t, e) {
                            let i = t
                            return (
                                '_index_' === t
                                    ? (i = e)
                                    : '_value_' === t &&
                                      (i = 'x' === e ? 'y' : 'x'),
                                i
                            )
                        })(t, o),
                        n = i[e + 'AxisID'] || e
                    ;(a[n] = a[n] || Object.create(null)),
                        x(a[n], [{ axis: e }, s[n], r[t]])
                })
            }),
            Object.keys(a).forEach((t) => {
                const e = a[t]
                x(e, [ue.scales[e.type], ue.scale])
            }),
            a
        )
    }
    function dn(t) {
        const e = t.options || (t.options = {})
        ;(e.plugins = l(e.plugins, {})), (e.scales = cn(t, e))
    }
    function un(t) {
        return (
            ((t = t || {}).datasets = t.datasets || []),
            (t.labels = t.labels || []),
            t
        )
    }
    const fn = new Map(),
        gn = new Set()
    function pn(t, e) {
        let i = fn.get(t)
        return i || ((i = e()), fn.set(t, i), gn.add(i)), i
    }
    const mn = (t, e, i) => {
        const s = M(e, i)
        void 0 !== s && t.add(s)
    }
    class bn {
        constructor(t) {
            ;(this._config = (function (t) {
                return ((t = t || {}).data = un(t.data)), dn(t), t
            })(t)),
                (this._scopeCache = new Map()),
                (this._resolverCache = new Map())
        }
        get platform() {
            return this._config.platform
        }
        get type() {
            return this._config.type
        }
        set type(t) {
            this._config.type = t
        }
        get data() {
            return this._config.data
        }
        set data(t) {
            this._config.data = un(t)
        }
        get options() {
            return this._config.options
        }
        set options(t) {
            this._config.options = t
        }
        get plugins() {
            return this._config.plugins
        }
        update() {
            const t = this._config
            this.clearCache(), dn(t)
        }
        clearCache() {
            this._scopeCache.clear(), this._resolverCache.clear()
        }
        datasetScopeKeys(t) {
            return pn(t, () => [[`datasets.${t}`, '']])
        }
        datasetAnimationScopeKeys(t, e) {
            return pn(`${t}.transition.${e}`, () => [
                [`datasets.${t}.transitions.${e}`, `transitions.${e}`],
                [`datasets.${t}`, ''],
            ])
        }
        datasetElementScopeKeys(t, e) {
            return pn(`${t}-${e}`, () => [
                [
                    `datasets.${t}.elements.${e}`,
                    `datasets.${t}`,
                    `elements.${e}`,
                    '',
                ],
            ])
        }
        pluginScopeKeys(t) {
            const e = t.id
            return pn(`${this.type}-plugin-${e}`, () => [
                [`plugins.${e}`, ...(t.additionalOptionScopes || [])],
            ])
        }
        _cachedScopes(t, e) {
            const i = this._scopeCache
            let s = i.get(t)
            return (s && !e) || ((s = new Map()), i.set(t, s)), s
        }
        getOptionScopes(t, e, i) {
            const { options: s, type: n } = this,
                o = this._cachedScopes(t, i),
                a = o.get(e)
            if (a) return a
            const r = new Set()
            e.forEach((e) => {
                t && (r.add(t), e.forEach((e) => mn(r, t, e))),
                    e.forEach((t) => mn(r, s, t)),
                    e.forEach((t) => mn(r, re[n] || {}, t)),
                    e.forEach((t) => mn(r, ue, t)),
                    e.forEach((t) => mn(r, le, t))
            })
            const l = Array.from(r)
            return (
                0 === l.length && l.push(Object.create(null)),
                gn.has(e) && o.set(e, l),
                l
            )
        }
        chartOptionScopes() {
            const { options: t, type: e } = this
            return [t, re[e] || {}, ue.datasets[e] || {}, { type: e }, ue, le]
        }
        resolveNamedOptions(t, e, i, s = ['']) {
            const o = { $shared: !0 },
                { resolver: a, subPrefixes: r } = xn(this._resolverCache, t, s)
            let l = a
            if (
                (function (t, e) {
                    const { isScriptable: i, isIndexable: s } = Ye(t)
                    for (const o of e) {
                        const e = i(o),
                            a = s(o),
                            r = (a || e) && t[o]
                        if ((e && (S(r) || _n(r))) || (a && n(r))) return !0
                    }
                    return !1
                })(a, e)
            ) {
                o.$shared = !1
                l = $e(a, (i = S(i) ? i() : i), this.createResolver(t, i, r))
            }
            for (const t of e) o[t] = l[t]
            return o
        }
        createResolver(t, e, i = [''], s) {
            const { resolver: n } = xn(this._resolverCache, t, i)
            return o(e) ? $e(n, e, void 0, s) : n
        }
    }
    function xn(t, e, i) {
        let s = t.get(e)
        s || ((s = new Map()), t.set(e, s))
        const n = i.join()
        let o = s.get(n)
        if (!o) {
            ;(o = {
                resolver: je(e, i),
                subPrefixes: i.filter(
                    (t) => !t.toLowerCase().includes('hover')
                ),
            }),
                s.set(n, o)
        }
        return o
    }
    const _n = (t) =>
        o(t) && Object.getOwnPropertyNames(t).reduce((e, i) => e || S(t[i]), !1)
    const yn = ['top', 'bottom', 'left', 'right', 'chartArea']
    function vn(t, e) {
        return (
            'top' === t || 'bottom' === t || (-1 === yn.indexOf(t) && 'x' === e)
        )
    }
    function Mn(t, e) {
        return function (i, s) {
            return i[t] === s[t] ? i[e] - s[e] : i[t] - s[t]
        }
    }
    function wn(t) {
        const e = t.chart,
            i = e.options.animation
        e.notifyPlugins('afterRender'), d(i && i.onComplete, [t], e)
    }
    function kn(t) {
        const e = t.chart,
            i = e.options.animation
        d(i && i.onProgress, [t], e)
    }
    function Sn(t) {
        return (
            fe() && 'string' == typeof t
                ? (t = document.getElementById(t))
                : t && t.length && (t = t[0]),
            t && t.canvas && (t = t.canvas),
            t
        )
    }
    const Pn = {},
        Dn = (t) => {
            const e = Sn(t)
            return Object.values(Pn)
                .filter((t) => t.canvas === e)
                .pop()
        }
    function Cn(t, e, i) {
        const s = Object.keys(t)
        for (const n of s) {
            const s = +n
            if (s >= e) {
                const o = t[n]
                delete t[n], (i > 0 || s > e) && (t[s + i] = o)
            }
        }
    }
    class On {
        static defaults = ue
        static instances = Pn
        static overrides = re
        static registry = en
        static version = '4.3.0'
        static getChart = Dn
        static register(...t) {
            en.add(...t), An()
        }
        static unregister(...t) {
            en.remove(...t), An()
        }
        constructor(t, e) {
            const s = (this.config = new bn(e)),
                n = Sn(t),
                o = Dn(n)
            if (o)
                throw new Error(
                    "Canvas is already in use. Chart with ID '" +
                        o.id +
                        "' must be destroyed before the canvas with ID '" +
                        o.canvas.id +
                        "' can be reused."
                )
            const a = s.createResolver(s.chartOptionScopes(), this.getContext())
            ;(this.platform = new (s.platform || ks(n))()),
                this.platform.updateConfig(s)
            const r = this.platform.acquireContext(n, a.aspectRatio),
                l = r && r.canvas,
                h = l && l.height,
                c = l && l.width
            ;(this.id = i()),
                (this.ctx = r),
                (this.canvas = l),
                (this.width = c),
                (this.height = h),
                (this._options = a),
                (this._aspectRatio = this.aspectRatio),
                (this._layers = []),
                (this._metasets = []),
                (this._stacks = void 0),
                (this.boxes = []),
                (this.currentDevicePixelRatio = void 0),
                (this.chartArea = void 0),
                (this._active = []),
                (this._lastEvent = void 0),
                (this._listeners = {}),
                (this._responsiveListeners = void 0),
                (this._sortedMetasets = []),
                (this.scales = {}),
                (this._plugins = new sn()),
                (this.$proxies = {}),
                (this._hiddenIndices = {}),
                (this.attached = !1),
                (this._animationsDisabled = void 0),
                (this.$context = void 0),
                (this._doResize = dt(
                    (t) => this.update(t),
                    a.resizeDelay || 0
                )),
                (this._dataChanges = []),
                (Pn[this.id] = this),
                r && l
                    ? (xt.listen(this, 'complete', wn),
                      xt.listen(this, 'progress', kn),
                      this._initialize(),
                      this.attached && this.update())
                    : console.error(
                          "Failed to create chart: can't acquire context from the given item"
                      )
        }
        get aspectRatio() {
            const {
                options: { aspectRatio: t, maintainAspectRatio: e },
                width: i,
                height: n,
                _aspectRatio: o,
            } = this
            return s(t) ? (e && o ? o : n ? i / n : null) : t
        }
        get data() {
            return this.config.data
        }
        set data(t) {
            this.config.data = t
        }
        get options() {
            return this._options
        }
        set options(t) {
            this.config.options = t
        }
        get registry() {
            return en
        }
        _initialize() {
            return (
                this.notifyPlugins('beforeInit'),
                this.options.responsive
                    ? this.resize()
                    : ke(this, this.options.devicePixelRatio),
                this.bindEvents(),
                this.notifyPlugins('afterInit'),
                this
            )
        }
        clear() {
            return Te(this.canvas, this.ctx), this
        }
        stop() {
            return xt.stop(this), this
        }
        resize(t, e) {
            xt.running(this)
                ? (this._resizeBeforeDraw = { width: t, height: e })
                : this._resize(t, e)
        }
        _resize(t, e) {
            const i = this.options,
                s = this.canvas,
                n = i.maintainAspectRatio && this.aspectRatio,
                o = this.platform.getMaximumSize(s, t, e, n),
                a = i.devicePixelRatio || this.platform.getDevicePixelRatio(),
                r = this.width ? 'resize' : 'attach'
            ;(this.width = o.width),
                (this.height = o.height),
                (this._aspectRatio = this.aspectRatio),
                ke(this, a, !0) &&
                    (this.notifyPlugins('resize', { size: o }),
                    d(i.onResize, [this, o], this),
                    this.attached && this._doResize(r) && this.render())
        }
        ensureScalesHaveIDs() {
            u(this.options.scales || {}, (t, e) => {
                t.id = e
            })
        }
        buildOrUpdateScales() {
            const t = this.options,
                e = t.scales,
                i = this.scales,
                s = Object.keys(i).reduce((t, e) => ((t[e] = !1), t), {})
            let n = []
            e &&
                (n = n.concat(
                    Object.keys(e).map((t) => {
                        const i = e[t],
                            s = ln(t, i),
                            n = 'r' === s,
                            o = 'x' === s
                        return {
                            options: i,
                            dposition: n ? 'chartArea' : o ? 'bottom' : 'left',
                            dtype: n
                                ? 'radialLinear'
                                : o
                                  ? 'category'
                                  : 'linear',
                        }
                    })
                )),
                u(n, (e) => {
                    const n = e.options,
                        o = n.id,
                        a = ln(o, n),
                        r = l(n.type, e.dtype)
                    ;(void 0 !== n.position &&
                        vn(n.position, a) === vn(e.dposition)) ||
                        (n.position = e.dposition),
                        (s[o] = !0)
                    let h = null
                    if (o in i && i[o].type === r) h = i[o]
                    else {
                        ;(h = new (en.getScale(r))({
                            id: o,
                            type: r,
                            ctx: this.ctx,
                            chart: this,
                        })),
                            (i[h.id] = h)
                    }
                    h.init(n, t)
                }),
                u(s, (t, e) => {
                    t || delete i[e]
                }),
                u(i, (t) => {
                    as.configure(this, t, t.options), as.addBox(this, t)
                })
        }
        _updateMetasets() {
            const t = this._metasets,
                e = this.data.datasets.length,
                i = t.length
            if ((t.sort((t, e) => t.index - e.index), i > e)) {
                for (let t = e; t < i; ++t) this._destroyDatasetMeta(t)
                t.splice(e, i - e)
            }
            this._sortedMetasets = t.slice(0).sort(Mn('order', 'index'))
        }
        _removeUnreferencedMetasets() {
            const {
                _metasets: t,
                data: { datasets: e },
            } = this
            t.length > e.length && delete this._stacks,
                t.forEach((t, i) => {
                    0 === e.filter((e) => e === t._dataset).length &&
                        this._destroyDatasetMeta(i)
                })
        }
        buildOrUpdateControllers() {
            const t = [],
                e = this.data.datasets
            let i, s
            for (
                this._removeUnreferencedMetasets(), i = 0, s = e.length;
                i < s;
                i++
            ) {
                const s = e[i]
                let n = this.getDatasetMeta(i)
                const o = s.type || this.config.type
                if (
                    (n.type &&
                        n.type !== o &&
                        (this._destroyDatasetMeta(i),
                        (n = this.getDatasetMeta(i))),
                    (n.type = o),
                    (n.indexAxis = s.indexAxis || an(o, this.options)),
                    (n.order = s.order || 0),
                    (n.index = i),
                    (n.label = '' + s.label),
                    (n.visible = this.isDatasetVisible(i)),
                    n.controller)
                )
                    n.controller.updateIndex(i), n.controller.linkScales()
                else {
                    const e = en.getController(o),
                        { datasetElementType: s, dataElementType: a } =
                            ue.datasets[o]
                    Object.assign(e, {
                        dataElementType: en.getElement(a),
                        datasetElementType: s && en.getElement(s),
                    }),
                        (n.controller = new e(this, i)),
                        t.push(n.controller)
                }
            }
            return this._updateMetasets(), t
        }
        _resetElements() {
            u(
                this.data.datasets,
                (t, e) => {
                    this.getDatasetMeta(e).controller.reset()
                },
                this
            )
        }
        reset() {
            this._resetElements(), this.notifyPlugins('reset')
        }
        update(t) {
            const e = this.config
            e.update()
            const i = (this._options = e.createResolver(
                    e.chartOptionScopes(),
                    this.getContext()
                )),
                s = (this._animationsDisabled = !i.animation)
            if (
                (this._updateScales(),
                this._checkEventBindings(),
                this._updateHiddenIndices(),
                this._plugins.invalidate(),
                !1 ===
                    this.notifyPlugins('beforeUpdate', {
                        mode: t,
                        cancelable: !0,
                    }))
            )
                return
            const n = this.buildOrUpdateControllers()
            this.notifyPlugins('beforeElementsUpdate')
            let o = 0
            for (let t = 0, e = this.data.datasets.length; t < e; t++) {
                const { controller: e } = this.getDatasetMeta(t),
                    i = !s && -1 === n.indexOf(e)
                e.buildOrUpdateElements(i),
                    (o = Math.max(+e.getMaxOverflow(), o))
            }
            ;(o = this._minPadding = i.layout.autoPadding ? o : 0),
                this._updateLayout(o),
                s ||
                    u(n, (t) => {
                        t.reset()
                    }),
                this._updateDatasets(t),
                this.notifyPlugins('afterUpdate', { mode: t }),
                this._layers.sort(Mn('z', '_idx'))
            const { _active: a, _lastEvent: r } = this
            r
                ? this._eventHandler(r, !0)
                : a.length && this._updateHoverStyles(a, a, !0),
                this.render()
        }
        _updateScales() {
            u(this.scales, (t) => {
                as.removeBox(this, t)
            }),
                this.ensureScalesHaveIDs(),
                this.buildOrUpdateScales()
        }
        _checkEventBindings() {
            const t = this.options,
                e = new Set(Object.keys(this._listeners)),
                i = new Set(t.events)
            ;(P(e, i) && !!this._responsiveListeners === t.responsive) ||
                (this.unbindEvents(), this.bindEvents())
        }
        _updateHiddenIndices() {
            const { _hiddenIndices: t } = this,
                e = this._getUniformDataChanges() || []
            for (const { method: i, start: s, count: n } of e) {
                Cn(t, s, '_removeElements' === i ? -n : n)
            }
        }
        _getUniformDataChanges() {
            const t = this._dataChanges
            if (!t || !t.length) return
            this._dataChanges = []
            const e = this.data.datasets.length,
                i = (e) =>
                    new Set(
                        t
                            .filter((t) => t[0] === e)
                            .map((t, e) => e + ',' + t.splice(1).join(','))
                    ),
                s = i(0)
            for (let t = 1; t < e; t++) if (!P(s, i(t))) return
            return Array.from(s)
                .map((t) => t.split(','))
                .map((t) => ({ method: t[1], start: +t[2], count: +t[3] }))
        }
        _updateLayout(t) {
            if (!1 === this.notifyPlugins('beforeLayout', { cancelable: !0 }))
                return
            as.update(this, this.width, this.height, t)
            const e = this.chartArea,
                i = e.width <= 0 || e.height <= 0
            ;(this._layers = []),
                u(
                    this.boxes,
                    (t) => {
                        ;(i && 'chartArea' === t.position) ||
                            (t.configure && t.configure(),
                            this._layers.push(...t._layers()))
                    },
                    this
                ),
                this._layers.forEach((t, e) => {
                    t._idx = e
                }),
                this.notifyPlugins('afterLayout')
        }
        _updateDatasets(t) {
            if (
                !1 !==
                this.notifyPlugins('beforeDatasetsUpdate', {
                    mode: t,
                    cancelable: !0,
                })
            ) {
                for (let t = 0, e = this.data.datasets.length; t < e; ++t)
                    this.getDatasetMeta(t).controller.configure()
                for (let e = 0, i = this.data.datasets.length; e < i; ++e)
                    this._updateDataset(e, S(t) ? t({ datasetIndex: e }) : t)
                this.notifyPlugins('afterDatasetsUpdate', { mode: t })
            }
        }
        _updateDataset(t, e) {
            const i = this.getDatasetMeta(t),
                s = { meta: i, index: t, mode: e, cancelable: !0 }
            !1 !== this.notifyPlugins('beforeDatasetUpdate', s) &&
                (i.controller._update(e),
                (s.cancelable = !1),
                this.notifyPlugins('afterDatasetUpdate', s))
        }
        render() {
            !1 !== this.notifyPlugins('beforeRender', { cancelable: !0 }) &&
                (xt.has(this)
                    ? this.attached && !xt.running(this) && xt.start(this)
                    : (this.draw(), wn({ chart: this })))
        }
        draw() {
            let t
            if (this._resizeBeforeDraw) {
                const { width: t, height: e } = this._resizeBeforeDraw
                this._resize(t, e), (this._resizeBeforeDraw = null)
            }
            if ((this.clear(), this.width <= 0 || this.height <= 0)) return
            if (!1 === this.notifyPlugins('beforeDraw', { cancelable: !0 }))
                return
            const e = this._layers
            for (t = 0; t < e.length && e[t].z <= 0; ++t)
                e[t].draw(this.chartArea)
            for (this._drawDatasets(); t < e.length; ++t)
                e[t].draw(this.chartArea)
            this.notifyPlugins('afterDraw')
        }
        _getSortedDatasetMetas(t) {
            const e = this._sortedMetasets,
                i = []
            let s, n
            for (s = 0, n = e.length; s < n; ++s) {
                const n = e[s]
                ;(t && !n.visible) || i.push(n)
            }
            return i
        }
        getSortedVisibleDatasetMetas() {
            return this._getSortedDatasetMetas(!0)
        }
        _drawDatasets() {
            if (
                !1 ===
                this.notifyPlugins('beforeDatasetsDraw', { cancelable: !0 })
            )
                return
            const t = this.getSortedVisibleDatasetMetas()
            for (let e = t.length - 1; e >= 0; --e) this._drawDataset(t[e])
            this.notifyPlugins('afterDatasetsDraw')
        }
        _drawDataset(t) {
            const e = this.ctx,
                i = t._clip,
                s = !i.disabled,
                n =
                    (function (t) {
                        const { xScale: e, yScale: i } = t
                        if (e && i)
                            return {
                                left: e.left,
                                right: e.right,
                                top: i.top,
                                bottom: i.bottom,
                            }
                    })(t) || this.chartArea,
                o = { meta: t, index: t.index, cancelable: !0 }
            !1 !== this.notifyPlugins('beforeDatasetDraw', o) &&
                (s &&
                    Ie(e, {
                        left: !1 === i.left ? 0 : n.left - i.left,
                        right: !1 === i.right ? this.width : n.right + i.right,
                        top: !1 === i.top ? 0 : n.top - i.top,
                        bottom:
                            !1 === i.bottom ? this.height : n.bottom + i.bottom,
                    }),
                t.controller.draw(),
                s && ze(e),
                (o.cancelable = !1),
                this.notifyPlugins('afterDatasetDraw', o))
        }
        isPointInArea(t) {
            return Re(t, this.chartArea, this._minPadding)
        }
        getElementsAtEventForMode(t, e, i, s) {
            const n = Xi.modes[e]
            return 'function' == typeof n ? n(this, t, i, s) : []
        }
        getDatasetMeta(t) {
            const e = this.data.datasets[t],
                i = this._metasets
            let s = i.filter((t) => t && t._dataset === e).pop()
            return (
                s ||
                    ((s = {
                        type: null,
                        data: [],
                        dataset: null,
                        controller: null,
                        hidden: null,
                        xAxisID: null,
                        yAxisID: null,
                        order: (e && e.order) || 0,
                        index: t,
                        _dataset: e,
                        _parsed: [],
                        _sorted: !1,
                    }),
                    i.push(s)),
                s
            )
        }
        getContext() {
            return (
                this.$context ||
                (this.$context = Ci(null, { chart: this, type: 'chart' }))
            )
        }
        getVisibleDatasetCount() {
            return this.getSortedVisibleDatasetMetas().length
        }
        isDatasetVisible(t) {
            const e = this.data.datasets[t]
            if (!e) return !1
            const i = this.getDatasetMeta(t)
            return 'boolean' == typeof i.hidden ? !i.hidden : !e.hidden
        }
        setDatasetVisibility(t, e) {
            this.getDatasetMeta(t).hidden = !e
        }
        toggleDataVisibility(t) {
            this._hiddenIndices[t] = !this._hiddenIndices[t]
        }
        getDataVisibility(t) {
            return !this._hiddenIndices[t]
        }
        _updateVisibility(t, e, i) {
            const s = i ? 'show' : 'hide',
                n = this.getDatasetMeta(t),
                o = n.controller._resolveAnimations(void 0, s)
            k(e)
                ? ((n.data[e].hidden = !i), this.update())
                : (this.setDatasetVisibility(t, i),
                  o.update(n, { visible: i }),
                  this.update((e) => (e.datasetIndex === t ? s : void 0)))
        }
        hide(t, e) {
            this._updateVisibility(t, e, !1)
        }
        show(t, e) {
            this._updateVisibility(t, e, !0)
        }
        _destroyDatasetMeta(t) {
            const e = this._metasets[t]
            e && e.controller && e.controller._destroy(),
                delete this._metasets[t]
        }
        _stop() {
            let t, e
            for (
                this.stop(),
                    xt.remove(this),
                    t = 0,
                    e = this.data.datasets.length;
                t < e;
                ++t
            )
                this._destroyDatasetMeta(t)
        }
        destroy() {
            this.notifyPlugins('beforeDestroy')
            const { canvas: t, ctx: e } = this
            this._stop(),
                this.config.clearCache(),
                t &&
                    (this.unbindEvents(),
                    Te(t, e),
                    this.platform.releaseContext(e),
                    (this.canvas = null),
                    (this.ctx = null)),
                delete Pn[this.id],
                this.notifyPlugins('afterDestroy')
        }
        toBase64Image(...t) {
            return this.canvas.toDataURL(...t)
        }
        bindEvents() {
            this.bindUserEvents(),
                this.options.responsive
                    ? this.bindResponsiveEvents()
                    : (this.attached = !0)
        }
        bindUserEvents() {
            const t = this._listeners,
                e = this.platform,
                i = (i, s) => {
                    e.addEventListener(this, i, s), (t[i] = s)
                },
                s = (t, e, i) => {
                    ;(t.offsetX = e), (t.offsetY = i), this._eventHandler(t)
                }
            u(this.options.events, (t) => i(t, s))
        }
        bindResponsiveEvents() {
            this._responsiveListeners || (this._responsiveListeners = {})
            const t = this._responsiveListeners,
                e = this.platform,
                i = (i, s) => {
                    e.addEventListener(this, i, s), (t[i] = s)
                },
                s = (i, s) => {
                    t[i] && (e.removeEventListener(this, i, s), delete t[i])
                },
                n = (t, e) => {
                    this.canvas && this.resize(t, e)
                }
            let o
            const a = () => {
                s('attach', a),
                    (this.attached = !0),
                    this.resize(),
                    i('resize', n),
                    i('detach', o)
            }
            ;(o = () => {
                ;(this.attached = !1),
                    s('resize', n),
                    this._stop(),
                    this._resize(0, 0),
                    i('attach', a)
            }),
                e.isAttached(this.canvas) ? a() : o()
        }
        unbindEvents() {
            u(this._listeners, (t, e) => {
                this.platform.removeEventListener(this, e, t)
            }),
                (this._listeners = {}),
                u(this._responsiveListeners, (t, e) => {
                    this.platform.removeEventListener(this, e, t)
                }),
                (this._responsiveListeners = void 0)
        }
        updateHoverStyle(t, e, i) {
            const s = i ? 'set' : 'remove'
            let n, o, a, r
            for (
                'dataset' === e &&
                    ((n = this.getDatasetMeta(t[0].datasetIndex)),
                    n.controller['_' + s + 'DatasetHoverStyle']()),
                    a = 0,
                    r = t.length;
                a < r;
                ++a
            ) {
                o = t[a]
                const e = o && this.getDatasetMeta(o.datasetIndex).controller
                e && e[s + 'HoverStyle'](o.element, o.datasetIndex, o.index)
            }
        }
        getActiveElements() {
            return this._active || []
        }
        setActiveElements(t) {
            const e = this._active || [],
                i = t.map(({ datasetIndex: t, index: e }) => {
                    const i = this.getDatasetMeta(t)
                    if (!i) throw new Error('No dataset found at index ' + t)
                    return { datasetIndex: t, element: i.data[e], index: e }
                })
            !f(i, e) &&
                ((this._active = i),
                (this._lastEvent = null),
                this._updateHoverStyles(i, e))
        }
        notifyPlugins(t, e, i) {
            return this._plugins.notify(this, t, e, i)
        }
        isPluginEnabled(t) {
            return (
                1 ===
                this._plugins._cache.filter((e) => e.plugin.id === t).length
            )
        }
        _updateHoverStyles(t, e, i) {
            const s = this.options.hover,
                n = (t, e) =>
                    t.filter(
                        (t) =>
                            !e.some(
                                (e) =>
                                    t.datasetIndex === e.datasetIndex &&
                                    t.index === e.index
                            )
                    ),
                o = n(e, t),
                a = i ? t : n(t, e)
            o.length && this.updateHoverStyle(o, s.mode, !1),
                a.length && s.mode && this.updateHoverStyle(a, s.mode, !0)
        }
        _eventHandler(t, e) {
            const i = {
                    event: t,
                    replay: e,
                    cancelable: !0,
                    inChartArea: this.isPointInArea(t),
                },
                s = (e) =>
                    (e.options.events || this.options.events).includes(
                        t.native.type
                    )
            if (!1 === this.notifyPlugins('beforeEvent', i, s)) return
            const n = this._handleEvent(t, e, i.inChartArea)
            return (
                (i.cancelable = !1),
                this.notifyPlugins('afterEvent', i, s),
                (n || i.changed) && this.render(),
                this
            )
        }
        _handleEvent(t, e, i) {
            const { _active: s = [], options: n } = this,
                o = e,
                a = this._getActiveElements(t, s, i, o),
                r = D(t),
                l = (function (t, e, i, s) {
                    return i && 'mouseout' !== t.type ? (s ? e : t) : null
                })(t, this._lastEvent, i, r)
            i &&
                ((this._lastEvent = null),
                d(n.onHover, [t, a, this], this),
                r && d(n.onClick, [t, a, this], this))
            const h = !f(a, s)
            return (
                (h || e) &&
                    ((this._active = a), this._updateHoverStyles(a, s, e)),
                (this._lastEvent = l),
                h
            )
        }
        _getActiveElements(t, e, i, s) {
            if ('mouseout' === t.type) return []
            if (!i) return e
            const n = this.options.hover
            return this.getElementsAtEventForMode(t, n.mode, n, s)
        }
    }
    function An() {
        return u(On.instances, (t) => t._plugins.invalidate())
    }
    function Tn() {
        throw new Error(
            'This method is not implemented: Check that a complete date adapter is provided.'
        )
    }
    class Ln {
        static override(t) {
            Object.assign(Ln.prototype, t)
        }
        options
        constructor(t) {
            this.options = t || {}
        }
        init() {}
        formats() {
            return Tn()
        }
        parse() {
            return Tn()
        }
        format() {
            return Tn()
        }
        add() {
            return Tn()
        }
        diff() {
            return Tn()
        }
        startOf() {
            return Tn()
        }
        endOf() {
            return Tn()
        }
    }
    var En = { _date: Ln }
    function Rn(t) {
        const e = t.iScale,
            i = (function (t, e) {
                if (!t._cache.$bar) {
                    const i = t.getMatchingVisibleMetas(e)
                    let s = []
                    for (let e = 0, n = i.length; e < n; e++)
                        s = s.concat(i[e].controller.getAllParsedValues(t))
                    t._cache.$bar = lt(s.sort((t, e) => t - e))
                }
                return t._cache.$bar
            })(e, t.type)
        let s,
            n,
            o,
            a,
            r = e._length
        const l = () => {
            32767 !== o &&
                -32768 !== o &&
                (k(a) && (r = Math.min(r, Math.abs(o - a) || r)), (a = o))
        }
        for (s = 0, n = i.length; s < n; ++s)
            (o = e.getPixelForValue(i[s])), l()
        for (a = void 0, s = 0, n = e.ticks.length; s < n; ++s)
            (o = e.getPixelForTick(s)), l()
        return r
    }
    function In(t, e, i, s) {
        return (
            n(t)
                ? (function (t, e, i, s) {
                      const n = i.parse(t[0], s),
                          o = i.parse(t[1], s),
                          a = Math.min(n, o),
                          r = Math.max(n, o)
                      let l = a,
                          h = r
                      Math.abs(a) > Math.abs(r) && ((l = r), (h = a)),
                          (e[i.axis] = h),
                          (e._custom = {
                              barStart: l,
                              barEnd: h,
                              start: n,
                              end: o,
                              min: a,
                              max: r,
                          })
                  })(t, e, i, s)
                : (e[i.axis] = i.parse(t, s)),
            e
        )
    }
    function zn(t, e, i, s) {
        const n = t.iScale,
            o = t.vScale,
            a = n.getLabels(),
            r = n === o,
            l = []
        let h, c, d, u
        for (h = i, c = i + s; h < c; ++h)
            (u = e[h]),
                (d = {}),
                (d[n.axis] = r || n.parse(a[h], h)),
                l.push(In(u, d, o, h))
        return l
    }
    function Fn(t) {
        return t && void 0 !== t.barStart && void 0 !== t.barEnd
    }
    function Vn(t, e, i, s) {
        let n = e.borderSkipped
        const o = {}
        if (!n) return void (t.borderSkipped = o)
        if (!0 === n)
            return void (t.borderSkipped = {
                top: !0,
                right: !0,
                bottom: !0,
                left: !0,
            })
        const {
            start: a,
            end: r,
            reverse: l,
            top: h,
            bottom: c,
        } = (function (t) {
            let e, i, s, n, o
            return (
                t.horizontal
                    ? ((e = t.base > t.x), (i = 'left'), (s = 'right'))
                    : ((e = t.base < t.y), (i = 'bottom'), (s = 'top')),
                e ? ((n = 'end'), (o = 'start')) : ((n = 'start'), (o = 'end')),
                { start: i, end: s, reverse: e, top: n, bottom: o }
            )
        })(t)
        'middle' === n &&
            i &&
            ((t.enableBorderRadius = !0),
            (i._top || 0) === s
                ? (n = h)
                : (i._bottom || 0) === s
                  ? (n = c)
                  : ((o[Bn(c, a, r, l)] = !0), (n = h))),
            (o[Bn(n, a, r, l)] = !0),
            (t.borderSkipped = o)
    }
    function Bn(t, e, i, s) {
        var n, o, a
        return (
            s
                ? ((a = i),
                  (t = Nn(
                      (t = (n = t) === (o = e) ? a : n === a ? o : n),
                      i,
                      e
                  )))
                : (t = Nn(t, e, i)),
            t
        )
    }
    function Nn(t, e, i) {
        return 'start' === t ? e : 'end' === t ? i : t
    }
    function Wn(t, { inflateAmount: e }, i) {
        t.inflateAmount = 'auto' === e ? (1 === i ? 0.33 : 0) : e
    }
    class Hn extends Ws {
        static id = 'doughnut'
        static defaults = {
            datasetElementType: !1,
            dataElementType: 'arc',
            animation: { animateRotate: !0, animateScale: !1 },
            animations: {
                numbers: {
                    type: 'number',
                    properties: [
                        'circumference',
                        'endAngle',
                        'innerRadius',
                        'outerRadius',
                        'startAngle',
                        'x',
                        'y',
                        'offset',
                        'borderWidth',
                        'spacing',
                    ],
                },
            },
            cutout: '50%',
            rotation: 0,
            circumference: 360,
            radius: '100%',
            spacing: 0,
            indexAxis: 'r',
        }
        static descriptors = {
            _scriptable: (t) => 'spacing' !== t,
            _indexable: (t) =>
                'spacing' !== t &&
                !t.startsWith('borderDash') &&
                !t.startsWith('hoverBorderDash'),
        }
        static overrides = {
            aspectRatio: 1,
            plugins: {
                legend: {
                    labels: {
                        generateLabels(t) {
                            const e = t.data
                            if (e.labels.length && e.datasets.length) {
                                const {
                                    labels: { pointStyle: i, color: s },
                                } = t.legend.options
                                return e.labels.map((e, n) => {
                                    const o = t
                                        .getDatasetMeta(0)
                                        .controller.getStyle(n)
                                    return {
                                        text: e,
                                        fillStyle: o.backgroundColor,
                                        strokeStyle: o.borderColor,
                                        fontColor: s,
                                        lineWidth: o.borderWidth,
                                        pointStyle: i,
                                        hidden: !t.getDataVisibility(n),
                                        index: n,
                                    }
                                })
                            }
                            return []
                        },
                    },
                    onClick(t, e, i) {
                        i.chart.toggleDataVisibility(e.index), i.chart.update()
                    },
                },
            },
        }
        constructor(t, e) {
            super(t, e),
                (this.enableOptionSharing = !0),
                (this.innerRadius = void 0),
                (this.outerRadius = void 0),
                (this.offsetX = void 0),
                (this.offsetY = void 0)
        }
        linkScales() {}
        parse(t, e) {
            const i = this.getDataset().data,
                s = this._cachedMeta
            if (!1 === this._parsing) s._parsed = i
            else {
                let n,
                    a,
                    r = (t) => +i[t]
                if (o(i[t])) {
                    const { key: t = 'value' } = this._parsing
                    r = (e) => +M(i[e], t)
                }
                for (n = t, a = t + e; n < a; ++n) s._parsed[n] = r(n)
            }
        }
        _getRotation() {
            return $(this.options.rotation - 90)
        }
        _getCircumference() {
            return $(this.options.circumference)
        }
        _getRotationExtents() {
            let t = O,
                e = -O
            for (let i = 0; i < this.chart.data.datasets.length; ++i)
                if (
                    this.chart.isDatasetVisible(i) &&
                    this.chart.getDatasetMeta(i).type === this._type
                ) {
                    const s = this.chart.getDatasetMeta(i).controller,
                        n = s._getRotation(),
                        o = s._getCircumference()
                    ;(t = Math.min(t, n)), (e = Math.max(e, n + o))
                }
            return { rotation: t, circumference: e - t }
        }
        update(t) {
            const e = this.chart,
                { chartArea: i } = e,
                s = this._cachedMeta,
                n = s.data,
                o =
                    this.getMaxBorderWidth() +
                    this.getMaxOffset(n) +
                    this.options.spacing,
                a = Math.max((Math.min(i.width, i.height) - o) / 2, 0),
                r = Math.min(h(this.options.cutout, a), 1),
                l = this._getRingWeight(this.index),
                { circumference: d, rotation: u } = this._getRotationExtents(),
                {
                    ratioX: f,
                    ratioY: g,
                    offsetX: p,
                    offsetY: m,
                } = (function (t, e, i) {
                    let s = 1,
                        n = 1,
                        o = 0,
                        a = 0
                    if (e < O) {
                        const r = t,
                            l = r + e,
                            h = Math.cos(r),
                            c = Math.sin(r),
                            d = Math.cos(l),
                            u = Math.sin(l),
                            f = (t, e, s) =>
                                Z(t, r, l, !0)
                                    ? 1
                                    : Math.max(e, e * i, s, s * i),
                            g = (t, e, s) =>
                                Z(t, r, l, !0)
                                    ? -1
                                    : Math.min(e, e * i, s, s * i),
                            p = f(0, h, d),
                            m = f(E, c, u),
                            b = g(C, h, d),
                            x = g(C + E, c, u)
                        ;(s = (p - b) / 2),
                            (n = (m - x) / 2),
                            (o = -(p + b) / 2),
                            (a = -(m + x) / 2)
                    }
                    return { ratioX: s, ratioY: n, offsetX: o, offsetY: a }
                })(u, d, r),
                b = (i.width - o) / f,
                x = (i.height - o) / g,
                _ = Math.max(Math.min(b, x) / 2, 0),
                y = c(this.options.radius, _),
                v =
                    (y - Math.max(y * r, 0)) /
                    this._getVisibleDatasetWeightTotal()
            ;(this.offsetX = p * y),
                (this.offsetY = m * y),
                (s.total = this.calculateTotal()),
                (this.outerRadius =
                    y - v * this._getRingWeightOffset(this.index)),
                (this.innerRadius = Math.max(this.outerRadius - v * l, 0)),
                this.updateElements(n, 0, n.length, t)
        }
        _circumference(t, e) {
            const i = this.options,
                s = this._cachedMeta,
                n = this._getCircumference()
            return (e && i.animation.animateRotate) ||
                !this.chart.getDataVisibility(t) ||
                null === s._parsed[t] ||
                s.data[t].hidden
                ? 0
                : this.calculateCircumference((s._parsed[t] * n) / O)
        }
        updateElements(t, e, i, s) {
            const n = 'reset' === s,
                o = this.chart,
                a = o.chartArea,
                r = o.options.animation,
                l = (a.left + a.right) / 2,
                h = (a.top + a.bottom) / 2,
                c = n && r.animateScale,
                d = c ? 0 : this.innerRadius,
                u = c ? 0 : this.outerRadius,
                { sharedOptions: f, includeOptions: g } =
                    this._getSharedOptions(e, s)
            let p,
                m = this._getRotation()
            for (p = 0; p < e; ++p) m += this._circumference(p, n)
            for (p = e; p < e + i; ++p) {
                const e = this._circumference(p, n),
                    i = t[p],
                    o = {
                        x: l + this.offsetX,
                        y: h + this.offsetY,
                        startAngle: m,
                        endAngle: m + e,
                        circumference: e,
                        outerRadius: u,
                        innerRadius: d,
                    }
                g &&
                    (o.options =
                        f ||
                        this.resolveDataElementOptions(
                            p,
                            i.active ? 'active' : s
                        )),
                    (m += e),
                    this.updateElement(i, p, o, s)
            }
        }
        calculateTotal() {
            const t = this._cachedMeta,
                e = t.data
            let i,
                s = 0
            for (i = 0; i < e.length; i++) {
                const n = t._parsed[i]
                null === n ||
                    isNaN(n) ||
                    !this.chart.getDataVisibility(i) ||
                    e[i].hidden ||
                    (s += Math.abs(n))
            }
            return s
        }
        calculateCircumference(t) {
            const e = this._cachedMeta.total
            return e > 0 && !isNaN(t) ? O * (Math.abs(t) / e) : 0
        }
        getLabelAndValue(t) {
            const e = this._cachedMeta,
                i = this.chart,
                s = i.data.labels || [],
                n = ne(e._parsed[t], i.options.locale)
            return { label: s[t] || '', value: n }
        }
        getMaxBorderWidth(t) {
            let e = 0
            const i = this.chart
            let s, n, o, a, r
            if (!t)
                for (s = 0, n = i.data.datasets.length; s < n; ++s)
                    if (i.isDatasetVisible(s)) {
                        ;(o = i.getDatasetMeta(s)),
                            (t = o.data),
                            (a = o.controller)
                        break
                    }
            if (!t) return 0
            for (s = 0, n = t.length; s < n; ++s)
                (r = a.resolveDataElementOptions(s)),
                    'inner' !== r.borderAlign &&
                        (e = Math.max(
                            e,
                            r.borderWidth || 0,
                            r.hoverBorderWidth || 0
                        ))
            return e
        }
        getMaxOffset(t) {
            let e = 0
            for (let i = 0, s = t.length; i < s; ++i) {
                const t = this.resolveDataElementOptions(i)
                e = Math.max(e, t.offset || 0, t.hoverOffset || 0)
            }
            return e
        }
        _getRingWeightOffset(t) {
            let e = 0
            for (let i = 0; i < t; ++i)
                this.chart.isDatasetVisible(i) && (e += this._getRingWeight(i))
            return e
        }
        _getRingWeight(t) {
            return Math.max(l(this.chart.data.datasets[t].weight, 1), 0)
        }
        _getVisibleDatasetWeightTotal() {
            return (
                this._getRingWeightOffset(this.chart.data.datasets.length) || 1
            )
        }
    }
    class jn extends Ws {
        static id = 'polarArea'
        static defaults = {
            dataElementType: 'arc',
            animation: { animateRotate: !0, animateScale: !0 },
            animations: {
                numbers: {
                    type: 'number',
                    properties: [
                        'x',
                        'y',
                        'startAngle',
                        'endAngle',
                        'innerRadius',
                        'outerRadius',
                    ],
                },
            },
            indexAxis: 'r',
            startAngle: 0,
        }
        static overrides = {
            aspectRatio: 1,
            plugins: {
                legend: {
                    labels: {
                        generateLabels(t) {
                            const e = t.data
                            if (e.labels.length && e.datasets.length) {
                                const {
                                    labels: { pointStyle: i, color: s },
                                } = t.legend.options
                                return e.labels.map((e, n) => {
                                    const o = t
                                        .getDatasetMeta(0)
                                        .controller.getStyle(n)
                                    return {
                                        text: e,
                                        fillStyle: o.backgroundColor,
                                        strokeStyle: o.borderColor,
                                        fontColor: s,
                                        lineWidth: o.borderWidth,
                                        pointStyle: i,
                                        hidden: !t.getDataVisibility(n),
                                        index: n,
                                    }
                                })
                            }
                            return []
                        },
                    },
                    onClick(t, e, i) {
                        i.chart.toggleDataVisibility(e.index), i.chart.update()
                    },
                },
            },
            scales: {
                r: {
                    type: 'radialLinear',
                    angleLines: { display: !1 },
                    beginAtZero: !0,
                    grid: { circular: !0 },
                    pointLabels: { display: !1 },
                    startAngle: 0,
                },
            },
        }
        constructor(t, e) {
            super(t, e),
                (this.innerRadius = void 0),
                (this.outerRadius = void 0)
        }
        getLabelAndValue(t) {
            const e = this._cachedMeta,
                i = this.chart,
                s = i.data.labels || [],
                n = ne(e._parsed[t].r, i.options.locale)
            return { label: s[t] || '', value: n }
        }
        parseObjectData(t, e, i, s) {
            return ii.bind(this)(t, e, i, s)
        }
        update(t) {
            const e = this._cachedMeta.data
            this._updateRadius(), this.updateElements(e, 0, e.length, t)
        }
        getMinMax() {
            const t = this._cachedMeta,
                e = {
                    min: Number.POSITIVE_INFINITY,
                    max: Number.NEGATIVE_INFINITY,
                }
            return (
                t.data.forEach((t, i) => {
                    const s = this.getParsed(i).r
                    !isNaN(s) &&
                        this.chart.getDataVisibility(i) &&
                        (s < e.min && (e.min = s), s > e.max && (e.max = s))
                }),
                e
            )
        }
        _updateRadius() {
            const t = this.chart,
                e = t.chartArea,
                i = t.options,
                s = Math.min(e.right - e.left, e.bottom - e.top),
                n = Math.max(s / 2, 0),
                o =
                    (n -
                        Math.max(
                            i.cutoutPercentage
                                ? (n / 100) * i.cutoutPercentage
                                : 1,
                            0
                        )) /
                    t.getVisibleDatasetCount()
            ;(this.outerRadius = n - o * this.index),
                (this.innerRadius = this.outerRadius - o)
        }
        updateElements(t, e, i, s) {
            const n = 'reset' === s,
                o = this.chart,
                a = o.options.animation,
                r = this._cachedMeta.rScale,
                l = r.xCenter,
                h = r.yCenter,
                c = r.getIndexAngle(0) - 0.5 * C
            let d,
                u = c
            const f = 360 / this.countVisibleElements()
            for (d = 0; d < e; ++d) u += this._computeAngle(d, s, f)
            for (d = e; d < e + i; d++) {
                const e = t[d]
                let i = u,
                    g = u + this._computeAngle(d, s, f),
                    p = o.getDataVisibility(d)
                        ? r.getDistanceFromCenterForValue(this.getParsed(d).r)
                        : 0
                ;(u = g),
                    n &&
                        (a.animateScale && (p = 0),
                        a.animateRotate && (i = g = c))
                const m = {
                    x: l,
                    y: h,
                    innerRadius: 0,
                    outerRadius: p,
                    startAngle: i,
                    endAngle: g,
                    options: this.resolveDataElementOptions(
                        d,
                        e.active ? 'active' : s
                    ),
                }
                this.updateElement(e, d, m, s)
            }
        }
        countVisibleElements() {
            const t = this._cachedMeta
            let e = 0
            return (
                t.data.forEach((t, i) => {
                    !isNaN(this.getParsed(i).r) &&
                        this.chart.getDataVisibility(i) &&
                        e++
                }),
                e
            )
        }
        _computeAngle(t, e, i) {
            return this.chart.getDataVisibility(t)
                ? $(this.resolveDataElementOptions(t, e).angle || i)
                : 0
        }
    }
    var $n = Object.freeze({
        __proto__: null,
        BarController: class extends Ws {
            static id = 'bar'
            static defaults = {
                datasetElementType: !1,
                dataElementType: 'bar',
                categoryPercentage: 0.8,
                barPercentage: 0.9,
                grouped: !0,
                animations: {
                    numbers: {
                        type: 'number',
                        properties: ['x', 'y', 'base', 'width', 'height'],
                    },
                },
            }
            static overrides = {
                scales: {
                    _index_: {
                        type: 'category',
                        offset: !0,
                        grid: { offset: !0 },
                    },
                    _value_: { type: 'linear', beginAtZero: !0 },
                },
            }
            parsePrimitiveData(t, e, i, s) {
                return zn(t, e, i, s)
            }
            parseArrayData(t, e, i, s) {
                return zn(t, e, i, s)
            }
            parseObjectData(t, e, i, s) {
                const { iScale: n, vScale: o } = t,
                    { xAxisKey: a = 'x', yAxisKey: r = 'y' } = this._parsing,
                    l = 'x' === n.axis ? a : r,
                    h = 'x' === o.axis ? a : r,
                    c = []
                let d, u, f, g
                for (d = i, u = i + s; d < u; ++d)
                    (g = e[d]),
                        (f = {}),
                        (f[n.axis] = n.parse(M(g, l), d)),
                        c.push(In(M(g, h), f, o, d))
                return c
            }
            updateRangeFromParsed(t, e, i, s) {
                super.updateRangeFromParsed(t, e, i, s)
                const n = i._custom
                n &&
                    e === this._cachedMeta.vScale &&
                    ((t.min = Math.min(t.min, n.min)),
                    (t.max = Math.max(t.max, n.max)))
            }
            getMaxOverflow() {
                return 0
            }
            getLabelAndValue(t) {
                const e = this._cachedMeta,
                    { iScale: i, vScale: s } = e,
                    n = this.getParsed(t),
                    o = n._custom,
                    a = Fn(o)
                        ? '[' + o.start + ', ' + o.end + ']'
                        : '' + s.getLabelForValue(n[s.axis])
                return { label: '' + i.getLabelForValue(n[i.axis]), value: a }
            }
            initialize() {
                ;(this.enableOptionSharing = !0), super.initialize()
                this._cachedMeta.stack = this.getDataset().stack
            }
            update(t) {
                const e = this._cachedMeta
                this.updateElements(e.data, 0, e.data.length, t)
            }
            updateElements(t, e, i, n) {
                const o = 'reset' === n,
                    {
                        index: a,
                        _cachedMeta: { vScale: r },
                    } = this,
                    l = r.getBasePixel(),
                    h = r.isHorizontal(),
                    c = this._getRuler(),
                    { sharedOptions: d, includeOptions: u } =
                        this._getSharedOptions(e, n)
                for (let f = e; f < e + i; f++) {
                    const e = this.getParsed(f),
                        i =
                            o || s(e[r.axis])
                                ? { base: l, head: l }
                                : this._calculateBarValuePixels(f),
                        g = this._calculateBarIndexPixels(f, c),
                        p = (e._stacks || {})[r.axis],
                        m = {
                            horizontal: h,
                            base: i.base,
                            enableBorderRadius:
                                !p ||
                                Fn(e._custom) ||
                                a === p._top ||
                                a === p._bottom,
                            x: h ? i.head : g.center,
                            y: h ? g.center : i.head,
                            height: h ? g.size : Math.abs(i.size),
                            width: h ? Math.abs(i.size) : g.size,
                        }
                    u &&
                        (m.options =
                            d ||
                            this.resolveDataElementOptions(
                                f,
                                t[f].active ? 'active' : n
                            ))
                    const b = m.options || t[f].options
                    Vn(m, b, p, a),
                        Wn(m, b, c.ratio),
                        this.updateElement(t[f], f, m, n)
                }
            }
            _getStacks(t, e) {
                const { iScale: i } = this._cachedMeta,
                    n = i
                        .getMatchingVisibleMetas(this._type)
                        .filter((t) => t.controller.options.grouped),
                    o = i.options.stacked,
                    a = [],
                    r = (t) => {
                        const i = t.controller.getParsed(e),
                            n = i && i[t.vScale.axis]
                        if (s(n) || isNaN(n)) return !0
                    }
                for (const i of n)
                    if (
                        (void 0 === e || !r(i)) &&
                        ((!1 === o ||
                            -1 === a.indexOf(i.stack) ||
                            (void 0 === o && void 0 === i.stack)) &&
                            a.push(i.stack),
                        i.index === t)
                    )
                        break
                return a.length || a.push(void 0), a
            }
            _getStackCount(t) {
                return this._getStacks(void 0, t).length
            }
            _getStackIndex(t, e, i) {
                const s = this._getStacks(t, i),
                    n = void 0 !== e ? s.indexOf(e) : -1
                return -1 === n ? s.length - 1 : n
            }
            _getRuler() {
                const t = this.options,
                    e = this._cachedMeta,
                    i = e.iScale,
                    s = []
                let n, o
                for (n = 0, o = e.data.length; n < o; ++n)
                    s.push(i.getPixelForValue(this.getParsed(n)[i.axis], n))
                const a = t.barThickness
                return {
                    min: a || Rn(e),
                    pixels: s,
                    start: i._startPixel,
                    end: i._endPixel,
                    stackCount: this._getStackCount(),
                    scale: i,
                    grouped: t.grouped,
                    ratio: a ? 1 : t.categoryPercentage * t.barPercentage,
                }
            }
            _calculateBarValuePixels(t) {
                const {
                        _cachedMeta: { vScale: e, _stacked: i, index: n },
                        options: { base: o, minBarLength: a },
                    } = this,
                    r = o || 0,
                    l = this.getParsed(t),
                    h = l._custom,
                    c = Fn(h)
                let d,
                    u,
                    f = l[e.axis],
                    g = 0,
                    p = i ? this.applyStack(e, l, i) : f
                p !== f && ((g = p - f), (p = f)),
                    c &&
                        ((f = h.barStart),
                        (p = h.barEnd - h.barStart),
                        0 !== f && F(f) !== F(h.barEnd) && (g = 0),
                        (g += f))
                const m = s(o) || c ? g : o
                let b = e.getPixelForValue(m)
                if (
                    ((d = this.chart.getDataVisibility(t)
                        ? e.getPixelForValue(g + p)
                        : b),
                    (u = d - b),
                    Math.abs(u) < a)
                ) {
                    ;(u =
                        (function (t, e, i) {
                            return 0 !== t
                                ? F(t)
                                : (e.isHorizontal() ? 1 : -1) *
                                      (e.min >= i ? 1 : -1)
                        })(u, e, r) * a),
                        f === r && (b -= u / 2)
                    const t = e.getPixelForDecimal(0),
                        s = e.getPixelForDecimal(1),
                        o = Math.min(t, s),
                        h = Math.max(t, s)
                    ;(b = Math.max(Math.min(b, h), o)),
                        (d = b + u),
                        i &&
                            !c &&
                            (l._stacks[e.axis]._visualValues[n] =
                                e.getValueForPixel(d) - e.getValueForPixel(b))
                }
                if (b === e.getPixelForValue(r)) {
                    const t = (F(u) * e.getLineWidthForValue(r)) / 2
                    ;(b += t), (u -= t)
                }
                return { size: u, base: b, head: d, center: d + u / 2 }
            }
            _calculateBarIndexPixels(t, e) {
                const i = e.scale,
                    n = this.options,
                    o = n.skipNull,
                    a = l(n.maxBarThickness, 1 / 0)
                let r, h
                if (e.grouped) {
                    const i = o ? this._getStackCount(t) : e.stackCount,
                        l =
                            'flex' === n.barThickness
                                ? (function (t, e, i, s) {
                                      const n = e.pixels,
                                          o = n[t]
                                      let a = t > 0 ? n[t - 1] : null,
                                          r = t < n.length - 1 ? n[t + 1] : null
                                      const l = i.categoryPercentage
                                      null === a &&
                                          (a =
                                              o -
                                              (null === r
                                                  ? e.end - e.start
                                                  : r - o)),
                                          null === r && (r = o + o - a)
                                      const h =
                                          o - ((o - Math.min(a, r)) / 2) * l
                                      return {
                                          chunk:
                                              ((Math.abs(r - a) / 2) * l) / s,
                                          ratio: i.barPercentage,
                                          start: h,
                                      }
                                  })(t, e, n, i)
                                : (function (t, e, i, n) {
                                      const o = i.barThickness
                                      let a, r
                                      return (
                                          s(o)
                                              ? ((a =
                                                    e.min *
                                                    i.categoryPercentage),
                                                (r = i.barPercentage))
                                              : ((a = o * n), (r = 1)),
                                          {
                                              chunk: a / n,
                                              ratio: r,
                                              start: e.pixels[t] - a / 2,
                                          }
                                      )
                                  })(t, e, n, i),
                        c = this._getStackIndex(
                            this.index,
                            this._cachedMeta.stack,
                            o ? t : void 0
                        )
                    ;(r = l.start + l.chunk * c + l.chunk / 2),
                        (h = Math.min(a, l.chunk * l.ratio))
                } else
                    (r = i.getPixelForValue(this.getParsed(t)[i.axis], t)),
                        (h = Math.min(a, e.min * e.ratio))
                return { base: r - h / 2, head: r + h / 2, center: r, size: h }
            }
            draw() {
                const t = this._cachedMeta,
                    e = t.vScale,
                    i = t.data,
                    s = i.length
                let n = 0
                for (; n < s; ++n)
                    null !== this.getParsed(n)[e.axis] && i[n].draw(this._ctx)
            }
        },
        BubbleController: class extends Ws {
            static id = 'bubble'
            static defaults = {
                datasetElementType: !1,
                dataElementType: 'point',
                animations: {
                    numbers: {
                        type: 'number',
                        properties: ['x', 'y', 'borderWidth', 'radius'],
                    },
                },
            }
            static overrides = {
                scales: { x: { type: 'linear' }, y: { type: 'linear' } },
            }
            initialize() {
                ;(this.enableOptionSharing = !0), super.initialize()
            }
            parsePrimitiveData(t, e, i, s) {
                const n = super.parsePrimitiveData(t, e, i, s)
                for (let t = 0; t < n.length; t++)
                    n[t]._custom = this.resolveDataElementOptions(t + i).radius
                return n
            }
            parseArrayData(t, e, i, s) {
                const n = super.parseArrayData(t, e, i, s)
                for (let t = 0; t < n.length; t++) {
                    const s = e[i + t]
                    n[t]._custom = l(
                        s[2],
                        this.resolveDataElementOptions(t + i).radius
                    )
                }
                return n
            }
            parseObjectData(t, e, i, s) {
                const n = super.parseObjectData(t, e, i, s)
                for (let t = 0; t < n.length; t++) {
                    const s = e[i + t]
                    n[t]._custom = l(
                        s && s.r && +s.r,
                        this.resolveDataElementOptions(t + i).radius
                    )
                }
                return n
            }
            getMaxOverflow() {
                const t = this._cachedMeta.data
                let e = 0
                for (let i = t.length - 1; i >= 0; --i)
                    e = Math.max(
                        e,
                        t[i].size(this.resolveDataElementOptions(i)) / 2
                    )
                return e > 0 && e
            }
            getLabelAndValue(t) {
                const e = this._cachedMeta,
                    i = this.chart.data.labels || [],
                    { xScale: s, yScale: n } = e,
                    o = this.getParsed(t),
                    a = s.getLabelForValue(o.x),
                    r = n.getLabelForValue(o.y),
                    l = o._custom
                return {
                    label: i[t] || '',
                    value: '(' + a + ', ' + r + (l ? ', ' + l : '') + ')',
                }
            }
            update(t) {
                const e = this._cachedMeta.data
                this.updateElements(e, 0, e.length, t)
            }
            updateElements(t, e, i, s) {
                const n = 'reset' === s,
                    { iScale: o, vScale: a } = this._cachedMeta,
                    { sharedOptions: r, includeOptions: l } =
                        this._getSharedOptions(e, s),
                    h = o.axis,
                    c = a.axis
                for (let d = e; d < e + i; d++) {
                    const e = t[d],
                        i = !n && this.getParsed(d),
                        u = {},
                        f = (u[h] = n
                            ? o.getPixelForDecimal(0.5)
                            : o.getPixelForValue(i[h])),
                        g = (u[c] = n
                            ? a.getBasePixel()
                            : a.getPixelForValue(i[c]))
                    ;(u.skip = isNaN(f) || isNaN(g)),
                        l &&
                            ((u.options =
                                r ||
                                this.resolveDataElementOptions(
                                    d,
                                    e.active ? 'active' : s
                                )),
                            n && (u.options.radius = 0)),
                        this.updateElement(e, d, u, s)
                }
            }
            resolveDataElementOptions(t, e) {
                const i = this.getParsed(t)
                let s = super.resolveDataElementOptions(t, e)
                s.$shared && (s = Object.assign({}, s, { $shared: !1 }))
                const n = s.radius
                return (
                    'active' !== e && (s.radius = 0),
                    (s.radius += l(i && i._custom, n)),
                    s
                )
            }
        },
        DoughnutController: Hn,
        LineController: class extends Ws {
            static id = 'line'
            static defaults = {
                datasetElementType: 'line',
                dataElementType: 'point',
                showLine: !0,
                spanGaps: !1,
            }
            static overrides = {
                scales: {
                    _index_: { type: 'category' },
                    _value_: { type: 'linear' },
                },
            }
            initialize() {
                ;(this.enableOptionSharing = !0),
                    (this.supportsDecimation = !0),
                    super.initialize()
            }
            update(t) {
                const e = this._cachedMeta,
                    { dataset: i, data: s = [], _dataset: n } = e,
                    o = this.chart._animationsDisabled
                let { start: a, count: r } = pt(e, s, o)
                ;(this._drawStart = a),
                    (this._drawCount = r),
                    mt(e) && ((a = 0), (r = s.length)),
                    (i._chart = this.chart),
                    (i._datasetIndex = this.index),
                    (i._decimated = !!n._decimated),
                    (i.points = s)
                const l = this.resolveDatasetElementOptions(t)
                this.options.showLine || (l.borderWidth = 0),
                    (l.segment = this.options.segment),
                    this.updateElement(
                        i,
                        void 0,
                        { animated: !o, options: l },
                        t
                    ),
                    this.updateElements(s, a, r, t)
            }
            updateElements(t, e, i, n) {
                const o = 'reset' === n,
                    {
                        iScale: a,
                        vScale: r,
                        _stacked: l,
                        _dataset: h,
                    } = this._cachedMeta,
                    { sharedOptions: c, includeOptions: d } =
                        this._getSharedOptions(e, n),
                    u = a.axis,
                    f = r.axis,
                    { spanGaps: g, segment: p } = this.options,
                    m = W(g) ? g : Number.POSITIVE_INFINITY,
                    b = this.chart._animationsDisabled || o || 'none' === n,
                    x = e + i,
                    _ = t.length
                let y = e > 0 && this.getParsed(e - 1)
                for (let i = 0; i < _; ++i) {
                    const g = t[i],
                        _ = b ? g : {}
                    if (i < e || i >= x) {
                        _.skip = !0
                        continue
                    }
                    const v = this.getParsed(i),
                        M = s(v[f]),
                        w = (_[u] = a.getPixelForValue(v[u], i)),
                        k = (_[f] =
                            o || M
                                ? r.getBasePixel()
                                : r.getPixelForValue(
                                      l ? this.applyStack(r, v, l) : v[f],
                                      i
                                  ))
                    ;(_.skip = isNaN(w) || isNaN(k) || M),
                        (_.stop = i > 0 && Math.abs(v[u] - y[u]) > m),
                        p && ((_.parsed = v), (_.raw = h.data[i])),
                        d &&
                            (_.options =
                                c ||
                                this.resolveDataElementOptions(
                                    i,
                                    g.active ? 'active' : n
                                )),
                        b || this.updateElement(g, i, _, n),
                        (y = v)
                }
            }
            getMaxOverflow() {
                const t = this._cachedMeta,
                    e = t.dataset,
                    i = (e.options && e.options.borderWidth) || 0,
                    s = t.data || []
                if (!s.length) return i
                const n = s[0].size(this.resolveDataElementOptions(0)),
                    o = s[s.length - 1].size(
                        this.resolveDataElementOptions(s.length - 1)
                    )
                return Math.max(i, n, o) / 2
            }
            draw() {
                const t = this._cachedMeta
                t.dataset.updateControlPoints(
                    this.chart.chartArea,
                    t.iScale.axis
                ),
                    super.draw()
            }
        },
        PieController: class extends Hn {
            static id = 'pie'
            static defaults = {
                cutout: 0,
                rotation: 0,
                circumference: 360,
                radius: '100%',
            }
        },
        PolarAreaController: jn,
        RadarController: class extends Ws {
            static id = 'radar'
            static defaults = {
                datasetElementType: 'line',
                dataElementType: 'point',
                indexAxis: 'r',
                showLine: !0,
                elements: { line: { fill: 'start' } },
            }
            static overrides = {
                aspectRatio: 1,
                scales: { r: { type: 'radialLinear' } },
            }
            getLabelAndValue(t) {
                const e = this._cachedMeta.vScale,
                    i = this.getParsed(t)
                return {
                    label: e.getLabels()[t],
                    value: '' + e.getLabelForValue(i[e.axis]),
                }
            }
            parseObjectData(t, e, i, s) {
                return ii.bind(this)(t, e, i, s)
            }
            update(t) {
                const e = this._cachedMeta,
                    i = e.dataset,
                    s = e.data || [],
                    n = e.iScale.getLabels()
                if (((i.points = s), 'resize' !== t)) {
                    const e = this.resolveDatasetElementOptions(t)
                    this.options.showLine || (e.borderWidth = 0)
                    const o = {
                        _loop: !0,
                        _fullLoop: n.length === s.length,
                        options: e,
                    }
                    this.updateElement(i, void 0, o, t)
                }
                this.updateElements(s, 0, s.length, t)
            }
            updateElements(t, e, i, s) {
                const n = this._cachedMeta.rScale,
                    o = 'reset' === s
                for (let a = e; a < e + i; a++) {
                    const e = t[a],
                        i = this.resolveDataElementOptions(
                            a,
                            e.active ? 'active' : s
                        ),
                        r = n.getPointPositionForValue(a, this.getParsed(a).r),
                        l = o ? n.xCenter : r.x,
                        h = o ? n.yCenter : r.y,
                        c = {
                            x: l,
                            y: h,
                            angle: r.angle,
                            skip: isNaN(l) || isNaN(h),
                            options: i,
                        }
                    this.updateElement(e, a, c, s)
                }
            }
        },
        ScatterController: class extends Ws {
            static id = 'scatter'
            static defaults = {
                datasetElementType: !1,
                dataElementType: 'point',
                showLine: !1,
                fill: !1,
            }
            static overrides = {
                interaction: { mode: 'point' },
                scales: { x: { type: 'linear' }, y: { type: 'linear' } },
            }
            getLabelAndValue(t) {
                const e = this._cachedMeta,
                    i = this.chart.data.labels || [],
                    { xScale: s, yScale: n } = e,
                    o = this.getParsed(t),
                    a = s.getLabelForValue(o.x),
                    r = n.getLabelForValue(o.y)
                return { label: i[t] || '', value: '(' + a + ', ' + r + ')' }
            }
            update(t) {
                const e = this._cachedMeta,
                    { data: i = [] } = e,
                    s = this.chart._animationsDisabled
                let { start: n, count: o } = pt(e, i, s)
                if (
                    ((this._drawStart = n),
                    (this._drawCount = o),
                    mt(e) && ((n = 0), (o = i.length)),
                    this.options.showLine)
                ) {
                    const { dataset: n, _dataset: o } = e
                    ;(n._chart = this.chart),
                        (n._datasetIndex = this.index),
                        (n._decimated = !!o._decimated),
                        (n.points = i)
                    const a = this.resolveDatasetElementOptions(t)
                    ;(a.segment = this.options.segment),
                        this.updateElement(
                            n,
                            void 0,
                            { animated: !s, options: a },
                            t
                        )
                }
                this.updateElements(i, n, o, t)
            }
            addElements() {
                const { showLine: t } = this.options
                !this.datasetElementType &&
                    t &&
                    (this.datasetElementType =
                        this.chart.registry.getElement('line')),
                    super.addElements()
            }
            updateElements(t, e, i, n) {
                const o = 'reset' === n,
                    {
                        iScale: a,
                        vScale: r,
                        _stacked: l,
                        _dataset: h,
                    } = this._cachedMeta,
                    c = this.resolveDataElementOptions(e, n),
                    d = this.getSharedOptions(c),
                    u = this.includeOptions(n, d),
                    f = a.axis,
                    g = r.axis,
                    { spanGaps: p, segment: m } = this.options,
                    b = W(p) ? p : Number.POSITIVE_INFINITY,
                    x = this.chart._animationsDisabled || o || 'none' === n
                let _ = e > 0 && this.getParsed(e - 1)
                for (let c = e; c < e + i; ++c) {
                    const e = t[c],
                        i = this.getParsed(c),
                        p = x ? e : {},
                        y = s(i[g]),
                        v = (p[f] = a.getPixelForValue(i[f], c)),
                        M = (p[g] =
                            o || y
                                ? r.getBasePixel()
                                : r.getPixelForValue(
                                      l ? this.applyStack(r, i, l) : i[g],
                                      c
                                  ))
                    ;(p.skip = isNaN(v) || isNaN(M) || y),
                        (p.stop = c > 0 && Math.abs(i[f] - _[f]) > b),
                        m && ((p.parsed = i), (p.raw = h.data[c])),
                        u &&
                            (p.options =
                                d ||
                                this.resolveDataElementOptions(
                                    c,
                                    e.active ? 'active' : n
                                )),
                        x || this.updateElement(e, c, p, n),
                        (_ = i)
                }
                this.updateSharedOptions(d, n, c)
            }
            getMaxOverflow() {
                const t = this._cachedMeta,
                    e = t.data || []
                if (!this.options.showLine) {
                    let t = 0
                    for (let i = e.length - 1; i >= 0; --i)
                        t = Math.max(
                            t,
                            e[i].size(this.resolveDataElementOptions(i)) / 2
                        )
                    return t > 0 && t
                }
                const i = t.dataset,
                    s = (i.options && i.options.borderWidth) || 0
                if (!e.length) return s
                const n = e[0].size(this.resolveDataElementOptions(0)),
                    o = e[e.length - 1].size(
                        this.resolveDataElementOptions(e.length - 1)
                    )
                return Math.max(s, n, o) / 2
            }
        },
    })
    function Yn(t, e, i, s) {
        const n = vi(t.options.borderRadius, [
            'outerStart',
            'outerEnd',
            'innerStart',
            'innerEnd',
        ])
        const o = (i - e) / 2,
            a = Math.min(o, (s * e) / 2),
            r = (t) => {
                const e = ((i - Math.min(o, t)) * s) / 2
                return J(t, 0, Math.min(o, e))
            }
        return {
            outerStart: r(n.outerStart),
            outerEnd: r(n.outerEnd),
            innerStart: J(n.innerStart, 0, a),
            innerEnd: J(n.innerEnd, 0, a),
        }
    }
    function Un(t, e, i, s) {
        return { x: i + t * Math.cos(e), y: s + t * Math.sin(e) }
    }
    function Xn(t, e, i, s, n, o) {
        const { x: a, y: r, startAngle: l, pixelMargin: h, innerRadius: c } = e,
            d = Math.max(e.outerRadius + s + i - h, 0),
            u = c > 0 ? c + s + i + h : 0
        let f = 0
        const g = n - l
        if (s) {
            const t = ((c > 0 ? c - s : 0) + (d > 0 ? d - s : 0)) / 2
            f = (g - (0 !== t ? (g * t) / (t + s) : g)) / 2
        }
        const p = (g - Math.max(0.001, g * d - i / C) / d) / 2,
            m = l + p + f,
            b = n - p - f,
            {
                outerStart: x,
                outerEnd: _,
                innerStart: y,
                innerEnd: v,
            } = Yn(e, u, d, b - m),
            M = d - x,
            w = d - _,
            k = m + x / M,
            S = b - _ / w,
            P = u + y,
            D = u + v,
            O = m + y / P,
            A = b - v / D
        if ((t.beginPath(), o)) {
            const e = (k + S) / 2
            if ((t.arc(a, r, d, k, e), t.arc(a, r, d, e, S), _ > 0)) {
                const e = Un(w, S, a, r)
                t.arc(e.x, e.y, _, S, b + E)
            }
            const i = Un(D, b, a, r)
            if ((t.lineTo(i.x, i.y), v > 0)) {
                const e = Un(D, A, a, r)
                t.arc(e.x, e.y, v, b + E, A + Math.PI)
            }
            const s = (b - v / u + (m + y / u)) / 2
            if (
                (t.arc(a, r, u, b - v / u, s, !0),
                t.arc(a, r, u, s, m + y / u, !0),
                y > 0)
            ) {
                const e = Un(P, O, a, r)
                t.arc(e.x, e.y, y, O + Math.PI, m - E)
            }
            const n = Un(M, m, a, r)
            if ((t.lineTo(n.x, n.y), x > 0)) {
                const e = Un(M, k, a, r)
                t.arc(e.x, e.y, x, m - E, k)
            }
        } else {
            t.moveTo(a, r)
            const e = Math.cos(k) * d + a,
                i = Math.sin(k) * d + r
            t.lineTo(e, i)
            const s = Math.cos(S) * d + a,
                n = Math.sin(S) * d + r
            t.lineTo(s, n)
        }
        t.closePath()
    }
    function qn(t, e, i, s, n) {
        const {
                fullCircles: o,
                startAngle: a,
                circumference: r,
                options: l,
            } = e,
            {
                borderWidth: h,
                borderJoinStyle: c,
                borderDash: d,
                borderDashOffset: u,
            } = l,
            f = 'inner' === l.borderAlign
        if (!h) return
        t.setLineDash(d || []),
            (t.lineDashOffset = u),
            f
                ? ((t.lineWidth = 2 * h), (t.lineJoin = c || 'round'))
                : ((t.lineWidth = h), (t.lineJoin = c || 'bevel'))
        let g = e.endAngle
        if (o) {
            Xn(t, e, i, s, g, n)
            for (let e = 0; e < o; ++e) t.stroke()
            isNaN(r) || (g = a + (r % O || O))
        }
        f &&
            (function (t, e, i) {
                const {
                    startAngle: s,
                    pixelMargin: n,
                    x: o,
                    y: a,
                    outerRadius: r,
                    innerRadius: l,
                } = e
                let h = n / r
                t.beginPath(),
                    t.arc(o, a, r, s - h, i + h),
                    l > n
                        ? ((h = n / l), t.arc(o, a, l, i + h, s - h, !0))
                        : t.arc(o, a, n, i + E, s - E),
                    t.closePath(),
                    t.clip()
            })(t, e, g),
            o || (Xn(t, e, i, s, g, n), t.stroke())
    }
    function Kn(t, e, i = e) {
        ;(t.lineCap = l(i.borderCapStyle, e.borderCapStyle)),
            t.setLineDash(l(i.borderDash, e.borderDash)),
            (t.lineDashOffset = l(i.borderDashOffset, e.borderDashOffset)),
            (t.lineJoin = l(i.borderJoinStyle, e.borderJoinStyle)),
            (t.lineWidth = l(i.borderWidth, e.borderWidth)),
            (t.strokeStyle = l(i.borderColor, e.borderColor))
    }
    function Gn(t, e, i) {
        t.lineTo(i.x, i.y)
    }
    function Zn(t, e, i = {}) {
        const s = t.length,
            { start: n = 0, end: o = s - 1 } = i,
            { start: a, end: r } = e,
            l = Math.max(n, a),
            h = Math.min(o, r),
            c = (n < a && o < a) || (n > r && o > r)
        return {
            count: s,
            start: l,
            loop: e.loop,
            ilen: h < l && !c ? s + h - l : h - l,
        }
    }
    function Jn(t, e, i, s) {
        const { points: n, options: o } = e,
            { count: a, start: r, loop: l, ilen: h } = Zn(n, i, s),
            c = (function (t) {
                return t.stepped
                    ? Fe
                    : t.tension || 'monotone' === t.cubicInterpolationMode
                      ? Ve
                      : Gn
            })(o)
        let d,
            u,
            f,
            { move: g = !0, reverse: p } = s || {}
        for (d = 0; d <= h; ++d)
            (u = n[(r + (p ? h - d : d)) % a]),
                u.skip ||
                    (g
                        ? (t.moveTo(u.x, u.y), (g = !1))
                        : c(t, f, u, p, o.stepped),
                    (f = u))
        return (
            l && ((u = n[(r + (p ? h : 0)) % a]), c(t, f, u, p, o.stepped)), !!l
        )
    }
    function Qn(t, e, i, s) {
        const n = e.points,
            { count: o, start: a, ilen: r } = Zn(n, i, s),
            { move: l = !0, reverse: h } = s || {}
        let c,
            d,
            u,
            f,
            g,
            p,
            m = 0,
            b = 0
        const x = (t) => (a + (h ? r - t : t)) % o,
            _ = () => {
                f !== g && (t.lineTo(m, g), t.lineTo(m, f), t.lineTo(m, p))
            }
        for (l && ((d = n[x(0)]), t.moveTo(d.x, d.y)), c = 0; c <= r; ++c) {
            if (((d = n[x(c)]), d.skip)) continue
            const e = d.x,
                i = d.y,
                s = 0 | e
            s === u
                ? (i < f ? (f = i) : i > g && (g = i), (m = (b * m + e) / ++b))
                : (_(), t.lineTo(e, i), (u = s), (b = 0), (f = g = i)),
                (p = i)
        }
        _()
    }
    function to(t) {
        const e = t.options,
            i = e.borderDash && e.borderDash.length
        return !(
            t._decimated ||
            t._loop ||
            e.tension ||
            'monotone' === e.cubicInterpolationMode ||
            e.stepped ||
            i
        )
            ? Qn
            : Jn
    }
    const eo = 'function' == typeof Path2D
    function io(t, e, i, s) {
        eo && !e.options.segment
            ? (function (t, e, i, s) {
                  let n = e._path
                  n ||
                      ((n = e._path = new Path2D()),
                      e.path(n, i, s) && n.closePath()),
                      Kn(t, e.options),
                      t.stroke(n)
              })(t, e, i, s)
            : (function (t, e, i, s) {
                  const { segments: n, options: o } = e,
                      a = to(e)
                  for (const r of n)
                      Kn(t, o, r.style),
                          t.beginPath(),
                          a(t, e, r, { start: i, end: i + s - 1 }) &&
                              t.closePath(),
                          t.stroke()
              })(t, e, i, s)
    }
    class so extends Hs {
        static id = 'line'
        static defaults = {
            borderCapStyle: 'butt',
            borderDash: [],
            borderDashOffset: 0,
            borderJoinStyle: 'miter',
            borderWidth: 3,
            capBezierPoints: !0,
            cubicInterpolationMode: 'default',
            fill: !1,
            spanGaps: !1,
            stepped: !1,
            tension: 0,
        }
        static defaultRoutes = {
            backgroundColor: 'backgroundColor',
            borderColor: 'borderColor',
        }
        static descriptors = {
            _scriptable: !0,
            _indexable: (t) => 'borderDash' !== t && 'fill' !== t,
        }
        constructor(t) {
            super(),
                (this.animated = !0),
                (this.options = void 0),
                (this._chart = void 0),
                (this._loop = void 0),
                (this._fullLoop = void 0),
                (this._path = void 0),
                (this._points = void 0),
                (this._segments = void 0),
                (this._decimated = !1),
                (this._pointsUpdated = !1),
                (this._datasetIndex = void 0),
                t && Object.assign(this, t)
        }
        updateControlPoints(t, e) {
            const i = this.options
            if (
                (i.tension || 'monotone' === i.cubicInterpolationMode) &&
                !i.stepped &&
                !this._pointsUpdated
            ) {
                const s = i.spanGaps ? this._loop : this._fullLoop
                hi(this._points, i, t, s, e), (this._pointsUpdated = !0)
            }
        }
        set points(t) {
            ;(this._points = t),
                delete this._segments,
                delete this._path,
                (this._pointsUpdated = !1)
        }
        get points() {
            return this._points
        }
        get segments() {
            return (
                this._segments ||
                (this._segments = zi(this, this.options.segment))
            )
        }
        first() {
            const t = this.segments,
                e = this.points
            return t.length && e[t[0].start]
        }
        last() {
            const t = this.segments,
                e = this.points,
                i = t.length
            return i && e[t[i - 1].end]
        }
        interpolate(t, e) {
            const i = this.options,
                s = t[e],
                n = this.points,
                o = Ii(this, { property: e, start: s, end: s })
            if (!o.length) return
            const a = [],
                r = (function (t) {
                    return t.stepped
                        ? pi
                        : t.tension || 'monotone' === t.cubicInterpolationMode
                          ? mi
                          : gi
                })(i)
            let l, h
            for (l = 0, h = o.length; l < h; ++l) {
                const { start: h, end: c } = o[l],
                    d = n[h],
                    u = n[c]
                if (d === u) {
                    a.push(d)
                    continue
                }
                const f = r(
                    d,
                    u,
                    Math.abs((s - d[e]) / (u[e] - d[e])),
                    i.stepped
                )
                ;(f[e] = t[e]), a.push(f)
            }
            return 1 === a.length ? a[0] : a
        }
        pathSegment(t, e, i) {
            return to(this)(t, this, e, i)
        }
        path(t, e, i) {
            const s = this.segments,
                n = to(this)
            let o = this._loop
            ;(e = e || 0), (i = i || this.points.length - e)
            for (const a of s) o &= n(t, this, a, { start: e, end: e + i - 1 })
            return !!o
        }
        draw(t, e, i, s) {
            const n = this.options || {}
            ;(this.points || []).length &&
                n.borderWidth &&
                (t.save(), io(t, this, i, s), t.restore()),
                this.animated &&
                    ((this._pointsUpdated = !1), (this._path = void 0))
        }
    }
    function no(t, e, i, s) {
        const n = t.options,
            { [i]: o } = t.getProps([i], s)
        return Math.abs(e - o) < n.radius + n.hitRadius
    }
    function oo(t, e) {
        const {
            x: i,
            y: s,
            base: n,
            width: o,
            height: a,
        } = t.getProps(['x', 'y', 'base', 'width', 'height'], e)
        let r, l, h, c, d
        return (
            t.horizontal
                ? ((d = a / 2),
                  (r = Math.min(i, n)),
                  (l = Math.max(i, n)),
                  (h = s - d),
                  (c = s + d))
                : ((d = o / 2),
                  (r = i - d),
                  (l = i + d),
                  (h = Math.min(s, n)),
                  (c = Math.max(s, n))),
            { left: r, top: h, right: l, bottom: c }
        )
    }
    function ao(t, e, i, s) {
        return t ? 0 : J(e, i, s)
    }
    function ro(t) {
        const e = oo(t),
            i = e.right - e.left,
            s = e.bottom - e.top,
            n = (function (t, e, i) {
                const s = t.options.borderWidth,
                    n = t.borderSkipped,
                    o = Mi(s)
                return {
                    t: ao(n.top, o.top, 0, i),
                    r: ao(n.right, o.right, 0, e),
                    b: ao(n.bottom, o.bottom, 0, i),
                    l: ao(n.left, o.left, 0, e),
                }
            })(t, i / 2, s / 2),
            a = (function (t, e, i) {
                const { enableBorderRadius: s } = t.getProps([
                        'enableBorderRadius',
                    ]),
                    n = t.options.borderRadius,
                    a = wi(n),
                    r = Math.min(e, i),
                    l = t.borderSkipped,
                    h = s || o(n)
                return {
                    topLeft: ao(!h || l.top || l.left, a.topLeft, 0, r),
                    topRight: ao(!h || l.top || l.right, a.topRight, 0, r),
                    bottomLeft: ao(
                        !h || l.bottom || l.left,
                        a.bottomLeft,
                        0,
                        r
                    ),
                    bottomRight: ao(
                        !h || l.bottom || l.right,
                        a.bottomRight,
                        0,
                        r
                    ),
                }
            })(t, i / 2, s / 2)
        return {
            outer: { x: e.left, y: e.top, w: i, h: s, radius: a },
            inner: {
                x: e.left + n.l,
                y: e.top + n.t,
                w: i - n.l - n.r,
                h: s - n.t - n.b,
                radius: {
                    topLeft: Math.max(0, a.topLeft - Math.max(n.t, n.l)),
                    topRight: Math.max(0, a.topRight - Math.max(n.t, n.r)),
                    bottomLeft: Math.max(0, a.bottomLeft - Math.max(n.b, n.l)),
                    bottomRight: Math.max(
                        0,
                        a.bottomRight - Math.max(n.b, n.r)
                    ),
                },
            },
        }
    }
    function lo(t, e, i, s) {
        const n = null === e,
            o = null === i,
            a = t && !(n && o) && oo(t, s)
        return (
            a && (n || tt(e, a.left, a.right)) && (o || tt(i, a.top, a.bottom))
        )
    }
    function ho(t, e) {
        t.rect(e.x, e.y, e.w, e.h)
    }
    function co(t, e, i = {}) {
        const s = t.x !== i.x ? -e : 0,
            n = t.y !== i.y ? -e : 0,
            o = (t.x + t.w !== i.x + i.w ? e : 0) - s,
            a = (t.y + t.h !== i.y + i.h ? e : 0) - n
        return {
            x: t.x + s,
            y: t.y + n,
            w: t.w + o,
            h: t.h + a,
            radius: t.radius,
        }
    }
    var uo = Object.freeze({
        __proto__: null,
        ArcElement: class extends Hs {
            static id = 'arc'
            static defaults = {
                borderAlign: 'center',
                borderColor: '#fff',
                borderDash: [],
                borderDashOffset: 0,
                borderJoinStyle: void 0,
                borderRadius: 0,
                borderWidth: 2,
                offset: 0,
                spacing: 0,
                angle: void 0,
                circular: !0,
            }
            static defaultRoutes = { backgroundColor: 'backgroundColor' }
            static descriptors = {
                _scriptable: !0,
                _indexable: (t) => 'borderDash' !== t,
            }
            circumference
            endAngle
            fullCircles
            innerRadius
            outerRadius
            pixelMargin
            startAngle
            constructor(t) {
                super(),
                    (this.options = void 0),
                    (this.circumference = void 0),
                    (this.startAngle = void 0),
                    (this.endAngle = void 0),
                    (this.innerRadius = void 0),
                    (this.outerRadius = void 0),
                    (this.pixelMargin = 0),
                    (this.fullCircles = 0),
                    t && Object.assign(this, t)
            }
            inRange(t, e, i) {
                const s = this.getProps(['x', 'y'], i),
                    { angle: n, distance: o } = X(s, { x: t, y: e }),
                    {
                        startAngle: a,
                        endAngle: r,
                        innerRadius: h,
                        outerRadius: c,
                        circumference: d,
                    } = this.getProps(
                        [
                            'startAngle',
                            'endAngle',
                            'innerRadius',
                            'outerRadius',
                            'circumference',
                        ],
                        i
                    ),
                    u = (this.options.spacing + this.options.borderWidth) / 2,
                    f = l(d, r - a) >= O || Z(n, a, r),
                    g = tt(o, h + u, c + u)
                return f && g
            }
            getCenterPoint(t) {
                const {
                        x: e,
                        y: i,
                        startAngle: s,
                        endAngle: n,
                        innerRadius: o,
                        outerRadius: a,
                    } = this.getProps(
                        [
                            'x',
                            'y',
                            'startAngle',
                            'endAngle',
                            'innerRadius',
                            'outerRadius',
                        ],
                        t
                    ),
                    { offset: r, spacing: l } = this.options,
                    h = (s + n) / 2,
                    c = (o + a + l + r) / 2
                return { x: e + Math.cos(h) * c, y: i + Math.sin(h) * c }
            }
            tooltipPosition(t) {
                return this.getCenterPoint(t)
            }
            draw(t) {
                const { options: e, circumference: i } = this,
                    s = (e.offset || 0) / 4,
                    n = (e.spacing || 0) / 2,
                    o = e.circular
                if (
                    ((this.pixelMargin = 'inner' === e.borderAlign ? 0.33 : 0),
                    (this.fullCircles = i > O ? Math.floor(i / O) : 0),
                    0 === i || this.innerRadius < 0 || this.outerRadius < 0)
                )
                    return
                t.save()
                const a = (this.startAngle + this.endAngle) / 2
                t.translate(Math.cos(a) * s, Math.sin(a) * s)
                const r = s * (1 - Math.sin(Math.min(C, i || 0)))
                ;(t.fillStyle = e.backgroundColor),
                    (t.strokeStyle = e.borderColor),
                    (function (t, e, i, s, n) {
                        const {
                            fullCircles: o,
                            startAngle: a,
                            circumference: r,
                        } = e
                        let l = e.endAngle
                        if (o) {
                            Xn(t, e, i, s, l, n)
                            for (let e = 0; e < o; ++e) t.fill()
                            isNaN(r) || (l = a + (r % O || O))
                        }
                        Xn(t, e, i, s, l, n), t.fill()
                    })(t, this, r, n, o),
                    qn(t, this, r, n, o),
                    t.restore()
            }
        },
        BarElement: class extends Hs {
            static id = 'bar'
            static defaults = {
                borderSkipped: 'start',
                borderWidth: 0,
                borderRadius: 0,
                inflateAmount: 'auto',
                pointStyle: void 0,
            }
            static defaultRoutes = {
                backgroundColor: 'backgroundColor',
                borderColor: 'borderColor',
            }
            constructor(t) {
                super(),
                    (this.options = void 0),
                    (this.horizontal = void 0),
                    (this.base = void 0),
                    (this.width = void 0),
                    (this.height = void 0),
                    (this.inflateAmount = void 0),
                    t && Object.assign(this, t)
            }
            draw(t) {
                const {
                        inflateAmount: e,
                        options: { borderColor: i, backgroundColor: s },
                    } = this,
                    { inner: n, outer: o } = ro(this),
                    a =
                        (r = o.radius).topLeft ||
                        r.topRight ||
                        r.bottomLeft ||
                        r.bottomRight
                            ? He
                            : ho
                var r
                t.save(),
                    (o.w === n.w && o.h === n.h) ||
                        (t.beginPath(),
                        a(t, co(o, e, n)),
                        t.clip(),
                        a(t, co(n, -e, o)),
                        (t.fillStyle = i),
                        t.fill('evenodd')),
                    t.beginPath(),
                    a(t, co(n, e)),
                    (t.fillStyle = s),
                    t.fill(),
                    t.restore()
            }
            inRange(t, e, i) {
                return lo(this, t, e, i)
            }
            inXRange(t, e) {
                return lo(this, t, null, e)
            }
            inYRange(t, e) {
                return lo(this, null, t, e)
            }
            getCenterPoint(t) {
                const {
                    x: e,
                    y: i,
                    base: s,
                    horizontal: n,
                } = this.getProps(['x', 'y', 'base', 'horizontal'], t)
                return { x: n ? (e + s) / 2 : e, y: n ? i : (i + s) / 2 }
            }
            getRange(t) {
                return 'x' === t ? this.width / 2 : this.height / 2
            }
        },
        LineElement: so,
        PointElement: class extends Hs {
            static id = 'point'
            parsed
            skip
            stop
            static defaults = {
                borderWidth: 1,
                hitRadius: 1,
                hoverBorderWidth: 1,
                hoverRadius: 4,
                pointStyle: 'circle',
                radius: 3,
                rotation: 0,
            }
            static defaultRoutes = {
                backgroundColor: 'backgroundColor',
                borderColor: 'borderColor',
            }
            constructor(t) {
                super(),
                    (this.options = void 0),
                    (this.parsed = void 0),
                    (this.skip = void 0),
                    (this.stop = void 0),
                    t && Object.assign(this, t)
            }
            inRange(t, e, i) {
                const s = this.options,
                    { x: n, y: o } = this.getProps(['x', 'y'], i)
                return (
                    Math.pow(t - n, 2) + Math.pow(e - o, 2) <
                    Math.pow(s.hitRadius + s.radius, 2)
                )
            }
            inXRange(t, e) {
                return no(this, t, 'x', e)
            }
            inYRange(t, e) {
                return no(this, t, 'y', e)
            }
            getCenterPoint(t) {
                const { x: e, y: i } = this.getProps(['x', 'y'], t)
                return { x: e, y: i }
            }
            size(t) {
                let e = (t = t || this.options || {}).radius || 0
                e = Math.max(e, (e && t.hoverRadius) || 0)
                return 2 * (e + ((e && t.borderWidth) || 0))
            }
            draw(t, e) {
                const i = this.options
                this.skip ||
                    i.radius < 0.1 ||
                    !Re(this, e, this.size(i) / 2) ||
                    ((t.strokeStyle = i.borderColor),
                    (t.lineWidth = i.borderWidth),
                    (t.fillStyle = i.backgroundColor),
                    Le(t, i, this.x, this.y))
            }
            getRange() {
                const t = this.options || {}
                return t.radius + t.hitRadius
            }
        },
    })
    function fo(t, e, i, s) {
        const n = t.indexOf(e)
        if (-1 === n)
            return ((t, e, i, s) => (
                'string' == typeof e
                    ? ((i = t.push(e) - 1), s.unshift({ index: i, label: e }))
                    : isNaN(e) && (i = null),
                i
            ))(t, e, i, s)
        return n !== t.lastIndexOf(e) ? i : n
    }
    function go(t) {
        const e = this.getLabels()
        return t >= 0 && t < e.length ? e[t] : t
    }
    function po(t, e, { horizontal: i, minRotation: s }) {
        const n = $(s),
            o = (i ? Math.sin(n) : Math.cos(n)) || 0.001,
            a = 0.75 * e * ('' + t).length
        return Math.min(e / o, a)
    }
    class mo extends Js {
        constructor(t) {
            super(t),
                (this.start = void 0),
                (this.end = void 0),
                (this._startValue = void 0),
                (this._endValue = void 0),
                (this._valueRange = 0)
        }
        parse(t, e) {
            return s(t) ||
                (('number' == typeof t || t instanceof Number) && !isFinite(+t))
                ? null
                : +t
        }
        handleTickRangeOptions() {
            const { beginAtZero: t } = this.options,
                { minDefined: e, maxDefined: i } = this.getUserBounds()
            let { min: s, max: n } = this
            const o = (t) => (s = e ? s : t),
                a = (t) => (n = i ? n : t)
            if (t) {
                const t = F(s),
                    e = F(n)
                t < 0 && e < 0 ? a(0) : t > 0 && e > 0 && o(0)
            }
            if (s === n) {
                let e = 0 === n ? 1 : Math.abs(0.05 * n)
                a(n + e), t || o(s - e)
            }
            ;(this.min = s), (this.max = n)
        }
        getTickLimit() {
            const t = this.options.ticks
            let e,
                { maxTicksLimit: i, stepSize: s } = t
            return (
                s
                    ? ((e =
                          Math.ceil(this.max / s) -
                          Math.floor(this.min / s) +
                          1),
                      e > 1e3 &&
                          (console.warn(
                              `scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`
                          ),
                          (e = 1e3)))
                    : ((e = this.computeTickLimit()), (i = i || 11)),
                i && (e = Math.min(i, e)),
                e
            )
        }
        computeTickLimit() {
            return Number.POSITIVE_INFINITY
        }
        buildTicks() {
            const t = this.options,
                e = t.ticks
            let i = this.getTickLimit()
            i = Math.max(2, i)
            const n = (function (t, e) {
                const i = [],
                    {
                        bounds: n,
                        step: o,
                        min: a,
                        max: r,
                        precision: l,
                        count: h,
                        maxTicks: c,
                        maxDigits: d,
                        includeBounds: u,
                    } = t,
                    f = o || 1,
                    g = c - 1,
                    { min: p, max: m } = e,
                    b = !s(a),
                    x = !s(r),
                    _ = !s(h),
                    y = (m - p) / (d + 1)
                let v,
                    M,
                    w,
                    k,
                    S = B((m - p) / g / f) * f
                if (S < 1e-14 && !b && !x) return [{ value: p }, { value: m }]
                ;(k = Math.ceil(m / S) - Math.floor(p / S)),
                    k > g && (S = B((k * S) / g / f) * f),
                    s(l) || ((v = Math.pow(10, l)), (S = Math.ceil(S * v) / v)),
                    'ticks' === n
                        ? ((M = Math.floor(p / S) * S),
                          (w = Math.ceil(m / S) * S))
                        : ((M = p), (w = m)),
                    b && x && o && H((r - a) / o, S / 1e3)
                        ? ((k = Math.round(Math.min((r - a) / S, c))),
                          (S = (r - a) / k),
                          (M = a),
                          (w = r))
                        : _
                          ? ((M = b ? a : M),
                            (w = x ? r : w),
                            (k = h - 1),
                            (S = (w - M) / k))
                          : ((k = (w - M) / S),
                            (k = V(k, Math.round(k), S / 1e3)
                                ? Math.round(k)
                                : Math.ceil(k)))
                const P = Math.max(U(S), U(M))
                ;(v = Math.pow(10, s(l) ? P : l)),
                    (M = Math.round(M * v) / v),
                    (w = Math.round(w * v) / v)
                let D = 0
                for (
                    b &&
                    (u && M !== a
                        ? (i.push({ value: a }),
                          M < a && D++,
                          V(Math.round((M + D * S) * v) / v, a, po(a, y, t)) &&
                              D++)
                        : M < a && D++);
                    D < k;
                    ++D
                ) {
                    const t = Math.round((M + D * S) * v) / v
                    if (x && t > r) break
                    i.push({ value: t })
                }
                return (
                    x && u && w !== r
                        ? i.length && V(i[i.length - 1].value, r, po(r, y, t))
                            ? (i[i.length - 1].value = r)
                            : i.push({ value: r })
                        : (x && w !== r) || i.push({ value: w }),
                    i
                )
            })(
                {
                    maxTicks: i,
                    bounds: t.bounds,
                    min: t.min,
                    max: t.max,
                    precision: e.precision,
                    step: e.stepSize,
                    count: e.count,
                    maxDigits: this._maxDigits(),
                    horizontal: this.isHorizontal(),
                    minRotation: e.minRotation || 0,
                    includeBounds: !1 !== e.includeBounds,
                },
                this._range || this
            )
            return (
                'ticks' === t.bounds && j(n, this, 'value'),
                t.reverse
                    ? (n.reverse(),
                      (this.start = this.max),
                      (this.end = this.min))
                    : ((this.start = this.min), (this.end = this.max)),
                n
            )
        }
        configure() {
            const t = this.ticks
            let e = this.min,
                i = this.max
            if ((super.configure(), this.options.offset && t.length)) {
                const s = (i - e) / Math.max(t.length - 1, 1) / 2
                ;(e -= s), (i += s)
            }
            ;(this._startValue = e),
                (this._endValue = i),
                (this._valueRange = i - e)
        }
        getLabelForValue(t) {
            return ne(t, this.chart.options.locale, this.options.ticks.format)
        }
    }
    class bo extends mo {
        static id = 'linear'
        static defaults = { ticks: { callback: ae.formatters.numeric } }
        determineDataLimits() {
            const { min: t, max: e } = this.getMinMax(!0)
            ;(this.min = a(t) ? t : 0),
                (this.max = a(e) ? e : 1),
                this.handleTickRangeOptions()
        }
        computeTickLimit() {
            const t = this.isHorizontal(),
                e = t ? this.width : this.height,
                i = $(this.options.ticks.minRotation),
                s = (t ? Math.sin(i) : Math.cos(i)) || 0.001,
                n = this._resolveTickFontOptions(0)
            return Math.ceil(e / Math.min(40, n.lineHeight / s))
        }
        getPixelForValue(t) {
            return null === t
                ? NaN
                : this.getPixelForDecimal(
                      (t - this._startValue) / this._valueRange
                  )
        }
        getValueForPixel(t) {
            return (
                this._startValue + this.getDecimalForPixel(t) * this._valueRange
            )
        }
    }
    const xo = (t) => Math.floor(z(t)),
        _o = (t, e) => Math.pow(10, xo(t) + e)
    function yo(t) {
        return 1 === t / Math.pow(10, xo(t))
    }
    function vo(t, e, i) {
        const s = Math.pow(10, i),
            n = Math.floor(t / s)
        return Math.ceil(e / s) - n
    }
    function Mo(t, { min: e, max: i }) {
        e = r(t.min, e)
        const s = [],
            n = xo(e)
        let o = (function (t, e) {
                let i = xo(e - t)
                for (; vo(t, e, i) > 10; ) i++
                for (; vo(t, e, i) < 10; ) i--
                return Math.min(i, xo(t))
            })(e, i),
            a = o < 0 ? Math.pow(10, Math.abs(o)) : 1
        const l = Math.pow(10, o),
            h = n > o ? Math.pow(10, n) : 0,
            c = Math.round((e - h) * a) / a,
            d = Math.floor((e - h) / l / 10) * l * 10
        let u = Math.floor((c - d) / Math.pow(10, o)),
            f = r(t.min, Math.round((h + d + u * Math.pow(10, o)) * a) / a)
        for (; f < i; )
            s.push({ value: f, major: yo(f), significand: u }),
                u >= 10 ? (u = u < 15 ? 15 : 20) : u++,
                u >= 20 && (o++, (u = 2), (a = o >= 0 ? 1 : a)),
                (f = Math.round((h + d + u * Math.pow(10, o)) * a) / a)
        const g = r(t.max, f)
        return s.push({ value: g, major: yo(g), significand: u }), s
    }
    class wo extends Js {
        static id = 'logarithmic'
        static defaults = {
            ticks: {
                callback: ae.formatters.logarithmic,
                major: { enabled: !0 },
            },
        }
        constructor(t) {
            super(t),
                (this.start = void 0),
                (this.end = void 0),
                (this._startValue = void 0),
                (this._valueRange = 0)
        }
        parse(t, e) {
            const i = mo.prototype.parse.apply(this, [t, e])
            if (0 !== i) return a(i) && i > 0 ? i : null
            this._zero = !0
        }
        determineDataLimits() {
            const { min: t, max: e } = this.getMinMax(!0)
            ;(this.min = a(t) ? Math.max(0, t) : null),
                (this.max = a(e) ? Math.max(0, e) : null),
                this.options.beginAtZero && (this._zero = !0),
                this._zero &&
                    this.min !== this._suggestedMin &&
                    !a(this._userMin) &&
                    (this.min =
                        t === _o(this.min, 0)
                            ? _o(this.min, -1)
                            : _o(this.min, 0)),
                this.handleTickRangeOptions()
        }
        handleTickRangeOptions() {
            const { minDefined: t, maxDefined: e } = this.getUserBounds()
            let i = this.min,
                s = this.max
            const n = (e) => (i = t ? i : e),
                o = (t) => (s = e ? s : t)
            i === s && (i <= 0 ? (n(1), o(10)) : (n(_o(i, -1)), o(_o(s, 1)))),
                i <= 0 && n(_o(s, -1)),
                s <= 0 && o(_o(i, 1)),
                (this.min = i),
                (this.max = s)
        }
        buildTicks() {
            const t = this.options,
                e = Mo({ min: this._userMin, max: this._userMax }, this)
            return (
                'ticks' === t.bounds && j(e, this, 'value'),
                t.reverse
                    ? (e.reverse(),
                      (this.start = this.max),
                      (this.end = this.min))
                    : ((this.start = this.min), (this.end = this.max)),
                e
            )
        }
        getLabelForValue(t) {
            return void 0 === t
                ? '0'
                : ne(t, this.chart.options.locale, this.options.ticks.format)
        }
        configure() {
            const t = this.min
            super.configure(),
                (this._startValue = z(t)),
                (this._valueRange = z(this.max) - z(t))
        }
        getPixelForValue(t) {
            return (
                (void 0 !== t && 0 !== t) || (t = this.min),
                null === t || isNaN(t)
                    ? NaN
                    : this.getPixelForDecimal(
                          t === this.min
                              ? 0
                              : (z(t) - this._startValue) / this._valueRange
                      )
            )
        }
        getValueForPixel(t) {
            const e = this.getDecimalForPixel(t)
            return Math.pow(10, this._startValue + e * this._valueRange)
        }
    }
    function ko(t) {
        const e = t.ticks
        if (e.display && t.display) {
            const t = ki(e.backdropPadding)
            return l(e.font && e.font.size, ue.font.size) + t.height
        }
        return 0
    }
    function So(t, e, i, s, n) {
        return t === s || t === n
            ? { start: e - i / 2, end: e + i / 2 }
            : t < s || t > n
              ? { start: e - i, end: e }
              : { start: e, end: e + i }
    }
    function Po(t) {
        const e = {
                l: t.left + t._padding.left,
                r: t.right - t._padding.right,
                t: t.top + t._padding.top,
                b: t.bottom - t._padding.bottom,
            },
            i = Object.assign({}, e),
            s = [],
            o = [],
            a = t._pointLabels.length,
            r = t.options.pointLabels,
            l = r.centerPointLabels ? C / a : 0
        for (let u = 0; u < a; u++) {
            const a = r.setContext(t.getPointLabelContext(u))
            o[u] = a.padding
            const f = t.getPointPosition(u, t.drawingArea + o[u], l),
                g = Si(a.font),
                p =
                    ((h = t.ctx),
                    (c = g),
                    (d = n((d = t._pointLabels[u])) ? d : [d]),
                    { w: Oe(h, c.string, d), h: d.length * c.lineHeight })
            s[u] = p
            const m = G(t.getIndexAngle(u) + l),
                b = Math.round(Y(m))
            Do(i, e, m, So(b, f.x, p.w, 0, 180), So(b, f.y, p.h, 90, 270))
        }
        var h, c, d
        t.setCenterPoint(e.l - i.l, i.r - e.r, e.t - i.t, i.b - e.b),
            (t._pointLabelItems = (function (t, e, i) {
                const s = [],
                    n = t._pointLabels.length,
                    o = t.options,
                    { centerPointLabels: a, display: r } = o.pointLabels,
                    l = { extra: ko(o) / 2, additionalAngle: a ? C / n : 0 }
                let h
                for (let o = 0; o < n; o++) {
                    ;(l.padding = i[o]), (l.size = e[o])
                    const n = Co(t, o, l)
                    s.push(n),
                        'auto' === r &&
                            ((n.visible = Oo(n, h)), n.visible && (h = n))
                }
                return s
            })(t, s, o))
    }
    function Do(t, e, i, s, n) {
        const o = Math.abs(Math.sin(i)),
            a = Math.abs(Math.cos(i))
        let r = 0,
            l = 0
        s.start < e.l
            ? ((r = (e.l - s.start) / o), (t.l = Math.min(t.l, e.l - r)))
            : s.end > e.r &&
              ((r = (s.end - e.r) / o), (t.r = Math.max(t.r, e.r + r))),
            n.start < e.t
                ? ((l = (e.t - n.start) / a), (t.t = Math.min(t.t, e.t - l)))
                : n.end > e.b &&
                  ((l = (n.end - e.b) / a), (t.b = Math.max(t.b, e.b + l)))
    }
    function Co(t, e, i) {
        const s = t.drawingArea,
            { extra: n, additionalAngle: o, padding: a, size: r } = i,
            l = t.getPointPosition(e, s + n + a, o),
            h = Math.round(Y(G(l.angle + E))),
            c = (function (t, e, i) {
                90 === i || 270 === i
                    ? (t -= e / 2)
                    : (i > 270 || i < 90) && (t -= e)
                return t
            })(l.y, r.h, h),
            d = (function (t) {
                if (0 === t || 180 === t) return 'center'
                if (t < 180) return 'left'
                return 'right'
            })(h),
            u = (function (t, e, i) {
                'right' === i ? (t -= e) : 'center' === i && (t -= e / 2)
                return t
            })(l.x, r.w, d)
        return {
            visible: !0,
            x: l.x,
            y: c,
            textAlign: d,
            left: u,
            top: c,
            right: u + r.w,
            bottom: c + r.h,
        }
    }
    function Oo(t, e) {
        if (!e) return !0
        const { left: i, top: s, right: n, bottom: o } = t
        return !(
            Re({ x: i, y: s }, e) ||
            Re({ x: i, y: o }, e) ||
            Re({ x: n, y: s }, e) ||
            Re({ x: n, y: o }, e)
        )
    }
    function Ao(t, e, i) {
        const { left: n, top: o, right: a, bottom: r } = i,
            { backdropColor: l } = e
        if (!s(l)) {
            const i = wi(e.borderRadius),
                s = ki(e.backdropPadding)
            t.fillStyle = l
            const h = n - s.left,
                c = o - s.top,
                d = a - n + s.width,
                u = r - o + s.height
            Object.values(i).some((t) => 0 !== t)
                ? (t.beginPath(),
                  He(t, { x: h, y: c, w: d, h: u, radius: i }),
                  t.fill())
                : t.fillRect(h, c, d, u)
        }
    }
    function To(t, e, i, s) {
        const { ctx: n } = t
        if (i) n.arc(t.xCenter, t.yCenter, e, 0, O)
        else {
            let i = t.getPointPosition(0, e)
            n.moveTo(i.x, i.y)
            for (let o = 1; o < s; o++)
                (i = t.getPointPosition(o, e)), n.lineTo(i.x, i.y)
        }
    }
    class Lo extends mo {
        static id = 'radialLinear'
        static defaults = {
            display: !0,
            animate: !0,
            position: 'chartArea',
            angleLines: {
                display: !0,
                lineWidth: 1,
                borderDash: [],
                borderDashOffset: 0,
            },
            grid: { circular: !1 },
            startAngle: 0,
            ticks: { showLabelBackdrop: !0, callback: ae.formatters.numeric },
            pointLabels: {
                backdropColor: void 0,
                backdropPadding: 2,
                display: !0,
                font: { size: 10 },
                callback: (t) => t,
                padding: 5,
                centerPointLabels: !1,
            },
        }
        static defaultRoutes = {
            'angleLines.color': 'borderColor',
            'pointLabels.color': 'color',
            'ticks.color': 'color',
        }
        static descriptors = { angleLines: { _fallback: 'grid' } }
        constructor(t) {
            super(t),
                (this.xCenter = void 0),
                (this.yCenter = void 0),
                (this.drawingArea = void 0),
                (this._pointLabels = []),
                (this._pointLabelItems = [])
        }
        setDimensions() {
            const t = (this._padding = ki(ko(this.options) / 2)),
                e = (this.width = this.maxWidth - t.width),
                i = (this.height = this.maxHeight - t.height)
            ;(this.xCenter = Math.floor(this.left + e / 2 + t.left)),
                (this.yCenter = Math.floor(this.top + i / 2 + t.top)),
                (this.drawingArea = Math.floor(Math.min(e, i) / 2))
        }
        determineDataLimits() {
            const { min: t, max: e } = this.getMinMax(!1)
            ;(this.min = a(t) && !isNaN(t) ? t : 0),
                (this.max = a(e) && !isNaN(e) ? e : 0),
                this.handleTickRangeOptions()
        }
        computeTickLimit() {
            return Math.ceil(this.drawingArea / ko(this.options))
        }
        generateTickLabels(t) {
            mo.prototype.generateTickLabels.call(this, t),
                (this._pointLabels = this.getLabels()
                    .map((t, e) => {
                        const i = d(
                            this.options.pointLabels.callback,
                            [t, e],
                            this
                        )
                        return i || 0 === i ? i : ''
                    })
                    .filter((t, e) => this.chart.getDataVisibility(e)))
        }
        fit() {
            const t = this.options
            t.display && t.pointLabels.display
                ? Po(this)
                : this.setCenterPoint(0, 0, 0, 0)
        }
        setCenterPoint(t, e, i, s) {
            ;(this.xCenter += Math.floor((t - e) / 2)),
                (this.yCenter += Math.floor((i - s) / 2)),
                (this.drawingArea -= Math.min(
                    this.drawingArea / 2,
                    Math.max(t, e, i, s)
                ))
        }
        getIndexAngle(t) {
            return G(
                t * (O / (this._pointLabels.length || 1)) +
                    $(this.options.startAngle || 0)
            )
        }
        getDistanceFromCenterForValue(t) {
            if (s(t)) return NaN
            const e = this.drawingArea / (this.max - this.min)
            return this.options.reverse
                ? (this.max - t) * e
                : (t - this.min) * e
        }
        getValueForDistanceFromCenter(t) {
            if (s(t)) return NaN
            const e = t / (this.drawingArea / (this.max - this.min))
            return this.options.reverse ? this.max - e : this.min + e
        }
        getPointLabelContext(t) {
            const e = this._pointLabels || []
            if (t >= 0 && t < e.length) {
                const i = e[t]
                return (function (t, e, i) {
                    return Ci(t, { label: i, index: e, type: 'pointLabel' })
                })(this.getContext(), t, i)
            }
        }
        getPointPosition(t, e, i = 0) {
            const s = this.getIndexAngle(t) - E + i
            return {
                x: Math.cos(s) * e + this.xCenter,
                y: Math.sin(s) * e + this.yCenter,
                angle: s,
            }
        }
        getPointPositionForValue(t, e) {
            return this.getPointPosition(
                t,
                this.getDistanceFromCenterForValue(e)
            )
        }
        getBasePosition(t) {
            return this.getPointPositionForValue(t || 0, this.getBaseValue())
        }
        getPointLabelPosition(t) {
            const {
                left: e,
                top: i,
                right: s,
                bottom: n,
            } = this._pointLabelItems[t]
            return { left: e, top: i, right: s, bottom: n }
        }
        drawBackground() {
            const {
                backgroundColor: t,
                grid: { circular: e },
            } = this.options
            if (t) {
                const i = this.ctx
                i.save(),
                    i.beginPath(),
                    To(
                        this,
                        this.getDistanceFromCenterForValue(this._endValue),
                        e,
                        this._pointLabels.length
                    ),
                    i.closePath(),
                    (i.fillStyle = t),
                    i.fill(),
                    i.restore()
            }
        }
        drawGrid() {
            const t = this.ctx,
                e = this.options,
                { angleLines: i, grid: s, border: n } = e,
                o = this._pointLabels.length
            let a, r, l
            if (
                (e.pointLabels.display &&
                    (function (t, e) {
                        const {
                            ctx: i,
                            options: { pointLabels: s },
                        } = t
                        for (let n = e - 1; n >= 0; n--) {
                            const e = t._pointLabelItems[n]
                            if (!e.visible) continue
                            const o = s.setContext(t.getPointLabelContext(n))
                            Ao(i, o, e)
                            const a = Si(o.font),
                                { x: r, y: l, textAlign: h } = e
                            We(
                                i,
                                t._pointLabels[n],
                                r,
                                l + a.lineHeight / 2,
                                a,
                                {
                                    color: o.color,
                                    textAlign: h,
                                    textBaseline: 'middle',
                                }
                            )
                        }
                    })(this, o),
                s.display &&
                    this.ticks.forEach((t, e) => {
                        if (0 !== e) {
                            r = this.getDistanceFromCenterForValue(t.value)
                            const i = this.getContext(e),
                                a = s.setContext(i),
                                l = n.setContext(i)
                            !(function (t, e, i, s, n) {
                                const o = t.ctx,
                                    a = e.circular,
                                    { color: r, lineWidth: l } = e
                                ;(!a && !s) ||
                                    !r ||
                                    !l ||
                                    i < 0 ||
                                    (o.save(),
                                    (o.strokeStyle = r),
                                    (o.lineWidth = l),
                                    o.setLineDash(n.dash),
                                    (o.lineDashOffset = n.dashOffset),
                                    o.beginPath(),
                                    To(t, i, a, s),
                                    o.closePath(),
                                    o.stroke(),
                                    o.restore())
                            })(this, a, r, o, l)
                        }
                    }),
                i.display)
            ) {
                for (t.save(), a = o - 1; a >= 0; a--) {
                    const s = i.setContext(this.getPointLabelContext(a)),
                        { color: n, lineWidth: o } = s
                    o &&
                        n &&
                        ((t.lineWidth = o),
                        (t.strokeStyle = n),
                        t.setLineDash(s.borderDash),
                        (t.lineDashOffset = s.borderDashOffset),
                        (r = this.getDistanceFromCenterForValue(
                            e.ticks.reverse ? this.min : this.max
                        )),
                        (l = this.getPointPosition(a, r)),
                        t.beginPath(),
                        t.moveTo(this.xCenter, this.yCenter),
                        t.lineTo(l.x, l.y),
                        t.stroke())
                }
                t.restore()
            }
        }
        drawBorder() {}
        drawLabels() {
            const t = this.ctx,
                e = this.options,
                i = e.ticks
            if (!i.display) return
            const s = this.getIndexAngle(0)
            let n, o
            t.save(),
                t.translate(this.xCenter, this.yCenter),
                t.rotate(s),
                (t.textAlign = 'center'),
                (t.textBaseline = 'middle'),
                this.ticks.forEach((s, a) => {
                    if (0 === a && !e.reverse) return
                    const r = i.setContext(this.getContext(a)),
                        l = Si(r.font)
                    if (
                        ((n = this.getDistanceFromCenterForValue(
                            this.ticks[a].value
                        )),
                        r.showLabelBackdrop)
                    ) {
                        ;(t.font = l.string),
                            (o = t.measureText(s.label).width),
                            (t.fillStyle = r.backdropColor)
                        const e = ki(r.backdropPadding)
                        t.fillRect(
                            -o / 2 - e.left,
                            -n - l.size / 2 - e.top,
                            o + e.width,
                            l.size + e.height
                        )
                    }
                    We(t, s.label, 0, -n, l, { color: r.color })
                }),
                t.restore()
        }
        drawTitle() {}
    }
    const Eo = {
            millisecond: { common: !0, size: 1, steps: 1e3 },
            second: { common: !0, size: 1e3, steps: 60 },
            minute: { common: !0, size: 6e4, steps: 60 },
            hour: { common: !0, size: 36e5, steps: 24 },
            day: { common: !0, size: 864e5, steps: 30 },
            week: { common: !1, size: 6048e5, steps: 4 },
            month: { common: !0, size: 2628e6, steps: 12 },
            quarter: { common: !1, size: 7884e6, steps: 4 },
            year: { common: !0, size: 3154e7 },
        },
        Ro = Object.keys(Eo)
    function Io(t, e) {
        return t - e
    }
    function zo(t, e) {
        if (s(e)) return null
        const i = t._adapter,
            { parser: n, round: o, isoWeekday: r } = t._parseOpts
        let l = e
        return (
            'function' == typeof n && (l = n(l)),
            a(l) || (l = 'string' == typeof n ? i.parse(l, n) : i.parse(l)),
            null === l
                ? null
                : (o &&
                      (l =
                          'week' !== o || (!W(r) && !0 !== r)
                              ? i.startOf(l, o)
                              : i.startOf(l, 'isoWeek', r)),
                  +l)
        )
    }
    function Fo(t, e, i, s) {
        const n = Ro.length
        for (let o = Ro.indexOf(t); o < n - 1; ++o) {
            const t = Eo[Ro[o]],
                n = t.steps ? t.steps : Number.MAX_SAFE_INTEGER
            if (t.common && Math.ceil((i - e) / (n * t.size)) <= s) return Ro[o]
        }
        return Ro[n - 1]
    }
    function Vo(t, e, i) {
        if (i) {
            if (i.length) {
                const { lo: s, hi: n } = et(i, e)
                t[i[s] >= e ? i[s] : i[n]] = !0
            }
        } else t[e] = !0
    }
    function Bo(t, e, i) {
        const s = [],
            n = {},
            o = e.length
        let a, r
        for (a = 0; a < o; ++a)
            (r = e[a]), (n[r] = a), s.push({ value: r, major: !1 })
        return 0 !== o && i
            ? (function (t, e, i, s) {
                  const n = t._adapter,
                      o = +n.startOf(e[0].value, s),
                      a = e[e.length - 1].value
                  let r, l
                  for (r = o; r <= a; r = +n.add(r, 1, s))
                      (l = i[r]), l >= 0 && (e[l].major = !0)
                  return e
              })(t, s, n, i)
            : s
    }
    class No extends Js {
        static id = 'time'
        static defaults = {
            bounds: 'data',
            adapters: {},
            time: {
                parser: !1,
                unit: !1,
                round: !1,
                isoWeekday: !1,
                minUnit: 'millisecond',
                displayFormats: {},
            },
            ticks: { source: 'auto', callback: !1, major: { enabled: !1 } },
        }
        constructor(t) {
            super(t),
                (this._cache = { data: [], labels: [], all: [] }),
                (this._unit = 'day'),
                (this._majorUnit = void 0),
                (this._offsets = {}),
                (this._normalized = !1),
                (this._parseOpts = void 0)
        }
        init(t, e = {}) {
            const i = t.time || (t.time = {}),
                s = (this._adapter = new En._date(t.adapters.date))
            s.init(e),
                x(i.displayFormats, s.formats()),
                (this._parseOpts = {
                    parser: i.parser,
                    round: i.round,
                    isoWeekday: i.isoWeekday,
                }),
                super.init(t),
                (this._normalized = e.normalized)
        }
        parse(t, e) {
            return void 0 === t ? null : zo(this, t)
        }
        beforeLayout() {
            super.beforeLayout(),
                (this._cache = { data: [], labels: [], all: [] })
        }
        determineDataLimits() {
            const t = this.options,
                e = this._adapter,
                i = t.time.unit || 'day'
            let {
                min: s,
                max: n,
                minDefined: o,
                maxDefined: r,
            } = this.getUserBounds()
            function l(t) {
                o || isNaN(t.min) || (s = Math.min(s, t.min)),
                    r || isNaN(t.max) || (n = Math.max(n, t.max))
            }
            ;(o && r) ||
                (l(this._getLabelBounds()),
                ('ticks' === t.bounds && 'labels' === t.ticks.source) ||
                    l(this.getMinMax(!1))),
                (s = a(s) && !isNaN(s) ? s : +e.startOf(Date.now(), i)),
                (n = a(n) && !isNaN(n) ? n : +e.endOf(Date.now(), i) + 1),
                (this.min = Math.min(s, n - 1)),
                (this.max = Math.max(s + 1, n))
        }
        _getLabelBounds() {
            const t = this.getLabelTimestamps()
            let e = Number.POSITIVE_INFINITY,
                i = Number.NEGATIVE_INFINITY
            return (
                t.length && ((e = t[0]), (i = t[t.length - 1])),
                { min: e, max: i }
            )
        }
        buildTicks() {
            const t = this.options,
                e = t.time,
                i = t.ticks,
                s =
                    'labels' === i.source
                        ? this.getLabelTimestamps()
                        : this._generate()
            'ticks' === t.bounds &&
                s.length &&
                ((this.min = this._userMin || s[0]),
                (this.max = this._userMax || s[s.length - 1]))
            const n = this.min,
                o = nt(s, n, this.max)
            return (
                (this._unit =
                    e.unit ||
                    (i.autoSkip
                        ? Fo(
                              e.minUnit,
                              this.min,
                              this.max,
                              this._getLabelCapacity(n)
                          )
                        : (function (t, e, i, s, n) {
                              for (
                                  let o = Ro.length - 1;
                                  o >= Ro.indexOf(i);
                                  o--
                              ) {
                                  const i = Ro[o]
                                  if (
                                      Eo[i].common &&
                                      t._adapter.diff(n, s, i) >= e - 1
                                  )
                                      return i
                              }
                              return Ro[i ? Ro.indexOf(i) : 0]
                          })(this, o.length, e.minUnit, this.min, this.max))),
                (this._majorUnit =
                    i.major.enabled && 'year' !== this._unit
                        ? (function (t) {
                              for (
                                  let e = Ro.indexOf(t) + 1, i = Ro.length;
                                  e < i;
                                  ++e
                              )
                                  if (Eo[Ro[e]].common) return Ro[e]
                          })(this._unit)
                        : void 0),
                this.initOffsets(s),
                t.reverse && o.reverse(),
                Bo(this, o, this._majorUnit)
            )
        }
        afterAutoSkip() {
            this.options.offsetAfterAutoskip &&
                this.initOffsets(this.ticks.map((t) => +t.value))
        }
        initOffsets(t = []) {
            let e,
                i,
                s = 0,
                n = 0
            this.options.offset &&
                t.length &&
                ((e = this.getDecimalForValue(t[0])),
                (s =
                    1 === t.length
                        ? 1 - e
                        : (this.getDecimalForValue(t[1]) - e) / 2),
                (i = this.getDecimalForValue(t[t.length - 1])),
                (n =
                    1 === t.length
                        ? i
                        : (i - this.getDecimalForValue(t[t.length - 2])) / 2))
            const o = t.length < 3 ? 0.5 : 0.25
            ;(s = J(s, 0, o)),
                (n = J(n, 0, o)),
                (this._offsets = { start: s, end: n, factor: 1 / (s + 1 + n) })
        }
        _generate() {
            const t = this._adapter,
                e = this.min,
                i = this.max,
                s = this.options,
                n = s.time,
                o = n.unit || Fo(n.minUnit, e, i, this._getLabelCapacity(e)),
                a = l(s.ticks.stepSize, 1),
                r = 'week' === o && n.isoWeekday,
                h = W(r) || !0 === r,
                c = {}
            let d,
                u,
                f = e
            if (
                (h && (f = +t.startOf(f, 'isoWeek', r)),
                (f = +t.startOf(f, h ? 'day' : o)),
                t.diff(i, e, o) > 1e5 * a)
            )
                throw new Error(
                    e +
                        ' and ' +
                        i +
                        ' are too far apart with stepSize of ' +
                        a +
                        ' ' +
                        o
                )
            const g = 'data' === s.ticks.source && this.getDataTimestamps()
            for (d = f, u = 0; d < i; d = +t.add(d, a, o), u++) Vo(c, d, g)
            return (
                (d !== i && 'ticks' !== s.bounds && 1 !== u) || Vo(c, d, g),
                Object.keys(c)
                    .sort((t, e) => t - e)
                    .map((t) => +t)
            )
        }
        getLabelForValue(t) {
            const e = this._adapter,
                i = this.options.time
            return i.tooltipFormat
                ? e.format(t, i.tooltipFormat)
                : e.format(t, i.displayFormats.datetime)
        }
        format(t, e) {
            const i = this.options.time.displayFormats,
                s = this._unit,
                n = e || i[s]
            return this._adapter.format(t, n)
        }
        _tickFormatFunction(t, e, i, s) {
            const n = this.options,
                o = n.ticks.callback
            if (o) return d(o, [t, e, i], this)
            const a = n.time.displayFormats,
                r = this._unit,
                l = this._majorUnit,
                h = r && a[r],
                c = l && a[l],
                u = i[e],
                f = l && c && u && u.major
            return this._adapter.format(t, s || (f ? c : h))
        }
        generateTickLabels(t) {
            let e, i, s
            for (e = 0, i = t.length; e < i; ++e)
                (s = t[e]), (s.label = this._tickFormatFunction(s.value, e, t))
        }
        getDecimalForValue(t) {
            return null === t ? NaN : (t - this.min) / (this.max - this.min)
        }
        getPixelForValue(t) {
            const e = this._offsets,
                i = this.getDecimalForValue(t)
            return this.getPixelForDecimal((e.start + i) * e.factor)
        }
        getValueForPixel(t) {
            const e = this._offsets,
                i = this.getDecimalForPixel(t) / e.factor - e.end
            return this.min + i * (this.max - this.min)
        }
        _getLabelSize(t) {
            const e = this.options.ticks,
                i = this.ctx.measureText(t).width,
                s = $(this.isHorizontal() ? e.maxRotation : e.minRotation),
                n = Math.cos(s),
                o = Math.sin(s),
                a = this._resolveTickFontOptions(0).size
            return { w: i * n + a * o, h: i * o + a * n }
        }
        _getLabelCapacity(t) {
            const e = this.options.time,
                i = e.displayFormats,
                s = i[e.unit] || i.millisecond,
                n = this._tickFormatFunction(
                    t,
                    0,
                    Bo(this, [t], this._majorUnit),
                    s
                ),
                o = this._getLabelSize(n),
                a =
                    Math.floor(
                        this.isHorizontal()
                            ? this.width / o.w
                            : this.height / o.h
                    ) - 1
            return a > 0 ? a : 1
        }
        getDataTimestamps() {
            let t,
                e,
                i = this._cache.data || []
            if (i.length) return i
            const s = this.getMatchingVisibleMetas()
            if (this._normalized && s.length)
                return (this._cache.data =
                    s[0].controller.getAllParsedValues(this))
            for (t = 0, e = s.length; t < e; ++t)
                i = i.concat(s[t].controller.getAllParsedValues(this))
            return (this._cache.data = this.normalize(i))
        }
        getLabelTimestamps() {
            const t = this._cache.labels || []
            let e, i
            if (t.length) return t
            const s = this.getLabels()
            for (e = 0, i = s.length; e < i; ++e) t.push(zo(this, s[e]))
            return (this._cache.labels = this._normalized
                ? t
                : this.normalize(t))
        }
        normalize(t) {
            return lt(t.sort(Io))
        }
    }
    function Wo(t, e, i) {
        let s,
            n,
            o,
            a,
            r = 0,
            l = t.length - 1
        i
            ? (e >= t[r].pos &&
                  e <= t[l].pos &&
                  ({ lo: r, hi: l } = it(t, 'pos', e)),
              ({ pos: s, time: o } = t[r]),
              ({ pos: n, time: a } = t[l]))
            : (e >= t[r].time &&
                  e <= t[l].time &&
                  ({ lo: r, hi: l } = it(t, 'time', e)),
              ({ time: s, pos: o } = t[r]),
              ({ time: n, pos: a } = t[l]))
        const h = n - s
        return h ? o + ((a - o) * (e - s)) / h : o
    }
    var Ho = Object.freeze({
        __proto__: null,
        CategoryScale: class extends Js {
            static id = 'category'
            static defaults = { ticks: { callback: go } }
            constructor(t) {
                super(t),
                    (this._startValue = void 0),
                    (this._valueRange = 0),
                    (this._addedLabels = [])
            }
            init(t) {
                const e = this._addedLabels
                if (e.length) {
                    const t = this.getLabels()
                    for (const { index: i, label: s } of e)
                        t[i] === s && t.splice(i, 1)
                    this._addedLabels = []
                }
                super.init(t)
            }
            parse(t, e) {
                if (s(t)) return null
                const i = this.getLabels()
                return ((t, e) => (null === t ? null : J(Math.round(t), 0, e)))(
                    (e =
                        isFinite(e) && i[e] === t
                            ? e
                            : fo(i, t, l(e, t), this._addedLabels)),
                    i.length - 1
                )
            }
            determineDataLimits() {
                const { minDefined: t, maxDefined: e } = this.getUserBounds()
                let { min: i, max: s } = this.getMinMax(!0)
                'ticks' === this.options.bounds &&
                    (t || (i = 0), e || (s = this.getLabels().length - 1)),
                    (this.min = i),
                    (this.max = s)
            }
            buildTicks() {
                const t = this.min,
                    e = this.max,
                    i = this.options.offset,
                    s = []
                let n = this.getLabels()
                ;(n = 0 === t && e === n.length - 1 ? n : n.slice(t, e + 1)),
                    (this._valueRange = Math.max(n.length - (i ? 0 : 1), 1)),
                    (this._startValue = this.min - (i ? 0.5 : 0))
                for (let i = t; i <= e; i++) s.push({ value: i })
                return s
            }
            getLabelForValue(t) {
                return go.call(this, t)
            }
            configure() {
                super.configure(),
                    this.isHorizontal() ||
                        (this._reversePixels = !this._reversePixels)
            }
            getPixelForValue(t) {
                return (
                    'number' != typeof t && (t = this.parse(t)),
                    null === t
                        ? NaN
                        : this.getPixelForDecimal(
                              (t - this._startValue) / this._valueRange
                          )
                )
            }
            getPixelForTick(t) {
                const e = this.ticks
                return t < 0 || t > e.length - 1
                    ? null
                    : this.getPixelForValue(e[t].value)
            }
            getValueForPixel(t) {
                return Math.round(
                    this._startValue +
                        this.getDecimalForPixel(t) * this._valueRange
                )
            }
            getBasePixel() {
                return this.bottom
            }
        },
        LinearScale: bo,
        LogarithmicScale: wo,
        RadialLinearScale: Lo,
        TimeScale: No,
        TimeSeriesScale: class extends No {
            static id = 'timeseries'
            static defaults = No.defaults
            constructor(t) {
                super(t),
                    (this._table = []),
                    (this._minPos = void 0),
                    (this._tableRange = void 0)
            }
            initOffsets() {
                const t = this._getTimestampsForTable(),
                    e = (this._table = this.buildLookupTable(t))
                ;(this._minPos = Wo(e, this.min)),
                    (this._tableRange = Wo(e, this.max) - this._minPos),
                    super.initOffsets(t)
            }
            buildLookupTable(t) {
                const { min: e, max: i } = this,
                    s = [],
                    n = []
                let o, a, r, l, h
                for (o = 0, a = t.length; o < a; ++o)
                    (l = t[o]), l >= e && l <= i && s.push(l)
                if (s.length < 2)
                    return [
                        { time: e, pos: 0 },
                        { time: i, pos: 1 },
                    ]
                for (o = 0, a = s.length; o < a; ++o)
                    (h = s[o + 1]),
                        (r = s[o - 1]),
                        (l = s[o]),
                        Math.round((h + r) / 2) !== l &&
                            n.push({ time: l, pos: o / (a - 1) })
                return n
            }
            _getTimestampsForTable() {
                let t = this._cache.all || []
                if (t.length) return t
                const e = this.getDataTimestamps(),
                    i = this.getLabelTimestamps()
                return (
                    (t =
                        e.length && i.length
                            ? this.normalize(e.concat(i))
                            : e.length
                              ? e
                              : i),
                    (t = this._cache.all = t),
                    t
                )
            }
            getDecimalForValue(t) {
                return (Wo(this._table, t) - this._minPos) / this._tableRange
            }
            getValueForPixel(t) {
                const e = this._offsets,
                    i = this.getDecimalForPixel(t) / e.factor - e.end
                return Wo(this._table, i * this._tableRange + this._minPos, !0)
            }
        },
    })
    const jo = [
            'rgb(54, 162, 235)',
            'rgb(255, 99, 132)',
            'rgb(255, 159, 64)',
            'rgb(255, 205, 86)',
            'rgb(75, 192, 192)',
            'rgb(153, 102, 255)',
            'rgb(201, 203, 207)',
        ],
        $o = jo.map((t) => t.replace('rgb(', 'rgba(').replace(')', ', 0.5)'))
    function Yo(t) {
        return jo[t % jo.length]
    }
    function Uo(t) {
        return $o[t % $o.length]
    }
    function Xo(t) {
        let e = 0
        return (i, s) => {
            const n = t.getDatasetMeta(s).controller
            n instanceof Hn
                ? (e = (function (t, e) {
                      return (t.backgroundColor = t.data.map(() => Yo(e++))), e
                  })(i, e))
                : n instanceof jn
                  ? (e = (function (t, e) {
                        return (
                            (t.backgroundColor = t.data.map(() => Uo(e++))), e
                        )
                    })(i, e))
                  : n &&
                    (e = (function (t, e) {
                        return (
                            (t.borderColor = Yo(e)),
                            (t.backgroundColor = Uo(e)),
                            ++e
                        )
                    })(i, e))
        }
    }
    function qo(t) {
        let e
        for (e in t) if (t[e].borderColor || t[e].backgroundColor) return !0
        return !1
    }
    var Ko = {
        id: 'colors',
        defaults: { enabled: !0, forceOverride: !1 },
        beforeLayout(t, e, i) {
            if (!i.enabled) return
            const {
                    data: { datasets: s },
                    options: n,
                } = t.config,
                { elements: o } = n
            if (
                !i.forceOverride &&
                (qo(s) ||
                    ((a = n) && (a.borderColor || a.backgroundColor)) ||
                    (o && qo(o)))
            )
                return
            var a
            const r = Xo(t)
            s.forEach(r)
        },
    }
    function Go(t) {
        if (t._decimated) {
            const e = t._data
            delete t._decimated,
                delete t._data,
                Object.defineProperty(t, 'data', {
                    configurable: !0,
                    enumerable: !0,
                    writable: !0,
                    value: e,
                })
        }
    }
    function Zo(t) {
        t.data.datasets.forEach((t) => {
            Go(t)
        })
    }
    var Jo = {
        id: 'decimation',
        defaults: { algorithm: 'min-max', enabled: !1 },
        beforeElementsUpdate: (t, e, i) => {
            if (!i.enabled) return void Zo(t)
            const n = t.width
            t.data.datasets.forEach((e, o) => {
                const { _data: a, indexAxis: r } = e,
                    l = t.getDatasetMeta(o),
                    h = a || e.data
                if ('y' === Pi([r, t.options.indexAxis])) return
                if (!l.controller.supportsDecimation) return
                const c = t.scales[l.xAxisID]
                if ('linear' !== c.type && 'time' !== c.type) return
                if (t.options.parsing) return
                let { start: d, count: u } = (function (t, e) {
                    const i = e.length
                    let s,
                        n = 0
                    const { iScale: o } = t,
                        {
                            min: a,
                            max: r,
                            minDefined: l,
                            maxDefined: h,
                        } = o.getUserBounds()
                    return (
                        l && (n = J(it(e, o.axis, a).lo, 0, i - 1)),
                        (s = h ? J(it(e, o.axis, r).hi + 1, n, i) - n : i - n),
                        { start: n, count: s }
                    )
                })(l, h)
                if (u <= (i.threshold || 4 * n)) return void Go(e)
                let f
                switch (
                    (s(a) &&
                        ((e._data = h),
                        delete e.data,
                        Object.defineProperty(e, 'data', {
                            configurable: !0,
                            enumerable: !0,
                            get: function () {
                                return this._decimated
                            },
                            set: function (t) {
                                this._data = t
                            },
                        })),
                    i.algorithm)
                ) {
                    case 'lttb':
                        f = (function (t, e, i, s, n) {
                            const o = n.samples || s
                            if (o >= i) return t.slice(e, e + i)
                            const a = [],
                                r = (i - 2) / (o - 2)
                            let l = 0
                            const h = e + i - 1
                            let c,
                                d,
                                u,
                                f,
                                g,
                                p = e
                            for (a[l++] = t[p], c = 0; c < o - 2; c++) {
                                let s,
                                    n = 0,
                                    o = 0
                                const h = Math.floor((c + 1) * r) + 1 + e,
                                    m =
                                        Math.min(
                                            Math.floor((c + 2) * r) + 1,
                                            i
                                        ) + e,
                                    b = m - h
                                for (s = h; s < m; s++)
                                    (n += t[s].x), (o += t[s].y)
                                ;(n /= b), (o /= b)
                                const x = Math.floor(c * r) + 1 + e,
                                    _ =
                                        Math.min(
                                            Math.floor((c + 1) * r) + 1,
                                            i
                                        ) + e,
                                    { x: y, y: v } = t[p]
                                for (u = f = -1, s = x; s < _; s++)
                                    (f =
                                        0.5 *
                                        Math.abs(
                                            (y - n) * (t[s].y - v) -
                                                (y - t[s].x) * (o - v)
                                        )),
                                        f > u && ((u = f), (d = t[s]), (g = s))
                                ;(a[l++] = d), (p = g)
                            }
                            return (a[l++] = t[h]), a
                        })(h, d, u, n, i)
                        break
                    case 'min-max':
                        f = (function (t, e, i, n) {
                            let o,
                                a,
                                r,
                                l,
                                h,
                                c,
                                d,
                                u,
                                f,
                                g,
                                p = 0,
                                m = 0
                            const b = [],
                                x = e + i - 1,
                                _ = t[e].x,
                                y = t[x].x - _
                            for (o = e; o < e + i; ++o) {
                                ;(a = t[o]),
                                    (r = ((a.x - _) / y) * n),
                                    (l = a.y)
                                const e = 0 | r
                                if (e === h)
                                    l < f
                                        ? ((f = l), (c = o))
                                        : l > g && ((g = l), (d = o)),
                                        (p = (m * p + a.x) / ++m)
                                else {
                                    const i = o - 1
                                    if (!s(c) && !s(d)) {
                                        const e = Math.min(c, d),
                                            s = Math.max(c, d)
                                        e !== u &&
                                            e !== i &&
                                            b.push({ ...t[e], x: p }),
                                            s !== u &&
                                                s !== i &&
                                                b.push({ ...t[s], x: p })
                                    }
                                    o > 0 && i !== u && b.push(t[i]),
                                        b.push(a),
                                        (h = e),
                                        (m = 0),
                                        (f = g = l),
                                        (c = d = u = o)
                                }
                            }
                            return b
                        })(h, d, u, n)
                        break
                    default:
                        throw new Error(
                            `Unsupported decimation algorithm '${i.algorithm}'`
                        )
                }
                e._decimated = f
            })
        },
        destroy(t) {
            Zo(t)
        },
    }
    function Qo(t, e, i, s) {
        if (s) return
        let n = e[t],
            o = i[t]
        return (
            'angle' === t && ((n = G(n)), (o = G(o))),
            { property: t, start: n, end: o }
        )
    }
    function ta(t, e, i) {
        for (; e > t; e--) {
            const t = i[e]
            if (!isNaN(t.x) && !isNaN(t.y)) break
        }
        return e
    }
    function ea(t, e, i, s) {
        return t && e ? s(t[i], e[i]) : t ? t[i] : e ? e[i] : 0
    }
    function ia(t, e) {
        let i = [],
            s = !1
        return (
            n(t)
                ? ((s = !0), (i = t))
                : (i = (function (t, e) {
                      const { x: i = null, y: s = null } = t || {},
                          n = e.points,
                          o = []
                      return (
                          e.segments.forEach(({ start: t, end: e }) => {
                              e = ta(t, e, n)
                              const a = n[t],
                                  r = n[e]
                              null !== s
                                  ? (o.push({ x: a.x, y: s }),
                                    o.push({ x: r.x, y: s }))
                                  : null !== i &&
                                    (o.push({ x: i, y: a.y }),
                                    o.push({ x: i, y: r.y }))
                          }),
                          o
                      )
                  })(t, e)),
            i.length
                ? new so({
                      points: i,
                      options: { tension: 0 },
                      _loop: s,
                      _fullLoop: s,
                  })
                : null
        )
    }
    function sa(t) {
        return t && !1 !== t.fill
    }
    function na(t, e, i) {
        let s = t[e].fill
        const n = [e]
        let o
        if (!i) return s
        for (; !1 !== s && -1 === n.indexOf(s); ) {
            if (!a(s)) return s
            if (((o = t[s]), !o)) return !1
            if (o.visible) return s
            n.push(s), (s = o.fill)
        }
        return !1
    }
    function oa(t, e, i) {
        const s = (function (t) {
            const e = t.options,
                i = e.fill
            let s = l(i && i.target, i)
            void 0 === s && (s = !!e.backgroundColor)
            if (!1 === s || null === s) return !1
            if (!0 === s) return 'origin'
            return s
        })(t)
        if (o(s)) return !isNaN(s.value) && s
        let n = parseFloat(s)
        return a(n) && Math.floor(n) === n
            ? (function (t, e, i, s) {
                  ;('-' !== t && '+' !== t) || (i = e + i)
                  if (i === e || i < 0 || i >= s) return !1
                  return i
              })(s[0], e, n, i)
            : ['origin', 'start', 'end', 'stack', 'shape'].indexOf(s) >= 0 && s
    }
    function aa(t, e, i) {
        const s = []
        for (let n = 0; n < i.length; n++) {
            const o = i[n],
                { first: a, last: r, point: l } = ra(o, e, 'x')
            if (!(!l || (a && r)))
                if (a) s.unshift(l)
                else if ((t.push(l), !r)) break
        }
        t.push(...s)
    }
    function ra(t, e, i) {
        const s = t.interpolate(e, i)
        if (!s) return {}
        const n = s[i],
            o = t.segments,
            a = t.points
        let r = !1,
            l = !1
        for (let t = 0; t < o.length; t++) {
            const e = o[t],
                s = a[e.start][i],
                h = a[e.end][i]
            if (tt(n, s, h)) {
                ;(r = n === s), (l = n === h)
                break
            }
        }
        return { first: r, last: l, point: s }
    }
    class la {
        constructor(t) {
            ;(this.x = t.x), (this.y = t.y), (this.radius = t.radius)
        }
        pathSegment(t, e, i) {
            const { x: s, y: n, radius: o } = this
            return (
                (e = e || { start: 0, end: O }),
                t.arc(s, n, o, e.end, e.start, !0),
                !i.bounds
            )
        }
        interpolate(t) {
            const { x: e, y: i, radius: s } = this,
                n = t.angle
            return { x: e + Math.cos(n) * s, y: i + Math.sin(n) * s, angle: n }
        }
    }
    function ha(t) {
        const { chart: e, fill: i, line: s } = t
        if (a(i))
            return (function (t, e) {
                const i = t.getDatasetMeta(e),
                    s = i && t.isDatasetVisible(e)
                return s ? i.dataset : null
            })(e, i)
        if ('stack' === i)
            return (function (t) {
                const { scale: e, index: i, line: s } = t,
                    n = [],
                    o = s.segments,
                    a = s.points,
                    r = (function (t, e) {
                        const i = [],
                            s = t.getMatchingVisibleMetas('line')
                        for (let t = 0; t < s.length; t++) {
                            const n = s[t]
                            if (n.index === e) break
                            n.hidden || i.unshift(n.dataset)
                        }
                        return i
                    })(e, i)
                r.push(ia({ x: null, y: e.bottom }, s))
                for (let t = 0; t < o.length; t++) {
                    const e = o[t]
                    for (let t = e.start; t <= e.end; t++) aa(n, a[t], r)
                }
                return new so({ points: n, options: {} })
            })(t)
        if ('shape' === i) return !0
        const n = (function (t) {
            const e = t.scale || {}
            if (e.getPointPositionForValue)
                return (function (t) {
                    const { scale: e, fill: i } = t,
                        s = e.options,
                        n = e.getLabels().length,
                        a = s.reverse ? e.max : e.min,
                        r = (function (t, e, i) {
                            let s
                            return (
                                (s =
                                    'start' === t
                                        ? i
                                        : 'end' === t
                                          ? e.options.reverse
                                              ? e.min
                                              : e.max
                                          : o(t)
                                            ? t.value
                                            : e.getBaseValue()),
                                s
                            )
                        })(i, e, a),
                        l = []
                    if (s.grid.circular) {
                        const t = e.getPointPositionForValue(0, a)
                        return new la({
                            x: t.x,
                            y: t.y,
                            radius: e.getDistanceFromCenterForValue(r),
                        })
                    }
                    for (let t = 0; t < n; ++t)
                        l.push(e.getPointPositionForValue(t, r))
                    return l
                })(t)
            return (function (t) {
                const { scale: e = {}, fill: i } = t,
                    s = (function (t, e) {
                        let i = null
                        return (
                            'start' === t
                                ? (i = e.bottom)
                                : 'end' === t
                                  ? (i = e.top)
                                  : o(t)
                                    ? (i = e.getPixelForValue(t.value))
                                    : e.getBasePixel && (i = e.getBasePixel()),
                            i
                        )
                    })(i, e)
                if (a(s)) {
                    const t = e.isHorizontal()
                    return { x: t ? s : null, y: t ? null : s }
                }
                return null
            })(t)
        })(t)
        return n instanceof la ? n : ia(n, s)
    }
    function ca(t, e, i) {
        const s = ha(e),
            { line: n, scale: o, axis: a } = e,
            r = n.options,
            l = r.fill,
            h = r.backgroundColor,
            { above: c = h, below: d = h } = l || {}
        s &&
            n.points.length &&
            (Ie(t, i),
            (function (t, e) {
                const {
                        line: i,
                        target: s,
                        above: n,
                        below: o,
                        area: a,
                        scale: r,
                    } = e,
                    l = i._loop ? 'angle' : e.axis
                t.save(),
                    'x' === l &&
                        o !== n &&
                        (da(t, s, a.top),
                        ua(t, {
                            line: i,
                            target: s,
                            color: n,
                            scale: r,
                            property: l,
                        }),
                        t.restore(),
                        t.save(),
                        da(t, s, a.bottom))
                ua(t, { line: i, target: s, color: o, scale: r, property: l }),
                    t.restore()
            })(t, {
                line: n,
                target: s,
                above: c,
                below: d,
                area: i,
                scale: o,
                axis: a,
            }),
            ze(t))
    }
    function da(t, e, i) {
        const { segments: s, points: n } = e
        let o = !0,
            a = !1
        t.beginPath()
        for (const r of s) {
            const { start: s, end: l } = r,
                h = n[s],
                c = n[ta(s, l, n)]
            o
                ? (t.moveTo(h.x, h.y), (o = !1))
                : (t.lineTo(h.x, i), t.lineTo(h.x, h.y)),
                (a = !!e.pathSegment(t, r, { move: a })),
                a ? t.closePath() : t.lineTo(c.x, i)
        }
        t.lineTo(e.first().x, i), t.closePath(), t.clip()
    }
    function ua(t, e) {
        const { line: i, target: s, property: n, color: o, scale: a } = e,
            r = (function (t, e, i) {
                const s = t.segments,
                    n = t.points,
                    o = e.points,
                    a = []
                for (const t of s) {
                    let { start: s, end: r } = t
                    r = ta(s, r, n)
                    const l = Qo(i, n[s], n[r], t.loop)
                    if (!e.segments) {
                        a.push({ source: t, target: l, start: n[s], end: n[r] })
                        continue
                    }
                    const h = Ii(e, l)
                    for (const e of h) {
                        const s = Qo(i, o[e.start], o[e.end], e.loop),
                            r = Ri(t, n, s)
                        for (const t of r)
                            a.push({
                                source: t,
                                target: e,
                                start: { [i]: ea(l, s, 'start', Math.max) },
                                end: { [i]: ea(l, s, 'end', Math.min) },
                            })
                    }
                }
                return a
            })(i, s, n)
        for (const { source: e, target: l, start: h, end: c } of r) {
            const { style: { backgroundColor: r = o } = {} } = e,
                d = !0 !== s
            t.save(),
                (t.fillStyle = r),
                fa(t, a, d && Qo(n, h, c)),
                t.beginPath()
            const u = !!i.pathSegment(t, e)
            let f
            if (d) {
                u ? t.closePath() : ga(t, s, c, n)
                const e = !!s.pathSegment(t, l, { move: u, reverse: !0 })
                ;(f = u && e), f || ga(t, s, h, n)
            }
            t.closePath(), t.fill(f ? 'evenodd' : 'nonzero'), t.restore()
        }
    }
    function fa(t, e, i) {
        const { top: s, bottom: n } = e.chart.chartArea,
            { property: o, start: a, end: r } = i || {}
        'x' === o && (t.beginPath(), t.rect(a, s, r - a, n - s), t.clip())
    }
    function ga(t, e, i, s) {
        const n = e.interpolate(i, s)
        n && t.lineTo(n.x, n.y)
    }
    var pa = {
        id: 'filler',
        afterDatasetsUpdate(t, e, i) {
            const s = (t.data.datasets || []).length,
                n = []
            let o, a, r, l
            for (a = 0; a < s; ++a)
                (o = t.getDatasetMeta(a)),
                    (r = o.dataset),
                    (l = null),
                    r &&
                        r.options &&
                        r instanceof so &&
                        (l = {
                            visible: t.isDatasetVisible(a),
                            index: a,
                            fill: oa(r, a, s),
                            chart: t,
                            axis: o.controller.options.indexAxis,
                            scale: o.vScale,
                            line: r,
                        }),
                    (o.$filler = l),
                    n.push(l)
            for (a = 0; a < s; ++a)
                (l = n[a]),
                    l && !1 !== l.fill && (l.fill = na(n, a, i.propagate))
        },
        beforeDraw(t, e, i) {
            const s = 'beforeDraw' === i.drawTime,
                n = t.getSortedVisibleDatasetMetas(),
                o = t.chartArea
            for (let e = n.length - 1; e >= 0; --e) {
                const i = n[e].$filler
                i &&
                    (i.line.updateControlPoints(o, i.axis),
                    s && i.fill && ca(t.ctx, i, o))
            }
        },
        beforeDatasetsDraw(t, e, i) {
            if ('beforeDatasetsDraw' !== i.drawTime) return
            const s = t.getSortedVisibleDatasetMetas()
            for (let e = s.length - 1; e >= 0; --e) {
                const i = s[e].$filler
                sa(i) && ca(t.ctx, i, t.chartArea)
            }
        },
        beforeDatasetDraw(t, e, i) {
            const s = e.meta.$filler
            sa(s) &&
                'beforeDatasetDraw' === i.drawTime &&
                ca(t.ctx, s, t.chartArea)
        },
        defaults: { propagate: !0, drawTime: 'beforeDatasetDraw' },
    }
    const ma = (t, e) => {
        let { boxHeight: i = e, boxWidth: s = e } = t
        return (
            t.usePointStyle &&
                ((i = Math.min(i, e)),
                (s = t.pointStyleWidth || Math.min(s, e))),
            { boxWidth: s, boxHeight: i, itemHeight: Math.max(e, i) }
        )
    }
    class ba extends Hs {
        constructor(t) {
            super(),
                (this._added = !1),
                (this.legendHitBoxes = []),
                (this._hoveredItem = null),
                (this.doughnutMode = !1),
                (this.chart = t.chart),
                (this.options = t.options),
                (this.ctx = t.ctx),
                (this.legendItems = void 0),
                (this.columnSizes = void 0),
                (this.lineWidths = void 0),
                (this.maxHeight = void 0),
                (this.maxWidth = void 0),
                (this.top = void 0),
                (this.bottom = void 0),
                (this.left = void 0),
                (this.right = void 0),
                (this.height = void 0),
                (this.width = void 0),
                (this._margins = void 0),
                (this.position = void 0),
                (this.weight = void 0),
                (this.fullSize = void 0)
        }
        update(t, e, i) {
            ;(this.maxWidth = t),
                (this.maxHeight = e),
                (this._margins = i),
                this.setDimensions(),
                this.buildLabels(),
                this.fit()
        }
        setDimensions() {
            this.isHorizontal()
                ? ((this.width = this.maxWidth),
                  (this.left = this._margins.left),
                  (this.right = this.width))
                : ((this.height = this.maxHeight),
                  (this.top = this._margins.top),
                  (this.bottom = this.height))
        }
        buildLabels() {
            const t = this.options.labels || {}
            let e = d(t.generateLabels, [this.chart], this) || []
            t.filter && (e = e.filter((e) => t.filter(e, this.chart.data))),
                t.sort && (e = e.sort((e, i) => t.sort(e, i, this.chart.data))),
                this.options.reverse && e.reverse(),
                (this.legendItems = e)
        }
        fit() {
            const { options: t, ctx: e } = this
            if (!t.display) return void (this.width = this.height = 0)
            const i = t.labels,
                s = Si(i.font),
                n = s.size,
                o = this._computeTitleHeight(),
                { boxWidth: a, itemHeight: r } = ma(i, n)
            let l, h
            ;(e.font = s.string),
                this.isHorizontal()
                    ? ((l = this.maxWidth),
                      (h = this._fitRows(o, n, a, r) + 10))
                    : ((h = this.maxHeight),
                      (l = this._fitCols(o, s, a, r) + 10)),
                (this.width = Math.min(l, t.maxWidth || this.maxWidth)),
                (this.height = Math.min(h, t.maxHeight || this.maxHeight))
        }
        _fitRows(t, e, i, s) {
            const {
                    ctx: n,
                    maxWidth: o,
                    options: {
                        labels: { padding: a },
                    },
                } = this,
                r = (this.legendHitBoxes = []),
                l = (this.lineWidths = [0]),
                h = s + a
            let c = t
            ;(n.textAlign = 'left'), (n.textBaseline = 'middle')
            let d = -1,
                u = -h
            return (
                this.legendItems.forEach((t, f) => {
                    const g = i + e / 2 + n.measureText(t.text).width
                    ;(0 === f || l[l.length - 1] + g + 2 * a > o) &&
                        ((c += h),
                        (l[l.length - (f > 0 ? 0 : 1)] = 0),
                        (u += h),
                        d++),
                        (r[f] = {
                            left: 0,
                            top: u,
                            row: d,
                            width: g,
                            height: s,
                        }),
                        (l[l.length - 1] += g + a)
                }),
                c
            )
        }
        _fitCols(t, e, i, s) {
            const {
                    ctx: n,
                    maxHeight: o,
                    options: {
                        labels: { padding: a },
                    },
                } = this,
                r = (this.legendHitBoxes = []),
                l = (this.columnSizes = []),
                h = o - t
            let c = a,
                d = 0,
                u = 0,
                f = 0,
                g = 0
            return (
                this.legendItems.forEach((t, o) => {
                    const { itemWidth: p, itemHeight: m } = (function (
                        t,
                        e,
                        i,
                        s,
                        n
                    ) {
                        const o = (function (t, e, i, s) {
                                let n = t.text
                                n &&
                                    'string' != typeof n &&
                                    (n = n.reduce((t, e) =>
                                        t.length > e.length ? t : e
                                    ))
                                return e + i.size / 2 + s.measureText(n).width
                            })(s, t, e, i),
                            a = (function (t, e, i) {
                                let s = t
                                'string' != typeof e.text && (s = xa(e, i))
                                return s
                            })(n, s, e.lineHeight)
                        return { itemWidth: o, itemHeight: a }
                    })(i, e, n, t, s)
                    o > 0 &&
                        u + m + 2 * a > h &&
                        ((c += d + a),
                        l.push({ width: d, height: u }),
                        (f += d + a),
                        g++,
                        (d = u = 0)),
                        (r[o] = {
                            left: f,
                            top: u,
                            col: g,
                            width: p,
                            height: m,
                        }),
                        (d = Math.max(d, p)),
                        (u += m + a)
                }),
                (c += d),
                l.push({ width: d, height: u }),
                c
            )
        }
        adjustHitBoxes() {
            if (!this.options.display) return
            const t = this._computeTitleHeight(),
                {
                    legendHitBoxes: e,
                    options: {
                        align: i,
                        labels: { padding: s },
                        rtl: n,
                    },
                } = this,
                o = Oi(n, this.left, this.width)
            if (this.isHorizontal()) {
                let n = 0,
                    a = ft(i, this.left + s, this.right - this.lineWidths[n])
                for (const r of e)
                    n !== r.row &&
                        ((n = r.row),
                        (a = ft(
                            i,
                            this.left + s,
                            this.right - this.lineWidths[n]
                        ))),
                        (r.top += this.top + t + s),
                        (r.left = o.leftForLtr(o.x(a), r.width)),
                        (a += r.width + s)
            } else {
                let n = 0,
                    a = ft(
                        i,
                        this.top + t + s,
                        this.bottom - this.columnSizes[n].height
                    )
                for (const r of e)
                    r.col !== n &&
                        ((n = r.col),
                        (a = ft(
                            i,
                            this.top + t + s,
                            this.bottom - this.columnSizes[n].height
                        ))),
                        (r.top = a),
                        (r.left += this.left + s),
                        (r.left = o.leftForLtr(o.x(r.left), r.width)),
                        (a += r.height + s)
            }
        }
        isHorizontal() {
            return (
                'top' === this.options.position ||
                'bottom' === this.options.position
            )
        }
        draw() {
            if (this.options.display) {
                const t = this.ctx
                Ie(t, this), this._draw(), ze(t)
            }
        }
        _draw() {
            const { options: t, columnSizes: e, lineWidths: i, ctx: s } = this,
                { align: n, labels: o } = t,
                a = ue.color,
                r = Oi(t.rtl, this.left, this.width),
                h = Si(o.font),
                { padding: c } = o,
                d = h.size,
                u = d / 2
            let f
            this.drawTitle(),
                (s.textAlign = r.textAlign('left')),
                (s.textBaseline = 'middle'),
                (s.lineWidth = 0.5),
                (s.font = h.string)
            const { boxWidth: g, boxHeight: p, itemHeight: m } = ma(o, d),
                b = this.isHorizontal(),
                x = this._computeTitleHeight()
            ;(f = b
                ? {
                      x: ft(n, this.left + c, this.right - i[0]),
                      y: this.top + c + x,
                      line: 0,
                  }
                : {
                      x: this.left + c,
                      y: ft(n, this.top + x + c, this.bottom - e[0].height),
                      line: 0,
                  }),
                Ai(this.ctx, t.textDirection)
            const _ = m + c
            this.legendItems.forEach((y, v) => {
                ;(s.strokeStyle = y.fontColor), (s.fillStyle = y.fontColor)
                const M = s.measureText(y.text).width,
                    w = r.textAlign(y.textAlign || (y.textAlign = o.textAlign)),
                    k = g + u + M
                let S = f.x,
                    P = f.y
                r.setWidth(this.width),
                    b
                        ? v > 0 &&
                          S + k + c > this.right &&
                          ((P = f.y += _),
                          f.line++,
                          (S = f.x =
                              ft(n, this.left + c, this.right - i[f.line])))
                        : v > 0 &&
                          P + _ > this.bottom &&
                          ((S = f.x = S + e[f.line].width + c),
                          f.line++,
                          (P = f.y =
                              ft(
                                  n,
                                  this.top + x + c,
                                  this.bottom - e[f.line].height
                              )))
                if (
                    ((function (t, e, i) {
                        if (isNaN(g) || g <= 0 || isNaN(p) || p < 0) return
                        s.save()
                        const n = l(i.lineWidth, 1)
                        if (
                            ((s.fillStyle = l(i.fillStyle, a)),
                            (s.lineCap = l(i.lineCap, 'butt')),
                            (s.lineDashOffset = l(i.lineDashOffset, 0)),
                            (s.lineJoin = l(i.lineJoin, 'miter')),
                            (s.lineWidth = n),
                            (s.strokeStyle = l(i.strokeStyle, a)),
                            s.setLineDash(l(i.lineDash, [])),
                            o.usePointStyle)
                        ) {
                            const a = {
                                    radius: (p * Math.SQRT2) / 2,
                                    pointStyle: i.pointStyle,
                                    rotation: i.rotation,
                                    borderWidth: n,
                                },
                                l = r.xPlus(t, g / 2)
                            Ee(s, a, l, e + u, o.pointStyleWidth && g)
                        } else {
                            const o = e + Math.max((d - p) / 2, 0),
                                a = r.leftForLtr(t, g),
                                l = wi(i.borderRadius)
                            s.beginPath(),
                                Object.values(l).some((t) => 0 !== t)
                                    ? He(s, {
                                          x: a,
                                          y: o,
                                          w: g,
                                          h: p,
                                          radius: l,
                                      })
                                    : s.rect(a, o, g, p),
                                s.fill(),
                                0 !== n && s.stroke()
                        }
                        s.restore()
                    })(r.x(S), P, y),
                    (S = gt(w, S + g + u, b ? S + k : this.right, t.rtl)),
                    (function (t, e, i) {
                        We(s, i.text, t, e + m / 2, h, {
                            strikethrough: i.hidden,
                            textAlign: r.textAlign(i.textAlign),
                        })
                    })(r.x(S), P, y),
                    b)
                )
                    f.x += k + c
                else if ('string' != typeof y.text) {
                    const t = h.lineHeight
                    f.y += xa(y, t)
                } else f.y += _
            }),
                Ti(this.ctx, t.textDirection)
        }
        drawTitle() {
            const t = this.options,
                e = t.title,
                i = Si(e.font),
                s = ki(e.padding)
            if (!e.display) return
            const n = Oi(t.rtl, this.left, this.width),
                o = this.ctx,
                a = e.position,
                r = i.size / 2,
                l = s.top + r
            let h,
                c = this.left,
                d = this.width
            if (this.isHorizontal())
                (d = Math.max(...this.lineWidths)),
                    (h = this.top + l),
                    (c = ft(t.align, c, this.right - d))
            else {
                const e = this.columnSizes.reduce(
                    (t, e) => Math.max(t, e.height),
                    0
                )
                h =
                    l +
                    ft(
                        t.align,
                        this.top,
                        this.bottom -
                            e -
                            t.labels.padding -
                            this._computeTitleHeight()
                    )
            }
            const u = ft(a, c, c + d)
            ;(o.textAlign = n.textAlign(ut(a))),
                (o.textBaseline = 'middle'),
                (o.strokeStyle = e.color),
                (o.fillStyle = e.color),
                (o.font = i.string),
                We(o, e.text, u, h, i)
        }
        _computeTitleHeight() {
            const t = this.options.title,
                e = Si(t.font),
                i = ki(t.padding)
            return t.display ? e.lineHeight + i.height : 0
        }
        _getLegendItemAt(t, e) {
            let i, s, n
            if (tt(t, this.left, this.right) && tt(e, this.top, this.bottom))
                for (n = this.legendHitBoxes, i = 0; i < n.length; ++i)
                    if (
                        ((s = n[i]),
                        tt(t, s.left, s.left + s.width) &&
                            tt(e, s.top, s.top + s.height))
                    )
                        return this.legendItems[i]
            return null
        }
        handleEvent(t) {
            const e = this.options
            if (
                !(function (t, e) {
                    if (
                        ('mousemove' === t || 'mouseout' === t) &&
                        (e.onHover || e.onLeave)
                    )
                        return !0
                    if (e.onClick && ('click' === t || 'mouseup' === t))
                        return !0
                    return !1
                })(t.type, e)
            )
                return
            const i = this._getLegendItemAt(t.x, t.y)
            if ('mousemove' === t.type || 'mouseout' === t.type) {
                const o = this._hoveredItem,
                    a =
                        ((n = i),
                        null !== (s = o) &&
                            null !== n &&
                            s.datasetIndex === n.datasetIndex &&
                            s.index === n.index)
                o && !a && d(e.onLeave, [t, o, this], this),
                    (this._hoveredItem = i),
                    i && !a && d(e.onHover, [t, i, this], this)
            } else i && d(e.onClick, [t, i, this], this)
            var s, n
        }
    }
    function xa(t, e) {
        return e * (t.text ? t.text.length + 0.5 : 0)
    }
    var _a = {
        id: 'legend',
        _element: ba,
        start(t, e, i) {
            const s = (t.legend = new ba({ ctx: t.ctx, options: i, chart: t }))
            as.configure(t, s, i), as.addBox(t, s)
        },
        stop(t) {
            as.removeBox(t, t.legend), delete t.legend
        },
        beforeUpdate(t, e, i) {
            const s = t.legend
            as.configure(t, s, i), (s.options = i)
        },
        afterUpdate(t) {
            const e = t.legend
            e.buildLabels(), e.adjustHitBoxes()
        },
        afterEvent(t, e) {
            e.replay || t.legend.handleEvent(e.event)
        },
        defaults: {
            display: !0,
            position: 'top',
            align: 'center',
            fullSize: !0,
            reverse: !1,
            weight: 1e3,
            onClick(t, e, i) {
                const s = e.datasetIndex,
                    n = i.chart
                n.isDatasetVisible(s)
                    ? (n.hide(s), (e.hidden = !0))
                    : (n.show(s), (e.hidden = !1))
            },
            onHover: null,
            onLeave: null,
            labels: {
                color: (t) => t.chart.options.color,
                boxWidth: 40,
                padding: 10,
                generateLabels(t) {
                    const e = t.data.datasets,
                        {
                            labels: {
                                usePointStyle: i,
                                pointStyle: s,
                                textAlign: n,
                                color: o,
                                useBorderRadius: a,
                                borderRadius: r,
                            },
                        } = t.legend.options
                    return t._getSortedDatasetMetas().map((t) => {
                        const l = t.controller.getStyle(i ? 0 : void 0),
                            h = ki(l.borderWidth)
                        return {
                            text: e[t.index].label,
                            fillStyle: l.backgroundColor,
                            fontColor: o,
                            hidden: !t.visible,
                            lineCap: l.borderCapStyle,
                            lineDash: l.borderDash,
                            lineDashOffset: l.borderDashOffset,
                            lineJoin: l.borderJoinStyle,
                            lineWidth: (h.width + h.height) / 4,
                            strokeStyle: l.borderColor,
                            pointStyle: s || l.pointStyle,
                            rotation: l.rotation,
                            textAlign: n || l.textAlign,
                            borderRadius: a && (r || l.borderRadius),
                            datasetIndex: t.index,
                        }
                    }, this)
                },
            },
            title: {
                color: (t) => t.chart.options.color,
                display: !1,
                position: 'center',
                text: '',
            },
        },
        descriptors: {
            _scriptable: (t) => !t.startsWith('on'),
            labels: {
                _scriptable: (t) =>
                    !['generateLabels', 'filter', 'sort'].includes(t),
            },
        },
    }
    class ya extends Hs {
        constructor(t) {
            super(),
                (this.chart = t.chart),
                (this.options = t.options),
                (this.ctx = t.ctx),
                (this._padding = void 0),
                (this.top = void 0),
                (this.bottom = void 0),
                (this.left = void 0),
                (this.right = void 0),
                (this.width = void 0),
                (this.height = void 0),
                (this.position = void 0),
                (this.weight = void 0),
                (this.fullSize = void 0)
        }
        update(t, e) {
            const i = this.options
            if (((this.left = 0), (this.top = 0), !i.display))
                return void (this.width =
                    this.height =
                    this.right =
                    this.bottom =
                        0)
            ;(this.width = this.right = t), (this.height = this.bottom = e)
            const s = n(i.text) ? i.text.length : 1
            this._padding = ki(i.padding)
            const o = s * Si(i.font).lineHeight + this._padding.height
            this.isHorizontal() ? (this.height = o) : (this.width = o)
        }
        isHorizontal() {
            const t = this.options.position
            return 'top' === t || 'bottom' === t
        }
        _drawArgs(t) {
            const { top: e, left: i, bottom: s, right: n, options: o } = this,
                a = o.align
            let r,
                l,
                h,
                c = 0
            return (
                this.isHorizontal()
                    ? ((l = ft(a, i, n)), (h = e + t), (r = n - i))
                    : ('left' === o.position
                          ? ((l = i + t), (h = ft(a, s, e)), (c = -0.5 * C))
                          : ((l = n - t), (h = ft(a, e, s)), (c = 0.5 * C)),
                      (r = s - e)),
                { titleX: l, titleY: h, maxWidth: r, rotation: c }
            )
        }
        draw() {
            const t = this.ctx,
                e = this.options
            if (!e.display) return
            const i = Si(e.font),
                s = i.lineHeight / 2 + this._padding.top,
                {
                    titleX: n,
                    titleY: o,
                    maxWidth: a,
                    rotation: r,
                } = this._drawArgs(s)
            We(t, e.text, 0, 0, i, {
                color: e.color,
                maxWidth: a,
                rotation: r,
                textAlign: ut(e.align),
                textBaseline: 'middle',
                translation: [n, o],
            })
        }
    }
    var va = {
        id: 'title',
        _element: ya,
        start(t, e, i) {
            !(function (t, e) {
                const i = new ya({ ctx: t.ctx, options: e, chart: t })
                as.configure(t, i, e), as.addBox(t, i), (t.titleBlock = i)
            })(t, i)
        },
        stop(t) {
            const e = t.titleBlock
            as.removeBox(t, e), delete t.titleBlock
        },
        beforeUpdate(t, e, i) {
            const s = t.titleBlock
            as.configure(t, s, i), (s.options = i)
        },
        defaults: {
            align: 'center',
            display: !1,
            font: { weight: 'bold' },
            fullSize: !0,
            padding: 10,
            position: 'top',
            text: '',
            weight: 2e3,
        },
        defaultRoutes: { color: 'color' },
        descriptors: { _scriptable: !0, _indexable: !1 },
    }
    const Ma = new WeakMap()
    var wa = {
        id: 'subtitle',
        start(t, e, i) {
            const s = new ya({ ctx: t.ctx, options: i, chart: t })
            as.configure(t, s, i), as.addBox(t, s), Ma.set(t, s)
        },
        stop(t) {
            as.removeBox(t, Ma.get(t)), Ma.delete(t)
        },
        beforeUpdate(t, e, i) {
            const s = Ma.get(t)
            as.configure(t, s, i), (s.options = i)
        },
        defaults: {
            align: 'center',
            display: !1,
            font: { weight: 'normal' },
            fullSize: !0,
            padding: 0,
            position: 'top',
            text: '',
            weight: 1500,
        },
        defaultRoutes: { color: 'color' },
        descriptors: { _scriptable: !0, _indexable: !1 },
    }
    const ka = {
        average(t) {
            if (!t.length) return !1
            let e,
                i,
                s = 0,
                n = 0,
                o = 0
            for (e = 0, i = t.length; e < i; ++e) {
                const i = t[e].element
                if (i && i.hasValue()) {
                    const t = i.tooltipPosition()
                    ;(s += t.x), (n += t.y), ++o
                }
            }
            return { x: s / o, y: n / o }
        },
        nearest(t, e) {
            if (!t.length) return !1
            let i,
                s,
                n,
                o = e.x,
                a = e.y,
                r = Number.POSITIVE_INFINITY
            for (i = 0, s = t.length; i < s; ++i) {
                const s = t[i].element
                if (s && s.hasValue()) {
                    const t = q(e, s.getCenterPoint())
                    t < r && ((r = t), (n = s))
                }
            }
            if (n) {
                const t = n.tooltipPosition()
                ;(o = t.x), (a = t.y)
            }
            return { x: o, y: a }
        },
    }
    function Sa(t, e) {
        return e && (n(e) ? Array.prototype.push.apply(t, e) : t.push(e)), t
    }
    function Pa(t) {
        return ('string' == typeof t || t instanceof String) &&
            t.indexOf('\n') > -1
            ? t.split('\n')
            : t
    }
    function Da(t, e) {
        const { element: i, datasetIndex: s, index: n } = e,
            o = t.getDatasetMeta(s).controller,
            { label: a, value: r } = o.getLabelAndValue(n)
        return {
            chart: t,
            label: a,
            parsed: o.getParsed(n),
            raw: t.data.datasets[s].data[n],
            formattedValue: r,
            dataset: o.getDataset(),
            dataIndex: n,
            datasetIndex: s,
            element: i,
        }
    }
    function Ca(t, e) {
        const i = t.chart.ctx,
            { body: s, footer: n, title: o } = t,
            { boxWidth: a, boxHeight: r } = e,
            l = Si(e.bodyFont),
            h = Si(e.titleFont),
            c = Si(e.footerFont),
            d = o.length,
            f = n.length,
            g = s.length,
            p = ki(e.padding)
        let m = p.height,
            b = 0,
            x = s.reduce(
                (t, e) => t + e.before.length + e.lines.length + e.after.length,
                0
            )
        if (
            ((x += t.beforeBody.length + t.afterBody.length),
            d &&
                (m +=
                    d * h.lineHeight +
                    (d - 1) * e.titleSpacing +
                    e.titleMarginBottom),
            x)
        ) {
            m +=
                g *
                    (e.displayColors
                        ? Math.max(r, l.lineHeight)
                        : l.lineHeight) +
                (x - g) * l.lineHeight +
                (x - 1) * e.bodySpacing
        }
        f &&
            (m +=
                e.footerMarginTop +
                f * c.lineHeight +
                (f - 1) * e.footerSpacing)
        let _ = 0
        const y = function (t) {
            b = Math.max(b, i.measureText(t).width + _)
        }
        return (
            i.save(),
            (i.font = h.string),
            u(t.title, y),
            (i.font = l.string),
            u(t.beforeBody.concat(t.afterBody), y),
            (_ = e.displayColors ? a + 2 + e.boxPadding : 0),
            u(s, (t) => {
                u(t.before, y), u(t.lines, y), u(t.after, y)
            }),
            (_ = 0),
            (i.font = c.string),
            u(t.footer, y),
            i.restore(),
            (b += p.width),
            { width: b, height: m }
        )
    }
    function Oa(t, e, i, s) {
        const { x: n, width: o } = i,
            {
                width: a,
                chartArea: { left: r, right: l },
            } = t
        let h = 'center'
        return (
            'center' === s
                ? (h = n <= (r + l) / 2 ? 'left' : 'right')
                : n <= o / 2
                  ? (h = 'left')
                  : n >= a - o / 2 && (h = 'right'),
            (function (t, e, i, s) {
                const { x: n, width: o } = s,
                    a = i.caretSize + i.caretPadding
                return (
                    ('left' === t && n + o + a > e.width) ||
                    ('right' === t && n - o - a < 0) ||
                    void 0
                )
            })(h, t, e, i) && (h = 'center'),
            h
        )
    }
    function Aa(t, e, i) {
        const s =
            i.yAlign ||
            e.yAlign ||
            (function (t, e) {
                const { y: i, height: s } = e
                return i < s / 2
                    ? 'top'
                    : i > t.height - s / 2
                      ? 'bottom'
                      : 'center'
            })(t, i)
        return { xAlign: i.xAlign || e.xAlign || Oa(t, e, i, s), yAlign: s }
    }
    function Ta(t, e, i, s) {
        const { caretSize: n, caretPadding: o, cornerRadius: a } = t,
            { xAlign: r, yAlign: l } = i,
            h = n + o,
            { topLeft: c, topRight: d, bottomLeft: u, bottomRight: f } = wi(a)
        let g = (function (t, e) {
            let { x: i, width: s } = t
            return 'right' === e ? (i -= s) : 'center' === e && (i -= s / 2), i
        })(e, r)
        const p = (function (t, e, i) {
            let { y: s, height: n } = t
            return (
                'top' === e ? (s += i) : (s -= 'bottom' === e ? n + i : n / 2),
                s
            )
        })(e, l, h)
        return (
            'center' === l
                ? 'left' === r
                    ? (g += h)
                    : 'right' === r && (g -= h)
                : 'left' === r
                  ? (g -= Math.max(c, u) + n)
                  : 'right' === r && (g += Math.max(d, f) + n),
            { x: J(g, 0, s.width - e.width), y: J(p, 0, s.height - e.height) }
        )
    }
    function La(t, e, i) {
        const s = ki(i.padding)
        return 'center' === e
            ? t.x + t.width / 2
            : 'right' === e
              ? t.x + t.width - s.right
              : t.x + s.left
    }
    function Ea(t) {
        return Sa([], Pa(t))
    }
    function Ra(t, e) {
        const i =
            e && e.dataset && e.dataset.tooltip && e.dataset.tooltip.callbacks
        return i ? t.override(i) : t
    }
    const Ia = {
        beforeTitle: e,
        title(t) {
            if (t.length > 0) {
                const e = t[0],
                    i = e.chart.data.labels,
                    s = i ? i.length : 0
                if (this && this.options && 'dataset' === this.options.mode)
                    return e.dataset.label || ''
                if (e.label) return e.label
                if (s > 0 && e.dataIndex < s) return i[e.dataIndex]
            }
            return ''
        },
        afterTitle: e,
        beforeBody: e,
        beforeLabel: e,
        label(t) {
            if (this && this.options && 'dataset' === this.options.mode)
                return t.label + ': ' + t.formattedValue || t.formattedValue
            let e = t.dataset.label || ''
            e && (e += ': ')
            const i = t.formattedValue
            return s(i) || (e += i), e
        },
        labelColor(t) {
            const e = t.chart
                .getDatasetMeta(t.datasetIndex)
                .controller.getStyle(t.dataIndex)
            return {
                borderColor: e.borderColor,
                backgroundColor: e.backgroundColor,
                borderWidth: e.borderWidth,
                borderDash: e.borderDash,
                borderDashOffset: e.borderDashOffset,
                borderRadius: 0,
            }
        },
        labelTextColor() {
            return this.options.bodyColor
        },
        labelPointStyle(t) {
            const e = t.chart
                .getDatasetMeta(t.datasetIndex)
                .controller.getStyle(t.dataIndex)
            return { pointStyle: e.pointStyle, rotation: e.rotation }
        },
        afterLabel: e,
        afterBody: e,
        beforeFooter: e,
        footer: e,
        afterFooter: e,
    }
    function za(t, e, i, s) {
        const n = t[e].call(i, s)
        return void 0 === n ? Ia[e].call(i, s) : n
    }
    class Fa extends Hs {
        static positioners = ka
        constructor(t) {
            super(),
                (this.opacity = 0),
                (this._active = []),
                (this._eventPosition = void 0),
                (this._size = void 0),
                (this._cachedAnimations = void 0),
                (this._tooltipItems = []),
                (this.$animations = void 0),
                (this.$context = void 0),
                (this.chart = t.chart),
                (this.options = t.options),
                (this.dataPoints = void 0),
                (this.title = void 0),
                (this.beforeBody = void 0),
                (this.body = void 0),
                (this.afterBody = void 0),
                (this.footer = void 0),
                (this.xAlign = void 0),
                (this.yAlign = void 0),
                (this.x = void 0),
                (this.y = void 0),
                (this.height = void 0),
                (this.width = void 0),
                (this.caretX = void 0),
                (this.caretY = void 0),
                (this.labelColors = void 0),
                (this.labelPointStyles = void 0),
                (this.labelTextColors = void 0)
        }
        initialize(t) {
            ;(this.options = t),
                (this._cachedAnimations = void 0),
                (this.$context = void 0)
        }
        _resolveAnimations() {
            const t = this._cachedAnimations
            if (t) return t
            const e = this.chart,
                i = this.options.setContext(this.getContext()),
                s = i.enabled && e.options.animation && i.animations,
                n = new Os(this.chart, s)
            return (
                s._cacheable && (this._cachedAnimations = Object.freeze(n)), n
            )
        }
        getContext() {
            return (
                this.$context ||
                (this.$context =
                    ((t = this.chart.getContext()),
                    (e = this),
                    (i = this._tooltipItems),
                    Ci(t, { tooltip: e, tooltipItems: i, type: 'tooltip' })))
            )
            var t, e, i
        }
        getTitle(t, e) {
            const { callbacks: i } = e,
                s = za(i, 'beforeTitle', this, t),
                n = za(i, 'title', this, t),
                o = za(i, 'afterTitle', this, t)
            let a = []
            return (a = Sa(a, Pa(s))), (a = Sa(a, Pa(n))), (a = Sa(a, Pa(o))), a
        }
        getBeforeBody(t, e) {
            return Ea(za(e.callbacks, 'beforeBody', this, t))
        }
        getBody(t, e) {
            const { callbacks: i } = e,
                s = []
            return (
                u(t, (t) => {
                    const e = { before: [], lines: [], after: [] },
                        n = Ra(i, t)
                    Sa(e.before, Pa(za(n, 'beforeLabel', this, t))),
                        Sa(e.lines, za(n, 'label', this, t)),
                        Sa(e.after, Pa(za(n, 'afterLabel', this, t))),
                        s.push(e)
                }),
                s
            )
        }
        getAfterBody(t, e) {
            return Ea(za(e.callbacks, 'afterBody', this, t))
        }
        getFooter(t, e) {
            const { callbacks: i } = e,
                s = za(i, 'beforeFooter', this, t),
                n = za(i, 'footer', this, t),
                o = za(i, 'afterFooter', this, t)
            let a = []
            return (a = Sa(a, Pa(s))), (a = Sa(a, Pa(n))), (a = Sa(a, Pa(o))), a
        }
        _createItems(t) {
            const e = this._active,
                i = this.chart.data,
                s = [],
                n = [],
                o = []
            let a,
                r,
                l = []
            for (a = 0, r = e.length; a < r; ++a) l.push(Da(this.chart, e[a]))
            return (
                t.filter && (l = l.filter((e, s, n) => t.filter(e, s, n, i))),
                t.itemSort && (l = l.sort((e, s) => t.itemSort(e, s, i))),
                u(l, (e) => {
                    const i = Ra(t.callbacks, e)
                    s.push(za(i, 'labelColor', this, e)),
                        n.push(za(i, 'labelPointStyle', this, e)),
                        o.push(za(i, 'labelTextColor', this, e))
                }),
                (this.labelColors = s),
                (this.labelPointStyles = n),
                (this.labelTextColors = o),
                (this.dataPoints = l),
                l
            )
        }
        update(t, e) {
            const i = this.options.setContext(this.getContext()),
                s = this._active
            let n,
                o = []
            if (s.length) {
                const t = ka[i.position].call(this, s, this._eventPosition)
                ;(o = this._createItems(i)),
                    (this.title = this.getTitle(o, i)),
                    (this.beforeBody = this.getBeforeBody(o, i)),
                    (this.body = this.getBody(o, i)),
                    (this.afterBody = this.getAfterBody(o, i)),
                    (this.footer = this.getFooter(o, i))
                const e = (this._size = Ca(this, i)),
                    a = Object.assign({}, t, e),
                    r = Aa(this.chart, i, a),
                    l = Ta(i, a, r, this.chart)
                ;(this.xAlign = r.xAlign),
                    (this.yAlign = r.yAlign),
                    (n = {
                        opacity: 1,
                        x: l.x,
                        y: l.y,
                        width: e.width,
                        height: e.height,
                        caretX: t.x,
                        caretY: t.y,
                    })
            } else 0 !== this.opacity && (n = { opacity: 0 })
            ;(this._tooltipItems = o),
                (this.$context = void 0),
                n && this._resolveAnimations().update(this, n),
                t &&
                    i.external &&
                    i.external.call(this, {
                        chart: this.chart,
                        tooltip: this,
                        replay: e,
                    })
        }
        drawCaret(t, e, i, s) {
            const n = this.getCaretPosition(t, i, s)
            e.lineTo(n.x1, n.y1), e.lineTo(n.x2, n.y2), e.lineTo(n.x3, n.y3)
        }
        getCaretPosition(t, e, i) {
            const { xAlign: s, yAlign: n } = this,
                { caretSize: o, cornerRadius: a } = i,
                {
                    topLeft: r,
                    topRight: l,
                    bottomLeft: h,
                    bottomRight: c,
                } = wi(a),
                { x: d, y: u } = t,
                { width: f, height: g } = e
            let p, m, b, x, _, y
            return (
                'center' === n
                    ? ((_ = u + g / 2),
                      'left' === s
                          ? ((p = d), (m = p - o), (x = _ + o), (y = _ - o))
                          : ((p = d + f),
                            (m = p + o),
                            (x = _ - o),
                            (y = _ + o)),
                      (b = p))
                    : ((m =
                          'left' === s
                              ? d + Math.max(r, h) + o
                              : 'right' === s
                                ? d + f - Math.max(l, c) - o
                                : this.caretX),
                      'top' === n
                          ? ((x = u), (_ = x - o), (p = m - o), (b = m + o))
                          : ((x = u + g),
                            (_ = x + o),
                            (p = m + o),
                            (b = m - o)),
                      (y = x)),
                { x1: p, x2: m, x3: b, y1: x, y2: _, y3: y }
            )
        }
        drawTitle(t, e, i) {
            const s = this.title,
                n = s.length
            let o, a, r
            if (n) {
                const l = Oi(i.rtl, this.x, this.width)
                for (
                    t.x = La(this, i.titleAlign, i),
                        e.textAlign = l.textAlign(i.titleAlign),
                        e.textBaseline = 'middle',
                        o = Si(i.titleFont),
                        a = i.titleSpacing,
                        e.fillStyle = i.titleColor,
                        e.font = o.string,
                        r = 0;
                    r < n;
                    ++r
                )
                    e.fillText(s[r], l.x(t.x), t.y + o.lineHeight / 2),
                        (t.y += o.lineHeight + a),
                        r + 1 === n && (t.y += i.titleMarginBottom - a)
            }
        }
        _drawColorBox(t, e, i, s, n) {
            const a = this.labelColors[i],
                r = this.labelPointStyles[i],
                { boxHeight: l, boxWidth: h } = n,
                c = Si(n.bodyFont),
                d = La(this, 'left', n),
                u = s.x(d),
                f = l < c.lineHeight ? (c.lineHeight - l) / 2 : 0,
                g = e.y + f
            if (n.usePointStyle) {
                const e = {
                        radius: Math.min(h, l) / 2,
                        pointStyle: r.pointStyle,
                        rotation: r.rotation,
                        borderWidth: 1,
                    },
                    i = s.leftForLtr(u, h) + h / 2,
                    o = g + l / 2
                ;(t.strokeStyle = n.multiKeyBackground),
                    (t.fillStyle = n.multiKeyBackground),
                    Le(t, e, i, o),
                    (t.strokeStyle = a.borderColor),
                    (t.fillStyle = a.backgroundColor),
                    Le(t, e, i, o)
            } else {
                ;(t.lineWidth = o(a.borderWidth)
                    ? Math.max(...Object.values(a.borderWidth))
                    : a.borderWidth || 1),
                    (t.strokeStyle = a.borderColor),
                    t.setLineDash(a.borderDash || []),
                    (t.lineDashOffset = a.borderDashOffset || 0)
                const e = s.leftForLtr(u, h),
                    i = s.leftForLtr(s.xPlus(u, 1), h - 2),
                    r = wi(a.borderRadius)
                Object.values(r).some((t) => 0 !== t)
                    ? (t.beginPath(),
                      (t.fillStyle = n.multiKeyBackground),
                      He(t, { x: e, y: g, w: h, h: l, radius: r }),
                      t.fill(),
                      t.stroke(),
                      (t.fillStyle = a.backgroundColor),
                      t.beginPath(),
                      He(t, { x: i, y: g + 1, w: h - 2, h: l - 2, radius: r }),
                      t.fill())
                    : ((t.fillStyle = n.multiKeyBackground),
                      t.fillRect(e, g, h, l),
                      t.strokeRect(e, g, h, l),
                      (t.fillStyle = a.backgroundColor),
                      t.fillRect(i, g + 1, h - 2, l - 2))
            }
            t.fillStyle = this.labelTextColors[i]
        }
        drawBody(t, e, i) {
            const { body: s } = this,
                {
                    bodySpacing: n,
                    bodyAlign: o,
                    displayColors: a,
                    boxHeight: r,
                    boxWidth: l,
                    boxPadding: h,
                } = i,
                c = Si(i.bodyFont)
            let d = c.lineHeight,
                f = 0
            const g = Oi(i.rtl, this.x, this.width),
                p = function (i) {
                    e.fillText(i, g.x(t.x + f), t.y + d / 2), (t.y += d + n)
                },
                m = g.textAlign(o)
            let b, x, _, y, v, M, w
            for (
                e.textAlign = o,
                    e.textBaseline = 'middle',
                    e.font = c.string,
                    t.x = La(this, m, i),
                    e.fillStyle = i.bodyColor,
                    u(this.beforeBody, p),
                    f =
                        a && 'right' !== m
                            ? 'center' === o
                                ? l / 2 + h
                                : l + 2 + h
                            : 0,
                    y = 0,
                    M = s.length;
                y < M;
                ++y
            ) {
                for (
                    b = s[y],
                        x = this.labelTextColors[y],
                        e.fillStyle = x,
                        u(b.before, p),
                        _ = b.lines,
                        a &&
                            _.length &&
                            (this._drawColorBox(e, t, y, g, i),
                            (d = Math.max(c.lineHeight, r))),
                        v = 0,
                        w = _.length;
                    v < w;
                    ++v
                )
                    p(_[v]), (d = c.lineHeight)
                u(b.after, p)
            }
            ;(f = 0), (d = c.lineHeight), u(this.afterBody, p), (t.y -= n)
        }
        drawFooter(t, e, i) {
            const s = this.footer,
                n = s.length
            let o, a
            if (n) {
                const r = Oi(i.rtl, this.x, this.width)
                for (
                    t.x = La(this, i.footerAlign, i),
                        t.y += i.footerMarginTop,
                        e.textAlign = r.textAlign(i.footerAlign),
                        e.textBaseline = 'middle',
                        o = Si(i.footerFont),
                        e.fillStyle = i.footerColor,
                        e.font = o.string,
                        a = 0;
                    a < n;
                    ++a
                )
                    e.fillText(s[a], r.x(t.x), t.y + o.lineHeight / 2),
                        (t.y += o.lineHeight + i.footerSpacing)
            }
        }
        drawBackground(t, e, i, s) {
            const { xAlign: n, yAlign: o } = this,
                { x: a, y: r } = t,
                { width: l, height: h } = i,
                {
                    topLeft: c,
                    topRight: d,
                    bottomLeft: u,
                    bottomRight: f,
                } = wi(s.cornerRadius)
            ;(e.fillStyle = s.backgroundColor),
                (e.strokeStyle = s.borderColor),
                (e.lineWidth = s.borderWidth),
                e.beginPath(),
                e.moveTo(a + c, r),
                'top' === o && this.drawCaret(t, e, i, s),
                e.lineTo(a + l - d, r),
                e.quadraticCurveTo(a + l, r, a + l, r + d),
                'center' === o && 'right' === n && this.drawCaret(t, e, i, s),
                e.lineTo(a + l, r + h - f),
                e.quadraticCurveTo(a + l, r + h, a + l - f, r + h),
                'bottom' === o && this.drawCaret(t, e, i, s),
                e.lineTo(a + u, r + h),
                e.quadraticCurveTo(a, r + h, a, r + h - u),
                'center' === o && 'left' === n && this.drawCaret(t, e, i, s),
                e.lineTo(a, r + c),
                e.quadraticCurveTo(a, r, a + c, r),
                e.closePath(),
                e.fill(),
                s.borderWidth > 0 && e.stroke()
        }
        _updateAnimationTarget(t) {
            const e = this.chart,
                i = this.$animations,
                s = i && i.x,
                n = i && i.y
            if (s || n) {
                const i = ka[t.position].call(
                    this,
                    this._active,
                    this._eventPosition
                )
                if (!i) return
                const o = (this._size = Ca(this, t)),
                    a = Object.assign({}, i, this._size),
                    r = Aa(e, t, a),
                    l = Ta(t, a, r, e)
                ;(s._to === l.x && n._to === l.y) ||
                    ((this.xAlign = r.xAlign),
                    (this.yAlign = r.yAlign),
                    (this.width = o.width),
                    (this.height = o.height),
                    (this.caretX = i.x),
                    (this.caretY = i.y),
                    this._resolveAnimations().update(this, l))
            }
        }
        _willRender() {
            return !!this.opacity
        }
        draw(t) {
            const e = this.options.setContext(this.getContext())
            let i = this.opacity
            if (!i) return
            this._updateAnimationTarget(e)
            const s = { width: this.width, height: this.height },
                n = { x: this.x, y: this.y }
            i = Math.abs(i) < 0.001 ? 0 : i
            const o = ki(e.padding),
                a =
                    this.title.length ||
                    this.beforeBody.length ||
                    this.body.length ||
                    this.afterBody.length ||
                    this.footer.length
            e.enabled &&
                a &&
                (t.save(),
                (t.globalAlpha = i),
                this.drawBackground(n, t, s, e),
                Ai(t, e.textDirection),
                (n.y += o.top),
                this.drawTitle(n, t, e),
                this.drawBody(n, t, e),
                this.drawFooter(n, t, e),
                Ti(t, e.textDirection),
                t.restore())
        }
        getActiveElements() {
            return this._active || []
        }
        setActiveElements(t, e) {
            const i = this._active,
                s = t.map(({ datasetIndex: t, index: e }) => {
                    const i = this.chart.getDatasetMeta(t)
                    if (!i)
                        throw new Error('Cannot find a dataset at index ' + t)
                    return { datasetIndex: t, element: i.data[e], index: e }
                }),
                n = !f(i, s),
                o = this._positionChanged(s, e)
            ;(n || o) &&
                ((this._active = s),
                (this._eventPosition = e),
                (this._ignoreReplayEvents = !0),
                this.update(!0))
        }
        handleEvent(t, e, i = !0) {
            if (e && this._ignoreReplayEvents) return !1
            this._ignoreReplayEvents = !1
            const s = this.options,
                n = this._active || [],
                o = this._getActiveElements(t, n, e, i),
                a = this._positionChanged(o, t),
                r = e || !f(o, n) || a
            return (
                r &&
                    ((this._active = o),
                    (s.enabled || s.external) &&
                        ((this._eventPosition = { x: t.x, y: t.y }),
                        this.update(!0, e))),
                r
            )
        }
        _getActiveElements(t, e, i, s) {
            const n = this.options
            if ('mouseout' === t.type) return []
            if (!s) return e
            const o = this.chart.getElementsAtEventForMode(t, n.mode, n, i)
            return n.reverse && o.reverse(), o
        }
        _positionChanged(t, e) {
            const { caretX: i, caretY: s, options: n } = this,
                o = ka[n.position].call(this, t, e)
            return !1 !== o && (i !== o.x || s !== o.y)
        }
    }
    var Va = {
        id: 'tooltip',
        _element: Fa,
        positioners: ka,
        afterInit(t, e, i) {
            i && (t.tooltip = new Fa({ chart: t, options: i }))
        },
        beforeUpdate(t, e, i) {
            t.tooltip && t.tooltip.initialize(i)
        },
        reset(t, e, i) {
            t.tooltip && t.tooltip.initialize(i)
        },
        afterDraw(t) {
            const e = t.tooltip
            if (e && e._willRender()) {
                const i = { tooltip: e }
                if (
                    !1 ===
                    t.notifyPlugins('beforeTooltipDraw', {
                        ...i,
                        cancelable: !0,
                    })
                )
                    return
                e.draw(t.ctx), t.notifyPlugins('afterTooltipDraw', i)
            }
        },
        afterEvent(t, e) {
            if (t.tooltip) {
                const i = e.replay
                t.tooltip.handleEvent(e.event, i, e.inChartArea) &&
                    (e.changed = !0)
            }
        },
        defaults: {
            enabled: !0,
            external: null,
            position: 'average',
            backgroundColor: 'rgba(0,0,0,0.8)',
            titleColor: '#fff',
            titleFont: { weight: 'bold' },
            titleSpacing: 2,
            titleMarginBottom: 6,
            titleAlign: 'left',
            bodyColor: '#fff',
            bodySpacing: 2,
            bodyFont: {},
            bodyAlign: 'left',
            footerColor: '#fff',
            footerSpacing: 2,
            footerMarginTop: 6,
            footerFont: { weight: 'bold' },
            footerAlign: 'left',
            padding: 6,
            caretPadding: 2,
            caretSize: 5,
            cornerRadius: 6,
            boxHeight: (t, e) => e.bodyFont.size,
            boxWidth: (t, e) => e.bodyFont.size,
            multiKeyBackground: '#fff',
            displayColors: !0,
            boxPadding: 0,
            borderColor: 'rgba(0,0,0,0)',
            borderWidth: 0,
            animation: { duration: 400, easing: 'easeOutQuart' },
            animations: {
                numbers: {
                    type: 'number',
                    properties: [
                        'x',
                        'y',
                        'width',
                        'height',
                        'caretX',
                        'caretY',
                    ],
                },
                opacity: { easing: 'linear', duration: 200 },
            },
            callbacks: Ia,
        },
        defaultRoutes: {
            bodyFont: 'font',
            footerFont: 'font',
            titleFont: 'font',
        },
        descriptors: {
            _scriptable: (t) =>
                'filter' !== t && 'itemSort' !== t && 'external' !== t,
            _indexable: !1,
            callbacks: { _scriptable: !1, _indexable: !1 },
            animation: { _fallback: !1 },
            animations: { _fallback: 'animation' },
        },
        additionalOptionScopes: ['interaction'],
    }
    return (
        On.register($n, Ho, uo, t),
        (On.helpers = { ...Ni }),
        (On._adapters = En),
        (On.Animation = Cs),
        (On.Animations = Os),
        (On.animator = xt),
        (On.controllers = en.controllers.items),
        (On.DatasetController = Ws),
        (On.Element = Hs),
        (On.elements = uo),
        (On.Interaction = Xi),
        (On.layouts = as),
        (On.platforms = Ss),
        (On.Scale = Js),
        (On.Ticks = ae),
        Object.assign(On, $n, Ho, uo, t, Ss),
        (On.Chart = On),
        'undefined' != typeof window && (window.Chart = On),
        On
    )
})
//# sourceMappingURL=chart.umd.js.map


/**
 * Simple Toast Notification Plugin
 * Usage:
 *   window.Toast.show('Message here', {type: 'success', duration: 3000});
 *   Types: info (default), success, error, warning
 */
;(function (global) {
    // Inject styles for toast notifications
    function injectToastStyles() {
        if (document.getElementById('wbk-toast-styles')) return
        var style = document.createElement('style')
        style.type = 'text/css'
        style.id = 'wbk-toast-styles'
        style.innerHTML = `
#wbk-toast-container {
    position: fixed;
    z-index: 2147483647;
    right: 24px;
    top: 32px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
    pointer-events: none;
}
.wbk-toast {
    min-width: 220px;
    max-width: 320px;
    box-sizing: border-box;
    background: #323232;
    color: #fff;
    font-family: inherit;
    font-size: 15px;
    padding: 14px 20px;
    border-radius: 7px;
    box-shadow: 0 2px 12px rgba(20,20,20,0.12), 0 1.5px 7px rgba(0,0,0,0.08);
    margin: 0;
    opacity: 0;
    transform: translateY(-20px) scale(0.98);
    transition: opacity .23s, transform .23s;
    display: flex;
    align-items: center;
    pointer-events: auto;
}
.wbk-toast.wbk-toast--show {
    opacity: 1;
    transform: translateY(0) scale(1);
}
.wbk-toast--success {
    background: #2ecc40;
    color: #fff;
}
.wbk-toast--error {
    background: #f44336;
    color: #fff;
}
.wbk-toast--warning {
    background: #f7b731;
    color: #363636;
}
.wbk-toast--info {
    background: #4069e5;
    color: #fff;
}
.wbk-toast__close {
    margin-left: 18px;
    outline: none;
    border: none;
    background: none;
    color: inherit;
    cursor: pointer;
    font-weight: bold;
    font-size: 17px;
    line-height: 1;
    display: inline-block;
    padding: 0 6px;
    border-radius: 3px;
    transition: background .15s;
}
.wbk-toast__close:hover {
    background: rgba(255,255,255,0.1);
}
        `
        document.head.appendChild(style)
    }

    // Toast container
    function getToastContainer() {
        var el = document.getElementById('wbk-toast-container')
        if (!el) {
            el = document.createElement('div')
            el.setAttribute('id', 'wbk-toast-container')
            document.body.appendChild(el)
        }
        return el
    }

    // Toast close handler
    function closeToast(toast, timer) {
        if (toast.classList.contains('wbk-toast--show')) {
            toast.classList.remove('wbk-toast--show')
            setTimeout(function () {
                if (toast.parentNode) toast.parentNode.removeChild(toast)
            }, 200)
        }
        if (timer) {
            clearTimeout(timer)
        }
    }

    var Toast = {
        /**
         * Show a toast notification
         * @param {string} message
         * @param {object} [opts] {type, duration}
         */
        show: function (message, opts) {
            injectToastStyles()
            opts = opts || {}
            var type = opts.type || 'info' // info, success, error, warning
            var duration = typeof opts.duration === 'number' ? opts.duration : 3000

            var toast = document.createElement('div')
            toast.className = 'wbk-toast wbk-toast--' + type

            // Close button
            var closeBtn = document.createElement('button')
            closeBtn.className = 'wbk-toast__close'
            closeBtn.innerHTML = '×'
            closeBtn.setAttribute('aria-label', 'Close notification')

            // Message
            var msgSpan = document.createElement('span')
            msgSpan.innerHTML = message

            toast.appendChild(msgSpan)
            toast.appendChild(closeBtn)

            var container = getToastContainer()
            container.appendChild(toast)

            // Animate in
            setTimeout(function () {
                toast.classList.add('wbk-toast--show')
            }, 10)

            // Timeout to auto-remove (unless 0)
            var timer = null
            if (duration > 0) {
                timer = setTimeout(function () {
                    closeToast(toast)
                }, duration)
            }

            // Close on button click
            closeBtn.addEventListener('click', function (event) {
                event.stopPropagation()
                closeToast(toast, timer)
            })

            // Optional: click toast to close
            toast.addEventListener('click', function (event) {
                if (event.target === toast) {
                    closeToast(toast, timer)
                }
            })
        }
    }

    // Expose as global
    global.Toast = Toast
})(window)

