JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbrvar _____WB$wombat$assign$function_____ = function (name) { return ( (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name] ); }; if (!self.__WB_pmw) { self.__WB_pmw = function (obj) { this.__WB_source = obj; return this; }; } { let window = _____WB$wombat$assign$function_____("window"); let self = _____WB$wombat$assign$function_____("self"); let document = _____WB$wombat$assign$function_____("document"); let location = _____WB$wombat$assign$function_____("location"); let top = _____WB$wombat$assign$function_____("top"); let parent = _____WB$wombat$assign$function_____("parent"); let frames = _____WB$wombat$assign$function_____("frames"); let opener = _____WB$wombat$assign$function_____("opener"); //Niwax Plugins var VanillaTilt = (function () { "use strict"; class t { constructor(e, i = {}) { if (!(e instanceof Node)) throw "Can't initialize VanillaTilt because " + e + " is not a Node."; (this.width = null), (this.height = null), (this.clientWidth = null), (this.clientHeight = null), (this.left = null), (this.top = null), (this.gammazero = null), (this.betazero = null), (this.lastgammazero = null), (this.lastbetazero = null), (this.transitionTimeout = null), (this.updateCall = null), (this.event = null), (this.updateBind = this.update.bind(this)), (this.resetBind = this.reset.bind(this)), (this.element = e), (this.settings = this.extendSettings(i)), (this.reverse = this.settings.reverse ? -1 : 1), (this.glare = t.isSettingTrue(this.settings.glare)), (this.glarePrerender = t.isSettingTrue( this.settings["glare-prerender"] )), (this.fullPageListening = t.isSettingTrue( this.settings["full-page-listening"] )), (this.gyroscope = t.isSettingTrue(this.settings.gyroscope)), (this.gyroscopeSamples = this.settings.gyroscopeSamples), (this.elementListener = this.getElementListener()), this.glare && this.prepareGlare(), this.fullPageListening && this.updateClientSize(), this.addEventListeners(), this.updateInitialPosition(); } static isSettingTrue(t) { return "" === t || !0 === t || 1 === t; } getElementListener() { if (this.fullPageListening) return window.document; if ("string" == typeof this.settings["mouse-event-element"]) { const t = document.querySelector( this.settings["mouse-event-element"] ); if (t) return t; } return this.settings["mouse-event-element"] instanceof Node ? this.settings["mouse-event-element"] : this.element; } addEventListeners() { (this.onMouseEnterBind = this.onMouseEnter.bind(this)), (this.onMouseMoveBind = this.onMouseMove.bind(this)), (this.onMouseLeaveBind = this.onMouseLeave.bind(this)), (this.onWindowResizeBind = this.onWindowResize.bind(this)), (this.onDeviceOrientationBind = this.onDeviceOrientation.bind(this)), this.elementListener.addEventListener( "mouseenter", this.onMouseEnterBind ), this.elementListener.addEventListener( "mouseleave", this.onMouseLeaveBind ), this.elementListener.addEventListener( "mousemove", this.onMouseMoveBind ), (this.glare || this.fullPageListening) && window.addEventListener("resize", this.onWindowResizeBind), this.gyroscope && window.addEventListener( "deviceorientation", this.onDeviceOrientationBind ); } removeEventListeners() { this.elementListener.removeEventListener( "mouseenter", this.onMouseEnterBind ), this.elementListener.removeEventListener( "mouseleave", this.onMouseLeaveBind ), this.elementListener.removeEventListener( "mousemove", this.onMouseMoveBind ), this.gyroscope && window.removeEventListener( "deviceorientation", this.onDeviceOrientationBind ), (this.glare || this.fullPageListening) && window.removeEventListener("resize", this.onWindowResizeBind); } destroy() { clearTimeout(this.transitionTimeout), null !== this.updateCall && cancelAnimationFrame(this.updateCall), this.reset(), this.removeEventListeners(), (this.element.vanillaTilt = null), delete this.element.vanillaTilt, (this.element = null); } onDeviceOrientation(t) { if (null === t.gamma || null === t.beta) return; this.updateElementPosition(), this.gyroscopeSamples > 0 && ((this.lastgammazero = this.gammazero), (this.lastbetazero = this.betazero), null === this.gammazero ? ((this.gammazero = t.gamma), (this.betazero = t.beta)) : ((this.gammazero = (t.gamma + this.lastgammazero) / 2), (this.betazero = (t.beta + this.lastbetazero) / 2)), (this.gyroscopeSamples -= 1)); const e = this.settings.gyroscopeMaxAngleX - this.settings.gyroscopeMinAngleX, i = this.settings.gyroscopeMaxAngleY - this.settings.gyroscopeMinAngleY, s = e / this.width, n = i / this.height, l = (t.gamma - (this.settings.gyroscopeMinAngleX + this.gammazero)) / s, a = (t.beta - (this.settings.gyroscopeMinAngleY + this.betazero)) / n; null !== this.updateCall && cancelAnimationFrame(this.updateCall), (this.event = { clientX: l + this.left, clientY: a + this.top }), (this.updateCall = requestAnimationFrame(this.updateBind)); } onMouseEnter() { this.updateElementPosition(), (this.element.style.willChange = "transform"), this.setTransition(); } onMouseMove(t) { null !== this.updateCall && cancelAnimationFrame(this.updateCall), (this.event = t), (this.updateCall = requestAnimationFrame(this.updateBind)); } onMouseLeave() { this.setTransition(), this.settings.reset && requestAnimationFrame(this.resetBind); } reset() { (this.event = { clientX: this.left + this.width / 2, clientY: this.top + this.height / 2, }), this.element && this.element.style && (this.element.style.transform = `perspective(${this.settings.perspective}px)` + "rotateX(0deg) rotateY(0deg) scale3d(1, 1, 1)"), this.resetGlare(); } resetGlare() { this.glare && ((this.glareElement.style.transform = "rotate(180deg) translate(-50%, -50%)"), (this.glareElement.style.opacity = "0")); } updateInitialPosition() { if (0 === this.settings.startX && 0 === this.settings.startY) return; this.onMouseEnter(), this.fullPageListening ? (this.event = { clientX: ((this.settings.startX + this.settings.max) / (2 * this.settings.max)) * this.clientWidth, clientY: ((this.settings.startY + this.settings.max) / (2 * this.settings.max)) * this.clientHeight, }) : (this.event = { clientX: this.left + ((this.settings.startX + this.settings.max) / (2 * this.settings.max)) * this.width, clientY: this.top + ((this.settings.startY + this.settings.max) / (2 * this.settings.max)) * this.height, }); let t = this.settings.scale; (this.settings.scale = 1), this.update(), (this.settings.scale = t), this.resetGlare(); } getValues() { let t, e; return ( this.fullPageListening ? ((t = this.event.clientX / this.clientWidth), (e = this.event.clientY / this.clientHeight)) : ((t = (this.event.clientX - this.left) / this.width), (e = (this.event.clientY - this.top) / this.height)), (t = Math.min(Math.max(t, 0), 1)), (e = Math.min(Math.max(e, 0), 1)), { tiltX: ( this.reverse * (this.settings.max - t * this.settings.max * 2) ).toFixed(2), tiltY: ( this.reverse * (e * this.settings.max * 2 - this.settings.max) ).toFixed(2), percentageX: 100 * t, percentageY: 100 * e, angle: Math.atan2( this.event.clientX - (this.left + this.width / 2), -(this.event.clientY - (this.top + this.height / 2)) ) * (180 / Math.PI), } ); } updateElementPosition() { let t = this.element.getBoundingClientRect(); (this.width = this.element.offsetWidth), (this.height = this.element.offsetHeight), (this.left = t.left), (this.top = t.top); } update() { let t = this.getValues(); (this.element.style.transform = "perspective(" + this.settings.perspective + "px) rotateX(" + ("x" === this.settings.axis ? 0 : t.tiltY) + "deg) rotateY(" + ("y" === this.settings.axis ? 0 : t.tiltX) + "deg) scale3d(" + this.settings.scale + ", " + this.settings.scale + ", " + this.settings.scale + ")"), this.glare && ((this.glareElement.style.transform = `rotate(${t.angle}deg)translate(-50%,-50%)`), (this.glareElement.style.opacity = `${ (t.percentageY * this.settings["max-glare"]) / 100 }`)), this.element.dispatchEvent( new CustomEvent("tiltChange", { detail: t }) ), (this.updateCall = null); } prepareGlare() { if (!this.glarePrerender) { const t = document.createElement("div"); t.classList.add("js-tilt-glare"); const e = document.createElement("div"); e.classList.add("js-tilt-glare-inner"), t.appendChild(e), this.element.appendChild(t); } (this.glareElementWrapper = this.element.querySelector(".js-tilt-glare")), (this.glareElement = this.element.querySelector( ".js-tilt-glare-inner" )), this.glarePrerender || (Object.assign(this.glareElementWrapper.style, { position: "absolute", top: "0", left: "0", width: "100%", height: "100%", overflow: "hidden", "pointer-events": "none", }), Object.assign(this.glareElement.style, { position: "absolute", top: "50%", left: "50%", "pointer-events": "none", "background-image": "linear-gradient(0deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%)", width: `${2 * this.element.offsetWidth}px`, height: `${2 * this.element.offsetWidth}px`, transform: "rotate(180deg) translate(-50%, -50%)", "transform-origin": "0% 0%", opacity: "0", })); } updateGlareSize() { this.glare && Object.assign(this.glareElement.style, { width: `${2 * this.element.offsetWidth}`, height: `${2 * this.element.offsetWidth}`, }); } updateClientSize() { (this.clientWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth), (this.clientHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight); } onWindowResize() { this.updateGlareSize(), this.updateClientSize(); } setTransition() { clearTimeout(this.transitionTimeout), (this.element.style.transition = this.settings.speed + "ms " + this.settings.easing), this.glare && (this.glareElement.style.transition = `opacity ${this.settings.speed}ms ${this.settings.easing}`), (this.transitionTimeout = setTimeout(() => { (this.element.style.transition = ""), this.glare && (this.glareElement.style.transition = ""); }, this.settings.speed)); } extendSettings(t) { let e = { reverse: !1, max: 15, startX: 0, startY: 0, perspective: 1e3, easing: "cubic-bezier(.03,.98,.52,.99)", scale: 1, speed: 300, transition: !0, axis: null, glare: !1, "max-glare": 1, "glare-prerender": !1, "full-page-listening": !1, "mouse-event-element": null, reset: !0, gyroscope: !0, gyroscopeMinAngleX: -45, gyroscopeMaxAngleX: 45, gyroscopeMinAngleY: -45, gyroscopeMaxAngleY: 45, gyroscopeSamples: 10, }, i = {}; for (var s in e) if (s in t) i[s] = t[s]; else if (this.element.hasAttribute("data-tilt-" + s)) { let t = this.element.getAttribute("data-tilt-" + s); try { i[s] = JSON.parse(t); } catch (e) { i[s] = t; } } else i[s] = e[s]; return i; } static init(e, i) { e instanceof Node && (e = [e]), e instanceof NodeList && (e = [].slice.call(e)), e instanceof Array && e.forEach((e) => { "vanillaTilt" in e || (e.vanillaTilt = new t(e, i)); }); } } return ( "undefined" != typeof document && ((window.VanillaTilt = t), t.init(document.querySelectorAll("[data-tilt]"))), t ); })(); !(function (a, b, c) { (a.fn.scrollUp = function (b) { a.data(c.body, "scrollUp") || (a.data(c.body, "scrollUp", !0), a.fn.scrollUp.init(b)); }), (a.fn.scrollUp.init = function (d) { var e = (a.fn.scrollUp.settings = a.extend( {}, a.fn.scrollUp.defaults, d )), f = a("", { id: e.scrollName, href: "#top", title: e.scrollText, }).appendTo("body"); e.scrollImg || f.html(e.scrollText), f.css({ display: "none", position: "fixed", zIndex: e.zIndex }), e.activeOverlay && a("
", { id: e.scrollName + "-active" }) .css({ position: "absolute", top: e.scrollDistance + "px", width: "100%", borderTop: "1px dotted" + e.activeOverlay, zIndex: e.zIndex, }) .appendTo("body"), (scrollEvent = a(b).scroll(function () { switch ( ((scrollDis = "top" === e.scrollFrom ? e.scrollDistance : a(c).height() - a(b).height() - e.scrollDistance), e.animation) ) { case "fade": a( a(b).scrollTop() > scrollDis ? f.fadeIn(e.animationInSpeed) : f.fadeOut(e.animationOutSpeed) ); break; case "slide": a( a(b).scrollTop() > scrollDis ? f.slideDown(e.animationInSpeed) : f.slideUp(e.animationOutSpeed) ); break; default: a(a(b).scrollTop() > scrollDis ? f.show(0) : f.hide(0)); } })), f.click(function (b) { b.preventDefault(), a("html, body").animate( { scrollTop: 0 }, e.topSpeed, e.easingType ); }); }), (a.fn.scrollUp.defaults = { scrollName: "scrollUp", scrollDistance: 300, scrollFrom: "top", scrollSpeed: 300, easingType: "linear", animation: "fade", animationInSpeed: 200, animationOutSpeed: 200, scrollText: "Scroll to top", scrollImg: !1, activeOverlay: !1, zIndex: 2147483647, }), (a.fn.scrollUp.destroy = function (d) { a.removeData(c.body, "scrollUp"), a("#" + a.fn.scrollUp.settings.scrollName).remove(), a("#" + a.fn.scrollUp.settings.scrollName + "-active").remove(), a.fn.jquery.split(".")[1] >= 7 ? a(b).off("scroll", d) : a(b).unbind("scroll", d); }), (a.scrollUp = a.fn.scrollUp); })(jQuery, window, document); !(function (t) { "use strict"; t.fn.counterUp = function (e) { var a, n = t.extend( { time: 400, delay: 10, formatter: !1, callback: function () {} }, e ); return this.each(function () { var e = t(this), r = { time: t(this).data("counterup-time") || n.time, delay: t(this).data("counterup-delay") || n.delay, }, u = function () { var t = [], u = r.time / r.delay, o = e.text(), i = /[0-9]+,[0-9]+/.test(o); o = o.replace(/,/g, ""); var c = (o.split(".")[1] || []).length, s = /[0-9]+:[0-9]+:[0-9]+/.test(o); if (s) { var l = o.split(":"), f = 1; for (a = 0; l.length > 0; ) (a += f * parseInt(l.pop(), 10)), (f *= 60); } for (var d = u; d >= 1; d--) { var p = parseFloat((o / u) * d).toFixed(c); if (s) { p = parseInt((a / u) * d); var m = parseInt(p / 3600) % 24, h = parseInt(p / 60) % 60, y = parseInt(p % 60, 10); p = (10 > m ? "0" + m : m) + ":" + (10 > h ? "0" + h : h) + ":" + (10 > y ? "0" + y : y); } if (i) for (; /(\d+)(\d{3})/.test(p.toString()); ) p = p.toString().replace(/(\d+)(\d{3})/, "$1,$2"); n.formatter && (p = n.formatter.call(this, p)), t.unshift(p); } e.data("counterup-nums", t), e.text("0"); var v = function () { e.html(e.data("counterup-nums").shift()), e.data("counterup-nums").length ? setTimeout(e.data("counterup-func"), r.delay) : (e.data("counterup-nums", null), e.data("counterup-func", null), n.callback.call(this)); }; e.data("counterup-func", v), setTimeout(e.data("counterup-func"), r.delay); }; e.waypoint( function () { u(), this.destroy(); }, { offset: "100%" } ); }); }; })(jQuery); function loadGoogleAnalytics() { var ga = document.createElement("script"); ga.type = "text/javascript"; ga.async = true; ga.src = "https://web.archive.org/web/20240127230933/https://www.googletagmanager.com/gtag/js?id=UA-106937184-8"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ga, s); } loadGoogleAnalytics(); window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag("js", new Date()); gtag("config", "UA-106937184-8"); !(function (e, t) { "function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", t) : "object" == typeof module && module.exports ? (module.exports = t()) : (e.EvEmitter = t()); })("undefined" != typeof window ? window : this, function () { function e() {} var t = e.prototype; return ( (t.on = function (e, t) { if (e && t) { var i = (this._events = this._events || {}), n = (i[e] = i[e] || []); return n.indexOf(t) == -1 && n.push(t), this; } }), (t.once = function (e, t) { if (e && t) { this.on(e, t); var i = (this._onceEvents = this._onceEvents || {}), n = (i[e] = i[e] || {}); return (n[t] = !0), this; } }), (t.off = function (e, t) { var i = this._events && this._events[e]; if (i && i.length) { var n = i.indexOf(t); return n != -1 && i.splice(n, 1), this; } }), (t.emitEvent = function (e, t) { var i = this._events && this._events[e]; if (i && i.length) { (i = i.slice(0)), (t = t || []); for ( var n = this._onceEvents && this._onceEvents[e], o = 0; o < i.length; o++ ) { var r = i[o], s = n && n[r]; s && (this.off(e, r), delete n[r]), r.apply(this, t); } return this; } }), (t.allOff = function () { delete this._events, delete this._onceEvents; }), e ); }), (function (e, t) { "use strict"; "function" == typeof define && define.amd ? define(["ev-emitter/ev-emitter"], function (i) { return t(e, i); }) : "object" == typeof module && module.exports ? (module.exports = t(e, require("ev-emitter"))) : (e.imagesLoaded = t(e, e.EvEmitter)); })("undefined" != typeof window ? window : this, function (e, t) { function i(e, t) { for (var i in t) e[i] = t[i]; return e; } function n(e) { if (Array.isArray(e)) return e; var t = "object" == typeof e && "number" == typeof e.length; return t ? d.call(e) : [e]; } function o(e, t, r) { if (!(this instanceof o)) return new o(e, t, r); var s = e; return ( "string" == typeof e && (s = document.querySelectorAll(e)), s ? ((this.elements = n(s)), (this.options = i({}, this.options)), "function" == typeof t ? (r = t) : i(this.options, t), r && this.on("always", r), this.getImages(), h && (this.jqDeferred = new h.Deferred()), void setTimeout(this.check.bind(this))) : void a.error("Bad element for imagesLoaded " + (s || e)) ); } function r(e) { this.img = e; } function s(e, t) { (this.url = e), (this.element = t), (this.img = new Image()); } var h = e.jQuery, a = e.console, d = Array.prototype.slice; (o.prototype = Object.create(t.prototype)), (o.prototype.options = {}), (o.prototype.getImages = function () { (this.images = []), this.elements.forEach(this.addElementImages, this); }), (o.prototype.addElementImages = function (e) { "IMG" == e.nodeName && this.addImage(e), this.options.background === !0 && this.addElementBackgroundImages(e); var t = e.nodeType; if (t && u[t]) { for (var i = e.querySelectorAll("img"), n = 0; n < i.length; n++) { var o = i[n]; this.addImage(o); } if ("string" == typeof this.options.background) { var r = e.querySelectorAll(this.options.background); for (n = 0; n < r.length; n++) { var s = r[n]; this.addElementBackgroundImages(s); } } } }); var u = { 1: !0, 9: !0, 11: !0 }; return ( (o.prototype.addElementBackgroundImages = function (e) { var t = getComputedStyle(e); if (t) for ( var i = /url\((['"])?(.*?)\1\)/gi, n = i.exec(t.backgroundImage); null !== n; ) { var o = n && n[2]; o && this.addBackground(o, e), (n = i.exec(t.backgroundImage)); } }), (o.prototype.addImage = function (e) { var t = new r(e); this.images.push(t); }), (o.prototype.addBackground = function (e, t) { var i = new s(e, t); this.images.push(i); }), (o.prototype.check = function () { function e(e, i, n) { setTimeout(function () { t.progress(e, i, n); }); } var t = this; return ( (this.progressedCount = 0), (this.hasAnyBroken = !1), this.images.length ? void this.images.forEach(function (t) { t.once("progress", e), t.check(); }) : void this.complete() ); }), (o.prototype.progress = function (e, t, i) { this.progressedCount++, (this.hasAnyBroken = this.hasAnyBroken || !e.isLoaded), this.emitEvent("progress", [this, e, t]), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, e), this.progressedCount == this.images.length && this.complete(), this.options.debug && a && a.log("progress: " + i, e, t); }), (o.prototype.complete = function () { var e = this.hasAnyBroken ? "fail" : "done"; if ( ((this.isComplete = !0), this.emitEvent(e, [this]), this.emitEvent("always", [this]), this.jqDeferred) ) { var t = this.hasAnyBroken ? "reject" : "resolve"; this.jqDeferred[t](this); } }), (r.prototype = Object.create(t.prototype)), (r.prototype.check = function () { var e = this.getIsImageComplete(); return e ? void this.confirm(0 !== this.img.naturalWidth, "naturalWidth") : ((this.proxyImage = new Image()), this.proxyImage.addEventListener("load", this), this.proxyImage.addEventListener("error", this), this.img.addEventListener("load", this), this.img.addEventListener("error", this), void (this.proxyImage.src = this.img.src)); }), (r.prototype.getIsImageComplete = function () { return this.img.complete && this.img.naturalWidth; }), (r.prototype.confirm = function (e, t) { (this.isLoaded = e), this.emitEvent("progress", [this, this.img, t]); }), (r.prototype.handleEvent = function (e) { var t = "on" + e.type; this[t] && this[t](e); }), (r.prototype.onload = function () { this.confirm(!0, "onload"), this.unbindEvents(); }), (r.prototype.onerror = function () { this.confirm(!1, "onerror"), this.unbindEvents(); }), (r.prototype.unbindEvents = function () { this.proxyImage.removeEventListener("load", this), this.proxyImage.removeEventListener("error", this), this.img.removeEventListener("load", this), this.img.removeEventListener("error", this); }), (s.prototype = Object.create(r.prototype)), (s.prototype.check = function () { this.img.addEventListener("load", this), this.img.addEventListener("error", this), (this.img.src = this.url); var e = this.getIsImageComplete(); e && (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), this.unbindEvents()); }), (s.prototype.unbindEvents = function () { this.img.removeEventListener("load", this), this.img.removeEventListener("error", this); }), (s.prototype.confirm = function (e, t) { (this.isLoaded = e), this.emitEvent("progress", [this, this.element, t]); }), (o.makeJQueryPlugin = function (t) { (t = t || e.jQuery), t && ((h = t), (h.fn.imagesLoaded = function (e, t) { var i = new o(this, e, t); return i.jqDeferred.promise(h(this)); })); }), o.makeJQueryPlugin(), o ); }); !(function () { var s, i, c, a, o = { frameRate: 150, animationTime: 400, stepSize: 100, pulseAlgorithm: !0, pulseScale: 4, pulseNormalize: 1, accelerationDelta: 50, accelerationMax: 3, keyboardSupport: !0, arrowScroll: 50, fixedBackground: !0, excluded: "", }, p = o, u = !1, d = !1, n = { x: 0, y: 0 }, f = !1, m = document.documentElement, l = [], h = /^Mac/.test(navigator.platform), w = { left: 37, up: 38, right: 39, down: 40, spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36, }, v = { 37: 1, 38: 1, 39: 1, 40: 1 }; function y() { if (!f && document.body) { f = !0; var e = document.body, t = document.documentElement, o = window.innerHeight, n = e.scrollHeight; if ( ((m = 0 <= document.compatMode.indexOf("CSS") ? t : e), (s = e), p.keyboardSupport && Y("keydown", x), top != self) ) d = !0; else if (Q && o < n && (e.offsetHeight <= o || t.offsetHeight <= o)) { var r, a = document.createElement("div"); (a.style.cssText = "position:absolute; z-index:-10000; top:0; left:0; right:0; height:" + m.scrollHeight + "px"), document.body.appendChild(a), (c = function () { r = r || setTimeout(function () { u || ((a.style.height = "0"), (a.style.height = m.scrollHeight + "px"), (r = null)); }, 500); }), setTimeout(c, 10), Y("resize", c); if ( ((i = new R(c)).observe(e, { attributes: !0, childList: !0, characterData: !1, }), m.offsetHeight <= o) ) { var l = document.createElement("div"); (l.style.clear = "both"), e.appendChild(l); } } p.fixedBackground || u || ((e.style.backgroundAttachment = "scroll"), (t.style.backgroundAttachment = "scroll")); } } var b = [], g = !1, r = Date.now(); function S(d, f, m) { if ( ((function (e, t) { (e = 0 < e ? 1 : -1), (t = 0 < t ? 1 : -1), (n.x === e && n.y === t) || ((n.x = e), (n.y = t), (b = []), (r = 0)); })(f, m), 1 != p.accelerationMax) ) { var e = Date.now() - r; if (e < p.accelerationDelta) { var t = (1 + 50 / e) / 2; 1 < t && ((t = Math.min(t, p.accelerationMax)), (f *= t), (m *= t)); } r = Date.now(); } if ( (b.push({ x: f, y: m, lastX: f < 0 ? 0.99 : -0.99, lastY: m < 0 ? 0.99 : -0.99, start: Date.now(), }), !g) ) { var o = q(), h = d === o || d === document.body; null == d.$scrollBehavior && (function (e) { var t = M(e); if (null == B[t]) { var o = getComputedStyle(e, "")["scroll-behavior"]; B[t] = "smooth" == o; } return B[t]; })(d) && ((d.$scrollBehavior = d.style.scrollBehavior), (d.style.scrollBehavior = "auto")); var w = function (e) { for (var t = Date.now(), o = 0, n = 0, r = 0; r < b.length; r++) { var a = b[r], l = t - a.start, i = l >= p.animationTime, c = i ? 1 : l / p.animationTime; p.pulseAlgorithm && (c = F(c)); var s = (a.x * c - a.lastX) >> 0, u = (a.y * c - a.lastY) >> 0; (o += s), (n += u), (a.lastX += s), (a.lastY += u), i && (b.splice(r, 1), r--); } h ? window.scrollBy(o, n) : (o && (d.scrollLeft += o), n && (d.scrollTop += n)), f || m || (b = []), b.length ? j(w, d, 1e3 / p.frameRate + 1) : ((g = !1), null != d.$scrollBehavior && ((d.style.scrollBehavior = d.$scrollBehavior), (d.$scrollBehavior = null))); }; j(w, d, 0), (g = !0); } } function e(e) { f || y(); var t = e.target; if (e.defaultPrevented || e.ctrlKey) return !0; if ( N(s, "embed") || (N(t, "embed") && /\.pdf/i.test(t.src)) || N(s, "object") || t.shadowRoot ) return !0; var o = -e.wheelDeltaX || e.deltaX || 0, n = -e.wheelDeltaY || e.deltaY || 0; h && (e.wheelDeltaX && K(e.wheelDeltaX, 120) && (o = (e.wheelDeltaX / Math.abs(e.wheelDeltaX)) * -120), e.wheelDeltaY && K(e.wheelDeltaY, 120) && (n = (e.wheelDeltaY / Math.abs(e.wheelDeltaY)) * -120)), o || n || (n = -e.wheelDelta || 0), 1 === e.deltaMode && ((o *= 40), (n *= 40)); var r = z(t); return r ? !!(function (e) { if (!e) return; l.length || (l = [e, e, e]); (e = Math.abs(e)), l.push(e), l.shift(), clearTimeout(a), (a = setTimeout(function () { try { localStorage.SS_deltaBuffer = l.join(","); } catch (e) {} }, 1e3)); var t = 120 < e && P(e), o = !P(120) && !P(100) && !t; return e < 50 || o; })(n) || (1.2 < Math.abs(o) && (o *= p.stepSize / 120), 1.2 < Math.abs(n) && (n *= p.stepSize / 120), S(r, o, n), e.preventDefault(), void C()) : !d || !W || (Object.defineProperty(e, "target", { value: window.frameElement }), parent.wheel(e)); } function x(e) { var t = e.target, o = e.ctrlKey || e.altKey || e.metaKey || (e.shiftKey && e.keyCode !== w.spacebar); document.body.contains(s) || (s = document.activeElement); var n = /^(button|submit|radio|checkbox|file|color|image)$/i; if ( e.defaultPrevented || /^(textarea|select|embed|object)$/i.test(t.nodeName) || (N(t, "input") && !n.test(t.type)) || N(s, "video") || (function (e) { var t = e.target, o = !1; if (-1 != document.URL.indexOf("www.youtube.com/watch")) do { if ( (o = t.classList && t.classList.contains("html5-video-controls")) ) break; } while ((t = t.parentNode)); return o; })(e) || t.isContentEditable || o ) return !0; if ( (N(t, "button") || (N(t, "input") && n.test(t.type))) && e.keyCode === w.spacebar ) return !0; if (N(t, "input") && "radio" == t.type && v[e.keyCode]) return !0; var r = 0, a = 0, l = z(s); if (!l) return !d || !W || parent.keydown(e); var i = l.clientHeight; switch ((l == document.body && (i = window.innerHeight), e.keyCode)) { case w.up: a = -p.arrowScroll; break; case w.down: a = p.arrowScroll; break; case w.spacebar: a = -(e.shiftKey ? 1 : -1) * i * 0.9; break; case w.pageup: a = 0.9 * -i; break; case w.pagedown: a = 0.9 * i; break; case w.home: l == document.body && document.scrollingElement && (l = document.scrollingElement), (a = -l.scrollTop); break; case w.end: var c = l.scrollHeight - l.scrollTop - i; a = 0 < c ? 10 + c : 0; break; case w.left: r = -p.arrowScroll; break; case w.right: r = p.arrowScroll; break; default: return !0; } S(l, r, a), e.preventDefault(), C(); } function t(e) { s = e.target; } var k, D, M = ((k = 0), function (e) { return e.uniqueID || (e.uniqueID = k++); }), E = {}, T = {}, B = {}; function C() { clearTimeout(D), (D = setInterval(function () { E = T = B = {}; }, 1e3)); } function H(e, t, o) { for (var n = o ? E : T, r = e.length; r--; ) n[M(e[r])] = t; return t; } function z(e) { var t = [], o = document.body, n = m.scrollHeight; do { var r = (!1 ? E : T)[M(e)]; if (r) return H(t, r); if ((t.push(e), n === e.scrollHeight)) { var a = (O(m) && O(o)) || X(m); if ((d && L(m)) || (!d && a)) return H(t, q()); } else if (L(e) && X(e)) return H(t, e); } while ((e = e.parentElement)); } function L(e) { return e.clientHeight + 10 < e.scrollHeight; } function O(e) { return ( "hidden" !== getComputedStyle(e, "").getPropertyValue("overflow-y") ); } function X(e) { var t = getComputedStyle(e, "").getPropertyValue("overflow-y"); return "scroll" === t || "auto" === t; } function Y(e, t, o) { window.addEventListener(e, t, o || !1); } function A(e, t, o) { window.removeEventListener(e, t, o || !1); } function N(e, t) { return e && (e.nodeName || "").toLowerCase() === t.toLowerCase(); } if (window.localStorage && localStorage.SS_deltaBuffer) try { l = localStorage.SS_deltaBuffer.split(","); } catch (e) {} function K(e, t) { return Math.floor(e / t) == e / t; } function P(e) { return K(l[0], e) && K(l[1], e) && K(l[2], e); } var $, j = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (e, t, o) { window.setTimeout(e, o || 1e3 / 60); }, R = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver, q = (($ = document.scrollingElement), function () { if (!$) { var e = document.createElement("div"); (e.style.cssText = "height:10000px;width:1px;"), document.body.appendChild(e); var t = document.body.scrollTop; document.documentElement.scrollTop, window.scrollBy(0, 3), ($ = document.body.scrollTop != t ? document.body : document.documentElement), window.scrollBy(0, -3), document.body.removeChild(e); } return $; }); function V(e) { var t; return ( ((e *= p.pulseScale) < 1 ? e - (1 - Math.exp(-e)) : ((e -= 1), (t = Math.exp(-1)) + (1 - Math.exp(-e)) * (1 - t))) * p.pulseNormalize ); } function F(e) { return 1 <= e ? 1 : e <= 0 ? 0 : (1 == p.pulseNormalize && (p.pulseNormalize /= V(1)), V(e)); } var I = window.navigator.userAgent, _ = /Edge/.test(I), W = /chrome/i.test(I) && !_, U = /safari/i.test(I) && !_, G = /mobile/i.test(I), J = /Windows NT 6.1/i.test(I) && /rv:11/i.test(I), Q = U && (/Version\/8/i.test(I) || /Version\/9/i.test(I)), Z = (W || U || J) && !G, ee = !1; try { window.addEventListener( "test", null, Object.defineProperty({}, "passive", { get: function () { ee = !0; }, }) ); } catch (e) {} var te = !!ee && { passive: !1 }, oe = "onwheel" in document.createElement("div") ? "wheel" : "mousewheel"; function ne(e) { for (var t in e) o.hasOwnProperty(t) && (p[t] = e[t]); } oe && Z && (Y(oe, e, te), Y("mousedown", t), Y("load", y)), (ne.destroy = function () { i && i.disconnect(), A(oe, e), A("mousedown", t), A("keydown", x), A("resize", c), A("load", y); }), window.SmoothScrollOptions && ne(window.SmoothScrollOptions), "function" == typeof define && define.amd ? define(function () { return ne; }) : "object" == typeof exports ? (module.exports = ne) : (window.SmoothScroll = ne); })(); ("use strict"); !(function (e, t) { if ("object" == typeof module && "object" == typeof module.exports) { if (!e.document) throw new Error("HC Off-canvas Nav requires a browser to run."); module.exports = t(e); } else "function" == typeof define && define.amd ? define("hcOffcanvasNav", [], t(e)) : t(e); })("undefined" != typeof window ? window : this, function (ne) { var ae = ne.document, re = ae.getElementsByTagName("html")[0], ie = 0, se = "nav-open", i = function (e, t) { if ( ((t = t || {}), "string" == typeof e && (e = "#" === e.charAt(0) && -1 === e.indexOf(" ") ? ae.querySelector(e) : ae.querySelectorAll(e)), !e) ) return !1; var R = i.Helpers; void 0 !== t.maxWidth && (R.deprecated("maxWidth", "disableAt", "option"), (t.disableAt = t.maxWidth)); var Z = Object.assign( {}, { width: 280, height: "auto", disableAt: !1, pushContent: null, swipeGestures: !0, expanded: !1, position: "left", levelOpen: "overlap", levelSpacing: 40, levelTitles: !0, closeOpenLevels: !0, closeActiveLevel: !1, navTitle: null, navClass: "", disableBody: !0, closeOnClick: !0, customToggle: null, bodyInsert: "prepend", keepClasses: !0, removeOriginalNav: !1, rtl: !1, insertClose: !0, insertBack: !0, levelTitleAsBack: !0, labelClose: "Close", labelBack: "Back", }, t ); Z.ariaLabels = Object.assign( {}, { open: "Open Menu", close: "Close Menu", submenu: "Submenu" }, t.ariaLabels ); var ee = [], te = function (e) { if (!ee.length) return !1; var t = !1; "string" == typeof e && (e = [e]); for (var n = e.length, a = 0; a < n; a++) -1 !== ee.indexOf(e[a]) && (t = !0); return t; }, n = function (e) { if (e.querySelector("ul") || "UL" === e.tagName) { var E = "hc-nav-" + ++ie, l = R.printStyle("hc-offcanvas-" + ie + "-style"), s = "keydown.hcOffcanvasNav", c = R.createElement("nav", { role: "navigation" }), v = R.createElement("div", { class: "nav-container" }); c.addEventListener("click", R.stopPropagation), c.appendChild(v); var n, u, a, d = null, p = null, r = {}, f = !1, h = !1, m = null, y = 0, b = 0, g = 0, L = null, A = {}, x = [], C = !1, k = [], o = null, O = null, N = !1, T = !1; Z.customToggle ? (d = R.getElement(Z.customToggle)) && (d.classList.add("hc-nav-trigger", E), d.addEventListener("click", K)) : ((d = R.createElement( "a", { href: "#", class: "hc-nav-trigger " + E, "aria-label": (Z.ariaLabels || {}).open, }, R.createElement("span") )).addEventListener("click", K), e.insertAdjacentElement("afterend", d)), d.setAttribute("role", "button"), d.setAttribute("aria-controls", E), d.addEventListener("keydown", function (e) { ("Enter" !== e.key && 13 !== e.keyCode) || setTimeout(function () { w(0, 0); }, 0); }); var w = function (e, t, n) { if ( "number" == typeof t && ("number" == typeof e || k.length) ) { var a = Array.prototype.filter.call( v.querySelectorAll(".nav-wrapper"), function (e) { return ( e.getAttribute("data-level") == t && ("number" != typeof n || ("number" == typeof n && e.getAttribute("data-index") == n)) ); } )[0]; if ( ((a = R.children(a, ".nav-content")[0]), (a = R.children(a, "ul")), (a = R.children(a, "li")), (a = R.children(a, ":not(.nav-wrapper)")), (a = Array.prototype.map .call(a, function (e) { return Array.prototype.slice.call( e.querySelectorAll( '[tabindex="0"], a[href], button, textarea, input[type="text"], input[type="radio"], input[type="checkbox"], select' ) ); }) .flat()), (a = Array.prototype.filter.call(a, function (e) { return "-1" !== e.getAttribute("tabindex"); }))) ) { var r = a[0], i = a[a.length - 1]; "number" == typeof e ? a[e].focus() : (k[k.length - 1].focus(), k.pop()), ae.removeEventListener(s), ae.addEventListener(s, function (e) { ("Tab" !== e.key && 9 !== e.keyCode) || (e.shiftKey ? ae.activeElement === r && (e.preventDefault(), i.focus()) : ae.activeElement === i && (e.preventDefault(), r.focus())); }); } } }, S = function () { ae.removeEventListener(s), setTimeout(function () { d.focus(); }, u); }, M = function () { (v.style.transition = "none"), (c.style.display = "block"); var e = R.formatSizeVal((b = v.offsetWidth)), t = R.formatSizeVal((g = v.offsetHeight)); l.add( ".hc-offcanvas-nav." + E + ".nav-position-left .nav-container", "transform: translate3d(-" + e + ", 0, 0)" ), l.add( ".hc-offcanvas-nav." + E + ".nav-position-right .nav-container", "transform: translate3d(" + e + ", 0, 0)" ), l.add( ".hc-offcanvas-nav." + E + ".nav-position-top .nav-container", "transform: translate3d(0, -" + t + ", 0)" ), l.add( ".hc-offcanvas-nav." + E + ".nav-position-bottom .nav-container", "transform: translate3d(0, " + t + ", 0)" ), l.insert(), (c.style.display = ""), (v.style.transition = ""), (n = ne.getComputedStyle(v).transitionProperty), (u = R.toMs(ne.getComputedStyle(v).transitionDuration)), (a = ne.getComputedStyle(v).transitionTimingFunction), Z.pushContent && p && n && l.add( R.getElementCssTag(p), "transition: " + n + " " + u + "ms " + a ), l.insert(); }, i = function (e) { var t = ne.getComputedStyle(d).display, n = !!Z.disableAt && "max-width: " + (Z.disableAt - 1) + "px", a = R.formatSizeVal(Z.width), r = R.formatSizeVal(Z.height), i = R.formatSizeVal(Z.levelSpacing); (R.isNumeric(a) || -1 !== a.indexOf("px")) && (b = parseInt(a)), (R.isNumeric(r) || -1 !== r.indexOf("px")) && (g = parseInt(r)), te(["disableAt", "position"]) && l.reset(), l.add(".hc-offcanvas-nav." + E, "display: block", n), l.add(".hc-nav-original." + E, "display: none", n), l.add( ".hc-nav-trigger." + E, "display: " + (t && "none" !== t ? t : "block"), n ), -1 !== ["left", "right"].indexOf(Z.position) ? l.add( ".hc-offcanvas-nav." + E + " .nav-container", "width: " + a ) : l.add( ".hc-offcanvas-nav." + E + " .nav-container", "height: " + r ), l.add( ".hc-offcanvas-nav." + E + ".nav-position-left .nav-container", "transform: translate3d(-" + a + ", 0, 0);" ), l.add( ".hc-offcanvas-nav." + E + ".nav-position-right .nav-container", "transform: translate3d(" + a + ", 0, 0);" ), l.add( ".hc-offcanvas-nav." + E + ".nav-position-top .nav-container", "transform: translate3d(0, -" + r + ", 0);" ), l.add( ".hc-offcanvas-nav." + E + ".nav-position-bottom .nav-container", "transform: translate3d(0, " + r + ", 0);" ), l.add( ".hc-offcanvas-nav." + E + ".nav-levels-overlap.nav-position-left li.level-open > .nav-wrapper", "transform: translate3d(-" + i + ", 0, 0)", n ), l.add( ".hc-offcanvas-nav." + E + ".nav-levels-overlap.nav-position-right li.level-open > .nav-wrapper", "transform: translate3d(" + i + ", 0, 0)", n ), l.add( ".hc-offcanvas-nav." + E + ".nav-levels-overlap.nav-position-top li.level-open > .nav-wrapper", "transform: translate3d(0, -" + i + ", 0)", n ), l.add( ".hc-offcanvas-nav." + E + ".nav-levels-overlap.nav-position-bottom li.level-open > .nav-wrapper", "transform: translate3d(0, " + i + ", 0)", n ), l.insert(), (!e || (e && te("pushContent"))) && (p = R.getElement(Z.pushContent)), (v.style.transition = "none"); var s = c.classList.contains(se), o = [ "hc-offcanvas-nav", Z.navClass || "", E, Z.navClass || "", "nav-levels-" + Z.levelOpen || "none", "nav-position-" + Z.position, Z.disableBody ? "disable-body" : "", R.isIos ? "is-ios" : "", R.isTouchDevice ? "touch-device" : "", s ? se : "", Z.rtl ? "rtl" : "", !Z.labelClose || ("" === Z.labelClose && Z.insertClose) ? "close-no-label" : "", ] .join(" ") .trim() .replace(/ +/g, " "); c.removeEventListener("click"), (c.className = o), c.setAttribute("aria-hidden", !0), c.setAttribute("aria-labelledby", E), Z.disableBody && c.addEventListener("click", G), e ? M() : setTimeout(M, 0); }, P = function () { var t; r = (function o(e, t) { var n = []; Array.prototype.forEach.call(e, function (e) { var s = { id: t, classes: e.getAttribute("class") || null, items: [], }; null !== e.getAttribute("data-nav-active") && ((m = t), e.removeAttribute("data-nav-active")), Array.prototype.forEach.call(e.children, function (e) { var t = null !== e.getAttribute("data-nav-custom-content"), n = t ? e.children : Array.prototype.filter .call(e.children, function (e) { return ( "UL" !== e.tagName && !e.querySelector("ul") ); }) .concat( e.children.length ? [] : [e.firstChild] ), a = t ? [] : Array.prototype.slice.call( e.querySelectorAll("ul") ), r = a.length ? [a[0]].concat( Array.prototype.filter.call( a[0].parentNode.children, function (e) { return "UL" === e.tagName && e !== a[0]; } ) ) : [], i = null; r.length && (R.data(e, "hc-uniqid") ? (i = R.data(e, "hc-uniqid")) : ((i = Math.random().toString(36).substr(2)), R.data(e, "hc-uniqid", i))), null !== e.getAttribute("data-nav-active") && ((m = i), e.removeAttribute("data-nav-active")), s.items.push({ id: i, classes: e.getAttribute("class") || "", content: n, custom: t, subnav: r.length ? o(r, i) : [], highlight: null !== e.getAttribute("data-nav-highlight"), }); }), n.push(s); }); return n; })( ((t = Array.prototype.slice.call(e.querySelectorAll("ul"))), "UL" === e.tagName && t.unshift(e), [t[0]].concat( Array.prototype.filter.call( t[0].parentNode.children, function (e) { return e !== t[0]; } ) )), null ); }, _ = function (e) { if (e) { for (; v.firstChild; ) v.removeChild(v.firstChild); A = {}; } !(function m(e, t, y, b, n, a) { var g = R.createElement("div", { class: "nav-wrapper nav-wrapper-" + y, "data-level": y, "data-index": n || 0, }); var r = R.createElement("div", { class: "nav-content" }); g.addEventListener("click", R.stopPropagation); g.appendChild(r); t.appendChild(g); b && r.insertBefore( R.createElement( "h2", { class: 0 === y ? "nav-title" : "level-title" }, b ), r.firstChild ); e.forEach(function (e, t) { var h = R.createElement("ul", { role: "menu", "aria-level": y + 1, }); r.appendChild(h), Z.keepClasses && e.classes && h.classList.add.apply( h.classList, e.classes.split(" ") ), 0 === t && b && h.setAttribute("aria-label", b), e.id && h.setAttribute("aria-labelledby", "menu-" + e.id), e.items.forEach(function (e, t) { var n = e.content; if (e.custom) { var a = R.createElement( "li", { class: "custom-content" }, R.createElement( "div", { class: "nav-item nav-item-custom" }, Array.prototype.map.call(n, function (e) { return R.clone(e, !0, !0); }) ) ); return ( Z.keepClasses && e.classes && a.classList.add.apply( a.classList, e.classes.split(" ") ), void h.appendChild(a) ); } var r, i = Array.prototype.filter.call(n, function (e) { return ( "A" === e.tagName || (3 !== e.nodeType && e.querySelector("a")) ); })[0]; i ? (r = R.clone(i, !1, !0)).classList.add("nav-item") : (r = R.createElement( e.subnav.length ? "a" : "span", { class: "nav-item" }, Array.prototype.map.call(n, function (e) { return R.clone(e, !0, !0); }) )), "A" === r.tagName && (r.setAttribute("tabindex", "0"), r.setAttribute("role", "menuitem"), r.getAttribute("href") || r.setAttribute("href", "#")), i && r.addEventListener("click", function (e) { e.stopPropagation(), R.hasListener(i, "click") && i.click(); }), "#" === r.getAttribute("href") && r.addEventListener("click", R.preventDefault), Z.closeOnClick && (W() ? "A" !== r.tagName || "false" === r.dataset.navClose || (null !== r.getAttribute("disabled") && "false" !== r.getAttribute("disabled")) || (e.subnav.length && (!r.getAttribute("href") || "#" === r.getAttribute("href").charAt(0))) || r.addEventListener("click", G) : "A" !== r.tagName || "false" === r.dataset.navClose || (null !== r.getAttribute("disabled") && "false" !== r.getAttribute("disabled")) || r.addEventListener("click", G)); var s = R.createElement("li"); if ( (s.appendChild(r), h.appendChild(s), Z.keepClasses && e.classes && (s.className = e.classes), e.highlight && s.classList.add("nav-highlight"), R.wrap( r, R.createElement("div", { class: "nav-item-wrapper", }) ), Z.levelSpacing && ("expand" === Z.levelOpen || !1 === Z.levelOpen || "none" === Z.levelOpen)) ) { var o = Z.levelSpacing * y; o && (h.style.textIndent = o + "px"); } if (e.subnav.length) { var l = y + 1, c = e.id, v = ""; if ( (A[l] || (A[l] = 0), s.classList.add("nav-parent"), W()) ) { var u = A[l], d = R.createElement("input", { type: "checkbox", id: E + "-" + l + "-" + u, class: "hc-chk", tabindex: -1, "data-level": l, "data-index": u, value: c, }); d.addEventListener("click", R.stopPropagation), d.addEventListener("change", V), s.insertBefore(d, s.firstChild); var p = function (e) { e.addEventListener("click", function (e) { if ( (e.stopPropagation(), d.setAttribute( "checked", "true" !== d.getAttribute("checked") ), "createEvent" in ae) ) { var t = ae.createEvent("HTMLEvents"); t.initEvent("change", !1, !0), d.dispatchEvent(t); } }), e.addEventListener("keydown", function (e) { ("Enter" !== e.key && 13 !== e.keyCode) || ((C = !0), k.push(this)); }), e.setAttribute("aria-controls", "menu-" + c), e.setAttribute( "aria-haspopup", "overlap" === Z.levelOpen ), e.setAttribute("aria-expanded", !1); }; if ( (-1 !== x.indexOf(c) && (g.classList.add("sub-level-open"), g.addEventListener("click", function () { return J(l, u); }), s.classList.add("level-open"), d.setAttribute("checked", !0)), (v = !0 === Z.levelTitles ? n[0].textContent.trim() : ""), r.getAttribute("href") && "#" !== r.getAttribute("href")) ) { var f = R.createElement( "a", { href: "#", class: "nav-next", "aria-label": (Z.ariaLabels || {}).submenu + ": " + v, role: "menuitem", tabindex: 0, }, R.createElement("span") ); f.addEventListener("click", R.preventClick()), r.parentNode.insertBefore(f, r.nextSibling), p(f); } else r.appendChild( R.createElement( "span", { class: "nav-next" }, R.createElement("span") ) ), p(r); } else r.setAttribute("aria-expanded", !0); A[l]++, m(e.subnav, s, l, v, A[l] - 1, b); } }); }); if ( y && void 0 !== n && !1 !== Z.insertBack && "overlap" === Z.levelOpen ) { var i = R.children(r, "ul"), s = (Z.levelTitleAsBack && a) || Z.labelBack || "", o = R.createElement( "a", { href: "#", role: "menuitem", tabindex: 0 }, [s, R.createElement("span")] ), l = R.createElement("li", { class: "nav-back" }, o), c = function () { return J(y, n); }; R.wrap( o, R.createElement("div", { class: "nav-item-wrapper" }) ), o.addEventListener("click", R.preventClick(c)), o.addEventListener("keydown", function (e) { ("Enter" !== e.key && 13 !== e.keyCode) || (C = !0); }), !0 === Z.insertBack ? i[0].insertBefore(l, i[0].firstChild) : R.isNumeric(Z.insertBack) && R.insertAt(l, Z.insertBack, i); } if (0 === y && !1 !== Z.insertClose) { var v = R.children(r, "ul"), u = R.createElement( "a", { href: "#", role: "menuitem", tabindex: 0 }, "object" == typeof Z.labelClose ? R.getElement(Z.labelClose) : [Z.labelClose || "", R.createElement("span")] ), d = R.createElement("li", { class: "nav-close" }, u); (Z.labelClose && "" !== Z.labelClose) || u.setAttribute( "aria-label", (Z.ariaLabels || {}).close ), R.wrap( u, R.createElement("div", { class: "nav-item-wrapper" }) ), u.addEventListener("click", R.preventClick(G)), u.addEventListener("keydown", function (e) { ("Enter" !== e.key && 13 !== e.keyCode) || S(); }), !0 === Z.insertClose ? v[0].insertBefore(d, v[0].firstChild) : R.isNumeric(Z.insertClose) && R.insertAt(d, Z.insertClose, v); } })(r, v, 0, Z.navTitle); }, t = function (t) { return function (e) { ("left" !== Z.position && "right" !== Z.position) || ((o = e.touches[0].clientX), (O = e.touches[0].clientY), "doc" === t ? T || (ae.addEventListener( "touchmove", q, R.supportsPassive ), ae.addEventListener("touchend", D, R.supportsPassive)) : ((T = !0), v.addEventListener("touchmove", H, R.supportsPassive), v.addEventListener( "touchend", I, R.supportsPassive ))); }; }, j = function (e, t) { ne.addEventListener( "touchmove", R.preventDefault, R.supportsPassive ), (c.style.visibility = "visible"), (v.style[R.browserPrefix("transition")] = "none"), R.setTransform(v, e, Z.position), p && ((p.style[R.browserPrefix("transition")] = "none"), R.setTransform(p, t, Z.position)); }, B = function (e, t, n, a) { void 0 === t && (t = !0), void 0 === n && (n = !1), void 0 === a && (a = !1), ne.removeEventListener( "touchmove", R.preventDefault, R.supportsPassive ), (v.style[R.browserPrefix("transition")] = ""), R.setTransform(v, n, Z.position), p && ((p.style[R.browserPrefix("transition")] = ""), R.setTransform(p, a, Z.position)), "open" === e ? Y() : (G(), t ? setTimeout(function () { c.style.visibility = ""; }, u) : (c.style.visibility = "")); }, q = function (e) { var t = 0 - (o - e.touches[0].clientX), n = "overlap" === Z.levelOpen ? F() * Z.levelSpacing : 0, a = b + n; (t = "left" === Z.position ? Math.min(Math.max(t, 0), a) : Math.abs(Math.min(Math.max(t, -a), 0))), (("left" === Z.position && o < 50) || ("right" === Z.position && o > ae.clientWidth - 50)) && ((N = !0), j(0 - (b - t), Math.abs(t))); }, D = function e(t) { if ( (ae.removeEventListener("touchmove", q), ae.removeEventListener("touchend", e), N) ) { var n = t.changedTouches[t.changedTouches.length - 1], a = 0 - (o - n.clientX), r = "overlap" === Z.levelOpen ? F() * Z.levelSpacing : 0, i = b + r; (a = "left" === Z.position ? Math.min(Math.max(a, 0), i) : Math.abs(Math.min(Math.max(a, -i), 0))) ? B(70 < a ? "open" : "close") : B("close", !1), (O = o = null), (N = !1); } }, H = function (e) { var t = 0 - (o - e.touches[0].clientX), n = 0 - (O - e.touches[0].clientY); if (!(Math.abs(t) < Math.abs(n))) { var a = "overlap" === Z.levelOpen ? F() * Z.levelSpacing : 0, r = b + a; (t = "left" === Z.position ? Math.min(Math.max(t, -r), 0) : Math.min(Math.max(t, 0), r)), (("left" === Z.position && t < 0) || ("right" === Z.position && 0 < t)) && ((N = !0), j(-Math.abs(t) + a, r - Math.abs(t))); } }, I = function e(t) { if ( (v.removeEventListener("touchmove", H), v.removeEventListener("touchend", e), (T = !1), N) ) { var n = t.changedTouches[t.changedTouches.length - 1], a = 0 - (o - n.clientX), r = "overlap" === Z.levelOpen ? F() * Z.levelSpacing : 0, i = b + r; (a = "left" === Z.position ? Math.abs(Math.min(Math.max(a, -i), 0)) : Math.abs(Math.min(Math.max(a, 0), i))) === i ? B("close", !1) : 50 < a ? B("close") : B("open", !0, r, i), (O = o = null), (N = !1); } }; i(), P(), _(), !0 === Z.removeOriginalNav ? e.parentNode.removeChild(e) : e.classList.add("hc-nav-original", E), "prepend" === Z.bodyInsert ? ae.body.insertBefore(c, ae.body.firstChild) : "append" === Z.bodyInsert && ae.body.appendChild(c), !0 === Z.expanded && ((h = !0), Y()), Z.swipeGestures && (v.addEventListener( "touchstart", t("nav"), R.supportsPassive ), ae.addEventListener( "touchstart", t("doc"), R.supportsPassive )), ae.addEventListener("keydown", function (e) { if (X() && ("Escape" === e.key || 27 === e.keyCode)) { var t = F(); 0 === t ? (G(), S()) : (J(t, Q()), w(null, t - 1)); } }); var z = R.debounce(M, 500); ne.addEventListener("resize", z, R.supportsPassive); var U = function (e, t, n) { var a = ae.querySelector("#" + E + "-" + e + "-" + t); if (a) { var r = a.value, i = a.parentNode, s = i.closest(".nav-wrapper"); if ( (a.setAttribute("checked", !1), s.classList.remove("sub-level-open"), i.classList.remove("level-open"), i .querySelectorAll("[aria-controls]")[0] .setAttribute("aria-expanded", !1), -1 !== x.indexOf(r) && x.splice(x.indexOf(r), 1), n && "overlap" === Z.levelOpen && (s.removeEventListener("click"), s.addEventListener("click", R.stopPropagation), R.setTransform(v, (e - 1) * Z.levelSpacing, Z.position), p)) ) { var o = "x" === R.getAxis(Z.position) ? b : g; R.setTransform(p, o + (e - 1) * Z.levelSpacing, Z.position); } } }; return ( (c.on = function (e, t) { c.addEventListener(e, t); }), (c.off = function (e, t) { c.removeEventListener(e, t); }), (c.getSettings = function () { return Object.assign({}, Z); }), (c.isOpen = X), (c.open = Y), (c.close = G), (c.update = function (e, t) { if (((ee = []), "object" == typeof e)) { for (var n in e) Z[n] !== e[n] && ee.push(n); Z = Object.assign({}, Z, e); } if (!0 === e || !0 === t) { if (Z.removeOriginalNav) return void console.warn( "%c! HC Offcanvas Nav:%c Can't update because original navigation has been removed. Disable `removeOriginalNav` option.", "color: #fa253b", "color: default" ); i(!0), P(), _(!0); } else i(!0), _(!0); }), c ); } function V() { var e = Number(this.dataset.level), t = Number(this.dataset.index); "true" === this.getAttribute("checked") ? $(e, t) : J(e, t); } function W() { return !1 !== Z.levelOpen && "none" !== Z.levelOpen; } function X() { return f; } function F() { return x.length ? Number( Array.prototype.filter.call( v.querySelectorAll(".hc-chk"), function (e) { return e.value == x[x.length - 1]; } )[0].dataset.level ) : 0; } function Q() { return x.length ? Number( Array.prototype.filter.call( v.querySelectorAll(".hc-chk"), function (e) { return e.value == x[x.length - 1]; } )[0].dataset.index ) : 0; } function Y(e, t) { if ( (!X() || void 0 !== t) && ((function () { if (X()) return; (f = !0), (c.style.visibility = "visible"), c.setAttribute("aria-hidden", !1), c.classList.add(se), d.classList.add("toggle-open"), "expand" === Z.levelOpen && L && clearTimeout(L); Z.disableBody && ((y = ne.pageYOffset || re.scrollTop || ae.documentElement.scrollTop || ae.body.scrollTop), R.hasScrollBar() && re.classList.add("hc-nav-yscroll"), ae.body.classList.add("hc-nav-open"), y && (ae.body.style.top = -y + "px")); if (p) { var e = "x" === R.getAxis(Z.position) ? b : g; R.setTransform(p, e, Z.position); } if (h) return (h = !1); setTimeout(function () { c._eventListeners.open && c._eventListeners.open.forEach(function (e) { e.fn( R.customEventObject("open", c, c), Object.assign({}, Z) ); }); }, u); })(), W()) ) { var n; if ( ("number" != typeof e && !R.isNumeric(e)) || ("number" != typeof t && !R.isNumeric(t)) ) m ? ((n = Array.prototype.filter.call( v.querySelectorAll(".hc-chk"), function (e) { return e.value == m; } )[0]), (!Z.closeActiveLevel && Z.closeOpenLevels) || (m = null)) : !1 === Z.closeOpenLevels && (n = (n = Array.prototype.filter.call( v.querySelectorAll(".hc-chk"), function (e) { return "true" === e.getAttribute("checked"); } ))[n.length - 1]); else if (!(n = ae.querySelector("#" + E + "-" + e + "-" + t))) return void console.warn( "HC Offcanvas Nav: level " + e + " doesn't have index " + t ); if (n) { var a = []; if ( ((e = Number(n.dataset.level)), (t = Number(n.dataset.index)), 1 < e) ) { for (var r = []; n && n !== ae; n = n.parentNode) n.matches(".nav-wrapper") && r.push(n); for (var i = 0; i < r.length; i++) { var s = r[i], o = Number(s.dataset.level); 0 < o && a.push({ level: o, index: Number(s.dataset.index) }); } a = a.reverse(); } a.push({ level: e, index: t }); for (var l = 0; l < a.length; l++) $(a[l].level, a[l].index, !1); } } } function G() { if (X()) { if ( ((f = !1), p && R.setTransform(p, !1), c.classList.remove(se), c.setAttribute("aria-hidden", !0), v.removeAttribute("style"), d.classList.remove("toggle-open"), "expand" === Z.levelOpen && -1 !== ["top", "bottom"].indexOf(Z.position) ? J(0) : W() && (L = setTimeout( function () { J(0); }, "expand" === Z.levelOpen ? u : 0 )), Z.disableBody && (ae.body.classList.remove("hc-nav-open"), re.classList.remove("hc-nav-yscroll"), y)) ) { if ( ((ae.body.style.top = ""), (ae.body.scrollTop = y), (re.scrollTop = y), "bottom" === Z.position) ) { var e = y; setTimeout(function () { (ae.body.scrollTop = e), (re.scrollTop = e); }, 0); } y = 0; } setTimeout(function () { (c.style.visibility = ""), c._eventListeners.close && c._eventListeners.close.forEach(function (e) { e.fn( R.customEventObject("close", c, c), Object.assign({}, Z) ); }), c._eventListeners["close.once"] && c._eventListeners["close.once"].forEach(function (e) { e.fn( R.customEventObject("close.once", c, c), Object.assign({}, Z) ); }), c.removeEventListener("close.once"); }, u); } } function K(e) { e.preventDefault(), e.stopPropagation(), f ? G() : Y(); } function $(t, n, e) { void 0 === e && (e = !0); var a = ae.querySelector("#" + E + "-" + t + "-" + n), r = a.value, i = a.parentNode, s = i.closest(".nav-wrapper"), o = R.children(i, ".nav-wrapper")[0]; if ( (!1 === e && (o.style.transition = "none"), a.setAttribute("checked", !0), s.classList.add("sub-level-open"), i.classList.add("level-open"), i .querySelectorAll("[aria-controls]")[0] .setAttribute("aria-expanded", !0), !1 === e && setTimeout(function () { o.style.transition = ""; }, u), -1 === x.indexOf(r) && x.push(r), "overlap" === Z.levelOpen && (s.addEventListener("click", function () { return J(t, n); }), R.setTransform(v, t * Z.levelSpacing, Z.position), p)) ) { var l = "x" === R.getAxis(Z.position) ? b : g; R.setTransform(p, l + t * Z.levelSpacing, Z.position); } c._eventListeners["open.level"] && c._eventListeners["open.level"].forEach(function (e) { e.fn( R.customEventObject("open.level", c, o, { currentLevel: t, currentIndex: n, }), Object.assign({}, Z) ); }), C && (w(0, t, n), (C = !1)); } function J(t, e) { for (var n = t; n <= Object.keys(A).length; n++) if (n === t && void 0 !== e) U(t, e, !0); else if (0 !== t || Z.closeOpenLevels) for (var a = 0; a < A[n]; a++) U(n, a, n === t); else; if (0 < t && c._eventListeners["close.level"]) { var r = ae .querySelector("#" + E + "-" + t + "-" + e) .closest(".nav-wrapper"); c._eventListeners["close.level"].forEach(function (e) { e.fn( R.customEventObject("close.level", c, r, { currentLevel: t - 1, currentIndex: Q(), }), Object.assign({}, Z) ); }); } C && (w(null, t - 1), (C = !1)); } console.error( "%c! HC Offcanvas Nav:%c Menu must contain