PageSourceSearch

https://www.dmu.ac.uk/SiteElements/2018/scripts/app.min.js?version=1438607&build=172184

js dmu.ac.uk collected 2026-09-24 08:28:37 UTC 160,148 bytes, 3,763 lines download raw bytes

1/*! modernizr 3.3.1 (Custom Build) | MIT *
2 * http://modernizr.com/download/?-rgba-svg-touchevents-setclasses-shiv !*/
3!function(e, t, i) {
4    function o(e, t) {
5        return typeof e === t
6    }
7    function n() {
8        var e, t, i, n, s, a, r;
9        for (var l in c)
10            if (c.hasOwnProperty(l)) {
11                if (e = [],
12                t = c[l],
13                t.name && (e.push(t.name.toLowerCase()),
14                t.options && t.options.aliases && t.options.aliases.length))
15                    for (i = 0; i < t.options.aliases.length; i++)
16                        e.push(t.options.aliases[i].toLowerCase());
17                for (n = o(t.fn, "function") ? t.fn() : t.fn,
18                s = 0; s < e.length; s++)
19                    a = e[s],
20                    r = a.split("."),
21                    1 === r.length ? u[r[0]] = n : (!u[r[0]] || u[r[0]]instanceof Boolean || (u[r[0]] = new Boolean(u[r[0]])),
22                    u[r[0]][r[1]] = n),
23                    d.push((n ? "" : "no-") + r.join("-"))
24            }
25    }
26    function s(e) {
27        var t = f.className
28          , i = u._config.classPrefix || "";
29        if (h && (t = t.baseVal),
30        u._config.enableJSClass) {
31            var o = new RegExp("(^|\\s)" + i + "no-js(\\s|$)");
32            t = t.replace(o, "$1" + i + "js$2")
33        }
34        u._config.enableClasses && (t += " " + i + e.join(" " + i),
35        h ? f.className.baseVal = t : f.className = t)
36    }
37    function a() {
38        return "function" != typeof t.createElement ? t.createElement(arguments[0]) : h ? t.createElementNS.call(t, "http://www.w3.org/2000/svg", arguments[0]) : t.createElement.apply(t, arguments)
39    }
40    function r() {
41        var e = t.body;
42        return e || (e = a(h ? "svg" : "body"),
43        e.fake = !0),
44        e
45    }
46    function l(e, i, o, n) {
47        var s, l, d, c, p = "modernizr", u = a("div"), h = r();
48        if (parseInt(o, 10))
49            for (; o--; )
50                d = a("div"),
51                d.id = n ? n[o] : p + (o + 1),
52                u.appendChild(d);
53        return s = a("style"),
54        s.type = "text/css",
55        s.id = "s" + p,
56        (h.fake ? h : u).appendChild(s),
57        h.appendChild(u),
58        s.styleSheet ? s.styleSheet.cssText = e : s.appendChild(t.createTextNode(e)),
59        u.id = p,
60        h.fake && (h.style.background = "",
61        h.style.overflow = "hidden",
62        c = f.style.overflow,
63        f.style.overflow = "hidden",
64        f.appendChild(h)),
65        l = i(u, e),
66        h.fake ? (h.parentNode.removeChild(h),
67        f.style.overflow = c,
68        f.offsetHeight) : u.parentNode.removeChild(u),
69        !!l
70    }
71    var d = []
72      , c = []
73      , p = {
74        _version: "3.3.1",
75        _config: {
76            classPrefix: "",
77            enableClasses: !0,
78            enableJSClass: !0,
79            usePrefixes: !0
80        },
81        _q: [],
82        on: function(e, t) {
83            var i = this;
84            setTimeout(function() {
85                t(i[e])
86            }, 0)
87        },
88        addTest: function(e, t, i) {
89            c.push({
90                name: e,
91                fn: t,
92                options: i
93            })
94        },
95        addAsyncTest: function(e) {
96            c.push({
97                name: null,
98                fn: e
99            })
100        }
101    }
102      , u = function() {};
103    u.prototype = p,
104    u = new u,
105    u.addTest("svg", !!t.createElementNS && !!t.createElementNS("http://www.w3.org/2000/svg", "svg").createSVGRect);
106    var f = t.documentElement
107      , h = "svg" === f.nodeName.toLowerCase();
108    h || !function(e, t) {
109        function i(e, t) {
110            var i = e.createElement("p")
111              , o = e.getElementsByTagName("head")[0] || e.documentElement;
112            return i.innerHTML = "x<style>" + t + "</style>",
113            o.insertBefore(i.lastChild, o.firstChild)
114        }
115        function o() {
116            var e = b.elements;
117            return "string" == typeof e ? e.split(" ") : e
118        }
119        function n(e, t) {
120            var i = b.elements;
121            "string" != typeof i && (i = i.join(" ")),
122            "string" != typeof e && (e = e.join(" ")),
123            b.elements = i + " " + e,
124            d(t)
125        }
126        function s(e) {
127            var t = g[e[v]];
128            return t || (t = {},
129            y++,
130            e[v] = y,
131            g[y] = t),
132            t
133        }
134        function a(e, i, o) {
135            if (i || (i = t),
136            p)
137                return i.createElement(e);
138            o || (o = s(i));
139            var n;
140            return n = o.cache[e] ? o.cache[e].cloneNode() : m.test(e) ? (o.cache[e] = o.createElem(e)).cloneNode() : o.createElem(e),
141            !n.canHaveChildren || h.test(e) || n.tagUrn ? n : o.frag.appendChild(n)
142        }
143        function r(e, i) {
144            if (e || (e = t),
145            p)
146                return e.createDocumentFragment();
147            i = i || s(e);
148            for (var n = i.frag.cloneNode(), a = 0, r = o(), l = r.length; l > a; a++)
149                n.createElement(r[a]);
150            return n
151        }
152        function l(e, t) {
153            t.cache || (t.cache = {},
154            t.createElem = e.createElement,
155            t.createFrag = e.createDocumentFragment,
156            t.frag = t.createFrag()),
157            e.createElement = function(i) {
158                return b.shivMethods ? a(i, e, t) : t.createElem(i)
159            }
160            ,
161            e.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + o().join().replace(/[\w\-:]+/g, function(e) {
162                return t.createElem(e),
163                t.frag.createElement(e),
164                'c("' + e + '")'
165            }) + ");return n}")(b, t.frag)
166        }
167        function d(e) {
168            e || (e = t);
169            var o = s(e);
170            return !b.shivCSS || c || o.hasCSS || (o.hasCSS = !!i(e, "article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),
171            p || l(e, o),
172            e
173        }
174        var c, p, u = "3.7.3", f = e.html5 || {}, h = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i, m = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i, v = "_html5shiv", y = 0, g = {};
175        !function() {
176            try {
177                var e = t.createElement("a");
178                e.innerHTML = "<xyz></xyz>",
179                c = "hidden"in e,
180                p = 1 == e.childNodes.length || function() {
181                    t.createElement("a");
182                    var e = t.createDocumentFragment();
183                    return "undefined" == typeof e.cloneNode || "undefined" == typeof e.createDocumentFragment || "undefined" == typeof e.createElement
184                }()
185            } catch (i) {
186                c = !0,
187                p = !0
188            }
189        }();
190        var b = {
191            elements: f.elements || "abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",
192            version: u,
193            shivCSS: f.shivCSS !== !1,
194            supportsUnknownElements: p,
195            shivMethods: f.shivMethods !== !1,
196            type: "default",
197            shivDocument: d,
198            createElement: a,
199            createDocumentFragment: r,
200            addElements: n
201        };
202        e.html5 = b,
203        d(t),
204        "object" == typeof module && module.exports && (module.exports = b)
205    }("undefined" != typeof e ? e : this, t);
206    var m = p._config.usePrefixes ? " -webkit- -moz- -o- -ms- ".split(" ") : ["", ""];
207    p._prefixes = m,
208    u.addTest("rgba", function() {
209        var e = a("a").style;
210        return e.cssText = "background-color:rgba(150,255,150,.5)",
211        ("" + e.backgroundColor).indexOf("rgba") > -1
212    });
213    var v = p.testStyles = l;
214    u.addTest("touchevents", function() {
215        var i;
216        if ("ontouchstart"in e || e.DocumentTouch && t instanceof DocumentTouch)
217            i = !0;
218        else {
219            var o = ["@media (", m.join("touch-enabled),("), "heartz", ")", "{#modernizr{top:9px;position:absolute}}"].join("");
220            v(o, function(e) {
221                i = 9 === e.offsetTop
222            })
223        }
224        return i
225    }),
226    n(),
227    s(d),
228    delete p.addTest,
229    delete p.addAsyncTest;
230    for (var y = 0; y < u._q.length; y++)
231        u._q[y]();
232    e.Modernizr = u
233}(window, document);
234/*!
235 * Name: Pattern library
236 * Component: Accessible Menu
237 * Author: Zengenti Ltd
238 * Contributors: Jason Alvis
vendor: 5,724 bytes, lines 239-411
239 * Author URI: http://zengenti.com
240 * Description: A pattern library for front-end development
241 * Version: 0.0.1
242 */
243
244jQuery(document).ready(function() {
245    
246}),
247function(e) {
248    "use strict";
249    "function" == typeof define && define.amd ? define(["jquery"], e) : "undefined" != typeof module && module.exports ? module.exports = e(require("jquery")) : e(jQuery)
250}(function(e) {
251    var t = -1
252      , i = -1
253      , o = function(e) {
254        return parseFloat(e) || 0
255    }
256      , n = function(t) {
257        var i = 1
258          , n = e(t)
259          , s = null
260          , a = [];
261        return n.each(function() {
262            var t = e(this)
263              , n = t.offset().top - o(t.css("margin-top"))
264              , r = a.length > 0 ? a[a.length - 1] : null;
265            null === r ? a.push(t) : Math.floor(Math.abs(s - n)) <= i ? a[a.length - 1] = r.add(t) : a.push(t),
266            s = n
267        }),
268        a
269    }
270      , s = function(t) {
271        var i = {
272            byRow: !0,
273            property: "height",
274            target: null,
275            remove: !1
276        };
277        return "object" == typeof t ? e.extend(i, t) : ("boolean" == typeof t ? i.byRow = t : "remove" === t && (i.remove = !0),
278        i)
279    }
280      , a = e.fn.matchHeight = function(t) {
281        var i = s(t);
282        if (i.remove) {
283            var o = this;
284            return this.css(i.property, ""),
285            e.each(a._groups, function(e, t) {
286                t.elements = t.elements.not(o)
287            }),
288            this
289        }
290        return this.length <= 1 && !i.target ? this : (a._groups.push({
291            elements: this,
292            options: i
293        }),
294        a._apply(this, i),
295        this)
296    }
297    ;
298    a.version = "master",
299    a._groups = [],
300    a._throttle = 80,
301    a._maintainScroll = !1,
302    a._beforeUpdate = null,
303    a._afterUpdate = null,
304    a._rows = n,
305    a._parse = o,
306    a._parseOptions = s,
307    a._apply = function(t, i) {
308        var r = s(i)
309          , l = e(t)
310          , d = [l]
311          , c = e(window).scrollTop()
312          , p = e("html").outerHeight(!0)
313          , u = l.parents().filter(":hidden");
314        return u.each(function() {
315            var t = e(this);
316            t.data("style-cache", t.attr("style"))
317        }),
318        u.css("display", "block"),
319        r.byRow && !r.target && (l.each(function() {
320            var t = e(this)
321              , i = t.css("display");
322            "inline-block" !== i && "flex" !== i && "inline-flex" !== i && (i = "block"),
323            t.data("style-cache", t.attr("style")),
324            t.css({
325                display: i,
326                "padding-top": "0",
327                "padding-bottom": "0",
328                "margin-top": "0",
329                "margin-bottom": "0",
330                "border-top-width": "0",
331                "border-bottom-width": "0",
332                height: "100px",
333                overflow: "hidden"
334            })
335        }),
336        d = n(l),
337        l.each(function() {
338            var t = e(this);
339            t.attr("style", t.data("style-cache") || "")
340        })),
341        e.each(d, function(t, i) {
342            var n = e(i)
343              , s = 0;
344            if (r.target)
345                s = r.target.outerHeight(!1);
346            else {
347                if (r.byRow && n.length <= 1)
348                    return void n.css(r.property, "");
349                n.each(function() {
350                    var t = e(this)
351                      , i = t.attr("style")
352                      , o = t.css("display");
353                    "inline-block" !== o && "flex" !== o && "inline-flex" !== o && (o = "block");
354                    var n = {
355                        display: o
356                    };
357                    n[r.property] = "",
358                    t.css(n),
359                    t.outerHeight(!1) > s && (s = t.outerHeight(!1)),
360                    i ? t.attr("style", i) : t.css("display", "")
361                })
362            }
363            n.each(function() {
364                var t = e(this)
365                  , i = 0;
366                r.target && t.is(r.target) || ("border-box" !== t.css("box-sizing") && (i += o(t.css("border-top-width")) + o(t.css("border-bottom-width")),
367                i += o(t.css("padding-top")) + o(t.css("padding-bottom"))),
368                t.css(r.property, s - i + "px"))
369            })
370        }),
371        u.each(function() {
372            var t = e(this);
373            t.attr("style", t.data("style-cache") || null)
374        }),
375        a._maintainScroll && e(window).scrollTop(c / p * e("html").outerHeight(!0)),
376        this
377    }
378    ,
379    a._applyDataApi = function() {
380        var t = {};
381        e("[data-match-height], [data-mh]").each(function() {
382            var i = e(this)
383              , o = i.attr("data-mh") || i.attr("data-match-height");
384            o in t ? t[o] = t[o].add(i) : t[o] = i
385        }),
386        e.each(t, function() {
387            this.matchHeight(!0)
388        })
389    }
390    ;
391    var r = function(t) {
392        a._beforeUpdate && a._beforeUpdate(t, a._groups),
393        e.each(a._groups, function() {
394            a._apply(this.elements, this.options)
395        }),
396        a._afterUpdate && a._afterUpdate(t, a._groups)
397    };
398    a._update = function(o, n) {
399        if (n && "resize" === n.type) {
400            var s = e(window).width();
401            if (s === t)
402                return;
403            t = s
404        }
405        o ? i === -1 && (i = setTimeout(function() {
406            r(n),
407            i = -1
408        }, a._throttle)) : r(n)
409    }
410    ,
411    e(a._applyDataApi);
412    var l = e.fn.on ? "on" : "bind";
413    e(window)[l]("load", function(e) {
414        a._update(!1, e)
415    }),
416    e(window)[l]("resize orientationchange", function(e) {
417        a._update(!0, e)
418    })
419}),
420/*
421 * debouncedresize: special jQuery event that happens once after a window resize
422 *
423 * latest version and complete README available on Github:
424 * https://github.com/louisremi/jquery-smartresize
425 *
426 * Copyright 2012 @louis_remi
427 * Licensed under the MIT license.
428 *
429 * This saved you an hour of work? 
430 * Send me music http://www.amazon.co.uk/wishlist/HNTU0468LQON
431 */
432function(e) {
433    var t, i, o = e.event;
434    t = o.special.debouncedresize = {
435        setup: function() {
436            e(this).on("resize", t.handler)
437        },
438        teardown: function() {
439            e(this).off("resize", t.handler)
440        },
441        handler: function(e, n) {
442            var s = this
443              , a = arguments
444              , r = function() {
445                e.type = "debouncedresize",
446                o.dispatch.apply(s, a)
447            };
448            i && clearTimeout(i),
449            n ? r() : i = setTimeout(r, t.threshold)
450        },
451        threshold: 150
452    }
453}(jQuery),
454!function(e) {
455    "use strict";
456    "function" == typeof define && define.amd ? define(["jquery"], e) : "undefined" != typeof exports ? module.exports = e(require("jquery")) : e(jQuery)
457}(function(e) {
458    "use strict";
459    var t = window.Slick || {};
460    (t = function() {
461        var t = 0;
462        return function(i, o) {
463            var n, s = this;
464            s.defaults = {
465                accessibility: !0,
466                adaptiveHeight: !1,
467                appendArrows: e(i),
468                appendDots: e(i),
469                arrows: !0,
470                asNavFor: null,
471                prevArrow: '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',
472                nextArrow: '<button class="slick-next" aria-label="Next" type="button">Next</button>',
473                autoplay: !1,
474                autoplaySpeed: 3e3,
475                centerMode: !1,
476                centerPadding: "50px",
477                cssEase: "ease",
478                customPaging: function(t, i) {
479                    return e('<button type="button" />').text(i + 1)
480                },
481                dots: !1,
482                dotsClass: "slick-dots",
483                draggable: !0,
484                easing: "linear",
485                edgeFriction: .35,
486                fade: !1,
487                focusOnSelect: !1,
488                focusOnChange: !1,
489                infinite: !0,
490                initialSlide: 0,
491                lazyLoad: "ondemand",
492                mobileFirst: !1,
493                pauseOnHover: !0,
494                pauseOnFocus: !0,
495                pauseOnDotsHover: !1,
496                respondTo: "window",
497                responsive: null,
498                rows: 1,
499                rtl: !1,
500                slide: "",
501                slidesPerRow: 1,
502                slidesToShow: 1,
503                slidesToScroll: 1,
504                speed: 500,
505                swipe: !0,
506                swipeToSlide: !1,
507                touchMove: !0,
508                touchThreshold: 5,
509                useCSS: !0,
510                useTransform: !0,
511                variableWidth: !1,
512                vertical: !1,
513                verticalSwiping: !1,
514                waitForAnimate: !0,
515                zIndex: 1e3
516            },
517            s.initials = {
518                animating: !1,
519                dragging: !1,
520                autoPlayTimer: null,
521                currentDirection: 0,
522                currentLeft: null,
523                currentSlide: 0,
524                direction: 1,
525                $dots: null,
526                listWidth: null,
527                listHeight: null,
528                loadIndex: 0,
529                $nextArrow: null,
530                $prevArrow: null,
531                scrolling: !1,
532                slideCount: null,
533                slideWidth: null,
534                $slideTrack: null,
535                $slides: null,
536                sliding: !1,
537                slideOffset: 0,
538                swipeLeft: null,
539                swiping: !1,
540                $list: null,
541                touchObject: {},
542                transformsEnabled: !1,
543                unslicked: !1
544            },
545            e.extend(s, s.initials),
546            s.activeBreakpoint = null,
547            s.animType = null,
548            s.animProp = null,
549            s.breakpoints = [],
550            s.breakpointSettings = [],
551            s.cssTransitions = !1,
552            s.focussed = !1,
553            s.interrupted = !1,
554            s.hidden = "hidden",
555            s.paused = !0,
556            s.positionProp = null,
557            s.respondTo = null,
558            s.rowCount = 1,
559            s.shouldClick = !0,
560            s.$slider = e(i),
561            s.$slidesCache = null,
562            s.transformType = null,
563            s.transitionType = null,
564            s.visibilityChange = "visibilitychange",
565            s.windowWidth = 0,
566            s.windowTimer = null,
567            n = e(i).data("slick") || {},
568            s.options = e.extend({}, s.defaults, o, n),
569            s.currentSlide = s.options.initialSlide,
570            s.originalSettings = s.options,
571            void 0 !== document.mozHidden ? (s.hidden = "mozHidden",
572            s.visibilityChange = "mozvisibilitychange") : void 0 !== document.webkitHidden && (s.hidden = "webkitHidden",
573            s.visibilityChange = "webkitvisibilitychange"),
574            s.autoPlay = e.proxy(s.autoPlay, s),
575            s.autoPlayClear = e.proxy(s.autoPlayClear, s),
576            s.autoPlayIterator = e.proxy(s.autoPlayIterator, s),
577            s.changeSlide = e.proxy(s.changeSlide, s),
578            s.clickHandler = e.proxy(s.clickHandler, s),
579            s.selectHandler = e.proxy(s.selectHandler, s),
580            s.setPosition = e.proxy(s.setPosition, s),
581            s.swipeHandler = e.proxy(s.swipeHandler, s),
582            s.dragHandler = e.proxy(s.dragHandler, s),
583            s.keyHandler = e.proxy(s.keyHandler, s),
584            s.instanceUid = t++,
585            s.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/,
586            s.registerBreakpoints(),
587            s.init(!0)
588        }
589    }()).prototype.activateADA = function() {
590        this.$slideTrack.find(".slick-active").attr({
591            "aria-hidden": "false"
592        }).find("a, input, button, select").attr({
593            tabindex: "0"
594        })
595    }
596    ,
597    t.prototype.addSlide = t.prototype.slickAdd = function(t, i, o) {
598        var n = this;
599        if ("boolean" == typeof i)
600            o = i,
601            i = null;
602        else if (i < 0 || i >= n.slideCount)
603            return !1;
604        n.unload(),
605        "number" == typeof i ? 0 === i && 0 === n.$slides.length ? e(t).appendTo(n.$slideTrack) : o ? e(t).insertBefore(n.$slides.eq(i)) : e(t).insertAfter(n.$slides.eq(i)) : !0 === o ? e(t).prependTo(n.$slideTrack) : e(t).appendTo(n.$slideTrack),
606        n.$slides = n.$slideTrack.children(this.options.slide),
607        n.$slideTrack.children(this.options.slide).detach(),
608        n.$slideTrack.append(n.$slides),
609        n.$slides.each(function(t, i) {
610            e(i).attr("data-slick-index", t)
611        }),
612        n.$slidesCache = n.$slides,
613        n.reinit()
614    }
615    ,
616    t.prototype.animateHeight = function() {
617        var e = this;
618        if (1 === e.options.slidesToShow && !0 === e.options.adaptiveHeight && !1 === e.options.vertical) {
619            var t = e.$slides.eq(e.currentSlide).outerHeight(!0);
620            e.$list.animate({
621                height: t
622            }, e.options.speed)
623        }
624    }
625    ,
626    t.prototype.animateSlide = function(t, i) {
627        var o = {}
628          , n = this;
629        n.animateHeight(),
630        !0 === n.options.rtl && !1 === n.options.vertical && (t = -t),
631        !1 === n.transformsEnabled ? !1 === n.options.vertical ? n.$slideTrack.animate({
632            left: t
633        }, n.options.speed, n.options.easing, i) : n.$slideTrack.animate({
634            top: t
635        }, n.options.speed, n.options.easing, i) : !1 === n.cssTransitions ? (!0 === n.options.rtl && (n.currentLeft = -n.currentLeft),
636        e({
637            animStart: n.currentLeft
638        }).animate({
639            animStart: t
640        }, {
641            duration: n.options.speed,
642            easing: n.options.easing,
643            step: function(e) {
vendor: 7,945 bytes, lines 644-805
644                e = Math.ceil(e),
645                !1 === n.options.vertical ? (o[n.animType] = "translate(" + e + "px, 0px)",
646                n.$slideTrack.css(o)) : (o[n.animType] = "translate(0px," + e + "px)",
647                n.$slideTrack.css(o))
648            },
649            complete: function() {
650                i && i.call()
651            }
652        })) : (n.applyTransition(),
653        t = Math.ceil(t),
654        !1 === n.options.vertical ? o[n.animType] = "translate3d(" + t + "px, 0px, 0px)" : o[n.animType] = "translate3d(0px," + t + "px, 0px)",
655        n.$slideTrack.css(o),
656        i && setTimeout(function() {
657            n.disableTransition(),
658            i.call()
659        }, n.options.speed))
660    }
661    ,
662    t.prototype.getNavTarget = function() {
663        var t = this
664          , i = t.options.asNavFor;
665        return i && null !== i && (i = e(i).not(t.$slider)),
666        i
667    }
668    ,
669    t.prototype.asNavFor = function(t) {
670        var i = this.getNavTarget();
671        null !== i && "object" == typeof i && i.each(function() {
672            var i = e(this).slick("getSlick");
673            i.unslicked || i.slideHandler(t, !0)
674        })
675    }
676    ,
677    t.prototype.applyTransition = function(e) {
678        var t = this
679          , i = {};
680        !1 === t.options.fade ? i[t.transitionType] = t.transformType + " " + t.options.speed + "ms " + t.options.cssEase : i[t.transitionType] = "opacity " + t.options.speed + "ms " + t.options.cssEase,
681        !1 === t.options.fade ? t.$slideTrack.css(i) : t.$slides.eq(e).css(i)
682    }
683    ,
684    t.prototype.autoPlay = function() {
685        var e = this;
686        e.autoPlayClear(),
687        e.slideCount > e.options.slidesToShow && (e.autoPlayTimer = setInterval(e.autoPlayIterator, e.options.autoplaySpeed))
688    }
689    ,
690    t.prototype.autoPlayClear = function() {
691        var e = this;
692        e.autoPlayTimer && clearInterval(e.autoPlayTimer)
693    }
694    ,
695    t.prototype.autoPlayIterator = function() {
696        var e = this
697          , t = e.currentSlide + e.options.slidesToScroll;
698        e.paused || e.interrupted || e.focussed || (!1 === e.options.infinite && (1 === e.direction && e.currentSlide + 1 === e.slideCount - 1 ? e.direction = 0 : 0 === e.direction && (t = e.currentSlide - e.options.slidesToScroll,
699        e.currentSlide - 1 == 0 && (e.direction = 1))),
700        e.slideHandler(t))
701    }
702    ,
703    t.prototype.buildArrows = function() {
704        var t = this;
705        !0 === t.options.arrows && (t.$prevArrow = e(t.options.prevArrow).addClass("slick-arrow"),
706        t.$nextArrow = e(t.options.nextArrow).addClass("slick-arrow"),
707        t.slideCount > t.options.slidesToShow ? (t.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),
708        t.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),
709        t.htmlExpr.test(t.options.prevArrow) && t.$prevArrow.prependTo(t.options.appendArrows),
710        t.htmlExpr.test(t.options.nextArrow) && t.$nextArrow.appendTo(t.options.appendArrows),
711        !0 !== t.options.infinite && t.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true")) : t.$prevArrow.add(t.$nextArrow).addClass("slick-hidden").attr({
712            "aria-disabled": "true",
713            tabindex: "-1"
714        }))
715    }
716    ,
717    t.prototype.buildDots = function() {
718        var t, i, o = this;
719        if (!0 === o.options.dots) {
720            for (o.$slider.addClass("slick-dotted"),
721            i = e("<ul />").addClass(o.options.dotsClass),
722            t = 0; t <= o.getDotCount(); t += 1)
723                i.append(e("<li />").append(o.options.customPaging.call(this, o, t)));
724            o.$dots = i.appendTo(o.options.appendDots),
725            o.$dots.find("li").first().addClass("slick-active")
726        }
727    }
728    ,
729    t.prototype.buildOut = function() {
730        var t = this;
731        t.$slides = t.$slider.children(t.options.slide + ":not(.slick-cloned)").addClass("slick-slide"),
732        t.slideCount = t.$slides.length,
733        t.$slides.each(function(t, i) {
734            e(i).attr("data-slick-index", t).data("originalStyling", e(i).attr("style") || "")
735        }),
736        t.$slider.addClass("slick-slider"),
737        t.$slideTrack = 0 === t.slideCount ? e('<div class="slick-track"/>').appendTo(t.$slider) : t.$slides.wrapAll('<div class="slick-track"/>').parent(),
738        t.$list = t.$slideTrack.wrap('<div class="slick-list"/>').parent(),
739        t.$slideTrack.css("opacity", 0),
740        !0 !== t.options.centerMode && !0 !== t.options.swipeToSlide || (t.options.slidesToScroll = 1),
741        e("img[data-lazy]", t.$slider).not("[src]").addClass("slick-loading"),
742        t.setupInfinite(),
743        t.buildArrows(),
744        t.buildDots(),
745        t.updateDots(),
746        t.setSlideClasses("number" == typeof t.currentSlide ? t.currentSlide : 0),
747        !0 === t.options.draggable && t.$list.addClass("draggable")
748    }
749    ,
750    t.prototype.buildRows = function() {
751        var e, t, i, o, n, s, a, r = this;
752        if (o = document.createDocumentFragment(),
753        s = r.$slider.children(),
754        r.options.rows > 1) {
755            for (a = r.options.slidesPerRow * r.options.rows,
756            n = Math.ceil(s.length / a),
757            e = 0; e < n; e++) {
758                var l = document.createElement("div");
759                for (t = 0; t < r.options.rows; t++) {
760                    var d = document.createElement("div");
761                    for (i = 0; i < r.options.slidesPerRow; i++) {
762                        var c = e * a + (t * r.options.slidesPerRow + i);
763                        s.get(c) && d.appendChild(s.get(c))
764                    }
765                    l.appendChild(d)
766                }
767                o.appendChild(l)
768            }
769            r.$slider.empty().append(o),
770            r.$slider.children().children().children().css({
771                width: 100 / r.options.slidesPerRow + "%",
772                display: "inline-block"
773            })
774        }
775    }
776    ,
777    t.prototype.checkResponsive = function(t, i) {
778        var o, n, s, a = this, r = !1, l = a.$slider.width(), d = window.innerWidth || e(window).width();
779        if ("window" === a.respondTo ? s = d : "slider" === a.respondTo ? s = l : "min" === a.respondTo && (s = Math.min(d, l)),
780        a.options.responsive && a.options.responsive.length && null !== a.options.responsive) {
781            n = null;
782            for (o in a.breakpoints)
783                a.breakpoints.hasOwnProperty(o) && (!1 === a.originalSettings.mobileFirst ? s < a.breakpoints[o] && (n = a.breakpoints[o]) : s > a.breakpoints[o] && (n = a.breakpoints[o]));
784            null !== n ? null !== a.activeBreakpoint ? (n !== a.activeBreakpoint || i) && (a.activeBreakpoint = n,
785            "unslick" === a.breakpointSettings[n] ? a.unslick(n) : (a.options = e.extend({}, a.originalSettings, a.breakpointSettings[n]),
786            !0 === t && (a.currentSlide = a.options.initialSlide),
787            a.refresh(t)),
788            r = n) : (a.activeBreakpoint = n,
789            "unslick" === a.breakpointSettings[n] ? a.unslick(n) : (a.options = e.extend({}, a.originalSettings, a.breakpointSettings[n]),
790            !0 === t && (a.currentSlide = a.options.initialSlide),
791            a.refresh(t)),
792            r = n) : null !== a.activeBreakpoint && (a.activeBreakpoint = null,
793            a.options = a.originalSettings,
794            !0 === t && (a.currentSlide = a.options.initialSlide),
795            a.refresh(t),
796            r = n),
797            t || !1 === r || a.$slider.trigger("breakpoint", [a, r])
798        }
799    }
800    ,
801    t.prototype.changeSlide = function(t, i) {
802        var o, n, s, a = this, r = e(t.currentTarget);
803        switch (r.is("a") && t.preventDefault(),
804        r.is("li") || (r = r.closest("li")),
805        s = a.slideCount % a.options.slidesToScroll != 0,
vendor: 2,284 bytes, lines 806-854
806        o = s ? 0 : (a.slideCount - a.currentSlide) % a.options.slidesToScroll,
807        t.data.message) {
808        case "previous":
809            n = 0 === o ? a.options.slidesToScroll : a.options.slidesToShow - o,
810            a.slideCount > a.options.slidesToShow && a.slideHandler(a.currentSlide - n, !1, i);
811            break;
812        case "next":
813            n = 0 === o ? a.options.slidesToScroll : o,
814            a.slideCount > a.options.slidesToShow && a.slideHandler(a.currentSlide + n, !1, i);
815            break;
816        case "index":
817            var l = 0 === t.data.index ? 0 : t.data.index || r.index() * a.options.slidesToScroll;
818            a.slideHandler(a.checkNavigable(l), !1, i),
819            r.children().trigger("focus");
820            break;
821        default:
822            return
823        }
824    }
825    ,
826    t.prototype.checkNavigable = function(e) {
827        var t, i;
828        if (t = this.getNavigableIndexes(),
829        i = 0,
830        e > t[t.length - 1])
831            e = t[t.length - 1];
832        else
833            for (var o in t) {
834                if (e < t[o]) {
835                    e = i;
836                    break
837                }
838                i = t[o]
839            }
840        return e
841    }
842    ,
843    t.prototype.cleanUpEvents = function() {
844        var t = this;
845        t.options.dots && null !== t.$dots && (e("li", t.$dots).off("click.slick", t.changeSlide).off("mouseenter.slick", e.proxy(t.interrupt, t, !0)).off("mouseleave.slick", e.proxy(t.interrupt, t, !1)),
846        !0 === t.options.accessibility && t.$dots.off("keydown.slick", t.keyHandler)),
847        t.$slider.off("focus.slick blur.slick"),
848        !0 === t.options.arrows && t.slideCount > t.options.slidesToShow && (t.$prevArrow && t.$prevArrow.off("click.slick", t.changeSlide),
849        t.$nextArrow && t.$nextArrow.off("click.slick", t.changeSlide),
850        !0 === t.options.accessibility && (t.$prevArrow && t.$prevArrow.off("keydown.slick", t.keyHandler),
851        t.$nextArrow && t.$nextArrow.off("keydown.slick", t.keyHandler))),
852        t.$list.off("touchstart.slick mousedown.slick", t.swipeHandler),
853        t.$list.off("touchmove.slick mousemove.slick", t.swipeHandler),
854        t.$list.off("touchend.slick mouseup.slick", t.swipeHandler),
vendor: 4,335 bytes, lines 855-956
855        t.$list.off("touchcancel.slick mouseleave.slick", t.swipeHandler),
856        t.$list.off("click.slick", t.clickHandler),
857        e(document).off(t.visibilityChange, t.visibility),
858        t.cleanUpSlideEvents(),
859        !0 === t.options.accessibility && t.$list.off("keydown.slick", t.keyHandler),
860        !0 === t.options.focusOnSelect && e(t.$slideTrack).children().off("click.slick", t.selectHandler),
861        e(window).off("orientationchange.slick.slick-" + t.instanceUid, t.orientationChange),
862        e(window).off("resize.slick.slick-" + t.instanceUid, t.resize),
863        e("[draggable!=true]", t.$slideTrack).off("dragstart", t.preventDefault),
864        e(window).off("load.slick.slick-" + t.instanceUid, t.setPosition)
865    }
866    ,
867    t.prototype.cleanUpSlideEvents = function() {
868        var t = this;
869        t.$list.off("mouseenter.slick", e.proxy(t.interrupt, t, !0)),
870        t.$list.off("mouseleave.slick", e.proxy(t.interrupt, t, !1))
871    }
872    ,
873    t.prototype.cleanUpRows = function() {
874        var e, t = this;
875        t.options.rows > 1 && ((e = t.$slides.children().children()).removeAttr("style"),
876        t.$slider.empty().append(e))
877    }
878    ,
879    t.prototype.clickHandler = function(e) {
880        !1 === this.shouldClick && (e.stopImmediatePropagation(),
881        e.stopPropagation(),
882        e.preventDefault())
883    }
884    ,
885    t.prototype.destroy = function(t) {
886        var i = this;
887        i.autoPlayClear(),
888        i.touchObject = {},
889        i.cleanUpEvents(),
890        e(".slick-cloned", i.$slider).detach(),
891        i.$dots && i.$dots.remove(),
892        i.$prevArrow && i.$prevArrow.length && (i.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""),
893        i.htmlExpr.test(i.options.prevArrow) && i.$prevArrow.remove()),
894        i.$nextArrow && i.$nextArrow.length && (i.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""),
895        i.htmlExpr.test(i.options.nextArrow) && i.$nextArrow.remove()),
896        i.$slides && (i.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function() {
897            e(this).attr("style", e(this).data("originalStyling"))
898        }),
899        i.$slideTrack.children(this.options.slide).detach(),
900        i.$slideTrack.detach(),
901        i.$list.detach(),
902        i.$slider.append(i.$slides)),
903        i.cleanUpRows(),
904        i.$slider.removeClass("slick-slider"),
905        i.$slider.removeClass("slick-initialized"),
906        i.$slider.removeClass("slick-dotted"),
907        i.unslicked = !0,
908        t || i.$slider.trigger("destroy", [i])
909    }
910    ,
911    t.prototype.disableTransition = function(e) {
912        var t = this
913          , i = {};
914        i[t.transitionType] = "",
915        !1 === t.options.fade ? t.$slideTrack.css(i) : t.$slides.eq(e).css(i)
916    }
917    ,
918    t.prototype.fadeSlide = function(e, t) {
919        var i = this;
920        !1 === i.cssTransitions ? (i.$slides.eq(e).css({
921            zIndex: i.options.zIndex
922        }),
923        i.$slides.eq(e).animate({
924            opacity: 1
925        }, i.options.speed, i.options.easing, t)) : (i.applyTransition(e),
926        i.$slides.eq(e).css({
927            opacity: 1,
928            zIndex: i.options.zIndex
929        }),
930        t && setTimeout(function() {
931            i.disableTransition(e),
932            t.call()
933        }, i.options.speed))
934    }
935    ,
936    t.prototype.fadeSlideOut = function(e) {
937        var t = this;
938        !1 === t.cssTransitions ? t.$slides.eq(e).animate({
939            opacity: 0,
940            zIndex: t.options.zIndex - 2
941        }, t.options.speed, t.options.easing) : (t.applyTransition(e),
942        t.$slides.eq(e).css({
943            opacity: 0,
944            zIndex: t.options.zIndex - 2
945        }))
946    }
947    ,
948    t.prototype.filterSlides = t.prototype.slickFilter = function(e) {
949        var t = this;
950        null !== e && (t.$slidesCache = t.$slides,
951        t.unload(),
952        t.$slideTrack.children(this.options.slide).detach(),
953        t.$slidesCache.filter(e).appendTo(t.$slideTrack),
954        t.reinit())
955    }
956    ,
957    t.prototype.focusHandler = function() {
958        var t = this;
959        t.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick", "*", function(i) {
960            i.stopImmediatePropagation();
961            var o = e(this);
962            setTimeout(function() {
963                t.options.pauseOnFocus && (t.focussed = o.is(":focus"),
964                t.autoPlay())
965            }, 0)
966        })
967    }
968    ,
969    t.prototype.getCurrent = t.prototype.slickCurrentSlide = function() {
970        return this.currentSlide
971    }
972    ,
973    t.prototype.getDotCount = function() {
974        var e = this
975          , t = 0
976          , i = 0
977          , o = 0;
978        if (!0 === e.options.infinite)
979            if (e.slideCount <= e.options.slidesToShow)
980                ++o;
981            else
982                for (; t < e.slideCount; )
983                    ++o,
984                    t = i + e.options.slidesToScroll,
985                    i += e.options.slidesToScroll <= e.options.slidesToShow ? e.options.slidesToScroll : e.options.slidesToShow;
986        else if (!0 === e.options.centerMode)
987            o = e.slideCount;
988        else if (e.options.asNavFor)
989            for (; t < e.slideCount; )
990                ++o,
991                t = i + e.options.slidesToScroll,
992                i += e.options.slidesToScroll <= e.options.slidesToShow ? e.options.slidesToScroll : e.options.slidesToShow;
993        else
994            o = 1 + Math.ceil((e.slideCount - e.options.slidesToShow) / e.options.slidesToScroll);
995        return o - 1
996    }
997    ,
998    t.prototype.getLeft = function(e) {
999        var t, i, o, n, s = this, a = 0;
1000        return s.slideOffset = 0,
1001        i = s.$slides.first().outerHeight(!0),
1002        !0 === s.options.infinite ? (s.slideCount > s.options.slidesToShow && (s.slideOffset = s.slideWidth * s.options.slidesToShow * -1,
1003        n = -1,
1004        !0 === s.options.vertical && !0 === s.options.centerMode && (2 === s.options.slidesToShow ? n = -1.5 : 1 === s.options.slidesToShow && (n = -2)),
1005        a = i * s.options.slidesToShow * n),
1006        s.slideCount % s.options.slidesToScroll != 0 && e + s.options.slidesToScroll > s.slideCount && s.slideCount > s.options.slidesToShow && (e > s.slideCount ? (s.slideOffset = (s.options.slidesToShow - (e - s.slideCount)) * s.slideWidth * -1,
1007        a = (s.options.slidesToShow - (e - s.slideCount)) * i * -1) : (s.slideOffset = s.slideCount % s.options.slidesToScroll * s.slideWidth * -1,
1008        a = s.slideCount % s.options.slidesToScroll * i * -1))) : e + s.options.slidesToShow > s.slideCount && (s.slideOffset = (e + s.options.slidesToShow - s.slideCount) * s.slideWidth,
1009        a = (e + s.options.slidesToShow - s.slideCount) * i),
1010        s.slideCount <= s.options.slidesToShow && (s.slideOffset = 0,
1011        a = 0),
1012        !0 === s.options.centerMode && s.slideCount <= s.options.slidesToShow ? s.slideOffset = s.slideWidth * Math.floor(s.options.slidesToShow) / 2 - s.slideWidth * s.slideCount / 2 : !0 === s.options.centerMode && !0 === s.options.infinite ? s.slideOffset += s.slideWidth * Math.floor(s.options.slidesToShow / 2) - s.slideWidth : !0 === s.options.centerMode && (s.slideOffset = 0,
1013        s.slideOffset += s.slideWidth * Math.floor(s.options.slidesToShow / 2)),
1014        t = !1 === s.options.vertical ? e * s.slideWidth * -1 + s.slideOffset : e * i * -1 + a,
1015        !0 === s.options.variableWidth && (o = s.slideCount <= s.options.slidesToShow || !1 === s.options.infinite ? s.$slideTrack.children(".slick-slide").eq(e) : s.$slideTrack.children(".slick-slide").eq(e + s.options.slidesToShow),
1016        t = !0 === s.options.rtl ? o[0] ? -1 * (s.$slideTrack.width() - o[0].offsetLeft - o.width()) : 0 : o[0] ? -1 * o[0].offsetLeft : 0,
1017        !0 === s.options.centerMode && (o = s.slideCount <= s.options.slidesToShow || !1 === s.options.infinite ? s.$slideTrack.children(".slick-slide").eq(e) : s.$slideTrack.children(".slick-slide").eq(e + s.options.slidesToShow + 1),
1018        t = !0 === s.options.rtl ? o[0] ? -1 * (s.$slideTrack.width() - o[0].offsetLeft - o.width()) : 0 : o[0] ? -1 * o[0].offsetLeft : 0,
1019        t += (s.$list.width() - o.outerWidth()) / 2)),
1020        t
1021    }
1022    ,
1023    t.prototype.getOption = t.prototype.slickGetOption = function(e) {
1024        return this.options[e]
1025    }
1026    ,
1027    t.prototype.getNavigableIndexes = function() {
1028        var e, t = this, i = 0, o = 0, n = [];
1029        for (!1 === t.options.infinite ? e = t.slideCount : (i = -1 * t.options.slidesToScroll,
1030        o = -1 * t.options.slidesToScroll,
1031        e = 2 * t.slideCount); i < e; )
1032            n.push(i),
1033            i = o + t.options.slidesToScroll,
1034            o += t.options.slidesToScroll <= t.options.slidesToShow ? t.options.slidesToScroll : t.options.slidesToShow;
1035        return n
1036    }
1037    ,
1038    t.prototype.getSlick = function() {
1039        return this
1040    }
1041    ,
1042    t.prototype.getSlideCount = function() {
1043        var t, i, o = this;
1044        return i = !0 === o.options.centerMode ? o.slideWidth * Math.floor(o.options.slidesToShow / 2) : 0,
1045        !0 === o.options.swipeToSlide ? (o.$slideTrack.find(".slick-slide").each(function(n, s) {
1046            if (s.offsetLeft - i + e(s).outerWidth() / 2 > -1 * o.swipeLeft)
1047                return t = s,
1048                !1
1049        }),
1050        Math.abs(e(t).attr("data-slick-index") - o.currentSlide) || 1) : o.options.slidesToScroll
1051    }
1052    ,
1053    t.prototype.goTo = t.prototype.slickGoTo = function(e, t) {
1054        this.changeSlide({
1055            data: {
1056                message: "index",
1057                index: parseInt(e)
1058            }
1059        }, t)
1060    }
1061    ,
1062    t.prototype.init = function(t) {
1063        var i = this;
1064        e(i.$slider).hasClass("slick-initialized") || (e(i.$slider).addClass("slick-initialized"),
1065        i.buildRows(),
1066        i.buildOut(),
1067        i.setProps(),
1068        i.startLoad(),
1069        i.loadSlider(),
1070        i.initializeEvents(),
1071        i.updateArrows(),
1072        i.updateDots(),
1073        i.checkResponsive(!0),
1074        i.focusHandler()),
1075        t && i.$slider.trigger("init", [i]),
1076        !0 === i.options.accessibility && i.initADA(),
1077        i.options.autoplay && (i.paused = !1,
1078        i.autoPlay())
1079    }
1080    ,
1081    t.prototype.initADA = function() {
1082        var t = this
1083          , i = Math.ceil(t.slideCount / t.options.slidesToShow)
1084          , o = t.getNavigableIndexes().filter(function(e) {
1085            return e >= 0 && e < t.slideCount
1086        });
1087        t.$slides.add(t.$slideTrack.find(".slick-cloned")).attr({
1088            "aria-hidden": "true",
1089            tabindex: "-1"
1090        }).find("a, input, button, select").attr({
1091            tabindex: "-1"
1092        }),
1093        null !== t.$dots && (t.$slides.not(t.$slideTrack.find(".slick-cloned")).each(function(i) {
1094            var n = o.indexOf(i);
1095            e(this).attr({
1096                role: "tabpanel",
1097                id: "slick-slide" + t.instanceUid + i,
1098                tabindex: -1
1099            }),
1100            -1 !== n && e(this).attr({
1101                "aria-describedby": "slick-slide-control" + t.instanceUid + n
1102            })
1103        }),
1104        t.$dots.attr("role", "tablist").find("li").each(function(n) {
1105            var s = o[n];
1106            e(this).attr({
1107                role: "presentation"
1108            }),
1109            e(this).find("button").first().attr({
1110                role: "tab",
1111                id: "slick-slide-control" + t.instanceUid + n,
1112                "aria-controls": "slick-slide" + t.instanceUid + s,
1113                "aria-label": n + 1 + " of " + i,
1114                "aria-selected": null,
1115                tabindex: "-1"
1116            })
1117        }).eq(t.currentSlide).find("button").attr({
1118            "aria-selected": "true",
1119            tabindex: "0"
1120        }).end());
1121        for (var n = t.currentSlide, s = n + t.options.slidesToShow; n < s; n++)
1122            t.$slides.eq(n).attr("tabindex", 0);
1123        t.activateADA()
1124    }
1125    ,
1126    t.prototype.initArrowEvents = function() {
1127        var e = this;
1128        !0 === e.options.arrows && e.slideCount > e.options.slidesToShow && (e.$prevArrow.off("click.slick").on("click.slick", {
1129            message: "previous"
1130        }, e.changeSlide),
1131        e.$nextArrow.off("click.slick").on("click.slick", {
1132            message: "next"
1133        }, e.changeSlide),
1134        !0 === e.options.accessibility && (e.$prevArrow.on("keydown.slick", e.keyHandler),
1135        e.$nextArrow.on("keydown.slick", e.keyHandler)))
1136    }
1137    ,
1138    t.prototype.initDotEvents = function() {
1139        var t = this;
1140        !0 === t.options.dots && (e("li", t.$dots).on("click.slick", {
1141            message: "index"
1142        }, t.changeSlide),
1143        !0 === t.options.accessibility && t.$dots.on("keydown.slick", t.keyHandler)),
1144        !0 === t.options.dots && !0 === t.options.pauseOnDotsHover && e("li", t.$dots).on("mouseenter.slick", e.proxy(t.
vendor: 16,282 bytes, lines 1144-1529
1144interrupt, t, !0)).on("mouseleave.slick", e.proxy(t.interrupt, t, !1))
1145    }
1146    ,
1147    t.prototype.initSlideEvents = function() {
1148        var t = this;
1149        t.options.pauseOnHover && (t.$list.on("mouseenter.slick", e.proxy(t.interrupt, t, !0)),
1150        t.$list.on("mouseleave.slick", e.proxy(t.interrupt, t, !1)))
1151    }
1152    ,
1153    t.prototype.initializeEvents = function() {
1154        var t = this;
1155        t.initArrowEvents(),
1156        t.initDotEvents(),
1157        t.initSlideEvents(),
1158        t.$list.on("touchstart.slick mousedown.slick", {
1159            action: "start"
1160        }, t.swipeHandler),
1161        t.$list.on("touchmove.slick mousemove.slick", {
1162            action: "move"
1163        }, t.swipeHandler),
1164        t.$list.on("touchend.slick mouseup.slick", {
1165            action: "end"
1166        }, t.swipeHandler),
1167        t.$list.on("touchcancel.slick mouseleave.slick", {
1168            action: "end"
1169        }, t.swipeHandler),
1170        t.$list.on("click.slick", t.clickHandler),
1171        e(document).on(t.visibilityChange, e.proxy(t.visibility, t)),
1172        !0 === t.options.accessibility && t.$list.on("keydown.slick", t.keyHandler),
1173        !0 === t.options.focusOnSelect && e(t.$slideTrack).children().on("click.slick", t.selectHandler),
1174        e(window).on("orientationchange.slick.slick-" + t.instanceUid, e.proxy(t.orientationChange, t)),
1175        e(window).on("resize.slick.slick-" + t.instanceUid, e.proxy(t.resize, t)),
1176        e("[draggable!=true]", t.$slideTrack).on("dragstart", t.preventDefault),
1177        e(window).on("load.slick.slick-" + t.instanceUid, t.setPosition),
1178        e(t.setPosition)
1179    }
1180    ,
1181    t.prototype.initUI = function() {
1182        var e = this;
1183        !0 === e.options.arrows && e.slideCount > e.options.slidesToShow && (e.$prevArrow.show(),
1184        e.$nextArrow.show()),
1185        !0 === e.options.dots && e.slideCount > e.options.slidesToShow && e.$dots.show()
1186    }
1187    ,
1188    t.prototype.keyHandler = function(e) {
1189        var t = this;
1190        e.target.tagName.match("TEXTAREA|INPUT|SELECT") || (37 === e.keyCode && !0 === t.options.accessibility ? t.changeSlide({
1191            data: {
1192                message: !0 === t.options.rtl ? "next" : "previous"
1193            }
1194        }) : 39 === e.keyCode && !0 === t.options.accessibility && t.changeSlide({
1195            data: {
1196                message: !0 === t.options.rtl ? "previous" : "next"
1197            }
1198        }))
1199    }
1200    ,
1201    t.prototype.lazyLoad = function() {
1202        function t(t) {
1203            e("img[data-lazy]", t).each(function() {
1204                var t = e(this)
1205                  , i = e(this).attr("data-lazy")
1206                  , o = e(this).attr("data-srcset")
1207                  , n = e(this).attr("data-sizes") || s.$slider.attr("data-sizes")
1208                  , a = document.createElement("img");
1209                a.onload = function() {
1210                    t.animate({
1211                        opacity: 0
1212                    }, 100, function() {
1213                        o && (t.attr("srcset", o),
1214                        n && t.attr("sizes", n)),
1215                        t.attr("src", i).animate({
1216                            opacity: 1
1217                        }, 200, function() {
1218                            t.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")
1219                        }),
1220                        s.$slider.trigger("lazyLoaded", [s, t, i])
1221                    })
1222                }
1223                ,
1224                a.onerror = function() {
1225                    t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),
1226                    s.$slider.trigger("lazyLoadError", [s, t, i])
1227                }
1228                ,
1229                a.src = i
1230            })
1231        }
1232        var i, o, n, s = this;
1233        if (!0 === s.options.centerMode ? !0 === s.options.infinite ? n = (o = s.currentSlide + (s.options.slidesToShow / 2 + 1)) + s.options.slidesToShow + 2 : (o = Math.max(0, s.currentSlide - (s.options.slidesToShow / 2 + 1)),
1234        n = s.options.slidesToShow / 2 + 1 + 2 + s.currentSlide) : (o = s.options.infinite ? s.options.slidesToShow + s.currentSlide : s.currentSlide,
1235        n = Math.ceil(o + s.options.slidesToShow),
1236        !0 === s.options.fade && (o > 0 && o--,
1237        n <= s.slideCount && n++)),
1238        i = s.$slider.find(".slick-slide").slice(o, n),
1239        "anticipated" === s.options.lazyLoad)
1240            for (var a = o - 1, r = n, l = s.$slider.find(".slick-slide"), d = 0; d < s.options.slidesToScroll; d++)
1241                a < 0 && (a = s.slideCount - 1),
1242                i = (i = i.add(l.eq(a))).add(l.eq(r)),
1243                a--,
1244                r++;
1245        t(i),
1246        s.slideCount <= s.options.slidesToShow ? t(s.$slider.find(".slick-slide")) : s.currentSlide >= s.slideCount - s.options.slidesToShow ? t(s.$slider.find(".slick-cloned").slice(0, s.options.slidesToShow)) : 0 === s.currentSlide && t(s.$slider.find(".slick-cloned").slice(-1 * s.options.slidesToShow))
1247    }
1248    ,
1249    t.prototype.loadSlider = function() {
1250        var e = this;
1251        e.setPosition(),
1252        e.$slideTrack.css({
1253            opacity: 1
1254        }),
1255        e.$slider.removeClass("slick-loading"),
1256        e.initUI(),
1257        "progressive" === e.options.lazyLoad && e.progressiveLazyLoad()
1258    }
1259    ,
1260    t.prototype.next = t.prototype.slickNext = function() {
1261        this.changeSlide({
1262            data: {
1263                message: "next"
1264            }
1265        })
1266    }
1267    ,
1268    t.prototype.orientationChange = function() {
1269        var e = this;
1270        e.checkResponsive(),
1271        e.setPosition()
1272    }
1273    ,
1274    t.prototype.pause = t.prototype.slickPause = function() {
1275        var e = this;
1276        e.autoPlayClear(),
1277        e.paused = !0
1278    }
1279    ,
1280    t.prototype.play = t.prototype.slickPlay = function() {
1281        var e = this;
1282        e.autoPlay(),
1283        e.options.autoplay = !0,
1284        e.paused = !1,
1285        e.focussed = !1,
1286        e.interrupted = !1
1287    }
1288    ,
1289    t.prototype.postSlide = function(t) {
1290        var i = this;
1291        i.unslicked || (i.$slider.trigger("afterChange", [i, t]),
1292        i.animating = !1,
1293        i.slideCount > i.options.slidesToShow && i.setPosition(),
1294        i.swipeLeft = null,
1295        i.options.autoplay && i.autoPlay(),
1296        !0 === i.options.accessibility && (i.initADA(),
1297        i.options.focusOnChange && e(i.$slides.get(i.currentSlide)).attr("tabindex", 0).focus()))
1298    }
1299    ,
1300    t.prototype.prev = t.prototype.slickPrev = function() {
1301        this.changeSlide({
1302            data: {
1303                message: "previous"
1304            }
1305        })
1306    }
1307    ,
1308    t.prototype.preventDefault = function(e) {
1309        e.preventDefault()
1310    }
1311    ,
1312    t.prototype.progressiveLazyLoad = function(t) {
1313        t = t || 1;
1314        var i, o, n, s, a, r = this, l = e("img[data-lazy]", r.$slider);
1315        l.length ? (i = l.first(),
1316        o = i.attr("data-lazy"),
1317        n = i.attr("data-srcset"),
1318        s = i.attr("data-sizes") || r.$slider.attr("data-sizes"),
1319        (a = document.createElement("img")).onload = function() {
1320            n && (i.attr("srcset", n),
1321            s && i.attr("sizes", s)),
1322            i.attr("src", o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"),
1323            !0 === r.options.adaptiveHeight && r.setPosition(),
1324            r.$slider.trigger("lazyLoaded", [r, i, o]),
1325            r.progressiveLazyLoad()
1326        }
1327        ,
1328        a.onerror = function() {
1329            t < 3 ? setTimeout(function() {
1330                r.progressiveLazyLoad(t + 1)
1331            }, 500) : (i.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),
1332            r.$slider.trigger("lazyLoadError", [r, i, o]),
1333            r.progressiveLazyLoad())
1334        }
1335        ,
1336        a.src = o) : r.$slider.trigger("allImagesLoaded", [r])
1337    }
1338    ,
1339    t.prototype.refresh = function(t) {
1340        var i, o, n = this;
1341        o = n.slideCount - n.options.slidesToShow,
1342        !n.options.infinite && n.currentSlide > o && (n.currentSlide = o),
1343        n.slideCount <= n.options.slidesToShow && (n.currentSlide = 0),
1344        i = n.currentSlide,
1345        n.destroy(!0),
1346        e.extend(n, n.initials, {
1347            currentSlide: i
1348        }),
1349        n.init(),
1350        t || n.changeSlide({
1351            data: {
1352                message: "index",
1353                index: i
1354            }
1355        }, !1)
1356    }
1357    ,
1358    t.prototype.registerBreakpoints = function() {
1359        var t, i, o, n = this, s = n.options.responsive || null;
1360        if ("array" === e.type(s) && s.length) {
1361            n.respondTo = n.options.respondTo || "window";
1362            for (t in s)
1363                if (o = n.breakpoints.length - 1,
1364                s.hasOwnProperty(t)) {
1365                    for (i = s[t].breakpoint; o >= 0; )
1366                        n.breakpoints[o] && n.breakpoints[o] === i && n.breakpoints.splice(o, 1),
1367                        o--;
1368                    n.breakpoints.push(i),
1369                    n.breakpointSettings[i] = s[t].settings
1370                }
1371            n.breakpoints.sort(function(e, t) {
1372                return n.options.mobileFirst ? e - t : t - e
1373            })
1374        }
1375    }
1376    ,
1377    t.prototype.reinit = function() {
1378        var t = this;
1379        t.$slides = t.$slideTrack.children(t.options.slide).addClass("slick-slide"),
1380        t.slideCount = t.$slides.length,
1381        t.currentSlide >= t.slideCount && 0 !== t.currentSlide && (t.currentSlide = t.currentSlide - t.options.slidesToScroll),
1382        t.slideCount <= t.options.slidesToShow && (t.currentSlide = 0),
1383        t.registerBreakpoints(),
1384        t.setProps(),
1385        t.setupInfinite(),
1386        t.buildArrows(),
1387        t.updateArrows(),
1388        t.initArrowEvents(),
1389        t.buildDots(),
1390        t.updateDots(),
1391        t.initDotEvents(),
1392        t.cleanUpSlideEvents(),
1393        t.initSlideEvents(),
1394        t.checkResponsive(!1, !0),
1395        !0 === t.options.focusOnSelect && e(t.$slideTrack).children().on("click.slick", t.selectHandler),
1396        t.setSlideClasses("number" == typeof t.currentSlide ? t.currentSlide : 0),
1397        t.setPosition(),
1398        t.focusHandler(),
1399        t.paused = !t.options.autoplay,
1400        t.autoPlay(),
1401        t.$slider.trigger("reInit", [t])
1402    }
1403    ,
1404    t.prototype.resize = function() {
1405        var t = this;
1406        e(window).width() !== t.windowWidth && (clearTimeout(t.windowDelay),
1407        t.windowDelay = window.setTimeout(function() {
1408            t.windowWidth = e(window).width(),
1409            t.checkResponsive(),
1410            t.unslicked || t.setPosition()
1411        }, 50))
1412    }
1413    ,
1414    t.prototype.removeSlide = t.prototype.slickRemove = function(e, t, i) {
1415        var o = this;
1416        return e = "boolean" == typeof e ? !0 === (t = e) ? 0 : o.slideCount - 1 : !0 === t ? --e : e,
1417        !(o.slideCount < 1 || e < 0 || e > o.slideCount - 1) && (o.unload(),
1418        !0 === i ? o.$slideTrack.children().remove() : o.$slideTrack.children(this.options.slide).eq(e).remove(),
1419        o.$slides = o.$slideTrack.children(this.options.slide),
1420        o.$slideTrack.children(this.options.slide).detach(),
1421        o.$slideTrack.append(o.$slides),
1422        o.$slidesCache = o.$slides,
1423        o.reinit(),
1424        void 0)
1425    }
1426    ,
1427    t.prototype.setCSS = function(e) {
1428        var t, i, o = this, n = {};
1429        !0 === o.options.rtl && (e = -e),
1430        t = "left" == o.positionProp ? Math.ceil(e) + "px" : "0px",
1431        i = "top" == o.positionProp ? Math.ceil(e) + "px" : "0px",
1432        n[o.positionProp] = e,
1433        !1 === o.transformsEnabled ? o.$slideTrack.css(n) : (n = {},
1434        !1 === o.cssTransitions ? (n[o.animType] = "translate(" + t + ", " + i + ")",
1435        o.$slideTrack.css(n)) : (n[o.animType] = "translate3d(" + t + ", " + i + ", 0px)",
1436        o.$slideTrack.css(n)))
1437    }
1438    ,
1439    t.prototype.setDimensions = function() {
1440        var e = this;
1441        !1 === e.options.vertical ? !0 === e.options.centerMode && e.$list.css({
1442            padding: "0px " + e.options.centerPadding
1443        }) : (e.$list.height(e.$slides.first().outerHeight(!0) * e.options.slidesToShow),
1444        !0 === e.options.centerMode && e.$list.css({
1445            padding: e.options.centerPadding + " 0px"
1446        })),
1447        e.listWidth = e.$list.width(),
1448        e.listHeight = e.$list.height(),
1449        !1 === e.options.vertical && !1 === e.options.variableWidth ? (e.slideWidth = Math.ceil(e.listWidth / e.options.slidesToShow),
1450        e.$slideTrack.width(Math.ceil(e.slideWidth * e.$slideTrack.children(".slick-slide").length))) : !0 === e.options.variableWidth ? e.$slideTrack.width(5e3 * e.slideCount) : (e.slideWidth = Math.ceil(e.listWidth),
1451        e.$slideTrack.height(Math.ceil(e.$slides.first().outerHeight(!0) * e.$slideTrack.children(".slick-slide").length)));
1452        var t = e.$slides.first().outerWidth(!0) - e.$slides.first().width();
1453        !1 === e.options.variableWidth && e.$slideTrack.children(".slick-slide").width(e.slideWidth - t)
1454    }
1455    ,
1456    t.prototype.setFade = function() {
1457        var t, i = this;
1458        i.$slides.each(function(o, n) {
1459            t = i.slideWidth * o * -1,
1460            !0 === i.options.rtl ? e(n).css({
1461                position: "relative",
1462                right: t,
1463                top: 0,
1464                zIndex: i.options.zIndex - 2,
1465                opacity: 0
1466            }) : e(n).css({
1467                position: "relative",
1468                left: t,
1469                top: 0,
1470                zIndex: i.options.zIndex - 2,
1471                opacity: 0
1472            })
1473        }),
1474        i.$slides.eq(i.currentSlide).css({
1475            zIndex: i.options.zIndex - 1,
1476            opacity: 1
1477        })
1478    }
1479    ,
1480    t.prototype.setHeight = function() {
1481        var e = this;
1482        if (1 === e.options.slidesToShow && !0 === e.options.adaptiveHeight && !1 === e.options.vertical) {
1483            var t = e.$slides.eq(e.currentSlide).outerHeight(!0);
1484            e.$list.css("height", t)
1485        }
1486    }
1487    ,
1488    t.prototype.setOption = t.prototype.slickSetOption = function() {
1489        var t, i, o, n, s, a = this, r = !1;
1490        if ("object" === e.type(arguments[0]) ? (o = arguments[0],
1491        r = arguments[1],
1492        s = "multiple") : "string" === e.type(arguments[0]) && (o = arguments[0],
1493        n = arguments[1],
1494        r = arguments[2],
1495        "responsive" === arguments[0] && "array" === e.type(arguments[1]) ? s = "responsive" : void 0 !== arguments[1] && (s = "single")),
1496        "single" === s)
1497            a.options[o] = n;
1498        else if ("multiple" === s)
1499            e.each(o, function(e, t) {
1500                a.options[e] = t
1501            });
1502        else if ("responsive" === s)
1503            for (i in n)
1504                if ("array" !== e.type(a.options.responsive))
1505                    a.options.responsive = [n[i]];
1506                else {
1507                    for (t = a.options.responsive.length - 1; t >= 0; )
1508                        a.options.responsive[t].breakpoint === n[i].breakpoint && a.options.responsive.splice(t, 1),
1509                        t--;
1510                    a.options.responsive.push(n[i])
1511                }
1512        r && (a.unload(),
1513        a.reinit())
1514    }
1515    ,
1516    t.prototype.setPosition = function() {
1517        var e = this;
1518        e.setDimensions(),
1519        e.setHeight(),
1520        !1 === e.options.fade ? e.setCSS(e.getLeft(e.currentSlide)) : e.setFade(),
1521        e.$slider.trigger("setPosition", [e])
1522    }
1523    ,
1524    t.prototype.setProps = function() {
1525        var e = this
1526          , t = document.body.style;
1527        e.positionProp = !0 === e.options.vertical ? "top" : "left",
1528        "top" === e.positionProp ? e.$slider.addClass("slick-vertical") : e.$slider.removeClass("slick-vertical"),
1529        void 0 === t.WebkitTransition && void 0 === t.MozTransition && void 0 === t.msTransition || !0 === e.options.useCSS && (e.cssTransitions = !0),
1530        e.options.fade && ("number" == typeof e.options.zIndex ? e.options.zIndex < 3 && (e.options.zIndex = 3) : e.options.zIndex = e.defaults.zIndex),
1531        void 0 !== t.OTransform && (e.animType = "OTransform",
1532        e.transformType = "-o-transform",
1533        e.transitionType = "OTransition",
1534        void 0 === t.perspectiveProperty && void 0 === t.webkitPerspective && (e.animType = !1)),
1535        void 0 !== t.MozTransform && (e.animType = "MozTransform",
1536        e.transformType = "-moz-transform",
1537        e.transitionType = "MozTransition",
1538        void 0 === t.perspectiveProperty && void 0 === t.MozPerspective && (e.animType = !1)),
1539        void 0 !== t.webkitTransform && (e.animType = "webkitTransform",
1540        e.transformType = "-webkit-transform",
1541        e.transitionType = "webkitTransition",
1542        void 0 === t.perspectiveProperty && void 0 === t.webkitPerspective && (e.animType = !1)),
1543        void 0 !== t.msTransform && (e.animType = "msTransform",
1544        e.transformType = "-ms-transform",
1545        e.transitionType = "msTransition",
1546        void 0 === t.msTransform && (e.animType = !1)),
1547        void 0 !== t.transform && !1 !== e.animType && (e.animType = "transform",
1548        e.transformType = "transform",
1549        e.transitionType = "transition"),
1550        e.transformsEnabled = e.options.useTransform && null !== e.animType && !1 !== e.animType
1551    }
1552    ,
1553    t.prototype.setSlideClasses = function(e) {
1554        var t, i, o, n, s = this;
1555        if (i = s.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden", "true"),
1556        s.$slides.eq(e).addClass("slick-current"),
1557        !0 === s.options.centerMode) {
1558            var a = s.options.slidesToShow % 2 == 0 ? 1 : 0;
1559            t = Math.floor(s.options.slidesToShow / 2),
1560            !0 === s.options.infinite && (e >= t && e <= s.slideCount - 1 - t ? s.$slides.slice(e - t + a, e + t + 1).addClass("slick-active").attr("aria-hidden", "false") : (o = s.options.slidesToShow + e,
1561            i.slice(o - t + 1 + a, o + t + 2).addClass("slick-active").attr("aria-hidden", "false")),
1562            0 === e ? i.eq(i.length - 1 - s.options.slidesToShow).addClass("slick-center") : e === s.slideCount - 1 && i.eq(s.options.slidesToShow).addClass("slick-center")),
1563            s.$slides.eq(e).addClass("slick-center")
1564        } else
1565            e >= 0 && e <= s.slideCount - s.options.slidesToShow ? s.$slides.slice(e, e + s.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false") : i.length <= s.options.slidesToShow ? i.addClass("slick-active").attr("aria-hidden", "false") : (n = s.slideCount % s.options.slidesToShow,
1566            o = !0 === s.options.infinite ? s.options.slidesToShow + e : e,
1567            s.options.slidesToShow == s.options.slidesToScroll && s.slideCount - e < s.options.slidesToShow ? i.slice(o - (s.options.slidesToShow - n), o + n).addClass("slick-active").attr("aria-hidden", "false") : i.slice(o, o + s.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false"));
1568        "ondemand" !== s.options.lazyLoad && "anticipated" !== s.options.lazyLoad || s.lazyLoad()
1569    }
1570    ,
1571    t.prototype.setupInfinite = function() {
1572        var t, i, o, n = this;
1573        if (!0 === n.options.fade && (n.options.centerMode = !1),
1574        !0 === n.options.infinite && !1 === n.options.fade && (i = null,
1575        n.slideCount > n.options.slidesToShow)) {
1576            for (o = !0 === n.options.centerMode ? n.options.slidesToShow + 1 : n.options.slidesToShow,
1577            t = n.slideCount; t > n.slideCount - o; t -= 1)
1578                i = t - 1,
1579                e(n.$slides[i]).clone(!0).attr("id", "").attr("data-slick-index", i - n.slideCount).prependTo(n.$slideTrack).addClass("slick-cloned");
1580            for (t = 0; t < o + n.slideCount; t += 1)
1581                i = t,
1582                e(n.$slides[i]).clone(!0).attr("id", "").attr("data-slick-index", i + n.slideCount).appendTo(n.$slideTrack).addClass("slick-cloned");
1583            n.$slideTrack.find(".slick-cloned").find("[id]").each(function() {
1584                e(this).attr("id", "")
1585            })
1586        }
1587    }
1588    ,
1589    t.prototype.interrupt = function(e) {
1590        var t = this;
1591        e || t.autoPlay(),
1592        t.interrupted = e
1593    }
1594    ,
1595    t.prototype.selectHandler = function(t) {
1596        var i = this
1597          , o = e(t.target).is(".slick-slide") ? e(t.target) : e(t.target).parents(".slick-slide")
1598          , n = parseInt(o.attr("data-slick-index"));
1599        n || (n = 0),
1600        i.slideCount <= i.options.slidesToShow ? i.slideHandler(n, !1, !0) : i.slideHandler(n)
1601    }
1602    ,
1603    t.prototype.slideHandler = function(e, t, i) {
1604        var o, n, s, a, r, l = null, d = this;
1605        if (t = t || !1,
1606        !(!0 === d.animating && !0 === d.options.waitForAnimate || !0 === d.options.fade && d.currentSlide === e))
1607            if (!1 === t && d.asNavFor(e),
1608            o = e,
1609            l = d.getLeft(o),
1610            a = d.getLeft(d.currentSlide),
1611            d.currentLeft = null === d.swipeLeft ? a : d.swipeLeft,
1612            !1 === d.options.infinite && !1 === d.options.centerMode && (e < 0 || e > d.getDotCount() * d.options.slidesToScroll))
1613                !1 === d.options.fade && (o = d.currentSlide,
1614                !0 !== i ? d.animateSlide(a, function() {
1615                    d.postSlide(o)
1616                }) : d.postSlide(o));
1617            else if (!1 === d.options.infinite && !0 === d.options.centerMode && (e < 0 || e > d.slideCount - d.options.slidesToScroll))
1618                !1 === d.options.fade && (o = d.currentSlide,
1619                !0 !== i ? d.animateSlide(a, function() {
1620                    d.postSlide(o)
1621                }) : d.postSlide(o));
1622            else {
1623                if (d.options.autoplay && clearInterval(d.autoPlayTimer),
1624                n = o < 0 ? d.slideCount % d.options.slidesToScroll != 0 ? d.slideCount - d.slideCount % d.options.slidesToScroll : d.slideCount + o : o >= d.slideCount ? d.slideCount % d.options.slidesToScroll != 0 ? 0 : o - d.slideCount : o,
1625                d.animating = !0,
1626                d.$slider.trigger("beforeChange", [d, d.currentSlide, n]),
1627                s = d.currentSlide,
1628                d.currentSlide = n,
1629                d.setSlideClasses(d.currentSlide),
1630                d.options.asNavFor && (r = (r = d.getNavTarget()).slick("getSlick")).slideCount <= r.options.slidesToShow && r.setSlideClasses(d.currentSlide),
1631                d.updateDots(),
1632                d.updateArrows(),
1633                !0 === d.options.fade)
1634                    return !0 !== i ? (d.fadeSlideOut(s),
1635                    d.fadeSlide(n, function() {
1636                        d.postSlide(n)
1637                    })) : d.postSlide(n),
1638                    void d.animateHeight();
1639                !0 !== i ? d.animateSlide(l, function() {
1640                    d.postSlide(n)
1641                }) : d.postSlide(n)
1642            }
1643    }
1644    ,
1645    t.prototype.startLoad = function() {
1646        var e = this;
1647        !0 === e.options.arrows && e.slideCount > e.options.slidesToShow && (e.$prevArrow.hide(),
1648        e.$nextArrow.hide()),
1649        !0 === e.options.dots && e.slideCount > e.options.slidesToShow && e.$dots.hide(),
1650        e.$slider.addClass("slick-loading")
1651    }
1652    ,
1653    t.prototype.swipeDirection = function() {
1654        var e, t, i, o, n = this;
1655        return e = n.touchObject.startX - n.touchObject.curX,
1656        t = n.touchObject.startY - n.touchObject.curY,
1657        i = Math.atan2(t, e),
1658        (o = Math.round(180 * i / Math.PI)) < 0 && (o = 360 - Math.abs(o)),
1659        o <= 45 && o >= 0 ? !1 === n.options.rtl ? "left" : "right" : o <= 360 && o >= 315 ? !1 === n.options.rtl ? "left" : "right" : o >= 135 && o <= 225 ? !1 === n.options.rtl ? "right" : "left" : !0 === n.options.verticalSwiping ? o >= 35 && o <= 135 ? "down" : "up" : "vertical"
1660    }
1661    ,
1662    t.prototype.swipeEnd = function(e) {
1663        var t, i, o = this;
1664        if (o.dragging = !1,
1665        o.swiping = !1,
1666        o.scrolling)
1667            return o.scrolling = !1,
1668            !1;
1669        if (o.interrupted = !1,
1670        o.shouldClick = !(o.touchObject.swipeLength > 10),
1671        void 0 === o.touchObject.curX)
1672            return !1;
1673        if (!0 === o.touchObject.edgeHit && o.$slider.trigger("edge", [o, o.swipeDirection()]),
1674        o.touchObject.swipeLength >= o.touchObject.minSwipe) {
1675            switch (i = o.swipeDirection()) {
vendor: 4,757 bytes, lines 1676-1764
1676            case "left":
1677            case "down":
1678                t = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide + o.getSlideCount()) : o.currentSlide + o.getSlideCount(),
1679                o.currentDirection = 0;
1680                break;
1681            case "right":
1682            case "up":
1683                t = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide - o.getSlideCount()) : o.currentSlide - o.getSlideCount(),
1684                o.currentDirection = 1
1685            }
1686            "vertical" != i && (o.slideHandler(t),
1687            o.touchObject = {},
1688            o.$slider.trigger("swipe", [o, i]))
1689        } else
1690            o.touchObject.startX !== o.touchObject.curX && (o.slideHandler(o.currentSlide),
1691            o.touchObject = {})
1692    }
1693    ,
1694    t.prototype.swipeHandler = function(e) {
1695        var t = this;
1696        if (!(!1 === t.options.swipe || "ontouchend"in document && !1 === t.options.swipe || !1 === t.options.draggable && -1 !== e.type.indexOf("mouse")))
1697            switch (t.touchObject.fingerCount = e.originalEvent && void 0 !== e.originalEvent.touches ? e.originalEvent.touches.length : 1,
1698            t.touchObject.minSwipe = t.listWidth / t.options.touchThreshold,
1699            !0 === t.options.verticalSwiping && (t.touchObject.minSwipe = t.listHeight / t.options.touchThreshold),
1700            e.data.action) {
1701            case "start":
1702                t.swipeStart(e);
1703                break;
1704            case "move":
1705                t.swipeMove(e);
1706                break;
1707            case "end":
1708                t.swipeEnd(e)
1709            }
1710    }
1711    ,
1712    t.prototype.swipeMove = function(e) {
1713        var t, i, o, n, s, a, r = this;
1714        return s = void 0 !== e.originalEvent ? e.originalEvent.touches : null,
1715        !(!r.dragging || r.scrolling || s && 1 !== s.length) && (t = r.getLeft(r.currentSlide),
1716        r.touchObject.curX = void 0 !== s ? s[0].pageX : e.clientX,
1717        r.touchObject.curY = void 0 !== s ? s[0].pageY : e.clientY,
1718        r.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(r.touchObject.curX - r.touchObject.startX, 2))),
1719        a = Math.round(Math.sqrt(Math.pow(r.touchObject.curY - r.touchObject.startY, 2))),
1720        !r.options.verticalSwiping && !r.swiping && a > 4 ? (r.scrolling = !0,
1721        !1) : (!0 === r.options.verticalSwiping && (r.touchObject.swipeLength = a),
1722        i = r.swipeDirection(),
1723        void 0 !== e.originalEvent && r.touchObject.swipeLength > 4 && (r.swiping = !0,
1724        e.preventDefault()),
1725        n = (!1 === r.options.rtl ? 1 : -1) * (r.touchObject.curX > r.touchObject.startX ? 1 : -1),
1726        !0 === r.options.verticalSwiping && (n = r.touchObject.curY > r.touchObject.startY ? 1 : -1),
1727        o = r.touchObject.swipeLength,
1728        r.touchObject.edgeHit = !1,
1729        !1 === r.options.infinite && (0 === r.currentSlide && "right" === i || r.currentSlide >= r.getDotCount() && "left" === i) && (o = r.touchObject.swipeLength * r.options.edgeFriction,
1730        r.touchObject.edgeHit = !0),
1731        !1 === r.options.vertical ? r.swipeLeft = t + o * n : r.swipeLeft = t + o * (r.$list.height() / r.listWidth) * n,
1732        !0 === r.options.verticalSwiping && (r.swipeLeft = t + o * n),
1733        !0 !== r.options.fade && !1 !== r.options.touchMove && (!0 === r.animating ? (r.swipeLeft = null,
1734        !1) : void r.setCSS(r.swipeLeft))))
1735    }
1736    ,
1737    t.prototype.swipeStart = function(e) {
1738        var t, i = this;
1739        return i.interrupted = !0,
1740        1 !== i.touchObject.fingerCount || i.slideCount <= i.options.slidesToShow ? (i.touchObject = {},
1741        !1) : (void 0 !== e.originalEvent && void 0 !== e.originalEvent.touches && (t = e.originalEvent.touches[0]),
1742        i.touchObject.startX = i.touchObject.curX = void 0 !== t ? t.pageX : e.clientX,
1743        i.touchObject.startY = i.touchObject.curY = void 0 !== t ? t.pageY : e.clientY,
1744        i.dragging = !0,
1745        void 0)
1746    }
1747    ,
1748    t.prototype.unfilterSlides = t.prototype.slickUnfilter = function() {
1749        var e = this;
1750        null !== e.$slidesCache && (e.unload(),
1751        e.$slideTrack.children(this.options.slide).detach(),
1752        e.$slidesCache.appendTo(e.$slideTrack),
1753        e.reinit())
1754    }
1755    ,
1756    t.prototype.unload = function() {
1757        var t = this;
1758        e(".slick-cloned", t.$slider).remove(),
1759        t.$dots && t.$dots.remove(),
1760        t.$prevArrow && t.htmlExpr.test(t.options.prevArrow) && t.$prevArrow.remove(),
1761        t.$nextArrow && t.htmlExpr.test(t.options.nextArrow) && t.$nextArrow.remove(),
1762        t.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden", "true").css("width", "")
1763    }
1764    ,
1765    t.prototype.unslick = function(e) {
1766        var t = this;
1767        t.$slider.trigger("unslick", [t, e]),
1768        t.destroy()
1769    }
1770    ,
1771    t.prototype.updateArrows = function() {
1772        var e = this;
1773        Math.floor(e.options.slidesToShow / 2),
1774        !0 === e.options.arrows && e.slideCount > e.options.slidesToShow && !e.options.infinite && (e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"),
1775        e.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false"),
1776        0 === e.currentSlide ? (e.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true"),
1777        e.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : e.currentSlide >= e.slideCount - e.options.slidesToShow && !1 === e.options.centerMode ? (e.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"),
1778        e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : e.currentSlide >= e.slideCount - 1 && !0 === e.options.centerMode && (e.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"),
1779        e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")))
1780    }
1781    ,
1782    t.prototype.updateDots = function() {
1783        var e = this;
1784        null !== e.$dots && (e.$dots.find("li").removeClass("slick-active").end(),
1785        e.$dots.find("li").eq(Math.floor(e.currentSlide / e.options.slidesToScroll)).addClass("slick-active"))
1786    }
1787    ,
1788    t.prototype.visibility = function() {
1789        var e = this;
1790        e.options.autoplay && (document[e.hidden] ? e.interrupted = !0 : e.interrupted = !1)
1791    }
1792    ,
1793    e.fn.slick = function() {
1794        var e, i, o = this, n = arguments[0], s = Array.prototype.slice.call(arguments, 1), a = o.length;
1795        for (e = 0; e < a; e++)
1796            if ("object" == typeof n || void 0 === n ? o[e].slick = new t(o[e],n) : i = o[e].slick[n].apply(o[e].slick, s),
1797            void 0 !== i)
1798                return i;
1799        return o
1800    }
1801}),
1802/*
1803 *  Vide - v0.5.1
1804 *  Easy as hell jQuery plugin for video backgrounds.
1805 *  http://vodkabears.github.io/vide/
1806 *
1807 *  Made by Ilya Makarov
1808 *  Under MIT License
1809 */
1810!function(e, t) {
1811    "function" == typeof define && define.amd ? define(["jquery"], t) : t("object" == typeof exports ? require("jquery") : e.jQuery)
1812}(this, function(e) {
1813    "use strict";
1814    function t(e) {
1815        var t, i, o, n, s, a, r, l = {};
1816        for (s = e.replace(/\s*:\s*/g, ":").replace(/\s*,\s*/g, ",").split(","),
1817        r = 0,
1818        a = s.length; r < a && (i = s[r],
1819        i.search(/^(http|https|ftp):\/\//) === -1 && i.search(":") !== -1); r++)
1820            t = i.indexOf(":"),
1821            o = i.substring(0, t),
1822            n = i.substring(t + 1),
1823            n || (n = void 0),
1824            "string" == typeof n && (n = "true" === n || "false" !== n && n),
1825            "string" == typeof n && (n = isNaN(n) ? n : +n),
1826            l[o] = n;
1827        return null == o && null == n ? e : l
1828    }
1829    function i(e) {
1830        e = "" + e;
1831        var t, i, o, n = e.split(/\s+/), s = "50%", a = "50%";
1832        for (o = 0,
1833        t = n.length; o < t; o++)
1834            i = n[o],
1835            "left" === i ? s = "0%" : "right" === i ? s = "100%" : "top" === i ? a = "0%" : "bottom" === i ? a = "100%" : "center" === i ? 0 === o ? s = "50%" : a = "50%" : 0 === o ? s = i : a = i;
1836        return {
1837            x: s,
1838            y: a
1839        }
1840    }
1841    function o(t, i) {
1842        var o = function() {
1843            i(this.src)
1844        };
1845        e('<img src="' + t + '.gif">').on("load", o),
1846        e('<img src="' + t + '.jpg">').on("load", o),
1847        e('<img src="' + t + '.jpeg">').on("load", o),
1848        e('<img src="' + t + '.png">').on("load", o)
1849    }
1850    function n(i, o, n) {
1851        if (this.$element = e(i),
1852        "string" == typeof o && (o = t(o)),
1853        n ? "string" == typeof n && (n = t(n)) : n = {},
1854        "string" == typeof o)
1855            o = o.replace(/\.\w*$/, "");
1856        else if ("object" == typeof o)
1857            for (var s in o)
1858                o.hasOwnProperty(s) && (o[s] = o[s].replace(/\.\w*$/, ""));
1859        this.settings = e.extend({}, a, n),
1860        this.path = o;
1861        try {
1862            this.init()
1863        } catch (l) {
1864            if (l.message !== r)
1865                throw l
1866        }
1867    }
1868    var s = "vide"
1869      , a = {
1870        volume: 1,
1871        playbackRate: 1,
1872        muted: !0,
1873        loop: !0,
1874        autoplay: !0,
1875        position: "50% 50%",
1876        posterType: "detect",
1877        resizing: !0,
1878        bgColor: "transparent",
1879        className: ""
1880    }
1881      , r = "Not implemented";
1882    n.prototype.init = function() {
1883        var t, n, s = this, a = s.path, l = a, d = "", c = s.$element, p = s.settings, u = i(p.position), f = p.posterType;
1884        n = s.$wrapper = e("<div>").addClass(p.className).css({
1885            position: "absolute",
1886            "z-index": -1,
1887            top: 0,
1888            left: 0,
1889            bottom: 0,
1890            right: 0,
1891            overflow: "hidden",
1892            "-webkit-background-size": "cover",
1893            "-moz-background-size": "cover",
1894            "-o-background-size": "cover",
1895            "background-size": "cover",
1896            "background-color": p.bgColor,
1897            "background-repeat": "no-repeat",
1898            "background-position": u.x + " " + u.y
1899        }),
1900        "object" == typeof a && (a.poster ? l = a.poster : a.mp4 ? l = a.mp4 : a.webm ? l = a.webm : a.ogv && (l = a.ogv)),
1901        "detect" === f ? o(l, function(e) {
1902            n.css("background-image", "url(" + e + ")")
1903        }) : "none" !== f && n.css("background-image", "url(" + l + "." + f + ")"),
1904        "static" === c.css("position") && c.css("position", "relative"),
1905        c.prepend(n),
1906        "object" == typeof a ? (a.mp4 && (d += '<source src="' + a.mp4 + '.mp4" type="video/mp4">'),
1907        a.webm && (d += '<source src="' + a.webm + '.webm" type="video/webm">'),
1908        a.ogv && (d += '<source src="' + a.ogv + '.ogv" type="video/ogg">'),
1909        t = s.$video = e("<video>" + d + "</video>")) : t = s.$video = e('<video><source src="' + a + '.mp4" type="video/mp4"><source src="' + a + '.webm" type="video/webm"><source src="' + a + '.ogv" type="video/ogg"></video>');
1910        try {
1911            t.prop({
1912                autoplay: p.autoplay,
1913                loop: p.loop,
1914                volume: p.volume,
1915                muted: p.muted,
1916                defaultMuted: p.muted,
1917                playbackRate: p.playbackRate,
1918                defaultPlaybackRate: p.playbackRate
1919            })
1920        } catch (h) {
1921            throw new Error(r)
1922        }
1923        t.css({
1924            margin: "auto",
1925            position: "absolute",
1926            "z-index": -1,
1927            top: u.y,
1928            left: u.x,
1929            "-webkit-transform": "translate(-" + u.x + ", -" + u.y + ")",
1930            "-ms-transform": "translate(-" + u.x + ", -" + u.y + ")",
1931            "-moz-transform": "translate(-" + u.x + ", -" + u.y + ")",
1932            transform: "translate(-" + u.x + ", -" + u.y + ")",
1933            visibility: "hidden",
1934            opacity: 0
1935        }).one("canplaythrough.vide", function() {
1936            s.resize()
1937        }).one("playing.vide", function() {
1938            t.css({
1939                visibility: "visible",
1940                opacity: 1
1941            }),
1942            n.css("background-image", "none")
1943        }),
1944        c.on("resize.vide", function() {
1945            p.resizing && s.resize()
1946        }),
1947        n.append(t)
1948    }
1949    ,
1950    n.prototype.getVideoObject = function() {
1951        return this.$video[0]
1952    }
1953    ,
1954    n.prototype.resize = function() {
1955        if (this.$video) {
1956            var e = this.$wrapper
1957              , t = this.$video
1958              , i = t[0]
1959              , o = i.videoHeight
1960              , n = i.videoWidth
1961              , s = e.height()
1962              , a = e.width();
1963            a / n > s / o ? t.css({
1964                width: a + 2,
1965                height: "auto"
1966            }) : t.css({
1967                width: "auto",
1968                height: s + 2
1969            })
1970        }
1971    }
1972    ,
1973    n.prototype.destroy = function() {
1974        delete e[s].lookup[this.index],
1975        this.$video && this.$video.off(s),
1976        this.$element.off(s).removeData(s),
1977        this.$wrapper.remove()
1978    }
1979    ,
1980    e[s] = {
1981        lookup: []
1982    },
1983    e.fn[s] = function(t, i) {
1984        var o;
1985        return this.each(function() {
1986            o = e.data(this, s),
1987            o && o.destroy(),
1988            o = new n(this,t,i),
1989            o.index = e[s].lookup.push(o) - 1,
1990            e.data(this, s, o)
1991        }),
1992        this
1993    }
1994    ,
1995    e(document).ready(function() {
1996        var t = e(window);
1997        t.on("resize.vide", function() {
1998            for (var t, i = e[s].lookup.length, o = 0; o < i; o++)
1999                t = e[s].lookup[o],
2000                t && t.settings.resizing && t.resize()
2001        }),
2002        t.on("unload.vide", function() {
2003            return !1
2004        }),
2005        e(document).find("[data-vide-bg]").each(function(t, i) {
2006            var o = e(i)
2007              , n = o.data("vide-options")
2008              , a = o.data("vide-bg");
2009            o[s](a, n)
2010        })
2011    })
2012}),
2013/*!
2014 * Name    : Just Another Parallax [Jarallax]
2015 * Version : 1.10.3
2016 * Author  : nK <https://nkdev.info>
2017 * GitHub  : https://github.com/nk-o/jarallax
2018 */
2019!function(e) {
2020    function t(o) {
2021        if (i[o])
2022            return i[o].exports;
2023        var n = i[o] = {
2024            i: o,
2025            l: !1,
2026            exports: {}
2027        };
2028        return e[o].call(n.exports, n, n.exports, t),
2029        n.l = !0,
2030        n.exports
2031    }
2032    var i = {};
2033    t.m = e,
2034    t.c = i,
2035    t.d = function(e, i, o) {
2036        t.o(e, i) || Object.defineProperty(e, i, {
2037            configurable: !1,
2038            enumerable: !0,
2039            get: o
2040        })
2041    }
2042    ,
2043    t.n = function(e) {
2044        var i = e && e.__esModule ? function() {
2045            return e["default"]
2046        }
2047        : function() {
2048            return e
2049        }
2050        ;
2051        return t.d(i, "a", i),
2052        i
2053    }
2054    ,
2055    t.o = function(e, t) {
2056        return Object.prototype.hasOwnProperty.call(e, t)
2057    }
2058    ,
2059    t.p = "",
2060    t(t.s = 11)
2061}([function(e, t, i) {
2062    "use strict";
2063    (function(t) {
2064        var i;
2065        i = "undefined" != typeof window ? window : void 0 !== t ? t : "undefined" != typeof self ? self : {},
2066        e.exports = i
2067    }
2068    ).call(t, i(2))
2069}
2070, function(e, t, i) {
2071    "use strict";
2072    e.exports = function(e) {
2073        "complete" === document.readyState || "interactive" === document.readyState ? e.call() : document.attachEvent ? document.attachEvent("onreadystatechange", function() {
2074            "interactive" === document.readyState && e.call()
2075        }) : document.addEventListener && document.addEventListener("DOMContentLoaded", e)
2076    }
2077}
2078, function(e, t, i) {
2079    "use strict";
2080    var o, n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
2081        return typeof e
2082    }
2083    : function(e) {
2084        return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
2085    }
2086    ;
2087    o = function() {
2088        return this
2089    }();
2090    try {
2091        o = o || Function("return this")() || (0,
2092        eval)("this")
2093    } catch (e) {
2094        "object" === ("undefined" == typeof window ? "undefined" : n(window)) && (o = window)
2095    }
2096    e.exports = o
2097}
2098, , , , , , , , , function(e, t, i) {
2099    e.exports = i(12)
2100}
2101, function(e, t, i) {
2102    "use strict";
2103    function o(e) {
2104        return e && e.__esModule ? e : {
2105            "default": e
2106        }
2107    }
2108    var n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
2109        return typeof e
2110    }
2111    : function(e) {
2112        return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
2113    }
2114      , s = o(i(1))
2115      , a = i(0)
2116      , r = o(i(13))
2117      , l = a.window.jarallax;
2118    if (a.window.jarallax = r["default"],
2119    a.window.jarallax.noConflict = function() {
2120        return a.window.jarallax = l,
2121        this
2122    }
2123    ,
2124    void 0 !== a.jQuery) {
2125        var d = function() {
2126            var e = arguments || [];
2127            Array.prototype.unshift.call(e, this);
2128            var t = r["default"].apply(a.window, e);
2129            return "object" !== (void 0 === t ? "undefined" : n(t)) ? t : this
2130        };
2131        d.constructor = r["default"].constructor;
2132        var c = a.jQuery.fn.jarallax;
2133        a.jQuery.fn.jarallax = d,
2134        a.jQuery.fn.jarallax.noConflict = function() {
2135            return a.jQuery.fn.jarallax = c,
2136            this
2137        }
2138    }
2139    (0,
2140    s["default"])(function() {
2141        (0,
2142        r["default"])(document.querySelectorAll("[data-jarallax]"))
2143    })
2144}
2145, function(e, t, i) {
2146    "use strict";
2147    (function(e) {
2148        function o(e) {
2149            return e && e.__esModule ? e : {
2150                "default": e
2151            }
2152        }
2153        function n(e) {
2154            f = p.window.innerWidth || document.documentElement.clientWidth,
2155            h = p.window.innerHeight || document.documentElement.clientHeight,
2156            "object" !== (void 0 === e ? "undefined" : l(e)) || "load" !== e.type && "dom-loaded" !== e.type || (v = !0)
2157        }
2158        function s() {
2159            if (g.length) {
2160                m = void 0 !== p.window.pageYOffset ? p.window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
2161                var e = v || !b || b.width !== f || b.height !== h
2162                  , t = y || e || !b || b.y !== m;
2163                y = v = !1,
2164                (e || t) && (g.forEach(function(i) {
2165                    e && i.onResize(),
2166                    t && i.onScroll()
2167                }),
2168                b = {
2169                    width: f,
2170                    height: h,
2171                    y: m
2172                }),
2173                (0,
2174                c["default"])(s)
2175            }
2176        }
2177        Object.defineProperty(t, "__esModule", {
2178            value: !0
2179        });
2180        var a = function(e, t) {
2181            if (Array.isArray(e))
2182                return e;
2183            if (Symbol.iterator in Object(e))
2184                return function(e, t) {
2185                    var i = []
2186                      , o = !0
2187                      , n = !1
2188                      , s = void 0;
2189                    try {
2190                        for (var a, r = e[Symbol.iterator](); !(o = (a = r.next()).done) && (i.push(a.value),
2191                        !t || i.length !== t); o = !0)
2192                            ;
2193                    } catch (e) {
2194                        n = !0,
2195                        s = e
2196                    } finally {
2197                        try {
2198                            !o && r["return"] && r["return"]()
2199                        } finally {
2200                            if (n)
2201                                throw s
2202                        }
2203                    }
2204                    return i
2205                }(e, t);
2206            throw new TypeError("Invalid attempt to destructure non-iterable instance")
2207        }
2208          , r = function() {
2209            function e(e, t) {
2210                for (var i = 0; i < t.length; i++) {
2211                    var o = t[i];
2212                    o.enumerable = o.enumerable || !1,
2213                    o.configurable = !0,
2214                    "value"in o && (o.writable = !0),
2215                    Object.defineProperty(e, o.key, o)
2216                }
2217            }
2218            return function(t, i, o) {
2219                return i && e(t.prototype, i),
2220                o && e(t, o),
2221                t
2222            }
2223        }()
2224          , l = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
2225            return typeof e
2226        }
2227        : function(e) {
2228            return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
2229        }
2230          , d = o(i(1))
2231          , c = o(i(14))
2232          , p = i(0)
2233          , u = function() {
2234            for (var e = "transform WebkitTransform MozTransform".split(" "), t = document.createElement("div"), i = 0; i < e.length; i++)
2235                if (t && void 0 !== t.style[e[i]])
2236                    return e[i];
2237            return !1
2238        }()
2239          , f = void 0
2240          , h = void 0
2241          , m = void 0
2242          , v = !1
2243          , y = !1;
2244        n(),
2245        p.window.addEventListener("resize", n),
2246        p.window.addEventListener("orientationchange", n),
2247        p.window.addEventListener("load", n),
2248        (0,
2249        d["default"])(function() {
2250            n({
2251                type: "dom-loaded"
2252            })
2253        });
2254        var g = []
2255          , b = !1
2256          , w = !!e.ResizeObserver && new e.ResizeObserver(function(e) {
2257            e && e.length && (0,
2258            c["default"])(function() {
2259                e.forEach(function(e) {
2260                    e.target && e.target.jarallax && (v || e.target.jarallax.onResize(),
2261                    y = !0)
2262                })
2263            })
2264        }
2265        )
2266          , k = 0
2267          , $ = function() {
2268            function e(t, i) {
2269                !function(e, t) {
2270                    if (!(e instanceof t))
2271                        throw new TypeError("Cannot call a class as a function")
2272                }(this, e);
2273                var o = this;
2274                o.instanceID = k++,
2275                o.$item = t,
2276                o.defaults = {
2277                    type: "scroll",
2278                    speed: .5,
2279                    imgSrc: null,
2280                    imgElement: ".jarallax-img",
2281                    imgSize: "cover",
2282                    imgPosition: "50% 50%",
2283                    imgRepeat: "no-repeat",
2284                    keepImg: !1,
2285                    elementInViewport: null,
2286                    zIndex: -100,
2287                    disableParallax: !0,
2288                    disableVideo: !0,
2289                    automaticResize: !0,
2290                    videoSrc: null,
2291                    videoStartTime: 0,
2292                    videoEndTime: 0,
2293                    videoVolume: 0,
2294                    videoPlayOnlyVisible: !0,
2295                    onScroll: null,
2296                    onInit: null,
2297                    onDestroy: null,
2298                    onCoverImage: null
2299                };
2300                var n = o.$item.getAttribute("data-jarallax")
2301                  , s = JSON.parse(n || "{}");
2302                n && console.warn("Detected usage of deprecated data-jarallax JSON options, you should use pure data-attribute options. See info here - https://github.com/nk-o/jarallax/issues/53");
2303                var r = o.$item.dataset || {}
2304                  , d = {};
2305                if (Object.keys(r).forEach(function(e) {
2306                    var t = e.substr(0, 1).toLowerCase() + e.substr(1);
2307                    t && void 0 !== o.defaults[t] && (d[t] = r[e])
2308                }),
2309                o.options = o.extend({}, o.defaults, s, d, i),
2310                o.pureOptions = o.extend({}, o.options),
2311                Object.keys(o.options).forEach(function(e) {
2312                    "true" === o.options[e] ? o.options[e] = !0 : "false" === o.options[e] && (o.options[e] = !1)
2313                }),
2314                o.options.speed = Math.min(2, Math.max(-1, parseFloat(o.options.speed))),
2315                (o.options.noAndroid || o.options.noIos) && (console.warn("Detected usage of deprecated noAndroid or noIos options, you should use disableParallax option. See info here - https://github.com/nk-o/jarallax/#disable-on-mobile-devices"),
2316                o.options.disableParallax || (o.options.noIos && o.options.noAndroid ? o.options.disableParallax = /iPad|iPhone|iPod|Android/ : o.options.noIos ? o.options.disableParallax = /iPad|iPhone|iPod/ : o.options.noAndroid && (o.options.disableParallax = /Android/))),
2317                "string" == typeof o.options.disableParallax && (o.options.disableParallax = new RegExp(o.options.disableParallax)),
2318                o.options.disableParallax instanceof RegExp) {
2319                    var c = o.options.disableParallax;
2320                    o.options.disableParallax = function() {
2321                        return c.test(navigator.userAgent)
2322                    }
2323                }
2324                if ("function" != typeof o.options.disableParallax && (o.options.disableParallax = function() {
2325                    return !1
2326                }
2327                ),
2328                "string" == typeof o.options.disableVideo && (o.options.disableVideo = new RegExp(o.options.disableVideo)),
2329                o.options.disableVideo instanceof RegExp) {
2330                    var p = o.options.disableVideo;
2331                    o.options.disableVideo = function() {
2332                        return p.test(navigator.userAgent)
2333                    }
2334                }
2335                "function" != typeof o.options.disableVideo && (o.options.disableVideo = function() {
2336                    return !1
2337                }
2338                );
2339                var u = o.options.elementInViewport;
2340                u && "object" === (void 0 === u ? "undefined" : l(u)) && void 0 !== u.length && (u = a(u, 1)[0]),
2341                u instanceof Element || (u = null),
2342                o.options.elementInViewport = u,
2343                o.image = {
2344                    src: o.options.imgSrc || null,
2345                    $container: null,
2346                    useImgTag: !1,
2347                    position: /iPad|iPhone|iPod|Android/.test(navigator.userAgent) ? "absolute" : "fixed"
2348                },
2349                o.initImg() && o.canInitParallax() && o.init()
2350            }
2351            return r(e, [{
2352                key: "css",
2353                value: function(e, t) {
2354                    return "string" == typeof t ? p.window.getComputedStyle(e).getPropertyValue(t) : (t.transform && u && (t[u] = t.transform),
2355                    Object.keys(t).forEach(function(i) {
2356                        e.style[i] = t[i]
2357                    }),
2358                    e)
2359                }
2360            }, {
2361                key: "extend",
2362                value: function(e) {
2363                    var t = arguments;
2364                    return e = e || {},
2365                    Object.keys(arguments).forEach(function(i) {
2366                        t[i] && Object.keys(t[i]).forEach(function(o) {
2367                            e[o] = t[i][o]
2368                        })
2369                    }),
2370                    e
2371                }
2372            }, {
2373                key: "getWindowData",
2374                value: function() {
2375                    return {
2376                        width: f,
2377                        height: h,
2378                        y: m
2379                    }
2380                }
2381            }, {
2382                key: "initImg",
2383                value: function() {
2384                    var e = this
2385                      , t = e.options.imgElement;
2386                    return t && "string" == typeof t && (t = e.$item.querySelector(t)),
2387                    t instanceof Element || (t = null),
2388                    t && (e.options.keepImg ? e.image.$item = t.cloneNode(!0) : (e.image.$item = t,
2389                    e.image.$itemParent = t.parentNode),
2390                    e.image.useImgTag = !0),
2391                    !(!e.image.$item && (null === e.image.src && (e.image.src = e.css(e.$item, "background-image").replace(/^url\(['"]?/g, "").replace(/['"]?\)$/g, "")),
2392                    !e.image.src || "none" === e.image.src))
2393                }
2394            }, {
2395                key: "canInitParallax",
2396                value: function() {
2397                    return u && !this.options.disableParallax()
2398                }
2399            }, {
2400                key: "init",
2401                value: function() {
2402                    var e = this
2403                      , t = {
2404                        position: "absolute",
2405                        top: 0,
2406                        left: 0,
2407                        width: "100%",
2408                        height: "100%",
2409                        overflow: "hidden",
2410                        pointerEvents: "none"
2411                    }
2412                      , i = {};
2413                    if (!e.options.keepImg) {
2414                        var o = e.$item.getAttribute("style");
2415                        if (o && e.$item.setAttribute("data-jarallax-original-styles", o),
2416                        e.image.useImgTag) {
2417                            var n = e.image.$item.getAttribute("style");
2418                            n && e.image.$item.setAttribute("data-jarallax-original-styles", n)
2419                        }
2420                    }
2421                    if ("static" === e.css(e.$item, "position") && e.css(e.$item, {
2422                        position: "relative"
2423                    }),
2424                    "auto" === e.css(e.$item, "z-index") && e.css(e.$item, {
2425                        zIndex: 0
2426                    }),
2427                    e.image.$container = document.createElement("div"),
2428                    e.css(e.image.$container, t),
2429                    e.css(e.image.$container, {
2430                        "z-index": e.options.zIndex
2431                    }),
2432                    e.image.$container.setAttribute("id", "jarallax-container-" + e.instanceID),
2433                    e.$item.appendChild(e.image.$container),
2434                    e.image.useImgTag ? i = e.extend({
2435                        "object-fit": e.options.imgSize,
2436                        "object-position": e.options.imgPosition,
2437                        "font-family": "object-fit: " + e.options.imgSize + "; object-position: " + e.options.imgPosition + ";",
2438                        "max-width": "none"
2439                    }, t, i) : (e.image.$item = document.createElement("div"),
2440                    e.image.src && (i = e.extend({
2441                        "background-position": e.options.imgPosition,
2442                        "background-size": e.options.imgSize,
2443                        "background-repeat": e.options.imgRepeat,
2444                        "background-image": 'url("' + e.image.src + '")'
2445                    }, t, i))),
2446                    "opacity" !== e.options.type && "scale" !== e.options.type && "scale-opacity" !== e.options.type && 1 !== e.options.speed || (e.image.position = "absolute"),
2447                    "fixed" === e.image.position)
2448                        for (var s = 0, a = e.$item; null !== a && a !== document && 0 === s; ) {
2449                            var r = e.css(a, "-webkit-transform") || e.css(a, "-moz-transform") || e.css(a, "transform");
2450                            r && "none" !== r && (s = 1,
2451                            e.image.position = "absolute"),
2452                            a = a.parentNode
2453                        }
2454                    i.position = e.image.position,
2455                    e.css(e.image.$item, i),
2456                    e.image.$container.appendChild(e.image.$item),
2457                    e.coverImage(),
2458                    e.clipContainer(),
2459                    e.onScroll(!0),
2460                    e.options.automaticResize && w && w.observe(e.$item),
2461                    e.options.onInit && e.options.onInit.call(e),
2462                    "none" !== e.css(e.$item, "background-image") && e.css(e.$item, {
2463                        "background-image": "none"
2464                    }),
2465                    e.addToParallaxList()
2466                }
2467            }, {
2468                key: "addToParallaxList",
2469                value: function() {
2470                    g.push(this),
2471                    1 === g.length && s()
2472                }
2473            }, {
2474                key: "removeFromParallaxList",
2475                value: function() {
2476                    var e = this;
2477                    g.forEach(function(t, i) {
2478                        t.instanceID === e.instanceID && g.splice(i, 1)
2479                    })
2480                }
2481            }, {
2482                key: "destroy",
2483                value: function() {
2484                    var e = this;
2485                    e.removeFromParallaxList();
2486                    var t = e.$item.getAttribute("data-jarallax-original-styles");
2487                    if (e.$item.removeAttribute("data-jarallax-original-styles"),
2488                    t ? e.$item.setAttribute("style", t) : e.$item.removeAttribute("style"),
2489                    e.image.useImgTag) {
2490                        var i = e.image.$item.getAttribute("data-jarallax-original-styles");
2491                        e.image.$item.removeAttribute("data-jarallax-original-styles"),
2492                        i ? e.image.$item.setAttribute("style", t) : e.image.$item.removeAttribute("style"),
2493                        e.image.$itemParent && e.image.$itemParent.appendChild(e.image.$item)
2494                    }
2495                    e.$clipStyles && e.$clipStyles.parentNode.removeChild(e.$clipStyles),
2496                    e.image.$container && e.image.$container.parentNode.removeChild(e.image.$container),
2497                    e.options.onDestroy && e.options.onDestroy.call(e),
2498                    delete e.$item.jarallax
2499                }
2500            }, {
2501                key: "clipContainer",
2502                value: function() {
2503                    if ("fixed" === this.image.position) {
2504                        var e = this
2505                          , t = e.image.$container.getBoundingClientRect()
2506                          , i = t.width
2507                          , o = t.height;
2508                        e.$clipStyles || (e.$clipStyles = document.createElement("style"),
2509                        e.$clipStyles.setAttribute("type", "text/css"),
2510                        e.$clipStyles.setAttribute("id", "jarallax-clip-" + e.instanceID),
2511                        (document.head || document.getElementsByTagName("head")[0]).appendChild(e.$clipStyles));
2512                        var n = "#jarallax-container-" + e.instanceID + " {\n           clip: rect(0 " + i + "px " + o + "px 0);\n           clip: rect(0, " + i + "px, " + o + "px, 0);\n        }";
2513                        e.$clipStyles.styleSheet ? e.$clipStyles.styleSheet.cssText = n : e.$clipStyles.innerHTML = n
2514                    }
2515                }
2516            }, {
2517                key: "coverImage",
2518                value: function() {
2519                    var e = this
2520                      , t = e.image.$container.getBoundingClientRect()
2521                      , i = t.height
2522                      , o = e.options.speed
2523                      , n = "scroll" === e.options.type || "scroll-opacity" === e.options.type
2524                      , s = 0
2525                      , a = i
2526                      , r = 0;
2527                    return n && (s = o < 0 ? o * Math.max(i, h) : o * (i + h),
2528                    1 < o ? a = Math.abs(s - h) : o < 0 ? a = s / o + Math.abs(s) : a += Math.abs(h - i) * (1 - o),
2529                    s /= 2),
2530                    e.parallaxScrollDistance = s,
2531                    r = n ? (h - a) / 2 : (i - a) / 2,
2532                    e.css(e.image.$item, {
2533                        height: a + "px",
2534                        marginTop: r + "px",
2535                        left: "fixed" === e.image.position ? t.left + "px" : "0",
2536                        width: t.width + "px"
2537                    }),
2538                    e.options.onCoverImage && e.options.onCoverImage.call(e),
2539                    {
2540                        image: {
2541                            height: a,
2542                            marginTop: r
2543                        },
2544                        container: t
2545                    }
2546                }
2547            }, {
2548                key: "isVisible",
2549                value: function() {
2550                    return this.isElementInViewport || !1
2551                }
2552            }, {
2553                key: "onScroll",
2554                value: function(e) {
2555                    var t = this
2556                      , i = t.$item.getBoundingClientRect()
2557                      , o = i.top
2558                      , n = i.height
2559                      , s = {}
2560                      , a = i;
2561                    if (t.options.elementInViewport && (a = t.options.elementInViewport.getBoundingClientRect()),
2562                    t.isElementInViewport = 0 <= a.bottom && 0 <= a.right && a.top <= h && a.left <= f,
2563                    e || t.isElementInViewport) {
2564                        var r = Math.max(0, o)
2565                          , l = Math.max(0, n + o)
2566                          , d = Math.max(0, -o)
2567                          , c = Math.max(0, o + n - h)
2568                          , p = Math.max(0, n - (o + n - h))
2569                          , u = Math.max(0, -o + h - n)
2570                          , m = 1 - 2 * (h - o) / (h + n)
2571                          , v = 1;
2572                        if (n < h ? v = 1 - (d || c) / n : l <= h ? v = l / h : p <= h && (v = p / h),
2573                        "opacity" !== t.options.type && "scale-opacity" !== t.options.type && "scroll-opacity" !== t.options.type || (s.transform = "translate3d(0,
25730,0)",
2574                        s.opacity = v),
2575                        "scale" === t.options.type || "scale-opacity" === t.options.type) {
2576                            var y = 1;
2577                            t.options.speed < 0 ? y -= t.options.speed * v : y += t.options.speed * (1 - v),
2578                            s.transform = "scale(" + y + ") translate3d(0,0,0)"
2579                        }
2580                        if ("scroll" === t.options.type || "scroll-opacity" === t.options.type) {
2581                            var g = t.parallaxScrollDistance * m;
2582                            "absolute" === t.image.position && (g -= o),
2583                            s.transform = "translate3d(0," + g + "px,0)"
2584                        }
2585                        t.css(t.image.$item, s),
2586                        t.options.onScroll && t.options.onScroll.call(t, {
2587                            section: i,
2588                            beforeTop: r,
2589                            beforeTopEnd: l,
2590                            afterTop: d,
2591                            beforeBottom: c,
2592                            beforeBottomEnd: p,
2593                            afterBottom: u,
2594                            visiblePercent: v,
2595                            fromViewportCenter: m
2596                        })
2597                    }
2598                }
2599            }, {
2600                key: "onResize",
2601                value: function() {
2602                    this.coverImage(),
2603                    this.clipContainer()
2604                }
2605            }]),
2606            e
2607        }()
2608          , S = function(e) {
2609            ("object" === ("undefined" == typeof HTMLElement ? "undefined" : l(HTMLElement)) ? e instanceof HTMLElement : e && "object" === (void 0 === e ? "undefined" : l(e)) && null !== e && 1 === e.nodeType && "string" == typeof e.nodeName) && (e = [e]);
2610            for (var t = arguments[1], i = Array.prototype.slice.call(arguments, 2), o = e.length, n = 0, s = void 0; n < o; n++)
2611                if ("object" === (void 0 === t ? "undefined" : l(t)) || void 0 === t ? e[n].jarallax || (e[n].jarallax = new $(e[n],t)) : e[n].jarallax && (s = e[n].jarallax[t].apply(e[n].jarallax, i)),
2612                void 0 !== s)
2613                    return s;
2614            return e
2615        };
2616        S.constructor = $,
2617        t["default"] = S
2618    }
2619    ).call(t, i(2))
2620}
2621, function(e, t, i) {
2622    "use strict";
2623    var o = i(0)
2624      , n = o.requestAnimationFrame || o.webkitRequestAnimationFrame || o.mozRequestAnimationFrame || function(e) {
2625        var t = +new Date
2626          , i = Math.max(0, 16 - (t - s))
2627          , o = setTimeout(e, i);
2628        return s = t,
2629        o
2630    }
2631      , s = +new Date
2632      , a = o.cancelAnimationFrame || o.webkitCancelAnimationFrame || o.mozCancelAnimationFrame || clearTimeout;
2633    Function.prototype.bind && (n = n.bind(o),
2634    a = a.bind(o)),
2635    (e.exports = n).cancel = a
2636}
2637]),
2638/*!
2639 * Name    : Video Background Extension for Jarallax
2640 * Version : 1.0.1
2641 * Author  : nK <https://nkdev.info>
2642 * GitHub  : https://github.com/nk-o/jarallax
2643 */
2644!function(e) {
2645    function t(o) {
2646        if (i[o])
2647            return i[o].exports;
2648        var n = i[o] = {
2649            i: o,
2650            l: !1,
2651            exports: {}
2652        };
2653        return e[o].call(n.exports, n, n.exports, t),
2654        n.l = !0,
2655        n.exports
2656    }
2657    var i = {};
2658    t.m = e,
2659    t.c = i,
2660    t.d = function(e, i, o) {
2661        t.o(e, i) || Object.defineProperty(e, i, {
2662            configurable: !1,
2663            enumerable: !0,
2664            get: o
2665        })
2666    }
2667    ,
2668    t.n = function(e) {
2669        var i = e && e.__esModule ? function() {
2670            return e["default"]
2671        }
2672        : function() {
2673            return e
2674        }
2675        ;
2676        return t.d(i, "a", i),
2677        i
2678    }
2679    ,
2680    t.o = function(e, t) {
2681        return Object.prototype.hasOwnProperty.call(e, t)
2682    }
2683    ,
2684    t.p = "",
2685    t(t.s = 7)
2686}([function(e, t, i) {
2687    "use strict";
2688    (function(t) {
2689        var i;
2690        i = "undefined" != typeof window ? window : void 0 !== t ? t : "undefined" != typeof self ? self : {},
2691        e.exports = i
2692    }
2693    ).call(t, i(2))
2694}
2695, function(e, t, i) {
2696    "use strict";
2697    e.exports = function(e) {
2698        "complete" === document.readyState || "interactive" === document.readyState ? e.call() : document.attachEvent ? document.attachEvent("onreadystatechange", function() {
2699            "interactive" === document.readyState && e.call()
2700        }) : document.addEventListener && document.addEventListener("DOMContentLoaded", e)
2701    }
2702}
2703, function(e, t, i) {
2704    "use strict";
2705    var o, n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
2706        return typeof e
2707    }
2708    : function(e) {
2709        return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
2710    }
2711    ;
2712    o = function() {
2713        return this
2714    }();
2715    try {
2716        o = o || Function("return this")() || (0,
2717        eval)("this")
2718    } catch (e) {
2719        "object" === ("undefined" == typeof window ? "undefined" : n(window)) && (o = window)
2720    }
2721    e.exports = o
2722}
2723, function(e, t, i) {
2724    "use strict";
2725    e.exports = i(9)
2726}
2727, , , , function(e, t, i) {
2728    e.exports = i(8)
2729}
2730, function(e, t, i) {
2731    "use strict";
2732    function o(e) {
2733        return e && e.__esModule ? e : {
2734            "default": e
2735        }
2736    }
2737    var n = o(i(3))
2738      , s = o(i(0))
2739      , a = o(i(1))
2740      , r = o(i(10));
2741    s["default"].VideoWorker = s["default"].VideoWorker || n["default"],
2742    (0,
2743    r["default"])(),
2744    (0,
2745    a["default"])(function() {
2746        "undefined" != typeof jarallax && jarallax(document.querySelectorAll("[data-jarallax-video]"))
2747    })
2748}
2749, function(e, t, i) {
2750    "use strict";
2751    function o() {
2752        this._done = [],
2753        this._fail = []
2754    }
2755    Object.defineProperty(t, "__esModule", {
2756        value: !0
2757    });
2758    var n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
2759        return typeof e
2760    }
2761    : function(e) {
2762        return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
2763    }
2764      , s = function() {
2765        function e(e, t) {
2766            for (var i = 0; i < t.length; i++) {
2767                var o = t[i];
2768                o.enumerable = o.enumerable || !1,
2769                o.configurable = !0,
2770                "value"in o && (o.writable = !0),
2771                Object.defineProperty(e, o.key, o)
2772            }
2773        }
2774        return function(t, i, o) {
2775            return i && e(t.prototype, i),
2776            o && e(t, o),
2777            t
2778        }
2779    }();
2780    o.prototype = {
2781        execute: function(e, t) {
2782            var i = e.length;
2783            for (t = Array.prototype.slice.call(t); i--; )
2784                e[i].apply(null, t)
2785        },
2786        resolve: function() {
2787            this.execute(this._done, arguments)
2788        },
2789        reject: function() {
2790            this.execute(this._fail, arguments)
2791        },
2792        done: function(e) {
2793            this._done.push(e)
2794        },
2795        fail: function(e) {
2796            this._fail.push(e)
2797        }
2798    };
2799    var a = 0
2800      , r = 0
2801      , l = 0
2802      , d = 0
2803      , c = 0
2804      , p = new o
2805      , u = new o
2806      , f = function() {
2807        function e(t, i) {
2808            !function(e, t) {
2809                if (!(e instanceof t))
2810                    throw new TypeError("Cannot call a class as a function")
2811            }(this, e);
2812            var o = this;
2813            o.url = t,
2814            o.options_default = {
2815                autoplay: !1,
2816                loop: !1,
2817                mute: !1,
2818                volume: 100,
2819                showContols: !0,
2820                startTime: 0,
2821                endTime: 0
2822            },
2823            o.options = o.extend({}, o.options_default, i),
2824            o.videoID = o.parseURL(t),
2825            o.videoID && (o.ID = a++,
2826            o.loadAPI(),
2827            o.init())
2828        }
2829        return s(e, [{
2830            key: "extend",
2831            value: function(e) {
2832                var t = arguments;
2833                return e = e || {},
2834                Object.keys(arguments).forEach(function(i) {
2835                    t[i] && Object.keys(t[i]).forEach(function(o) {
2836                        e[o] = t[i][o]
2837                    })
2838                }),
2839                e
2840            }
2841        }, {
2842            key: "parseURL",
2843            value: function(e) {
2844                var t, i, o, n, s, a = !(!(t = e.match(/.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=)([^#\&\?]*).*/)) || 11 !== t[1].length) && t[1], r = !(!(i = e.match(/https?:\/\/(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|)(\d+)(?:$|\/|\?)/)) || !i[3]) && i[3], l = (o = e.split(/,(?=mp4\:|webm\:|ogv\:|ogg\:)/),
2845                n = {},
2846                s = 0,
2847                o.forEach(function(e) {
2848                    var t = e.match(/^(mp4|webm|ogv|ogg)\:(.*)/);
2849                    t && t[1] && t[2] && (n["ogv" === t[1] ? "ogg" : t[1]] = t[2],
2850                    s = 1)
2851                }),
2852                !!s && n);
2853                return a ? (this.type = "youtube",
2854                a) : r ? (this.type = "vimeo",
2855                r) : !!l && (this.type = "local",
2856                l)
2857            }
2858        }, {
2859            key: "isValid",
2860            value: function() {
2861                return !!this.videoID
2862            }
2863        }, {
2864            key: "on",
2865            value: function(e, t) {
2866                this.userEventsList = this.userEventsList || [],
2867                (this.userEventsList[e] || (this.userEventsList[e] = [])).push(t)
2868            }
2869        }, {
2870            key: "off",
2871            value: function(e, t) {
2872                var i = this;
2873                this.userEventsList && this.userEventsList[e] && (t ? this.userEventsList[e].forEach(function(o, n) {
2874                    o === t && (i.userEventsList[e][n] = !1)
2875                }) : delete this.userEventsList[e])
2876            }
2877        }, {
2878            key: "fire",
2879            value: function(e) {
2880                var t = this
2881                  , i = [].slice.call(arguments, 1);
2882                this.userEventsList && void 0 !== this.userEventsList[e] && this.userEventsList[e].forEach(function(e) {
2883                    e && e.apply(t, i)
2884                })
2885            }
2886        }, {
2887            key: "play",
2888            value: function(e) {
2889                var t = this;
2890                t.player && ("youtube" === t.type && t.player.playVideo && (void 0 !== e && t.player.seekTo(e || 0),
2891                YT.PlayerState.PLAYING !== t.player.getPlayerState() && t.player.playVideo()),
2892                "vimeo" === t.type && (void 0 !== e && t.player.setCurrentTime(e),
2893                t.player.getPaused().then(function(e) {
2894                    e && t.player.play()
2895                })),
2896                "local" === t.type && (void 0 !== e && (t.player.currentTime = e),
2897                t.player.paused && t.player.play()))
2898            }
2899        }, {
2900            key: "pause",
2901            value: function() {
2902                var e = this;
2903                e.player && ("youtube" === e.type && e.player.pauseVideo && YT.PlayerState.PLAYING === e.player.getPlayerState() && e.player.pauseVideo(),
2904                "vimeo" === e.type && e.player.getPaused().then(function(t) {
2905                    t || e.player.pause()
2906                }),
2907                "local" === e.type && (e.player.paused || e.player.pause()))
2908            }
2909        }, {
2910            key: "mute",
2911            value: function() {
2912                var e = this;
2913                e.player && ("youtube" === e.type && e.player.mute && e.player.mute(),
2914                "vimeo" === e.type && e.player.setVolume && e.player.setVolume(0),
2915                "local" === e.type && (e.$video.muted = !0))
2916            }
2917        }, {
2918            key: "unmute",
2919            value: function() {
2920                var e = this;
2921                e.player && ("youtube" === e.type && e.player.mute && e.player.unMute(),
2922                "vimeo" === e.type && e.player.setVolume && e.player.setVolume(e.options.volume),
2923                "local" === e.type && (e.$video.muted = !1))
2924            }
2925        }, {
2926            key: "setVolume",
2927            value: function() {
2928                var e = 0 < arguments.length && void 0 !== arguments[0] && arguments[0]
2929                  , t = this;
2930                t.player && e && ("youtube" === t.type && t.player.setVolume && t.player.setVolume(e),
2931                "vimeo" === t.type && t.player.setVolume && t.player.setVolume(e),
2932                "local" === t.type && (t.$video.volume = e / 100))
2933            }
2934        }, {
2935            key: "getVolume",
2936            value: function(e) {
2937                var t = this;
2938                t.player ? ("youtube" === t.type && t.player.getVolume && e(t.player.getVolume()),
2939                "vimeo" === t.type && t.player.getVolume && t.player.getVolume().then(function(t) {
2940                    e(t)
2941                }),
2942                "local" === t.type && e(100 * t.$video.volume)) : e(!1)
2943            }
2944        }, {
2945            key: "getMuted",
2946            value: function(e) {
2947                var t = this;
2948                t.player ? ("youtube" === t.type && t.player.isMuted && e(t.player.isMuted()),
2949                "vimeo" === t.type && t.player.getVolume && t.player.getVolume().then(function(t) {
2950                    e(!!t)
2951                }),
2952                "local" === t.type && e(t.$video.muted)) : e(null)
2953            }
2954        }, {
2955            key: "getImageURL",
2956            value: function(e) {
2957                var t = this;
2958                if (t.videoImage)
2959                    e(t.videoImage);
2960                else {
2961                    if ("youtube" === t.type) {
2962                        var i = ["maxresdefault", "sddefault", "hqdefault", "0"]
2963                          , o = 0
2964                          , n = new Image;
2965                        n.onload = function() {
2966                            120 !== (this.naturalWidth || this.width) || o === i.length - 1 ? (t.videoImage = "https://img.youtube.com/vi/" + t.videoID + "/" + i[o] + ".jpg",
2967                            e(t.videoImage)) : (o++,
2968                            this.src = "https://img.youtube.com/vi/" + t.videoID + "/" + i[o] + ".jpg")
2969                        }
2970                        ,
2971                        n.src = "https://img.youtube.com/vi/" + t.videoID + "/" + i[o] + ".jpg"
2972                    }
2973                    if ("vimeo" === t.type) {
2974                        var s = new XMLHttpRequest;
2975                        s.open("GET", "https://vimeo.com/api/v2/video/" + t.videoID + ".json", !0),
2976                        s.onreadystatechange = function() {
2977                            if (4 === this.readyState && 200 <= this.status && this.status < 400) {
2978                                var i = JSON.parse(this.responseText);
2979                                t.videoImage = i[0].thumbnail_large,
2980                                e(t.videoImage)
2981                            }
2982                        }
2983                        ,
2984                        s.send(),
2985                        s = null
2986                    }
2987                }
2988            }
2989        }, {
2990            key: "getIframe",
2991            value: function(e) {
2992                this.getVideo(e)
2993            }
2994        }, {
2995            key: "getVideo",
2996            value: function(e) {
2997                var t = this;
2998                t.$video ? e(t.$video) : t.onAPIready(function() {
2999                    var i = void 0;
3000                    if (t.$video || ((i = document.createElement("div")).style.display = "none"),
3001                    "youtube" === t.type) {
3002                        t.playerOptions = {},
3003                        t.playerOptions.videoId = t.videoID,
3004                        t.playerOptions.playerVars = {
3005                            autohide: 1,
3006                            rel: 0,
3007                            autoplay: 0,
3008                            playsinline: 1
3009                        },
3010                        t.options.showContols || (t.playerOptions.playerVars.iv_load_policy = 3,
3011                        t.playerOptions.playerVars.modestbranding = 1,
3012                        t.playerOptions.playerVars.controls = 0,
3013                        t.playerOptions.playerVars.showinfo = 0,
3014                        t.playerOptions.playerVars.disablekb = 1);
3015                        var o = void 0
3016                          , n = void 0;
3017                        t.playerOptions.events = {
3018                            onReady: function(e) {
3019                                t.options.mute ? e.target.mute() : t.options.volume && e.target.setVolume(t.options.volume),
3020                                t.options.autoplay && t.play(t.options.startTime),
3021                                t.fire("ready", e),
3022                                setInterval(function() {
3023                                    t.getVolume(function(i) {
3024                                        t.options.volume !== i && (t.options.volume = i,
3025                                        t.fire("volumechange", e))
3026                                    })
3027                                }, 150)
3028                            },
3029                            onStateChange: function(e) {
3030                                t.options.loop && e.data === YT.PlayerState.ENDED && t.play(t.options.startTime),
3031                                o || e.data !== YT.PlayerState.PLAYING || (o = 1,
3032                                t.fire("started", e)),
3033                                e.data === YT.PlayerState.PLAYING && t.fire("play", e),
3034                                e.data === YT.PlayerState.PAUSED && t.fire("pause", e),
3035                                e.data === YT.PlayerState.ENDED && t.fire("ended", e),
3036                                e.data === YT.PlayerState.PLAYING ? n = setInterval(function() {
3037                                    t.fire("timeupdate", e),
3038                                    t.options.endTime && t.player.getCurrentTime() >= t.options.endTime && (t.options.loop ? t.play(t.options.startTime) : t.pause())
3039                                }, 150) : clearInterval(n)
3040                            }
3041                        };
3042                        var s = !t.$video;
3043                        if (s) {
3044                            var a = document.createElement("div");
3045                            a.setAttribute("id", t.playerID),
3046                            i.appendChild(a),
3047                            document.body.appendChild(i)
3048                        }
3049                        t.player = t.player || new window.YT.Player(t.playerID,t.playerOptions),
3050                        s && (t.$video = document.getElementById(t.playerID),
3051                        t.videoWidth = parseInt(t.$video.getAttribute("width"), 10) || 1280,
3052                        t.videoHeight = parseInt(t.$video.getAttribute("height"), 10) || 720)
3053                    }
3054                    if ("vimeo" === t.type) {
3055                        t.playerOptions = "",
3056                        t.playerOptions += "player_id=" + t.playerID,
3057                        t.playerOptions += "&autopause=0",
3058                        t.playerOptions += "&transparent=0",
3059                        t.options.showContols || (t.playerOptions += "&badge=0&byline=0&portrait=0&title=0"),
3060                        t.playerOptions += "&autoplay=" + (t.options.autoplay ? "1" : "0"),
3061                        t.playerOptions += "&loop=" + (t.options.loop ? 1 : 0),
3062                        t.$video || (t.$video = document.createElement("iframe"),
3063                        t.$video.setAttribute("id", t.playerID),
3064                        t.$video.setAttribute("src", "https://player.vimeo.com/video/" + t.videoID + "?" + t.playerOptions),
3065                        t.$video.setAttribute("frameborder", "0"),
3066                        i.appendChild(t.$video),
3067                        document.body.appendChild(i)),
3068                        t.player = t.player || new Vimeo.Player(t.$video),
3069                        t.player.getVideoWidth().then(function(e) {
3070                            t.videoWidth = e || 1280
3071                        }),
3072                        t.player.getVideoHeight().then(function(e) {
3073                            t.videoHeight = e || 720
3074                        }),
3075                        t.options.startTime && t.options.autoplay && t.player.setCurrentTime(t.options.startTime),
3076                        t.options.mute ? t.player.setVolume(0) : t.options.volume && t.player.setVolume(t.options.volume);
3077                        var r = void 0;
3078                        t.player.on("timeupdate", function(e) {
3079                            r || (t.fire("started", e),
3080                            r = 1),
3081                            t.fire("timeupdate", e),
3082                            t.options.endTime && t.options.endTime && e.seconds >= t.options.endTime && (t.options.loop ? t.play(t.options.startTime) : t.pause())
3083                        }),
3084                        t.player.on("play", function(e) {
3085                            t.fire("play", e),
3086                            t.options.startTime && 0 === e.seconds && t.play(t.options.startTime)
3087                        }),
3088                        t.player.on("pause", function(e) {
3089                            t.fire("pause", e)
3090                        }),
3091                        t.player.on("ended", function(e) {
3092                            t.fire("ended", e)
3093                        }),
3094                        t.player.on("loaded", function(e) {
3095                            t.fire("ready", e)
3096                        }),
3097                        t.player.on("volumechange", function(e) {
3098                            t.fire("volumechange", e)
3099                        })
3100                    }
3101                    if ("local" === t.type) {
3102                        t.$video || (t.$video = document.createElement("video"),
3103                        t.options.mute ? t.$video.muted = !0 : t.$video.volume && (t.$video.volume = t.options.volume / 100),
3104                        t.options.loop && (t.$video.loop = !0),
3105                        t.$video.setAttribute("playsinline", ""),
3106                        t.$video.setAttribute("webkit-playsinline", ""),
3107                        t.$video.setAttribute("id", t.playerID),
3108                        i.appendChild(t.$video),
3109                        document.body.appendChild(i),
3110                        Object.keys(t.videoID).forEach(function(e) {
3111                            var i, o, n, s;
3112                            i = t.$video,
3113                            o = t.videoID[e],
3114                            n = "video/" + e,
3115                            (s = document.createElement("source")).src = o,
3116                            s.type = n,
3117                            i.appendChild(s)
3118                        })),
3119                        t.player = t.player || t.$video;
3120                        var l = void 0;
3121                        t.player.addEventListener("playing", function(e) {
3122                            l || t.fire("started", e),
3123                            l = 1
3124                        }),
3125                        t.player.addEventListener("timeupdate", function(e) {
3126                            t.fire("timeupdate", e),
3127                            t.options.endTime && t.options.endTime && this.currentTime >= t.options.endTime && (t.options.loop ? t.play(t.options.startTime) : t.pause())
3128                        }),
3129                        t.player.addEventListener("play", function(e) {
3130                            t.fire("play", e)
3131                        }),
3132                        t.player.addEventListener("pause", function(e) {
3133                            t.fire("pause", e)
3134                        }),
3135                        t.player.addEventListener("ended", function(e) {
3136                            t.fire("ended", e)
3137                        }),
3138                        t.player.addEventListener("loadedmetadata", function() {
3139                            t.videoWidth = this.videoWidth || 1280,
3140                            t.videoHeight = this.videoHeight || 720,
3141                            t.fire("ready"),
3142                            t.options.autoplay && t.play(t.options.startTime)
3143                        }),
3144                        t.player.addEventListener("volumechange", function(e) {
3145                            t.getVolume(function(e) {
3146                                t.options.volume = e
3147                            }),
3148                            t.fire("volumechange", e)
3149                        })
3150                    }
3151                    e(t.$video)
3152                })
3153            }
3154        }, {
3155            key: "init",
3156            value: function() {
3157                this.playerID = "VideoWorker-" + this.ID
3158            }
3159        }, {
3160            key: "loadAPI",
3161            value: function() {
3162                if (!r || !l) {
3163                    var e = "";
3164                    if ("youtube" !== this.type || r || (r = 1,
3165                    e = "https://www.youtube.com/iframe_api"),
3166                    "vimeo" !== this.type || l || (l = 1,
3167                    e = "https://player.vimeo.com/api/player.js"),
3168                    e) {
3169                        var t = document.createElement("script")
3170                          , i = document.getElementsByTagName("head")[0];
3171                        t.src = e,
3172                        i.appendChild(t),
3173                        t = i = null
3174                    }
3175                }
3176            }
3177        }, {
3178            key: "onAPIready",
3179            value: function(e) {
3180                if ("youtube" === this.type && ("undefined" != typeof YT && 0 !== YT.loaded || d ? "object" === ("undefined" == typeof YT ? "undefined" : n(YT)) && 1 === YT.loaded ? e() : p.done(function() {
3181                    e()
3182                }) : (d = 1,
3183                window.onYouTubeIframeAPIReady = function() {
3184                    window.onYouTubeIframeAPIReady = null,
3185                    p.resolve("done"),
3186                    e()
3187                }
3188                )),
3189                "vimeo" === this.type)
3190                    if ("undefined" != typeof Vimeo || c)
3191                        "undefined" != typeof Vimeo ? e() : u.done(function() {
3192                            e()
3193                        });
3194                    else {
3195                        c = 1;
3196                        var t = setInterval(function() {
3197                            "undefined" != typeof Vimeo && (clearInterval(t),
3198                            u.resolve("done"),
3199                            e())
3200                        }, 20)
3201                    }
3202                "local" === this.type && e()
3203            }
3204        }]),
3205        e
3206    }();
3207    t["default"] = f
3208}
3209, function(e, t, i) {
3210    "use strict";
3211    function o(e) {
3212        return e && e.__esModule ? e : {
3213            "default": e
3214        }
3215    }
3216    Object.defineProperty(t, "__esModule", {
3217        value: !0
3218    }),
3219    t["default"] = function() {
3220        var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : s["default"].jarallax;
3221        if (void 0 !== e) {
3222            var t = e.constructor
3223              , i = t.prototype.init;
3224            t.prototype.init = function() {
3225                var e = this;
3226                i.apply(e),
3227                e.video && !e.options.disableVideo() && e.video.getVideo(function(t) {
3228                    var i = t.parentNode;
3229                    e.css(t, {
3230                        position: e.image.position,
3231                        top: "0px",
3232                        left: "0px",
3233                        right: "0px",
3234                        bottom: "0px",
3235                        width: "100%",
3236                        height: "100%",
3237                        maxWidth: "none",
3238                        maxHeight: "none",
3239                        margin: 0,
3240                        zIndex: -1
3241                    }),
3242                    e.$video = t,
3243                    e.image.$container.appendChild(t),
3244                    i.parentNode.removeChild(i)
3245                })
3246            }
3247            ;
3248            var o = t.prototype.coverImage;
3249            t.prototype.coverImage = function() {
3250                var e = this
3251                  , t = o.apply(e)
3252                  , i = !!e.image.$item && e.image.$item.nodeName;
3253                if (t && e.video && i && ("IFRAME" === i || "VIDEO" === i)) {
3254                    var n = t.image.height
3255                      , s = n * e.image.width / e.image.height
3256                      , a = (t.container.width - s) / 2
3257                      , r = t.image.marginTop;
3258                    t.container.width > s && (s = t.container.width,
3259                    n = s * e.image.height / e.image.width,
3260                    a = 0,
3261                    r += (t.image.height - n) / 2),
3262                    "IFRAME" === i && (n += 400,
3263                    r -= 200),
3264                    e.css(e.$video, {
3265                        width: s + "px",
3266                        marginLeft: a + "px",
3267                        height: n + "px",
3268                        marginTop: r + "px"
3269                    })
3270                }
3271                return t
3272            }
3273            ;
3274            var a = t.prototype.initImg;
3275            t.prototype.initImg = function() {
3276                var e = this
3277                  , t = a.apply(e);
3278                return e.options.videoSrc || (e.options.videoSrc = e.$item.getAttribute("data-jarallax-video") || null),
3279                e.options.videoSrc ? (e.defaultInitImgResult = t,
3280                !0) : t
3281            }
3282            ;
3283            var r = t.prototype.canInitParallax;
3284            t.prototype.canInitParallax = function() {
3285                var e = this
3286                  , t = r.apply(e);
3287                if (!e.options.videoSrc)
3288                    return t;
3289                var i = new n["default"](e.options.videoSrc,{
3290                    autoplay: !0,
3291                    loop: !0,
3292                    showContols: !1,
3293                    startTime: e.options.videoStartTime || 0,
3294                    endTime: e.options.videoEndTime || 0,
3295                    mute: e.options.videoVolume ? 0 : 1,
3296                    volume: e.options.videoVolume || 0
3297                });
3298                if (i.isValid())
3299                    if (t) {
3300                        if (i.on("ready", function() {
3301                            if (e.options.videoPlayOnlyVisible) {
3302                                var t = e.onScroll;
3303                                e.onScroll = function() {
3304                                    t.apply(e),
3305                                    e.isVisible() ? i.play() : i.pause()
3306                                }
3307                            } else
3308                                i.play()
3309                        }),
3310                        i.on("started", function() {
3311                            e.image.$default_item = e.image.$item,
3312                            e.image.$item = e.$video,
3313                            e.image.width = e.video.videoWidth || 1280,
3314                            e.image.height = e.video.videoHeight || 720,
3315                            e.options.imgWidth = e.image.width,
3316                            e.options.imgHeight = e.image.height,
3317                            e.coverImage(),
3318                            e.clipContainer(),
3319                            e.onScroll(),
3320                            e.image.$default_item && (e.image.$default_item.style.display = "none")
3321                        }),
3322                        e.video = i,
3323                        !e.defaultInitImgResult)
3324                            return "local" !== i.type ? (i.getImageURL(function(t) {
3325                                e.image.src = t,
3326                                e.init()
3327                            }),
3328                            !1) : (e.image.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
3329                            !0)
3330                    } else
3331                        e.defaultInitImgResult || i.getImageURL(function(t) {
3332                            var i = e.$item.getAttribute("style");
3333                            i && e.$item.setAttribute("data-jarallax-original-styles", i),
3334                            e.css(e.$item, {
3335                                "background-image": 'url("' + t + '")',
3336                                "background-position": "center",
3337                                "background-size": "cover"
3338                            })
3339                        });
3340                return t
3341            }
3342            ;
3343            var l = t.prototype.destroy;
3344            t.prototype.destroy = function() {
3345                var e = this;
3346                e.image.$default_item && (e.image.$item = e.image.$default_item,
3347                delete e.image.$default_item),
3348                l.apply(e)
3349            }
3350        }
3351    }
3352    ;
3353    var n = o(i(3))
3354      , s = o(i(0))
3355}
3356]),
3357/*!
3358 * Name    : Elements Extension for Jarallax
3359 * Version : 1.0.0
3360 * Author  : nK <https://nkdev.info>
3361 * GitHub  : https://github.com/nk-o/jarallax
3362 */
3363!function(e) {
3364    function t(o) {
3365        if (i[o])
3366            return i[o].exports;
3367        var n = i[o] = {
3368            i: o,
3369            l: !1,
3370            exports: {}
3371        };
3372        return e[o].call(n.exports, n, n.exports, t),
3373        n.l = !0,
3374        n.exports
3375    }
3376    var i = {};
3377    t.m = e,
3378    t.c = i,
3379    t.d = function(e, i, o) {
3380        t.o(e, i) || Object.defineProperty(e, i, {
3381            configurable: !1,
3382            enumerable: !0,
3383            get: o
3384        })
3385    }
3386    ,
3387    t.n = function(e) {
3388        var i = e && e.__esModule ? function() {
3389            return e["default"]
3390        }
3391        : function() {
3392            return e
3393        }
3394        ;
3395        return t.d(i, "a", i),
3396        i
3397    }
3398    ,
3399    t.o = function(e, t) {
3400        return Object.prototype.hasOwnProperty.call(e, t)
3401    }
3402    ,
3403    t.p = "",
3404    t(t.s = 4)
3405}([function(e, t, i) {
3406    "use strict";
3407    (function(t) {
3408        var i;
3409        i = "undefined" != typeof window ? window : void 0 !== t ? t : "undefined" != typeof self ? self : {},
3410        e.exports = i
3411    }
3412    ).call(t, i(2))
3413}
3414, function(e, t, i) {
3415    "use strict";
3416    e.exports = function(e) {
3417        "complete" === document.readyState || "interactive" === document.readyState ? e.call() : document.attachEvent ? document.attachEvent("onreadystatechange", function() {
3418            "interactive" === document.readyState && e.call()
3419        }) : document.addEventListener && document.addEventListener("DOMContentLoaded", e)
3420    }
3421}
3422, function(e, t, i) {
3423    "use strict";
3424    var o, n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
3425        return typeof e
3426    }
3427    : function(e) {
3428        return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
3429    }
3430    ;
3431    o = function() {
3432        return this
3433    }();
3434    try {
3435        o = o || Function("return this")() || (0,
3436        eval)("this")
3437    } catch (e) {
3438        "object" === ("undefined" == typeof window ? "undefined" : n(window)) && (o = window)
3439    }
3440    e.exports = o
3441}
3442, , function(e, t, i) {
3443    e.exports = i(5)
3444}
3445, function(e, t, i) {
3446    "use strict";
3447    function o(e) {
3448        return e && e.__esModule ? e : {
3449            "default": e
3450        }
3451    }
3452    var n = o(i(1));
3453    (0,
3454    o(i(6))["default"])(),
3455    (0,
3456    n["default"])(function() {
3457        "undefined" != typeof jarallax && jarallax(document.querySelectorAll("[data-jarallax-element]"))
3458    })
3459}
3460, function(e, t, i) {
3461    "use strict";
3462    Object.defineProperty(t, "__esModule", {
3463        value: !0
3464    }),
3465    t["default"] = function() {
3466        var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : s["default"].jarallax;
3467        if (void 0 !== e) {
3468            var t = e.constructor;
3469            ["initImg", "canInitParallax", "init", "destroy", "clipContainer", "coverImage", "isVisible", "onScroll", "onResize"].forEach(function(e) {
3470                var i = t.prototype[e];
3471                t.prototype[e] = function() {
3472                    var t = this
3473                      , o = arguments || [];
3474                    if ("initImg" === e && null !== t.$item.getAttribute("data-jarallax-element") && (t.options.type = "element",
3475                    t.pureOptions.speed = t.$item.getAttribute("data-jarallax-element") || t.pureOptions.speed),
3476                    "element" !== t.options.type)
3477                        return i.apply(t, o);
3478                    switch (t.pureOptions.threshold = t.$item.getAttribute("data-threshold") || "",
3479                    e) {
3480                    case "init":
3481                        var n = t.pureOptions.speed.split(" ");
3482                        t.options.speed = t.pureOptions.speed || 0,
3483                        t.options.speedY = n[0] ? parseFloat(n[0]) : 0,
3484                        t.options.speedX = n[1] ? parseFloat(n[1]) : 0;
3485                        var s = t.pureOptions.threshold.split(" ");
3486                        t.options.thresholdY = s[0] ? parseFloat(s[0]) : null,
3487                        t.options.thresholdX = s[1] ? parseFloat(s[1]) : null,
3488                        t.onResize(),
3489                        t.onScroll(),
3490                        t.addToParallaxList();
3491                        break;
3492                    case "onResize":
3493                        var a = t.css(t.$item, "transform");
3494                        t.css(t.$item, {
3495                            transform: ""
3496                        });
3497                        var r = t.$item.getBoundingClientRect();
3498                        t.itemData = {
3499                            width: r.width,
3500                            height: r.height,
3501                            y: r.top + t.getWindowData().y,
3502                            x: r.left
3503                        },
3504                        t.css(t.$item, {
3505                            transform: a
3506                        });
3507                        break;
3508                    case "onScroll":
3509                        var l = t.getWindowData()
3510                          , d = (l.y + l.height / 2 - t.itemData.y - t.itemData.height / 2) / (l.height / 2)
3511                          , c = d * t.options.speedY
3512                          , p = d * t.options.speedX
3513                          , u = c
3514                          , f = p;
3515                        null !== t.options.thresholdY && c > t.options.thresholdY && (u = 0),
3516                        null !== t.options.thresholdX && p > t.options.thresholdX && (f = 0),
3517                        t.css(t.$item, {
3518                            transform: "translate3d(" + f + "px," + u + "px,0
3518)"
3519                        });
3520                        break;
3521                    case "initImg":
3522                    case "isVisible":
3523                    case "clipContainer":
3524                    case "coverImage":
3525                        return !0
3526                    }
3527                    return i.apply(t, o)
3528                }
3529            })
3530        }
3531    }
3532    ;
3533    var o, n = i(0), s = (o = n) && o.__esModule ? o : {
3534        "default": o
3535    }
3536}
3537]);
3538/*!
3539 * Name: Atlas
3540 * Author: Zengenti Ltd
3541 * Author URI: http://zengenti.com
3542 * Description: A modern front-end framework
3543 * Version: 0.0.1
3544 */
3545var app = function(e) {
3546    "use strict";
3547    var t;
3548    return {
3549        settings: function() {
3550            this.$window = e(window),
3551            this.$body = e("body"),
3552            this.$overlay = e(".overlay"),
3553            this.$header = e(".header"),
3554            this.$logo = e(".header__logo"),
3555            this.$navWrapper = e(".nav__wrapper"),
3556            this.$burger = e(".header__burger"),
3557            this.$close = e(".header__close"),
3558            this.$navHeading = e(".nav__heading"),
3559            this.$navItem = e(".nav__item"),
3560            this.$navSearch = e(".nav__search"),
3561            //this.$searchButton = e(".search__button"),
3562            //this.$searchWrapper = e(".search__wrapper"),
3563            this.$funnelBackSearch = e(".fbSearch"),
3564            this.$funnelBackSearchButton = e(".fbSearchBtn"),
3565            this.$findYourCourseInput = e(".find-your-course__input"),
3566            this.$findYourCourseButton = e(".find-your-course__button"),
3567            this.$secondaryNavMore = e(".secondaryNav__more "),
3568            this.$negativeMargin = e(".negative-margin"),
3569            this.$heroVideo = e(".hero-video"),
3570            this.$heroVideoState = e(".background-fixed").data("vide"),
3571            this.$slickCloned = e(".slick-cloned"),
3572            this.$heroBannerExpanded = e(".hero-banner--expanded"),
3573            this.$heroBannerExpandedTable = e(".hero-banner--expanded .hero-banner__table"),
3574            this.$heroBannerExpandedImage = e(".hero-banner--expanded .hero-banner__image"),
3575            this.$heroBannerPlay = e(".hero-banner__play"),
3576            this.$heroBannerPause = e(".hero-banner__pause"),
3577            this.$findACourse = e(".find-your-course-wrapper"),
3578            this.$prevFeaturedArrow = e(".ui-card-featured__prev"),
3579            this.$nextFeaturedArrow = e(".ui-card-featured__next"),
3580            this.$uiCardFeatured = e(".ui-card-featured"),
3581            this.$prevNewsArrow = e(".news__prev"),
3582            this.$nextNewsArrow = e(".news__next"),
3583            this.$prevEventsArrow = e(".events__prev"),
3584            this.$nextEventsArrow = e(".events__next"),
3585            this.$headerSearch = e(".header__search"),
3586            this.$heightEqCon = [".ui-cards .ui-card"]
3587        },
3588        init: function() {
3589            t = new this.settings,
3590            this.heroBanner(),
3591            this.slick(),
3592            //this.searchToggle(),
3593            this.bindUIActions(),
3594            this.bindWindowActions()
3595        },
3596        resizeEvent: function(e, t, i) {
3597            null != e && "undefined" != typeof e && (e.addEventListener ? e.addEventListener(t, i, !1) : e.attachEvent ? e.attachEvent("on" + t, i) : e["on" + t] = i)
3598        },
3599        heroBanner: function() {
3600            var e = function() {
3601                var e = t.$header.outerHeight()
3602                  , i = t.$window.height()
3603                  , o = i - e;
3604                t.$heroVideo.height(o),
3605                t.$heroBannerExpandedImage.height(o)
3606            }
3607              , i = function() {
3608                var e = t.$header.outerHeight()
3609                  , i = t.$window.height()
3610                  , o = t.$findACourse.height()
3611                  , n = i - e - o;
3612                t.$heroVideo.height(n),
3613                t.$heroBannerExpandedImage.height(n)
3614            };
3615            t.$window.width() < 1023 ? e() : i(),
3616        
3617            t.$window.resize(function() {
3618                t.$window.width() < 1023 ? e() : i()
3619            })
3620
3621        },
3622        slick: function() {
3623            t.$uiCardFeatured.slick({
3624                slidesToShow: 1,
3625                arrows: !0,
3626                autoplay: !1,
3627                prevArrow: t.$prevFeaturedArrow,
3628                nextArrow: t.$nextFeaturedArrow
3629            }),
3630            e(".news-cards").slick({
3631                slidesToShow: 4,
3632                slidesToScroll: 4,
3633                arrows: !0,
3634                autoplay: !1,
3635                prevArrow: t.$prevNewsArrow,
3636                nextArrow: t.$nextNewsArrow,
3637                responsive: [{
3638                    breakpoint: 1023,
3639                    settings: {
3640                        slidesToShow: 2,
3641                        slidesToScroll: 2
3642                    }
3643                }, {
3644                    breakpoint: 640,
3645                    settings: {
3646                        slidesToShow: 1,
3647                        slidesToScroll: 1
3648                    }
3649                }]
3650            }),
3651            e(".events-cards").slick({
3652                slidesToShow: 4,
3653                slidesToScroll: 4,
3654                autoplay: !1,
3655                prevArrow: t.$prevEventsArrow,
3656                nextArrow: t.$nextEventsArrow,
3657                responsive: [{
3658                    breakpoint: 1023,
3659                    settings: {
3660                        slidesToShow: 2,
3661                        slidesToScroll: 2
3662                    }
3663                }, {
3664                    breakpoint: 640,
3665                    settings: {
3666                        slidesToShow: 1,
3667                        slidesToScroll: 1
3668                    }
3669                }]
3670            })
3671        },
3672        /*searchToggle: function() {
3673            t.$searchButton.click(function() {
3674                t.$searchWrapper.hasClass("active") || (t.$searchWrapper.addClass("active"),
3675                t.$funnelBackSearch.focus()),
3676                t.$navSearch.hasClass("search--active") || t.$navSearch.addClass("search--active")
3677            }),
3678            e(document).click(function() {
3679                t.$navSearch.removeClass("search--active"),
3680                t.$searchWrapper.removeClass("active"),
3681                t.$navSearch.removeClass("search--active")
3682            }),
3683            t.$searchButton.click(function(e) {
3684                e.stopPropagation()
3685            }),
3686            t.$funnelBackSearch.click(function(e) {
3687                e.stopPropagation()
3688            }),
3689            t.$funnelBackSearchButton.click(function(e) {
3690                e.stopPropagation()
3691            }),
3692            t.$findYourCourseInput.click(function(e) {
3693                e.stopPropagation()
3694            }),
3695            t.$funnelBackSearchButton.click(function(e) {
3696                e.stopPropagation()
3697            }),
3698            t.$secondaryNavMore.click(function(e) {
3699                e.stopPropagation()
3700            }),
3701            t.$navItem.hover(function() {
3702                t.$navSearch.removeClass("search--active"),
3703                t.$searchWrapper.removeClass("active"),
3704                t.$navSearch.removeClass("search--active")
3705            })
3706        },*/
3707        bindUIActions: function() {
3708            t.$burger.click(function() {
3709                t.$navWrapper.addClass("active"),
3710                t.$body.addClass("no-scroll"),
3711                t.$overlay.addClass("overlay--active")
3712                //t.$searchWrapper.removeClass("active")
3713            }),
3714            t.$close.click(function() {
3715                t.$navWrapper.removeClass("active"),
3716                t.$body.removeClass("no-scroll"),
3717                t.$overlay.removeClass("overlay--active")
3718                //t.$searchWrapper.removeClass("active")
3719            }),
3720            t.$navItem.click(function() {
3721                e(this).hasClass("active") ? t.$navItem.removeClass("active") : (t.$navItem.removeClass("active"),
3722                e(this).addClass("active"))
3723            }),
3724            t.$heroBannerPlay.click(function() {
3725                e(this).addClass("hero-banner__play--hide"),
3726                t.$heroBannerPause.removeClass("hero-banner__pause--hide"),
3727                t.$heroVideoState.getVideoObject().play()
3728            }),
3729            t.$heroBannerPause.click(function() {
3730                e(this).addClass("hero-banner__pause--hide"),
3731                t.$heroBannerPlay.removeClass("hero-banner__play--hide"),
3732                t.$heroVideoState.getVideoObject().pause()
3733            }),
3734            t.$window.resize(function() {
3735                e(window).width() > 1024 && (t.$body.removeClass("overlay"),
3736                t.$navItem.removeClass("active"),
3737                t.$body.removeClass("no-scroll"),
3738                t.$overlay.removeClass("overlay--active"),
3739                t.$navWrapper.removeClass("active"),
3740                t.$navItem.removeClass("active"))
3741            }),
3742            e(".jarallax").jarallax({
3743                disableParallax: /iPad|iPhone|iPod|Android|Edge/
3744            }),
3745            e(".ui-cards .ui-card").matchHeight(),
3746            e("#form1 .ui-cards:first").addClass("ui-cards--first"),
3747            /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && (t.$heroBannerPlay.hide(),
3748            t.$heroBannerPause.hide())
3749        },
3750        bindWindowActions: function() {
3751            e(window).on("debouncedresize", function() {
3752                setTimeout(function() {
3753                    e(window).trigger("resize.px.parallax")
3754                })
3755            })
3756        }
3757    }
3758}(jQuery);
3759jQuery(document).ready(function() {
3760    $('.nav').accessibleMegaMenu();
3761    app.init();
3762
3763});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.