// source --> https://www.lri-laradiodelinsertion.fr/wp-content/plugins/sonaar-music-pro/public/js/sonaar-music-pro-public.js 
IRON = window.IRON || {};

(function( $ ) {
	'use strict';

})( jQuery );
// source --> https://www.lri-laradiodelinsertion.fr/wp-content/plugins/sonaar-music-pro/public/js/list.min.js 
var List; List = function () { var t = { "./src/add-async.js": function (t) { t.exports = function (t) { return function e(r, n, s) { var i = r.splice(0, 50); s = (s = s || []).concat(t.add(i)), r.length > 0 ? setTimeout((function () { e(r, n, s) }), 1) : (t.update(), n(s)) } } }, "./src/filter.js": function (t) { t.exports = function (t) { return t.handlers.filterStart = t.handlers.filterStart || [], t.handlers.filterComplete = t.handlers.filterComplete || [], function (e) { if (t.trigger("filterStart"), t.i = 1, t.reset.filter(), void 0 === e) t.filtered = !1; else { t.filtered = !0; for (var r = t.items, n = 0, s = r.length; n < s; n++) { var i = r[n]; e(i) ? i.filtered = !0 : i.filtered = !1 } } return t.update(), t.trigger("filterComplete"), t.visibleItems } } }, "./src/fuzzy-search.js": function (t, e, r) { r("./src/utils/classes.js"); var n = r("./src/utils/events.js"), s = r("./src/utils/extend.js"), i = r("./src/utils/to-string.js"), a = r("./src/utils/get-by-class.js"), o = r("./src/utils/fuzzy.js"); t.exports = function (t, e) { e = s({ location: 0, distance: 100, threshold: .4, multiSearch: !0, searchClass: "fuzzy-search" }, e = e || {}); var r = { search: function (n, s) { for (var i = e.multiSearch ? n.replace(/ +$/, "").split(/ +/) : [n], a = 0, o = t.items.length; a < o; a++)r.item(t.items[a], s, i) }, item: function (t, e, n) { for (var s = !0, i = 0; i < n.length; i++) { for (var a = !1, o = 0, l = e.length; o < l; o++)r.values(t.values(), e[o], n[i]) && (a = !0); a || (s = !1) } t.found = s }, values: function (t, r, n) { if (t.hasOwnProperty(r)) { var s = i(t[r]).toLowerCase(); if (o(s, n, e)) return !0 } return !1 } }; return n.bind(a(t.listContainer, e.searchClass), "keyup", t.utils.events.debounce((function (e) { var n = e.target || e.srcElement; t.search(n.value, r.search) }), t.searchDelay)), function (e, n) { t.search(e, n, r.search) } } }, "./src/index.js": function (t, e, r) { var n = r("./node_modules/string-natural-compare/natural-compare.js"), s = r("./src/utils/get-by-class.js"), i = r("./src/utils/extend.js"), a = r("./src/utils/index-of.js"), o = r("./src/utils/events.js"), l = r("./src/utils/to-string.js"), u = r("./src/utils/classes.js"), c = r("./src/utils/get-attribute.js"), f = r("./src/utils/to-array.js"); t.exports = function (t, e, h) { var d, v = this, g = r("./src/item.js")(v), m = r("./src/add-async.js")(v), p = r("./src/pagination.js")(v); d = { start: function () { v.listClass = "list", v.searchClass = "search", v.sortClass = "sort", v.page = 1e4, v.i = 1, v.items = [], v.visibleItems = [], v.matchingItems = [], v.searched = !1, v.filtered = !1, v.searchColumns = void 0, v.searchDelay = 0, v.handlers = { updated: [] }, v.valueNames = [], v.utils = { getByClass: s, extend: i, indexOf: a, events: o, toString: l, naturalSort: n, classes: u, getAttribute: c, toArray: f }, v.utils.extend(v, e), v.listContainer = "string" == typeof t ? document.getElementById(t) : t, v.listContainer && (v.list = s(v.listContainer, v.listClass, !0), v.parse = r("./src/parse.js")(v), v.templater = r("./src/templater.js")(v), v.search = r("./src/search.js")(v), v.filter = r("./src/filter.js")(v), v.sort = r("./src/sort.js")(v), v.fuzzySearch = r("./src/fuzzy-search.js")(v, e.fuzzySearch), this.handlers(), this.items(), this.pagination(), v.update()) }, handlers: function () { for (var t in v.handlers) v[t] && v.handlers.hasOwnProperty(t) && v.on(t, v[t]) }, items: function () { v.parse(v.list), void 0 !== h && v.add(h) }, pagination: function () { if (void 0 !== e.pagination) { !0 === e.pagination && (e.pagination = [{}]), void 0 === e.pagination[0] && (e.pagination = [e.pagination]); for (var t = 0, r = e.pagination.length; t < r; t++)p(e.pagination[t]) } } }, this.reIndex = function () { v.items = [], v.visibleItems = [], v.matchingItems = [], v.searched = !1, v.filtered = !1, v.parse(v.list) }, this.toJSON = function () { for (var t = [], e = 0, r = v.items.length; e < r; e++)t.push(v.items[e].values()); return t }, this.add = function (t, e) { if (0 !== t.length) { if (!e) { var r = [], n = !1; void 0 === t[0] && (t = [t]); for (var s = 0, i = t.length; s < i; s++) { var a; n = v.items.length > v.page, a = new g(t[s], void 0, n), v.items.push(a), r.push(a) } return v.update(), r } m(t.slice(0), e) } }, this.show = function (t, e) { return this.i = t, this.page = e, v.update(), v }, this.remove = function (t, e, r) { for (var n = 0, s = 0, i = v.items.length; s < i; s++)v.items[s].values()[t] == e && (v.templater.remove(v.items[s], r), v.items.splice(s, 1), i--, s--, n++); return v.update(), n }, this.get = function (t, e) { for (var r = [], n = 0, s = v.items.length; n < s; n++) { var i = v.items[n]; i.values()[t] == e && r.push(i) } return r }, this.size = function () { return v.items.length }, this.clear = function () { return v.templater.clear(), v.items = [], v }, this.on = function (t, e) { return v.handlers[t].push(e), v }, this.off = function (t, e) { var r = v.handlers[t], n = a(r, e); return n > -1 && r.splice(n, 1), v }, this.trigger = function (t) { for (var e = v.handlers[t].length; e--;)v.handlers[t][e](v); return v }, this.reset = { filter: function () { for (var t = v.items, e = t.length; e--;)t[e].filtered = !1; return v }, search: function () { for (var t = v.items, e = t.length; e--;)t[e].found = !1; return v } }, this.update = function () { var t = v.items, e = t.length; v.visibleItems = [], v.matchingItems = [], v.templater.clear(); for (var r = 0; r < e; r++)t[r].matching() && v.matchingItems.length + 1 >= v.i && v.visibleItems.length < v.page ? (t[r].show(), v.visibleItems.push(t[r]), v.matchingItems.push(t[r])) : t[r].matching() ? (v.matchingItems.push(t[r]), t[r].hide()) : t[r].hide(); return v.trigger("updated"), v }, d.start() } }, "./src/item.js": function (t) { t.exports = function (t) { return function (e, r, n) { var s = this; this._values = {}, this.found = !1, this.filtered = !1; this.values = function (e, r) { if (void 0 === e) return s._values; for (var n in e) s._values[n] = e[n]; !0 !== r && t.templater.set(s, s.values()) }, this.show = function () { t.templater.show(s) }, this.hide = function () { t.templater.hide(s) }, this.matching = function () { return t.filtered && t.searched && s.found && s.filtered || t.filtered && !t.searched && s.filtered || !t.filtered && t.searched && s.found || !t.filtered && !t.searched }, this.visible = function () { return !(!s.elm || s.elm.parentNode != t.list) }, function (e, r, n) { if (void 0 === r) n ? s.values(e, n) : s.values(e); else { s.elm = r; var i = t.templater.get(s, e); s.values(i) } }(e, r, n) } } }, "./src/pagination.js": function (t, e, r) { var n = r("./src/utils/classes.js"), s = r("./src/utils/events.js"), i = r("./src/index.js"); t.exports = function (t) { var e = !1, r = function (r, s) { if (t.page < 1) return t.listContainer.style.display = "none", void (e = !0); e && (t.listContainer.style.display = "block"); var i, o = t.matchingItems.length, l = t.i, u = t.page, c = Math.ceil(o / u), f = Math.ceil(l / u), h = s.innerWindow || 2, d = s.left || s.outerWindow || 0, v = s.right || s.outerWindow || 0; v = c - v, r.clear(); for (var g = 1; g <= c; g++) { var m = f === g ? "active" : ""; a.number(g, d, v, f, h) ? (i = r.add({ page: g, dotted: !1 })[0], m && n(i.elm).add(m), i.elm.firstChild.setAttribute("data-i", g), i.elm.firstChild.setAttribute("data-page", u)) : a.dotted(r, g, d, v, f, h, r.size()) && (i = r.add({ page: "...", dotted: !0 })[0], n(i.elm).add("disabled")) } }, a = { number: function (t, e, r, n, s) { return this.left(t, e) || this.right(t, r) || this.innerWindow(t, n, s) }, left: function (t, e) { return t <= e }, right: function (t, e) { return t > e }, innerWindow: function (t, e, r) { return t >= e - r && t <= e + r }, dotted: function (t, e, r, n, s, i, a) { return this.dottedLeft(t, e, r, n, s, i) || this.dottedRight(t, e, r, n, s, i, a) }, dottedLeft: function (t, e, r, n, s, i) { return e == r + 1 && !this.innerWindow(e, s, i) && !this.right(e, n) }, dottedRight: function (t, e, r, n, s, i, a) { return !t.items[a - 1].values().dotted && (e == n && !this.innerWindow(e, s, i) && !this.right(e, n)) } }; return function (e) { var n = new i(t.listContainer.id, { listClass: e.paginationClass || "pagination", item: e.item || "<li><a class='page' href='#'></a></li>", valueNames: ["page", "dotted"], searchClass: "pagination-search-that-is-not-supposed-to-exist", sortClass: "pagination-sort-that-is-not-supposed-to-exist" }); s.bind(n.listContainer, "click", (function (e) { var r = e.target || e.srcElement, n = t.utils.getAttribute(r, "data-page"), s = t.utils.getAttribute(r, "data-i"); s && t.show((s - 1) * n + 1, n) })), t.on("updated", (function () { r(n, e) })), r(n, e) } } }, "./src/parse.js": function (t, e, r) { t.exports = function (t) { var e = r("./src/item.js")(t), n = function (r, n) { for (var s = 0, i = r.length; s < i; s++)t.items.push(new e(n, r[s])) }, s = function e(r, s) { var i = r.splice(0, 50); n(i, s), r.length > 0 ? setTimeout((function () { e(r, s) }), 1) : (t.update(), t.trigger("parseComplete")) }; return t.handlers.parseComplete = t.handlers.parseComplete || [], function () { var e = function (t) { for (var e = t.childNodes, r = [], n = 0, s = e.length; n < s; n++)void 0 === e[n].data && r.push(e[n]); return r }(t.list), r = t.valueNames; t.indexAsync ? s(e, r) : n(e, r) } } }, "./src/search.js": function (t) { t.exports = function (t) { var e, r, n, s = { resetList: function () { t.i = 1, t.templater.clear(), n = void 0 }, setOptions: function (t) { 2 == t.length && t[1] instanceof Array ? e = t[1] : 2 == t.length && "function" == typeof t[1] ? (e = void 0, n = t[1]) : 3 == t.length ? (e = t[1], n = t[2]) : e = void 0 }, setColumns: function () { 0 !== t.items.length && void 0 === e && (e = void 0 === t.searchColumns ? s.toArray(t.items[0].values()) : t.searchColumns) }, setSearchString: function (e) { e = (e = t.utils.toString(e).toLowerCase()).replace(/[-[\]{}()*+?.,\\^$|#]/g, "\\$&"), r = e }, toArray: function (t) { var e = []; for (var r in t) e.push(r); return e } }, i = function () { for (var n, s = [], i = r; null !== (n = i.match(/"([^"]+)"/));)s.push(n[1]), i = i.substring(0, n.index) + i.substring(n.index + n[0].length); (i = i.trim()).length && (s = s.concat(i.split(/\s+/))); for (var a = 0, o = t.items.length; a < o; a++) { var l = t.items[a]; if (l.found = !1, s.length) { for (var u = 0, c = s.length; u < c; u++) { for (var f = !1, h = 0, d = e.length; h < d; h++) { var v = l.values(), g = e[h]; if (v.hasOwnProperty(g) && void 0 !== v[g] && null !== v[g]) if (-1 !== ("string" != typeof v[g] ? v[g].toString() : v[g]).toLowerCase().indexOf(s[u])) { f = !0; break } } if (!f) break } l.found = f } } }, a = function () { t.reset.search(), t.searched = !1 }, o = function (o) { return t.trigger("searchStart"), s.resetList(), s.setSearchString(o), s.setOptions(arguments), s.setColumns(), "" === r ? a() : (t.searched = !0, n ? n(r, e) : i()), t.update(), t.trigger("searchComplete"), t.visibleItems }; return t.handlers.searchStart = t.handlers.searchStart || [], t.handlers.searchComplete = t.handlers.searchComplete || [], t.utils.events.bind(t.utils.getByClass(t.listContainer, t.searchClass), "keyup", t.utils.events.debounce((function (e) { var r = e.target || e.srcElement; "" === r.value && !t.searched || o(r.value) }), t.searchDelay)), t.utils.events.bind(t.utils.getByClass(t.listContainer, t.searchClass), "input", (function (t) { "" === (t.target || t.srcElement).value && o("") })), o } }, "./src/sort.js": function (t) { t.exports = function (t) { var e = { els: void 0, clear: function () { for (var r = 0, n = e.els.length; r < n; r++)t.utils.classes(e.els[r]).remove("asc"), t.utils.classes(e.els[r]).remove("desc") }, getOrder: function (e) { var r = t.utils.getAttribute(e, "data-order"); return "asc" == r || "desc" == r ? r : t.utils.classes(e).has("desc") ? "asc" : t.utils.classes(e).has("asc") ? "desc" : "asc" }, getInSensitive: function (e, r) { var n = t.utils.getAttribute(e, "data-insensitive"); r.insensitive = "false" !== n }, setOrder: function (r) { for (var n = 0, s = e.els.length; n < s; n++) { var i = e.els[n]; if (t.utils.getAttribute(i, "data-sort") === r.valueName) { var a = t.utils.getAttribute(i, "data-order"); "asc" == a || "desc" == a ? a == r.order && t.utils.classes(i).add(r.order) : t.utils.classes(i).add(r.order) } } } }, r = function () { t.trigger("sortStart"); var r = {}, n = arguments[0].currentTarget || arguments[0].srcElement || void 0; n ? (r.valueName = t.utils.getAttribute(n, "data-sort"), e.getInSensitive(n, r), r.order = e.getOrder(n)) : ((r = arguments[1] || r).valueName = arguments[0], r.order = r.order || "asc", r.insensitive = void 0 === r.insensitive || r.insensitive), e.clear(), e.setOrder(r); var s, i = r.sortFunction || t.sortFunction || null, a = "desc" === r.order ? -1 : 1; s = i ? function (t, e) { return i(t, e, r) * a } : function (e, n) { var s = t.utils.naturalSort; return s.alphabet = t.alphabet || r.alphabet || void 0, !s.alphabet && r.insensitive && (s = t.utils.naturalSort.caseInsensitive), s(e.values()[r.valueName], n.values()[r.valueName]) * a }, t.items.sort(s), t.update(), t.trigger("sortComplete") }; return t.handlers.sortStart = t.handlers.sortStart || [], t.handlers.sortComplete = t.handlers.sortComplete || [], e.els = t.utils.getByClass(t.listContainer, t.sortClass), t.utils.events.bind(e.els, "click", r), t.on("searchStart", e.clear), t.on("filterStart", e.clear), r } }, "./src/templater.js": function (t) { var e = function (t) { var e, r = this, n = function (e, r) { var n = e.cloneNode(!0); n.removeAttribute("id"); for (var s = 0, i = r.length; s < i; s++) { var a = void 0, o = r[s]; if (o.data) for (var l = 0, u = o.data.length; l < u; l++)n.setAttribute("data-" + o.data[l], ""); else o.attr && o.name ? (a = t.utils.getByClass(n, o.name, !0)) && a.setAttribute(o.attr, "") : (a = t.utils.getByClass(n, o, !0)) && (a.innerHTML = "") } return n }, s = function () { for (var e = t.list.childNodes, r = 0, n = e.length; r < n; r++)if (void 0 === e[r].data) return e[r].cloneNode(!0) }, i = function (t) { if ("string" == typeof t) { if (/<tr[\s>]/g.exec(t)) { var e = document.createElement("tbody"); return e.innerHTML = t, e.firstElementChild } if (-1 !== t.indexOf("<")) { var r = document.createElement("div"); return r.innerHTML = t, r.firstElementChild } } }, a = function (e, r, n) { var s = void 0, i = function (e) { for (var r = 0, n = t.valueNames.length; r < n; r++) { var s = t.valueNames[r]; if (s.data) { for (var i = s.data, a = 0, o = i.length; a < o; a++)if (i[a] === e) return { data: e } } else { if (s.attr && s.name && s.name == e) return s; if (s === e) return e } } }(r); i && (i.data ? e.elm.setAttribute("data-" + i.data, n) : i.attr && i.name ? (s = t.utils.getByClass(e.elm, i.name, !0)) && s.setAttribute(i.attr, n) : (s = t.utils.getByClass(e.elm, i, !0)) && (s.innerHTML = n)) }; this.get = function (e, n) { r.create(e); for (var s = {}, i = 0, a = n.length; i < a; i++) { var o = void 0, l = n[i]; if (l.data) for (var u = 0, c = l.data.length; u < c; u++)s[l.data[u]] = t.utils.getAttribute(e.elm, "data-" + l.data[u]); else l.attr && l.name ? (o = t.utils.getByClass(e.elm, l.name, !0), s[l.name] = o ? t.utils.getAttribute(o, l.attr) : "") : (o = t.utils.getByClass(e.elm, l, !0), s[l] = o ? o.innerHTML : "") } return s }, this.set = function (t, e) { if (!r.create(t)) for (var n in e) e.hasOwnProperty(n) && a(t, n, e[n]) }, this.create = function (t) { return void 0 === t.elm && (t.elm = e(t.values()), r.set(t, t.values()), !0) }, this.remove = function (e) { e.elm.parentNode === t.list && t.list.removeChild(e.elm) }, this.show = function (e) { r.create(e), t.list.appendChild(e.elm) }, this.hide = function (e) { void 0 !== e.elm && e.elm.parentNode === t.list && t.list.removeChild(e.elm) }, this.clear = function () { if (t.list.hasChildNodes()) for (; t.list.childNodes.length >= 1;)t.list.removeChild(t.list.firstChild) }, function () { var r; if ("function" != typeof t.item) { if (!(r = "string" == typeof t.item ? -1 === t.item.indexOf("<") ? document.getElementById(t.item) : i(t.item) : s())) throw new Error("The list needs to have at least one item on init otherwise you'll have to add a template."); r = n(r, t.valueNames), e = function () { return r.cloneNode(!0) } } else e = function (e) { var r = t.item(e); return i(r) } }() }; t.exports = function (t) { return new e(t) } }, "./src/utils/classes.js": function (t, e, r) { var n = r("./src/utils/index-of.js"), s = /\s+/; Object.prototype.toString; function i(t) { if (!t || !t.nodeType) throw new Error("A DOM element reference is required"); this.el = t, this.list = t.classList } t.exports = function (t) { return new i(t) }, i.prototype.add = function (t) { if (this.list) return this.list.add(t), this; var e = this.array(); return ~n(e, t) || e.push(t), this.el.className = e.join(" "), this }, i.prototype.remove = function (t) { if (this.list) return this.list.remove(t), this; var e = this.array(), r = n(e, t); return ~r && e.splice(r, 1), this.el.className = e.join(" "), this }, i.prototype.toggle = function (t, e) { return this.list ? (void 0 !== e ? e !== this.list.toggle(t, e) && this.list.toggle(t) : this.list.toggle(t), this) : (void 0 !== e ? e ? this.add(t) : this.remove(t) : this.has(t) ? this.remove(t) : this.add(t), this) }, i.prototype.array = function () { var t = (this.el.getAttribute("class") || "").replace(/^\s+|\s+$/g, "").split(s); return "" === t[0] && t.shift(), t }, i.prototype.has = i.prototype.contains = function (t) { return this.list ? this.list.contains(t) : !!~n(this.array(), t) } }, "./src/utils/events.js": function (t, e, r) { var n = window.addEventListener ? "addEventListener" : "attachEvent", s = window.removeEventListener ? "removeEventListener" : "detachEvent", i = "addEventListener" !== n ? "on" : "", a = r("./src/utils/to-array.js"); e.bind = function (t, e, r, s) { for (var o = 0, l = (t = a(t)).length; o < l; o++)t[o][n](i + e, r, s || !1) }, e.unbind = function (t, e, r, n) { for (var o = 0, l = (t = a(t)).length; o < l; o++)t[o][s](i + e, r, n || !1) }, e.debounce = function (t, e, r) { var n; return e ? function () { var s = this, i = arguments, a = function () { n = null, r || t.apply(s, i) }, o = r && !n; clearTimeout(n), n = setTimeout(a, e), o && t.apply(s, i) } : t } }, "./src/utils/extend.js": function (t) { t.exports = function (t) { for (var e, r = Array.prototype.slice.call(arguments, 1), n = 0; e = r[n]; n++)if (e) for (var s in e) t[s] = e[s]; return t } }, "./src/utils/fuzzy.js": function (t) { t.exports = function (t, e, r) { var n = r.location || 0, s = r.distance || 100, i = r.threshold || .4; if (e === t) return !0; if (e.length > 32) return !1; var a = n, o = function () { var t, r = {}; for (t = 0; t < e.length; t++)r[e.charAt(t)] = 0; for (t = 0; t < e.length; t++)r[e.charAt(t)] |= 1 << e.length - t - 1; return r }(); function l(t, r) { var n = t / e.length, i = Math.abs(a - r); return s ? n + i / s : i ? 1 : n } var u = i, c = t.indexOf(e, a); -1 != c && (u = Math.min(l(0, c), u), -1 != (c = t.lastIndexOf(e, a + e.length)) && (u = Math.min(l(0, c), u))); var f, h, d = 1 << e.length - 1; c = -1; for (var v, g = e.length + t.length, m = 0; m < e.length; m++) { for (f = 0, h = g; f < h;)l(m, a + h) <= u ? f = h : g = h, h = Math.floor((g - f) / 2 + f); g = h; var p = Math.max(1, a - h + 1), y = Math.min(a + h, t.length) + e.length, C = Array(y + 2); C[y + 1] = (1 << m) - 1; for (var b = y; b >= p; b--) { var j = o[t.charAt(b - 1)]; if (C[b] = 0 === m ? (C[b + 1] << 1 | 1) & j : (C[b + 1] << 1 | 1) & j | (v[b + 1] | v[b]) << 1 | 1 | v[b + 1], C[b] & d) { var x = l(m, b - 1); if (x <= u) { if (u = x, !((c = b - 1) > a)) break; p = Math.max(1, 2 * a - c) } } } if (l(m + 1, a) > u) break; v = C } return !(c < 0) } }, "./src/utils/get-attribute.js": function (t) { t.exports = function (t, e) { var r = t.getAttribute && t.getAttribute(e) || null; if (!r) for (var n = t.attributes, s = n.length, i = 0; i < s; i++)void 0 !== n[i] && n[i].nodeName === e && (r = n[i].nodeValue); return r } }, "./src/utils/get-by-class.js": function (t) { t.exports = function (t, e, r, n) { return (n = n || {}).test && n.getElementsByClassName || !n.test && document.getElementsByClassName ? function (t, e, r) { return r ? t.getElementsByClassName(e)[0] : t.getElementsByClassName(e) }(t, e, r) : n.test && n.querySelector || !n.test && document.querySelector ? function (t, e, r) { return e = "." + e, r ? t.querySelector(e) : t.querySelectorAll(e) }(t, e, r) : function (t, e, r) { for (var n = [], s = t.getElementsByTagName("*"), i = s.length, a = new RegExp("(^|\\s)" + e + "(\\s|$)"), o = 0, l = 0; o < i; o++)if (a.test(s[o].className)) { if (r) return s[o]; n[l] = s[o], l++ } return n }(t, e, r) } }, "./src/utils/index-of.js": function (t) { var e = [].indexOf; t.exports = function (t, r) { if (e) return t.indexOf(r); for (var n = 0, s = t.length; n < s; ++n)if (t[n] === r) return n; return -1 } }, "./src/utils/to-array.js": function (t) { t.exports = function (t) { if (void 0 === t) return []; if (null === t) return [null]; if (t === window) return [window]; if ("string" == typeof t) return [t]; if (function (t) { return "[object Array]" === Object.prototype.toString.call(t) }(t)) return t; if ("number" != typeof t.length) return [t]; if ("function" == typeof t && t instanceof Function) return [t]; for (var e = [], r = 0, n = t.length; r < n; r++)(Object.prototype.hasOwnProperty.call(t, r) || r in t) && e.push(t[r]); return e.length ? e : [] } }, "./src/utils/to-string.js": function (t) { t.exports = function (t) { return t = (t = null === (t = void 0 === t ? "" : t) ? "" : t).toString() } }, "./node_modules/string-natural-compare/natural-compare.js": function (t) { "use strict"; var e, r, n = 0; function s(t) { return t >= 48 && t <= 57 } function i(t, e) { for (var i = (t += "").length, a = (e += "").length, o = 0, l = 0; o < i && l < a;) { var u = t.charCodeAt(o), c = e.charCodeAt(l); if (s(u)) { if (!s(c)) return u - c; for (var f = o, h = l; 48 === u && ++f < i;)u = t.charCodeAt(f); for (; 48 === c && ++h < a;)c = e.charCodeAt(h); for (var d = f, v = h; d < i && s(t.charCodeAt(d));)++d; for (; v < a && s(e.charCodeAt(v));)++v; var g = d - f - v + h; if (g) return g; for (; f < d;)if (g = t.charCodeAt(f++) - e.charCodeAt(h++)) return g; o = d, l = v } else { if (u !== c) return u < n && c < n && -1 !== r[u] && -1 !== r[c] ? r[u] - r[c] : u - c; ++o, ++l } } return o >= i && l < a && i >= a ? -1 : l >= a && o < i && a >= i ? 1 : i - a } i.caseInsensitive = i.i = function (t, e) { return i(("" + t).toLowerCase(), ("" + e).toLowerCase()) }, Object.defineProperties(i, { alphabet: { get: function () { return e }, set: function (t) { r = []; var s = 0; if (e = t) for (; s < e.length; s++)r[e.charCodeAt(s)] = s; for (n = r.length, s = 0; s < n; s++)void 0 === r[s] && (r[s] = -1) } } }), t.exports = i } }, e = {}; return function r(n) { if (e[n]) return e[n].exports; var s = e[n] = { exports: {} }; return t[n](s, s.exports, r), s.exports }("./src/index.js") }();
// source --> https://www.lri-laradiodelinsertion.fr/wp-content/plugins/mp3-music-player-by-sonaar/public/js/perfect-scrollbar.min.js 
/*!
 * perfect-scrollbar v1.5.3
 * Copyright 2021 Hyunje Jun, MDBootstrap and Contributors
 * Licensed under MIT
 */(function (a, b) { "object" == typeof exports && "undefined" != typeof module ? module.exports = b() : "function" == typeof define && define.amd ? define(b) : (a = a || self, a.PerfectScrollbar = b()) })(this, function () {
     'use strict'; var u = Math.abs, v = Math.floor; function a(a) { return getComputedStyle(a) } function b(a, b) { for (var c in b) { var d = b[c]; "number" == typeof d && (d += "px"), a.style[c] = d } return a } function c(a) { var b = document.createElement("div"); return b.className = a, b } function d(a, b) { if (!w) throw new Error("No element matching method supported"); return w.call(a, b) } function e(a) { a.remove ? a.remove() : a.parentNode && a.parentNode.removeChild(a) } function f(a, b) { return Array.prototype.filter.call(a.children, function (a) { return d(a, b) }) } function g(a, b) { var c = a.element.classList, d = z.state.scrolling(b); c.contains(d) ? clearTimeout(A[b]) : c.add(d) } function h(a, b) { A[b] = setTimeout(function () { return a.isAlive && a.element.classList.remove(z.state.scrolling(b)) }, a.settings.scrollingThreshold) } function j(a, b) { g(a, b), h(a, b) } function k(a) { if ("function" == typeof window.CustomEvent) return new CustomEvent(a); var b = document.createEvent("CustomEvent"); return b.initCustomEvent(a, !1, !1, void 0), b } function l(a, b, c, d, e) { void 0 === d && (d = !0), void 0 === e && (e = !1); var f; if ("top" === b) f = ["contentHeight", "containerHeight", "scrollTop", "y", "up", "down"]; else if ("left" === b) f = ["contentWidth", "containerWidth", "scrollLeft", "x", "left", "right"]; else throw new Error("A proper axis should be provided"); m(a, c, f, d, e) } function m(a, b, c, d, e) {
         var f = c[0], g = c[1], h = c[2], i = c[3], l = c[4], m = c[5]; void 0 === d && (d = !0), void 0 === e && (e = !1); var n = a.element;// reset reach
         a.reach[i] = null, 1 > n[h] && (a.reach[i] = "start"), n[h] > a[f] - a[g] - 1 && (a.reach[i] = "end"), b && (n.dispatchEvent(k("ps-scroll-" + i)), 0 > b ? n.dispatchEvent(k("ps-scroll-" + l)) : 0 < b && n.dispatchEvent(k("ps-scroll-" + m)), d && j(a, i)), a.reach[i] && (b || e) && n.dispatchEvent(k("ps-" + i + "-reach-" + a.reach[i]))
     } function n(a) { return parseInt(a, 10) || 0 } function o(a) { return d(a, "input,[contenteditable]") || d(a, "select,[contenteditable]") || d(a, "textarea,[contenteditable]") || d(a, "button,[contenteditable]") } function p(b) { var c = a(b); return n(c.width) + n(c.paddingLeft) + n(c.paddingRight) + n(c.borderLeftWidth) + n(c.borderRightWidth) } function q(a) { var b = Math.round, c = a.element, d = v(c.scrollTop), g = c.getBoundingClientRect(); a.containerWidth = b(g.width), a.containerHeight = b(g.height), a.contentWidth = c.scrollWidth, a.contentHeight = c.scrollHeight, c.contains(a.scrollbarXRail) || (f(c, z.element.rail("x")).forEach(function (a) { return e(a) }), c.appendChild(a.scrollbarXRail)), c.contains(a.scrollbarYRail) || (f(c, z.element.rail("y")).forEach(function (a) { return e(a) }), c.appendChild(a.scrollbarYRail)), !a.settings.suppressScrollX && a.containerWidth + a.settings.scrollXMarginOffset < a.contentWidth ? (a.scrollbarXActive = !0, a.railXWidth = a.containerWidth - a.railXMarginWidth, a.railXRatio = a.containerWidth / a.railXWidth, a.scrollbarXWidth = r(a, n(a.railXWidth * a.containerWidth / a.contentWidth)), a.scrollbarXLeft = n((a.negativeScrollAdjustment + c.scrollLeft) * (a.railXWidth - a.scrollbarXWidth) / (a.contentWidth - a.containerWidth))) : a.scrollbarXActive = !1, !a.settings.suppressScrollY && a.containerHeight + a.settings.scrollYMarginOffset < a.contentHeight ? (a.scrollbarYActive = !0, a.railYHeight = a.containerHeight - a.railYMarginHeight, a.railYRatio = a.containerHeight / a.railYHeight, a.scrollbarYHeight = r(a, n(a.railYHeight * a.containerHeight / a.contentHeight)), a.scrollbarYTop = n(d * (a.railYHeight - a.scrollbarYHeight) / (a.contentHeight - a.containerHeight))) : a.scrollbarYActive = !1, a.scrollbarXLeft >= a.railXWidth - a.scrollbarXWidth && (a.scrollbarXLeft = a.railXWidth - a.scrollbarXWidth), a.scrollbarYTop >= a.railYHeight - a.scrollbarYHeight && (a.scrollbarYTop = a.railYHeight - a.scrollbarYHeight), s(c, a), a.scrollbarXActive ? c.classList.add(z.state.active("x")) : (c.classList.remove(z.state.active("x")), a.scrollbarXWidth = 0, a.scrollbarXLeft = 0, c.scrollLeft = !0 === a.isRtl ? a.contentWidth : 0), a.scrollbarYActive ? c.classList.add(z.state.active("y")) : (c.classList.remove(z.state.active("y")), a.scrollbarYHeight = 0, a.scrollbarYTop = 0, c.scrollTop = 0) } function r(a, b) { var c = Math.min, d = Math.max; return a.settings.minScrollbarLength && (b = d(b, a.settings.minScrollbarLength)), a.settings.maxScrollbarLength && (b = c(b, a.settings.maxScrollbarLength)), b } function s(a, c) { var d = { width: c.railXWidth }, e = v(a.scrollTop); d.left = c.isRtl ? c.negativeScrollAdjustment + a.scrollLeft + c.containerWidth - c.contentWidth : a.scrollLeft, c.isScrollbarXUsingBottom ? d.bottom = c.scrollbarXBottom - e : d.top = c.scrollbarXTop + e, b(c.scrollbarXRail, d); var f = { top: e, height: c.railYHeight }; c.isScrollbarYUsingRight ? c.isRtl ? f.right = c.contentWidth - (c.negativeScrollAdjustment + a.scrollLeft) - c.scrollbarYRight - c.scrollbarYOuterWidth - 9 : f.right = c.scrollbarYRight - a.scrollLeft : c.isRtl ? f.left = c.negativeScrollAdjustment + a.scrollLeft + 2 * c.containerWidth - c.contentWidth - c.scrollbarYLeft - c.scrollbarYOuterWidth : f.left = c.scrollbarYLeft + a.scrollLeft, b(c.scrollbarYRail, f), b(c.scrollbarX, { left: c.scrollbarXLeft, width: c.scrollbarXWidth - c.railBorderXWidth }), b(c.scrollbarY, { top: c.scrollbarYTop, height: c.scrollbarYHeight - c.railBorderYWidth }) } function t(a, b) { function c(b) { b.touches && b.touches[0] && (b[k] = b.touches[0].pageY), s[o] = t + v * (b[k] - u), g(a, p), q(a), b.stopPropagation(), b.type.startsWith("touch") && 1 < b.changedTouches.length && b.preventDefault() } function d() { h(a, p), a[r].classList.remove(z.state.clicking), a.event.unbind(a.ownerDocument, "mousemove", c) } function f(b, e) { t = s[o], e && b.touches && (b[k] = b.touches[0].pageY), u = b[k], v = (a[j] - a[i]) / (a[l] - a[n]), e ? a.event.bind(a.ownerDocument, "touchmove", c) : (a.event.bind(a.ownerDocument, "mousemove", c), a.event.once(a.ownerDocument, "mouseup", d), b.preventDefault()), a[r].classList.add(z.state.clicking), b.stopPropagation() } var i = b[0], j = b[1], k = b[2], l = b[3], m = b[4], n = b[5], o = b[6], p = b[7], r = b[8], s = a.element, t = null, u = null, v = null; a.event.bind(a[m], "mousedown", function (a) { f(a) }), a.event.bind(a[m], "touchstart", function (a) { f(a, !0) }) } var w = "undefined" != typeof Element && (Element.prototype.matches || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector), z = { main: "ps", rtl: "ps__rtl", element: { thumb: function (a) { return "ps__thumb-" + a }, rail: function (a) { return "ps__rail-" + a }, consuming: "ps__child--consume" }, state: { focus: "ps--focus", clicking: "ps--clicking", active: function (a) { return "ps--active-" + a }, scrolling: function (a) { return "ps--scrolling-" + a } } }, A = { x: null, y: null }, B = function (a) { this.element = a, this.handlers = {} }, C = { isEmpty: { configurable: !0 } }; B.prototype.bind = function (a, b) { "undefined" == typeof this.handlers[a] && (this.handlers[a] = []), this.handlers[a].push(b), this.element.addEventListener(a, b, !1) }, B.prototype.unbind = function (a, b) { var c = this; this.handlers[a] = this.handlers[a].filter(function (d) { return !!(b && d !== b) || (c.element.removeEventListener(a, d, !1), !1) }) }, B.prototype.unbindAll = function () { for (var a in this.handlers) this.unbind(a) }, C.isEmpty.get = function () { var a = this; return Object.keys(this.handlers).every(function (b) { return 0 === a.handlers[b].length }) }, Object.defineProperties(B.prototype, C); var D = function () { this.eventElements = [] }; D.prototype.eventElement = function (a) { var b = this.eventElements.filter(function (b) { return b.element === a })[0]; return b || (b = new B(a), this.eventElements.push(b)), b }, D.prototype.bind = function (a, b, c) { this.eventElement(a).bind(b, c) }, D.prototype.unbind = function (a, b, c) { var d = this.eventElement(a); d.unbind(b, c), d.isEmpty && this.eventElements.splice(this.eventElements.indexOf(d), 1) }, D.prototype.unbindAll = function () { this.eventElements.forEach(function (a) { return a.unbindAll() }), this.eventElements = [] }, D.prototype.once = function (a, b, c) { var d = this.eventElement(a), e = function (a) { d.unbind(b, e), c(a) }; d.bind(b, e) }; var E = { isWebKit: "undefined" != typeof document && "WebkitAppearance" in document.documentElement.style, supportsTouch: "undefined" != typeof window && ("ontouchstart" in window || "maxTouchPoints" in window.navigator && 0 < window.navigator.maxTouchPoints || window.DocumentTouch && document instanceof window.DocumentTouch), supportsIePointer: "undefined" != typeof navigator && navigator.msMaxTouchPoints, isChrome: "undefined" != typeof navigator && /Chrome/i.test(navigator && navigator.userAgent) }, F = function () { return { handlers: ["click-rail", "drag-thumb", "keyboard", "wheel", "touch"], maxScrollbarLength: null, minScrollbarLength: null, scrollingThreshold: 1e3, scrollXMarginOffset: 0, scrollYMarginOffset: 0, suppressScrollX: !1, suppressScrollY: !1, swipeEasing: !0, useBothWheelAxes: !1, wheelPropagation: !0, wheelSpeed: 1 } }, G = {
         "click-rail": function (a) { a.element; a.event.bind(a.scrollbarY, "mousedown", function (a) { return a.stopPropagation() }), a.event.bind(a.scrollbarYRail, "mousedown", function (b) { var c = b.pageY - window.pageYOffset - a.scrollbarYRail.getBoundingClientRect().top, d = c > a.scrollbarYTop ? 1 : -1; a.element.scrollTop += d * a.containerHeight, q(a), b.stopPropagation() }), a.event.bind(a.scrollbarX, "mousedown", function (a) { return a.stopPropagation() }), a.event.bind(a.scrollbarXRail, "mousedown", function (b) { var c = b.pageX - window.pageXOffset - a.scrollbarXRail.getBoundingClientRect().left, d = c > a.scrollbarXLeft ? 1 : -1; a.element.scrollLeft += d * a.containerWidth, q(a), b.stopPropagation() }) }, "drag-thumb": function (a) { t(a, ["containerWidth", "contentWidth", "pageX", "railXWidth", "scrollbarX", "scrollbarXWidth", "scrollLeft", "x", "scrollbarXRail"]), t(a, ["containerHeight", "contentHeight", "pageY", "railYHeight", "scrollbarY", "scrollbarYHeight", "scrollTop", "y", "scrollbarYRail"]) }, keyboard: function (a) {
             function b(b, d) { var e = v(c.scrollTop); if (0 === b) { if (!a.scrollbarYActive) return !1; if (0 === e && 0 < d || e >= a.contentHeight - a.containerHeight && 0 > d) return !a.settings.wheelPropagation } var f = c.scrollLeft; if (0 === d) { if (!a.scrollbarXActive) return !1; if (0 === f && 0 > b || f >= a.contentWidth - a.containerWidth && 0 < b) return !a.settings.wheelPropagation } return !0 } var c = a.element, f = function () { return d(c, ":hover") }, g = function () { return d(a.scrollbarX, ":focus") || d(a.scrollbarY, ":focus") }; a.event.bind(a.ownerDocument, "keydown", function (d) {
                 if (!(d.isDefaultPrevented && d.isDefaultPrevented() || d.defaultPrevented) && (f() || g())) {
                     var e = document.activeElement ? document.activeElement : a.ownerDocument.activeElement; if (e) {
                         if ("IFRAME" === e.tagName) e = e.contentDocument.activeElement; else// go deeper if element is a webcomponent
                             for (; e.shadowRoot;)e = e.shadowRoot.activeElement; if (o(e)) return
                     } var h = 0, i = 0; switch (d.which) { case 37: h = d.metaKey ? -a.contentWidth : d.altKey ? -a.containerWidth : -30; break; case 38: i = d.metaKey ? a.contentHeight : d.altKey ? a.containerHeight : 30; break; case 39: h = d.metaKey ? a.contentWidth : d.altKey ? a.containerWidth : 30; break; case 40: i = d.metaKey ? -a.contentHeight : d.altKey ? -a.containerHeight : -30; break; case 32: i = d.shiftKey ? a.containerHeight : -a.containerHeight; break; case 33: i = a.containerHeight; break; case 34: i = -a.containerHeight; break; case 36: i = a.contentHeight; break; case 35: i = -a.contentHeight; break; default: return; }a.settings.suppressScrollX && 0 !== h || a.settings.suppressScrollY && 0 !== i || (c.scrollTop -= i, c.scrollLeft += h, q(a), b(h, i) && d.preventDefault())
                 }
             })
         }, wheel: function (b) {
             function c(a, c) { var d, e = v(h.scrollTop), f = 0 === h.scrollTop, g = e + h.offsetHeight === h.scrollHeight, i = 0 === h.scrollLeft, j = h.scrollLeft + h.offsetWidth === h.scrollWidth; return d = u(c) > u(a) ? f || g : i || j, !d || !b.settings.wheelPropagation } function d(a) { var b = a.deltaX, c = -1 * a.deltaY; return ("undefined" == typeof b || "undefined" == typeof c) && (b = -1 * a.wheelDeltaX / 6, c = a.wheelDeltaY / 6), a.deltaMode && 1 === a.deltaMode && (b *= 10, c *= 10), b !== b && c !== c/* NaN checks */ && (b = 0, c = a.wheelDelta), a.shiftKey ? [-c, -b] : [b, c] } function f(b, c, d) {// FIXME: this is a workaround for <select> issue in FF and IE #571
                 if (!E.isWebKit && h.querySelector("select:focus")) return !0; if (!h.contains(b)) return !1; for (var e = b; e && e !== h;) {
                     if (e.classList.contains(z.element.consuming)) return !0; var f = a(e);// if deltaY && vertical scrollable
                     if (d && f.overflowY.match(/(scroll|auto)/)) { var g = e.scrollHeight - e.clientHeight; if (0 < g && (0 < e.scrollTop && 0 > d || e.scrollTop < g && 0 < d)) return !0 }// if deltaX && horizontal scrollable
                     if (c && f.overflowX.match(/(scroll|auto)/)) { var i = e.scrollWidth - e.clientWidth; if (0 < i && (0 < e.scrollLeft && 0 > c || e.scrollLeft < i && 0 < c)) return !0 } e = e.parentNode
                 } return !1
             } function g(a) { var e = d(a), g = e[0], i = e[1]; if (!f(a.target, g, i)) { var j = !1; b.settings.useBothWheelAxes ? b.scrollbarYActive && !b.scrollbarXActive ? (i ? h.scrollTop -= i * b.settings.wheelSpeed : h.scrollTop += g * b.settings.wheelSpeed, j = !0) : b.scrollbarXActive && !b.scrollbarYActive && (g ? h.scrollLeft += g * b.settings.wheelSpeed : h.scrollLeft -= i * b.settings.wheelSpeed, j = !0) : (h.scrollTop -= i * b.settings.wheelSpeed, h.scrollLeft += g * b.settings.wheelSpeed), q(b), j = j || c(g, i), j && !a.ctrlKey && (a.stopPropagation(), a.preventDefault()) } } var h = b.element; "undefined" == typeof window.onwheel ? "undefined" != typeof window.onmousewheel && b.event.bind(h, "mousewheel", g) : b.event.bind(h, "wheel", g)
         }, touch: function (b) {
             function c(a, c) {
                 var d = v(l.scrollTop), e = l.scrollLeft, f = u(a), g = u(c); if (g > f) {// user is perhaps trying to swipe up/down the page
                     if (0 > c && d === b.contentHeight - b.containerHeight || 0 < c && 0 === d)// set prevent for mobile Chrome refresh
                         return 0 === window.scrollY && 0 < c && E.isChrome;
                 } else if (f > g && (0 > a && e === b.contentWidth - b.containerWidth || 0 < a && 0 === e))// user is perhaps trying to swipe left/right across the page
                     return !0; return !0
             } function d(a, c) { l.scrollTop -= c, l.scrollLeft -= a, q(b) } function f(a) { return a.targetTouches ? a.targetTouches[0] : a } function g(a) { return !(a.pointerType && "pen" === a.pointerType && 0 === a.buttons) && (!!(a.targetTouches && 1 === a.targetTouches.length) || !!(a.pointerType && "mouse" !== a.pointerType && a.pointerType !== a.MSPOINTER_TYPE_MOUSE)) } function h(a) { if (g(a)) { var b = f(a); m.pageX = b.pageX, m.pageY = b.pageY, n = new Date().getTime(), null !== p && clearInterval(p) } } function i(b, c, d) {
                 if (!l.contains(b)) return !1; for (var e = b; e && e !== l;) {
                     if (e.classList.contains(z.element.consuming)) return !0; var f = a(e);// if deltaY && vertical scrollable
                     if (d && f.overflowY.match(/(scroll|auto)/)) { var g = e.scrollHeight - e.clientHeight; if (0 < g && (0 < e.scrollTop && 0 > d || e.scrollTop < g && 0 < d)) return !0 }// if deltaX && horizontal scrollable
                     if (c && f.overflowX.match(/(scroll|auto)/)) { var h = e.scrollWidth - e.clientWidth; if (0 < h && (0 < e.scrollLeft && 0 > c || e.scrollLeft < h && 0 < c)) return !0 } e = e.parentNode
                 } return !1
             } function j(a) { if (g(a)) { var b = f(a), e = { pageX: b.pageX, pageY: b.pageY }, h = e.pageX - m.pageX, j = e.pageY - m.pageY; if (i(a.target, h, j)) return; d(h, j), m = e; var k = new Date().getTime(), l = k - n; 0 < l && (o.x = h / l, o.y = j / l, n = k), c(h, j) && a.preventDefault() } } function k() { b.settings.swipeEasing && (clearInterval(p), p = setInterval(function () { return b.isInitialized ? void clearInterval(p) : o.x || o.y ? .01 > u(o.x) && .01 > u(o.y) ? void clearInterval(p) : b.element ? void (d(30 * o.x, 30 * o.y), o.x *= .8, o.y *= .8) : void clearInterval(p) : void clearInterval(p) }, 10)) } if (E.supportsTouch || E.supportsIePointer) { var l = b.element, m = {}, n = 0, o = {}, p = null; E.supportsTouch ? (b.event.bind(l, "touchstart", h), b.event.bind(l, "touchmove", j), b.event.bind(l, "touchend", k)) : E.supportsIePointer && (window.PointerEvent ? (b.event.bind(l, "pointerdown", h), b.event.bind(l, "pointermove", j), b.event.bind(l, "pointerup", k)) : window.MSPointerEvent && (b.event.bind(l, "MSPointerDown", h), b.event.bind(l, "MSPointerMove", j), b.event.bind(l, "MSPointerUp", k))) }
         }
     }, H = function (d, e) { var f = this; if (void 0 === e && (e = {}), "string" == typeof d && (d = document.querySelector(d)), !d || !d.nodeName) throw new Error("no element is specified to initialize PerfectScrollbar"); for (var g in this.element = d, d.classList.add(z.main), this.settings = F(), e) this.settings[g] = e[g]; this.containerWidth = null, this.containerHeight = null, this.contentWidth = null, this.contentHeight = null; var h = function () { return d.classList.add(z.state.focus) }, i = function () { return d.classList.remove(z.state.focus) }; this.isRtl = "rtl" === a(d).direction, !0 === this.isRtl && d.classList.add(z.rtl), this.isNegativeScroll = function () { var a = d.scrollLeft, b = null; return d.scrollLeft = -1, b = 0 > d.scrollLeft, d.scrollLeft = a, b }(), this.negativeScrollAdjustment = this.isNegativeScroll ? d.scrollWidth - d.clientWidth : 0, this.event = new D, this.ownerDocument = d.ownerDocument || document, this.scrollbarXRail = c(z.element.rail("x")), d.appendChild(this.scrollbarXRail), this.scrollbarX = c(z.element.thumb("x")), this.scrollbarXRail.appendChild(this.scrollbarX), this.scrollbarX.setAttribute("tabindex", 0), this.event.bind(this.scrollbarX, "focus", h), this.event.bind(this.scrollbarX, "blur", i), this.scrollbarXActive = null, this.scrollbarXWidth = null, this.scrollbarXLeft = null; var j = a(this.scrollbarXRail); this.scrollbarXBottom = parseInt(j.bottom, 10), isNaN(this.scrollbarXBottom) ? (this.isScrollbarXUsingBottom = !1, this.scrollbarXTop = n(j.top)) : this.isScrollbarXUsingBottom = !0, this.railBorderXWidth = n(j.borderLeftWidth) + n(j.borderRightWidth), b(this.scrollbarXRail, { display: "block" }), this.railXMarginWidth = n(j.marginLeft) + n(j.marginRight), b(this.scrollbarXRail, { display: "" }), this.railXWidth = null, this.railXRatio = null, this.scrollbarYRail = c(z.element.rail("y")), d.appendChild(this.scrollbarYRail), this.scrollbarY = c(z.element.thumb("y")), this.scrollbarYRail.appendChild(this.scrollbarY), this.scrollbarY.setAttribute("tabindex", 0), this.event.bind(this.scrollbarY, "focus", h), this.event.bind(this.scrollbarY, "blur", i), this.scrollbarYActive = null, this.scrollbarYHeight = null, this.scrollbarYTop = null; var k = a(this.scrollbarYRail); this.scrollbarYRight = parseInt(k.right, 10), isNaN(this.scrollbarYRight) ? (this.isScrollbarYUsingRight = !1, this.scrollbarYLeft = n(k.left)) : this.isScrollbarYUsingRight = !0, this.scrollbarYOuterWidth = this.isRtl ? p(this.scrollbarY) : null, this.railBorderYWidth = n(k.borderTopWidth) + n(k.borderBottomWidth), b(this.scrollbarYRail, { display: "block" }), this.railYMarginHeight = n(k.marginTop) + n(k.marginBottom), b(this.scrollbarYRail, { display: "" }), this.railYHeight = null, this.railYRatio = null, this.reach = { x: 0 >= d.scrollLeft ? "start" : d.scrollLeft >= this.contentWidth - this.containerWidth ? "end" : null, y: 0 >= d.scrollTop ? "start" : d.scrollTop >= this.contentHeight - this.containerHeight ? "end" : null }, this.isAlive = !0, this.settings.handlers.forEach(function (a) { return G[a](f) }), this.lastScrollTop = v(d.scrollTop), this.lastScrollLeft = d.scrollLeft, this.event.bind(this.element, "scroll", function (a) { return f.onScroll(a) }), q(this) }; return H.prototype.update = function () {
         this.isAlive && (// Recalcuate negative scrollLeft adjustment
             // Recalculate rail margins
             // Hide scrollbars not to affect scrollWidth and scrollHeight
             this.negativeScrollAdjustment = this.isNegativeScroll ? this.element.scrollWidth - this.element.clientWidth : 0, b(this.scrollbarXRail, { display: "block" }), b(this.scrollbarYRail, { display: "block" }), this.railXMarginWidth = n(a(this.scrollbarXRail).marginLeft) + n(a(this.scrollbarXRail).marginRight), this.railYMarginHeight = n(a(this.scrollbarYRail).marginTop) + n(a(this.scrollbarYRail).marginBottom), b(this.scrollbarXRail, { display: "none" }), b(this.scrollbarYRail, { display: "none" }), q(this), l(this, "top", 0, !1, !0), l(this, "left", 0, !1, !0), b(this.scrollbarXRail, { display: "" }), b(this.scrollbarYRail, { display: "" }))
     }, H.prototype.onScroll = function () { this.isAlive && (q(this), l(this, "top", this.element.scrollTop - this.lastScrollTop), l(this, "left", this.element.scrollLeft - this.lastScrollLeft), this.lastScrollTop = v(this.element.scrollTop), this.lastScrollLeft = this.element.scrollLeft) }, H.prototype.destroy = function () {
         this.isAlive && (// unset elements
             this.event.unbindAll(), e(this.scrollbarX), e(this.scrollbarY), e(this.scrollbarXRail), e(this.scrollbarYRail), this.removePsClasses(), this.element = null, this.scrollbarX = null, this.scrollbarY = null, this.scrollbarXRail = null, this.scrollbarYRail = null, this.isAlive = !1)
     }, H.prototype.removePsClasses = function () { this.element.className = this.element.className.split(" ").filter(function (a) { return !a.match(/^ps([-_].+|)$/) }).join(" ") }, H
 });