/*! * fancyBox - jQuery Plugin * version: 2.1.5 (Fri, 14 Jun 2013) * @requires jQuery v1.6 or later * * Examples at http://fancyapps.com/fancybox/ * License: www.fancyapps.com/fancybox/#license * * Copyright 2012 Janis Skarnelis - janis@fancyapps.com * */ (function (window, document, $, undefined) { "use strict"; var H = $("html"), W = $(window), D = $(document), F = $.fancybox = function () { F.open.apply( this, arguments ); }, IE = navigator.userAgent.match(/msie/i), didUpdate = null, isTouch = document.createTouch !== undefined, isQuery = function(obj) { return obj && obj.hasOwnProperty && obj instanceof $; }, isString = function(str) { return str && $.type(str) === "string"; }, isPercentage = function(str) { return isString(str) && str.indexOf('%') > 0; }, isScrollable = function(el) { return (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight))); }, getScalar = function(orig, dim) { var value = parseInt(orig, 10) || 0; if (dim && isPercentage(orig)) { value = F.getViewport()[ dim ] / 100 * value; } return Math.ceil(value); }, getValue = function(value, dim) { return getScalar(value, dim) + 'px'; }; $.extend(F, { // The current version of fancyBox version: '2.1.5', defaults: { padding : 15, margin : 20, width : 800, height : 600, minWidth : 100, minHeight : 100, maxWidth : 9999, maxHeight : 9999, pixelRatio: 1, // Set to 2 for retina display support autoSize : true, autoHeight : false, autoWidth : false, autoResize : true, autoCenter : !isTouch, fitToView : true, aspectRatio : false, topRatio : 0.5, leftRatio : 0.5, scrolling : 'auto', // 'auto', 'yes' or 'no' wrapCSS : '', arrows : true, closeBtn : true, closeClick : false, nextClick : false, mouseWheel : true, autoPlay : false, playSpeed : 3000, preload : 3, modal : false, loop : true, ajax : { dataType : 'html', headers : { 'X-fancyBox': true } }, iframe : { scrolling : 'auto', preload : true }, swf : { wmode: 'transparent', allowfullscreen : 'true', allowscriptaccess : 'always' }, keys : { next : { 13 : 'left', // enter 34 : 'up', // page down 39 : 'left', // right arrow 40 : 'up' // down arrow }, prev : { 8 : 'right', // backspace 33 : 'down', // page up 37 : 'right', // left arrow 38 : 'down' // up arrow }, close : [27], // escape key play : [32], // space - start/stop slideshow toggle : [70] // letter "f" - toggle fullscreen }, direction : { next : 'left', prev : 'right' }, scrollOutside : true, // Override some properties index : 0, type : null, href : null, content : null, title : null, // HTML templates tpl: { wrap : '
', image : '', iframe : '', error : '

The requested content cannot be loaded.
Please try again later.

', closeBtn : '', next : '', prev : '' }, // Properties for each animation type // Opening fancyBox openEffect : 'fade', // 'elastic', 'fade' or 'none' openSpeed : 250, openEasing : 'swing', openOpacity : true, openMethod : 'zoomIn', // Closing fancyBox closeEffect : 'fade', // 'elastic', 'fade' or 'none' closeSpeed : 250, closeEasing : 'swing', closeOpacity : true, closeMethod : 'zoomOut', // Changing next gallery item nextEffect : 'elastic', // 'elastic', 'fade' or 'none' nextSpeed : 250, nextEasing : 'swing', nextMethod : 'changeIn', // Changing previous gallery item prevEffect : 'elastic', // 'elastic', 'fade' or 'none' prevSpeed : 250, prevEasing : 'swing', prevMethod : 'changeOut', // Enable default helpers helpers : { overlay : true, title : true }, // Callbacks onCancel : $.noop, // If canceling beforeLoad : $.noop, // Before loading afterLoad : $.noop, // After loading beforeShow : $.noop, // Before changing in current item afterShow : $.noop, // After opening beforeChange : $.noop, // Before changing gallery item beforeClose : $.noop, // Before closing afterClose : $.noop // After closing }, //Current state group : {}, // Selected group opts : {}, // Group options previous : null, // Previous element coming : null, // Element being loaded current : null, // Currently loaded element isActive : false, // Is activated isOpen : false, // Is currently open isOpened : false, // Have been fully opened at least once wrap : null, skin : null, outer : null, inner : null, player : { timer : null, isActive : false }, // Loaders ajaxLoad : null, imgPreload : null, // Some collections transitions : {}, helpers : {}, /* * Static methods */ open: function (group, opts) { if (!group) { return; } if (!$.isPlainObject(opts)) { opts = {}; } // Close if already active if (false === F.close(true)) { return; } // Normalize group if (!$.isArray(group)) { group = isQuery(group) ? $(group).get() : [group]; } // Recheck if the type of each element is `object` and set content type (image, ajax, etc) $.each(group, function(i, element) { var obj = {}, href, title, content, type, rez, hrefParts, selector; if ($.type(element) === "object") { // Check if is DOM element if (element.nodeType) { element = $(element); } if (isQuery(element)) { obj = { href : element.data('fancybox-href') || element.attr('href'), title : element.data('fancybox-title') || element.attr('title'), isDom : true, element : element }; if ($.metadata) { $.extend(true, obj, element.metadata()); } } else { obj = element; } } href = opts.href || obj.href || (isString(element) ? element : null); title = opts.title !== undefined ? opts.title : obj.title || ''; content = opts.content || obj.content; type = content ? 'html' : (opts.type || obj.type); if (!type && obj.isDom) { type = element.data('fancybox-type'); if (!type) { rez = element.prop('class').match(/fancybox\.(\w+)/); type = rez ? rez[1] : null; } } if (isString(href)) { // Try to guess the content type if (!type) { if (F.isImage(href)) { type = 'image'; } else if (F.isSWF(href)) { type = 'swf'; } else if (href.charAt(0) === '#') { type = 'inline'; } else if (isString(element)) { type = 'html'; content = element; } } // Split url into two pieces with source url and content selector, e.g, // "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id" if (type === 'ajax') { hrefParts = href.split(/\s+/, 2); href = hrefParts.shift(); selector = hrefParts.shift(); } } if (!content) { if (type === 'inline') { if (href) { content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7 } else if (obj.isDom) { content = element; } } else if (type === 'html') { content = href; } else if (!type && !href && obj.isDom) { type = 'inline'; content = element; } } $.extend(obj, { href : href, type : type, content : content, title : title, selector : selector }); group[ i ] = obj; }); // Extend the defaults F.opts = $.extend(true, {}, F.defaults, opts); // All options are merged recursive except keys if (opts.keys !== undefined) { F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false; } F.group = group; return F._start(F.opts.index); }, // Cancel image loading or abort ajax request cancel: function () { var coming = F.coming; if (!coming || false === F.trigger('onCancel')) { return; } F.hideLoading(); if (F.ajaxLoad) { F.ajaxLoad.abort(); } F.ajaxLoad = null; if (F.imgPreload) { F.imgPreload.onload = F.imgPreload.onerror = null; } if (coming.wrap) { coming.wrap.stop(true, true).trigger('onReset').remove(); } F.coming = null; // If the first item has been canceled, then clear everything if (!F.current) { F._afterZoomOut( coming ); } }, // Start closing animation if is open; remove immediately if opening/closing close: function (event) { F.cancel(); if (false === F.trigger('beforeClose')) { return; } F.unbindEvents(); if (!F.isActive) { return; } if (!F.isOpen || event === true) { $('.fancybox-wrap').stop(true).trigger('onReset').remove(); F._afterZoomOut(); } else { F.isOpen = F.isOpened = false; F.isClosing = true; $('.fancybox-item, .fancybox-nav').remove(); F.wrap.stop(true, true).removeClass('fancybox-opened'); F.transitions[ F.current.closeMethod ](); } }, // Manage slideshow: // $.fancybox.play(); - toggle slideshow // $.fancybox.play( true ); - start // $.fancybox.play( false ); - stop play: function ( action ) { var clear = function () { clearTimeout(F.player.timer); }, set = function () { clear(); if (F.current && F.player.isActive) { F.player.timer = setTimeout(F.next, F.current.playSpeed); } }, stop = function () { clear(); D.unbind('.player'); F.player.isActive = false; F.trigger('onPlayEnd'); }, start = function () { if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) { F.player.isActive = true; D.bind({ 'onCancel.player beforeClose.player' : stop, 'onUpdate.player' : set, 'beforeLoad.player' : clear }); set(); F.trigger('onPlayStart'); } }; if (action === true || (!F.player.isActive && action !== false)) { start(); } else { stop(); } }, // Navigate to next gallery item next: function ( direction ) { var current = F.current; if (current) { if (!isString(direction)) { direction = current.direction.next; } F.jumpto(current.index + 1, direction, 'next'); } }, // Navigate to previous gallery item prev: function ( direction ) { var current = F.current; if (current) { if (!isString(direction)) { direction = current.direction.prev; } F.jumpto(current.index - 1, direction, 'prev'); } }, // Navigate to gallery item by index jumpto: function ( index, direction, router ) { var current = F.current; if (!current) { return; } index = getScalar(index); F.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ]; F.router = router || 'jumpto'; if (current.loop) { if (index < 0) { index = current.group.length + (index % current.group.length); } index = index % current.group.length; } if (current.group[ index ] !== undefined) { F.cancel(); F._start(index); } }, // Center inside viewport and toggle position type to fixed or absolute if needed reposition: function (e, onlyAbsolute) { var current = F.current, wrap = current ? current.wrap : null, pos; if (wrap) { pos = F._getPosition(onlyAbsolute); if (e && e.type === 'scroll') { delete pos.position; wrap.stop(true, true).animate(pos, 200); } else { wrap.css(pos); current.pos = $.extend({}, current.dim, pos); } } }, update: function (e) { var type = (e && e.type), anyway = !type || type === 'orientationchange'; if (anyway) { clearTimeout(didUpdate); didUpdate = null; } if (!F.isOpen || didUpdate) { return; } didUpdate = setTimeout(function() { var current = F.current; if (!current || F.isClosing) { return; } F.wrap.removeClass('fancybox-tmp'); if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) { F._setDimension(); } if (!(type === 'scroll' && current.canShrink)) { F.reposition(e); } F.trigger('onUpdate'); didUpdate = null; }, (anyway && !isTouch ? 0 : 300)); }, // Shrink content to fit inside viewport or restore if resized toggle: function ( action ) { if (F.isOpen) { F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView; // Help browser to restore document dimensions if (isTouch) { F.wrap.removeAttr('style').addClass('fancybox-tmp'); F.trigger('onUpdate'); } F.update(); } }, hideLoading: function () { D.unbind('.loading'); $('#fancybox-loading').remove(); }, showLoading: function () { var el, viewport; F.hideLoading(); el = $('
').click(F.cancel).appendTo('body'); // If user will press the escape-button, the request will be canceled D.bind('keydown.loading', function(e) { if ((e.which || e.keyCode) === 27) { e.preventDefault(); F.cancel(); } }); if (!F.defaults.fixed) { viewport = F.getViewport(); el.css({ position : 'absolute', top : (viewport.h * 0.5) + viewport.y, left : (viewport.w * 0.5) + viewport.x }); } }, getViewport: function () { var locked = (F.current && F.current.locked) || false, rez = { x: W.scrollLeft(), y: W.scrollTop() }; if (locked) { rez.w = locked[0].clientWidth; rez.h = locked[0].clientHeight; } else { // See http://bugs.jquery.com/ticket/6724 rez.w = isTouch && window.innerWidth ? window.innerWidth : W.width(); rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height(); } return rez; }, // Unbind the keyboard / clicking actions unbindEvents: function () { if (F.wrap && isQuery(F.wrap)) { F.wrap.unbind('.fb'); } D.unbind('.fb'); W.unbind('.fb'); }, bindEvents: function () { var current = F.current, keys; if (!current) { return; } // Changing document height on iOS devices triggers a 'resize' event, // that can change document height... repeating infinitely W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update); keys = current.keys; if (keys) { D.bind('keydown.fb', function (e) { var code = e.which || e.keyCode, target = e.target || e.srcElement; // Skip esc key if loading, because showLoading will cancel preloading if (code === 27 && F.coming) { return false; } // Ignore key combinations and key events within form elements if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) { $.each(keys, function(i, val) { if (current.group.length > 1 && val[ code ] !== undefined) { F[ i ]( val[ code ] ); e.preventDefault(); return false; } if ($.inArray(code, val) > -1) { F[ i ] (); e.preventDefault(); return false; } }); } }); } if ($.fn.mousewheel && current.mouseWheel) { F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) { var target = e.target || null, parent = $(target), canScroll = false; while (parent.length) { if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) { break; } canScroll = isScrollable( parent[0] ); parent = $(parent).parent(); } if (delta !== 0 && !canScroll) { if (F.group.length > 1 && !current.canShrink) { if (deltaY > 0 || deltaX > 0) { F.prev( deltaY > 0 ? 'down' : 'left' ); } else if (deltaY < 0 || deltaX < 0) { F.next( deltaY < 0 ? 'up' : 'right' ); } e.preventDefault(); } } }); } }, trigger: function (event, o) { var ret, obj = o || F.coming || F.current; if (!obj) { return; } if ($.isFunction( obj[event] )) { ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1)); } if (ret === false) { return false; } if (obj.helpers) { $.each(obj.helpers, function (helper, opts) { if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) { F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj); } }); } D.trigger(event); }, isImage: function (str) { return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i); }, isSWF: function (str) { return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i); }, _start: function (index) { var coming = {}, obj, href, type, margin, padding; index = getScalar( index ); obj = F.group[ index ] || null; if (!obj) { return false; } coming = $.extend(true, {}, F.opts, obj); // Convert margin and padding properties to array - top, right, bottom, left margin = coming.margin; padding = coming.padding; if ($.type(margin) === 'number') { coming.margin = [margin, margin, margin, margin]; } if ($.type(padding) === 'number') { coming.padding = [padding, padding, padding, padding]; } // 'modal' propery is just a shortcut if (coming.modal) { $.extend(true, coming, { closeBtn : false, closeClick : false, nextClick : false, arrows : false, mouseWheel : false, keys : null, helpers: { overlay : { closeClick : false } } }); } // 'autoSize' property is a shortcut, too if (coming.autoSize) { coming.autoWidth = coming.autoHeight = true; } if (coming.width === 'auto') { coming.autoWidth = true; } if (coming.height === 'auto') { coming.autoHeight = true; } /* * Add reference to the group, so it`s possible to access from callbacks, example: * afterLoad : function() { * this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : ''); * } */ coming.group = F.group; coming.index = index; // Give a chance for callback or helpers to update coming item (type, title, etc) F.coming = coming; if (false === F.trigger('beforeLoad')) { F.coming = null; return; } type = coming.type; href = coming.href; if (!type) { F.coming = null; //If we can not determine content type then drop silently or display next/prev item if looping through gallery if (F.current && F.router && F.router !== 'jumpto') { F.current.index = index; return F[ F.router ]( F.direction ); } return false; } F.isActive = true; if (type === 'image' || type === 'swf') { coming.autoHeight = coming.autoWidth = false; coming.scrolling = 'visible'; } if (type === 'image') { coming.aspectRatio = true; } if (type === 'iframe' && isTouch) { coming.scrolling = 'scroll'; } // Build the neccessary markup coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' ); $.extend(coming, { skin : $('.fancybox-skin', coming.wrap), outer : $('.fancybox-outer', coming.wrap), inner : $('.fancybox-inner', coming.wrap) }); $.each(["Top", "Right", "Bottom", "Left"], function(i, v) { coming.skin.css('padding' + v, getValue(coming.padding[ i ])); }); F.trigger('onReady'); // Check before try to load; 'inline' and 'html' types need content, others - href if (type === 'inline' || type === 'html') { if (!coming.content || !coming.content.length) { return F._error( 'content' ); } } else if (!href) { return F._error( 'href' ); } if (type === 'image') { F._loadImage(); } else if (type === 'ajax') { F._loadAjax(); } else if (type === 'iframe') { F._loadIframe(); } else { F._afterLoad(); } }, _error: function ( type ) { $.extend(F.coming, { type : 'html', autoWidth : true, autoHeight : true, minWidth : 0, minHeight : 0, scrolling : 'no', hasError : type, content : F.coming.tpl.error }); F._afterLoad(); }, _loadImage: function () { // Reset preload image so it is later possible to check "complete" property var img = F.imgPreload = new Image(); img.onload = function () { this.onload = this.onerror = null; F.coming.width = this.width / F.opts.pixelRatio; F.coming.height = this.height / F.opts.pixelRatio; F._afterLoad(); }; img.onerror = function () { this.onload = this.onerror = null; F._error( 'image' ); }; img.src = F.coming.href; if (img.complete !== true) { F.showLoading(); } }, _loadAjax: function () { var coming = F.coming; F.showLoading(); F.ajaxLoad = $.ajax($.extend({}, coming.ajax, { url: coming.href, error: function (jqXHR, textStatus) { if (F.coming && textStatus !== 'abort') { F._error( 'ajax', jqXHR ); } else { F.hideLoading(); } }, success: function (data, textStatus) { if (textStatus === 'success') { coming.content = data; F._afterLoad(); } } })); }, _loadIframe: function() { var coming = F.coming, iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime())) .attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling) .attr('src', coming.href); // This helps IE $(coming.wrap).bind('onReset', function () { try { $(this).find('iframe').hide().attr('src', '//about:blank').end().empty(); } catch (e) {} }); if (coming.iframe.preload) { F.showLoading(); iframe.one('load', function() { $(this).data('ready', 1); // iOS will lose scrolling if we resize if (!isTouch) { $(this).bind('load.fb', F.update); } // Without this trick: // - iframe won't scroll on iOS devices // - IE7 sometimes displays empty iframe $(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show(); F._afterLoad(); }); } coming.content = iframe.appendTo( coming.inner ); if (!coming.iframe.preload) { F._afterLoad(); } }, _preloadImages: function() { var group = F.group, current = F.current, len = group.length, cnt = current.preload ? Math.min(current.preload, len - 1) : 0, item, i; for (i = 1; i <= cnt; i += 1) { item = group[ (current.index + i ) % len ]; if (item.type === 'image' && item.href) { new Image().src = item.href; } } }, _afterLoad: function () { var coming = F.coming, previous = F.current, placeholder = 'fancybox-placeholder', current, content, type, scrolling, href, embed; F.hideLoading(); if (!coming || F.isActive === false) { return; } if (false === F.trigger('afterLoad', coming, previous)) { coming.wrap.stop(true).trigger('onReset').remove(); F.coming = null; return; } if (previous) { F.trigger('beforeChange', previous); previous.wrap.stop(true).removeClass('fancybox-opened') .find('.fancybox-item, .fancybox-nav') .remove(); } F.unbindEvents(); current = coming; content = coming.content; type = coming.type; scrolling = coming.scrolling; $.extend(F, { wrap : current.wrap, skin : current.skin, outer : current.outer, inner : current.inner, current : current, previous : previous }); href = current.href; switch (type) { case 'inline': case 'ajax': case 'html': if (current.selector) { content = $('
').html(content).find(current.selector); } else if (isQuery(content)) { if (!content.data(placeholder)) { content.data(placeholder, $('
').insertAfter( content ).hide() ); } content = content.show().detach(); current.wrap.bind('onReset', function () { if ($(this).find(content).length) { content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false); } }); } break; case 'image': content = current.tpl.image.replace('{href}', href); break; case 'swf': content = ''; embed = ''; $.each(current.swf, function(name, val) { content += ''; embed += ' ' + name + '="' + val + '"'; }); content += ''; break; } if (!(isQuery(content) && content.parent().is(current.inner))) { current.inner.append( content ); } // Give a chance for helpers or callbacks to update elements F.trigger('beforeShow'); // Set scrolling before calculating dimensions current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling)); // Set initial dimensions and start position F._setDimension(); F.reposition(); F.isOpen = false; F.coming = null; F.bindEvents(); if (!F.isOpened) { $('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove(); } else if (previous.prevMethod) { F.transitions[ previous.prevMethod ](); } F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ](); F._preloadImages(); }, _setDimension: function () { var viewport = F.getViewport(), steps = 0, canShrink = false, canExpand = false, wrap = F.wrap, skin = F.skin, inner = F.inner, current = F.current, width = current.width, height = current.height, minWidth = current.minWidth, minHeight = current.minHeight, maxWidth = current.maxWidth, maxHeight = current.maxHeight, scrolling = current.scrolling, scrollOut = current.scrollOutside ? current.scrollbarWidth : 0, margin = current.margin, wMargin = getScalar(margin[1] + margin[3]), hMargin = getScalar(margin[0] + margin[2]), wPadding, hPadding, wSpace, hSpace, origWidth, origHeight, origMaxWidth, origMaxHeight, ratio, width_, height_, maxWidth_, maxHeight_, iframe, body; // Reset dimensions so we could re-check actual size wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp'); wPadding = getScalar(skin.outerWidth(true) - skin.width()); hPadding = getScalar(skin.outerHeight(true) - skin.height()); // Any space between content and viewport (margin, padding, border, title) wSpace = wMargin + wPadding; hSpace = hMargin + hPadding; origWidth = isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width; origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height; if (current.type === 'iframe') { iframe = current.content; if (current.autoHeight && iframe.data('ready') === 1) { try { if (iframe[0].contentWindow.document.location) { inner.width( origWidth ).height(9999); body = iframe.contents().find('body'); if (scrollOut) { body.css('overflow-x', 'hidden'); } origHeight = body.outerHeight(true); } } catch (e) {} } } else if (current.autoWidth || current.autoHeight) { inner.addClass( 'fancybox-tmp' ); // Set width or height in case we need to calculate only one dimension if (!current.autoWidth) { inner.width( origWidth ); } if (!current.autoHeight) { inner.height( origHeight ); } if (current.autoWidth) { origWidth = inner.width(); } if (current.autoHeight) { origHeight = inner.height(); } inner.removeClass( 'fancybox-tmp' ); } width = getScalar( origWidth ); height = getScalar( origHeight ); ratio = origWidth / origHeight; // Calculations for the content minWidth = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth); maxWidth = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth); minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight); maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight); // These will be used to determine if wrap can fit in the viewport origMaxWidth = maxWidth; origMaxHeight = maxHeight; if (current.fitToView) { maxWidth = Math.min(viewport.w - wSpace, maxWidth); maxHeight = Math.min(viewport.h - hSpace, maxHeight); } maxWidth_ = viewport.w - wMargin; maxHeight_ = viewport.h - hMargin; if (current.aspectRatio) { if (width > maxWidth) { width = maxWidth; height = getScalar(width / ratio); } if (height > maxHeight) { height = maxHeight; width = getScalar(height * ratio); } if (width < minWidth) { width = minWidth; height = getScalar(width / ratio); } if (height < minHeight) { height = minHeight; width = getScalar(height * ratio); } } else { width = Math.max(minWidth, Math.min(width, maxWidth)); if (current.autoHeight && current.type !== 'iframe') { inner.width( width ); height = inner.height(); } height = Math.max(minHeight, Math.min(height, maxHeight)); } // Try to fit inside viewport (including the title) if (current.fitToView) { inner.width( width ).height( height ); wrap.width( width + wPadding ); // Real wrap dimensions width_ = wrap.width(); height_ = wrap.height(); if (current.aspectRatio) { while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) { if (steps++ > 19) { break; } height = Math.max(minHeight, Math.min(maxHeight, height - 10)); width = getScalar(height * ratio); if (width < minWidth) { width = minWidth; height = getScalar(width / ratio); } if (width > maxWidth) { width = maxWidth; height = getScalar(width / ratio); } inner.width( width ).height( height ); wrap.width( width + wPadding ); width_ = wrap.width(); height_ = wrap.height(); } } else { width = Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_))); height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_))); } } if (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) { width += scrollOut; } inner.width( width ).height( height ); wrap.width( width + wPadding ); width_ = wrap.width(); height_ = wrap.height(); canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight; canExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight)); $.extend(current, { dim : { width : getValue( width_ ), height : getValue( height_ ) }, origWidth : origWidth, origHeight : origHeight, canShrink : canShrink, canExpand : canExpand, wPadding : wPadding, hPadding : hPadding, wrapSpace : height_ - skin.outerHeight(true), skinSpace : skin.height() - height }); if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) { inner.height('auto'); } }, _getPosition: function (onlyAbsolute) { var current = F.current, viewport = F.getViewport(), margin = current.margin, width = F.wrap.width() + margin[1] + margin[3], height = F.wrap.height() + margin[0] + margin[2], rez = { position: 'absolute', top : margin[0], left : margin[3] }; if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) { rez.position = 'fixed'; } else if (!current.locked) { rez.top += viewport.y; rez.left += viewport.x; } rez.top = getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio))); rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * current.leftRatio))); return rez; }, _afterZoomIn: function () { var current = F.current; if (!current) { return; } F.isOpen = F.isOpened = true; F.wrap.css('overflow', 'visible').addClass('fancybox-opened'); F.update(); // Assign a click event if ( current.closeClick || (current.nextClick && F.group.length > 1) ) { F.inner.css('cursor', 'pointer').bind('click.fb', function(e) { if (!$(e.target).is('a') && !$(e.target).parent().is('a')) { e.preventDefault(); F[ current.closeClick ? 'close' : 'next' ](); } }); } // Create a close button if (current.closeBtn) { $(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) { e.preventDefault(); F.close(); }); } // Create navigation arrows if (current.arrows && F.group.length > 1) { if (current.loop || current.index > 0) { $(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev); } if (current.loop || current.index < F.group.length - 1) { $(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next); } } F.trigger('afterShow'); // Stop the slideshow if this is the last item if (!current.loop && current.index === current.group.length - 1) { F.play( false ); } else if (F.opts.autoPlay && !F.player.isActive) { F.opts.autoPlay = false; F.play(); } }, _afterZoomOut: function ( obj ) { obj = obj || F.current; $('.fancybox-wrap').trigger('onReset').remove(); $.extend(F, { group : {}, opts : {}, router : false, current : null, isActive : false, isOpened : false, isOpen : false, isClosing : false, wrap : null, skin : null, outer : null, inner : null }); F.trigger('afterClose', obj); } }); /* * Default transitions */ F.transitions = { getOrigPosition: function () { var current = F.current, element = current.element, orig = current.orig, pos = {}, width = 50, height = 50, hPadding = current.hPadding, wPadding = current.wPadding, viewport = F.getViewport(); if (!orig && current.isDom && element.is(':visible')) { orig = element.find('img:first'); if (!orig.length) { orig = element; } } if (isQuery(orig)) { pos = orig.offset(); if (orig.is('img')) { width = orig.outerWidth(); height = orig.outerHeight(); } } else { pos.top = viewport.y + (viewport.h - height) * current.topRatio; pos.left = viewport.x + (viewport.w - width) * current.leftRatio; } if (F.wrap.css('position') === 'fixed' || current.locked) { pos.top -= viewport.y; pos.left -= viewport.x; } pos = { top : getValue(pos.top - hPadding * current.topRatio), left : getValue(pos.left - wPadding * current.leftRatio), width : getValue(width + wPadding), height : getValue(height + hPadding) }; return pos; }, step: function (now, fx) { var ratio, padding, value, prop = fx.prop, current = F.current, wrapSpace = current.wrapSpace, skinSpace = current.skinSpace; if (prop === 'width' || prop === 'height') { ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start); if (F.isClosing) { ratio = 1 - ratio; } padding = prop === 'width' ? current.wPadding : current.hPadding; value = now - padding; F.skin[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) ) ); F.inner[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) ); } }, zoomIn: function () { var current = F.current, startPos = current.pos, effect = current.openEffect, elastic = effect === 'elastic', endPos = $.extend({opacity : 1}, startPos); // Remove "position" property that breaks older IE delete endPos.position; if (elastic) { startPos = this.getOrigPosition(); if (current.openOpacity) { startPos.opacity = 0.1; } } else if (effect === 'fade') { startPos.opacity = 0.1; } F.wrap.css(startPos).animate(endPos, { duration : effect === 'none' ? 0 : current.openSpeed, easing : current.openEasing, step : elastic ? this.step : null, complete : F._afterZoomIn }); }, zoomOut: function () { var current = F.current, effect = current.closeEffect, elastic = effect === 'elastic', endPos = {opacity : 0.1}; if (elastic) { endPos = this.getOrigPosition(); if (current.closeOpacity) { endPos.opacity = 0.1; } } F.wrap.animate(endPos, { duration : effect === 'none' ? 0 : current.closeSpeed, easing : current.closeEasing, step : elastic ? this.step : null, complete : F._afterZoomOut }); }, changeIn: function () { var current = F.current, effect = current.nextEffect, startPos = current.pos, endPos = { opacity : 1 }, direction = F.direction, distance = 200, field; startPos.opacity = 0.1; if (effect === 'elastic') { field = direction === 'down' || direction === 'up' ? 'top' : 'left'; if (direction === 'down' || direction === 'right') { startPos[ field ] = getValue(getScalar(startPos[ field ]) - distance); endPos[ field ] = '+=' + distance + 'px'; } else { startPos[ field ] = getValue(getScalar(startPos[ field ]) + distance); endPos[ field ] = '-=' + distance + 'px'; } } // Workaround for http://bugs.jquery.com/ticket/12273 if (effect === 'none') { F._afterZoomIn(); } else { F.wrap.css(startPos).animate(endPos, { duration : current.nextSpeed, easing : current.nextEasing, complete : F._afterZoomIn }); } }, changeOut: function () { var previous = F.previous, effect = previous.prevEffect, endPos = { opacity : 0.1 }, direction = F.direction, distance = 200; if (effect === 'elastic') { endPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px'; } previous.wrap.animate(endPos, { duration : effect === 'none' ? 0 : previous.prevSpeed, easing : previous.prevEasing, complete : function () { $(this).trigger('onReset').remove(); } }); } }; /* * Overlay helper */ F.helpers.overlay = { defaults : { closeClick : true, // if true, fancyBox will be closed when user clicks on the overlay speedOut : 200, // duration of fadeOut animation showEarly : true, // indicates if should be opened immediately or wait until the content is ready css : {}, // custom CSS properties locked : !isTouch, // if true, the content will be locked into overlay fixed : true // if false, the overlay CSS position property will not be set to "fixed" }, overlay : null, // current handle fixed : false, // indicates if the overlay has position "fixed" el : $('html'), // element that contains "the lock" // Public methods create : function(opts) { opts = $.extend({}, this.defaults, opts); if (this.overlay) { this.close(); } this.overlay = $('
').appendTo( F.coming ? F.coming.parent : opts.parent ); this.fixed = false; if (opts.fixed && F.defaults.fixed) { this.overlay.addClass('fancybox-overlay-fixed'); this.fixed = true; } }, open : function(opts) { var that = this; opts = $.extend({}, this.defaults, opts); if (this.overlay) { this.overlay.unbind('.overlay').width('auto').height('auto'); } else { this.create(opts); } if (!this.fixed) { W.bind('resize.overlay', $.proxy( this.update, this) ); this.update(); } if (opts.closeClick) { this.overlay.bind('click.overlay', function(e) { if ($(e.target).hasClass('fancybox-overlay')) { if (F.isActive) { F.close(); } else { that.close(); } return false; } }); } this.overlay.css( opts.css ).show(); }, close : function() { var scrollV, scrollH; W.unbind('resize.overlay'); if (this.el.hasClass('fancybox-lock')) { $('.fancybox-margin').removeClass('fancybox-margin'); scrollV = W.scrollTop(); scrollH = W.scrollLeft(); this.el.removeClass('fancybox-lock'); W.scrollTop( scrollV ).scrollLeft( scrollH ); } $('.fancybox-overlay').remove().hide(); $.extend(this, { overlay : null, fixed : false }); }, // Private, callbacks update : function () { var width = '100%', offsetWidth; // Reset width/height so it will not mess this.overlay.width(width).height('100%'); // jQuery does not return reliable result for IE if (IE) { offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); if (D.width() > offsetWidth) { width = D.width(); } } else if (D.width() > W.width()) { width = D.width(); } this.overlay.width(width).height(D.height()); }, // This is where we can manipulate DOM, because later it would cause iframes to reload onReady : function (opts, obj) { var overlay = this.overlay; $('.fancybox-overlay').stop(true, true); if (!overlay) { this.create(opts); } if (opts.locked && this.fixed && obj.fixed) { if (!overlay) { this.margin = D.height() > W.height() ? $('html').css('margin-right').replace("px", "") : false; } obj.locked = this.overlay.append( obj.wrap ); obj.fixed = false; } if (opts.showEarly === true) { this.beforeShow.apply(this, arguments); } }, beforeShow : function(opts, obj) { var scrollV, scrollH; if (obj.locked) { if (this.margin !== false) { $('*').filter(function(){ return ($(this).css('position') === 'fixed' && !$(this).hasClass("fancybox-overlay") && !$(this).hasClass("fancybox-wrap") ); }).addClass('fancybox-margin'); this.el.addClass('fancybox-margin'); } scrollV = W.scrollTop(); scrollH = W.scrollLeft(); this.el.addClass('fancybox-lock'); W.scrollTop( scrollV ).scrollLeft( scrollH ); } this.open(opts); }, onUpdate : function() { if (!this.fixed) { this.update(); } }, afterClose: function (opts) { // Remove overlay if exists and fancyBox is not opening // (e.g., it is not being open using afterClose callback) //if (this.overlay && !F.isActive) { if (this.overlay && !F.coming) { this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this )); } } }; /* * Title helper */ F.helpers.title = { defaults : { type : 'float', // 'float', 'inside', 'outside' or 'over', position : 'bottom' // 'top' or 'bottom' }, beforeShow: function (opts) { var current = F.current, text = current.title, type = opts.type, title, target; if ($.isFunction(text)) { text = text.call(current.element, current); } if (!isString(text) || $.trim(text) === '') { return; } title = $('
' + text + '
'); switch (type) { case 'inside': target = F.skin; break; case 'outside': target = F.wrap; break; case 'over': target = F.inner; break; default: // 'float' target = F.skin; title.appendTo('body'); if (IE) { title.width( title.width() ); } title.wrapInner(''); //Increase bottom margin so this title will also fit into viewport F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) ); break; } title[ (opts.position === 'top' ? 'prependTo' : 'appendTo') ](target); } }; // jQuery plugin initialization $.fn.fancybox = function (options) { var index, that = $(this), selector = this.selector || '', run = function(e) { var what = $(this).blur(), idx = index, relType, relVal; if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) { relType = options.groupAttr || 'data-fancybox-group'; relVal = what.attr(relType); if (!relVal) { relType = 'rel'; relVal = what.get(0)[ relType ]; } if (relVal && relVal !== '' && relVal !== 'nofollow') { what = selector.length ? $(selector) : that; what = what.filter('[' + relType + '="' + relVal + '"]'); idx = what.index(this); } options.index = idx; // Stop an event from bubbling if everything is fine if (F.open(what, options) !== false) { e.preventDefault(); } } }; options = options || {}; index = options.index || 0; if (!selector || options.live === false) { that.unbind('click.fb-start').bind('click.fb-start', run); } else { D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run); } this.filter('[data-fancybox-start=1]').trigger('click'); return this; }; // Tests that need a body at doc ready D.ready(function() { var w1, w2; if ( $.scrollbarWidth === undefined ) { // http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth $.scrollbarWidth = function() { var parent = $('
').appendTo('body'), child = parent.children(), width = child.innerWidth() - child.height( 99 ).innerWidth(); parent.remove(); return width; }; } if ( $.support.fixedPosition === undefined ) { $.support.fixedPosition = (function() { var elem = $('
').appendTo('body'), fixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 ); elem.remove(); return fixed; }()); } $.extend(F.defaults, { scrollbarWidth : $.scrollbarWidth(), fixed : $.support.fixedPosition, parent : $('body') }); //Get real width of page scroll-bar w1 = $(window).width(); H.addClass('fancybox-lock-test'); w2 = $(window).width(); H.removeClass('fancybox-lock-test'); $("").appendTo("head"); }); }(window, document, jQuery));!function () { "use strict"; var t = { d: function (e, n) { for (var i in n) t.o(n, i) && !t.o(e, i) && Object.defineProperty(e, i, {enumerable: !0, get: n[i]}) }, o: function (t, e) { return Object.prototype.hasOwnProperty.call(t, e) }, r: function (t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(t, "__esModule", {value: !0}) } }, e = {}; function n(t) { if (this.formData = {}, this.tree = {}, !(t instanceof FormData)) return this; this.formData = t; const e = () => { const t = new Map; return t.largestIndex = 0, t.set = function (e, n) { "" === e ? e = t.largestIndex++ : /^[0-9]+$/.test(e) && (e = parseInt(e), t.largestIndex <= e && (t.largestIndex = e + 1)), Map.prototype.set.call(t, e, n) }, t }; this.tree = e(); const n = /^(?[a-z][-a-z0-9_:]*)(?(?:\[(?:[a-z][-a-z0-9_:]*|[0-9]*)\])*)/i; for (const [t, i] of this.formData) { const s = t.match(n); if (s) if ("" === s.groups.array) this.tree.set(s.groups.name, i); else { const t = [...s.groups.array.matchAll(/\[([a-z][-a-z0-9_:]*|[0-9]*)\]/gi)].map((([t, e]) => e)); t.unshift(s.groups.name); const n = t.pop(); t.reduce(((t, n) => { if (/^[0-9]+$/.test(n) && (n = parseInt(n)), t.get(n) instanceof Map) return t.get(n); const i = e(); return t.set(n, i), i }), this.tree).set(n, i) } } } t.r(e), t.d(e, { date: function () { return f }, dayofweek: function () { return h }, email: function () { return a }, enum: function () { return u }, file: function () { return m }, maxdate: function () { return z }, maxfilesize: function () { return I }, maxitems: function () { return v }, maxlength: function () { return x }, maxnumber: function () { return b }, mindate: function () { return A }, minfilesize: function () { return $ }, minitems: function () { return g }, minlength: function () { return w }, minnumber: function () { return y }, number: function () { return c }, required: function () { return o }, requiredfile: function () { return r }, tel: function () { return l }, time: function () { return d }, url: function () { return p } }), n.prototype.entries = function () { return this.tree.entries() }, n.prototype.get = function (t) { return this.tree.get(t) }, n.prototype.getAll = function (t) { if (!this.has(t)) return []; const e = t => { const n = []; if (t instanceof Map) for (const [i, s] of t) n.push(...e(s)); else "" !== t && n.push(t); return n }; return e(this.get(t)) }, n.prototype.has = function (t) { return this.tree.has(t) }, n.prototype.keys = function () { return this.tree.keys() }, n.prototype.values = function () { return this.tree.values() }; var i = n; function s({rule: t, field: e, error: n, ...i}) { this.rule = t, this.field = e, this.error = n, this.properties = i } const o = function (t) { if (0 === t.getAll(this.field).length) throw new s(this) }, r = function (t) { if (0 === t.getAll(this.field).length) throw new s(this) }, a = function (t) { if (!t.getAll(this.field).every((t => { if ((t = t.trim()).length < 6) return !1; if (-1 === t.indexOf("@", 1)) return !1; if (t.indexOf("@") !== t.lastIndexOf("@")) return !1; const [e, n] = t.split("@", 2); if (!/^[a-zA-Z0-9!#$%&\'*+\/=?^_`{|}~\.-]+$/.test(e)) return !1; if (/\.{2,}/.test(n)) return !1; if (/(?:^[ \t\n\r\0\x0B.]|[ \t\n\r\0\x0B.]$)/.test(n)) return !1; const i = n.split("."); if (i.length < 2) return !1; for (const t of i) { if (/(?:^[ \t\n\r\0\x0B-]|[ \t\n\r\0\x0B-]$)/.test(t)) return !1; if (!/^[a-z0-9-]+$/i.test(t)) return !1 } return !0 }))) throw new s(this) }, p = function (t) { const e = t.getAll(this.field); if (!e.every((t => { if ("" === (t = t.trim())) return !1; try { return (t => -1 !== ["http", "https", "ftp", "ftps", "mailto", "news", "irc", "irc6", "ircs", "gopher", "nntp", "feed", "telnet", "mms", "rtsp", "sms", "svn", "tel", "fax", "xmpp", "webcal", "urn"].indexOf(t))(new URL(t).protocol.replace(/:$/, "")) } catch { return !1 } }))) throw new s(this) }, l = function (t) { if (!t.getAll(this.field).every((t => (t = (t = t.trim()).replaceAll(/[()/.*#\s-]+/g, ""), /^[+]?[0-9]+$/.test(t))))) throw new s(this) }, c = function (t) { if (!t.getAll(this.field).every((t => (t = t.trim(), !!/^[-]?[0-9]+(?:[eE][+-]?[0-9]+)?$/.test(t) || !!/^[-]?(?:[0-9]+)?[.][0-9]+(?:[eE][+-]?[0-9]+)?$/.test(t))))) throw new s(this) }, f = function (t) { if (!t.getAll(this.field).every((t => { if (t = t.trim(), !/^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/.test(t)) return !1; const e = new Date(t); return !Number.isNaN(e.valueOf()) }))) throw new s(this) }, d = function (t) { if (!t.getAll(this.field).every((t => { const e = t.trim().match(/^([0-9]{2})\:([0-9]{2})(?:\:([0-9]{2}))?$/); if (!e) return !1; const n = parseInt(e[1]), i = parseInt(e[2]), s = e[3] ? parseInt(e[3]) : 0; return 0 <= n && n <= 23 && 0 <= i && i <= 59 && 0 <= s && s <= 59 }))) throw new s(this) }, m = function (t) { if (!t.getAll(this.field).every((t => t instanceof File && this.accept?.some((e => /^\.[a-z0-9]+$/i.test(e) ? t.name.toLowerCase().endsWith(e.toLowerCase()) : (t => { const e = [], n = t.match(/^(?[a-z]+)\/(?[*]|[a-z0-9.+-]+)$/i); if (n) { const t = n.groups.toplevel.toLowerCase(), i = n.groups.sub.toLowerCase(); for (const [s, o] of (() => { const t = new Map; return t.set("jpg|jpeg|jpe", "image/jpeg"), t.set("gif", "image/gif"), t.set("png", "image/png"), t.set("bmp", "image/bmp"), t.set("tiff|tif", "image/tiff"), t.set("webp", "image/webp"), t.set("ico", "image/x-icon"), t.set("heic", "image/heic"), t.set("asf|asx", "video/x-ms-asf"), t.set("wmv", "video/x-ms-wmv"), t.set("wmx", "video/x-ms-wmx"), t.set("wm", "video/x-ms-wm"), t.set("avi", "video/avi"), t.set("divx", "video/divx"), t.set("flv", "video/x-flv"), t.set("mov|qt", "video/quicktime"), t.set("mpeg|mpg|mpe", "video/mpeg"), t.set("mp4|m4v", "video/mp4"), t.set("ogv", "video/ogg"), t.set("webm", "video/webm"), t.set("mkv", "video/x-matroska"), t.set("3gp|3gpp", "video/3gpp"), t.set("3g2|3gp2", "video/3gpp2"), t.set("txt|asc|c|cc|h|srt", "text/plain"), t.set("csv", "text/csv"), t.set("tsv", "text/tab-separated-values"), t.set("ics", "text/calendar"), t.set("rtx", "text/richtext"), t.set("css", "text/css"), t.set("htm|html", "text/html"), t.set("vtt", "text/vtt"), t.set("dfxp", "application/ttaf+xml"), t.set("mp3|m4a|m4b", "audio/mpeg"), t.set("aac", "audio/aac"), t.set("ra|ram", "audio/x-realaudio"), t.set("wav", "audio/wav"), t.set("ogg|oga", "audio/ogg"), t.set("flac", "audio/flac"), t.set("mid|midi", "audio/midi"), t.set("wma", "audio/x-ms-wma"), t.set("wax", "audio/x-ms-wax"), t.set("mka", "audio/x-matroska"), t.set("rtf", "application/rtf"), t.set("js", "application/javascript"), t.set("pdf", "application/pdf"), t.set("swf", "application/x-shockwave-flash"), t.set("class", "application/java"), t.set("tar", "application/x-tar"), t.set("zip", "application/zip"), t.set("gz|gzip", "application/x-gzip"), t.set("rar", "application/rar"), t.set("7z", "application/x-7z-compressed"), t.set("exe", "application/x-msdownload"), t.set("psd", "application/octet-stream"), t.set("xcf", "application/octet-stream"), t.set("doc", "application/msword"), t.set("pot|pps|ppt", "application/vnd.ms-powerpoint"), t.set("wri", "application/vnd.ms-write"), t.set("xla|xls|xlt|xlw", "application/vnd.ms-excel"), t.set("mdb", "application/vnd.ms-access"), t.set("mpp", "application/vnd.ms-project"), t.set("docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"), t.set("docm", "application/vnd.ms-word.document.macroEnabled.12"), t.set("dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template"), t.set("dotm", "application/vnd.ms-word.template.macroEnabled.12"), t.set("xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"), t.set("xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12"), t.set("xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12"), t.set("xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template"), t.set("xltm", "application/vnd.ms-excel.template.macroEnabled.12"), t.set("xlam", "application/vnd.ms-excel.addin.macroEnabled.12"), t.set("pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"), t.set("pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12"), t.set("ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow"), t.set("ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12"), t.set("potx", "application/vnd.openxmlformats-officedocument.presentationml.template"), t.set("potm", "application/vnd.ms-powerpoint.template.macroEnabled.12"), t.set("ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12"), t.set("sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide"), t.set("sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12"), t.set("onetoc|onetoc2|onetmp|onepkg", "application/onenote"), t.set("oxps", "application/oxps"), t.set("xps", "application/vnd.ms-xpsdocument"), t.set("odt", "application/vnd.oasis.opendocument.text"), t.set("odp", "application/vnd.oasis.opendocument.presentation"), t.set("ods", "application/vnd.oasis.opendocument.spreadsheet"), t.set("odg", "application/vnd.oasis.opendocument.graphics"), t.set("odc", "application/vnd.oasis.opendocument.chart"), t.set("odb", "application/vnd.oasis.opendocument.database"), t.set("odf", "application/vnd.oasis.opendocument.formula"), t.set("wp|wpd", "application/wordperfect"), t.set("key", "application/vnd.apple.keynote"), t.set("numbers", "application/vnd.apple.numbers"), t.set("pages", "application/vnd.apple.pages"), t })()) ("*" === i && o.startsWith(t + "/") || o === n[0]) && e.push(...s.split("|")) } return e })(e).some((e => (e = "." + e.trim(), t.name.toLowerCase().endsWith(e.toLowerCase()))))))))) throw new s(this) }, u = function (t) { if (!t.getAll(this.field).every((t => this.accept?.some((e => t === String(e)))))) throw new s(this) }, h = function (t) { if (!t.getAll(this.field).every((t => { const e = 0 === (n = new Date(t).getDay()) ? 7 : n; var n; return this.accept?.some((t => e === parseInt(t))) }))) throw new s(this) }, g = function (t) { if (t.getAll(this.field).length < parseInt(this.threshold)) throw new s(this) }, v = function (t) { const e = t.getAll(this.field); if (parseInt(this.threshold) < e.length) throw new s(this) }, w = function (t) { const e = t.getAll(this.field); let n = 0; if (e.forEach((t => { "string" == typeof t && (n += t.length) })), 0 !== n && n < parseInt(this.threshold)) throw new s(this) }, x = function (t) { const e = t.getAll(this.field); let n = 0; if (e.forEach((t => { "string" == typeof t && (n += t.length) })), parseInt(this.threshold) < n) throw new s(this) }, y = function (t) { if (!t.getAll(this.field).every((t => !(parseFloat(t) < parseFloat(this.threshold))))) throw new s(this) }, b = function (t) { if (!t.getAll(this.field).every((t => !(parseFloat(this.threshold) < parseFloat(t))))) throw new s(this) }, A = function (t) { if (!t.getAll(this.field).every((t => (t = t.trim(), !(/^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/.test(t) && /^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/.test(this.threshold) && t < this.threshold))))) throw new s(this) }, z = function (t) { if (!t.getAll(this.field).every((t => (t = t.trim(), !(/^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/.test(t) && /^[0-9]{4,}-[0-9]{2}-[0-9]{2}$/.test(this.threshold) && this.threshold < t))))) throw new s(this) }, $ = function (t) { const e = t.getAll(this.field); let n = 0; if (e.forEach((t => { t instanceof File && (n += t.size) })), n < parseInt(this.threshold)) throw new s(this) }, I = function (t) { const e = t.getAll(this.field); let n = 0; if (e.forEach((t => { t instanceof File && (n += t.size) })), parseInt(this.threshold) < n) throw new s(this) }; var E; window.swv = { validators: e, validate: (t, n, o = {}) => { const r = (t.rules ?? []).filter((({rule: t, ...n}) => "function" == typeof e[t] && ("function" != typeof e[t].matches || e[t].matches(n, o)))); if (!r.length) return new Map; const a = new i(n), p = r.reduce(((t, n) => { const {rule: i, ...o} = n; if (t.get(o.field)?.error) return t; try { e[i].call({rule: i, ...o}, a) } catch (e) { if (e instanceof s) return t.set(o.field, e) } return t }), new Map); for (const t of a.keys()) p.has(t) || p.set(t, {validInputs: a.getAll(t)}); return p }, ...null !== (E = window.swv) && void 0 !== E ? E : {} } }(); var wpcf7 = {"api": {"root": "", "namespace": "contact-form-7\/v1"}}; !function () { "use strict"; const e = e => Math.abs(parseInt(e, 10)), t = (e, t, a) => { const n = new CustomEvent(`wpcf7${t}`, {bubbles: !0, detail: a}); "string" == typeof e && (e = document.querySelector(e)), e.dispatchEvent(n) }, a = (e, a) => { const n = new Map([["init", "init"], ["validation_failed", "invalid"], ["acceptance_missing", "unaccepted"], ["spam", "spam"], ["aborted", "aborted"], ["mail_sent", "sent"], ["mail_failed", "failed"], ["submitting", "submitting"], ["resetting", "resetting"], ["validating", "validating"], ["payment_required", "payment-required"]]); n.has(a) && (a = n.get(a)), Array.from(n.values()).includes(a) || (a = `custom-${a = (a = a.replace(/[^0-9a-z]+/i, " ").trim()).replace(/\s+/, "-")}`); const r = e.getAttribute("data-status"); if (e.wpcf7.status = a, e.setAttribute("data-status", a), e.classList.add(a), r && r !== a) { e.classList.remove(r); const a = { contactFormId: e.wpcf7.id, pluginVersion: e.wpcf7.pluginVersion, contactFormLocale: e.wpcf7.locale, unitTag: e.wpcf7.unitTag, containerPostId: e.wpcf7.containerPost, status: e.wpcf7.status, prevStatus: r }; t(e, "statuschanged", a) } return a }, n = e => { const {root: t, namespace: a = "contact-form-7/v1"} = wpcf7.api; return r.reduceRight(((e, t) => a => t(a, e)), (e => { let n, r, {url: o, path: c, endpoint: s, headers: i, body: l, data: d, ...p} = e; "string" == typeof s && (n = a.replace(/^\/|\/$/g, ""), r = s.replace(/^\//, ""), c = r ? n + "/" + r : n), "string" == typeof c && (-1 !== t.indexOf("?") && (c = c.replace("?", "&")), c = c.replace(/^\//, ""), o = t + c), i = {Accept: "application/json, */*;q=0.1", ...i}, delete i["X-WP-Nonce"], d && (l = JSON.stringify(d), i["Content-Type"] = "application/json"); const u = {code: "fetch_error", message: "You are probably offline."}, f = {code: "invalid_json", message: "The response is not a valid JSON response."}; return window.fetch(o || c || window.location.href, { ...p, headers: i, body: l }).then((e => Promise.resolve(e).then((e => { if (e.status >= 200 && e.status < 300) return e; throw e })).then((e => { if (204 === e.status) return null; if (e && e.json) return e.json().catch((() => { throw f })); throw f }))), (() => { throw u })) }))(e) }, r = []; function o(e, t = {}) { var n; const {target: r, scope: o = e, ...l} = t; if (void 0 === e.wpcf7?.schema) return; const d = {...e.wpcf7.schema}; if (void 0 !== r) { if (!e.contains(r)) return; if (!r.closest(".wpcf7-form-control-wrap[data-name]")) return; if (r.closest(".novalidate")) return } const p = new FormData, u = []; for (const e of o.querySelectorAll(".wpcf7-form-control-wrap")) if (!e.closest(".novalidate") && (e.querySelectorAll(":where( input, textarea, select ):enabled").forEach((e => { if (e.name) switch (e.type) { case"button": case"image": case"reset": case"submit": break; case"checkbox": case"radio": e.checked && p.append(e.name, e.value); break; case"select-multiple": for (const t of e.selectedOptions) p.append(e.name, t.value); break; case"file": for (const t of e.files) p.append(e.name, t); break; default: p.append(e.name, e.value) } })), e.dataset.name && (u.push(e.dataset.name), e.setAttribute("data-under-validation", "1"), e.contains(r)))) break; d.rules = (null !== (n = d.rules) && void 0 !== n ? n : []).filter((({field: e}) => u.includes(e))); const f = e.getAttribute("data-status"); Promise.resolve(a(e, "validating")).then((a => { if (void 0 !== swv) { const a = swv.validate(d, p, t); for (const [t, {error: n, validInputs: r}] of a) s(e, t), void 0 !== n && c(e, t, n, {scope: o}), i(e, t, null != r ? r : []) } })).finally((() => { a(e, f), e.querySelectorAll(".wpcf7-form-control-wrap[data-under-validation]").forEach((e => { e.removeAttribute("data-under-validation") })) })) } n.use = e => { r.unshift(e) }; const c = (e, t, a, n) => { const {scope: r = e, ...o} = null != n ? n : {}, c = `${e.wpcf7?.unitTag}-ve-${t}`.replaceAll(/[^0-9a-z_-]+/gi, ""), s = e.querySelector(`.wpcf7-form-control-wrap[data-name="${t}"] .wpcf7-form-control`); (() => { const t = document.createElement("li"); t.setAttribute("id", c), s && s.id ? t.insertAdjacentHTML("beforeend", `${a}`) : t.insertAdjacentText("beforeend", a), e.wpcf7.parent.querySelector(".screen-reader-response ul").appendChild(t) })(), r.querySelectorAll(`.wpcf7-form-control-wrap[data-name="${t}"]`).forEach((t => { if ("validating" === e.getAttribute("data-status") && !t.dataset.underValidation) return; const n = document.createElement("span"); n.classList.add("wpcf7-not-valid-tip"), n.setAttribute("aria-hidden", "true"), n.insertAdjacentText("beforeend", a), t.appendChild(n), t.querySelectorAll("[aria-invalid]").forEach((e => { e.setAttribute("aria-invalid", "true") })), t.querySelectorAll(".wpcf7-form-control").forEach((e => { e.classList.add("wpcf7-not-valid"), e.setAttribute("aria-describedby", c), "function" == typeof e.setCustomValidity && e.setCustomValidity(a), e.closest(".use-floating-validation-tip") && (e.addEventListener("focus", (e => { n.setAttribute("style", "display: none") })), n.addEventListener("click", (e => { n.setAttribute("style", "display: none") }))) })) })) }, s = (e, t) => { const a = `${e.wpcf7?.unitTag}-ve-${t}`.replaceAll(/[^0-9a-z_-]+/gi, ""); e.wpcf7.parent.querySelector(`.screen-reader-response ul li#${a}`)?.remove(), e.querySelectorAll(`.wpcf7-form-control-wrap[data-name="${t}"]`).forEach((e => { e.querySelector(".wpcf7-not-valid-tip")?.remove(), e.querySelectorAll("[aria-invalid]").forEach((e => { e.setAttribute("aria-invalid", "false") })), e.querySelectorAll(".wpcf7-form-control").forEach((e => { e.removeAttribute("aria-describedby"), e.classList.remove("wpcf7-not-valid"), "function" == typeof e.setCustomValidity && e.setCustomValidity("") })) })) }, i = (e, t, a) => { e.querySelectorAll(`[data-reflection-of="${t}"]`).forEach((e => { if ("output" === e.tagName.toLowerCase()) { const t = e; 0 === a.length && a.push(t.dataset.default), a.slice(0, 1).forEach((e => { e instanceof File && (e = e.name), t.textContent = e })) } else e.querySelectorAll("output").forEach((e => { e.hasAttribute("data-default") ? 0 === a.length ? e.removeAttribute("hidden") : e.setAttribute("hidden", "hidden") : e.remove() })), a.forEach((a => { a instanceof File && (a = a.name); const n = document.createElement("output"); n.setAttribute("name", t), n.textContent = a, e.appendChild(n) })) })) }; function l(e, r = {}) { if (wpcf7.blocked) return d(e), void a(e, "submitting"); const o = new FormData(e); r.submitter && r.submitter.name && o.append(r.submitter.name, r.submitter.value); const s = { contactFormId: e.wpcf7.id, pluginVersion: e.wpcf7.pluginVersion, contactFormLocale: e.wpcf7.locale, unitTag: e.wpcf7.unitTag, containerPostId: e.wpcf7.containerPost, status: e.wpcf7.status, inputs: Array.from(o, (e => { const t = e[0], a = e[1]; return !t.match(/^_/) && {name: t, value: a} })).filter((e => !1 !== e)), formData: o }; n({ }).then((n => { const r = a(e, n.status); return s.status = n.status, s.apiResponse = n, ["invalid", "unaccepted", "spam", "aborted"].includes(r) ? t(e, r, s) : ["sent", "failed"].includes(r) && t(e, `mail${r}`, s), t(e, "submit", s), n })).then((t => { t.posted_data_hash && (e.querySelector('input[name="_wpcf7_posted_data_hash"]').value = t.posted_data_hash), "mail_sent" === t.status && (e.reset(), e.wpcf7.resetOnMailSent = !0), t.invalid_fields && t.invalid_fields.forEach((t => { c(e, t.field, t.message) })), e.wpcf7.parent.querySelector('.screen-reader-response [role="status"]').insertAdjacentText("beforeend", t.message), e.querySelectorAll(".wpcf7-response-output").forEach((e => { e.innerText = t.message })) })).catch((e => console.error(e))) } n.use(((e, n) => { if (e.wpcf7 && "feedback" === e.wpcf7.endpoint) { const {form: n, detail: r} = e.wpcf7; d(n), t(n, "beforesubmit", r), a(n, "submitting") } return n(e) })); const d = e => { e.querySelectorAll(".wpcf7-form-control-wrap").forEach((t => { t.dataset.name && s(e, t.dataset.name) })), e.wpcf7.parent.querySelector('.screen-reader-response [role="status"]').innerText = "", e.querySelectorAll(".wpcf7-response-output").forEach((e => { e.innerText = "" })) }; function p(e) { } n.use(((e, t) => { if (e.wpcf7 && "refill" === e.wpcf7.endpoint) { const {form: t, detail: n} = e.wpcf7; d(t), a(t, "resetting") } return t(e) })); const u = (e, t) => { for (const a in t) { const n = t[a]; e.querySelectorAll(`input[name="${a}"]`).forEach((e => { e.value = "" })), e.querySelectorAll(`img.wpcf7-captcha-${a.replaceAll(":", "")}`).forEach((e => { e.setAttribute("src", n) })); const r = /([0-9]+)\.(png|gif|jpeg)$/.exec(n); r && e.querySelectorAll(`input[name="_wpcf7_captcha_challenge_${a}"]`).forEach((e => { e.value = r[1] })) } }, f = (e, t) => { for (const a in t) { const n = t[a][0], r = t[a][1]; e.querySelectorAll(`.wpcf7-form-control-wrap[data-name="${a}"]`).forEach((e => { e.querySelector(`input[name="${a}"]`).value = "", e.querySelector(".wpcf7-quiz-label").textContent = n, e.querySelector(`input[name="_wpcf7_quiz_answer_${a}"]`).value = r })) } }; function m(t) { } document.addEventListener("DOMContentLoaded", (e => { var t; "undefined" != typeof wpcf7 ? void 0 !== wpcf7.api ? "function" == typeof window.fetch ? "function" == typeof window.FormData ? "function" == typeof NodeList.prototype.forEach ? "function" == typeof String.prototype.replaceAll ? (wpcf7 = { init: m, submit: l, reset: p, validate: o, ...null !== (t = wpcf7) && void 0 !== t ? t : {} }, document.querySelectorAll(".wpcf7 > form").forEach((e => { wpcf7.init(e), e.closest(".wpcf7").classList.replace("no-js", "js") }))) : console.error("Your browser does not support String.replaceAll().") : console.error("Your browser does not support NodeList.forEach().") : console.error("Your browser does not support window.FormData().") : console.error("Your browser does not support window.fetch().") : console.error("wpcf7.api is not defined.") : console.error("wpcf7 is not defined.") })) }(); !function (t) { var e = {}; function n(r) { if (e[r]) return e[r].exports; var i = e[r] = {i: r, l: !1, exports: {}}; return t[r].call(i.exports, i, i.exports, n), i.l = !0, i.exports } n.m = t, n.c = e, n.d = function (t, e, r) { n.o(t, e) || Object.defineProperty(t, e, {enumerable: !0, get: r}) }, n.r = function (t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(t, "__esModule", {value: !0}) }, n.t = function (t, e) { if (1 & e && (t = n(t)), 8 & e) return t; if (4 & e && "object" == typeof t && t && t.__esModule) return t; var r = Object.create(null); if (n.r(r), Object.defineProperty(r, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) for (var i in t) n.d(r, i, function (e) { return t[e] }.bind(null, i)); return r }, n.n = function (t) { var e = t && t.__esModule ? function () { return t.default } : function () { return t }; return n.d(e, "a", e), e }, n.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e) }, n.p = "", n(n.s = 1) }([function (t, e) { t.exports = jQuery }, function (t, e, n) { n(2), n(6), t.exports = n(4) }, function (t, e, n) { var r, i, o, s; /*! * @fileOverview TouchSwipe - jQuery Plugin @version 1.6.18 / SANDBOXED VERSION FOR TP * @author Matt Bryson http://www.github.com/mattbryson * @see https://github.com/mattbryson/TouchSwipe-Jquery-Plugin * @see http://labs.rampinteractive.co.uk/touchSwipe/ * @see http://plugins.jquery.com/project/touchSwipe * @license * Copyright (c) 2010-2015 Matt Bryson * Dual licensed under the MIT or GPL Version 2 licenses. * */ s = function (t) { "use strict"; var e = "left", n = "right", r = "up", i = "down", o = "none", s = "doubletap", a = "longtap", u = "horizontal", l = "vertical", h = "all", c = "move", f = "end", p = "cancel", d = "ontouchstart" in window, g = window.navigator.msPointerEnabled && !window.PointerEvent && !d, D = (window.PointerEvent || window.navigator.msPointerEnabled) && !d, m = "TouchSwipe"; function v(v, _) { _ = t.extend({}, _); var y = d || D || !_.fallbackToMouseEvents, x = y ? D ? g ? "MSPointerDown" : "pointerdown" : "touchstart" : "mousedown", w = y ? D ? g ? "MSPointerMove" : "pointermove" : "touchmove" : "mousemove", C = y ? D ? g ? "MSPointerUp" : "pointerup" : "touchend" : "mouseup", F = y ? D ? "mouseleave" : null : "mouseleave", E = D ? g ? "MSPointerCancel" : "pointercancel" : "touchcancel", b = 0, T = null, M = null, A = 0, P = 0, S = 0, O = 1, k = 0, B = 0, L = null, N = t(v), R = "start", X = 0, Y = {}, I = 0, z = 0, H = 0, W = 0, V = 0, j = null, U = null; try { N.on(x, q), N.on(E, Q) } catch (v) { t.error("events not supported " + x + "," + E + " on jQuery.swipe") } function q(o) { if (!0 !== N.data(m + "_intouch") && !(0 < t(o.target).closest(_.excludedElements, N).length)) { var s = o.originalEvent ? o.originalEvent : o; if (!s.pointerType || "mouse" != s.pointerType || 0 != _.fallbackToMouseEvents) { var a, u, l = s.touches, c = l ? l[0] : s; return R = "start", l ? X = l.length : !1 !== _.preventDefaultEvents && o.preventDefault(), B = M = T = null, O = 1, k = S = P = A = b = 0, (u = {})[e] = yt(e), u[n] = yt(n), u.up = yt(r), u[i] = yt(i), L = u, dt(), mt(0, c), !l || X === _.fingers || _.fingers === h || st() ? (I = Ft(), 2 == X && (mt(1, l[1]), P = S = wt(Y[0].start, Y[1].start)), (_.swipeStatus || _.pinchStatus) && (a = tt(s, R))) : a = !1, !1 === a ? (tt(s, R = p), a) : (_.hold && (U = setTimeout(t.proxy((function () { N.trigger("hold", [s.target]), _.hold && (a = _.hold.call(N, s, s.target)) }), this), _.longTapThreshold)), Dt(!0), null) } } } function G(s) { var a = s.originalEvent ? s.originalEvent : s; if (R !== f && R !== p && !gt()) { var d, g, D, m, v, y, x, w = a.touches, C = vt(w ? w[0] : a); if (z = Ft(), w && (X = w.length), _.hold && clearTimeout(U), R = c, 2 == X && (0 == P ? (mt(1, w[1]), P = S = wt(Y[0].start, Y[1].start)) : (vt(w[1]), S = wt(Y[0].end, Y[1].end), Y[0].end, Y[1].end, B = O < 1 ? "out" : "in"), O = (S / P * 1).toFixed(2), k = Math.abs(P - S)), X === _.fingers || _.fingers === h || !w || st()) { if (T = Ct(C.start, C.end), function (t, s) { if (!1 !== _.preventDefaultEvents) if (_.allowPageScroll === o) t.preventDefault(); else { var a = "auto" === _.allowPageScroll; switch (s) { case e: (_.swipeLeft && a || !a && _.allowPageScroll != u) && t.preventDefault(); break; case n: (_.swipeRight && a || !a && _.allowPageScroll != u) && t.preventDefault(); break; case r: (_.swipeUp && a || !a && _.allowPageScroll != l) && t.preventDefault(); break; case i: (_.swipeDown && a || !a && _.allowPageScroll != l) && t.preventDefault() } } }(s, M = Ct(C.last, C.end)), y = C.start, x = C.end, b = Math.round(Math.sqrt(Math.pow(x.x - y.x, 2) + Math.pow(x.y - y.y, 2))), A = xt(), function (t, e) { t != o && (e = Math.max(e, _t(t)), L[t].distance = e) }(T, b), d = tt(a, R), !_.triggerOnTouchEnd || _.triggerOnTouchLeave) { var F = !0; _.triggerOnTouchLeave && (D = { left: (v = (m = t(m = this)).offset()).left, right: v.left + m.outerWidth(), top: v.top, bottom: v.top + m.outerHeight() }, F = (g = C.end).x > D.left && g.x < D.right && g.y > D.top && g.y < D.bottom), !_.triggerOnTouchEnd && F ? R = J(c) : _.triggerOnTouchLeave && !F && (R = J(f)), R != p && R != f || tt(a, R) } } else tt(a, R = p); !1 === d && tt(a, R = p) } } function K(t) { var e, n = t.originalEvent ? t.originalEvent : t, r = n.touches; if (r) { if (r.length && !gt()) return e = n, H = Ft(), W = e.touches.length + 1, !0; if (r.length && gt()) return !0 } return gt() && (X = W), z = Ft(), A = xt(), rt() || !nt() ? tt(n, R = p) : _.triggerOnTouchEnd || !1 === _.triggerOnTouchEnd && R === c ? (!1 !== _.preventDefaultEvents && !1 !== t.cancelable && t.preventDefault(), tt(n, R = f)) : !_.triggerOnTouchEnd && ct() ? et(n, R = f, "tap") : R === c && tt(n, R = p), Dt(!1), null } function Q() { S = P = I = z = X = 0, O = 1, dt(), Dt(!1) } function Z(t) { var e = t.originalEvent ? t.originalEvent : t; _.triggerOnTouchLeave && tt(e, R = J(f)) } function $() { N.off(x, q), N.off(E, Q), N.off(w, G), N.off(C, K), F && N.off(F, Z), Dt(!1) } function J(t) { var e = t, n = it(), r = nt(), i = rt(); return !n || i ? e = p : !r || t != c || _.triggerOnTouchEnd && !_.triggerOnTouchLeave ? !r && t == f && _.triggerOnTouchLeave && (e = p) : e = f, e } function tt(t, e) { var n, r = t.touches; return (at() && ut() || ut()) && (n = et(t, e, "swipe")), (ot() && st() || st()) && !1 !== n && (n = et(t, e, "pinch")), pt() && ft() && !1 !== n ? n = et(t, e, s) : A > _.longTapThreshold && b < 10 && _.longTap && !1 !== n ? n = et(t, e, a) : 1 !== X && d || !(isNaN(b) || b < _.threshold) || !ct() || !1 === n || (n = et(t, e, "tap")), e === p && Q(), e === f && (r && r.length || Q()), n } function et(o, u, l) { var h; if ("swipe" == l) { if (N.trigger("swipeStatus", [u, T || null, b || 0, A || 0, X, Y, M]), _.swipeStatus && !1 === (h = _.swipeStatus.call(N, o, u, T || null, b || 0, A || 0, X, Y, M))) return !1; if (u == f && at()) { if (clearTimeout(j), clearTimeout(U), N.trigger("swipe", [T, b, A, X, Y, M]), _.swipe && !1 === (h = _.swipe.call(N, o, T, b, A, X, Y, M))) return !1; switch (T) { case e: N.trigger("swipeLeft", [T, b, A, X, Y, M]), _.swipeLeft && (h = _.swipeLeft.call(N, o, T, b, A, X, Y, M)); break; case n: N.trigger("swipeRight", [T, b, A, X, Y, M]), _.swipeRight && (h = _.swipeRight.call(N, o, T, b, A, X, Y, M)); break; case r: N.trigger("swipeUp", [T, b, A, X, Y, M]), _.swipeUp && (h = _.swipeUp.call(N, o, T, b, A, X, Y, M)); break; case i: N.trigger("swipeDown", [T, b, A, X, Y, M]), _.swipeDown && (h = _.swipeDown.call(N, o, T, b, A, X, Y, M)) } } } if ("pinch" == l) { if (N.trigger("pinchStatus", [u, B || null, k || 0, A || 0, X, O, Y]), _.pinchStatus && !1 === (h = _.pinchStatus.call(N, o, u, B || null, k || 0, A || 0, X, O, Y))) return !1; if (u == f && ot()) switch (B) { case"in": N.trigger("pinchIn", [B || null, k || 0, A || 0, X, O, Y]), _.pinchIn && (h = _.pinchIn.call(N, o, B || null, k || 0, A || 0, X, O, Y)); break; case"out": N.trigger("pinchOut", [B || null, k || 0, A || 0, X, O, Y]), _.pinchOut && (h = _.pinchOut.call(N, o, B || null, k || 0, A || 0, X, O, Y)) } } return "tap" == l ? u !== p && u !== f || (clearTimeout(j), clearTimeout(U), ft() && !pt() ? (V = Ft(), j = setTimeout(t.proxy((function () { V = null, N.trigger("tap", [o.target]), _.tap && (h = _.tap.call(N, o, o.target)) }), this), _.doubleTapThreshold)) : (V = null, N.trigger("tap", [o.target]), _.tap && (h = _.tap.call(N, o, o.target)))) : l == s ? u !== p && u !== f || (clearTimeout(j), clearTimeout(U), V = null, N.trigger("doubletap", [o.target]), _.doubleTap && (h = _.doubleTap.call(N, o, o.target))) : l == a && (u !== p && u !== f || (clearTimeout(j), V = null, N.trigger("longtap", [o.target]), _.longTap && (h = _.longTap.call(N, o, o.target)))), h } function nt() { var t = !0; return null !== _.threshold && (t = b >= _.threshold), t } function rt() { var t = !1; return null !== _.cancelThreshold && null !== T && (t = _t(T) - b >= _.cancelThreshold), t } function it() { return !(_.maxTimeThreshold && A >= _.maxTimeThreshold) } function ot() { var t = lt(), e = ht(), n = null === _.pinchThreshold || k >= _.pinchThreshold; return t && e && n } function st() { return _.pinchStatus || _.pinchIn || _.pinchOut } function at() { var t = it(), e = nt(), n = lt(), r = ht(); return !rt() && r && n && e && t } function ut() { return _.swipe || _.swipeStatus || _.swipeLeft || _.swipeRight || _.swipeUp || _.swipeDown } function lt() { return X === _.fingers || _.fingers === h || !d } function ht() { return 0 !== Y[0].end.x } function ct() { return _.tap } function ft() { return !!_.doubleTap } function pt() { if (null == V) return !1; var t = Ft(); return ft() && t - V <= _.doubleTapThreshold } function dt() { W = H = 0 } function gt() { var t = !1; return H && Ft() - H <= _.fingerReleaseThreshold && (t = !0), t } function Dt(t) { N && (!0 === t ? (N.on(w, G), N.on(C, K), F && N.on(F, Z)) : (N.off(w, G, !1), N.off(C, K, !1), F && N.off(F, Z, !1)), N.data(m + "_intouch", !0 === t)) } function mt(t, e) { var n = {start: {x: 0, y: 0}, last: {x: 0, y: 0}, end: {x: 0, y: 0}}; return n.start.x = n.last.x = n.end.x = e.pageX || e.clientX, n.start.y = n.last.y = n.end.y = e.pageY || e.clientY, Y[t] = n } function vt(t) { var e = void 0 !== t.identifier ? t.identifier : 0, n = Y[e] || null; return null === n && (n = mt(e, t)), n.last.x = n.end.x, n.last.y = n.end.y, n.end.x = t.pageX || t.clientX, n.end.y = t.pageY || t.clientY, n } function _t(t) { if (L[t]) return L[t].distance } function yt(t) { return {direction: t, distance: 0} } function xt() { return z - I } function wt(t, e) { var n = Math.abs(t.x - e.x), r = Math.abs(t.y - e.y); return Math.round(Math.sqrt(n * n + r * r)) } function Ct(t, s) { if (u = s, (a = t).x == u.x && a.y == u.y) return o; var a, u, l, h, c, f, p, d, g = (h = s, c = (l = t).x - h.x, f = h.y - l.y, p = Math.atan2(f, c), (d = Math.round(180 * p / Math.PI)) < 0 && (d = 360 - Math.abs(d)), d); return g <= 45 && 0 <= g || g <= 360 && 315 <= g ? e : 135 <= g && g <= 225 ? n : 45 < g && g < 135 ? i : r } function Ft() { return (new Date).getTime() } this.enable = function () { return this.disable(), N.on(x, q), N.on(E, Q), N }, this.disable = function () { return $(), N }, this.destroy = function () { $(), N.data(m, null), N = null }, this.option = function (e, n) { if ("object" == typeof e) _ = t.extend(_, e); else if (void 0 !== _[e]) { if (void 0 === n) return _[e]; _[e] = n } else { if (!e) return _; t.error("Option " + e + " does not exist on jQuery.swipe.options") } return null } } t.fn.rsswipe = function (e) { var n = t(this), r = n.data(m); if (r && "string" == typeof e) { if (r[e]) return r[e].apply(r, Array.prototype.slice.call(arguments, 1)); t.error("Method " + e + " does not exist on jQuery.rsswipe") } else if (r && "object" == typeof e) r.option.apply(r, arguments); else if (!(r || "object" != typeof e && e)) return function (e) { return !e || void 0 !== e.allowPageScroll || void 0 === e.swipe && void 0 === e.swipeStatus || (e.allowPageScroll = o), void 0 !== e.click && void 0 === e.tap && (e.tap = e.click), e = e || {}, e = t.extend({}, t.fn.rsswipe.defaults, e), this.each((function () { var n = t(this), r = n.data(m); r || (r = new v(this, e), n.data(m, r)) })) }.apply(this, arguments); return n }, t.fn.rsswipe.version = "1.6.18", t.fn.rsswipe.defaults = { fingers: 1, threshold: 75, cancelThreshold: null, pinchThreshold: 20, maxTimeThreshold: null, fingerReleaseThreshold: 250, longTapThreshold: 500, doubleTapThreshold: 200, swipe: null, swipeLeft: null, swipeRight: null, swipeUp: null, swipeDown: null, swipeStatus: null, pinchIn: null, pinchOut: null, pinchStatus: null, click: null, tap: null, doubleTap: null, longTap: null, hold: null, triggerOnTouchEnd: !0, triggerOnTouchLeave: !1, allowPageScroll: "auto", fallbackToMouseEvents: !0, excludedElements: ".noSwipe", preventDefaultEvents: !0 }, t.fn.rsswipe.phases = { PHASE_START: "start", PHASE_MOVE: c, PHASE_END: f, PHASE_CANCEL: p }, t.fn.rsswipe.directions = { LEFT: e, RIGHT: n, UP: r, DOWN: i, IN: "in", OUT: "out" }, t.fn.rsswipe.pageScroll = { NONE: o, HORIZONTAL: u, VERTICAL: l, AUTO: "auto" }, t.fn.rsswipe.fingers = {ONE: 1, TWO: 2, THREE: 3, FOUR: 4, FIVE: 5, ALL: h} }, n(3).jQuery ? (i = [n(0)], void 0 === (o = "function" == typeof (r = s) ? r.apply(e, i) : r) || (t.exports = o)) : t.exports ? s(n(0)) : s(jQuery) }, function (t, e) { (function (e) { t.exports = e }).call(this, {}) }, function (t, e) { var n; (n = jQuery).waitForImages = {hasImageProperties: ["backgroundImage", "listStyleImage", "borderImage", "borderCornerImage"]}, n.expr.pseudos.uncached = function (t) { var e = document.createElement("img"); return e.src = t.src, n(t).is('img[src!=""]') && !e.complete }, n.fn.waitForImages = function (t, e, r) { if (n.isPlainObject(t) && (e = t.each, r = t.waitForAll, t = t.finished), t = t || n.noop, e = e || n.noop, r = !!r, !n.isFunction(t) || !n.isFunction(e)) throw new TypeError("An invalid callback was supplied."); return this.each((function () { var i = n(this), o = []; if (r) { var s = n.waitForImages.hasImageProperties || [], a = /url\((['"]?)(.*?)\1\)/g; i.find("*").each((function () { var t = n(this); t.is("img:uncached") && o.push({src: t.attr("src"), element: t[0]}), n.each(s, (function (e, n) { var r, i = t.css(n); if (!i) return !0; for (; r = a.exec(i);) o.push({src: r[2], element: t[0]}) })) })) } else i.find("img:uncached").each((function () { o.push({src: this.src, element: this}) })); var u = o.length, l = 0; 0 == u && t.call(i[0]), n.each(o, (function (r, o) { var s = new Image; n(s).bind("load error", (function (n) { if (l++, e.call(o.element, l, u, "load" == n.type), l == u) return t.call(i[0]), !1 })), s.src = o.src })) })) } }, , function (t, e, n) { "use strict"; function r(t) { if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t } function i(t, e) { t.prototype = Object.create(e.prototype), t.prototype.constructor = t, t.__proto__ = e } /*! * GSAP 3.9.1 * https://greensock.com * * @license Copyright 2008-2021, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */ n.r(e); var o, s, a, u, l, h, c, f, p, d, g, D, m, v = {autoSleep: 120, force3D: "auto", nullTargetWarn: 1, units: {lineHeight: ""}}, _ = {duration: .5, overwrite: !1, delay: 0}, y = 1e8, x = 2 * Math.PI, w = x / 4, C = 0, F = Math.sqrt, E = Math.cos, b = Math.sin, T = function (t) { return "string" == typeof t }, M = function (t) { return "function" == typeof t }, A = function (t) { return "number" == typeof t }, P = function (t) { return void 0 === t }, S = function (t) { return "object" == typeof t }, O = function (t) { return !1 !== t }, k = function () { return "undefined" != typeof window }, B = function (t) { return M(t) || T(t) }, L = "function" == typeof ArrayBuffer && ArrayBuffer.isView || function () { }, N = Array.isArray, R = /(?:-?\.?\d|\.)+/gi, X = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g, Y = /[-+=.]*\d+[.e-]*\d*[a-z%]*/g, I = /[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi, z = /[+-]=-?[.\d]+/, H = /[^,'"\[\]\s]+/gi, W = /[\d.+\-=]+(?:e[-+]\d*)*/i, V = {}, j = {}, U = function (t) { return (j = mt(t, V)) && nn }, q = function (t, e) { return console.warn("Invalid property", t, "set to", e, "Missing plugin? gsap.registerPlugin()") }, G = function (t, e) { return !e && console.warn(t) }, K = function (t, e) { return t && (V[t] = e) && j && (j[t] = e) || V }, Q = function () { return 0 }, Z = {}, $ = [], J = {}, tt = {}, et = {}, nt = 30, rt = [], it = "", ot = function (t) { var e, n, r = t[0]; if (S(r) || M(r) || (t = [t]), !(e = (r._gsap || {}).harness)) { for (n = rt.length; n-- && !rt[n].targetTest(r);) ; e = rt[n] } for (n = t.length; n--;) t[n] && (t[n]._gsap || (t[n]._gsap = new be(t[n], e))) || t.splice(n, 1); return t }, st = function (t) { return t._gsap || ot(Ut(t))[0]._gsap }, at = function (t, e, n) { return (n = t[e]) && M(n) ? t[e]() : P(n) && t.getAttribute && t.getAttribute(e) || n }, ut = function (t, e) { return (t = t.split(",")).forEach(e) || t }, lt = function (t) { return Math.round(1e5 * t) / 1e5 || 0 }, ht = function (t) { return Math.round(1e7 * t) / 1e7 || 0 }, ct = function (t, e) { for (var n = e.length, r = 0; t.indexOf(e[r]) < 0 && ++r < n;) ; return r < n }, ft = function () { var t, e, n = $.length, r = $.slice(0); for (J = {}, $.length = 0, t = 0; t < n; t++) (e = r[t]) && e._lazy && (e.render(e._lazy[0], e._lazy[1], !0)._lazy = 0) }, pt = function (t, e, n, r) { $.length && ft(), t.render(e, n, r), $.length && ft() }, dt = function (t) { var e = parseFloat(t); return (e || 0 === e) && (t + "").match(H).length < 2 ? e : T(t) ? t.trim() : t }, gt = function (t) { return t }, Dt = function (t, e) { for (var n in e) n in t || (t[n] = e[n]); return t }, mt = function (t, e) { for (var n in e) t[n] = e[n]; return t }, vt = function t(e, n) { for (var r in n) "__proto__" !== r && "constructor" !== r && "prototype" !== r && (e[r] = S(n[r]) ? t(e[r] || (e[r] = {}), n[r]) : n[r]); return e }, _t = function (t, e) { var n, r = {}; for (n in t) n in e || (r[n] = t[n]); return r }, yt = function (t) { var e, n = t.parent || s, r = t.keyframes ? (e = N(t.keyframes), function (t, n) { for (var r in n) r in t || "duration" === r && e || "ease" === r || (t[r] = n[r]) }) : Dt; if (O(t.inherit)) for (; n;) r(t, n.vars.defaults), n = n.parent || n._dp; return t }, xt = function (t, e, n, r) { void 0 === n && (n = "_first"), void 0 === r && (r = "_last"); var i = e._prev, o = e._next; i ? i._next = o : t[n] === e && (t[n] = o), o ? o._prev = i : t[r] === e && (t[r] = i), e._next = e._prev = e.parent = null }, wt = function (t, e) { t.parent && (!e || t.parent.autoRemoveChildren) && t.parent.remove(t), t._act = 0 }, Ct = function (t, e) { if (t && (!e || e._end > t._dur || e._start < 0)) for (var n = t; n;) n._dirty = 1, n = n.parent; return t }, Ft = function (t) { for (var e = t.parent; e && e.parent;) e._dirty = 1, e.totalDuration(), e = e.parent; return t }, Et = function (t) { return t._repeat ? bt(t._tTime, t = t.duration() + t._rDelay) * t : 0 }, bt = function (t, e) { var n = Math.floor(t /= e); return t && n === t ? n - 1 : n }, Tt = function (t, e) { return (t - e._start) * e._ts + (e._ts >= 0 ? 0 : e._dirty ? e.totalDuration() : e._tDur) }, Mt = function (t) { return t._end = ht(t._start + (t._tDur / Math.abs(t._ts || t._rts || 1e-8) || 0)) }, At = function (t, e) { var n = t._dp; return n && n.smoothChildTiming && t._ts && (t._start = ht(n._time - (t._ts > 0 ? e / t._ts : ((t._dirty ? t.totalDuration() : t._tDur) - e) / -t._ts)), Mt(t), n._dirty || Ct(n, t)), t }, Pt = function (t, e) { var n; if ((e._time || e._initted && !e._dur) && (n = Tt(t.rawTime(), e), (!e._dur || zt(0, e.totalDuration(), n) - e._tTime > 1e-8) && e.render(n, !0)), Ct(t, e)._dp && t._initted && t._time >= t._dur && t._ts) { if (t._dur < t.duration()) for (n = t; n._dp;) n.rawTime() >= 0 && n.totalTime(n._tTime), n = n._dp; t._zTime = -1e-8 } }, St = function (t, e, n, r) { return e.parent && wt(e), e._start = ht((A(n) ? n : n || t !== s ? Xt(t, n, e) : t._time) + e._delay), e._end = ht(e._start + (e.totalDuration() / Math.abs(e.timeScale()) || 0)), function (t, e, n, r, i) { void 0 === n && (n = "_first"), void 0 === r && (r = "_last"); var o, s = t[r]; if (i) for (o = e[i]; s && s[i] > o;) s = s._prev; s ? (e._next = s._next, s._next = e) : (e._next = t[n], t[n] = e), e._next ? e._next._prev = e : t[r] = e, e._prev = s, e.parent = e._dp = t }(t, e, "_first", "_last", t._sort ? "_start" : 0), Bt(e) || (t._recent = e), r || Pt(t, e), t }, Ot = function (t, e) { return (V.ScrollTrigger || q("scrollTrigger", e)) && V.ScrollTrigger.create(e, t) }, kt = function (t, e, n, r) { return ke(t, e), t._initted ? !n && t._pt && (t._dur && !1 !== t.vars.lazy || !t._dur && t.vars.lazy) && c !== pe.frame ? ($.push(t), t._lazy = [e, r], 1) : void 0 : 1 }, Bt = function (t) { var e = t.data; return "isFromStart" === e || "isStart" === e }, Lt = function (t, e, n, r) { var i = t._repeat, o = ht(e) || 0, s = t._tTime / t._tDur; return s && !r && (t._time *= o / t._dur), t._dur = o, t._tDur = i ? i < 0 ? 1e10 : ht(o * (i + 1) + t._rDelay * i) : o, s > 0 && !r ? At(t, t._tTime = t._tDur * s) : t.parent && Mt(t), n || Ct(t.parent, t), t }, Nt = function (t) { return t instanceof Me ? Ct(t) : Lt(t, t._dur) }, Rt = {_start: 0, endTime: Q, totalDuration: Q}, Xt = function t(e, n, r) { var i, o, s, a = e.labels, u = e._recent || Rt, l = e.duration() >= y ? u.endTime(!1) : e._dur; return T(n) && (isNaN(n) || n in a) ? (o = n.charAt(0), s = "%" === n.substr(-1), i = n.indexOf("="), "<" === o || ">" === o ? (i >= 0 && (n = n.replace(/=/, "")), ("<" === o ? u._start : u.endTime(u._repeat >= 0)) + (parseFloat(n.substr(1)) || 0) * (s ? (i < 0 ? u : r).totalDuration() / 100 : 1)) : i < 0 ? (n in a || (a[n] = l), a[n]) : (o = parseFloat(n.charAt(i - 1) + n.substr(i + 1)), s && r && (o = o / 100 * (N(r) ? r[0] : r).totalDuration()), i > 1 ? t(e, n.substr(0, i - 1), r) + o : l + o)) : null == n ? l : +n }, Yt = function (t, e, n) { var r, i, o = A(e[1]), s = (o ? 2 : 1) + (t < 2 ? 0 : 1), a = e[s]; if (o && (a.duration = e[1]), a.parent = n, t) { for (r = a, i = n; i && !("immediateRender" in r);) r = i.vars.defaults || {}, i = O(i.vars.inherit) && i.parent; a.immediateRender = O(r.immediateRender), t < 2 ? a.runBackwards = 1 : a.startAt = e[s - 1] } return new Xe(e[0], a, e[s + 1]) }, It = function (t, e) { return t || 0 === t ? e(t) : e }, zt = function (t, e, n) { return n < t ? t : n > e ? e : n }, Ht = function (t, e) { return T(t) && (e = W.exec(t)) ? t.substr(e.index + e[0].length) : "" }, Wt = [].slice, Vt = function (t, e) { return t && S(t) && "length" in t && (!e && !t.length || t.length - 1 in t && S(t[0])) && !t.nodeType && t !== a }, jt = function (t, e, n) { return void 0 === n && (n = []), t.forEach((function (t) { var r; return T(t) && !e || Vt(t, 1) ? (r = n).push.apply(r, Ut(t)) : n.push(t) })) || n }, Ut = function (t, e, n) { return !T(t) || n || !u && de() ? N(t) ? jt(t, n) : Vt(t) ? Wt.call(t, 0) : t ? [t] : [] : Wt.call((e || l).querySelectorAll(t), 0) }, qt = function (t) { return t.sort((function () { return .5 - Math.random() })) }, Gt = function (t) { if (M(t)) return t; var e = S(t) ? t : {each: t}, n = xe(e.ease), r = e.from || 0, i = parseFloat(e.base) || 0, o = {}, s = r > 0 && r < 1, a = isNaN(r) || s, u = e.axis, l = r, h = r; return T(r) ? l = h = { center: .5, edges: .5, end: 1 }[r] || 0 : !s && a && (l = r[0], h = r[1]), function (t, s, c) { var f, p, d, g, D, m, v, _, x, w = (c || e).length, C = o[w]; if (!C) { if (!(x = "auto" === e.grid ? 0 : (e.grid || [1, y])[1])) { for (v = -y; v < (v = c[x++].getBoundingClientRect().left) && x < w;) ; x-- } for (C = o[w] = [], f = a ? Math.min(x, w) * l - .5 : r % x, p = x === y ? 0 : a ? w * h / x - .5 : r / x | 0, v = 0, _ = y, m = 0; m < w; m++) d = m % x - f, g = p - (m / x | 0), C[m] = D = u ? Math.abs("y" === u ? g : d) : F(d * d + g * g), D > v && (v = D), D < _ && (_ = D); "random" === r && qt(C), C.max = v - _, C.min = _, C.v = w = (parseFloat(e.amount) || parseFloat(e.each) * (x > w ? w - 1 : u ? "y" === u ? w / x : x : Math.max(x, w / x)) || 0) * ("edges" === r ? -1 : 1), C.b = w < 0 ? i - w : i, C.u = Ht(e.amount || e.each) || 0, n = n && w < 0 ? _e(n) : n } return w = (C[t] - C.min) / C.max || 0, ht(C.b + (n ? n(w) : w) * C.v) + C.u } }, Kt = function (t) { var e = Math.pow(10, ((t + "").split(".")[1] || "").length); return function (n) { var r = Math.round(parseFloat(n) / t) * t * e; return (r - r % 1) / e + (A(n) ? 0 : Ht(n)) } }, Qt = function (t, e) { var n, r, i = N(t); return !i && S(t) && (n = i = t.radius || y, t.values ? (t = Ut(t.values), (r = !A(t[0])) && (n *= n)) : t = Kt(t.increment)), It(e, i ? M(t) ? function (e) { return r = t(e), Math.abs(r - e) <= n ? r : e } : function (e) { for (var i, o, s = parseFloat(r ? e.x : e), a = parseFloat(r ? e.y : 0), u = y, l = 0, h = t.length; h--;) (i = r ? (i = t[h].x - s) * i + (o = t[h].y - a) * o : Math.abs(t[h] - s)) < u && (u = i, l = h); return l = !n || u <= n ? t[l] : e, r || l === e || A(e) ? l : l + Ht(e) } : Kt(t)) }, Zt = function (t, e, n, r) { return It(N(t) ? !e : !0 === n ? !!(n = 0) : !r, (function () { return N(t) ? t[~~(Math.random() * t.length)] : (n = n || 1e-5) && (r = n < 1 ? Math.pow(10, (n + "").length - 2) : 1) && Math.floor(Math.round((t - n / 2 + Math.random() * (e - t + .99 * n)) / n) * n * r) / r })) }, $t = function (t, e, n) { return It(n, (function (n) { return t[~~e(n)] })) }, Jt = function (t) { for (var e, n, r, i, o = 0, s = ""; ~(e = t.indexOf("random(", o));) r = t.indexOf(")", e), i = "[" === t.charAt(e + 7), n = t.substr(e + 7, r - e - 7).match(i ? H : R), s += t.substr(o, e - o) + Zt(i ? n : +n[0], i ? 0 : +n[1], +n[2] || 1e-5), o = r + 1; return s + t.substr(o, t.length - o) }, te = function (t, e, n, r, i) { var o = e - t, s = r - n; return It(i, (function (e) { return n + ((e - t) / o * s || 0) })) }, ee = function (t, e, n) { var r, i, o, s = t.labels, a = y; for (r in s) (i = s[r] - e) < 0 == !!n && i && a > (i = Math.abs(i)) && (o = r, a = i); return o }, ne = function (t, e, n) { var r, i, o = t.vars, s = o[e]; if (s) return r = o[e + "Params"], i = o.callbackScope || t, n && $.length && ft(), r ? s.apply(i, r) : s.call(i) }, re = function (t) { return wt(t), t.scrollTrigger && t.scrollTrigger.kill(!1), t.progress() < 1 && ne(t, "onInterrupt"), t }, ie = function (t) { var e = (t = !t.name && t.default || t).name, n = M(t), r = e && !n && t.init ? function () { this._props = [] } : t, i = {init: Q, render: qe, add: Se, kill: Ke, modifier: Ge, rawVars: 0}, o = {targetTest: 0, get: 0, getSetter: We, aliases: {}, register: 0}; if (de(), t !== r) { if (tt[e]) return; Dt(r, Dt(_t(t, i), o)), mt(r.prototype, mt(i, _t(t, o))), tt[r.prop = e] = r, t.targetTest && (rt.push(r), Z[e] = 1), e = ("css" === e ? "CSS" : e.charAt(0).toUpperCase() + e.substr(1)) + "Plugin" } K(e, r), t.register && t.register(nn, r, $e) }, oe = { aqua: [0, 255, 255], lime: [0, 255, 0], silver: [192, 192, 192], black: [0, 0, 0], maroon: [128, 0, 0], teal: [0, 128, 128], blue: [0, 0, 255], navy: [0, 0, 128], white: [255, 255, 255], olive: [128, 128, 0], yellow: [255, 255, 0], orange: [255, 165, 0], gray: [128, 128, 128], purple: [128, 0, 128], green: [0, 128, 0], red: [255, 0, 0], pink: [255, 192, 203], cyan: [0, 255, 255], transparent: [255, 255, 255, 0] }, se = function (t, e, n) { return 255 * (6 * (t += t < 0 ? 1 : t > 1 ? -1 : 0) < 1 ? e + (n - e) * t * 6 : t < .5 ? n : 3 * t < 2 ? e + (n - e) * (2 / 3 - t) * 6 : e) + .5 | 0 }, ae = function (t, e, n) { var r, i, o, s, a, u, l, h, c, f, p = t ? A(t) ? [t >> 16, t >> 8 & 255, 255 & t] : 0 : oe.black; if (!p) { if ("," === t.substr(-1) && (t = t.substr(0, t.length - 1)), oe[t]) p = oe[t]; else if ("#" === t.charAt(0)) { if (t.length < 6 && (r = t.charAt(1), i = t.charAt(2), o = t.charAt(3), t = "#" + r + r + i + i + o + o + (5 === t.length ? t.charAt(4) + t.charAt(4) : "")), 9 === t.length) return [(p = parseInt(t.substr(1, 6), 16)) >> 16, p >> 8 & 255, 255 & p, parseInt(t.substr(7), 16) / 255]; p = [(t = parseInt(t.substr(1), 16)) >> 16, t >> 8 & 255, 255 & t] } else if ("hsl" === t.substr(0, 3)) if (p = f = t.match(R), e) { if (~t.indexOf("=")) return p = t.match(X), n && p.length < 4 && (p[3] = 1), p } else s = +p[0] % 360 / 360, a = +p[1] / 100, r = 2 * (u = +p[2] / 100) - (i = u <= .5 ? u * (a + 1) : u + a - u * a), p.length > 3 && (p[3] *= 1), p[0] = se(s + 1 / 3, r, i), p[1] = se(s, r, i), p[2] = se(s - 1 / 3, r, i); else p = t.match(R) || oe.transparent; p = p.map(Number) } return e && !f && (r = p[0] / 255, i = p[1] / 255, o = p[2] / 255, u = ((l = Math.max(r, i, o)) + (h = Math.min(r, i, o))) / 2, l === h ? s = a = 0 : (c = l - h, a = u > .5 ? c / (2 - l - h) : c / (l + h), s = l === r ? (i - o) / c + (i < o ? 6 : 0) : l === i ? (o - r) / c + 2 : (r - i) / c + 4, s *= 60), p[0] = ~~(s + .5), p[1] = ~~(100 * a + .5), p[2] = ~~(100 * u + .5)), n && p.length < 4 && (p[3] = 1), p }, ue = function (t) { var e = [], n = [], r = -1; return t.split(he).forEach((function (t) { var i = t.match(Y) || []; e.push.apply(e, i), n.push(r += i.length + 1) })), e.c = n, e }, le = function (t, e, n) { var r, i, o, s, a = "", u = (t + a).match(he), l = e ? "hsla(" : "rgba(", h = 0; if (!u) return t; if (u = u.map((function (t) { return (t = ae(t, e, 1)) && l + (e ? t[0] + "," + t[1] + "%," + t[2] + "%," + t[3] : t.join(",")) + ")" })), n && (o = ue(t), (r = n.c).join(a) !== o.c.join(a))) for (s = (i = t.replace(he, "1").split(Y)).length - 1; h < s; h++) a += i[h] + (~r.indexOf(h) ? u.shift() || l + "0,0,0,0)" : (o.length ? o : u.length ? u : n).shift()); if (!i) for (s = (i = t.split(he)).length - 1; h < s; h++) a += i[h] + u[h]; return a + i[s] }, he = function () { var t, e = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b"; for (t in oe) e += "|" + t + "\\b"; return new RegExp(e + ")", "gi") }(), ce = /hsl[a]?\(/, fe = function (t) { var e, n = t.join(" "); if (he.lastIndex = 0, he.test(n)) return e = ce.test(n), t[1] = le(t[1], e), t[0] = le(t[0], e, ue(t[1])), !0 }, pe = function () { var t, e, n, r, i, o, s = Date.now, c = 500, f = 33, d = s(), g = d, D = 1e3 / 240, m = D, v = [], _ = function n(a) { var u, l, h, p, _ = s() - g, y = !0 === a; if (_ > c && (d += _ - f), ((u = (h = (g += _) - d) - m) > 0 || y) && (p = ++r.frame, i = h - 1e3 * r.time, r.time = h /= 1e3, m += u + (u >= D ? 4 : D - u), l = 1), y || (t = e(n)), l) for (o = 0; o < v.length; o++) v[o](h, i, p, a) }; return r = { time: 0, frame: 0, tick: function () { _(!0) }, deltaRatio: function (t) { return i / (1e3 / (t || 60)) }, wake: function () { h && (!u && k() && (a = u = window, l = a.document || {}, V.gsap = nn, (a.gsapVersions || (a.gsapVersions = [])).push(nn.version), U(j || a.GreenSockGlobals || !a.gsap && a || {}), n = a.requestAnimationFrame), t && r.sleep(), e = n || function (t) { return setTimeout(t, m - 1e3 * r.time + 1 | 0) }, p = 1, _(2)) }, sleep: function () { (n ? a.cancelAnimationFrame : clearTimeout)(t), p = 0, e = Q }, lagSmoothing: function (t, e) { c = t || 1 / 1e-8, f = Math.min(e, c, 0) }, fps: function (t) { D = 1e3 / (t || 240), m = 1e3 * r.time + D }, add: function (t) { v.indexOf(t) < 0 && v.push(t), de() }, remove: function (t, e) { ~(e = v.indexOf(t)) && v.splice(e, 1) && o >= e && o-- }, _listeners: v } }(), de = function () { return !p && pe.wake() }, ge = {}, De = /^[\d.\-M][\d.\-,\s]/, me = /["']/g, ve = function (t) { for (var e, n, r, i = {}, o = t.substr(1, t.length - 3).split(":"), s = o[0], a = 1, u = o.length; a < u; a++) n = o[a], e = a !== u - 1 ? n.lastIndexOf(",") : n.length, r = n.substr(0, e), i[s] = isNaN(r) ? r.replace(me, "").trim() : +r, s = n.substr(e + 1).trim(); return i }, _e = function (t) { return function (e) { return 1 - t(1 - e) } }, ye = function t(e, n) { for (var r, i = e._first; i;) i instanceof Me ? t(i, n) : !i.vars.yoyoEase || i._yoyo && i._repeat || i._yoyo === n || (i.timeline ? t(i.timeline, n) : (r = i._ease, i._ease = i._yEase, i._yEase = r, i._yoyo = n)), i = i._next }, xe = function (t, e) { return t && (M(t) ? t : ge[t] || function (t) { var e, n, r, i, o = (t + "").split("("), s = ge[o[0]]; return s && o.length > 1 && s.config ? s.config.apply(null, ~t.indexOf("{") ? [ve(o[1])] : (e = t, n = e.indexOf("(") + 1, r = e.indexOf(")"), i = e.indexOf("(", n), e.substring(n, ~i && i < r ? e.indexOf(")", r + 1) : r)).split(",").map(dt)) : ge._CE && De.test(t) ? ge._CE("", t) : s }(t)) || e }, we = function (t, e, n, r) { void 0 === n && (n = function (t) { return 1 - e(1 - t) }), void 0 === r && (r = function (t) { return t < .5 ? e(2 * t) / 2 : 1 - e(2 * (1 - t)) / 2 }); var i, o = {easeIn: e, easeOut: n, easeInOut: r}; return ut(t, (function (t) { for (var e in ge[t] = V[t] = o, ge[i = t.toLowerCase()] = n, o) ge[i + ("easeIn" === e ? ".in" : "easeOut" === e ? ".out" : ".inOut")] = ge[t + "." + e] = o[e] })), o }, Ce = function (t) { return function (e) { return e < .5 ? (1 - t(1 - 2 * e)) / 2 : .5 + t(2 * (e - .5)) / 2 } }, Fe = function t(e, n, r) { var i = n >= 1 ? n : 1, o = (r || (e ? .3 : .45)) / (n < 1 ? n : 1), s = o / x * (Math.asin(1 / i) || 0), a = function (t) { return 1 === t ? 1 : i * Math.pow(2, -10 * t) * b((t - s) * o) + 1 }, u = "out" === e ? a : "in" === e ? function (t) { return 1 - a(1 - t) } : Ce(a); return o = x / o, u.config = function (n, r) { return t(e, n, r) }, u }, Ee = function t(e, n) { void 0 === n && (n = 1.70158); var r = function (t) { return t ? --t * t * ((n + 1) * t + n) + 1 : 0 }, i = "out" === e ? r : "in" === e ? function (t) { return 1 - r(1 - t) } : Ce(r); return i.config = function (n) { return t(e, n) }, i }; ut("Linear,Quad,Cubic,Quart,Quint,Strong", (function (t, e) { var n = e < 5 ? e + 1 : e; we(t + ",Power" + (n - 1), e ? function (t) { return Math.pow(t, n) } : function (t) { return t }, (function (t) { return 1 - Math.pow(1 - t, n) }), (function (t) { return t < .5 ? Math.pow(2 * t, n) / 2 : 1 - Math.pow(2 * (1 - t), n) / 2 })) })), ge.Linear.easeNone = ge.none = ge.Linear.easeIn, we("Elastic", Fe("in"), Fe("out"), Fe()), d = 7.5625, D = 1 / (g = 2.75), we("Bounce", (function (t) { return 1 - m(1 - t) }), m = function (t) { return t < D ? d * t * t : t < .7272727272727273 ? d * Math.pow(t - 1.5 / g, 2) + .75 : t < .9090909090909092 ? d * (t -= 2.25 / g) * t + .9375 : d * Math.pow(t - 2.625 / g, 2) + .984375 }), we("Expo", (function (t) { return t ? Math.pow(2, 10 * (t - 1)) : 0 })), we("Circ", (function (t) { return -(F(1 - t * t) - 1) })), we("Sine", (function (t) { return 1 === t ? 1 : 1 - E(t * w) })), we("Back", Ee("in"), Ee("out"), Ee()), ge.SteppedEase = ge.steps = V.SteppedEase = { config: function (t, e) { void 0 === t && (t = 1); var n = 1 / t, r = t + (e ? 0 : 1), i = e ? 1 : 0; return function (t) { return ((r * zt(0, 1 - 1e-8, t) | 0) + i) * n } } }, _.ease = ge["quad.out"], ut("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt", (function (t) { return it += t + "," + t + "Params," })); var be = function (t, e) { this.id = C++, t._gsap = this, this.target = t, this.harness = e, this.get = e ? e.get : at, this.set = e ? e.getSetter : We }, Te = function () { function t(t) { this.vars = t, this._delay = +t.delay || 0, (this._repeat = t.repeat === 1 / 0 ? -2 : t.repeat || 0) && (this._rDelay = t.repeatDelay || 0, this._yoyo = !!t.yoyo || !!t.yoyoEase), this._ts = 1, Lt(this, +t.duration, 1, 1), this.data = t.data, p || pe.wake() } var e = t.prototype; return e.delay = function (t) { return t || 0 === t ? (this.parent && this.parent.smoothChildTiming && this.startTime(this._start + t - this._delay), this._delay = t, this) : this._delay }, e.duration = function (t) { return arguments.length ? this.totalDuration(this._repeat > 0 ? t + (t + this._rDelay) * this._repeat : t) : this.totalDuration() && this._dur }, e.totalDuration = function (t) { return arguments.length ? (this._dirty = 0, Lt(this, this._repeat < 0 ? t : (t - this._repeat * this._rDelay) / (this._repeat + 1))) : this._tDur }, e.totalTime = function (t, e) { if (de(), !arguments.length) return this._tTime; var n = this._dp; if (n && n.smoothChildTiming && this._ts) { for (At(this, t), !n._dp || n.parent || Pt(n, this); n && n.parent;) n.parent._time !== n._start + (n._ts >= 0 ? n._tTime / n._ts : (n.totalDuration() - n._tTime) / -n._ts) && n.totalTime(n._tTime, !0), n = n.parent; !this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && t < this._tDur || this._ts < 0 && t > 0 || !this._tDur && !t) && St(this._dp, this, this._start - this._delay) } return (this._tTime !== t || !this._dur && !e || this._initted && 1e-8 === Math.abs(this._zTime) || !t && !this._initted && (this.add || this._ptLookup)) && (this._ts || (this._pTime = t), pt(this, t, e)), this }, e.time = function (t, e) { return arguments.length ? this.totalTime(Math.min(this.totalDuration(), t + Et(this)) % (this._dur + this._rDelay) || (t ? this._dur : 0), e) : this._time }, e.totalProgress = function (t, e) { return arguments.length ? this.totalTime(this.totalDuration() * t, e) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.ratio }, e.progress = function (t, e) { return arguments.length ? this.totalTime(this.duration() * (!this._yoyo || 1 & this.iteration() ? t : 1 - t) + Et(this), e) : this.duration() ? Math.min(1, this._time / this._dur) : this.ratio }, e.iteration = function (t, e) { var n = this.duration() + this._rDelay; return arguments.length ? this.totalTime(this._time + (t - 1) * n, e) : this._repeat ? bt(this._tTime, n) + 1 : 1 }, e.timeScale = function (t) { if (!arguments.length) return -1e-8 === this._rts ? 0 : this._rts; if (this._rts === t) return this; var e = this.parent && this._ts ? Tt(this.parent._time, this) : this._tTime; return this._rts = +t || 0, this._ts = this._ps || -1e-8 === t ? 0 : this._rts, Ft(this.totalTime(zt(-this._delay, this._tDur, e), !0)), Mt(this), this }, e.paused = function (t) { return arguments.length ? (this._ps !== t && (this._ps = t, t ? (this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()), this._ts = this._act = 0) : (de(), this._ts = this._rts, this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, 1 === this.progress() && 1e-8 !== Math.abs(this._zTime) && (this._tTime -= 1e-8)))), this) : this._ps }, e.startTime = function (t) { if (arguments.length) { this._start = t; var e = this.parent || this._dp; return e && (e._sort || !this.parent) && St(e, this, t - this._delay), this } return this._start }, e.endTime = function (t) { return this._start + (O(t) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1) }, e.rawTime = function (t) { var e = this.parent || this._dp; return e ? t && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : this._ts ? Tt(e.rawTime(t), this) : this._tTime : this._tTime }, e.globalTime = function (t) { for (var e = this, n = arguments.length ? t : e.rawTime(); e;) n = e._start + n / (e._ts || 1), e = e._dp; return n }, e.repeat = function (t) { return arguments.length ? (this._repeat = t === 1 / 0 ? -2 : t, Nt(this)) : -2 === this._repeat ? 1 / 0 : this._repeat }, e.repeatDelay = function (t) { if (arguments.length) { var e = this._time; return this._rDelay = t, Nt(this), e ? this.time(e) : this } return this._rDelay }, e.yoyo = function (t) { return arguments.length ? (this._yoyo = t, this) : this._yoyo }, e.seek = function (t, e) { return this.totalTime(Xt(this, t), O(e)) }, e.restart = function (t, e) { return this.play().totalTime(t ? -this._delay : 0, O(e)) }, e.play = function (t, e) { return null != t && this.seek(t, e), this.reversed(!1).paused(!1) }, e.reverse = function (t, e) { return null != t && this.seek(t || this.totalDuration(), e), this.reversed(!0).paused(!1) }, e.pause = function (t, e) { return null != t && this.seek(t, e), this.paused(!0) }, e.resume = function () { return this.paused(!1) }, e.reversed = function (t) { return arguments.length ? (!!t !== this.reversed() && this.timeScale(-this._rts || (t ? -1e-8 : 0)), this) : this._rts < 0 }, e.invalidate = function () { return this._initted = this._act = 0, this._zTime = -1e-8, this }, e.isActive = function () { var t, e = this.parent || this._dp, n = this._start; return !(e && !(this._ts && this._initted && e.isActive() && (t = e.rawTime(!0)) >= n && t < this.endTime(!0) - 1e-8)) }, e.eventCallback = function (t, e, n) { var r = this.vars; return arguments.length > 1 ? (e ? (r[t] = e, n && (r[t + "Params"] = n), "onUpdate" === t && (this._onUpdate = e)) : delete r[t], this) : r[t] }, e.then = function (t) { var e = this; return new Promise((function (n) { var r = M(t) ? t : gt, i = function () { var t = e.then; e.then = null, M(r) && (r = r(e)) && (r.then || r === e) && (e.then = t), n(r), e.then = t }; e._initted && 1 === e.totalProgress() && e._ts >= 0 || !e._tTime && e._ts < 0 ? i() : e._prom = i })) }, e.kill = function () { re(this) }, t }(); Dt(Te.prototype, { _time: 0, _start: 0, _end: 0, _tTime: 0, _tDur: 0, _dirty: 0, _repeat: 0, _yoyo: !1, parent: null, _initted: !1, _rDelay: 0, _ts: 1, _dp: 0, ratio: 0, _zTime: -1e-8, _prom: 0, _ps: !1, _rts: 1 }); var Me = function (t) { function e(e, n) { var i; return void 0 === e && (e = {}), (i = t.call(this, e) || this).labels = {}, i.smoothChildTiming = !!e.smoothChildTiming, i.autoRemoveChildren = !!e.autoRemoveChildren, i._sort = O(e.sortChildren), s && St(e.parent || s, r(i), n), e.reversed && i.reverse(), e.paused && i.paused(!0), e.scrollTrigger && Ot(r(i), e.scrollTrigger), i } i(e, t); var n = e.prototype; return n.to = function (t, e, n) { return Yt(0, arguments, this), this }, n.from = function (t, e, n) { return Yt(1, arguments, this), this }, n.fromTo = function (t, e, n, r) { return Yt(2, arguments, this), this }, n.set = function (t, e, n) { return e.duration = 0, e.parent = this, yt(e).repeatDelay || (e.repeat = 0), e.immediateRender = !!e.immediateRender, new Xe(t, e, Xt(this, n), 1), this }, n.call = function (t, e, n) { return St(this, Xe.delayedCall(0, t, e), n) }, n.staggerTo = function (t, e, n, r, i, o, s) { return n.duration = e, n.stagger = n.stagger || r, n.onComplete = o, n.onCompleteParams = s, n.parent = this, new Xe(t, n, Xt(this, i)), this }, n.staggerFrom = function (t, e, n, r, i, o, s) { return n.runBackwards = 1, yt(n).immediateRender = O(n.immediateRender), this.staggerTo(t, e, n, r, i, o, s) }, n.staggerFromTo = function (t, e, n, r, i, o, s, a) { return r.startAt = n, yt(r).immediateRender = O(r.immediateRender), this.staggerTo(t, e, r, i, o, s, a) }, n.render = function (t, e, n) { var r, i, o, a, u, l, h, c, f, p, d, g, D = this._time, m = this._dirty ? this.totalDuration() : this._tDur, v = this._dur, _ = t <= 0 ? 0 : ht(t), y = this._zTime < 0 != t < 0 && (this._initted || !v); if (this !== s && _ > m && t >= 0 && (_ = m), _ !== this._tTime || n || y) { if (D !== this._time && v && (_ += this._time - D, t += this._time - D), r = _, f = this._start, l = !(c = this._ts), y && (v || (D = this._zTime), (t || !e) && (this._zTime = t)), this._repeat) { if (d = this._yoyo, u = v + this._rDelay, this._repeat < -1 && t < 0) return this.totalTime(100 * u + t, e, n); if (r = ht(_ % u), _ === m ? (a = this._repeat, r = v) : ((a = ~~(_ / u)) && a === _ / u && (r = v, a--), r > v && (r = v)), p = bt(this._tTime, u), !D && this._tTime && p !== a && (p = a), d && 1 & a && (r = v - r, g = 1), a !== p && !this._lock) { var x = d && 1 & p, w = x === (d && 1 & a); if (a < p && (x = !x), D = x ? 0 : v, this._lock = 1, this.render(D || (g ? 0 : ht(a * u)), e, !v)._lock = 0, this._tTime = _, !e && this.parent && ne(this, "onRepeat"), this.vars.repeatRefresh && !g && (this.invalidate()._lock = 1), D && D !== this._time || l !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) return this; if (v = this._dur, m = this._tDur, w && (this._lock = 2, D = x ? v : -1e-4, this.render(D, !0), this.vars.repeatRefresh && !g && this.invalidate()), this._lock = 0, !this._ts && !l) return this; ye(this, g) } } if (this._hasPause && !this._forcing && this._lock < 2 && (h = function (t, e, n) { var r; if (n > e) for (r = t._first; r && r._start <= n;) { if ("isPause" === r.data && r._start > e) return r; r = r._next } else for (r = t._last; r && r._start >= n;) { if ("isPause" === r.data && r._start < e) return r; r = r._prev } }(this, ht(D), ht(r))) && (_ -= r - (r = h._start)), this._tTime = _, this._time = r, this._act = !c, this._initted || (this._onUpdate = this.vars.onUpdate, this._initted = 1, this._zTime = t, D = 0), !D && r && !e && (ne(this, "onStart"), this._tTime !== _)) return this; if (r >= D && t >= 0) for (i = this._first; i;) { if (o = i._next, (i._act || r >= i._start) && i._ts && h !== i) { if (i.parent !== this) return this.render(t, e, n); if (i.render(i._ts > 0 ? (r - i._start) * i._ts : (i._dirty ? i.totalDuration() : i._tDur) + (r - i._start) * i._ts, e, n), r !== this._time || !this._ts && !l) { h = 0, o && (_ += this._zTime = -1e-8); break } } i = o } else { i = this._last; for (var C = t < 0 ? t : r; i;) { if (o = i._prev, (i._act || C <= i._end) && i._ts && h !== i) { if (i.parent !== this) return this.render(t, e, n); if (i.render(i._ts > 0 ? (C - i._start) * i._ts : (i._dirty ? i.totalDuration() : i._tDur) + (C - i._start) * i._ts, e, n), r !== this._time || !this._ts && !l) { h = 0, o && (_ += this._zTime = C ? -1e-8 : 1e-8); break } } i = o } } if (h && !e && (this.pause(), h.render(r >= D ? 0 : -1e-8)._zTime = r >= D ? 1 : -1, this._ts)) return this._start = f, Mt(this), this.render(t, e, n); this._onUpdate && !e && ne(this, "onUpdate", !0), (_ === m && m >= this.totalDuration() || !_ && D) && (f !== this._start && Math.abs(c) === Math.abs(this._ts) || this._lock || ((t || !v) && (_ === m && this._ts > 0 || !_ && this._ts < 0) && wt(this, 1), e || t < 0 && !D || !_ && !D && m || (ne(this, _ === m && t >= 0 ? "onComplete" : "onReverseComplete", !0), this._prom && !(_ < m && this.timeScale() > 0) && this._prom()))) } return this }, n.add = function (t, e) { var n = this; if (A(e) || (e = Xt(this, e, t)), !(t instanceof Te)) { if (N(t)) return t.forEach((function (t) { return n.add(t, e) })), this; if (T(t)) return this.addLabel(t, e); if (!M(t)) return this; t = Xe.delayedCall(0, t) } return this !== t ? St(this, t, e) : this }, n.getChildren = function (t, e, n, r) { void 0 === t && (t = !0), void 0 === e && (e = !0), void 0 === n && (n = !0), void 0 === r && (r = -y); for (var i = [], o = this._first; o;) o._start >= r && (o instanceof Xe ? e && i.push(o) : (n && i.push(o), t && i.push.apply(i, o.getChildren(!0, e, n)))), o = o._next; return i }, n.getById = function (t) { for (var e = this.getChildren(1, 1, 1), n = e.length; n--;) if (e[n].vars.id === t) return e[n] }, n.remove = function (t) { return T(t) ? this.removeLabel(t) : M(t) ? this.killTweensOf(t) : (xt(this, t), t === this._recent && (this._recent = this._last), Ct(this)) }, n.totalTime = function (e, n) { return arguments.length ? (this._forcing = 1, !this._dp && this._ts && (this._start = ht(pe.time - (this._ts > 0 ? e / this._ts : (this.totalDuration() - e) / -this._ts))), t.prototype.totalTime.call(this, e, n), this._forcing = 0, this) : this._tTime }, n.addLabel = function (t, e) { return this.labels[t] = Xt(this, e), this }, n.removeLabel = function (t) { return delete this.labels[t], this }, n.addPause = function (t, e, n) { var r = Xe.delayedCall(0, e || Q, n); return r.data = "isPause", this._hasPause = 1, St(this, r, Xt(this, t)) }, n.removePause = function (t) { var e = this._first; for (t = Xt(this, t); e;) e._start === t && "isPause" === e.data && wt(e), e = e._next }, n.killTweensOf = function (t, e, n) { for (var r = this.getTweensOf(t, n), i = r.length; i--;) Ae !== r[i] && r[i].kill(t, e); return this }, n.getTweensOf = function (t, e) { for (var n, r = [], i = Ut(t), o = this._first, s = A(e); o;) o instanceof Xe ? ct(o._targets, i) && (s ? (!Ae || o._initted && o._ts) && o.globalTime(0) <= e && o.globalTime(o.totalDuration()) > e : !e || o.isActive()) && r.push(o) : (n = o.getTweensOf(i, e)).length && r.push.apply(r, n), o = o._next; return r }, n.tweenTo = function (t, e) { e = e || {}; var n, r = this, i = Xt(r, t), o = e, s = o.startAt, a = o.onStart, u = o.onStartParams, l = o.immediateRender, h = Xe.to(r, Dt({ ease: e.ease || "none", lazy: !1, immediateRender: !1, time: i, overwrite: "auto", duration: e.duration || Math.abs((i - (s && "time" in s ? s.time : r._time)) / r.timeScale()) || 1e-8, onStart: function () { if (r.pause(), !n) { var t = e.duration || Math.abs((i - (s && "time" in s ? s.time : r._time)) / r.timeScale()); h._dur !== t && Lt(h, t, 0, 1).render(h._time, !0, !0), n = 1 } a && a.apply(h, u || []) } }, e)); return l ? h.render(0) : h }, n.tweenFromTo = function (t, e, n) { return this.tweenTo(e, Dt({startAt: {time: Xt(this, t)}}, n)) }, n.recent = function () { return this._recent }, n.nextLabel = function (t) { return void 0 === t && (t = this._time), ee(this, Xt(this, t)) }, n.previousLabel = function (t) { return void 0 === t && (t = this._time), ee(this, Xt(this, t), 1) }, n.currentLabel = function (t) { return arguments.length ? this.seek(t, !0) : this.previousLabel(this._time + 1e-8) }, n.shiftChildren = function (t, e, n) { void 0 === n && (n = 0); for (var r, i = this._first, o = this.labels; i;) i._start >= n && (i._start += t, i._end += t), i = i._next; if (e) for (r in o) o[r] >= n && (o[r] += t); return Ct(this) }, n.invalidate = function () { var e = this._first; for (this._lock = 0; e;) e.invalidate(), e = e._next; return t.prototype.invalidate.call(this) }, n.clear = function (t) { void 0 === t && (t = !0); for (var e, n = this._first; n;) e = n._next, this.remove(n), n = e; return this._dp && (this._time = this._tTime = this._pTime = 0), t && (this.labels = {}), Ct(this) }, n.totalDuration = function (t) { var e, n, r, i = 0, o = this, a = o._last, u = y; if (arguments.length) return o.timeScale((o._repeat < 0 ? o.duration() : o.totalDuration()) / (o.reversed() ? -t : t)); if (o._dirty) { for (r = o.parent; a;) e = a._prev, a._dirty && a.totalDuration(), (n = a._start) > u && o._sort && a._ts && !o._lock ? (o._lock = 1, St(o, a, n - a._delay, 1)._lock = 0) : u = n, n < 0 && a._ts && (i -= n, (!r && !o._dp || r && r.smoothChildTiming) && (o._start += n / o._ts, o._time -= n, o._tTime -= n), o.shiftChildren(-n, !1, -Infinity), u = 0), a._end > i && a._ts && (i = a._end), a = e; Lt(o, o === s && o._time > i ? o._time : i, 1, 1), o._dirty = 0 } return o._tDur }, e.updateRoot = function (t) { if (s._ts && (pt(s, Tt(t, s)), c = pe.frame), pe.frame >= nt) { nt += v.autoSleep || 120; var e = s._first; if ((!e || !e._ts) && v.autoSleep && pe._listeners.length < 2) { for (; e && !e._ts;) e = e._next; e || pe.sleep() } } }, e }(Te); Dt(Me.prototype, {_lock: 0, _hasPause: 0, _forcing: 0}); var Ae, Pe = function (t, e, n, r, i, o, s) { var a, u, l, h, c, f, p, d, g = new $e(this._pt, t, e, 0, 1, Ue, null, i), D = 0, m = 0; for (g.b = n, g.e = r, n += "", (p = ~(r += "").indexOf("random(")) && (r = Jt(r)), o && (o(d = [n, r], t, e), n = d[0], r = d[1]), u = n.match(I) || []; a = I.exec(r);) h = a[0], c = r.substring(D, a.index), l ? l = (l + 1) % 5 : "rgba(" === c.substr(-5) && (l = 1), h !== u[m++] && (f = parseFloat(u[m - 1]) || 0, g._pt = { _next: g._pt, p: c || 1 === m ? c : ",", s: f, c: "=" === h.charAt(1) ? parseFloat(h.substr(2)) * ("-" === h.charAt(0) ? -1 : 1) : parseFloat(h) - f, m: l && l < 4 ? Math.round : 0 }, D = I.lastIndex); return g.c = D < r.length ? r.substring(D, r.length) : "", g.fp = s, (z.test(r) || p) && (g.e = 0), this._pt = g, g }, Se = function (t, e, n, r, i, o, s, a, u) { M(r) && (r = r(i || 0, t, o)); var l, h = t[e], c = "get" !== n ? n : M(h) ? u ? t[e.indexOf("set") || !M(t["get" + e.substr(3)]) ? e : "get" + e.substr(3)](u) : t[e]() : h, f = M(h) ? u ? ze : Ie : Ye; if (T(r) && (~r.indexOf("random(") && (r = Jt(r)), "=" === r.charAt(1) && ((l = parseFloat(c) + parseFloat(r.substr(2)) * ("-" === r.charAt(0) ? -1 : 1) + (Ht(c) || 0)) || 0 === l) && (r = l)), c !== r) return isNaN(c * r) || "" === r ? (!h && !(e in t) && q(e, r), Pe.call(this, t, e, c, r, f, a || v.stringFilter, u)) : (l = new $e(this._pt, t, e, +c || 0, r - (c || 0), "boolean" == typeof h ? je : Ve, 0, f), u && (l.fp = u), s && l.modifier(s, this, t), this._pt = l) }, Oe = function (t, e, n, r, i, o) { var s, a, u, l; if (tt[t] && !1 !== (s = new tt[t]).init(i, s.rawVars ? e[t] : function (t, e, n, r, i) { if (M(t) && (t = Le(t, i, e, n, r)), !S(t) || t.style && t.nodeType || N(t) || L(t)) return T(t) ? Le(t, i, e, n, r) : t; var o, s = {}; for (o in t) s[o] = Le(t[o], i, e, n, r); return s }(e[t], r, i, o, n), n, r, o) && (n._pt = a = new $e(n._pt, i, t, 0, 1, s.render, s, 0, s.priority), n !== f)) for (u = n._ptLookup[n._targets.indexOf(i)], l = s._props.length; l--;) u[s._props[l]] = a; return s }, ke = function t(e, n) { var r, i, a, u, l, h, c, f, p, d, g, D, m, v = e.vars, x = v.ease, w = v.startAt, C = v.immediateRender, F = v.lazy, E = v.onUpdate, b = v.onUpdateParams, T = v.callbackScope, M = v.runBackwards, A = v.yoyoEase, P = v.keyframes, S = v.autoRevert, k = e._dur, B = e._startAt, L = e._targets, N = e.parent, R = N && "nested" === N.data ? N.parent._targets : L, X = "auto" === e._overwrite && !o, Y = e.timeline; if (Y && (!P || !x) && (x = "none"), e._ease = xe(x, _.ease), e._yEase = A ? _e(xe(!0 === A ? x : A, _.ease)) : 0, A && e._yoyo && !e._repeat && (A = e._yEase, e._yEase = e._ease, e._ease = A), e._from = !Y && !!v.runBackwards, !Y || P && !v.stagger) { if (D = (f = L[0] ? st(L[0]).harness : 0) && v[f.prop], r = _t(v, Z), B && wt(B.render(-1, !0)), w) if (wt(e._startAt = Xe.set(L, Dt({ data: "isStart", overwrite: !1, parent: N, immediateRender: !0, lazy: O(F), startAt: null, delay: 0, onUpdate: E, onUpdateParams: b, callbackScope: T, stagger: 0 }, w))), n < 0 && !C && !S && e._startAt.render(-1, !0), C) { if (n > 0 && !S && (e._startAt = 0), k && n <= 0) return void (n && (e._zTime = n)) } else !1 === S && (e._startAt = 0); else if (M && k) if (B) !S && (e._startAt = 0); else if (n && (C = !1), a = Dt({ overwrite: !1, data: "isFromStart", lazy: C && O(F), immediateRender: C, stagger: 0, parent: N }, r), D && (a[f.prop] = D), wt(e._startAt = Xe.set(L, a)), n < 0 && e._startAt.render(-1, !0), e._zTime = n, C) { if (!n) return } else t(e._startAt, 1e-8); for (e._pt = 0, F = k && O(F) || F && !k, i = 0; i < L.length; i++) { if (c = (l = L[i])._gsap || ot(L)[i]._gsap, e._ptLookup[i] = d = {}, J[c.id] && $.length && ft(), g = R === L ? i : R.indexOf(l), f && !1 !== (p = new f).init(l, D || r, e, g, R) && (e._pt = u = new $e(e._pt, l, p.name, 0, 1, p.render, p, 0, p.priority), p._props.forEach((function (t) { d[t] = u })), p.priority && (h = 1)), !f || D) for (a in r) tt[a] && (p = Oe(a, r, e, g, l, R)) ? p.priority && (h = 1) : d[a] = u = Se.call(e, l, a, "get", r[a], g, R, 0, v.stringFilter); e._op && e._op[i] && e.kill(l, e._op[i]), X && e._pt && (Ae = e, s.killTweensOf(l, d, e.globalTime(n)), m = !e.parent, Ae = 0), e._pt && F && (J[c.id] = 1) } h && Ze(e), e._onInit && e._onInit(e) } e._onUpdate = E, e._initted = (!e._op || e._pt) && !m, P && n <= 0 && Y.render(y, !0, !0) }, Be = function (t, e, n, r) { var i, o, s = e.ease || r || "power1.inOut"; if (N(e)) o = n[t] || (n[t] = []), e.forEach((function (t, n) { return o.push({t: n / (e.length - 1) * 100, v: t, e: s}) })); else for (i in e) o = n[i] || (n[i] = []), "ease" === i || o.push({t: parseFloat(t), v: e[i], e: s}) }, Le = function (t, e, n, r, i) { return M(t) ? t.call(e, n, r, i) : T(t) && ~t.indexOf("random(") ? Jt(t) : t }, Ne = it + "repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase", Re = {}; ut(Ne + ",id,stagger,delay,duration,paused,scrollTrigger", (function (t) { return Re[t] = 1 })); var Xe = function (t) { function e(e, n, i, a) { var u; "number" == typeof n && (i.duration = n, n = i, i = null); var l, h, c, f, p, d, g, D, m = (u = t.call(this, a ? n : yt(n)) || this).vars, _ = m.duration, y = m.delay, x = m.immediateRender, w = m.stagger, C = m.overwrite, F = m.keyframes, E = m.defaults, b = m.scrollTrigger, T = m.yoyoEase, M = n.parent || s, P = (N(e) || L(e) ? A(e[0]) : "length" in n) ? [e] : Ut(e); if (u._targets = P.length ? ot(P) : G("GSAP target " + e + " not found. https://greensock.com", !v.nullTargetWarn) || [], u._ptLookup = [], u._overwrite = C, F || w || B(_) || B(y)) { if (n = u.vars, (l = u.timeline = new Me({ data: "nested", defaults: E || {} })).kill(), l.parent = l._dp = r(u), l._start = 0, w || B(_) || B(y)) { if (f = P.length, g = w && Gt(w), S(w)) for (p in w) ~Ne.indexOf(p) && (D || (D = {}), D[p] = w[p]); for (h = 0; h < f; h++) (c = _t(n, Re)).stagger = 0, T && (c.yoyoEase = T), D && mt(c, D), d = P[h], c.duration = +Le(_, r(u), h, d, P), c.delay = (+Le(y, r(u), h, d, P) || 0) - u._delay, !w && 1 === f && c.delay && (u._delay = y = c.delay, u._start += y, c.delay = 0), l.to(d, c, g ? g(h, d, P) : 0), l._ease = ge.none; l.duration() ? _ = y = 0 : u.timeline = 0 } else if (F) { yt(Dt(l.vars.defaults, {ease: "none"})), l._ease = xe(F.ease || n.ease || "none"); var k, R, X, Y = 0; if (N(F)) F.forEach((function (t) { return l.to(P, t, ">") })); else { for (p in c = {}, F) "ease" === p || "easeEach" === p || Be(p, F[p], c, F.easeEach); for (p in c) for (k = c[p].sort((function (t, e) { return t.t - e.t })), Y = 0, h = 0; h < k.length; h++) (X = { ease: (R = k[h]).e, duration: (R.t - (h ? k[h - 1].t : 0)) / 100 * _ })[p] = R.v, l.to(P, X, Y), Y += X.duration; l.duration() < _ && l.to({}, {duration: _ - l.duration()}) } } _ || u.duration(_ = l.duration()) } else u.timeline = 0; return !0 !== C || o || (Ae = r(u), s.killTweensOf(P), Ae = 0), St(M, r(u), i), n.reversed && u.reverse(), n.paused && u.paused(!0), (x || !_ && !F && u._start === ht(M._time) && O(x) && function t(e) { return !e || e._ts && t(e.parent) }(r(u)) && "nested" !== M.data) && (u._tTime = -1e-8, u.render(Math.max(0, -y))), b && Ot(r(u), b), u } i(e, t); var n = e.prototype; return n.render = function (t, e, n) { var r, i, o, s, a, u, l, h, c, f = this._time, p = this._tDur, d = this._dur, g = t > p - 1e-8 && t >= 0 ? p : t < 1e-8 ? 0 : t; if (d) { if (g !== this._tTime || !t || n || !this._initted && this._tTime || this._startAt && this._zTime < 0 != t < 0) { if (r = g, h = this.timeline, this._repeat) { if (s = d + this._rDelay, this._repeat < -1 && t < 0) return this.totalTime(100 * s + t, e, n); if (r = ht(g % s), g === p ? (o = this._repeat, r = d) : ((o = ~~(g / s)) && o === g / s && (r = d, o--), r > d && (r = d)), (u = this._yoyo && 1 & o) && (c = this._yEase, r = d - r), a = bt(this._tTime, s), r === f && !n && this._initted) return this; o !== a && (h && this._yEase && ye(h, u), !this.vars.repeatRefresh || u || this._lock || (this._lock = n = 1, this.render(ht(s * o), !0).invalidate()._lock = 0)) } if (!this._initted) { if (kt(this, t < 0 ? t : r, n, e)) return this._tTime = 0, this; if (d !== this._dur) return this.render(t, e, n) } if (this._tTime = g, this._time = r, !this._act && this._ts && (this._act = 1, this._lazy = 0), this.ratio = l = (c || this._ease)(r / d), this._from && (this.ratio = l = 1 - l), r && !f && !e && (ne(this, "onStart"), this._tTime !== g)) return this; for (i = this._pt; i;) i.r(l, i.d), i = i._next; h && h.render(t < 0 ? t : !r && u ? -1e-8 : h._dur * h._ease(r / this._dur), e, n) || this._startAt && (this._zTime = t), this._onUpdate && !e && (t < 0 && this._startAt && this._startAt.render(t, !0, n), ne(this, "onUpdate")), this._repeat && o !== a && this.vars.onRepeat && !e && this.parent && ne(this, "onRepeat"), g !== this._tDur && g || this._tTime !== g || (t < 0 && this._startAt && !this._onUpdate && this._startAt.render(t, !0, !0), (t || !d) && (g === this._tDur && this._ts > 0 || !g && this._ts < 0) && wt(this, 1), e || t < 0 && !f || !g && !f || (ne(this, g === p ? "onComplete" : "onReverseComplete", !0), this._prom && !(g < p && this.timeScale() > 0) && this._prom())) } } else !function (t, e, n, r) { var i, o, s, a = t.ratio, u = e < 0 || !e && (!t._start && function t(e) { var n = e.parent; return n && n._ts && n._initted && !n._lock && (n.rawTime() < 0 || t(n)) }(t) && (t._initted || !Bt(t)) || (t._ts < 0 || t._dp._ts < 0) && !Bt(t)) ? 0 : 1, l = t._rDelay, h = 0; if (l && t._repeat && (h = zt(0, t._tDur, e), o = bt(h, l), t._yoyo && 1 & o && (u = 1 - u), o !== bt(t._tTime, l) && (a = 1 - u, t.vars.repeatRefresh && t._initted && t.invalidate())), u !== a || r || 1e-8 === t._zTime || !e && t._zTime) { if (!t._initted && kt(t, e, r, n)) return; for (s = t._zTime, t._zTime = e || (n ? 1e-8 : 0), n || (n = e && !s), t.ratio = u, t._from && (u = 1 - u), t._time = 0, t._tTime = h, i = t._pt; i;) i.r(u, i.d), i = i._next; t._startAt && e < 0 && t._startAt.render(e, !0, !0), t._onUpdate && !n && ne(t, "onUpdate"), h && t._repeat && !n && t.parent && ne(t, "onRepeat"), (e >= t._tDur || e < 0) && t.ratio === u && (u && wt(t, 1), n || (ne(t, u ? "onComplete" : "onReverseComplete", !0), t._prom && t._prom())) } else t._zTime || (t._zTime = e) }(this, t, e, n); return this }, n.targets = function () { return this._targets }, n.invalidate = function () { return this._pt = this._op = this._startAt = this._onUpdate = this._lazy = this.ratio = 0, this._ptLookup = [], this.timeline && this.timeline.invalidate(), t.prototype.invalidate.call(this) }, n.kill = function (t, e) { if (void 0 === e && (e = "all"), !(t || e && "all" !== e)) return this._lazy = this._pt = 0, this.parent ? re(this) : this; if (this.timeline) { var n = this.timeline.totalDuration(); return this.timeline.killTweensOf(t, e, Ae && !0 !== Ae.vars.overwrite)._first || re(this), this.parent && n !== this.timeline.totalDuration() && Lt(this, this._dur * this.timeline._tDur / n, 0, 1), this } var r, i, o, s, a, u, l, h = this._targets, c = t ? Ut(t) : h, f = this._ptLookup, p = this._pt; if ((!e || "all" === e) && function (t, e) { for (var n = t.length, r = n === e.length; r && n-- && t[n] === e[n];) ; return n < 0 }(h, c)) return "all" === e && (this._pt = 0), re(this); for (r = this._op = this._op || [], "all" !== e && (T(e) && (a = {}, ut(e, (function (t) { return a[t] = 1 })), e = a), e = function (t, e) { var n, r, i, o, s = t[0] ? st(t[0]).harness : 0, a = s && s.aliases; if (!a) return e; for (r in n = mt({}, e), a) if (r in n) for (i = (o = a[r].split(",")).length; i--;) n[o[i]] = n[r]; return n }(h, e)), l = h.length; l--;) if (~c.indexOf(h[l])) for (a in i = f[l], "all" === e ? (r[l] = e, s = i, o = {}) : (o = r[l] = r[l] || {}, s = e), s) (u = i && i[a]) && ("kill" in u.d && !0 !== u.d.kill(a) || xt(this, u, "_pt"), delete i[a]), "all" !== o && (o[a] = 1); return this._initted && !this._pt && p && re(this), this }, e.to = function (t, n) { return new e(t, n, arguments[2]) }, e.from = function (t, e) { return Yt(1, arguments) }, e.delayedCall = function (t, n, r, i) { return new e(n, 0, { immediateRender: !1, lazy: !1, overwrite: !1, delay: t, onComplete: n, onReverseComplete: n, onCompleteParams: r, onReverseCompleteParams: r, callbackScope: i }) }, e.fromTo = function (t, e, n) { return Yt(2, arguments) }, e.set = function (t, n) { return n.duration = 0, n.repeatDelay || (n.repeat = 0), new e(t, n) }, e.killTweensOf = function (t, e, n) { return s.killTweensOf(t, e, n) }, e }(Te); Dt(Xe.prototype, { _targets: [], _lazy: 0, _startAt: 0, _op: 0, _onInit: 0 }), ut("staggerTo,staggerFrom,staggerFromTo", (function (t) { Xe[t] = function () { var e = new Me, n = Wt.call(arguments, 0); return n.splice("staggerFromTo" === t ? 5 : 4, 0, 0), e[t].apply(e, n) } })); var Ye = function (t, e, n) { return t[e] = n }, Ie = function (t, e, n) { return t[e](n) }, ze = function (t, e, n, r) { return t[e](r.fp, n) }, He = function (t, e, n) { return t.setAttribute(e, n) }, We = function (t, e) { return M(t[e]) ? Ie : P(t[e]) && t.setAttribute ? He : Ye }, Ve = function (t, e) { return e.set(e.t, e.p, Math.round(1e6 * (e.s + e.c * t)) / 1e6, e) }, je = function (t, e) { return e.set(e.t, e.p, !!(e.s + e.c * t), e) }, Ue = function (t, e) { var n = e._pt, r = ""; if (!t && e.b) r = e.b; else if (1 === t && e.e) r = e.e; else { for (; n;) r = n.p + (n.m ? n.m(n.s + n.c * t) : Math.round(1e4 * (n.s + n.c * t)) / 1e4) + r, n = n._next; r += e.c } e.set(e.t, e.p, r, e) }, qe = function (t, e) { for (var n = e._pt; n;) n.r(t, n.d), n = n._next }, Ge = function (t, e, n, r) { for (var i, o = this._pt; o;) i = o._next, o.p === r && o.modifier(t, e, n), o = i }, Ke = function (t) { for (var e, n, r = this._pt; r;) n = r._next, r.p === t && !r.op || r.op === t ? xt(this, r, "_pt") : r.dep || (e = 1), r = n; return !e }, Qe = function (t, e, n, r) { r.mSet(t, e, r.m.call(r.tween, n, r.mt), r) }, Ze = function (t) { for (var e, n, r, i, o = t._pt; o;) { for (e = o._next, n = r; n && n.pr > o.pr;) n = n._next; (o._prev = n ? n._prev : i) ? o._prev._next = o : r = o, (o._next = n) ? n._prev = o : i = o, o = e } t._pt = r }, $e = function () { function t(t, e, n, r, i, o, s, a, u) { this.t = e, this.s = r, this.c = i, this.p = n, this.r = o || Ve, this.d = s || this, this.set = a || Ye, this.pr = u || 0, this._next = t, t && (t._prev = this) } return t.prototype.modifier = function (t, e, n) { this.mSet = this.mSet || this.set, this.set = Qe, this.m = t, this.mt = n, this.tween = e }, t }(); ut(it + "parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger", (function (t) { return Z[t] = 1 })), V.TweenMax = V.TweenLite = Xe, V.TimelineLite = V.TimelineMax = Me, s = new Me({ sortChildren: !1, defaults: _, autoRemoveChildren: !0, id: "root", smoothChildTiming: !0 }), v.stringFilter = fe; var Je = { registerPlugin: function () { for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) e[n] = arguments[n]; e.forEach((function (t) { return ie(t) })) }, timeline: function (t) { return new Me(t) }, getTweensOf: function (t, e) { return s.getTweensOf(t, e) }, getProperty: function (t, e, n, r) { T(t) && (t = Ut(t)[0]); var i = st(t || {}).get, o = n ? gt : dt; return "native" === n && (n = ""), t ? e ? o((tt[e] && tt[e].get || i)(t, e, n, r)) : function (e, n, r) { return o((tt[e] && tt[e].get || i)(t, e, n, r)) } : t }, quickSetter: function (t, e, n) { if ((t = Ut(t)).length > 1) { var r = t.map((function (t) { return nn.quickSetter(t, e, n) })), i = r.length; return function (t) { for (var e = i; e--;) r[e](t) } } t = t[0] || {}; var o = tt[e], s = st(t), a = s.harness && (s.harness.aliases || {})[e] || e, u = o ? function (e) { var r = new o; f._pt = 0, r.init(t, n ? e + n : e, f, 0, [t]), r.render(1, r), f._pt && qe(1, f) } : s.set(t, a); return o ? u : function (e) { return u(t, a, n ? e + n : e, s, 1) } }, isTweening: function (t) { return s.getTweensOf(t, !0).length > 0 }, defaults: function (t) { return t && t.ease && (t.ease = xe(t.ease, _.ease)), vt(_, t || {}) }, config: function (t) { return vt(v, t || {}) }, registerEffect: function (t) { var e = t.name, n = t.effect, r = t.plugins, i = t.defaults, o = t.extendTimeline; (r || "").split(",").forEach((function (t) { return t && !tt[t] && !V[t] && G(e + " effect requires " + t + " plugin.") })), et[e] = function (t, e, r) { return n(Ut(t), Dt(e || {}, i), r) }, o && (Me.prototype[e] = function (t, n, r) { return this.add(et[e](t, S(n) ? n : (r = n) && {}, this), r) }) }, registerEase: function (t, e) { ge[t] = xe(e) }, parseEase: function (t, e) { return arguments.length ? xe(t, e) : ge }, getById: function (t) { return s.getById(t) }, exportRoot: function (t, e) { void 0 === t && (t = {}); var n, r, i = new Me(t); for (i.smoothChildTiming = O(t.smoothChildTiming), s.remove(i), i._dp = 0, i._time = i._tTime = s._time, n = s._first; n;) r = n._next, !e && !n._dur && n instanceof Xe && n.vars.onComplete === n._targets[0] || St(i, n, n._start - n._delay), n = r; return St(s, i, 0), i }, utils: { wrap: function t(e, n, r) { var i = n - e; return N(e) ? $t(e, t(0, e.length), n) : It(r, (function (t) { return (i + (t - e) % i) % i + e })) }, wrapYoyo: function t(e, n, r) { var i = n - e, o = 2 * i; return N(e) ? $t(e, t(0, e.length - 1), n) : It(r, (function (t) { return e + ((t = (o + (t - e) % o) % o || 0) > i ? o - t : t) })) }, distribute: Gt, random: Zt, snap: Qt, normalize: function (t, e, n) { return te(t, e, 0, 1, n) }, getUnit: Ht, clamp: function (t, e, n) { return It(n, (function (n) { return zt(t, e, n) })) }, splitColor: ae, toArray: Ut, selector: function (t) { return t = Ut(t)[0] || G("Invalid scope") || {}, function (e) { var n = t.current || t.nativeElement || t; return Ut(e, n.querySelectorAll ? n : n === t ? G("Invalid scope") || l.createElement("div") : t) } }, mapRange: te, pipe: function () { for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) e[n] = arguments[n]; return function (t) { return e.reduce((function (t, e) { return e(t) }), t) } }, unitize: function (t, e) { return function (n) { return t(parseFloat(n)) + (e || Ht(n)) } }, interpolate: function t(e, n, r, i) { var o = isNaN(e + n) ? 0 : function (t) { return (1 - t) * e + t * n }; if (!o) { var s, a, u, l, h, c = T(e), f = {}; if (!0 === r && (i = 1) && (r = null), c) e = {p: e}, n = {p: n}; else if (N(e) && !N(n)) { for (u = [], l = e.length, h = l - 2, a = 1; a < l; a++) u.push(t(e[a - 1], e[a])); l--, o = function (t) { t *= l; var e = Math.min(h, ~~t); return u[e](t - e) }, r = n } else i || (e = mt(N(e) ? [] : {}, e)); if (!u) { for (s in n) Se.call(f, e, s, "get", n[s]); o = function (t) { return qe(t, f) || (c ? e.p : e) } } } return It(r, o) }, shuffle: qt }, install: U, effects: et, ticker: pe, updateRoot: Me.updateRoot, plugins: tt, globalTimeline: s, core: { PropTween: $e, globals: K, Tween: Xe, Timeline: Me, Animation: Te, getCache: st, _removeLinkedListItem: xt, suppressOverwrites: function (t) { return o = t } } }; ut("to,from,fromTo,delayedCall,set,killTweensOf", (function (t) { return Je[t] = Xe[t] })), pe.add(Me.updateRoot), f = Je.to({}, {duration: 0}); var tn = function (t, e) { for (var n = t._pt; n && n.p !== e && n.op !== e && n.fp !== e;) n = n._next; return n }, en = function (t, e) { return { name: t, rawVars: 1, init: function (t, n, r) { r._onInit = function (t) { var r, i; if (T(n) && (r = {}, ut(n, (function (t) { return r[t] = 1 })), n = r), e) { for (i in r = {}, n) r[i] = e(n[i]); n = r } !function (t, e) { var n, r, i, o = t._targets; for (n in e) for (r = o.length; r--;) (i = t._ptLookup[r][n]) && (i = i.d) && (i._pt && (i = tn(i, n)), i && i.modifier && i.modifier(e[n], t, o[r], n)) }(t, n) } } } }, nn = Je.registerPlugin({ name: "attr", init: function (t, e, n, r, i) { var o, s; for (o in e) (s = this.add(t, "setAttribute", (t.getAttribute(o) || 0) + "", e[o], r, i, 0, 0, o)) && (s.op = o), this._props.push(o) } }, { name: "endArray", init: function (t, e) { for (var n = e.length; n--;) this.add(t, n, t[n] || 0, e[n]) } }, en("roundProps", Kt), en("modifiers"), en("snap", Qt)) || Je; Xe.version = Me.version = nn.version = "3.9.1", h = 1, k() && de(); ge.Power0, ge.Power1, ge.Power2, ge.Power3, ge.Power4, ge.Linear, ge.Quad, ge.Cubic, ge.Quart, ge.Quint, ge.Strong, ge.Elastic, ge.Back, ge.SteppedEase, ge.Bounce, ge.Sine, ge.Expo, ge.Circ; /*! * CSSPlugin 3.9.1 * https://greensock.com * * Copyright 2008-2021, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */ var rn, on, sn, an, un, ln, hn, cn = {}, fn = 180 / Math.PI, pn = Math.PI / 180, dn = Math.atan2, gn = /([A-Z])/g, Dn = /(?:left|right|width|margin|padding|x)/i, mn = /[\s,\(]\S/, vn = {autoAlpha: "opacity,visibility", scale: "scaleX,scaleY", alpha: "opacity"}, _n = function (t, e) { return e.set(e.t, e.p, Math.round(1e4 * (e.s + e.c * t)) / 1e4 + e.u, e) }, yn = function (t, e) { return e.set(e.t, e.p, 1 === t ? e.e : Math.round(1e4 * (e.s + e.c * t)) / 1e4 + e.u, e) }, xn = function (t, e) { return e.set(e.t, e.p, t ? Math.round(1e4 * (e.s + e.c * t)) / 1e4 + e.u : e.b, e) }, wn = function (t, e) { var n = e.s + e.c * t; e.set(e.t, e.p, ~~(n + (n < 0 ? -.5 : .5)) + e.u, e) }, Cn = function (t, e) { return e.set(e.t, e.p, t ? e.e : e.b, e) }, Fn = function (t, e) { return e.set(e.t, e.p, 1 !== t ? e.b : e.e, e) }, En = function (t, e, n) { return t.style[e] = n }, bn = function (t, e, n) { return t.style.setProperty(e, n) }, Tn = function (t, e, n) { return t._gsap[e] = n }, Mn = function (t, e, n) { return t._gsap.scaleX = t._gsap.scaleY = n }, An = function (t, e, n, r, i) { var o = t._gsap; o.scaleX = o.scaleY = n, o.renderTransform(i, o) }, Pn = function (t, e, n, r, i) { var o = t._gsap; o[e] = n, o.renderTransform(i, o) }, Sn = "transform", On = Sn + "Origin", kn = function (t, e) { var n = on.createElementNS ? on.createElementNS((e || "http://www.w3.org/1999/xhtml").replace(/^https/, "http"), t) : on.createElement(t); return n.style ? n : on.createElement(t) }, Bn = function t(e, n, r) { var i = getComputedStyle(e); return i[n] || i.getPropertyValue(n.replace(gn, "-$1").toLowerCase()) || i.getPropertyValue(n) || !r && t(e, Nn(n) || n, 1) || "" }, Ln = "O,Moz,ms,Ms,Webkit".split(","), Nn = function (t, e, n) { var r = (e || un).style, i = 5; if (t in r && !n) return t; for (t = t.charAt(0).toUpperCase() + t.substr(1); i-- && !(Ln[i] + t in r);) ; return i < 0 ? null : (3 === i ? "ms" : i >= 0 ? Ln[i] : "") + t }, Rn = function () { "undefined" != typeof window && window.document && (rn = window, on = rn.document, sn = on.documentElement, un = kn("div") || {style: {}}, kn("div"), Sn = Nn(Sn), On = Sn + "Origin", un.style.cssText = "border-width:0;line-height:0;position:absolute;padding:0", hn = !!Nn("perspective"), an = 1) }, Xn = function t(e) { var n, r = kn("svg", this.ownerSVGElement && this.ownerSVGElement.getAttribute("xmlns") || "http://www.w3.org/2000/svg"), i = this.parentNode, o = this.nextSibling, s = this.style.cssText; if (sn.appendChild(r), r.appendChild(this), this.style.display = "block", e) try { n = this.getBBox(), this._gsapBBox = this.getBBox, this.getBBox = t } catch (t) { } else this._gsapBBox && (n = this._gsapBBox()); return i && (o ? i.insertBefore(this, o) : i.appendChild(this)), sn.removeChild(r), this.style.cssText = s, n }, Yn = function (t, e) { for (var n = e.length; n--;) if (t.hasAttribute(e[n])) return t.getAttribute(e[n]) }, In = function (t) { var e; try { e = t.getBBox() } catch (n) { e = Xn.call(t, !0) } return e && (e.width || e.height) || t.getBBox === Xn || (e = Xn.call(t, !0)), !e || e.width || e.x || e.y ? e : { x: +Yn(t, ["x", "cx", "x1"]) || 0, y: +Yn(t, ["y", "cy", "y1"]) || 0, width: 0, height: 0 } }, zn = function (t) { return !(!t.getCTM || t.parentNode && !t.ownerSVGElement || !In(t)) }, Hn = function (t, e) { if (e) { var n = t.style; e in cn && e !== On && (e = Sn), n.removeProperty ? ("ms" !== e.substr(0, 2) && "webkit" !== e.substr(0, 6) || (e = "-" + e), n.removeProperty(e.replace(gn, "-$1").toLowerCase())) : n.removeAttribute(e) } }, Wn = function (t, e, n, r, i, o) { var s = new $e(t._pt, e, n, 0, 1, o ? Fn : Cn); return t._pt = s, s.b = r, s.e = i, t._props.push(n), s }, Vn = {deg: 1, rad: 1, turn: 1}, jn = function t(e, n, r, i) { var o, s, a, u, l = parseFloat(r) || 0, h = (r + "").trim().substr((l + "").length) || "px", c = un.style, f = Dn.test(n), p = "svg" === e.tagName.toLowerCase(), d = (p ? "client" : "offset") + (f ? "Width" : "Height"), g = "px" === i, D = "%" === i; return i === h || !l || Vn[i] || Vn[h] ? l : ("px" !== h && !g && (l = t(e, n, r, "px")), u = e.getCTM && zn(e), !D && "%" !== h || !cn[n] && !~n.indexOf("adius") ? (c[f ? "width" : "height"] = 100 + (g ? h : i), s = ~n.indexOf("adius") || "em" === i && e.appendChild && !p ? e : e.parentNode, u && (s = (e.ownerSVGElement || {}).parentNode), s && s !== on && s.appendChild || (s = on.body), (a = s._gsap) && D && a.width && f && a.time === pe.time ? lt(l / a.width * 100) : ((D || "%" === h) && (c.position = Bn(e, "position")), s === e && (c.position = "static"), s.appendChild(un), o = un[d], s.removeChild(un), c.position = "absolute", f && D && ((a = st(s)).time = pe.time, a.width = s[d]), lt(g ? o * l / 100 : o && l ? 100 / o * l : 0))) : (o = u ? e.getBBox()[f ? "width" : "height"] : e[d], lt(D ? l / o * 100 : l / 100 * o))) }, Un = function (t, e, n, r) { var i; return an || Rn(), e in vn && "transform" !== e && ~(e = vn[e]).indexOf(",") && (e = e.split(",")[0]), cn[e] && "transform" !== e ? (i = rr(t, r), i = "transformOrigin" !== e ? i[e] : i.svg ? i.origin : ir(Bn(t, On)) + " " + i.zOrigin + "px") : (!(i = t.style[e]) || "auto" === i || r || ~(i + "").indexOf("calc(")) && (i = Qn[e] && Qn[e](t, e, n) || Bn(t, e) || at(t, e) || ("opacity" === e ? 1 : 0)), n && !~(i + "").trim().indexOf(" ") ? jn(t, e, i, n) + n : i }, qn = function (t, e, n, r) { if (!n || "none" === n) { var i = Nn(e, t, 1), o = i && Bn(t, i, 1); o && o !== n ? (e = i, n = o) : "borderColor" === e && (n = Bn(t, "borderTopColor")) } var s, a, u, l, h, c, f, p, d, g, D, m, _ = new $e(this._pt, t.style, e, 0, 1, Ue), y = 0, x = 0; if (_.b = n, _.e = r, n += "", "auto" === (r += "") && (t.style[e] = r, r = Bn(t, e) || r, t.style[e] = n), fe(s = [n, r]), r = s[1], u = (n = s[0]).match(Y) || [], (r.match(Y) || []).length) { for (; a = Y.exec(r);) f = a[0], d = r.substring(y, a.index), h ? h = (h + 1) % 5 : "rgba(" !== d.substr(-5) && "hsla(" !== d.substr(-5) || (h = 1), f !== (c = u[x++] || "") && (l = parseFloat(c) || 0, D = c.substr((l + "").length), (m = "=" === f.charAt(1) ? +(f.charAt(0) + "1") : 0) && (f = f.substr(2)), p = parseFloat(f), g = f.substr((p + "").length), y = Y.lastIndex - g.length, g || (g = g || v.units[e] || D, y === r.length && (r += g, _.e += g)), D !== g && (l = jn(t, e, c, g) || 0), _._pt = { _next: _._pt, p: d || 1 === x ? d : ",", s: l, c: m ? m * p : p - l, m: h && h < 4 || "zIndex" === e ? Math.round : 0 }); _.c = y < r.length ? r.substring(y, r.length) : "" } else _.r = "display" === e && "none" === r ? Fn : Cn; return z.test(r) && (_.e = 0), this._pt = _, _ }, Gn = {top: "0%", bottom: "100%", left: "0%", right: "100%", center: "50%"}, Kn = function (t, e) { if (e.tween && e.tween._time === e.tween._dur) { var n, r, i, o = e.t, s = o.style, a = e.u, u = o._gsap; if ("all" === a || !0 === a) s.cssText = "", r = 1; else for (i = (a = a.split(",")).length; --i > -1;) n = a[i], cn[n] && (r = 1, n = "transformOrigin" === n ? On : Sn), Hn(o, n); r && (Hn(o, Sn), u && (u.svg && o.removeAttribute("transform"), rr(o, 1), u.uncache = 1)) } }, Qn = { clearProps: function (t, e, n, r, i) { if ("isFromStart" !== i.data) { var o = t._pt = new $e(t._pt, e, n, 0, 0, Kn); return o.u = r, o.pr = -10, o.tween = i, t._props.push(n), 1 } } }, Zn = [1, 0, 0, 1, 0, 0], $n = {}, Jn = function (t) { return "matrix(1, 0, 0, 1, 0, 0)" === t || "none" === t || !t }, tr = function (t) { var e = Bn(t, Sn); return Jn(e) ? Zn : e.substr(7).match(X).map(lt) }, er = function (t, e) { var n, r, i, o, s = t._gsap || st(t), a = t.style, u = tr(t); return s.svg && t.getAttribute("transform") ? "1,0,0,1,0,0" === (u = [(i = t.transform.baseVal.consolidate().matrix).a, i.b, i.c, i.d, i.e, i.f]).join(",") ? Zn : u : (u !== Zn || t.offsetParent || t === sn || s.svg || (i = a.display, a.display = "block", (n = t.parentNode) && t.offsetParent || (o = 1, r = t.nextSibling, sn.appendChild(t)), u = tr(t), i ? a.display = i : Hn(t, "display"), o && (r ? n.insertBefore(t, r) : n ? n.appendChild(t) : sn.removeChild(t))), e && u.length > 6 ? [u[0], u[1], u[4], u[5], u[12], u[13]] : u) }, nr = function (t, e, n, r, i, o) { var s, a, u, l = t._gsap, h = i || er(t, !0), c = l.xOrigin || 0, f = l.yOrigin || 0, p = l.xOffset || 0, d = l.yOffset || 0, g = h[0], D = h[1], m = h[2], v = h[3], _ = h[4], y = h[5], x = e.split(" "), w = parseFloat(x[0]) || 0, C = parseFloat(x[1]) || 0; n ? h !== Zn && (a = g * v - D * m) && (u = w * (-D / a) + C * (g / a) - (g * y - D * _) / a, w = w * (v / a) + C * (-m / a) + (m * y - v * _) / a, C = u) : (w = (s = In(t)).x + (~x[0].indexOf("%") ? w / 100 * s.width : w), C = s.y + (~(x[1] || x[0]).indexOf("%") ? C / 100 * s.height : C)), r || !1 !== r && l.smooth ? (_ = w - c, y = C - f, l.xOffset = p + (_ * g + y * m) - _, l.yOffset = d + (_ * D + y * v) - y) : l.xOffset = l.yOffset = 0, l.xOrigin = w, l.yOrigin = C, l.smooth = !!r, l.origin = e, l.originIsAbsolute = !!n, t.style[On] = "0px 0px", o && (Wn(o, l, "xOrigin", c, w), Wn(o, l, "yOrigin", f, C), Wn(o, l, "xOffset", p, l.xOffset), Wn(o, l, "yOffset", d, l.yOffset)), t.setAttribute("data-svg-origin", w + " " + C) }, rr = function (t, e) { var n = t._gsap || new be(t); if ("x" in n && !e && !n.uncache) return n; var r, i, o, s, a, u, l, h, c, f, p, d, g, D, m, _, y, x, w, C, F, E, b, T, M, A, P, S, O, k, B, L, N = t.style, R = n.scaleX < 0, X = Bn(t, On) || "0"; return r = i = o = u = l = h = c = f = p = 0, s = a = 1, n.svg = !(!t.getCTM || !zn(t)), D = er(t, n.svg), n.svg && (T = (!n.uncache || "0px 0px" === X) && !e && t.getAttribute("data-svg-origin"), nr(t, T || X, !!T || n.originIsAbsolute, !1 !== n.smooth, D)), d = n.xOrigin || 0, g = n.yOrigin || 0, D !== Zn && (x = D[0], w = D[1], C = D[2], F = D[3], r = E = D[4], i = b = D[5], 6 === D.length ? (s = Math.sqrt(x * x + w * w), a = Math.sqrt(F * F + C * C), u = x || w ? dn(w, x) * fn : 0, (c = C || F ? dn(C, F) * fn + u : 0) && (a *= Math.abs(Math.cos(c * pn))), n.svg && (r -= d - (d * x + g * C), i -= g - (d * w + g * F))) : (L = D[6], k = D[7], P = D[8], S = D[9], O = D[10], B = D[11], r = D[12], i = D[13], o = D[14], l = (m = dn(L, O)) * fn, m && (T = E * (_ = Math.cos(-m)) + P * (y = Math.sin(-m)), M = b * _ + S * y, A = L * _ + O * y, P = E * -y + P * _, S = b * -y + S * _, O = L * -y + O * _, B = k * -y + B * _, E = T, b = M, L = A), h = (m = dn(-C, O)) * fn, m && (_ = Math.cos(-m), B = F * (y = Math.sin(-m)) + B * _, x = T = x * _ - P * y, w = M = w * _ - S * y, C = A = C * _ - O * y), u = (m = dn(w, x)) * fn, m && (T = x * (_ = Math.cos(m)) + w * (y = Math.sin(m)), M = E * _ + b * y, w = w * _ - x * y, b = b * _ - E * y, x = T, E = M), l && Math.abs(l) + Math.abs(u) > 359.9 && (l = u = 0, h = 180 - h), s = lt(Math.sqrt(x * x + w * w + C * C)), a = lt(Math.sqrt(b * b + L * L)), m = dn(E, b), c = Math.abs(m) > 2e-4 ? m * fn : 0, p = B ? 1 / (B < 0 ? -B : B) : 0), n.svg && (T = t.getAttribute("transform"), n.forceCSS = t.setAttribute("transform", "") || !Jn(Bn(t, Sn)), T && t.setAttribute("transform", T))), Math.abs(c) > 90 && Math.abs(c) < 270 && (R ? (s *= -1, c += u <= 0 ? 180 : -180, u += u <= 0 ? 180 : -180) : (a *= -1, c += c <= 0 ? 180 : -180)), n.x = r - ((n.xPercent = r && (n.xPercent || (Math.round(t.offsetWidth / 2) === Math.round(-r) ? -50 : 0))) ? t.offsetWidth * n.xPercent / 100 : 0) + "px", n.y = i - ((n.yPercent = i && (n.yPercent || (Math.round(t.offsetHeight / 2) === Math.round(-i) ? -50 : 0))) ? t.offsetHeight * n.yPercent / 100 : 0) + "px", n.z = o + "px", n.scaleX = lt(s), n.scaleY = lt(a), n.rotation = lt(u) + "deg", n.rotationX = lt(l) + "deg", n.rotationY = lt(h) + "deg", n.skewX = c + "deg", n.skewY = f + "deg", n.transformPerspective = p + "px", (n.zOrigin = parseFloat(X.split(" ")[2]) || 0) && (N[On] = ir(X)), n.xOffset = n.yOffset = 0, n.force3D = v.force3D, n.renderTransform = n.svg ? ur : hn ? ar : sr, n.uncache = 0, n }, ir = function (t) { return (t = t.split(" "))[0] + " " + t[1] }, or = function (t, e, n) { var r = Ht(e); return lt(parseFloat(e) + parseFloat(jn(t, "x", n + "px", r))) + r }, sr = function (t, e) { e.z = "0px", e.rotationY = e.rotationX = "0deg", e.force3D = 0, ar(t, e) }, ar = function (t, e) { var n = e || this, r = n.xPercent, i = n.yPercent, o = n.x, s = n.y, a = n.z, u = n.rotation, l = n.rotationY, h = n.rotationX, c = n.skewX, f = n.skewY, p = n.scaleX, d = n.scaleY, g = n.transformPerspective, D = n.force3D, m = n.target, v = n.zOrigin, _ = "", y = "auto" === D && t && 1 !== t || !0 === D; if (v && ("0deg" !== h || "0deg" !== l)) { var x, w = parseFloat(l) * pn, C = Math.sin(w), F = Math.cos(w); w = parseFloat(h) * pn, x = Math.cos(w), o = or(m, o, C * x * -v), s = or(m, s, -Math.sin(w) * -v), a = or(m, a, F * x * -v + v) } "0px" !== g && (_ += "perspective(" + g + ") "), (r || i) && (_ += "translate(" + r + "%, " + i + "%) "), (y || "0px" !== o || "0px" !== s || "0px" !== a) && (_ += "0px" !== a || y ? "translate3d(" + o + ", " + s + ", " + a + ") " : "translate(" + o + ", " + s + ") "), "0deg" !== u && (_ += "rotate(" + u + ") "), "0deg" !== l && (_ += "rotateY(" + l + ") "), "0deg" !== h && (_ += "rotateX(" + h + ") "), "0deg" === c && "0deg" === f || (_ += "skew(" + c + ", " + f + ") "), 1 === p && 1 === d || (_ += "scale(" + p + ", " + d + ") "), m.style[Sn] = _ || "translate(0, 0)" }, ur = function (t, e) { var n, r, i, o, s, a = e || this, u = a.xPercent, l = a.yPercent, h = a.x, c = a.y, f = a.rotation, p = a.skewX, d = a.skewY, g = a.scaleX, D = a.scaleY, m = a.target, v = a.xOrigin, _ = a.yOrigin, y = a.xOffset, x = a.yOffset, w = a.forceCSS, C = parseFloat(h), F = parseFloat(c); f = parseFloat(f), p = parseFloat(p), (d = parseFloat(d)) && (p += d = parseFloat(d), f += d), f || p ? (f *= pn, p *= pn, n = Math.cos(f) * g, r = Math.sin(f) * g, i = Math.sin(f - p) * -D, o = Math.cos(f - p) * D, p && (d *= pn, s = Math.tan(p - d), i *= s = Math.sqrt(1 + s * s), o *= s, d && (s = Math.tan(d), n *= s = Math.sqrt(1 + s * s), r *= s)), n = lt(n), r = lt(r), i = lt(i), o = lt(o)) : (n = g, o = D, r = i = 0), (C && !~(h + "").indexOf("px") || F && !~(c + "").indexOf("px")) && (C = jn(m, "x", h, "px"), F = jn(m, "y", c, "px")), (v || _ || y || x) && (C = lt(C + v - (v * n + _ * i) + y), F = lt(F + _ - (v * r + _ * o) + x)), (u || l) && (s = m.getBBox(), C = lt(C + u / 100 * s.width), F = lt(F + l / 100 * s.height)), s = "matrix(" + n + "," + r + "," + i + "," + o + "," + C + "," + F + ")", m.setAttribute("transform", s), w && (m.style[Sn] = s) }, lr = function (t, e, n, r, i, o) { var s, a, u = T(i), l = parseFloat(i) * (u && ~i.indexOf("rad") ? fn : 1), h = o ? l * o : l - r, c = r + h + "deg"; return u && ("short" === (s = i.split("_")[1]) && (h %= 360) !== h % 180 && (h += h < 0 ? 360 : -360), "cw" === s && h < 0 ? h = (h + 36e9) % 360 - 360 * ~~(h / 360) : "ccw" === s && h > 0 && (h = (h - 36e9) % 360 - 360 * ~~(h / 360))), t._pt = a = new $e(t._pt, e, n, r, h, yn), a.e = c, a.u = "deg", t._props.push(n), a }, hr = function (t, e) { for (var n in e) t[n] = e[n]; return t }, cr = function (t, e, n) { var r, i, o, s, a, u, l, h = hr({}, n._gsap), c = n.style; for (i in h.svg ? (o = n.getAttribute("transform"), n.setAttribute("transform", ""), c[Sn] = e, r = rr(n, 1), Hn(n, Sn), n.setAttribute("transform", o)) : (o = getComputedStyle(n)[Sn], c[Sn] = e, r = rr(n, 1), c[Sn] = o), cn) (o = h[i]) !== (s = r[i]) && "perspective,force3D,transformOrigin,svgOrigin".indexOf(i) < 0 && (a = Ht(o) !== (l = Ht(s)) ? jn(n, i, o, l) : parseFloat(o), u = parseFloat(s), t._pt = new $e(t._pt, r, i, a, u - a, _n), t._pt.u = l || 0, t._props.push(i)); hr(r, h) }; ut("padding,margin,Width,Radius", (function (t, e) { var n = "Top", r = "Right", i = "Bottom", o = "Left", s = (e < 3 ? [n, r, i, o] : [n + o, n + r, i + r, i + o]).map((function (n) { return e < 2 ? t + n : "border" + n + t })); Qn[e > 1 ? "border" + t : t] = function (t, e, n, r, i) { var o, a; if (arguments.length < 4) return o = s.map((function (e) { return Un(t, e, n) })), 5 === (a = o.join(" ")).split(o[0]).length ? o[0] : a; o = (r + "").split(" "), a = {}, s.forEach((function (t, e) { return a[t] = o[e] = o[e] || o[(e - 1) / 2 | 0] })), t.init(e, a, i) } })); var fr, pr, dr = { name: "css", register: Rn, targetTest: function (t) { return t.style && t.nodeType }, init: function (t, e, n, r, i) { var o, s, a, u, l, h, c, f, p, d, g, D, m, _, y, x, w, C, F, E = this._props, b = t.style, M = n.vars.startAt; for (c in an || Rn(), e) if ("autoRound" !== c && (s = e[c], !tt[c] || !Oe(c, e, n, r, t, i))) if (l = typeof s, h = Qn[c], "function" === l && (l = typeof (s = s.call(n, r, t, i))), "string" === l && ~s.indexOf("random(") && (s = Jt(s)), h) h(this, t, c, s, n) && (y = 1); else if ("--" === c.substr(0, 2)) o = (getComputedStyle(t).getPropertyValue(c) + "").trim(), s += "", he.lastIndex = 0, he.test(o) || (f = Ht(o), p = Ht(s)), p ? f !== p && (o = jn(t, c, o, p) + p) : f && (s += f), this.add(b, "setProperty", o, s, r, i, 0, 0, c), E.push(c); else if ("undefined" !== l) { if (M && c in M ? (o = "function" == typeof M[c] ? M[c].call(n, r, t, i) : M[c], T(o) && ~o.indexOf("random(") && (o = Jt(o)), Ht(o + "") || (o += v.units[c] || Ht(Un(t, c)) || ""), "=" === (o + "").charAt(1) && (o = Un(t, c))) : o = Un(t, c), u = parseFloat(o), (d = "string" === l && "=" === s.charAt(1) ? +(s.charAt(0) + "1") : 0) && (s = s.substr(2)), a = parseFloat(s), c in vn && ("autoAlpha" === c && (1 === u && "hidden" === Un(t, "visibility") && a && (u = 0), Wn(this, b, "visibility", u ? "inherit" : "hidden", a ? "inherit" : "hidden", !a)), "scale" !== c && "transform" !== c && ~(c = vn[c]).indexOf(",") && (c = c.split(",")[0])), g = c in cn) if (D || ((m = t._gsap).renderTransform && !e.parseTransform || rr(t, e.parseTransform), _ = !1 !== e.smoothOrigin && m.smooth, (D = this._pt = new $e(this._pt, b, Sn, 0, 1, m.renderTransform, m, 0, -1)).dep = 1), "scale" === c) this._pt = new $e(this._pt, m, "scaleY", m.scaleY, (d ? d * a : a - m.scaleY) || 0), E.push("scaleY", c), c += "X"; else { if ("transformOrigin" === c) { w = void 0, C = void 0, F = void 0, w = (x = s).split(" "), C = w[0], F = w[1] || "50%", "top" !== C && "bottom" !== C && "left" !== F && "right" !== F || (x = C, C = F, F = x), w[0] = Gn[C] || C, w[1] = Gn[F] || F, s = w.join(" "), m.svg ? nr(t, s, 0, _, 0, this) : ((p = parseFloat(s.split(" ")[2]) || 0) !== m.zOrigin && Wn(this, m, "zOrigin", m.zOrigin, p), Wn(this, b, c, ir(o), ir(s))); continue } if ("svgOrigin" === c) { nr(t, s, 1, _, 0, this); continue } if (c in $n) { lr(this, m, c, u, s, d); continue } if ("smoothOrigin" === c) { Wn(this, m, "smooth", m.smooth, s); continue } if ("force3D" === c) { m[c] = s; continue } if ("transform" === c) { cr(this, s, t); continue } } else c in b || (c = Nn(c) || c); if (g || (a || 0 === a) && (u || 0 === u) && !mn.test(s) && c in b) a || (a = 0), (f = (o + "").substr((u + "").length)) !== (p = Ht(s) || (c in v.units ? v.units[c] : f)) && (u = jn(t, c, o, p)), this._pt = new $e(this._pt, g ? m : b, c, u, d ? d * a : a - u, g || "px" !== p && "zIndex" !== c || !1 === e.autoRound ? _n : wn), this._pt.u = p || 0, f !== p && "%" !== p && (this._pt.b = o, this._pt.r = xn); else if (c in b) qn.call(this, t, c, o, s); else { if (!(c in t)) { q(c, s); continue } this.add(t, c, o || t[c], s, r, i) } E.push(c) } y && Ze(this) }, get: Un, aliases: vn, getSetter: function (t, e, n) { var r = vn[e]; return r && r.indexOf(",") < 0 && (e = r), e in cn && e !== On && (t._gsap.x || Un(t, "x")) ? n && ln === n ? "scale" === e ? Mn : Tn : (ln = n || {}) && ("scale" === e ? An : Pn) : t.style && !P(t.style[e]) ? En : ~e.indexOf("-") ? bn : We(t, e) }, core: {_removeProperty: Hn, _getMatrix: er} }; nn.utils.checkPrefix = Nn, pr = ut("x,y,z,scale,scaleX,scaleY,xPercent,yPercent," + (fr = "rotation,rotationX,rotationY,skewX,skewY") + ",transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective", (function (t) { cn[t] = 1 })), ut(fr, (function (t) { v.units[t] = "deg", $n[t] = 1 })), vn[pr[13]] = "x,y,z,scale,scaleX,scaleY,xPercent,yPercent," + fr, ut("0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY", (function (t) { var e = t.split(":"); vn[e[1]] = pr[e[0]] })), ut("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective", (function (t) { v.units[t] = "px" })), nn.registerPlugin(dr); var gr, Dr, mr, vr = nn.registerPlugin(dr) || nn, _r = vr.core.Tween, yr = function () { return gr || "undefined" != typeof window && (gr = window.gsap) && gr.registerPlugin && gr }, xr = function (t) { gr = yr(), (mr = gr && gr.parseEase("_CE")) ? (Dr = 1, gr.parseEase("bounce").config = function (t) { return "object" == typeof t ? Cr("", t) : Cr("bounce(" + t + ")", {strength: +t}) }) : t && console.warn("Please gsap.registerPlugin(CustomEase, CustomBounce)") }, wr = function (t) { var e, n = t.length, r = 1 / t[n - 2]; for (e = 2; e < n; e += 2) t[e] = ~~(t[e] * r * 1e3) / 1e3; t[n - 2] = 1 }, Cr = function (t, e) { Dr || xr(1), e = e || {}; var n, r, i, o, s, a, u, l = Math.min(.999, e.strength || .7), h = l, c = (e.squash || 0) / 100, f = c, p = 1 / .03, d = .2, g = 1, D = .1, m = [0, 0, .07, 0, .1, 1, .1, 1], v = [0, 0, 0, 0, .1, 0, .1, 0]; for (s = 0; s < 200 && (a = D + (d *= h * ((h + 1) / 2)), o = 1 - (g *= l * l), r = (i = D + .49 * d) + .8 * (i - (n = D + g / p)), c && (D += c, n += c, i += c, r += c, a += c, u = c / f, v.push(D - c, 0, D - c, u, D - c / 2, u, D, u, D, 0, D, 0, D, -.6 * u, D + (a - D) / 6, 0, a, 0), m.push(D - c, 1, D, 1, D, 1), c *= l * l), m.push(D, 1, n, o, i, o, r, o, a, 1, a, 1), l *= .95, p = g / (a - r), D = a, !(o > .999)); s++) ; if (e.endAtStart && "false" !== e.endAtStart) { if (i = -.1, m.unshift(i, 1, i, 1, -.07, 0), f) for (i -= c = 2.5 * f, m.unshift(i, 1, i, 1, i, 1), v.splice(0, 6), v.unshift(i, 0, i, 0, i, 1, i + c / 2, 1, i + c, 1, i + c, 0, i + c, 0, i + c, -.6, i + c + .033, 0), s = 0; s < v.length; s += 2) v[s] -= i; for (s = 0; s < m.length; s += 2) m[s] -= i, m[s + 1] = 1 - m[s + 1] } return c && (wr(v), v[2] = "C" + v[2], mr(e.squashID || t + "-squash", "M" + v.join(","))), wr(m), m[2] = "C" + m[2], mr(t, "M" + m.join(",")) }, Fr = function () { function t(t, e) { this.ease = Cr(t, e) } return t.create = function (t, e) { return Cr(t, e) }, t.register = function (t) { gr = t, xr() }, t }(); /*! * CustomBounce 3.9.1 * https://greensock.com * * @license Copyright 2008-2021, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */ yr() && gr.registerPlugin(Fr), Fr.version = "3.9.1"; /*! * paths 3.9.1 * https://greensock.com * * Copyright 2008-2021, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */ var Er = /[achlmqstvz]|(-?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi, br = /(?:(-)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi, Tr = /[\+\-]?\d*\.?\d+e[\+\-]?\d+/gi, Mr = /(^[#\.][a-z]|[a-y][a-z])/i, Ar = Math.PI / 180, Pr = 180 / Math.PI, Sr = Math.sin, Or = Math.cos, kr = Math.abs, Br = Math.sqrt, Lr = Math.atan2, Nr = function (t) { return "string" == typeof t }, Rr = function (t) { return "number" == typeof t }, Xr = {}, Yr = {}, Ir = function (t) { return Math.round((t + 1e8) % 1 * 1e5) / 1e5 || (t < 0 ? 0 : 1) }, zr = function (t) { return Math.round(1e5 * t) / 1e5 || 0 }, Hr = function (t) { return Math.round(1e10 * t) / 1e10 || 0 }, Wr = function (t, e, n, r) { var i = t[e], o = 1 === r ? 6 : ei(i, n, r); if (o && o + n + 2 < i.length) return t.splice(e, 0, i.slice(0, n + o + 2)), i.splice(0, n + o), 1 }, Vr = function (t, e, n) { var r = t.length, i = ~~(n * r); if (t[i] > e) for (; --i && t[i] > e;) ; else for (; t[++i] < e && i < r;) ; return i < r ? i : r - 1 }, jr = function (t, e) { return e.totalLength = t.totalLength, t.samples ? (e.samples = t.samples.slice(0), e.lookup = t.lookup.slice(0), e.minLength = t.minLength, e.resolution = t.resolution) : t.totalPoints && (e.totalPoints = t.totalPoints), e }, Ur = function (t, e) { var n = t.length, r = t[n - 1] || [], i = r.length; n && e[0] === r[i - 2] && e[1] === r[i - 1] && (e = r.concat(e.slice(2)), n--), t[n] = e }; function qr(t) { var e, n = (t = Nr(t) && Mr.test(t) && document.querySelector(t) || t).getAttribute ? t : 0; return n && (t = t.getAttribute("d")) ? (n._gsPath || (n._gsPath = {}), (e = n._gsPath[t]) && !e._dirty ? e : n._gsPath[t] = si(t)) : t ? Nr(t) ? si(t) : Rr(t[0]) ? [t] : t : console.warn("Expecting a element or an SVG path data string") } function Gr(t) { var e, n = 0; for (t.reverse(); n < t.length; n += 2) e = t[n], t[n] = t[n + 1], t[n + 1] = e; t.reversed = !t.reversed } var Kr = {rect: "rx,ry,x,y,width,height", circle: "r,cx,cy", ellipse: "rx,ry,cx,cy", line: "x1,x2,y1,y2"}; function Qr(t, e) { var n, r, i, o, s, a, u, l, h, c, f, p, d, g, D, m, v, _, y, x, w, C, F = t.tagName.toLowerCase(), E = .552284749831; return "path" !== F && t.getBBox ? (a = function (t, e) { var n, r = document.createElementNS("http://www.w3.org/2000/svg", "path"), i = [].slice.call(t.attributes), o = i.length; for (e = "," + e + ","; --o > -1;) n = i[o].nodeName.toLowerCase(), e.indexOf("," + n + ",") < 0 && r.setAttributeNS(null, n, i[o].nodeValue); return r }(t, "x,y,width,height,cx,cy,rx,ry,r,x1,x2,y1,y2,points"), C = function (t, e) { for (var n = e ? e.split(",") : [], r = {}, i = n.length; --i > -1;) r[n[i]] = +t.getAttribute(n[i]) || 0; return r }(t, Kr[F]), "rect" === F ? (o = C.rx, s = C.ry || o, r = C.x, i = C.y, c = C.width - 2 * o, f = C.height - 2 * s, n = o || s ? "M" + (m = (g = (d = r + o) + c) + o) + "," + (_ = i + s) + " V" + (y = _ + f) + " C" + [m, x = y + s * E, D = g + o * E, w = y + s, g, w, g - (g - d) / 3, w, d + (g - d) / 3, w, d, w, p = r + o * (1 - E), w, r, x, r, y, r, y - (y - _) / 3, r, _ + (y - _) / 3, r, _, r, v = i + s * (1 - E), p, i, d, i, d + (g - d) / 3, i, g - (g - d) / 3, i, g, i, D, i, m, v, m, _].join(",") + "z" : "M" + (r + c) + "," + i + " v" + f + " h" + -c + " v" + -f + " h" + c + "z") : "circle" === F || "ellipse" === F ? ("circle" === F ? l = (o = s = C.r) * E : (o = C.rx, l = (s = C.ry) * E), n = "M" + ((r = C.cx) + o) + "," + (i = C.cy) + " C" + [r + o, i + l, r + (u = o * E), i + s, r, i + s, r - u, i + s, r - o, i + l, r - o, i, r - o, i - l, r - u, i - s, r, i - s, r + u, i - s, r + o, i - l, r + o, i].join(",") + "z") : "line" === F ? n = "M" + C.x1 + "," + C.y1 + " L" + C.x2 + "," + C.y2 : "polyline" !== F && "polygon" !== F || (n = "M" + (r = (h = (t.getAttribute("points") + "").match(br) || []).shift()) + "," + (i = h.shift()) + " L" + h.join(","), "polygon" === F && (n += "," + r + "," + i + "z")), a.setAttribute("d", li(a._gsRawPath = si(n))), e && t.parentNode && (t.parentNode.insertBefore(a, t), t.parentNode.removeChild(t)), a) : t } function Zr(t, e, n) { var r, i = t[e], o = t[e + 2], s = t[e + 4]; return i += (o - i) * n, i += ((o += (s - o) * n) - i) * n, r = o + (s + (t[e + 6] - s) * n - o) * n - i, i = t[e + 1], i += ((o = t[e + 3]) - i) * n, i += ((o += ((s = t[e + 5]) - o) * n) - i) * n, zr(Lr(o + (s + (t[e + 7] - s) * n - o) * n - i, r) * Pr) } function $r(t, e, n) { n = void 0 === n ? 1 : Hr(n) || 0, e = Hr(e) || 0; var r = Math.max(0, ~~(kr(n - e) - 1e-8)), i = function (t) { for (var e = [], n = 0; n < t.length; n++) e[n] = jr(t[n], t[n].slice(0)); return jr(t, e) }(t); if (e > n && (e = 1 - e, n = 1 - n, function (t, e) { var n = t.length; for (e || t.reverse(); n--;) t[n].reversed || Gr(t[n]) }(i), i.totalLength = 0), e < 0 || n < 0) { var o = Math.abs(~~Math.min(e, n)) + 1; e += o, n += o } i.totalLength || ti(i); var s, a, u, l, h, c, f, p, d = n > 1, g = ni(i, e, Xr, !0), D = ni(i, n, Yr), m = D.segment, v = g.segment, _ = D.segIndex, y = g.segIndex, x = D.i, w = g.i, C = y === _, F = x === w && C; if (d || r) { for (s = _ < y || C && x < w || F && D.t < g.t, Wr(i, y, w, g.t) && (y++, s || (_++, F ? (D.t = (D.t - g.t) / (1 - g.t), x = 0) : C && (x -= w))), Math.abs(1 - (n - e)) < 1e-5 ? _ = y - 1 : !D.t && _ ? _-- : Wr(i, _, x, D.t) && s && y++, 1 === g.t && (y = (y + 1) % i.length), h = [], f = 1 + (c = i.length) * r, p = y, f += (c - y + _) % c, l = 0; l < f; l++) Ur(h, i[p++ % c]); i = h } else if (u = 1 === D.t ? 6 : ei(m, x, D.t), e !== n) for (a = ei(v, w, F ? g.t / D.t : g.t), C && (u += a), m.splice(x + u + 2), (a || w) && v.splice(0, w + a), l = i.length; l--;) (l < y || l > _) && i.splice(l, 1); else m.angle = Zr(m, x + u, 0), g = m[x += u], D = m[x + 1], m.length = m.totalLength = 0, m.totalPoints = i.totalPoints = 8, m.push(g, D, g, D, g, D, g, D); return i.totalLength = 0, i } function Jr(t, e, n) { e = e || 0, t.samples || (t.samples = [], t.lookup = []); var r, i, o, s, a, u, l, h, c, f, p, d, g, D, m, v, _, y = ~~t.resolution || 12, x = 1 / y, w = n ? e + 6 * n + 1 : t.length, C = t[e], F = t[e + 1], E = e ? e / 6 * y : 0, b = t.samples, T = t.lookup, M = (e ? t.minLength : 1e8) || 1e8, A = b[E + n * y - 1], P = e ? b[E - 1] : 0; for (b.length = T.length = 0, i = e + 2; i < w; i += 6) { if (o = t[i + 4] - C, s = t[i + 2] - C, a = t[i] - C, h = t[i + 5] - F, c = t[i + 3] - F, f = t[i + 1] - F, u = l = p = d = 0, kr(o) < .01 && kr(h) < .01 && kr(a) + kr(f) < .01) t.length > 8 && (t.splice(i, 6), i -= 6, w -= 6); else for (r = 1; r <= y; r++) u = l - (l = ((D = x * r) * D * o + 3 * (g = 1 - D) * (D * s + g * a)) * D), p = d - (d = (D * D * h + 3 * g * (D * c + g * f)) * D), (v = Br(p * p + u * u)) < M && (M = v), P += v, b[E++] = P; C += o, F += h } if (A) for (A -= P; E < b.length; E++) b[E] += A; if (b.length && M) { if (t.totalLength = _ = b[b.length - 1] || 0, t.minLength = M, _ / M < 9999) for (v = m = 0, r = 0; r < _; r += M) T[v++] = b[m] < r ? ++m : m } else t.totalLength = b[0] = 0; return e ? P - b[e / 2 - 1] : P } function ti(t, e) { var n, r, i; for (i = n = r = 0; i < t.length; i++) t[i].resolution = ~~e || 12, r += t[i].length, n += Jr(t[i]); return t.totalPoints = r, t.totalLength = n, t } function ei(t, e, n) { if (n <= 0 || n >= 1) return 0; var r = t[e], i = t[e + 1], o = t[e + 2], s = t[e + 3], a = t[e + 4], u = t[e + 5], l = r + (o - r) * n, h = o + (a - o) * n, c = i + (s - i) * n, f = s + (u - s) * n, p = l + (h - l) * n, d = c + (f - c) * n, g = a + (t[e + 6] - a) * n, D = u + (t[e + 7] - u) * n; return h += (g - h) * n, f += (D - f) * n, t.splice(e + 2, 4, zr(l), zr(c), zr(p), zr(d), zr(p + (h - p) * n), zr(d + (f - d) * n), zr(h), zr(f), zr(g), zr(D)), t.samples && t.samples.splice(e / 6 * t.resolution | 0, 0, 0, 0, 0, 0, 0, 0), 6 } function ni(t, e, n, r) { n = n || {}, t.totalLength || ti(t), (e < 0 || e > 1) && (e = Ir(e)); var i, o, s, a, u, l, h, c = 0, f = t[0]; if (e) if (1 === e) h = 1, l = (f = t[c = t.length - 1]).length - 8; else { if (t.length > 1) { for (s = t.totalLength * e, u = l = 0; (u += t[l++].totalLength) < s;) c = l; e = (s - (a = u - (f = t[c]).totalLength)) / (u - a) || 0 } i = f.samples, o = f.resolution, s = f.totalLength * e, a = (l = f.lookup.length ? f.lookup[~~(s / f.minLength)] || 0 : Vr(i, s, e)) ? i[l - 1] : 0, (u = i[l]) < s && (a = u, u = i[++l]), h = 1 / o * ((s - a) / (u - a) + l % o), l = 6 * ~~(l / o), r && 1 === h && (l + 6 < f.length ? (l += 6, h = 0) : c + 1 < t.length && (l = h = 0, f = t[++c])) } else h = l = c = 0, f = t[0]; return n.t = h, n.i = l, n.path = t, n.segment = f, n.segIndex = c, n } function ri(t, e, n, r) { var i, o, s, a, u, l, h, c, f, p = t[0], d = r || {}; if ((e < 0 || e > 1) && (e = Ir(e)), t.length > 1) { for (s = t.totalLength * e, u = l = 0; (u += t[l++].totalLength) < s;) p = t[l]; e = (s - (a = u - p.totalLength)) / (u - a) || 0 } return i = p.samples, o = p.resolution, s = p.totalLength * e, a = (l = p.lookup.length ? p.lookup[e < 1 ? ~~(s / p.minLength) : p.lookup.length - 1] || 0 : Vr(i, s, e)) ? i[l - 1] : 0, (u = i[l]) < s && (a = u, u = i[++l]), f = 1 - (h = 1 / o * ((s - a) / (u - a) + l % o) || 0), c = p[l = 6 * ~~(l / o)], d.x = zr((h * h * (p[l + 6] - c) + 3 * f * (h * (p[l + 4] - c) + f * (p[l + 2] - c))) * h + c), d.y = zr((h * h * (p[l + 7] - (c = p[l + 1])) + 3 * f * (h * (p[l + 5] - c) + f * (p[l + 3] - c))) * h + c), n && (d.angle = p.totalLength ? Zr(p, l, h >= 1 ? 1 - 1e-9 : h || 1e-9) : p.angle || 0), d } function ii(t, e, n, r, i, o, s) { for (var a, u, l, h, c, f = t.length; --f > -1;) for (u = (a = t[f]).length, l = 0; l < u; l += 2) h = a[l], c = a[l + 1], a[l] = h * e + c * r + o, a[l + 1] = h * n + c * i + s; return t._dirty = 1, t } function oi(t, e, n, r, i, o, s, a, u) { if (t !== a || e !== u) { n = kr(n), r = kr(r); var l = i % 360 * Ar, h = Or(l), c = Sr(l), f = Math.PI, p = 2 * f, d = (t - a) / 2, g = (e - u) / 2, D = h * d + c * g, m = -c * d + h * g, v = D * D, _ = m * m, y = v / (n * n) + _ / (r * r); y > 1 && (n = Br(y) * n, r = Br(y) * r); var x = n * n, w = r * r, C = (x * w - x * _ - w * v) / (x * _ + w * v); C < 0 && (C = 0); var F = (o === s ? -1 : 1) * Br(C), E = F * (n * m / r), b = F * (-r * D / n), T = (t + a) / 2 + (h * E - c * b), M = (e + u) / 2 + (c * E + h * b), A = (D - E) / n, P = (m - b) / r, S = (-D - E) / n, O = (-m - b) / r, k = A * A + P * P, B = (P < 0 ? -1 : 1) * Math.acos(A / Br(k)), L = (A * O - P * S < 0 ? -1 : 1) * Math.acos((A * S + P * O) / Br(k * (S * S + O * O))); isNaN(L) && (L = f), !s && L > 0 ? L -= p : s && L < 0 && (L += p), B %= p, L %= p; var N, R = Math.ceil(kr(L) / (p / 4)), X = [], Y = L / R, I = 4 / 3 * Sr(Y / 2) / (1 + Or(Y / 2)), z = h * n, H = c * n, W = c * -r, V = h * r; for (N = 0; N < R; N++) D = Or(i = B + N * Y), m = Sr(i), A = Or(i += Y), P = Sr(i), X.push(D - I * m, m + I * D, A + I * P, P - I * A, A, P); for (N = 0; N < X.length; N += 2) D = X[N], m = X[N + 1], X[N] = D * z + m * W + T, X[N + 1] = D * H + m * V + M; return X[N - 2] = a, X[N - 1] = u, X } } function si(t) { var e, n, r, i, o, s, a, u, l, h, c, f, p, d, g, D = (t + "").replace(Tr, (function (t) { var e = +t; return e < 1e-4 && e > -1e-4 ? 0 : e })).match(Er) || [], m = [], v = 0, _ = 0, y = D.length, x = 0, w = "ERROR: malformed path: " + t, C = function (t, e, n, r) { h = (n - t) / 3, c = (r - e) / 3, a.push(t + h, e + c, n - h, r - c, n, r) }; if (!t || !isNaN(D[0]) || isNaN(D[1])) return console.log(w), m; for (e = 0; e < y; e++) if (p = o, isNaN(D[e]) ? s = (o = D[e].toUpperCase()) !== D[e] : e--, r = +D[e + 1], i = +D[e + 2], s && (r += v, i += _), e || (u = r, l = i), "M" === o) a && (a.length < 8 ? m.length -= 1 : x += a.length), v = u = r, _ = l = i, a = [r, i], m.push(a), e += 2, o = "L"; else if ("C" === o) a || (a = [0, 0]), s || (v = _ = 0), a.push(r, i, v + 1 * D[e + 3], _ + 1 * D[e + 4], v += 1 * D[e + 5], _ += 1 * D[e + 6]), e += 6; else if ("S" === o) h = v, c = _, "C" !== p && "S" !== p || (h += v - a[a.length - 4], c += _ - a[a.length - 3]), s || (v = _ = 0), a.push(h, c, r, i, v += 1 * D[e + 3], _ += 1 * D[e + 4]), e += 4; else if ("Q" === o) h = v + 2 / 3 * (r - v), c = _ + 2 / 3 * (i - _), s || (v = _ = 0), v += 1 * D[e + 3], _ += 1 * D[e + 4], a.push(h, c, v + 2 / 3 * (r - v), _ + 2 / 3 * (i - _), v, _), e += 4; else if ("T" === o) h = v - a[a.length - 4], c = _ - a[a.length - 3], a.push(v + h, _ + c, r + 2 / 3 * (v + 1.5 * h - r), i + 2 / 3 * (_ + 1.5 * c - i), v = r, _ = i), e += 2; else if ("H" === o) C(v, _, v = r, _), e += 1; else if ("V" === o) C(v, _, v, _ = r + (s ? _ - v : 0)), e += 1; else if ("L" === o || "Z" === o) "Z" === o && (r = u, i = l, a.closed = !0), ("L" === o || kr(v - r) > .5 || kr(_ - i) > .5) && (C(v, _, r, i), "L" === o && (e += 2)), v = r, _ = i; else if ("A" === o) { if (d = D[e + 4], g = D[e + 5], h = D[e + 6], c = D[e + 7], n = 7, d.length > 1 && (d.length < 3 ? (c = h, h = g, n--) : (c = g, h = d.substr(2), n -= 2), g = d.charAt(1), d = d.charAt(0)), f = oi(v, _, +D[e + 1], +D[e + 2], +D[e + 3], +d, +g, (s ? v : 0) + 1 * h, (s ? _ : 0) + 1 * c), e += n, f) for (n = 0; n < f.length; n++) a.push(f[n]); v = a[a.length - 2], _ = a[a.length - 1] } else console.log(w); return (e = a.length) < 6 ? (m.pop(), e = 0) : a[0] === a[e - 2] && a[1] === a[e - 1] && (a.closed = !0), m.totalPoints = x + e, m } function ai(t, e) { void 0 === e && (e = 1); for (var n = t[0], r = 0, i = [n, r], o = 2; o < t.length; o += 2) i.push(n, r, t[o], r = (t[o] - n) * e / 2, n = t[o], -r); return i } function ui(t, e, n) { kr(t[0] - t[2]) < 1e-4 && kr(t[1] - t[3]) < 1e-4 && (t = t.slice(2)); var r, i, o, s, a, u, l, h, c, f, p, d, g, D, m = t.length - 2, v = +t[0], _ = +t[1], y = +t[2], x = +t[3], w = [v, _, v, _], C = y - v, F = x - _, E = Math.abs(t[m] - v) < .001 && Math.abs(t[m + 1] - _) < .001; for (isNaN(n) && (n = Math.PI / 10), E && (t.push(y, x), y = v, x = _, v = t[m - 2], _ = t[m - 1], t.unshift(v, _), m += 4), e = e || 0 === e ? +e : 1, a = 2; a < m; a += 2) r = v, i = _, v = y, _ = x, y = +t[a + 2], x = +t[a + 3], v === y && _ === x || (d = (u = C) * u + (h = F) * h, g = (C = y - v) * C + (F = x - _) * F, D = (l = y - r) * l + (c = x - i) * c, p = (o = Math.acos((d + g - D) / Br(4 * d * g))) / Math.PI * e, f = Br(d) * p, p *= Br(g), v === r && _ === i || (o > n ? (s = Lr(c, l), w.push(zr(v - Or(s) * f), zr(_ - Sr(s) * f), zr(v), zr(_), zr(v + Or(s) * p), zr(_ + Sr(s) * p))) : (s = Lr(h, u), w.push(zr(v - Or(s) * f), zr(_ - Sr(s) * f)), s = Lr(F, C), w.push(zr(v), zr(_), zr(v + Or(s) * p), zr(_ + Sr(s) * p))))); return v !== y || _ !== x || w.length < 4 ? w.push(zr(y), zr(x), zr(y), zr(x)) : w.length -= 2, E && (w.splice(0, 6), w.length = w.length - 6), w } function li(t) { Rr(t[0]) && (t = [t]); var e, n, r, i, o = "", s = t.length; for (n = 0; n < s; n++) { for (i = t[n], o += "M" + zr(i[0]) + "," + zr(i[1]) + " C", e = i.length, r = 2; r < e; r++) o += zr(i[r++]) + "," + zr(i[r++]) + " " + zr(i[r++]) + "," + zr(i[r++]) + " " + zr(i[r++]) + "," + zr(i[r]) + " "; i.closed && (o += "z") } return o } /*! * CustomEase 3.9.1 * https://greensock.com * * @license Copyright 2008-2021, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */ var hi, ci, fi = function () { return hi || "undefined" != typeof window && (hi = window.gsap) && hi.registerPlugin && hi }, pi = function () { (hi = fi()) ? (hi.registerEase("_CE", vi.create), ci = 1) : console.warn("Please gsap.registerPlugin(CustomEase)") }, di = function (t) { return ~~(1e3 * t + (t < 0 ? -.5 : .5)) / 1e3 }, gi = /[-+=\.]*\d+[\.e\-\+]*\d*[e\-\+]*\d*/gi, Di = /[cLlsSaAhHvVtTqQ]/g, mi = function t(e, n, r, i, o, s, a, u, l, h, c) { var f, p = (e + r) / 2, d = (n + i) / 2, g = (r + o) / 2, D = (i + s) / 2, m = (o + a) / 2, v = (s + u) / 2, _ = (p + g) / 2, y = (d + D) / 2, x = (g + m) / 2, w = (D + v) / 2, C = (_ + x) / 2, F = (y + w) / 2, E = a - e, b = u - n, T = Math.abs((r - a) * b - (i - u) * E), M = Math.abs((o - a) * b - (s - u) * E); return h || (h = [{x: e, y: n}, {x: a, y: u}], c = 1), h.splice(c || h.length - 1, 0, { x: C, y: F }), (T + M) * (T + M) > l * (E * E + b * b) && (f = h.length, t(e, n, p, d, _, y, C, F, l, h, c), t(C, F, x, w, m, v, a, u, l, h, c + 1 + (h.length - f))), h }, vi = function () { function t(t, e, n) { ci || pi(), this.id = t, this.setData(e, n) } var e = t.prototype; return e.setData = function (t, e) { e = e || {}; var n, r, i, o, s, a, u, l, h, c = (t = t || "0,0,1,1").match(gi), f = 1, p = [], d = [], g = e.precision || 1, D = g <= 1; if (this.data = t, (Di.test(t) || ~t.indexOf("M") && t.indexOf("C") < 0) && (c = si(t)[0]), 4 === (n = c.length)) c.unshift(0, 0), c.push(1, 1), n = 8; else if ((n - 2) % 6) throw"Invalid CustomEase"; for (0 == +c[0] && 1 == +c[n - 2] || function (t, e, n) { n || 0 === n || (n = Math.max(+t[t.length - 1], +t[1])); var r, i = -1 * +t[0], o = -n, s = t.length, a = 1 / (+t[s - 2] + i), u = -e || (Math.abs(+t[s - 1] - +t[1]) < .01 * (+t[s - 2] - +t[0]) ? function (t) { var e, n = t.length, r = 1e20; for (e = 1; e < n; e += 6) +t[e] < r && (r = +t[e]); return r }(t) + o : +t[s - 1] + o); for (u = u ? 1 / u : -a, r = 0; r < s; r += 2) t[r] = (+t[r] + i) * a, t[r + 1] = (+t[r + 1] + o) * u }(c, e.height, e.originY), this.segment = c, o = 2; o < n; o += 6) r = { x: +c[o - 2], y: +c[o - 1] }, i = { x: +c[o + 4], y: +c[o + 5] }, p.push(r, i), mi(r.x, r.y, +c[o], +c[o + 1], +c[o + 2], +c[o + 3], i.x, i.y, 1 / (2e5 * g), p, p.length - 1); for (n = p.length, o = 0; o < n; o++) u = p[o], l = p[o - 1] || u, (u.x > l.x || l.y !== u.y && l.x === u.x || u === l) && u.x <= 1 ? (l.cx = u.x - l.x, l.cy = u.y - l.y, l.n = u, l.nx = u.x, D && o > 1 && Math.abs(l.cy / l.cx - p[o - 2].cy / p[o - 2].cx) > 2 && (D = 0), l.cx < f && (l.cx ? f = l.cx : (l.cx = .001, o === n - 1 && (l.x -= .001, f = Math.min(f, .001), D = 0)))) : (p.splice(o--, 1), n--); if (s = 1 / (n = 1 / f + 1 | 0), a = 0, u = p[0], D) { for (o = 0; o < n; o++) h = o * s, u.nx < h && (u = p[++a]), r = u.y + (h - u.x) / u.cx * u.cy, d[o] = { x: h, cx: s, y: r, cy: 0, nx: 9 }, o && (d[o - 1].cy = r - d[o - 1].y); d[n - 1].cy = p[p.length - 1].y - r } else { for (o = 0; o < n; o++) u.nx < o * s && (u = p[++a]), d[o] = u; a < p.length - 1 && (d[o - 1] = p[p.length - 2]) } return this.ease = function (t) { var e = d[t * n | 0] || d[n - 1]; return e.nx < t && (e = e.n), e.y + (t - e.x) / e.cx * e.cy }, this.ease.custom = this, this.id && hi && hi.registerEase(this.id, this.ease), this }, e.getSVGData = function (e) { return t.getSVGData(this, e) }, t.create = function (e, n, r) { return new t(e, n, r).ease }, t.register = function (t) { hi = t, pi() }, t.get = function (t) { return hi.parseEase(t) }, t.getSVGData = function (e, n) { var r, i, o, s, a, u, l, h, c, f, p = (n = n || {}).width || 100, d = n.height || 100, g = n.x || 0, D = (n.y || 0) + d, m = hi.utils.toArray(n.path)[0]; if (n.invert && (d = -d, D = 0), "string" == typeof e && (e = hi.parseEase(e)), e.custom && (e = e.custom), e instanceof t) r = li(ii([e.segment], p, 0, 0, -d, g, D)); else { for (r = [g, D], s = 1 / (l = Math.max(5, 200 * (n.precision || 1))), h = 5 / (l += 2), c = di(g + s * p), i = ((f = di(D + e(s) * -d)) - D) / (c - g), o = 2; o < l; o++) a = di(g + o * s * p), u = di(D + e(o * s) * -d), (Math.abs((u - f) / (a - c) - i) > h || o === l - 1) && (r.push(c, f), i = (u - f) / (a - c)), c = a, f = u; r = "M" + r.join(",") } return m && m.setAttribute("d", r), r }, t }(); fi() && hi.registerPlugin(vi), vi.version = "3.9.1"; /*! * CustomWiggle 3.9.1 * https://greensock.com * * @license Copyright 2008-2021, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */ var _i, yi, xi, wi = function () { return _i || "undefined" != typeof window && (_i = window.gsap) && _i.registerPlugin && _i }, Ci = { easeOut: "M0,1,C0.7,1,0.6,0,1,0", easeInOut: "M0,0,C0.1,0,0.24,1,0.444,1,0.644,1,0.6,0,1,0", anticipate: "M0,0,C0,0.222,0.024,0.386,0,0.4,0.18,0.455,0.65,0.646,0.7,0.67,0.9,0.76,1,0.846,1,1", uniform: "M0,0,C0,0.95,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0" }, Fi = function (t) { return t }, Ei = function (t) { if (!yi) if (_i = wi(), xi = _i && _i.parseEase("_CE")) { for (var e in Ci) Ci[e] = xi("", Ci[e]); yi = 1, Ti("wiggle").config = function (t) { return "object" == typeof t ? Ti("", t) : Ti("wiggle(" + t + ")", {wiggles: +t}) } } else t && console.warn("Please gsap.registerPlugin(CustomEase, CustomWiggle)") }, bi = function (t, e) { return "function" != typeof t && (t = _i.parseEase(t) || xi("", t)), t.custom || !e ? t : function (e) { return 1 - t(e) } }, Ti = function (t, e) { yi || Ei(1); var n, r, i, o, s, a, u, l, h, c = 0 | ((e = e || {}).wiggles || 10), f = 1 / c, p = f / 2, d = "anticipate" === e.type, g = Ci[e.type] || Ci.easeOut, D = Fi; if (d && (D = g, g = Ci.easeOut), e.timingEase && (D = bi(e.timingEase)), e.amplitudeEase && (g = bi(e.amplitudeEase, !0)), l = [0, 0, (a = D(p)) / 4, 0, a / 2, u = d ? -g(p) : g(p), a, u], "random" === e.type) { for (l.length = 4, n = D(f), r = 2 * Math.random() - 1, h = 2; h < c; h++) p = n, u = r, n = D(f * h), r = 2 * Math.random() - 1, i = Math.atan2(r - l[l.length - 3], n - l[l.length - 4]), o = Math.cos(i) * f, s = Math.sin(i) * f, l.push(p - o, u - s, p, u, p + o, u + s); l.push(n, 0, 1, 0) } else { for (h = 1; h < c; h++) l.push(D(p + f / 2), u), p += f, u = (u > 0 ? -1 : 1) * g(h * f), a = D(p), l.push(D(p - f / 2), u, a, u); l.push(D(p + f / 4), u, D(p + f / 4), 0, 1, 0) } for (h = l.length; --h > -1;) l[h] = ~~(1e3 * l[h]) / 1e3; return l[2] = "C" + l[2], xi(t, "M" + l.join(",")) }, Mi = function () { function t(t, e) { this.ease = Ti(t, e) } return t.create = function (t, e) { return Ti(t, e) }, t.register = function (t) { _i = t, Ei() }, t }(); wi() && _i.registerPlugin(Mi), Mi.version = "3.9.1"; /*! * DrawSVGPlugin 3.9.1 * https://greensock.com * * @license Copyright 2008-2021, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */ var Ai, Pi, Si, Oi, ki, Bi = function () { return "undefined" != typeof window }, Li = function () { return Ai || Bi() && (Ai = window.gsap) && Ai.registerPlugin && Ai }, Ni = /[-+=\.]*\d+[\.e\-\+]*\d*[e\-\+]*\d*/gi, Ri = {rect: ["width", "height"], circle: ["r", "r"], ellipse: ["rx", "ry"], line: ["x2", "y2"]}, Xi = function (t) { return Math.round(1e4 * t) / 1e4 }, Yi = function (t) { return parseFloat(t) || 0 }, Ii = function (t, e) { var n = Yi(t); return ~t.indexOf("%") ? n / 100 * e : n }, zi = function (t, e) { return Yi(t.getAttribute(e)) }, Hi = Math.sqrt, Wi = function (t, e, n, r, i, o) { return Hi(Math.pow((Yi(n) - Yi(t)) * i, 2) + Math.pow((Yi(r) - Yi(e)) * o, 2)) }, Vi = function (t) { return console.warn(t) }, ji = function (t) { return "non-scaling-stroke" === t.getAttribute("vector-effect") }, Ui = function (t) { if (!(t = Pi(t)[0])) return 0; var e, n, r, i, o, s, a, u = t.tagName.toLowerCase(), l = t.style, h = 1, c = 1; ji(t) && (c = t.getScreenCTM(), h = Hi(c.a * c.a + c.b * c.b), c = Hi(c.d * c.d + c.c * c.c)); try { n = t.getBBox() } catch (t) { Vi("Some browsers won't measure invisible elements (like display:none or masks inside defs).") } var f = n || {x: 0, y: 0, width: 0, height: 0}, p = f.x, d = f.y, g = f.width, D = f.height; if (n && (g || D) || !Ri[u] || (g = zi(t, Ri[u][0]), D = zi(t, Ri[u][1]), "rect" !== u && "line" !== u && (g *= 2, D *= 2), "line" === u && (p = zi(t, "x1"), d = zi(t, "y1"), g = Math.abs(g - p), D = Math.abs(D - d))), "path" === u) i = l.strokeDasharray, l.strokeDasharray = "none", e = t.getTotalLength() || 0, h !== c && Vi("Warning: length cannot be measured when vector-effect is non-scaling-stroke and the element isn't proportionally scaled."), e *= (h + c) / 2, l.strokeDasharray = i; else if ("rect" === u) e = 2 * g * h + 2 * D * c; else if ("line" === u) e = Wi(p, d, p + g, d + D, h, c); else if ("polyline" === u || "polygon" === u) for (r = t.getAttribute("points").match(Ni) || [], "polygon" === u && r.push(r[0], r[1]), e = 0, o = 2; o < r.length; o += 2) e += Wi(r[o - 2], r[o - 1], r[o], r[o + 1], h, c) || 0; else "circle" !== u && "ellipse" !== u || (s = g / 2 * h, a = D / 2 * c, e = Math.PI * (3 * (s + a) - Hi((3 * s + a) * (s + 3 * a)))); return e || 0 }, qi = function (t, e) { if (!(t = Pi(t)[0])) return [0, 0]; e || (e = Ui(t) + 1); var n = Si.getComputedStyle(t), r = n.strokeDasharray || "", i = Yi(n.strokeDashoffset), o = r.indexOf(","); return o < 0 && (o = r.indexOf(" ")), (r = o < 0 ? e : Yi(r.substr(0, o))) > e && (r = e), [-i || 0, r - i || 0] }, Gi = function () { Bi() && (document, Si = window, ki = Ai = Li(), Pi = Ai.utils.toArray, Oi = -1 !== ((Si.navigator || {}).userAgent || "").indexOf("Edge")) }, Ki = { version: "3.9.1", name: "drawSVG", register: function (t) { Ai = t, Gi() }, init: function (t, e, n, r, i) { if (!t.getBBox) return !1; ki || Gi(); var o, s, a, u = Ui(t); return this._style = t.style, this._target = t, e + "" == "true" ? e = "0 100%" : e ? -1 === (e + "").indexOf(" ") && (e = "0 " + e) : e = "0 0", s = function (t, e, n) { var r, i, o = t.indexOf(" "); return o < 0 ? (r = void 0 !== n ? n + "" : t, i = t) : (r = t.substr(0, o), i = t.substr(o + 1)), (r = Ii(r, e)) > (i = Ii(i, e)) ? [i, r] : [r, i] }(e, u, (o = qi(t, u))[0]), this._length = Xi(u), this._dash = Xi(o[1] - o[0]), this._offset = Xi(-o[0]), this._dashPT = this.add(this, "_dash", this._dash, Xi(s[1] - s[0])), this._offsetPT = this.add(this, "_offset", this._offset, Xi(-s[0])), Oi && (a = Si.getComputedStyle(t)).strokeLinecap !== a.strokeLinejoin && (s = Yi(a.strokeMiterlimit), this.add(t.style, "strokeMiterlimit", s, s + .01)), this._live = ji(t) || ~(e + "").indexOf("live"), this._nowrap = ~(e + "").indexOf("nowrap"), this._props.push("drawSVG"), 1 }, render: function (t, e) { var n, r, i, o, s = e._pt, a = e._style; if (s) { for (e._live && (n = Ui(e._target)) !== e._length && (r = n / e._length, e._length = n, e._offsetPT && (e._offsetPT.s *= r, e._offsetPT.c *= r), e._dashPT ? (e._dashPT.s *= r, e._dashPT.c *= r) : e._dash *= r); s;) s.r(t, s.d), s = s._next; i = e._dash || t && 1 !== t && 1e-4 || 0, n = e._length - i + .1, o = e._offset, i && o && i + Math.abs(o % e._length) > e._length - .2 && (o += o < 0 ? .1 : -.1) && (n += .1), a.strokeDashoffset = i ? o : o + .001, a.strokeDasharray = n < .2 ? "none" : i ? i + "px," + (e._nowrap ? 999999 : n) + "px" : "0px, 999999px" } }, getLength: Ui, getPosition: qi }; Li() && Ai.registerPlugin(Ki); /*! * matrix 3.9.1 * https://greensock.com * * Copyright 2008-2021, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */ var Qi, Zi, $i, Ji, to, eo, no, ro, io, oo = "transform", so = oo + "Origin", ao = function (t) { var e = t.ownerDocument || t; !(oo in t.style) && "msTransform" in t.style && (so = (oo = "msTransform") + "Origin"); for (; e.parentNode && (e = e.parentNode);) ; if (Zi = window, no = new go, e) { Qi = e, $i = e.documentElement, Ji = e.body, (ro = Qi.createElementNS("http://www.w3.org/2000/svg", "g")).style.transform = "none"; var n = e.createElement("div"), r = e.createElement("div"); Ji.appendChild(n), n.appendChild(r), n.style.position = "static", n.style[oo] = "translate3d(0,0,1px)", io = r.offsetParent !== n, Ji.removeChild(n) } return e }, uo = [], lo = [], ho = function (t) { return t.ownerSVGElement || ("svg" === (t.tagName + "").toLowerCase() ? t : null) }, co = function t(e, n) { if (e.parentNode && (Qi || ao(e))) { var r = ho(e), i = r ? r.getAttribute("xmlns") || "http://www.w3.org/2000/svg" : "http://www.w3.org/1999/xhtml", o = r ? n ? "rect" : "g" : "div", s = 2 !== n ? 0 : 100, a = 3 === n ? 100 : 0, u = "position:absolute;display:block;pointer-events:none;margin:0;padding:0;", l = Qi.createElementNS ? Qi.createElementNS(i.replace(/^https/, "http"), o) : Qi.createElement(o); return n && (r ? (eo || (eo = t(e)), l.setAttribute("width", .01), l.setAttribute("height", .01), l.setAttribute("transform", "translate(" + s + "," + a + ")"), eo.appendChild(l)) : (to || ((to = t(e)).style.cssText = u), l.style.cssText = u + "width:0.1px;height:0.1px;top:" + a + "px;left:" + s + "px", to.appendChild(l))), l } throw"Need document and parent." }, fo = function (t, e) { var n, r, i, o, s, a, u = ho(t), l = t === u, h = u ? uo : lo, c = t.parentNode; if (t === Zi) return t; if (h.length || h.push(co(t, 1), co(t, 2), co(t, 3)), n = u ? eo : to, u) l ? (o = -(i = function (t) { var e, n = t.getCTM(); return n || (e = t.style[oo], t.style[oo] = "none", t.appendChild(ro), n = ro.getCTM(), t.removeChild(ro), e ? t.style[oo] = e : t.style.removeProperty(oo.replace(/([A-Z])/g, "-$1").toLowerCase())), n || no.clone() }(t)).e / i.a, s = -i.f / i.d, r = no) : (i = t.getBBox(), o = (r = (r = t.transform ? t.transform.baseVal : {}).numberOfItems ? r.numberOfItems > 1 ? function (t) { for (var e = new go, n = 0; n < t.numberOfItems; n++) e.multiply(t.getItem(n).matrix); return e }(r) : r.getItem(0).matrix : no).a * i.x + r.c * i.y, s = r.b * i.x + r.d * i.y), e && "g" === t.tagName.toLowerCase() && (o = s = 0), (l ? u : c).appendChild(n), n.setAttribute("transform", "matrix(" + r.a + "," + r.b + "," + r.c + "," + r.d + "," + (r.e + o) + "," + (r.f + s) + ")"); else { if (o = s = 0, io) for (r = t.offsetParent, i = t; i && (i = i.parentNode) && i !== r && i.parentNode;) (Zi.getComputedStyle(i)[oo] + "").length > 4 && (o = i.offsetLeft, s = i.offsetTop, i = 0); if ("absolute" !== (a = Zi.getComputedStyle(t)).position && "fixed" !== a.position) for (r = t.offsetParent; c && c !== r;) o += c.scrollLeft || 0, s += c.scrollTop || 0, c = c.parentNode; (i = n.style).top = t.offsetTop - s + "px", i.left = t.offsetLeft - o + "px", i[oo] = a[oo], i[so] = a[so], i.position = "fixed" === a.position ? "fixed" : "absolute", t.parentNode.appendChild(n) } return n }, po = function (t, e, n, r, i, o, s) { return t.a = e, t.b = n, t.c = r, t.d = i, t.e = o, t.f = s, t }, go = function () { function t(t, e, n, r, i, o) { void 0 === t && (t = 1), void 0 === e && (e = 0), void 0 === n && (n = 0), void 0 === r && (r = 1), void 0 === i && (i = 0), void 0 === o && (o = 0), po(this, t, e, n, r, i, o) } var e = t.prototype; return e.inverse = function () { var t = this.a, e = this.b, n = this.c, r = this.d, i = this.e, o = this.f, s = t * r - e * n || 1e-10; return po(this, r / s, -e / s, -n / s, t / s, (n * o - r * i) / s, -(t * o - e * i) / s) }, e.multiply = function (t) { var e = this.a, n = this.b, r = this.c, i = this.d, o = this.e, s = this.f, a = t.a, u = t.c, l = t.b, h = t.d, c = t.e, f = t.f; return po(this, a * e + l * r, a * n + l * i, u * e + h * r, u * n + h * i, o + c * e + f * r, s + c * n + f * i) }, e.clone = function () { return new t(this.a, this.b, this.c, this.d, this.e, this.f) }, e.equals = function (t) { var e = this.a, n = this.b, r = this.c, i = this.d, o = this.e, s = this.f; return e === t.a && n === t.b && r === t.c && i === t.d && o === t.e && s === t.f }, e.apply = function (t, e) { void 0 === e && (e = {}); var n = t.x, r = t.y, i = this.a, o = this.b, s = this.c, a = this.d, u = this.e, l = this.f; return e.x = n * i + r * s + u || 0, e.y = n * o + r * a + l || 0, e }, t }(); function Do(t, e, n, r) { if (!t || !t.parentNode || (Qi || ao(t)).documentElement === t) return new go; var i = function (t) { for (var e, n; t && t !== Ji;) (n = t._gsap) && n.uncache && n.get(t, "x"), n && !n.scaleX && !n.scaleY && n.renderTransform && (n.scaleX = n.scaleY = 1e-4, n.renderTransform(1, n), e ? e.push(n) : e = [n]), t = t.parentNode; return e }(t), o = ho(t) ? uo : lo, s = fo(t, n), a = o[0].getBoundingClientRect(), u = o[1].getBoundingClientRect(), l = o[2].getBoundingClientRect(), h = s.parentNode, c = !r && function t(e) { return "fixed" === Zi.getComputedStyle(e).position || ((e = e.parentNode) && 1 === e.nodeType ? t(e) : void 0) }(t), f = new go((u.left - a.left) / 100, (u.top - a.top) / 100, (l.left - a.left) / 100, (l.top - a.top) / 100, a.left + (c ? 0 : Zi.pageXOffset || Qi.scrollLeft || $i.scrollLeft || Ji.scrollLeft || 0), a.top + (c ? 0 : Zi.pageYOffset || Qi.scrollTop || $i.scrollTop || Ji.scrollTop || 0)); if (h.removeChild(s), i) for (a = i.length; a--;) (u = i[a]).scaleX = u.scaleY = 0, u.renderTransform(1, u); return e ? f.inverse() : f } /*! * MotionPathPlugin 3.9.1 * https://greensock.com * * @license Copyright 2008-2021, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */ var mo, vo, _o, yo, xo = "x,translateX,left,marginLeft,xPercent".split(","), wo = "y,translateY,top,marginTop,yPercent".split(","), Co = Math.PI / 180, Fo = function (t, e, n, r) { for (var i = e.length, o = 2 === r ? 0 : r, s = 0; s < i; s++) t[o] = parseFloat(e[s][n]), 2 === r && (t[o + 1] = 0), o += 2; return t }, Eo = function (t, e, n) { return parseFloat(t._gsap.get(t, e, n || "px")) || 0 }, bo = function (t) { var e, n = t[0], r = t[1]; for (e = 2; e < t.length; e += 2) n = t[e] += n, r = t[e + 1] += r }, To = function (t, e, n, r, i, o, s, a, u) { "cubic" === s.type ? e = [e] : (!1 !== s.fromCurrent && e.unshift(Eo(n, r, a), i ? Eo(n, i, u) : 0), s.relative && bo(e), e = [(i ? ui : ai)(e, s.curviness)]); return e = o(Oo(e, n, s)), ko(t, n, r, e, "x", a), i && ko(t, n, i, e, "y", u), ti(e, s.resolution || (0 === s.curviness ? 20 : 12)) }, Mo = function (t) { return t }, Ao = /[-+\.]*\d+\.?(?:e-|e\+)?\d*/g, Po = function (t, e, n) { var r, i = Do(t), o = 0, s = 0; return "svg" === (t.tagName + "").toLowerCase() ? (r = t.viewBox.baseVal).width || (r = { width: +t.getAttribute("width"), height: +t.getAttribute("height") }) : r = e && t.getBBox && t.getBBox(), e && "auto" !== e && (o = e.push ? e[0] * (r ? r.width : t.offsetWidth || 0) : e.x, s = e.push ? e[1] * (r ? r.height : t.offsetHeight || 0) : e.y), n.apply(o || s ? i.apply({ x: o, y: s }) : {x: i.e, y: i.f}) }, So = function (t, e, n, r) { var i, o = Do(t.parentNode, !0, !0), s = o.clone().multiply(Do(e)), a = Po(t, n, o), u = Po(e, r, o), l = u.x, h = u.y; return s.e = s.f = 0, "auto" === r && e.getTotalLength && "path" === e.tagName.toLowerCase() && (i = e.getAttribute("d").match(Ao) || [], l += (i = s.apply({ x: +i[0], y: +i[1] })).x, h += i.y), (i || e.getBBox && t.getBBox && e.ownerSVGElement === t.ownerSVGElement) && (l -= (i = s.apply(e.getBBox())).x, h -= i.y), s.e = l - a.x, s.f = h - a.y, s }, Oo = function (t, e, n) { var r, i, o, s = n.align, a = n.matrix, u = n.offsetX, l = n.offsetY, h = n.alignOrigin, c = t[0][0], f = t[0][1], p = Eo(e, "x"), d = Eo(e, "y"); return t && t.length ? (s && ("self" === s || (r = yo(s)[0] || e) === e ? ii(t, 1, 0, 0, 1, p - c, d - f) : (h && !1 !== h[2] ? mo.set(e, {transformOrigin: 100 * h[0] + "% " + 100 * h[1] + "%"}) : h = [Eo(e, "xPercent") / -100, Eo(e, "yPercent") / -100], o = (i = So(e, r, h, "auto")).apply({ x: c, y: f }), ii(t, i.a, i.b, i.c, i.d, p + i.e - (o.x - i.e), d + i.f - (o.y - i.f)))), a ? ii(t, a.a, a.b, a.c, a.d, a.e, a.f) : (u || l) && ii(t, 1, 0, 0, 1, u || 0, l || 0), t) : qr("M0,0L0,0") }, ko = function (t, e, n, r, i, o) { var s = e._gsap, a = s.harness, u = a && a.aliases && a.aliases[n], l = u && u.indexOf(",") < 0 ? u : n, h = t._pt = new vo(t._pt, e, l, 0, 0, Mo, 0, s.set(e, l, t)); h.u = _o(s.get(e, l, o)) || 0, h.path = r, h.pp = i, t._props.push(l) }, Bo = { version: "3.9.1", name: "motionPath", register: function (t, e, n) { _o = (mo = t).utils.getUnit, yo = mo.utils.toArray, vo = n }, init: function (t, e) { if (!mo) return console.warn("Please gsap.registerPlugin(MotionPathPlugin)"), !1; "object" == typeof e && !e.style && e.path || (e = {path: e}); var n, r, i, o, s = [], a = e, u = a.path, l = a.autoRotate, h = a.unitX, c = a.unitY, f = a.x, p = a.y, d = u[0], g = (i = e.start, o = "end" in e ? e.end : 1, function (t) { return i || 1 !== o ? $r(t, i, o) : t }); if (this.rawPaths = s, this.target = t, (this.rotate = l || 0 === l) && (this.rOffset = parseFloat(l) || 0, this.radians = !!e.useRadians, this.rProp = e.rotation || "rotation", this.rSet = t._gsap.set(t, this.rProp, this), this.ru = _o(t._gsap.get(t, this.rProp)) || 0), Array.isArray(u) && !("closed" in u) && "number" != typeof d) { for (r in d) !f && ~xo.indexOf(r) ? f = r : !p && ~wo.indexOf(r) && (p = r); for (r in f && p ? s.push(To(this, Fo(Fo([], u, f, 0), u, p, 1), t, f, p, g, e, h || _o(u[0][f]), c || _o(u[0][p]))) : f = p = 0, d) r !== f && r !== p && s.push(To(this, Fo([], u, r, 2), t, r, 0, g, e, _o(u[0][r]))) } else ti(n = g(Oo(qr(e.path), t, e)), e.resolution), s.push(n), ko(this, t, e.x || "x", n, "x", e.unitX || "px"), ko(this, t, e.y || "y", n, "y", e.unitY || "px") }, render: function (t, e) { var n = e.rawPaths, r = n.length, i = e._pt; for (t > 1 ? t = 1 : t < 0 && (t = 0); r--;) ri(n[r], t, !r && e.rotate, n[r]); for (; i;) i.set(i.t, i.p, i.path[i.pp] + i.u, i.d, t), i = i._next; e.rotate && e.rSet(e.target, e.rProp, n[0].angle * (e.radians ? Co : 1) + e.rOffset + e.ru, e, t) }, getLength: function (t) { return ti(qr(t)).totalLength }, sliceRawPath: $r, getRawPath: qr, pointsToSegment: ui, stringToRawPath: si, rawPathToString: li, transformRawPath: ii, getGlobalMatrix: Do, getPositionOnPath: ri, cacheRawPathMeasurements: ti, convertToPath: function (t, e) { return yo(t).map((function (t) { return Qr(t, !1 !== e) })) }, convertCoordinates: function (t, e, n) { var r = Do(e, !0, !0).multiply(Do(t)); return n ? r.apply(n) : r }, getAlignMatrix: So, getRelativePosition: function (t, e, n, r) { var i = So(t, e, n, r); return {x: i.e, y: i.f} }, arrayToRawPath: function (t, e) { var n = Fo(Fo([], t, (e = e || {}).x || "x", 0), t, e.y || "y", 1); return e.relative && bo(n), ["cubic" === e.type ? n : ui(n, e.curviness)] } }; (mo || "undefined" != typeof window && (mo = window.gsap) && mo.registerPlugin && mo) && mo.registerPlugin(Bo); /*! * ScrollToPlugin 3.9.1 * https://greensock.com * * @license Copyright 2008-2021, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */ var Lo, No, Ro, Xo, Yo, Io, zo, Ho = function () { return "undefined" != typeof window }, Wo = function () { return Lo || Ho() && (Lo = window.gsap) && Lo.registerPlugin && Lo }, Vo = function (t) { return "string" == typeof t }, jo = function (t) { return "function" == typeof t }, Uo = function (t, e) { var n = "x" === e ? "Width" : "Height", r = "scroll" + n, i = "client" + n; return t === Ro || t === Xo || t === Yo ? Math.max(Xo[r], Yo[r]) - (Ro["inner" + n] || Xo[i] || Yo[i]) : t[r] - t["offset" + n] }, qo = function (t, e) { var n = "scroll" + ("x" === e ? "Left" : "Top"); return t === Ro && (null != t.pageXOffset ? n = "page" + e.toUpperCase() + "Offset" : t = null != Xo[n] ? Xo : Yo), function () { return t[n] } }, Go = function (t, e) { if (!(t = Io(t)[0]) || !t.getBoundingClientRect) return console.warn("scrollTo target doesn't exist. Using 0") || { x: 0, y: 0 }; var n = t.getBoundingClientRect(), r = !e || e === Ro || e === Yo, i = r ? { top: Xo.clientTop - (Ro.pageYOffset || Xo.scrollTop || Yo.scrollTop || 0), left: Xo.clientLeft - (Ro.pageXOffset || Xo.scrollLeft || Yo.scrollLeft || 0) } : e.getBoundingClientRect(), o = {x: n.left - i.left, y: n.top - i.top}; return !r && e && (o.x += qo(e, "x")(), o.y += qo(e, "y")()), o }, Ko = function (t, e, n, r, i) { return isNaN(t) || "object" == typeof t ? Vo(t) && "=" === t.charAt(1) ? parseFloat(t.substr(2)) * ("-" === t.charAt(0) ? -1 : 1) + r - i : "max" === t ? Uo(e, n) - i : Math.min(Uo(e, n), Go(t, e)[n] - i) : parseFloat(t) - i }, Qo = function () { Lo = Wo(), Ho() && Lo && document.body && (Ro = window, Yo = document.body, Xo = document.documentElement, Io = Lo.utils.toArray, Lo.config({autoKillThreshold: 7}), zo = Lo.config(), No = 1) }, Zo = { version: "3.9.1", name: "scrollTo", rawVars: 1, register: function (t) { Lo = t, Qo() }, init: function (t, e, n, r, i) { No || Qo(); var o = Lo.getProperty(t, "scrollSnapType"); this.isWin = t === Ro, this.target = t, this.tween = n, e = function (t, e, n, r) { if (jo(t) && (t = t(e, n, r)), "object" != typeof t) return Vo(t) && "max" !== t && "=" !== t.charAt(1) ? { x: t, y: t } : {y: t}; if (t.nodeType) return {y: t, x: t}; var i, o = {}; for (i in t) o[i] = "onAutoKill" !== i && jo(t[i]) ? t[i](e, n, r) : t[i]; return o }(e, r, t, i), this.vars = e, this.autoKill = !!e.autoKill, this.getX = qo(t, "x"), this.getY = qo(t, "y"), this.x = this.xPrev = this.getX(), this.y = this.yPrev = this.getY(), o && "none" !== o && (this.snap = 1, this.snapInline = t.style.scrollSnapType, t.style.scrollSnapType = "none"), null != e.x ? (this.add(this, "x", this.x, Ko(e.x, t, "x", this.x, e.offsetX || 0), r, i), this._props.push("scrollTo_x")) : this.skipX = 1, null != e.y ? (this.add(this, "y", this.y, Ko(e.y, t, "y", this.y, e.offsetY || 0), r, i), this._props.push("scrollTo_y")) : this.skipY = 1 }, render: function (t, e) { for (var n, r, i, o, s, a = e._pt, u = e.target, l = e.tween, h = e.autoKill, c = e.xPrev, f = e.yPrev, p = e.isWin, d = e.snap, g = e.snapInline; a;) a.r(t, a.d), a = a._next; n = p || !e.skipX ? e.getX() : c, i = (r = p || !e.skipY ? e.getY() : f) - f, o = n - c, s = zo.autoKillThreshold, e.x < 0 && (e.x = 0), e.y < 0 && (e.y = 0), h && (!e.skipX && (o > s || o < -s) && n < Uo(u, "x") && (e.skipX = 1), !e.skipY && (i > s || i < -s) && r < Uo(u, "y") && (e.skipY = 1), e.skipX && e.skipY && (l.kill(), e.vars.onAutoKill && e.vars.onAutoKill.apply(l, e.vars.onAutoKillParams || []))), p ? Ro.scrollTo(e.skipX ? n : e.x, e.skipY ? r : e.y) : (e.skipY || (u.scrollTop = e.y), e.skipX || (u.scrollLeft = e.x)), !d || 1 !== t && 0 !== t || (r = u.scrollTop, n = u.scrollLeft, g ? u.style.scrollSnapType = g : u.style.removeProperty("scroll-snap-type"), u.scrollTop = r + 1, u.scrollLeft = n + 1, u.scrollTop = r, u.scrollLeft = n), e.xPrev = e.x, e.yPrev = e.y }, kill: function (t) { var e = "scrollTo" === t; (e || "scrollTo_x" === t) && (this.skipX = 1), (e || "scrollTo_y" === t) && (this.skipY = 1) } }; Zo.max = Uo, Zo.getOffset = Go, Zo.buildGetter = qo, Wo() && Lo.registerPlugin(Zo); /*! * Draggable 3.9.1 * https://greensock.com * * @license Copyright 2008-2021, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */ var $o, Jo, ts, es, ns, rs, is, os, ss, as, us, ls, hs, cs, fs, ps, ds, gs, Ds, ms, vs, _s = function () { return "undefined" != typeof window }, ys = function () { return $o || _s() && ($o = window.gsap) && $o.registerPlugin && $o }, xs = function (t) { return "function" == typeof t }, ws = function (t) { return "object" == typeof t }, Cs = function (t) { return void 0 === t }, Fs = function () { return !1 }, Es = "transform", bs = "transformOrigin", Ts = function (t) { return Math.round(1e4 * t) / 1e4 }, Ms = Array.isArray, As = function (t, e) { var n = ts.createElementNS ? ts.createElementNS((e || "http://www.w3.org/1999/xhtml").replace(/^https/, "http"), t) : ts.createElement(t); return n.style ? n : ts.createElement(t) }, Ps = 180 / Math.PI, Ss = new go, Os = Date.now || function () { return (new Date).getTime() }, ks = [], Bs = {}, Ls = 0, Ns = /^(?:a|input|textarea|button|select)$/i, Rs = 0, Xs = {}, Ys = {}, Is = function (t, e) { var n, r = {}; for (n in t) r[n] = e ? t[n] * e : t[n]; return r }, zs = function t(e, n) { for (var r, i = e.length; i--;) n ? e[i].style.touchAction = n : e[i].style.removeProperty("touch-action"), (r = e[i].children) && r.length && t(r, n) }, Hs = function () { return ks.forEach((function (t) { return t() })) }, Ws = function () { return !ks.length && $o.ticker.remove(Hs) }, Vs = function (t) { for (var e = ks.length; e--;) ks[e] === t && ks.splice(e, 1); $o.to(Ws, {overwrite: !0, delay: 15, duration: 0, onComplete: Ws, data: "_draggable"}) }, js = function (t, e, n, r) { if (t.addEventListener) { var i = hs[e]; r = r || (us ? {passive: !1} : null), t.addEventListener(i || e, n, r), i && e !== i && t.addEventListener(e, n, r) } }, Us = function (t, e, n) { if (t.removeEventListener) { var r = hs[e]; t.removeEventListener(r || e, n), r && e !== r && t.removeEventListener(e, n) } }, qs = function (t) { t.preventDefault && t.preventDefault(), t.preventManipulation && t.preventManipulation() }, Gs = function t(e) { fs = e.touches && cs < e.touches.length, Us(e.target, "touchend", t) }, Ks = function (t) { fs = t.touches && cs < t.touches.length, js(t.target, "touchend", Gs) }, Qs = function (t) { return Jo.pageYOffset || t.scrollTop || t.documentElement.scrollTop || t.body.scrollTop || 0 }, Zs = function (t) { return Jo.pageXOffset || t.scrollLeft || t.documentElement.scrollLeft || t.body.scrollLeft || 0 }, $s = function t(e, n) { js(e, "scroll", n), ta(e.parentNode) || t(e.parentNode, n) }, Js = function t(e, n) { Us(e, "scroll", n), ta(e.parentNode) || t(e.parentNode, n) }, ta = function (t) { return !(t && t !== es && 9 !== t.nodeType && t !== ts.body && t !== Jo && t.nodeType && t.parentNode) }, ea = function (t, e) { var n = "x" === e ? "Width" : "Height", r = "scroll" + n, i = "client" + n; return Math.max(0, ta(t) ? Math.max(es[r], ns[r]) - (Jo["inner" + n] || es[i] || ns[i]) : t[r] - t[i]) }, na = function t(e, n) { var r = ea(e, "x"), i = ea(e, "y"); ta(e) ? e = Ys : t(e.parentNode, n), e._gsMaxScrollX = r, e._gsMaxScrollY = i, n || (e._gsScrollX = e.scrollLeft || 0, e._gsScrollY = e.scrollTop || 0) }, ra = function (t, e, n) { var r = t.style; r && (Cs(r[e]) && (e = ss(e, t) || e), null == n ? r.removeProperty && r.removeProperty(e.replace(/([A-Z])/g, "-$1").toLowerCase()) : r[e] = n) }, ia = function (t) { return Jo.getComputedStyle(t instanceof Element ? t : t.host || (t.parentNode || {}).host || t) }, oa = {}, sa = function (t) { if (t === Jo) return oa.left = oa.top = 0, oa.width = oa.right = es.clientWidth || t.innerWidth || ns.clientWidth || 0, oa.height = oa.bottom = (t.innerHeight || 0) - 20 < es.clientHeight ? es.clientHeight : t.innerHeight || ns.clientHeight || 0, oa; var e = t.ownerDocument || ts, n = Cs(t.pageX) ? t.nodeType || Cs(t.left) || Cs(t.top) ? as(t)[0].getBoundingClientRect() : t : { left: t.pageX - Zs(e), top: t.pageY - Qs(e), right: t.pageX - Zs(e) + 1, bottom: t.pageY - Qs(e) + 1 }; return Cs(n.right) && !Cs(n.width) ? (n.right = n.left + n.width, n.bottom = n.top + n.height) : Cs(n.width) && (n = { width: n.right - n.left, height: n.bottom - n.top, right: n.right, left: n.left, bottom: n.bottom, top: n.top }), n }, aa = function (t, e, n) { var r, i = t.vars, o = i[n], s = t._listeners[e]; return xs(o) && (r = o.apply(i.callbackScope || t, i[n + "Params"] || [t.pointerEvent])), s && !1 === t.dispatchEvent(e) && (r = !1), r }, ua = function (t, e) { var n, r, i, o = as(t)[0]; return o.nodeType || o === Jo ? ha(o, e) : Cs(t.left) ? { left: r = t.min || t.minX || t.minRotation || 0, top: n = t.min || t.minY || 0, width: (t.max || t.maxX || t.maxRotation || 0) - r, height: (t.max || t.maxY || 0) - n } : (i = {x: 0, y: 0}, {left: t.left - i.x, top: t.top - i.y, width: t.width, height: t.height}) }, la = {}, ha = function (t, e) { e = as(e)[0]; var n, r, i, o, s, a, u, l, h, c, f, p, d, g, D = t.getBBox && t.ownerSVGElement, m = t.ownerDocument || ts; if (t === Jo) i = Qs(m), r = (n = Zs(m)) + (m.documentElement.clientWidth || t.innerWidth || m.body.clientWidth || 0), o = i + ((t.innerHeight || 0) - 20 < m.documentElement.clientHeight ? m.documentElement.clientHeight : t.innerHeight || m.body.clientHeight || 0); else { if (e === Jo || Cs(e)) return t.getBoundingClientRect(); n = i = 0, D ? (f = (c = t.getBBox()).width, p = c.height) : (t.viewBox && (c = t.viewBox.baseVal) && (n = c.x || 0, i = c.y || 0, f = c.width, p = c.height), f || (c = "border-box" === (d = ia(t)).boxSizing, f = (parseFloat(d.width) || t.clientWidth || 0) + (c ? 0 : parseFloat(d.borderLeftWidth) + parseFloat(d.borderRightWidth)), p = (parseFloat(d.height) || t.clientHeight || 0) + (c ? 0 : parseFloat(d.borderTopWidth) + parseFloat(d.borderBottomWidth)))), r = f, o = p } return t === e ? { left: n, top: i, width: r - n, height: o - i } : (a = (s = Do(e, !0).multiply(Do(t))).apply({x: n, y: i}), u = s.apply({x: r, y: i}), l = s.apply({ x: r, y: o }), h = s.apply({ x: n, y: o }), n = Math.min(a.x, u.x, l.x, h.x), i = Math.min(a.y, u.y, l.y, h.y), { left: n + ((g = e.parentNode || {}).scrollLeft || 0), top: i + (g.scrollTop || 0), width: Math.max(a.x, u.x, l.x, h.x) - n, height: Math.max(a.y, u.y, l.y, h.y) - i }) }, ca = function (t, e, n, r, i, o) { var s, a, u, l = {}; if (e) if (1 !== i && e instanceof Array) { if (l.end = s = [], u = e.length, ws(e[0])) for (a = 0; a < u; a++) s[a] = Is(e[a], i); else for (a = 0; a < u; a++) s[a] = e[a] * i; n += 1.1, r -= 1.1 } else xs(e) ? l.end = function (n) { var r, o, s = e.call(t, n); if (1 !== i) if (ws(s)) { for (o in r = {}, s) r[o] = s[o] * i; s = r } else s *= i; return s } : l.end = e; return (n || 0 === n) && (l.max = n), (r || 0 === r) && (l.min = r), o && (l.velocity = 0), l }, fa = function t(e) { var n; return !(!e || !e.getAttribute || e === ns) && (!("true" !== (n = e.getAttribute("data-clickable")) && ("false" === n || !e.onclick && !Ns.test(e.nodeName + "") && "true" !== e.getAttribute("contentEditable"))) || t(e.parentNode)) }, pa = function (t, e) { for (var n, r = t.length; r--;) (n = t[r]).ondragstart = n.onselectstart = e ? null : Fs, $o.set(n, { lazy: !0, userSelect: e ? "text" : "none" }) }, da = function (t, e) { t = $o.utils.toArray(t)[0], e = e || {}; var n, r, i, o, s, a, u = document.createElement("div"), l = u.style, h = t.firstChild, c = 0, f = 0, p = t.scrollTop, d = t.scrollLeft, g = t.scrollWidth, D = t.scrollHeight, m = 0, v = 0, _ = 0; ms && !1 !== e.force3D ? (s = "translate3d(", a = "px,0px)") : Es && (s = "translate(", a = "px)"), this.scrollTop = function (t, e) { if (!arguments.length) return -this.top(); this.top(-t, e) }, this.scrollLeft = function (t, e) { if (!arguments.length) return -this.left(); this.left(-t, e) }, this.left = function (n, r) { if (!arguments.length) return -(t.scrollLeft + f); var i = t.scrollLeft - d, o = f; if ((i > 2 || i < -2) && !r) return d = t.scrollLeft, $o.killTweensOf(this, { left: 1, scrollLeft: 1 }), this.left(-d), void (e.onKill && e.onKill()); (n = -n) < 0 ? (f = n - .5 | 0, n = 0) : n > v ? (f = n - v | 0, n = v) : f = 0, (f || o) && (this._skip || (l[Es] = s + -f + "px," + -c + a), f + m >= 0 && (l.paddingRight = f + m + "px")), t.scrollLeft = 0 | n, d = t.scrollLeft }, this.top = function (n, r) { if (!arguments.length) return -(t.scrollTop + c); var i = t.scrollTop - p, o = c; if ((i > 2 || i < -2) && !r) return p = t.scrollTop, $o.killTweensOf(this, { top: 1, scrollTop: 1 }), this.top(-p), void (e.onKill && e.onKill()); (n = -n) < 0 ? (c = n - .5 | 0, n = 0) : n > _ ? (c = n - _ | 0, n = _) : c = 0, (c || o) && (this._skip || (l[Es] = s + -f + "px," + -c + a)), t.scrollTop = 0 | n, p = t.scrollTop }, this.maxScrollTop = function () { return _ }, this.maxScrollLeft = function () { return v }, this.disable = function () { for (h = u.firstChild; h;) o = h.nextSibling, t.appendChild(h), h = o; t === u.parentNode && t.removeChild(u) }, this.enable = function () { if ((h = t.firstChild) !== u) { for (; h;) o = h.nextSibling, u.appendChild(h), h = o; t.appendChild(u), this.calibrate() } }, this.calibrate = function (e) { var o, s, a, h = t.clientWidth === n; p = t.scrollTop, d = t.scrollLeft, h && t.clientHeight === r && u.offsetHeight === i && g === t.scrollWidth && D === t.scrollHeight && !e || ((c || f) && (s = this.left(), a = this.top(), this.left(-t.scrollLeft), this.top(-t.scrollTop)), o = ia(t), h && !e || (l.display = "block", l.width = "auto", l.paddingRight = "0px", (m = Math.max(0, t.scrollWidth - t.clientWidth)) && (m += parseFloat(o.paddingLeft) + (vs ? parseFloat(o.paddingRight) : 0))), l.display = "inline-block", l.position = "relative", l.overflow = "visible", l.verticalAlign = "top", l.boxSizing = "content-box", l.width = "100%", l.paddingRight = m + "px", vs && (l.paddingBottom = o.paddingBottom), n = t.clientWidth, r = t.clientHeight, g = t.scrollWidth, D = t.scrollHeight, v = t.scrollWidth - n, _ = t.scrollHeight - r, i = u.offsetHeight, l.display = "block", (s || a) && (this.left(s), this.top(a))) }, this.content = u, this.element = t, this._skip = !1, this.enable() }, ga = function (t) { if (_s() && document.body) { var e = window && window.navigator; Jo = window, ts = document, es = ts.documentElement, ns = ts.body, rs = As("div"), Ds = !!window.PointerEvent, (is = As("div")).style.cssText = "visibility:hidden;height:1px;top:-1px;pointer-events:none;position:relative;clear:both;cursor:grab", gs = "grab" === is.style.cursor ? "grab" : "move", ps = e && -1 !== e.userAgent.toLowerCase().indexOf("android"), ls = "ontouchstart" in es && "orientation" in Jo || e && (e.MaxTouchPoints > 0 || e.msMaxTouchPoints > 0), r = As("div"), i = As("div"), o = i.style, s = ns, o.display = "inline-block", o.position = "relative", r.style.cssText = i.innerHTML = "width:90px;height:40px;padding:10px;overflow:auto;visibility:hidden", r.appendChild(i), s.appendChild(r), n = i.offsetHeight + 18 > r.scrollHeight, s.removeChild(r), vs = n, hs = function (t) { for (var e = t.split(","), n = (("onpointerdown" in rs ? "pointerdown,pointermove,pointerup,pointercancel" : "onmspointerdown" in rs ? "MSPointerDown,MSPointerMove,MSPointerUp,MSPointerCancel" : t).split(",")), r = {}, i = 4; --i > -1;) r[e[i]] = n[i], r[n[i]] = e[i]; try { es.addEventListener("test", null, Object.defineProperty({}, "passive", { get: function () { us = 1 } })) } catch (t) { } return r }("touchstart,touchmove,touchend,touchcancel"), js(ts, "touchcancel", Fs), js(Jo, "touchmove", Fs), ns && ns.addEventListener("touchstart", Fs), js(ts, "contextmenu", (function () { for (var t in Bs) Bs[t].isPressed && Bs[t].endDrag() })), $o = os = ys() } var n, r, i, o, s; $o ? (ds = $o.plugins.inertia, ss = $o.utils.checkPrefix, Es = ss(Es), bs = ss(bs), as = $o.utils.toArray, ms = !!ss("perspective")) : t && console.warn("Please gsap.registerPlugin(Draggable)") }, Da = function (t) { var e, n; function r(e, n) { var i; i = t.call(this) || this, os || ga(1), e = as(e)[0], ds || (ds = $o.plugins.inertia), i.vars = n = Is(n || {}), i.target = e, i.x = i.y = i.rotation = 0, i.dragResistance = parseFloat(n.dragResistance) || 0, i.edgeResistance = isNaN(n.edgeResistance) ? 1 : parseFloat(n.edgeResistance) || 0, i.lockAxis = n.lockAxis, i.autoScroll = n.autoScroll || 0, i.lockedAxis = null, i.allowEventDefault = !!n.allowEventDefault, $o.getProperty(e, "x"); var o, s, a, u, l, h, c, f, p, d, g, D, m, v, _, y, x, w, C, F, E, b, T, M, A, P, S, O, k, B, L, N, R = (n.type || "x,y").toLowerCase(), X = ~R.indexOf("x") || ~R.indexOf("y"), Y = -1 !== R.indexOf("rotation"), I = Y ? "rotation" : X ? "x" : "left", z = X ? "y" : "top", H = !(!~R.indexOf("x") && !~R.indexOf("left") && "scroll" !== R), W = !(!~R.indexOf("y") && !~R.indexOf("top") && "scroll" !== R), V = n.minimumMovement || 2, j = function (t) { if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t }(i), U = as(n.trigger || n.handle || e), q = {}, G = 0, K = !1, Q = n.autoScrollMarginTop || 40, Z = n.autoScrollMarginRight || 40, $ = n.autoScrollMarginBottom || 40, J = n.autoScrollMarginLeft || 40, tt = n.clickableTest || fa, et = 0, nt = e._gsap || $o.core.getCache(e), rt = function t(e) { return "fixed" === ia(e).position || ((e = e.parentNode) && 1 === e.nodeType ? t(e) : void 0) }(e), it = function (t, n) { return parseFloat(nt.get(e, t, n)) }, ot = e.ownerDocument || ts, st = function (t) { return qs(t), t.stopImmediatePropagation && t.stopImmediatePropagation(), !1 }, at = function t(n) { if (j.autoScroll && j.isDragging && (K || x)) { var r, i, o, a, u, l, h, c, p = e, d = 15 * j.autoScroll; for (K = !1, Ys.scrollTop = null != Jo.pageYOffset ? Jo.pageYOffset : null != ot.documentElement.scrollTop ? ot.documentElement.scrollTop : ot.body.scrollTop, Ys.scrollLeft = null != Jo.pageXOffset ? Jo.pageXOffset : null != ot.documentElement.scrollLeft ? ot.documentElement.scrollLeft : ot.body.scrollLeft, a = j.pointerX - Ys.scrollLeft, u = j.pointerY - Ys.scrollTop; p && !i;) r = (i = ta(p.parentNode)) ? Ys : p.parentNode, o = i ? { bottom: Math.max(es.clientHeight, Jo.innerHeight || 0), right: Math.max(es.clientWidth, Jo.innerWidth || 0), left: 0, top: 0 } : r.getBoundingClientRect(), l = h = 0, W && ((c = r._gsMaxScrollY - r.scrollTop) < 0 ? h = c : u > o.bottom - $ && c ? (K = !0, h = Math.min(c, d * (1 - Math.max(0, o.bottom - u) / $) | 0)) : u < o.top + Q && r.scrollTop && (K = !0, h = -Math.min(r.scrollTop, d * (1 - Math.max(0, u - o.top) / Q) | 0)), h && (r.scrollTop += h)), H && ((c = r._gsMaxScrollX - r.scrollLeft) < 0 ? l = c : a > o.right - Z && c ? (K = !0, l = Math.min(c, d * (1 - Math.max(0, o.right - a) / Z) | 0)) : a < o.left + J && r.scrollLeft && (K = !0, l = -Math.min(r.scrollLeft, d * (1 - Math.max(0, a - o.left) / J) | 0)), l && (r.scrollLeft += l)), i && (l || h) && (Jo.scrollTo(r.scrollLeft, r.scrollTop), yt(j.pointerX + l, j.pointerY + h)), p = r } if (x) { var g = j.x, D = j.y; Y ? (j.deltaX = g - parseFloat(nt.rotation), j.rotation = g, nt.rotation = g + "deg", nt.renderTransform(1, nt)) : s ? (W && (j.deltaY = D - s.top(), s.top(D)), H && (j.deltaX = g - s.left(), s.left(g))) : X ? (W && (j.deltaY = D - parseFloat(nt.y), nt.y = D + "px"), H && (j.deltaX = g - parseFloat(nt.x), nt.x = g + "px"), nt.renderTransform(1, nt)) : (W && (j.deltaY = D - parseFloat(e.style.top || 0), e.style.top = D + "px"), H && (j.deltaX = g - parseFloat(e.style.left || 0), e.style.left = g + "px")), !f || n || O || (O = !0, !1 === aa(j, "drag", "onDrag") && (H && (j.x -= j.deltaX), W && (j.y -= j.deltaY), t(!0)), O = !1) } x = !1 }, ut = function (t, n) { var r, i, o = j.x, a = j.y; e._gsap || (nt = $o.core.getCache(e)), nt.uncache && $o.getProperty(e, "x"), X ? (j.x = parseFloat(nt.x), j.y = parseFloat(nt.y)) : Y ? j.x = j.rotation = parseFloat(nt.rotation) : s ? (j.y = s.top(), j.x = s.left()) : (j.y = parseFloat(e.style.top || (i = ia(e)) && i.top) || 0, j.x = parseFloat(e.style.left || (i || {}).left) || 0), (C || F || E) && !n && (j.isDragging || j.isThrowing) && (E && (Xs.x = j.x, Xs.y = j.y, (r = E(Xs)).x !== j.x && (j.x = r.x, x = !0), r.y !== j.y && (j.y = r.y, x = !0)), C && (r = C(j.x)) !== j.x && (j.x = r, Y && (j.rotation = r), x = !0), F && ((r = F(j.y)) !== j.y && (j.y = r), x = !0)), x && at(!0), t || (j.deltaX = j.x - o, j.deltaY = j.y - a, aa(j, "throwupdate", "onThrowUpdate")) }, lt = function (t, e, n, r) { return null == e && (e = -1e20), null == n && (n = 1e20), xs(t) ? function (i) { var o = j.isPressed ? 1 - j.edgeResistance : 1; return t.call(j, i > n ? n + (i - n) * o : i < e ? e + (i - e) * o : i) * r } : Ms(t) ? function (r) { for (var i, o, s = t.length, a = 0, u = 1e20; --s > -1;) (o = (i = t[s]) - r) < 0 && (o = -o), o < u && i >= e && i <= n && (a = s, u = o); return t[a] } : isNaN(t) ? function (t) { return t } : function () { return t * r } }, ht = function () { var t, r, i, o; c = !1, s ? (s.calibrate(), j.minX = g = -s.maxScrollLeft(), j.minY = m = -s.maxScrollTop(), j.maxX = d = j.maxY = D = 0, c = !0) : n.bounds && (t = ua(n.bounds, e.parentNode), Y ? (j.minX = g = t.left, j.maxX = d = t.left + t.width, j.minY = m = j.maxY = D = 0) : Cs(n.bounds.maxX) && Cs(n.bounds.maxY) ? (r = ua(e, e.parentNode), j.minX = g = Math.round(it(I, "px") + t.left - r.left), j.minY = m = Math.round(it(z, "px") + t.top - r.top), j.maxX = d = Math.round(g + (t.width - r.width)), j.maxY = D = Math.round(m + (t.height - r.height))) : (t = n.bounds, j.minX = g = t.minX, j.minY = m = t.minY, j.maxX = d = t.maxX, j.maxY = D = t.maxY), g > d && (j.minX = d, j.maxX = d = g, g = j.minX), m > D && (j.minY = D, j.maxY = D = m, m = j.minY), Y && (j.minRotation = g, j.maxRotation = d), c = !0), n.liveSnap && (i = !0 === n.liveSnap ? n.snap || {} : n.liveSnap, o = Ms(i) || xs(i), Y ? (C = lt(o ? i : i.rotation, g, d, 1), F = null) : i.points ? E = function (t, e, n, r, i, o, s) { return o = o && o < 1e20 ? o * o : 1e20, xs(t) ? function (a) { var u, l, h, c = j.isPressed ? 1 - j.edgeResistance : 1, f = a.x, p = a.y; return a.x = f = f > n ? n + (f - n) * c : f < e ? e + (f - e) * c : f, a.y = p = p > i ? i + (p - i) * c : p < r ? r + (p - r) * c : p, (u = t.call(j, a)) !== a && (a.x = u.x, a.y = u.y), 1 !== s && (a.x *= s, a.y *= s), o < 1e20 && (l = a.x - f) * l + (h = a.y - p) * h > o && (a.x = f, a.y = p), a } : Ms(t) ? function (e) { for (var n, r, i, s, a = t.length, u = 0, l = 1e20; --a > -1;) (s = (n = (i = t[a]).x - e.x) * n + (r = i.y - e.y) * r) < l && (u = a, l = s); return l <= o ? t[u] : e } : function (t) { return t } }(o ? i : i.points, g, d, m, D, i.radius, s ? -1 : 1) : (H && (C = lt(o ? i : i.x || i.left || i.scrollLeft, g, d, s ? -1 : 1)), W && (F = lt(o ? i : i.y || i.top || i.scrollTop, m, D, s ? -1 : 1)))) }, ct = function () { j.isThrowing = !1, aa(j, "throwcomplete", "onThrowComplete") }, ft = function () { j.isThrowing = !1 }, pt = function (t, r) { var i, o, a, u; t && ds ? (!0 === t && (i = n.snap || n.liveSnap || {}, o = Ms(i) || xs(i), t = {resistance: (n.throwResistance || n.resistance || 1e3) / (Y ? 10 : 1)}, Y ? t.rotation = ca(j, o ? i : i.rotation, d, g, 1, r) : (H && (t[I] = ca(j, o ? i : i.points || i.x || i.left, d, g, s ? -1 : 1, r || "x" === j.lockedAxis)), W && (t[z] = ca(j, o ? i : i.points || i.y || i.top, D, m, s ? -1 : 1, r || "y" === j.lockedAxis)), (i.points || Ms(i) && ws(i[0])) && (t.linkedProps = I + "," + z, t.radius = i.radius))), j.isThrowing = !0, u = isNaN(n.overshootTolerance) ? 1 === n.edgeResistance ? 0 : 1 - j.edgeResistance + .2 : n.overshootTolerance, t.duration || (t.duration = { max: Math.max(n.minDuration || 0, "maxDuration" in n ? n.maxDuration : 2), min: isNaN(n.minDuration) ? 0 === u || ws(t) && t.resistance > 1e3 ? 0 : .5 : n.minDuration, overshoot: u }), j.tween = a = $o.to(s || e, { inertia: t, data: "_draggable", onComplete: ct, onInterrupt: ft, onUpdate: n.fastMode ? aa : ut, onUpdateParams: n.fastMode ? [j, "onthrowupdate", "onThrowUpdate"] : i && i.radius ? [!1, !0] : [] }), n.fastMode || (s && (s._skip = !0), a.render(1e9, !0, !0), ut(!0, !0), j.endX = j.x, j.endY = j.y, Y && (j.endRotation = j.x), a.play(0), ut(!0, !0), s && (s._skip = !1))) : c && j.applyBounds() }, dt = function (t) { var n, r = M; M = Do(e.parentNode, !0), t && j.isPressed && !M.equals(r || new go) && (n = r.inverse().apply({ x: a, y: u }), M.apply(n, n), a = n.x, u = n.y), M.equals(Ss) && (M = null) }, gt = function () { var t, n, r, i = 1 - j.edgeResistance, o = rt ? Zs(ot) : 0, f = rt ? Qs(ot) : 0; dt(!1), la.x = j.pointerX - o, la.y = j.pointerY - f, M && M.apply(la, la), a = la.x, u = la.y, x && (yt(j.pointerX, j.pointerY), at(!0)), N = Do(e), s ? (ht(), h = s.top(), l = s.left()) : (Dt() ? (ut(!0, !0), ht()) : j.applyBounds(), Y ? (t = e.ownerSVGElement ? [nt.xOrigin - e.getBBox().x, nt.yOrigin - e.getBBox().y] : (ia(e)[bs] || "0 0").split(" "), y = j.rotationOrigin = Do(e).apply({ x: parseFloat(t[0]) || 0, y: parseFloat(t[1]) || 0 }), ut(!0, !0), n = j.pointerX - y.x - o, r = y.y - j.pointerY + f, l = j.x, h = j.y = Math.atan2(r, n) * Ps) : (h = it(z, "px"), l = it(I, "px"))), c && i && (l > d ? l = d + (l - d) / i : l < g && (l = g - (g - l) / i), Y || (h > D ? h = D + (h - D) / i : h < m && (h = m - (m - h) / i))), j.startX = l = Ts(l), j.startY = h = Ts(h) }, Dt = function () { return j.tween && j.tween.isActive() }, mt = function () { !is.parentNode || Dt() || j.isDragging || is.parentNode.removeChild(is) }, vt = function (t, i) { var l; if (!o || j.isPressed || !t || !("mousedown" !== t.type && "pointerdown" !== t.type || i) && Os() - et < 30 && hs[j.pointerEvent.type]) L && t && o && qs(t); else { if (A = Dt(), j.pointerEvent = t, hs[t.type] ? (T = ~t.type.indexOf("touch") ? t.currentTarget || t.target : ot, js(T, "touchend", xt), js(T, "touchmove", _t), js(T, "touchcancel", xt), js(ot, "touchstart", Ks)) : (T = null, js(ot, "mousemove", _t)), S = null, Ds && T || (js(ot, "mouseup", xt), t && t.target && js(t.target, "mouseup", xt)), b = tt.call(j, t.target) && !1 === n.dragClickables && !i) return js(t.target, "change", xt), aa(j, "pressInit", "onPressInit"), aa(j, "press", "onPress"), pa(U, !0), void (L = !1); var h; if (P = !(!T || H === W || !1 === j.vars.allowNativeTouchScrolling || j.vars.allowContextMenu && t && (t.ctrlKey || t.which > 2)) && (H ? "y" : "x"), (L = !P && !j.allowEventDefault) && (qs(t), js(Jo, "touchforcechange", qs)), t.changedTouches ? (t = v = t.changedTouches[0], _ = t.identifier) : t.pointerId ? _ = t.pointerId : v = _ = null, cs++, h = at, ks.push(h), 1 === ks.length && $o.ticker.add(Hs), u = j.pointerY = t.pageY, a = j.pointerX = t.pageX, aa(j, "pressInit", "onPressInit"), (P || j.autoScroll) && na(e.parentNode), !e.parentNode || !j.autoScroll || s || Y || !e.parentNode._gsMaxScrollX || is.parentNode || e.getBBox || (is.style.width = e.parentNode.scrollWidth + "px", e.parentNode.appendChild(is)), gt(), j.tween && j.tween.kill(), j.isThrowing = !1, $o.killTweensOf(s || e, q, !0), s && $o.killTweensOf(e, {scrollTo: 1}, !0), j.tween = j.lockedAxis = null, (n.zIndexBoost || !Y && !s && !1 !== n.zIndexBoost) && (e.style.zIndex = r.zIndex++), j.isPressed = !0, f = !(!n.onDrag && !j._listeners.drag), p = !(!n.onMove && !j._listeners.move), !1 !== n.cursor || n.activeCursor) for (l = U.length; --l > -1;) $o.set(U[l], {cursor: n.activeCursor || n.cursor || ("grab" === gs ? "grabbing" : gs)}); aa(j, "press", "onPress") } }, _t = function (t) { var n, r, i, s, l, h, c = t; if (o && !fs && j.isPressed && t) { if (j.pointerEvent = t, n = t.changedTouches) { if ((t = n[0]) !== v && t.identifier !== _) { for (s = n.length; --s > -1 && (t = n[s]).identifier !== _ && t.target !== e;) ; if (s < 0) return } } else if (t.pointerId && _ && t.pointerId !== _) return; T && P && !S && (la.x = t.pageX - (rt ? Zs(ot) : 0), la.y = t.pageY - (rt ? Qs(ot) : 0), M && M.apply(la, la), r = la.x, i = la.y, ((l = Math.abs(r - a)) !== (h = Math.abs(i - u)) && (l > V || h > V) || ps && P === S) && (S = l > h && H ? "x" : "y", P && S !== P && js(Jo, "touchforcechange", qs), !1 !== j.vars.lockAxisOnTouchScroll && H && W && (j.lockedAxis = "x" === S ? "y" : "x", xs(j.vars.onLockAxis) && j.vars.onLockAxis.call(j, c)), ps && P === S)) ? xt(c) : (j.allowEventDefault || P && (!S || P === S) || !1 === c.cancelable ? L && (L = !1) : (qs(c), L = !0), j.autoScroll && (K = !0), yt(t.pageX, t.pageY, p)) } else L && t && o && qs(t) }, yt = function (t, e, n) { var r, i, o, s, f, p, v = 1 - j.dragResistance, _ = 1 - j.edgeResistance, w = j.pointerX, b = j.pointerY, T = h, A = j.x, P = j.y, S = j.endX, O = j.endY, k = j.endRotation, B = x; j.pointerX = t, j.pointerY = e, rt && (t -= Zs(ot), e -= Qs(ot)), Y ? (s = Math.atan2(y.y - e, t - y.x) * Ps, (f = j.y - s) > 180 ? (h -= 360, j.y = s) : f < -180 && (h += 360, j.y = s), j.x !== l || Math.abs(h - s) > V ? (j.y = s, o = l + (h - s) * v) : o = l) : (M && (p = t * M.a + e * M.c + M.e, e = t * M.b + e * M.d + M.f, t = p), (i = e - u) < V && i > -V && (i = 0), (r = t - a) < V && r > -V && (r = 0), (j.lockAxis || j.lockedAxis) && (r || i) && ((p = j.lockedAxis) || (j.lockedAxis = p = H && Math.abs(r) > Math.abs(i) ? "y" : W ? "x" : null, p && xs(j.vars.onLockAxis) && j.vars.onLockAxis.call(j, j.pointerEvent)), "y" === p ? i = 0 : "x" === p && (r = 0)), o = Ts(l + r * v), s = Ts(h + i * v)), (C || F || E) && (j.x !== o || j.y !== s && !Y) && (E && (Xs.x = o, Xs.y = s, p = E(Xs), o = Ts(p.x), s = Ts(p.y)), C && (o = Ts(C(o))), F && (s = Ts(F(s)))), c && (o > d ? o = d + Math.round((o - d) * _) : o < g && (o = g + Math.round((o - g) * _)), Y || (s > D ? s = Math.round(D + (s - D) * _) : s < m && (s = Math.round(m + (s - m) * _)))), (j.x !== o || j.y !== s && !Y) && (Y ? (j.endRotation = j.x = j.endX = o, x = !0) : (W && (j.y = j.endY = s, x = !0), H && (j.x = j.endX = o, x = !0)), n && !1 === aa(j, "move", "onMove") ? (j.pointerX = w, j.pointerY = b, h = T, j.x = A, j.y = P, j.endX = S, j.endY = O, j.endRotation = k, x = B) : !j.isDragging && j.isPressed && (j.isDragging = !0, aa(j, "dragstart", "onDragStart"))) }, xt = function t(r, i) { if (o && j.isPressed && (!r || null == _ || i || !(r.pointerId && r.pointerId !== _ && r.target !== e || r.changedTouches && !function (t, e) { for (var n = t.length; n--;) if (t[n].identifier === e) return !0 }(r.changedTouches, _)))) { j.isPressed = !1; var s, a, u, l, h, c = r, f = j.isDragging, p = j.vars.allowContextMenu && r && (r.ctrlKey || r.which > 2), d = $o.delayedCall(.001, mt); if (T ? (Us(T, "touchend", t), Us(T, "touchmove", _t), Us(T, "touchcancel", t), Us(ot, "touchstart", Ks)) : Us(ot, "mousemove", _t), Us(Jo, "touchforcechange", qs), Ds && T || (Us(ot, "mouseup", t), r && r.target && Us(r.target, "mouseup", t)), x = !1, f && (G = Rs = Os(), j.isDragging = !1), b && !p) return r && (Us(r.target, "change", t), j.pointerEvent = c), pa(U, !1), aa(j, "release", "onRelease"), aa(j, "click", "onClick"), void (b = !1); for (Vs(at), a = U.length; --a > -1;) ra(U[a], "cursor", n.cursor || (!1 !== n.cursor ? gs : null)); if (cs--, r) { if ((s = r.changedTouches) && (r = s[0]) !== v && r.identifier !== _) { for (a = s.length; --a > -1 && (r = s[a]).identifier !== _ && r.target !== e;) ; if (a < 0) return } j.pointerEvent = c, j.pointerX = r.pageX, j.pointerY = r.pageY } return p && c ? (qs(c), L = !0, aa(j, "release", "onRelease")) : c && !f ? (L = !1, A && (n.snap || n.bounds) && pt(n.inertia || n.throwProps), aa(j, "release", "onRelease"), ps && "touchmove" === c.type || -1 !== c.type.indexOf("cancel") || (aa(j, "click", "onClick"), Os() - et < 300 && aa(j, "doubleclick", "onDoubleClick"), l = c.target || e, et = Os(), h = function () { et === k || !j.enabled() || j.isPressed || c.defaultPrevented || (l.click ? l.click() : ot.createEvent && ((u = ot.createEvent("MouseEvents")).initMouseEvent("click", !0, !0, Jo, 1, j.pointerEvent.screenX, j.pointerEvent.screenY, j.pointerX, j.pointerY, !1, !1, !1, !1, 0, null), l.dispatchEvent(u))) }, ps || c.defaultPrevented || $o.delayedCall(.05, h))) : (pt(n.inertia || n.throwProps), j.allowEventDefault || !c || !1 === n.dragClickables && tt.call(j, c.target) || !f || P && (!S || P !== S) || !1 === c.cancelable ? L = !1 : (L = !0, qs(c)), aa(j, "release", "onRelease")), Dt() && d.duration(j.tween.duration()), f && aa(j, "dragend", "onDragEnd"), !0 } L && r && o && qs(r) }, wt = function (t) { if (t && j.isDragging && !s) { var n = t.target || e.parentNode, r = n.scrollLeft - n._gsScrollX, i = n.scrollTop - n._gsScrollY; (r || i) && (M ? (a -= r * M.a + i * M.c, u -= i * M.d + r * M.b) : (a -= r, u -= i), n._gsScrollX += r, n._gsScrollY += i, yt(j.pointerX, j.pointerY)) } }, Ct = function (t) { var e = Os(), n = e - et < 100, r = e - G < 50, i = n && k === et, o = j.pointerEvent && j.pointerEvent.defaultPrevented, s = n && B === et, a = t.isTrusted || null == t.isTrusted && n && i; if ((i || r && !1 !== j.vars.suppressClickOnDrag) && t.stopImmediatePropagation && t.stopImmediatePropagation(), n && (!j.pointerEvent || !j.pointerEvent.defaultPrevented) && (!i || a && !s)) return a && i && (B = et), void (k = et); (j.isPressed || r || n) && (a && t.detail && n && !o || qs(t)), n || r || (t && t.target && (j.pointerEvent = t), aa(j, "click", "onClick")) }, Ft = function (t) { return M ? {x: t.x * M.a + t.y * M.c + M.e, y: t.x * M.b + t.y * M.d + M.f} : {x: t.x, y: t.y} }; return (w = r.get(e)) && w.kill(), i.startDrag = function (t, n) { var r, i, o, s; vt(t || j.pointerEvent, !0), n && !j.hitTest(t || j.pointerEvent) && (r = sa(t || j.pointerEvent), i = sa(e), o = Ft({ x: r.left + r.width / 2, y: r.top + r.height / 2 }), s = Ft({ x: i.left + i.width / 2, y: i.top + i.height / 2 }), a -= o.x - s.x, u -= o.y - s.y), j.isDragging || (j.isDragging = !0, aa(j, "dragstart", "onDragStart")) }, i.drag = _t, i.endDrag = function (t) { return xt(t || j.pointerEvent, !0) }, i.timeSinceDrag = function () { return j.isDragging ? 0 : (Os() - G) / 1e3 }, i.timeSinceClick = function () { return (Os() - et) / 1e3 }, i.hitTest = function (t, e) { return r.hitTest(j.target, t, e) }, i.getDirection = function (t, n) { var r, i, o, s, a, u, c = "velocity" === t && ds ? t : ws(t) && !Y ? "element" : "start"; return "element" === c && (a = sa(j.target), u = sa(t)), r = "start" === c ? j.x - l : "velocity" === c ? ds.getVelocity(e, I) : a.left + a.width / 2 - (u.left + u.width / 2), Y ? r < 0 ? "counter-clockwise" : "clockwise" : (n = n || 2, i = "start" === c ? j.y - h : "velocity" === c ? ds.getVelocity(e, z) : a.top + a.height / 2 - (u.top + u.height / 2), s = (o = Math.abs(r / i)) < 1 / n ? "" : r < 0 ? "left" : "right", o < n && ("" !== s && (s += "-"), s += i < 0 ? "up" : "down"), s) }, i.applyBounds = function (t, r) { var i, o, s, a, u, l; if (t && n.bounds !== t) return n.bounds = t, j.update(!0, r); if (ut(!0), ht(), c && !Dt()) { if (i = j.x, o = j.y, i > d ? i = d : i < g && (i = g), o > D ? o = D : o < m && (o = m), (j.x !== i || j.y !== o) && (s = !0, j.x = j.endX = i, Y ? j.endRotation = i : j.y = j.endY = o, x = !0, at(!0), j.autoScroll && !j.isDragging)) for (na(e.parentNode), a = e, Ys.scrollTop = null != Jo.pageYOffset ? Jo.pageYOffset : null != ot.documentElement.scrollTop ? ot.documentElement.scrollTop : ot.body.scrollTop, Ys.scrollLeft = null != Jo.pageXOffset ? Jo.pageXOffset : null != ot.documentElement.scrollLeft ? ot.documentElement.scrollLeft : ot.body.scrollLeft; a && !l;) u = (l = ta(a.parentNode)) ? Ys : a.parentNode, W && u.scrollTop > u._gsMaxScrollY && (u.scrollTop = u._gsMaxScrollY), H && u.scrollLeft > u._gsMaxScrollX && (u.scrollLeft = u._gsMaxScrollX), a = u; j.isThrowing && (s || j.endX > d || j.endX < g || j.endY > D || j.endY < m) && pt(n.inertia || n.throwProps, s) } return j }, i.update = function (t, n, r) { if (n && j.isPressed) { var i = Do(e), o = N.apply({x: j.x - l, y: j.y - h}), s = Do(e.parentNode, !0); s.apply({x: i.e - o.x, y: i.f - o.y}, o), j.x -= o.x - s.e, j.y -= o.y - s.f, at(!0), gt() } var a = j.x, u = j.y; return dt(!n), t ? j.applyBounds() : (x && r && at(!0), ut(!0)), n && (yt(j.pointerX, j.pointerY), x && at(!0)), j.isPressed && !n && (H && Math.abs(a - j.x) > .01 || W && Math.abs(u - j.y) > .01 && !Y) && gt(), j.autoScroll && (na(e.parentNode, j.isDragging), K = j.isDragging, at(!0), Js(e, wt), $s(e, wt)), j }, i.enable = function (t) { var r, i, a, u = {lazy: !0}; if (!1 !== n.cursor && (u.cursor = n.cursor || gs), $o.utils.checkPrefix("touchCallout") && (u.touchCallout = "none"), "soft" !== t) { for (zs(U, H === W ? "none" : n.allowNativeTouchScrolling && e.scrollHeight === e.clientHeight == (e.scrollWidth === e.clientHeight) || n.allowEventDefault ? "manipulation" : H ? "pan-y" : "pan-x"), i = U.length; --i > -1;) a = U[i], Ds || js(a, "mousedown", vt), js(a, "touchstart", vt), js(a, "click", Ct, !0), $o.set(a, u), a.getBBox && a.ownerSVGElement && $o.set(a.ownerSVGElement, {touchAction: H === W ? "none" : n.allowNativeTouchScrolling || n.allowEventDefault ? "manipulation" : H ? "pan-y" : "pan-x"}), n.allowContextMenu || js(a, "contextmenu", st); pa(U, !1) } return $s(e, wt), o = !0, ds && "soft" !== t && ds.track(s || e, X ? "x,y" : Y ? "rotation" : "top,left"), e._gsDragID = r = "d" + Ls++, Bs[r] = j, s && (s.enable(), s.element._gsDragID = r), (n.bounds || Y) && gt(), n.bounds && j.applyBounds(), j }, i.disable = function (t) { for (var n, r = j.isDragging, i = U.length; --i > -1;) ra(U[i], "cursor", null); if ("soft" !== t) { for (zs(U, null), i = U.length; --i > -1;) n = U[i], ra(n, "touchCallout", null), Us(n, "mousedown", vt), Us(n, "touchstart", vt), Us(n, "click", Ct), Us(n, "contextmenu", st); pa(U, !0), T && (Us(T, "touchcancel", xt), Us(T, "touchend", xt), Us(T, "touchmove", _t)), Us(ot, "mouseup", xt), Us(ot, "mousemove", _t) } return Js(e, wt), o = !1, ds && "soft" !== t && ds.untrack(s || e, X ? "x,y" : Y ? "rotation" : "top,left"), s && s.disable(), Vs(at), j.isDragging = j.isPressed = b = !1, r && aa(j, "dragend", "onDragEnd"), j }, i.enabled = function (t, e) { return arguments.length ? t ? j.enable(e) : j.disable(e) : o }, i.kill = function () { return j.isThrowing = !1, j.tween && j.tween.kill(), j.disable(), $o.set(U, {clearProps: "userSelect"}), delete Bs[e._gsDragID], j }, ~R.indexOf("scroll") && (s = i.scrollProxy = new da(e, function (t, e) { for (var n in e) n in t || (t[n] = e[n]); return t }({ onKill: function () { j.isPressed && xt(null) } }, n)), e.style.overflowY = W && !ls ? "auto" : "hidden", e.style.overflowX = H && !ls ? "auto" : "hidden", e = s.content), Y ? q.rotation = 1 : (H && (q[I] = 1), W && (q[z] = 1)), nt.force3D = !("force3D" in n) || n.force3D, i.enable(), i } return n = t, (e = r).prototype = Object.create(n.prototype), e.prototype.constructor = e, e.__proto__ = n, r.register = function (t) { $o = t, ga() }, r.create = function (t, e) { return os || ga(!0), as(t).map((function (t) { return new r(t, e) })) }, r.get = function (t) { return Bs[(as(t)[0] || {})._gsDragID] }, r.timeSinceDrag = function () { return (Os() - Rs) / 1e3 }, r.hitTest = function (t, e, n) { if (t === e) return !1; var r, i, o, s = sa(t), a = sa(e), u = s.top, l = s.left, h = s.right, c = s.bottom, f = s.width, p = s.height, d = a.left > h || a.right < l || a.top > c || a.bottom < u; return d || !n ? !d : (o = -1 !== (n + "").indexOf("%"), n = parseFloat(n) || 0, (r = { left: Math.max(l, a.left), top: Math.max(u, a.top) }).width = Math.min(h, a.right) - r.left, r.height = Math.min(c, a.bottom) - r.top, !(r.width < 0 || r.height < 0) && (o ? (n *= .01, (i = r.width * r.height) >= f * p * n || i >= a.width * a.height * n) : r.width > n && r.height > n)) }, r }(function () { function t(t) { this._listeners = {}, this.target = t || this } var e = t.prototype; return e.addEventListener = function (t, e) { var n = this._listeners[t] || (this._listeners[t] = []); ~n.indexOf(e) || n.push(e) }, e.removeEventListener = function (t, e) { var n = this._listeners[t], r = n && n.indexOf(e) || -1; r > -1 && n.splice(r, 1) }, e.dispatchEvent = function (t) { var e, n = this; return (this._listeners[t] || []).forEach((function (r) { return !1 === r.call(n, {type: t, target: n.target}) && (e = !1) })), e }, t }()); !function (t, e) { for (var n in e) n in t || (t[n] = e[n]) }(Da.prototype, { pointerX: 0, pointerY: 0, startX: 0, startY: 0, deltaX: 0, deltaY: 0, isDragging: !1, isPressed: !1 }), Da.zIndex = 1e3, Da.version = "3.9.1", ys() && $o.registerPlugin(Da); /*! * VelocityTracker: 3.9.1 * https://greensock.com * * Copyright 2008-2021, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */ var ma, va, _a, ya, xa, wa, Ca, Fa, Ea = function () { return ma || "undefined" != typeof window && (ma = window.gsap) }, ba = {}, Ta = function (t) { return Fa(t).id }, Ma = function (t) { return ba[Ta("string" == typeof t ? _a(t)[0] : t)] }, Aa = function (t) { var e, n = xa; if (t - Ca >= .05) for (Ca, Ca = t; n;) ((e = n.g(n.t, n.p)) !== n.v1 || t - n.t1 > .2) && (n.v2 = n.v1, n.v1 = e, n.t2 = n.t1, n.t1 = t), n = n._next }, Pa = {deg: 360, rad: 2 * Math.PI}, Sa = function () { (ma = Ea()) && (_a = ma.utils.toArray, ya = ma.utils.getUnit, Fa = ma.core.getCache, wa = ma.ticker, va = 1) }, Oa = function (t, e, n, r) { this.t = t, this.p = e, this.g = t._gsap.get, this.rCap = Pa[n || ya(this.g(t, e))], this.v1 = this.v2 = 0, this.t1 = this.t2 = wa.time, r && (this._next = r, r._prev = this) }, ka = function () { function t(t, e) { va || Sa(), this.target = _a(t)[0], ba[Ta(this.target)] = this, this._props = {}, e && this.add(e) } t.register = function (t) { ma = t, Sa() }; var e = t.prototype; return e.get = function (t, e) { var n, r, i, o = this._props[t] || console.warn("Not tracking " + t + " velocity."); return n = parseFloat(e ? o.v1 : o.g(o.t, o.p)) - parseFloat(o.v2), (r = o.rCap) && (n %= r) !== n % (r / 2) && (n = n < 0 ? n + r : n - r), i = n / ((e ? o.t1 : wa.time) - o.t2), Math.round(1e4 * i) / 1e4 }, e.getAll = function () { var t, e = {}, n = this._props; for (t in n) e[t] = this.get(t); return e }, e.isTracking = function (t) { return t in this._props }, e.add = function (t, e) { t in this._props || (xa || (wa.add(Aa), Ca = wa.time), xa = this._props[t] = new Oa(this.target, t, e, xa)) }, e.remove = function (t) { var e, n, r = this._props[t]; r && (e = r._prev, n = r._next, e && (e._next = n), n ? n._prev = e : xa === r && (wa.remove(Aa), xa = 0), delete this._props[t]) }, e.kill = function (t) { for (var e in this._props) this.remove(e); t || delete ba[Ta(this.target)] }, t.track = function (e, n, r) { va || Sa(); for (var i, o, s = [], a = _a(e), u = n.split(","), l = (r || "").split(","), h = a.length; h--;) { for (i = Ma(a[h]) || new t(a[h]), o = u.length; o--;) i.add(u[o], l[o] || l[0]); s.push(i) } return s }, t.untrack = function (t, e) { var n = (e || "").split(","); _a(t).forEach((function (t) { var e = Ma(t); e && (n.length ? n.forEach((function (t) { return e.remove(t) })) : e.kill(1)) })) }, t.isTracking = function (t, e) { var n = Ma(t); return n && n.isTracking(e) }, t.getVelocity = function (t, e) { var n = Ma(t); return n && n.isTracking(e) ? n.get(e) : console.warn("Not tracking velocity of " + e) }, t }(); ka.getByTarget = Ma, Ea() && ma.registerPlugin(ka); /*! * InertiaPlugin 3.9.1 * https://greensock.com * * @license Copyright 2008-2021, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */ var Ba, La, Na, Ra, Xa, Ya, Ia, za, Ha, Wa, Va, ja, Ua = ka.getByTarget, qa = function () { return Ba || "undefined" != typeof window && (Ba = window.gsap) && Ba.registerPlugin && Ba }, Ga = function (t) { return "number" == typeof t }, Ka = function (t) { return "object" == typeof t }, Qa = function (t) { return "function" == typeof t }, Za = Array.isArray, $a = function (t) { return t }, Ja = function (t, e, n) { for (var r in e) r in t || r === n || (t[r] = e[r]); return t }, tu = function t(e) { var n, r, i = {}; for (n in e) i[n] = Ka(r = e[n]) && !Za(r) ? t(r) : r; return i }, eu = function (t, e, n, r, i) { var o, s, a, u, l = e.length, h = 0, c = 1e10; if (Ka(t)) { for (; l--;) { for (a in o = e[l], s = 0, t) s += (u = o[a] - t[a]) * u; s < c && (h = l, c = s) } if ((i || 1e10) < 1e10 && i < Math.sqrt(c)) return t } else for (; l--;) (s = (o = e[l]) - t) < 0 && (s = -s), s < c && o >= r && o <= n && (h = l, c = s); return e[h] }, nu = function (t, e, n, r, i, o, s) { if ("auto" === t.end) return t; var a, u, l = t.end; if (n = isNaN(n) ? 1e10 : n, r = isNaN(r) ? -1e10 : r, Ka(e)) { if (a = e.calculated ? e : (Qa(l) ? l(e, s) : eu(e, l, n, r, o)) || e, !e.calculated) { for (u in a) e[u] = a[u]; e.calculated = !0 } a = a[i] } else a = Qa(l) ? l(e, s) : Za(l) ? eu(e, l, n, r, o) : parseFloat(l); return a > n ? a = n : a < r && (a = r), {max: a, min: a, unitFactor: t.unitFactor} }, ru = function (t, e, n) { return isNaN(t[e]) ? n : +t[e] }, iu = function (t, e) { return .05 * e * t / Wa }, ou = function (t, e, n) { return Math.abs((e - t) * Wa / n / .05) }, su = {resistance: 1, checkpoint: 1, preventOvershoot: 1, linkedProps: 1, radius: 1, duration: 1}, au = function (t, e, n, r) { if (e.linkedProps) { var i, o, s, a, u, l, h = e.linkedProps.split(","), c = {}; for (i = 0; i < h.length; i++) (s = e[o = h[i]]) && (a = Ga(s.velocity) ? s.velocity : (u = u || Ua(t)) && u.isTracking(o) ? u.get(o) : 0, l = Math.abs(a / ru(s, "resistance", r)), c[o] = parseFloat(n(t, o)) + iu(a, l)); return c } }, uu = function () { (Ba = qa()) && (Na = Ba.parseEase, Ra = Ba.utils.toArray, Ia = Ba.utils.getUnit, Ha = Ba.core.getCache, Va = Ba.utils.clamp, Xa = Na("power3"), Wa = Xa(.05), za = Ba.core.PropTween, Ba.config({ resistance: 100, unitFactors: {time: 1e3, totalTime: 1e3, progress: 1e3, totalProgress: 1e3} }), Ya = Ba.config(), Ba.registerPlugin(ka), La = 1) }, lu = { version: "3.9.1", name: "inertia", register: function (t) { Ba = t, uu() }, init: function (t, e, n, r, i) { La || uu(); var o = Ua(t); if ("auto" === e) { if (!o) return void console.warn("No inertia tracking on " + t + ". InertiaPlugin.track(target) first."); e = o.getAll() } this.target = t, this.tween = n, ja = e; var s, a, u, l, h, c, f, p, d, g = t._gsap, D = g.get, m = e.duration, v = Ka(m), _ = e.preventOvershoot || v && 0 === m.overshoot, y = ru(e, "resistance", Ya.resistance), x = Ga(m) ? m : function (t, e, n, r, i, o) { if (void 0 === n && (n = 10), void 0 === r && (r = .2), void 0 === i && (i = 1), void 0 === o && (o = 0), "string" == typeof t && (t = Ra(t)[0]), !t) return 0; var s, a, u, l, h, c, f, p, d, g, D = 0, m = 1e10, v = e.inertia || e, _ = Ha(t).get, y = ru(v, "resistance", Ya.resistance); for (s in g = au(t, v, _, y), v) su[s] || (a = v[s], Ka(a) || ((p = p || Ua(t)) && p.isTracking(s) ? a = Ga(a) ? {velocity: a} : {velocity: p.get(s)} : (l = +a || 0, u = Math.abs(l / y))), Ka(a) && (l = Ga(a.velocity) ? a.velocity : (p = p || Ua(t)) && p.isTracking(s) ? p.get(s) : 0, u = Va(r, n, Math.abs(l / ru(a, "resistance", y))), c = (h = parseFloat(_(t, s)) || 0) + iu(l, u), "end" in a && (a = nu(a, g && s in g ? g : c, a.max, a.min, s, v.radius, l), o && (ja === e && (ja = v = tu(e)), v[s] = Ja(a, v[s], "end"))), "max" in a && c > +a.max + 1e-10 ? (d = a.unitFactor || Ya.unitFactors[s] || 1, (f = h > a.max && a.min !== a.max || l * d > -15 && l * d < 45 ? r + .1 * (n - r) : ou(h, a.max, l)) + i < m && (m = f + i)) : "min" in a && c < +a.min - 1e-10 && (d = a.unitFactor || Ya.unitFactors[s] || 1, (f = h < a.min && a.min !== a.max || l * d > -45 && l * d < 15 ? r + .1 * (n - r) : ou(h, a.min, l)) + i < m && (m = f + i)), f > D && (D = f)), u > D && (D = u)); return D > m && (D = m), D > n ? n : D < r ? r : D }(t, e, v && m.max || 10, v && m.min || .2, v && "overshoot" in m ? +m.overshoot : _ ? 0 : 1, !0); for (s in e = ja, ja = 0, d = au(t, e, D, y), e) su[s] || (a = e[s], Qa(a) && (a = a(r, t, i)), Ga(a) ? h = a : Ka(a) && !isNaN(a.velocity) ? h = +a.velocity : o && o.isTracking(s) ? h = o.get(s) : console.warn("ERROR: No velocity was defined for " + t + " property: " + s), c = iu(h, x), p = 0, u = D(t, s), l = Ia(u), u = parseFloat(u), Ka(a) && (f = u + c, "end" in a && (a = nu(a, d && s in d ? d : f, a.max, a.min, s, e.radius, h)), "max" in a && +a.max < f ? _ || a.preventOvershoot ? c = a.max - u : p = a.max - u - c : "min" in a && +a.min > f && (_ || a.preventOvershoot ? c = a.min - u : p = a.min - u - c)), this._props.push(s), this._pt = new za(this._pt, t, s, u, 0, $a, 0, g.set(t, s, this)), this._pt.u = l || 0, this._pt.c1 = c, this._pt.c2 = p); return n.duration(x), 1 }, render: function (t, e) { var n, r = e._pt; for (t = Xa(e.tween._time / e.tween._dur); r;) r.set(r.t, r.p, (n = r.s + r.c1 * t + r.c2 * t * t, Math.round(1e4 * n) / 1e4 + r.u), r.d, t), r = r._next } }; "track,untrack,isTracking,getVelocity,getByTarget".split(",").forEach((function (t) { return lu[t] = ka[t] })), qa() && Ba.registerPlugin(lu); /*! * strings: 3.9.1 * https://greensock.com * * Copyright 2008-2021, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */ var hu = /([\uD800-\uDBFF][\uDC00-\uDFFF](?:[\u200D\uFE0F][\uD800-\uDBFF][\uDC00-\uDFFF]){2,}|\uD83D\uDC69(?:\u200D(?:(?:\uD83D\uDC69\u200D)?\uD83D\uDC67|(?:\uD83D\uDC69\u200D)?\uD83D\uDC66)|\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D(?:\uD83D\uDC69\u200D)?\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D(?:\uD83D\uDC69\u200D)?\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]\uFE0F|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC6F\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3C-\uDD3E\uDDD6-\uDDDF])\u200D[\u2640\u2642]\uFE0F|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F\u200D[\u2640\u2642]|(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642])\uFE0F|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC69\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708]))\uFE0F|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83D\uDC69\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC66\u200D\uD83D\uDC66|(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]))|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\u200D(?:(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC67|(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC66)|\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDD1-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])?|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])\uFE0F)/; /*! * SplitText: 3.9.1 * https://greensock.com * * @license Copyright 2008-2021, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */ var cu, fu, pu, du, gu = /(?:\r|\n|\t\t)/g, Du = /(?:\s\s+)/g, mu = function (t) { return fu.getComputedStyle(t) }, vu = Array.isArray, _u = [].slice, yu = function (t, e) { var n; return vu(t) ? t : "string" == (n = typeof t) && !e && t ? _u.call(cu.querySelectorAll(t), 0) : t && "object" === n && "length" in t ? _u.call(t, 0) : t ? [t] : [] }, xu = function (t) { return "absolute" === t.position || !0 === t.absolute }, wu = function (t, e) { for (var n, r = e.length; --r > -1;) if (n = e[r], t.substr(0, n.length) === n) return n.length }, Cu = function (t, e) { void 0 === t && (t = ""); var n = ~t.indexOf("++"), r = 1; return n && (t = t.split("++").join("")), function () { return "<" + e + " style='position:relative;display:inline-block;'" + (t ? " class='" + t + (n ? r++ : "") + "'>" : ">") } }, Fu = function t(e, n, r) { var i = e.nodeType; if (1 === i || 9 === i || 11 === i) for (e = e.firstChild; e; e = e.nextSibling) t(e, n, r); else 3 !== i && 4 !== i || (e.nodeValue = e.nodeValue.split(n).join(r)) }, Eu = function (t, e) { for (var n = e.length; --n > -1;) t.push(e[n]) }, bu = function (t, e, n) { for (var r; t && t !== e;) { if (r = t._next || t.nextSibling) return r.textContent.charAt(0) === n; t = t.parentNode || t._parent } }, Tu = function t(e) { var n, r, i = yu(e.childNodes), o = i.length; for (n = 0; n < o; n++) (r = i[n])._isSplit ? t(r) : n && r.previousSibling && 3 === r.previousSibling.nodeType ? (r.previousSibling.nodeValue += 3 === r.nodeType ? r.nodeValue : r.firstChild.nodeValue, e.removeChild(r)) : 3 !== r.nodeType && (e.insertBefore(r.firstChild, r), e.removeChild(r)) }, Mu = function (t, e) { return parseFloat(e[t]) || 0 }, Au = function (t, e, n, r, i, o, s) { var a, u, l, h, c, f, p, d, g, D, m, v, _ = mu(t), y = Mu("paddingLeft", _), x = -999, w = Mu("borderBottomWidth", _) + Mu("borderTopWidth", _), C = Mu("borderLeftWidth", _) + Mu("borderRightWidth", _), F = Mu("paddingTop", _) + Mu("paddingBottom", _), E = Mu("paddingLeft", _) + Mu("paddingRight", _), b = Mu("fontSize", _) * (e.lineThreshold || .2), T = _.textAlign, M = [], A = [], P = [], S = e.wordDelimiter || " ", O = e.tag ? e.tag : e.span ? "span" : "div", k = e.type || e.split || "chars,words,lines", B = i && ~k.indexOf("lines") ? [] : null, L = ~k.indexOf("words"), N = ~k.indexOf("chars"), R = xu(e), X = e.linesClass, Y = ~(X || "").indexOf("++"), I = [], z = "flex" === _.display, H = t.style.display; for (Y && (X = X.split("++").join("")), z && (t.style.display = "block"), l = (u = t.getElementsByTagName("*")).length, c = [], a = 0; a < l; a++) c[a] = u[a]; if (B || R) for (a = 0; a < l; a++) ((f = (h = c[a]).parentNode === t) || R || N && !L) && (v = h.offsetTop, B && f && Math.abs(v - x) > b && ("BR" !== h.nodeName || 0 === a) && (p = [], B.push(p), x = v), R && (h._x = h.offsetLeft, h._y = v, h._w = h.offsetWidth, h._h = h.offsetHeight), B && ((h._isSplit && f || !N && f || L && f || !L && h.parentNode.parentNode === t && !h.parentNode._isSplit) && (p.push(h), h._x -= y, bu(h, t, S) && (h._wordEnd = !0)), "BR" === h.nodeName && (h.nextSibling && "BR" === h.nextSibling.nodeName || 0 === a) && B.push([]))); for (a = 0; a < l; a++) if (f = (h = c[a]).parentNode === t, "BR" !== h.nodeName) if (R && (g = h.style, L || f || (h._x += h.parentNode._x, h._y += h.parentNode._y), g.left = h._x + "px", g.top = h._y + "px", g.position = "absolute", g.display = "block", g.width = h._w + 1 + "px", g.height = h._h + "px"), !L && N) if (h._isSplit) for (h._next = u = h.nextSibling, h.parentNode.appendChild(h); u && 3 === u.nodeType && " " === u.textContent;) h._next = u.nextSibling, h.parentNode.appendChild(u), u = u.nextSibling; else h.parentNode._isSplit ? (h._parent = h.parentNode, !h.previousSibling && h.firstChild && (h.firstChild._isFirst = !0), h.nextSibling && " " === h.nextSibling.textContent && !h.nextSibling.nextSibling && I.push(h.nextSibling), h._next = h.nextSibling && h.nextSibling._isFirst ? null : h.nextSibling, h.parentNode.removeChild(h), c.splice(a--, 1), l--) : f || (v = !h.nextSibling && bu(h.parentNode, t, S), h.parentNode._parent && h.parentNode._parent.appendChild(h), v && h.parentNode.appendChild(cu.createTextNode(" ")), "span" === O && (h.style.display = "inline"), M.push(h)); else h.parentNode._isSplit && !h._isSplit && "" !== h.innerHTML ? A.push(h) : N && !h._isSplit && ("span" === O && (h.style.display = "inline"), M.push(h)); else B || R ? (h.parentNode && h.parentNode.removeChild(h), c.splice(a--, 1), l--) : L || t.appendChild(h); for (a = I.length; --a > -1;) I[a].parentNode.removeChild(I[a]); if (B) { for (R && (D = cu.createElement(O), t.appendChild(D), m = D.offsetWidth + "px", v = D.offsetParent === t ? 0 : t.offsetLeft, t.removeChild(D)), g = t.style.cssText, t.style.cssText = "display:none;"; t.firstChild;) t.removeChild(t.firstChild); for (d = " " === S && (!R || !L && !N), a = 0; a < B.length; a++) { for (p = B[a], (D = cu.createElement(O)).style.cssText = "display:block;text-align:" + T + ";position:" + (R ? "absolute;" : "relative;"), X && (D.className = X + (Y ? a + 1 : "")), P.push(D), l = p.length, u = 0; u < l; u++) "BR" !== p[u].nodeName && (h = p[u], D.appendChild(h), d && h._wordEnd && D.appendChild(cu.createTextNode(" ")), R && (0 === u && (D.style.top = h._y + "px", D.style.left = y + v + "px"), h.style.top = "0px", v && (h.style.left = h._x - v + "px"))); 0 === l ? D.innerHTML = " " : L || N || (Tu(D), Fu(D, String.fromCharCode(160), " ")), R && (D.style.width = m, D.style.height = h._h + "px"), t.appendChild(D) } t.style.cssText = g } R && (s > t.clientHeight && (t.style.height = s - F + "px", t.clientHeight < s && (t.style.height = s + w + "px")), o > t.clientWidth && (t.style.width = o - E + "px", t.clientWidth < o && (t.style.width = o + C + "px"))), z && (H ? t.style.display = H : t.style.removeProperty("display")), Eu(n, M), L && Eu(r, A), Eu(i, P) }, Pu = function (t, e, n, r) { var i, o, s, a, u, l, h, c, f = e.tag ? e.tag : e.span ? "span" : "div", p = ~(e.type || e.split || "chars,words,lines").indexOf("chars"), d = xu(e), g = e.wordDelimiter || " ", D = " " !== g ? "" : d ? "­ " : " ", m = "", v = 1, _ = e.specialChars ? "function" == typeof e.specialChars ? e.specialChars : wu : null, y = cu.createElement("div"), x = t.parentNode; for (x.insertBefore(y, t), y.textContent = t.nodeValue, x.removeChild(t), h = -1 !== (i = function t(e) { var n = e.nodeType, r = ""; if (1 === n || 9 === n || 11 === n) { if ("string" == typeof e.textContent) return e.textContent; for (e = e.firstChild; e; e = e.nextSibling) r += t(e) } else if (3 === n || 4 === n) return e.nodeValue; return r }(t = y)).indexOf("<"), !1 !== e.reduceWhiteSpace && (i = i.replace(Du, " ").replace(gu, "")), h && (i = i.split("<").join("{{LT}}")), u = i.length, o = (" " === i.charAt(0) ? D : "") + n(), s = 0; s < u; s++) if (l = i.charAt(s), _ && (c = _(i.substr(s), e.specialChars))) l = i.substr(s, c || 1), o += p && " " !== l ? r() + l + "" : l, s += c - 1; else if (l === g && i.charAt(s - 1) !== g && s) { for (o += v ? m : "", v = 0; i.charAt(s + 1) === g;) o += D, s++; s === u - 1 ? o += D : ")" !== i.charAt(s + 1) && (o += D + n(), v = 1) } else "{" === l && "{{LT}}" === i.substr(s, 6) ? (o += p ? r() + "{{LT}}" : "{{LT}}", s += 5) : l.charCodeAt(0) >= 55296 && l.charCodeAt(0) <= 56319 || i.charCodeAt(s + 1) >= 65024 && i.charCodeAt(s + 1) <= 65039 ? (a = ((i.substr(s, 12).split(hu) || [])[1] || "").length || 2, o += p && " " !== l ? r() + i.substr(s, a) + "" : i.substr(s, a), s += a - 1) : o += p && " " !== l ? r() + l + "" : l; t.outerHTML = o + (v ? m : ""), h && Fu(x, "{{LT}}", "<") }, Su = function t(e, n, r, i) { var o, s, a = yu(e.childNodes), u = a.length, l = xu(n); if (3 !== e.nodeType || u > 1) { for (n.absolute = !1, o = 0; o < u; o++) (s = a[o])._next = s._isFirst = s._parent = s._wordEnd = null, (3 !== s.nodeType || /\S+/.test(s.nodeValue)) && (l && 3 !== s.nodeType && "inline" === mu(s).display && (s.style.display = "inline-block", s.style.position = "relative"), s._isSplit = !0, t(s, n, r, i)); return n.absolute = l, void (e._isSplit = !0) } Pu(e, n, r, i) }, Ou = function () { function t(t, e) { pu || (cu = document, fu = window, pu = 1), this.elements = yu(t), this.chars = [], this.words = [], this.lines = [], this._originals = [], this.vars = e || {}, this.split(e) } var e = t.prototype; return e.split = function (t) { this.isSplit && this.revert(), this.vars = t = t || this.vars, this._originals.length = this.chars.length = this.words.length = this.lines.length = 0; for (var e, n, r, i = this.elements.length, o = t.tag ? t.tag : t.span ? "span" : "div", s = Cu(t.wordsClass, o), a = Cu(t.charsClass, o); --i > -1;) r = this.elements[i], this._originals[i] = r.innerHTML, e = r.clientHeight, n = r.clientWidth, Su(r, t, s, a), Au(r, t, this.chars, this.words, this.lines, n, e); return this.chars.reverse(), this.words.reverse(), this.lines.reverse(), this.isSplit = !0, this }, e.revert = function () { var t = this._originals; if (!t) throw"revert() call wasn't scoped properly."; return this.elements.forEach((function (e, n) { return e.innerHTML = t[n] })), this.chars = [], this.words = [], this.lines = [], this.isSplit = !1, this }, t.create = function (e, n) { return new t(e, n) }, t }(); Ou.version = "3.9.1", vr.registerPlugin(Xe, _r, Me, Me, Fr, vi, Mi, Ki, Bo, Zo, dr, Da, lu); var ku = du = window.punchgs = window.tpGS = {}; for (var Bu in ku.gsap = vr, ku.TweenLite = Xe, ku.TweenMax = _r, ku.TimelineLite = Me, ku.TimelineMax = Me, ku.CustomBounce = Fr, ku.CustomEase = vi, ku.CustomWiggle = Mi, ku.DrawSVGPlugin = Ki, ku.MotionPathPlugin = Bo, ku.ScrollToPlugin = Zo, ku.CSSPlugin = dr, ku.draggable = Da, ku.inertia = lu, /*! Map SplitText to tpGS TPGSSPLITTEXT */ ku.SplitText = Ou, ku.RAD2DEG = 180 / Math.PI, ku.DEG2RAD = Math.PI / 180, /*! REGISTER MOTION PATH (BEZIER) */ ku.gsap.registerPlugin(ku.MotionPathPlugin), ku.gsap.config({nullTargetWarn: !1}), /*!FallBack for old and new Eases*/ ku.eases = ku.gsap.parseEase(), ku.eases) ku.eases.hasOwnProperty(Bu) && void 0 === ku[Bu] && (ku[Bu] = ku.eases[Bu]) /*! FallBack for Essential Grid */; void 0 !== du && void 0 !== du.TweenLite && void 0 === du.TweenLite.lagSmoothing && (du.TweenLite.lagSmoothing = function () { }); var Lu = []; function Nu(t, e, n) { var r = document.createElement("canvas"), i = r.getContext("2d"); if (r.width = 100, r.height = 200, 0 === t.length) i.fillStyle = n; else { for (var o = i.createLinearGradient(0, 0, 100, 0), s = 0; s < t.length; s++) o.addColorStop(t[s].stop / 100, t[s].color); i.fillStyle = o } i.fillRect(0, 0, 100, 200); var a = i.getImageData(0, 0, 100, 2).data, u = ""; for (s = 0; s < e.length; s++) { var l = Math.ceil(e[s]), h = 4 * (0 !== l ? l - 1 : l); u += "rgba(" + a[h] + "," + a[h + 1] + "," + a[h + 2] + "," + a[h + 3] / 255 + ")", u += " " + l + (e.length - 1 === s ? "%" : "%,") } return r.remove(), u } function Ru(t, e, n, r) { for (var i = "", o = ku.gsap.utils.mapRange(0, r.length - 1, 0, t.length - 1), s = 0; s < r.length; s++) { var a = Math.round(o(s)); i += t[a].color, i += " " + t[a].stop + (r.length - 1 === s ? "%" : "%,") } return i } function Xu(t) { var e = /rgb([\s\S]*?)%/g, n = [], r = [], i = []; do { (s = e.exec(t)) && n.push(s[0]) } while (s); for (var o = 0; o < n.length; o++) { var s = n[o], a = (t = /rgb([\s\S]*?)\)/.exec(s), /\)([\s\S]*?)%/.exec(s)); t[0] && (t = t[0]), a[1] && (a = a[1]), i.push(parseFloat(a)), r.push({color: t, stop: parseFloat(a)}) } return 0 === r.length && (r.push({color: t, stop: 0}), i.push(0), r.push({ color: t, stop: 100 }), i.push(100)), {points: r, stops: i} } ku.getSSGColors = function (t, e, n) { if (n = void 0 === n ? "fading" : n, -1 === t.indexOf("gradient") && -1 === e.indexOf("gradient")) return { from: t, to: e }; for (var r = {from: t, to: e}, i = 0; i < Lu.length; i++) { if (Lu[i].from === t && Lu[i].to === e && Lu[i].type === n) return {from: Lu[i].rFrom, to: Lu[i].rTo}; if (Lu[i].from === e && Lu[i].to === t && Lu[i].type === n) return {from: Lu[i].rTo, to: Lu[i].rFrom} } var o = Xu(t), s = Xu(e); if (o.stops.length === s.stops.length && -1 !== t.indexOf("gradient") && -1 !== e.indexOf("gradient")) return { from: t, to: e }; var a, u, l = o.stops; for (i = 0; i < s.stops.length; i++) -1 === l.indexOf(s.stops[i]) && l.push(s.stops[i]); if (l.sort((function (t, e) { return t - e })), -1 !== t.indexOf("gradient(")) { var h = -1 !== t.indexOf("deg,") ? t.indexOf("deg,") + 4 : -1 !== t.indexOf("at center,") ? t.indexOf("at center,") + 10 : t.indexOf("gradient(") + 9; a = t.substring(0, h), -1 === e.indexOf("gradient(") && (u = t.substring(0, h)) } if (-1 !== e.indexOf("gradient(")) { h = -1 !== e.indexOf("deg,") ? e.indexOf("deg,") + 4 : -1 !== e.indexOf("at center,") ? e.indexOf("at center,") + 10 : e.indexOf("gradient(") + 9; u = e.substring(0, h), -1 === t.indexOf("gradient(") && (a = e.substring(0, h)) } return "fading" === n ? (o.stops.length, s.stops.length, a += Nu(o.points, l, t), u += Nu(s.points, l, e)) : "sliding" === n && (o.stops.length > s.stops.length ? u += Ru(s.points, l, e, o.points) : a += Ru(o.points, l, t, s.points)), a += ")", u += ")", "sliding" === n && (o.stops.length > s.stops.length ? a = t : u = e), r.rFrom = a, r.rTo = u, r.tyep = n, Lu.push(r), { from: a, to: u } } }]); window.RS_MODULES = window.RS_MODULES || {}; window.RS_MODULES.tpGS = {loaded: true, version: "6.6.1"}; if (window.RS_MODULES.checkMinimal) window.RS_MODULES.checkMinimal(); /*! - Slider Revolution JavaScript Plugin - ..........................xXXXXX................. ................. xXXXXX..xXXXXX..xXXXXX......... ..................xXXXXX..xXXXXX..xXXXXX......... ..........xXXXXX..xXXXXX..xXXXXX..xXXXXX......... ..........xXXXXX..xXXXXX..xXXXXX..xXXXXX......... ..........xXXXXX..xXXXXX..xXXXXX..xXXXXX......... ..........xXXXXX..xXXXXX..xXXXXX..xXXXXX......... ..........xXXXXX..xXXXXX..xXXXXX..xXXXXX......... .........,xXXXXX..xXXXXX..xXXXXX..xXXXXX......... .........,xXXXXX..xXXXXX..xXXXXX..xXXXXX......... .........,xXXXXX..xXXXXX..xXXXXX..xXXXXX......... ..........xXXXXX..xXXXXX..xXXXXX..xXXXXX......... .....................xxxxxxxxxxxxxxxxxxx......... .....................xxxxxxxxxxxxxxxxxxx......... .....................xxxxxxxxxxxxxxxxxxx......... DATE: 2023-03-15 @author: Krisztian Horvath, ThemePunch OHG. INTRODUCING GIT UPDATES AND DOCS AT: https://www.themepunch.com/support-center GET LICENSE AT: https://www.themepunch.com/links/slider_revolution_wordpress_regular_license LICENSE: Copyright (c) 2009-2019, ThemePunch. All rights reserved. This work is subject to the terms at https://www.themepunch.com/links/slider_revolution_wordpress_regular_license (Regular / Extended) */ !function (e, t) { "use strict"; var i = "Slider Revolution 6.6.14"; window.RSANYID = window.RSANYID === t ? [] : window.RSANYID, window.RSANYID_sliderID = window.RSANYID_sliderID === t ? [] : window.RSANYID_sliderID, e.fn.revolution = e.fn.revolution || {}; var a = e.fn.revolution; e.fn.revolutionInit = function (i) { return this.each(function () { a.ISM = a.ISM || a.is_mobile(); for (var s = document.getElementsByClassName("rs-p-wp-fix"); s[0];) s[0].parentNode.removeChild(s[0]); this.id !== t ? (a[n] = {anyid: []}, this.id = a.revCheckIDS(n, this, !0)) : this.id = "rs_module_" + Math.round(1e7 * Math.random()); var n = this.id, l = a.clone(i); a[n] = W(i), a[n].ignoreHeightChange = a.ISM && "fullscreen" === a[n].sliderLayout && a[n].ignoreHeightChange, a[n].option_export = l, a[n].anyid = [], a[n]._Lshortcuts = {}, a[n].computedStyle = {}, a[n].c = e(this), a[n].cpar = a[n].c.parent(), a[n].canvas = a[n].c.find("rs-slides"), a[n].caches = { calcResponsiveLayersList: [], contWidthManager: {}, middleHeights: {} }, a[n].sbgs = {}, window.RSBrowser = window.RSBrowser === t ? a.get_browser() : window.RSBrowser, a.setIsIOS(), a.setIsChrome8889(), a.useBackdrop === t && a.checkBackdrop(), a[n].noDetach = a[n].BUG_ie_clipPath = "Edge" === window.RSBrowser || "IE" === window.RSBrowser, a.getByTag = r(), a[n].indexhelper = 0, a[n].fullScreenOffsetResult = 0, a[n].level = 0, a[n].rtl = e("body").hasClass("rtl") || "rtl" == document.dir, a[n]._L = a[n]._L === t ? {} : a[n]._L, a[n].emptyObject = "{}", a[n].dimensionReCheck = {}, a.globalListener === t && a.pageHandler(n), a[n].stopAfterLoops != t && a[n].stopAfterLoops > -1 ? a[n].looptogo = a[n].stopAfterLoops : a[n].looptogo = "disabled", window.T = a[n], a[n].BUG_safari_clipPath = "Safari" === a.get_browser() && a.get_browser_version() > "12", a[n].minHeight = "fullwidth" === a[n].sliderLayout || "carousel" === a[n].sliderType ? 0 : a[n].minHeight != t && "" !== a[n].minHeight ? parseInt(a[n].minHeight, 0) : 0, a[n].minHeight = a[n].minHeight === t ? 0 : a[n].minHeight, a[n].isEdge = "Edge" === a.get_browser(), o(n), a.updateVisibleArea(n), H(n), a.mesuredScrollBarDone || a.mesureScrollBar(), window.requestAnimationFrame(function () { if ("fullscreen" === a[n].sliderLayout) { var e = a.getFullscreenOffsets(n); 0 !== e && a[n].cpar.height(a.getWinH(n) - e) } a[n].cpar[0].style.visibility = "visible" }), "hero" == a[n].sliderType && a[n].c.find("rs-slide").each(function (t) { t > 0 && e(this).remove() }), a[n].navigation.use = "hero" !== a[n].sliderType && ("carousel" == a[n].sliderType || a[n].navigation.keyboardNavigation || "on" == a[n].navigation.mouseScrollNavigation || "carousel" == a[n].navigation.mouseScrollNavigation || a[n].navigation.touch.touchenabled || a[n].navigation.arrows.enable || a[n].navigation.bullets.enable || a[n].navigation.thumbnails.enable || a[n].navigation.tabs.enable), a[n].c.find("rs-bgvideo").each(function () { "RS-BGVIDEO" !== this.tagName || this.id !== t && "" !== this.id || (this.id = "rs-bg-video-" + Math.round(1e6 * Math.random())) }), tpGS.force3D = "auto", !0 === a[n].modal.useAsModal && -1 === a.RS_prioList.indexOf(n) && (a.RS_toInit[n] = !1, a.RS_prioList.push(n)), a.RS_killedlist !== t && -1 !== a.RS_killedlist.indexOf(n) && (a.RS_toInit[n] = !1, a.RS_prioList.push(n)), !0 === a.RS_prioListFirstInit && !0 !== a[n].modal.useAsModal && -1 === a.RS_prioList.indexOf(n) && (a.RS_toInit[n] = !1, a.RS_prioList.push(n)), a.initNextRevslider(n) }) }; a = window.RS_F; e.fn.extend({ getRSJASONOptions: function (e) { console.log(JSON.stringify(a[e].option_export)) }, getRSVersion: function (e) { var t, i, a = window.SliderRevolutionVersion; if (!e) { for (var r in t = i = "---------------------------------------------------------\n", t += " Currently Loaded Slider Revolution & SR Modules :\n" + i, a) a.hasOwnProperty(r) && (t += a[r].alias + ": " + a[r].ver + "\n"); t += i } return e ? a : t }, revremoveslide: function (t) { return this.each(function () { var i = this.id; if (!(t < 0 || t > a[i].slideamount) && a[i] && a[i].slides.length > 0 && (t > 0 || t <= a[i].slides.length)) { var r = a.gA(a[i].slides[t], "key"); a[i].slideamount = a[i].slideamount - 1, a[i].realslideamount = a[i].realslideamount - 1, n("rs-bullet", r, i), n("rs-tab", r, i), n("rs-thumb", r, i), e(a[i].slides[t]).remove(), a[i].thumbs = s(a[i].thumbs, t), a.updateNavIndexes && a.updateNavIndexes(i), t <= a[i].pr_active_key && (a[i].pr_active_key = a[i].pr_active_key - 1) } }) }, revaddcallback: function (e) { return this.each(function () { a[this.id] && (a[this.id].callBackArray === t && (a[this.id].callBackArray = []), a[this.id].callBackArray.push(e)) }) }, revgetparallaxproc: function () { if (a[this[0].id]) return a[this[0].id].scrollproc }, revdebugmode: function () { }, revscroll: function (t) { return this.each(function () { var i = e(this); e("body,html").animate({scrollTop: i.offset().top + i.height() - t + "px"}, {duration: 400}) }) }, revredraw: function () { return this.each(function () { v(this.id, t, !0) }) }, revGoToFrame: function (i) { if (i.layerid != t && i.frame != t && this != t && null != this && (i.moduleid = this[0].id, i.targetlayer = e("#" + i.layerid), i.targetlayer != t && 0 != i.targetlayer.length)) { var r = {layer: i.targetlayer, frame: i.frame, mode: "trigger", id: i.moduleid}; !0 === i.children && (r.updateChildren = !0, r.fastforward = !0), a.renderLayerAnimation && a.renderLayerAnimation(r) } }, revkill: function () { return this.each(function () { if (this != t && null != this) { var i = this.id; a[i].c.data("conthover", 1), a[i].c.data("conthoverchanged", 1), a[i].c.trigger("revolution.slide.onpause"), a[i].tonpause = !0, a[i].c.trigger("stoptimer"), a[i].sliderisrunning = !1; var r = "updateContainerSizes." + a[i].c.attr("id"); a.window.off(r), tpGS.gsap.killTweensOf(a[i].c.find("*"), !1), tpGS.gsap.killTweensOf(a[i].c, !1), a[i].c.off("hover, mouseover, mouseenter,mouseleave, resize"), a[i].c.find("*").each(function () { var i = e(this); i.off("on, hover, mouseenter,mouseleave,mouseover, resize,restarttimer, stoptimer"), i.data("mySplitText", null), i.data("ctl", null), i.data("tween") != t && i.data("tween").kill(), i.data("pztl") != t && i.data("pztl").kill(), i.data("timeline_out") != t && i.data("timeline_out").kill(), i.data("timeline") != t && i.data("timeline").kill(), i.remove(), i.empty(), i = null }), tpGS.gsap.killTweensOf(a[i].c.find("*"), !1), tpGS.gsap.killTweensOf(a[i].c, !1), a[i].progressC.remove(); try { a[i].c.closest(".rev_slider_wrapper").detach() } catch (e) { } try { a[i].c.closest("rs-fullwidth-wrap").remove() } catch (e) { } try { a[i].c.closest("rs-module-wrap").remove() } catch (e) { } try { a[i].c.remove() } catch (e) { } a[i].cpar.detach(), a[i].c.html(""), a[i].c = null, window[a[i].revapi] = t, delete a[i], delete a.RS_swapList[i], delete a.slidersToScroll[i], delete a.RS_toInit[i], a.nextSlider == i && delete a.nextSlider, a.RS_prioList.splice(a.RS_prioList.indexOf(i), 1), a.RS_killedlist = a.RS_killedlist === t ? [] : a.RS_killedlist, -1 === a.RS_killedlist.indexOf(i) && a.RS_killedlist.push(i) } }) }, revpause: function () { return this.each(function () { var i = e(this); i != t && i.length > 0 && e("body").find("#" + i.attr("id")).length > 0 && (i.data("conthover", 1), i.data("conthoverchanged", 1), i.trigger("revolution.slide.onpause"), a[this.id].tonpause = !0, i.trigger("stoptimer")) }) }, revresume: function () { return this.each(function () { if (a[this.id] !== t) { var i = e(this); i.data("conthover", 0), i.data("conthoverchanged", 1), i.trigger("revolution.slide.onresume"), a[this.id].tonpause = !1, i.trigger("starttimer") } }) }, revmodal: function (i) { var r = this instanceof e ? this[0] : this, o = r.id; a[r.id] !== t && a.revModal(o, i) }, revstart: function () { var i = this instanceof e ? this[0] : this; return a[i.id] === t ? (console.log("Slider is Not Existing"), !1) : a[i.id].sliderisrunning || !0 === a[i.id].initEnded ? (console.log("Slider Is Running Already"), !1) : (a[i.id].c = e(i), a[i.id].canvas = a[i.id].c.find("rs-slides"), h(i.id), !0) }, revnext: function () { return this.each(function () { a[this.id] !== t && a.callingNewSlide(this.id, 1, "carousel" === a[this.id].sliderType) }) }, revprev: function () { return this.each(function () { a[this.id] !== t && a.callingNewSlide(this.id, -1, "carousel" === a[this.id].sliderType) }) }, revmaxslide: function () { return e(this).find("rs-slide").length }, revcurrentslide: function () { if (a[e(this)[0].id] !== t) return parseInt(a[e(this)[0].id].pr_active_key, 0) + 1 }, revlastslide: function () { return e(this).find("rs-slide").length }, revshowslide: function (e) { return this.each(function () { a[this.id] !== t && e !== t && a.callingNewSlide(this.id, "to" + (e - 1)) }) }, revcallslidewithid: function (e) { return this.each(function () { a[this.id] !== t && a.callingNewSlide(this.id, e, "carousel" === a[this.id].sliderType) }) } }), a = e.fn.revolution, e.extend(!0, a, { isNumeric: function (e) { return !isNaN(parseFloat(e)) && isFinite(e) }, trim: function (e) { return e !== t && null !== e && "string" == typeof e ? e.trim() : e }, setCookie: function (e, t, i) { var a = new Date; a.setTime(a.getTime() + 60 * i * 60 * 1e3); var r = "expires=" + a.toUTCString(); document.cookie = e + "=" + t + ";" + r + ";path=/" }, getCookie: function (e) { for (var t = e + "=", i = document.cookie.split(";"), a = 0; a < i.length; a++) { for (var r = i[a]; " " == r.charAt(0);) r = r.substring(1); if (0 == r.indexOf(t)) return decodeURIComponent(r.substring(t.length, r.length)) } return "" }, mesureScrollBar: function () { a.mesuredScrollBarDone = !0, requestAnimationFrame(function () { var e = document.createElement("div"); e.className = "RSscrollbar-measure", document.body.appendChild(e), a.mesuredScrollbarWidth = e.offsetWidth - e.clientWidth, document.body.removeChild(e) }) }, mobileTimedHeightCheck: function () { requestAnimationFrame(function () { a.mobileTimedHeightCheck() }), a.mobileHeights.now = Date.now(), a.mobileHeights.elapsed = a.mobileHeights.now - a.mobileHeights.then, a.mobileHeights.elapsed > a.mobileHeights.fpsInterval && (a.mobileHeights.then = a.mobileHeights.now - a.mobileHeights.elapsed % a.mobileHeights.fpsInterval, a.getWindowDimension()) }, pageHandler: function (i) { a.globalListener = !0, a.window = e(window), a.document = e(document), a.RS_toInit = {}, a.RS_prioList = [], a.RS_swapping = [], a.RS_swapList = {}, window.isSafari11 === t && (window.isSafari11 = a.isSafari11()), a.ISM ? (window.addEventListener("orientationchange", function () { a.getWindowDimension(!1, !0), setTimeout(function () { a.getWindowDimension(!0, !0) }, 400) }), window.addEventListener("resize", a.getWindowDimension), tpGS.gsap.delayedCall(3, function () { window.removeEventListener("resize", a.getWindowDimension) }), a.mobileHeights = { fpsInterval: 500, then: Date.now() }, a[i].ignoreHeightChange || a.mobileHeights.checking || (a.mobileHeights.checking = !0, a.mobileTimedHeightCheck())) : window.addEventListener("resize", a.getWindowDimension), a.getWindowDimension(!1), a.stickySupported = !1, "IE" !== window.RSBrowser && (a.stickySupported = !0), a.checkParrentOverflows(i); var r = a.getByTag(document, "RS-MODULE"); for (var o in r) r.hasOwnProperty(o) && (a.RS_toInit[r[o].id] = !1, a.RS_prioList.push(r[o].id)); a.nextSlider = i, a.RS_prioListFirstInit = !0, a.document.one("click", function () { a.clickedOnce = !0 }), document.addEventListener("visibilitychange", B), a.hasNavClickListener === t && (a.document.on(a.is_mobile() ? "touchstart" : "mouseenter", ".tparrows, .tp-bullets, .tp-bullet, .tp-tab, .tp-thumb, .tp-thumbs, .tp-tabs, .tp-rightarrow, .tp-leftarrow", function (e) { this.classList.add("rs-touchhover") }), a.document.on(a.is_mobile() ? "touchend" : "mouseleave", ".tparrows, .tp-bullets, .tp-bullet, .tp-tab, .tp-thumb, .tp-tabs, .tp-rightarrow, .tp-leftarrow", function (e) { var t = this; requestAnimationFrame(function () { t.classList.remove("rs-touchhover") }) }), a.hasNavClickListener = !0) }, destroyCanvas: function (e) { e && (e.width = e.height = 0, e.remove(), e = null) }, checkParrentOverflows: function (e) { window.requestAnimationFrame(function () { for (var t = a[e].cpar[0]; t.parentNode && !1 !== a.stickySupported;) { if ("RS-MODULE-WRAP" !== t.tagName && "RS-FULLWIDTH-WRAP" !== t.tagName && "RS-MODULE-WRAP" !== t.tagName && -1 === t.className.indexOf("wp-block-themepunch-revslider")) { var i = window.getComputedStyle(t); a.stickySupported = "hidden" !== i.overflow && "hidden" !== i.overflowX && "hidden" !== i.overflowY } t = t.parentNode } }) }, observeRemoved: function (e) { new MutationObserver(function (t) { try { document.body.contains(t[0].target) || a[e].c.revkill() } catch (t) { } }).observe(a[e].cpar[0], {childList: !0}) }, initNextRevslider: function (e) { a.RS_prioList[0] === e && !1 === a.RS_toInit[e] ? (a.RS_toInit[e] = "waiting", c(e), setTimeout(function () { a.initNextRevslider(e) }, 19)) : a.RS_prioList[0] === e && "waiting" === a.RS_toInit[e] ? setTimeout(function () { a.initNextRevslider(e) }, 19) : a.RS_prioList[0] === e && !0 === a.RS_toInit[e] ? (a.RS_prioList.shift(), 0 !== a.RS_prioList.length && setTimeout(function () { a.initNextRevslider(e) }, 19)) : a.RS_prioList[0] !== e && !1 === a.RS_toInit[e] ? setTimeout(function () { a.initNextRevslider(e) }, 19) : 0 === a.RS_prioList.length && !0 === a.RS_toInit[e] && c(e) }, scrollTicker: function (e) { 1 != a.scrollTickerAdded && (a.slidersToScroll = [], a.scrollTickerAdded = !0, a.ISM ? (tpGS.gsap.ticker.fps(150), tpGS.gsap.ticker.add(function () { a.generalObserver() })) : document.addEventListener("scroll", function (e) { a.scrollRaF === t && (a.scrollRaF = requestAnimationFrame(a.generalObserver.bind(this, !0))) }, {passive: !0})), a.slidersToScroll.push(e), a.generalObserver(a.ISM) }, generalObserver: function (e, i) { for (var r in a.scrollRaF && (a.scrollRaF = cancelAnimationFrame(a.scrollRaF)), a.lastwindowheight = a.lastwindowheight || a.winH, a.scrollY = window.scrollY, a.slidersToScroll) a.slidersToScroll.hasOwnProperty(r) && a.scrollHandling(a.slidersToScroll[r], e, t, i) }, wrapObserver: { targets: [], init: function (e) { var t = 1, i = 0, r = 0, o = s.bind(a.wrapObserver); function s() { if (r++, requestAnimationFrame(o), !(r - i < 30 / t)) { i = r; for (var s = 0; s < a.wrapObserver.targets.length; s++) if (a.wrapObserver.targets.hasOwnProperty(s)) { var n = a.wrapObserver.targets[s], l = n.elem.getBoundingClientRect(); n.lw === l.width && n.lh === l.height || 0 === l.width || (n.callback && (n.callback.pause(), n.callback.kill(), n.callback = null), n.callback = tpGS.gsap.to({}, { duration: .2, onComplete: e.bind(window, n.elem, n.id) })), n.lw = l.width, n.lh = l.height } } } s() }, observe: function (e, t) { if ("" !== (e = e.getBoundingClientRect ? e : e[0].getBoundingClientRect ? e[0] : "")) { var i = e.getBoundingClientRect(); a.wrapObserver.targets.push({elem: e, id: t, lw: i.width, lh: i.height}) } } }, enterViewPort: function (i, r) { !0 !== a[i].started ? (a[i].started = !0, a.lazyLoadAllSlides(i), a[i].c.trigger("revolution.slide.firstrun"), setTimeout(function () { L(i), "hero" !== a[i].sliderType && a.manageNavigation && a[i].navigation.use && !0 === a[i].navigation.createNavigationDone && a.manageNavigation(i), a[i].slideamount > 1 && A(i), setTimeout(function () { a[i] !== t && (a[i].revolutionSlideOnLoaded = !0, a[i].c.trigger("revolution.slide.onloaded"), a.calcScrollToId()) }, 50) }, a[i].startDelay), a[i].startDelay = 0, window.requestAnimationFrame(function () { m(i) })) : (a[i].waitForCountDown && (A(i), a[i].waitForCountDown = !1), "playing" != a[i].sliderlaststatus && a[i].sliderlaststatus != t || a[i].c.trigger("starttimer"), a[i].lastplayedvideos != t && a[i].lastplayedvideos.length > 0 && e.each(a[i].lastplayedvideos, function (e, t) { a.playVideo(t, i) })) }, leaveViewPort: function (i) { a[i].sliderlaststatus = a[i].sliderstatus, a[i].c.trigger("stoptimer"), a[i].playingvideos != t && a[i].playingvideos.length > 0 && (a[i].lastplayedvideos = e.extend(!0, [], a[i].playingvideos), a[i].playingvideos && e.each(a[i].playingvideos, function (e, t) { a[i].leaveViewPortBasedStop = !0, a.stopVideo && a.stopVideo(t, i) })) }, scrollHandling: function (e, i, r, o) { if (a[e] !== t) { var s = a[e].topc !== t ? a[e].topc[0].getBoundingClientRect() : 0 === a[e].canv.height ? a[e].cpar[0].getBoundingClientRect() : a[e].c[0].getBoundingClientRect(), n = a.ISM ? window.innerHeight : a.lastwindowheight; s.hheight = 0 === s.height ? 0 === a[e].canv.height ? a[e].module.height : a[e].canv.height : s.height, a[e].scrollproc = s.top < 0 || s.hheight > n && s.top < n ? s.top / s.hheight : s.bottom > n ? (s.bottom - n) / s.hheight : 0; var l = Math.max(0, 1 - Math.abs(a[e].scrollproc)); a[e].viewPort.enable && ("%" === a[e].viewPort.vaType[a[e].level] && (a[e].viewPort.visible_area[a[e].level] <= l || l > 0 && l <= 1 && a[e].sbtimeline.fixed) || "px" === a[e].viewPort.vaType[a[e].level] && (s.top <= 0 && s.bottom >= a.lastwindowheight || s.top >= 0 && s.bottom <= a.lastwindowheight || s.top >= 0 && s.top < a.lastwindowheight - a[e].viewPort.visible_area[a[e].level] || s.bottom >= a[e].viewPort.visible_area[a[e].level] && s.bottom < a.lastwindowheight) ? a[e].inviewport || (a[e].inviewport = !0, a.enterViewPort(e, !0), a[e].c.trigger("enterviewport")) : a[e].inviewport && (a[e].inviewport = !1, a.leaveViewPort(e), a[e].c.trigger("leftviewport"))), a[e].inviewport ? (a.callBackHandling && a.callBackHandling(e, "parallax", "start"), requestAnimationFrame(function () { "fullscreen" === a[e].sliderLayout && a.getFullscreenOffsets(e) }), a.parallaxProcesses(e, s, o, r), a.callBackHandling && a.callBackHandling(e, "parallax", "end")) : !0 !== a.stickySupported && !1 !== a[e].fixedScrollOnState && (a[e].topc.removeClass("rs-fixedscrollon"), tpGS.gsap.set(a[e].cpar, { top: 0, y: 0 }), a[e].fixedScrollOnState = !1) } }, clone: function (e, i) { if (i === t && e === t) return {}; return function e(i, a) { var r = Array.isArray(i) ? [] : {}; for (var o in i) i.hasOwnProperty(o) && (i[o] !== t && "object" == typeof i[o] && a ? r[o] = e(i[o], !0) : i[o] !== t && (r[o] = i[o])); return r }(e, i) }, closest: function (e, t) { return e && (t(e) ? e : a.closest(e.parentNode, t)) }, closestNode: function (e, t) { return a.closest(e, function (e) { return e.nodeName === t }) }, closestClass: function (e, t) { return a.closest(e, function (e) { return (" " + e.className + " ").indexOf(" " + t + " ") >= 0 }) }, getWinH: function (e) { return a[e].ignoreHeightChange ? a.mobileWinH : a.winH }, getWindowDimension: function (e, i) { !1 === e ? (a.rAfScrollbar = "skip", a.winWAll = a.ISM && window.visualViewport ? document.documentElement.clientWidth : window.innerWidth, a.winWSbar = document.documentElement.clientWidth, a.ISM ? (a.zoom = i ? 1 : a.winWSbar / a.winWAll, a.winW = 1 !== a.zoom ? a.winWSbar * a.zoom : Math.min(a.winWAll, a.winWSbar), a.winH = 1 !== a.zoom ? window.innerHeight * a.zoom : window.innerHeight, i && window.visualViewport && (a.winH *= window.visualViewport.scale, a.winWAll *= window.visualViewport.scale), a.scrollBarWidth = 0) : (a.isModalOpen && a.openModalId !== t && a[a.openModalId] !== t && a[a.openModalId].canv.height > a.winH ? a.scrollBarWidth = a.mesuredScrollbarWidth : a.scrollBarWidth = a.winWAll - a.winWSbar, a.winW = Math.min(a.winWAll, a.winWSbar), a.winH = window.innerHeight), a.ISM && a.winH > 125 && (a.lastwindowheight !== t && Math.abs(a.lastwindowheight - a.winH) < 125 ? a.mobileWinH = a.lastwindowheight : a.mobileWinH = a.winH)) : clearTimeout(a.windowDimenstionDelay), a.windowDimenstionDelay = setTimeout(function () { a.rAfScrollbar = t, a.winWAll = a.ISM && window.visualViewport ? document.documentElement.clientWidth : window.innerWidth, a.winWSbar = document.documentElement.clientWidth, a.ISM ? (a.zoom = i ? 1 : a.winWSbar / a.winWAll, a.RS_px_ratio = window.devicePixelRatio || window.screen.availWidth / document.documentElement.clientWidth, a.winW = 1 !== a.zoom ? a.winWSbar * a.zoom : Math.min(a.winWAll, a.winWSbar), a.winH = 1 !== a.zoom ? window.innerHeight * a.zoom : window.innerHeight, i && window.visualViewport && (a.winH *= window.visualViewport.scale, a.winWAll *= window.visualViewport.scale), a.scrollBarWidth = 0, i && tpGS.gsap.delayedCall(.1, function () { a.getWindowDimension() })) : (a.isModalOpen && a.openModalId !== t && a[a.openModalId] !== t && a[a.openModalId].canv.height > a.winH ? a.scrollBarWidth = a.mesuredScrollbarWidth : a.scrollBarWidth = a.winWAll - a.winWSbar, a.winW = Math.min(a.winWAll, a.winWSbar), a.winH = window.innerHeight), a.ISM && a.winH > 125 && (a.lastwindowheight !== t && Math.abs(a.lastwindowheight - a.winH) < 125 ? a.mobileWinH = a.lastwindowheight : a.mobileWinH = a.winH), !1 !== e && a.document.trigger("updateContainerSizes") }, 100) }, aC: function (t, i) { t && (t.classList && t.classList.add ? t.classList.add("" + i) : e(t).addClass(i)) }, rC: function (t, i) { t && (t.classList && t.classList.remove ? t.classList.remove("" + i) : e(t).removeClass(i)) }, sA: function (e, t, i) { e && e.setAttribute && e.setAttribute("data-" + t, i) }, gA: function (e, i, a) { return e === t ? t : e.hasAttribute && e.hasAttribute("data-" + i) && e.getAttribute("data-" + i) !== t && null !== e.getAttribute("data-" + i) ? e.getAttribute("data-" + i) : a !== t ? a : t }, rA: function (e, t) { e && e.removeAttribute && e.removeAttribute("data-" + t) }, iWA: function (e, i) { return a[e].justifyCarousel ? "static" === i ? a[e].carousel.wrapwidth : a[e].carousel.slide_widths[i !== t ? i : a[e].carousel.focused] : a[e].gridwidth[a[e].level] }, iHE: function (e, t) { return a[e].useFullScreenHeight ? a[e].canv.height : Math.max(a[e].currentRowsHeight, a[e].gridheight[a[e].level]) }, updateFixedScrollTimes: function (e) { !0 === a[e].sbtimeline.set && !0 === a[e].sbtimeline.fixed && "auto" !== a[e].sliderLayout && (a[e].sbtimeline.rest = a[e].duration - a[e].sbtimeline.fixEnd, a[e].sbtimeline.time = a[e].duration - (a[e].sbtimeline.fixStart + a[e].sbtimeline.rest), a[e].sbtimeline.extended = a[e].sbtimeline.time / 10) }, addSafariFix: function (e) { !0 === window.isSafari11 && !0 !== a[e].safari3dFix && (a[e].safari3dFix = !0, a[e].c[0].className += " safarifix") }, openModalAPI: function (i, r, o, s, n, l) { if (window.RS_60_MODALS !== t && -1 != e.inArray(i, window.RS_60_MODALS) || window.RS_60_MODAL_API_CALLS !== t && -1 != e.inArray(i, window.RS_60_MODAL_API_CALLS)) e.inArray(i, window.RS_60_MODALS) >= 0 && e.fn.revolution.document.trigger("RS_OPENMODAL_" + i, r); else { window.RS_60_MODAL_API_CALLS = window.RS_60_MODAL_API_CALLS || [], window.RS_60_MODAL_API_CALLS.push(i), l === t && (l = {}), l.alias === t && (l.alias = i), s && a.showModalCover(n, l, "show"); var d = { action: "revslider_ajax_call_front", client_action: "get_slider_html", alias: i, usage: "modal" }; e.ajax({ type: "post", url: o, dataType: "json", data: d, success: function (o, d, c) { if (null !== o && 1 == o.success) { var p; if (n = n == t ? o.htmlid : n, o.waiting !== t) for (p in o.waiting) -1 == e.inArray(o.waiting[p], RS_MODULES.waiting) && (RS_MODULES.waiting.push(o.waiting[p]), window.RS_MODULES.minimal = !1); if (o.toload !== t) { var g = ""; for (p in RS_MODULES = RS_MODULES || {}, RS_MODULES.requestedScripts = [], o.toload) o.toload.hasOwnProperty(p) && (RS_MODULES != t && RS_MODULES[p] != t && !0 === RS_MODULES[p].loaded || -1 === e.inArray(p, RS_MODULES.requestedScripts) && (RS_MODULES.requestedScripts.push(p), g += o.toload[p])); "" !== g && e("body").append(g) } RS_MODULES !== t && RS_MODULES.modules[o.htmlid] != t || e("body").append(o.data), s && a.showModalCover(n, l, "hide"), a[i] !== t && a[i].openModalApiListener ? e.fn.revolution.document.trigger("RS_OPENMODAL_" + i, r) : e(document).on("RS_MODALOPENLISTENER_" + i, function (t) { e.fn.revolution.document.trigger("RS_OPENMODAL_" + i, r) }) } else s && a.showModalCover(n, l, "hide") }, error: function (e) { s && a.showModalCover(n, l, "hide"), console.log("Modal Can not be Loaded"), console.log(e) } }) } }, showModalCover: function (i, r, o) { switch (o) { case"show": var s; if (r.spin !== t && "off" !== r.spin && (s = a.buildSpinner(i, "spinner" + r.spin, r.spinc, "modalspinner")), r.bg !== t && !1 !== r.bg && "false" !== r.bg && "transparent" !== r.bg) { var n = e(''); e("body").append(n), r.speed = parseFloat(r.speed), r.speed = r.speed > 200 ? r.speed / 1e3 : r.speed, r.speed = Math.max(Math.min(3, r.speed), .3), tpGS.gsap.to(n, r.speed, { display: "block", opacity: 1, ease: "power3.inOut" }), a.isModalOpen = !0, s !== t && n.append(s) } else s !== t && a[i].c.append(s); break; case"hide": (n = e('rs-modal-cover[data-alias="' + r.alias + '"] .modalspinner')) !== t && n.length > 0 ? n.remove() : i !== t && a[i].c.find(".modalspinner").remove() } }, revModal: function (i, r) { if (i !== t && a[i] !== t && "clicked" !== a[i].modal.closeProtection) { if (!0 === a[i].modal.closeProtection) return a[i].modal.closeProtection, void setTimeout(function () { a[i].modal.closeProtection = !1, a.revModal(i, r) }, 750); switch (a[i].modal.lastModalCall = r.mode, r.mode) { case"show": if (!0 === a[i].modal.isLive) return; if (!0 === a.anyModalclosing) return; a.document.trigger("RS_MODALOPENED"), a[i].modal.isLive = !0, r.slide = r.slide === t ? "to0" : r.slide, a[i].modal.bodyclass !== t && a[i].modal.bodyclass.length >= 0 && document.body.classList.add(a[i].modal.bodyclass), a[i].modal.bg.attr("data-rid", i), tpGS.gsap.to(a[i].modal.bg, a[i].modal.coverSpeed, { display: "block", opacity: 1, ease: "power3.inOut" }), tpGS.gsap.set(a[i].modal.c, { display: "auto" === a[i].sliderLayout ? "inline-block" : "block", opacity: 0 }), a[i].cpar.removeClass("hideallscrollbars"), tpGS.gsap.set(a[i].cpar, { display: "block", opacity: 1 }); var o = {a: 0}; a.isModalOpen = !0, a[i].clearModalBG = !0, "carousel" === a[i].sliderType && a[i].pr_active_bg !== t && a[i].pr_active_bg.length > 0 && tpGS.gsap.to(a[i].pr_active_bg, .5, {opacity: 1}), tpGS.gsap.fromTo(o, a[i].modal.coverSpeed / 5, {a: 0}, { a: 10, ease: "power3.inOut", onComplete: function () { a.openModalId = i, a[i].sliderisrunning ? ("to0" !== r.slide && (a[i].startedWithOtherSlide = !0), a.callingNewSlide(i, r.slide)) : ("to0" !== r.slide && (a[i].startWithSlideKey = r.slide), h(i)) } }), setTimeout(function () { tpGS.gsap.fromTo([a[i].modal.c], .01, {opacity: 0}, { opacity: 1, delay: a[i].modal.coverSpeed / 4, ease: "power3.inOut", onComplete: function () { } }), window.overscrollhistory = document.body.style.overflow, a[i].modal.allowPageScroll || (document.body.style.overflow = "hidden"), "fullscreen" === a[i].sliderLayout && a.getWindowDimension() }, 250), "fullscreen" !== a[i].sliderLayout && a.getWindowDimension(); break; case"close": if (!0 === a.anyModalclosing) return; a.anyModalclosing = !0, a.openModalId = t, k(i), document.body.style.overflow = window.overscrollhistory, a[i].cpar.addClass("hideallscrollbars"), a[i].c.trigger("stoptimer"), a[i].modal.bodyclass !== t && a[i].modal.bodyclass.length >= 0 && document.body.classList.remove(a[i].modal.bodyclass), tpGS.gsap.to(a[i].modal.bg, a[i].modal.coverSpeed, { display: "none", opacity: 0, ease: "power3.inOut" }), tpGS.gsap.to(a[i].modal.c, a[i].modal.coverSpeed / 6.5, { display: "none", delay: a[i].modal.coverSpeed / 4, opacity: 0, onComplete: function () { tpGS.gsap.set(a[i].cpar, { display: "none", opacity: 0 }), a.document.trigger("revolution.all.resize"), a.document.trigger("revolution.modal.close", [a[i].modal]), a.getWindowDimension(), a.isModalOpen = !1 } }), a[i].modal.closeProtection = !0, clearTimeout(a[i].modal.closeTimer), a[i].modal.closeTimer = setTimeout(function () { a.anyModalclosing = !1, a[i].modal.isLive = !1, a[i].modal.closeProtection = !1 }, Math.max(750, 1020 * a[i].modal.coverSpeed)); break; case"init": if (window.RS_60_MODALS = window.RS_60_MODALS === t ? [] : window.RS_60_MODALS, -1 === e.inArray(a[i].modal.alias, window.RS_60_MODALS) && window.RS_60_MODALS.push(a[i].modal.alias), a[i].modal.listener === t && (a[i].modal.c = e("#" + i + "_modal"), !1 !== a[i].modal.cover && "false" !== a[i].modal.cover || (a[i].modal.coverColor = "transparent"), a[i].modal.bg = e('rs-modal-cover[data-alias="' + a[i].modal.alias + '"]'), a[i].modal.bg === t || 0 === a[i].modal.bg.length ? (a[i].modal.bg = e(''), "auto" === a[i].sliderLayout && a[i].modal.cover ? e("body").append(a[i].modal.bg) : a[i].modal.c.append(a[i].modal.bg)) : a[i].modal.bg.attr("data-rid", i), a[i].modal.c[0].className += "rs-modal-" + a[i].sliderLayout, a[i].modal.calibration = { left: "auto" === a[i].sliderLayout ? "center" === a[i].modal.horizontal ? "50%" : "left" === a[i].modal.horizontal ? "0px" : "auto" : "0px", right: "auto" === a[i].sliderLayout ? "center" === a[i].modal.horizontal ? "auto" : "left" === a[i].modal.horizontal ? "auto" : "0px" : "0px", top: "auto" === a[i].sliderLayout || "fullwidth" === a[i].sliderLayout ? "middle" === a[i].modal.vertical ? "50%" : "top" === a[i].modal.vertical ? "0px" : "auto" : "0px", bottom: "auto" === a[i].sliderLayout || "fullwidth" === a[i].sliderLayout ? "middle" === a[i].modal.vertical ? "auto" : "top" === a[i].modal.vertical ? "auto" : "0px" : "0px", y: ("auto" === a[i].sliderLayout || "fullwidth" === a[i].sliderLayout) && "middle" === a[i].modal.vertical ? "-50%" : 0, x: "auto" === a[i].sliderLayout && "center" === a[i].modal.horizontal ? "-50%" : 0 }, "-50%" === a[i].modal.calibration.y && (a[i].modal.calibration.filter = "blur(0px)"), tpGS.gsap.set(a[i].modal.c, "auto" === a[i].sliderLayout || "fullscreen" === a[i].sliderLayout ? e.extend(!0, a[i].modal.calibration, { opacity: 0, display: "none" }) : { opacity: 0, display: "none" }), "fullwidth" === a[i].sliderLayout && tpGS.gsap.set(a[i].modal.c.find("rs-module-wrap"), a[i].modal.calibration), a.document.on("RS_OPENMODAL_" + a[i].modal.alias, function (e, r) { e !== t && e.detail !== t && e.detail.slide !== t && r == t && (r = e.detail.slide), a[i].initEnded = !0, a.revModal(i, { mode: "show", slide: r }) }), a[a[i].modal.alias] = a[a[i].modal.alias] || {}, a[a[i].modal.alias].openModalApiListener = !0, a.document.trigger("RS_MODALOPENLISTENER_" + a[i].modal.alias), a.document.on("click", "rs-modal-cover", function () { a.revModal(a.gA(this, "rid"), {mode: "close"}) }), a[i].modal.listener = !0, a[i].modal.trigger !== t)) { var s, n = a[i].modal.trigger.split(";"); for (o in a[i].modal.trigger = {}, n) if (n.hasOwnProperty(o)) switch ((s = n[o].split(":"))[0]) { case"t": a[i].modal.trigger.time = parseInt(s[1], 0); break; case"s": a[i].modal.trigger.scroll = s[1]; break; case"so": a[i].modal.trigger.scrollo = parseInt(s[1], 0); break; case"e": a[i].modal.trigger.event = s[1]; break; case"ha": a[i].modal.trigger.hash = s[1]; break; case"co": a[i].modal.trigger.cookie = s[1] } var l = !0; if (a[i].modal.trigger.cookie !== t ? l = "true" !== a.getCookie(a[i].modal.alias + "_modal_one_time") : "true" == a.getCookie(a[i].modal.alias + "_modal_one_time") && a.setCookie(a[i].modal.alias + "_modal_one_time", !1, 10), l && (a[i].modal.trigger.time !== t && 0 !== a[i].modal.trigger.time && (a[i].modal.trigger.cookie !== t && a.setCookie(a[i].modal.alias + "_modal_one_time", !0, a[i].modal.trigger.cookie), setTimeout(function () { a.document.trigger("RS_OPENMODAL_" + a[i].modal.alias) }, a[i].modal.trigger.time)), a[i].modal.trigger.scrollo !== t || a[i].modal.trigger.scroll !== t)) { a[i].modal.trigger.scroll !== t && e(a[i].modal.trigger.scroll)[0] !== t && (a[i].modal.trigger.scroll = e(a[i].modal.trigger.scroll)[0]); var d = function () { if (a[i].modal.trigger.scroll !== t) var e = "string" == typeof a[i].modal.trigger.scroll ? document.getElementById(a[i].modal.trigger.scroll) : "object" == typeof a[i].modal.trigger.scroll ? a[i].modal.trigger.scroll : t, r = e !== t && null !== e ? a[i].modal.trigger.scroll.getBoundingClientRect() : t; (a[i].modal.trigger.scroll !== t && r !== t && Math.abs(r.top + (r.bottom - r.top) / 2 - a.getWinH(i) / 2) < 50 || a[i].modal.trigger.scrollo !== t && Math.abs(a[i].modal.trigger.scrollo - (a.scrollY !== t ? a.scrollY : window.scrollY)) < 100) && (a.document.trigger("RS_OPENMODAL_" + a[i].modal.alias), a[i].modal.trigger.cookie !== t && a.setCookie(a[i].modal.alias + "_modal_one_time", !0, a[i].modal.trigger.cookie), document.removeEventListener("scroll", d)) }; document.addEventListener("scroll", d, {id: i, passive: !0}) } a[i].modal.trigger.event !== t && a.document.on(a[i].modal.trigger.event, function () { a.document.trigger("RS_OPENMODAL_" + a[i].modal.alias) }), "t" == a[i].modal.trigger.hash && window.location.hash.substring(1) == a[i].modal.alias && a.document.trigger("RS_OPENMODAL_" + a[i].modal.alias) } } } }, smartConvertDivs: function (e) { var t = ""; if ("string" == typeof e && e.indexOf("#") >= 0) { var i = e.split(","), a = i.length - 1; for (var r in i) t = "string" == typeof i[r] && "#" === i[r][0] ? t + i[r][1] / i[r][3] * 100 + "%" + (r < a ? "," : "") : t + i[r] + (r < a ? "," : "") } else t = e; return t }, revToResp: function (e, i, a, r) { if ((e = e === t ? a : e) !== t) { if (r = r === t ? "," : r, "boolean" != typeof e && ("object" != typeof e || Array.isArray(e))) { try { e = e.replace(/[[\]]/g, "").replace(/\'/g, "").split(r) } catch (e) { } for (e = Array.isArray(e) ? e : [e]; e.length < i;) e[e.length] = e[e.length - 1] } return e } }, loadImages: function (i, r, o, s) { if (i !== t && 0 !== i.length) { var n = []; if (Array.isArray(i)) for (var l in i) i.hasOwnProperty(l) && i[l] !== t && n.push(i[l]); else n.push(i); for (var d in n) if (n.hasOwnProperty(d)) { var c = n[d].querySelectorAll("img, rs-sbg, .rs-svg"), p = a[r].lazyOnBg ? n[d].querySelectorAll("rs-bg-elem, rs-column, rs-layer") : []; for (var l in c) if (c.hasOwnProperty(l)) { c[l] !== t && c[l].dataset !== t && c[l].dataset.src !== t && c[l].dataset.src.indexOf("dummy.png") >= 0 && c[l].src.indexOf("data") >= 0 && delete c[l].dataset.src; var u = g(c[l], t, r), h = u !== t ? u : a.gA(c[l], "svg_src") != t ? a.gA(c[l], "svg_src") : c[l].src === t ? e(c[l]).data("src") : c[l].src, m = a.gA(c[l], "svg_src") != t ? "svg" : "img"; h !== t && a[r].loadqueue !== t && 0 == a[r].loadqueue.filter(function (e) { return e.src === h }).length && a[r].loadqueue.push({ src: h, img: c[l], index: l, starttoload: Date.now(), type: m || "img", prio: o, progress: c[l].complete && h === c[l].src ? "loaded" : "prepared", static: s, width: c[l].complete && h === c[l].src ? c[l].width : t, height: c[l].complete && h === c[l].src ? c[l].height : t }) } for (var l in p) p.hasOwnProperty(l) && p[l] !== t && p[l].dataset !== t && p[l].dataset.bglazy !== t && p[l].style.backgroundImage.indexOf("dummy.png") >= 0 && (p[l].style.backgroundImage = 'url("' + p[l].dataset.bglazy + '")'); p[l] !== t && p[l].dataset !== t && p[l].dataset.bglazy !== t && p[l].style.backgroundImage.indexOf("dummy.png") >= 0 && (p[l].style.backgroundImage = 'url("' + p[l].dataset.bglazy + '")') } !a[r].cparBgChecked && a[r].cpar[0] !== t && a[r].cpar[0].dataset !== t && a[r].cpar[0].dataset.bglazy !== t && a[r].cpar[0].style.backgroundImage.indexOf("dummy.png") >= 0 && (a[r].cparBgChecked = !0, a[r].cpar[0].style.backgroundImage = 'url("' + a[r].cpar[0].dataset.bglazy + '")'), _(r) } }, waitForCurrentImages: function (i, r, o) { if (i !== t && 0 !== i.length && a[r] !== t) { var s = !1, n = []; if (Array.isArray(i)) for (var l in i) i.hasOwnProperty(l) && i[l] !== t && n.push(i[l]); else n.push(i); for (var d in n) if (n.hasOwnProperty(d)) { var c = n[d].querySelectorAll("img, rs-sbg, .rs-svg"); for (l in c) if (c.hasOwnProperty(l) && "length" !== l && !(c[l].className.indexOf("rs-pzimg") >= 0)) { var p = e(c[l]).data(), u = g(c[l], t, r), h = u !== t ? u : a.gA(c[l], "svg_src") != t ? a.gA(c[l], "svg_src") : c[l].src === t ? p.src : c[l].src, m = a.getLoadObj(r, h); if (a.sA(c[l], "src-rs-ref", h), p.loaded === t && m !== t && m.progress && "loaded" == m.progress) { if ("img" == m.type) { if (c[l].src.slice(c[l].src.length - 10) !== m.src.slice(m.src.length - 10) && (c[l].src = m.src), p.slidebgimage) { -1 == m.src.indexOf("images/transparent.png") && -1 == m.src.indexOf("assets/transparent.png") || p.bgcolor === t || p.bgcolor !== t && "transparent" !== p.bgcolor && (m.bgColor = !0, m.useBGColor = !0), a.sA(n[d], "owidth", m.width), a.sA(n[d], "oheight", m.height); var v = a.getByTag(n[d], "RS-SBG-WRAP"), f = a.gA(n[d], "key"); if (a[r].sbgs[f].loadobj = m, v.length > 0 && (a.sA(v[0], "owidth", m.width), a.sA(v[0], "oheight", m.height)), "carousel" === a[r].sliderType) { var y = e(v), w = a.getSlideIndex(r, f); (a[r].carousel.justify && a[r].carousel.slide_widths === t || a[r].carousel.slide_width === t) && a.setCarouselDefaults(r, !0), y.data("panzoom") === t || a[r].panzoomTLs !== t && a[r].panzoomTLs[w] !== t || a.startPanZoom(y, r, 0, w, "prepare", f), a[r].sbgs[f].isHTML5 && !a[r].sbgs[f].videoisplaying && (a[r].sbgs[f].video = a[r].sbgs[f].loadobj.img), n[d].getAttribute("data-iratio") !== t && !n[d].getAttribute("data-iratio") && m.img && m.img.naturalWidth && (n[d].setAttribute("data-iratio", m.img.naturalWidth / m.img.naturalHeight), a.setCarouselDefaults(r, "redraw", !0), !0 === a[r].carousel.ocfirsttun && a.organiseCarousel(r, "right", !0, !1, !1)), a.updateSlideBGs(r, f, a[r].sbgs[f]) } } } else "svg" == m.type && "loaded" == m.progress && (c[l].innerHTML = m.innerHTML); p.loaded = !0 } m && m.progress && m.progress.match(/inprogress|inload|prepared/g) && (!m.error && Date.now() - m.starttoload < 15e3 ? s = !0 : (m.progress = "failed", m.reported_img || (m.reported_img = !0, console.log(h + " Could not be loaded !")))), 1 != a[r].youtubeapineeded || window.YT && YT.Player != t || (s = x("youtube", r)), 1 != a[r].vimeoapineeded || window.Vimeo || (s = x("vimeo", r)) } } e.each(a[r].loadqueue, function (e, t) { !0 === t.static && ("loaded" != t.progress && "done" !== t.progress || "failed" === t.progress) && ("failed" != t.progress || t.reported ? !t.error && Date.now() - t.starttoload < 5e3 ? s = !0 : t.reported || (t.reported = S(t.src, t.error)) : t.reported = S(t.src, t.error)) }), s ? tpGS.gsap.delayedCall(.02, a.waitForCurrentImages, [i, r, o]) : o !== t && tpGS.gsap.delayedCall(1e-4, o) } }, updateVisibleArea: function (e) { for (var i in a[e].viewPort.visible_area = a.revToResp(a[e].viewPort.visible_area, a[e].rle, "0px"), a[e].viewPort.vaType = new Array(4), a[e].viewPort.visible_area) a[e].viewPort.visible_area.hasOwnProperty(i) && (!1 === a[e].viewPort.local && !0 === a[e].viewPort.global ? (a[e].viewPort.vaType[i] = a[e].viewPort.globalDist.indexOf("%") >= 0 ? "%" : "px", a[e].viewPort.visible_area[i] = parseInt(a[e].viewPort.globalDist)) : (a.isNumeric(a[e].viewPort.visible_area[i]) && (a[e].viewPort.visible_area[i] += "%"), a[e].viewPort.visible_area[i] !== t && (a[e].viewPort.vaType[i] = a[e].viewPort.visible_area[i].indexOf("%") >= 0 ? "%" : "px"), a[e].viewPort.visible_area[i] = parseInt(a[e].viewPort.visible_area[i], 0)), a[e].viewPort.visible_area[i] = "%" == a[e].viewPort.vaType[i] ? a[e].viewPort.visible_area[i] / 100 : a[e].viewPort.visible_area[i]) }, observeFonts: function (e, i, r) { r = r === t ? 0 : r, a.fonts === t && (a.fonts = {}, a.monoWidth = l("monospace"), a.sansWidth = l("sans-serif"), a.serifWidth = l("serif")), r++; var o = a.fonts[e]; !0 !== a.fonts[e] && (a.fonts[e] = a.monoWidth !== l(e + ",monospace") || a.sansWidth !== l(e + ",sans-serif") || a.serifWidth !== l(e + ",serif")), 100 === r || (!1 === o || o === t) && !0 === a.fonts[e] ? (l(e + ",monospace", !0), l(e + ",sans-serif", !0), l(e + ",serif", !0), i()) : setTimeout(function () { a.observeFonts(e, i, r) }, 19) }, getversion: function () { return i }, currentSlideIndex: function (e) { return a[e].pr_active_key }, iOSVersion: function () { return !!(navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/iPad/i)) && navigator.userAgent.match(/OS 4_\d like Mac OS X/i) }, setIsIOS: function () { a.isiPhone = /iPhone|iPod/.test(navigator.userAgent) && !window.MSStream, a.isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || "MacIntel" === navigator.platform && void 0 !== navigator.standalone }, setIsChrome8889: function () { a.isChrome8889 = a.isChrome8889 === t ? navigator.userAgent.indexOf("Chrome/88") >= 0 || navigator.userAgent.indexOf("Chrome/89") >= 0 : a.isChrome8889 }, isIE: function () { if (a.isIERes === t) { var i = e('
').appendTo(e("body")); i.html("\x3c!--[if IE 8]>  1) || i); return i && document.body && -1 === document.body.className.indexOf("rs-ISM") && (document.body.className += " rs-ISM"), i }, is_android: function () { var e = ["android", "Android"], t = !1; for (var i in e) e.hasOwnProperty(i) && (t = !!(t || navigator.userAgent.split(e[i]).length > 1) || t); return t }, callBackHandling: function (t, i, r) { a[t].callBackArray && e.each(a[t].callBackArray, function (e, t) { t && t.inmodule && t.inmodule === i && t.atposition && t.atposition === r && t.callback && t.callback.call() }) }, get_browser: function () { var e, t = navigator.userAgent, i = t.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; return /trident/i.test(i[1]) ? (e = /\brv[ :]+(\d+)/g.exec(t) || [], "IE") : "Chrome" === i[1] && null != (e = t.match(/\b(OPR|Edge)\/(\d+)/)) ? e[1].replace("OPR", "Opera") : (i = i[2] ? [i[1], i[2]] : [navigator.appName, navigator.appVersion, "-?"], null != (e = t.match(/version\/(\d+)/i)) && i.splice(1, 1, e[1]), i[0]) }, get_browser_version: function () { var e, t = navigator.appName, i = navigator.userAgent, a = i.match(/(edge|opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i); return a && null != (e = i.match(/version\/([\.\d]+)/i)) && (a[2] = e[1]), (a = a ? [a[1], a[2]] : [t, navigator.appVersion, "-?"])[1] }, isFaceBook: function () { return a.isFaceBookApp == t && (a.isFaceBookApp = navigator.userAgent || navigator.vendor || window.opera, a.isFaceBookApp = a.isFaceBookApp.indexOf("FBAN") > -1 || a.isFaceBookApp.indexOf("FBAV") > -1), a.isFaceBookApp }, isFirefox: function (e) { return a[e].isFirefox = a[e].isFirefox === t ? "Firefox" === a.get_browser() : a[e].isFirefox, a.isFF = a[e].isFirefox, a[e].isFirefox }, isSafari11: function () { return "safari" === a.trim(a.get_browser().toLowerCase()) && parseFloat(a.get_browser_version()) >= 11 }, isWebkit: function () { var e = /(webkit)[ \/]([\w.]+)/.exec(navigator.userAgent.toLowerCase()); return e && e[1] && "webkit" === e[1] }, isIE11: function () { return a.IE11 = a.IE11 === t ? !!navigator.userAgent.match(/Trident.*rv\:11\./) : a.IE11, a.IE11 }, checkBackdrop: function () { var e = document.createElement("div"); e.style.cssText = "-webkit-backdrop-filter: blur(2px)"; var i = 0 != e.style.length, r = document.documentMode === t || document.documentMode > 9; i && r || (e.style.cssText = "backdrop-filter: blur(2px)", i = 0 != e.style.length), e = null, a.useBackdrop = i && r }, deepLink: function (e, i) { if (i !== t) { var r = parseInt(i.toString().replace(/^slide/, "").replace("-", ""), 10); if (isNaN(r)) for (var o in a[e].slides) if (a[e].slides.hasOwnProperty(o) && a.gA(a[e].slides[o], "deeplink") === i) { r = parseInt(a.gA(a[e].slides[o], "originalindex"), 10); break } return isNaN(r) || r < 1 || r > a[e].realslideamount ? void 0 : r } }, getHorizontalOffset: function (e, t) { var i = d(e, ".outer-left"), a = d(e, ".outer-right"); return "left" == t ? i : "right" == t ? a : "all" == t ? { left: i, right: a, both: i + a, inuse: i + a != 0 } : i + a }, getComingSlide: function (e, i) { var r = a[e].pr_next_key !== t ? a[e].pr_next_key : a[e].pr_processing_key !== t ? a[e].pr_processing_key : a[e].pr_active_key, o = 0; if (o = 0, a[e].pr_active_slide !== t && "true" == a.gA(a[e].pr_active_slide[0], "not_in_nav") && (r = a[e].pr_lastshown_key), i !== t && a.isNumeric(i) || i !== t && i.match(/to/g)) o = 1 === i || -1 === i ? parseInt(r, 0) + i < 0 ? a[e].slideamount - 1 : parseInt(r, 0) + i >= a[e].slideamount ? 0 : parseInt(r, 0) + i : (i = a.isNumeric(i) ? i : parseInt(i.split("to")[1], 0)) < 0 ? 0 : i > a[e].slideamount - 1 ? a[e].slideamount - 1 : i; else if (i) for (var s in a[e].slides) a[e].slides.hasOwnProperty(s) && (o = a[e].slides && a[e].slides[s] && (a.gA(a[e].slides[s], "key") === i || a[e].slides[s].id === i) ? s : o); return {nindex: o, aindex: r} }, callingNewSlide: function (e, i, r, o) { var s = a.getComingSlide(e, i); a[e].pr_next_key = s.nindex, a[e].sdir = "bullet" !== a[e].sc_indicator && a[e].pr_active_key == a[e].slideamount - 1 && 0 == a[e].pr_next_key ? 0 : a[e].pr_next_key < a[e].pr_active_key ? 1 : 0, r && a[e].carousel !== t && (a[e].carousel.focused = a[e].pr_next_key), "carousel" === a[e].sliderType && a[e].startedWithOtherSlide && (a[e].carousel.focused = a[e].pr_next_key, delete a[e].startedWithOtherSlide), a[e].ctNavElement ? a[e].ctNavElement = !1 : a[e].c.trigger("revolution.nextslide.waiting"), (a[e].started && s.aindex === a[e].pr_next_key && s.aindex === a[e].pr_lastshown_key || a[e].pr_next_key !== s.aindex && -1 != a[e].pr_next_key && a[e].pr_lastshown_key !== t) && L(e, r, o) }, getLoadObj: function (e, i) { var r = a[e].loadqueue !== t && a[e].loadqueue.filter(function (e) { return e.src === i })[0]; return r === t ? {src: i} : r }, getResponsiveLevel: function (e) { var t = 9999, i = 0, r = 0, o = 0; if (a[e].responsiveLevels && a[e].responsiveLevels.length) for (var s in a[e].responsiveLevels) a[e].responsiveLevels.hasOwnProperty(s) && (a.winWAll < a[e].responsiveLevels[s] && (0 == i || i > parseInt(a[e].responsiveLevels[s])) && (t = parseInt(a[e].responsiveLevels[s]), o = parseInt(s), i = parseInt(a[e].responsiveLevels[s])), a.winWAll > a[e].responsiveLevels[s] && i < a[e].responsiveLevels[s] && (i = parseInt(a[e].responsiveLevels[s]), r = parseInt(s))); return i < t ? r : o }, getSizeMultpilicator: function (e, t, i) { var r = {h: 0, w: 0}; return a[e].justifyCarousel ? r.h = r.w = 1 : (r.w = i.width / a[e].gridwidth[a[e].level], r.h = i.height / a[e].gridheight[a[e].level], r.w = isNaN(r.w) ? 1 : r.w, r.h = isNaN(r.h) ? 1 : r.h, 1 == a[e].enableUpscaling ? r.h = r.w : (r.h > r.w ? r.h = r.w : r.w = r.h, (r.h > 1 || r.w > 1) && (r.w = 1, r.h = 1))), r }, updateDims: function (e, i) { var r = a[e].pr_processing_key || a[e].pr_active_key || 0, o = a[e].pr_active_key || 0, s = a[e].modal !== t && a[e].modal.useAsModal, n = s ? a.winWAll : a.winW, l = !1; if (a[e].lastScrollBarWidth = a.scrollBarWidth, a[e].redraw = a[e].redraw === t ? {} : a[e].redraw, a[e].module = a[e].module === t ? {} : a[e].module, a[e].canv = a[e].canv === t ? {} : a[e].canv, a[e].content = a[e].content === t ? {} : a[e].content, a[e].drawUpdates = { c: {}, cpar: {}, canv: {} }, "carousel" == a[e].sliderType ? a[e].module.margins = { top: parseInt(a[e].carousel.padding_top || 0, 0), bottom: parseInt(a[e].carousel.padding_bottom || 0, 0) } : a[e].module.margins = { top: 0, bottom: 0 }, a[e].module.paddings === t && (a[e].module.paddings = { top: parseInt(a[e].cpar.css("paddingTop"), 0) || 0, bottom: parseInt(a[e].cpar.css("paddingBottom"), 0) || 0 }), a[e].blockSpacing !== t ? (a[e].block = { bottom: a[e].blockSpacing.bottom !== t ? parseInt(a[e].blockSpacing.bottom[a[e].level], 0) : 0, top: a[e].blockSpacing.top !== t ? parseInt(a[e].blockSpacing.top[a[e].level], 0) : 0, left: a[e].blockSpacing.left !== t ? parseInt(a[e].blockSpacing.left[a[e].level], 0) : 0, right: a[e].blockSpacing.right !== t ? parseInt(a[e].blockSpacing.right[a[e].level], 0) : 0 }, a[e].block.hor = a[e].block.left + a[e].block.right, a[e].block.ver = a[e].block.top + a[e].block.bottom) : a[e].block === t && (a[e].block = { top: 0, left: 0, right: 0, bottom: 0, hor: 0, ver: 0 }), a[e].blockSpacing !== t) { var d = { paddingLeft: a[e].block.left, paddingRight: a[e].block.right, marginTop: a[e].block.top, marginBottom: a[e].block.bottom }, c = JSON.stringify(d); d !== a[e].emptyObject && c !== a[e].caches.setsizeBLOCKOBJ && (tpGS.gsap.set(a[e].blockSpacing.block, d), a[e].caches.setsizeBLOCKOBJ = c, l = !0) } if (a[e].levelForced = a[e].level = a.getResponsiveLevel(e), a[e].rowHeights = a.getRowHeights(e), a[e].aratio = a[e].gridheight[a[e].level] / a[e].gridwidth[a[e].level], a[e].module.width = "auto" === a[e].sliderLayout || 1 == a[e].disableForceFullWidth ? a[e].cpar.width() : n - a[e].block.hor, a[e].outNavDims = a.getOuterNavDimension(e), a[e].canv.width = a[e].module.width - a[e].outNavDims.horizontal - (s ? a.scrollBarWidth : 0), s && "auto" === a[e].sliderLayout && (a[e].canv.width = Math.min(a[e].gridwidth[a[e].level], n)), "fullscreen" === a[e].sliderLayout || a[e].infullscreenmode) { var p = a.getWinH(e) - (!0 === a[e].modal.useAsModal ? 0 : a.getFullscreenOffsets(e)); a[e].canv.height = Math.max(a[e].rowHeights.cur, Math.max(p - a[e].outNavDims.vertical, a[e].minHeight)), o !== r && (a[e].currentSlideHeight = Math.max(a[e].rowHeights.last, Math.max(p - a[e].outNavDims.vertical, a[e].minHeight)), a[e].redraw.maxHeightOld = !0), a[e].drawUpdates.c.height = "100%" } else a[e].canv.height = a[e].keepBPHeight ? a[e].gridheight[a[e].level] : Math.round(a[e].canv.width * a[e].aratio), a[e].canv.height = a[e].autoHeight ? a[e].canv.height : Math.min(a[e].canv.height, a[e].gridheight[a[e].level]), a[e].carousel.prevNextVisCalculated = "carousel" == a[e].sliderType && "v" == a[e].carousel.orientation ? "%" == a[e].carousel.prevNextVisType ? a[e].canv.height * a[e].carousel.prevNextVis : a[e].carousel.prevNextVis : 0, a[e].canv.height = Math.max(Math.max(a[e].rowHeights.cur, a[e].canv.height), a[e].minHeight) + a[e].carousel.prevNextVisCalculated, a[e].drawUpdates.c.height = a[e].canv.height; "fullscreen" !== a[e].sliderLayout && "fullwidth" !== a[e].sliderLayout || (a[e].canv.width -= a[e].cpar.outerWidth() - a[e].cpar.width(), "fullscreen" === a[e].sliderLayout && (a[e].canv.height -= a[e].cpar.outerHeight() - a[e].cpar.height())), a[e].module.height = a[e].canv.height, "fullwidth" != a[e].sliderLayout || a[e].fixedOnTop || (a[e].drawUpdates.c.maxHeight = 0 != a[e].maxHeight ? Math.min(a[e].canv.height, a[e].maxHeight) : a[e].canv.height), a[e].CM = a.getSizeMultpilicator(e, a[e].enableUpscaling, { width: a[e].canv.width, height: a[e].canv.height }), a[e].content.width = a[e].gridwidth[a[e].level] * a[e].CM.w, a[e].content.height = Math.round(Math.max(a[e].rowHeights.cur, a[e].gridheight[a[e].level] * a[e].CM.h)); var g = a[e].module.margins.top + a[e].module.margins.bottom + ("fullscreen" === a[e].sliderLayout ? 0 : a[e].outNavDims.vertical) + a[e].canv.height + a[e].module.paddings.top + a[e].module.paddings.bottom; a[e].drawUpdates.cpar.height = g, a[e].drawUpdates.cpar.width = "auto" === a[e].sliderLayout ? "auto" : a[e].module.width, "auto" === a[e].sliderLayout || "fullscreen" === a[e].sliderLayout && !0 === a[e].disableForceFullWidth || a[e].rsFullWidthWrap === t ? "fullscreen" == a[e].sliderLayout && 1 == a[e].disableForceFullWidth && (a[e].drawUpdates.cpar.left = 0) : a[e].drawUpdates.cpar.left = 0 - Math.ceil(a[e].rsFullWidthWrap.offset().left - (a[e].outNavDims.left + a[e].block.left)), a[e].sbtimeline.set && a[e].sbtimeline.fixed ? (a[e].sbtimeline.extended === t && a.updateFixedScrollTimes(e), a[e].forcerHeight = 2 * g + a[e].sbtimeline.extended, a[e].sbtimeline.pullc && a[e].rsFullWidthWrap !== t && null !== a[e].rsFullWidthWrap[0] && requestAnimationFrame(function () { var t = a[e].rsFullWidthWrapMarginBottom + -1 * a[e].forcerHeight; a[e].rsFullWidthWrap[0].style.marginBottom = (isNaN(t) ? a[e].rsFullWidthBottomMarginPush : a[e].rsFullWidthBottomMarginPush + t) + "px" }), a[e].rsFullWidthWrap !== t && null !== a[e].rsFullWidthWrap[0] && "fullscreen" == a[e].sliderLayout && (a[e].rsFullWidthBottomMarginPush = a.getFullscreenOffsets(e), a[e].rsFullWidthWrap[0].style.marginBottom = a[e].rsFullWidthBottomMarginPush + "px")) : a[e].forcerHeight = g, a[e].forcerHeight !== a[e].caches.setsizeForcerHeight && a[e].forcer !== t && (a[e].caches.setsizeForcerHeight = a[e].forcerHeight, l = !0, a[e].redraw.forcer = !0), a[e].drawUpdates.c.width = a[e].canv.width, "auto" === a[e].sliderLayout && (a[e].drawUpdates.c.left = a[e].outNavDims.left), a[e].drawUpdates.c !== a[e].emptyObject && JSON.stringify(a[e].drawUpdates.c) !== a[e].caches.setsizeCOBJ && (a[e].caches.setsizeCOBJ = JSON.stringify(a[e].drawUpdates.c), l = !0, a[e].redraw.c = !0), a[e].drawUpdates.cpar !== a[e].emptyObject && JSON.stringify(a[e].drawUpdates.cpar) !== a[e].caches.setsizeCPAROBJ && (a[e].caches.setsizeCPAROBJ = JSON.stringify(a[e].drawUpdates.cpar), l = !0, a[e].redraw.cpar = !0), s && "auto" === a[e].sliderLayout && a[e].caches.canWidth !== a[e].canv.width && (a[e].caches.canWidth = a[e].canv.width, l = !0, a[e].redraw.modalcanvas = !0), a[e].slayers && a[e].slayers.length > 0 && a[e].outNavDims.left !== a[e].caches.outNavDimsLeft && "fullwidth" != a[e].sliderLayout && "fullscreen" != a[e].sliderLayout && (a[e].caches.outNavDimsLeft = a[e].outNavDims.left, a[e].redraw.slayers = !0), s && a[e].modal.calibration !== t && "middle" === a[e].modal.vertical && (a[e].modal.calibration.top = a.getWinH(e) < g ? "0%" : "50%", a[e].modal.calibration.y = a.getWinH(e) < g ? "0px" : "-50%", "fullwidth" === a[e].sliderLayout && (l = !0, a[e].redraw.modulewrap = !0)), a[e].gridOffsetWidth = (a[e].module.width - a[e].gridwidth[a[e].level]) / 2, a[e].gridOffsetHeight = (a[e].module.height - a[e].content.height) / 2, a[e].caches.curRowsHeight = a[e].currentRowsHeight = a[e].rowHeights.cur, a[e].caches.moduleWidth = a[e].width = a[e].module.width, a[e].caches.moduleHeight = a[e].height = a[e].module.height, a[e].caches.canWidth = a[e].conw = a[e].canv.width, a[e].caches.canHeight = a[e].conh = a[e].canv.height, a[e].bw = a[e].CM.w, a[e].bh = a[e].CM.h, a[e].caches.outNavDimsLeft = a[e].outNavDims.left, window.requestAnimationFrame(function () { a[e].redraw.forcer && tpGS.gsap.set(a[e].forcer, {height: a[e].forcerHeight}), a[e].redraw.c && tpGS.gsap.set(a[e].c, a[e].drawUpdates.c), a[e].redraw.cpar && tpGS.gsap.set(a[e].cpar, a[e].drawUpdates.cpar), a[e].redraw.modalcanvas && a[e] !== t && (a[e].modal !== t && a[e].modal.c !== t && tpGS.gsap.set(a[e].modal.c, {width: a[e].canv.width}), a[e].canvas !== t && tpGS.gsap.set(a[e].canvas, {width: a[e].canv.width})), a[e].redraw.maxHeightOld && (a[e].slides[o].style.maxHeight = a[e].currentSlideHeight !== a[e].canv.height ? a[e].currentSlideHeight + "px" : "none"), a[e].redraw.slayers && tpGS.gsap.set(a[e].slayers, {left: a[e].outNavDims.left}), a[e].redraw.modulewrap && tpGS.gsap.set(a[e].modal.c.find("rs-module-wrap"), a[e].modal.calibration), !0 !== a[e].navigation.initialised && "prepared" === i && ("hero" !== a[e].sliderType && a.createNavigation && a[e].navigation.use && !0 !== a[e].navigation.createNavigationDone && a.createNavigation(e), a.resizeThumbsTabs && a.resizeThumbsTabs && a[e].navigation.use && a.resizeThumbsTabs(e)), a[e].rebuildProgressBar && M(e), a.putRowsInPosition(e), a[e].redraw = {} }); var u = a[e].inviewport && (a[e].heightInLayers !== t && a[e].module.height !== a[e].heightInLayers || a[e].widthInLayers !== t && a[e].module.width !== a[e].widthInLayers); return "ignore" !== i && u && (a[e].heightInLayers = t, a[e].widthInLayers = t, "carousel" !== a[e].sliderType && (a[e].pr_next_key !== t ? a.animateTheLayers({ slide: a[e].pr_next_key, id: e, mode: "rebuild", caller: "swapSlideProgress_1" }) : a[e].pr_processing_key !== t ? a.animateTheLayers({ slide: a[e].pr_processing_key, id: e, mode: "rebuild", caller: "swapSlideProgress_2" }) : a[e].pr_active_key !== t && a.animateTheLayers({ slide: a[e].pr_active_key, id: e, mode: "rebuild", caller: "swapSlideProgress_3" })), l = !0), l && "ignore" !== i && a.requestLayerUpdates(e, "enterstage"), a[e].module.height !== a[e].module.lastHeight && (a[e].module.lastHeight = a[e].module.height, window.requestAnimationFrame(function () { window.innerHeight !== screen.height && Math.round(window.innerHeight * window.devicePixelRatio) !== screen.height && v(e, t, !1) })), tpGS.gsap.delayedCall(.1, function () { a[e].lastScrollBarWidth !== a.scrollBarWidth ? (a.updateDims(e, "ignore"), v(e)) : a.isModalOpen || a.scrollBarWidth === window.innerWidth - document.documentElement.clientWidth || a.rAfScrollbar === t && (a.rAfScrollbar = requestAnimationFrame(function () { a.rAfScrollbar = t, a.getWindowDimension(e, !1) })) }), l }, putMiddleZoneInPosition: function (e, i) { a[e].middleZones == t || a[e].middleZones[i] == t || a[e].rowMiddleHeights == t || a[e].rowMiddleHeights[i] == t || a[e].caches.middleHeights[i] === a[e].rowMiddleHeights[i] && a[e].caches.lastModuleHeight === a[e].module.height || (tpGS.gsap.set(a[e].middleZones[i], {top: Math.round(a[e].module.height / 2 - a[e].rowMiddleHeights[i] / 2)}), a[e].caches.middleHeights[i] = a[e].rowMiddleHeights[i]) }, putRowsInPosition: function (e) { var i = a[e].activeRSSlide || 0, r = a[e].pr_processing_key; a.putMiddleZoneInPosition(e, i), i !== r && r !== t && a.putMiddleZoneInPosition(e, r), a[e].smiddleZones == t || a[e].rowMiddleHeights == t || a[e].rowMiddleHeights.static == t || a[e].caches.middleHeights.static === a[e].rowMiddleHeights.static && a[e].caches.lastModuleHeight === a[e].module.height || (tpGS.gsap.set(a[e].smiddleZones[0], {top: Math.round(a[e].module.height / 2 - a[e].rowMiddleHeights.static / 2)}), a[e].caches.middleHeights.static = a[e].rowMiddleHeights.static), a[e].caches.lastModuleHeight = a[e].module.height }, getSlideIndex: function (e, t) { var i = !1; for (var r in a[e].slides) { if (!a[e].slides.hasOwnProperty(r) || !1 !== i) continue; i = a.gA(a[e].slides[r], "key") === t ? r : i } return !1 === i ? 0 : i }, loadUpcomingContent: function (e) { if ("smart" == a[e].lazyType) { var t = [], i = parseInt(a.getSlideIndex(e, a.gA(a[e].pr_next_slide[0], "key")), 0), r = i - 1 < 0 ? a[e].realslideamount - 1 : i - 1, o = i + 1 == a[e].realslideamount ? 0 : i + 1; r !== i && t.push(a[e].slides[r]), o !== i && t.push(a[e].slides[o]), t.length > 0 && (a.loadImages(t, e, 2), a.waitForCurrentImages(t, e, function () { })) } }, lazyLoadAllSlides: function (e) { if ("all" == a[e].lazyType && !0 !== a[e].lazyLoad_AllDone && (a[e].viewPort.enable && a[e].inviewport || !a[e].viewPort.enable)) { for (var t in a[e].slides) a[e].slides.hasOwnProperty(t) && (a.loadImages(a[e].slides[t], e, t), a.waitForCurrentImages(a[e].slides[t], e, function () { })); a[e].lazyLoad_AllDone = !0 } }, getFullscreenOffsets: function (i) { var r = 0; if (a[i].fullScreenOffsetContainer != t) { var o = ("" + a[i].fullScreenOffsetContainer).split(","); for (var s in o) o.hasOwnProperty(s) && (r += e(o[s]).outerHeight(!0) || 0) } return a[i].fullScreenOffset != t && (!a.isNumeric(a[i].fullScreenOffset) && a[i].fullScreenOffset.split("%").length > 1 ? r += a.getWinH(i) * parseInt(a[i].fullScreenOffset, 0) / 100 : a.isNumeric(parseInt(a[i].fullScreenOffset, 0)) && (r += parseInt(a[i].fullScreenOffset, 0) || 0)), a[i].fullScreenOffsetResult = r, r }, unToggleState: function (e) { if (e !== t) for (var i = 0; i < e.length; i++) try { document.getElementById(e[i]).classList.remove("rs-tc-active") } catch (e) { } }, toggleState: function (e) { if (e !== t) for (var i = 0; i < e.length; i++) try { document.getElementById(e[i]).classList.add("rs-tc-active") } catch (e) { } }, swaptoggleState: function (e) { if (e != t && e.length > 0) for (var i = 0; i < e.length; i++) { var r = document.getElementById(e[i]); if (a.gA(r, "toggletimestamp") !== t && (new Date).getTime() - a.gA(r, "toggletimestamp") < 250) return; a.sA(r, "toggletimestamp", (new Date).getTime()), null !== r && (r.className.indexOf("rs-tc-active") >= 0 ? r.classList.remove("rs-tc-active") : r.classList.add("rs-tc-active")) } }, lastToggleState: function (e) { var i; if (e !== t) for (var a = 0; a < e.length; a++) { var r = document.getElementById(e[a]); i = !0 === i || null !== r && r.className.indexOf("rs-tc-active") >= 0 || i } return i }, revCheckIDS: function (i, r) { if (a.gA(r, "idcheck") === t) { var o = r.id, s = e.inArray(r.id, window.RSANYID), n = -1; -1 !== s && (n = e.inArray(r.id, a[i].anyid), window.RSANYID_sliderID[s] === i && -1 === n || (r.id = r.id + "_" + Math.round(9999 * Math.random()), console.log("Warning - ID:" + o + " exists already. New Runtime ID:" + r.id), s = n = -1)), -1 === n && a[i].anyid.push(r.id), -1 === s && (window.RSANYID.push(r.id), window.RSANYID_sliderID.push(i)) } return a.sA(r, "idcheck", !0), r.id }, buildSpinner: function (i, a, r, o) { var s; if ("off" !== a) { o = o === t ? "" : o, r = r === t ? "#ffffff" : r; var n = parseInt(a.replace("spinner", ""), 10); if (isNaN(n) || n < 6) { var l = 'style="background-color:' + r + '"', d = o === t || 3 !== n && 4 != n ? "" : l; s = e("
') } else { var c, p = '
2 && (c = "rgba(" + c[0].trim() + ", " + c[1].trim() + ", " + c[2].trim() + ", "), c && "string" == typeof c && (p += ' style="border-top-color: ' + c + "0.65); border-bottom-color: " + c + "0.15); border-left-color: " + c + "0.65); border-right-color: " + c + '0.15)"'); else 12 === n && (p += ' style="background:' + r + '"'); p += ">"; for (var g = [10, 0, 4, 2, 5, 9, 0, 4, 4, 2][n - 6], u = 0; u < g; u++) u > 0 && (p += " "), p += ''; s = e('' + (p += "
") + "
") } return s } }, addStaticLayerTo: function (e, t, i) { if (a[e].slayers.length < 2) { var r = document.createElement("rs-static-layers"); r.className = "rs-stl-" + t, r.appendChild(i[0]), a[e].c[0].appendChild(r), a[e].slayers.push(r) } else a[e].slayers[1].appendChild(i[0]) } }); var r = function () { return a.isIE11() ? function (e, t) { return e.querySelectorAll(t) } : function (e, t) { return e.getElementsByTagName(t) } }, o = function (e) { a[e].responsiveLevels = a.revToResp(a[e].responsiveLevels, a[e].rle), a[e].visibilityLevels = a.revToResp(a[e].visibilityLevels, a[e].rle), a[e].responsiveLevels[0] = 9999, a[e].rle = a[e].responsiveLevels.length || 1, a[e].gridwidth = a.revToResp(a[e].gridwidth, a[e].rle), a[e].gridheight = a.revToResp(a[e].gridheight, a[e].rle), a[e].editorheight !== t && (a[e].editorheight = a.revToResp(a[e].editorheight, a[e].rle)), a.updateDims(e) }, s = function (t, i) { var a = []; return e.each(t, function (e, t) { e != i && a.push(t) }), a }, n = function (t, i, r) { a[r].c.find(t).each(function () { var t = e(this); t.data("key") === i && t.remove() }) }, l = function (e, i) { if (a["rsfont_" + e] == t && (a["rsfont_" + e] = document.createElement("span"), a["rsfont_" + e].innerHTML = Array(100).join("wi"), a["rsfont_" + e].style.cssText = ["position:absolute", "width:auto", "font-size:128px", "left:-99999px"].join(" !important;"), a["rsfont_" + e].style.fontFamily = e, document.body.appendChild(a["rsfont_" + e])), i === t) return a["rsfont_" + e].clientWidth; document.body.removeChild(a["rsfont_" + e]) }, d = function (t, i) { var a = 0; return t.find(i).each(function () { var t = e(this); !t.hasClass("tp-forcenotvisible") && a < t.outerWidth() && (a = t.outerWidth()) }), a }, c = function (i) { if (i === t || a[i] === t || a[i].c === t) return !1; if (a[i].cpar !== t && a[i].cpar.data("aimg") != t && ("enabled" == a[i].cpar.data("aie8") && a.isIE(8) || "enabled" == a[i].cpar.data("amobile") && a.ISM)) a[i].c.html(''); else { window._rs_firefox13 = !1, window._rs_firefox = a.isFirefox(), window._rs_ie = window._rs_ie === t ? !e.support.opacity : window._rs_ie, window._rs_ie9 = window._rs_ie9 === t ? 9 == document.documentMode : window._rs_ie9; var r = e.fn.jquery.split("."), o = parseFloat(r[0]), s = parseFloat(r[1]); 1 == o && s < 7 && a[i].c.html('
The Current Version of jQuery:' + r + "
Please update your jQuery Version to min. 1.7 in Case you wish to use the Revolution Slider Plugin
"), o > 1 && (window._rs_ie = !1), a[i].realslideamount = a[i].slideamount = 0; var n = a.getByTag(a[i].canvas[0], "RS-SLIDE"), l = []; for (var d in a[i].notInNav = [], a[i].slides = [], n) n.hasOwnProperty(d) && ("on" == a.gA(n[d], "hsom") && a.ISM ? l.push(n[d]) : (a.gA(n[d], "invisible") || 1 == a.gA(n[d], "invisible") ? a[i].notInNav.push(n[d]) : (a[i].slides.push(n[d]), a[i].slideamount++), a[i].realslideamount++, a.sA(n[d], "originalindex", a[i].realslideamount), a.sA(n[d], "origindex", a[i].realslideamount - 1))); for (d in l) l.hasOwnProperty(d) && l[d].remove(); for (d in a[i].notInNav) a[i].notInNav.hasOwnProperty(d) && (a.sA(a[i].notInNav[d], "not_in_nav", !0), a[i].canvas[0].appendChild(a[i].notInNav[d])); if (a[i].canvas.css({visibility: "visible"}), a[i].slayers = a[i].c.find("rs-static-layers"), a[i].slayers[0] && a[i].slayers.className && -1 !== a[i].slayers[0].className.indexOf("rs-stl-visible") && a[i].c.addClass("rs-stl-visible"), a[i].slayers.length > 0 && a.sA(a[i].slayers[0], "key", "staticlayers"), !0 === a[i].modal.useAsModal && (a[i].cpar.wrap(''), a[i].modal.c = e(a.closestNode(a[i].cpar[0], "RS-MODAL")), a[i].modal.c.appendTo(e("body")), a[i].modal !== t && a[i].modal.alias !== t && a.revModal(i, {mode: "init"})), 1 == a[i].waitForInit || 1 == a[i].modal.useAsModal) return a.RS_toInit !== t && (a.RS_toInit[i] = !0), a[i].c.trigger("revolution.slide.waitingforinit"), void (a[i].waitingForInit = !0); window.requestAnimationFrame(function () { h(i) }), a[i].initEnded = !0 } }, p = function () { e("body").data("rs-fullScreenMode", !e("body").data("rs-fullScreenMode")), e("body").data("rs-fullScreenMode") && setTimeout(function () { a.window.trigger("resize") }, 200) }, g = function (e, i, r) { return a.gA(e, "lazyload") !== t ? a.gA(e, "lazyload") : a[r].lazyloaddata !== t && a[r].lazyloaddata.length > 0 && a.gA(e, a[r].lazyloaddata) !== t ? a.gA(e, a[r].lazyloaddata) : a.gA(e, "lazy-src") !== t ? a.gA(e, "lazy-src") : a.gA(e, "lazy-wpfc-original-src") !== t ? a.gA(e, "lazy-wpfc-original-src") : a.gA(e, "lazy") !== t ? a.gA(e, "lazy") : i }, u = function (t, i) { return e(0 == i ? t : 1 == i ? t.parentNode : 2 == i ? t.parentNode.parentNode : 3 == i ? t.parentNode.parentNode.parentNode : 4 == i ? t.parentNode.parentNode.parentNode.parentNode : t.parentNode.parentNode.parentNode.parentNode.parentNode) }, h = function (i) { if (a[i] !== t) { a[i].sliderisrunning = !0, !0 !== a[i].noDetach && a[i].c.detach(); var r = a[i].canvas.find("rs-slide:first-child"); if (a[i].shuffle) { for (var o = a.gA(r[0], "firstanim"), s = 0; s < a[i].slideamount; s++) a[i].canvas.find("rs-slide:eq(" + Math.round(Math.random() * a[i].slideamount) + ")").prependTo(a[i].canvas); a.sA(a[i].canvas.find("rs-slide:first-child")[0], "firstanim", o) } a[i].slides = a.getByTag(a[i].canvas[0], "RS-SLIDE"), a[i].thumbs = new Array(a[i].slides.length), a[i].slots = 1, a[i].firststart = 1, a[i].loadqueue = [], a[i].syncload = 0; var n = 0, l = "carousel" === a[i].sliderType && a[i].carousel.border_radius !== t ? parseInt(a[i].carousel.border_radius, 0) : 0; for (var d in "carousel" !== a[i].sliderType && tpGS.gsap.set(a[i].slides, {display: "none"}), "carousel" !== a[i].sliderType && tpGS.gsap.set(r, {display: "block"}), a[i].slides) if (a[i].slides.hasOwnProperty(d) && "length" !== d) { var c = a[i].slides[d], h = a.getByTag(c, "IMG")[0]; a.gA(c, "key") === t && a.sA(c, "key", "rs-" + Math.round(999999 * Math.random())); var m = { params: Array(12), id: a.gA(c, "key"), src: a.gA(c, "thumb") !== t ? a.gA(c, "thumb") : g(h, h !== t ? h.src : t, i) }; a.gA(c, "title") === t && a.sA(c, "title", ""), a.gA(c, "description") === t && a.sA(c, "description", ""), m.params[0] = { from: RegExp("\\{\\{title\\}\\}", "g"), to: a.gA(c, "title") }, m.params[1] = {from: RegExp("\\{\\{description\\}\\}", "g"), to: a.gA(c, "description")}; for (var f = 1; f <= 10; f++) a.gA(c, "p" + f) !== t ? m.params[f + 1] = { from: RegExp("\\{\\{param" + f + "\\}\\}", "g"), to: a.gA(c, "p" + f) } : m.params[f + 1] = {from: RegExp("\\{\\{param" + f + "\\}\\}", "g"), to: ""}; if (a[i].thumbs[n] = e.extend({}, !0, m), l > 0 && tpGS.gsap.set(c, {borderRadius: l + "px"}), a.gA(c, "link") != t || a.gA(c, "linktoslide") !== t) { var w = a.gA(c, "link"), b = w !== t ? w : "slide", _ = "slide" != b ? "no" : a.gA(c, "linktoslide"), S = a.gA(c, "seoz"), x = a.gA(c, "tag"); if (_ != t && "no" != _ && "next" != _ && "prev" != _) for (var k in a[i].slides) a[i].slides.hasOwnProperty(k) && parseInt(a.gA(a[i].slides[k], "origindex"), 0) + 1 == a.gA(c, "linktoslide") && (_ = a.gA(a[i].slides[k], "key")); "slide" == b || "a" != x ? e(c).prepend('" + (a.ISM ? "" : "") + "") : e(c).prepend('') } n++ } if (a[i].simplifyAll && (a.isIE(8) || a.iOSVersion()) && (a[i].c.find(".rs-layer").each(function () { var t = e(this); t.removeClass("customin customout").addClass("fadein fadeout"), t.data("splitin", ""), t.data("speed", 400) }), a[i].c.find("rs-slide").each(function () { var t = e(this); t.data("transition", "fade"), t.data("masterspeed", 500), t.data("slotamount", 1), (t.find(".rev-slidebg") || t.find(">img").first()).data("panzoom", null) })), window._rs_desktop = window._rs_desktop === t ? !navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|BB10|mobi|tablet|opera mini|nexus 7)/i) : window._rs_desktop, a[i].autoHeight = "fullscreen" == a[i].sliderLayout || a[i].autoHeight, "fullwidth" != a[i].sliderLayout || a[i].autoHeight || "carousel" === a[i].sliderType && "v" === a[i].carousel.orientation || a[i].c.css({maxHeight: a[i].gridheight[a[i].level] + "px"}), "auto" == a[i].sliderLayout || null !== a.closestNode(a[i].c[0], "RS-FULLWIDTH-WRAP") || "fullscreen" === a[i].sliderLayout && 1 == a[i].disableForceFullWidth) a[i].topc = a[i].cpar; else { var L = a[i].cpar[0].style.marginTop, O = a[i].cpar[0].style.marginBottom; a[i].rsFullWidthWrapMarginBottom = parseInt(O, 0), L = L === t || "" === L ? "" : "margin-top:" + L + ";", O = O === t || "" === O ? "" : "margin-bottom:" + O + ";", a[i].rsFullWidthWrap = a[i].topc = e(''), a[i].forcer = e(''), a[i].topc.append(a[i].forcer), a[i].topc.insertBefore(a[i].cpar), a[i].cpar.detach(), a[i].cpar.css({ marginTop: "0px", marginBottom: "0px", position: "absolute" }), a[i].cpar.prependTo(a[i].topc) } if (a[i].forceOverflow ? a[i].topc[0].classList.add("rs-forceoverflow") : "3D" === a[i].parallax.type && a[i].topc[0].classList.add("rs-parallax-hidden-of"), "carousel" === a[i].sliderType && !0 !== a[i].overflowHidden && a[i].c.css({overflow: "visible"}), 0 !== a[i].maxHeight && tpGS.gsap.set([a[i].cpar, a[i].c, a[i].topc], {maxHeight: a[i].maxHeight + "px"}), a[i].fixedOnTop && tpGS.gsap.set(a[i].blockSpacing !== t && a[i].blockSpacing.block !== t ? a[i].blockSpacing.block : a[i].topc, { position: "fixed", top: "0px", left: "0px", pointerEvents: "none", zIndex: 5e3 }), a[i].shadow !== t && a[i].shadow > 0 && a[i].cpar.addClass("tp-shadow" + a[i].shadow).append('
'), a.updateDims(i, "prepared"), a.observeWraps === t && (a.observeWraps = new a.wrapObserver.init(function (e, i) { v(i, t, !0) })), !a[i].c.hasClass("revslider-initialised")) { a[i].c[0].classList.add("revslider-initialised"), a[i].c[0].id = a[i].c[0].id === t ? "revslider-" + Math.round(1e3 * Math.random() + 5) : a[i].c[0].id, a.revCheckIDS(i, a[i].c[0]), a[i].origcd = parseInt(a[i].duration, 0), a[i].scrolleffect._L = [], a[i].sbas = a[i].sbas === t ? {} : a[i].sbas, a[i].layers = a[i].layers || {}, a[i].sortedLayers = a[i].sortedLayers || {}; var R = a[i].c[0].querySelectorAll("rs-layer, rs-row, rs-column, rs-group, rs-bgvideo, .rs-layer"); for (var I in R) if (R.hasOwnProperty(I)) { !a.ISM && R[I].classList.contains("iospermaccwait") && R[I].remove(); var M, T, C = e(R[I]), A = C.data(); if (A.startclasses = R[I].className, A.startclasses = A.startclasses === t || null === A.startclasses ? "" : A.startclasses, A.animationonscroll = !!a[i].sbtimeline.set && a[i].sbtimeline.layers, A.animationonscroll = !0 === A.animationonscroll || "true" == A.animationonscroll, A.filteronscroll = !!a[i].scrolleffect.set && a[i].scrolleffect.layers, A.pxundermask = A.startclasses.indexOf("rs-pxmask") >= 0 && "off" !== a[i].parallax.type && A.startclasses.indexOf("rs-pxl-") >= 0, A.noPevents = A.startclasses.indexOf("rs-noevents") >= 0, A.sba) for (var f in M = A.sba.split(";")) M.hasOwnProperty(f) && ("t" == (T = M[f].split(":"))[0] && (A.animationonscroll = T[1], "false" == T[1] && (A.animOnScrollForceDisable = !0)), "e" == T[0] && (A.filteronscroll = T[1]), "so" == T[0] && (A.scrollBasedOffset = parseInt(T[1]) / 1e3)); if ("true" != A.animationonscroll && 1 != A.animationonscroll || (A.startclasses += " rs-sba", C[0].className += " rs-sba"), A.startclasses.indexOf("rs-layer-static") >= 0 && a.handleStaticLayers && a.handleStaticLayers(C, i), "RS-BGVIDEO" !== C[0].tagName) { if (C[0].classList.add("rs-layer"), "column" === A.type && (A.columnwidth = "33.33%", A.verticalalign = "top", A.column !== t)) for (var D in M = A.column.split(";")) M.hasOwnProperty(D) && ("w" === (T = M[D].split(":"))[0] && (A.columnwidth = T[1]), "a" === T[0] && (A.verticalalign = T[1])); if ("group" === A.type && (A.verticalalign = "top", A.column !== t)) for (var D in M = A.column.split(";")) M.hasOwnProperty(D) && "a" === (T = M[D].split(":"))[0] && (A.verticalalign = T[1]); var P = A.startclasses.indexOf("slidelink") >= 0 ? "z-index:" + A.zindex + ";width:100% !important;height:100% !important;" : "", B = "column" !== A.type && "group" !== A.type ? "" : A.verticalalign === t ? " vertical-align:top;" : " vertical-align:" + A.verticalalign + ";", H = "row" === A.type || "column" === A.type || "r" === A.pos ? "position:relative;" : "position:absolute;", z = "", W = "row" === A.type ? "rs-row-wrap" : "column" === A.type ? "rs-column-wrap" : "group" === A.type ? "rs-group-wrap" : "rs-layer-wrap", E = "", N = "", j = (A.noPevents, ";pointer-events:none"); "row" === A.type || "column" === A.type || "group" === A.type ? (C[0].classList.remove("tp-resizeme"), "column" === A.type && (A.width = "auto", C[0].group = "row", tpGS.gsap.set(C, {width: "auto"}), A.filteronscroll = !1)) : (E = "display:" + ("inline-block" === C[0].style.display ? "inline-block" : "block") + ";", null !== a.closestNode(C[0], "RS-COLUMN") ? (C[0].group = "column", A.filteronscroll = !1) : null !== a.closestNode(C[0], "RS-GROUP-WRAP") && (C[0].group = "group", A.filteronscroll = !1)), A.wrpcls !== t && (z = z + " " + A.wrpcls), A.wrpid !== t && (N = 'id="' + A.wrpid + '"'), A.thFixed = A.wrpcls !== t && A.wrpcls.includes("th-fixed") || A.startclasses !== t && A.startclasses.includes("ddd_mousebox"), A.reqWrp = { loop: !(1 != a[i].rtl && !A.thFixed && A.loop_0 === t && A.loop_999 === t), level: {m: 0, lp: 0, p: 0} }, A.perspFix = window.isSafari11 && (A.btrans !== t && A.btrans.includes("iosfx:p") || "carousel" === a[i].sliderType), A.reqWrp.mask = !!(A.perspFix || A.reqWrp.loop || 1 == a[i].rtl || A.pxundermask || A.thFixed || A.btrans !== t || A.frame_hover !== t && A.frame_hover.includes("m:t") || A.clip !== t || A.sba !== t || A.frame_0_sfx !== t || A.frame_1_sfx !== t || A.frame_999_sfx !== t || A.frame_0_mask !== t || A.frame_1_mask !== t || A.frame_2_mask !== t || A.frame_3_mask !== t || A.frame_4_mask !== t || A.frame_999_mask !== t), A.reqWrp.level.m = A.pxundermask ? 2 : A.reqWrp.mask ? 1 : 0, A.reqWrp.level.lp = A.reqWrp.level.m + (A.reqWrp.loop ? 1 : 0), A.reqWrp.level.p = A.reqWrp.level.lp + 1, A.perspFix && (P += "transform:perspective(600px);"), C.wrap("<" + W + " " + N + ' class="rs-parallax-wrap ' + z + '" style="' + B + " " + P + H + E + j + '">' + (A.reqWrp.loop ? '' : "") + (A.reqWrp.mask ? '' : "") + (A.pxundermask ? "" : "") + (A.reqWrp.mask ? "" : "") + (A.reqWrp.loop ? "" : "") + ""), !0 !== A.filteronscroll && "true" != A.filteronscroll || a[i].scrolleffect._L.push(C.parent()), C[0].id = C[0].id === t ? "layer-" + Math.round(999999999 * Math.random()) : C[0].id, a.revCheckIDS(i, C[0]), a[i]._Lshortcuts[C[0].id] = { p: u(C[0], A.reqWrp.level.p), lp: u(C[0], A.reqWrp.level.lp), m: u(C[0], A.reqWrp.level.m) }, "column" !== A.type || "" == C[0].style.background && "" === C[0].style.backgroundColor && "" === C[0].style.backgroundImage && A.border === t ? A.cbgexists = !1 : (a[i]._Lshortcuts[C[0].id].p.append(''), A.cbgexists = !0), "text" === A.type && a.getByTag(C[0], "IFRAME").length > 0 && (a[i].slideHasIframe = !0, C[0].classList.add("rs-ii-o")), a[i].BUG_safari_clipPath && "true" != A.animationonscroll && 1 != A.animationonscroll && C[0].classList.add("rs-pelock"), C[0].dataset.staticz !== t && "row" !== A.type && "row" !== C[0].group && "column" !== C[0].group && a.addStaticLayerTo(i, C[0].dataset.staticz, a[i]._Lshortcuts[C[0].id].p) } a.gA(C[0], "actions") && a.checkActions && a.checkActions(C, i, a[i]), !a.checkVideoApis || window.rs_addedvim && window.rs_addedyt || a[i].youtubeapineeded && a[i].vimeoapineeded || a.checkVideoApis(C, i) } a.checkActions && a.checkActions(t, i), a[i].c[0].addEventListener("mousedown", function () { if (!0 !== a[i].onceClicked && (a[i].onceClicked = !0, !0 !== a[i].onceVideoPlayed && a[i].activeRSSlide !== t && a[i].slides !== t && a[i].slides[a[i].activeRSSlide] !== t)) { var r = e(a[i].slides[a[i].activeRSSlide]).find("rs-bgvideo"); r !== t && null !== r && r.length > 0 && a.playVideo(r, i) } }), a[i].c[0].addEventListener("mouseenter", function () { a[i].c.trigger("tp-mouseenter"), a[i].overcontainer = !0 }, {passive: !0}), a[i].c[0].addEventListener("mouseover", function () { a[i].c.trigger("tp-mouseover"), a[i].overcontainer = !0 }, {passive: !0}), a[i].c[0].addEventListener("mouseleave", function () { a[i].c.trigger("tp-mouseleft"), a[i].overcontainer = !1 }, {passive: !0}), a[i].c.find(".rs-layer video").each(function (t) { var i = e(this); i.removeClass("video-js vjs-default-skin"), i.attr("preload", ""), i.css({display: "none"}) }), a[i].rs_static_layer = a.getByTag(a[i].c[0], "RS-STATIC-LAYERS"), a.preLoadAudio && a[i].rs_static_layer.length > 0 && a.preLoadAudio(e(a[i].rs_static_layer), i, 1), a[i].rs_static_layer.length > 0 && (a.loadImages(a[i].rs_static_layer[0], i, 0, !0), a.waitForCurrentImages(a[i].rs_static_layer[0], i, function () { a[i] !== t && a[i].c.find("rs-static-layers img").each(function () { this.src = a.getLoadObj(i, a.gA(this, "src") != t ? a.gA(this, "src") : this.src).src }) })), a[i].rowzones = [], a[i].rowzonesHeights = [], a[i].topZones = [], a[i].middleZones = [], a[i].bottomZones = [], a[i].rowMiddleHeights = {}; var V = a.deepLink(i, F("#")[0]); V !== t && (a[i].startWithSlide = V, a[i].deepLinkListener = !0, window.addEventListener("hashchange", function () { if (!0 !== a[i].ignoreDeeplinkChange) { var e = a.deepLink(i, F("#")[0]); e !== t && a.callingNewSlide(i, e, !0) } a[i].ignoreDeeplinkChange = !1 })), a[i].loader = a.buildSpinner(i, a[i].spinner, a[i].spinnerclr), a[i].loaderVisible = !0, a[i].c.append(a[i].loader), y(i), ("off" !== a[i].parallax.type || a[i].scrolleffect.set || a[i].sbtimeline.set) && a.checkForParallax && a.checkForParallax(i), a[i].fallbacks.disableFocusListener || "true" == a[i].fallbacks.disableFocusListener || !0 === a[i].fallbacks.disableFocusListener || (a[i].c.addClass("rev_redraw_on_blurfocus"), G()); var X = a[i].viewPort; for (var f in "on" === a[i].navigation.mouseScrollNavigation && (X.enable = !0), a[i].slides) if (a[i].slides.hasOwnProperty(f)) { var U = e(a[i].slides[f]); a[i].rowzones[f] = [], a[i].rowzonesHeights[f] = [], a[i].topZones[f] = [], a[i].middleZones[f] = [], a[i].bottomZones[f] = [], U.find("rs-zone").each(function () { a[i].rowzones[f].push(e(this)), this.className.indexOf("rev_row_zone_top") >= 0 && a[i].topZones[f].push(this), this.className.indexOf("rev_row_zone_middle") >= 0 && (a[i].middleZones[f].push(this), this.dataset.middle = "true"), this.className.indexOf("rev_row_zone_bottom") >= 0 && a[i].bottomZones[f].push(this) }) } a.lazyLoadAllSlides(i), a[i].srowzones = [], a[i].smiddleZones = [], a[i].slayers && a[i].slayers.find("rs-zone").each(function () { a[i].srowzones.push(e(this)), this.className.indexOf("rev_row_zone_middle") >= 0 && (a[i].smiddleZones.push(this), this.dataset.middle = "true") }), "carousel" === a[i].sliderType && tpGS.gsap.set(a[i].canvas, { scale: 1, perspective: 1200, transformStyle: "flat", opacity: 0 }), a[i].c.prependTo(a[i].cpar), e("body").data("rs-fullScreenMode", !1), window.addEventListener("fullscreenchange", p, {passive: !0}), window.addEventListener("mozfullscreenchange", p, {passive: !0}), window.addEventListener("webkitfullscreenchange", p, {passive: !0}), a.document.on("updateContainerSizes." + a[i].c.attr("id"), function () { if (a[i] !== t) return a[i].c != t && void (a.updateDims(i, "ignore") && window.requestAnimationFrame(function () { a.updateDims(i, "ignore"), a[i].fullScreenMode = a.checkfullscreenEnabled(i), a.lastwindowheight = a.getWinH(i), v(i) })) }), X.presize && (a[i].pr_next_slide = e(a[i].slides[0]), a.loadImages(a[i].pr_next_slide[0], i, 0, !0), a.waitForCurrentImages(a[i].pr_next_slide.find(".tp-layers"), i, function () { a.animateTheLayers && a.animateTheLayers({ slide: a[i].pr_next_key, id: i, mode: "preset", caller: "runSlider" }) })), ("off" != a[i].parallax.type || a[i].sbtimeline.set || !0 === X.enable) && a.scrollTicker(i), !0 !== X.enable && (a[i].inviewport = !0, a.enterViewPort(i)), a.RS_toInit !== t && (a.RS_toInit[i] = !0), a[i].observeWrap && a.observeWraps && a.wrapObserver.observe(a[i].rsFullWidthWrap !== t ? a[i].rsFullWidthWrap[0] : a[i].cpar[0], i) } } }, m = function (e, i) { a.winW < a[e].hideSliderAtLimit ? (a[e].c.trigger("stoptimer"), !0 !== a[e].sliderIsHidden && (a.sA(a[e].cpar[0], "displaycache", "none" != a[e].cpar.css("display") ? a[e].cpar.css("display") : a.gA(a[e].cpar[0], "displaycache")), a[e].cpar.css({display: "none"}), a[e].sliderIsHidden = !0)) : (!0 === a[e].sliderIsHidden || a[e].sliderIsHidden === t && a[e].c.is(":hidden")) && i && (a[e].cpar[0].style.display = a.gA(a[e].cpar[0], "displaycache") != t && "none" != a.gA(a[e].cpar[0], "displaycache") ? a.gA(a[e].cpar[0], "displaycache") : "block", a[e].sliderIsHidden = !1, a[e].c.trigger("restarttimer"), window.requestAnimationFrame(function () { v(e, !0) })), a.hideUnHideNav && a[e].navigation.use && a.hideUnHideNav(e) }, v = function (e, i, r) { if (a[e].c === t) return !1; if (a[e].dimensionReCheck = {}, a[e].c.trigger("revolution.slide.beforeredraw"), 1 == a[e].infullscreenmode && (a[e].minHeight = a.getWinH(e)), a.ISM && (a[e].lastMobileHeight = a.getWinH(e)), r && a.updateDims(e), !a.resizeThumbsTabs || !0 === a.resizeThumbsTabs(e)) { if (window.requestAnimationFrame(function () { m(e, !0 !== i), M(e) }), a[e].started) { if ("carousel" == a[e].sliderType) for (var o in a.prepareCarousel(e), a[e].sbgs) a[e].sbgs.hasOwnProperty(o) && a[e].sbgs[o].mDIM !== t && a.updateSlideBGs(e, a[e].sbgs[o].key, a[e].sbgs[o]); else a.updateSlideBGs(e); if ("carousel" === a[e].sliderType && (a[e].carCheckconW != a[e].canv.width || "fullscreen" == a[e].sliderLayout && a[e].carCheckconH != a[e].canv.height)) { for (var s in clearTimeout(a[e].pcartimer), a[e].sbgs) a[e].sbgs[s].loadobj !== t && a.updateSlideBGs(e, a[e].sbgs[s].key, a[e].sbgs[s]); "v" == a[e].carousel.orientation && tpGS.gsap.set(a[e].canvas, {height: a[e].carousel.slide_height}), requestAnimationFrame(function () { a.prepareCarousel(e), a.animateTheLayers({ slide: "individual", id: e, mode: "rebuild", caller: "containerResized_1" }), a[e].carCheckconW = a[e].canv.width, a[e].carCheckconH = a[e].canv.height }), a[e].lastconw = a[e].canv.width } if (a[e].pr_processing_key !== t ? a.animateTheLayers({ slide: a[e].pr_processing_key, id: e, mode: "rebuild", caller: "containerResized_2" }) : a[e].pr_active_key !== t && a.animateTheLayers({ slide: a[e].pr_active_key, id: e, mode: "rebuild", caller: "containerResized_3" }), "carousel" === a[e].sliderType) { for (var s in a[e].panzoomTLs) if (a[e].panzoomTLs.hasOwnProperty(s)) { var n = a.gA(a[e].panzoomBGs[s][0], "key"); a.startPanZoom(a[e].panzoomBGs[s], e, a[e].panzoomTLs[s].progress(), s, a[e].panzoomTLs[s].isActive() ? "play" : "reset", n) } } else a[e].pr_active_bg !== t && a[e].pr_active_bg[0] !== t && f(e, a[e].pr_active_bg, a[e].pr_active_bg[0].dataset.key), a[e].pr_next_bg !== t && a[e].pr_next_bg[0] !== t && f(e, a[e].pr_next_bg, a[e].pr_next_bg[0].dataset.key); clearTimeout(a[e].mNavigTimeout), a.manageNavigation && (a[e].mNavigTimeout = setTimeout(function () { a.manageNavigation(e) }, 20)) } a.prepareCoveredVideo(e) } a[e].c.trigger("revolution.slide.afterdraw", [{id: e}]) }, f = function (e, i, r) { if (a[e].panzoomTLs !== t) { var o = a.getSlideIndex(e, r); a.startPanZoom(i, e, a[e].panzoomTLs[o] !== t ? a[e].panzoomTLs[o].progress() : 0, o, "play", r) } }, y = function (i) { !0 !== a[i].noDetach && a[i].canvas.detach(); var r = a.isFaceBook() ? "visible" : "hidden"; if (a[i].autoHeight && tpGS.gsap.set([a[i].c, a[i].cpar], {maxHeight: "none"}), tpGS.gsap.set(a[i].canvas, a[i].modal !== t && a[i].modal.useAsModal ? { overflow: r, width: "100%", height: "100%" } : { overflow: r, width: "100%", height: "100%", maxHeight: a[i].autoHeight ? "none" : a[i].cpar.css("maxHeight") }), "carousel" === a[i].sliderType) { var o = "margin-top:" + parseInt(a[i].carousel.padding_top || 0, 0) + "px;"; a[i].canvas.css({overflow: "visible"}).wrap(''), a[i].cpar.prepend("").append(""), a.defineCarouselElements(i) } a[i].startWithSlide = a[i].startWithSlide === t ? t : Math.max(1, (a[i].sliderType, parseInt(a[i].startWithSlide))), a[i].cpar.css({overflow: "visible"}), a[i].scrolleffect.bgs = []; for (var s = 0; s < a[i].slides.length; s++) { var n = e(a[i].slides[s]), l = a.gA(n[0], "key"), d = n.find(".rev-slidebg") || n.find(">img"), c = a[i].sbgs[l] = w(d.data(), i), p = n.data("mediafilter"); if (c.skeyindex = a.getSlideIndex(i, l), c.bgvid = n.find("rs-bgvideo"), d.detach(), c.bgvid.detach(), (a[i].startWithSlide != t && a.gA(a[i].slides[s], "originalindex") == a[i].startWithSlide || a[i].startWithSlide === t && 0 == s) && (a[i].pr_next_key = a[i].carousel.focused = n.index()), tpGS.gsap.set(n, { width: "100%", height: "100%", overflow: r }), d.wrap(''), c.wrap = e(a.closestNode(d[0], "RS-SBG-WRAP")), c.src = d[0].src, c.lazyload = c.lazyload = g(d[0], t, i), c.slidebgimage = !0, c.loadobj = c.loadobj === t ? {} : c.loadobj, c.mediafilter = p = "none" === p || p === t ? "" : p, c.sbg = document.createElement("rs-sbg"), a[i].overlay !== t && "none" != a[i].overlay.type && a[i].overlay.type != t) { var u = a.createOverlay(i, a[i].overlay.type, a[i].overlay.size, { 0: a[i].overlay.colora, 1: a[i].overlay.colorb }), h = document.createElement("rs-dotted"); h.style.backgroundImage = u, c.wrap.append(h), c.overlay = h } d.data("mediafilter", p), c.canvas = document.createElement("canvas"), c.sbg.appendChild(c.canvas), c.canvas.style.width = "100%", c.canvas.style.height = "100%", c.ctx = c.canvas.getContext("2d"), c.lazyload !== t && (c.sbg.dataset.lazyload = c.lazyload), c.sbg.className = p, c.sbg.src = c.src, c.sbg.dataset.bgcolor = c.bgcolor, c.sbg.style.width = "100%", c.sbg.style.height = "100%", c.key = l, c.wrap[0].dataset.key = l, e(c.sbg).data(c), c.wrap.data(c), c.wrap[0].appendChild(c.sbg); var m = document.createComment("Runtime Modification - Img tag is Still Available for SEO Goals in Source - " + d.get(0).outerHTML); d.replaceWith(m), a.gA(n[0], "sba") === t && a.sA(n[0], "sba", ""); var v = {}, f = a.gA(n[0], "sba").split(";"); for (var y in f) if (f.hasOwnProperty(y)) { var b = f[y].split(":"); switch (b[0]) { case"f": v.f = b[1]; break; case"b": v.b = b[1]; break; case"g": v.g = b[1]; break; case"t": v.s = b[1] } } a.sA(n[0], "scroll-based", !!a[i].sbtimeline.set && (v.s !== t && v.s)), c.bgvid.length > 0 && (c.bgvidid = c.bgvid[0].id, c.animateDirection = "idle", c.bgvid.addClass("defaultvid").css({zIndex: 30}), p !== t && "" !== p && "none" !== p && c.bgvid.addClass(p), c.bgvid.appendTo(c.wrap), c.parallax != t && (c.bgvid.data("parallax", c.parallax), c.bgvid.data("showcoveronpause", "on"), c.bgvid.data("mediafilter", p)), c.poster = !1, (c.src !== t && -1 == c.src.indexOf("assets/dummy.png") && -1 == c.src.indexOf("assets/transparent.png") || c.lazyload !== t && -1 == c.lazyload.indexOf("assets/transparent.png") && -1 == c.lazyload.indexOf("assets/dummy.png")) && (c.poster = !0), c.bgvid.data("bgvideo", 1), c.bgvid[0].dataset.key = l, 0 == c.bgvid.find(".rs-fullvideo-cover").length && c.bgvid.append('
')), a[i].scrolleffect.set ? (a[i].scrolleffect.bgs.push({ fade: v.f !== t ? v.f : !!a[i].scrolleffect.slide && a[i].scrolleffect.fade, blur: v.b !== t ? v.b : !!a[i].scrolleffect.slide && a[i].scrolleffect.blur, grayscale: v.g !== t ? v.g : !!a[i].scrolleffect.slide && a[i].scrolleffect.grayscale, c: c.wrap.wrap("").parent() }), n.prepend(c.wrap.parent().parent())) : n.prepend(c.wrap.parent()) } "carousel" === a[i].sliderType ? (tpGS.gsap.set(a[i].carousel.wrap, {opacity: 0}), a[i].c[0].appendChild(a[i].carousel.wrap[0])) : a[i].c[0].appendChild(a[i].canvas[0]) }, w = function (i, r) { i.bg = i.bg === t ? "" : i.bg; var o = i.bg.split(";"), s = {bgposition: "50% 50%", bgfit: "cover", bgrepeat: "no-repeat", bgcolor: "transparent"}; for (var n in o) if (o.hasOwnProperty(n)) { var l = o[n].split(":"), d = l[0], c = l[1], p = ""; switch (d) { case"p": p = "bgposition"; break; case"f": p = "bgfit"; break; case"r": p = "bgrepeat"; break; case"c": p = "bgcolor" } p !== t && (s[p] = c) } return a[r].fallbacks.panZoomDisableOnMobile && a.ISM && (s.panzoom = t, s.bgfit = "cover", i.panzoom = t), e.extend(!0, i, s) }, b = function (e, i, r) { if (a[i] !== t) { a[i].syncload--; var o = a.gA(e, "reference"); for (var s in a[i].loadqueue) a[i].loadqueue.hasOwnProperty(s) && "loaded" !== a[i].loadqueue[s].progress && o == a[i].loadqueue[s].src && (a[i].loadqueue[s].img = e, a[i].loadqueue[s].progress = r, a[i].loadqueue[s].width = e.naturalWidth, a[i].loadqueue[s].height = e.naturalHeight); _(i) } }, _ = function (i) { 4 != a[i].syncload && a[i].loadqueue && e.each(a[i].loadqueue, function (r, o) { if ("prepared" == o.progress && a[i].syncload <= 4) { if (a[i].syncload++, "img" == o.type) { var s = new Image; a.sA(s, "reference", o.src), !/^([\w]+\:)?\/\//.test(o.src) || -1 !== o.src.indexOf(location.host) && -1 === o.src.indexOf("." + location.host) || "" === a[i].imgCrossOrigin || a[i].imgCrossOrigin === t || (s.crossOrigin = a[i].imgCrossOrigin), s.onload = function () { b(this, i, "loaded"), o.error = !1 }, s.onerror = function () { s.failedOnce || (s.failedOnce = !0, delete s.crossOrigin, s.removeAttribute("crossorigin"), s.src = o.src, b(this, i, "failed"), o.error = !0) }, s.src = o.src, o.starttoload = Date.now() } else e.get(o.src, function (e) { o.innerHTML = (new XMLSerializer).serializeToString(e.documentElement), o.progress = "loaded", a[i].syncload--, _(i) }).fail(function () { o.progress = "failed", a[i].syncload--, _(i) }); o.progress = "inload" } }) }, S = function (e, t) { return console.log("Static Image " + e + " Could not be loaded in time. Error Exists:" + t), !0 }, x = function (e, t) { if (Date.now() - a[t][e + "starttime"] > 5e3 && 1 != a[t][e + "warning"]) { a[t][e + "warning"] = !0; var i = e + " Api Could not be loaded !"; "https:" === location.protocol && (i += " Please Check and Renew SSL Certificate !"), console.error(i), a[t].c.append('
' + i + "
") } return !0 }, k = function (i) { a[i] !== t && (a[i].pr_active_slide = e(a[i].slides[a[i].pr_active_key]), a[i].pr_next_slide = e(a[i].slides[a[i].pr_processing_key]), a[i].pr_active_bg = a[i].pr_active_slide.find("rs-sbg-wrap"), a[i].pr_next_bg = a[i].pr_next_slide.find("rs-sbg-wrap"), a[i].pr_active_bg !== t && a[i].pr_active_bg.length > 0 && tpGS.gsap.to(a[i].pr_active_bg, .5, {opacity: 0}), a[i].pr_next_bg !== t && a[i].pr_next_bg.length > 0 && tpGS.gsap.to(a[i].pr_next_bg, .5, {opacity: 0}), tpGS.gsap.set(a[i].pr_active_slide, {zIndex: 18}), a[i].pr_next_slide !== t && a[i].pr_next_slide.length > 0 && tpGS.gsap.set(a[i].pr_next_slide, { autoAlpha: 0, zIndex: 20 }), a[i].tonpause = !1, a[i].pr_active_key !== t && a.removeTheLayers(a[i].pr_active_slide, i, !0), a[i].firststart = 1, setTimeout(function () { delete a[i].pr_active_key, delete a[i].pr_processing_key }, 200)) }, L = function (i, r, o) { if (a[i] !== t) if (clearTimeout(a[i].waitWithSwapSlide), a[i].pr_processing_key === t || !0 !== a[i].firstSlideShown) { if (clearTimeout(a[i].waitWithSwapSlide), a[i].startWithSlideKey !== t && (a[i].pr_next_key = a.getComingSlide(i, a[i].startWithSlideKey).nindex, a[i].startedWithOtherSlide = !0, delete a[i].startWithSlideKey), a[i].pr_active_slide = e(a[i].slides[a[i].pr_active_key]), a[i].pr_next_slide = e(a[i].slides[a[i].pr_next_key]), a[i].pr_next_key == a[i].pr_active_key) return delete a[i].pr_next_key; var s = a.gA(a[i].pr_next_slide[0], "key"); a[i].sbgs[s] !== t && a[i].sbgs[s].bgvid && a[i].sbgs[s].bgvid.length > 0 && (a[i].videos == t || a[i].videos[a[i].sbgs[s].bgvid[0].id] === t) && a.manageVideoLayer(a[i].sbgs[s].bgvid, i, s), a[i].pr_processing_key = a[i].pr_next_key, a[i].pr_cache_pr_next_key = a[i].pr_next_key, delete a[i].pr_next_key, a[i].pr_next_slide !== t && a[i].pr_next_slide[0] !== t && a.gA(a[i].pr_next_slide[0], "hal") !== t && a.sA(a[i].pr_next_slide[0], "sofacounter", a.gA(a[i].pr_next_slide[0], "sofacounter") === t ? 1 : parseInt(a.gA(a[i].pr_next_slide[0], "sofacounter"), 0) + 1), a[i].stopLoop && a[i].pr_processing_key == a[i].lastslidetoshow - 1 && (a[i].progressC.css({visibility: "hidden"}), a[i].c.trigger("revolution.slide.onstop"), a[i].noloopanymore = 1), a[i].pr_next_slide.index() === a[i].slideamount - 1 && a[i].looptogo > 0 && "disabled" !== a[i].looptogo && (a[i].looptogo--, a[i].looptogo <= 0 && (a[i].stopLoop = !0)), a[i].tonpause = !0, a[i].slideInSwapTimer = !0, a[i].c.trigger("stoptimer"), "off" === a[i].spinner ? a[i].loader !== t && !0 === a[i].loaderVisible && (a[i].loader.css({display: "none"}), a[i].loaderVisible = !1) : a[i].loadertimer = setTimeout(function () { a[i].loader !== t && !0 !== a[i].loaderVisible && (a[i].loader.css({display: "block"}), a[i].loaderVisible = !0) }, 100); var n = "carousel" === a[i].sliderType && "all" !== a[i].lazyType ? a.loadVisibleCarouselItems(i) : a[i].pr_next_slide[0]; a.loadImages(n, i, 1), a.preLoadAudio && a.preLoadAudio(a[i].pr_next_slide, i, 1), a.waitForCurrentImages(n, i, function () { a[i].firstSlideShown = !0, a[i].pr_next_slide.find("rs-bgvideo").each(function () { a.prepareCoveredVideo(i) }), a.loadUpcomingContent(i), window.requestAnimationFrame(function () { O(a[i].pr_next_slide.find("rs-sbg"), i, r, o) }) }) } else a[i].waitWithSwapSlide = setTimeout(function () { L(i, r) }, 18) }, O = function (i, r, o, s) { if (a[r] !== t) { M(r), a[r].pr_active_slide = e(a[r].slides[a[r].pr_active_key]), a[r].pr_next_slide = e(a[r].slides[a[r].pr_processing_key]), a[r].pr_active_bg = a[r].pr_active_slide.find("rs-sbg-wrap"), a[r].pr_next_bg = a[r].pr_next_slide.find("rs-sbg-wrap"), a[r].tonpause = !1, clearTimeout(a[r].loadertimer), a[r].loader !== t && !0 === a[r].loaderVisible && (window.requestAnimationFrame(function () { a[r].loader.css({display: "none"}) }), a[r].loaderVisible = !1), a[r].onBeforeSwap = { slider: r, slideIndex: parseInt(a[r].pr_active_key, 0) + 1, slideLIIndex: a[r].pr_active_key, nextSlideIndex: parseInt(a[r].pr_processing_key, 0) + 1, nextSlideLIIndex: a[r].pr_processing_key, nextslide: a[r].pr_next_slide, slide: a[r].pr_active_slide, currentslide: a[r].pr_active_slide, prevslide: a[r].pr_lastshown_key !== t ? a[r].slides[a[r].pr_lastshown_key] : "" }, "carousel" !== a[r].sliderType && tpGS.gsap.set(a[r].pr_next_slide, {display: "block"}), a[r].c.trigger("revolution.slide.onbeforeswap", a[r].onBeforeSwap); var n = a.gA(a[r].pr_active_slide[0], "key"), l = a[r].sbgs[n]; if (l && l.panzoom && l.pzAnim && (l.pzLastFrame = !0, a.pzDrawShadow(r, l, l.pzAnim.start)), a[r].sbgs[a.gA(a[r].pr_next_slide[0], "key")] && tpGS.gsap.fromTo(a[r].sbgs[a.gA(a[r].pr_next_slide[0], "key")].overlay, {opacity: 0}, { opacity: 1, duration: 1, ease: "none" }), l && tpGS.gsap.to(l.overlay, { opacity: 0, duration: 1, ease: "none" }), a[r].transition = 1, a[r].stopByVideo = !1, a[r].pr_next_slide[0] !== t && a.gA(a[r].pr_next_slide[0], "duration") != t && "" != a.gA(a[r].pr_next_slide[0], "duration") ? a[r].duration = parseInt(a.gA(a[r].pr_next_slide[0], "duration"), 0) : a[r].duration = a[r].origcd, a[r].pr_next_slide[0] === t || "true" != a.gA(a[r].pr_next_slide[0], "ssop") && !0 !== a.gA(a[r].pr_next_slide[0], "ssop") ? a[r].ssop = !1 : a[r].ssop = !0, a[r].sbtimeline.set && a[r].sbtimeline.fixed && a.updateFixedScrollTimes(r), a[r].c.trigger("nulltimer"), a[r].sdir = "bullet" !== a[r].sc_indicator && a[r].pr_active_key == a[r].slideamount - 1 && 0 == a[r].pr_processing_key ? 0 : a[r].pr_processing_key < a[r].pr_active_key ? 1 : 0, "arrow" == a[r].sc_indicator && (a[r].sdir = a[r].sc_indicator_dir), a[r].lsdir = a[r].sdir, a[r].pr_active_key != a[r].pr_processing_key && 1 != a[r].firststart && "carousel" !== a[r].sliderType && a.removeTheLayers && a.removeTheLayers(a[r].pr_active_slide, r), 1 !== a.gA(a[r].pr_next_slide[0], "rspausetimeronce") && 1 !== a.gA(a[r].pr_next_slide[0], "rspausetimeralways") ? a[r].c.trigger("restarttimer") : (a[r].stopByVideo = !0, a.unToggleState(a[r].slidertoggledby)), a.sA(a[r].pr_next_slide[0], "rspausetimeronce", 0), a[r].pr_next_slide[0] !== t && a.sA(a[r].c[0], "slideactive", a.gA(a[r].pr_next_slide[0], "key")), "carousel" == a[r].sliderType) { if (a[r].mtl = tpGS.gsap.timeline(), a.prepareCarousel(r), "v" == a[r].carousel.orientation && tpGS.gsap.set(a[r].canvas, {height: a[r].carousel.slide_height}), R(r, s), a.updateSlideBGs(r), !0 !== a[r].carousel.checkFVideo) { var d = a.gA(a[r].pr_next_slide[0], "key"); a[r].sbgs[d] !== t && a[r].sbgs[d].bgvid !== t && 0 !== a[r].sbgs[d].bgvid.length && a.playBGVideo(r, d), a[r].carousel.checkFVideo = !0 } a[r].transition = 0, a[r].startedWithOtherSlide && (setTimeout(function () { a[r].carousel.focused = a[r].pr_active_key, a.positionCarousel(r) }), delete a[r].startedWithOtherSlide) } else { a[r].pr_lastshown_key = a[r].pr_lastshown_key === t ? a[r].pr_next_key !== t ? a[r].pr_next_key : a[r].pr_processing_key !== t ? a[r].pr_processing_key : a[r].pr_active_key !== t ? a[r].pr_active_key : a[r].pr_lastshown_key : a[r].pr_lastshown_key, a[r].mtl = tpGS.gsap.timeline({ paused: !0, onComplete: function () { R(r) } }), a[r].pr_next_key !== t ? a.animateTheLayers({ slide: a[r].pr_next_key, id: r, mode: "preset", caller: "swapSlideProgress_1" }) : a[r].pr_processing_key !== t ? a.animateTheLayers({ slide: a[r].pr_processing_key, id: r, mode: "preset", caller: "swapSlideProgress_2" }) : a[r].pr_active_key !== t && a.animateTheLayers({ slide: a[r].pr_active_key, id: r, mode: "preset", caller: "swapSlideProgress_3" }), 1 == a[r].firststart && (a[r].pr_active_slide[0] !== t && tpGS.gsap.set(a[r].pr_active_slide, {autoAlpha: 0}), a[r].firststart = 0), a[r].pr_active_slide[0] !== t && tpGS.gsap.set(a[r].pr_active_slide, {zIndex: 18}), a[r].pr_next_slide[0] !== t && tpGS.gsap.set(a[r].pr_next_slide, { autoAlpha: 0, zIndex: 20 }); d = a.gA(a[r].pr_next_slide[0], "key"); a[r].sbgs[d] !== t && a[r].sbgs[d].alt === t && (a[r].sbgs[d].alt = a.gA(a[r].pr_next_slide[0], "alttrans") || !1, a[r].sbgs[d].alt = !1 !== a[r].sbgs[d].alt && a[r].sbgs[d].alt.split(","), a[r].sbgs[d].altIndex = 0, a[r].sbgs[d].altLen = !1 !== a[r].sbgs[d].alt ? a[r].sbgs[d].alt.length : 0); a[r].firstSlideAnimDone === t && a[r].fanim !== t && !1 !== a[r].fanim || (a[r].sbgs[d].slideanimation === t || a[r].sbgs[d].slideanimationRebuild || (a[r].sbgs[d].random !== t && a.SLTR !== t || a[r].sbgs[d].altLen > 0 && a.SLTR)); a[r].sbgs[d].slideanimation = a[r].firstSlideAnimDone === t && a[r].fanim !== t && !1 !== a[r].fanim ? a.convertSlideAnimVals(e.extend(!0, {}, a.getSlideAnim_EmptyObject(), a[r].fanim)) : a[r].sbgs[d].slideanimation === t || a[r].sbgs[d].slideanimationRebuild || a[r].sbgs[d].altLen > 0 && "default_first_anim" == a[r].sbgs[d].alt[a[r].sbgs[d].altIndex] ? a.getSlideAnimationObj(r, { anim: a.gA(a[r].pr_next_slide[0], "anim"), filter: a.gA(a[r].pr_next_slide[0], "filter"), in: a.gA(a[r].pr_next_slide[0], "in"), out: a.gA(a[r].pr_next_slide[0], "out"), d3: a.gA(a[r].pr_next_slide[0], "d3") }, d) : a[r].sbgs[d].random !== t && a.SLTR !== t ? a.convertSlideAnimVals(e.extend(!0, {}, a.getSlideAnim_EmptyObject(), a.getAnimObjectByKey(a.getRandomSlideTrans(a[r].sbgs[d].random.rndmain, a[r].sbgs[d].random.rndgrp, a.SLTR), a.SLTR))) : a[r].sbgs[d].altLen > 0 && a.SLTR !== t ? a.convertSlideAnimVals(e.extend(!0, {altAnim: a[r].sbgs[d].alt[a[r].sbgs[d].altIndex]}, a.getSlideAnim_EmptyObject(), a.getAnimObjectByKey(a[r].sbgs[d].alt[a[r].sbgs[d].altIndex], a.SLTR))) : a[r].sbgs[d].slideanimation, a[r].sbgs[d].altLen > 0 && (a[r].sbgs[d].firstSlideAnimDone !== t ? (a[r].sbgs[d].altIndex++, a[r].sbgs[d].altIndex = a[r].sbgs[d].altIndex >= a[r].sbgs[d].altLen ? 0 : a[r].sbgs[d].altIndex) : (a[r].sbgs[d].firstSlideAnimDone = !0, a.SLTR === t && a.SLTR_loading === t && a.loadSlideAnimLibrary(r), a[r].sbgs[d].alt.push("default_first_anim"), a[r].sbgs[d].altLen++)), a[r].sbgs[d].currentState = "animating", a.animateSlide(r, a[r].sbgs[d].slideanimation), a[r].firstSlideAnimDone === t && a[r].fanim !== t && !1 !== a[r].fanim && (a[r].sbgs[d].slideanimationRebuild = !0), a[r].firstSlideAnimDone = !0, a[r].pr_next_bg.data("panzoom") !== t && requestAnimationFrame(function () { var e = a.gA(a[r].pr_next_slide[0], "key"); a.startPanZoom(a[r].pr_next_bg, r, 0, a.getSlideIndex(r, e), "first", e) }), a[r].mtl.pause() } if (a.animateTheLayers ? "carousel" === a[r].sliderType ? (!1 !== a[r].carousel.showLayersAllTime && (a[r].carousel.allLayersStarted ? a.animateTheLayers({ slide: "individual", id: r, mode: "rebuild", caller: "swapSlideProgress_5" }) : a.animateTheLayers({ slide: "individual", id: r, mode: "start", caller: "swapSlideProgress_4" }), a[r].carousel.allLayersStarted == t && (a.updateCarouselRows(r), a[r].carousel.allLayersStarted = !0)), 0 !== a[r].firststart ? a.animateTheLayers({ slide: 0, id: r, mode: "start", caller: "swapSlideProgress_6" }) : !0 !== o && a.animateTheLayers({ slide: a[r].pr_next_key !== t ? a[r].pr_next_key : a[r].pr_processing_key !== t ? a[r].pr_processing_key : a[r].pr_active_key, id: r, mode: "start", caller: "swapSlideProgress_7" }), a[r].firststart = 0) : a.animateTheLayers({ slide: a[r].pr_next_key !== t ? a[r].pr_next_key : a[r].pr_processing_key !== t ? a[r].pr_processing_key : a[r].pr_active_key, id: r, mode: "start", caller: "swapSlideProgress_8" }) : a[r].mtl != t && setTimeout(function () { a[r].mtl.resume() }, 18), "carousel" !== a[r].sliderType) if (a[r].scwDur = .001, Array.isArray(a[r].scwCallback) && a[r].scwCallback.length > 0) { a[r].scwDone = !1, a[r].scwCount = a[r].scwCallback.length; for (var c = 0; c < a[r].scwCallback.length; c++) a[r].scwCallback[c](); a[r].scwTimeout = tpGS.gsap.delayedCall(2, function () { a[r].scwCount > 0 && (a[r].scwTween && "function" == typeof a[r].scwTween.kill && (a[r].scwTween.kill(), a[r].scwTween = null), a[r].scwTween = tpGS.gsap.to(a[r].pr_next_slide, { duration: a[r].scwDur, autoAlpha: 1 })) }) } else tpGS.gsap.to(a[r].pr_next_slide, {duration: a[r].scwDur, autoAlpha: 1}) } }, R = function (i) { if (a[i] !== t) { if ("done" !== a.RS_swapList[i]) { a.RS_swapList[i] = "done"; var r = e.inArray(i, a.RS_swapping); a.RS_swapping.splice(r, 1) } if (a[i].firstSlideAvailable === t && (a[i].firstSlideAvailable = !0, window.requestAnimationFrame(function () { "hero" !== a[i].sliderType && a.createNavigation && a[i].navigation.use && !0 !== a[i].navigation.createNavigationDone && a.createNavigation(i) })), "carousel" === a[i].sliderType && tpGS.gsap.to(a[i].carousel.wrap, 1, {opacity: 1}), a[i].pr_active_key = a[i].pr_processing_key !== t ? a[i].pr_processing_key : a[i].pr_active_key, delete a[i].pr_processing_key, "scroll" != a[i].parallax.type && "scroll+mouse" != a[i].parallax.type && "mouse+scroll" != a[i].parallax.type || (a[i].lastscrolltop = -999, a.generalObserver(a.ISM)), a[i].mtldiff = a[i].mtl.time(), delete a[i].mtl, a[i].pr_active_key !== t) { a.gA(a[i].slides[a[i].pr_active_key], "sloop") !== t && function (e) { if (a[e] !== t) { a[e].sloops = a[e].sloops === t ? {} : a[e].sloops; var i = a.gA(a[e].slides[a[e].pr_active_key], "key"), r = a[e].sloops[i]; if (r === t) { r = {s: 2500, e: 4500, r: "unlimited"}; var o = a.gA(a[e].slides[a[e].pr_active_key], "sloop").split(";"); for (var s in o) if (o.hasOwnProperty(s)) { var n = o[s].split(":"); switch (n[0]) { case"s": r.s = parseInt(n[1], 0) / 1e3; break; case"e": r.e = parseInt(n[1], 0) / 1e3; break; case"r": r.r = n[1] } } r.r = "unlimited" === r.r ? -1 : parseInt(r.r, 0), a[e].sloops[i] = r, r.key = i } r.ct = {time: r.s}, r.tl = tpGS.gsap.timeline({}), r.timer = tpGS.gsap.fromTo(r.ct, r.e - r.s, {time: r.s}, { time: r.e, ease: "none", onRepeat: function () { for (var i in a[e].layers[r.key]) a[e].layers[r.key].hasOwnProperty(i) && a[e]._L[i].timeline.play(r.s); var o = a[e].progressC; o !== t && o[0] !== t && o[0].tween !== t && o[0].tween.time(r.s) }, onUpdate: function () { }, onComplete: function () { } }).repeat(r.r), r.tl.add(r.timer, r.s), r.tl.time(a[e].mtldiff) } }(i), a.sA(a[i].slides[a[i].activeRSSlide], "isactiveslide", !1), a[i].activeRSSlide = a[i].pr_active_key, a.sA(a[i].slides[a[i].activeRSSlide], "isactiveslide", !0); var o = a.gA(a[i].slides[a[i].pr_active_key], "key"), s = a.gA(a[i].slides[a[i].pr_lastshown_key], "key"); a.sA(a[i].c[0], "slideactive", o), s !== t && a[i].panzoomTLs !== t && a[i].panzoomTLs[a.getSlideIndex(i, s)] !== t && ("carousel" === a[i].sliderType ? (a[i].panzoomTLs[a.getSlideIndex(i, s)].timeScale(3), a[i].panzoomTLs[a.getSlideIndex(i, s)].reverse()) : a[i].panzoomTLs[a.getSlideIndex(i, s)].pause()), I(i, o); var n = { slider: i, slideIndex: parseInt(a[i].pr_active_key, 0) + 1, slideLIIndex: a[i].pr_active_key, slide: a[i].pr_next_slide, currentslide: a[i].pr_next_slide, prevSlideIndex: a[i].pr_lastshown_key !== t && parseInt(a[i].pr_lastshown_key, 0) + 1, prevSlideLIIndex: a[i].pr_lastshown_key !== t && parseInt(a[i].pr_lastshown_key, 0), prevSlide: a[i].pr_lastshown_key !== t && a[i].slides[a[i].pr_lastshown_key] }; if (a[i].c.trigger("revolution.slide.onchange", n), a[i].c.trigger("revolution.slide.onafterswap", n), "" + a[i].pr_lastshown_key != "" + a[i].pr_active_key && "carousel" !== a[i].sliderType && tpGS.gsap.set(n.prevSlide, { display: "none", delay: .01 }), a[i].deepLinkListener || a[i].enableDeeplinkHash) { var l = a.gA(a[i].slides[a[i].pr_active_key], "deeplink"); l !== t && l.length > 0 && (a[i].ignoreDeeplinkChange = !0, window.location.hash = a.gA(a[i].slides[a[i].pr_active_key], "deeplink")) } a[i].pr_lastshown_key = a[i].pr_active_key, a[i].startWithSlide !== t && "done" !== a[i].startWithSlide && "carousel" === a[i].sliderType && (a[i].firststart = 0), a[i].duringslidechange = !1, a[i].pr_active_slide.length > 0 && 0 != a.gA(a[i].pr_active_slide[0], "hal") && a.gA(a[i].pr_active_slide[0], "hal") <= a.gA(a[i].pr_active_slide[0], "sofacounter") && a[i].c.revremoveslide(a[i].pr_active_slide.index()); var d = a[i].pr_processing_key || a[i].pr_active_key || 0; a[i].rowzones != t && (d = d > a[i].rowzones.length ? a[i].rowzones.length : d), (a[i].rowzones != t && a[i].rowzones.length > 0 && a[i].rowzones[d] != t && d >= 0 && d <= a[i].rowzones.length && a[i].rowzones[d].length > 0 || a.winH < a[i].module.height) && a.updateDims(i), a[i].firstLetItFree === t && (a.generalObserver(a.ISM), a[i].firstLetItFree = !0), a[i].skipAttachDetach = !1 } } }, I = function (e, i) { a[e].sbgs[i] === t || a[e].sbgs[i].loadobj.img ? a[e].pr_next_bg.data("panzoom") !== t && (a[e].panzoomTLs !== t && a[e].panzoomTLs[a.getSlideIndex(e, i)] !== t ? (a[e].panzoomTLs[a.getSlideIndex(e, i)].timeScale(1), a[e].panzoomTLs[a.getSlideIndex(e, i)].play()) : a.startPanZoom(a[e].pr_next_bg, e, 0, a.getSlideIndex(e, i), "play", i)) : tpGS.gsap.delayedCall(.1, function () { I(e, i) }) }, M = function (i) { var r = a[i].progressBar; if (a[i].progressC === t || 0 == a[i].progressC.length) if (a[i].progressC = e(''), "horizontal" === r.style || "vertical" === r.style) { if ("module" === r.basedon) { for (var o = "", s = 0; s < a[i].slideamount; s++) o += ""; o += ""; for (s = 0; s < a[i].slideamount; s++) o += ""; if (o += "", "nogap" !== r.gaptype) for (s = 0; s < a[i].slideamount; s++) o += ""; a[i].progressC[0].innerHTML = o, !0 === a[i].noDetach && a[i].c.append(a[i].progressC), a[i].progressCBarBGS = a.getByTag(a[i].progressC[0], "RS-PROGRESS-BG"), a[i].progressCBarGAPS = a.getByTag(a[i].progressC[0], "RS-PROGRESS-GAP"), "nogap" !== r.gaptype && tpGS.gsap.set(a[i].progressCBarGAPS, { backgroundColor: r.gapcolor, zIndex: "gapbg" === r.gaptype ? 17 : 27 }), tpGS.gsap.set(a[i].progressCBarBGS, {backgroundColor: r.bgcolor}) } else a[i].progressC[0].innerHTML = "", !0 === a[i].noDetach && a[i].c.append(a[i].progressC); a[i].progressCBarInner = a.getByTag(a[i].progressC[0], "RS-PROGRESS-BAR"), tpGS.gsap.set(a[i].progressCBarInner, {background: r.color}) } else a[i].progressC[0].innerHTML = '', !0 === a[i].noDetach && a[i].c.append(a[i].progressC), a[i].progressCBarInner = a[i].progressC[0].getElementsByClassName("rs-progress-bar")[0], a[i].progressBCanvas = a[i].progressCBarInner.getContext("2d"), a[i].progressBar.degree = "cw" === a[i].progressBar.style ? 360 : 0, T(i); if (!0 !== a[i].noDetach && a[i].progressC.detach(), a[i].progressBar.visibility[a[i].level] && 1 != a[i].progressBar.disableProgressBar) if ("horizontal" === r.style || "vertical" === r.style) { var n, l, d = a[i].slideamount - 1; if ("horizontal" === r.style) { var c = "grid" === r.alignby ? a[i].gridwidth[a[i].level] : a[i].module.width; n = Math.ceil(c / a[i].slideamount), l = Math.ceil((c - d * r.gapsize) / a[i].slideamount), tpGS.gsap.set(a[i].progressC, { visibility: "visible", top: "top" === r.vertical ? r.y + ("grid" === r.alignby && a[i].gridOffsetHeight !== t ? Math.max(0, a[i].gridOffsetHeight) : 0) : "center" === r.vertical ? "50%" : "auto", bottom: "top" === r.vertical || "center" === r.vertical ? "auto" : r.y + ("grid" === r.alignby && a[i].gridOffsetHeight !== t ? Math.max(0, a[i].gridOffsetHeight) : 0), left: "left" === r.horizontal && "grid" === r.alignby && a[i].gridOffsetWidth !== t ? Math.max(0, a[i].gridOffsetWidth) : "auto", right: "right" === r.horizontal && "grid" === r.alignby && a[i].gridOffsetWidth !== t ? Math.max(0, a[i].gridOffsetWidth) : "auto", y: "center" === r.vertical ? r.y : 0, height: r.size, backgroundColor: "module" === r.basedon ? "transparent" : r.bgcolor, marginTop: "bottom" === r.vertical ? 0 : "top" === r.vertical ? 0 : parseInt(r.size, 0) / 2, width: "grid" === r.alignby ? a[i].gridwidth[a[i].level] : "100%" }), tpGS.gsap.set(a[i].progressCBarInner, { x: "module" === r.basedon ? r.gap ? function (e) { return ("right" === r.horizontal ? d - e : e) * (l + r.gapsize) } : function (e) { return ("right" === r.horizontal ? d - e : e) * n } : 0, width: "module" === r.basedon ? r.gap ? l + "px" : 100 / a[i].slideamount + "%" : "100%" }), "module" === r.basedon && (tpGS.gsap.set(a[i].progressCBarBGS, { x: "module" === r.basedon ? r.gap ? function (e) { return e * (l + r.gapsize) } : function (e) { return e * n } : 0, width: "module" === r.basedon ? r.gap ? l + "px" : 100 / a[i].slideamount + "%" : "100%" }), tpGS.gsap.set(a[i].progressCBarGAPS, { width: r.gap ? r.gapsize + "px" : 0, x: r.gap ? function (e) { return (e + 1) * l + parseInt(r.gapsize, 0) * e } : 0 })) } else if ("vertical" === r.style) { c = "grid" === r.alignby ? a[i].gridheight[a[i].level] : a[i].module.height; n = Math.ceil(c / a[i].slideamount), l = Math.ceil((c - d * r.gapsize) / a[i].slideamount), tpGS.gsap.set(a[i].progressC, { visibility: "visible", left: "left" === r.horizontal ? r.x + ("grid" === r.alignby && a[i].gridOffsetWidth !== t ? Math.max(0, a[i].gridOffsetWidth) : 0) : "center" === r.horizontal ? "50%" : "auto", right: "left" === r.horizontal || "center" === r.horizontal ? "auto" : r.x + ("grid" === r.alignby && a[i].gridOffsetWidth !== t ? Math.max(0, a[i].gridOffsetWidth) : 0), x: "center" === r.horizontal ? r.x : 0, top: "top" === r.vertical && "grid" === r.alignby && a[i].gridOffsetHeight !== t ? Math.max(a[i].gridOffsetHeight, 0) : "auto", bottom: "bottom" === r.vertical && "grid" === r.alignby && a[i].gridOffsetHeight !== t ? Math.max(a[i].gridOffsetHeight, 0) : "auto", width: r.size, marginLeft: "left" === r.horizontal ? 0 : "right" === r.horizontal ? 0 : parseInt(r.size, 0) / 2, backgroundColor: "module" === r.basedon ? "transparent" : r.bgcolor, height: "grid" === r.alignby ? a[i].gridheight[a[i].level] : "100%" }), tpGS.gsap.set(a[i].progressCBarInner, { y: "module" === r.basedon ? r.gap ? function (e) { return ("bottom" === r.vertical ? d - e : e) * (l + r.gapsize) } : function (e) { return ("bottom" === r.vertical ? d - e : e) * n } : 0, height: "module" === r.basedon ? r.gap ? l + "px" : 100 / a[i].slideamount + "%" : "100%" }), "module" === r.basedon && (tpGS.gsap.set(a[i].progressCBarBGS, { y: "module" === r.basedon ? r.gap ? function (e) { return e * (l + r.gapsize) } : function (e) { return e * n } : 0, height: "module" === r.basedon ? r.gap ? l + "px" : 100 / a[i].slideamount + "%" : "100%" }), tpGS.gsap.set(a[i].progressCBarGAPS, { height: r.gap ? r.gapsize + "px" : 0, y: r.gap ? function (e) { return (e + 1) * l + parseInt(r.gapsize, 0) * e } : 0 })) } } else tpGS.gsap.set(a[i].progressC, { top: "top" === r.vertical ? r.y + ("grid" === r.alignby && a[i].gridOffsetHeight !== t ? Math.max(0, a[i].gridOffsetHeight) : 0) : "center" === r.vertical ? "50%" : "auto", bottom: "top" === r.vertical || "center" === r.vertical ? "auto" : r.y + ("grid" === r.alignby && a[i].gridOffsetHeight !== t ? Math.max(0, a[i].gridOffsetHeight) : 0), left: "left" === r.horizontal ? r.x + ("grid" === r.alignby && a[i].gridOffsetWidth !== t ? Math.max(0, a[i].gridOffsetWidth) : 0) : "center" === r.horizontal ? "50%" : "auto", right: "left" === r.horizontal || "center" === r.horizontal ? "auto" : r.x + ("grid" === r.alignby && a[i].gridOffsetWidth !== t ? Math.max(0, a[i].gridOffsetWidth) : 0), y: "center" === r.vertical ? r.y : 0, x: "center" === r.horizontal ? r.x : 0, width: 2 * r.radius, height: 2 * r.radius, marginTop: "center" === r.vertical ? 0 - r.radius : 0, marginLeft: "center" === r.horizontal ? 0 - r.radius : 0, backgroundColor: "transparent", visibility: "visible" }); else a[i].progressC[0].style.visibility = "hidden"; !0 !== a[i].noDetach && a[i].c.append(a[i].progressC), a[i].gridOffsetWidth === t && "grid" === r.alignby ? a[i].rebuildProgressBar = !0 : a[i].rebuildProgressBar = !1 }, T = function (e) { var t = a[e].progressBar; t.radius - parseInt(t.size, 0) <= 0 && (t.size = t.radius / 4); var i = parseInt(t.radius), r = parseInt(t.radius); a[e].progressBCanvas.lineCap = "round", a[e].progressBCanvas.clearRect(0, 0, 2 * t.radius, 2 * t.radius), a[e].progressBCanvas.beginPath(), a[e].progressBCanvas.arc(i, r, t.radius - parseInt(t.size, 0), Math.PI / 180 * 270, Math.PI / 180 * 630), a[e].progressBCanvas.strokeStyle = t.bgcolor, a[e].progressBCanvas.lineWidth = parseInt(t.size, 0) - 1, a[e].progressBCanvas.stroke(), a[e].progressBCanvas.beginPath(), a[e].progressBCanvas.strokeStyle = t.color, a[e].progressBCanvas.lineWidth = parseInt(t.size, 0), a[e].progressBCanvas.arc(i, r, t.radius - parseInt(t.size, 0), Math.PI / 180 * 270, Math.PI / 180 * (270 + a[e].progressBar.degree), "cw" !== t.style), a[e].progressBCanvas.stroke() }, C = function (i) { var r = function () { i !== t && a !== t && a[i] !== t && (0 == e("body").find(a[i].c).length || null === a[i] || null === a[i].c || a[i].c === t || 0 === a[i].length ? (!function (t) { a[t].c.children().each(function () { try { e(this).die("click") } catch (e) { } try { e(this).die("mouseenter") } catch (e) { } try { e(this).die("mouseleave") } catch (e) { } try { e(this).off("hover") } catch (e) { } }); try { a[t].c.die("click", "mouseenter", "mouseleave") } catch (e) { } clearInterval(a[t].cdint), a[t].c = null }(i), clearInterval(a[i].cdint)) : (a[i].c.trigger("revolution.slide.slideatend"), 1 == a[i].c.data("conthoverchanged") && (a[i].conthover = a[i].c.data("conthover"), a[i].c.data("conthoverchanged", 0)), a.callingNewSlide(i, 1, !0))) }, o = tpGS.gsap.timeline({paused: !0}), s = "reset" === a[i].progressBar.reset || a[i].progressBar.notnew === t ? 0 : .2, n = "slide" === a[i].progressBar.basedon ? 0 : a[i].pr_processing_key !== t ? a[i].pr_processing_key : a[i].pr_active_key; if (n = n === t ? 0 : n, "horizontal" === a[i].progressBar.style) { if (o.add(tpGS.gsap.to(a[i].progressCBarInner[n], s, { scaleX: 0, transformOrigin: "right" === a[i].progressBar.horizontal ? "100% 50%" : "0% 50%" })), o.add(tpGS.gsap.to(a[i].progressCBarInner[n], a[i].duration / 1e3, { transformOrigin: "right" === a[i].progressBar.horizontal ? "100% 50%" : "0% 50%", force3D: "auto", scaleX: 1, onComplete: r, delay: .5, ease: a[i].progressBar.ease })), "module" === a[i].progressBar.basedon) for (var l = 0; l < a[i].slideamount; l++) l !== n && o.add(tpGS.gsap.set(a[i].progressCBarInner[l], { scaleX: l < n ? 1 : 0, transformOrigin: "right" === a[i].progressBar.horizontal ? "100% 50%" : "0% 50%" }), 0) } else if ("vertical" === a[i].progressBar.style) { if (a[i].progressCBarInner[n] !== t && o.add(tpGS.gsap.to(a[i].progressCBarInner[n], s, { scaleY: 0, transformOrigin: "bottom" === a[i].progressBar.vertical ? "50% 100%" : "50% 0%" })), a[i].progressCBarInner[n] !== t && o.add(tpGS.gsap.to(a[i].progressCBarInner[n], a[i].duration / 1e3, { transformOrigin: "bottom" === a[i].progressBar.vertical ? "50% 100%" : "50% 0%", force3D: "auto", scaleY: 1, onComplete: r, delay: .5, ease: a[i].progressBar.ease })), "module" === a[i].progressBar.basedon) for (l = 0; l < a[i].slideamount; l++) l !== n && a[i].progressCBarInner[l] !== t && o.add(tpGS.gsap.set(a[i].progressCBarInner[l], { scaleY: l < n ? 1 : 0, transformOrigin: "botton" === a[i].progressBar.vertical ? "50% 100%" : "50% 0%" }), 0) } else { var d = "slide" === a[i].progressBar.basedon ? 0 : Math.max(0, 360 / a[i].slideamount * n), c = "slide" === a[i].progressBar.basedon ? 360 : 360 / a[i].slideamount * (n + 1); "ccw" === a[i].progressBar.style && "slide" !== a[i].progressBar.basedon && (d = 360 - c, c = 360 - 360 / a[i].slideamount * n), o.add(tpGS.gsap.to(a[i].progressBar, s, { degree: "cw" === a[i].progressBar.style ? d : c, onUpdate: function () { T(i) } })), o.add(tpGS.gsap.to(a[i].progressBar, a[i].duration / 1e3, { degree: "cw" === a[i].progressBar.style ? c : d, onUpdate: function () { T(i) }, onComplete: r, delay: .5, ease: a[i].progressBar.ease })) } return a[i].progressBar.notnew = !0, o }, A = function (e) { a[e].progressC == t && M(e), a[e].loop = 0, a[e].stopAtSlide != t && a[e].stopAtSlide > -1 ? a[e].lastslidetoshow = a[e].stopAtSlide : a[e].lastslidetoshow = 999, a[e].stopLoop = !1, 0 == a[e].looptogo && (a[e].stopLoop = !0), a[e].c.on("stoptimer", function () { a[e].progressC != t && (a[e].progressC[0].tween.pause(), a[e].progressBar.disableProgressBar && (a[e].progressC[0].style.visibility = "hidden"), a[e].sliderstatus = "paused", a[e].slideInSwapTimer || a.unToggleState(a[e].slidertoggledby), a[e].slideInSwapTimer = !1) }), a[e].c.on("starttimer", function () { a[e].progressC != t && (a[e].forcepaused || (1 != a[e].conthover && 1 != a[e].stopByVideo && a[e].module.width > a[e].hideSliderAtLimit && 1 != a[e].tonpause && 1 != a[e].overnav && 1 != a[e].ssop && (1 === a[e].noloopanymore || a[e].viewPort.enable && !a[e].inviewport || (a[e].progressBar.visibility[a[e].level] || (a[e].progressC[0].style.visibility = "visible"), a[e].progressC[0].tween.resume(), a[e].sliderstatus = "playing")), !a[e].progressBar.disableProgressBar && a[e].progressBar.visibility[a[e].level] || (a[e].progressC[0].style.visibility = "hidden"), a.toggleState(a[e].slidertoggledby))) }), a[e].c.on("restarttimer", function () { if (!(a[e].modal !== t && a[e].modal.useAsModal && "close" == a[e].modal.lastModalCall || a[e].progressC == t || a[e].forcepaused)) { if (a[e].mouseoncontainer && "on" == a[e].navigation.onHoverStop && !a.ISM) return !1; 1 === a[e].noloopanymore || a[e].viewPort.enable && !a[e].inviewport || 1 == a[e].ssop ? a.unToggleState(a[e].slidertoggledby) : (a[e].progressBar.visibility[a[e].level] || (a[e].progressC[0].style.visibility = "visible"), a[e].progressC[0].tween !== t && a[e].progressC[0].tween.kill(), a[e].progressC[0].tween = C(e), a[e].progressC[0].tween.play(), a[e].sliderstatus = "playing", a.toggleState(a[e].slidertoggledby)), !a[e].progressBar.disableProgressBar && a[e].progressBar.visibility[a[e].level] || (a[e].progressC[0].style.visibility = "hidden"), a[e].mouseoncontainer && 1 == a[e].navigation.onHoverStop && !a.ISM && (a[e].c.trigger("stoptimer"), a[e].c.trigger("revolution.slide.onpause")) } }), a[e].c.on("nulltimer", function () { a[e].progressC != t && a[e].progressC[0] !== t && (a[e].progressC[0].tween !== t && a[e].progressC[0].tween.kill(), a[e].progressC[0].tween = C(e), a[e].progressC[0].tween.pause(0), !a[e].progressBar.disableProgressBar && a[e].progressBar.visibility[a[e].level] || (a[e].progressC[0].style.visibility = "hidden"), a[e].sliderstatus = "paused") }), a[e].progressC !== t && (a[e].progressC[0].tween = C(e)), a[e].slideamount > 1 && (0 != a[e].stopAfterLoops || 1 != a[e].stopAtSlide) ? a[e].c.trigger("starttimer") : (a[e].noloopanymore = 1, a[e].c.trigger("nulltimer")), a[e].c.on("tp-mouseenter", function () { a[e].mouseoncontainer = !0, 1 != a[e].navigation.onHoverStop || a.ISM || (a[e].c.trigger("stoptimer"), a[e].c.trigger("revolution.slide.onpause")) }), a[e].c.on("tp-mouseleft", function () { a[e].mouseoncontainer = !1, 1 != a[e].c.data("conthover") && 1 == a[e].navigation.onHoverStop && (1 == a[e].viewPort.enable && a[e].inviewport || 0 == a[e].viewPort.enable) && (a[e].c.trigger("revolution.slide.onresume"), a[e].c.trigger("starttimer")) }) }, D = function () { e(".rev_redraw_on_blurfocus").each(function () { var e = this.id; if (a[e] == t || a[e].c == t || 0 === a[e].c.length) return !1; 1 != a[e].windowfocused && (a[e].windowfocused = !0, tpGS.gsap.delayedCall(.1, function () { a[e].fallbacks.nextSlideOnWindowFocus && a[e].c.revnext(), a[e].c.revredraw(), "playing" == a[e].lastsliderstatus && a[e].c.revresume(), a[e].c.trigger("revolution.slide.tabfocused") })) }) }, P = function () { document.hasFocus() || e(".rev_redraw_on_blurfocus").each(function (e) { var t = this.id; a[t].windowfocused = !1, a[t].lastsliderstatus = a[t].sliderstatus, a[t].c.revpause(), a[t].c.trigger("revolution.slide.tabblured") }) }, B = function () { e("rs-module").each(function () { var e = this.id; if (a[e].inviewport || !a[e].viewPort.enable) { var i = a[e].pr_active_slide !== t && a[e].pr_active_slide.data("key") !== t ? a[e].pr_active_slide.data("key") : a[e].pr_next_slide !== t && a[e].pr_next_slide.data("key") !== t ? a[e].pr_next_slide.data("key") : t; if (i == t) return; a[e].sbgs[i].bgvid.length > 0 && a[e].videos[a[e].sbgs[i].bgvid[0].id].loop && ("visible" === document.visibilityState ? a.playVideo(a[e].sbgs[i].bgvid, e) : a.stopVideo(a[e].sbgs[i].bgvid, e)) } }) }, G = function () { var e = document.documentMode === t, i = window.chrome; 1 !== a.revslider_focus_blur_listener && (a.revslider_focus_blur_listener = 1, e && !i ? a.window.on("focusin", function () { !0 !== a.windowIsFocused && D(), a.windowIsFocused = !0 }).on("focusout", function () { !0 !== a.windowIsFocused && a.windowIsFocused !== t || P(), a.windowIsFocused = !1 }) : window.addEventListener ? (window.addEventListener("focus", function (e) { !0 !== a.windowIsFocused && D(), a.windowIsFocused = !0 }, {capture: !1, passive: !0}), window.addEventListener("blur", function (e) { !0 !== a.windowIsFocused && a.windowIsFocused !== t || P(), a.windowIsFocused = !1 }, {capture: !1, passive: !0})) : (window.attachEvent("focus", function (e) { !0 !== a.windowIsFocused && D(), a.windowIsFocused = !0 }), window.attachEvent("blur", function (e) { !0 !== a.windowIsFocused && a.windowIsFocused !== t || P(), a.windowIsFocused = !1 }))) }, F = function (e) { for (var t, i = [], a = window.location.href.slice(window.location.href.indexOf(e) + 1).split("_"), r = 0; r < a.length; r++) a[r] = a[r].replace("%3D", "="), t = a[r].split("="), i.push(t[0]), i[t[0]] = t[1]; return i }, H = function (i) { if (a[i].blockSpacing !== t) { var r = a[i].blockSpacing.split(";"); for (var o in a[i].blockSpacing = {}, r) if (r.hasOwnProperty(o)) { var s = r[o].split(":"); switch (s[0]) { case"t": a[i].blockSpacing.top = a.revToResp(s[1], 4, 0); break; case"b": a[i].blockSpacing.bottom = a.revToResp(s[1], 4, 0); break; case"l": a[i].blockSpacing.left = a.revToResp(s[1], 4, 0); break; case"r": a[i].blockSpacing.right = a.revToResp(s[1], 4, 0) } } a[i].blockSpacing.block = e(a.closestClass(a[i].c[0], "wp-block-themepunch-revslider")), a[i].level !== t && a[i].blockSpacing !== t && tpGS.gsap.set(a[i].blockSpacing.block, { paddingLeft: a[i].blockSpacing.left[a[i].level], paddingRight: a[i].blockSpacing.right[a[i].level], marginTop: a[i].blockSpacing.top[a[i].level], marginBottom: a[i].blockSpacing.bottom[a[i].level] }) } }, z = function (e) { return e.charAt(0).toUpperCase() + e.slice(1) }, W = function (i) { return function (e) { for (var i in e.minHeight = e.minHeight !== t ? "none" === e.minHeight || "0" === e.minHeight || "0px" === e.minHeight || "" == e.minHeight || " " == e.minHeight ? 0 : parseInt(e.minHeight, 0) : 0, e.maxHeight = "none" === e.maxHeight || "0" === e.maxHeight ? 0 : parseInt(e.maxHeight, 0), e.carousel.maxVisibleItems = e.carousel.maxVisibleItems < 1 ? 999 : e.carousel.maxVisibleItems, e.carousel.vertical_align = "top" === e.carousel.vertical_align ? "0%" : "bottom" === e.carousel.vertical_align ? "100%" : "50%", e.carousel.space = parseInt(e.carousel.space, 0), e.carousel.maxOpacity = parseInt(e.carousel.maxOpacity, 0), e.carousel.maxOpacity = e.carousel.maxOpacity > 1 ? e.carousel.maxOpacity / 100 : e.carousel.maxOpacity, e.carousel.showLayersAllTime = "true" === e.carousel.showLayersAllTime || !0 === e.carousel.showLayersAllTime ? "all" : e.carousel.showLayersAllTime, e.carousel.maxRotation = parseInt(e.carousel.maxRotation, 0), e.carousel.minScale = parseInt(e.carousel.minScale, 0), e.carousel.minScale = e.carousel.minScale > .9 ? e.carousel.minScale / 100 : e.carousel.minScale, e.carousel.speed = parseInt(e.carousel.speed, 0), e.carousel.skewX = parseFloat(e.carousel.skewX), e.carousel.skewY = parseFloat(e.carousel.skewY), e.carousel.spinAngle = parseFloat(e.carousel.spinAngle), 0 === e.carousel.spinAngle && (e.carousel.spinAngle = 1), "v" === e.carousel.orientation && (e.carousel.justify = !1), e.navigation.maintypes = ["arrows", "tabs", "thumbnails", "bullets"], e.perspective = parseInt(e.perspective, 0), e.navigation.maintypes) e.navigation.maintypes.hasOwnProperty(i) && e.navigation[e.navigation.maintypes[i]] !== t && (e.navigation[e.navigation.maintypes[i]].animDelay = e.navigation[e.navigation.maintypes[i]].animDelay === t ? 1e3 : e.navigation[e.navigation.maintypes[i]].animDelay, e.navigation[e.navigation.maintypes[i]].animSpeed = e.navigation[e.navigation.maintypes[i]].animSpeed === t ? 1e3 : e.navigation[e.navigation.maintypes[i]].animSpeed, e.navigation[e.navigation.maintypes[i]].animDelay = parseInt(e.navigation[e.navigation.maintypes[i]].animDelay, 0) / 1e3, e.navigation[e.navigation.maintypes[i]].animSpeed = parseInt(e.navigation[e.navigation.maintypes[i]].animSpeed, 0) / 1e3); if (a.isNumeric(e.scrolleffect.tilt) || -1 !== e.scrolleffect.tilt.indexOf("%") && (e.scrolleffect.tilt = parseInt(e.scrolleffect.tilt)), e.scrolleffect.tilt = e.scrolleffect.tilt / 100, e.navigation.thumbnails.position = "outer-horizontal" == e.navigation.thumbnails.position ? "bottom" == e.navigation.thumbnails.v_align ? "outer-bottom" : "outer-top" : "outer-vertical" == e.navigation.thumbnails.position ? "left" == e.navigation.thumbnails.h_align ? "outer-left" : "outer-right" : e.navigation.thumbnails.position, e.navigation.tabs.position = "outer-horizontal" == e.navigation.tabs.position ? "bottom" == e.navigation.tabs.v_align ? "outer-bottom" : "outer-top" : "outer-vertical" == e.navigation.tabs.position ? "left" == e.navigation.tabs.h_align ? "outer-left" : "outer-right" : e.navigation.tabs.position, e.sbtimeline.speed = parseInt(e.sbtimeline.speed, 0) / 1e3 || .5, !0 === e.sbtimeline.set && !0 === e.sbtimeline.fixed && "auto" !== e.sliderLayout ? (e.sbtimeline.fixStart = parseInt(e.sbtimeline.fixStart), e.sbtimeline.fixEnd = parseInt(e.sbtimeline.fixEnd)) : e.sbtimeline.fixed = !1, e.progressBar === t || "true" != e.progressBar.disableProgressBar && 1 != e.progressBar.disableProgressBar || (e.progressBar.disableProgressBar = !0), e.startDelay = parseInt(e.startDelay, 0) || 0, e.navigation !== t && e.navigation.arrows != t && e.navigation.arrows.hide_under != t && (e.navigation.arrows.hide_under = parseInt(e.navigation.arrows.hide_under)), e.navigation !== t && e.navigation.bullets != t && e.navigation.bullets.hide_under != t && (e.navigation.bullets.hide_under = parseInt(e.navigation.bullets.hide_under)), e.navigation !== t && e.navigation.thumbnails != t && e.navigation.thumbnails.hide_under != t && (e.navigation.thumbnails.hide_under = parseInt(e.navigation.thumbnails.hide_under)), e.navigation !== t && e.navigation.tabs != t && e.navigation.tabs.hide_under != t && (e.navigation.tabs.hide_under = parseInt(e.navigation.tabs.hide_under)), e.navigation !== t && e.navigation.arrows != t && e.navigation.arrows.hide_over != t && (e.navigation.arrows.hide_over = parseInt(e.navigation.arrows.hide_over)), e.navigation !== t && e.navigation.bullets != t && e.navigation.bullets.hide_over != t && (e.navigation.bullets.hide_over = parseInt(e.navigation.bullets.hide_over)), e.navigation !== t && e.navigation.thumbnails != t && e.navigation.thumbnails.hide_over != t && (e.navigation.thumbnails.hide_over = parseInt(e.navigation.thumbnails.hide_over)), e.navigation !== t && e.navigation.tabs != t && e.navigation.tabs.hide_over != t && (e.navigation.tabs.hide_over = parseInt(e.navigation.tabs.hide_over)), e.lazyloaddata !== t && e.lazyloaddata.length > 0 && e.lazyloaddata.indexOf("-") > 0) { var r = e.lazyloaddata.split("-"); for (e.lazyloaddata = r[0], i = 1; i < r.length; i++) e.lazyloaddata += z(r[i]) } return e.duration = parseInt(e.duration), "single" === e.lazyType && "carousel" === e.sliderType && (e.lazyType = "smart"), "carousel" === e.sliderType && e.carousel.justify && (e.justifyCarousel = !0, e.keepBPHeight = !0), e.enableUpscaling = 1 == e.enableUpscaling && "carousel" !== e.sliderType && "fullwidth" === e.sliderLayout, e.useFullScreenHeight = "carousel" === e.sliderType && "fullscreen" === e.sliderLayout && !0 === e.useFullScreenHeight && "v" !== e.carousel.orientation, e.progressBar.y = parseInt(e.progressBar.y, 0), e.progressBar.x = parseInt(e.progressBar.x, 0), /*! Custom Eases */ "IE" !== window.RSBrowser && e.customEases !== t && (!e.customEases.SFXBounceLite && "true" != e.customEases.SFXBounceLite || tpGS.SFXBounceLite !== t || (tpGS.SFXBounceLite = tpGS.CustomBounce.create("SFXBounceLite", { strength: .3, squash: 1, squashID: "SFXBounceLite-squash" })), !e.customEases.SFXBounceSolid && "true" != e.customEases.SFXBounceSolid || tpGS.SFXBounceSolid !== t || (tpGS.SFXBounceSolid = tpGS.CustomBounce.create("SFXBounceSolid", { strength: .5, squash: 2, squashID: "SFXBounceSolid-squash" })), !e.customEases.SFXBounceStrong && "true" != e.customEases.SFXBounceStrong || tpGS.SFXBounceStrong !== t || (tpGS.SFXBounceStrong = tpGS.CustomBounce.create("SFXBounceStrong", { strength: .7, squash: 3, squashID: "SFXBounceStrong-squash" })), !e.customEases.SFXBounceExtrem && "true" != e.customEases.SFXBounceExtrem || tpGS.SFXBounceExtrem !== t || (tpGS.SFXBounceExtrem = tpGS.CustomBounce.create("SFXBounceExtrem", { strength: .9, squash: 4, squashID: "SFXBounceExtrem-squash" })), !e.customEases.BounceLite && "true" != e.customEases.BounceLite || tpGS.BounceLite !== t || (tpGS.BounceLite = tpGS.CustomBounce.create("BounceLite", {strength: .3})), !e.customEases.BounceSolid && "true" != e.customEases.BounceSolid || tpGS.BounceSolid !== t || (tpGS.BounceSolid = tpGS.CustomBounce.create("BounceSolid", {strength: .5})), !e.customEases.BounceStrong && "true" != e.customEases.BounceStrong || tpGS.BounceStrong !== t || (tpGS.BounceStrong = tpGS.CustomBounce.create("BounceStrong", {strength: .7})), !e.customEases.BounceExtrem && "true" != e.customEases.BounceExtrem || tpGS.BounceExtrem !== t || (tpGS.BounceExtrem = tpGS.CustomBounce.create("BounceExtrem", {strength: .9}))), e.modal.coverSpeed = parseFloat(e.modal.coverSpeed), e.modal.coverSpeed = e.modal.coverSpeed > 200 ? e.modal.coverSpeed / 1e3 : e.modal.coverSpeed, e.modal.coverSpeed = Math.max(Math.min(3, e.modal.coverSpeed), .3), e.navigation.wheelViewPort = e.navigation.wheelViewPort === t ? .5 : e.navigation.wheelViewPort / 100, e.navigation.wheelCallDelay = e.navigation.wheelCallDelay === t ? 1e3 : parseInt(e.navigation.wheelCallDelay), e.autoDPR = "string" == typeof e.DPR && -1 !== e.DPR.indexOf("ax"), e.DPR = e.DPR.replace("ax", ""), e.DPR = parseInt(e.DPR.replace("x", "")), e.DPR = isNaN(e.DPR) ? window.devicePixelRatio : e.autoDPR ? Math.min(window.devicePixelRatio, e.DPR) : e.DPR, e.DPR = 1 != e.onedpronmobile && "true" != e.onedpronmobile || !a.ISM ? e.DPR : 1, !1 === e.viewPort.global ? e.viewPort.enable = !1 : !0 === e.viewPort.global && (e.viewPort.local = e.viewPort.enable, e.viewPort.enable = !0), e.carousel !== t && "v" == e.carousel.orientation && (e.carousel.prevNextVisType = ("" + e.carousel.prevNextVis).includes("%") ? "%" : "px", e.carousel.prevNextVis = parseInt(e.carousel.prevNextVis, 0) / ("%" == e.carousel.prevNextVisType ? 100 : 1)), e }(e.extend(!0, { DPR: "dpr", sliderType: "standard", sliderLayout: "auto", overlay: {type: "none", size: 1, colora: "transparent", colorb: "#000000"}, duration: 9e3, imgCrossOrigin: "", modal: { useAsModal: !1, cover: !0, coverColor: "rgba(0,0,0,0.5)", horizontal: "center", vertical: "middle", coverSpeed: 1 }, navigation: { keyboardNavigation: !1, keyboard_direction: "horizontal", mouseScrollNavigation: "off", wheelViewPort: 50, wheelCallDelay: "1000ms", onHoverStop: !0, mouseScrollReverse: "default", target: "window", threshold: 50, touch: { touchenabled: !1, touchOnDesktop: !1, swipe_treshold: 75, swipe_min_touches: 1, swipe_direction: "horizontal", drag_block_vertical: !1, mobileCarousel: !0, desktopCarousel: !0 }, arrows: { style: "", enable: !1, hide_onmobile: !1, hide_under: 0, hide_onleave: !1, hide_delay: 200, hide_delay_mobile: 1200, hide_over: 9999, tmp: "", rtl: !1, left: {h_align: "left", v_align: "center", h_offset: 20, v_offset: 0, container: "slider"}, right: {h_align: "right", v_align: "center", h_offset: 20, v_offset: 0, container: "slider"} }, bullets: { enable: !1, hide_onmobile: !1, hide_onleave: !1, hide_delay: 200, hide_delay_mobile: 1200, hide_under: 0, hide_over: 9999, direction: "horizontal", h_align: "center", v_align: "bottom", space: 5, h_offset: 0, v_offset: 20, tmp: '', container: "slider", rtl: !1, style: "" }, thumbnails: { container: "slider", rtl: !1, style: "", enable: !1, width: 100, height: 50, min_width: 100, wrapper_padding: 2, wrapper_color: "transparent", tmp: '', visibleAmount: 5, hide_onmobile: !1, hide_onleave: !1, hide_delay: 200, hide_delay_mobile: 1200, hide_under: 0, hide_over: 9999, direction: "horizontal", span: !1, position: "inner", space: 2, h_align: "center", v_align: "bottom", h_offset: 0, v_offset: 20, mhoff: 0, mvoff: 0 }, tabs: { container: "slider", rtl: !1, style: "", enable: !1, width: 100, min_width: 100, height: 50, wrapper_padding: 10, wrapper_color: "transparent", tmp: '', visibleAmount: 5, hide_onmobile: !1, hide_onleave: !1, hide_delay: 200, hide_delay_mobile: 1200, hide_under: 0, hide_over: 9999, direction: "horizontal", span: !1, space: 0, position: "inner", h_align: "center", v_align: "bottom", h_offset: 0, v_offset: 20, mhoff: 0, mvoff: 0 } }, responsiveLevels: 4064, visibilityLevels: [2048, 1024, 778, 480], gridwidth: 960, gridheight: 500, minHeight: 0, maxHeight: 0, keepBPHeight: !1, useFullScreenHeight: !0, overflowHidden: !1, forceOverflow: !1, fixedOnTop: !1, autoHeight: !1, gridEQModule: !1, disableForceFullWidth: !1, fullScreenOffsetContainer: "", fullScreenOffset: "0", hideLayerAtLimit: 0, hideAllLayerAtLimit: 0, hideSliderAtLimit: 0, progressBar: { disableProgressBar: !1, style: "horizontal", size: "5px", radius: 10, vertical: "bottom", horizontal: "left", x: 0, y: 0, color: "rgba(255,255,255,0.5)", bgcolor: "transparent", basedon: "slide", gapsize: 0, reset: "reset", gaptype: "gapboth", gapcolor: "rgba(255,255,255,0.5)", ease: "none", visibility: {0: !0, 1: !0, 2: !0, 3: !0} }, stopAtSlide: -1, stopAfterLoops: 0, shadow: 0, startDelay: 0, lazyType: "none", lazyOnBg: !1, spinner: "off", shuffle: !1, perspective: "600px", perspectiveType: "local", viewPort: {enable: !1, global: !1, globalDist: "-400px", outof: "wait", visible_area: "200px", presize: !1}, fallbacks: { isJoomla: !1, panZoomDisableOnMobile: !1, simplifyAll: !0, nextSlideOnWindowFocus: !1, disableFocusListener: !1, allowHTML5AutoPlayOnAndroid: !0 }, fanim: !1, parallax: { type: "off", levels: [10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85], origo: "enterpoint", disable_onmobile: !1, ddd_shadow: !1, ddd_bgfreeze: !1, ddd_overflow: "visible", ddd_layer_overflow: "visible", ddd_z_correction: 65, speed: 400, speedbg: 0, speedls: 0 }, scrolleffect: { set: !1, fade: !1, blur: !1, scale: !1, grayscale: !1, maxblur: 10, layers: !1, slide: !1, direction: "both", multiplicator: 1.35, multiplicator_layers: .5, tilt: 30, disable_onmobile: !1 }, sbtimeline: {set: !1, fixed: !1, fixStart: 0, fixEnd: 0, layers: !1, slide: !1, ease: "none", speed: 500}, carousel: { orientation: "h", prevNextVis: "50px", easing: "power3.inOut", speed: 800, showLayersAllTime: !1, horizontal_align: "center", vertical_align: "center", snap: !0, infinity: !1, stopOnClick: !0, space: 0, maxVisibleItems: 3, stretch: !1, fadeout: !0, maxRotation: 0, maxOpacity: 100, minScale: 0, offsetScale: !1, vary_fade: !1, vary_rotation: !1, vary_scale: !1, border_radius: "0px", padding_top: 0, padding_bottom: 0, skewX: 0, skewY: 0, spin: "off", spinAngle: 0, overshoot: !1 }, observeWrap: !1, extensions: "extensions/", extensions_suffix: ".min.js", stopLoop: !1, waitForInit: !1, ignoreHeightChange: !0, onedpronmobile: !1 }, i)) }; window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.waiting = window.RS_MODULES.waiting || []; var E = ["DOM", "main", "parallax", "video", "slideanims", "actions", "layeranimation", "navigation", "carousel", "panzoom"]; for (var N in E) -1 == window.RS_MODULES.waiting.indexOf(E[N]) && window.RS_MODULES.waiting.push(E[N]); function j(e) { window.elementorFrontend !== t && elementorFrontend.hooks !== t && elementorFrontend.hooks.removeAction("frontend/element_ready/global", j), window.RS_MODULES.elementor = { loaded: !0, version: "6.5.0" }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal() } function V() { if (window.elementorFrontend === t || window.elementorFrontend.hooks === t || window.elementorFrontend.hooks.addAction === t) return window.RS_MODULES.elementorCounter++, window.RS_MODULES.elementorCounterCheck && window.RS_MODULES.elementorCounter > 20 ? void j() : void requestAnimationFrame(V); window.elementorFrontend.config.environmentMode.edit ? elementorFrontend.hooks.addAction("frontend/element_ready/widget", j) : j() } function X() { 1 != RS_MODULES.checkElementorCalled && (RS_MODULES.checkElementorCalled = !0, document.body && (document.body.className.indexOf("elementor-page") >= 0 || document.body.className.indexOf("elementor-default") >= 0) && (window.RS_MODULES.waiting = window.RS_MODULES.waiting === t ? [] : window.RS_MODULES.waiting, -1 == window.RS_MODULES.waiting.indexOf("elementor") && window.RS_MODULES.waiting.push("elementor"), document.body && -1 == document.body.className.indexOf("elementor-editor-active") && (window.RS_MODULES.elementorCounterCheck = !0), window.RS_MODULES.elementorCounter = 0, V())) } window.RS_MODULES.main = { loaded: !0, version: i }, window.RS_MODULES.minimal = !1, window.RS_MODULES.callSliders = function () { for (var e in RS_MODULES.modules) !0 !== RS_MODULES.modules[e].once && window.RS_MODULES !== t && window.RS_MODULES.minimal && (RS_MODULES.modules[e].once = !0, RS_MODULES.modules[e].init()) }, "loading" === document.readyState ? document.addEventListener("readystatechange", function () { "interactive" !== document.readyState && "complete" !== document.readyState || (X(), window.RS_MODULES.DOM = {loaded: !0}, window.RS_MODULES.checkMinimal()) }) : "complete" !== document.readyState && "interactive" !== document.readyState || (X(), window.RS_MODULES.DOM = {loaded: !0}), window.RS_MODULES.checkMinimal = function () { if (0 == window.RS_MODULES.minimal) { var i = 1 == window.RS_MODULES.minimal || window.RS_MODULES.waiting !== t && e.fn.revolution !== t && window.tpGS !== t && window.tpGS.gsap !== t; if (i) for (var a in window.RS_MODULES.waiting) window.RS_MODULES.waiting.hasOwnProperty(a) && "function" != typeof window.RS_MODULES.waiting[a] && i && window.RS_MODULES[window.RS_MODULES.waiting[a]] === t && (i = !1); i && (!0 !== window.RS_MODULES.minimal && e(document).trigger("REVSLIDER_READY_TO_USE"), window.RS_MODULES.minimal = !0) } else window.RS_MODULES.minimal = !0; !0 === window.RS_MODULES.minimal && window.RS_MODULES.callSliders() }, window.RS_MODULES.checkMinimal() }(jQuery), function ($, undefined) { "use strict"; var version = "6.6.0"; jQuery.fn.revolution = jQuery.fn.revolution || {}; var _R = jQuery.fn.revolution; jQuery.extend(!0, _R, { checkActions: function (e, t) { e === undefined ? moduleEnterLeaveActions(t) : checkActions_intern(e, t) }, delayer: function (e, t, i) { _R[e].timeStamps = _R[e].timeStamps === undefined ? {} : _R[e].timeStamps; var a = (new Date).getTime(), r = _R[e].timeStamps[i] === undefined ? parseInt(t) + 100 : a - _R[e].timeStamps[i], o = parseInt(r) > t; return o && (_R[e].timeStamps[i] = a), o }, getURLDetails: function (e) { (e = e === undefined ? {} : e).url = e.url === undefined ? window.location.href : e.url, e.url = e.url.replace("www", ""), e.protocol = 0 === e.url.indexOf("http://") ? "http://" : 0 === e.url.indexOf("https://") ? "https://" : 0 === e.url.indexOf("//") ? "//" : "relative"; var t = e.url.replace("https://", ""); t = t.replace("http://", ""), "relative" === e.protocol && (t = t.replace("//", "")), t = t.split("#"), e.anchor = (e.anchor === undefined || "" == e.anchor || 0 == e.anchor.length) && t.length > 1 ? t[1] : e.anchor === undefined ? "" : e.anchor.replace("#", ""), e.anchor = e.anchor.split("?"), e.queries = t[0].split("?"), e.queries = e.queries.length > 1 ? e.queries[1] : "", e.queries = e.queries.length > 1 ? e.queries[1] : e.anchor.length > 1 ? e.anchor[1] : e.queries, e.anchor = e.anchor[0]; (t = t[0]).split("/"); var i = t.split("/"); return e.host = i[0], i.splice(0, 1), e.path = "/" + i.join("/"), "/" == e.path[e.path.length - 1] && (e.path = e.path.slice(0, -1)), e.origin = "relative" !== e.protocol ? e.protocol + e.host : window.location.origin.replace("www", "") + window.location.pathname, e.hash = ("" !== e.queries && e.queries !== undefined ? "?" + e.queries : "") + ("" !== e.anchor && e.anchor !== undefined ? "#" + e.anchor : ""), e }, scrollToId: function (e) { if (_R.scrollToObj = e, !window.isSafari11) { var t = tpGS.gsap.getProperty("html", "scrollBehavior"), i = tpGS.gsap.getProperty("body", "scrollBehavior"); tpGS.gsap.set("html,body", {scrollBehavior: "auto"}), e.scrollBehaviorHtml = t, e.scrollBehaviorBody = i } _R.calcScrollToId() }, calcScrollToId: function () { if (_R.scrollToObj) { var e = _R.scrollToObj, t = e.tween && e.tween.progress ? e.tween.progress() : 0; e.tween && e.tween.kill && e.tween.kill(), e.startScrollPos !== undefined && null !== e.startScrollPos || (e.startScrollPos = _R[e.id].modal.useAsModal ? _R[e.id].cpar.scrollTop() : _R.document.scrollTop()); var i = "scrollbelow" === e.action ? (getOffContH(_R[e.id].fullScreenOffsetContainer) || 0) - (parseInt(e.offset, 0) || 0) || 0 : 0 - (parseInt(e.offset, 0) || 0), a = "scrollbelow" === e.action ? _R[e.id].c : jQuery("#" + e.anchor), r = a.length > 0 ? a.offset().top : 0, o = {_y: _R[e.id].modal.useAsModal ? _R[e.id].cpar[0].scrollTop : window.pageYOffset !== document.documentElement.scrollTop ? 0 !== window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop : window.pageYOffset}; r += "scrollbelow" === e.action ? _R[e.id].sbtimeline.fixed ? _R[e.id].cpar.parent().height() + _R[e.id].fullScreenOffsetResult : jQuery(_R[e.id].slides[0]).height() : 0, e.tween = tpGS.gsap.fromTo(o, e.speed / 1e3, {_y: e.startScrollPos}, { _y: r - i, ease: e.ease, onUpdate: function () { _R[e.id].modal.useAsModal ? _R[e.id].cpar.scrollTop(o._y) : _R.document.scrollTop(o._y) }, onComplete: function () { e.hash !== undefined && history.pushState(null, null, e.hash), window.isSafari11 || (tpGS.gsap.set("html", {scrollBehavior: e.scrollBehaviorHtml}), tpGS.gsap.set("body", {scrollBehavior: e.scrollBehaviorBody})), _R.scrollToObj && (_R.scrollToObj.tween && (_R.scrollToObj.tween.kill(), _R.scrollToObj.tween = null), _R.scrollToObj.startScrollPos = null, _R.scrollToObj = null) } }), e.tween.progress(t) } } }); var moduleEnterLeaveActions = function (e) { !_R[e].moduleActionsPrepared && _R[e].c[0].getElementsByClassName("rs-on-sh").length > 0 && (_R[e].c.on("tp-mouseenter", function () { _R[e].mouseoncontainer = !0; var t, i = _R[e].pr_next_key !== undefined ? _R[e].pr_next_key : _R[e].pr_processing_key !== undefined ? _R[e].pr_processing_key : _R[e].pr_active_key !== undefined ? _R[e].pr_active_key : _R[e].pr_next_key; if ("none" !== i && i !== undefined) { if ((i = _R.gA(_R[e].slides[i], "key")) !== undefined && _R[e].layers[i]) for (t in _R[e].layers[i]) _R[e].layers[i][t].className.indexOf("rs-on-sh") >= 0 && _R.renderLayerAnimation({ layer: jQuery(_R[e].layers[i][t]), frame: "frame_1", mode: "trigger", id: e }); for (t in _R[e].layers.static) _R[e].layers.static[t].className.indexOf("rs-on-sh") >= 0 && _R.renderLayerAnimation({ layer: jQuery(_R[e].layers.static[t]), frame: "frame_1", mode: "trigger", id: e }) } }), _R[e].c.on("tp-mouseleft", function () { _R[e].mouseoncontainer = !0; var t, i = _R[e].pr_next_key !== undefined ? _R[e].pr_next_key : _R[e].pr_processing_key !== undefined ? _R[e].pr_processing_key : _R[e].pr_active_key !== undefined ? _R[e].pr_active_key : _R[e].pr_next_key; if ("none" !== i && i !== undefined) { if ((i = _R.gA(_R[e].slides[i], "key")) !== undefined && _R[e].layers[i]) for (t in _R[e].layers[i]) _R[e].layers[i][t].className.indexOf("rs-on-sh") >= 0 && _R.renderLayerAnimation({ layer: jQuery(_R[e].layers[i][t]), frame: "frame_999", mode: "trigger", id: e }); for (t in _R[e].layers.static) _R[e].layers.static[t].className.indexOf("rs-on-sh") >= 0 && _R.renderLayerAnimation({ layer: jQuery(_R[e].layers.static[t]), frame: "frame_999", mode: "trigger", id: e }) } })), _R[e].moduleActionsPrepared = !0 }, checkActions_intern = function (layer, id) { var actions = _R.gA(layer[0], "actions"); if ("RS-COLUMN" == layer[0].tagName) { var wrap = _R.closestNode(layer[0], "RS-COLUMN-WRAP"); null !== wrap && wrap !== undefined && (_R.sA(wrap, "action", actions), layer = jQuery(wrap)) } var _L = layer.data(); for (var ei in actions = actions.split("||"), layer.addClass("rs-waction"), _L.events = _L.events === undefined ? [] : _L.events, actions) if (actions.hasOwnProperty(ei)) { var event = getEventParams(actions[ei].split(";")); _L.events.push(event), "click" === event.on && layer[0].classList.add("rs-wclickaction"), _R[id].fullscreen_esclistener || "exitfullscreen" != event.action && "togglefullscreen" != event.action || (_R.document.keyup(function (e) { 27 == e.keyCode && jQuery("#rs-go-fullscreen").length > 0 && layer.trigger(event.on) }), _R[id].fullscreen_esclistener = !0); var targetlayer = "backgroundvideo" == event.layer ? jQuery("rs-bgvideo") : "firstvideo" == event.layer ? jQuery("rs-slide").find(".rs-layer-video") : jQuery("#" + event.layer); switch (-1 != jQuery.inArray(event.action, ["toggleslider", "toggle_mute_video", "toggle_global_mute_video", "togglefullscreen"]) && (_L._togglelisteners = !0), event.action) { case"togglevideo": jQuery.each(targetlayer, function () { updateToggleByList(jQuery(this), "videotoggledby", layer[0].id) }); break; case"togglelayer": jQuery.each(targetlayer, function () { updateToggleByList(jQuery(this), "layertoggledby", layer[0].id), jQuery(this).data("triggered_startstatus", event.togglestate) }); break; case"toggle_global_mute_video": case"toggle_mute_video": jQuery.each(targetlayer, function () { updateToggleByList(jQuery(this), "videomutetoggledby", layer[0].id) }); break; case"toggleslider": _R[id].slidertoggledby == undefined && (_R[id].slidertoggledby = []), _R[id].slidertoggledby.push(layer[0].id); break; case"togglefullscreen": _R[id].fullscreentoggledby == undefined && (_R[id].fullscreentoggledby = []), _R[id].fullscreentoggledby.push(layer[0].id) } } _R[id].actionsPrepared = !0, _R[id].actionListenerHook = _R[id].actionListenerHook == undefined ? {_on: ""} : _R[id].actionListenerHook, layer.on("click mouseenter mouseleave " + _R[id].actionListenerHook._on, function (e) { for (var i in _L.events) if (_L.events.hasOwnProperty(i) && _L.events[i].on.includes(e.type)) { var event = _L.events[i]; if (!(event.repeat !== undefined && event.repeat > 0) || _R.delayer(id, 1e3 * event.repeat, _L.c[0].id + "_" + event.action)) { if ("click" === event.on && layer.hasClass("tp-temporarydisabled")) return !1; ("" + event.layer).includes("layer-sta_") && (_R[id].staticPrefix = _R[id].staticPrefix ? _R[id].staticPrefix : Object.keys(_R[id].layers.static)[0], ("" + _R[id].staticPrefix).includes("layer-") && (event.layer = _R[id].staticPrefix.split("layer-")[0] + "layer-" + event.layer.split("layer-sta_")[1])); var targetlayer = "backgroundvideo" == event.layer ? jQuery(_R[id].slides[_R[id].pr_active_key]).find("rs-sbg-wrap rs-bgvideo") : "firstvideo" == event.layer ? jQuery(_R[id].slides[_R[id].pr_active_key]).find(".rs-layer-video").first() : jQuery("#" + event.layer), tex = targetlayer.length > 0; if ("" != _R[id].actionListenerHook._on && "click" !== e.type && "mouseenter" !== e.type && "mouseleave" !== e.type) { var keepgoing = !0; for (var cbs in _R[id].actionListenerHook.callBacks) { if (!0 !== keepgoing) break; _R[id].actionListenerHook.callBacks.hasOwnProperty(cbs) && "function" == typeof _R[id].actionListenerHook.callBacks[cbs] && (keepgoing = _R[id].actionListenerHook.callBacks[cbs]({ event: event, layer: layer, targetlayer: targetlayer, L: _L })) } if (!keepgoing) continue } switch (event.action) { case"menulink": var linkto = _R.getURLDetails({url: event.url, anchor: event.anchor}), linkfrom = _R.getURLDetails(); linkto.host == linkfrom.host && linkto.path == linkfrom.path && "_self" === event.target ? _R.scrollToId({ id: id, offset: event.offset, action: event.action, anchor: event.anchor, hash: linkto.hash, speed: event.speed, ease: event.ease }) : "_self" === event.target ? window.location = linkto.url + (linkto.anchor !== undefined && "" !== linkto.anchor ? "#" + linkto.anchor : "") : window.open(linkto.url + (linkto.anchor !== undefined && "" !== linkto.anchor ? "#" + linkto.anchor : "")), e.preventDefault(); break; case"getAccelerationPermission": _R.getAccelerationPermission(id); break; case"nextframe": case"prevframe": case"gotoframe": case"togglelayer": case"toggleframes": case"startlayer": case"stoplayer": if (targetlayer[0] === undefined) continue; var _ = _R[id]._L[targetlayer[0].id], frame = event.frame, tou = "triggerdelay"; if ("click" === e.type && _.clicked_time_stamp !== undefined && (new Date).getTime() - _.clicked_time_stamp < 300) return; if ("mouseenter" === e.type && _.mouseentered_time_stamp !== undefined && (new Date).getTime() - _.mouseentered_time_stamp < 300) return; if (clearTimeout(_.triggerdelayIn), clearTimeout(_.triggerdelayOut), clearTimeout(_.triggerdelay), "click" === e.type && (_.clicked_time_stamp = (new Date).getTime()), "mouseenter" === e.type && (_.mouseentered_time_stamp = (new Date).getTime()), "mouseleave" === e.type && (_.mouseentered_time_stamp = undefined), "nextframe" === event.action || "prevframe" === event.action) { _.forda = _.forda === undefined ? getFordWithAction(_) : _.forda; var inx = jQuery.inArray(_.currentframe, _.ford); for ("nextframe" === event.action && inx++, "prevframe" === event.action && inx--; "skip" !== _.forda[inx] && inx > 0 && inx < _.forda.length - 1;) "nextframe" === event.action && inx++, "prevframe" === event.action && inx--, inx = Math.min(Math.max(0, inx), _.forda.length - 1); frame = _.ford[inx] } jQuery.inArray(event.action, ["toggleframes", "togglelayer", "startlayer", "stoplayer"]) >= 0 && (_.triggeredstate = "startlayer" === event.action || "togglelayer" === event.action && "frame_1" !== _.currentframe || "toggleframes" === event.action && _.currentframe !== event.frameN, "togglelayer" === event.action && !0 === _.triggeredstate && _.currentframe !== undefined && "frame_999" !== _.currentframe && (_.triggeredstate = !1), frame = _.triggeredstate ? "toggleframes" === event.action ? event.frameN : "frame_1" : "toggleframes" === event.action ? event.frameM : "frame_999", tou = _.triggeredstate ? "triggerdelayIn" : "triggerdelayOut", _.triggeredstate ? _R.toggleState(_.layertoggledby) : (_R.stopVideo && _R.stopVideo(targetlayer, id), _R.unToggleState(_.layertoggledby))); var pars = {layer: targetlayer, frame: frame, mode: "trigger", id: id}; !0 === event.children && (pars.updateChildren = !0, pars.fastforward = !0), _R.renderLayerAnimation && (clearTimeout(_[tou]), _[tou] = setTimeout(function (e) { _R.renderLayerAnimation(e) }, 1e3 * event.delay, pars)); break; case"playvideo": tex && _R.playVideo(targetlayer, id); break; case"stopvideo": tex && _R.stopVideo && _R.stopVideo(targetlayer, id); break; case"togglevideo": tex && (_R.isVideoPlaying(targetlayer, id) ? _R.stopVideo && _R.stopVideo(targetlayer, id) : _R.playVideo(targetlayer, id)); break; case"mutevideo": tex && _R.Mute(targetlayer, id, !0); break; case"unmutevideo": tex && _R.Mute && _R.Mute(targetlayer, id, !1); break; case"toggle_mute_video": tex && (_R.Mute(targetlayer, id) ? _R.Mute(targetlayer, id, !1) : _R.Mute && _R.Mute(targetlayer, id, !0)); break; case"toggle_global_mute_video": var pvl = _R[id].playingvideos != undefined && _R[id].playingvideos.length > 0; pvl && (_R[id].globalmute ? jQuery.each(_R[id].playingvideos, function (e, t) { _R.Mute && _R.Mute(t, id, !1) }) : jQuery.each(_R[id].playingvideos, function (e, t) { _R.Mute && _R.Mute(t, id, !0) })), _R[id].globalmute = !_R[id].globalmute; break; default: tpGS.gsap.delayedCall(event.delay, function (targetlayer, id, event, layer) { switch (event.action) { case"openmodal": _R.openModalAPI(event.modal, event.modalslide === undefined ? 0 : event.modalslide, _R[id].ajaxUrl, !0, id, event); break; case"closemodal": _R.revModal(id, {mode: "close"}); break; case"callback": eval(event.callback); break; case"simplelink": window.open(event.url, event.target); break; case"simulateclick": targetlayer.length > 0 && targetlayer.trigger("click"); break; case"toggleclass": targetlayer.length > 0 && targetlayer.toggleClass(event.classname); break; case"scrollbelow": case"scrollto": "scrollbelow" === event.action && layer.addClass("tp-scrollbelowslider"), _R.scrollToId({ id: id, offset: event.offset, action: event.action, anchor: event.id, speed: event.speed, ease: event.ease }); break; case"jumptoslide": switch (_R[id].skipAttachDetach = !0, event.slide.toLowerCase()) { case"rs-random": var ts = Math.min(Math.max(0, Math.ceil(Math.random() * _R[id].realslideamount) - 1)); ts = _R[id].activeRSSlide == ts ? ts > 0 ? ts - 1 : ts + 1 : ts, _R.callingNewSlide(id, _R[id].slides[ts].dataset.key, "carousel" === _R[id].sliderType); break; case"+1": case"next": case"rs-next": _R[id].sc_indicator = "arrow", _R[id].sc_indicator_dir = 0, _R.callingNewSlide(id, 1, "carousel" === _R[id].sliderType); break; case"rs-previous": case"rs-prev": case"previous": case"prev": case"-1": _R[id].sc_indicator = "arrow", _R[id].sc_indicator_dir = 1, _R.callingNewSlide(id, -1, "carousel" === _R[id].sliderType); break; case"first": case"rs-first": _R[id].sc_indicator = "arrow", _R[id].sc_indicator_dir = 1, _R.callingNewSlide(id, 0, "carousel" === _R[id].sliderType); break; case"last": case"rs-last": _R[id].sc_indicator = "arrow", _R[id].sc_indicator_dir = 0, _R.callingNewSlide(id, _R[id].slideamount - 1, "carousel" === _R[id].sliderType); break; default: var ts = _R.isNumeric(event.slide) ? parseInt(event.slide, 0) : event.slide; _R.callingNewSlide(id, ts, "carousel" === _R[id].sliderType) } break; case"toggleslider": _R[id].noloopanymore = 0, "playing" == _R[id].sliderstatus ? (_R[id].c.revpause(), _R[id].forcepaused = !0, _R.unToggleState(_R[id].slidertoggledby)) : (_R[id].forcepaused = !1, _R[id].c.revresume(), _R.toggleState(_R[id].slidertoggledby)); break; case"pauseslider": _R[id].c.revpause(), _R.unToggleState(_R[id].slidertoggledby); break; case"playslider": _R[id].noloopanymore = 0, _R[id].c.revresume(), _R.toggleState(_R[id].slidertoggledby); break; case"gofullscreen": case"exitfullscreen": case"togglefullscreen": var gf; tpGS.gsap.set(_R[id].parallax.bgcontainers, {y: 0}), jQuery(".rs-go-fullscreen").length > 0 && ("togglefullscreen" == event.action || "exitfullscreen" == event.action) ? (jQuery(".rs-go-fullscreen").removeClass("rs-go-fullscreen"), gf = _R[id].c.closest("rs-fullwidth-wrap").length > 0 ? _R[id].c.closest("rs-fullwidth-wrap") : _R[id].c.closest("rs-module-wrap"), _R[id].minHeight = _R[id].oldminheight, _R[id].infullscreenmode = !1, _R[id].c.revredraw(), _R[id].c.revredraw(), jQuery(window).trigger("resize"), _R.unToggleState(_R[id].fullscreentoggledby)) : 0 != jQuery(".rs-go-fullscreen").length || "togglefullscreen" != event.action && "gofullscreen" != event.action || (gf = _R[id].c.closest("rs-fullwidth-wrap").length > 0 ? _R[id].c.closest("rs-fullwidth-wrap") : _R[id].c.closest("rs-module-wrap"), gf.addClass("rs-go-fullscreen"), _R[id].oldminheight = _R[id].minHeight, _R[id].minHeight = _R.getWinH(id), _R[id].infullscreenmode = !0, jQuery(window).trigger("resize"), _R.toggleState(_R[id].fullscreentoggledby), _R[id].c.revredraw()); break; default: _R[id].c.trigger("layeraction", [event.action, layer, event]) } }, [targetlayer, id, event, layer]) } } } }) }; function getFordWithAction(e) { var t = []; for (var i in e.ford) e.frames[e.ford[i]].timeline.waitoncall ? t.push(e.ford[i]) : t.push("skip"); return t } function updateToggleByList(e, t, i) { var a = e.data(t); a === undefined && (a = []), a.push(i), e.data(t, a) } function getEventParams(e) { var t = {on: "click", delay: 0, ease: "power2.out", speed: 400}; for (var i in e) if (e.hasOwnProperty(i)) { var a = e[i].split(":"); switch (a.length > 2 && "call" === a[0] && (a[1] = a.join(":").replace(a[0] + ":", "")), a[0]) { case"modal": t.modal = a[1]; break; case"ms": t.modalslide = a[1]; break; case"m": t.frameM = a[1]; break; case"n": t.frameN = a[1]; break; case"o": t.on = "click" === a[1] || "c" === a[1] ? "click" : "ml" === a[1] || "mouseleave" === a[1] ? "mouseleave" : "mouseenter" === a[1] || "me" === a[1] ? "mouseenter" : a[1]; break; case"d": t.delay = parseInt(a[1], 0) / 1e3, t.delay = "NaN" === t.delay || isNaN(t.delay) ? 0 : t.delay; break; case"rd": t.repeat = parseInt(a[1], 0) / 1e3, t.repeat = "NaN" === t.repeat || isNaN(t.repeat) ? 0 : t.repeat; break; case"a": t.action = a[1]; break; case"f": t.frame = a[1]; break; case"slide": t.slide = a[1]; break; case"layer": t.layer = a[1]; break; case"sp": t.speed = parseInt(a[1], 0); break; case"e": t.ease = a[1]; break; case"ls": t.togglestate = a[1]; break; case"offset": t.offset = a[1]; break; case"call": t.callback = a[1]; break; case"url": t.url = ""; for (var r = 1; r < a.length; r++) t.url += a[r] + (r === a.length - 1 ? "" : ":"); break; case"target": t.target = a[1]; break; case"class": t.classname = a[1]; break; case"ch": t.children = "true" == a[1] || 1 == a[1] || "t" == a[1]; break; default: a[0].length > 0 && "" !== a[0] && (t[a[0]] = a[1]) } } return t } var getOffContH = function (e) { if (e == undefined) return 0; if (e.split(",").length > 1) { var t = e.split(","), i = 0; return t && jQuery.each(t, function (e, t) { jQuery(t).length > 0 && (i += jQuery(t).outerHeight(!0)) }), i } return jQuery(e).height() }; window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.actions = { loaded: !0, version: version }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal() }(jQuery), function (e) { "use strict"; jQuery.fn.revolution = jQuery.fn.revolution || {}; var t = jQuery.fn.revolution; jQuery.extend(!0, t, { prepareCarousel: function (e, i, a, r) { if (void 0 !== e) { var s = t[e].carousel; s.slidesWithRowAdjustions = {}, i = s.lastdirection = o(i, s.lastdirection), t.setCarouselDefaults(e, void 0, r), t.organiseCarousel(e, "right", !0, !1, !1), void 0 !== s.swipeTo && t.isNumeric(s.swipeTo) ? void 0 !== a ? t.swipeAnimate({ id: e, to: s.swipeTo, distance: s.swipeToDistance, direction: i, fix: !0, speed: a }) : t.swipeAnimate({ id: e, to: s.swipeTo, distance: s.swipeToDistance, direction: i, fix: !0 }) : t.swipeAnimate({ id: e, to: 0, direction: i, speed: 0 }), "carousel" !== t[e].sliderType || s.fadein || (tpGS.gsap.to(t[e].canvas, 1, { scale: 1, opacity: 1 }), s.fadein = !0) } }, setupCarousel: function (e) { var o = t[e].carousel; "v" == o.orientation ? (o.length = "height", o.translate = "y", o.slide_dims = "slide_heights", o.deltaT = "deltaY", o.sliderLength = "sliderHeight", o.slide_length = "slide_height", o.wraplength = "wrapheight", o.align = "0%" === o.vertical_align ? "start" : "50%" === o.vertical_align ? "center" : "end", !o.snap || o.justify || o.infinity || (o.forceBAlign = !0)) : (o.length = "width", o.translate = "x", o.slide_dims = "slide_widths", o.deltaT = "deltaX", o.sliderLength = "sliderWidth", o.slide_length = "slide_width", o.wraplength = "wrapwidth", o.align = "left" === o.horizontal_align ? "start" : "center" === o.horizontal_align ? "center" : "end"), o[o.sliderLength] = t[e].canv[o.length], o.proxy = document.createElement("div"), o.follower = document.createElement("div"), o.slideamount = t[e].slideamount, o.infinity || o.snap || (t[e].carousel.align = "start"), r(e), a(e, o.align), o.inited = !0, o.lerpHandler = t.carLerpHandler.bind(this, e), void 0 === o.animInList && (o.animInList = []), o.draggableObj = { trigger: t[e].c[0], type: o.translate, edgeResistance: .5, zIndexBoost: !1, cursor: "grab", activeCursor: "grabbing", allowContextMenu: !0, inertia: !0, throwResistance: o.snap ? 8e3 : 500, onPress: function (i) { t.closestClass(i.target, "rs-nav-element") ? (o.draggable.endDrag(), o.draggable.disable()) : t[e].c.trigger("stoptimer"), o.focusedOnPress = o.focused, o.isPressed = !0, o.fromWheel = !1, o.cX = o.lerpX = this.pointerX, o.cY = o.lerpY = this.pointerY, o.tween && o.tween.kill && (o.tween.kill(), delete o.tween) }, onClick: function (i) { o.isPressed = !1, t.closestClass(i.target, "rs-nav-element") || t.closestClass(i.target, "rs-waction") || o.draggable.enabled() && !1 === t[e].carousel.stopOnClick && t[e].c.trigger("starttimer") }, onDragStart: function () { o.lerpSpeed = .1, o.lerp || (o.lerp = requestAnimationFrame(o.lerpHandler)), t.ISM && o.forceBAlign && ("up" === this.getDirection() && o.focused == o.slideamount - 1 || "down" === this.getDirection() && 0 == o.focused ? o.forceScroll = !0 : o.forceScroll = !1) }, onDrag: function () { o.cX = this.pointerX, o.cY = this.pointerY }, snap: function (i) { var a; return t.getLastPos(e), o.isPressed = !1, o.forceScroll && o.forceBAlign ? (a = "up" === this.getDirection() ? t[e].cpar.offset().top + t[e].module.height : t.document.scrollTop() - (window.innerHeight - t[e].cpar[0].getBoundingClientRect().top), t[e].modal.useAsModal || tpGS.gsap.to([window, "body"], {scrollTo: a}), o.focused != o.slideamount - 1 || o.infinity ? o.lastPos : o[o.wraplength] - o.totalWidth) : (t.calculateSnap(e, i), i) } }, o.draggable = tpGS.draggable.create(o.proxy, o.draggableObj)[0], t[e].c.one("revolution.slide.onchange", function () { i(e) }) }, positionCarousel: function (e) { var i = t[e].carousel; if (i[i.sliderLength] = t[e].canv[i.length], i.draggable && !i.draggable.isPressed) { for (var a = 0, o = 0; o < i.slideamount; o++) i.arr[o].elem === t[e].slides[i.closest] && (a = i.arr[o].prog); if (Number.isNaN(a) && (a = 0), r(e), t.ISM && t[e].navigation.touch.mobileCarousel || !0 !== t.ISM && t[e].navigation.touch.desktopCarousel ? (i.draggable.vars.cursor = "grab", i.draggable.enable()) : (i.draggable.vars.cursor = "pointer", i.draggable.disable()), t[e].carousel.justify) { i.wrapperWidth = 0; for (o = 0; o < t[e].carousel[i.slide_dims].length; o++) i.wrapperWidth += t[e].carousel[i.slide_dims][o] } else i.wrapperWidth = i.slide_width * t[e].slides.length; void 0 === i.focused && (i.focused = 0), i.activeSlide = i.oldfocused = void 0 === i.focused || void 0 === i.closest ? 0 : i.closest; for (o = 0; o < i.arr.length; o++) t.updateSlideWidth(e, o); var s, n, l = 0; i.lastWrapwidth = i.wrapwidth, i.lastWrapheight = i.wrapheight, n = s = "start" === t[e].carousel.align ? 0 : "center" === t[e].carousel.align ? (i[i.wraplength] - i.arr[i.activeSlide][i.length]) / 2 : i[i.wraplength] - i.arr[i.activeSlide][i.length], i.infinity || "v" !== i.orientation || i.activeSlide != i.slideamount - 1 || (s = i[i.wraplength] - i.arr[i.activeSlide][i.length]), tpGS.gsap.set([i.proxy, i.follower], { x: s, y: s }); var d = i.arr[0][i.length] * a; if (i.infinity) { for (o = i.activeSlide; o < i.arr.length; o++) o !== i.activeSlide && (l += i.space), "h" === i.orientation ? tpGS.gsap.set(i.arr[o].elem, {x: l + s + d}) : tpGS.gsap.set(i.arr[o].elem, {y: l + s + d}), i.arr[o].posX = l + s + d, i.arr[o][i.translate] = l + s + d, l += i.arr[o][i.length]; var c = s + d; for (o = i.activeSlide - 1; o >= 0; o--) c -= i.arr[o][i.length] + i.space, i.arr[o].posX = c + d, i.arr[o][i.translate] = c, "h" === i.orientation ? tpGS.gsap.set(i.arr[o].elem, {x: c}) : tpGS.gsap.set(i.arr[o].elem, {y: c}), l += i.arr[o][i.length] + i.space } else { var p = 0; for (o = 0; o < i.arr.length; o++) o > 0 && (l += i.space), o == i.activeSlide && (p += l), i.arr[o].posX = l + s + d, i.arr[o][i.translate] = l + s + d, "h" === i.orientation ? tpGS.gsap.set(i.arr[o].elem, {x: l + s + d}) : tpGS.gsap.set(i.arr[o].elem, {y: l + s + d}), l += i.arr[o][i.length]; tpGS.gsap.set([i.proxy, i.follower], { x: s - p, y: s - p }), "h" === i.orientation ? tpGS.gsap.set([t[e].slides], {x: "-=" + p}) : tpGS.gsap.set([t[e].slides], {y: "-=" + p}); for (o = 0; o < i.arr.length; o++) i.arr[o].posX -= p, i.arr[o][i.translate] -= p } if (i.startOffset = n, t.swapCarouselSlides(e, !0), i.infinity ? i.draggable.applyBounds({ minX: -1 / 0, maxX: 1 / 0 }) : !i.infinity && i.snap ? i.draggable.applyBounds({ minX: -(i.startOffset + l), maxX: i.startOffset }) : i.infinity || i.snap || i.draggable.applyBounds({ minX: i.wrapwidth - l, maxX: 0 }), i.lastActiveSlide = i.activeSlide, i.totalWidth = l, i.lastTotalWidth = l, "off" !== i.spin) { var g = i[i.slide_length] / 2; i.spinAngle = Math.max(Math.min(i.spinAngle, 360 / i.arr.length), -360 / i.arr.length); var u = g / Math.sin(i.spinAngle / 2 * Math.PI / 180); i.spinR = (Math.sqrt(u * u - g * g) + i.space) * Math.sign(i.spinAngle), "2d" === i.spin && "h" === i.orientation ? i.spinR += (i.spinAngle <= 0 ? 0 : 1) * ("fullscreen" === t[e].sliderLayout ? i.wrapheight : i.slide_height) : "2d" === i.spin && (i.spinR += (i.spinAngle <= 0 ? 0 : 1) * ("fullscreen" === t[e].sliderLayout ? i.wrapwidth : i.slide_width)) } for (o = 0; o < i.trackArr.length; o++) for (var h = 0; h < i.arr.length; h++) i.trackArr[o].elem === i.arr[h].elem && (i.trackArr[o].width = i.arr[h].width, i.trackArr[o].height = i.arr[h].height); t.swapCarouselSlides(e, !0), t.applyDistanceEffect(e), t.swipeAnimate({id: e, from: "none"}) } }, updateSlideWidth: function (e, i) { var a = t[e].carousel; if (a.justify) for (var r = 0; r < t[e].slides.length; r++) t[e].slides[r] === a.arr[i].elem && (a.arr[i][a.length] = a[a.slide_dims][r]); else a.arr[i][a.length] = a[a.slide_length] }, swapCarouselSlides: function (e) { var i = t[e].carousel, a = !0; if (i.infinity && !(i.totalWidth < i[i.wraplength])) for (var r; a;) { var o = parseFloat(i.arr[0][i.translate]) > 0 || void 0 !== i.arr[0].progress && i.arr[0].progress <= i.maxVisibleItems / 2 && !(i.arr[i.arr.length - 1].progress <= i.maxVisibleItems / 2) && parseFloat(i.arr[i.arr.length - 1][i.translate]) >= i[i.wraplength], s = parseFloat(i.arr[i.arr.length - 1][i.translate]) < i[i.wraplength] - i.arr[i.arr.length - 1][i.length] || void 0 !== i.arr[i.arr.length - 1].progress && i.arr[i.arr.length - 1].progress <= i.maxVisibleItems / 2 && !(i.arr[0].progress <= i.maxVisibleItems / 2) && parseFloat(i.arr[0][i.translate]) + i.arr[0][i.length] <= 0; if (o) { var n = parseFloat(i.arr[0][i.translate]) - i.space, l = i.arr.pop(); i.arr.unshift(l), r === l && (a = !1), r = l, i.arr[0].posX = i.arr[0][i.translate] = n - i.arr[0][i.length], t.getCarActiveSlide(e) } else if (s) { n = parseFloat(i.arr[i.arr.length - 1][i.translate]) + i.space, l = i.arr.shift(); i.arr.push(l), r === l && (a = !1), r = l, i.arr[i.arr.length - 1].posX = i.arr[i.arr.length - 1][i.translate] = n + i.arr[i.arr.length - 2][i.length], t.getCarActiveSlide(e) } else a = !1 } }, onThrowComplete: function (e) { var a = t[e].carousel; "carousel" !== t[e].sliderType || a.fadein || (tpGS.gsap.to(t[e].canvas, 1, { scale: 1, opacity: 1 }), a.fadein = !0), t.getCarActiveSlide(e, !0); for (var r = a.arr[a.activeSlide], o = 0; o < t[e].slides.length; o++) { if (t[e].slides[o] === r.elem) { if (a.focused = parseFloat(o), t[e].pr_next_key = a.focused, a.animInList.includes(a.oldfocused.toString()) || a.animInList.push(a.oldfocused.toString()), "all" !== a.showLayersAllTime) for (; a.animInList.length >= 1;) { var s = a.animInList.pop(); a.focused != s && t.removeTheLayers(jQuery(t[e].slides[s]), e) } for (var n in t.callingNewSlide(e, t[e].slides[o].getAttribute("data-key"), !0, !0), t[e].c.trigger("revolution.nextslide.waiting"), i(e), a.focused != a.oldfocused && "all" !== a.showLayersAllTime && (a.animInList.includes(a.focused.toString()) || a.animInList.push(a.focused.toString()), t.animateTheLayers({ slide: a.focused, id: e, mode: "start" }), t.animateTheLayers({ slide: "individual", id: e, mode: t[e].carousel.allLayersStarted ? "rebuild" : "start" })), t[e].sbgs) t[e].sbgs.hasOwnProperty(n) && void 0 !== t[e].sbgs[n].bgvid && 0 !== t[e].sbgs[n].bgvid.length && ("" + t[e].sbgs[n].skeyindex == "" + a.focused ? t.playBGVideo(e, t.gA(t[e].pr_next_slide[0], "key")) : t.stopBGVideo(e, t[e].sbgs[n].key)); a.oldfocused = a.focused } for (var l = t[e].slides[o].querySelectorAll(".rs-on-car"), d = 0; d < l.length; d++) t[e].slides[o] !== r.elem && l[d].classList.contains("rs-layer-video") && t[e].videos[l[d].id].pauseOnSlideChange && t.stopVideo(jQuery(l[d]), e) } a.draggable[a.deltaT] = 0, t[e].c.trigger("restarttimer") }, calculateSnap: function (e, i) { var a = t[e].carousel; tpGS.gsap.killTweensOf(a.proxy, a.translate); var r = "v" === a.orientation ? i - a.draggable.endY : i - a.draggable.endX; Math.abs(r) < 3 && (r = 0); var o, s = !0, n = "v" === a.orientation ? Math.abs(a.draggable.endY - a.draggable.startY) : Math.abs(a.draggable.endX - a.draggable.startX); if (a.focusedPreSnap = a.focused, a.snap) { o = a.direction = a.draggable[a.deltaT] >= 0 ? "right" : "left"; var l = t.getNextSlide(e, r, o, !0, n < 300); r = l.delta, s = l.overshoot, a.target = l.target } else a.target = i; if ((!a.infinity && !a.snap || !a.infinity && "v" === a.orientation) && (a.target <= a[a.wraplength] - a.totalWidth ? a.target = a[a.wraplength] - a.totalWidth : a.target >= 0 && !a.snap && (a.target = 0)), a.swiped = !0, a.overshoot && s) { tpGS.gsap.to(a, { duration: a.snap ? .3 : .5, lerpSpeed: .8 }), s = Math.min(0 === a.draggable[a.deltaT] ? Math.abs(r) / 20 : Math.abs(a.draggable[a.deltaT]) / 2, a[a.wraplength] / 4) * Math.sign(r); var d = Math.abs(s / 100); a.time = Math.min(Math.max(d / 10, a.speed / 1e3 * .6), a.speed / 1e3), a.tween = tpGS.gsap.timeline({ onComplete: function () { t.snapCompleted(e) } }), a.tween.to(a.proxy, { x: a.target + s, y: a.target + s, duration: a.time, ease: "power2.out" }).to(a.proxy, { x: a.target, y: a.target, duration: Math.min(2 * a.time, .6), ease: a.easing.replace(".inOut", ".out").replace(".in", ".out") }, "overshoot").to(a, {duration: Math.min(2 * a.time, .6), lerpSpeed: 1}, "overshoot") } else d = Math.abs(r / 100), a.time = Math.min(Math.max(d / 10, a.speed / 1e3 * .6), a.speed / 1e3), a.tween = tpGS.gsap.to(a.proxy, { x: a.target, y: a.target, duration: a.time, ease: a.easing.replace(".inOut", ".out").replace(".in", ".out"), onComplete: function () { t.snapCompleted(e) } }), tpGS.gsap.to(a, {duration: a.time, lerpSpeed: 1}) }, carLerpHandler: function (e, i) { var a = t[e].carousel; "skip" !== i && (a.lerp = requestAnimationFrame(a.lerpHandler)); var r = parseFloat(a.proxy._gsap[a.translate]), o = parseFloat(a.follower._gsap[a.translate]), s = o + (r - o) * a.lerpSpeed - o; "mousedrag" == t[e].parallax.type && (a.delta = s, a.lerpX = a.lerpX + (a.cX - a.lerpX) * a.lerpSpeed, a.lerpY = a.lerpY + (a.cY - a.lerpY) * a.lerpSpeed, t[e].parallax.frame = window.requestAnimationFrame(t[e].parallax.parallaxHandler)), tpGS.gsap.set(t[e].canvas, { skewX: a.skewX * Math.max(-1, Math.min(1, s / 100)), skewY: a.skewY * Math.max(-1, Math.min(1, s / 100)) }), "h" === a.orientation ? (tpGS.gsap.set(a.follower, {x: "+=" + s}), tpGS.gsap.set(a.arr, {x: "+=" + s})) : (tpGS.gsap.set(a.follower, {y: "+=" + s}), tpGS.gsap.set(a.arr, {y: "+=" + s})), t.swapCarouselSlides(e), t.applyDistanceEffect(e) }, snapCompleted: function (e) { var i = t[e].carousel; i.lerp = cancelAnimationFrame(i.lerp), i.scrollFrame = cancelAnimationFrame(i.scrollFrame), i.swiped = !1, tpGS.gsap.set(i.follower, { x: i.proxy._gsap[i.translate], y: i.proxy._gsap[i.translate] }), t.onThrowComplete(e) }, applyDistanceEffect: function (e) { var r = t[e].carousel, o = 1 / 0, s = 0, n = 0; void 0 === r.lastSlideProgress && (r.lastSlideProgress = 1); var l = r.startOffset; for (var d in r.startOffsetCache = r.startOffset, void 0 === r.tempAlign && (r.tempAlign = r.align), "v" !== r.orientation || r.infinity || r.justify || (l = r.startOffset + (r[r.wraplength] - r[r.slide_length] - r.startOffset) * (1 - r.lastSlideProgress)), r.arr) { var c = parseFloat(r.arr[d][r.translate]) - l; if (r.infinity && (c %= r.totalWidth), Math.abs(c) < o) { for (var p = 0; p < t[e].slides.length; p++) t[e].slides[p] === r.arr[d].elem && (n = p, r.closestArr = d); o = Math.abs(c) } r.arr[d].loaded && s++, r.infinity || r.snap || (0 === r.activeSlide ? c = parseFloat(r.arr[d][r.translate]) : r.activeSlide === r.arr.length - 1 && (c = parseFloat(r.arr[d][r.translate]) - (r[r.wraplength] - r.arr[d][r.length]))); var g = Math.sign(c), u = r.arr[d].progress = Math.abs(c) / (r[r.slide_length] + r.space); if (r.arr[d].prog = c / (r[r.slide_length] + r.space), !r.justify && "mousedrag" === t[e].parallax.type) for (p = 0; p < t[e].slides.length; p++) t[e].slides[p] === r.arr[d].elem && (r.trackArr[p].progress = u); "v" !== r.orientation || r.infinity || d != r.slideamount - 1 || (u <= ("left" === r.direction ? .9 : .1) && !r.vertAlignBottom ? (tpGS.gsap.to(r, { lastSlideProgress: 0, duration: .2 }), r.vertAlignDefault = !1, r.vertAlignBottom = !0, r.tempAlign = "end", a(e, "end")) : u > ("left" === r.direction ? .9 : .1) && !r.vertAlignDefault && (tpGS.gsap.to(r, { lastSlideProgress: 1, duration: .2 }), r.vertAlignDefault = !0, r.vertAlignBottom = !1, r.tempAlign = r.align, a(e, r.align))), r.arr[d].sign = g; var h = r.arr[d].progress; h = h / Math.ceil(r.pDiv) * ("center" === r.tempAlign ? 1 : "start" === r.tempAlign ? g : -g); var m = Math.min(r.arr[d].progress, 1) / 1, v = 100 - 5 * Math.round(r.arr[d].progress), f = {}; if (r.justify || "off" === r.spin) if (0 === r.minScale || r.justify) f[r.translate] = r.arr[d][r.translate]; else { var y = 1 - (r.vary_scale ? h : m) * (1 - r.minScale), w = r.offsetScale ? r.arr[d].sign * (r[r.slide_length] + r.space - (r[r.slide_length] + r.space) * y) / 2 * r.arr[d].progress : r.arr[d].sign * (r[r.slide_length] - r[r.slide_length] * y) / 2 * r.arr[d].progress; f[r.translate] = r.arr[d][r.translate] - w, window.isSafari11 && (f.z = -150 * (1 - y)), f.scale = y } else f[r.translate] = l, "2d" === r.spin ? (f.rotation = r.spinAngle * u * ("h" === r.orientation ? g : -g), "h" === r.orientation ? f.transformOrigin = "center " + r.spinR + "px 0" : f.transformOrigin = r.spinR + "px center 0") : ("h" === r.orientation ? f.rotationY = r.spinAngle * r.arr[d].progress * -g : f.rotationX = r.spinAngle * r.arr[d].progress * g, f.transformOrigin = "center center " + r.spinR + "px"); f.opacity = 1, r.justify || (0 !== r.maxRotation && (f.rotationY = r.maxRotation * (r.vary_rotation ? h : m) * -g), f.opacity = 1 + (r.maxOpacity - 1) * (r.vary_fade ? h : m), h > r.edgeRatio ? f.opacity = r.oRange(h) : h < 0 ? f.opacity = r.oRangeMin(h) : 1 === r.maxOpacity && (f.opacity = 1)), f.zIndex = v, f.opacity > 0 ? ("visible" !== r.arr[d].elem.style.visibility && (f.visibility = "visible"), tpGS.gsap.set(r.arr[d].elem, f)) : ("hidden" !== r.arr[d].elem.style.visibility && (f.visibility = "hidden"), tpGS.gsap.set(r.arr[d].elem, { visibility: f.visibility, opacity: f.opacity })) } if (n !== r.closest) { if (r.closest = n, s !== r.arr.length && t.loadVisibleCarouselItems(e, !0, r.closest), r.draggable.isPressed) { if (r.focused = r.closest, t[e].pr_next_key = r.focused, r.oldfocused = void 0 === r.oldfocused ? 0 : r.oldfocused, t[e].carousel.allLayersStarted ? t.updateCarouselRows(e) : t.carouselRowAdjustment(r, e, r.focused), "all" !== r.showLayersAllTime) for (r.animInList.includes(r.oldfocused.toString()) || r.animInList.push(r.oldfocused.toString()); r.animInList.length >= 1;) { var b = r.animInList.pop(); r.focused != b && t.removeTheLayers(jQuery(t[e].slides[b]), e) } r.focused != r.oldfocused && ("all" !== r.showLayersAllTime && (r.animInList.includes(r.focused.toString()) || r.animInList.push(r.focused.toString()), t.animateTheLayers({ slide: r.focused, id: e, mode: "start" }), t.animateTheLayers({ slide: "individual", id: e, mode: t[e].carousel.allLayersStarted ? "rebuild" : "start" })), i(e, !0), r.oldfocused = r.focused), t[e].c.trigger("revolution.nextslide.waiting") } for (var _ in t[e].sbgs) t[e].sbgs.hasOwnProperty(_) && void 0 !== t[e].sbgs[_].bgvid && 0 !== t[e].sbgs[_].bgvid.length && "" + t[e].sbgs[_].skeyindex != "" + r.focused && t.stopBGVideo(e, t[e].sbgs[_].key) } }, getCarActiveSlide: function (e) { var i, a = t[e].carousel, r = 999999, o = 0; for (var s in a.arr) { var n; if (a.arr.hasOwnProperty(s)) n = "center" === t[e].carousel.align ? Math.abs(parseFloat(a.arr[s][a.translate]) - (a[a.wraplength] - a.arr[s][a.length]) / 2) : "start" === t[e].carousel.align ? Math.abs(parseFloat(a.arr[s][a.translate])) : Math.abs(parseFloat(a.arr[s][a.translate]) - (a[a.wraplength] - a.arr[s][a.length])), a.vertAlignBottom && (n = Math.abs(parseFloat(a.arr[s][a.translate]) - (a[a.wraplength] - a.arr[s][a.length]))), n < r && (i = a.arr[s], r = n, o = s) } return o = parseInt(o), a.activeSlide = o, i }, loadVisibleCarouselItems: function (e, i, a) { var r = t[e].carousel, o = [], s = a ? r.closest : r.focused; r.focused = parseInt(s, 0), r.focused = t.isNumeric(s) ? s : 0; for (var n = 0; n < Math.ceil(t[e].carousel.maxVisibleItems / 2); n++) { var l = "end" === t[e].carousel.align ? s - n : s + n, d = "center" === t[e].carousel.align ? s - n : "start" === t[e].carousel.align ? t[e].carousel.maxVisibleItems + l - 1 : l - t[e].carousel.maxVisibleItems + 1; if (l = l >= t[e].slideamount ? l - t[e].slideamount + 0 : l, d = d >= t[e].slideamount ? d - t[e].slideamount + 0 : d, l = l < 0 ? t[e].slideamount + l : l, d = d < 0 ? t[e].slideamount + d : d, o.push(t[e].slides[l]), l !== d && o.push(t[e].slides[d]), r.arr) for (var c = 0; c < r.arr.length; c++) t[e].slides[l] === r.arr[c].elem && (r.arr[c].loaded = !0), t[e].slides[d] === r.arr[c].elem && (r.arr[c].loaded = !0) } return i && (t.loadImages(o, e, 1), t.waitForCurrentImages(o, e)), o }, organiseCarousel: function (e, i, a, r, o) { var s = t[e].carousel; if (t[e].slides) for (var n = 0; n < t[e].slides.length; n++) { var l = {width: !0 === s.justify ? s.slide_widths[n] : s.slide_width}; "off" === s.spin && (l.transformOrigin = "50% " + ("h" === s.orientation ? s.vertical_align : "center")), l.force3D = !0, l.transformStyle = "3D" != t[e].parallax.type && "3d" != t[e].parallax.type ? "flat" : "preserve-3d", !0 !== o && tpGS.gsap.set(t[e].slides[n], l) } }, updateCarouselRows: function (e) { if ("carousel" === t[e].sliderType) for (var i = 0; i < t[e].slideamount; i++) t.carouselRowAdjustment(t[e].carousel, e, i) }, carouselRowAdjustment: function (e, i, a) { void 0 !== e.slidesWithRowAdjustions && void 0 === e.slidesWithRowAdjustions[a] && (e.slidesWithRowAdjustions[a] = !0, t.getRowHeights(i, a), t.putMiddleZoneInPosition(i, a)) }, getNextSlide: function (e, i, a, r, o) { var s, n = t[e].carousel, l = 0, d = !1, c = i, p = i; if (void 0 === n.trackIndex) { for (var g = 0; g < n.trackArr.length; g++) if (n.arr[n.activeSlide].elem === n.trackArr[g].elem) { s = g; break } } else s = n.trackIndex; void 0 === a && (d = !0); for (var u = !1; (n.snap || !r) && !d;) { if (u || r && Math.abs(l) >= Math.abs(i) || void 0 === i && t[e].slides[n.focused] === n.trackArr[s].elem) { i = l; break } c = l; var h = t.getNext(e, a, l, s, void 0 === r); (u = h.breakLoop) || (l = h.tempDelta, s = h.trackIndex) } var m = n.lastPos + i; return r && n.focusedOnPress != n.focusedPreSnap && (m = Math.abs(p + n.lastPos - m) <= Math.abs(p + n.lastPos - (c + n.lastPos)) ? m : c + n.lastPos), d && (m = n.lastPos, i = -n.arr[n.closestArr][n.translate]), { target: m, overshoot: !0, delta: i, trackIndex: s } }, getNext: function (e, i, a, r, o) { var s = t[e].carousel, n = "right" === i ? 1 : -1, l = !1; return "start" === s.align && "left" === i ? a += (s.trackArr[r][s.length] + s.space) * n : "center" === s.align ? a += (s.trackArr[r][s.length] + s.space) / 2 * n : "end" === s.align && "right" === i && (a += (s.trackArr[r][s.length] + s.space) * n), "right" === i ? --r < 0 && (r = s.infinity ? s.trackArr.length - 1 : r + 1, s.infinity || (l = !0)) : ++r >= s.trackArr.length && (r = s.infinity ? 0 : r - 1, s.infinity || (l = !0)), l || ("start" === s.align && "right" === i && (a += (s.trackArr[r][s.length] + s.space) * n), "center" === s.align ? a += (s.trackArr[r][s.length] + s.space) / 2 * n : "end" === s.align && "left" === i && (a += (s.trackArr[r][s.length] + s.space) * n)), { tempDelta: a, trackIndex: r, breakLoop: l } }, getCarDir: function (e, i, a) { var r = t[e].carousel, o = a - i, s = "right"; r.sameSlide = !1; var n = 0, l = 0; if (r.infinity) { for (var d = i; d != a;) l += 1, d = ++d >= r.slideamount ? 0 : d; for (d = i; d != a;) n += 1, d = --d < 0 ? r.slideamount - 1 : d; s = l <= n ? "left" : "right" } else r.infinity || (s = a - i >= 0 ? "left" : "right", l = Math.abs(a - i), 0 === o && (s = "right", r.sameSlide = !0)); return r.steps = l <= n ? l : n, r.direction = s, s }, getLastPos: function (e) { var i = t[e].carousel; if (i.trackArr) { for (var a = 0, r = 0, o = 0; o < i.trackArr.length; o++) t[e].slides[i.closest] === i.trackArr[o].elem && (i.trackIndex = o), t[e].slides[i.closest] === i.arr[o].elem && (a = i.arr[o][i.translate], "center" === i.align && (r = (i[i.wraplength] - i.arr[o][i.length]) / 2), "end" === i.align && (r = i[i.wraplength] - i.arr[o][i.length]), i.lastOffset = r); i.lastPos = parseFloat(i.proxy._gsap[i.translate]) - a - (parseFloat(i.proxy._gsap[i.translate]) - parseFloat(i.follower._gsap[i.translate])), i.lastPos += r } }, swipeAnimate: function (e) { var i = t[e.id].carousel, a = e.id; if (t.getLastPos(a), i.arr && i.arr[i.closestArr] && i.arr[i.closestArr].elem != t[e.id].slides[i.focused]) { var r = t.getCarDir(a, i.trackIndex, i.focused), o = t.getNextSlide(e.id, void 0, r, !1); i.target = o.target, (!i.infinity && !i.snap || !i.infinity && "v" === i.orientation) && (i.target <= i[i.wraplength] - i.totalWidth ? i.target = i[i.wraplength] - i.totalWidth : i.target >= 0 && !i.snap && (i.target = 0)), i.lerpSpeed = 1, i.fromWheel = !1, i.tween && i.tween.kill && (i.tween.kill(), delete i.tween), i.tween = tpGS.gsap.to(i.proxy, { x: i.target, y: i.target, ease: i.easing, duration: i.speed / 1e3 + (i.steps >= 2 ? (i.steps - 1) * i.speed / 2e3 : 0), onComplete: function () { i.lerp = cancelAnimationFrame(i.lerp), i.scrollFrame = cancelAnimationFrame(i.scrollFrame), t.carLerpHandler(a, "skip"), i.activeSlide = i.closestArr, t.snapCompleted(a) } }), i.lerp = cancelAnimationFrame(i.lerp), i.scrollFrame = cancelAnimationFrame(i.scrollFrame), i.lerp || (i.lerp = requestAnimationFrame(i.lerpHandler)) } }, carScrollTicker: function (e) { var i = t[e].carousel; i.scrollFrame = requestAnimationFrame(i.scrollTicker); var a = parseFloat(i.proxy._gsap[i.translate]), r = a + .5 * (i.scrollProxy - a), o = r - a; tpGS.gsap.set(i.proxy, {[i.translate]: r}), Math.abs(o) < .03 && (i.scrollFrame = cancelAnimationFrame(i.scrollFrame), i.lerp = cancelAnimationFrame(i.lerp), i.activeSlide = i.closestArr, t.snapCompleted(e)) }, scrollCar: function (e, i, a) { var r = t[e].carousel; r.scrollFrame = cancelAnimationFrame(r.scrollFrame), r.lerp = cancelAnimationFrame(r.lerp), tpGS.gsap.to(r, {lerpSpeed: 1}), r.fromWheel = !0; var o, s = Math.round(parseFloat(r.proxy._gsap[r.translate])); if (r.tween && r.tween.kill && (r.tween.kill(), delete r.tween), 1 == a && r.focused == r.slideamount - 1 && s <= r[r.wraplength] - r.totalWidth && !r.infinity || -1 == a && 0 == r.focused && s >= 0 && !r.infinity) return o = 1 == a ? t[e].cpar.offset().top + t[e].module.height : t.document.scrollTop() - (window.innerHeight - t[e].cpar[0].getBoundingClientRect().top), void (t[e].modal.useAsModal || tpGS.gsap.to([window, "body"], {scrollTo: o})); var n = s + -8 * i; (!r.infinity && !r.snap || !r.infinity && "v" === r.orientation) && (n <= r[r.wraplength] - r.totalWidth ? n = r[r.wraplength] - r.totalWidth : n >= 0 && !r.snap && (n = 0)), r.tween = tpGS.gsap.to(r, { scrollProxy: n, duration: .5, ease: r.easing }), r.scrollFrame = requestAnimationFrame(r.scrollTicker), r.lerp || (r.lerp = requestAnimationFrame(r.lerpHandler)) }, defineCarouselElements: function (e) { var i = t[e].carousel; i.infbackup = i.infinity, i.maxVisiblebackup = i.maxVisibleItems, i.slide_offset = "none", i.slide_offset = 0, i.cached_slide_offset = 0, i.wrap = jQuery(t[e].canvas[0].parentNode), 0 !== i.maxRotation && ("3D" !== t[e].parallax.type && "3d" !== t[e].parallax.type || tpGS.gsap.set(i.wrap, { perspective: "1600px", transformStyle: "preserve-3d" })) }, setCarouselDefaults: function (e, i, a) { var r = t[e].carousel; if (r.stretchCache = void 0 === r.stretchCache ? r.stretch : r.stretchCache, r.stretch = !!t[e].infullscreenmode || r.stretchCache, r.slide_width = Math.round(!0 !== r.stretch && "v" !== r.orientation ? t[e].gridwidth[t[e].level] * (0 === t[e].CM.w ? 1 : t[e].CM.w) : t[e].canv.width), r.slide_height = Math.round(!0 !== r.stretch ? t[e].infullscreenmode ? t.getWinH(e) - t.getFullscreenOffsets(e) : t[e].gridheight[t[e].level] * (0 === t[e].CM.w ? 1 : t[e].CM.w) : t[e].canv.height), r.ratio = r.slide_width / r.slide_height, r.len = t[e].slides.length, r.maxwidth = t[e].slideamount * r.slide_width, r.maxheight = t[e].slideamount * r.slide_height, 1 != r.justify && r.maxVisiblebackup > r.len && (r.maxVisibleItems = r.len % 2 ? r.len : r.len + 1), r.wrapwidth = r.maxVisibleItems * r.slide_width + (r.maxVisibleItems - 1) * r.space, r.wrapheight = r.maxVisibleItems * r.slide_height + (r.maxVisibleItems - 1) * r.space, r.wrapwidth = "auto" != t[e].sliderLayout ? r.wrapwidth > t[e].canv.width ? t[e].canv.width : r.wrapwidth : r.wrapwidth > t[e].module.width ? 0 !== t[e].module.width ? t[e].module.width : t[e].canv.width : r.wrapwidth, r.wrapheight = "auto" != t[e].sliderLayout ? r.wrapheight > t[e].canv.height ? t[e].canv.height : r.wrapheight : r.wrapheight > t[e].module.height ? 0 !== t[e].module.height ? t[e].module.height : t[e].canv.height : r.wrapheight, !0 === r.justify) { r.slide_height = Math.round("fullscreen" === t[e].sliderLayout ? t[e].module.height : t[e].gridheight[t[e].level]), r.slide_widths = [], r.slide_heights = [], r.slide_widthsCache = void 0 === r.slide_widthsCache ? [] : r.slide_widthsCache, r.slide_heightsCache = void 0 === r.slide_heightsCache ? [] : r.slide_heightsCache, r.maxwidth = 0; for (var o = 0; o < r.len; o++) if (t[e].slides.hasOwnProperty(o)) { var s = t.gA(t[e].slides[o], "iratio"); s = void 0 === s || 0 === s || null === s ? r.ratio : s, s = parseFloat(s), r.slide_widths[o] = Math.round(r.slide_height * s), r.slide_heights[o] = Math.round(r.slide_height), !1 !== r.justifyMaxWidth && (r.slide_widths[o] = Math.min(r.wrapwidth, r.slide_widths[o])), !1 !== r.justifyMaxWidth && (r.slide_heights[o] = Math.min(r.wrapheight, r.slide_heights[o])), r.slide_widths[o] !== r.slide_widthsCache[o] && (r.slide_widthsCache[o] = r.slide_widths[o], !0 !== i && tpGS.gsap.set(t[e].slides[o], {width: r.slide_widths[o]})), r.slide_heights[o] !== r.slide_heightsCache[o] && (r.slide_heightsCache[o] = r.slide_heights[o], !0 !== i && tpGS.gsap.set(t[e].slides[o], {height: r.slide_heights[o]})), r.maxwidth += r.slide_widths[o] + r.space, r.maxheight += r.slide_heights[o] + r.space } } if (r.infinity = !(r.wrapwidth >= r.maxwidth) && r.infbackup, r.forceBAlign && r.slide_height < .6 * r.wrapheight && r.wrapwidth < r.maxwidth ? r.infinity = !0 : r.forceBAlign && (r.infinity = !1), !0 !== r.quickmode) { r.wrapoffset = "center" === r.horizontal_align ? (t[e].canv.width - t[e].outNavDims.right - t[e].outNavDims.left - r.wrapwidth) / 2 : 0, r.wrapoffset = "auto" != t[e].sliderLayout && t[e].outernav ? 0 : r.wrapoffset < t[e].outNavDims.left ? t[e].outNavDims.left : r.wrapoffset; var n = "3D" == t[e].parallax.type || "3d" == t[e].parallax.type ? "visible" : "hidden", l = "right" === r.horizontal_align ? { left: "auto", right: r.wrapoffset + "px", width: r.wrapwidth, overflow: n } : "left" === r.horizontal_align || r.wrapwidth < t.winW ? { right: "auto", left: r.wrapoffset + "px", width: r.wrapwidth, overflow: n } : {right: "auto", left: "auto", width: "100%", overflow: n}; void 0 !== r.cacheWrapObj && l.left === r.cacheWrapObj.left && l.right === r.cacheWrapObj.right && l.width === r.cacheWrapObj.width || (window.requestAnimationFrame(function () { tpGS.gsap.set(r.wrap, l), t[e].carousel.wrapoffset > 0 && tpGS.gsap.set(t[e].canvas, {left: 0}) }), r.cacheWrapObj = jQuery.extend(!0, {}, l)), r.inneroffset = "right" === r.horizontal_align ? r.wrapwidth - r.slide_width : 0, r.windhalf = "auto" === t[e].sliderLayout ? t[e].module.width / 2 : t.winW / 2 } r.lastWrapwidth === r.wrapwidth && r.lastWrapheight === r.wrapheight || window.requestAnimationFrame(function () { t.positionCarousel(e) }) } }); var i = function (e, i) { var a = t[e].carousel, r = i && t[e].slides[t[e].pr_next_key] ? jQuery(t[e].slides[t[e].pr_next_key]) : t[e].pr_next_slide; t[e].c.trigger("revolution.slide.carouselchange", { slider: e, slideIndex: parseInt(t[e].pr_active_key, 0) + 1, slideLIIndex: t[e].pr_active_key, slide: r, currentslide: r, prevSlideIndex: void 0 !== t[e].pr_lastshown_key && parseInt(t[e].pr_lastshown_key, 0) + 1, prevSlideLIIndex: void 0 !== t[e].pr_lastshown_key && parseInt(t[e].pr_lastshown_key, 0), prevSlide: void 0 !== a.oldfocused && t[e].slides[a.oldfocused] }) }, a = function (e, i) { var a = t[e].carousel; void 0 !== e && void 0 !== a && (a.pDiv = "center" === i ? a.maxVisibleItems / 2 : a.maxVisibleItems, a.edgeRatio = Math.floor(a.pDiv - ("center" === i ? 0 : 1)) / Math.ceil(a.pDiv), 1 === a.maxVisibleItems && (a.edgeRatio = 1), a.oEdge = 1 === a.maxOpacity ? 1 : a.vary_fade ? 1 + (a.maxOpacity - 1) * a.edgeRatio : a.maxOpacity, a.oEdge = 1 === a.maxVisibleItems ? a.maxOpacity : a.oEdge, a.oRange = a.maxVisibleItems > 1 ? tpGS.gsap.utils.mapRange(a.edgeRatio, 1, a.oEdge, 0) : tpGS.gsap.utils.mapRange(1, 1.1, a.oEdge, 0), a.oRangeMin = tpGS.gsap.utils.mapRange(-1 / a.maxVisibleItems, -1.1 / a.maxVisibleItems, 1, 0)) }, r = function (e) { var i = t[e].carousel; if (void 0 !== e && void 0 !== i) { tpGS.gsap.set([i.proxy, i.follower], {x: "+=0", y: "+=0"}), i.arr = [], i.trackArr = []; for (var a = 0; a < t[e].slides.length; a++) i.arr.push({elem: t[e].slides[a]}), i.trackArr.push({elem: t[e].slides[a]}) } }, o = function (e, t) { return null === e || jQuery.isEmptyObject(e) ? t : void 0 === e ? "right" : e }; window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.carousel = { loaded: !0, version: "6.6.13" }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal() }(jQuery), function (e) { "use strict"; var t = ["chars", "words", "lines"], i = ["Top", "Right", "Bottom", "Left"], a = ["TopLeft", "TopRight", "BottomRight", "BottomLeft"], r = ["top", "right", "bottom", "left"]; jQuery.fn.revolution = jQuery.fn.revolution || {}; var o = jQuery.fn.revolution; jQuery.extend(!0, o, { checkLayerDimensions: function (e) { var t = !1; for (var i in o[e.id].layers[e.skey]) if (o[e.id].layers[e.skey].hasOwnProperty(i)) { var a = o[e.id].layers[e.skey][i], r = o[e.id]._L[a.id]; r.eow !== a.offsetWidth && "true" !== o.gA(a, "vary-layer-dims") && (t = !0), r.lastknownwidth = r.eow, r.lastknownheight = r.eoh, r._slidelink || o[e.id].caches.calcResponsiveLayersList.push({ a: o[e.id]._L[a.id].c, b: e.id, c: 0, d: r.rsp_bd, e: e.slideIndex }) } return t }, requestLayerUpdates: function (e, t, i, a) { var r, s, n, l; if (void 0 !== i) r = i, o[e]._L[r].pVisRequest !== o[e]._L[r].pVisStatus && (void 0 === o[e]._L[r]._ligid || null == o[e]._L[o[e]._L[r]._ligid] || !0 !== o[e]._L[o[e]._L[r]._ligid].childrenAtStartNotVisible ? (o[e]._L[r].pVisStatus = o[e]._L[r].pVisRequest, l = ("row" === o[e]._L[r].type || "column" === o[e]._L[r].type || "group" === o[e]._L[r].type) && void 0 !== o[e]._L[r].frames && void 0 !== o[e]._L[r].frames.frame_999 && void 0 !== o[e]._L[r].frames.frame_999.transform && "" + o[e]._L[r].frames.frame_999.transform.opacity != "0", n = 1 === o[e]._L[r].pVisRequest ? "remove" : l ? n : "add", s = 1 === o[e]._L[r].pVisRequest ? "remove" : l ? "add" : s) : (n = "add", s = "remove"), "group" === o[e]._L[r].type && "add" == s && "hidden" == (1 === o[e]._L[r].pVisStatus ? "visible" : 0 === o[e]._L[r].pVisStatus ? "hidden" : o[e]._L[r].pVisStatus) && (n = "add"), void 0 !== s && o[e]._L[r].p[0].classList[s]("rs-forceuntouchable"), void 0 !== n && o[e]._L[r].p[0].classList[n]("rs-forcehidden")), o[e]._L[r].pPointerStatus !== o[e]._L[r].pPeventsRequest && (o[e]._L[r].pPointerStatus = o[e]._L[r].pPeventsRequest, tpGS.gsap.set(o[e]._L[r].p[0], { pointerEvents: o[e]._L[r].pPointerStatus, visibility: 1 === o[e]._L[r].pVisStatus ? "visible" : 0 === o[e]._L[r].pVisStatus ? "hidden" : o[e]._L[r].pVisStatus })), void 0 !== a && "ignore" !== a && 0 !== a && (a++, "enterstage" === t || "leavestage" === t || "framestarted" === t ? o.isFirefox(e) ? -1 === o[e]._L[r].p[0].style.transform.indexOf("perspective") && (o[e]._L[r].p[0].style.transform += (0 === o[e]._L[r].p[0].style.transform.length ? " " : "") + "perspective(" + a + "px)") : (!window.isSafari11 && !0 !== o[e]._L[r].maskHasPerspective && 0 === o[e]._L[r].p[0].style.perspective.length || "none" == o[e]._L[r].p[0].style.perspective) && (o[e]._L[r].p[0].style.perspective = a + "px") : "frameended" === t && (o.isFirefox(e) ? o[e]._L[r].p[0].style.transform = o[e]._L[r].p[0].style.transform.replace("perspective(" + a + "px)", "") : window.isSafari11 || (o[e]._L[r].p[0].style.perspective = o[e]._L[r].p[0].style.perspective.replace(a - 1 + "px", "")))); else for (r in o[e]._L) o[e]._L.hasOwnProperty(r) && (o[e]._L[r].pVisRequest !== o[e]._L[r].pVisStatus && (o[e]._L[r].pVisStatus = o[e]._L[r].pVisRequest, 0 === o[e]._L[r].pVisStatus ? o[e]._L[r].p[0].classList.add("rs-forcehidden") : o[e]._L[r].p[0].classList.remove("rs-forcehidden")), o[e]._L[r].pPointerStatus !== o[e]._L[r].pPeventsRequest && (o[e]._L[r].pPointerStatus = o[e]._L[r].pPeventsRequest, tpGS.gsap.set(o[e]._L[r].p[0], { pointerEvents: o[e]._L[r].pPointerStatus, visibility: o[e]._L[r].pVisStatus }))); "enterstage" === t && void 0 !== i && void 0 !== o[e]._L[i].esginside && o[e]._L[i].esginside.length > 0 && void 0 !== o[e]._L[i].esginside.esredraw && o[e]._L[i].esginside.esredraw() }, updateMiddleZonesAndESG: function (e) { var t, i = o[e].pr_processing_key || o[e].pr_active_key || 0; if (o[e].middleZones && o[e].middleZones.length > 0 && void 0 !== o[e].middleZones[i]) for (t = 0; t < o[e].middleZones[i].length; t++) tpGS.gsap.set(o[e].middleZones[i][t], {y: Math.round(o[e].module.height / 2 - o[e].middleZones[i][t].offsetHeight / 2) + "px"}); if (o[e].smiddleZones && o[e].smiddleZones.length > 0) for (t = 0; t < o[e].smiddleZones.length; t++) tpGS.gsap.set(o[e].smiddleZones[t], {y: Math.round(o[e].module.height / 2 - o[e].smiddleZones[t].offsetHeight / 2) + "px"}) }, getRowHeights: function (e, t) { if (!o[e].firstLayerCalculated) return {cur: 0, last: 0, cache: [], tz: 0}; var i = 0, a = 0, r = 0, s = void 0 !== t ? t : o[e].pr_processing_key || o[e].pr_active_key || 0, n = void 0 !== t ? t : o[e].pr_active_key || 0; if (o[e].rowMiddleHeights = null == o[e].rowMiddleHeights ? {} : o[e].rowMiddleHeights, o[e].rowMiddleHeights[s] = 0, o[e].rowzones && o[e].rowzones.length > 0) { if (void 0 !== o[e].rowzones[s]) for (var l = 0; l < o[e].rowzones[s].length; l++) o[e].rowzonesHeights[s][l] = o[e].rowzones[s][l][0].offsetHeight, i += o[e].rowzonesHeights[s][l], "true" == o[e].rowzones[s][l][0].dataset.middle && (o[e].rowMiddleHeights[s] += o[e].rowzonesHeights[s][l]); if (n !== s) for (o[e].rowMiddleHeights[n] = 0, l = 0; l < o[e].rowzones[n].length; l++) o[e].rowzonesHeights[n][l] = o[e].rowzones[n][l][0].offsetHeight, a += o[e].rowzonesHeights[n][l], "true" == o[e].rowzones[n][l][0].dataset.middle && (o[e].rowMiddleHeights[n] += o[e].rowzonesHeights[n][l]) } if (o[e].srowzones && o[e].srowzones.length > 0) for (o[e].rowMiddleHeights.static = 0, l = 0; l < o[e].srowzones.length; l++) r += o[e].srowzones[l][0].offsetHeight, "true" == o[e].srowzones[l][0].dataset.middle && (o[e].rowMiddleHeights.static += o[e].srowzones[l][0].offsetHeight); i = i < r ? r : i; var d = void 0 === o[e].rowHeights ? [] : o[e].rowHeights.cache, c = (new Date).getTime(); return void 0 !== o[e].rowHeights && c - o[e].rowHeights.tz < 300 ? o[e].rowHeights.cache.length > 5 && (i = o[e].rowHeights.cache[o[e].rowHeights.cache.length - 1] === i ? o[e].rowHeights.cache[o[e].rowHeights.cache.length - 2] : o[e].rowHeights.cache[o[e].rowHeights.cache.length - 1], c = o[e].rowHeights.tz) : d = [], { cur: i, last: a, cache: d, tz: c } }, getGridOffset: function (e, t, i, a) { var r = "grid" === i ? o[e].canv.width : "carousel" !== o[e].sliderType || a ? o[e].canv.width : o[e].carousel.slide_width, s = o[e].useFullScreenHeight ? o[e].module.height : "grid" === i ? o[e].content.height : "carousel" !== o[e].sliderType || a ? o[e].module.height : o[e].canv.height, n = "slide" === i || "carousel" == o[e].sliderType && "v" == o[e].carousel.orientation ? 0 : Math.max(0, "fullscreen" == o[e].sliderLayout ? o[e].module.height / 2 - o.iHE(e) * (o[e].keepBPHeight ? 1 : o[e].CM.h) / 2 : o[e].autoHeight || null != o[e].minHeight && o[e].minHeight > 0 || o[e].keepBPHeight ? o[e].canv.height / 2 - o.iHE(e) * o[e].CM.h / 2 : 0), l = "slide" === i ? 0 : Math.max(0, "carousel" === o[e].sliderType && "v" !== o[e].carousel.orientation ? 0 : o[e].canv.width / 2 - o.iWA(e, t) * o[e].CM.w / 2); return "slide" !== i && "carousel" === o[e].sliderType && a && void 0 !== o[e].carousel && void 0 !== o[e].carousel.horizontal_align && (l = Math.max(0, "center" === o[e].carousel.horizontal_align ? 0 + (o[e].module.width - o.iWA(e, "static") * o[e].CM.w) / 2 : "right" === o[e].carousel.horizontal_align ? o[e].module.width - o[e].gridwidth[o[e].level] * o[e].CM.w : l)), [r, s, l, n] }, initLayer: function (e) { var t, i, a, r = e.id, s = e.skey; for (var n in o[r].layers[e.skey]) if (o[r].layers[e.skey].hasOwnProperty(n)) { var l = o[r].layers[e.skey][n], d = jQuery(l), c = o.gA(l, "initialised"), p = c ? o[r]._L[l.id] : d.data(); if ("individual" === e.skey && (p.slideKey = void 0 === p.slideKey ? o.gA(d.closest("rs-slide")[0], "key") : p.slideKey, p.slideIndex = void 0 === p.slideIndex ? o.getSlideIndex(r, p.slideKey) : p.slideIndex, e.slideIndex = p.slideIndex, s = p.slideKey), void 0 === c) { if (o.revCheckIDS(r, l), o[r]._L[l.id] = p, p.ford = void 0 === p.ford ? "frame_0;frame_1;frame_999" : p.ford, p.ford = ";" == p.ford[p.ford.length - 1] ? p.ford.substring(0, p.ford.length - 1) : p.ford, p.ford = p.ford.split(";"), void 0 !== p.clip) for (t in p.clipPath = { use: !1, origin: "l", type: "rectangle" }, p.clip = p.clip.split(";"), p.clip) p.clip.hasOwnProperty(t) && ("u" == (i = p.clip[t].split(":"))[0] && (p.clipPath.use = "true" == i[1]), "o" == i[0] && (p.clipPath.origin = i[1]), "t" == i[0] && (p.clipPath.type = i[1])); let n; if (p.frames = k(p, r), p.caches = {}, p.OBJUPD = {}, p.c = d, p.p = o[r]._Lshortcuts[l.id].p, p.lp = p.reqWrp.loop ? o[r]._Lshortcuts[l.id].lp : void 0, p.m = p.reqWrp.mask ? o[r]._Lshortcuts[l.id].m : void 0, p.triggercache = void 0 === p.triggercache ? "reset" : p.triggercache, p.rsp_bd = void 0 === p.rsp_bd ? "column" === p.type || "row" === p.type ? "off" : "on" : p.rsp_bd, p.rsp_o = void 0 === p.rsp_o ? "on" : p.rsp_o, p.basealign = void 0 === p.basealign ? "grid" : p.basealign, p.group = "group" !== p.type && null !== (n = o.closestNode(d[0], "RS-GROUP")) || "group" === p.type && null !== (n = o.closestNode(d[0].parentNode, "RS-GROUP")) ? "group" : "column" !== p.type && null !== (n = o.closestNode(d[0], "RS-COLUMN")) ? "column" : "row" !== p.type && null !== (n = o.closestNode(d[0], "RS-ROW")) ? "row" : void 0, p._lig = null != n ? jQuery(n) : void 0, p._ligid = void 0 !== p._lig ? p._lig[0].id : void 0, p._column = "RS-COLUMN" === d[0].tagName ? jQuery(o.closestNode(d[0], "RS-COLUMN-WRAP")) : "none", p._row = "RS-COLUMN" === d[0].tagName && jQuery(o.closestNode(d[0], "RS-ROW")), p._ingroup = "group" === p.group, p._incolumn = "column" === p.group, p._inrow = "row" === p.group, p.fsom = "true" == p.fsom || 1 == p.fsom, p.fullinset = "" + p.fullinset == "true", p.position = void 0 !== p.pos ? "r" == p.pos ? "relative" : "absolute" : p._incolumn ? "relative" : "absolute", (p._ingroup || p._incolumn) && p._lig[0].className.indexOf("rs-sba") >= 0 && (!1 !== p.animationonscroll || void 0 === p.frames.loop) && !0 !== p.animOnScrollForceDisable && (p.animationonscroll = !0, d[0].className += " rs-sba", o[r].sbas[s][l.id] = d[0]), p.animOnScrollRepeats = 0, p._isgroup = "RS-GROUP" === d[0].tagName, p.type = p.type || "none", "row" === p.type && (void 0 === p.cbreak && (p.cbreak = 2), void 0 === p.zone && (p.zone = o.closestNode(d[0], "RS-ZONE"), p.zone = null !== p.zone && void 0 !== p.zone ? p.zone.className : "")), p.esginside = jQuery(d[0].getElementsByClassName("esg-grid")[0]), p._isnotext = -1 !== jQuery.inArray(p.type, ["video", "image", "audio", "shape", "row", "group"]), p._mediatag = "html5" == p.audio ? "audio" : "video", p.img = d.find("img"), p.deepiframe = o.getByTag(d[0], "iframe"), p.deepmedia = o.getByTag(d[0], p._mediatag), p.layertype = "image" === p.type ? "image" : d[0].className.indexOf("rs-layer-video") >= 0 || d[0].className.indexOf("rs-layer-audio") >= 0 || p.deepiframe.length > 0 && (p.deepiframe[0].src.toLowerCase().indexOf("youtube") > 0 || p.deepiframe[0].src.toLowerCase().indexOf("vimeo") > 0) || p.deepmedia.length > 0 ? "video" : "html", p.deepiframe.length > 0 && o.sA(p.deepiframe[0], "layertype", p.layertype), "column" === p.type && p.cbgexists && (p.cbg = jQuery(o.getByTag(p.p[0], "RS-COLUMN-BG")[0]), p.cbgmask = jQuery(o.getByTag(p.p[0], "RS-CBG-MASK-WRAP")[0])), p._slidelink = d[0].className.indexOf("slidelink") >= 0, p._isstatic = d[0].className.indexOf("rs-layer-static") >= 0, p.slidekey = p._isstatic ? "staticlayers" : s, p._togglelisteners = d[0].getElementsByClassName("rs-toggled-content").length > 0, "text" === p.type && (-1 !== p.c[0].innerHTML.indexOf("{{total_slide_count}}") && (p.c[0].innerHTML = p.c[0].innerHTML.replace("{{total_slide_count}}", o[r].realslideamount)), p.c[0].innerHTML.indexOf("{{current_slide_index}}") >= 0)) if (p._isstatic) p.metas = p.metas || {}, p.metas.csi = {}, p.c[0].innerHTML = p.c[0].innerHTML.replace("{{current_slide_index}}", "" + o[r].realslideamount + ""), p.metas.csi.c = p.c[0].getElementsByTagName("CUSLI")[0]; else { var g = parseInt(e.slideIndex) + 1; p.c[0].innerHTML = p.c[0].innerHTML.replace("{{current_slide_index}}", (g < 10 && o[r].realslideamount > 9 ? "0" : "") + g) } if (p.bgcol = void 0 === p.bgcol ? d[0].style.background.indexOf("gradient") >= 0 ? d[0].style.background : d[0].style.backgroundColor : p.bgcol, p.bgcol = "" === p.bgcol ? "rgba(0, 0, 0, 0)" : p.bgcol, p.bgcol = 0 === p.bgcol.indexOf("rgba(0, 0, 0, 0)") && p.bgcol.length > 18 ? p.bgcol.replace("rgba(0, 0, 0, 0)", "") : p.bgcol, p.zindex = void 0 === p.zindex ? parseInt(d[0].style.zIndex) : parseInt(p.zindex), p._isgroup && (p.frames.frame_1.timeline.waitoncall && (p.childrenAtStartNotVisible = !0), p.pVisRequest = 0), p._togglelisteners && d.on("click", function () { o.swaptoggleState([this.id]) }), void 0 !== p.border) for (t in p.border = p.border.split(";"), p.bordercolor = "transparent", p.border) if (p.border.hasOwnProperty(t)) switch ((i = p.border[t].split(":"))[0]) { case"boc": p.bordercolor = i[1]; break; case"bow": p.borderwidth = o.revToResp(i[1], 4, 0); break; case"bos": p.borderstyle = o.revToResp(i[1], 4, 0); break; case"bor": p.borderradius = o.revToResp(i[1], 4, 0) } if ("svg" === p.type && (p.svg = d.find("svg"), p.svgI = f(p.svgi, r), p.svgPath = p.svg.find(p.svgI.svgAll ? "path, circle, ellipse, line, polygon, polyline, rect" : "path"), p.svgH = void 0 !== p.svgi && -1 === p.svgi.indexOf("oc:t") ? f(p.svgh, r) : {}), void 0 !== p.btrans) { var u = p.btrans; for (t in p.btrans = { rX: 0, rY: 0, rZ: 0, o: 1 }, u = u.split(";")) if (u.hasOwnProperty(t)) switch ((i = u[t].split(":"))[0]) { case"rX": p.btrans.rX = i[1]; break; case"rY": p.btrans.rY = i[1]; break; case"rZ": p.btrans.rZ = i[1]; break; case"o": p.btrans.o = i[1]; break; case"iosfx": p.iOSFix = "default" == i[1] ? "d" : "r" == i[1] ? "rotationX" : "p" == i[1] ? "d" : i[1] } } if (void 0 !== p.tsh) for (t in p.tshadow = { c: "rgba(0,0,0,0.25)", v: 0, h: 0, b: 0 }, p.tsh = p.tsh.split(";"), p.tsh) if (p.tsh.hasOwnProperty(t)) switch ((i = p.tsh[t].split(":"))[0]) { case"c": p.tshadow.c = i[1]; break; case"h": p.tshadow.h = i[1]; break; case"v": p.tshadow.v = i[1]; break; case"b": p.tshadow.b = i[1] } if (void 0 !== p.tst) for (t in p.tstroke = { c: "rgba(0,0,0,0.25)", w: 1 }, p.tst = p.tst.split(";"), p.tst) if (p.tst.hasOwnProperty(t)) switch ((i = p.tst[t].split(":"))[0]) { case"c": p.tstroke.c = i[1]; break; case"w": p.tstroke.w = i[1] } if (void 0 !== p.bsh) for (t in p.bshadow = { e: "c", c: "rgba(0,0,0,0.25)", v: 0, h: 0, b: 0, s: 0 }, p.bsh = p.bsh.split(";"), p.bsh) if (p.bsh.hasOwnProperty(t)) switch ((i = p.bsh[t].split(":"))[0]) { case"c": p.bshadow.c = i[1]; break; case"h": p.bshadow.h = i[1]; break; case"v": p.bshadow.v = i[1]; break; case"b": p.bshadow.b = i[1]; break; case"s": p.bshadow.s = i[1]; break; case"e": p.bshadow.e = i[1] } if (void 0 !== p.dim) for (t in p.dim = p.dim.split(";"), p.dim) if (p.dim.hasOwnProperty(t)) switch ((i = p.dim[t].split(":"))[0]) { case"w": p.width = i[1]; break; case"h": p.height = i[1]; break; case"maxw": p.maxwidth = i[1]; break; case"maxh": p.maxheight = i[1]; break; case"minw": p.minwidth = i[1]; break; case"minh": p.minheight = i[1] } if (void 0 !== p.xy && "row" !== p.type && "column" !== p.type) for (t in p.xy = p.xy.split(";"), p.xy) if (p.xy.hasOwnProperty(t)) switch ((i = p.xy[t].split(":"))[0]) { case"x": p.x = i[1].replace("px", ""); break; case"y": p.y = i[1].replace("px", ""); break; case"xo": p.hoffset = i[1].replace("px", ""); break; case"yo": p.voffset = i[1].replace("px", "") } if (p._isnotext || void 0 === p.text) if (p._isgroup && void 0 !== p.text) { for (t in p.text = p.text.split(";"), p.text) if (p.text.hasOwnProperty(t)) switch ((i = p.text[t].split(":"))[0]) { case"a": p.textalign = i[1] } } else "column" === p.type && void 0 !== p.textDecoration && delete p.textDecoration; else for (t in p.text = p.text.split(";"), p.text) if (p.text.hasOwnProperty(t)) switch ((i = p.text[t].split(":"))[0]) { case"w": p.whitespace = i[1]; break; case"td": p.textDecoration = i[1]; break; case"c": p.clear = i[1]; break; case"f": p.float = i[1]; break; case"s": p.fontsize = i[1]; break; case"l": p.lineheight = i[1]; break; case"ls": p.letterspacing = i[1]; break; case"fw": p.fontweight = i[1]; break; case"a": p.textalign = i[1] } if (void 0 !== p.flcr) for (t in p.flcr = p.flcr.split(";"), p.flcr) if (p.flcr.hasOwnProperty(t)) switch ((i = p.flcr[t].split(":"))[0]) { case"c": p.clear = i[1]; break; case"f": p.float = i[1] } if (void 0 !== p.padding) for (t in p.padding = p.padding.split(";"), p.padding) if (p.padding.hasOwnProperty(t)) switch ((i = p.padding[t].split(":"))[0]) { case"t": p.paddingtop = i[1]; break; case"b": p.paddingbottom = i[1]; break; case"l": p.paddingleft = i[1]; break; case"r": p.paddingright = i[1] } if (void 0 !== p.margin) for (t in p.margin = p.margin.split(";"), p.margin) if (p.margin.hasOwnProperty(t)) switch ((i = p.margin[t].split(":"))[0]) { case"t": p.margintop = i[1]; break; case"b": p.marginbottom = i[1]; break; case"l": p.marginleft = i[1]; break; case"r": p.marginright = i[1] } if (void 0 !== p.spike && (p.spike = G(p.spike)), void 0 !== p.corners) for (t in a = p.corners.split(";"), p.corners = {}, a) a.hasOwnProperty(t) && a[t].length > 0 && (p.corners[a[t]] = jQuery("<" + a[t] + ">"), p.c.append(p.corners[a[t]])); p.textalign = y(p.textalign), p.vbility = o.revToResp(p.vbility, o[r].rle, !0), p.hoffset = o.revToResp(p.hoffset, o[r].rle, 0), p.voffset = o.revToResp(p.voffset, o[r].rle, 0), p.x = o.revToResp(p.x, o[r].rle, "l"), p.y = o.revToResp(p.y, o[r].rle, "t"), C(d, 0, r), o.sA(l, "initialised", !0), o[r].c.trigger("layerinitialised", { layer: d[0].id, slider: r }) } var h = p.x[o[r].level], m = p.y[o[r].level], v = o.getGridOffset(r, e.slideIndex, p.basealign, p._isstatic), w = v[0], b = v[1], _ = v[2], S = v[3]; if (p.slideIndex = e.slideIndex, "updateposition" !== e.mode) { if (0 == p.vbility[o[r].levelForced] || "f" == p.vbility[o[r].levelForced] || w < o[r].hideLayerAtLimit && "on" == p.layeronlimit || w < o[r].hideAllLayerAtLimit ? (!0 !== p.layerIsHidden && p.p[0].classList.add("rs-layer-hidden"), p.layerIsHidden = !0) : (p.layerIsHidden && p.p[0].classList.remove("rs-layer-hidden"), p.layerIsHidden = !1), p.poster = null == p.poster && void 0 !== p.thumbimage ? p.thumbimage : p.poster, "image" === p.layertype) if (p.imgOBJ = {}, "cover-proportional" === p.img.data("c")) { o.sA(p.img[0], "owidth", o.gA(p.img[0], "owidth", p.img[0].width)), o.sA(p.img[0], "oheight", o.gA(p.img[0], "oheight", p.img[0].height)); var x = o.gA(p.img[0], "owidth") / o.gA(p.img[0], "oheight"), L = p.img[0].width <= p.img[0].height ? b / w : w / b; p.imgOBJ = x > L && x <= 1 || x < L && x > 1 ? { width: "100%", height: "auto", left: "c" === h || "center" === h ? "50%" : "left" === h || "l" === h ? "0" : "auto", right: "r" === h || "right" === h ? "0" : "auto", top: "c" === m || "center" === m || "middle" === m || "m" === m ? "50%" : "top" === m || "t" === m ? "0" : "auto", bottom: "b" === m || "bottom" === m ? "0" : "auto", x: "c" === h || "center" === h || "middle" === h || "m" === h ? "-50%" : "0", y: "c" === m || "center" === m || "middle" === m || "m" === m ? "-50%" : "0" } : { height: "100%", width: "auto", left: "c" === h || "center" === h ? "50%" : "left" === h || "l" === h ? "0" : "auto", right: "r" === h || "right" === h ? "0" : "auto", top: "c" === m || "center" === m || "middle" === m || "m" === m ? "50%" : "top" === m || "t" === m ? "0" : "auto", bottom: "b" === m || "bottom" === m ? "0" : "auto", x: "c" === h || "center" === h || "middle" === h || "m" === h ? "-50%" : "0", y: "c" === m || "center" === m || "middle" === m || "m" === m ? "-50%" : "0" } } else void 0 === p.group && "auto" === p.width[o[r].level] && "auto" === p.height[o[r].level] && (p.width[o[r].level] = o.gA(p.img[0], "owidth", p.img[0].width), p.height[o[r].level] = o.gA(p.img[0], "owidth", p.img[0].height)), p.imgOBJ = { width: "auto" !== p.width[o[r].level] || isNaN(p.width[o[r].level]) && p.width[o[r].level].indexOf("%") >= 0 ? "100%" : "auto", height: "auto" !== p.height[o[r].level] || isNaN(p.height[o[r].level]) && p.height[o[r].level].indexOf("%") >= 0 ? "100%" : "auto" }; else if ("video" === p.layertype) { o.manageVideoLayer(d, r, s), "rebuild" !== e.mode && o.resetVideo(d, r, e.mode), null != p.aspectratio && p.aspectratio.split(":").length > 1 && 1 == p.bgvideo && o.prepareCoveredVideo(r, d), p.media = void 0 === p.media ? p.deepiframe.length > 0 ? jQuery(p.deepiframe[0]) : jQuery(p.deepmedia[0]) : p.media, p.html5vid = void 0 === p.html5vid ? !(p.deepiframe.length > 0) : p.html5vid, p.mediaOBJ = {display: "block"}; var O = p.width[o[r].level], R = p.height[o[r].level]; if (O = "auto" === O ? O : !o.isNumeric(O) && O.indexOf("%") > 0 ? p._incolumn || p._ingroup ? "100%" : "grid" === p.basealign ? o.iWA(r, e.slideIndex) * o[r].CM.w : w : "off" !== p.rsp_bd ? parseFloat(O) * o[r].CM.w + "px" : parseFloat(O) + "px", R = "auto" === R ? R : !o.isNumeric(R) && R.indexOf("%") > 0 ? "grid" === p.basealign ? o.iHE(r) * o[r].CM.w : b : "off" !== p.rsp_bd ? parseFloat(R) * o[r].CM.h + "px" : parseFloat(R) + "px", p.vd = void 0 === p.vd ? o[r].videos[d[0].id].ratio.split(":").length > 1 ? o[r].videos[d[0].id].ratio.split(":")[0] / o[r].videos[d[0].id].ratio.split(":")[1] : 1 : p.vd, !p._incolumn || "100%" !== O && "auto" !== R || void 0 === p.ytid) -1 == d[0].className.indexOf("rs-fsv") ? (R = "auto" === R && void 0 !== p.vd && "auto" !== O ? "100%" === O ? d.width() / p.vd : O / p.vd : R, p.vidOBJ = { width: O, height: R }) : ("grid" !== p.basealign && (_ = 0, S = 0), p.x = o.revToResp(0, o[r].rle, 0), p.y = o.revToResp(0, o[r].rle, 0), p.vidOBJ = { width: O, height: o[r].autoHeight ? o[r].canv.height : R }), 0 != p.html5vid && d.hasClass("rs-fsv") || (p.mediaOBJ = { width: O, height: R, display: "block" }), p._ingroup && null !== p.vidOBJ.width && void 0 !== p.vidOBJ.width && !o.isNumeric(p.vidOBJ.width) && p.vidOBJ.width.indexOf("%") > 0 && (p.OBJUPD.lppmOBJ = {minWidth: O}); else { var I = d.width(), M = "auto" === R ? I / p.vd : R; p.vidOBJ = {width: "auto", height: M}, p.heightSetByVideo = !0 } } p._slidelink || o[r].caches.calcResponsiveLayersList.push({ a: d, b: r, c: 0, d: p.rsp_bd, e: e.slideIndex }), "on" === p.rsp_ch && "row" !== p.type && "column" !== p.type && "group" !== p.type && "image" !== p.type && "video" !== p.type && "shape" !== p.type && d.find("*").each(function () { var t = jQuery(this); "true" !== o.gA(this, "stylerecorder") && !0 !== o.gA(this, "stylerecorder") && C(t, "rekursive", r), o[r].caches.calcResponsiveLayersList.push({ a: t, b: r, c: "rekursive", d: p.rsp_bd, e: e.slideIndex, RSL: d }) }) } if ("preset" !== e.mode) { if (p.oldeow = p.eow, p.oldeoh = p.eoh, p.eow = d.outerWidth(!0), p.eoh = d.outerHeight(!0), 0 == p.eoh && "group" == p.type && "auto" == p.height[o[r].level] && (p.eoh = p.p[0].offsetHeight), void 0 !== p.metas && void 0 !== p.metas.csi && p.metas.csi.change !== o[r].focusedSlideIndex) { p.metas.csi.change = o[r].focusedSlideIndex; g = parseInt(p.metas.csi.change) + 1; p.metas.csi.c.innerHTML = (o[r].realslideamount > 9 && g < 10 ? "0" : "") + g } if (p.imgInFirefox = "image" == p.type && "auto" == p.width[o[r].level] && "100%" == p.height[o[r].level] && o.isFirefox(r), p.imgInFirefox) { var T = p.img.width(); p.eow = 0 !== T ? T : p.eow } if (p.eow <= 0 && void 0 !== p.lastknownwidth && (p.eow = p.lastknownwidth), p.eoh <= 0 && void 0 !== p.lastknownheight && (p.eoh = p.lastknownheight), void 0 !== p.corners && ("text" === p.type || "button" === p.type || "shape" === p.type)) { for (a in p.corners) if (p.corners.hasOwnProperty(a)) { p.corners[a].css("borderWidth", p.eoh + "px"); var A = "rs-fcrt" === a || "rs-fcr" === a; p.corners[a].css("border" + (A ? "Right" : "Left"), "0px solid transparent"), p.corners[a].css("border" + ("rs-fcrt" == a || "rs-bcr" == a ? "Bottom" : "Top") + "Color", p.bgcol) } p.eow = d.outerWidth(!0) } 0 == p.eow && 0 == p.eoh && (p.eow = "grid" === p.basealign ? o[r].content.width : o[r].module.width, p.eoh = "grid" === p.basealign ? o[r].content.height : o[r].module.height), p.basealign = o[r].justifyCarousel ? "grid" : p.basealign; var D = "on" === p.rsp_o ? parseInt(p.voffset[o[r].level], 0) * o[r].CM.w : parseInt(p.voffset[o[r].level], 0), P = "on" === p.rsp_o ? parseInt(p.hoffset[o[r].level], 0) * o[r].CM.h : parseInt(p.hoffset[o[r].level], 0), B = "grid" === p.basealign ? o.iWA(r, e.slideIndex) * o[r].CM.w : w, F = "grid" === p.basealign || "carousel" == o[r].sliderType && "v" === o[r].carousel.orientation ? o.iHE(r) * (o[r].keepBPHeight || o[r].currentRowsHeight > o[r].gridheight[o[r].level] ? 1 : o[r].CM.h) : b; (1 == o[r].gridEQModule || void 0 !== p._lig && "row" !== p.type && "column" !== p.type && ("group" !== p.type || p._ingroup || p._incolumn)) && (B = void 0 !== p._lig ? p._lig.width() : o[r].module.width, F = void 0 !== p._lig ? p._lig.height() : o[r].module.height, _ = 0, S = 0), o[r].keepBPHeight && F == o[r].module.height && (S = 0), "video" === p.type && null != p.vidOBJ && (p.vidOBJ.height >= 0 && 0 === p.eoh && (p.eoh = p.vidOBJ.height), p.vidOBJ.width >= 0 && 0 === p.eow && (p.eow = p.vidOBJ.width)), h = "relative" == p.position ? 0 : "c" === h || "m" === h || "center" === h || "middle" === h ? B / 2 - p.eow / 2 + P : "l" === h || "left" === h ? P : "r" === h || "right" === h ? B - p.eow - P : "off" !== p.rsp_o ? h * o[r].CM.w : h, m = "relative" == p.position ? 0 : "m" === m || "c" === m || "center" === m || "middle" === m ? F / 2 - p.eoh / 2 + D : "t" === m || "top" == m ? D : "b" === m || "bottom" == m ? F - p.eoh - D : "off" !== p.rsp_o ? m * o[r].CM.w : m, h = p._slidelink ? 0 : o[r].rtl && -1 == ("" + p.width[o[r].level]).indexOf("%") ? parseInt(h) + p.eow : h, p.calcx = "relative" != p.position || "group" !== p.type && !p._incolumn ? parseInt(h, 0) + _ : 0, p.calcy = "relative" != p.position || "group" !== p.type && !p._incolumn ? parseInt(m, 0) + S : 0, "row" !== p.type && "column" !== p.type ? p.OBJUPD.POBJ = { zIndex: p.zindex, top: p.calcy, left: p.calcx, overwrite: "auto" } : "row" !== p.type ? p.OBJUPD.POBJ = { zIndex: p.zindex, width: p.columnwidth, top: 0, left: 0, overwrite: "auto" } : "row" === p.type && (p.OBJUPD.POBJ = { zIndex: p.zindex, width: "grid" === p.basealign ? B + "px" : "100%", top: 0, left: o[r].rtl ? -1 * _ : _, overwrite: "auto" }, p.cbreak <= o[r].level ? -1 === d[0].className.indexOf("rev_break_columns") && d[0].classList.add("rev_break_columns") : d[0].className.indexOf("rev_break_columns") > 0 && d[0].classList.remove("rev_break_columns"), p.rowcalcx = p.OBJUPD.POBJ.left, p.pow = p.p.outerWidth(!0)), void 0 !== p.blendmode && (p.OBJUPD.POBJ.mixBlendMode = "color" === p.blendmode && window.isSafari11 ? "color-burn" : p.blendmode), (void 0 !== p.frames.loop || p.imgInFirefox) && (p.OBJUPD.LPOBJ = { width: p.eow, height: p.eoh }), p._ingroup && (void 0 !== p._groupw && !o.isNumeric(p._groupw) && p._groupw.indexOf("%") > 0 && (p.OBJUPD.lppmOBJ.minWidth = p._groupw), void 0 !== p._grouph && !o.isNumeric(p._grouph) && p._grouph.indexOf("%") > 0 && (p.OBJUPD.lppmOBJ.minHeight = p._grouph)), "updateposition" === e.mode && (p.caches.POBJ_LEFT === p.OBJUPD.POBJ.left && p.caches.POBJ_TOP === p.OBJUPD.POBJ.top || (tpGS.gsap.set(p.p, p.OBJUPD.POBJ), p.caches.POBJ_LEFT = p.OBJUPD.POBJ.left, p.caches.POBJ_TOP = p.OBJUPD.POBJ.top)), e.animcompleted && o.animcompleted(d, r) } } }, hoverReverseDone: function (e) { o[e.id]._L[e.L[0].id].textDecoration && tpGS.gsap.set(o[e.id]._L[e.L[0].id].c, {textDecoration: o[e.id]._L[e.L[0].id].textDecoration}) }, animcompleted: function (e, t, i) { if (void 0 !== o[t].videos) { var a = o[t].videos[e[0].id]; null != a && null != a.type && "none" != a.type && (1 == a.aplay || "true" == a.aplay || "on" == a.aplay || "1sttime" == a.aplay ? (("static" === a.slideid || "carousel" !== o[t].sliderType || e.closest("rs-slide").index() == o[t].carousel.focused || e.closest("rs-slide").index() == o[t].activeRSSlide && o[t].carousel.oldfocused == o[t].carousel.focused || i) && o.playVideo(e, t), o.toggleState(e.data("videotoggledby")), (a.aplay1 || "1sttime" == a.aplay) && (a.aplay1 = !1, a.aplay = !1)) : ("no1sttime" == a.aplay && (a.aplay = !0), o.unToggleState(e.data("videotoggledby")))) } }, convertHoverTransform: function (e, t, i) { var a, r = o.clone(e.transform); if ((r.originX || r.originY || r.originZ) && (r.transformOrigin = (void 0 === r.originX ? "50%" : r.originX) + " " + (void 0 === r.originY ? "50%" : r.originY) + " " + (void 0 === r.originZ ? "50%" : r.originZ), delete r.originX, delete r.originY, delete r.originZ), void 0 !== e && void 0 !== e.filter && (r.filter = u(e.filter), r["-webkit-filter"] = r.filter), r.color = void 0 === r.color ? "rgba(255,255,255,1)" : r.color, r.force3D = "auto", void 0 !== r.borderRadius && ((a = r.borderRadius.split(" ")).length, r.borderTopLeftRadius = a[0], r.borderTopRightRadius = a[1], r.borderBottomRightRadius = a[2], r.borderBottomLeftRadius = a[3], delete r.borderRadius), void 0 !== r.borderWidth && ((a = r.borderWidth.split(" ")).length, r.borderTopWidth = a[0], r.borderRightWidth = a[1], r.borderBottomWidth = a[2], r.borderLeftWidth = a[3], delete r.borderWidth), void 0 === i.bg || -1 === i.bg.indexOf("url")) { var s = -1 !== i.bgCol.search("gradient"), n = r.backgroundImage && "string" == typeof r.backgroundImage && -1 !== r.backgroundImage.search("gradient"); n && s ? (180 !== v(i.bgCol) && 180 == v(r.backgroundImage) && (r.backgroundImage = m(r.backgroundImage, 180)), r.backgroundImage = tpGS.getSSGColors(i.bgCol, r.backgroundImage, void 0 === r.gs ? "fading" : r.gs).to) : n && !s ? r.backgroundImage = tpGS.getSSGColors(i.bgCol, r.backgroundImage, void 0 === r.gs ? "fading" : r.gs).to : !n && s && (r.backgroundImage = tpGS.getSSGColors(i.bgCol, r.backgroundColor, void 0 === r.gs ? "fading" : r.gs).to) } return delete r.gs, r }, handleStaticLayers: function (e, t) { var i = 0, a = o[t].realslideamount + 1; if (void 0 !== o.gA(e[0], "onslides")) { var r = o.gA(e[0], "onslides").split(";"); for (var s in r) if (r.hasOwnProperty(s)) { var n = r[s].split(":"); "s" === n[0] && (i = parseInt(n[1], 0)), "e" === n[0] && (a = parseInt(n[1], 0)) } } i = Math.max(0, i), a = Math.min(o[t].realslideamount, a < 0 ? o[t].realslideamount : a), a = 1 !== i && 0 !== i || a !== o[t].realslideamount ? a : o[t].realslideamount + 1, e.data("startslide", i), e.data("endslide", a), o.sA(e[0], "startslide", i), o.sA(e[0], "endslide", a) }, updateLayersOnFullStage: function (e) { if (o[e].caches.calcResponsiveLayersList.length > 0) { !0 !== o[e].slideHasIframe && !0 !== o[e].fullScreenMode && !0 !== o[e].skipAttachDetach && ("carousel" === o[e].sliderType ? o[e].carousel.wrap.detach() : o[e].canvas.detach()); for (var t = 0; t < o[e].caches.calcResponsiveLayersList.length; t++) void 0 !== o[e].caches.calcResponsiveLayersList[t] && B(o[e].caches.calcResponsiveLayersList[t]); !0 !== o[e].slideHasIframe && !0 !== o[e].fullScreenMode && !0 !== o[e].skipAttachDetach && ("carousel" === o[e].sliderType ? o[e].c[0].appendChild(o[e].carousel.wrap[0]) : o[e].c[0].appendChild(o[e].canvas[0])) } }, animateTheLayers: function (e) { if (void 0 === e.slide) return !1; var t = e.id; if (void 0 === o[t].slides[e.slide] && "individual" !== e.slide) return !1; if ("carousel" === o[t].sliderType) { if ("start" === e.mode && "start" === o[t].lastATLmode) { if (e.slide === o[t].lastATLslide && (new Date).getTime() - o[t].lastATLtime < 1500) return; o[t].lastATLtime = (new Date).getTime() } o[t].lastATLmode = e.mode, o[t].lastATLslide = e.slide } var i = "individual" !== e.slide ? o.gA(o[t].slides[e.slide], "key") : "individual", a = void 0 !== o[t].pr_processing_key ? o[t].pr_processing_key : void 0 !== o[t].pr_active_key ? o[t].pr_active_key : 0; o[t].focusedSlideIndex = a, o[t].caches.calcResponsiveLayersList = [], o[t].layers = o[t].layers || {}, "individual" === i ? o[t].layers.individual = void 0 === o[t].layers.individual ? "all" === o[t].carousel.showLayersAllTime ? M(jQuery(o[t].c), "rs-layer", "rs-layer-static") : M(jQuery(o[t].c), "rs-on-car") : o[t].layers.individual : (o[t].layers[i] = void 0 === o[t].layers[i] ? "all" === o[t].carousel.showLayersAllTime ? [] : M(jQuery(o[t].slides[e.slide]), "rs-layer", "carousel" === o[t].sliderType ? "rs-on-car" : void 0) : o[t].layers[i], o[t].layers.static = void 0 === o[t].layers.static ? M(jQuery(o[t].c.find("rs-static-layers")), "rs-layer", "rs-on-car") : o[t].layers.static, o[t].sbas[i] = void 0 === o[t].sbas[i] ? M(jQuery(o[t].slides[e.slide]), "rs-sba") : o[t].sbas[i]); var r = "rebuild" === e.mode && "carousel" === o[t].sliderType && "individual" === i; void 0 !== i && o[t].layers[i] && o.initLayer({ id: t, slideIndex: e.slide, skey: i, mode: e.mode, animcompleted: r }), o[t].layers.static && o.initLayer({ id: t, skey: "static", slideIndex: "static", mode: e.mode, animcompleted: r }), o.updateLayersOnFullStage(t), "preset" !== e.mode || void 0 !== o[t].slidePresets && void 0 !== o[t].slidePresets[e.slide] || (o[t].slidePresets = void 0 === o[t].slidePresets ? {} : o[t].slidePresets, o[t].slidePresets[e.slide] = !0, o[t].c.trigger("revolution.slideprepared", { slide: e.slide, key: i })), o[t].heightInLayers = o[t].module.height, o[t].widthInLayers = o[t].module.width, o[t].levelInLayers = o[t].level; var s = {id: t, skey: i, slide: e.slide, key: i, mode: e.mode, index: a}; window.requestAnimationFrame(function () { if (void 0 === o[t].dimensionReCheck[i] ? (o.updateLayerDimensions(s), !0 !== o[t].doubleDimensionCheck ? setTimeout(function () { o.updateLayerDimensions(s), o.updateRowZones(s) }, 150) : o.updateRowZones(s), o[t].doubleDimensionCheck = !0, o[t].dimensionReCheck[i] = !0) : o.updateRowZones(s), void 0 !== i && o[t].layers[i]) for (var a in o[t].layers[i]) o[t].layers[i].hasOwnProperty(a) && o.renderLayerAnimation({ layer: jQuery(o[t].layers[i][a]), id: t, mode: e.mode, caller: e.caller }); if (o[t].layers.static) for (var a in o[t].layers.static) o[t].layers.static.hasOwnProperty(a) && o.renderLayerAnimation({ layer: jQuery(o[t].layers.static[a]), id: t, mode: e.mode, caller: e.caller }); null != o[t].mtl && o[t].mtl.resume() }) }, updateRowZones: function (e) { (void 0 !== o[e.id].rowzones && o[e.id].rowzones.length > 0 && e.index >= 0 && o[e.id].rowzones[Math.min(e.index, o[e.id].rowzones.length)] && o[e.id].rowzones[Math.min(e.index, o[e.id].rowzones.length)].length > 0 || void 0 !== o[e.id].srowzones && o[e.id].srowzones.length > 0 || void 0 !== o[e.id].smiddleZones && o[e.id].smiddleZones.length > 0) && (o.updateDims(e.id), o.initLayer({ id: e.id, skey: e.key, slideIndex: e.slide, mode: "updateposition" }), o.initLayer({ id: e.id, skey: "static", slideIndex: "static", mode: "updateposition" }), "start" !== e.mode && "preset" !== e.mode || o.manageNavigation(e.id), window.requestAnimationFrame(function () { o.putRowsInPosition(e.id) })) }, updateLayerDimensions: function (e) { var t = !1; o[e.id].caches.calcResponsiveLayersList = [], void 0 === e.key || "individual" != e.key && void 0 === o[e.id].layers[e.key] || !o.checkLayerDimensions({ id: e.id, skey: e.key, slideIndex: e.slide }) || (t = !0), o.initLayer({ id: e.id, skey: e.key, slideIndex: e.slide, mode: "updateAndResize" }), o[e.id].layers.static && o.checkLayerDimensions({ id: e.id, skey: "static", slideIndex: "static" }) && (t = !0, o.initLayer({ id: e.id, skey: "static", slideIndex: "static", mode: "updateAndResize" })), t && o.updateLayersOnFullStage(e.id) }, updateAnimatingLayerPositions: function (e) { o.initLayer({id: e.id, skey: e.key, slideIndex: e.slide, mode: "updateposition"}) }, removeTheLayers: function (e, t, i) { var a = o.gA(e[0], "key"); for (var r in o[t].sloops && o[t].sloops[a] && o[t].sloops[a].tl && o[t].sloops[a].tl.pause(), o[t].layers[a]) o[t].layers[a].hasOwnProperty(r) && o.renderLayerAnimation({ layer: jQuery(o[t].layers[a][r]), frame: "frame_999", mode: "continue", remove: !0, id: t, allforce: i }); for (var r in o[t].layers.static) o[t].layers.static.hasOwnProperty(r) && o.renderLayerAnimation({ layer: jQuery(o[t].layers.static[r]), frame: "frame_999", mode: "continue", remove: !0, id: t, allforce: i }) }, renderLayerAnimation: function (e) { var i, a = e.layer, r = e.id, u = o[r].level, h = o[r]._L[a[0].id], m = void 0 !== h.timeline ? h.timeline.time() : void 0, v = !1, f = !1, y = "none", _ = !1; if (("containerResized_2" !== e.caller && "swapSlideProgress_2" !== e.caller || !0 === h.animationRendered) && (h.animationRendered = !0, "preset" !== e.mode || !0 === h.frames.frame_1.timeline.waitoncall || void 0 !== h.scrollBasedOffset)) { if ("trigger" == e.mode && (h.triggeredFrame = e.frame), h._isstatic) { var x = "carousel" === o[r].sliderType && void 0 !== o[r].carousel.oldfocused ? parseInt(o[r].carousel.oldfocused) + 1 : void 0 === o[r].focusedSlideIndex ? 0 : parseInt(o[r].focusedSlideIndex, 0) + 1, k = "carousel" === o[r].sliderType ? void 0 === o[r].pr_next_key ? 0 == x ? 1 : x : parseInt(o[r].pr_next_key, 0) + 1 : void 0 === o[r].pr_processing_key ? 0 == x ? 1 : x : parseInt(o[r].pr_processing_key, 0) + 1, L = x >= h.startslide && x <= h.endslide, O = k >= h.startslide && k <= h.endslide, R = void 0 !== h.frames.frame_999 && void 0 !== h.frames.frame_999.timeline && !0 !== h.frames.frame_999.timeline.waitoncall && x === h.endslide; if (void 0 === o[r].modal || "start" != e.mode && "continue" != e.mode || ("continue" === e.mode && "close" == o[r].modal.lastModalCall && (O = !1), "start" !== e.mode || "show" !== o[r].modal.lastModalCall && "init" !== o[r].modal.lastModalCall || o[r].modal.lastModalCall === h.lastModalCall || (h.triggeredFrame = void 0, h.triggercache = "reset", void 0 !== h.timeline && void 0 !== h.timeline.currentLabel() && -1 == h.timeline.currentLabel().indexOf("frame_999") && h.timeline.pause(0)), h.lastModalCall = o[r].modal.lastModalCall), y = !("start" !== e.mode || !R) || (x === h.endslide && "continue" === e.mode || ("continue" === e.mode || x === h.endslide) && "none"), "frame_999" === h.animatedFrame && "done" === h.animatingFrame | null == h.animatingFrame && (h.lastRequestedMainFrame = "frame_999"), void 0 !== h.timeline && void 0 !== h.timeline.currentLabel() && -1 == h.timeline.currentLabel().indexOf("frame_999") && (_ = !0), !0 === e.allforce || !0 === y) { if ("continue" === e.mode && O && R && void 0 !== h.timeline) return void (h.timeline.currentLabel().indexOf("frame_999") >= 0 ? h.timeline.pause(h.timeline.previousLabel()) : h.timeline.pause(h.timeline.currentLabel())); if ("continue" === e.mode && "frame_999" === e.frame && (O || void 0 === h.lastRequestedMainFrame)) return } else { if ("preset" === e.mode && (h.elementHovered || !O)) return; if ("rebuild" === e.mode && !L && !O) return; if ("start" === e.mode && O && "frame_1" === h.lastRequestedMainFrame) return; if (("start" === e.mode || "preset" === e.mode) && "frame_999" === h.lastRequestedMainFrame && !0 !== h.leftstage) return; if ("continue" === e.mode && "frame_999" === e.frame && (O || void 0 === h.lastRequestedMainFrame)) return; if ("start" === e.mode && !O) return; if ("rebuild" === e.mode && h.elementHovered && h._isstatic && h.hovertimeline) return } } else "start" === e.mode && "keep" !== h.triggercache && (h.triggeredFrame = void 0); for (var I in "start" === e.mode && (void 0 !== h.layerLoop && (h.layerLoop.count = 0), e.frame = void 0 === h.triggeredFrame ? _ ? void 0 : 0 : h.triggeredFrame), "continue" === e.mode || "trigger" === e.mode || void 0 === h.timeline || h._isstatic && !0 === h.leftstage || h.timeline.pause(0), "continue" !== e.mode && "trigger" !== e.mode || void 0 === h.timeline || h.timeline.pause(), h.timeline = tpGS.gsap.timeline({paused: !0}), "text" !== h.type && "button" !== h.type || void 0 !== h.splitText && (void 0 !== h.splitTextFix || "start" !== e.mode && "preset" !== e.mode) || (w({ layer: a, id: r }), "start" === e.mode && (h.splitTextFix = !0)), h.ford) if (h.ford.hasOwnProperty(I)) { var M = h.ford[I], T = !1; if ("frame_0" !== M && "frame_hover" !== M && "loop" !== M) { if ("frame_999" === M && !h.frames[M].timeline.waitoncall && h.frames[M].timeline.start >= o[r].duration && !0 !== e.remove && (h.frames[M].timeline.waitoncall = !0), "start" === e.mode && "keep" !== h.triggercache && (h.frames[M].timeline.callstate = h.frames[M].timeline.waitoncall ? "waiting" : ""), "trigger" === e.mode && h.frames[M].timeline.waitoncall && (M === e.frame ? (h.frames[M].timeline.triggered = !0, h.frames[M].timeline.callstate = "called") : h.frames[M].timeline.triggered = !1), "rebuild" === e.mode || h.frames[M].timeline.triggered || (h.frames[M].timeline.callstate = h.frames[M].timeline.waitoncall ? "waiting" : ""), !1 !== e.fastforward) { if (("continue" === e.mode || "trigger" === e.mode) && !1 === f && M !== e.frame) continue; if (("rebuild" === e.mode || "preset" === e.mode) && !1 === f && void 0 !== h.triggeredFrame && M !== h.triggeredFrame) continue; (M === e.frame || "rebuild" === e.mode && M === h.triggeredFrame) && (f = !0) } else M === e.frame && (f = !0); if (M !== e.frame && h.frames[M].timeline.waitoncall && "called" !== h.frames[M].timeline.callstate && (v = !0), M !== e.frame && f && (v = !0 === v && h.frames[M].timeline.waitoncall ? "skiprest" : !0 !== v && v), void 0 === h.hideonfirststart && "frame_1" === M && h.frames[M].timeline.waitoncall && (h.hideonfirststart = !0), v && "waiting" === h.frames[M].timeline.callstate && "preset" === e.mode && 1 != h.firstTimeRendered) { if (h._isstatic && void 0 === h.currentframe) continue; T = !0, h.firstTimeRendered = !0 } else if ("skiprest" === v || "called" !== h.frames[M].timeline.callstate && v && e.toframe !== M) continue; if ("frame_999" !== M || !1 !== y || "continue" !== e.mode && "start" !== e.mode && "rebuild" !== e.mode) { h.fff = "frame_1" === M && ("trigger" !== e.mode || "frame_999" === h.currentframe || "frame_0" === h.currentframe || void 0 === h.currentframe), "trigger" === e.mode && "frame_1" === e.frame && !1 === h.leftstage && (h.fff = !1), T || (h.frames[M].timeline.callstate = "called", h.currentframe = M); var C = h.frames[M], A = h.fff ? h.frames.frame_0 : void 0, D = tpGS.gsap.timeline(), P = tpGS.gsap.timeline(), B = h.c, G = void 0 !== C.sfx && b(C.sfx.effect, h.m, C.timeline.ease), F = C.timeline.speed / 1e3, H = 0, z = S({ id: r, frame: C, layer: a, ease: C.timeline.ease, splitAmount: B.length, target: M, forcefilter: void 0 !== h.frames.frame_hover && void 0 !== h.frames.frame_hover.filter }), W = h.fff ? S({ id: r, frame: A, layer: a, ease: C.timeline.ease, splitAmount: B.length, target: "frame_0" }) : void 0, E = void 0 !== C.mask ? S({ id: r, frame: {transform: {x: C.mask.x, y: C.mask.y}}, layer: a, ease: z.ease, target: "mask" }) : void 0, N = void 0 !== E && h.fff ? S({ id: r, frame: {transform: {x: A.mask.x, y: A.mask.y}}, layer: a, ease: z.ease, target: "frommask" }) : void 0, j = z.ease; if (z.force3D = !0, "block" === G.type) { if (G.ft[0].background = C.sfx.fxc, G.ft[0].visibility = "visible", G.ft[1].visibility = "visible", window.isSafari11) { let e = Math.max(W && W.z ? W.z : 0, z && z.z ? z.z : 0); G.ft[0].z = Math.max(0, e + 1), G.ft[1].z = Math.max(0, e + 1), G.t.z = Math.max(0, e + 1), G.ft[1].transformPerspective = G.ft[0].transformPerspective = G.t.transformPerspective = z.transformPerspective } D.add(tpGS.gsap.fromTo(G.bmask_in, F / 2, G.ft[0], G.ft[1], 0)), D.add(tpGS.gsap.fromTo(G.bmask_in, F / 2, G.ft[1], G.t, F / 2)), "frame_0" !== M && "frame_1" !== M || (W.opacity = 0) } if (void 0 !== C.color ? z.color = C.color : void 0 !== h.color && "npc" !== h.color[u] && (z.color = h.color[u]), void 0 !== A && void 0 !== A.color ? W.color = A.color : void 0 !== A && void 0 !== h.color && "npc" !== h.color[u] && (W.color = h.color[u]), void 0 !== C.bgcolor ? C.bgcolor.indexOf("gradient") >= 0 ? z.background = C.bgcolor : z.backgroundColor = C.bgcolor : !0 === h.bgcolinuse && (h.bgcol.indexOf("gradient") >= 0 ? z.background = h.bgcol : z.backgroundColor = h.bgcol), void 0 !== A && (void 0 !== A.bgcolor ? A.bgcolor.indexOf("gradient") >= 0 ? W.background = A.bgcolor : W.backgroundColor = A.bgcolor : !0 === h.bgcolinuse && (h.bgcol.indexOf("gradient") >= 0 ? W.background = h.bgcol : W.backgroundColor = h.bgcol)), void 0 !== h.splitText && !1 !== h.splitText) for (var V in t) if (void 0 !== C[t[V]] && !h.quickRendering) { var X = h.splitText[t[V]], U = S({ id: r, frame: C, source: t[V], ease: j, layer: a, splitAmount: X.length, target: M + "_" + t[V] }), Y = h.fff ? S({ id: r, frame: A, ease: U.ease, source: t[V], layer: a, splitAmount: X.length, target: "frame_0_" + t[V] }) : void 0, q = h.frames[M].dosplit ? void 0 === C[t[V]].delay ? .05 : C[t[V]].delay / 100 : 0; h.color[u] === z.color && "frame_1" === M || (U.color = z.color), void 0 !== W && h.color[u] !== W.color && (Y.color = W.color), void 0 !== Y && Y.color !== z.color && (U.color = z.color); var Q = o.clone(U), J = h.fff ? o.clone(Y) : void 0, Z = C[t[V]].dir; delete Q.dir, Q.data = {splitted: !0}, Q.stagger = "center" === Z || "edge" === Z ? d({ each: q, offset: q / 2, from: Z }) : { each: q, from: Z }, Q.duration = F, void 0 !== J && (void 0 !== J.opacity && (o.ISM || window.isSafari11) && (J.opacity = Math.max(.001, parseFloat(J.opacity))), delete J.dir), h.fff ? D.add(P.fromTo(X, J, Q), 0) : D.add(P.to(X, Q), 0), H = Math.max(H, X.length * q) } if (F += H, void 0 === i && (i = "isometric" === o[r].perspectiveType ? 0 : "local" === o[r].perspectiveType ? void 0 !== z.transformPerspective ? z.transformPerspective : h.fff && void 0 !== W.transfromPerspective ? W.transfromPerspective : o[r].perspective : o[r].perspective), h.knowTransformPerspective = i, h.fsom && (void 0 !== z.filter || h.fff && void 0 !== W.filter) ? (E.filter = z.filter, E["-webkit-filter"] = z.filter, delete z.filter, delete z["-webkit-filter"], h.fff && void 0 !== W.filter && ((N = N || {}).filter = W.filter, N["-webkit-filter"] = W.filter, delete W.filter, delete W["-webkit-filter"]), h.forceFsom = !0) : h.forceFsom = !1, h.useMaskAnimation = h.pxundermask || void 0 !== E && (void 0 !== A && "hidden" === A.mask.overflow || "hidden" === C.mask.overflow), h.useMaskAnimation || h.forceFsom) h.useMaskAnimation ? D.add(tpGS.gsap.to(h.m, .001, {overflow: "hidden"}), 0) : D.add(tpGS.gsap.to(h.m, .001, {overflow: "visible"}), 0), "column" === h.type && h.cbgexists && h.useMaskAnimation && D.add(tpGS.gsap.to(h.cbgmask, .001, {overflow: "hidden"}), 0), h.btrans && (N && (N.rotationX = h.btrans.rX, N.rotationY = h.btrans.rY, N.rotationZ = h.btrans.rZ, N.opacity = h.btrans.o), E.rotationX = h.btrans.rX, E.rotationY = h.btrans.rY, E.rotationZ = h.btrans.rZ, E.opacity = h.btrans.o), h.fff ? D.add(tpGS.gsap.fromTo(void 0 !== h.m && void 0 !== h.cbgmask ? [h.m, h.cbgmask] : void 0 !== h.m ? h.m : h.cbgmask, F, o.clone(N), o.clone(E)), .001) : D.add(tpGS.gsap.to(void 0 !== h.m && void 0 !== h.cbgmask ? [h.m, h.cbgmask] : void 0 !== h.m ? h.m : h.cbgmask, F, o.clone(E)), .001); else if (void 0 !== h.btrans) { var K = { x: 0, y: 0, filter: "none", opacity: h.btrans.o, rotationX: h.btrans.rX, rotationY: h.btrans.rY, rotationZ: h.btrans.rZ, overflow: "visible" }; 0 === h.btrans.rX && 0 == h.btrans.rY || (h.maskHasPerspective = !0, K.transformPerspective = i), D.add(tpGS.gsap.to(h.m, .001, K), 0) } else D.add(tpGS.gsap.to(h.m, .001, { clearProps: "transform", overflow: "hidden" == h.ofHidOnHov ? "hidden" : "visible" }), 0); z.force3D = "auto", h.fff ? (z.visibility = "visible", void 0 !== h.cbg && D.fromTo(h.cbg, F, W, z, 0), o[r].BUG_safari_clipPath && (W.clipPath || z.clipPath || h.spike), F = F > 0 ? F - .001 : F, void 0 !== h.cbg && "column" === h.type ? D.fromTo(B, F, s(W), s(z), 0) : D.fromTo(B, F, W, z, 0), D.invalidate()) : ("frame_999" !== h.frame && (z.visibility = "visible"), void 0 !== h.cbg && D.to(h.cbg, F, z, 0), void 0 !== h.cbg && "column" === h.type ? D.to(B, F, s(z), 0) : D.to(B, F, z, 0)), void 0 !== j && "object" != typeof j && "function" != typeof j && j.indexOf("SFXBounce") >= 0 && D.to(B, F, { scaleY: .5, scaleX: 1.3, ease: z.ease + "-squash", transformOrigin: "bottom" }, 1e-4); var $ = "trigger" !== e.mode && (!0 !== v && "skiprest" !== v || "rebuild" !== e.mode) || e.frame === M || void 0 === C.timeline.start || !o.isNumeric(C.timeline.start) ? "+=0" === C.timeline.start || void 0 === C.timeline.start ? "+=0.001" : parseInt(C.timeline.start, 0) / 1e3 : "+=" + parseInt(C.timeline.startRelative, 0) / 1e3; h.timeline.addLabel(M, $), h.timeline.add(D, $), h.timeline.addLabel(M + "_end", "+=0.01"), D.eventCallback("onStart", c, [{ id: r, frame: M, L: a, tPE: i }]), "true" == h.animationonscroll || 1 == h.animationonscroll ? (D.eventCallback("onUpdate", p, [{ id: r, frame: M, L: a }]), D.smoothChildTiming = !0) : D.eventCallback("onUpdate", p, [{ id: r, frame: M, L: a }]), D.eventCallback("onComplete", g, [{id: r, frame: M, L: a, tPE: i}]) } } } if (void 0 !== h.frames.loop) { var ee = parseInt(h.frames.loop.timeline.speed, 0) / 1e3, te = parseInt(h.frames.loop.timeline.start) / 1e3 || 0, ie = "trigger" !== e.mode && "frame_999" !== e.frame || "frame_999" !== e.frame ? .2 : 0, ae = te + ie; h.loop = { root: tpGS.gsap.timeline({}), preset: tpGS.gsap.timeline({}), move: tpGS.gsap.timeline({repeat: -1, yoyo: h.frames.loop.timeline.yoyo_move}), rotate: tpGS.gsap.timeline({repeat: -1, yoyo: h.frames.loop.timeline.yoyo_rotate}), scale: tpGS.gsap.timeline({repeat: -1, yoyo: h.frames.loop.timeline.yoyo_scale}), filter: tpGS.gsap.timeline({repeat: -1, yoyo: h.frames.loop.timeline.yoyo_filter}) }; var re = h.frames.loop.frame_0, oe = h.frames.loop.frame_999, se = "blur(" + parseInt(re.blur || 0, 0) + "px) grayscale(" + parseInt(re.grayscale || 0, 0) + "%) brightness(" + parseInt(re.brightness || 100, 0) + "%)", ne = "blur(" + (oe.blur || 0) + "px) grayscale(" + (oe.grayscale || 0) + "%) brightness(" + (oe.brightness || 100) + "%)"; if (h.loop.root.add(h.loop.preset, 0), h.loop.root.add(h.loop.move, ie), h.loop.root.add(h.loop.rotate, ie), h.loop.root.add(h.loop.scale, ie), h.loop.root.add(h.loop.filter, ie), "blur(0px) grayscale(0%) brightness(100%)" === se && "blur(0px) grayscale(0%) brightness(100%)" === ne && (se = "none", ne = "none"), oe.originX = re.originX, oe.originY = re.originY, oe.originZ = re.originZ, void 0 === i && (i = "isometric" === o[r].perspectiveType ? 0 : "local" === o[r].perspectiveType && void 0 !== z ? void 0 !== z.transformPerspective ? z.transformPerspective : h.fff && void 0 !== W.transfromPerspective ? W.transfromPerspective : o[r].perspective : o[r].perspective), h.frames.loop.timeline.curved) { var le = parseInt(h.frames.loop.timeline.radiusAngle, 0) || 0, de = [{x: (re.x - re.xr) * o[r].CM.w, y: 0, z: (re.z - re.zr) * o[r].CM.w}, { x: 0, y: (re.y + re.yr) * o[r].CM.w, z: 0 }, {x: (oe.x + oe.xr) * o[r].CM.w, y: 0, z: (oe.z + oe.zr) * o[r].CM.w}, { x: 0, y: (oe.y - oe.yr) * o[r].CM.w, z: 0 }], ce = { type: "thru", curviness: h.frames.loop.timeline.curviness, path: [], autoRotate: h.frames.loop.timeline.autoRotate }; for (var pe in de) de.hasOwnProperty(pe) && (ce.path[pe] = de[le], le = ++le == de.length ? 0 : le); ("trigger" !== e.mode && "frame_999" !== e.frame || "frame_999" !== e.frame) && h.loop.preset.fromTo(h.lp, ie, { "-webkit-filter": se, filter: se, x: 0, y: 0, z: 0, minWidth: h._incolumn || h._ingroup ? "100%" : void 0 === h.eow ? 0 : h.eow, minHeight: h._incolumn || h._ingroup ? "100%" : void 0 === h.eoh ? 0 : h.eoh, scaleX: 1, scaleY: 1, skewX: 0, skewY: 0, rotationX: 0, rotationY: 0, rotationZ: 0, transformPerspective: i, transformOrigin: oe.originX + " " + oe.originY + " " + oe.originZ, opacity: 1 }, l({ x: ce.path[3].x, y: ce.path[3].y, z: ce.path[3].z, scaleX: re.scaleX, skewX: re.skewX, skewY: re.skewY, scaleY: re.scaleY, rotationX: re.rotationX, rotationY: re.rotationY, rotationZ: re.rotationZ, "-webkit-filter": se, filter: se, ease: "sine.inOut", opacity: re.opacity }), 0), n(ce) && h.loop.move.to(h.lp, h.frames.loop.timeline.yoyo_move ? ee / 2 : ee, { motionPath: ce, ease: h.frames.loop.timeline.ease }) } else ("trigger" !== e.mode && "frame_999" !== e.frame || "frame_999" !== e.frame) && h.loop.preset.fromTo(h.lp, ie, { "-webkit-filter": se, filter: se, x: 0, y: 0, z: 0, minWidth: h._incolumn || h._ingroup ? "100%" : void 0 === h.eow ? 0 : h.eow, minHeight: h._incolumn || h._ingroup ? "100%" : void 0 === h.eoh ? 0 : h.eoh, scaleX: 1, scaleY: 1, skewX: 0, skewY: 0, rotationX: 0, rotationY: 0, rotationZ: 0, transformPerspective: i, transformOrigin: oe.originX + " " + oe.originY + " " + oe.originZ, opacity: 1 }, l({ x: re.x * o[r].CM.w, y: re.y * o[r].CM.w, z: re.z * o[r].CM.w, scaleX: re.scaleX, skewX: re.skewX, skewY: re.skewY, scaleY: re.scaleY, rotationX: re.rotationX, rotationY: re.rotationY, rotationZ: re.rotationZ, ease: "sine.out", opacity: re.opacity, "-webkit-filter": se, filter: se }), 0), h.loop.move.to(h.lp, h.frames.loop.timeline.yoyo_move ? ee / 2 : ee, { x: oe.x * o[r].CM.w, y: oe.y * o[r].CM.w, z: oe.z * o[r].CM.w, ease: h.frames.loop.timeline.ease }); h.loop.rotate.to(h.lp, h.frames.loop.timeline.yoyo_rotate ? ee / 2 : ee, { rotationX: oe.rotationX, rotationY: oe.rotationY, rotationZ: oe.rotationZ, ease: h.frames.loop.timeline.ease }), h.loop.scale.to(h.lp, h.frames.loop.timeline.yoyo_scale ? ee / 2 : ee, l({ scaleX: oe.scaleX, scaleY: oe.scaleY, skewX: oe.skewX, skewY: oe.skewY, ease: h.frames.loop.timeline.ease })); var ge = { opacity: oe.opacity || 1, ease: h.frames.loop.timeline.ease, "-webkit-filter": ne, filter: ne }; h.loop.filter.to(h.lp, h.frames.loop.timeline.yoyo_filter ? ee / 2 : ee, ge), h.timeline.add(h.loop.root, ae) } if (void 0 !== h.frames.frame_hover && ("start" === e.mode || void 0 === h.hoverframeadded)) { h.hoverframeadded = !0; var ue = h.frames.frame_hover.timeline.speed / 1e3; ue = 0 === ue ? 1e-5 : ue, h.cachedHoverSpeed = ue, h.hoverlistener || (h.hoverlistener = !0, o.document.on("mouseenter mousemove", ("column" === h.type && void 0 !== h.cbg ? "#" + h.cbg[0].id + "," : "") + "#" + h.c[0].id, function (e) { if (h.mouseIsOver = !0, 1 != h.ignoreHoverFrames && ("mousemove" !== e.type || !0 !== h.ignoremousemove)) { if (h.animationonscroll || h.readyForHover) { if (h.elementHovered = !0, h.hovertimeline || (h.hovertimeline = tpGS.gsap.timeline({paused: !0})), 0 == h.hovertimeline.progress() && (void 0 === h.lastHoveredTimeStamp || (new Date).getTime() - h.lastHoveredTimeStamp > 150) && (h.ignoremousemove = !0, h.ofHidOnHov = h.frames.frame_hover.mask ? "hidden" : "visible", h.hovertimeline.to(void 0 !== h.m && void 0 !== h.cbgmask ? [h.m, h.cbgmask] : void 0 !== h.m ? h.m : h.cbgmask, ue, {overflow: h.ofHidOnHov}, 0), "column" === h.type && null != h.cbg && h.hovertimeline.to(h.cbg, ue, o.clone(o.convertHoverTransform(h.frames.frame_hover, h.cbg, { bgCol: h.bgcol, bg: h.styleProps.background })), 0), "text" !== h.type && "button" !== h.type || void 0 === h.splitText || !1 === h.splitText || h.hovertimeline.to([h.splitText.lines, h.splitText.words, h.splitText.chars], ue, { color: h.frames.frame_hover.color, ease: h.frames.frame_hover.transform.ease }, 0), "column" === h.type ? h.hovertimeline.to(h.c, ue, s(o.clone(o.convertHoverTransform(h.frames.frame_hover, h.c, { bgCol: h.bgcol, bg: h.styleProps.background }))), 0) : h.hovertimeline.to(h.c, ue, o.clone(o.convertHoverTransform(h.frames.frame_hover, h.c, { bgCol: h.bgcol, bg: h.styleProps.background })), 0), h.pZindex = h.p[0].style.zIndex, h.p[0].style.zIndex = parseInt(h.frames && h.frames.frame_hover && void 0 !== h.frames.frame_hover.transform.zIndex ? h.frames.frame_hover.transform.zIndex : h.pZindex), "svg" === h.type)) { h.svgHTemp = o.clone(h.svgH), delete h.svgHTemp.svgAll; var t = Array.isArray(h.svgHTemp.fill) ? h.svgHTemp.fill[o[r].level] : h.svgHTemp.fill; h.svgHTemp.fill = t, h.hovertimeline.to(h.svg, ue, h.svgHTemp, 0), h.svg.length <= 0 && (h.svg = a.find("svg")), h.svgPath.length <= 0 && (h.svgPath = h.svg.find(h.svgI.svgAll ? "path, circle, ellipse, line, polygon, polyline, rect" : "path")), h.hovertimeline.to(h.svgPath, ue, {fill: t}, 0) } h.hovertimeline.play() } h.lastHoveredTimeStamp = (new Date).getTime() } }), o.document.on("mouseleave", ("column" === h.type && void 0 !== h.cbg ? "#" + h.cbg[0].id + "," : "") + "#" + h.c[0].id, function () { h.mouseIsOver = !1, 1 != h.ignoreHoverFrames && (h.elementHovered = !1, (h.animationonscroll || h.readyForHover) && void 0 !== h.hovertimeline && (h.hovertimeline.reverse(), h.p[0].style.zIndex = h.pZindex || h.zIndex, h.hovertimeline.eventCallback("onReverseComplete", o.hoverReverseDone, [{ id: r, L: a }]))) })) } if (T || (h.lastRequestedMainFrame = "start" === e.mode ? "frame_1" : "continue" === e.mode ? void 0 === e.frame ? h.currentframe : e.frame : h.lastRequestedMainFrame), void 0 !== e.totime ? h.tSTART = e.totime : void 0 !== m && void 0 === e.frame ? h.tSTART = m : void 0 !== e.frame ? h.tSTART = e.frame : h.tSTART = 0, 0 === h.tSTART && void 0 === h.startedAnimOnce && void 0 === h.leftstage && void 0 === h.startedAnimOnce && !0 === h.hideonfirststart && "preset" === e.mode && (o[r]._L[a[0].id].pVisRequest = 0, h.hideonfirststart = !1), "frame_999" !== h.tSTART && "frame_999" !== h.triggeredFrame || !h.leftstage && void 0 !== h.startedAnimOnce) { if ("true" != h.animationonscroll && 1 != h.animationonscroll ? h.timeline.play(h.tSTART) : h.timeline.time(h.tSTART), jQuery.inArray(h.type, ["group", "row", "column"]) >= 0 && void 0 !== e.frame) { if (void 0 === h.childrenJS) for (var V in h.childrenJS = {}, o[r]._L) void 0 !== o[r]._L[V]._lig && void 0 !== o[r]._L[V]._lig[0] && o[r]._L[V]._lig[0].id === a[0].id && o[r]._L[V]._lig[0].id !== o[r]._L[V].c[0].id && (h.childrenJS[o[r]._L[V].c[0].id] = o[r]._L[V].c); e.frame = "0" == e.frame ? "frame_0" : e.frame, e.frame = "1" == e.frame ? "frame_1" : e.frame, e.frame = "999" == e.frame ? "frame_999" : e.frame; var he = void 0 === e.totime ? void 0 !== h.frames[e.frame].timeline.startAbsolute ? parseInt(h.frames[e.frame].timeline.startAbsolute, 0) / 1e3 : void 0 !== h.frames[e.frame].timeline.start ? o.isNumeric(h.frames[e.frame].timeline.start) ? parseInt(h.frames[e.frame].timeline.start, 0) / 1e3 : 0 : .001 : e.totime; if (!0 === e.updateChildren) for (var V in h.childrenJS) h.childrenJS.hasOwnProperty(V) && o.renderLayerAnimation({ layer: h.childrenJS[V], fastforward: !1, id: r, mode: "continue", updateChildren: !0, totime: he }); else for (var V in h.childrenJS) h.childrenJS.hasOwnProperty(V) && o[r]._L[V].pausedTrueParrent && (o.renderLayerAnimation({ layer: h.childrenJS[V], fastforward: !1, id: r, mode: "continue", updateChildren: !0, totime: he }), o[r]._L[V].pausedTrueParrent = !1) } } else ; } } }); var s = function (e) { var t = o.clone(e); return delete t.backgroundColor, delete t.background, delete t.backgroundImage, delete t.borderSize, delete t.borderStyle, delete t["backdrop-filter"], t }, n = function (e) { if (void 0 !== e && void 0 !== e.path && Array.isArray(e.path)) { var t = 0, i = 0; for (var a in e.path) !e.path.hasOwnProperty(a) || t > 0 || i > 0 || (t += e.path[a].x, i += e.path[a].y); return 0 != t || 0 != i } }, l = function (e) { return void 0 === e.skewX && delete e.skewX, void 0 === e.skewY && delete e.skewY, e }, d = function (e) { e.from = "edge" === e.from ? "edges" : e.from; var t = tpGS.gsap.utils.distribute(e); return function (i, a, r) { return t(i, a, r) + (i <= r.length / 2 ? 0 : e.offset || 0) } }, c = function (e) { o[e.id].BUG_safari_clipPath && e.L[0].classList.remove("rs-pelock"), (o[e.id]._L[e.L[0].id]._ingroup || o[e.id]._L[e.L[0].id]._incolumn || o[e.id]._L[e.L[0].id]._inrow) && void 0 !== o[e.id]._L[o[e.id]._L[e.L[0].id]._ligid] && void 0 !== o[e.id]._L[o[e.id]._L[e.L[0].id]._ligid].timeline && (o[e.id]._L[o[e.id]._L[e.L[0].id]._ligid].timeline.isActive() || void 0 === o[e.id]._L[e.L[0].id] || void 0 === o[e.id]._L[e.L[0].id].frames[o[e.id]._L[e.L[0].id].timeline.currentLabel()] || (null == o[e.id]._L[o[e.id]._L[e.L[0].id]._ligid].timezone || o[e.id]._L[o[e.id]._L[e.L[0].id]._ligid].timezone.to <= parseInt(o[e.id]._L[e.L[0].id].frames[o[e.id]._L[e.L[0].id].timeline.currentLabel()].timeline.start, 0)) && !0 !== o[e.id]._L[e.L[0].id].animOnScrollForceDisable && (o[e.id]._L[e.L[0].id].pausedTrueParrent = !0, o[e.id]._L[e.L[0].id].timeline.pause())); var t = o[e.id]._L[e.L[0].id], i = t.hovertimeline; i && i.time() > 0 && (i.pause(), i.time(0), i.kill(), delete t.hovertimeline), delete o[e.id]._L[e.L[0].id].childrenAtStartNotVisible, o[e.id]._L[e.L[0].id].pVisRequest = 1; var a = {layer: e.L}; o[e.id]._L[e.L[0].id].tweenOnStart = !0, o[e.id]._L[e.L[0].id].animatingFrame = e.frame, o[e.id]._L[e.L[0].id].ignoremousemove = !1, o[e.id]._L[e.L[0].id].leftstage = !1, o[e.id]._L[e.L[0].id].readyForHover = !1, o[e.id]._L[e.L[0].id].tweenDirection = 1 == o[e.id]._L[e.L[0].id].animationonscroll || "true" == o[e.id]._L[e.L[0].id].animationonscroll ? o[e.id]._L[e.L[0].id].animteToTimeCache > o[e.id]._L[e.L[0].id].animteToTime ? -1 : 1 : void 0, void 0 !== o[e.id]._L[e.L[0].id].layerLoop && o[e.id]._L[e.L[0].id].layerLoop.from === e.frame && o[e.id]._L[e.L[0].id].layerLoop.count++, "" + o[e.id]._L[e.L[0].id].tweenDirection == "-1" && ("frame_0" === e.frame || "frame_1" == e.frame && o[e.id]._L[e.L[0].id].animteToTime <= .01) && "column" !== o[e.id]._L[e.L[0].id].type && "row" !== o[e.id]._L[e.L[0].id].type && "group" !== o[e.id]._L[e.L[0].id].type ? (o[e.id]._L[e.L[0].id].leftstage = !0, o[e.id]._L[e.L[0].id].pVisRequest = 0, o[e.id]._L[e.L[0].id].pPeventsRequest = "none", window.requestAnimationFrame(function () { o.requestLayerUpdates(e.id, "leftstage", e.L[0].id) })) : ("frame_1" === e.frame && "Safari" === window.RSBrowser && void 0 === o[e.id]._L[e.L[0].id].safariRenderIssue && (tpGS.gsap.set([o[e.id]._L[e.L[0].id].c], {opacity: 1}), o[e.id]._L[e.L[0].id].safariRenderIssue = !0), "frame_999" !== e.frame && (o[e.id]._L[e.L[0].id].startedAnimOnce = !0, o[e.id]._L[e.L[0].id].pPeventsRequest = o[e.id]._L[e.L[0].id].noPevents ? "none" : "auto"), a.eventtype = "frame_0" === e.frame || "frame_1" === e.frame ? "enterstage" : "frame_999" === e.frame ? "leavestage" : "framestarted", o[e.id]._L[e.L[0].id]._ingroup && void 0 !== o[e.id]._L[o[e.id]._L[e.L[0].id]._lig[0].id] && !0 !== o[e.id]._L[o[e.id]._L[e.L[0].id]._lig[0].id].frames.frame_1.timeline.waitoncall && (o[e.id]._L[o[e.id]._L[e.L[0].id]._lig[0].id].pVisRequest = 1), o.requestLayerUpdates(e.id, a.eventtype, e.L[0].id, void 0 !== o[e.id]._L[e.L[0].id].frames[e.frame] && void 0 !== o[e.id]._L[e.L[0].id].frames[e.frame].timeline && 0 == o[e.id]._L[e.L[0].id].frames[e.frame].timeline.usePerspective ? e.tPE : "ignore")), a.id = e.id, a.layerid = e.L[0].id, a.layertype = o[e.id]._L[e.L[0].id].type, a.frame_index = e.frame, a.layersettings = o[e.id]._L[e.L[0].id], o[e.id].c.trigger("revolution.layeraction", [a]), "enterstage" === a.eventtype && o.toggleState(o[e.id]._L[e.L[0].id].layertoggledby), "frame_1" === e.frame && o.animcompleted(e.L, e.id) }, p = function (e) { o[e.id]._L[e.L[0].id].animatingFrame = e.frame, o[e.id]._L[e.L[0].id].tweenOnStart = !1, o[e.id]._L[e.L[0].id].tweenOnEnd = !1, "frame_999" === e.frame && (o[e.id]._L[e.L[0].id].pVisRequest = 1, o[e.id]._L[e.L[0].id].pPeventsRequest = o[e.id]._L[e.L[0].id].noPevents ? "none" : "auto", o[e.id]._L[e.L[0].id].leftstage = !1, window.requestAnimationFrame(function () { o.requestLayerUpdates(e.id, "update", e.L[0].id) })) }, g = function (e) { var t = !0; if ("column" === o[e.id]._L[e.L[0].id].type || "row" === o[e.id]._L[e.L[0].id].type || "group" === o[e.id]._L[e.L[0].id].type) { var i = o[e.id]._L[e.L[0].id].timeline.currentLabel(), a = jQuery.inArray(i, o[e.id]._L[e.L[0].id].ford); a++, a = o[e.id]._L[e.L[0].id].ford.length > a ? o[e.id]._L[e.L[0].id].ford[a] : i, void 0 !== o[e.id]._L[e.L[0].id].frames[a] && void 0 !== o[e.id]._L[e.L[0].id].frames[i] && (o[e.id]._L[e.L[0].id].timezone = { from: parseInt(o[e.id]._L[e.L[0].id].frames[i].timeline.startAbsolute, 0), to: parseInt(o[e.id]._L[e.L[0].id].frames[a].timeline.startAbsolute, 0) }) } if ("frame_999" !== e.frame && o[e.id].isEdge && "shape" === o[e.id]._L[e.L[0].id].type) { var r = o[e.id]._L[e.L[0].id].c[0].style.opacity; o[e.id]._L[e.L[0].id].c[0].style.opacity = r - 1e-4, tpGS.gsap.set(o[e.id]._L[e.L[0].id].c[0], { opacity: r - .001, delay: .05 }), tpGS.gsap.set(o[e.id]._L[e.L[0].id].c[0], {opacity: r, delay: .1}) } o[e.id]._L[e.L[0].id].animatingFrame = "done", o[e.id]._L[e.L[0].id].animatedFrame = e.frame, o[e.id]._L[e.L[0].id].tweenOnStart = !1, o[e.id]._L[e.L[0].id].tweenOnEnd = !0, o[e.id]._L[e.L[0].id].tweenDirection = 1 == o[e.id]._L[e.L[0].id].animationonscroll || "true" == o[e.id]._L[e.L[0].id].animationonscroll ? o[e.id]._L[e.L[0].id].animteToTimeCache > o[e.id]._L[e.L[0].id].animteToTime ? -1 : 1 : void 0; var s = {}; s.layer = e.L, s.eventtype = "frame_0" === e.frame || "frame_1" === e.frame ? "enteredstage" : "frame_999" === e.frame ? "leftstage" : "frameended", o[e.id]._L[e.L[0].id].readyForHover = !0, s.layertype = o[e.id]._L[e.L[0].id].type, s.frame_index = e.frame, s.layersettings = o[e.id]._L[e.L[0].id], o[e.id].c.trigger("revolution.layeraction", [s]), "frame_999" === e.frame && "leftstage" === s.eventtype ? (o[e.id]._L[e.L[0].id].leftstage = !0, o[e.id]._L[e.L[0].id].pVisRequest = 0, o[e.id]._L[e.L[0].id].pPeventsRequest = "none", t = !1, window.requestAnimationFrame(function () { o.requestLayerUpdates(e.id, "leftstage", e.L[0].id) })) : (e.L[0].id, void 0 !== o[e.id]._L[e.L[0].id].frames[e.frame] && void 0 !== o[e.id]._L[e.L[0].id].frames[e.frame].timeline && 0 == o[e.id]._L[e.L[0].id].frames[e.frame].timeline.usePerspective && window.requestAnimationFrame(function () { o.requestLayerUpdates(e.id, "frameended", e.L[0].id, e.tPE) })), "leftstage" === s.eventtype && void 0 !== o[e.id].videos && void 0 !== o[e.id].videos[e.L[0].id] && o.stopVideo && o.stopVideo(e.L, e.id), "column" === o[e.id]._L[e.L[0].id].type && void 0 !== o[e.id]._L[e.L[0].id].cbg && tpGS.gsap.to(o[e.id]._L[e.L[0].id].cbg, .01, {visibility: "visible"}), "leftstage" === s.eventtype && (o.unToggleState(e.layertoggledby), "video" === o[e.id]._L[e.L[0].id].type && o.resetVideo && setTimeout(function () { o.resetVideo(e.L, e.id) }, 100)), o[e.id].BUG_safari_clipPath && !t && e.L[0].classList.add("rs-pelock"), void 0 !== o[e.id]._L[e.L[0].id].layerLoop && o[e.id]._L[e.L[0].id].layerLoop.to === e.frame && (-1 == o[e.id]._L[e.L[0].id].layerLoop.repeat || o[e.id]._L[e.L[0].id].layerLoop.repeat > o[e.id]._L[e.L[0].id].layerLoop.count) && o.renderLayerAnimation({ layer: o[e.id]._L[e.L[0].id].c, frame: o[e.id]._L[e.L[0].id].layerLoop.from, updateChildren: o[e.id]._L[e.L[0].id].layerLoop.children, mode: "continue", fastforward: !0 === o[e.id]._L[e.L[0].id].layerLoop.keep, id: e.id }) }, u = function (e) { if (void 0 === e) return ""; var t = ""; return o.isChrome8889 && 0 === e.blur && (e.blur = .05), t = void 0 !== e.blur ? "blur(" + (e.blur || 0) + "px)" : "", t += void 0 !== e.grayscale ? (t.length > 0 ? " " : "") + "grayscale(" + (e.grayscale || 0) + "%)" : "", "" === (t += void 0 !== e.brightness ? (t.length > 0 ? " " : "") + "brightness(" + (e.brightness || 100) + "%)" : "") ? "none" : t }, h = function (e) { if (void 0 === e) return ""; var t = ""; return o.isChrome8889 && 0 === e.b_blur && (e.b_blur = .05), t = void 0 !== e.b_blur ? "blur(" + (e.b_blur || 0) + "px)" : "", t += void 0 !== e.b_grayscale ? (t.length > 0 ? " " : "") + "grayscale(" + (e.b_grayscale || 0) + "%)" : "", t += void 0 !== e.b_sepia ? (t.length > 0 ? " " : "") + "sepia(" + (e.b_sepia || 0) + "%)" : "", t += void 0 !== e.b_invert ? (t.length > 0 ? " " : "") + "invert(" + (e.b_invert || 0) + "%)" : "", "" === (t += void 0 !== e.b_brightness ? (t.length > 0 ? " " : "") + "brightness(" + (e.b_brightness || 100) + "%)" : "") ? "none" : t }, m = function (e, t) { var i = (e = e.split("("))[0]; return e.shift(), i + "(" + t + "deg, " + e.join("(") }, v = function (e) { if (-1 !== e.search("deg,")) { var t = e.split("deg,")[0]; if (-1 !== t.search(/\(/)) return parseInt(t.split("(")[1], 10) } return 180 }, f = function (e, t) { if (void 0 !== e && e.indexOf("oc:t") >= 0) return {}; e = void 0 === e ? "" : e.split(";"); var i = { fill: o.revToResp("#ffffff", o[t].rle), stroke: "transparent", "stroke-width": "0px", "stroke-dasharray": "0", "stroke-dashoffset": "0" }; for (var a in e) if (e.hasOwnProperty(a)) { var r = e[a].split(":"); switch (r[0]) { case"c": i.fill = o.revToResp(r[1], o[t].rle, void 0, "||"); break; case"sw": i["stroke-width"] = r[1]; break; case"sc": i.stroke = r[1]; break; case"so": i["stroke-dashoffset"] = r[1]; break; case"sa": i["stroke-dasharray"] = r[1]; break; case"sall": i.svgAll = r[1] } } return i }, y = function (e) { return "c" === e ? "center" : "l" === e ? "left" : "r" === e ? "right" : e }, w = function (e) { var t = o[e.id]._L[e.layer[0].id], i = !1; if (t.splitText && !1 !== t.splitText && t.splitText.revert(), "text" === t.type || "button" === t.type) { for (var a in t.frames) if (void 0 !== t.frames[a].chars || void 0 !== t.frames[a].words || void 0 !== t.frames[a].lines) { i = !0; break } t.splitText = !!i && new tpGS.SplitText(t.c, { type: "lines,words,chars", wordsClass: "rs_splitted_words", linesClass: "rs_splitted_lines", charsClass: "rs_splitted_chars" }) } else t.splitText = !1 }, b = function (e, t, i) { if (void 0 !== e && e.indexOf("block") >= 0) { var a = {}; switch (0 === t[0].getElementsByClassName("tp-blockmask_in").length && (t.append('
'), t.append('
')), i = void 0 === i ? "power3.inOut" : i, a.ft = [{ scaleY: 1, scaleX: 0, transformOrigin: "0% 50%" }, {scaleY: 1, scaleX: 1, ease: i, immediateRender: !1}], a.t = { scaleY: 1, scaleX: 0, transformOrigin: "100% 50%", ease: i, immediateRender: !1 }, a.bmask_in = t.find(".tp-blockmask_in"), a.bmask_out = t.find(".tp-blockmask_out"), a.type = "block", e) { case"blocktoleft": case"blockfromright": a.ft[0].transformOrigin = "100% 50%", a.t.transformOrigin = "0% 50%"; break; case"blockfromtop": case"blocktobottom": a.ft = [{scaleX: 1, scaleY: 0, transformOrigin: "50% 0%"}, { scaleX: 1, scaleY: 1, ease: i, immediateRender: !1 }], a.t = {scaleX: 1, scaleY: 0, transformOrigin: "50% 100%", ease: i, immediateRender: !1}; break; case"blocktotop": case"blockfrombottom": a.ft = [{scaleX: 1, scaleY: 0, transformOrigin: "50% 100%"}, { scaleX: 1, scaleY: 1, ease: i, immediateRender: !1 }], a.t = {scaleX: 1, scaleY: 0, transformOrigin: "50% 0%", ease: i, immediateRender: !1} } return a.ft[1].overwrite = "auto", a.t.overwrite = "auto", a } return !1 }, _ = function (e, t, i, a, r) { return 0 === o[r].sdir || void 0 === t ? e : ("mask" === i ? a = "x" === a ? "mX" : "y" === a ? "mY" : a : "chars" === i ? a = "x" === a ? "cX" : "y" === a ? "cY" : "dir" === a ? "cD" : a : "words" === i ? a = "x" === a ? "wX" : "y" === a ? "wY" : "dir" === a ? "wD" : a : "lines" === i && (a = "x" === a ? "lX" : "y" === a ? "lY" : "dir" === a ? "lD" : a), void 0 === t[a] || !1 === t[a] ? e : void 0 !== t && !0 === t[a] ? "t" === e || "top" === e ? "b" : "b" === e || "bottom" === e ? "t" : "l" === e || "left" === e ? "r" : "r" === e || "right" === e ? "l" : -1 * parseFloat(e) + (("" + e).indexOf("px") >= 0 ? "px" : ("" + e).indexOf("%") >= 0 ? "%" : "") : void 0) }, S = function (e) { var t, i = o[e.id]._L[e.layer[0].id], a = void 0 === e.source ? o.clone(e.frame.transform) : o.clone(e.frame[e.source]), r = {originX: "50%", originY: "50%", originZ: "0"}, s = void 0 !== i._lig && void 0 !== o[e.id]._L[i._lig[0].id] ? o[e.id]._L[i._lig[0].id].eow : o[e.id].conw, n = void 0 !== i._lig && void 0 !== o[e.id]._L[i._lig[0].id] ? o[e.id]._L[i._lig[0].id].eoh : o[e.id].conh; for (var l in a) if (a.hasOwnProperty(l)) { if (a[l] = "object" == typeof a[l] ? a[l][o[e.id].level] : a[l], "inherit" === a[l] || "delay" === l || "direction" === l || "use" === l) delete a[l]; else if ("originX" === l || "originY" === l || "originZ" === l) r[l] = a[l], delete a[l]; else if (o.isNumeric(a[l], 0)) a[l] = _(a[l], e.frame.reverse, e.target, l, e.id, e.id); else if ("r" === a[l][0] && "a" === a[l][1] && "(" === a[l][3]) a[l] = a[l].replace("ran", "random"); else if (a[l].indexOf("cyc(") >= 0) { var d = a[l].replace("cyc(", "").replace(")", "").replace("[", "").replace("]", "").split("|"); a[l] = new function (e) { return tpGS.gsap.utils.wrap(d, void 0) } } else if (a[l].indexOf("%") >= 0 && o.isNumeric(t = parseInt(a[l], 0))) a[l] = "x" === l ? _((i.eow || 0) * t / 100, e.frame.reverse, e.target, l, e.id) : "y" === l ? _((i.eoh || 0) * t / 100, e.frame.reverse, e.target, l, e.id) : a[l]; else { a[l] = a[l].replace("[", "").replace("]", ""), a[l] = _(a[l], e.frame.reverse, e.target, l, e.id, e.id); var c = {t: 0, b: 0}; switch ("row" === i.type && ("rev_row_zone_top" === i.zone && void 0 !== o[e.id].topZones[i.slideIndex] && void 0 !== o[e.id].topZones[i.slideIndex][0] ? c = { t: 0, b: 0 } : "rev_row_zone_middle" === i.zone && void 0 !== o[e.id].middleZones[i.slideIndex] && void 0 !== o[e.id].middleZones[i.slideIndex][0] ? c = { t: Math.round(o[e.id].module.height / 2 - o[e.id].middleZones[i.slideIndex][0].offsetHeight / 2), b: Math.round(o[e.id].module.height / 2 + o[e.id].middleZones[i.slideIndex][0].offsetHeight / 2) } : "rev_row_zone_bottom" === i.zone && void 0 !== o[e.id].bottomZones[i.slideIndex] && void 0 !== o[e.id].bottomZones[i.slideIndex][0] && (c = { t: Math.round(o[e.id].module.height - o[e.id].bottomZones[i.slideIndex][0].offsetHeight), b: o[e.id].module.height + o[e.id].bottomZones[i.slideIndex][0].offsetHeight })), a[l]) { case"t": case"top": a[l] = 0 - (i.eoh || 0) - ("column" === i.type ? 0 : i.calcy || 0) - o.getLayerParallaxOffset(e.id, e.layer[0].id, "v") - ("row" === i.type && void 0 !== i.marginTop ? i.marginTop[o[e.id].level] : 0) - c.b; break; case"b": case"bottom": a[l] = n - ("column" === i.type || "row" === i.type ? 0 : i.calcy || 0) + o.getLayerParallaxOffset(e.id, e.layer[0].id, "v") - c.t; break; case"l": case"left": a[l] = 0 - ("row" === i.type ? i.pow : i.eow || 0) - ("column" === i.type ? 0 : "row" === i.type ? i.rowcalcx : i.calcx || 0) - o.getLayerParallaxOffset(e.id, e.layer[0].id, "h"); break; case"r": case"right": a[l] = s - ("column" === i.type ? 0 : "row" === i.type ? i.rowcalcx : i.calcx || 0) + o.getLayerParallaxOffset(e.id, e.layer[0].id, "h"); break; case"m": case"c": case"middle": case"center": a[l] = "x" === l ? _(s / 2 - ("column" === i.type ? 0 : i.calcx || 0) - (i.eow || 0) / 2, e.frame.reverse, e.target, l, e.id) : "y" === l ? _(n / 2 - ("column" === i.type ? 0 : i.calcy || 0) - (i.eoh || 0) / 2, e.frame.reverse, e.target, l, e.id) : a[l] } } "skewX" === l && void 0 !== a[l] && (a.scaleY = void 0 === a.scaleY ? 1 : parseFloat(a.scaleY), a.scaleY *= Math.cos(parseFloat(a[l]) * tpGS.DEG2RAD)), "skewY" === l && void 0 !== a[l] && (a.scaleX = void 0 === a.scaleX ? 1 : parseFloat(a.scaleX), a.scaleX *= Math.cos(parseFloat(a[l]) * tpGS.DEG2RAD)) } if (a.transformOrigin = r.originX + " " + r.originY + " " + r.originZ, !o[e.id].BUG_ie_clipPath && void 0 !== a.clip && void 0 !== i.clipPath && i.clipPath.use) { a.clipB = null == a.clipB ? 100 : a.clipB; var p = "rectangle" == i.clipPath.type, g = parseInt(a.clip, 0), m = 100 - parseInt(a.clipB, 0), v = Math.round(g / 2); switch (i.clipPath.origin) { case"invh": a.clipPath = "polygon(0% 0%, 0% 100%, " + g + "% 100%, " + g + "% 0%, 100% 0%, 100% 100%, " + m + "% 100%, " + m + "% 0%, 0% 0%)"; break; case"invv": a.clipPath = "polygon(100% 0%, 0% 0%, 0% " + g + "%, 100% " + g + "%, 100% 100%, 0% 100%, 0% " + m + "%, 100% " + m + "%, 100% 0%)"; break; case"cv": a.clipPath = p ? "polygon(" + (50 - v) + "% 0%, " + (50 + v) + "% 0%, " + (50 + v) + "% 100%, " + (50 - v) + "% 100%)" : "circle(" + g + "% at 50% 50%)"; break; case"ch": a.clipPath = p ? "polygon(0% " + (50 - v) + "%, 0% " + (50 + v) + "%, 100% " + (50 + v) + "%, 100% " + (50 - v) + "%)" : "circle(" + g + "% at 50% 50%)"; break; case"l": a.clipPath = p ? "polygon(0% 0%, " + g + "% 0%, " + g + "% 100%, 0% 100%)" : "circle(" + g + "% at 0% 50%)"; break; case"r": a.clipPath = p ? "polygon(" + (100 - g) + "% 0%, 100% 0%, 100% 100%, " + (100 - g) + "% 100%)" : "circle(" + g + "% at 100% 50%)"; break; case"t": a.clipPath = p ? "polygon(0% 0%, 100% 0%, 100% " + g + "%, 0% " + g + "%)" : "circle(" + g + "% at 50% 0%)"; break; case"b": a.clipPath = p ? "polygon(0% 100%, 100% 100%, 100% " + (100 - g) + "%, 0% " + (100 - g) + "%)" : "circle(" + g + "% at 50% 100%)"; break; case"lt": a.clipPath = p ? "polygon(0% 0%," + 2 * g + "% 0%, 0% " + 2 * g + "%)" : "circle(" + g + "% at 0% 0%)"; break; case"lb": a.clipPath = p ? "polygon(0% " + (100 - 2 * g) + "%, 0% 100%," + 2 * g + "% 100%)" : "circle(" + g + "% at 0% 100%)"; break; case"rt": a.clipPath = p ? "polygon(" + (100 - 2 * g) + "% 0%, 100% 0%, 100% " + 2 * g + "%)" : "circle(" + g + "% at 100% 0%)"; break; case"rb": a.clipPath = p ? "polygon(" + (100 - 2 * g) + "% 100%, 100% 100%, 100% " + (100 - 2 * g) + "%)" : "circle(" + g + "% at 100% 100%)"; break; case"clr": a.clipPath = p ? "polygon(0% 0%, 0% " + g + "%, " + (100 - g) + "% 100%, 100% 100%, 100% " + (100 - g) + "%, " + g + "% 0%)" : "circle(" + g + "% at 50% 50%)"; break; case"crl": a.clipPath = p ? "polygon(0% " + (100 - g) + "%, 0% 100%, " + g + "% 100%, 100% " + g + "%, 100% 0%, " + (100 - g) + "% 0%)" : "circle(" + g + "% at 50% 50%)" } !0 !== o.isFirefox(e.id) && (a["-webkit-clip-path"] = a.clipPath), a["clip-path"] = a.clipPath, delete a.clip, delete a.clipB } else delete a.clip; return "mask" !== e.target && (void 0 === e.frame || void 0 === e.frame.filter && !e.forcefilter || (a.filter = u(e.frame.filter), a["-webkit-filter"] = a.filter, o.useBackdrop && (window.isSafari11 ? a["-webkit-backdrop-filter"] = h(e.frame.filter) : a["backdrop-filter"] = h(e.frame.filter)), window.isSafari11 && void 0 !== a.filter && void 0 === a[null == i.iOSFix || "d" == i.iOSFix ? "shape" == i.type ? "z" : "x" : i.iOSFix] && void 0 !== e.frame.filter && void 0 !== e.frame.filter.blur && (a[null == i.iOSFix || "d" == i.iOSFix ? "shape" == i.type ? "z" : "x" : i.iOSFix] = 1e-4)), jQuery.inArray(e.source, ["chars", "words", "lines"]) >= 0 && (void 0 !== e.frame[e.source].blur || e.forcefilter) && (a.filter = u(e.frame[e.source]), a["-webkit-filter"] = a.filter), delete a.grayscale, delete a.blur, delete a.brightness), a.ease = void 0 !== a.ease ? a.ease : void 0 === a.ease && void 0 !== e.ease || void 0 !== a.ease && void 0 !== e.ease && "inherit" === a.ease ? e.ease : e.frame.timeline.ease, a.ease = void 0 === a.ease || "default" === a.ease ? "power3.inOut" : a.ease, a }, x = function (e, t, i, a, r) { var s, n, l = {}, d = {}, c = {}; for (var p in a = void 0 === a ? "transform" : a, "loop" === r ? (c.autoRotate = !1, c.yoyo_filter = !1, c.yoyo_rotate = !1, c.yoyo_move = !1, c.yoyo_scale = !1, c.curved = !1, c.curviness = 2, c.ease = "none", c.speed = 1e3, c.st = 0, l.x = 0, l.y = 0, l.z = 0, l.xr = 0, l.yr = 0, l.zr = 0, l.scaleX = 1, l.scaleY = 1, l.originX = "50%", l.originY = "50%", l.originZ = "0", l.rotationX = "0deg", l.rotationY = "0deg", l.rotationZ = "0deg") : (c.speed = 300, i ? c.ease = "default" : l.ease = "default"), "sfx" === r && (l.fxc = "#ffffff"), e = e.split(";")) if (e.hasOwnProperty(p)) { var g = e[p].split(":"); switch (g[0]) { case"u": l.use = "true" === g[1] || "t" === g[1] || fasle; break; case"c": s = g[1]; break; case"fxc": l.fxc = g[1]; break; case"bgc": n = g[1]; break; case"auto": l.auto = "t" === g[1] || void 0 === g[1] || "true" === g[1]; break; case"o": l.opacity = g[1]; break; case"oX": l.originX = g[1]; break; case"oY": l.originY = g[1]; break; case"oZ": l.originZ = g[1]; break; case"sX": l.scaleX = g[1]; break; case"sY": l.scaleY = g[1]; break; case"skX": l.skewX = g[1]; break; case"skY": l.skewY = g[1]; break; case"rX": l.rotationX = g[1], 0 != g[1] && "0deg" !== g[1] && o.addSafariFix(t); break; case"rY": l.rotationY = g[1], 0 != g[1] && "0deg" !== g[1] && o.addSafariFix(t); break; case"rZ": l.rotationZ = g[1]; break; case"sc": l.color = g[1]; break; case"se": l.effect = g[1]; break; case"bos": l.borderStyle = g[1]; break; case"boc": l.borderColor = g[1]; break; case"td": l.textDecoration = g[1]; break; case"zI": l.zIndex = g[1]; break; case"tp": l.transformPerspective = "isometric" === o[t].perspectiveType ? 0 : "global" === o[t].perspectiveType ? o[t].perspective : g[1]; break; case"cp": l.clip = parseInt(g[1], 0); break; case"cpb": l.clipB = parseInt(g[1], 0); break; case"aR": c.autoRotate = "t" == g[1]; break; case"rA": c.radiusAngle = g[1]; break; case"yyf": c.yoyo_filter = "t" == g[1]; break; case"yym": c.yoyo_move = "t" == g[1]; break; case"yyr": c.yoyo_rotate = "t" == g[1]; break; case"yys": c.yoyo_scale = "t" == g[1]; break; case"crd": c.curved = "t" == g[1]; break; case"x": l.x = "reverse" === r ? "t" === g[1] || !0 === g[1] || "true" == g[1] : "loop" === r ? parseInt(g[1], 0) : o.revToResp(g[1], o[t].rle); break; case"y": l.y = "reverse" === r ? "t" === g[1] || !0 === g[1] || "true" == g[1] : "loop" === r ? parseInt(g[1], 0) : o.revToResp(g[1], o[t].rle); break; case"z": l.z = "loop" === r ? parseInt(g[1], 0) : o.revToResp(g[1], o[t].rle), 0 != g[1] && o.addSafariFix(t); break; case"bow": l.borderWidth = o.revToResp(g[1], 4, 0).toString().replace(/,/g, " "); break; case"bor": l.borderRadius = o.revToResp(g[1], 4, 0).toString().replace(/,/g, " "); break; case"m": l.mask = "t" === g[1] || "f" !== g[1] && g[1]; break; case"iC": l.instantClick = "t" === g[1] || "f" !== g[1] && g[1]; break; case"xR": l.xr = parseInt(g[1], 0), o.addSafariFix(t); break; case"yR": l.yr = parseInt(g[1], 0), o.addSafariFix(t); break; case"zR": l.zr = parseInt(g[1], 0); break; case"iosfx": "default" !== g[1] && "d" !== g[1] && "p" !== g[1] && (d.iosfx = g[1]); break; case"blu": "loop" === r ? l.blur = parseInt(g[1], 0) : d.blur = parseInt(g[1], 0); break; case"gra": "loop" === r ? l.grayscale = parseInt(g[1], 0) : d.grayscale = parseInt(g[1], 0); break; case"bri": "loop" === r ? l.brightness = parseInt(g[1], 0) : d.brightness = parseInt(g[1], 0); break; case"bB": d.b_blur = parseInt(g[1], 0); break; case"bG": d.b_grayscale = parseInt(g[1], 0); break; case"bR": d.b_brightness = parseInt(g[1], 0); break; case"bI": d.b_invert = parseInt(g[1], 0); break; case"bS": d.b_sepia = parseInt(g[1], 0); break; case"sp": c.speed = parseInt(g[1], 0); break; case"d": l.delay = parseInt(g[1], 0); break; case"crns": c.curviness = parseInt(g[1], 0); break; case"st": c.start = "w" === g[1] || "a" === g[1] ? "+=0" : g[1], c.waitoncall = "w" === g[1] || "a" === g[1]; break; case"sA": c.startAbsolute = g[1]; break; case"sR": c.startRelative = g[1]; break; case"e": i ? c.ease = g[1] : l.ease = g[1]; break; default: g[0].length > 0 && (l[g[0]] = "t" === g[1] || "f" !== g[1] && g[1]) } } var u = {timeline: c}; return jQuery.isEmptyObject(d) || ("split" === r ? l = jQuery.extend(!0, l, d) : u.filter = d), "split" === r && (l.dir = void 0 === l.dir ? "start" : "backward" === l.dir ? "end" : "middletoedge" === l.dir ? "center" : "edgetomiddle" === l.dir ? "edge" : l.dir), jQuery.isEmptyObject(s) || (u.color = s), jQuery.isEmptyObject(n) || (u.bgcolor = n), u[a] = l, u }, k = function (e, t) { var i = {}, a = 0; if (void 0 === o[t]._rdF0) { var r = x("x:0;y:0;z:0;rX:0;rY:0;rZ:0;o:0;skX:0;skY:0;sX:0;sY:0;oX:50%;oY:50%;oZ:0;dir:forward;d:5", t).transform; o[t]._rdF0 = o[t]._rdF1 = { transform: x("x:0;y:0;z:0;rX:0;rY:0;rZ:0;o:0;skX:0;skY:0;sX:0;sY:0;oX:50%;oY:50%;oZ:0;tp:600px", t, !0).transform, mask: x("x:0;y:0", t, !0).transform, chars: jQuery.extend(!0, {blur: 0, grayscale: 0, brightness: 100}, r), words: jQuery.extend(!0, {blur: 0, grayscale: 0, brightness: 100}, r), lines: jQuery.extend(!0, {blur: 0, grayscale: 0, brightness: 100}, r) }, o[t]._rdF1.transform.opacity = o[t]._rdF1.chars.opacity = o[t]._rdF1.words.opacity = o[t]._rdF1.lines.opacity = o[t]._rdF1.transform.scaleX = o[t]._rdF1.chars.scaleX = o[t]._rdF1.words.scaleX = o[t]._rdF1.lines.scaleX = o[t]._rdF1.transform.scaleY = o[t]._rdF1.chars.scaleY = o[t]._rdF1.words.scaleY = o[t]._rdF1.lines.scaleY = 1 } for (var a in void 0 === e.frame_0 && (e.frame_0 = "x:0"), void 0 === e.frame_1 && (e.frame_1 = "x:0"), e.dddNeeded = !1, e.ford) if (e.ford.hasOwnProperty(a)) { var s = e.ford[a]; if (e[s]) { if (i[s] = x(e[s], t, !0), void 0 !== i[s].bgcolor && (e.bgcolinuse = !0), o[t].BUG_ie_clipPath && void 0 !== e.clipPath && e.clipPath.use && void 0 !== i[s].transform.clip) { var n = "rectangle" === e.clipPath.type ? 100 - parseInt(i[s].transform.clip) : 100 - Math.min(100, 2 * parseInt(i[s].transform.clip)); switch (e.clipPath.origin) { case"clr": case"rb": case"rt": case"r": e[s + "_mask"] = "u:t;x:" + n + "%;y:0px;", i[s].transform.x = o.revToResp("-" + n + "%", o[t].rle); break; case"crl": case"lb": case"lt": case"cv": case"l": e[s + "_mask"] = "u:t;x:-" + n + "%;y:0px;", i[s].transform.x = o.revToResp(n + "%", o[t].rle); break; case"ch": case"t": e[s + "_mask"] = "u:t;y:-" + n + "%;y:0px;", i[s].transform.y = o.revToResp(n + "%", o[t].rle); break; case"b": e[s + "_mask"] = "u:t;y:" + n + "%;y:0px;", i[s].transform.y = o.revToResp("-" + n + "%", o[t].rle) } delete i[s].transform.clip, delete i[s].transform.clipB } e[s + "_mask"] && (i[s].mask = x(e[s + "_mask"], t).transform), null != i[s].mask && i[s].mask.use ? (i[s].mask.x = void 0 === i[s].mask.x ? 0 : i[s].mask.x, i[s].mask.y = void 0 === i[s].mask.y ? 0 : i[s].mask.y, delete i[s].mask.use, i[s].mask.overflow = "hidden") : i[s].mask = { ease: "default", overflow: "visible" }, e[s + "_chars"] && (i[s].chars = x(e[s + "_chars"], t, void 0, void 0, "split").transform), e[s + "_words"] && (i[s].words = x(e[s + "_words"], t, void 0, void 0, "split").transform), e[s + "_lines"] && (i[s].lines = x(e[s + "_lines"], t, void 0, void 0, "split").transform), (e[s + "_chars"] || e[s + "_words"] || e[s + "_lines"]) && (i[s].dosplit = !0), i.frame_0 = void 0 === i.frame_0 ? {transform: {}} : i.frame_0, i[s].transform.auto && (i[s].transform = o.clone(i.frame_0.transform), i[s].transform.opacity = void 0 === i[s].transform.opacity ? 0 : i[s].transform.opacity, void 0 !== i.frame_0.filter && (i[s].filter = o.clone(i.frame_0.filter)), void 0 !== i.frame_0.mask && (i[s].mask = o.clone(i.frame_0.mask)), void 0 !== i.frame_0.chars && (i[s].chars = o.clone(i.frame_0.chars)), void 0 !== i.frame_0.words && (i[s].words = o.clone(i.frame_0.words)), void 0 !== i.frame_0.lines && (i[s].lines = o.clone(i.frame_0.lines)), void 0 === i.frame_0.chars && void 0 === i.frame_0.words && void 0 === i.frame_0.lines || (i[s].dosplit = !0)), e[s + "_sfx"] && (i[s].sfx = x(e[s + "_sfx"], t, !1, void 0, "sfx").transform), e[s + "_reverse"] && (i[s].reverse = x(e[s + "_reverse"], t, !1, void 0, "reverse").transform) } } if (i.frame_0.dosplit && (i.frame_1.dosplit = !0), void 0 === e.frame_hover && void 0 === e.svgh || (i.frame_hover = x(void 0 === e.frame_hover ? "" : e.frame_hover, t), !o.ISM || "true" != i.frame_hover.transform.instantClick && 1 != i.frame_hover.transform.instantClick ? (delete i.frame_hover.transform.instantClick, i.frame_hover.transform.color = i.frame_hover.color, void 0 === i.frame_hover.transform.color && delete i.frame_hover.transform.color, void 0 !== i.frame_hover.bgcolor && i.frame_hover.bgcolor.indexOf("gradient") >= 0 ? i.frame_hover.transform.backgroundImage = i.frame_hover.bgcolor : void 0 !== i.frame_hover.bgcolor && (i.frame_hover.transform.backgroundColor = i.frame_hover.bgcolor), void 0 !== i.frame_hover.bgcolor && (e.bgcolinuse = !0), i.frame_hover.transform.opacity = void 0 === i.frame_hover.transform.opacity ? 1 : i.frame_hover.transform.opacity, i.frame_hover.mask = void 0 !== i.frame_hover.transform.mask && i.frame_hover.transform.mask, delete i.frame_hover.transform.mask, void 0 !== i.frame_hover.transform && ((i.frame_hover.transform.borderWidth || i.frame_hover.transform.borderStyle) && (i.frame_hover.transform.borderColor = void 0 === i.frame_hover.transform.borderColor ? "transparent" : i.frame_hover.transform.borderColor), "none" !== i.frame_hover.transform.borderStyle && void 0 === i.frame_hover.transform.borderWidth && (i.frame_hover.transform.borderWidth = o.revToResp(0, 4, 0).toString().replace(/,/g, " ")), void 0 === e.bordercolor && void 0 !== i.frame_hover.transform.borderColor && (e.bordercolor = "transparent"), void 0 === e.borderwidth && void 0 !== i.frame_hover.transform.borderWidth && (e.borderwidth = o.revToResp(i.frame_hover.transform.borderWidth, 4, 0)), void 0 === e.borderstyle && void 0 !== i.frame_hover.transform.borderStyle && (e.borderstyle = o.revToResp(i.frame_hover.transform.borderStyle, 4, 0)))) : delete i.frame_hover), void 0 !== e.tloop) { e.layerLoop = {from: "frame_1", to: "frame_999", repeat: -1, keep: !0, children: !0}; var l = e.tloop.split(";"); for (var a in l) if (l.hasOwnProperty(a)) { var d = l[a].split(":"); switch (d[0]) { case"f": e.layerLoop.from = d[1]; break; case"t": e.layerLoop.to = d[1]; break; case"k": e.layerLoop.keep = d[1]; break; case"r": e.layerLoop.repeat = parseInt(d[1], 0); break; case"c": e.layerLoop.children = d[1] } } e.layerLoop.count = 0 } for (var a in (e.loop_0 || e.loop_999) && (i.loop = x(e.loop_999, t, !0, "frame_999", "loop"), i.loop.frame_0 = x(e.loop_0 || "", t, !1, void 0, "loop").transform), i.frame_0.transform.opacity = void 0 === i.frame_0.transform.opacity ? 0 : i.frame_0.transform.opacity, i.frame_1.transform.opacity = void 0 === i.frame_1.transform.opacity ? 1 : i.frame_1.transform.opacity, i.frame_999.transform.opacity = void 0 === i.frame_999.transform.opacity ? "inherit" : i.frame_999.transform.opacity, e.clipPath && e.clipPath.use && (i.frame_0.transform.clip = void 0 === i.frame_0.transform.clip ? 100 : parseInt(i.frame_0.transform.clip), i.frame_1.transform.clip = void 0 === i.frame_1.transform.clip ? 100 : parseInt(i.frame_1.transform.clip)), e.resetfilter = !1, e.useFilter = { blur: !1, grayscale: !1, brightness: !1, b_blur: !1, b_grayscale: !1, b_brightness: !1, b_invert: !1, b_sepia: !1 }, i) void 0 !== i[a].filter ? (e.resetfilter = !0, e.useFilter = O(e.useFilter, i[a].filter)) : null == i[a].filter && (i[a].filter = {}, e.useFilter.blur && (i[a].filter.blur = 0), e.useFilter.grayscale && (i[a].filter.grayscale = 0), e.useFilter.brightness && (i[a].filter.brightness = 100), e.useFilter.b_blur && (i[a].filter.b_blur = 0), e.useFilter.b_grayscale && (i[a].filter.b_grayscale = 0), e.useFilter.b_brightness && (i[a].filter.b_brightness = 100)); if (!0 !== e.resetFilter && void 0 !== i.frame_hover && (e.useFilter = O(e.useFilter, i.frame_hover)), e.resetfilter) for (var a in i.frame_0.filter = o.clone(i.frame_0.filter), i.frame_0.filter = L(e.useFilter, o.clone(i.frame_0.filter)), i) void 0 !== i[a].filter && "frame_1" !== a && "frame_0" !== a && (i[a].filter = o.clone(i[a].filter), i[a].filter = L(e.useFilter, o.clone(i[a].filter))); return void 0 !== i.frame_0.filter && (i.frame_1.filter = o.clone(i.frame_1.filter), void 0 !== i.frame_0.filter.blur && 0 !== i.frame_1.filter.blur && (i.frame_1.filter.blur = void 0 === i.frame_1.filter.blur ? 0 : i.frame_1.filter.blur), void 0 !== i.frame_0.filter.brightness && 100 !== i.frame_1.filter.brightness && (i.frame_1.filter.brightness = void 0 === i.frame_1.filter.brightness ? 100 : i.frame_1.filter.brightness), void 0 !== i.frame_0.filter.grayscale && 0 !== i.frame_1.filter.grayscale && (i.frame_1.filter.grayscale = void 0 === i.frame_1.filter.grayscale ? 0 : i.frame_1.filter.grayscale), void 0 !== i.frame_0.filter.b_blur && 0 !== i.frame_1.filter.b_blur && (i.frame_1.filter.b_blur = void 0 === i.frame_1.filter.b_blur ? 0 : i.frame_1.filter.b_blur), void 0 !== i.frame_0.filter.b_brightness && 100 !== i.frame_1.filter.b_brightness && (i.frame_1.filter.b_brightness = void 0 === i.frame_1.filter.b_brightness ? 100 : i.frame_1.filter.b_brightness), void 0 !== i.frame_0.filter.b_grayscale && 0 !== i.frame_1.filter.b_grayscale && (i.frame_1.filter.b_grayscale = void 0 === i.frame_1.filter.b_grayscale ? 0 : i.frame_1.filter.b_grayscale), void 0 !== i.frame_0.filter.b_invert && 0 !== i.frame_1.filter.b_invert && (i.frame_1.filter.b_invert = void 0 === i.frame_1.filter.b_invert ? 0 : i.frame_1.filter.b_invert), void 0 !== i.frame_0.filter.b_sepia && 0 !== i.frame_1.filter.b_sepia && (i.frame_1.filter.b_sepia = void 0 === i.frame_1.filter.b_sepia ? 0 : i.frame_1.filter.b_sepia)), I(i, t, e) }, L = function (e, t) { return e.blur ? t.blur = void 0 === t.blur ? 0 : t.blur : delete t.blur, e.brightness ? t.brightness = void 0 === t.brightness ? 100 : t.brightness : delete t.brightness, e.grayscale ? t.grayscale = void 0 === t.grayscale ? 0 : t.grayscale : delete t.grayscale, e.b_blur ? t.b_blur = void 0 === t.b_blur ? 0 : t.b_blur : delete t.b_blur, e.b_brightness ? t.b_brightness = void 0 === t.b_brightness ? 100 : t.b_brightness : delete t.b_brightness, e.b_grayscale ? t.b_grayscale = void 0 === t.b_grayscale ? 0 : t.b_grayscale : delete t.b_grayscale, e.b_invert ? t.b_invert = void 0 === t.b_invert ? 0 : t.b_invert : delete t.b_invert, e.b_sepia ? t.b_sepia = void 0 === t.b_sepia ? 0 : t.b_sepia : delete t.b_sepia, t }, O = function (e, t) { return e.blur = !0 === e.blur || void 0 !== t.blur && 0 !== t.blur && "0px" !== t.blur, e.grayscale = !0 === e.grayscale || void 0 !== t.grayscale && 0 !== t.grayscale && "0%" !== t.grayscale, e.brightness = !0 === e.brightness || void 0 !== t.brightness && 100 !== t.brightness && "100%" !== t.brightness, e.b_blur = !0 === e.b_blur || void 0 !== t.b_blur && 0 !== t.b_blur && "0px" !== t.b_blur, e.b_grayscale = !0 === e.b_grayscale || void 0 !== t.b_grayscale && 0 !== t.b_grayscale && "0%" !== t.b_grayscale, e.b_brightness = !0 === e.b_brightness || void 0 !== t.b_brightness && 100 !== t.b_brightness && "100%" !== t.b_brightness, e.b_invert = !0 === e.b_invert || void 0 !== t.b_invert && 0 !== t.b_invert && "0%" !== t.b_invert, e.b_sepia = !0 === e.b_sepia || void 0 !== t.b_sepia && 0 !== t.b_sepia && "0%" !== t.b_sepia, e }, R = function (e) { return void 0 !== e && (void 0 !== e.rotationY || void 0 !== e.rotationX || void 0 !== e.z) }, I = function (e, t, i) { var a, r = {}, s = ["transform", "words", "chars", "lines", "mask"], n = "global" == o[t].perspectiveType ? o[t].perspective : 0, l = !0, d = !1; for (var c in e) "loop" !== c && "frame_hover" !== c && (r = jQuery.extend(!0, r, e[c])); for (var c in e) if (e.hasOwnProperty(c) && (void 0 !== e[c].timeline && (e[c].timeline.usePerspective = !1), "loop" !== c && "frame_hover" !== c)) { for (a in r.transform) r.transform.hasOwnProperty(a) && (r.transform[a] = void 0 === e[c].transform[a] ? "frame_0" === c ? o[t]._rdF0.transform[a] : "frame_1" === c ? o[t]._rdF1.transform[a] : r.transform[a] : e[c].transform[a], e[c].transform[a] = void 0 === e[c].transform[a] ? r.transform[a] : e[c].transform[a]); for (var p = 1; p <= 4; p++) for (a in r[s[p]]) r[s[p]].hasOwnProperty(a) && (e[c][s[p]] = void 0 === e[c][s[p]] ? {} : e[c][s[p]], r[s[p]][a] = void 0 === e[c][s[p]][a] ? "frame_0" === c ? o[t]._rdF0[s[p]][a] : "frame_1" === c ? o[t]._rdF1[s[p]][a] : r[s[p]][a] : e[c][s[p]][a], e[c][s[p]][a] = void 0 === e[c][s[p]][a] ? r[s[p]][a] : e[c][s[p]][a]); void 0 !== e[c].timeline && !1 === e[c].timeline.usePerspective && void 0 !== e[c].transform && (void 0 !== e[c].transform.rotationY || void 0 !== e[c].transform.rotationX || void 0 !== e[c].transform.z || R(e[c].chars) || R(e[c].words) || R(e[c].lines)) && (n = "local" == o[t].perspectiveType ? void 0 === e[c].transform.transformPerspective ? 600 : e[c].transform.transformPerspective : n, e[c].timeline.usePerspective = !0, (R(e[c].chars) || R(e[c].words) || R(e[c].lines)) && !o.isFirefox(t) && (d = !0), l = !1) } if (d && requestAnimationFrame(function () { tpGS.gsap.set(i.c, {transformStyle: "preserve-3d"}) }), void 0 !== e.frame_0.timeline && e.frame_0.timeline.usePerspective && (e.frame_0.transform.transformPerspective = "local" === o[t].perspectiveType ? void 0 === e.frame_0.transform.transformPerspective ? n : e.frame_0.transform.transformPerspective : "isometric" === o[t].perspectiveType ? 0 : o[t].perspective), l) for (var c in e) { if (!e.hasOwnProperty(c) || void 0 === e[c].transform) continue; delete e[c].transform.transformPerspective } return e }, M = function (e, t, i) { if (0 === e.length) return {}; for (var a = e[0].getElementsByClassName(t), r = {}, o = 0; o < a.length; o++) void 0 !== i && -1 !== a[o].className.indexOf(i) || (r[a[o].id] = a[o]); if (void 0 !== e[1]) for (a = e[1].getElementsByClassName(t), o = 0; o < a.length; o++) void 0 !== i && -1 !== a[o].className.indexOf(i) || (r[a[o].id] = a[o]); return r }, T = function (e) { return "thin" === (e = o.isNumeric(e) ? e : e.toLowerCase()) ? "00" : "extra light" === e ? 200 : "light" === e ? 300 : "normal" === e ? 400 : "medium" === e ? 500 : "semi bold" === e ? 600 : "bold" === e ? 700 : "extra bold" === e ? 800 : "ultra bold" === e ? 900 : "black" === e ? 900 : e }, C = function (e, t, s) { if ("BR" == e[0].nodeName || "br" == e[0].tagName || "object" != typeof e[0].className && e[0].className.indexOf("rs_splitted_") >= 0) return !1; o.sA(e[0], "stylerecorder", !0), void 0 === e[0].id && (e[0].id = "rs-layer-sub-" + Math.round(1e6 * Math.random())), o[s].computedStyle[e[0].id] = window.getComputedStyle(e[0], null); var n = void 0 !== e[0].id && void 0 !== o[s]._L[e[0].id] ? o[s]._L[e[0].id] : e.data(), l = "rekursive" === t ? jQuery(o.closestClass(e[0], "rs-layer")) : void 0; void 0 !== l && (o[s].computedStyle[l[0].id] = void 0 === o[s].computedStyle[l[0].id] ? window.getComputedStyle(l[0], null) : o[s].computedStyle[l[0].id]); var d = void 0 !== l && o[s].computedStyle[e[0].id].fontSize == o[s].computedStyle[l[0].id].fontSize && T(o[s].computedStyle[e[0].id].fontWeight) == T(o[s].computedStyle[l[0].id].fontWeight) && o[s].computedStyle[e[0].id].lineHeight == o[s].computedStyle[l[0].id].lineHeight, c = d ? void 0 !== l[0].id && void 0 !== o[s]._L[l[0].id] ? o[s]._L[l[0].id] : l.data() : void 0, p = 0; for (n.basealign = void 0 === n.basealign ? "grid" : n.basealign, n._isnotext || (n.fontSize = o.revToResp(d ? void 0 === c.fontsize ? parseInt(o[s].computedStyle[l[0].id].fontSize, 0) || 20 : c.fontsize : void 0 === n.fontsize ? "rekursive" !== t ? 20 : "inherit" : n.fontsize, o[s].rle), n.fontWeight = o.revToResp(d ? void 0 === c.fontweight ? o[s].computedStyle[l[0].id].fontWeight || "inherit" : c.fontweight : void 0 === n.fontweight ? o[s].computedStyle[e[0].id].fontWeight || "inherit" : n.fontweight, o[s].rle), n.whiteSpace = o.revToResp(d ? void 0 === c.whitespace ? "nowrap" : c.whitespace : void 0 === n.whitespace ? "nowrap" : n.whitespace, o[s].rle), n.textAlign = o.revToResp(d ? void 0 === c.textalign ? "left" : c.textalign : void 0 === n.textalign ? "left" : n.textalign, o[s].rle), n.letterSpacing = o.revToResp(d ? void 0 === c.letterspacing ? parseInt(o[s].computedStyle[l[0].id].letterSpacing, 0) || "inherit" : c.letterspacing : void 0 === n.letterspacing ? parseInt("normal" === o[s].computedStyle[e[0].id].letterSpacing ? 0 : o[s].computedStyle[e[0].id].letterSpacing, 0) || "inherit" : n.letterspacing, o[s].rle), n.textDecoration = d ? void 0 === c.textDecoration ? "none" : c.textDecoration : void 0 === n.textDecoration ? "none" : n.textDecoration, p = 25, p = void 0 === l || "I" !== e[0].tagName && "STRONG" !== e[0].tagName ? p : "inherit", void 0 !== n.tshadow && (n.tshadow.b = o.revToResp(n.tshadow.b, o[s].rle), n.tshadow.h = o.revToResp(n.tshadow.h, o[s].rle), n.tshadow.v = o.revToResp(n.tshadow.v, o[s].rle))), "group" === n.type && (n.whiteSpace = "normal", n.textAlign = o.revToResp(d ? void 0 === c.textalign ? "left" : c.textalign : void 0 === n.textalign ? "left" : n.textalign, o[s].rle)), void 0 !== n.bshadow && (n.bshadow.b = o.revToResp(n.bshadow.b, o[s].rle), n.bshadow.h = o.revToResp(n.bshadow.h, o[s].rle), n.bshadow.v = o.revToResp(n.bshadow.v, o[s].rle), n.bshadow.s = o.revToResp(n.bshadow.s, o[s].rle)), void 0 !== n.tstroke && (n.tstroke.w = o.revToResp(n.tstroke.w, o[s].rle)), n.display = d ? void 0 === c.display ? o[s].computedStyle[l[0].id].display : c.display : void 0 === n.display ? o[s].computedStyle[e[0].id].display : n.display, n.float = o.revToResp(d ? void 0 === c.float ? o[s].computedStyle[l[0].id].float || "none" : c.float : void 0 === n.float ? "none" : n.float, o[s].rle), n.clear = o.revToResp(d ? void 0 === c.clear ? o[s].computedStyle[l[0].id].clear || "none" : c.clear : void 0 === n.clear ? "none" : n.clear, o[s].rle), n.lineHeight = o.revToResp(e.is("img") || -1 != jQuery.inArray(n.layertype, ["video", "image", "audio"]) ? p : d ? void 0 === c.lineheight ? parseInt(o[s].computedStyle[l[0].id].lineHeight, 0) || p : c.lineheight : void 0 === n.lineheight ? p : n.lineheight, o[s].rle), n.zIndex = d ? void 0 === c.zindex ? parseInt(o[s].computedStyle[l[0].id].zIndex, 0) || "inherit" : c.zindex : void 0 === n.zindex ? parseInt(o[s].computedStyle[e[0].id].zIndex, 0) || "inherit" : parseInt(n.zindex), g = 0; g < 4; g++) n["padding" + i[g]] = o.revToResp(void 0 === n["padding" + r[g]] ? parseInt(o[s].computedStyle[e[0].id]["padding" + i[g]], 0) || 0 : n["padding" + r[g]], o[s].rle), n["margin" + i[g]] = o.revToResp(void 0 === n["margin" + r[g]] ? parseInt(o[s].computedStyle[e[0].id]["margin" + i[g]], 0) || 0 : n["margin" + r[g]], o[s].rle), n["border" + i[g] + "Width"] = void 0 === n.borderwidth ? parseInt(o[s].computedStyle[e[0].id]["border" + i[g] + "Width"], 0) || 0 : n.borderwidth[g], n["border" + i[g] + "Color"] = void 0 === n.bordercolor ? o[s].computedStyle[e[0].id]["border-" + r[g] + "-color"] : n.bordercolor, n["border" + a[g] + "Radius"] = o.revToResp(void 0 === n.borderradius ? o[s].computedStyle[e[0].id]["border" + a[g] + "Radius"] || 0 : n.borderradius[g], o[s].rle); if (n.borderStyle = o.revToResp(void 0 === n.borderstyle ? o[s].computedStyle[e[0].id].borderStyle || 0 : n.borderstyle, o[s].rle), "rekursive" !== t ? (n.color = o.revToResp(void 0 === n.color ? "#ffffff" : n.color, o[s].rle, void 0, "||"), n.minWidth = o.revToResp(void 0 === n.minwidth ? parseInt(o[s].computedStyle[e[0].id].minWidth, 0) || 0 : n.minwidth, o[s].rle), n.minHeight = o.revToResp(void 0 === n.minheight ? parseInt(o[s].computedStyle[e[0].id].minHeight, 0) || 0 : n.minheight, o[s].rle), n.width = o.revToResp(void 0 === n.width ? "auto" : o.smartConvertDivs(n.width), o[s].rle), n.height = o.revToResp(void 0 === n.height ? "auto" : o.smartConvertDivs(n.height), o[s].rle), n.maxWidth = o.revToResp(void 0 === n.maxwidth ? parseInt(o[s].computedStyle[e[0].id].maxWidth, 0) || "none" : n.maxwidth, o[s].rle), n.maxHeight = o.revToResp(-1 !== jQuery.inArray(n.type, ["column", "row"]) ? "none" : void 0 !== n.maxheight ? parseInt(o[s].computedStyle[e[0].id].maxHeight, 0) || "none" : n.maxheight, o[s].rle)) : "html" === n.layertype && (n.width = o.revToResp(e[0].width, o[s].rle), n.height = o.revToResp(e[0].height, o[s].rle)), n._incolumn) for (var g = 0; g < n.height.length; g++) -1 !== n.height[g].indexOf("%") && parseFloat(n.height[g]) > 98 && (n.height[g] = n.height[g].replace("%", "px")); for (n.styleProps = { background: e[0].style.background, "background-color": e[0].style["background-color"], color: e[0].style.color, cursor: e[0].style.cursor, "font-style": e[0].style["font-style"] }, null == n.bshadow && (n.styleProps.boxShadow = e[0].style.boxShadow), "" !== n.styleProps.background && void 0 !== n.styleProps.background && n.styleProps.background !== n.styleProps["background-color"] || delete n.styleProps.background, "" == n.styleProps.color && (n.styleProps.color = o[s].computedStyle[e[0].id].color), g = 0; g < 4; g++) A(n["padding" + i[g]], 0) && delete n["padding" + i[g]], A(n["margin" + i[g]], 0) && delete n["margin" + i[g]], A(n["border" + a[g] + "Radius"], "0px") ? delete n["border" + a[g] + "Radius"] : A(n["border" + a[g] + "Radius"], "0") && delete n["border" + a[g] + "Radius"]; if (A(n.borderStyle, "none")) for (delete n.borderStyle, g = 0; g < 4; g++) delete n["border" + i[g] + "Width"], delete n["border" + i[g] + "Color"] }, A = function (e, t) { return t === e[0] && t === e[1] && t === e[2] && t === e[3] }, D = function (e, t, i, a, r) { var s = o.isNumeric(e) || void 0 === e ? "" : e.indexOf("px") >= 0 ? "px" : e.indexOf("%") >= 0 ? "%" : ""; return e = o.isNumeric(parseInt(e)) ? parseInt(e) : e, e = null == (e = "full" === (e = o.isNumeric(e) ? e * t + s : e) ? a : "auto" === e || "none" === e ? i : e) ? r : e }, P = function (e) { return null != e && 0 !== parseInt(e, 0) }, B = function (e) { var t, s, n, l, d, c, p, g, u, h, m = e.a, v = e.b, f = e.c, y = e.d, w = e.e, b = {}, _ = {}, S = o[v]._L[m[0].id], x = m[0].className; if (S = void 0 === S ? {} : S, "object" == typeof x && (x = ""), void 0 !== m && void 0 !== m[0] && (x.indexOf("rs_splitted") >= 0 || "BR" == m[0].nodeName || "br" == m[0].tagName || m[0].tagName.indexOf("FCR") > 0 || m[0].tagName.indexOf("BCR") > 0)) return !1; w = "individual" === w ? S.slideIndex : w; var k, L = function (e, t, r) { if (void 0 !== e) { if ("BR" == e[0].nodeName || "br" == e[0].tagName) return !1; var s, n = o[t].level, l = void 0 !== e[0] && void 0 !== e[0].id && void 0 !== o[t]._L[e[0].id] ? o[t]._L[e[0].id] : e.data(); void 0 === (l = void 0 === l.basealign ? r.data() : l)._isnotext && (l._isnotext = void 0 !== r && void 0 !== r[0] && r[0].length > 0 ? o.gA(r[0], "_isnotext") : l._isnotext); var d = { basealign: void 0 === l.basealign ? "grid" : l.basealign, lineHeight: void 0 === l.basealign ? "inherit" : parseInt(l.lineHeight[n]), color: void 0 === l.color ? void 0 : l.color[n], width: void 0 === l.width ? void 0 : "a" === l.width[n] ? "auto" : l.width[n], height: void 0 === l.height ? void 0 : "a" === l.height[n] ? "auto" : l.height[n], minWidth: void 0 === l.minWidth ? void 0 : "n" === l.minWidth[n] ? "none" : l.minWidth[n], minHeight: void 0 === l.minHeight ? void 0 : "n" == l.minHeight[n] ? "none" : l.minHeight[n], maxWidth: void 0 === l.maxWidth ? void 0 : "n" == l.maxWidth[n] ? "none" : l.maxWidth[n], maxHeight: void 0 === l.maxHeight ? void 0 : "n" == l.maxHeight[n] ? "none" : l.maxHeight[n], float: l.float[n], clear: l.clear[n] }; for (l.borderStyle && (d.borderStyle = l.borderStyle[n]), s = 0; s < 4; s++) l["padding" + i[s]] && (d["padding" + i[s]] = l["padding" + i[s]][n]), l["margin" + i[s]] && (d["margin" + i[s]] = parseInt(l["margin" + i[s]][n])), l["border" + a[s] + "Radius"] && (d["border" + a[s] + "Radius"] = l["border" + a[s] + "Radius"][n]), void 0 !== d.borderStyle && "none" !== d.borderStyle && (l["border" + i[s] + "Color"] && (d["border" + i[s] + "Color"] = l["border" + i[s] + "Color"]), l["border" + i[s] + "Width"] && (d["border" + i[s] + "Width"] = parseInt(l["border" + i[s] + "Width"]))); return l._isnotext || (d.textDecoration = l.textDecoration, d.fontSize = parseInt(l.fontSize[n]), d.fontWeight = parseInt(l.fontWeight[n]), d.letterSpacing = parseInt(l.letterSpacing[n]) || 0, d.textAlign = l.textAlign[n], d.whiteSpace = l.whiteSpace[n], d.whiteSpace = "normal" === d.whiteSpace && "auto" === d.width && (!0 !== l._incolumn && !0 !== l._ingroup || "relative" !== l.position) ? "nowrap" : d.whiteSpace, d.display = l.display, void 0 !== l.tshadow && (d.textShadow = parseInt(l.tshadow.h[n], 0) + "px " + parseInt(l.tshadow.v[n], 0) + "px " + l.tshadow.b[n] + " " + l.tshadow.c), void 0 !== l.tstroke && (d.textStroke = parseInt(l.tstroke.w[n], 0) + "px " + l.tstroke.c)), "group" === l.type && (d.whiteSpace = l.whiteSpace, d.textAlign = l.textAlign[n], d.display = l.display), void 0 !== l.bshadow && (d.boxShadow = parseInt(l.bshadow.h[n], 0) + "px " + parseInt(l.bshadow.v[n], 0) + "px " + parseInt(l.bshadow.b[n], 0) + "px " + parseInt(l.bshadow.s[n], 0) + "px " + l.bshadow.c), d } }(m, v, e.RSL), O = "off" === y ? 1 : o[v].CM.w; if (void 0 === S._isnotext && (S._isnotext = void 0 !== L.RSL && void 0 !== L.RSL[0] && L.RSL[0].length > 0 ? o.gA(L.RSL[0], "_isnotext") : S._isnotext), S._incolumn && ("shape" === S.type || "text" === S.type || "button" === S.type) && ("" + L.height).indexOf(!1) && (L.height = L.height), S.OBJUPD = null == S.OBJUPD ? {} : S.OBJUPD, S.caches = null == S.caches ? {} : S.caches, "column" === S.type) { for (s = {}, k = {}, t = 0; t < 4; t++) void 0 !== L["margin" + i[t]] && (s["padding" + i[t]] = Math.round(L["margin" + i[t]] * O) + "px", k["margin" + i[t]] = L["margin" + i[t]], delete L["margin" + i[t]]); jQuery.isEmptyObject(s) || tpGS.gsap.set(S._column, s) } var R = o.clone(S.OBJUPD.POBJ), I = o.clone(S.OBJUPD.LPOBJ); if (-1 === x.indexOf("rs_splitted_")) { for (s = {overwrite: "auto"}, t = 0; t < 4; t++) void 0 !== L["border" + a[t] + "Radius"] && (s["border" + a[t] + "Radius"] = L["border" + a[t] + "Radius"]), void 0 !== L["padding" + i[t]] && (s["padding" + i[t]] = Math.round(L["padding" + i[t]] * O) + "px"), void 0 === L["margin" + i[t]] || S._incolumn || S._ingroup && "absolute" != S.position || (s["margin" + i[t]] = "row" === S.type ? 0 : Math.round(L["margin" + i[t]] * O) + "px"); if (void 0 !== S.spike && (s["clip-path"] = s["-webkit-clip-path"] = S.spike), L.boxShadow && (s.boxShadow = L.boxShadow), "column" !== S.type && (void 0 !== L.borderStyle && "none" !== L.borderStyle && (0 !== L.borderTopWidth || L.borderBottomWidth > 0 || L.borderLeftWidth > 0 || L.borderRightWidth > 0) ? (s.borderTopWidth = Math.round(L.borderTopWidth * O) + "px", s.borderBottomWidth = Math.round(L.borderBottomWidth * O) + "px", s.borderLeftWidth = Math.round(L.borderLeftWidth * O) + "px", s.borderRightWidth = Math.round(L.borderRightWidth * O) + "px", s.borderStyle = L.borderStyle, s.borderTopColor = L.borderTopColor, s.borderBottomColor = L.borderBottomColor, s.borderLeftColor = L.borderLeftColor, s.borderRightColor = L.borderRightColor) : ("none" === L.borderStyle && (s.borderStyle = "none"), void 0 !== L.borderTopColor && (s.borderTopColor = L.borderTopColor), void 0 !== L.borderBottomColor && (s.borderBottomColor = L.borderBottomColor), void 0 !== L.borderLeftColor && (s.borderLeftColor = L.borderLeftColor), void 0 !== L.borderRightColor && (s.borderRightColor = L.borderRightColor))), "shape" !== S.type && "image" !== S.type || !(P(L.borderTopLeftRadius) || P(L.borderTopRightRadius) || P(L.borderBottomLeftRadius) || P(L.borderBottomRightRadius)) || (s.overflow = "hidden"), S._isnotext || ("column" !== S.type && (s.fontSize = Math.round(L.fontSize * O) + "px", s.fontWeight = L.fontWeight, s.letterSpacing = L.letterSpacing * O + "px", L.textShadow && (s.textShadow = L.textShadow), L.textStroke && (s["-webkit-text-stroke"] = L.textStroke)), s.lineHeight = Math.round(L.lineHeight * O) + "px", s.textAlign = L.textAlign), "video" === S.type && S.html5vid && void 0 !== S.deepmedia && void 0 !== S.deepmedia[0] && null != S.deepmedia[0].parentNode && (P(L.borderTopLeftRadius) || P(L.borderTopRightRadius) || P(L.borderBottomLeftRadius) || P(L.borderBottomRightRadius)) && tpGS.gsap.set(S.deepmedia[0].parentNode, function (e) { var t = o.clone(e); return t.top = 0 - ((parseInt(t.borderTopWidth) || 0) + (parseInt(t.borderBottomWidth) || 0)) / 2 + "px", t.left = 0 - ((parseInt(t.borderLeftWidth) || 0) + (parseInt(t.borderRightWidth) || 0)) / 2 + "px", t.borderStyle = void 0 !== t.borderTopWidth || void 0 !== t.borderBottomWidth || void 0 !== t.borderLeftWidth || void 0 !== t.borderRightWidth ? "solid" : "none", t.borderColor = "transparent", t.boxSizing = "content-box", t }(s)), "column" === S.type && void 0 !== S.cbg && (void 0 === S.cbg_set && (S.cbg_set = S.styleProps["background-color"], S.cbg_set = "" == S.cbg_set || void 0 === S.cbg_set || 0 == S.cbg_set.length ? "transparent" : S.cbg_set, S.cbg_img = void 0 !== m[0].dataset.bglazy ? 'url("' + m[0].dataset.bglazy + '")' : m.css("backgroundImage"), "" !== S.cbg_img && void 0 !== S.cbg_img && "none" !== S.cbg_img && (S.cbg_img_r = m.css("backgroundRepeat"), S.cbg_img_p = m.css("backgroundPosition"), S.cbg_img_s = m.css("backgroundSize")), S.cbg_o = S.bgopacity ? 1 : S.bgopacity, b.backgroundColor = "transparent", b.backgroundImage = ""), s.backgroundColor = "transparent", s.backgroundImage = "none"), S._isstatic && S.elementHovered && (p = m.data("frames")) && p.frame_hover && p.frame_hover.transform) for (g in s) s.hasOwnProperty(g) && p.frame_hover.transform.hasOwnProperty(g) && delete s[g]; if ("IFRAME" == m[0].nodeName && "html" === o.gA(m[0], "layertype") && (u = "slide" == L.basealign ? o[v].module.width : o.iWA(v, w), h = "slide" == L.basealign || "carousel" == o[v].sliderType && "v" === o[v].carousel.orientation ? o[v].module.height : o.iHE(v), s.width = !o.isNumeric(L.width) && L.width.indexOf("%") >= 0 ? !S._isstatic || S._incolumn || S._ingroup ? L.width : u * parseInt(L.width, 0) / 100 : D(L.width, O, "auto", u, "auto"), s.height = !o.isNumeric(L.height) && L.height.indexOf("%") >= 0 ? !S._isstatic || S._incolumn || S._ingroup ? L.height : h * parseInt(L.height, 0) / 100 : D(L.height, O, "auto", u, "auto")), b = jQuery.extend(!0, b, s), o[v].firstLayerCalculated = !0, "rekursive" != f) { u = "slide" == L.basealign ? o[v].module.width : o.iWA(v, w), h = "slide" == L.basealign || "carousel" == o[v].sliderType && "v" === o[v].carousel.orientation ? o[v].module.height : o.iHE(v); var M = !o.isNumeric(L.width) && L.width.indexOf("%") >= 0 ? !S._isstatic || S._incolumn || S._ingroup ? L.width : u * parseInt(L.width, 0) / 100 : D(L.width, O, "auto", u, "auto"), T = !o.isNumeric(L.height) && L.height.indexOf("%") >= 0 ? !S._isstatic || S._incolumn || S._ingroup ? L.height : h * parseInt(L.height, 0) / 100 : D(L.height, O, "auto", u, "auto"), C = { maxWidth: D(L.maxWidth, O, "none", u, "none"), maxHeight: D(L.maxHeight, O, "none", h, "none"), minWidth: D(L.minWidth, O, "0px", u, 0), minHeight: D(L.minHeight, O, "0px", h, 0), height: T, width: M, overwrite: "auto" }; 1 == S.heightSetByVideo && (C.height = S.vidOBJ.height); var A = !1; if (S._incolumn) { for (R = jQuery.extend(!0, R, { minWidth: M, maxWidth: M, float: L.float, clear: L.clear }), t = 0; t < 4; t++) void 0 !== L["margin" + i[t]] && (R["margin" + i[t]] = L["margin" + i[t]] * O + "px"); I.width = "100%", void 0 !== L.display && "inline-block" !== L.display || (_ = {width: "100%"}), C.width = !o.isNumeric(L.width) && L.width.indexOf("%") >= 0 ? "100%" : M, "image" === S.type && tpGS.gsap.set(S.img, {width: "100%"}) } else !o.isNumeric(L.width) && L.width.indexOf("%") >= 0 && (S._isgroup && "absolute" === S.position || (!0 === S._ingroup || 1 == S._incolumn) && "relative" === S.position || void 0 !== S.reqWrp && (!S.reqWrp.loop || !S.reqWrp.mask) ? R.width = "slide" === S.basealign || !0 === S._ingroup || S._isstatic ? M : o.iWA(v, w) * o[v].CM.w * parseInt(M) / 100 + "px" : R.minWidth = "slide" === S.basealign || !0 === S._ingroup || S._isstatic ? M : o.iWA(v, w) * o[v].CM.w * parseInt(M) / 100 + "px", I.width = "100%", _.width = "100%"); if (!0 === S._ingroup && "relative" === S.position && (R.float = L.float, R.lineHeight = L.lineHeight + "px", b.verticalAlign = "top", _.verticalAlign = "top", I.verticalAlign = "top", R.verticalAlign = "inherit"), !o.isNumeric(L.height) && L.height.indexOf("%") >= 0 && (R.minHeight = "slide" === S.basealign || !0 === S._ingroup || S._isstatic ? T : o.iHE(v) * (o[v].currentRowsHeight > o[v].gridheight[o[v].level] ? 1 : o[v].CM.w) * parseInt(T) / 100 + "px", void 0 === S.reqWrp || S.reqWrp.loop || S.reqWrp.mask || (R.height = R.minHeight), I.height = "100%", _.height = "100%", A = !0), S._isnotext ? "group" == S.type && (C.whiteSpace = "normal") : (C.whiteSpace = L.whiteSpace, C.textAlign = L.textAlign, C.textDecoration = L.textDecoration), "npc" != L.color && void 0 !== L.color && (C.color = L.color), S._ingroup && (S._groupw = C.minWidth, S._grouph = C.minHeight), "row" === S.type && (o.isNumeric(C.minHeight) || C.minHeight.indexOf("px") >= 0) && "0px" !== C.minHeight && 0 !== C.minHeight && "0" !== C.minHeight && "none" !== C.minHeight ? C.height = C.minHeight : "row" === S.type && (C.height = "auto"), S._isstatic && S.elementHovered && (p = m.data("frames")) && p.frame_hover && p.frame_hover.transform) for (g in C) C.hasOwnProperty(g) && p.frame_hover.transform.hasOwnProperty(g) && delete C[g]; if ("group" !== S.type && "row" !== S.type && "column" !== S.type && (!o.isNumeric(C.width) && C.width.indexOf("%") >= 0 && (C.width = "100%"), !o.isNumeric(C.height) && C.height.indexOf("%") >= 0 && (C.height = "100%")), S._isgroup) { for (!o.isNumeric(C.width) && C.width.indexOf("%") >= 0 && (C.width = "100%"), "absolute" != S.position || S._ingroup || S._incolumn || !A ? R.height = A ? "100%" : C.height : (R.height = R.minHeight, C.height = "100%"), C.lineHeight = void 0 === L.lineHeight || A ? "initial" : L.lineHeight + "px", C.verticalAlign = S.verticalalign, C.textAlign = L.textAlign, t = 0; t < 4; t++) void 0 !== b["border" + a[t] + "Radius"] && (_["border" + a[t] + "Radius"] = b["border" + a[t] + "Radius"]); "relative" == S.position && void 0 !== L.display && (R.display = L.display), "auto" == L.width && (_.position = "relative") } b = jQuery.extend(!0, b, C), null != S.svg_src && void 0 !== S.svgI && ("string" == typeof S.svgI.fill && (S.svgI.fill = [S.svgI.fill]), S.svgTemp = o.clone(S.svgI), delete S.svgTemp.svgAll, void 0 !== S.svgTemp.fill && !0 !== (S.elementHovered && S._isstatic) && (S.svgTemp.fill = S.svgTemp.fill[o[v].level], S.svg.length <= 0 && (S.svg = m.find("svg")), S.svgPath.length <= 0 && (S.svgPath = S.svg.find(S.svgI.svgAll ? "path, circle, ellipse, line, polygon, polyline, rect" : "path")), tpGS.gsap.set(S.svgPath, {fill: S.svgI.fill[o[v].level]})), tpGS.gsap.set(S.svg, S.svgTemp)) } if ("row" === S.type) for (t = 0; t < 4; t++) void 0 !== L["margin" + i[t]] && (R["padding" + i[t]] = L["margin" + i[t]] * O + "px"); if (S._ingroup && "relative" == S.position) { for (t = 0; t < 4; t++) void 0 !== L["margin" + i[t]] && (R["margin" + i[t]] = L["margin" + i[t]] * O + "px"); "shape" === S.type && "100%" == _.width && "100%" == _.height && (_.position = "absolute") } if ("column" === S.type && S.cbg && S.cbg.length > 0) { for (void 0 !== S.cbg_img_s && void 0 !== S.cbg && (S.cbg[0].style.backgroundSize = S.cbg_img_s), s = {}, "" !== S.styleProps.cursor && (s.cursor = S.styleProps.cursor), "" !== S.cbg_set && "transparent" !== S.cbg_set && (s.backgroundColor = S.cbg_set), "" !== S.cbg_img && "none" !== S.cbg_img && (s.backgroundImage = S.cbg_img, "" !== S.cbg_img_r && (s.backgroundRepeat = S.cbg_img_r), "" !== S.cbg_img_p && (s.backgroundPosition = S.cbg_img_p)), "" !== S.cbg_o && void 0 !== S.cbg_o && (s.opacity = S.cbg_o), t = 0; t < 4; t++) void 0 !== L.borderStyle && "none" !== L.borderStyle && (void 0 !== L["border" + i[t] + "Width"] && (s["border" + i[t] + "Width"] = Math.round(parseInt(L["border" + i[t] + "Width"]) * O) + "px"), void 0 !== L["border" + i[t] + "Color"] && (s["border" + i[t] + "Color"] = L["border" + i[t] + "Color"])), L["border" + a[t] + "Radius"] && (s["border" + a[t] + "Radius"] = L["border" + a[t] + "Radius"]); for (void 0 !== L.borderStyle && "none" !== L.borderStyle && (s.borderStyle = L.borderStyle), (n = JSON.stringify(s)) !== o[v].emptyObject && n !== S.caches.cbgS && tpGS.gsap.set(S.cbg, s), S.caches.cbgS = n, s = {}, t = 0; t < 4; t++) k["margin" + i[t]] && (s[r[t]] = k["margin" + i[t]] * O + "px"); (n = JSON.stringify(s)) !== o[v].emptyObject && n !== S.caches.cbgmaskS && (tpGS.gsap.set(S.cbgmask, s), S.caches.cbgmaskS = n) } for (var B in void 0 === S.reqWrp || S.reqWrp.loop || S.reqWrp.mask || "100%" != b.width || "100%" != b.height || (b.position = "absolute"), "auto" === R.maxWidth && (R.maxWidth = "inherit"), "auto" === R.maxHeight && (R.maxHeight = "inherit"), "auto" === _.maxWidth && (_.maxWidth = "inherit"), "auto" === _.maxHeight && (_.maxHeight = "inherit"), "auto" === I.maxWidth && (I.maxWidth = "inherit"), "auto" === I.maxHeight && (I.maxHeight = "inherit"), S.fullinset && 1 == S._ingroup && "absolute" === S.position && (R.width = "auto", R.minHeight = "auto", R.height = "auto", R.left = void 0 !== b.marginLeft && "0px" !== b.marginLeft ? b.marginLeft : "0px", R.right = void 0 !== b.marginRight && "0px" !== b.marginRight ? b.marginRight : "0px", R.top = void 0 !== b.marginTop && "0px" !== b.marginTop ? b.marginTop : "0px", R.bottom = void 0 !== b.marginBottom && "0px" !== b.marginBottom ? b.marginBottom : "0px", delete b.marginLeft, delete b.marginRight, delete b.marginTop, delete b.marginBottom), void 0 !== S.vidOBJ && (b.width = S.vidOBJ.width, b.height = S.vidOBJ.height), void 0 !== S.OBJUPD.lppmOBJ && (void 0 !== S.OBJUPD.lppmOBJ.minWidth && (I.minWidth = S.OBJUPD.lppmOBJ.minWidth, _.minWidth = S.OBJUPD.lppmOBJ.minWidth), void 0 !== S.OBJUPD.lppmOBJ.minHeight && (I.minHeight = S.OBJUPD.lppmOBJ.minHeight, _.minHeight = S.OBJUPD.lppmOBJ.minHeight, R.minHeight = S.OBJUPD.lppmOBJ.minHeight)), S._incolumn && "group" == S.type && void 0 !== R && "100%" == R.minWidth && (_.width = "100%"), S._isgroup && S.thFixed && void 0 !== S.reqWrp && S.reqWrp.loop && S.reqWrp.mask && "auto" == L.width && (I.position = "relative"), !S._ingroup || S.reqWrp.loop || S.reqWrp.mask || "absolute" != S.position || "100%" != R.minHeight || (R.height = "100%"), o[v].calcResponsiveLayerHooks) { var G = o[v].calcResponsiveLayerHooks[B]({ id: v, L: m, obj: L, _: S, inobj: e, LOBJ: b, LPOBJ: I, MOBJ: _, POBJ: R }); null != G && (void 0 !== G.obj && (L = jQuery.extend(!0, L, G.obj)), void 0 !== G.LOBJ && (b = jQuery.extend(!0, b, G.LOBJ)), void 0 !== G.LPOBJ && (I = jQuery.extend(!0, I, G.LPOBJ)), void 0 !== G.MOBJ && (_ = jQuery.extend(!0, _, G.MOBJ)), void 0 !== G.POBJ && (R = jQuery.extend(!0, R, G.POBJ))) } n = JSON.stringify(b), l = JSON.stringify(I), d = JSON.stringify(_), c = JSON.stringify(R), void 0 === S.imgOBJ || void 0 !== S.caches.imgOBJ && S.caches.imgOBJ.width === S.imgOBJ.width && S.caches.imgOBJ.height === S.imgOBJ.height && S.caches.imgOBJ.left === S.imgOBJ.left && S.caches.imgOBJ.right === S.imgOBJ.right && S.caches.imgOBJ.top === S.imgOBJ.top && S.caches.imgOBJ.bottom === S.imgOBJ.bottom || (S.caches.imgOBJ = o.clone(S.imgOBJ), S.imgOBJ.position = "relative", tpGS.gsap.set(S.img, S.imgOBJ)), void 0 === S.mediaOBJ || void 0 !== S.caches.mediaOBJ && S.caches.mediaOBJ.width === S.mediaOBJ.width && S.caches.mediaOBJ.height === S.mediaOBJ.height && S.caches.mediaOBJ.display === S.mediaOBJ.display || (S.caches.mediaOBJ = o.clone(S.mediaOBJ), S.media.css(S.mediaOBJ)), n != o[v].emptyObject && n != S.caches.LOBJ && (tpGS.gsap.set(m, b), S.caches.LOBJ = n), void 0 !== S.lp && l != o[v].emptyObject && l != S.caches.LPOBJ && (tpGS.gsap.set(S.lp, I), S.caches.LPOBJ = l), d != o[v].emptyObject && d != S.caches.MOBJ && (tpGS.gsap.set(S.m, _), S.caches.MOBJ = d), c != o[v].emptyObject && c != S.caches.POBJ && (tpGS.gsap.set(S.p, R), S.caches.POBJ = c, S.caches.POBJ_LEFT = R.left, S.caches.POBJ_TOP = R.top) } }, G = function (e) { var t = {l: "none", lw: 10, r: "none", rw: 10}; for (var i in e = e.split(";")) if (e.hasOwnProperty(i)) { var a = e[i].split(":"); switch (a[0]) { case"l": t.l = a[1]; break; case"r": t.r = a[1]; break; case"lw": t.lw = a[1]; break; case"rw": t.rw = a[1] } } return "polygon(" + F(t.l, 0, parseFloat(t.lw)) + "," + F(t.r, 100, 100 - parseFloat(t.rw), !0) + ")" }, F = function (e, t, i, a) { var r; switch (e) { case"none": r = t + "% 100%," + t + "% 0%"; break; case"top": r = i + "% 100%," + t + "% 0%"; break; case"middle": r = i + "% 100%," + t + "% 50%," + i + "% 0%"; break; case"bottom": r = t + "% 100%," + i + "% 0%"; break; case"two": r = i + "% 100%," + t + "% 75%," + i + "% 50%," + t + "% 25%," + i + "% 0%"; break; case"three": r = t + "% 100%," + i + "% 75%," + t + "% 50%," + i + "% 25%," + t + "% 0%"; break; case"four": r = t + "% 100%," + i + "% 87.5%," + t + "% 75%," + i + "% 62.5%," + t + "% 50%," + i + "% 37.5%," + t + "% 25%," + i + "% 12.5%," + t + "% 0%"; break; case"five": r = t + "% 100%," + i + "% 90%," + t + "% 80%," + i + "% 70%," + t + "% 60%," + i + "% 50%," + t + "% 40%," + i + "% 30%," + t + "% 20%," + i + "% 10%," + t + "% 0%" } if (a) { var o = r.split(","); for (var i in r = "", o) o.hasOwnProperty(i) && (r += o[o.length - 1 - i] + (i < o.length - 1 ? "," : "")) } return r }; window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.layeranimation = { loaded: !0, version: "6.6.14" }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal() }(jQuery), function (e) { "use strict"; jQuery.fn.revolution = jQuery.fn.revolution || {}; var t = jQuery.fn.revolution; function i(e, i) { var a = new Object({single: ".tp-" + i, c: t[e].cpar.find(".tp-" + i + "s")}); return a.mask = a.c.find(".tp-" + i + "-mask"), a.wrap = a.c.find(".tp-" + i + "s-inner-wrapper"), a } jQuery.extend(!0, t, { hideUnHideNav: function (e) { window.requestAnimationFrame(function () { var i = !1; p(t[e].navigation.arrows) && (i = x(t[e].navigation.arrows, e, i)), p(t[e].navigation.bullets) && (i = x(t[e].navigation.bullets, e, i)), p(t[e].navigation.thumbnails) && (i = x(t[e].navigation.thumbnails, e, i)), p(t[e].navigation.tabs) && (i = x(t[e].navigation.tabs, e, i)), i && t.manageNavigation(e) }) }, getOuterNavDimension: function (e) { t[e].navigation.scaler = Math.max(0, Math.min(1, (t.winW - 480) / 500)); var i = {left: 0, right: 0, horizontal: 0, vertical: 0, top: 0, bottom: 0}; return t[e].navigation.thumbnails && t[e].navigation.thumbnails.enable && (t[e].navigation.thumbnails.isVisible = t[e].navigation.thumbnails.hide_under < t[e].module.width && t[e].navigation.thumbnails.hide_over > t[e].module.width, t[e].navigation.thumbnails.cw = Math.max(Math.round(t[e].navigation.thumbnails.width * t[e].navigation.scaler), t[e].navigation.thumbnails.min_width), t[e].navigation.thumbnails.ch = Math.round(t[e].navigation.thumbnails.cw / t[e].navigation.thumbnails.width * t[e].navigation.thumbnails.height), t[e].navigation.thumbnails.isVisible && "outer-left" === t[e].navigation.thumbnails.position ? i.left = t[e].navigation.thumbnails.cw + 2 * t[e].navigation.thumbnails.wrapper_padding : t[e].navigation.thumbnails.isVisible && "outer-right" === t[e].navigation.thumbnails.position ? i.right = t[e].navigation.thumbnails.cw + 2 * t[e].navigation.thumbnails.wrapper_padding : t[e].navigation.thumbnails.isVisible && "outer-top" === t[e].navigation.thumbnails.position ? i.top = t[e].navigation.thumbnails.ch + 2 * t[e].navigation.thumbnails.wrapper_padding : t[e].navigation.thumbnails.isVisible && "outer-bottom" === t[e].navigation.thumbnails.position && (i.bottom = t[e].navigation.thumbnails.ch + 2 * t[e].navigation.thumbnails.wrapper_padding)), t[e].navigation.tabs && t[e].navigation.tabs.enable && (t[e].navigation.tabs.isVisible = t[e].navigation.tabs.hide_under < t[e].module.width && t[e].navigation.tabs.hide_over > t[e].module.width, t[e].navigation.tabs.cw = Math.max(Math.round(t[e].navigation.tabs.width * t[e].navigation.scaler), t[e].navigation.tabs.min_width), t[e].navigation.tabs.ch = Math.round(t[e].navigation.tabs.cw / t[e].navigation.tabs.width * t[e].navigation.tabs.height), t[e].navigation.tabs.isVisible && "outer-left" === t[e].navigation.tabs.position ? i.left += t[e].navigation.tabs.cw + 2 * t[e].navigation.tabs.wrapper_padding : t[e].navigation.tabs.isVisible && "outer-right" === t[e].navigation.tabs.position ? i.right += t[e].navigation.tabs.cw + 2 * t[e].navigation.tabs.wrapper_padding : t[e].navigation.tabs.isVisible && "outer-top" === t[e].navigation.tabs.position ? i.top += t[e].navigation.tabs.ch + 2 * t[e].navigation.tabs.wrapper_padding : t[e].navigation.tabs.isVisible && "outer-bottom" === t[e].navigation.tabs.position && (i.bottom += t[e].navigation.tabs.ch + 2 * t[e].navigation.tabs.wrapper_padding)), { left: i.left, right: i.right, horizontal: i.left + i.right, vertical: i.top + i.bottom, top: i.top, bottom: i.bottom } }, resizeThumbsTabs: function (e, i) { if (void 0 !== t[e] && t[e].navigation.use && (t[e].navigation && t[e].navigation.bullets.enable || t[e].navigation && t[e].navigation.tabs.enable || t[e].navigation && t[e].navigation.thumbnails.enable)) { var a = tpGS.gsap.timeline(), o = t[e].navigation.tabs, s = t[e].navigation.thumbnails, n = t[e].navigation.bullets; if (a.pause(), p(o) && (i || o.width > o.min_width) && r(e, a, t[e].c, o, t[e].slideamount, "tab"), p(s) && (i || s.width > s.min_width) && r(e, a, t[e].c, s, t[e].slideamount, "thumb", e), p(n) && i) { var l = t[e].c.find(".tp-bullets"); l.find(".tp-bullet").each(function (e) { var t = jQuery(this), i = e + 1, a = t.outerWidth() + parseInt(void 0 === n.space ? 0 : n.space, 0), r = t.outerHeight() + parseInt(void 0 === n.space ? 0 : n.space, 0); "vertical" === n.direction ? (t.css({ top: (i - 1) * r + "px", left: "0px" }), l.css({ height: (i - 1) * r + t.outerHeight(), width: t.outerWidth() })) : (t.css({ left: (i - 1) * a + "px", top: "0px" }), l.css({width: (i - 1) * a + t.outerWidth(), height: t.outerHeight()})) }) } a.play() } return !0 }, updateNavIndexes: function (e) { var i = t[e].c; function a(e) { i.find(e).lenght > 0 && i.find(e).each(function (e) { jQuery(this).data("liindex", e) }) } a("rs-tab"), a("rs-bullet"), a("rs-thumb"), t.resizeThumbsTabs(e, !0), t.manageNavigation(e) }, manageNavigation: function (e, i) { t[e].navigation.use && (p(t[e].navigation.bullets) && ("fullscreen" != t[e].sliderLayout && "fullwidth" != t[e].sliderLayout && (t[e].navigation.bullets.h_offset_old = void 0 === t[e].navigation.bullets.h_offset_old ? parseInt(t[e].navigation.bullets.h_offset, 0) : t[e].navigation.bullets.h_offset_old, t[e].navigation.bullets.h_offset = "center" === t[e].navigation.bullets.h_align ? t[e].navigation.bullets.h_offset_old + t[e].outNavDims.left / 2 - t[e].outNavDims.right / 2 : t[e].navigation.bullets.h_offset_old + t[e].outNavDims.left), b(t[e].navigation.bullets, e)), p(t[e].navigation.thumbnails) && b(t[e].navigation.thumbnails, e), p(t[e].navigation.tabs) && b(t[e].navigation.tabs, e), p(t[e].navigation.arrows) && ("fullscreen" != t[e].sliderLayout && "fullwidth" != t[e].sliderLayout && (t[e].navigation.arrows.left.h_offset_old = void 0 === t[e].navigation.arrows.left.h_offset_old ? parseInt(t[e].navigation.arrows.left.h_offset, 0) : t[e].navigation.arrows.left.h_offset_old, t[e].navigation.arrows.left.h_offset = (t[e].navigation.arrows.left.h_align, t[e].navigation.arrows.left.h_offset_old), t[e].navigation.arrows.right.h_offset_old = void 0 === t[e].navigation.arrows.right.h_offset_old ? parseInt(t[e].navigation.arrows.right.h_offset, 0) : t[e].navigation.arrows.right.h_offset_old, t[e].navigation.arrows.right.h_offset = (t[e].navigation.arrows.right.h_align, t[e].navigation.arrows.right.h_offset_old)), b(t[e].navigation.arrows.left, e), b(t[e].navigation.arrows.right, e)), !1 !== i && (p(t[e].navigation.thumbnails) && a(t[e].navigation.thumbnails, e), p(t[e].navigation.tabs) && a(t[e].navigation.tabs, e))) }, showFirstTime: function (e) { u(e), t.hideUnHideNav(e) }, selectNavElement: function (e, i, a, r) { for (var o = t[e].cpar[0].getElementsByClassName(a), s = 0; s < o.length; s++) t.gA(o[s], "key") === i ? (o[s].classList.add("selected"), void 0 !== r && r()) : o[s].classList.remove("selected") }, transferParams: function (e, t) { if (void 0 !== t) for (var i in t.params) e = e.replace(t.params[i].from, t.params[i].to); return e }, updateNavElementContent: function (e, i, r, o, s) { if (void 0 !== t[e].pr_next_key || void 0 !== t[e].pr_active_key) { var n = void 0 === t[e].pr_next_key ? void 0 === t[e].pr_cache_pr_next_key ? t[e].pr_active_key : t[e].pr_cache_pr_next_key : t[e].pr_next_key, l = t.gA(t[e].slides[n], "key"), d = 0, c = !1; for (var p in r.enable && t.selectNavElement(e, l, "tp-bullet"), o.enable && t.selectNavElement(e, l, "tp-thumb", function () { a(o, e) }), s.enable && t.selectNavElement(e, l, "tp-tab", function () { a(s, e) }), t[e].thumbs) d = !0 === c ? d : p, c = t[e].thumbs[p].id === l || p == l || c; var g = (d = parseInt(d, 0)) > 0 ? d - 1 : t[e].slideamount - 1, u = d + 1 == t[e].slideamount ? 0 : d + 1; if (!0 === i.enable && i.pi !== g && i.ni !== u) { if (i.pi = g, i.ni = u, i.left.c[0].innerHTML = t.transferParams(i.tmp, t[e].thumbs[g]), u > t[e].slideamount) return; i.right.c[0].innerHTML = t.transferParams(i.tmp, t[e].thumbs[u]), i.right.iholder = i.right.c.find(".tp-arr-imgholder"), i.left.iholder = i.left.c.find(".tp-arr-imgholder"), i.rtl ? (void 0 !== i.left.iholder[0] && tpGS.gsap.set(i.left.iholder, {backgroundImage: "url(" + t[e].thumbs[u].src + ")"}), void 0 !== t[e].thumbs[g] && void 0 !== i.right.iholder[0] && tpGS.gsap.set(i.right.iholder, {backgroundImage: "url(" + t[e].thumbs[g].src + ")"})) : (void 0 !== t[e].thumbs[g] && void 0 !== i.left.iholder[0] && tpGS.gsap.set(i.left.iholder, {backgroundImage: "url(" + t[e].thumbs[g].src + ")"}), void 0 !== i.right.iholder[0] && tpGS.gsap.set(i.right.iholder, {backgroundImage: "url(" + t[e].thumbs[u].src + ")"})) } } }, createNavigation: function (e) { var a = t[e].navigation.arrows, r = t[e].navigation.bullets, o = t[e].navigation.thumbnails, l = t[e].navigation.tabs, h = p(a), v = p(r), y = p(o), w = p(l); for (var x in s(e), n(e), h && (f(a, e), a.c = t[e].cpar.find(".tparrows")), t[e].slides) if (t[e].slides.hasOwnProperty(x) && "true" != t.gA(t[e].slides[x], "not_in_nav")) { var k = jQuery(t[e].slides[t[e].slides.length - 1 - x]), L = jQuery(t[e].slides[x]); v && (t[e].navigation.bullets.rtl ? _(t[e].c, r, k, e) : _(t[e].c, r, L, e)), y && (t[e].navigation.thumbnails.rtl ? S(t[e].c, o, k, "tp-thumb", e) : S(t[e].c, o, L, "tp-thumb", e)), w && (t[e].navigation.tabs.rtl ? S(t[e].c, l, k, "tp-tab", e) : S(t[e].c, l, L, "tp-tab", e)) } v && b(r, e), y && b(o, e), w && b(l, e), (y || w) && t.updateDims(e), t[e].navigation.createNavigationDone = !0, y && jQuery.extend(!0, o, i(e, "thumb")), w && jQuery.extend(!0, l, i(e, "tab")), t[e].c.on("revolution.slide.onafterswap revolution.nextslide.waiting", function () { t.updateNavElementContent(e, a, r, o, l) }), c(a), c(r), c(o), c(l), t[e].cpar.on(t.ISM ? "touchstart touchmove" : "mouseenter mousemove", function (i) { void 0 !== i.target && void 0 !== i.target.className && "string" == typeof i.target.className && i.target.className.indexOf("rs-waction") >= 0 || !0 !== t[e].tpMouseOver && t[e].firstSlideAvailable && (t[e].tpMouseOver = !0, u(e), t.ISM && !0 !== t[e].someNavIsDragged && (g(t[e].hideAllNavElementTimer), t[e].hideAllNavElementTimer = setTimeout(function () { t[e].tpMouseOver = !1, m(e) }, 150))) }), t[e].cpar.on(t.ISM ? "touchend" : "mouseleave ", function () { t[e].tpMouseOver = !1, m(e) }), (y || w || "carousel" === t[e].sliderType || t[e].navigation.touch.touchOnDesktop || t[e].navigation.touch.touchenabled && t.ISM) && d(e), t[e].navigation.initialised = !0, t.updateNavElementContent(e, a, r, o, l), t.showFirstTime(e) } }); var a = function (e, i) { if (void 0 !== e && null != e.mask) { var a = "vertical" === e.direction ? e.mask.find(e.single).first().outerHeight(!0) + e.space : e.mask.find(e.single).first().outerWidth(!0) + e.space, r = "vertical" === e.direction ? e.mask.height() : e.mask.width(), o = e.mask.find(e.single + ".selected").data("liindex"); o = (o = void 0 === (o = e.rtl ? t[i].slideamount - o : o) ? 0 : o) > 0 && 1 === t[i].sdir && e.visibleAmount > 1 ? o - 1 : o; var s = r / a, n = "vertical" === e.direction ? e.mask.height() : e.mask.width(), l = 0 - o * a, d = "vertical" === e.direction ? e.wrap.height() : e.wrap.width(), c = l < 0 - (d - n) ? 0 - (d - n) : l, p = t.gA(e.wrap[0], "offset"); p = void 0 === p ? 0 : p, s > 2 && (c = l - (p + a) <= 0 ? l - (p + a) < 0 - a ? p : c + a : c, c = l - a + p + r < a && l + (Math.round(s) - 2) * a < p ? l + (Math.round(s) - 2) * a : c), c = "vertical" !== e.direction && e.mask.width() >= e.wrap.width() || "vertical" === e.direction && e.mask.height() >= e.wrap.height() ? 0 : c < 0 - (d - n) ? 0 - (d - n) : c > 0 ? 0 : c, e.c.hasClass("dragged") || ("vertical" === e.direction ? e.wrap.data("tmmove", tpGS.gsap.to(e.wrap, .5, { top: c + "px", ease: "power3.inOut" })) : e.wrap.data("tmmove", tpGS.gsap.to(e.wrap, .5, { left: c + "px", ease: "power3.inOut" })), e.wrap.data("offset", c)) } }, r = function (e, i, a, r, o, s) { var n = a.parent().find(".tp-" + s + "s"), l = n.find(".tp-" + s + "s-inner-wrapper"), d = n.find(".tp-" + s + "-mask"), c = "vertical" === r.direction ? r.cw : r.cw * o + parseFloat(r.space) * (o - 1), p = "vertical" === r.direction ? r.ch * o + parseInt(r.space) * (o - 1) : r.ch, g = "vertical" === r.direction ? {width: r.cw + "px"} : {height: r.ch + "px"}; if (i.add(tpGS.gsap.set(n, g)), i.add(tpGS.gsap.set(l, { width: c + "px", height: p + "px" })), "horizontal" === r.direction) { var u = Math.min(c, r.cw * r.visibleAmount + parseFloat(r.space) * (r.visibleAmount - 1)); i.add(tpGS.gsap.set(d, {width: u + "px", height: p + "px"})) } else { var h = Math.min(p, r.ch * r.visibleAmount + parseFloat(r.space) * (r.visibleAmount - 1)); i.add(tpGS.gsap.set(d, {width: c + "px", height: h + "px"})) } null !== l.outerWidth() && (t[e].thumbResized = !0); var m = l.find(".tp-" + s); return m && jQuery.each(m, function (e, t) { "vertical" === r.direction ? i.add(tpGS.gsap.set(t, { top: e * (r.ch + parseInt(void 0 === r.space ? 0 : r.space, 0)), width: r.cw + "px", height: r.ch + "px" })) : "horizontal" === r.direction && i.add(tpGS.gsap.set(t, { left: e * (r.cw + parseInt(void 0 === r.space ? 0 : r.space, 0)), width: r.cw + "px", height: r.ch + "px" })) }), i }, o = function (e) { var t = 0; return "deltaY" in e || "deltaX" in e ? t = 0 != e.deltaY && -0 != e.deltaY || !(e.deltaX < 0 || e.deltaX > 0) ? e.deltaY : e.deltaX : ("detail" in e && (t = e.detail), "wheelDelta" in e && (t = -e.wheelDelta / 120), "wheelDeltaY" in e && (t = -e.wheelDeltaY / 120)), ((t = navigator.userAgent.match(/mozilla/i) ? 10 * t : t) > 300 || t < -300) && (t /= 10), t }, s = function (e) { !0 === t[e].navigation.keyboardNavigation && t.document.on("keydown", function (i) { if ("horizontal" == t[e].navigation.keyboard_direction && 39 == i.keyCode || "vertical" == t[e].navigation.keyboard_direction && 40 == i.keyCode) { if (void 0 !== t[e].keydown_time_stamp && (new Date).getTime() - t[e].keydown_time_stamp < 1e3) return; t[e].sc_indicator = "arrow", t[e].sc_indicator_dir = 0, "carousel" === t[e].sliderType && (t[e].ctNavElement = !0), t.callingNewSlide(e, 1, "carousel" === t[e].sliderType) } if ("horizontal" == t[e].navigation.keyboard_direction && 37 == i.keyCode || "vertical" == t[e].navigation.keyboard_direction && 38 == i.keyCode) { if (void 0 !== t[e].keydown_time_stamp && (new Date).getTime() - t[e].keydown_time_stamp < 1e3) return; t[e].sc_indicator = "arrow", t[e].sc_indicator_dir = 1, "carousel" === t[e].sliderType && (t[e].ctNavElement = !0), t.callingNewSlide(e, -1, "carousel" === t[e].sliderType) } t[e].keydown_time_stamp = (new Date).getTime() }) }, n = function (e) { t[e].carousel.scrollTicker = t.carScrollTicker.bind(window, e), !0 !== t[e].navigation.mouseScrollNavigation && "on" !== t[e].navigation.mouseScrollNavigation && "carousel" !== t[e].navigation.mouseScrollNavigation || t[e].c[0].addEventListener("wheel", function (i) { var a = o(i), r = !1, s = 0 == t[e].pr_active_key || 0 == t[e].pr_processing_key, n = t[e].pr_active_key == t[e].slideamount - 1 || t[e].pr_processing_key == t[e].slideamount - 1, l = void 0 !== t[e].topc ? t[e].topc[0].getBoundingClientRect() : 0 === t[e].canv.height ? t[e].cpar[0].getBoundingClientRect() : t[e].c[0].getBoundingClientRect(), d = l.top >= 0 && l.bottom <= t.winH ? 1 : l.top >= 0 && l.bottom >= t.winH ? (t.winH - Math.round(l.top)) / l.height : l.top <= 0 && l.bottom <= t.winH ? Math.round(l.bottom) / l.height : 1, c = a < 0 ? -1 : 1, p = t[e].navigation.wheelViewPort; if (d = Math.round(100 * d) / 100, "reverse" == t[e].navigation.mouseScrollReverse) { var g = n; n = s, s = g } if (p - d <= t[e].navigation.threshold / 100 && !(d >= p) && !(l.top >= 0 && -1 === c || l.top <= 0 && 1 === c) && (i.preventDefault(), !t[e].mScrollTween)) { var u = "window" !== t[e].navigation.target && t[e].navigation.target ? t[e].navigation.target : window; t[e].mScrollTween = tpGS.gsap.to(u, { duration: jQuery.fn.revolution.isWebkit() ? .1 : .7, scrollTo: {y: t[e].topc}, ease: "power2.out", onComplete: function () { t[e].mScrollTween.kill(), delete t[e].mScrollTween } }) } if (Math.abs(d - p) < .1 || d >= p) return t[e].sc_indicator_dir = "reverse" === t[e].navigation.mouseScrollReverse && c < 0 || "reverse" !== t[e].navigation.mouseScrollReverse && c > 0 ? "reverse" !== t[e].navigation.mouseScrollReverse ? 0 : 1 : "reverse" !== t[e].navigation.mouseScrollReverse ? 1 : 0, "carousel" == t[e].navigation.mouseScrollNavigation || 0 === t[e].sc_indicator_dir && !n || 1 === t[e].sc_indicator_dir && !s ? void 0 === t[e].pr_processing_key && !0 !== t[e].justmouseScrolled && (t[e].sc_indicator = "arrow", "carousel" === t[e].sliderType && (t[e].ctNavElement = !0), t.callingNewSlide(e, 0 === t[e].sc_indicator_dir ? "reverse" === t[e].navigation.mouseScrollReverse ? -1 : 1 : "reverse" === t[e].navigation.mouseScrollReverse ? 1 : -1, "carousel" === t[e].sliderType), t[e].justmouseScrolled = !0, setTimeout(function () { t[e].justmouseScrolled = !1 }, t[e].navigation.wheelCallDelay)) : !0 !== t[e].justmouseScrolled && (r = !0), !!r || (i.preventDefault(i), !1) }, {passive: !1}) }, l = function (e, i) { var a = !1; for (var r in (void 0 === i.path || t.ISM) && (a = function (e, t) { for (; e && e !== document; e = e.parentNode) if (e.tagName === t) return e; return !1 }(i.target, e)), i.path) i.path.hasOwnProperty(r) && i.path[r].tagName === e && (a = !0); return a }, d = function (e) { var i = t[e].carousel, a = t.is_android(); if (jQuery(".bullet, .bullets, .tp-bullets, .tparrows").addClass("noSwipe"), t[e].navigation.touch = void 0 === t[e].navigation.touch ? {} : t[e].navigation.touch, t[e].navigation.touch.swipe_direction = void 0 === t[e].navigation.touch.swipe_direction ? "horizontal" : t[e].navigation.touch.swipe_direction, t[e].cpar.find(".rs-nav-element").rsswipe({ allowPageScroll: "vertical", triggerOnTouchLeave: !0, treshold: t[e].navigation.touch.swipe_treshold, fingers: t[e].navigation.touch.swipe_min_touches > 5 ? 1 : t[e].navigation.touch.swipe_min_touches, excludedElements: "button, input, select, textarea, .noSwipe, .rs-waction", tap: function (e, t) { if (void 0 !== t) var i = jQuery(t).closest("rs-thumb"); void 0 !== i && i.length > 0 ? i.trigger("click") : (i = jQuery(t).closest("rs-tab")).length > 0 ? i.trigger("click") : (i = jQuery(t).closest("rs-bullet")).length > 0 && i.trigger("click") }, swipeStatus: function (r, o, s, n, d, c, p) { if ("start" !== o && "move" !== o && "end" !== o && "cancel" != o) return !0; var u = l("RS-THUMB", r), m = l("RS-TAB", r); !1 === u && !1 === m && !0 !== (u = "RS-THUMBS-WRAP" === r.target.tagName || "RS-THUMBS" === r.target.tagName || r.target.className.indexOf("tp-thumb-mask") >= 0) && (m = "RS-TABS-WRAP" === r.target.tagName || "RS-TABS" === r.target.tagName || r.target.className.indexOf("tp-tab-mask") >= 0); var v = "start" === o ? 0 : a ? p[0].end.x - p[0].start.x : r.pageX - i.screenX, f = "start" === o ? 0 : a ? p[0].end.y - p[0].start.y : r.pageY - i.screenY, y = u ? ".tp-thumbs" : ".tp-tabs", w = u ? ".tp-thumb-mask" : ".tp-tab-mask", b = u ? ".tp-thumbs-inner-wrapper" : ".tp-tabs-inner-wrapper", _ = u ? ".tp-thumb" : ".tp-tab", S = u ? t[e].navigation.thumbnails : t[e].navigation.tabs, x = t[e].cpar.find(w), k = x.find(b), L = S.direction, O = "vertical" === L ? k.height() : k.width(), R = "vertical" === L ? x.height() : x.width(), I = "vertical" === L ? x.find(_).first().outerHeight(!0) + parseFloat(S.space) : x.find(_).first().outerWidth(!0) + parseFloat(S.space), M = void 0 === k.data("offset") ? 0 : parseInt(k.data("offset"), 0), T = 0; switch (o) { case"start": "vertical" === L && r.preventDefault(), i.screenX = a ? p[0].end.x : r.pageX, i.screenY = a ? p[0].end.y : r.pageY, t[e].cpar.find(y).addClass("dragged"), M = "vertical" === L ? k.position().top : k.position().left, k.data("offset", M), k.data("tmmove") && k.data("tmmove").pause(), t[e].someNavIsDragged = !0, h(e); break; case"move": if (O <= R) return !1; T = (T = M + ("vertical" === L ? f : v)) > 0 ? "horizontal" === L ? T - k.width() * (T / k.width() * T / k.width()) : T - k.height() * (T / k.height() * T / k.height()) : T; var C = "vertical" === L ? 0 - (k.height() - x.height()) : 0 - (k.width() - x.width()); T = T < C ? "horizontal" === L ? T + k.width() * (T - C) / k.width() * (T - C) / k.width() : T + k.height() * (T - C) / k.height() * (T - C) / k.height() : T, "vertical" === L ? tpGS.gsap.set(k, {top: T + "px"}) : tpGS.gsap.set(k, {left: T + "px"}), g(t[e].hideAllNavElementTimer); break; case"end": case"cancel": return t[e].navigation.draggable && t[e].navigation.draggable.enable && t[e].navigation.draggable.enable(), i.draggable && i.draggable.enable && i.draggable.enable(), T = M + ("vertical" === L ? f : v), T = (T = "vertical" === L ? T < 0 - (k.height() - x.height()) ? 0 - (k.height() - x.height()) : T : T < 0 - (k.width() - x.width()) ? 0 - (k.width() - x.width()) : T) > 0 ? 0 : T, T = Math.abs(n) > I / 10 ? n <= 0 ? Math.floor(T / I) * I : Math.ceil(T / I) * I : n < 0 ? Math.ceil(T / I) * I : Math.floor(T / I) * I, T = (T = "vertical" === L ? T < 0 - (k.height() - x.height()) ? 0 - (k.height() - x.height()) : T : T < 0 - (k.width() - x.width()) ? 0 - (k.width() - x.width()) : T) > 0 ? 0 : T, "vertical" === L ? tpGS.gsap.to(k, .5, { top: T + "px", ease: "power3.out" }) : tpGS.gsap.to(k, .5, { left: T + "px", ease: "power3.out" }), T = T || ("vertical" === L ? k.position().top : k.position().left), k.data("offset", T), k.data("distance", n), t[e].cpar.find(y).removeClass("dragged"), t[e].someNavIsDragged = !1, !0 } } }), "carousel" === t[e].sliderType && t.setupCarousel(e), "carousel" !== t[e].sliderType && (t.ISM && t[e].navigation.touch.touchenabled || !0 !== t.ISM && t[e].navigation.touch.touchOnDesktop)) { t[e].navigation.proxy = document.createElement("div"); var r = t[e].navigation, o = { trigger: t[e].c[0], type: "horizontal" === t[e].navigation.touch.swipe_direction ? "x" : "y", cursor: "pointer", lockAxis: !0, onPress: function (i) { t.closestClass(i.target, "rs-nav-element") && (t[e].navigation.draggable.endDrag(), t[e].navigation.draggable.disable()), r.touch.pressX = i.pageX, r.touch.pressY = i.pageY }, onDragStart: function () { var i = void 0 !== t[e].pr_processing_key ? t[e].pr_processing_key : void 0 === t[e].pr_active_key ? 0 : t[e].pr_active_key; "up" === this.getDirection() && i == t[e].slideamount - 1 || "down" === this.getDirection() && 0 === i ? r.forceScroll = !0 : r.forceScroll = !1 }, onDragEnd: function (i) { t[e].sc_indicator = "arrow"; var a, r = this.getDirection(), o = t[e].navigation; if (Math.abs(i.pageY - o.touch.pressY) > Math.abs(i.pageX - o.touch.pressX)) { if ("right" === r || "left" === r) return } else if (Math.abs(i.pageY - o.touch.pressY) > Math.abs(i.pageX - o.touch.pressX) && ("up" === r || "down" === r)) return; return o.forceScroll ? (a = "up" === this.getDirection() ? t[e].cpar.offset().top + t[e].module.height : t.document.scrollTop() - (window.innerHeight - t[e].cpar[0].getBoundingClientRect().top), void (t[e].modal.useAsModal || tpGS.gsap.to([window, "body"], {scrollTo: a}))) : "horizontal" == t[e].navigation.touch.swipe_direction && "left" == r || "vertical" == t[e].navigation.touch.swipe_direction && "up" == r ? (t[e].sc_indicator_dir = 0, t.callingNewSlide(e, 1), !1) : "horizontal" == t[e].navigation.touch.swipe_direction && "right" == r || "vertical" == t[e].navigation.touch.swipe_direction && "down" == r ? (t[e].sc_indicator_dir = 1, t.callingNewSlide(e, -1), !1) : void 0 } }; r.touch.drag_block_vertical || (t.ISM && (o.allowContextMenu = !0), o.allowEventDefault = !0), t[e].navigation.draggable = tpGS.draggable.create(t[e].navigation.proxy, o) } "carousel" === t[e].sliderType && (t.ISM && 0 == t[e].navigation.touch.mobileCarousel || !0 !== t.ISM && !1 === t[e].navigation.touch.desktopCarousel) && i.wrap.addClass("noswipe"), t[e].navigation.touch.drag_block_vertical && t[e].c.addClass("disableVerticalScroll") }, c = function (e) { e.hide_delay = t.isNumeric(parseInt(e.hide_delay, 0)) ? e.hide_delay : .2, e.hide_delay_mobile = t.isNumeric(parseInt(e.hide_delay_mobile, 0)) ? e.hide_delay_mobile : .2 }, p = function (e) { return e && e.enable }, g = function (e) { clearTimeout(e) }, u = function (e) { var i = t[e].navigation.maintypes; for (var a in i) i.hasOwnProperty(a) && p(t[e].navigation[i[a]]) && void 0 !== t[e].navigation[i[a]].c && (g(t[e].navigation[i[a]].showCall), t[e].navigation[i[a]].showCall = setTimeout(function (i) { g(i.hideCall), i.hide_onleave && !0 !== t[e].tpMouseOver || (void 0 === i.tween ? i.tween = v(i) : i.tween.play()) }, t[e].navigation[i[a]].hide_onleave && !0 !== t[e].tpMouseOver ? 0 : parseInt(t[e].navigation[i[a]].animDelay), t[e].navigation[i[a]])) }, h = function (e) { var i = t[e].navigation.maintypes; for (var a in i) i.hasOwnProperty(a) && void 0 !== t[e].navigation[i[a]] && t[e].navigation[i[a]].hide_onleave && p(t[e].navigation[i[a]]) && g(t[e].navigation[i[a]].hideCall) }, m = function (e, i) { var a = t[e].navigation.maintypes; for (var r in a) a.hasOwnProperty(r) && void 0 !== t[e].navigation[a[r]] && t[e].navigation[a[r]].hide_onleave && p(t[e].navigation[a[r]]) && (g(t[e].navigation[a[r]].hideCall), t[e].navigation[a[r]].hideCall = setTimeout(function (e) { g(e.showCall), e.tween && e.tween.reverse() }, t.ISM ? parseInt(t[e].navigation[a[r]].hide_delay_mobile, 0) : parseInt(t[e].navigation[a[r]].hide_delay, 0), t[e].navigation[a[r]])) }, v = function (e) { e.speed = void 0 === e.animSpeed ? .5 : e.animSpeed, e.anims = [], void 0 !== e.anim && void 0 === e.left && e.anims.push(e.anim), void 0 !== e.left && e.anims.push(e.left.anim), void 0 !== e.right && e.anims.push(e.right.anim); var t = tpGS.gsap.timeline(); for (var i in t.add(tpGS.gsap.to(e.c, e.speed, { delay: e.animDelay, opacity: 1, ease: "power3.inOut" }), 0), e.anims) if (e.anims.hasOwnProperty(i)) switch (e.anims[i]) { case"left": t.add(tpGS.gsap.fromTo(e.c[i], e.speed, {marginLeft: -50}, { delay: e.animDelay, marginLeft: "0px", ease: "power3.inOut" }), 0); break; case"right": t.add(tpGS.gsap.fromTo(e.c[i], e.speed, {marginLeft: 50}, { delay: e.animDelay, marginLeft: "0px", ease: "power3.inOut" }), 0); break; case"top": t.add(tpGS.gsap.fromTo(e.c[i], e.speed, {marginTop: -50}, { delay: e.animDelay, marginTop: "0px", ease: "power3.inOut" }), 0); break; case"bottom": t.add(tpGS.gsap.fromTo(e.c[i], e.speed, {marginTop: 50}, { delay: e.animDelay, marginTop: "0px", ease: "power3.inOut" }), 0); break; case"zoomin": t.add(tpGS.gsap.fromTo(e.c[i], e.speed, {scale: .5}, { delay: e.animDelay, scale: 1, ease: "power3.inOut" }), 0); break; case"zoomout": t.add(tpGS.gsap.fromTo(e.c[i], e.speed, {scale: 1.2}, { delay: e.animDelay, scale: 1, ease: "power3.inOut" }), 0) } return t.play(), t }, f = function (e, i) { e.style = void 0 === e.style ? "" : e.style, e.left.style = void 0 === e.left.style ? "" : e.left.style, e.right.style = void 0 === e.right.style ? "" : e.right.style, void 0 === e.left.c && (e.left.c = jQuery('' + e.tmp + ""), t[i].c.append(e.left.c)), void 0 === e.right.c && (e.right.c = jQuery('' + e.tmp + ""), t[i].c.append(e.right.c)), e[e.rtl ? "left" : "right"].c.on("click", function () { "carousel" === t[i].sliderType && (t[i].ctNavElement = !0), t[i].sc_indicator = "arrow", t[i].sc_indicator_dir = 0, t[i].c.revnext() }), e[e.rtl ? "right" : "left"].c.on("click", function () { "carousel" === t[i].sliderType && (t[i].ctNavElement = !0), t[i].sc_indicator = "arrow", t[i].sc_indicator_dir = 1, t[i].c.revprev() }), e.padding_top = parseInt(t[i].carousel.padding_top || 0, 0), e.padding_bottom = parseInt(t[i].carousel.padding_bottom || 0, 0), b(e.left, i), b(e.right, i), "outer-left" != e.position && "outer-right" != e.position || (t[i].outernav = !0) }, y = function (e, i, a, r) { r = void 0 === r ? e.outerHeight(!0) : r; var o = null == t[a] ? 0 : 0 == t[a].canv.height ? t[a].module.height : t[a].canv.height, s = "layergrid" == i.container ? "fullscreen" == t[a].sliderLayout ? t[a].module.height / 2 - t[a].gridheight[t[a].level] * t[a].CM.h / 2 : t[a].autoHeight || null != t[a].minHeight && t[a].minHeight > 0 ? o / 2 - t[a].gridheight[t[a].level] * t[a].CM.h / 2 : 0 : 0, n = "top" === i.v_align ? { top: "0px", y: Math.round(i.v_offset + s) + "px" } : "center" === i.v_align ? {top: "50%", y: Math.round(0 - r / 2 + i.v_offset) + "px"} : { top: "100%", y: Math.round(0 - (r + i.v_offset + s)) + "px" }; e.hasClass("outer-bottom") || tpGS.gsap.set(e, n) }, w = function (e, i, a, r) { r = void 0 === r ? e.outerWidth() : r; var o = "layergrid" === i.container ? t[a].module.width / 2 - t[a].gridwidth[t[a].level] * t[a].CM.w / 2 : 0, s = "left" === i.h_align ? { left: "0px", x: Math.round(i.h_offset + o) + "px" } : "center" === i.h_align ? {left: "50%", x: Math.round(0 - r / 2 + i.h_offset) + "px"} : { left: "100%", x: Math.round(0 - (r + i.h_offset + o)) + "px" }; tpGS.gsap.set(e, s) }, b = function (e, i) { if (null != e && void 0 !== e.c) { var a = "fullwidth" == t[i].sliderLayout || "fullscreen" == t[i].sliderLayout ? t[i].module.width : t[i].canv.width, r = e.c.outerWidth(), o = e.c.outerHeight(); if (!(r <= 0 || o <= 0) && (y(e.c, e, i, o), w(e.c, e, i, r), "outer-left" === e.position ? tpGS.gsap.set(e.c, { left: 0 - r + "px", x: e.h_offset + "px" }) : "outer-right" === e.position && tpGS.gsap.set(e.c, { right: 0 - r + "px", x: e.h_offset + "px" }), "tp-thumb" === e.type || "tp-tab" === e.type)) { var s = parseInt(e.padding_top || 0, 0), n = parseInt(e.padding_bottom || 0, 0), l = {}, d = {}; e.maxw > a && "outer-left" !== e.position && "outer-right" !== e.position ? (l.left = "0px", l.x = 0, l.maxWidth = a - 2 * e.wpad + "px", d.maxWidth = a - 2 * e.wpad + "px") : (l.maxWidth = e.maxw, d.maxWidth = a + "px"), e.maxh + 2 * e.wpad > t[i].conh && "outer-bottom" !== e.position && "outer-top" !== e.position ? (l.top = "0px", l.y = 0, l.maxHeight = s + n + (t[i].conh - 2 * e.wpad) + "px", d.maxHeight = s + n + (t[i].conh - 2 * e.wpad) + "px") : (l.maxHeight = e.maxh + "px", d.maxHeight = e.maxh + "px"), e.mask = void 0 === e.mask ? e.c.find("rs-navmask") : e.mask, (e.mhoff > 0 || e.mvoff > 0) && (d.padding = e.mvoff + "px " + e.mhoff + "px"), e.span ? ("layergrid" == e.container && "outer-left" !== e.position && "outer-right" !== e.position && (s = n = 0), "vertical" === e.direction ? (l.maxHeight = s + n + (t[i].conh - 2 * e.wpad) + "px", l.height = s + n + (t[i].conh - 2 * e.wpad) + "px", l.top = 0, l.y = 0, d.maxHeight = s + n + Math.min(e.maxh, t[i].conh - 2 * e.wpad) + "px", tpGS.gsap.set(e.c, l), tpGS.gsap.set(e.mask, d), y(e.mask, e, i)) : "horizontal" === e.direction && (l.maxWidth = "100%", l.width = a - 2 * e.wpad + "px", l.left = 0, l.x = 0, d.maxWidth = e.maxw >= a ? "100%" : Math.min(e.maxw, a) + "px", tpGS.gsap.set(e.c, l), tpGS.gsap.set(e.mask, d), w(e.mask, e, i))) : (tpGS.gsap.set(e.c, l), tpGS.gsap.set(e.mask, d)) } } }, _ = function (e, i, a, r) { 0 === e.find(".tp-bullets").length && (i.style = void 0 === i.style ? "" : i.style, i.c = jQuery('')); var o = a.data("key"), s = i.tmp; void 0 !== t[r].thumbs[a.index()] && jQuery.each(t[r].thumbs[a.index()].params, function (e, t) { s = s.replace(t.from, t.to) }); var n = jQuery('' + s + ""); void 0 !== t[r].thumbs[a.index()] && n.find(".tp-bullet-image").css({backgroundImage: "url(" + t[r].thumbs[a.index()].src + ")"}), i.c.append(n), e.append(i.c); var l = i.c.find(".tp-bullet").length, d = n.outerWidth(), c = n.outerHeight(), p = d + parseInt(void 0 === i.space ? 0 : i.space, 0), g = c + parseInt(void 0 === i.space ? 0 : i.space, 0); "vertical" === i.direction ? (n.css({top: (l - 1) * g + "px", left: "0px"}), i.c.css({ height: (l - 1) * g + c, width: d })) : (n.css({left: (l - 1) * p + "px", top: "0px"}), i.c.css({ width: (l - 1) * p + d, height: c })), n.on("click", function () { "carousel" === t[r].sliderType && (t[r].ctNavElement = !0), t[r].sc_indicator = "bullet", e.revcallslidewithid(o), e.find(".tp-bullet").removeClass("selected"), jQuery(this).addClass("selected") }), i.padding_top = parseInt(t[r].carousel.padding_top || 0, 0), i.padding_bottom = parseInt(t[r].carousel.padding_bottom || 0, 0), "outer-left" != i.position && "outer-right" != i.position || (t[r].outernav = !0) }, S = function (e, i, a, r, o) { var s = "tp-thumb" === r ? ".tp-thumbs" : ".tp-tabs", n = "tp-thumb" === r ? ".tp-thumb-mask" : ".tp-tab-mask", l = "tp-thumb" === r ? ".tp-thumbs-inner-wrapper" : ".tp-tabs-inner-wrapper", d = "tp-thumb" === r ? ".tp-thumb" : ".tp-tab", c = "tp-thumb" === r ? ".tp-thumb-image" : ".tp-tab-image", p = "tp-thumb" === r ? "rs-thumb" : "rs-tab"; i.type = r, i.visibleAmount = i.visibleAmount > t[o].slideamount ? t[o].slideamount : i.visibleAmount, i.sliderLayout = t[o].sliderLayout, void 0 === i.c && (i.wpad = i.wrapper_padding, i.c = jQuery("<" + p + 's style="opacity:0" class="nav-dir-' + i.direction + " nav-pos-ver-" + i.v_align + " nav-pos-hor-" + i.h_align + " rs-nav-element " + r + "s " + (!0 === i.span ? "tp-span-wrapper" : "") + " " + i.position + " " + (void 0 === i.style ? "" : i.style) + '"><' + p + 's-wrap class="' + r + 's-inner-wrapper" style="position:relative;">"), i.c.css({ overflow: "visible", position: "outer-top" === i.position || "outer-bottom" === i.position ? "relative" : "absolute", background: i.wrapper_color, padding: i.wpad + "px", boxSizing: "contet-box" }), "outer-top" === i.position ? e.parent().prepend(i.c) : "outer-bottom" === i.position ? e.after(i.c) : e.append(i.c), "outer-left" !== i.position && "outer-right" !== i.position || tpGS.gsap.set(t[o].c, {overflow: "visible"}), i.padding_top = parseInt(t[o].carousel.padding_top || 0, 0), i.padding_bottom = parseInt(t[o].carousel.padding_bottom || 0, 0), "outer-left" != i.position && "outer-right" != i.position || (t[o].outernav = !0)); var g = a.data("key"), u = i.c.find(n), h = u.find(l), m = i.tmp; i.space = parseFloat(i.space) || 0, i.maxw = "horizontal" === i.direction ? i.width * i.visibleAmount + i.space * (i.visibleAmount - 1) : i.width, i.maxh = "horizontal" === i.direction ? i.height : i.height * i.visibleAmount + i.space * (i.visibleAmount - 1), i.maxw += 2 * i.mhoff, i.maxh += 2 * i.mvoff, void 0 !== t[o].thumbs[a.index()] && jQuery.each(t[o].thumbs[a.index()].params, function (e, t) { m = m.replace(t.from, t.to) }); var v = jQuery("<" + p + ' data-liindex="' + a.index() + '" data-key="' + g + '" class="' + r + '" style="width:' + i.width + "px;height:" + i.height + 'px;">' + m + "<" + p + ">"); void 0 !== t[o].thumbs[a.index()] && v.find(c).css({backgroundImage: "url(" + t[o].thumbs[a.index()].src + ")"}), h.append(v); var f = i.c.find(d).length, y = v.outerWidth(), w = v.outerHeight(), b = y + parseInt(void 0 === i.space ? 0 : i.space, 0), _ = w + parseInt(void 0 === i.space ? 0 : i.space, 0); "vertical" === i.direction ? (v.css({top: (f - 1) * _ + "px", left: "0px"}), h.css({ height: (f - 1) * _ + w, width: y })) : (v.css({left: (f - 1) * b + "px", top: "0px"}), h.css({ width: (f - 1) * b + y, height: w })), u.css({maxWidth: i.maxw + "px", maxHeight: i.maxh + "px"}), i.c.css({ maxWidth: i.maxw + "px", maxHeight: i.maxh + "px" }), v.on("click", function () { t[o].sc_indicator = "bullet", "carousel" === t[o].sliderType && (t[o].ctNavElement = !0); var i = e.parent().find(l).data("distance"); i = void 0 === i ? 0 : i, Math.abs(i) < 10 && (e.revcallslidewithid(g), e.parent().find(s).removeClass("selected"), jQuery(this).addClass("selected")) }) }, x = function (e, i, a) { return null == e || void 0 === e.c ? a : (e.hide_under > t[i].canv.width || t[i].canv.width > e.hide_over ? (!0 !== e.tpForceNotVisible && (e.c.addClass("tp-forcenotvisible"), e.isVisible = !1, a = !0), e.tpForceNotVisible = !0) : (!1 !== e.tpForceNotVisible && (e.c.removeClass("tp-forcenotvisible"), e.isVisible = !0, a = !0), e.tpForceNotVisible = !1), a) }; window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.navigation = { loaded: !0, version: "6.6.0" }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal() }(jQuery), function (e) { "use strict"; window._R_is_Editor ? RVS._R = void 0 === RVS._R ? {} : RVS._R : window._R_is_Editor = !1, jQuery.fn.revolution = jQuery.fn.revolution || {}; var t = _R_is_Editor ? RVS._R : jQuery.fn.revolution; jQuery.extend(!0, t, { bgW: function (e, i) { return _R_is_Editor ? RVS.RMD.width : "carousel" === t[e].sliderType ? t[e].justifyCarousel ? t[e].carousel.slide_widths[void 0 !== i ? i : t[e].carousel.focused] : t[e].carousel.slide_width : t[e].module.width }, bgH: function (e, i) { return _R_is_Editor ? RVS.RMD.height : "carousel" === t[e].sliderType ? t[e].carousel.slide_height : t[e].module.height }, getPZSides: function (e, t, i, a, r, o, s) { var n = e * i, l = t * i, d = Math.abs(a - n), c = Math.abs(r - l), p = new Object; return p.l = (0 - o) * d, p.r = p.l + n, p.t = (0 - s) * c, p.b = p.t + l, p.h = o, p.v = s, p }, getPZCorners: function (e, i, a, r) { var o = e.bgposition.split(" ") || "center center", s = "center" == o[0] ? "50%" : "left" == o[0] || "left" == o[1] ? "0%" : "right" == o[0] || "right" == o[1] ? "100%" : o[0], n = "center" == o[1] ? "50%" : "top" == o[0] || "top" == o[1] ? "0%" : "bottom" == o[0] || "bottom" == o[1] ? "100%" : o[1]; s = parseInt(s, 0) / 100 || 0, n = parseInt(n, 0) / 100 || 0; var l = new Object; return l.start = t.getPZSides(r.start.width, r.start.height, r.start.scale, i, a, s, n), l.end = t.getPZSides(r.start.width, r.start.height, r.end.scale, i, a, s, n), l }, getPZValues: function (e) { var t = e.panzoom.split(";"), i = { duration: 10, ease: "none", scalestart: 1, scaleend: 1, rotatestart: .01, rotateend: 0, blurstart: 0, blurend: 0, offsetstart: "0/0", offsetend: "0/0" }; for (var a in t) if (t.hasOwnProperty(a)) { var r = t[a].split(":"), o = r[0], s = r[1]; switch (o) { case"d": i.duration = parseInt(s, 0) / 1e3; break; case"e": i.ease = s; break; case"ss": i.scalestart = parseInt(s, 0) / 100; break; case"se": i.scaleend = parseInt(s, 0) / 100; break; case"rs": i.rotatestart = parseInt(s, 0); break; case"re": i.rotateend = parseInt(s, 0); break; case"bs": i.blurstart = parseInt(s, 0); break; case"be": i.blurend = parseInt(s, 0); break; case"os": i.offsetstart = s; break; case"oe": i.offsetend = s } } return i.offsetstart = i.offsetstart.split("/") || [0, 0], i.offsetend = i.offsetend.split("/") || [0, 0], i.rotatestart = 0 === i.rotatestart ? .01 : i.rotatestart, e.panvalues = i, e.bgposition = "center center" == e.bgposition ? "50% 50%" : e.bgposition, i }, pzCalcL: function (e, i, a) { var r, o, s, n, l, d, c = void 0 === a.panvalues ? jQuery.extend(!0, {}, t.getPZValues(a)) : jQuery.extend(!0, {}, a.panvalues), p = c.offsetstart, g = c.offsetend, u = { start: { width: e, height: _R_is_Editor ? e / a.loadobj.width * a.loadobj.height : e / a.owidth * a.oheight, rotation: Math.PI / 180 * c.rotatestart, rotationV: c.rotatestart, scale: c.scalestart, transformOrigin: "0% 0%" }, end: {rotation: Math.PI / 180 * c.rotateend, rotationV: c.rotateend, scale: c.scaleend} }; c.scalestart, a.owidth, a.oheight, c.scaleend, a.owidth, a.oheight; return u.start.height < i && (d = i / u.start.height, u.start.height = i, u.start.width = u.start.width * d), .01 === c.rotatestart && 0 === c.rotateend && (delete u.start.rotation, delete u.end.rotation), r = t.getPZCorners(a, e, i, u), p[0] = parseFloat(p[0]) + r.start.l, g[0] = parseFloat(g[0]) + r.end.l, p[1] = parseFloat(p[1]) + r.start.t, g[1] = parseFloat(g[1]) + r.end.t, o = r.start.r - r.start.l, s = r.start.b - r.start.t, n = r.end.r - r.end.l, l = r.end.b - r.end.t, p[0] = p[0] > 0 ? 0 : o + p[0] < e ? e - o : p[0], g[0] = g[0] > 0 ? 0 : n + g[0] < e ? e - n : g[0], p[1] = p[1] > 0 ? 0 : s + p[1] < i ? i - s : p[1], g[1] = g[1] > 0 ? 0 : l + g[1] < i ? i - l : g[1], u.start.x = p[0], u.start.y = p[1], u.end.x = g[0], u.end.y = g[1], u.end.ease = c.ease, u }, pzDrawShadow: function (e, i, a) { ("animating" === i.currentState || null == i.panFake || i.pzLastFrame) && (i.pzLastFrame = !1, i.shadowCTX.clearRect(0, 0, i.shadowCanvas.width, i.shadowCanvas.height), i.shadowCTX.save(), void 0 !== a.rotation ? i.shadowCTX.transform(Math.cos(a.rotation) * a.scale, Math.sin(a.rotation) * a.scale, Math.sin(a.rotation) * -a.scale, Math.cos(a.rotation) * a.scale, a.x, a.y) : i.shadowCTX.transform(a.scale, 0, 0, a.scale, a.x, a.y), i.shadowCTX.drawImage(i.loadobj.img, 0, 0, a.width, a.height), i.shadowCTX.restore()), "animating" !== i.currentState ? null != i.panFake ? (i.panFake.visible || (i.panFake.visible = !0, i.panFake.img.style.opacity = 1, i.canvas.style.opacity = 0), tpGS.gsap.set(i.panFake.img, { width: a.width, height: a.height, force3D: !0, x: a.x, y: a.y, transformOrigin: "0% 0%", rotationZ: a.rotationV + "deg", scale: a.scale }), void 0 !== a.blur && (i.panFake.img.style.filter = 0 === a.blur ? "none" : "blur(" + a.blur + "px)")) : (t.updateSlideBGs(e, a.slidekey, i, !0), void 0 !== a.blur && (i.canvas.style.filter = 0 === a.blur ? "none" : "blur(" + a.blur + "px)")) : (void 0 !== i.panFake && !1 !== i.panFake.visible && (i.panFake.visible = !1, i.panFake.img.style.opacity = 0, i.canvas.style.opacity = 1, i.panFake.img.style.filter = "none"), void 0 !== a.blur && i.canvasFilter ? i.canvasFilterBlur = a.blur : i.canvas.style.filter = 0 === a.blur ? "none" : "blur(" + a.blur + "px)") }, startPanZoom: function (e, i, a, r, o, s) { var n = _R_is_Editor ? e : e.data(); if (void 0 !== n.panzoom && null !== n.panzoom) { var l = _R_is_Editor ? n : t[i].sbgs[s]; _R_is_Editor || "carousel" !== t[i].sliderType || (t[i].carousel.justify && void 0 === t[i].carousel.slide_widths && t.setCarouselDefaults(i, !0), t[i].carousel.justify || (void 0 === t[i].carousel.slide_width && (t[i].carousel.slide_width = !0 !== t[i].carousel.stretch ? t[i].gridwidth[t[i].level] * (0 === t[i].CM.w ? 1 : t[i].CM.w) : t[i].canv.width), void 0 === t[i].carousel.slide_height && (t[i].carousel.slide_height = !0 !== t[i].carousel.stretch ? t[i].gridheight[t[i].level] * (0 === t[i].CM.w ? 1 : t[i].CM.w) : t[i].canv.height))); var d, c = t.getmDim(i, r, l), p = t.pzCalcL(c.width, c.height, n); l.pzAnim = p, _R_is_Editor || (t[i].panzoomTLs = void 0 === t[i].panzoomTLs ? {} : t[i].panzoomTLs, t[i].panzoomBGs = void 0 === t[i].panzoomBGs ? {} : t[i].panzoomBGs, void 0 === t[i].panzoomBGs[r] && (t[i].panzoomBGs[r] = e), d = t[i].panzoomTLs[r]), a = a || 0, void 0 !== d && (d.pause(), d.kill(), d = void 0), d = tpGS.gsap.timeline({paused: !0}), n.panvalues.duration = NaN === n.panvalues.duration || void 0 === n.panvalues.duration ? 10 : n.panvalues.duration, _R_is_Editor || void 0 === n || void 0 === l || (l.panvalues = n.panvalues), void 0 !== l && (void 0 === l.shadowCanvas && (l.shadowCanvas = document.createElement("canvas"), l.shadowCTX = l.shadowCanvas.getContext("2d"), l.shadowCanvas.style.background = "transparent", l.shadowCanvas.style.opacity = 1), l.shadowCanvas.width !== c.width && (l.shadowCanvas.width = c.width), l.shadowCanvas.height !== c.height && (l.shadowCanvas.height = c.height), p.slideindex = r, p.slidekey = _R_is_Editor ? void 0 : s, p.start.slidekey = p.slidekey, t.pzDrawShadow(i, l, p.start), p.end.onUpdate = function () { t.pzDrawShadow(i, l, p.start) }, l.panStart = jQuery.extend(!0, {}, p.start), void 0 === n.panvalues.blurstart || void 0 === n.panvalues.blurend || 0 === n.panvalues.blurstart && 0 === n.panvalues.blurend || (p.start.blur = n.panvalues.blurstart, p.end.blur = n.panvalues.blurend), (!_R_is_Editor && void 0 === p.start.blur && !t.isFF || window.isSafari11 && t.ISM) && (l.panFake = void 0 === l.panFake ? {img: l.loadobj.img.cloneNode(!0)} : l.panFake, void 0 !== l.panFake && (!0 !== l.panFake.appended && (l.panFake.appended = !0, l.sbg.appendChild(l.panFake.img), l.panFake.img.style.position = "absolute", l.panFake.img.style.display = "block", l.panFake.img.style.zIndex = 0, l.panFake.img.style.opacity = 0, l.panFake.img.style.top = "0px", l.panFake.img.style.left = "0px"), l.panFake.img.width = p.start.width, l.panFake.img.height = p.start.height)), d.add(tpGS.gsap.to(p.start, n.panvalues.duration, p.end), 0), d.progress(a), "play" !== o && "first" !== o || d.play(), _R_is_Editor ? RVS.TL[RVS.S.slideId].panzoom = d : t[i].panzoomTLs[r] = d) } } }), window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.panzoom = { loaded: !0, version: "6.6.0" }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal() }(jQuery), function (e) { "use strict"; jQuery.fn.revolution = jQuery.fn.revolution || {}; var t = jQuery.fn.revolution; jQuery.extend(!0, t, { checkForParallax: function (e) { var r = t[e].parallax; if (!r.done) { if (r.done = !0, t.ISM && r.disable_onmobile) return !1; if ("3D" == r.type || "3d" == r.type) { if (t.addSafariFix(e), tpGS.gsap.set(t[e].c, {overflow: r.ddd_overflow}), tpGS.gsap.set(t[e].canvas, {overflow: r.ddd_overflow}), ("carousel" != t[e].sliderType || "carousel" == t[e].sliderType && "mousedrag" == t[e].parallax.type) && r.ddd_shadow) { var o = jQuery('
'); tpGS.gsap.set(o, { force3D: "auto", transformPerspective: 1600, transformOrigin: "50% 50%", width: "100%", height: "100%", position: "absolute", top: 0, left: 0, zIndex: 0 }), t[e].c.prepend(o) } for (var s in t[e].slides) t[e].slides.hasOwnProperty(s) && i(jQuery(t[e].slides[s]), e); t[e].c.find("rs-static-layers").length > 0 && (tpGS.gsap.set(t[e].c.find("rs-static-layers"), { top: 0, left: 0, width: "100%", height: "100%" }), i(t[e].c.find("rs-static-layers"), e)) } r.pcontainers = {}, r.bgcontainers = [], r.bgcontainer_depths = [], r.speed = void 0 === r.speed ? 0 : parseInt(r.speed, 0), r.speedbg = void 0 === r.speedbg ? 0 : parseInt(r.speedbg, 0), r.speedls = void 0 === r.speedls ? 0 : parseInt(r.speedls, 0), t[e].c.find("rs-slide rs-sbg-wrap, rs-slide rs-bgvideo").each(function () { var i = jQuery(this), a = i.data("parallax"); window.isSafari11 || (t[e].parZ = 1), void 0 !== (a = "on" == a || !0 === a ? 1 : a) && "off" !== a && !1 !== a && (r.bgcontainers.push(i.closest("rs-sbg-px")), r.bgcontainer_depths.push(t[e].parallax.levels[parseInt(a, 0) - 1] / 100)) }); for (s = 1; s <= r.levels.length; s++) { for (var n in t[e].slides) if (t[e].slides.hasOwnProperty(n)) { var l = (c = t[e].slides[n]).dataset.key; void 0 === r.pcontainers[l] && (r.pcontainers[l] = {}), a(s, r, c, r.pcontainers[l]) } l = "static"; void 0 === r.pcontainers[l] && (r.pcontainers[l] = {}), a(s, r, t[e].slayers[0], r.pcontainers[l]), JSON.stringify(r.pcontainers[l]) == JSON.stringify({}) && delete r.pcontainers[l] } if ("mouse" == r.type || "mousedrag" == r.type || "mousescroll" == r.type || "3D" == r.type || "3d" == r.type) { var d = "rs-slide .dddwrapper, .dddwrappershadow, rs-slide .dddwrapper-layer, rs-static-layers .dddwrapper-layer"; for (var n in "carousel" === t[e].sliderType && (d = "rs-slide .dddwrapper, rs-slide .dddwrapper-layer, rs-static-layers .dddwrapper-layer"), r.sctors = {}, t[e].slides) if (t[e].slides.hasOwnProperty(n)) { var c; l = (c = t[e].slides[n]).dataset.key; r.sctors[l] = c.querySelectorAll(d) } t[e].slayers[0] && (r.sctors.static = t[e].slayers[0].querySelectorAll(d)), r.mouseEntered = !1, t[e].c.on("mouseenter", function (i) { var a = t[e].c.offset().top, o = t[e].c.offset().left; r.mouseEnterX = i.pageX - o, r.mouseEnterY = i.pageY - a, r.mouseEntered = !0 }), r.parallaxHandler = this.updateParallax.bind(this, e, r), r.hasAlreadyPermission = !1, "mousedrag" != r.type && t[e].c.on("mousemove.hoverdir, mouseleave.hoverdir, trigger3dpath", function (e) { r.eventData = e, void 0 !== r.frame && "mouseleave" !== e.type || (r.frame = window.requestAnimationFrame(r.parallaxHandler)) }), t.ISM && (t.modulesNeedOrientationListener = null == t.modulesNeedOrientationListener ? {} : t.modulesNeedOrientationListener, t.modulesNeedOrientationListener[e] = !0, t.addDeviceOrientationListener(e)) } var p = t[e].scrolleffect; p.set && (p.multiplicator_layers = parseFloat(p.multiplicator_layers), p.multiplicator = parseFloat(p.multiplicator)), void 0 !== p._L && 0 === p._L.length && (p._L = !1), void 0 !== p.bgs && 0 === p.bgs.length && (p.bgs = !1) } }, removeIOSPermissionWait: function () { document.querySelectorAll(".iospermaccwait").forEach(function (e) { e.classList.add("permanenthidden") }) }, addDeviceOrientationListener: function (e) { var i = t[e].parallax; window.addEventListener("deviceorientation", function (a) { t.modulesNeedOrientationListener[e] && (t.modulesNeedOrientationListener[e] = !1, t.removeIOSPermissionWait()), i.eventData = a, void 0 === i.frame && (i.frame = window.requestAnimationFrame(i.parallaxHandler)) }) }, getAccelerationPermission: function (e) { DeviceMotionEvent.requestPermission().then(function (e) { if ("granted" == e) for (var i in t.modulesNeedOrientationListener) t.modulesNeedOrientationListener.hasOwnProperty(i) && (t.modulesNeedOrientationListener[i] = !1, t.removeIOSPermissionWait(), t.addDeviceOrientationListener(i)) }) }, getLayerParallaxOffset: function (e, i, a) { return void 0 !== t[e].parallax && void 0 !== t[e].parallax.pcontainers && void 0 !== t[e].parallax.pcontainers[t[e]._L[i].slidekey] && void 0 !== t[e].parallax.pcontainers[t[e]._L[i].slidekey][i] ? Math.abs(t[e].parallax.pcontainers[t[e]._L[i].slidekey][i]["offs" + a]) : 0 }, updateParallax: function (e, i) { i.frame && (i.frame = window.cancelAnimationFrame(i.frame)); var a, r, o = i.eventData, s = t[e].c.offset().left, n = t[e].c.offset().top, l = t[e].canv.width, d = t[e].canv.height, c = i.speed / 1e3 || 3; if ("mousedrag" == i.type ? (r = -20 * t[e].carousel.delta, a = -20 * t[e].carousel.delta, t[e].carousel.fromWheel ? "v" === t[e].carousel.orientation ? a = 0 : r = 0 : "v" === t[e].carousel.orientation ? a = t[e].carousel.cX - t[e].carousel.lerpX : r = t[e].carousel.cY - t[e].carousel.lerpY) : "enterpoint" == i.origo && "deviceorientation" !== o.type ? (!1 === i.mouseEntered && (i.mouseEnterX = o.pageX - s, i.mouseEnterY = o.pageY - n, i.mouseEntered = !0), a = i.mouseEnterX - (o.pageX - s), r = i.mouseEnterY - (o.pageY - n), c = i.speed / 1e3 || .4) : "deviceorientation" !== o.type && (a = l / 2 - (o.pageX - s), r = d / 2 - (o.pageY - n)), ("mousedrag" != t[e].parallax.type || t[e].carousel.isPressed) && o && "deviceorientation" == o.type) { var p, g, u; p = o.beta - 60, g = o.gamma, u = p; var h = Math.abs(i.orientationX - g) > 1 || Math.abs(i.orientationY - u) > 1; if (i.orientationX = g, i.orientationY = u, !h) return; if (t.winW > t.getWinH(e)) { var m = g; g = u, u = m } a = 360 / l * (g *= 1.5), r = 180 / d * (u *= 1.5) } for (var v in !o || "mouseleave" !== o.type && "mouseout" !== o.type ? "mousedrag" == t[e].parallax.type && t[e].carousel.isPressed && ("v" === t[e].carousel.orientation && "same" == i.car_dir && (a = 0), "same" == i.car_dir ? "v" === t[e].carousel.orientation ? a = 0 : r = 0 : "opposite" == i.car_dir && ("v" === t[e].carousel.orientation ? (a = r, r = 0) : (r = a, a = 0)), "v" === t[e].carousel.orientation ? (r *= i.car_smulti, a *= i.car_omulti) : (r *= i.car_omulti, a *= i.car_smulti)) : i.mouseEntered = !1, i.pcontainers) if (i.pcontainers.hasOwnProperty(v)) { var f = !1; if ("mousedrag" == i.type && !t[e].carousel.justify) for (var y = 0; y < t[e].slideamount; y++) t[e].carousel.trackArr[y].elem.getAttribute("data-key") === v && Math.abs(t[e].carousel.trackArr[y].progress <= 1) && (f = !0); if (void 0 === t[e].activeRSSlide || "static" === v || f && "all" == i.car_env || t[e].slides[t[e].activeRSSlide].dataset.key === v) for (var y in i.pcontainers[v]) if (i.pcontainers[v].hasOwnProperty(y)) { var w = i.pcontainers[v][y]; w.pl = "3D" == i.type || "3d" == i.type ? w.depth / 200 : w.depth / 100, w.offsh = a * w.pl, w.offsv = r * w.pl, "mousescroll" == i.type ? tpGS.gsap.to(w.tpw, c, { force3D: "auto", x: w.offsh, ease: "power3.out", overwrite: "all" }) : tpGS.gsap.to(w.tpw, c, { force3D: "auto", x: w.offsh, y: w.offsv, ease: "power3.out", overwrite: "all" }) } } if ("3D" == i.type || "3d" == i.type) for (var v in i.sctors) if (i.sctors.hasOwnProperty(v) && (void 0 === t[e].activeRSSlide || "static" === v || t[e].slides[t[e].activeRSSlide].dataset.key === v || t.isFF)) for (var y in i.sctors[v]) if (i.sctors[v].hasOwnProperty(y)) { n = jQuery(i.sctors[v][y]); var b = t.isFirefox() ? Math.min(25, i.levels[i.levels.length - 1]) / 200 : i.levels[i.levels.length - 1] / 200, _ = a * b, S = r * b, x = 0 == t[e].canv.width ? 0 : Math.round(a / t[e].canv.width * b * 100) || 0, k = 0 == t[e].canv.height ? 0 : Math.round(r / t[e].canv.height * b * 100) || 0, L = n.closest("rs-slide"), O = 0, R = !1; "deviceorientation" === o.type && (_ = a * (b = i.levels[i.levels.length - 1] / 200), S = r * b * 3, x = 0 == t[e].canv.width ? 0 : Math.round(a / t[e].canv.width * b * 500) || 0, k = 0 == t[e].canv.height ? 0 : Math.round(r / t[e].canv.height * b * 700) || 0), n.hasClass("dddwrapper-layer") && (O = i.ddd_z_correction || 65, R = !0), n.hasClass("dddwrapper-layer") && (_ = 0, S = 0), L.index() === t[e].pr_active_key || "carousel" != t[e].sliderType || "carousel" == t[e].sliderType && "mousedrag" == t[e].parallax.type ? !i.ddd_bgfreeze || R ? tpGS.gsap.to(n, c, { rotationX: k, rotationY: -x, x: _, z: O, y: S, ease: "power3.out", overwrite: "all" }) : tpGS.gsap.to(n, .5, { force3D: "auto", rotationY: 0, rotationX: 0, z: 0, ease: "power3.out", overwrite: "all" }) : tpGS.gsap.to(n, .5, { force3D: "auto", rotationY: 0, x: 0, y: 0, rotationX: 0, z: 0, ease: "power3.out", overwrite: "all" }), "mouseleave" != o.type && "mouseout" !== o.type || tpGS.gsap.to(this, 3.8, { z: 0, ease: "power3.out" }) } }, parallaxProcesses: function (e, i, a, r) { var o = t[e].fixedOnTop ? Math.min(1, Math.max(0, window.scrollY / t.lastwindowheight)) : Math.min(1, Math.max(0, (0 - (i.top - t.lastwindowheight)) / (i.hheight + t.lastwindowheight))), s = (i.top >= 0 && i.top <= t.lastwindowheight || i.top <= 0 && i.bottom >= 0 || i.top <= 0 && i.bottom, t[e].slides[void 0 === t[e].pr_active_key ? 0 : t[e].pr_active_key]); if (t[e].scrollProg = o, t[e].scrollProgBasics = { top: i.top, height: i.hheight, bottom: i.bottom }, t[e].sbtimeline.fixed ? (!1 === t[e].fixedScrollOnState || 0 !== t[e].drawUpdates.cpar.left || !t.stickySupported || 0 != t[e].fullScreenOffsetResult && null != t[e].fullScreenOffsetResult ? t.stickySupported = !1 : (t[e].topc.addClass("rs-stickyscrollon"), t[e].fixedScrollOnState = !0), void 0 === t[e].sbtimeline.rest && t.updateFixedScrollTimes(e), i.top >= t[e].fullScreenOffsetResult && i.top <= t.lastwindowheight ? (o = t[e].sbtimeline.fixStart * (1 - i.top / t.lastwindowheight) / 1e3, !0 !== t.stickySupported && !1 !== t[e].fixedScrollOnState && (t[e].topc.removeClass("rs-fixedscrollon"), tpGS.gsap.set(t[e].cpar, { top: 0, y: 0 }), t[e].fixedScrollOnState = !1)) : i.top <= t[e].fullScreenOffsetResult && i.bottom >= t[e].module.height ? (!0 !== t.stickySupported && !0 !== t[e].fixedScrollOnState && (t[e].fixedScrollOnState = !0, t[e].topc.addClass("rs-fixedscrollon"), tpGS.gsap.set(t[e].cpar, { top: 0, y: t[e].fullScreenOffsetResult })), o = (t[e].sbtimeline.fixStart + t[e].sbtimeline.time * (Math.abs(i.top) / (i.hheight - t[e].module.height))) / 1e3) : (!0 !== t.stickySupported && (tpGS.gsap.set(t[e].cpar, {top: t[e].scrollproc >= 0 ? 0 : i.height - t[e].module.height}), !1 !== t[e].fixedScrollOnState && (t[e].topc.removeClass("rs-fixedscrollon"), t[e].fixedScrollOnState = !1)), o = i.top > t.lastwindowheight ? 0 : (t[e].sbtimeline.fixEnd + t[e].sbtimeline.rest * (1 - i.bottom / t[e].module.height)) / 1e3)) : o = t[e].duration * o / 1e3, void 0 !== s && void 0 !== t.gA(s, "key") && !0 !== a) { var n = 0; for (var l in t[e].sbas[t.gA(s, "key")]) if (void 0 !== t[e]._L[l] && null == t[e]._L[l].timeline && n++, void 0 !== t[e]._L[l] && void 0 !== t[e]._L[l].timeline && (1 == t[e]._L[l].animationonscroll || "true" == t[e]._L[l].animationonscroll)) { n = -9999; var d = void 0 !== t[e]._L[l].scrollBasedOffset ? o + t[e]._L[l].scrollBasedOffset : o; d = d <= 0 ? 0 : d < .1 ? .1 : d, t[e]._L[l].animteToTime !== d && (t[e]._L[l].animteToTimeCache = t[e]._L[l].animteToTime, t[e]._L[l].animteToTime = d, tpGS.gsap.to(t[e]._L[l].timeline, t[e].sbtimeline.speed, { time: d, ease: t[e].sbtimeline.ease })) } n > 0 && requestAnimationFrame(function () { t.parallaxProcesses(e, i, a, r) }), t[e].c.trigger("timeline_scroll_processed", {id: e, mproc: o, speed: t[e].sbtimeline.speed}) } if (t.ISM && t[e].parallax.disable_onmobile) return !1; var c, p = t[e].parallax; if (void 0 !== t[e].slides[t[e].pr_processing_key] && void 0 !== t[e].slides[t[e].pr_processing_key].dataset && (c = t[e].slides[t[e].pr_processing_key].dataset.key), "3d" != p.type && "3D" != p.type) { if ("scroll" == p.type || "mousescroll" == p.type) for (var g in p.pcontainers) if (p.pcontainers.hasOwnProperty(g) && (void 0 === t[e].activeRSSlide || "static" === g || t[e].slides[t[e].activeRSSlide].dataset.key === g || c === g)) for (var u in p.pcontainers[g]) if (p.pcontainers[g].hasOwnProperty(u)) { var h = p.pcontainers[g][u], m = void 0 !== r ? r : p.speedls / 1e3 || 0; h.pl = h.depth / 100, h.offsv = Math.round(t[e].scrollproc * (-h.pl * t[e].canv.height) * 10) / 10 || 0, tpGS.gsap.to(h.tpw, m, { overwrite: "auto", force3D: "auto", y: h.offsv }) } if (p.bgcontainers) for (u = 0; u < p.bgcontainers.length; u++) { var v = p.bgcontainers[u], f = p.bgcontainer_depths[u], y = t[e].scrollproc * (-f * t[e].canv.height) || 0; m = void 0 !== r ? r : p.speedbg / 1e3 || .015; m = void 0 !== t[e].parallax.lastBGY && 0 === m && Math.abs(y - t[e].parallax.lastBGY) > 50 ? .15 : m, tpGS.gsap.to(v, m, { position: "absolute", top: "0px", left: "0px", backfaceVisibility: "hidden", force3D: "true", y: y + "px" }), t[e].parallax.lastBGY = y } } var w = t[e].scrolleffect; if (w.set && (!t.ISM || !1 === w.disable_onmobile)) { var b = Math.abs(t[e].scrollproc) - w.tilt / 100; if (b = b < 0 ? 0 : b, !1 !== w._L) { var _ = 1 - b * w.multiplicator_layers, S = {force3D: "true"}; if ("top" == w.direction && t[e].scrollproc >= 0 && (_ = 1), "bottom" == w.direction && t[e].scrollproc <= 0 && (_ = 1), _ = _ > 1 ? 1 : _ < 0 ? 0 : _, w.fade && (S.opacity = _), w.scale) { var x = _; S.scale = 1 - x + 1 } if (w.blur) O = (O = (1 - _) * w.maxblur) <= .03 ? 0 : O, S["-webkit-filter"] = "blur(" + O + "px)", S.filter = "blur(" + O + "px)", window.isSafari11 && void 0 !== w._L && void 0 !== w._L[0] && void 0 !== w._L[0][0] && "RS-MASK-WRAP" == w._L[0][0].tagName && (S.z = .001); if (w.grayscale) { var k = "grayscale(" + 100 * (1 - _) + "%)"; S["-webkit-filter"] = void 0 === S["-webkit-filter"] ? k : S["-webkit-filter"] + " " + k, S.filter = void 0 === S.filter ? k : S.filter + " " + k } tpGS.gsap.set(w._L, S) } if (!1 !== w.bgs) { _ = 1 - b * w.multiplicator, S = {backfaceVisibility: "hidden", force3D: "true"}; for (var L in "top" == w.direction && t[e].scrollproc >= 0 && (_ = 1), "bottom" == w.direction && t[e].scrollproc <= 0 && (_ = 1), _ = _ > 1 ? 1 : _ < 0 ? 0 : _, w.bgs) if (w.bgs.hasOwnProperty(L)) { if (w.bgs[L].fade && (S.opacity = _), w.bgs[L].blur) { var O = (1 - _) * w.maxblur; S["-webkit-filter"] = "blur(" + O + "px)", S.filter = "blur(" + O + "px)" } if (w.bgs[L].grayscale) { k = "grayscale(" + 100 * (1 - _) + "%)"; S["-webkit-filter"] = void 0 === S["-webkit-filter"] ? k : S["-webkit-filter"] + " " + k, S.filter = void 0 === S.filter ? k : S.filter + " " + k } tpGS.gsap.set(w.bgs[L].c, S) } } } } }); var i = function (e, i) { var a = t[i].parallax; e.find("rs-sbg-wrap").wrapAll('
'); var r = e[0].querySelectorAll(".rs-parallax-wrap"), o = document.createElement("div"); o.className = "dddwrapper-layer", o.style.width = "100%", o.style.height = "100%", o.style.position = "absolute", o.style.top = "0px", o.style.left = "0px", o.style.zIndex = 5, o.style.overflow = a.ddd_layer_overflow; for (var s = 0; s < r.length; s++) r.hasOwnProperty(s) && null === t.closestNode(r[s], "RS-GROUP") && null === t.closestNode(r[s], "RS-ROW") && o.appendChild(r[s]); e[0].appendChild(o), e.find(".rs-pxl-tobggroup").closest(".rs-parallax-wrap").wrapAll('
'); var n = e.find(".dddwrapper"), l = e.find(".dddwrapper-layer"); e.find(".dddwrapper-layertobggroup").appendTo(n), "carousel" == t[i].sliderType && (a.ddd_shadow && n.addClass("dddwrappershadow"), tpGS.gsap.set(n, {borderRadius: t[i].carousel.border_radius})), tpGS.gsap.set(e, { overflow: "visible", transformStyle: "preserve-3d", perspective: 1600 }), tpGS.gsap.set(n, { force3D: "auto", transformOrigin: "50% 50%", transformStyle: "preserve-3d", transformPerspective: 1600 }), tpGS.gsap.set(l, { force3D: "auto", transformOrigin: "50% 50%", zIndex: 5, transformStyle: "flat", transformPerspective: 1600 }), tpGS.gsap.set(t[i].canvas, {transformStyle: "preserve-3d", transformPerspective: 1600}) }; function a(i, a, r, o) { e(r).find(".rs-pxl-" + i).each(function () { var e = this.className.indexOf("rs-pxmask") >= 0, r = e ? t.closestNode(this, "RS-PX-MASK") : t.closestClass(this, "rs-parallax-wrap"); r && (e && !window.isSafari11 && (tpGS.gsap.set(r, {z: 1}), tpGS.gsap.set(t.closestNode(r, "RS-BG-ELEM"), {z: 1})), r.dataset.parallaxlevel = a.levels[i - 1], r.classList.add("tp-parallax-container"), o[this.id] = { tpw: r, depth: a.levels[i - 1], offsv: 0, offsh: 0 }) }) } window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.parallax = { loaded: !0, version: "6.6.0" }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal() }(jQuery), function (e) { "use strict"; window._R_is_Editor ? RVS._R = void 0 === RVS._R ? {} : RVS._R : window._R_is_Editor = !1; jQuery.fn.revolution = jQuery.fn.revolution || {}; var t = _R_is_Editor ? RVS._R : jQuery.fn.revolution; _R_is_Editor && (RVS._R.isNumeric = RVS.F.isNumeric), jQuery.extend(!0, t, { getSlideAnimationObj: function (e, i, a) { var r, o = {}; for (var s in void 0 === i.anim && null == i.in && (i.in = "o:0"), i) if (i.hasOwnProperty(s) && void 0 !== i[s]) { var n = i[s].split(";"); for (var l in n) n.hasOwnProperty(l) && void 0 !== (r = n[l].split(":"))[0] && void 0 !== r[1] && (o[s] = void 0 === o[s] ? {} : o[s], o[s][r[0]] = "d3" === s && "c" === r[0] ? r[1] : r[1].split(",")[0]) } return o.in = void 0 === o.in ? {} : o.in, o.anim = void 0 === o.anim ? {e: "basic"} : o.anim, _R_is_Editor || void 0 === o.in || void 0 === o.in.prst || t.loadSlideAnimLibrary(e, { key: a, prst: o.in.prst }), t[e].sbgs[a].slideanimationRebuild = !1, o }, loadSlideAnimLibrary: function (e, i) { void 0 === t.SLTR && !0 !== t.SLTR_loading ? (t.SLTR_loading = !0, jQuery.ajax({ type: "post", url: t[e].ajaxUrl, dataType: "json", data: {action: "revslider_ajax_call_front", client_action: "get_transitions"}, success: function (a, r, o) { 1 == a.success && (t.SLTR = a.transitions, void 0 !== i && t.setRandomDefaults(e, i.key, i.prst)) }, error: function (e) { console.log("Transition Table can not be loaded"), console.log(e) } })) : void 0 !== i && void 0 !== t.SLTR && t.setRandomDefaults(e, i.key, i.prst) }, convertSlideAnimVals: function (e) { return { anim: { eng: e.eng, ms: parseInt(e.speed, 0), o: e.o, e: e.e, f: e.f, p: e.p, d: parseInt(e.d, 0), adpr: e.adpr }, d3: { f: e.d3.f, d: e.d3.d, z: e.d3.z, t: e.d3.t, c: e.d3.c, e: e.d3.e, fdi: e.d3.fdi, fdo: e.d3.fdo, fz: e.d3.fz, su: e.d3.su, smi: e.d3.smi, sma: e.d3.sma, sc: e.d3.sc, sl: e.d3.sl }, in: { eng: e.in.eng, o: _R_is_Editor && void 0 !== e.preset && 0 === e.preset.indexOf("rnd") ? 0 : t.valBeau(e.in.o), x: t.valBeau(e.in.x), y: t.valBeau(e.in.y), r: t.valBeau(e.in.r), sx: t.valBeau(e.in.sx), sy: t.valBeau(e.in.sy), m: e.in.m, e: e.in.e, row: e.in.row, col: e.in.col, mo: "false" !== e.in.mou && !1 !== e.in.mou ? t.valBeau(e.in.mo) : 0, moo: "false" !== e.in.mou && !1 !== e.in.mou ? t.valBeau(e.in.moo) : "none", mou: e.in.mou }, out: void 0 === e.out.a || "true" == e.out.a || !0 === e.out.a ? void 0 : { a: l(e.out.a), o: t.valBeau(e.out.o), x: t.valBeau(e.out.x), y: t.valBeau(e.out.y), r: t.valBeau(e.out.r), sx: t.valBeau(e.out.sx), sy: t.valBeau(e.out.sy), m: e.out.m, e: e.out.e, row: t.valBeau(e.out.row), col: t.valBeau(e.out.col) }, filter: { u: e.filter.u, e: e.filter.e, b: e.filter.b, g: e.filter.g, h: e.filter.h, s: e.filter.s, c: e.filter.c, i: e.filter.i }, addOns: e.addOns } }, setRandomDefaults: function (e, i, a) { t[e].sbgs[i].random = t.getAnimObjectByKey(a, t.SLTR) }, getSlideAnim_AddonDefaults: function () { var e = {}; for (var i in t.enabledSlideAnimAddons) e = jQuery.extend(!0, e, t[t.enabledSlideAnimAddons[i]].defaults()); return e }, getSlideAnim_EmptyObject: function () { return { speed: 1e3, o: "inout", e: "basic", f: "start", p: "none", d: 15, eng: "animateCore", adpr: !0, d3: { f: "none", d: "horizontal", z: 300, t: 0, c: "#ccc", e: "power2.inOut", fdi: 1.5, fdo: 2, fz: 0, su: !1, smi: 0, sma: .5, sc: "#000", sl: 1 }, filter: {u: !1, e: "default", b: 0, g: 0, h: 100, s: 0, c: 100, i: 0}, in: {o: 1, x: 0, y: 0, r: 0, sx: 1, sy: 1, m: !1, e: "power2.inOut", row: 1, col: 1, mo: 80, mou: !1}, out: {a: "true", o: 1, x: 0, y: 0, r: 0, sx: 1, sy: 1, m: !1, e: "power2.inOut", row: 1, col: 1}, addOns: t.getSlideAnim_AddonDefaults() } }, getAnimObjectByKey: function (e, i) { if (t.getAnimObjectCacheKey === e) return t.getAnimObjectCache; var a; for (var r in t.getAnimObjectCacheKey = e, i) if (i.hasOwnProperty(r) && void 0 === a) for (var o in i[r]) if (i[r].hasOwnProperty(o) && void 0 === a) if (e === o && 0 === e.indexOf("rnd")) (a = i[r][o]).main = r, a.group = o; else for (var s in i[r][o]) i[r][o].hasOwnProperty(s) && void 0 === a && s === e && ((a = i[r][o][s]).main = r, a.group = o); return t.getAnimObjectCache = jQuery.extend(!0, {}, a), a }, getRandomSlideTrans: function (e, i, a) { if (void 0 !== t.randomSlideAnimCache && void 0 !== t.randomSlideAnimCache[e] && void 0 !== t.randomSlideAnimCache[e][i]) return t.randomSlideAnimCache[e][i][Math.floor(Math.random() * t.randomSlideAnimCache[e][i].length)]; for (var r in t.randomSlideAnimCache = void 0 === t.randomSlideAnimCache ? {} : t.randomSlideAnimCache, t.randomSlideAnimCache[e] = void 0 === t.randomSlideAnimCache[e] ? {} : t.randomSlideAnimCache[e], t.randomSlideAnimCache[e][i] = void 0 === t.randomSlideAnimCache[e][i] ? [] : t.randomSlideAnimCache[e][i], a) if (a.hasOwnProperty(r) && "random" !== r && "custom" !== r && ("all" == e || r == e)) for (var o in a[r]) if (a[r].hasOwnProperty(o) && "icon" !== o && ("" + i == "undefined" || i.indexOf(o) >= 0)) for (var s in a[r][o]) a[r][o].hasOwnProperty(s) && -1 == jQuery.inArray(a[r][o][s].title, ["*north*", "*south*", "*east*", "*west*"]) && t.randomSlideAnimCache[e][i].push(s); return t.randomSlideAnimCache[e][i][Math.floor(Math.random() * t.randomSlideAnimCache[e][i].length)] }, cbgW: function (e, i) { return _R_is_Editor ? RVS.RMD.width : "carousel" === t[e].sliderType ? t[e].justifyCarousel ? t[e].carousel.slide_widths[void 0 !== i ? i : t[e].carousel.focused] : t[e].carousel.slide_width : t[e].canv.width }, cbgH: function (e, i) { return _R_is_Editor ? RVS.RMD.height : "carousel" === t[e].sliderType ? "v" != t[e].carousel.orientation || "fullscreen" !== t[e].sliderLayout && !t[e].infullscreenmode ? !0 === t[e].carousel.justify ? t[e].carousel.slide_height : "fullscreen" === t[e].sliderLayout || t[e].infullscreenmode ? t[e].module.height : Math.min(t[e].canv.height, t[e].gridheight[t[e].level]) : t[e].carousel.slide_height : void 0 !== t[e].maxHeight && t[e].maxHeight > 0 && !t[e].fixedOnTop ? Math.min(t[e].canv.height, t[e].maxHeight) : t[e].canv.height }, valBeau: function (e) { return e = ("" + (e = ("" + (e = ("" + (e = ("" + (e = ("" + e).split(",").join("|"))).replace("{", "ran("))).replace("}", ")"))).replace("[", "cyc("))).replace("]", ")") }, animateSlide: function (e, t) { return _R_is_Editor && RVS.F.resetSlideTL(), void 0 === tpGS.eases.late && (tpGS.CustomEase.create("late", "M0,0,C0,0,0.474,0.078,0.724,0.26,0.969,0.438,1,1,1,1"), tpGS.CustomEase.create("late2", "M0,0 C0,0 0.738,-0.06 0.868,0.22 1,0.506 1,1 1,1 "), tpGS.CustomEase.create("late3", "M0,0,C0,0,0.682,0.157,0.812,0.438,0.944,0.724,1,1,1,1")), o(e, t) }, getBasic: function (e) { return jQuery.extend(!0, { attr: null == e || void 0 === e.attr ? ["o", "r", "sx", "sy", "x", "y", "m", "e", "row", "col", "mo", "moo"] : e.attr, in: { f: "start", m: !1, o: 1, r: 0, sx: 1, sy: 1, x: 0, y: 0, row: 1, col: 1, e: "power2.inOut", ms: 1e3, mo: 0, moo: "none" }, out: { f: "start", m: !1, o: 1, r: 0, sx: 1, sy: 1, x: 0, y: 0, row: 1, col: 1, e: "power2.inOut", ms: 1e3 } }, e) }, playBGVideo: function (e, i, a) { if (_R_is_Editor) a = void 0 === a ? RVS.SBGS[RVS.S.slideId].n : a; else { if (void 0 === a && (void 0 === t[e].pr_next_bg || 0 === t[e].pr_next_bg.length)) return; a = void 0 === a ? t[e].sbgs[void 0 === i ? t[e].pr_next_bg[0].dataset.key : i] : a } void 0 !== a.bgvid && a.bgvid.length > 0 && (c(e, {}, a, "in"), t.resetVideo(a.bgvid, e), t.playVideo(a.bgvid, e, !0), tpGS.gsap.to(a.bgvid[0], .2, { zIndex: 30, display: "block", autoAlpha: 1, delay: .075, overwrite: "all" })) }, stopBGVideo: function (e, i, a) { if (_R_is_Editor) a = void 0 === a ? RVS.SBGS[RVS.S.slideId].n : a; else { if (void 0 === a && (void 0 === t[e].pr_next_bg || 0 === t[e].pr_next_bg.length)) return; a = void 0 === a ? t[e].sbgs[void 0 === i ? t[e].pr_next_bg[0].dataset.key : i] : a } void 0 !== a.bgvid && a.bgvid.length > 0 && (a.drawVideoCanvasImagesRecall = !1, t.stopVideo(a.bgvid, e), tpGS.gsap.to(a.bgvid[0], .2, { autoAlpha: 0, zIndex: 0, display: "none" })) }, SATools: { getOffset: function (e, i, a, r) { var o = ("" + e).indexOf("%") >= 0; return 0 == (e = t.SATools.getSpecialValue(e, r, a)) || void 0 === e ? 0 : o ? i * (parseInt(e) / 100) : parseInt(e) }, getSpecialValue: function (e, i, a, r) { if (t.isNumeric(parseFloat(e, 0))) return parseFloat(e, 0); var o = ("" + e).split("ran(").length > 1 ? "random" : ("" + e).split("cyc(").length > 1 ? "wrap" : ("" + e).split("(").length > 1 ? "dir" : "unknown", s = ("random" === o ? e.slice(4, -1) : "wrap" === o ? e.slice(4, -1) : e.slice(1, -1)).split("|"); if ("random" === o) return tpGS.gsap.utils.random(parseFloat(s[0]), parseFloat(s.length > 1 ? s[1] : 0 - s[0])); if ("wrap" === o) { var n = tpGS.gsap.utils.wrap(s, i); return ("" + n).split("(").length > 1 ? parseFloat(n.slice(1, -1)) * a + (r ? "%" : "") : n } return "dir" === o ? parseFloat(s[0]) * a + (r ? "%" : "") : void 0 } }, getmDim: function (e, i, a) { var r = t.cbgW(e, i), o = t.cbgH(e, i); return a.DPR = _R_is_Editor ? Math.min(window.devicePixelRatio, 2) : t[e].DPR, t.maxDimCheck(a, r, o) }, maxDimCheck: function (e, i, a) { var r, o; void 0 !== e.video && ("img" === e.video.tagName || null == e.video.videoWidth || e.video.videoWidth); if ("animating" !== e.currentState && null == e.panzoom || "animating" === e.currentState && null == e.panzoom && (null == e.slideanimation || null == e.slideanimation.anim || "true" !== e.slideanimation.anim.adpr)) if (e.DPR > 1 && t.ISM && a > 1024) e.DPR = 1, r = i, o = a; else { var s = { w: null == e.video || e.isVidImg ? e.loadobj.width : 0 == e.video.videoWidth ? e.loadobj.width : e.video.videoWidth, h: null == e.video || e.isVidImg ? e.loadobj.height : 0 == e.video.videoHeight ? e.loadobj.height : e.video.videoHeight }; void 0 === s.w && (s.w = e.loadobj.width), void 0 === s.h && (s.h = e.loadobj.height); var n = a / s.w, l = i / s.h, d = Math.max(n, l); if (d > e.DPR || n >= 1 && l >= 1 ? e.DPR = 1 : e.DPR > d && (e.DPR = Math.min(e.DPR, e.DPR / d)), r = i * e.DPR, o = a * e.DPR, e.DPR > 1) { var c = i / a; s.w > s.h && s.w < r ? (o = (r = Math.max(i, s.w)) / c, e.DPR = 1) : s.h > s.w && s.h < o && (r = (o = Math.max(a, s.h)) * c, e.DPR = 1) } } else e.DPR = 1, r = i, o = a; return {width: Math.round(r), height: Math.round(o), w: i, h: a} }, updateSlideBGs: function (e, i, a, r) { if (_R_is_Editor) a = void 0 === a ? RVS.SBGS[RVS.S.slideId].n : a; else { if (void 0 === a && (void 0 === t[e].pr_next_bg || 0 === t[e].pr_next_bg.length)) return; a = void 0 === a ? t[e].sbgs[void 0 === i ? t[e].pr_next_bg[0].dataset.key : i] : a } (r = void 0 !== a.mDIM && r) || (a.mDIM = t.getmDim(e, a.skeyindex, a)), void 0 !== a.video ? ("IMG" !== a.video.tagName && (a.isVidImg = ""), a.cDIMS = t.getBGCanvasDetails(e, a), a.canvas.width = a.mDIM.width, a.canvas.height = a.mDIM.height, a.ctx.clearRect(0, 0, a.mDIM.width, a.mDIM.height), a.ctx.drawImage(a.shadowCanvas, 0, 0)) : (a.cDIMS = t.getBGCanvasDetails(e, a, r), a.canvas.width = a.mDIM.width, a.canvas.height = a.mDIM.height, "panzoom" === a.currentState || "animating" === a.currentState || void 0 === a.currentState && !_R_is_Editor && "carousel" != t[e].sliderType || (a.ctx.clearRect(0, 0, a.mDIM.width, a.mDIM.height), 0 !== a.shadowCanvas.width && 0 !== a.shadowCanvas.height && a.ctx.drawImage(a.shadowCanvas, 0, 0))), "animating" === a.currentState && "carousel" !== t[e].sliderType && t.animatedCanvasUpdate(e, a) }, addCanvas: function () { var e = document.createElement("canvas"); return x = e.getContext("2d"), e.style.background = "transparent", e.style.opacity = 1, x }, updateVideoFrames: function (e, i, a) { if (i.now = Date.now(), i.then = void 0 === i.then ? i.now - 500 : i.then, i.elapsed = i.now - i.then, i.fps = "animating" === i.currentState && window._rs_firefox ? 50 : 33, i.elapsed > i.fps) { i.then = i.now - i.elapsed % i.fps; var r = "img" === i.video.tagName || null == i.video.videoWidth || 0 == i.video.videoWidth; void 0 !== i.video && !i.video.BGrendered && void 0 !== i.loadobj && void 0 !== i.loadobj.img || t.ISM && t.isFirefox(e) ? (i.mDIM = t.getmDim(e, i.skeyindex, i), i.pDIMS = s(i.mDIM, i, { width: i.mDIM.width, height: i.mDIM.height, x: 0, y: 0, contw: i.loadobj.width, conth: i.loadobj.height }), i.shadowCanvas.width !== i.mDIM.width && (i.shadowCanvas.width = i.mDIM.width), i.shadowCanvas.height !== i.mDIM.height && (i.shadowCanvas.height = i.mDIM.height), i.shadowCTX.drawImage(i.loadobj.img, i.pDIMS.x, i.pDIMS.y, i.pDIMS.width, i.pDIMS.height)) : ((a || void 0 === i.sDIMS || r !== i.isVidImg || 0 === i.sDIMS.width || 0 === i.sDIMS.height) && (i.isVidImg = r, i.mDIM = t.getmDim(e, i.skeyindex, i), i.sDIMS = s(i.mDIM, i, { width: i.mDIM.width, height: i.mDIM.height, x: 0, y: 0, contw: i.isVidImg ? i.loadobj.width : i.video.videoWidth, conth: i.isVidImg ? i.loadobj.height : i.video.videoHeight })), void 0 !== i.sDIMS && 0 !== i.sDIMS.width && 0 !== i.sDIMS.height && ("animating" === i.currentState ? (i.shadowCanvas.width !== i.mDIM.width && (i.shadowCanvas.width = i.mDIM.width), i.shadowCanvas.height !== i.mDIM.height && (i.shadowCanvas.height = i.mDIM.height), i.shadowCTX.drawImage(i.video, i.sDIMS.x, i.sDIMS.y, i.sDIMS.width, i.sDIMS.height)) : void 0 === i.animateDirection && (i.canvas.width !== i.mDIM.width && (i.canvas.width = i.mDIM.width), i.canvas.height !== i.mDIM.height && (i.canvas.height = i.mDIM.height), i.ctx.drawImage(i.video, i.sDIMS.x, i.sDIMS.y, i.sDIMS.width, i.sDIMS.height)), i.shadowCanvas_Drawn = !0)) } (a || i.drawVideoCanvasImagesRecall && "animating" === i.currentState || "animating" === i.currentState && void 0 === i.shadowCanvas_Drawn) && window.requestAnimationFrame(function () { t.updateVideoFrames(e, i) }) }, createOverlay: function (e, i, a, r) { if ("none" === i) return "none"; a = void 0 === a ? 1 : a; r = void 0 === r ? {0: "rgba(0, 0, 0, 0)", 1: "rgba(0, 0, 0, 1)"} : r; var o = { none: [[0]], 1: [[1, 0], [0, 0]], 2: [[1, 0, 0], [0, 0, 0], [0, 0, 0]], 3: [[1, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], 4: [[1], [0]], 5: [[1], [0], [0]], 6: [[1], [0], [0], [0]], 7: [[1, 0]], 8: [[1, 0, 0]], 9: [[1, 0, 0, 0]], 10: [[1, 0, 0, 0, 0], [0, 1, 0, 1, 0], [0, 0, 0, 0, 0], [0, 1, 0, 1, 0], [0, 0, 0, 0, 1]], 11: [[0, 0, 1, 0, 0], [0, 1, 0, 1, 0], [1, 0, 0, 0, 1], [0, 1, 0, 1, 0], [0, 0, 1, 0, 0]], 12: [[1, 0, 0], [0, 1, 0], [0, 0, 1]], 13: [[0, 0, 1], [0, 1, 0], [1, 0, 0]], 14: [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 0]], 15: [[0, 0, 0, 0, 1], [0, 0, 0, 1, 0], [0, 0, 1, 0, 0], [0, 1, 0, 0, 0], [1, 0, 0, 0, 0]], 16: [[1, 0, 0, 0, 1], [0, 1, 0, 1, 0], [0, 0, 1, 0, 0], [0, 1, 0, 1, 0], [1, 0, 0, 0, 1]] }, s = void 0 === o[i = void 0 === i ? 1 : i] ? o[2] : o[i]; _R_is_Editor && (t[e] = void 0 === t[e] ? {} : t[e]), t[e].patternCanvas = document.createElement("canvas"), t[e].patternCtx = t[e].patternCanvas.getContext("2d"), t[e].patternCanvas.width = s[0].length * a, t[e].patternCanvas.height = s.length * a; for (var n = 0; n < s.length; n++) for (var l = 0; l < s[n].length; l++) "transparent" != r[s[n][l]] && (t[e].patternCtx.fillStyle = r[s[n][l]], t[e].patternCtx.fillRect(l * a, n * a, a, a)); return "url(" + t[e].patternCanvas.toDataURL() + ")" }, getBGCanvasDetails: function (e, i, a) { var r; return a || (i.mDIM = t.getmDim(e, i.skeyindex, i)), i.usepattern = ("auto" === i.bgfit || i.bgfit.indexOf("%") >= 0) && (void 0 === i.loadobj || !0 !== i.loadobj.useBGColor), _R_is_Editor && void 0 === i.panzoom && delete i.shadowCanvas, void 0 === i.shadowCanvas && (i.shadowCanvas = document.createElement("canvas"), i.shadowCTX = i.shadowCanvas.getContext("2d"), i.shadowCanvas.style.background = "transparent", i.shadowCanvas.style.opacity = 1), !0 === i.replaceShadowCanvas || !0 === i.loadobj.bgColor || !0 === i.usebgColor || void 0 !== i.panzoom || null != i.isHTML5 && 1 != i.poster || i.usepattern ? (r = { width: i.mDIM.width, height: i.mDIM.height, x: 0, y: 0 }, i.usepattern && void 0 !== i.loadobj && void 0 !== i.loadobj.img ? t.getCanvasPattern(e, i, {ratio: i.loadobj.height / i.loadobj.width}) : (i.loadobj.bgColor || i.usebgColor) && (i.shadowCanvas.width !== i.mDIM.width && (i.shadowCanvas.width = i.mDIM.width), i.shadowCanvas.height !== i.mDIM.height && (i.shadowCanvas.height = i.mDIM.height), t.getCanvasGradients(e, i))) : (r = s(i.mDIM, i, { width: i.mDIM.width, height: i.mDIM.height, x: 0, y: 0, contw: i.loadobj.width, conth: i.loadobj.height }), i.shadowCanvas.width !== i.mDIM.width && (i.shadowCanvas.width = i.mDIM.width), i.shadowCanvas.height !== i.mDIM.height && (i.shadowCanvas.height = i.mDIM.height), void 0 !== i.loadobj && void 0 !== i.loadobj.img && i.shadowCTX.drawImage(i.loadobj.img, r.x, r.y, r.width, r.height), r = { width: i.mDIM.width, height: i.mDIM.height, x: 0, y: 0 }), r }, getCanvasPattern: function (e, i, a) { void 0 === i.patternImageCanvas && (i.patternImageCanvas = document.createElement("canvas"), i.patternImageCTX = i.patternImageCanvas.getContext("2d")); var r = i.bgfit.split(" "); 1 === r.length && (r[1] = r[0]), a.width = "auto" === r[0] ? i.loadobj.width : i.loadobj.width * (parseInt(r[0], 0) / 100), a.height = "auto" === r[1] ? i.loadobj.height : a.width * a.ratio, i.DPR = _R_is_Editor ? Math.min(window.devicePixelRatio, 2) : t[e].DPR; var o = a.width / a.height; a.width = a.width * i.DPR, a.height = a.height * i.DPR, t.isIOS && a.width * a.height > 15728640 && (i.mDIM.width > i.mDIM.height ? (a.width = i.mDIM.width, a.height = Math.round(i.mDIM.width / o)) : (a.height = i.mDIM.height, a.width = Math.round(i.mDIM.height * o))), i.patternImageCanvas.width = a.width, i.patternImageCanvas.height = a.height, i.patternImageCTX.drawImage(i.loadobj.img, 0, 0, a.width, a.height), i.shadowCanvas.width !== i.mDIM.width && (i.shadowCanvas.width = i.mDIM.width), i.shadowCanvas.height !== i.mDIM.height && (i.shadowCanvas.height = i.mDIM.height), i.shadowCTX.clearRect(0, 0, i.shadowCTX.canvas.width, i.shadowCTX.canvas.height), i.pattern = i.shadowCTX.createPattern(i.patternImageCanvas, i.bgrepeat), i.shadowCTX.fillStyle = i.pattern, i.shadowShifts = { h: i.bgposition.split(" ")[0], v: i.bgposition.split(" ")[1] }, i.shadowShifts.hperc = t.isNumeric(parseInt(i.shadowShifts.h)) ? parseInt(i.shadowShifts.h) / 100 * i.mDIM.width : 0, i.shadowShifts.vperc = t.isNumeric(parseInt(i.shadowShifts.v)) ? parseInt(i.shadowShifts.v) / 100 * i.mDIM.height : 0, i.shadowShifts.x = "left" === i.shadowShifts.h ? 0 : "center" === i.shadowShifts.h || "50%" == i.shadowShifts.h ? "repeat" == i.bgrepeat || "repeat-x" == i.bgrepeat ? i.mDIM.width / 2 - a.width / 2 - Math.ceil(i.mDIM.width / 2 / a.width) * a.width : i.mDIM.width / 2 - a.width / 2 : "right" === i.shadowShifts.h ? "repeat" == i.bgrepeat || "repeat-x" == i.bgrepeat ? -(a.width - i.mDIM.width % a.width) : i.mDIM.width - a.width : "repeat" == i.bgrepeat || "repeat-x" == i.bgrepeat ? -(a.width - i.shadowShifts.hperc % a.width) : i.shadowShifts.hperc, i.shadowShifts.y = "top" === i.shadowShifts.v ? 0 : "center" === i.shadowShifts.v || "50%" == i.shadowShifts.v ? "repeat" == i.bgrepeat || "repeat-y" == i.bgrepeat ? i.mDIM.height / 2 - a.height / 2 - Math.ceil(i.mDIM.height / 2 / a.height) * a.height : i.mDIM.height / 2 - a.height / 2 : "bottom" === i.shadowShifts.v ? "repeat" == i.bgrepeat || "repeat-y" == i.bgrepeat ? -(a.height - i.mDIM.height % a.height) : i.mDIM.height - a.height : "repeat" == i.bgrepeat || "repeat-y" == i.bgrepeat ? -(a.height - i.shadowShifts.vperc % a.height) : i.shadowShifts.vperc, i.shadowCTX.save(), i.shadowCTX.translate(i.shadowShifts.x, i.shadowShifts.y), i.shadowCTX.fillRect(0, 0, i.mDIM.width - i.shadowShifts.x, i.mDIM.height - i.shadowShifts.y), i.shadowCTX.restore() }, getCanvasGradients: function (e, i) { if (i.bgcolor.indexOf("gradient") >= 0) { i.gradient = null == i.gradient || _R_is_Editor ? t.getGradients(i.bgcolor) : i.gradient, i.shadowGrd = "radialGradient" === i.gradient.type ? i.shadowCTX.createRadialGradient(i.mDIM.width / 2, i.mDIM.height / 2, 0, i.mDIM.width / 2, i.mDIM.height / 2, Math.max(i.mDIM.width / 2, i.mDIM.height / 2)) : t.calcLinearGradient(i.shadowCTX, i.shadowCanvas.width, i.shadowCanvas.height, i.gradient.deg); for (var a = 0; a < i.gradient.stops.length; a += 2) i.shadowGrd.addColorStop(i.gradient.stops[a + 1], i.gradient.stops[a]); i.shadowCTX.clearRect(0, 0, i.mDIM.width, i.mDIM.height), i.shadowCTX.fillStyle = i.shadowGrd, i.shadowCTX.fillRect(0, 0, i.mDIM.width, i.mDIM.height) } else i.shadowCTX.clearRect(0, 0, i.mDIM.width, i.mDIM.height), i.shadowCTX.fillStyle = i.bgcolor, i.shadowCTX.fillRect(0, 0, i.mDIM.width, i.mDIM.height) }, cNS: function (e) { var t; for (t in e.n = document.createElementNS("http://www.w3.org/2000/svg", e.n), e.v) e.n.setAttributeNS(null, t.replace(/[A-Z]/g, function (e, t, i, a) { return "-" + e.toLowerCase() }), e.v[t]); for (t in void 0 !== e.c && e.n.setAttribute("class", e.c), void 0 !== e.id && (e.n.id = e.id), void 0 !== e.t && (e.n.textContent = e.t), e.s) e.s.hasOwnProperty(t) && (e.n.style[t] = e.s[t]); return e.n }, rgbToHex: function (e) { return "#" + d(e[0]) + d(e[1]) + d(e[2]) }, getSVGGradient: function (e) { if (void 0 === e) return e; if (_R_is_Editor && (e = RSColor.convert(e)), -1 == e.indexOf("gradient")) return e; var i = t.getGradients(e); void 0 === t.gradSVG && (t.gradSVG = t.cNS({ n: "svg", id: "tp_svg_gradients", s: {width: "100%", height: "100%", opacity: 0, pointerEvents: "none"} }), t.gradSVG.setAttribute("viewBox", "0 0 1 1"), t.gradSVG.setAttribute("preserveAspectRatio", "none"), document.body.appendChild(t.gradSVG), t.svgGradients = []); for (var a = !1, r = JSON.stringify(e), o = 0; o < t.svgGradients.length; o++) a || t.svgGradients[o].src == r && (a = !0, e = t.svgGradients[o].url); if (!a) { var s, n, l, d = "radialGradient" === i.type ? 0 : i.deg * (Math.PI / 180), c = "radialGradient" === i.type ? 0 : { x1: Math.round(50 + 50 * Math.sin(d)) + "%", y1: Math.round(50 + 50 * Math.cos(d)) + "%", x2: Math.round(50 + 50 * Math.sin(d + Math.PI)) + "%", y2: Math.round(50 + 50 * Math.cos(d + Math.PI)) + "%" }; l = t.cNS({ n: i.type, id: "tp_svg_gradient_" + t.svgGradients.length, v: "radialGradient" === i.type ? void 0 : { gradientUnits: "userSpaceOnUse", x1: c.x1, y1: c.y1, x2: c.x2, y2: c.y2 } }); for (var p = 0; p <= i.stops.length / 2; p += 2) n = tpGS.gsap.utils.splitColor(i.stops[p]), s = t.cNS({ n: "stop", v: { offset: 100 * i.stops[p + 1] + "%", stopColor: t.rgbToHex(n), stopOpacity: n.length > 3 ? n[3] : 1 } }), l.appendChild(s); t.gradSVG.appendChild(l), e = "url(#tp_svg_gradient_" + t.svgGradients.length + ")", t.svgGradients.push({ url: e, src: r, g: l }) } return e }, getGradients: function (e) { return e.indexOf("radial-gradient") >= 0 ? { stops: t.getGradientColorStopPoints(e.split("radial-gradient(ellipse at center, ")[1]), type: "radialGradient", deg: 0 } : -1 !== e.indexOf("gradient") ? t.getLinearGradientStops(e) : e }, getLinearGradientStops: function (e) { var t = e.split("linear-gradient(")[1]; _R_is_Editor && (t = (t = t.split(", ").join(",")).split(",rgba").join(", rgba")); var i = t.split("deg, "); for (var a in t = (i.length > 1 ? i[1] : i[0]).split(" "), i = i.length > 1 ? i[0] : 180, t) t.hasOwnProperty(a) && t[a].indexOf("%") >= 0 && (t[a] = "" + Math.round(100 * parseFloat(t[a].split("%,")[0].split("%)")[0])) / 1e4); return {stops: t, deg: i, type: "linearGradient"} }, getGradientColorStopPoints: function (e) { var t = /rgb([\s\S]*?)%/g, i = [], a = []; do { (o = t.exec(e)) && i.push(o[0]) } while (o); for (var r = 0; r < i.length; r++) { var o = i[r], s = (e = /rgb([\s\S]*?)\)/.exec(o), /\)([\s\S]*?)%/.exec(o)); e[0] && (e = e[0]), s[1] && (s = s[1]), a.push(e), a.push(parseFloat(s) / 100) } return a }, calcLinearGradient: function (e, t, i, a) { a = a * Math.PI / 180 + Math.PI / 2; for (var r, o, s, n, l = t / 2, d = i / 2, c = Math.sqrt(l * l + d * d), h = { x1: Math.cos(a) * c + l, y1: Math.sin(a) * c + d, x2: l, y2: d }, m = [g({x: 0, y: 0}, a), g({x: t, y: 0}, a), g({x: t, y: i}, a), g({ x: 0, y: i }, a)], v = [], f = 0; f < m.length; f++) v.push(u(m[f], h)); if (p(l, d, v[0].x, v[0].y) > p(l, d, v[1].x, v[1].y) ? (r = v[0].x, o = v[0].y) : (r = v[1].x, o = v[1].y), p(l, d, v[2].x, v[2].y) > p(l, d, v[3].x, v[3].y) ? (s = v[2].x, n = v[2].y) : (s = v[3].x, n = v[3].y), Math.round(100 * Math.atan2(d - o, l - r)) / 100 === Math.round(a % (2 * Math.PI) * 100) / 100) { var y = r, w = o; r = s, o = n, s = y, n = w } return e.createLinearGradient(Math.round(r), Math.round(o), Math.round(s), Math.round(n)) }, transitions: { filter: { update: function (e, t, i) { if (void 0 !== e && void 0 !== e.tl) { var a = void 0 !== i || void 0 !== e.tl.blur ? " blur(" + (void 0 !== i ? i : 0 + e.tl.blur !== void 0 ? e.tl.blur : 0) + "px)" : ""; t.canvas.style.filter = void 0 === e.tl.filter ? "" + a : e.tl.filter + a } }, extendTimeLine: function (e, t, i) { if (null != t) { var a = void 0 !== t.g && "0%" !== t.g && 0 !== t.g ? ("" === a ? "" : " ") + "grayscale(_g_%)" : ""; a += void 0 !== t.h && "100%" !== t.h && 100 !== t.h ? ("" === a ? "" : " ") + "brightness(_h_%)" : "", a += void 0 !== t.s && "0px" !== t.s && 0 !== t.s ? ("" === a ? "" : " ") + "sepia(_s_%)" : "", a += void 0 !== t.c && 100 !== t.c ? ("" === a ? "" : " ") + "contrast(_c_%)" : "", "" !== (a += void 0 !== t.i && 0 !== t.i ? ("" === a ? "" : " ") + "invert(_i_%)" : "") && (t.tl = {filter: a.replace("_g_", parseFloat(t.g)).replace("_h_", parseFloat(t.h)).replace("_s_", parseFloat(t.s)).replace("_c_", parseFloat(t.c)).replace("_i_", parseFloat(t.i))}), void 0 !== t.b && "0px" !== t.b && 0 !== t.b && (void 0 === t.tl ? t.tl = {blur: parseFloat(t.b)} : t.tl.blur = parseFloat(t.b)), void 0 !== t.tl && (e.add(tpGS.gsap.to(t.tl, t.ms / t.sec, void 0 === t.tl.filter ? {blur: 0} : void 0 === t.tl.blur ? { filter: a.replace("_g_", "0").replace("_h_", "100").replace("_s_", "0").replace("_c_", 100).replace("_i_", 0), ease: t.e } : { blur: 0, filter: a.replace("_g_", "0").replace("_h_", "100").replace("_s_", "0").replace("_c_", 100).replace("_i_", 0), ease: t.e }), 0), i.canvasFilter = !0) } } }, slidingoverlay: { getBasic: function () { return t.getBasic({ attr: ["x", "y"], in: {m: !0, o: -1, _xy: 20, _gxys: 10, _gxye: -10, zIndex: 20, e: "power1.inOut"}, out: {m: !0, reversed: !1, _xy: -100, o: 0, zIndex: 10, e: "power1.inOut"} }) }, updateAnim: function (e, i, a) { var r = void 0 !== i.in.x && 0 !== i.in.x && "0%" !== i.in.x ? "x" : "y"; i.in["g" + r + "s"] = t.SATools.getOffset(i.in[r], i.in._gxys, a, 1) + "%", i.in["g" + r + "e"] = t.SATools.getOffset(i.in[r], i.in._gxye, a, 1) + "%", i.out[r] = t.SATools.getOffset(i.in[r], i.out._xy, a, 1) + "%", i.in[r] = t.SATools.getOffset(i.in[r], i.in._xy, a, 1) + "%"; var o = parseInt(i.in[r]) >= 0; return i.in.d = "x" === r ? o ? "left" : "right" : o ? "up" : "down", i }, beforeDraw: function (e, t, i, a) { void 0 !== i.d && (i._dxs = "right" === i.d ? 0 + i.mw : "left" === i.d ? 0 - i.mw : 0, i._dys = "down" === i.d ? 0 + i.mh : "up" === i.d ? 0 - i.mh : 0, i._xs = "left" === i.d ? 0 - i.mw : 0, i._ys = "up" === i.d ? 0 - i.mh : 0, i._xe = "right" === i.d ? a.SLOT.OW + i.mw : "left" === i.d ? a.SLOT.OW - i.mw : a.SLOT.OW, i._ye = "down" === i.d ? a.SLOT.OH + i.mh : "up" === i.d ? a.SLOT.OH - i.mh : a.SLOT.OH, t.beginPath(), t.rect("left" === i.d ? Math.max(0, i._xs) : "right" === i.d ? Math.min(0, i._xs) : 0, "up" === i.d ? Math.max(0, i._ys) : "down" === i.d ? Math.min(0, i._ys) : 0, "left" === i.d ? Math.max(a.SLOT.OW, i._xe) : "right" === i.d ? Math.min(a.SLOT.OW, i._xe) : i._xe, "up" === i.d ? Math.max(a.SLOT.OH, i._ye) : "down" === i.d ? Math.min(a.SLOT.OH, i._ye) : i._ye), t.clip()) }, afterDraw: function (e, t, i, a, r) { void 0 !== i.d && (t.save(), t.beginPath(), t.rect(Math.max(0, i._dxs), Math.max(0, i._dys), i._xe, i._ye), t.clip(), t.save(), t.transform(r.csx, r.ssx, r.ssy, r.csy, .5 * a.SLOT.OW + i.x + i.sgx, .5 * a.SLOT.OH + i.y + i.sgy), t.drawImage(void 0 !== a.shadowCanvas ? a.shadowCanvas : a.loadobj.img, 0, 0, a.SLOT.OW, a.SLOT.OH, i.sgx - a.SLOT.OW / 2, i.sgy - a.SLOT.OH / 2, a.SLOT.OW, a.SLOT.OH), t.restore(), t.fillStyle = "rgba(0,0,0,0.6)", t.fillRect(i.gx, i.gy, a.SLOT.OW, a.SLOT.OH), t.restore()) }, extendTimeLine: function (e, i, a, r, o, s) { "in" !== o.direction || void 0 === r.gxe && void 0 === r.gye || (jQuery.extend(!0, a[0], { d: r.d, gx: void 0 === r.gxs ? 0 : 2 * t.SATools.getOffset(r.gxs, s.width, o.sdir, 0), gy: void 0 === r.gys ? 0 : 2 * t.SATools.getOffset(r.gys, s.height, o.sdir, 0), sgx: void 0 === r.gxs ? 0 : t.SATools.getOffset(r.gxs, s.width, o.sdir, 0), sgy: void 0 === r.gys ? 0 : t.SATools.getOffset(r.gys, s.height, o.sdir, 0), mw: 0 - s.width, mh: 0 - s.height }), i.add(tpGS.gsap.to(a, r.ms / r.sec, { gx: void 0 === r.gxe ? 0 : 2 * t.SATools.getOffset(r.gxe, s.width, o.sdir, 0), gy: void 0 === r.gye ? 0 : 2 * t.SATools.getOffset(r.gye, s.height, o.sdir, 0), sgx: void 0 === r.gxe ? 0 : 2 * t.SATools.getOffset(r.gxe, s.width, o.sdir, 0), sgy: void 0 === r.gye ? 0 : 2 * t.SATools.getOffset(r.gye, s.height, o.sdir, 0), mw: s.width, mh: s.height, ease: r.e }), 0)) } }, motionFilter: { init: function (e, t) { return void 0 !== t && parseFloat(t) > 0 ? (t = parseFloat(t), e.fmExists = !0, e.fmShadow = void 0 === e.fmShadow ? document.createElement("canvas") : e.fmShadow, e.fmCtx = e.fmShadow.getContext("2d"), e.fmShadow.width = e.ctx.canvas.width, e.fmShadow.height = e.ctx.canvas.height, e.fmCtx.globalAlpha = tpGS.gsap.utils.mapRange(100, 0, 40, 0, t) / 100, e.fmCtx.clearRect(0, 0, e.ctx.canvas.width, e.ctx.canvas.height)) : e.fmExists = !1, t }, render: function (e, t) { "partial" === t && (e.fmCtx.globalCompositeOperation = "source-over"), e.fmCtx.drawImage(e.canvas, 0, 0, e.canvas.width, e.canvas.height), e.ctx.clearRect(0, 0, e.canvas.width, e.canvas.height), e.ctx.drawImage(e.fmCtx.canvas, 0, 0, e.canvas.width, e.canvas.height), "partial" === t && (e.fmCtx.globalCompositeOperation = "source-atop"), "partial" !== t && "full" !== t || (e.fmCtx.fillStyle = "rgba(255, 255, 255, 0.1)", e.fmCtx.fillRect(0, 0, e.canvas.width, e.canvas.height)) }, clearFull: function (e, t) { e.fmExists && void 0 !== e.fmCtx && (e.ctx.clearRect(0, 0, e.canvas.width, e.canvas.height), e.fmCtx.clearRect(0, 0, e.canvas.width, e.canvas.height), void 0 !== t && t.render(t.time(), !0, !0)) }, complete: function (e) { e.fmShadow && e.fmShadow.remove() } }, d3: { ticker: function (e, t, i) { if (void 0 !== e.helper) { var a = e.smi * ("in" === i ? e.helper.oo : e.helper.o), r = e.sma * ("in" === i ? e.helper.oo : e.helper.o); if (e.gradient = "vertical" === e.d ? "in" === i ? t.ctx.createLinearGradient(0, 0, 0, t.canvas.height) : t.ctx.createLinearGradient(0, t.canvas.height, 0, 0) : "in" === i ? t.ctx.createLinearGradient(0, 0, t.canvas.width, 0) : t.ctx.createLinearGradient(t.canvas.width, 0, 0, 0), e.gradient.addColorStop(0, "rgba(" + e.sc + "," + a + ")"), e.gradient.addColorStop(e.sl, "rgba(" + e.sc + "," + r + ")"), t.ctx.fillStyle = e.gradient, t.ctx.fillRect(0, 0, t.canvas.width, t.canvas.height), void 0 !== t.cube && t.cube.ctx) { var o = void 0 !== e.roomhelper && !1 !== e.roomhelper && (90 - e.roomhelper.r) / 90; a = !1 !== o ? o : e.smi * e.helper.o, r = !1 !== o ? o : e.sma * e.helper.o, t.cube.ctx.clearRect(0, 0, t.cube.ctx.canvas.width, t.cube.ctx.canvas.height), e.gradientW = !1 !== o ? "vertical" === e.d ? e.t < 0 && 1 === e.sdir || e.t > 0 && -1 === e.sdir ? t.ctx.createRadialGradient(0, t.cube.ctx.canvas.width / 2, 0, 0, 0, 2 * t.cube.ctx.canvas.width) : t.ctx.createRadialGradient(t.cube.ctx.canvas.width, 0, 0, 0, 0, 2 * t.cube.ctx.canvas.width) : e.t > 0 && 1 === e.sdir || e.t < 0 && -1 === e.sdir ? t.ctx.createRadialGradient(t.cube.ctx.canvas.width / 2, t.cube.ctx.canvas.height, 0, t.cube.ctx.canvas.width / 2, t.cube.ctx.canvas.height, t.cube.ctx.canvas.width) : t.ctx.createRadialGradient(t.cube.ctx.canvas.width / 2, .2 * t.cube.ctx.canvas.height, 0, t.cube.ctx.canvas.width / 2, .2 * t.cube.ctx.canvas.height, t.cube.ctx.canvas.width) : "vertical" === e.d ? t.ctx.createLinearGradient(0, 0, 0, t.cube.ctx.canvas.height) : t.ctx.createLinearGradient(0, 0, t.cube.ctx.canvas.width, 0), e.gradientW.addColorStop(0, "rgba(" + e.sc + "," + (!1 !== o ? "a" === e.DIR ? r : 0 : "a" === e.DIR ? 0 : r) + ")"), e.gradientW.addColorStop(1, "rgba(" + e.sc + "," + (!1 !== o ? "a" === e.DIR ? 0 : r : "a" === e.DIR ? r : 0) + ")"), t.cube.ctx.fillStyle = e.gradientW, t.cube.ctx.fillRect(0, 0, t.cube.ctx.canvas.width, t.cube.ctx.canvas.height) } } }, setWall: function (e, t, i, a, r, o) { return e.TL = tpGS.gsap.timeline(), e.TL.add(tpGS.gsap.to(e.c, .2, {display: "block"}), 0), "rotationX" === i ? (e.ctx.canvas.width = a.w, e.ctx.canvas.height = a.w, e.TL.add(tpGS.gsap.set(e.w, { backgroundColor: r, width: a.w, height: a.w, transformOrigin: "50% 50% -" + a.w / 2 + "px", x: 0, y: t > 0 ? -(a.w - a.h) : 0, rotationX: t > 0 ? -90 : 90, rotationY: 0 }), 0)) : (e.ctx.canvas.width = o ? a.w : a.h, e.ctx.canvas.height = a.h, e.TL.add(tpGS.gsap.set(e.w, { backgroundColor: r, width: o ? a.w : a.h, height: a.h, transformOrigin: "50% 50% -" + (o ? a.w : a.h) / 2 + "px", x: t < 0 ? a.w - a.h : 0, y: 0, rotationX: 0, rotationY: t > 0 ? -90 : 90 }), 0)), e.TL }, buildCube: function (e) { e.cube = { c: document.createElement("div"), w: document.createElement("canvas") }, e.cube.ctx = e.cube.w.getContext("2d"), e.cube.c.className = "rs_fake_cube", e.cube.w.className = "rs_fake_cube_wall", tpGS.gsap.set(e.cube.c, { width: e.mDIM.w, height: e.mDIM.h }), tpGS.gsap.set(e.cube.w, { width: e.mDIM.w, height: e.mDIM.h, backgroundColor: "#ccc" }), e.cube.c.appendChild(e.cube.w), e.sbg.appendChild(e.cube.c) }, cubeTL: function (e, i, a, r) { if ("none" !== i.f && void 0 !== i.f) { a.sbg.style.transformStyle = "preserve-3d"; var o = tpGS.gsap.timeline(), s = "incube" === i.f ? 1 : -1, n = "incube" === i.f || "cube" === i.f, l = "fly" === i.f ? -30 : 90, d = "turn" !== i.f && !1 !== i.t && (_R_is_Editor || !0 === t[e].firstSlideAnimDone), c = -1 * i.z, p = {}, g = {z: d ? 0 : c, ease: "power1.inOut"}, u = {ease: i.e}, h = [a.canvas], m = n ? "50% 50% " : "20% 20% ", v = "rotationX", f = "rotationY", y = "y", w = "height", b = i.fd; if ("vertical" !== i.d ? (v = "rotationY", f = "rotationX", y = "x", w = "width", i.DIR = 1 === i.sdir ? "b" : "a") : i.DIR = 1 === i.sdir ? "a" : "b", w = "width" === w ? "w" : "height" === w ? "h" : w, "turn" === i.f ? (l = "vertical" === i.d ? -120 : 120, m = "vertical" === i.d ? 1 === i.sdir ? "in" === r ? "0% 0% 0%" : "0% 100% 0%" : "in" === r ? "0% 100% 0%" : "0% 0% 0%" : 1 === i.sdir ? "in" === r ? "0% 0% 0%" : "100% 0% 0%" : "in" === r ? "100% 0% 0%" : "0% 0% 0%", g.z = 0, u.ease = "out" === r ? "power3.out" : u.ease, b = "out" === r ? b / 2 : b) : m += s * a.mDIM[w] / 2 + "px", u[v] = 0, u[y] = 0, "in" === r ? p[v] = l * i.sdir : u[v] = -l * i.sdir, "fly" === i.f) { var _ = void 0 === i.fz ? 20 * Math.random() - 10 : parseInt(i.fz); "in" === r ? (p[y] = a.mDIM[w] * (void 0 === i.fdi ? 1.5 : parseFloat(i.fdi)) * i.sdir, p.rotateZ = i.sdir * _, u.rotateZ = 0) : (u[y] = a.mDIM[w] * (void 0 === i.fdo ? 2 : parseFloat(i.fdo)) * i.sdir * -1, u.rotateZ = i.sdir * _ * -1) } if (a.sbg.style.perspective = d ? "2500px" : "1500px", d) { var S = {z: c * ("fly" === i.f ? 1.5 : 3), ease: "power1.inOut"}, x = {z: 0, ease: "power1.inOut"}; S[f] = -1 * i.t, x[f] = 0, i.roomhelper = {r: 0}, o.add(tpGS.gsap.set(_R_is_Editor ? RVS.SBGS[RVS.S.slideId].wrap : a.wrap[0], { perspective: 1200, transformStyle: "preserve-3d", transformOrigin: m }), 0), o.add(tpGS.gsap.to(a.sbg, 3 * i.md, S), 0), o.add(tpGS.gsap.to(a.sbg, 3 * i.md, x), b - i.md), o.add(tpGS.gsap.to(i.roomhelper, 3 * i.md, {r: Math.abs(i.t)}), 0), o.add(tpGS.gsap.to(i.roomhelper, 3 * i.md, {r: 0}), b - i.md), "in" === r && 1 !== s && n && (void 0 === a.cube && t.transitions.d3.buildCube(a), o.add(t.transitions.d3.setWall(a.cube, S[f], f, a.mDIM, i.c), 0), h.push(a.cube.c)) } else i.roomhelper = !1, o.add(tpGS.gsap.set(_R_is_Editor ? RVS.SBGS[RVS.S.slideId].wrap : a.wrap[0], { perspective: "none", transformStyle: "none", transformOrigin: "50% 50%" }), 0), !_R_is_Editor && !0 !== t[e].firstSlideAnimDone && n && (void 0 === a.cube && t.transitions.d3.buildCube(a), o.add(t.transitions.d3.setWall(a.cube, p[v], v, a.mDIM, i.c, !0), 0), o.add(tpGS.gsap.fromTo(a.cube.w, 4 * i.md, {opacity: 0}, {opacity: 1}), 0), h.push(a.cube.c)); return i.helper = {o: 0, oo: 1}, o.add(tpGS.gsap.to(i.helper, b, { o: 1, oo: 0, ease: i.e }), i.md + 0), o.add(tpGS.gsap.set(h, jQuery.extend(!0, {}, p, { force3D: !0, transformOrigin: m })), 0), "turn" !== i.f && o.add(tpGS.gsap.to(h, 3 * i.md, g), 0), o.add(tpGS.gsap.to(h, b, u), i.md + 0), "turn" !== i.f && o.add(tpGS.gsap.to(h, 3 * i.md, { z: 0, ease: "power1.inOut" }), b - i.md), "out" === r && 1 !== s && o.add(tpGS.gsap.to(h, 2 * i.md, {opacity: 0}), i.dur - 2 * i.md), o } } } }, animatedCanvasUpdate: function (e, i) { i.cDIMS = t.getBGCanvasDetails(e, i), i.canvas.style.backgroundColor = "transparent", i.canvas.style.opacity = 1, i.canvas.width !== i.mDIM.width && (i.canvas.width = i.mDIM.width), i.canvas.height !== i.mDIM.height && (i.canvas.height = i.mDIM.height), _R_is_Editor || !0 !== t[e].clearModalBG || (i.ctx.clearRect(0, 0, i.canvas.width, i.canvas.height), t[e].clearModalBG = !1, i.sbg.parentNode.style.opacity = 1), i.col = Math.min(i.col || 1, i.canvas.width - 10), i.row = Math.min(i.row || 1, i.canvas.height - 10), i.SLOT = jQuery.extend(!0, { s: {}, c: {} }, a(e, i.col, i.row, i.mDIM, "OW", "OH")), i.SLOT.DX = 0 - i.SLOT.OW / 2, i.SLOT.DY = 0 - i.SLOT.OH / 2, i.row = Math.ceil(i.mDIM.height / i.SLOT.OH) || 1, void 0 !== i.callFromAnimatedCanvasUpdate && i.callFromAnimatedCanvasUpdate() }, slideAnimFinished: function (e, i, a, r) { void 0 !== i && (void 0 !== i.bgvid && i.bgvid.length > 0 && "out" === a.direction && (i.drawVideoCanvasImagesRecall = !1, t.stopVideo(i.bgvid, e), i.bgvid[0].style.display = "none", i.bgvid[0].style.zIndex = 0), i.panFake && i.panFake.img && ("out" === a.direction ? i.panFake.img.style.display = "none" : i.panFake.img.style.display = "block"), "in" === a.direction && (t.transitions.motionFilter.complete(i), i.ctx.canvas.style.filter = "none", tpGS.gsap.set(a.slide, {zIndex: 20}), delete i.animateDirection, i.bgvid.length > 0 && (i.isHTML5 ? tpGS.gsap.set(i.bgvid[0], { zIndex: 30, display: "block", opacity: 1 }) : (t.resetVideo(i.bgvid, e), tpGS.gsap.delayedCall(.1, function () { t.playVideo(i.bgvid, e, !0), tpGS.gsap.set(i.bgvid[0], {zIndex: 30, display: "block", opacity: 1}) })))), "out" === a.direction ? (tpGS.gsap.set(a.slide, {zIndex: 10}), tpGS.gsap.set(i.canvas, { rotationX: 0, rotationY: 0, rotationZ: 0, x: 0, y: 0, z: 0, opacity: 1 }), i.currentState = void 0) : i.currentState = "idle", void 0 !== i.cube && (i.cube.c.style.display = "none"), "in" === a.direction && (t.updateSlideBGs(e, i.skeyindex, i), void 0 === i.panzoom || _R_is_Editor || t.startPanZoom(t[e].pr_next_bg, e, void 0 !== t[e].panzoomTLs[i.skeyindex] ? t[e].panzoomTLs[i.skeyindex].progress() : 0, i.skeyindex, "play", i.key), void 0 !== a.BG && !0 !== r && a.BG.ctx.clearRect(0, 0, 2 * i.canvas.width, 2 * i.canvas.height))) }, animateCore: function (e, i, a, r) { var o, s, n, l, d = i.canvas, c = i.ctx, p = 0; if (i.col = a.col, i.row = a.row, _R_is_Editor && i.three) { for (i.canvas.style.display = "block"; i.three.scene.children.length > 0;) i.three.scene.remove(i.three.scene.children[0]); i.three.canvas.parentNode.removeChild(i.three.canvas), i.three = void 0 } t.animatedCanvasUpdate(e, i), a.row = i.row, i.animateDirection = r.direction, r.delay = void 0 === r.delay ? 0 : r.delay, n = a.col * a.row, l = Array(n), void 0 === i.help_canvas && "out" === r.direction && void 0 !== r.bgColor && (i.help_canvas = document.createElement("canvas"), i.help_ctx = i.help_canvas.getContext("2d"), i.help_canvas.style.backgroundColor = "transparent"), "out" === r.direction && void 0 !== r.bgColor && (i.help_canvas.width = i.mDIM.width, i.help_canvas.height = i.mDIM.height, i.help_ctx.fillStyle = r.bgColor, i.help_ctx.fillRect(0, 0, i.mDIM.width, i.mDIM.height)), a.mo = t.transitions.motionFilter.init(i, a.mo), a.dur = a.ms / a.sec, void 0 !== r.d3 && (r.d3.dur = a.dur, r.d3.fd = .7 * a.dur, r.d3.md = .15 * a.dur, r.d3.sdir = r.sdir), i.SLOT.c = { ws: 0, hs: 0, wd: 0, hd: 0 }, a.mo > 0 && _R_is_Editor && c.clearRect(0, 0, d.width, d.height); var g = tpGS.gsap.timeline({ onUpdate: function () { if (p = 0, a.mo > 0 ? t.transitions.motionFilter.render(i, a.moo) : c.clearRect(0, 0, d.width, d.height), i.help_canvas && "out" === r.direction && c.drawImage(i.help_canvas, 0, 0), (r.filter && r.filter.u || !_R_is_Editor) && t.transitions.filter.update(r.filter, c, i.canvasFilterBlur), _R_is_Editor && 0 !== a.zIndex && void 0 !== a.zIndex && tpGS.gsap.set(r.slide, {zIndex: a.zIndex}), void 0 !== i.shadowCanvas) for (o = 0; o < a.col; o++) for (i.SLOT.SX = i.SLOT.OW * o, i.SLOT.tw = i.SLOT.OW * (o + .5), i.SLOT.c.wd = i.mDIM.width - (i.SLOT.tw + i.SLOT.DX + i.SLOT.OW), i.SLOT.c.wd = i.SLOT.c.wd < 0 ? i.SLOT.c.wd : 0, i.SLOT.DW = i.SLOT.SW = i.SLOT.OW + i.SLOT.c.wd, s = 0; s < a.row; s++) { c.save(); var n = -Math.PI / 180 * l[p].r, g = 0 !== a.r ? Math.cos(n) * l[p].sx : l[p].sx, u = 0 !== a.r ? Math.cos(n) * l[p].sy : l[p].sy, h = 0 !== a.r ? Math.sin(n) * l[p].sx : 0, m = 0 !== a.r ? Math.sin(n) * -l[p].sy : 0; i.SLOT.SY = i.SLOT.OH * s, i.SLOT.th = i.SLOT.OH * (s + .5), t.transitions[r.effect] && t.transitions[r.effect].beforeDraw && t.transitions[r.effect].beforeDraw(e, c, l[p], i), a.m && (c.beginPath(), c.rect(i.SLOT.OW * o, i.SLOT.OH * s, i.SLOT.OW, i.SLOT.OH), c.clip()), c.transform(g, h, m, u, i.SLOT.tw + l[p].x, i.SLOT.th + l[p].y), c.globalAlpha = Math.max(0, l[p].o), i.SLOT.c.hd = i.mDIM.height - (i.SLOT.th + i.SLOT.DY + i.SLOT.OH), i.SLOT.c.hd = i.SLOT.c.hd < 0 ? i.SLOT.c.hd : 0, i.SLOT.DH = i.SLOT.SH = i.SLOT.OH + i.SLOT.c.hd, i.SLOT.SW > 1 && i.SLOT.SH > 1 && c.drawImage(i.shadowCanvas, i.SLOT.SX, i.SLOT.SY, i.SLOT.SW, i.SLOT.SH, i.SLOT.DX, i.SLOT.DY, i.SLOT.DW, i.SLOT.DH), c.restore(), t.transitions[r.effect] && t.transitions[r.effect].afterDraw && t.transitions[r.effect].afterDraw(e, c, l[p], i, { csx: g, csy: u, ssx: h, ssy: m }), p++ } void 0 !== r.d3 && r.d3.su && t.transitions.d3.ticker(r.d3, i, r.direction), i.currentState = "animating" }, onComplete: function () { t.slideAnimFinished(e, i, r) } }); if (a.col * a.row < 2 && (a.f = "start"), 0 !== a.zIndex && void 0 !== a.zIndex && g.add(tpGS.gsap.set(r.slide, {zIndex: parseInt(a.zIndex, 0)}), 0), a.m = "false" != a.m && !1 !== a.m, "in" === r.direction) { for (o = 0; o < n; o++) l[o] = { x: t.SATools.getOffset(a.x, a.m ? i.SLOT.OW : i.mDIM.width, r.sdir, o), y: t.SATools.getOffset(a.y, a.m ? i.SLOT.OH : i.mDIM.height, r.sdir, o), o: t.SATools.getSpecialValue(a.o, o, r.sdir), sx: t.SATools.getSpecialValue(a.sx, o, r.sdir), sy: t.SATools.getSpecialValue(a.sy, o, r.sdir), r: 0 !== a.r ? t.SATools.getSpecialValue(a.r, o, r.sdir) : 0 }; g.add(tpGS.gsap.to(l, a.dur, { o: 1, sx: 1, sy: 1, r: 0, x: 0, y: 0, ease: a.e, stagger: { amount: "nodelay" === a.f ? 0 : a.ms / a.stasec, grid: [a.col, a.row], from: "nodelay" === a.f ? "start" : a.f } }), r.delay), void 0 !== r.d3 && g.add(t.transitions.d3.cubeTL(e, r.d3, i, "in"), 0), t.transitions.filter.extendTimeLine(g, r.filter, i) } else { for (o = 0; o < n; o++) l[o] = {x: 0, y: 0, o: 1, sx: 1, sy: 1, r: 0}; g.add(tpGS.gsap.to(l, a.dur, { o: function (e) { return t.SATools.getSpecialValue(a.o, e, r.sdir) }, sx: function (e) { return t.SATools.getSpecialValue(a.sx, e, r.sdir) }, sy: function (e) { return t.SATools.getSpecialValue(a.sy, e, r.sdir) }, r: 0 !== a.r && void 0 !== a.r ? function (e) { return t.SATools.getSpecialValue(a.r, e, r.sdir) } : 0, x: function (e) { return t.SATools.getOffset(a.x, a.m ? i.SLOT.OW : i.mDIM.width, r.sdir, e) * (a.reversed ? -1 : 1) }, y: function (e) { return t.SATools.getOffset(a.y, a.m ? i.SLOT.OH : i.mDIM.height, r.sdir, e) * (a.reversed ? -1 : 1) }, ease: a.e, stagger: { amount: "nodelay" === a.f ? 0 : a.ms / a.stasec, grid: [a.col, a.row], from: "nodelay" === a.f ? "start" : a.f } }), r.delay + (void 0 !== a.outdelay ? a.outdelay : 0)), void 0 !== r.d3 && g.add(t.transitions.d3.cubeTL(e, r.d3, i, "out"), 0) } t.transitions[r.effect] && t.transitions[r.effect].extendTimeLine && t.transitions[r.effect].extendTimeLine(e, g, l, a, r, i.mDIM), _R_is_Editor ? RVS.TL[RVS.S.slideId].slide.add(g, 0) : t[e].mtl.add(g, r.delay) } }); var i = function (e, i) { return void 0 !== i && t.isNumeric(i) ? parseFloat(i, 0) : null == i || "default" === i || "d" === i ? e : i }, a = function (e, t, i, a, r, o) { var s = {}; return s[r] = Math.ceil(a.width / t), s[o] = (_R_is_Editor, Math.ceil(a.height / i)), s }, r = function (e) { return null == e || 0 === e || NaN === e ? 1 : e }, o = function (e, a) { _R_is_Editor || (t[e].duringslidechange = !0); var o, s = _R_is_Editor ? -1 : "arrow" == t[e].sc_indicator ? void 0 === t[e].sc_indicator_dir ? t[e].sdir : t[e].sc_indicator_dir : t[e].sdir, l = !!_R_is_Editor || void 0 !== t[e].pr_next_bg && t[e].pr_next_bg.length > 0 && void 0 !== t[e].pr_next_bg[0], d = !!_R_is_Editor || void 0 !== t[e].pr_active_bg && t[e].pr_active_bg.length > 0 && void 0 !== t[e].pr_active_bg[0], p = _R_is_Editor ? RVS.SBGS[RVS.S.slideId].n : l ? t[e].sbgs[t[e].pr_next_bg[0].dataset.key] : void 0, g = _R_is_Editor ? RVS.SBGS[RVS.S.slideId].c : d ? t[e].sbgs[t[e].pr_active_bg[0].dataset.key] : void 0; s = 1 === s ? -1 : 1, _R_is_Editor || (delete t[e].sc_indicator, delete t[e].sc_indicator_dir), o = jQuery.extend(!0, {}, function (e, a, o) { var s = void 0 !== t.transitions[a.anim.e] && void 0 !== t.transitions[a.anim.e].getBasic ? t.transitions[a.anim.e].getBasic() : t.getBasic(), n = ""; s.out = null == s.out ? {} : s.out, s.out.reversed = void 0 === a.out && (void 0 === s.out.reversed || s.out.reversed); void 0 !== a.iw && parseInt(a.iw, 0), void 0 !== a.ow && parseInt(a.ow, 0); for (var l in s.attr) n = s.attr[l], s.in[n] = i(s.in[n], a.in[n]), s.out[n] = s.out.reversed ? s.in[n] : void 0 === a.out ? s.out[n] : i(s.out[n], a.out[n]); return s.filter = void 0 !== a.filter ? jQuery.extend(!0, a.filter, a.filter) : s.filter, t.transitions[a.anim.e] && t.transitions[a.anim.e].updateAnim && (s = t.transitions[a.anim.e].updateAnim(e, s, o)), s.e = a.anim.e, void 0 !== s.in && (s.in.col = "random" === s.in.col ? tpGS.gsap.utils.random(1, 10, 1) : r(s.in.col), s.in.row = "random" === s.in.row ? tpGS.gsap.utils.random(1, 10, 1) : r(s.in.row)), void 0 !== s.out && (s.out.col = "random" === s.out.col ? tpGS.gsap.utils.random(1, 10, 1) : r(s.out.col), s.out.row = "random" === s.out.row ? tpGS.gsap.utils.random(1, 10, 1) : r(s.out.row)), s }(e, a, s)), void 0 !== p.random && void 0 !== t.SLTR && void 0 !== g && (delete g.help_canvas, delete g.help_ctx), o.ms = i(void 0, void 0 === a.anim.ms ? 1e3 : a.anim.ms), o.f = i(void 0, a.anim.f), o.p = i(void 0, a.anim.p), o.d = i(void 0, a.anim.d), o.o = a.anim.o, void 0 !== a.d3 && (a.d3.t = void 0 !== a.d3.t && 0 !== a.d3.t && a.d3.t, a.d3.su = "true" == a.d3.su || 1 == a.d3.su, a.d3.su && (a.d3.smi = void 0 === a.d3.smi ? 0 : parseFloat(a.d3.smi), a.d3.sl = void 0 === a.d3.sl ? 1 : parseFloat(a.d3.sl), a.d3.sma = void 0 === a.d3.sma ? .5 : parseFloat(a.d3.sma), a.d3.sc = void 0 === a.d3.sc ? "0,0,0" : tpGS.gsap.utils.splitColor(a.d3.sc).join(",")), o.p = "none", void 0 !== o.in.row && void 0 !== o.in.col && o.in.row * o.in.col > 200 && (o.filter = void 0)), o.in.sec = void 0 === o.in.sec ? 1e3 : o.in.sec, o.in.stasec = void 0 === o.in.stasec ? void 0 === o.d ? 1500 : 100 * o.d : o.in.stasec, o.in.ms = "default" === o.ms || "d" === o.ms ? o.in.ms : "random" === o.ms ? Math.round(1e3 * Math.random() + 300) : null != o.ms ? parseInt(o.ms, 0) : o.in.ms, o.out.ms = o.in.ms, void 0 !== o.filter && (o.filter.ms = o.in.ms, o.filter.sec = o.in.sec, o.filter.e = void 0 === o.filter.e || "default" === o.filter.e ? o.in.e : o.filter.e), o.in.f = void 0 === o.f || "default" === o.f || "d" === o.f ? o.in.f : o.f, o.in.f = "slidebased" === o.in.f ? 1 == s ? "start" : "end" : "oppslidebased" === o.in.f ? 1 === s ? "end" : "start" : o.in.f, o.out.f = o.in.f, o.out = jQuery.extend(!0, {}, o.in, o.out), o.in.eng = o.out.eng = a.anim.eng, void 0 !== o.out.eng && null == t[o.out.eng] && (o.out.o = 0, o.in.o = 0, o.in.ms = o.out.ms = 1e3, o.in.eng = o.out.eng = "animateCore"), void 0 !== o.p && "none" !== o.p && (o.in.bg = "dark" === o.p ? "#000" : "light" === o.p ? "#fff" : "transparent", o.out.delay = "none" !== o.p ? function (e, t) { return e / 2.5 } : 0, 1 === o.out.o && 0 === o.out.x && 0 === o.out.y && (o.out.o = 0)), "forceinout" === o.o ? (o.in.zIndex = 20, o.out.zIndex = 10) : "outin" !== o.o && (1 !== o.in.o || 0 !== o.in.x || 0 !== o.in.y || void 0 === a.out || 1 === o.out.o && 0 === o.out.x && 0 === o.out.y) || (o.in.zIndex = 10, o.out.zIndex = 20), p.bgvid.length > 0 && (o.in = c(e, o.in, p, "in")), d && void 0 !== g.bgvid && g.bgvid.length > 0 && (o.out = c(e, o.out, g, "out")), void 0 !== o.out && (o.out.simplify || o.in.simplify) && (o.out = n(o.out)), o.in.simplify && (o.in = n(o.in)), _R_is_Editor || requestAnimationFrame(function () { t.generalObserver(t.ISM, !0) }), o.in.eng = void 0 === o.in.eng ? "animateCore" : o.in.eng, o.out.eng = void 0 === o.out.eng ? "animateCore" : o.out.eng, d && !0 !== o.out.skip && t[o.out.eng](e, g, o.out, { effect: o.e, slide: _R_is_Editor ? RVS.SBGS[RVS.S.slideId].c.sbg : t[e].pr_active_slide, direction: "out", delay: 0, bgColor: o.in.bg, sdir: s, filter: void 0, d3: a.d3, addOns: _R_is_Editor ? a.addOns : void 0 }), !0 !== o.in.skip && t[o.in.eng](e, p, o.in, { effect: o.e, slide: _R_is_Editor ? RVS.SBGS[RVS.S.slideId].n.sbg : t[e].pr_next_slide, direction: "in", delay: d ? "function" == typeof o.out.delay ? o.out.delay(o.in.ms / 1e3, o.out.row * o.out.col) : o.out.delay : o.in.delay, BG: g, outslide: _R_is_Editor ? RVS.SBGS[RVS.S.slideId].c.sbg : t[e].pr_active_slide, sdir: s, filter: o.filter, d3: a.d3, addOns: _R_is_Editor ? a.addOns : void 0 }) }, s = function (e, i, a) { var r = e.height / e.width; if (a.ratio = a.conth / a.contw, a.ratio < r && "contain" === i.bgfit || a.ratio > r && "cover" === i.bgfit) a.height = e.width * a.ratio; else if (a.ratio > r && "contain" === i.bgfit || a.ratio < r && "cover" === i.bgfit) a.width = e.width * r / a.ratio; else if (a.ratio !== r || "contain" !== i.bgfit && "cover" !== i.bgfit) { var o = i.bgfit.split(" "); 1 === o.length && (o[1] = o[0]), a.width = "auto" === o[0] ? a.contw : e.width * (parseInt(o[0], 0) / 100), a.height = "auto" === o[1] ? a.conth : a.width * a.ratio, i.usepattern = !0 } else a.width = e.width; var s = function (e, i, a) { return 1 === (a = a.split(" ")).length && (a[1] = a[0]), { x: "center" === a[0] || "50%" === a[0] ? (e.width - i.width) / 2 : "left" === a[0] ? 0 : "right" === a[0] ? e.width - i.width : t.isNumeric(a[0]) ? 0 : a[0].indexOf("%") >= 0 ? parseInt(a[0], 0) / 100 * e.width - parseInt(a[0], 0) / 100 * i.width : parseInt(a[0], 0), y: "center" === a[1] || "50%" === a[1] ? (e.height - i.height) / 2 : "top" === a[1] ? 0 : "bottom" === a[1] ? e.height - i.height : t.isNumeric(a[1]) ? 0 : a[1].indexOf("%") >= 0 ? parseInt(a[1], 0) / 100 * e.height - parseInt(a[1], 0) / 100 * i.height : parseInt(a[1], 0) } }(e, a, i.bgposition); return a.x = s.x, a.y = s.y, a }, n = function (e) { return e.o = 0, e.r = 0, e.row = 1, e.col = 1, e.x = 0, e.y = 0, e.sx = 1, e.sy = 1, e }, l = function (e) { return e = "false" !== e && !1 !== e && "off" !== e && void 0 !== e && 0 !== e && -1 !== e }, d = function (e) { var t = e.toString(16); return 1 == t.length ? "0" + t : t }, c = function (e, i, a, r) { return i.skip = !1, "in" === r ? a.isHTML5 ? (a.bgvid[0].style.display = "none", t.resetVideo(a.bgvid, e), a.animateDirection = "in", a.currentState = "animating", a.drawVideoCanvasImagesRecall = !0, t.updateVideoFrames(e, a, !0), t.playVideo(a.bgvid, e)) : (t[e].videos[a.bgvid[0].id].pauseCalled = !1, i.waitToSlideTrans = t[e].videos[a.bgvid[0].id].waitToSlideTrans, !0 !== a.poster ? (t.resetVideo(a.bgvid, e), t[e].videos[a.bgvid[0].id].prePlayForaWhile = !1, !0 !== i.waitToSlideTrans && t.playVideo(a.bgvid, e, !0), tpGS.gsap.fromTo(a.bgvid, i.ms / i.sec, { zIndex: 30, display: "block", opacity: 0 }, { opacity: 1, zIndex: 30, display: "block" }), a.loadobj.bgColor = !0, a.bgcolor = "#000", i.simplify = !0) : (t[e].videos[a.bgvid[0].id].prePlayForaWhile = !1, t.resetVideo(a.bgvid, e), t.playVideo(a.bgvid, e), a.bgvid[0].style.display = "none", a.bgvid[0].style.zIndex = 0, a.bgvid[0].style.opacity = 0)) : "out" === r && (a.isHTML5 ? (a.currentState = "animating", a.drawVideoCanvasImagesRecall = !0, t.updateVideoFrames(e, a, !0), window.requestAnimationFrame(function () { tpGS.gsap.to(a.bgvid, .1, {zIndex: 0, display: "none"}) })) : (t.stopVideo(a.bgvid, e, !0), !0 !== a.poster && (a.loadobj.bgColor = !0, a.bgcolor = "#000"))), i }, p = function (e, t, i, a) { return Math.sqrt(Math.pow(e - i, 2) + Math.pow(t - a, 2)) }, g = function (e, t) { var i = t + Math.PI / 2; return {x1: e.x, y1: e.y, x2: e.x + 100 * Math.cos(i), y2: e.y + 100 * Math.sin(i)} }, u = function (e, t) { var i = e.y2 - e.y1, a = e.x1 - e.x2, r = i * e.x1 + a * e.y1, o = t.y2 - t.y1, s = t.x1 - t.x2, n = o * t.x1 + s * t.y1, l = i * s - o * a; return 0 !== l && { x: Math.round((s * r - a * n) / l * 100) / 100, y: Math.round((i * n - o * r) / l * 100) / 100 } }; window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.slideanims = { loaded: !0, version: "6.6.0" }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal() }(jQuery), function (e) { "use strict"; jQuery.fn.revolution = jQuery.fn.revolution || {}; var t = jQuery.fn.revolution; function i(e) { return null == e ? -1 : t.isNumeric(e) ? e : e.split(":").length > 1 ? 60 * parseInt(e.split(":")[0], 0) + parseInt(e.split(":")[1], 0) : e } jQuery.extend(!0, t, { preLoadAudio: function (e, i) { t[i].videos = void 0 === t[i].videos ? {} : t[i].videos, e.find(".rs-layer-audio").each(function () { var a = jQuery(this), r = t[i].videos[a[0].id] = void 0 === t[i].videos[a[0].id] ? f(a.data(), "audio", t.gA(e[0], "key")) : t[i].videos[a[0].id], o = {}; 0 === a.find("audio").length && (o.src = null != r.mp4 ? r.mp4 : "", o.pre = r.pload || "", this.id = void 0 === this.id || "" === this.id ? a.attr("audio-layer-" + Math.round(199999 * Math.random())) : this.id, o.id = this.id, void 0 === t[i].audioqueue && (t[i].audioqueue = []), t[i].audioqueue.push(o), t.manageVideoLayer(a, i, t.gA(e[0], "key"), !0)) }) }, preLoadAudioDone: function (e, i, a) { var r = t[i].videos[e[0].id]; t[i].audioqueue && t[i].audioqueue.length > 0 && jQuery.each(t[i].audioqueue, function (e, t) { r.mp4 !== t.src || t.pre !== a && "auto" !== t.pre || (t.status = "loaded") }) }, checkfullscreenEnabled: function (e) { if (void 0 !== window.fullScreen) return window.fullScreen; if (void 0 !== document.fullscreen) return document.fullscreen; if (void 0 !== document.mozFullScreen) return document.mozFullScreen; if (void 0 !== document.webkitIsFullScreen) return document.webkitIsFullScreen; var i = t.isWebkit() && /Apple Computer/.test(navigator.vendor) ? 42 : 5; return screen.width == t.winW && Math.abs(screen.height - t.getWinH(e)) < i }, showVideo: function (e) { tpGS.gsap.to(e, .3, {opacity: 1, display: "block", ease: "power3.inOut"}) }, resetVideo: function (e, i, a) { if ("updateAndResize" !== a) { var r = t[i].videos[e[0].id]; if ("resetVideo" !== r.cRS) switch (r.cRS = "resetVideo", r.type) { case"youtube": r.rwd && null != r.player && void 0 !== r.player.seekTo && (r.player.seekTo(-1 == r.ssec ? 0 : r.ssec), r.player.pauseVideo()), r.bgvideo || "preset" === a || 0 != r.jsposter.length || t.showVideo(e.find("iframe")); break; case"vimeo": void 0 !== r.vimeoplayer && r.rwd && (0 !== r.ssec && -1 !== r.ssec || r.bgvideo || r.jsposter.length > 0) && (r.vimeoplayer.setCurrentTime(-1 == r.ssec ? 0 : r.ssec), r.vimeoplayer.pause()), 0 != r.jsposter.length || r.bgvideo || "preset" === a || t.showVideo(e.find("iframe")); break; case"html5": if (t.ISM && r.notonmobile) return !1; r.bgvideo || t.showVideo(r.jvideo), r.rwd && "playing" !== r.cSS && !isNaN(r.video.duration) && (r.justReseted = !0, r.video.currentTime = -1 == r.ssec ? 0 : r.ssec), ("mute" == r.volume || t.lastToggleState(e.videomutetoggledby) || !0 === t[i].globalmute) && (r.video.muted = !0) } } }, Mute: function (e, i, a) { var r = !1, o = t[i].videos[e[0].id]; switch (o.type) { case"youtube": o.player && (!0 === a && o.player.mute(), !1 === a && n(o, parseInt(o.volcache, 0)), r = o.player.isMuted()); break; case"vimeo": o.volcachecheck || (o.volcache = o.volcache > 1 ? o.volcache / 100 : o.volcache, o.volcachecheck = !0), o.volume = !0 === a ? "mute" : !1 === a ? o.volcache : o.volume, void 0 !== a && null != o.vimeoplayer && s(o, !0 === a ? 0 : o.volcache), r = "mute" == o.volume || 0 === o.volume; break; case"html5": o.volcachecheck || (o.volcache = o.volcache > 1 ? o.volcache / 100 : o.volcache, o.volcachecheck = !0), o.video.volume = o.volcache, void 0 !== a && o.video && (o.video.muted = a), r = void 0 !== o.video ? o.video.muted : r } if (void 0 === a) return r }, stopVideo: function (e, i, a) { if (void 0 !== t[i] && void 0 !== t[i]) { var r = t[i].videos[e[0].id]; if (void 0 !== r && ("stopVideo" !== r.cRS || "paused" !== r.cSS)) switch (r.cRS = "stopVideo", t[i].leaveViewPortBasedStop || (t[i].lastplayedvideos = []), t[i].leaveViewPortBasedStop = !1, r.type) { case"youtube": void 0 !== r.player && 2 !== r.player.getPlayerState() && 5 !== r.player.getPlayerState() && (r.player.pauseVideo(), void 0 !== a && p(i, r, "hide")); break; case"vimeo": void 0 !== r.vimeoplayer && (r.vimeoplayer.pause(), void 0 !== a && p(i, r, "hide")); break; case"html5": r.video && (r.video.pause(), t.ISM && b(r, 1)) } } }, playVideo: function (e, i, r) { var o = t[i].videos[e[0].id]; if (clearTimeout(o.videoplaywait), "playVideo" !== o.cRS || "playing" !== o.cSS) switch (o.cRS = "playVideo", o.type) { case"youtube": if (0 == e.find("iframe").length) e.append(o.videomarkup), u(e, i, !0); else if (void 0 !== o.player && null != o.player.playVideo) { var s = o.player.getCurrentTime(); o.nseTriggered && (s = -1, o.nseTriggered = !1), -1 != o.ssec && o.ssec > s && o.player.seekTo(o.ssec), c(o) } else o.videoplaywait = setTimeout(function () { t.playVideo(e, i) }, 50); break; case"vimeo": if (0 == e.find("iframe").length) delete o.vimeoplayer, e.append(o.videomarkup), u(e, i, !0); else if (e.hasClass("rs-apiready")) if (o.vimeoplayer = null == o.vimeoplayer ? new Vimeo.Player(e.find("iframe").attr("id")) : o.vimeoplayer, o.vimeoplayer.getPaused()) { s = void 0 === o.currenttime ? 0 : o.currenttime; o.nseTriggered && (s = -1, o.nseTriggered = !1), -1 != o.ssec && o.ssec > s && o.vimeoplayer.setCurrentTime(o.ssec), ("mute" == o.volume || 0 === o.volume || t.lastToggleState(e.data("videomutetoggledby")) || !0 === t[i].globalmute) && (o.volumetoken = !0, o.vimeoplayer.setMuted(!0)), d(o) } else o.videoplaywait = setTimeout(function () { t.playVideo(e, i) }, 50); else o.videoplaywait = setTimeout(function () { t.playVideo(e, i) }, 50); break; case"html5": if (o.metaloaded) { if (("" + o.video.duration == "NaN" || o.video.readyState < 4) && !r) return o.loadRequested || (o.video.load(), o.loadRequested = !0), void setTimeout(function () { t.playVideo(e, i) }, 50); s = o.video.currentTime; o.nseTriggered && (s = -1, o.nseTriggered = !1), -1 != o.ssec && o.ssec > s && o.ssec < o.video.duration && (o.video.currentTime = o.ssec), l(o, void 0, i) } else a(o.video, "loadedmetadata", function (e) { t.playVideo(e, i) }(e)) } }, isVideoPlaying: function (e, i) { var a = !1; return null != t[i].playingvideos && jQuery.each(t[i].playingvideos, function (t, i) { e.attr("id") == i.attr("id") && (a = !0) }), a }, removeMediaFromList: function (e, t) { w(e, t) }, prepareCoveredVideo: function (e) { clearTimeout(t[e].resizePrepareCoverVideolistener); var i = "carousel" === t[e].sliderType ? t[e].carousel.justify ? void 0 === t[e].carousel.slide_widths ? void 0 : t[e].carousel.slide_widths[t[e].carousel.focused] : t[e].carousel.slide_width : t[e].canv.width, a = "carousel" === t[e].sliderType ? t[e].carousel.slide_height : t[e].canv.height; if (0 !== i && 0 !== a && void 0 !== i && void 0 !== a) for (var r in t[e].videos) { var o = t[e].videos[r]; if (void 0 !== o.jvideo && ((o.bgvideo || o.jvideo.parent().hasClass("rs-fsv") || t.closestNode(o.video, "RS-LAYER") && t.closestNode(o.video, "RS-LAYER").classList.contains("rs-fsv")) && ("html5" === o.type && void 0 !== o.jvideo && tpGS.gsap.set(o.jvideo, {width: i}), void 0 === t[e].activeRSSlide || o.slideid === t.gA(t[e].slides[t[e].activeRSSlide], "key") || void 0 === t[e].pr_next_slide || o.slideid === t.gA(t[e].pr_next_slide[0], "key")))) { o.vd = o.ratio.split(":").length > 1 ? o.ratio.split(":")[0] / o.ratio.split(":")[1] : 1; var s, n = i / a, l = o.vd * n * 100, d = o.vd / n * 100; "Edge" === t.get_browser() || "IE" === t.get_browser() ? s = n > o.vd ? { minWidth: "100%", height: l + "%", x: "-50%", y: "-50%", top: "50%", left: "50%", position: "absolute" } : { minHeight: "100%", width: d + "%", x: "-50%", y: "-50%", top: "50%", left: "50%", position: "absolute" } : (o.bgvideo && void 0 !== o.vimeoid && "carousel" == t[e].sliderType && (l = 100, d = 100), s = n > o.vd ? { height: (o.fitCover ? 100 : l) + "%", width: "100%", top: o.fitCover ? 0 : -(l - 100) / 2 + "%", left: "0px", position: "absolute" } : { width: (o.fitCover ? 100 : d) + "%", height: "100%", left: o.fitCover ? 0 : -(d - 100) / 2 + "%", top: "0px", position: "absolute" }), void 0 === o.vimeoid && void 0 === o.ytid || (s.maxWidth = "none", s.maxHeight = "none"), tpGS.gsap.set(o.jvideo, s) } } else t[e].resizePrepareCoverVideolistener = setTimeout(function () { t.prepareCoveredVideo(e) }, 100) }, checkVideoApis: function (e, i) { location.protocol; if (!t[i].youtubeapineeded) { var a = e.find("iframe"); if ((null != e.data("ytid") || a.length > 0 && a.attr("src") && a.attr("src").toLowerCase().indexOf("youtube") > 0) && (t[i].youtubeapineeded = !0), t[i].youtubeapineeded && !window.rs_addedyt) { t[i].youtubestarttime = Date.now(), window.rs_addedyt = !0; var r = document.createElement("script"), o = t.getByTag(document, "script")[0], s = !0; r.src = "https://www.youtube.com/iframe_api", jQuery("head").find("*").each(function () { "https://www.youtube.com/iframe_api" == jQuery(this).attr("src") && (s = !1) }), s && o.parentNode.insertBefore(r, o) } } if (!t[i].vimeoapineeded) { var n = e.find("iframe"); if ((null != e.data("vimeoid") || n.length > 0 && n.attr("src") && n.attr("src").toLowerCase().indexOf("vimeo") > 0) && (t[i].vimeoapineeded = !0), t[i].vimeoapineeded && !window.rs_addedvim) { t[i].vimeostarttime = Date.now(), window.rs_addedvim = !0; var l = document.createElement("script"); o = t.getByTag(document, "script")[0], s = !0; l.src = "https://player.vimeo.com/api/player.js", jQuery("head").find("*").each(function () { "https://player.vimeo.com/api/player.js" == jQuery(this).attr("src") && (s = !1) }), s && o.parentNode.insertBefore(l, o) } } }, manageVideoLayer: function (e, i, r, o) { if (t[i].videos = void 0 === t[i].videos ? {} : t[i].videos, void 0 === t[i].videos[e[0].id] || !0 === o) { var s = t[i].videos[e[0].id] = void 0 === t[i].videos[e[0].id] ? f(e.data(), void 0, r) : t[i].videos[e[0].id]; if (s.audio = void 0 !== s.audio && s.audio, t.ISM && s.opom) 0 == e.find("rs-poster").length && e.append(''); else { s.jsposter = e.find("rs-poster"), s.id = e[0].id, s.pload = "auto" === s.pload || "canplay" === s.pload || "canplaythrough" === s.pload || "progress" === s.pload ? "auto" : s.pload, s.type = null != s.mp4 || null != s.webm ? "html5" : null != s.ytid && String(s.ytid).length > 1 ? "youtube" : null != s.vimeoid && String(s.vimeoid).length > 1 ? "vimeo" : "none", s.newtype = "html5" == s.type && 0 == e.find(s.audio ? "audio" : "video").length ? "html5" : "youtube" == s.type && 0 == e.find("iframe").length ? "youtube" : "vimeo" == s.type && 0 == e.find("iframe").length ? "vimeo" : "none", s.extras = "", s.posterMarkup = void 0 === s.posterMarkup ? "" : s.posterMarkup, !s.audio && "1sttime" == s.aplay && s.pausetimer && s.bgvideo && t.sA(e.closest("rs-slide")[0], "rspausetimeronce", 1), s.audio || !s.bgvideo || !s.pausetimer || 1 != s.aplay && "true" != s.aplay && "no1sttime" != s.aplay || t.sA(e.closest("rs-slide")[0], "rspausetimeralways", 1), s.noInt && e.find("*").addClass("rs-nointeraction"), !(null != s.poster && s.poster.length > 2) || t.ISM && s.npom || 0 == s.jsposter.length && (s.posterMarkup += ''); var n = !0; switch (s.cSS = "created", s.cRS = "created", s.newtype) { case"html5": 1 == window.isSafari11 && (t[i].slideHasIframe = !0), s.audio && e.addClass("rs-audio"), s.tag = s.audio ? "audio" : "video"; var l = "video" === s.tag && (t.is_mobile() || t.isSafari11()) ? s.aplay && "no1sttime" !== s.aplay || "true" === s.aplay ? "muted playsinline autoplay" : s.inline ? " playsinline" : "" : "", d = '
', c = s.bgvideo && /^([\w]+\:)?\/\//.test(s.mp4) && (-1 === s.mp4.indexOf(location.host) || -1 !== s.mp4.indexOf("." + location.host)) && s.crossOriginVideo ? ' crossOrigin="anonymous" ' : ""; d += "<" + s.tag + " " + l + " " + (s.controls && "none" !== s.controls ? " controls" : "") + c + (s.bgvideo && -1 == l.indexOf("autoplay") ? " autoplay" : "") + (s.bgvideo && -1 == l.indexOf("muted") ? " muted" : "") + ' style="' + ("Edge" !== t.get_browser() ? (s.fitCover ? "object-fit:cover;background-size:cover;" : "") + "opacity:0;width:100%; height:100%" : "") + '" class="" ' + (s.loop ? "loop" : "") + ' preload="' + s.pload + '">', "video" === s.tag && null != s.webm && "firefox" == t.get_browser().toLowerCase() && (d = d + ''), null != s.mp4 && (d = d + ' 0 ? "audio/x-m4a" : "audio/mpeg") + '" />'), null != s.ogv && (d = d + ''), d += "
", d += s.posterMarkup, s.controls && !s.audio && void 0 === s.poster || s.bgvideo || (d += '
 
'), s.videomarkup = d, n = !1, t.ISM && s.notonmobile || t.isIE(8) || e.append(d), s.jvideo = e.find(s.tag), s.video = s.jvideo[0], s.html5vid = s.jvideo.parent(), a(s.video, "canplay", function (e) { m(e, i), t.resetVideo(e, i) }(e)); break; case"youtube": t[i].slideHasIframe = !0, s.controls && "none" !== s.controls || (s.vatr = s.vatr.replace("controls=1", "controls=0"), -1 == s.vatr.toLowerCase().indexOf("controls") && (s.vatr = s.vatr + "&controls=0")), (s.inline || "RS-BGVIDEO" === e[0].tagName) && (s.vatr = s.vatr + "&playsinline=1"), -1 != s.ssec && (s.vatr += "&start=" + s.ssec), -1 != s.esec && (s.vatr += "&end=" + s.esec); var p = s.vatr.split("origin=https://"); s.vatrnew = p.length > 1 ? p[0] + "origin=https://" + (self.location.href.match(/www/gi) && !p[1].match(/www/gi) ? "www." + p[1] : p[1]) : s.vatr, s.videomarkup = ''; break; case"vimeo": t[i].slideHasIframe = !0, s.vatr = s.vatr.replaceAll("&background=0", "").replaceAll("&background=1", ""), s.vatr = s.vatr.replaceAll("background=0", "").replaceAll("background=1", ""), !s.controls || "none" === s.controls || s.bgvideo ? (s.vatr = s.vatr.replace("background=0", "background=1"), -1 == s.vatr.toLowerCase().indexOf("background") && (s.vatr = s.vatr + "&background=1")) : (s.vatr = s.vatr.replace("background=1", "background=0"), -1 == s.vatr.toLowerCase().indexOf("background") && (s.vatr = s.vatr + "&background=0")), s.vatr = "autoplay=" + (!0 === s.aplay ? 1 : 0) + ("&" == s.vatr[0] ? "" : "&") + s.vatr, s.bgvideo && (s.prePlayForaWhile = !0), t.ISM && !0 === s.aplay && (s.vatr = "muted=1" + ("&" == s.vatr[0] ? "" : "&") + s.vatr), s.loop && (s.vatr = "loop=1" + ("&" == s.vatr[0] ? "" : "&") + s.vatr), s.videomarkup = '' } if (!(null != s.poster && s.poster.length > 2) || t.ISM && s.npom) { if (t.ISM && s.notonmobile) return !1; 0 != e.find("iframe").length || "youtube" != s.type && "vimeo" != s.type || (delete s.vimeoplayer, e.append(s.videomarkup), u(e, i, !("vimeo" !== s.newtype || !s.bgvideo), !0)) } else n && 0 == e.find("rs-poster").length && e.append(s.posterMarkup), 0 == e.find("iframe").length && (s.jsposter = e.find("rs-poster"), s.jsposter.on("click", function () { if (t.playVideo(e, i, !0), t.ISM) { if (s.notonmobile) return !1; tpGS.gsap.to(s.jsposter, .3, { opacity: 0, visibility: "hidden", force3D: "auto", ease: "power3.inOut" }), t.showVideo(e.find("iframe")) } })); if ("none" !== s.doverlay && void 0 !== s.doverlay) { var g = t.createOverlay(i, s.doverlay, s.doverlaysize, { 0: s.doverlaycolora, 1: s.doverlaycolorb }); s.bgvideo && 1 != e.closest("rs-sbg-wrap").find("rs-dotted").length ? e.closest("rs-sbg-wrap").append('') : s.bgvideo || 1 == e.find("rs-dotted").length || e.append('') } s.bgvideo && ("youtube" !== s.type && "vimeo" !== s.type && (e[0].style.display = "none"), e[0].style.zIndex = 0, tpGS.gsap.set(e.find("video, iframe"), {opacity: 0})) } } } }); var a = function (e, t, i) { e.addEventListener ? e.addEventListener(t, i, {capture: !1, passive: !0}) : e.attachEvent(t, i, { capture: !1, passive: !0 }) }, r = function (e, t, i) { var a = {}; return a.video = e, a.type = t, a.settings = i, a }, o = function (e, i) { var a = t[e].videos[i[0].id]; (a.bgvideo || i.hasClass("rs-fsv")) && ((void 0 === a.ratio || a.ratio.split(":").length <= 1) && (a.ratio = "16:9"), requestAnimationFrame(function () { t.prepareCoveredVideo(e) })) }, s = function (e, i) { var a = e.vimeoplayer; a.getPaused().then(function (r) { e.volumetoken = !0; var o = !r, s = a.setVolume(i); void 0 !== s && s.then(function (t) { a.getPaused().then(function (t) { o === t && (e.volume = "mute", a.getMuted().then(function (t) { t || (e.volumetoken = !0, a.setMuted(!0)) }), a.play()) }).catch(function (e) { console.log("Get Paused Function Failed for Vimeo Volume Changes Inside the Promise") }) }).catch(function (i) { o && (e.volume = "mute", e.volumetoken = !0, a.setMuted(!0), a.play()), t.ISM && b(e, 0) }) }).catch(function () { console.log("Get Paused Function Failed for Vimeo Volume Changes") }) }, n = function (e, t) { var i = e.player.getPlayerState(); "mute" === t ? e.player.mute() : (e.player.unMute(), e.player.setVolume(t)), setTimeout(function () { 1 === i && 1 !== e.player.getPlayerState() && (e.player.mute(), e.player.playVideo()) }, 39) }, l = function (e, i, a) { if ("playVideo" === e.cRS) { var r = e.video.play(); void 0 !== r && r.then(function (i) { !0 === e.twaudio && !0 !== t[a].globalmute && (e.twaudio = !1, t.clickedOnce && (e.video.volume = e.volcache, e.volume = e.volcache, e.video.muted = !1)) }).catch(function (t) { e.video.pause(), !0 !== i && l(e, !0, a) }), t.ISM && b(e, 0) } }, d = function (e) { if ("playVideo" === e.cRS) { var t = e.vimeoplayer.play(); void 0 !== t && t.then(function (e) { }).catch(function (t) { e.vimeoplayer.volumetoken = !0, e.vimeoplayer.setMuted(!0), e.vimeoplayer.play() }) } }, c = function (e) { "playVideo" === e.cRS && e.player.playVideo() }, p = function (e, i, a, r) { clearTimeout(i.repeatedPosterCalls), i.repeatedPosterCalls = setTimeout(function () { "show" === a || "playing" === i.cSS && !0 !== i.VideoIsVisible ? (void 0 !== i.showhideposter && i.showhideposter.pause(), i.showhideposter = tpGS.gsap.timeline(), i.jsposter.length > 0 && i.showhideposter.add(tpGS.gsap.to(i.jsposter, .3, { zIndex: 5, autoAlpha: 0, force3D: "auto", ease: "power3.inOut" }), 0), i.jvideo.length > 0 && i.showhideposter.add(tpGS.gsap.to(i.jvideo, void 0 !== r ? r : .001, { opacity: 1, display: "block", ease: i.jsposter.length > 0 ? "power3.inOut" : "power3.out" }), 0), i.VideoIsVisible = !0) : ("hide" === a || "paused" === i.cSS && 1 != t.checkfullscreenEnabled(e) && i.jsposter.length > 0 && !1 !== i.VideoIsVisible && !0 !== i.seeking) && (void 0 !== i.showhideposter && i.showhideposter.pause(), i.showhideposter = tpGS.gsap.timeline(), i.jsposter.length > 0 && i.showhideposter.add(tpGS.gsap.to(i.jsposter, .3, { zIndex: 5, autoAlpha: 1, force3D: "auto", ease: "power3.inOut" }), 0), i.jvideo.length > 0 && i.showhideposter.add(tpGS.gsap.to(i.jvideo, void 0 !== r ? r : .001, { opacity: 0, ease: i.jsposter.length > 0 ? "power3.inOut" : "power3.out" }), .3), i.bgvideo && void 0 !== i.nBG && void 0 !== i.nBG.loadobj && (i.nBG.video = i.nBG.loadobj.img), i.VideoIsVisible = !1) }, void 0 !== a ? 0 : 100) }, g = function (e, i, a) { e.cSS = "playing", e.vimeostarted = !0, e.nextslidecalled = !1, e.jsposter = void 0 === e.jsposter || 0 === e.jsposter.length ? i.find("rs-poster") : e.jsposter, e.jvideo = i.find("iframe"), t[a].c.trigger("revolution.slide.onvideoplay", r(e.vimeoplayer, "vimeo", e)), t[a].stopByVideo = e.pausetimer, y(i, a), "mute" == e.volume || 0 === e.volume || t.lastToggleState(i.data("videomutetoggledby")) || !0 === t[a].globalmute ? (e.volumetoken = !0, e.vimeoplayer.setMuted(!0)) : s(e, parseInt(e.volcache, 0) / 100 || .75), t.toggleState(e.videotoggledby) }, u = function (e, i, a, s) { var l = t[i].videos[e[0].id], d = "iframe" + Math.round(1e5 * Math.random() + 1); if (l.jvideo = e.find("iframe"), o(i, e), l.jvideo.attr("id", d), l.startvideonow = a, l.videolistenerexist) { if (a) switch (l.type) { case"youtube": t.playVideo(e, i), -1 != l.ssec && l.player.seekTo(l.ssec); break; case"vimeo": t.playVideo(e, i), -1 != l.ssec && l.vimeoplayer.seekTo(l.ssec) } } else switch (l.type) { case"youtube": if ("undefined" == typeof YT || void 0 === YT.Player) return t.checkVideoApis(e, i), void setTimeout(function () { u(e, i, a, s) }, 50); l.player = new YT.Player(d, { events: { onStateChange: function (a) { a.data == YT.PlayerState.PLAYING ? (l.cSS = "playing", t[i].onceVideoPlayed = !0, !1 === l.player.isMuted() && (l.volume = l.volcache = l.player.getVolume()), "mute" == l.volume || 0 === l.volume || t.lastToggleState(e.data("videomutetoggledby")) || !0 === t[i].globalmute ? l.player.mute() : n(l, parseInt(l.volcache, 0) || 75), t[i].stopByVideo = !0, y(e, i), l.pausetimer ? t[i].c.trigger("stoptimer") : t[i].stopByVideo = !1, t[i].c.trigger("revolution.slide.onvideoplay", r(l.player, "youtube", l)), t.toggleState(l.videotoggledby)) : (l.cSS = "paused", 0 == a.data && l.loop && (-1 != l.ssec && l.player.seekTo(l.ssec), t.playVideo(e, i), t.toggleState(l.videotoggledby)), -1 != a.data && 3 != a.data && (t[i].stopByVideo = !1, t[i].tonpause = !1, w(e, i), t[i].c.trigger("starttimer"), t[i].c.trigger("revolution.slide.onvideostop", r(l.player, "youtube", l)), null != t[i].videoIsPlaying && t[i].videoIsPlaying.attr("id") != e.attr("id") || t.unToggleState(l.videotoggledby)), 0 == a.data && l.nse ? (document.fullscreenElement !== e.find("iframe")[0] && document.webkitFullscreenElement !== e.find("iframe")[0] || h(), l.nseTriggered = !0, t[i].c.revnext(), w(e, i)) : (w(e, i), t[i].stopByVideo = !1, 3 !== a.data && (-1 != l.lasteventdata && 3 != l.lasteventdata && void 0 !== l.lasteventdata || -1 != a.data && 3 != a.data) && t[i].c.trigger("starttimer"), t[i].c.trigger("revolution.slide.onvideostop", r(l.player, "youtube", l)), null != t[i].videoIsPlaying && t[i].videoIsPlaying.attr("id") != e.attr("id") || t.unToggleState(l.videotoggledby))), clearTimeout(l.postOrVideoTimer), 3 !== a.data && (l.postOrVideoTimer = setTimeout(function () { p(i, l) }, 1 === l.lasteventdata && 2 === a.data || 2 === l.lasteventdata && 3 !== a.data ? 1e3 : 0), l.lasteventdata = a.data) }, onReady: function (a) { var r, o = t.is_mobile(), n = e.hasClass("rs-layer-video"); l.ready = !0, !o && (!t.isSafari11() || o && n) || "RS-BGVIDEO" !== e[0].tagName && (!n || !0 !== l.aplay && "true" !== l.aplay) || (r = !0, l.player.setVolume(0), l.volume = "mute", l.player.mute(), clearTimeout(e.data("mobilevideotimr")), 2 !== l.player.getPlayerState() && -1 !== l.player.getPlayerState() || e.data("mobilevideotimr", setTimeout(function () { t.playVideo(e, i) }, 500))), r || "mute" != l.volume || (l.player.setVolume(0), l.player.mute()), e.addClass("rs-apiready"), null == l.speed && 1 === l.speed || a.target.setPlaybackRate(parseFloat(l.speed)), l.jsposter.off("click"), l.jsposter.on("click", function () { t.playVideo(e, i, !0) }), l.startvideonow ? (t.playVideo(e, i), -1 != l.ssec && l.player.seekTo(l.ssec)) : s && p(i, l, "show", .2), l.videolistenerexist = !0 } } }); break; case"vimeo": if ("undefined" == typeof Vimeo || void 0 === Vimeo.Player) return t.checkVideoApis(e, i), void setTimeout(function () { u(e, i, a, s) }, 50); for (var c, m = l.jvideo.attr("src"), v = {}, f = m, b = /([^&=]+)=([^&]*)/g; c = b.exec(f);) v[decodeURIComponent(c[1])] = decodeURIComponent(c[2]); m = (m = null != v.player_id ? m.replace(v.player_id, d) : m + "&player_id=" + d).replace(/&api=0|&api=1/g, ""); var _, S = t.is_mobile() || t.isSafari11(), x = "RS-BGVIDEO" === e[0].tagName; if (S && x && (m += "&background=1"), l.jvideo.attr("src", m), l.vimeoplayer = void 0 === l.vimeoplayer || !1 === l.vimeoplayer ? new Vimeo.Player(d) : l.vimeoplayer, S) x ? _ = !0 : (l.aplay || "true" === l.aplay) && (_ = !0), _ && (l.volumetoken = !0, l.vimeoplayer.setMuted(!0), l.volume = "mute"); l.vimeoplayer.on("play", function (a) { t[i].onceVideoPlayed = !0, l.cSS = "playing", l.vimeostarted || g(l, e, i) }), l.vimeoplayer.on("loaded", function (a) { var r = {}; l.vimeoplayer.getVideoWidth().then(function (t) { r.width = t, void 0 !== r.width && void 0 !== r.height && (l.ratio = r.width + ":" + r.height, l.vimeoplayerloaded = !0, o(i, e)) }), l.vimeoplayer.getVideoHeight().then(function (t) { r.height = t, void 0 !== r.width && void 0 !== r.height && (l.ratio = r.width + ":" + r.height, l.vimeoplayerloaded = !0, o(i, e)) }), l.startvideonow ? ("mute" === l.volume && (l.volumetoken = !0, l.vimeoplayer.setMuted(!0)), t.playVideo(e, i), -1 != l.ssec && l.vimeoplayer.setCurrentTime(l.ssec)) : s && p(i, l, "show", .2), null == l.speed && 1 === l.speed || l.vimeoplayer.setPlaybackRate(parseFloat(l.speed)) }), e.addClass("rs-apiready"), l.vimeoplayer.on("volumechange", function (e) { l.volumetoken && (l.volume = e.volume), l.volumetoken = !1 }), l.vimeoplayer.on("timeupdate", function (a) { p(i, l), l.vimeostarted || 0 === a.percent || void 0 !== t[i].activeRSSlide && l.slideid !== t.gA(t[i].slides[t[i].activeRSSlide], "key") || g(l, e, i), l.pausetimer && "playing" == t[i].sliderstatus && (t[i].stopByVideo = !0, t[i].c.trigger("stoptimer")), l.currenttime = a.seconds, 0 != l.esec && -1 !== l.esec && l.esec < a.seconds && !0 !== l.nextslidecalled && (l.loop ? (t.playVideo(e, i), l.vimeoplayer.setCurrentTime(-1 !== l.ssec ? l.ssec : 0)) : (l.nse && (l.nseTriggered = !0, l.nextslidecalled = !0, t[i].c.revnext()), l.vimeoplayer.pause())), l.prePlayForaWhile && l.vimeoplayer.pause() }), l.vimeoplayer.on("ended", function (a) { l.cSS = "paused", p(i, l), l.vimeostarted = !1, w(e, i), t[i].stopByVideo = !1, t[i].c.trigger("starttimer"), t[i].c.trigger("revolution.slide.onvideostop", r(l.vimeoplayer, "vimeo", l)), l.nse && (l.nseTriggered = !0, t[i].c.revnext()), null != t[i].videoIsPlaying && t[i].videoIsPlaying.attr("id") != e.attr("id") || t.unToggleState(l.videotoggledby) }), l.vimeoplayer.on("pause", function (a) { l.vimeostarted = !1, l.cSS = "paused", p(i, l), t[i].stopByVideo = !1, t[i].tonpause = !1, w(e, i), t[i].c.trigger("starttimer"), t[i].c.trigger("revolution.slide.onvideostop", r(l.vimeoplayer, "vimeo", l)), null != t[i].videoIsPlaying && t[i].videoIsPlaying.attr("id") != e.attr("id") || t.unToggleState(l.videotoggledby) }), l.jsposter.off("click"), l.jsposter.on("click", function () { if (!t.ISM) return t.playVideo(e, i, !0), !1 }), l.videolistenerexist = !0 } }, h = function () { document.exitFullscreen && document.fullscreen ? document.exitFullscreen() : document.mozCancelFullScreen && document.mozFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen && document.webkitIsFullScreen && document.webkitExitFullscreen() }, m = function (e, i, o) { var s = t[i].videos[e[0].id]; if (t.ISM && s.notonmobile) return !1; if (s.metaloaded = !0, "html5" === s.newtype && s.bgvideo && (s.nBG = t[i].sbgs[e[0].dataset.key], void 0 === s.nBG.shadowCanvas && (s.nBG.shadowCanvas = document.createElement("canvas"), s.nBG.shadowCTX = s.nBG.shadowCanvas.getContext("2d"), s.nBG.shadowCanvas.style.background = "transparent", s.nBG.shadowCanvas.style.opacity = 1), s.nBG.isHTML5 = !0, s.nBG.video = void 0 !== s.nBG.loadobj && void 0 !== s.nBG.loadobj.img ? s.nBG.loadobj.img : s.video, s.nBG.drawVideoCanvasImagesRecall = !1), (!s.controls || s.audio || void 0 !== s.poster) && !s.noInt) { 0 != e.find(".tp-video-play-button").length || t.ISM || e.append('
 
'); var n = "video, rs-poster, .tp-video-play-button"; void 0 !== s.poster && s.controls && (n = ".tp-video-play-button"), e.find(n).on("click", function () { !1 === s.loop && s.esec > 0 && s.esec <= s.video.currentTime || (e.hasClass("videoisplaying") ? t.stopVideo(e, i) : t.playVideo(e, i, !0)) }) } (e.hasClass("rs-fsv") || s.bgvideo) && (s.bgvideo || e.hasClass("rs-fsv") ? (s.html5vid.addClass("fullcoveredvideo"), void 0 !== s.ratio && 1 != s.ratio.split(":").length || (s.ratio = "16:9"), t.prepareCoveredVideo(i)) : s.html5vid.addClass("rs-fsv")), a(s.video, "canplaythrough", function () { t.preLoadAudioDone(e, i, "canplaythrough") }), a(s.video, "canplay", function () { t.preLoadAudioDone(e, i, "canplay") }), a(s.video, "progress", function () { t.preLoadAudioDone(e, i, "progress") }), a(s.video, "pause", function () { t.ISM && b(s, 1) }), a(s.video, "timeupdate", function (e) { this.BGrendered = !0, p(i, s), -1 === s.esec && s.loop && 1 == window.isSafari11 && (s.esec = s.video.duration - .075), void 0 !== s.lastCurrentTime ? s.fps = s.video.currentTime - s.lastCurrentTime : s.fps = .1, s.lastCurrentTime = s.video.currentTime, 0 != s.esec && -1 != s.esec && s.esec < s.video.currentTime && !s.nextslidecalled && (s.loop ? (l(s, void 0, i), s.video.currentTime = -1 === s.ssec ? .5 : s.ssec) : (s.nse && (s.nseTriggered = !0, s.nextslidecalled = !0, t[i].jcnah = !0, t[i].c.revnext(), setTimeout(function () { t[i].jcnah = !1 }, 1e3)), s.video.pause())) }), a(s.video, "play", function () { s.cSS = "playing", p(i, s), s.bgvideo && (s.nBG.drawVideoCanvasImagesRecall = !0, s.nBG.videoisplaying = !0, s.nBG.video = s.video, t.updateVideoFrames(i, s.nBG)), t[i].onceVideoPlayed = !0, s.nextslidecalled = !1, s.volume = null != s.volume && "mute" != s.volume ? parseFloat(s.volcache) : s.volume, s.volcache = null != s.volcache && "mute" != s.volcache ? parseFloat(s.volcache) : s.volcache, t.is_mobile() || (!0 === t[i].globalmute ? s.video.muted = !0 : s.video.muted = "mute" == s.volume, s.volcache = t.isNumeric(s.volcache) && s.volcache > 1 ? s.volcache / 100 : s.volcache, "mute" == s.volume ? s.video.muted = !0 : null != s.volcache && (s.video.volume = s.volcache)), e.addClass("videoisplaying"), y(e, i), clearTimeout(s.showCoverSoon), !0 !== s.pausetimer || "audio" == s.tag ? (t[i].stopByVideo = !1, t[i].c.trigger("revolution.slide.onvideostop", r(s.video, "html5", s))) : (t[i].stopByVideo = !0, t[i].c.trigger("revolution.slide.onvideoplay", r(s.video, "html5", s))), s.pausetimer && "playing" == t[i].sliderstatus && (t[i].stopByVideo = !0, t[i].c.trigger("stoptimer")), t.toggleState(s.videotoggledby) }), a(s.video, "seeked", function () { s.seeking = !1 }), a(s.video, "seeking", function () { s.seeking = !0 }), a(s.video, "pause", function (a) { s.cSS = "paused", p(i, s), e.removeClass("videoisplaying"), s.bgvideo && (s.nBG.drawVideoCanvasImagesRecall = !1, s.nBG.videoisplaying = !1), t[i].stopByVideo = !1, w(e, i), "audio" != s.tag && t[i].c.trigger("starttimer"), t[i].c.trigger("revolution.slide.onvideostop", r(s.video, "html5", s)), null != t[i].videoIsPlaying && t[i].videoIsPlaying.attr("id") != e.attr("id") || t.unToggleState(s.videotoggledby) }), a(s.video, "ended", function () { s.cSS = "paused", document.fullscreenElement !== s.video && document.webkitFullscreenElement !== s.video || h(), p(i, s), w(e, i), t[i].stopByVideo = !1, w(e, i), "audio" != s.tag && t[i].c.trigger("starttimer"), t[i].c.trigger("revolution.slide.onvideostop", r(s.video, "html5", e.data())), s.nse && s.video.currentTime > 0 && (1 == !t[i].jcnah && (s.nseTriggered = !0, t[i].c.revnext(), t[i].jcnah = !0), setTimeout(function () { t[i].jcnah = !1 }, 1500)), e.removeClass("videoisplaying"), s.bgvideo && (s.nBG.drawVideoCanvasImagesRecall = !1, s.nBG.videoisplaying = !1), !0 !== t[i].inviewport && void 0 !== t[i].inviewport || (t[i].lastplayedvideos = []) }), a(s.video, "volumechange", function () { s.video.muted ? s.volume = "mute" : s.volume = s.volcache = s.video.volume }) }, v = function (e) { return "t" === e || !0 === e || "true" === e || "f" !== e && !1 !== e && "false" !== e && e }, f = function (e, t, a) { e.audio = "audio" === t; var r = void 0 === e.video ? [] : e.video.split(";"), o = { volume: e.audio ? 1 : "mute", pload: "auto", ratio: "16:9", loop: !0, aplay: "true", fitCover: !0, afs: !0, controls: !1, nse: !0, npom: !1, opom: !1, inline: !0, notonmobile: !1, start: -1, end: -1, doverlay: "none", doverlaysize: 1, doverlaycolora: "transparent", doverlaycolorb: "#000000", scop: !1, rwd: !0, speed: 1, ploadwait: 5, stopAV: 1 !== e.bgvideo, noInt: !1, volcache: 75, crossOriginVideo: !1 }; for (var s in r) if (r.hasOwnProperty(s)) { var n = r[s].split(":"); switch (n[0]) { case"v": o.volume = n[1]; break; case"twa": o.twaudio = n[1]; break; case"vd": o.volcache = n[1]; break; case"p": o.pload = n[1]; break; case"ar": o.ratio = n[1] + (void 0 !== n[2] ? ":" + n[2] : ""); break; case"ap": o.aplay = v(n[1]); break; case"vfc": o.fitCover = v(n[1]); break; case"afs": o.afs = v(n[1]); break; case"vc": o.controls = n[1]; break; case"nse": o.nse = v(n[1]); break; case"npom": o.npom = v(n[1]); break; case"opom": o.opom = v(n[1]); break; case"t": o.vtype = n[1]; break; case"inl": o.inline = v(n[1]); break; case"nomo": o.notonmobile = v(n[1]); break; case"sta": o.start = n[1] + (void 0 !== n[2] ? ":" + n[2] : ""); break; case"end": o.end = n[1] + (void 0 !== n[2] ? ":" + n[2] : ""); break; case"do": o.doverlay = n[1]; break; case"dos": o.doverlaysize = n[1]; break; case"doca": o.doverlaycolora = n[1]; break; case"docb": o.doverlaycolorb = n[1]; break; case"scop": o.scop = v(n[1]); break; case"rwd": o.rwd = v(n[1]); break; case"sp": o.speed = n[1]; break; case"vw": o.ploadwait = parseInt(n[1], 0) || 5; break; case"sav": o.stopAV = v(n[1]); break; case"noint": o.noInt = v(n[1]); break; case"l": o.loopcache = n[1], o.loop = "loop" === n[1] || "loopandnoslidestop" === n[1] || "none" !== n[1] && v(n[1]); break; case"ptimer": o.pausetimer = v(n[1]); break; case"sat": o.waitToSlideTrans = v(n[1]); break; case"crossOriginVideo": o.crossOriginVideo = v(n[1]); break; case"poch": o.pauseOnSlideChange = v(n[1]) } } return null == e.mp4 && null == e.webm && (o.fitCover = !1), void 0 !== e.bgvideo && (o.bgvideo = e.bgvideo), o.noInt && (o.controls = !1), void 0 !== e.mp4 && (o.mp4 = e.mp4), void 0 !== e.videomp4 && (o.mp4 = e.videomp4), void 0 !== e.ytid && (o.ytid = e.ytid), void 0 !== e.ogv && (o.ogv = e.ogv), void 0 !== e.webm && (o.webm = e.webm), void 0 !== e.vimeoid && (o.vimeoid = e.vimeoid), void 0 !== e.vatr && (o.vatr = e.vatr), void 0 !== e.videoattributes && (o.vatr = e.videoattributes), void 0 !== e.poster && (o.poster = e.poster), o.slideid = a, o.aplay = "true" === o.aplay || o.aplay, 1 === o.bgvideo && (o.volume = "mute"), o.ssec = i(o.start), o.esec = i(o.end), o.pausetimer = void 0 === o.pausetimer ? "loopandnoslidestop" !== o.loopcache : o.pausetimer, o.inColumn = e._incolumn, o.audio = e.audio, !0 !== o.loop && "true" !== o.loop || !0 !== o.nse && "true" !== o.nse || (o.loop = !1), o.aplay && o.twaudio && !o.bgvideo && (o.twaudio = !0), o }, y = function (e, i) { if (t[i].playingvideos = void 0 === t[i].playingvideos ? new Array : t[i].playingvideos, t[i].videos[e[0].id].stopAV && void 0 !== t[i].playingvideos && t[i].playingvideos.length > 0) for (var a in t[i].lastplayedvideos = jQuery.extend(!0, [], t[i].playingvideos), t[i].playingvideos) t[i].playingvideos.hasOwnProperty(a) && t.stopVideo(t[i].playingvideos[a], i); t[i].playingvideos.push(e), t[i].videoIsPlaying = e }, w = function (e, i) { void 0 !== t[i] && void 0 !== t[i] && null != t[i].playingvideos && jQuery.inArray(e, t[i].playingvideos) >= 0 && t[i].playingvideos.splice(jQuery.inArray(e, t[i].playingvideos), 1) }, b = function (e, i) { if (void 0 !== e && (void 0 === i && (i = 0), t.ISM && !e.bgvideo)) { e.playPauseBtnTween && e.playPauseBtnTween.kill && e.playPauseBtnTween.kill(); var a = t.closestNode(e.video, "RS-LAYER"), r = e.controls ? 1 : 0, o = e.controls ? 0 : .3; e.controls && e.poster && 0 === i && (o = 0, r = 0), a && (e.playPauseBtnTween = tpGS.gsap.to(a.querySelector(".tp-video-play-button"), { duration: o, delay: r, opacity: i })) } }; window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.video = { loaded: !0, version: "6.6.9" }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal() }(jQuery); /*! jQuery UI - v1.13.2 - 2022-07-14 * http://jqueryui.com * Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js * Copyright jQuery Foundation and other contributors; Licensed MIT */ !function (t) { "use strict"; "function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery) }(function (x) { "use strict"; var t, e, i, n, W, C, o, s, r, l, a, h, u; function E(t, e, i) { return [parseFloat(t[0]) * (a.test(t[0]) ? e / 100 : 1), parseFloat(t[1]) * (a.test(t[1]) ? i / 100 : 1)] } function L(t, e) { return parseInt(x.css(t, e), 10) || 0 } function N(t) { return null != t && t === t.window } x.ui = x.ui || {}, x.ui.version = "1.13.2", /*! * jQuery UI :data 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ x.extend(x.expr.pseudos, { data: x.expr.createPseudo ? x.expr.createPseudo(function (e) { return function (t) { return !!x.data(t, e) } }) : function (t, e, i) { return !!x.data(t, i[3]) } }), /*! * jQuery UI Disable Selection 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ x.fn.extend({ disableSelection: (t = "onselectstart" in document.createElement("div") ? "selectstart" : "mousedown", function () { return this.on(t + ".ui-disableSelection", function (t) { t.preventDefault() }) }), enableSelection: function () { return this.off(".ui-disableSelection") } }), /*! * jQuery UI Focusable 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ x.ui.focusable = function (t, e) { var i, n, o, s = t.nodeName.toLowerCase(); return "area" === s ? (o = (i = t.parentNode).name, !(!t.href || !o || "map" !== i.nodeName.toLowerCase()) && 0 < (i = x("img[usemap='#" + o + "']")).length && i.is(":visible")) : (/^(input|select|textarea|button|object)$/.test(s) ? (n = !t.disabled) && (o = x(t).closest("fieldset")[0]) && (n = !o.disabled) : n = "a" === s && t.href || e, n && x(t).is(":visible") && function (t) { var e = t.css("visibility"); for (; "inherit" === e;) t = t.parent(), e = t.css("visibility"); return "visible" === e }(x(t))) }, x.extend(x.expr.pseudos, { focusable: function (t) { return x.ui.focusable(t, null != x.attr(t, "tabindex")) } }), x.fn._form = function () { return "string" == typeof this[0].form ? this.closest("form") : x(this[0].form) }, /*! * jQuery UI Form Reset Mixin 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ x.ui.formResetMixin = { _formResetHandler: function () { var e = x(this); setTimeout(function () { var t = e.data("ui-form-reset-instances"); x.each(t, function () { this.refresh() }) }) }, _bindFormResetHandler: function () { var t; this.form = this.element._form(), this.form.length && ((t = this.form.data("ui-form-reset-instances") || []).length || this.form.on("reset.ui-form-reset", this._formResetHandler), t.push(this), this.form.data("ui-form-reset-instances", t)) }, _unbindFormResetHandler: function () { var t; this.form.length && ((t = this.form.data("ui-form-reset-instances")).splice(x.inArray(this, t), 1), t.length ? this.form.data("ui-form-reset-instances", t) : this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")) } }, x.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()), /*! * jQuery UI Support for jQuery core 1.8.x and newer 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * */ x.expr.pseudos || (x.expr.pseudos = x.expr[":"]), x.uniqueSort || (x.uniqueSort = x.unique), x.escapeSelector || (e = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, i = function (t, e) { return e ? "\0" === t ? "�" : t.slice(0, -1) + "\\" + t.charCodeAt(t.length - 1).toString(16) + " " : "\\" + t }, x.escapeSelector = function (t) { return (t + "").replace(e, i) }), x.fn.even && x.fn.odd || x.fn.extend({ even: function () { return this.filter(function (t) { return t % 2 == 0 }) }, odd: function () { return this.filter(function (t) { return t % 2 == 1 }) } }), /*! * jQuery UI Keycode 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ x.ui.keyCode = { BACKSPACE: 8, COMMA: 188, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, LEFT: 37, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SPACE: 32, TAB: 9, UP: 38 }, /*! * jQuery UI Labels 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ x.fn.labels = function () { var t, e, i; return this.length ? this[0].labels && this[0].labels.length ? this.pushStack(this[0].labels) : (e = this.eq(0).parents("label"), (t = this.attr("id")) && (i = (i = this.eq(0).parents().last()).add((i.length ? i : this).siblings()), t = "label[for='" + x.escapeSelector(t) + "']", e = e.add(i.find(t).addBack(t))), this.pushStack(e)) : this.pushStack([]) }, x.ui.plugin = { add: function (t, e, i) { var n, o = x.ui[t].prototype; for (n in i) o.plugins[n] = o.plugins[n] || [], o.plugins[n].push([e, i[n]]) }, call: function (t, e, i, n) { var o, s = t.plugins[e]; if (s && (n || t.element[0].parentNode && 11 !== t.element[0].parentNode.nodeType)) for (o = 0; o < s.length; o++) t.options[s[o][0]] && s[o][1].apply(t.element, i) } }, /*! * jQuery UI Position 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/position/ */ W = Math.max, C = Math.abs, o = /left|center|right/, s = /top|center|bottom/, r = /[\+\-]\d+(\.[\d]+)?%?/, l = /^\w+/, a = /%$/, h = x.fn.position, x.position = { scrollbarWidth: function () { var t, e, i; return void 0 !== n ? n : (i = (e = x("
")).children()[0], x("body").append(e), t = i.offsetWidth, e.css("overflow", "scroll"), t === (i = i.offsetWidth) && (i = e[0].clientWidth), e.remove(), n = t - i) }, getScrollInfo: function (t) { var e = t.isWindow || t.isDocument ? "" : t.element.css("overflow-x"), i = t.isWindow || t.isDocument ? "" : t.element.css("overflow-y"), e = "scroll" === e || "auto" === e && t.width < t.element[0].scrollWidth; return { width: "scroll" === i || "auto" === i && t.height < t.element[0].scrollHeight ? x.position.scrollbarWidth() : 0, height: e ? x.position.scrollbarWidth() : 0 } }, getWithinInfo: function (t) { var e = x(t || window), i = N(e[0]), n = !!e[0] && 9 === e[0].nodeType; return { element: e, isWindow: i, isDocument: n, offset: !i && !n ? x(t).offset() : {left: 0, top: 0}, scrollLeft: e.scrollLeft(), scrollTop: e.scrollTop(), width: e.outerWidth(), height: e.outerHeight() } } }, x.fn.position = function (f) { var c, d, p, g, m, v, y, w, b, _, t, e; return f && f.of ? (v = "string" == typeof (f = x.extend({}, f)).of ? x(document).find(f.of) : x(f.of), y = x.position.getWithinInfo(f.within), w = x.position.getScrollInfo(y), b = (f.collision || "flip").split(" "), _ = {}, e = 9 === (e = (t = v)[0]).nodeType ? { width: t.width(), height: t.height(), offset: {top: 0, left: 0} } : N(e) ? { width: t.width(), height: t.height(), offset: {top: t.scrollTop(), left: t.scrollLeft()} } : e.preventDefault ? {width: 0, height: 0, offset: {top: e.pageY, left: e.pageX}} : { width: t.outerWidth(), height: t.outerHeight(), offset: t.offset() }, v[0].preventDefault && (f.at = "left top"), d = e.width, p = e.height, m = x.extend({}, g = e.offset), x.each(["my", "at"], function () { var t, e, i = (f[this] || "").split(" "); (i = 1 === i.length ? o.test(i[0]) ? i.concat(["center"]) : s.test(i[0]) ? ["center"].concat(i) : ["center", "center"] : i)[0] = o.test(i[0]) ? i[0] : "center", i[1] = s.test(i[1]) ? i[1] : "center", t = r.exec(i[0]), e = r.exec(i[1]), _[this] = [t ? t[0] : 0, e ? e[0] : 0], f[this] = [l.exec(i[0])[0], l.exec(i[1])[0]] }), 1 === b.length && (b[1] = b[0]), "right" === f.at[0] ? m.left += d : "center" === f.at[0] && (m.left += d / 2), "bottom" === f.at[1] ? m.top += p : "center" === f.at[1] && (m.top += p / 2), c = E(_.at, d, p), m.left += c[0], m.top += c[1], this.each(function () { var i, t, r = x(this), l = r.outerWidth(), a = r.outerHeight(), e = L(this, "marginLeft"), n = L(this, "marginTop"), o = l + e + L(this, "marginRight") + w.width, s = a + n + L(this, "marginBottom") + w.height, h = x.extend({}, m), u = E(_.my, r.outerWidth(), r.outerHeight()); "right" === f.my[0] ? h.left -= l : "center" === f.my[0] && (h.left -= l / 2), "bottom" === f.my[1] ? h.top -= a : "center" === f.my[1] && (h.top -= a / 2), h.left += u[0], h.top += u[1], i = { marginLeft: e, marginTop: n }, x.each(["left", "top"], function (t, e) { x.ui.position[b[t]] && x.ui.position[b[t]][e](h, { targetWidth: d, targetHeight: p, elemWidth: l, elemHeight: a, collisionPosition: i, collisionWidth: o, collisionHeight: s, offset: [c[0] + u[0], c[1] + u[1]], my: f.my, at: f.at, within: y, elem: r }) }), f.using && (t = function (t) { var e = g.left - h.left, i = e + d - l, n = g.top - h.top, o = n + p - a, s = { target: {element: v, left: g.left, top: g.top, width: d, height: p}, element: {element: r, left: h.left, top: h.top, width: l, height: a}, horizontal: i < 0 ? "left" : 0 < e ? "right" : "center", vertical: o < 0 ? "top" : 0 < n ? "bottom" : "middle" }; d < l && C(e + i) < d && (s.horizontal = "center"), p < a && C(n + o) < p && (s.vertical = "middle"), W(C(e), C(i)) > W(C(n), C(o)) ? s.important = "horizontal" : s.important = "vertical", f.using.call(this, t, s) }), r.offset(x.extend(h, {using: t})) })) : h.apply(this, arguments) }, x.ui.position = { fit: { left: function (t, e) { var i, n = e.within, o = n.isWindow ? n.scrollLeft : n.offset.left, n = n.width, s = t.left - e.collisionPosition.marginLeft, r = o - s, l = s + e.collisionWidth - n - o; e.collisionWidth > n ? 0 < r && l <= 0 ? (i = t.left + r + e.collisionWidth - n - o, t.left += r - i) : t.left = !(0 < l && r <= 0) && l < r ? o + n - e.collisionWidth : o : 0 < r ? t.left += r : 0 < l ? t.left -= l : t.left = W(t.left - s, t.left) }, top: function (t, e) { var i, n = e.within, n = n.isWindow ? n.scrollTop : n.offset.top, o = e.within.height, s = t.top - e.collisionPosition.marginTop, r = n - s, l = s + e.collisionHeight - o - n; e.collisionHeight > o ? 0 < r && l <= 0 ? (i = t.top + r + e.collisionHeight - o - n, t.top += r - i) : t.top = !(0 < l && r <= 0) && l < r ? n + o - e.collisionHeight : n : 0 < r ? t.top += r : 0 < l ? t.top -= l : t.top = W(t.top - s, t.top) } }, flip: { left: function (t, e) { var i = e.within, n = i.offset.left + i.scrollLeft, o = i.width, i = i.isWindow ? i.scrollLeft : i.offset.left, s = t.left - e.collisionPosition.marginLeft, r = s - i, s = s + e.collisionWidth - o - i, l = "left" === e.my[0] ? -e.elemWidth : "right" === e.my[0] ? e.elemWidth : 0, a = "left" === e.at[0] ? e.targetWidth : "right" === e.at[0] ? -e.targetWidth : 0, h = -2 * e.offset[0]; r < 0 ? ((o = t.left + l + a + h + e.collisionWidth - o - n) < 0 || o < C(r)) && (t.left += l + a + h) : 0 < s && (0 < (n = t.left - e.collisionPosition.marginLeft + l + a + h - i) || C(n) < s) && (t.left += l + a + h) }, top: function (t, e) { var i = e.within, n = i.offset.top + i.scrollTop, o = i.height, i = i.isWindow ? i.scrollTop : i.offset.top, s = t.top - e.collisionPosition.marginTop, r = s - i, s = s + e.collisionHeight - o - i, l = "top" === e.my[1] ? -e.elemHeight : "bottom" === e.my[1] ? e.elemHeight : 0, a = "top" === e.at[1] ? e.targetHeight : "bottom" === e.at[1] ? -e.targetHeight : 0, h = -2 * e.offset[1]; r < 0 ? ((o = t.top + l + a + h + e.collisionHeight - o - n) < 0 || o < C(r)) && (t.top += l + a + h) : 0 < s && (0 < (n = t.top - e.collisionPosition.marginTop + l + a + h - i) || C(n) < s) && (t.top += l + a + h) } }, flipfit: { left: function () { x.ui.position.flip.left.apply(this, arguments), x.ui.position.fit.left.apply(this, arguments) }, top: function () { x.ui.position.flip.top.apply(this, arguments), x.ui.position.fit.top.apply(this, arguments) } } }, x.ui.safeActiveElement = function (e) { var i; try { i = e.activeElement } catch (t) { i = e.body } return i = (i = i || e.body).nodeName ? i : e.body }, x.ui.safeBlur = function (t) { t && "body" !== t.nodeName.toLowerCase() && x(t).trigger("blur") }, /*! * jQuery UI Scroll Parent 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ x.fn.scrollParent = function (t) { var e = this.css("position"), i = "absolute" === e, n = t ? /(auto|scroll|hidden)/ : /(auto|scroll)/, t = this.parents().filter(function () { var t = x(this); return (!i || "static" !== t.css("position")) && n.test(t.css("overflow") + t.css("overflow-y") + t.css("overflow-x")) }).eq(0); return "fixed" !== e && t.length ? t : x(this[0].ownerDocument || document) }, /*! * jQuery UI Tabbable 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ x.extend(x.expr.pseudos, { tabbable: function (t) { var e = x.attr(t, "tabindex"), i = null != e; return (!i || 0 <= e) && x.ui.focusable(t, i) } }), /*! * jQuery UI Unique ID 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ x.fn.extend({ uniqueId: (u = 0, function () { return this.each(function () { this.id || (this.id = "ui-id-" + ++u) }) }), removeUniqueId: function () { return this.each(function () { /^ui-id-\d+$/.test(this.id) && x(this).removeAttr("id") }) } }); /*! * jQuery UI Widget 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ var f, c = 0, d = Array.prototype.hasOwnProperty, p = Array.prototype.slice; x.cleanData = (f = x.cleanData, function (t) { for (var e, i, n = 0; null != (i = t[n]); n++) (e = x._data(i, "events")) && e.remove && x(i).triggerHandler("remove"); f(t) }), x.widget = function (t, i, e) { var n, o, s, r = {}, l = t.split(".")[0], a = l + "-" + (t = t.split(".")[1]); return e || (e = i, i = x.Widget), Array.isArray(e) && (e = x.extend.apply(null, [{}].concat(e))), x.expr.pseudos[a.toLowerCase()] = function (t) { return !!x.data(t, a) }, x[l] = x[l] || {}, n = x[l][t], o = x[l][t] = function (t, e) { if (!this || !this._createWidget) return new o(t, e); arguments.length && this._createWidget(t, e) }, x.extend(o, n, { version: e.version, _proto: x.extend({}, e), _childConstructors: [] }), (s = new i).options = x.widget.extend({}, s.options), x.each(e, function (e, n) { function o() { return i.prototype[e].apply(this, arguments) } function s(t) { return i.prototype[e].apply(this, t) } r[e] = "function" != typeof n ? n : function () { var t, e = this._super, i = this._superApply; return this._super = o, this._superApply = s, t = n.apply(this, arguments), this._super = e, this._superApply = i, t } }), o.prototype = x.widget.extend(s, {widgetEventPrefix: n && s.widgetEventPrefix || t}, r, { constructor: o, namespace: l, widgetName: t, widgetFullName: a }), n ? (x.each(n._childConstructors, function (t, e) { var i = e.prototype; x.widget(i.namespace + "." + i.widgetName, o, e._proto) }), delete n._childConstructors) : i._childConstructors.push(o), x.widget.bridge(t, o), o }, x.widget.extend = function (t) { for (var e, i, n = p.call(arguments, 1), o = 0, s = n.length; o < s; o++) for (e in n[o]) i = n[o][e], d.call(n[o], e) && void 0 !== i && (x.isPlainObject(i) ? t[e] = x.isPlainObject(t[e]) ? x.widget.extend({}, t[e], i) : x.widget.extend({}, i) : t[e] = i); return t }, x.widget.bridge = function (s, e) { var r = e.prototype.widgetFullName || s; x.fn[s] = function (i) { var t = "string" == typeof i, n = p.call(arguments, 1), o = this; return t ? this.length || "instance" !== i ? this.each(function () { var t, e = x.data(this, r); return "instance" === i ? (o = e, !1) : e ? "function" != typeof e[i] || "_" === i.charAt(0) ? x.error("no such method '" + i + "' for " + s + " widget instance") : (t = e[i].apply(e, n)) !== e && void 0 !== t ? (o = t && t.jquery ? o.pushStack(t.get()) : t, !1) : void 0 : x.error("cannot call methods on " + s + " prior to initialization; attempted to call method '" + i + "'") }) : o = void 0 : (n.length && (i = x.widget.extend.apply(null, [i].concat(n))), this.each(function () { var t = x.data(this, r); t ? (t.option(i || {}), t._init && t._init()) : x.data(this, r, new e(i, this)) })), o } }, x.Widget = function () { }, x.Widget._childConstructors = [], x.Widget.prototype = { widgetName: "widget", widgetEventPrefix: "", defaultElement: "
", options: {classes: {}, disabled: !1, create: null}, _createWidget: function (t, e) { e = x(e || this.defaultElement || this)[0], this.element = x(e), this.uuid = c++, this.eventNamespace = "." + this.widgetName + this.uuid, this.bindings = x(), this.hoverable = x(), this.focusable = x(), this.classesElementLookup = {}, e !== this && (x.data(e, this.widgetFullName, this), this._on(!0, this.element, { remove: function (t) { t.target === e && this.destroy() } }), this.document = x(e.style ? e.ownerDocument : e.document || e), this.window = x(this.document[0].defaultView || this.document[0].parentWindow)), this.options = x.widget.extend({}, this.options, this._getCreateOptions(), t), this._create(), this.options.disabled && this._setOptionDisabled(this.options.disabled), this._trigger("create", null, this._getCreateEventData()), this._init() }, _getCreateOptions: function () { return {} }, _getCreateEventData: x.noop, _create: x.noop, _init: x.noop, destroy: function () { var i = this; this._destroy(), x.each(this.classesElementLookup, function (t, e) { i._removeClass(e, t) }), this.element.off(this.eventNamespace).removeData(this.widgetFullName), this.widget().off(this.eventNamespace).removeAttr("aria-disabled"), this.bindings.off(this.eventNamespace) }, _destroy: x.noop, widget: function () { return this.element }, option: function (t, e) { var i, n, o, s = t; if (0 === arguments.length) return x.widget.extend({}, this.options); if ("string" == typeof t) if (s = {}, t = (i = t.split(".")).shift(), i.length) { for (n = s[t] = x.widget.extend({}, this.options[t]), o = 0; o < i.length - 1; o++) n[i[o]] = n[i[o]] || {}, n = n[i[o]]; if (t = i.pop(), 1 === arguments.length) return void 0 === n[t] ? null : n[t]; n[t] = e } else { if (1 === arguments.length) return void 0 === this.options[t] ? null : this.options[t]; s[t] = e } return this._setOptions(s), this }, _setOptions: function (t) { for (var e in t) this._setOption(e, t[e]); return this }, _setOption: function (t, e) { return "classes" === t && this._setOptionClasses(e), this.options[t] = e, "disabled" === t && this._setOptionDisabled(e), this }, _setOptionClasses: function (t) { var e, i, n; for (e in t) n = this.classesElementLookup[e], t[e] !== this.options.classes[e] && n && n.length && (i = x(n.get()), this._removeClass(n, e), i.addClass(this._classes({ element: i, keys: e, classes: t, add: !0 }))) }, _setOptionDisabled: function (t) { this._toggleClass(this.widget(), this.widgetFullName + "-disabled", null, !!t), t && (this._removeClass(this.hoverable, null, "ui-state-hover"), this._removeClass(this.focusable, null, "ui-state-focus")) }, enable: function () { return this._setOptions({disabled: !1}) }, disable: function () { return this._setOptions({disabled: !0}) }, _classes: function (o) { var s = [], r = this; function t(t, e) { for (var i, n = 0; n < t.length; n++) i = r.classesElementLookup[t[n]] || x(), i = o.add ? (function () { var i = []; o.element.each(function (t, e) { x.map(r.classesElementLookup, function (t) { return t }).some(function (t) { return t.is(e) }) || i.push(e) }), r._on(x(i), {remove: "_untrackClassesElement"}) }(), x(x.uniqueSort(i.get().concat(o.element.get())))) : x(i.not(o.element).get()), r.classesElementLookup[t[n]] = i, s.push(t[n]), e && o.classes[t[n]] && s.push(o.classes[t[n]]) } return (o = x.extend({ element: this.element, classes: this.options.classes || {} }, o)).keys && t(o.keys.match(/\S+/g) || [], !0), o.extra && t(o.extra.match(/\S+/g) || []), s.join(" ") }, _untrackClassesElement: function (i) { var n = this; x.each(n.classesElementLookup, function (t, e) { -1 !== x.inArray(i.target, e) && (n.classesElementLookup[t] = x(e.not(i.target).get())) }), this._off(x(i.target)) }, _removeClass: function (t, e, i) { return this._toggleClass(t, e, i, !1) }, _addClass: function (t, e, i) { return this._toggleClass(t, e, i, !0) }, _toggleClass: function (t, e, i, n) { var o = "string" == typeof t || null === t, e = { extra: o ? e : i, keys: o ? t : e, element: o ? this.element : t, add: n = "boolean" == typeof n ? n : i }; return e.element.toggleClass(this._classes(e), n), this }, _on: function (o, s, t) { var r, l = this; "boolean" != typeof o && (t = s, s = o, o = !1), t ? (s = r = x(s), this.bindings = this.bindings.add(s)) : (t = s, s = this.element, r = this.widget()), x.each(t, function (t, e) { function i() { if (o || !0 !== l.options.disabled && !x(this).hasClass("ui-state-disabled")) return ("string" == typeof e ? l[e] : e).apply(l, arguments) } "string" != typeof e && (i.guid = e.guid = e.guid || i.guid || x.guid++); var t = t.match(/^([\w:-]*)\s*(.*)$/), n = t[1] + l.eventNamespace, t = t[2]; t ? r.on(n, t, i) : s.on(n, i) }) }, _off: function (t, e) { e = (e || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, t.off(e), this.bindings = x(this.bindings.not(t).get()), this.focusable = x(this.focusable.not(t).get()), this.hoverable = x(this.hoverable.not(t).get()) }, _delay: function (t, e) { var i = this; return setTimeout(function () { return ("string" == typeof t ? i[t] : t).apply(i, arguments) }, e || 0) }, _hoverable: function (t) { this.hoverable = this.hoverable.add(t), this._on(t, { mouseenter: function (t) { this._addClass(x(t.currentTarget), null, "ui-state-hover") }, mouseleave: function (t) { this._removeClass(x(t.currentTarget), null, "ui-state-hover") } }) }, _focusable: function (t) { this.focusable = this.focusable.add(t), this._on(t, { focusin: function (t) { this._addClass(x(t.currentTarget), null, "ui-state-focus") }, focusout: function (t) { this._removeClass(x(t.currentTarget), null, "ui-state-focus") } }) }, _trigger: function (t, e, i) { var n, o, s = this.options[t]; if (i = i || {}, (e = x.Event(e)).type = (t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t).toLowerCase(), e.target = this.element[0], o = e.originalEvent) for (n in o) n in e || (e[n] = o[n]); return this.element.trigger(e, i), !("function" == typeof s && !1 === s.apply(this.element[0], [e].concat(i)) || e.isDefaultPrevented()) } }, x.each({show: "fadeIn", hide: "fadeOut"}, function (s, r) { x.Widget.prototype["_" + s] = function (e, t, i) { var n, o = (t = "string" == typeof t ? {effect: t} : t) ? !0 !== t && "number" != typeof t && t.effect || r : s; "number" == typeof (t = t || {}) ? t = {duration: t} : !0 === t && (t = {}), n = !x.isEmptyObject(t), t.complete = i, t.delay && e.delay(t.delay), n && x.effects && x.effects.effect[o] ? e[s](t) : o !== s && e[o] ? e[o](t.duration, t.easing, i) : e.queue(function (t) { x(this)[s](), i && i.call(e[0]), t() }) } }) }); /*! * jQuery UI Mouse 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ !function (e) { "use strict"; "function" == typeof define && define.amd ? define(["jquery", "./core"], e) : e(jQuery) }(function (o) { "use strict"; var n = !1; return o(document).on("mouseup", function () { n = !1 }), o.widget("ui.mouse", { version: "1.13.2", options: {cancel: "input, textarea, button, select, option", distance: 1, delay: 0}, _mouseInit: function () { var t = this; this.element.on("mousedown." + this.widgetName, function (e) { return t._mouseDown(e) }).on("click." + this.widgetName, function (e) { if (!0 === o.data(e.target, t.widgetName + ".preventClickEvent")) return o.removeData(e.target, t.widgetName + ".preventClickEvent"), e.stopImmediatePropagation(), !1 }), this.started = !1 }, _mouseDestroy: function () { this.element.off("." + this.widgetName), this._mouseMoveDelegate && this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate) }, _mouseDown: function (e) { var t, s, i; if (!n) return this._mouseMoved = !1, this._mouseStarted && this._mouseUp(e), s = 1 === (this._mouseDownEvent = e).which, i = !("string" != typeof (t = this).options.cancel || !e.target.nodeName) && o(e.target).closest(this.options.cancel).length, s && !i && this._mouseCapture(e) && (this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function () { t.mouseDelayMet = !0 }, this.options.delay)), this._mouseDistanceMet(e) && this._mouseDelayMet(e) && (this._mouseStarted = !1 !== this._mouseStart(e), !this._mouseStarted) ? e.preventDefault() : (!0 === o.data(e.target, this.widgetName + ".preventClickEvent") && o.removeData(e.target, this.widgetName + ".preventClickEvent"), this._mouseMoveDelegate = function (e) { return t._mouseMove(e) }, this._mouseUpDelegate = function (e) { return t._mouseUp(e) }, this.document.on("mousemove." + this.widgetName, this._mouseMoveDelegate).on("mouseup." + this.widgetName, this._mouseUpDelegate), e.preventDefault(), n = !0)), !0 }, _mouseMove: function (e) { if (this._mouseMoved) { if (o.ui.ie && (!document.documentMode || document.documentMode < 9) && !e.button) return this._mouseUp(e); if (!e.which) if (e.originalEvent.altKey || e.originalEvent.ctrlKey || e.originalEvent.metaKey || e.originalEvent.shiftKey) this.ignoreMissingWhich = !0; else if (!this.ignoreMissingWhich) return this._mouseUp(e) } return (e.which || e.button) && (this._mouseMoved = !0), this._mouseStarted ? (this._mouseDrag(e), e.preventDefault()) : (this._mouseDistanceMet(e) && this._mouseDelayMet(e) && (this._mouseStarted = !1 !== this._mouseStart(this._mouseDownEvent, e), this._mouseStarted ? this._mouseDrag(e) : this._mouseUp(e)), !this._mouseStarted) }, _mouseUp: function (e) { this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate), this._mouseStarted && (this._mouseStarted = !1, e.target === this._mouseDownEvent.target && o.data(e.target, this.widgetName + ".preventClickEvent", !0), this._mouseStop(e)), this._mouseDelayTimer && (clearTimeout(this._mouseDelayTimer), delete this._mouseDelayTimer), this.ignoreMissingWhich = !1, n = !1, e.preventDefault() }, _mouseDistanceMet: function (e) { return Math.max(Math.abs(this._mouseDownEvent.pageX - e.pageX), Math.abs(this._mouseDownEvent.pageY - e.pageY)) >= this.options.distance }, _mouseDelayMet: function () { return this.mouseDelayMet }, _mouseStart: function () { }, _mouseDrag: function () { }, _mouseStop: function () { }, _mouseCapture: function () { return !0 } }) }); /*! * jQuery UI Slider 1.13.2 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license */ !function (e) { "use strict"; "function" == typeof define && define.amd ? define(["jquery", "./mouse", "./core"], e) : e(jQuery) }(function (o) { "use strict"; return o.widget("ui.slider", o.ui.mouse, { version: "1.13.2", widgetEventPrefix: "slide", options: { animate: !1, classes: { "ui-slider": "ui-corner-all", "ui-slider-handle": "ui-corner-all", "ui-slider-range": "ui-corner-all ui-widget-header" }, distance: 0, max: 100, min: 0, orientation: "horizontal", range: !1, step: 1, value: 0, values: null, change: null, slide: null, start: null, stop: null }, numPages: 5, _create: function () { this._keySliding = !1, this._mouseSliding = !1, this._animateOff = !0, this._handleIndex = null, this._detectOrientation(), this._mouseInit(), this._calculateNewMax(), this._addClass("ui-slider ui-slider-" + this.orientation, "ui-widget ui-widget-content"), this._refresh(), this._animateOff = !1 }, _refresh: function () { this._createRange(), this._createHandles(), this._setupEvents(), this._refreshValue() }, _createHandles: function () { var e, t = this.options, i = this.element.find(".ui-slider-handle"), s = [], a = t.values && t.values.length || 1; for (i.length > a && (i.slice(a).remove(), i = i.slice(0, a)), e = i.length; e < a; e++) s.push(""); this.handles = i.add(o(s.join("")).appendTo(this.element)), this._addClass(this.handles, "ui-slider-handle", "ui-state-default"), this.handle = this.handles.eq(0), this.handles.each(function (e) { o(this).data("ui-slider-handle-index", e).attr("tabIndex", 0) }) }, _createRange: function () { var e = this.options; e.range ? (!0 === e.range && (e.values ? e.values.length && 2 !== e.values.length ? e.values = [e.values[0], e.values[0]] : Array.isArray(e.values) && (e.values = e.values.slice(0)) : e.values = [this._valueMin(), this._valueMin()]), this.range && this.range.length ? (this._removeClass(this.range, "ui-slider-range-min ui-slider-range-max"), this.range.css({ left: "", bottom: "" })) : (this.range = o("
").appendTo(this.element), this._addClass(this.range, "ui-slider-range")), "min" !== e.range && "max" !== e.range || this._addClass(this.range, "ui-slider-range-" + e.range)) : (this.range && this.range.remove(), this.range = null) }, _setupEvents: function () { this._off(this.handles), this._on(this.handles, this._handleEvents), this._hoverable(this.handles), this._focusable(this.handles) }, _destroy: function () { this.handles.remove(), this.range && this.range.remove(), this._mouseDestroy() }, _mouseCapture: function (e) { var i, s, a, n, t, h, l = this, u = this.options; return !u.disabled && (this.elementSize = { width: this.element.outerWidth(), height: this.element.outerHeight() }, this.elementOffset = this.element.offset(), t = { x: e.pageX, y: e.pageY }, i = this._normValueFromMouse(t), s = this._valueMax() - this._valueMin() + 1, this.handles.each(function (e) { var t = Math.abs(i - l.values(e)); (t < s || s === t && (e === l._lastChangedValue || l.values(e) === u.min)) && (s = t, a = o(this), n = e) }), !1 !== this._start(e, n)) && (this._mouseSliding = !0, this._handleIndex = n, this._addClass(a, null, "ui-state-active"), a.trigger("focus"), t = a.offset(), h = !o(e.target).parents().addBack().is(".ui-slider-handle"), this._clickOffset = h ? { left: 0, top: 0 } : { left: e.pageX - t.left - a.width() / 2, top: e.pageY - t.top - a.height() / 2 - (parseInt(a.css("borderTopWidth"), 10) || 0) - (parseInt(a.css("borderBottomWidth"), 10) || 0) + (parseInt(a.css("marginTop"), 10) || 0) }, this.handles.hasClass("ui-state-hover") || this._slide(e, n, i), this._animateOff = !0) }, _mouseStart: function () { return !0 }, _mouseDrag: function (e) { var t = {x: e.pageX, y: e.pageY}, t = this._normValueFromMouse(t); return this._slide(e, this._handleIndex, t), !1 }, _mouseStop: function (e) { return this._removeClass(this.handles, null, "ui-state-active"), this._mouseSliding = !1, this._stop(e, this._handleIndex), this._change(e, this._handleIndex), this._handleIndex = null, this._clickOffset = null, this._animateOff = !1 }, _detectOrientation: function () { this.orientation = "vertical" === this.options.orientation ? "vertical" : "horizontal" }, _normValueFromMouse: function (e) { var t, e = "horizontal" === this.orientation ? (t = this.elementSize.width, e.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (t = this.elementSize.height, e.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)), e = e / t; return (e = 1 < e ? 1 : e) < 0 && (e = 0), "vertical" === this.orientation && (e = 1 - e), t = this._valueMax() - this._valueMin(), e = this._valueMin() + e * t, this._trimAlignValue(e) }, _uiHash: function (e, t, i) { var s = {handle: this.handles[e], handleIndex: e, value: void 0 !== t ? t : this.value()}; return this._hasMultipleValues() && (s.value = void 0 !== t ? t : this.values(e), s.values = i || this.values()), s }, _hasMultipleValues: function () { return this.options.values && this.options.values.length }, _start: function (e, t) { return this._trigger("start", e, this._uiHash(t)) }, _slide: function (e, t, i) { var s, a = this.value(), n = this.values(); this._hasMultipleValues() && (s = this.values(t ? 0 : 1), a = this.values(t), 2 === this.options.values.length && !0 === this.options.range && (i = 0 === t ? Math.min(s, i) : Math.max(s, i)), n[t] = i), i !== a && !1 !== this._trigger("slide", e, this._uiHash(t, i, n)) && (this._hasMultipleValues() ? this.values(t, i) : this.value(i)) }, _stop: function (e, t) { this._trigger("stop", e, this._uiHash(t)) }, _change: function (e, t) { this._keySliding || this._mouseSliding || (this._lastChangedValue = t, this._trigger("change", e, this._uiHash(t))) }, value: function (e) { if (!arguments.length) return this._value(); this.options.value = this._trimAlignValue(e), this._refreshValue(), this._change(null, 0) }, values: function (e, t) { var i, s, a; if (1 < arguments.length) this.options.values[e] = this._trimAlignValue(t), this._refreshValue(), this._change(null, e); else { if (!arguments.length) return this._values(); if (!Array.isArray(e)) return this._hasMultipleValues() ? this._values(e) : this.value(); for (i = this.options.values, s = e, a = 0; a < i.length; a += 1) i[a] = this._trimAlignValue(s[a]), this._change(null, a); this._refreshValue() } }, _setOption: function (e, t) { var i, s = 0; switch ("range" === e && !0 === this.options.range && ("min" === t ? (this.options.value = this._values(0), this.options.values = null) : "max" === t && (this.options.value = this._values(this.options.values.length - 1), this.options.values = null)), Array.isArray(this.options.values) && (s = this.options.values.length), this._super(e, t), e) { case"orientation": this._detectOrientation(), this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-" + this.orientation), this._refreshValue(), this.options.range && this._refreshRange(t), this.handles.css("horizontal" === t ? "bottom" : "left", ""); break; case"value": this._animateOff = !0, this._refreshValue(), this._change(null, 0), this._animateOff = !1; break; case"values": for (this._animateOff = !0, this._refreshValue(), i = s - 1; 0 <= i; i--) this._change(null, i); this._animateOff = !1; break; case"step": case"min": case"max": this._animateOff = !0, this._calculateNewMax(), this._refreshValue(), this._animateOff = !1; break; case"range": this._animateOff = !0, this._refresh(), this._animateOff = !1 } }, _setOptionDisabled: function (e) { this._super(e), this._toggleClass(null, "ui-state-disabled", !!e) }, _value: function () { var e = this.options.value; return this._trimAlignValue(e) }, _values: function (e) { var t, i; if (arguments.length) return e = this.options.values[e], this._trimAlignValue(e); if (this._hasMultipleValues()) { for (t = this.options.values.slice(), i = 0; i < t.length; i += 1) t[i] = this._trimAlignValue(t[i]); return t } return [] }, _trimAlignValue: function (e) { var t, i; return e <= this._valueMin() ? this._valueMin() : e >= this._valueMax() ? this._valueMax() : (t = 0 < this.options.step ? this.options.step : 1, i = e - (e = (e - this._valueMin()) % t), 2 * Math.abs(e) >= t && (i += 0 < e ? t : -t), parseFloat(i.toFixed(5))) }, _calculateNewMax: function () { var e = this.options.max, t = this._valueMin(), i = this.options.step; (e = Math.round((e - t) / i) * i + t) > this.options.max && (e -= i), this.max = parseFloat(e.toFixed(this._precision())) }, _precision: function () { var e = this._precisionOf(this.options.step); return e = null !== this.options.min ? Math.max(e, this._precisionOf(this.options.min)) : e }, _precisionOf: function (e) { var e = e.toString(), t = e.indexOf("."); return -1 === t ? 0 : e.length - t - 1 }, _valueMin: function () { return this.options.min }, _valueMax: function () { return this.max }, _refreshRange: function (e) { "vertical" === e && this.range.css({width: "", left: ""}), "horizontal" === e && this.range.css({ height: "", bottom: "" }) }, _refreshValue: function () { var t, i, e, s, a, n = this.options.range, h = this.options, l = this, u = !this._animateOff && h.animate, r = {}; this._hasMultipleValues() ? this.handles.each(function (e) { i = (l.values(e) - l._valueMin()) / (l._valueMax() - l._valueMin()) * 100, r["horizontal" === l.orientation ? "left" : "bottom"] = i + "%", o(this).stop(1, 1)[u ? "animate" : "css"](r, h.animate), !0 === l.options.range && ("horizontal" === l.orientation ? (0 === e && l.range.stop(1, 1)[u ? "animate" : "css"]({left: i + "%"}, h.animate), 1 === e && l.range[u ? "animate" : "css"]({width: i - t + "%"}, { queue: !1, duration: h.animate })) : (0 === e && l.range.stop(1, 1)[u ? "animate" : "css"]({bottom: i + "%"}, h.animate), 1 === e && l.range[u ? "animate" : "css"]({height: i - t + "%"}, { queue: !1, duration: h.animate }))), t = i }) : (e = this.value(), s = this._valueMin(), a = this._valueMax(), i = a !== s ? (e - s) / (a - s) * 100 : 0, r["horizontal" === this.orientation ? "left" : "bottom"] = i + "%", this.handle.stop(1, 1)[u ? "animate" : "css"](r, h.animate), "min" === n && "horizontal" === this.orientation && this.range.stop(1, 1)[u ? "animate" : "css"]({width: i + "%"}, h.animate), "max" === n && "horizontal" === this.orientation && this.range.stop(1, 1)[u ? "animate" : "css"]({width: 100 - i + "%"}, h.animate), "min" === n && "vertical" === this.orientation && this.range.stop(1, 1)[u ? "animate" : "css"]({height: i + "%"}, h.animate), "max" === n && "vertical" === this.orientation && this.range.stop(1, 1)[u ? "animate" : "css"]({height: 100 - i + "%"}, h.animate)) }, _handleEvents: { keydown: function (e) { var t, i, s, a = o(e.target).data("ui-slider-handle-index"); switch (e.keyCode) { case o.ui.keyCode.HOME: case o.ui.keyCode.END: case o.ui.keyCode.PAGE_UP: case o.ui.keyCode.PAGE_DOWN: case o.ui.keyCode.UP: case o.ui.keyCode.RIGHT: case o.ui.keyCode.DOWN: case o.ui.keyCode.LEFT: if (e.preventDefault(), this._keySliding || (this._keySliding = !0, this._addClass(o(e.target), null, "ui-state-active"), !1 !== this._start(e, a))) break; return } switch (s = this.options.step, t = i = this._hasMultipleValues() ? this.values(a) : this.value(), e.keyCode) { case o.ui.keyCode.HOME: i = this._valueMin(); break; case o.ui.keyCode.END: i = this._valueMax(); break; case o.ui.keyCode.PAGE_UP: i = this._trimAlignValue(t + (this._valueMax() - this._valueMin()) / this.numPages); break; case o.ui.keyCode.PAGE_DOWN: i = this._trimAlignValue(t - (this._valueMax() - this._valueMin()) / this.numPages); break; case o.ui.keyCode.UP: case o.ui.keyCode.RIGHT: if (t === this._valueMax()) return; i = this._trimAlignValue(t + s); break; case o.ui.keyCode.DOWN: case o.ui.keyCode.LEFT: if (t === this._valueMin()) return; i = this._trimAlignValue(t - s) } this._slide(e, a, i) }, keyup: function (e) { var t = o(e.target).data("ui-slider-handle-index"); this._keySliding && (this._keySliding = !1, this._stop(e, t), this._change(e, t), this._removeClass(o(e.target), null, "ui-state-active")) } } }) }); /*! * accounting.js v0.4.2 * Copyright 2014 Open Exchange Rates * * Freely distributable under the MIT license. * Portions of accounting.js are inspired or borrowed from underscore.js * * Full details and documentation: * http://openexchangerates.github.io/accounting.js/ */ !function (n, r) { var e = { version: "0.4.1", settings: { currency: {symbol: "$", format: "%s%v", decimal: ".", thousand: ",", precision: 2, grouping: 3}, number: {precision: 0, grouping: 3, thousand: ",", decimal: "."} } }, t = Array.prototype.map, o = Array.isArray, a = Object.prototype.toString; function i(n) { return !!("" === n || n && n.charCodeAt && n.substr) } function u(n) { return o ? o(n) : "[object Array]" === a.call(n) } function c(n) { return n && "[object Object]" === a.call(n) } function s(n, r) { var e; for (e in n = n || {}, r = r || {}) r.hasOwnProperty(e) && null == n[e] && (n[e] = r[e]); return n } function f(n, r, e) { var o, a, i = []; if (!n) return i; if (t && n.map === t) return n.map(r, e); for (o = 0, a = n.length; o < a; o++) i[o] = r.call(e, n[o], o, n); return i } function p(n, r) { return n = Math.round(Math.abs(n)), isNaN(n) ? r : n } function l(n) { var r = e.settings.currency.format; return "function" == typeof n && (n = n()), i(n) && n.match("%v") ? { pos: n, neg: n.replace("-", "").replace("%v", "-%v"), zero: n } : n && n.pos && n.pos.match("%v") ? n : i(r) ? e.settings.currency.format = { pos: r, neg: r.replace("%v", "-%v"), zero: r } : r } var m, d = e.unformat = e.parse = function (n, r) { if (u(n)) return f(n, function (n) { return d(n, r) }); if ("number" == typeof (n = n || 0)) return n; r = r || e.settings.number.decimal; var t = new RegExp("[^0-9-" + r + "]", ["g"]), o = parseFloat(("" + n).replace(/\((.*)\)/, "-$1").replace(t, "").replace(r, ".")); return isNaN(o) ? 0 : o }, g = e.toFixed = function (n, r) { r = p(r, e.settings.number.precision); var t = Math.pow(10, r); return (Math.round(e.unformat(n) * t) / t).toFixed(r) }, h = e.formatNumber = e.format = function (n, r, t, o) { if (u(n)) return f(n, function (n) { return h(n, r, t, o) }); n = d(n); var a = s(c(r) ? r : {precision: r, thousand: t, decimal: o}, e.settings.number), i = p(a.precision), l = n < 0 ? "-" : "", m = parseInt(g(Math.abs(n || 0), i), 10) + "", y = m.length > 3 ? m.length % 3 : 0; return l + (y ? m.substr(0, y) + a.thousand : "") + m.substr(y).replace(/(\d{3})(?=\d)/g, "$1" + a.thousand) + (i ? a.decimal + g(Math.abs(n), i).split(".")[1] : "") }, y = e.formatMoney = function (n, r, t, o, a, i) { if (u(n)) return f(n, function (n) { return y(n, r, t, o, a, i) }); n = d(n); var m = s(c(r) ? r : {symbol: r, precision: t, thousand: o, decimal: a, format: i}, e.settings.currency), g = l(m.format); return (n > 0 ? g.pos : n < 0 ? g.neg : g.zero).replace("%s", m.symbol).replace("%v", h(Math.abs(n), p(m.precision), m.thousand, m.decimal)) }; e.formatColumn = function (n, r, t, o, a, m) { if (!n) return []; var g = s(c(r) ? r : {symbol: r, precision: t, thousand: o, decimal: a, format: m}, e.settings.currency), y = l(g.format), b = y.pos.indexOf("%s") < y.pos.indexOf("%v"), v = 0; return f(f(n, function (n, r) { if (u(n)) return e.formatColumn(n, g); var t = ((n = d(n)) > 0 ? y.pos : n < 0 ? y.neg : y.zero).replace("%s", g.symbol).replace("%v", h(Math.abs(n), p(g.precision), g.thousand, g.decimal)); return t.length > v && (v = t.length), t }), function (n, r) { return i(n) && n.length < v ? b ? n.replace(g.symbol, g.symbol + new Array(v - n.length + 1).join(" ")) : new Array(v - n.length + 1).join(" ") + n : n }) }, "undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = e), exports.accounting = e) : "function" == typeof define && define.amd ? define([], function () { return e }) : (e.noConflict = (m = n.accounting, function () { return n.accounting = m, e.noConflict = void 0, e }), n.accounting = e) }(this); /*! * jQuery Cookie Plugin v1.4.1 * https://github.com/carhartl/jquery-cookie * * Copyright 2013 Klaus Hartl * Released under the MIT license */ !function (e) { "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof exports ? e(require("jquery")) : e(jQuery) }(function (e) { var n = /\+/g; function o(e) { return r.raw ? e : encodeURIComponent(e) } function i(e, o) { var i = r.raw ? e : function (e) { 0 === e.indexOf('"') && (e = e.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\")); try { return e = decodeURIComponent(e.replace(n, " ")), r.json ? JSON.parse(e) : e } catch (o) { } }(e); return "function" == typeof o ? o(i) : i } var r = e.cookie = function (n, t, u) { if (t !== undefined && "function" != typeof t) { if ("number" == typeof (u = e.extend({}, r.defaults, u)).expires) { var c = u.expires, f = u.expires = new Date; f.setTime(+f + 864e5 * c) } return document.cookie = [o(n), "=", function (e) { return o(r.json ? JSON.stringify(e) : String(e)) }(t), u.expires ? "; expires=" + u.expires.toUTCString() : "", u.path ? "; path=" + u.path : "", u.domain ? "; domain=" + u.domain : "", u.secure ? "; secure" : ""].join("") } for (var d, a = n ? undefined : {}, p = document.cookie ? document.cookie.split("; ") : [], s = 0, m = p.length; s < m; s++) { var x = p[s].split("="), y = (d = x.shift(), r.raw ? d : decodeURIComponent(d)), k = x.join("="); if (n && n === y) { a = i(k, t); break } n || (k = i(k)) === undefined || (a[y] = k) } return a }; r.defaults = {}, e.removeCookie = function (n, o) { return e.cookie(n) !== undefined && (e.cookie(n, "", e.extend({}, o, {expires: -1})), !e.cookie(n)) } }); /** * Theme functions file * * Contains handlers for navigation, accessibility, header sizing * footer widgets and Featured Content slider * */ (function ($) { "use strict"; // Enable menu toggle for small screens. $(document).ready(function () { _wpbingo_count_view_product(); $('.newsletterpopup .close-popup').on("click", function () { _wpbingo_HideNLPopup(); $.cookie("mafoil_lpopup", 1, {expires: 24 * 60 * 60 * 1000}); }); $('.newsletterpopup_overlay').on("click", function () { _wpbingo_HideNLPopup(); $.cookie("mafoil_lpopup", 1, {expires: 24 * 60 * 60 * 1000}); }); }); /* Show/hide NewsLetter Popup */ $(window).load(function () { _wpbingo_campbar(); _wpbingo_ShowNLPopup(); }); /* Function Show NewsLetter Popup */ function _wpbingo_ShowNLPopup() { if ($('.newsletterpopup').length) { var cookieValue = $.cookie("mafoil_lpopup"); if (cookieValue == 1) { $('#newsletterpopup').removeClass('show'); } else { $('#newsletterpopup').addClass('show'); setTimeout(function () { $('#newsletterpopup').addClass('newsletterpopup-active'); }, 300); setTimeout(function () { $('#newsletterpopup').addClass('transition'); }, 600); } } } /* Function Hide NewsLetter Popup when click on button Close */ function _wpbingo_HideNLPopup() { $('#newsletterpopup').removeClass('transition'); setTimeout(function () { $('#newsletterpopup').removeClass('newsletterpopup-active'); }, 400); setTimeout(function () { $('#newsletterpopup').removeClass('show'); }, 700); } /* Function Count View Product */ function _wpbingo_count_view_product() { if ($(".product-count-view").length > 0) { var id_product = $(".product-count-view").data("id_product"); var min = $(".product-count-view").data("min") ? $(".product-count-view").data("min") : 30; var max = $(".product-count-view").data("max") ? $(".product-count-view").data("max") : 40; var timeout = $(".product-count-view").data("timeout") ? $(".product-count-view").data("timeout") : 10000; var cookieValue = $.cookie("product_" + id_product); if (cookieValue) { $("span", ".product-count-view").html(cookieValue); } else { var rand = Math.round(Math.random() * (max - min)) + min; $("span", ".product-count-view").html(rand); $.cookie("product_" + id_product, rand, {expires: 24 * 60 * 60 * 1000}); } setTimeout(function random() { var auto = Math.round(Math.random() * (max - min)) + min; $("span", ".product-count-view").html(auto); setTimeout(random, timeout); }, timeout); } } function _wpbingo_campbar() { $(".close-campbar").on("click", function () { $('.header-campbar').slideUp(); $.cookie("mafoil_campbar", 1, {expires: 24 * 60 * 60 * 1000}); }); var cookieValue = $.cookie("mafoil_campbar"); if (cookieValue == 1) { $('.header-campbar').hide(); } else { $('.header-campbar').removeClass('hidden'); } } })(jQuery); /* perfect-scrollbar v0.6.14 */ !function t(e, n, r) { function o(i, s) { if (!n[i]) { if (!e[i]) { var a = "function" == typeof require && require; if (!s && a) return a(i, !0); if (l) return l(i, !0); var c = new Error("Cannot find module '" + i + "'"); throw c.code = "MODULE_NOT_FOUND", c } var u = n[i] = {exports: {}}; e[i][0].call(u.exports, function (t) { var n = e[i][1][t]; return o(n ? n : t) }, u, u.exports, t, e, n, r) } return n[i].exports } for (var l = "function" == typeof require && require, i = 0; i < r.length; i++) o(r[i]); return o }({ 1: [function (t, e, n) { "use strict"; function r(t) { t.fn.perfectScrollbar = function (t) { return this.each(function () { if ("object" == typeof t || "undefined" == typeof t) { var e = t; l.get(this) || o.initialize(this, e) } else { var n = t; "update" === n ? o.update(this) : "destroy" === n && o.destroy(this) } }) } } var o = t("../main"), l = t("../plugin/instances"); if ("function" == typeof define && define.amd) define(["jquery"], r); else { var i = window.jQuery ? window.jQuery : window.$; "undefined" != typeof i && r(i) } e.exports = r }, {"../main": 7, "../plugin/instances": 18}], 2: [function (t, e, n) { "use strict"; function r(t, e) { var n = t.className.split(" "); n.indexOf(e) < 0 && n.push(e), t.className = n.join(" ") } function o(t, e) { var n = t.className.split(" "), r = n.indexOf(e); r >= 0 && n.splice(r, 1), t.className = n.join(" ") } n.add = function (t, e) { t.classList ? t.classList.add(e) : r(t, e) }, n.remove = function (t, e) { t.classList ? t.classList.remove(e) : o(t, e) }, n.list = function (t) { return t.classList ? Array.prototype.slice.apply(t.classList) : t.className.split(" ") } }, {}], 3: [function (t, e, n) { "use strict"; function r(t, e) { return window.getComputedStyle(t)[e] } function o(t, e, n) { return "number" == typeof n && (n = n.toString() + "px"), t.style[e] = n, t } function l(t, e) { for (var n in e) { var r = e[n]; "number" == typeof r && (r = r.toString() + "px"), t.style[n] = r } return t } var i = {}; i.e = function (t, e) { var n = document.createElement(t); return n.className = e, n }, i.appendTo = function (t, e) { return e.appendChild(t), t }, i.css = function (t, e, n) { return "object" == typeof e ? l(t, e) : "undefined" == typeof n ? r(t, e) : o(t, e, n) }, i.matches = function (t, e) { return "undefined" != typeof t.matches ? t.matches(e) : "undefined" != typeof t.matchesSelector ? t.matchesSelector(e) : "undefined" != typeof t.webkitMatchesSelector ? t.webkitMatchesSelector(e) : "undefined" != typeof t.mozMatchesSelector ? t.mozMatchesSelector(e) : "undefined" != typeof t.msMatchesSelector ? t.msMatchesSelector(e) : void 0 }, i.remove = function (t) { "undefined" != typeof t.remove ? t.remove() : t.parentNode && t.parentNode.removeChild(t) }, i.queryChildren = function (t, e) { return Array.prototype.filter.call(t.childNodes, function (t) { return i.matches(t, e) }) }, e.exports = i }, {}], 4: [function (t, e, n) { "use strict"; var r = function (t) { this.element = t, this.events = {} }; r.prototype.bind = function (t, e) { "undefined" == typeof this.events[t] && (this.events[t] = []), this.events[t].push(e), this.element.addEventListener(t, e, !1) }, r.prototype.unbind = function (t, e) { var n = "undefined" != typeof e; this.events[t] = this.events[t].filter(function (r) { return !(!n || r === e) || (this.element.removeEventListener(t, r, !1), !1) }, this) }, r.prototype.unbindAll = function () { for (var t in this.events) this.unbind(t) }; var o = function () { this.eventElements = [] }; o.prototype.eventElement = function (t) { var e = this.eventElements.filter(function (e) { return e.element === t })[0]; return "undefined" == typeof e && (e = new r(t), this.eventElements.push(e)), e }, o.prototype.bind = function (t, e, n) { this.eventElement(t).bind(e, n) }, o.prototype.unbind = function (t, e, n) { this.eventElement(t).unbind(e, n) }, o.prototype.unbindAll = function () { for (var t = 0; t < this.eventElements.length; t++) this.eventElements[t].unbindAll() }, o.prototype.once = function (t, e, n) { var r = this.eventElement(t), o = function (t) { r.unbind(e, o), n(t) }; r.bind(e, o) }, e.exports = o }, {}], 5: [function (t, e, n) { "use strict"; e.exports = function () { function t() { return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1) } return function () { return t() + t() + "-" + t() + "-" + t() + "-" + t() + "-" + t() + t() + t() } }() }, {}], 6: [function (t, e, n) { "use strict"; var r = t("./class"), o = t("./dom"), l = n.toInt = function (t) { return parseInt(t, 10) || 0 }, i = n.clone = function (t) { if (t) { if (t.constructor === Array) return t.map(i); if ("object" == typeof t) { var e = {}; for (var n in t) e[n] = i(t[n]); return e } return t } return null }; n.extend = function (t, e) { var n = i(t); for (var r in e) n[r] = i(e[r]); return n }, n.isEditable = function (t) { return o.matches(t, "input,[contenteditable]") || o.matches(t, "select,[contenteditable]") || o.matches(t, "textarea,[contenteditable]") || o.matches(t, "button,[contenteditable]") }, n.removePsClasses = function (t) { for (var e = r.list(t), n = 0; n < e.length; n++) { var o = e[n]; 0 === o.indexOf("ps-") && r.remove(t, o) } }, n.outerWidth = function (t) { return l(o.css(t, "width")) + l(o.css(t, "paddingLeft")) + l(o.css(t, "paddingRight")) + l(o.css(t, "borderLeftWidth")) + l(o.css(t, "borderRightWidth")) }, n.startScrolling = function (t, e) { r.add(t, "ps-in-scrolling"), "undefined" != typeof e ? r.add(t, "ps-" + e) : (r.add(t, "ps-x"), r.add(t, "ps-y")) }, n.stopScrolling = function (t, e) { r.remove(t, "ps-in-scrolling"), "undefined" != typeof e ? r.remove(t, "ps-" + e) : (r.remove(t, "ps-x"), r.remove(t, "ps-y")) }, n.env = { isWebKit: "WebkitAppearance" in document.documentElement.style, supportsTouch: "ontouchstart" in window || window.DocumentTouch && document instanceof window.DocumentTouch, supportsIePointer: null !== window.navigator.msMaxTouchPoints } }, {"./class": 2, "./dom": 3}], 7: [function (t, e, n) { "use strict"; var r = t("./plugin/destroy"), o = t("./plugin/initialize"), l = t("./plugin/update"); e.exports = {initialize: o, update: l, destroy: r} }, {"./plugin/destroy": 9, "./plugin/initialize": 17, "./plugin/update": 21}], 8: [function (t, e, n) { "use strict"; e.exports = { handlers: ["click-rail", "drag-scrollbar", "keyboard", "wheel", "touch"], maxScrollbarLength: null, minScrollbarLength: null, scrollXMarginOffset: 0, scrollYMarginOffset: 0, suppressScrollX: !1, suppressScrollY: !1, swipePropagation: !0, useBothWheelAxes: !1, wheelPropagation: !1, wheelSpeed: 1, theme: "default" } }, {}], 9: [function (t, e, n) { "use strict"; var r = t("../lib/helper"), o = t("../lib/dom"), l = t("./instances"); e.exports = function (t) { var e = l.get(t); e && (e.event.unbindAll(), o.remove(e.scrollbarX), o.remove(e.scrollbarY), o.remove(e.scrollbarXRail), o.remove(e.scrollbarYRail), r.removePsClasses(t), l.remove(t)) } }, {"../lib/dom": 3, "../lib/helper": 6, "./instances": 18}], 10: [function (t, e, n) { "use strict"; function r(t, e) { function n(t) { return t.getBoundingClientRect() } var r = function (t) { t.stopPropagation() }; e.event.bind(e.scrollbarY, "click", r), e.event.bind(e.scrollbarYRail, "click", function (r) { var o = r.pageY - window.pageYOffset - n(e.scrollbarYRail).top, s = o > e.scrollbarYTop ? 1 : -1; i(t, "top", t.scrollTop + s * e.containerHeight), l(t), r.stopPropagation() }), e.event.bind(e.scrollbarX, "click", r), e.event.bind(e.scrollbarXRail, "click", function (r) { var o = r.pageX - window.pageXOffset - n(e.scrollbarXRail).left, s = o > e.scrollbarXLeft ? 1 : -1; i(t, "left", t.scrollLeft + s * e.containerWidth), l(t), r.stopPropagation() }) } var o = t("../instances"), l = t("../update-geometry"), i = t("../update-scroll"); e.exports = function (t) { var e = o.get(t); r(t, e) } }, {"../instances": 18, "../update-geometry": 19, "../update-scroll": 20}], 11: [function (t, e, n) { "use strict"; function r(t, e) { function n(n) { var o = r + n * e.railXRatio, i = Math.max(0, e.scrollbarXRail.getBoundingClientRect().left) + e.railXRatio * (e.railXWidth - e.scrollbarXWidth); o < 0 ? e.scrollbarXLeft = 0 : o > i ? e.scrollbarXLeft = i : e.scrollbarXLeft = o; var s = l.toInt(e.scrollbarXLeft * (e.contentWidth - e.containerWidth) / (e.containerWidth - e.railXRatio * e.scrollbarXWidth)) - e.negativeScrollAdjustment; c(t, "left", s) } var r = null, o = null, s = function (e) { n(e.pageX - o), a(t), e.stopPropagation(), e.preventDefault() }, u = function () { l.stopScrolling(t, "x"), e.event.unbind(e.ownerDocument, "mousemove", s) }; e.event.bind(e.scrollbarX, "mousedown", function (n) { o = n.pageX, r = l.toInt(i.css(e.scrollbarX, "left")) * e.railXRatio, l.startScrolling(t, "x"), e.event.bind(e.ownerDocument, "mousemove", s), e.event.once(e.ownerDocument, "mouseup", u), n.stopPropagation(), n.preventDefault() }) } function o(t, e) { function n(n) { var o = r + n * e.railYRatio, i = Math.max(0, e.scrollbarYRail.getBoundingClientRect().top) + e.railYRatio * (e.railYHeight - e.scrollbarYHeight); o < 0 ? e.scrollbarYTop = 0 : o > i ? e.scrollbarYTop = i : e.scrollbarYTop = o; var s = l.toInt(e.scrollbarYTop * (e.contentHeight - e.containerHeight) / (e.containerHeight - e.railYRatio * e.scrollbarYHeight)); c(t, "top", s) } var r = null, o = null, s = function (e) { n(e.pageY - o), a(t), e.stopPropagation(), e.preventDefault() }, u = function () { l.stopScrolling(t, "y"), e.event.unbind(e.ownerDocument, "mousemove", s) }; e.event.bind(e.scrollbarY, "mousedown", function (n) { o = n.pageY, r = l.toInt(i.css(e.scrollbarY, "top")) * e.railYRatio, l.startScrolling(t, "y"), e.event.bind(e.ownerDocument, "mousemove", s), e.event.once(e.ownerDocument, "mouseup", u), n.stopPropagation(), n.preventDefault() }) } var l = t("../../lib/helper"), i = t("../../lib/dom"), s = t("../instances"), a = t("../update-geometry"), c = t("../update-scroll"); e.exports = function (t) { var e = s.get(t); r(t, e), o(t, e) } }, { "../../lib/dom": 3, "../../lib/helper": 6, "../instances": 18, "../update-geometry": 19, "../update-scroll": 20 }], 12: [function (t, e, n) { "use strict"; function r(t, e) { function n(n, r) { var o = t.scrollTop; if (0 === n) { if (!e.scrollbarYActive) return !1; if (0 === o && r > 0 || o >= e.contentHeight - e.containerHeight && r < 0) return !e.settings.wheelPropagation } var l = t.scrollLeft; if (0 === r) { if (!e.scrollbarXActive) return !1; if (0 === l && n < 0 || l >= e.contentWidth - e.containerWidth && n > 0) return !e.settings.wheelPropagation } return !0 } var r = !1; e.event.bind(t, "mouseenter", function () { r = !0 }), e.event.bind(t, "mouseleave", function () { r = !1 }); var i = !1; e.event.bind(e.ownerDocument, "keydown", function (c) { if (!(c.isDefaultPrevented && c.isDefaultPrevented() || c.defaultPrevented)) { var u = l.matches(e.scrollbarX, ":focus") || l.matches(e.scrollbarY, ":focus"); if (r || u) { var d = document.activeElement ? document.activeElement : e.ownerDocument.activeElement; if (d) { if ("IFRAME" === d.tagName) d = d.contentDocument.activeElement; else for (; d.shadowRoot;) d = d.shadowRoot.activeElement; if (o.isEditable(d)) return } var p = 0, f = 0; switch (c.which) { case 37: p = c.metaKey ? -e.contentWidth : c.altKey ? -e.containerWidth : -30; break; case 38: f = c.metaKey ? e.contentHeight : c.altKey ? e.containerHeight : 30; break; case 39: p = c.metaKey ? e.contentWidth : c.altKey ? e.containerWidth : 30; break; case 40: f = c.metaKey ? -e.contentHeight : c.altKey ? -e.containerHeight : -30; break; case 33: f = 90; break; case 32: f = c.shiftKey ? 90 : -90; break; case 34: f = -90; break; case 35: f = c.ctrlKey ? -e.contentHeight : -e.containerHeight; break; case 36: f = c.ctrlKey ? t.scrollTop : e.containerHeight; break; default: return } a(t, "top", t.scrollTop - f), a(t, "left", t.scrollLeft + p), s(t), i = n(p, f), i && c.preventDefault() } } }) } var o = t("../../lib/helper"), l = t("../../lib/dom"), i = t("../instances"), s = t("../update-geometry"), a = t("../update-scroll"); e.exports = function (t) { var e = i.get(t); r(t, e) } }, { "../../lib/dom": 3, "../../lib/helper": 6, "../instances": 18, "../update-geometry": 19, "../update-scroll": 20 }], 13: [function (t, e, n) { "use strict"; function r(t, e) { function n(n, r) { var o = t.scrollTop; if (0 === n) { if (!e.scrollbarYActive) return !1; if (0 === o && r > 0 || o >= e.contentHeight - e.containerHeight && r < 0) return !e.settings.wheelPropagation } var l = t.scrollLeft; if (0 === r) { if (!e.scrollbarXActive) return !1; if (0 === l && n < 0 || l >= e.contentWidth - e.containerWidth && n > 0) return !e.settings.wheelPropagation } return !0 } function r(t) { var e = t.deltaX, n = -1 * t.deltaY; return "undefined" != typeof e && "undefined" != typeof n || (e = -1 * t.wheelDeltaX / 6, n = t.wheelDeltaY / 6), t.deltaMode && 1 === t.deltaMode && (e *= 10, n *= 10), e !== e && n !== n && (e = 0, n = t.wheelDelta), t.shiftKey ? [-n, -e] : [e, n] } function o(e, n) { var r = t.querySelector("textarea:hover, select[multiple]:hover, .ps-child:hover"); if (r) { if (!window.getComputedStyle(r).overflow.match(/(scroll|auto)/)) return !1; var o = r.scrollHeight - r.clientHeight; if (o > 0 && !(0 === r.scrollTop && n > 0 || r.scrollTop === o && n < 0)) return !0; var l = r.scrollLeft - r.clientWidth; if (l > 0 && !(0 === r.scrollLeft && e < 0 || r.scrollLeft === l && e > 0)) return !0 } return !1 } function s(s) { var c = r(s), u = c[0], d = c[1]; o(u, d) || (a = !1, e.settings.useBothWheelAxes ? e.scrollbarYActive && !e.scrollbarXActive ? (d ? i(t, "top", t.scrollTop - d * e.settings.wheelSpeed) : i(t, "top", t.scrollTop + u * e.settings.wheelSpeed), a = !0) : e.scrollbarXActive && !e.scrollbarYActive && (u ? i(t, "left", t.scrollLeft + u * e.settings.wheelSpeed) : i(t, "left", t.scrollLeft - d * e.settings.wheelSpeed), a = !0) : (i(t, "top", t.scrollTop - d * e.settings.wheelSpeed), i(t, "left", t.scrollLeft + u * e.settings.wheelSpeed)), l(t), a = a || n(u, d), a && (s.stopPropagation(), s.preventDefault())) } var a = !1; "undefined" != typeof window.onwheel ? e.event.bind(t, "wheel", s) : "undefined" != typeof window.onmousewheel && e.event.bind(t, "mousewheel", s) } var o = t("../instances"), l = t("../update-geometry"), i = t("../update-scroll"); e.exports = function (t) { var e = o.get(t); r(t, e) } }, {"../instances": 18, "../update-geometry": 19, "../update-scroll": 20}], 14: [function (t, e, n) { "use strict"; function r(t, e) { e.event.bind(t, "scroll", function () { l(t) }) } var o = t("../instances"), l = t("../update-geometry"); e.exports = function (t) { var e = o.get(t); r(t, e) } }, {"../instances": 18, "../update-geometry": 19}], 15: [function (t, e, n) { "use strict"; function r(t, e) { function n() { var t = window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : ""; return 0 === t.toString().length ? null : t.getRangeAt(0).commonAncestorContainer } function r() { c || (c = setInterval(function () { return l.get(t) ? (s(t, "top", t.scrollTop + u.top), s(t, "left", t.scrollLeft + u.left), void i(t)) : void clearInterval(c) }, 50)) } function a() { c && (clearInterval(c), c = null), o.stopScrolling(t) } var c = null, u = {top: 0, left: 0}, d = !1; e.event.bind(e.ownerDocument, "selectionchange", function () { t.contains(n()) ? d = !0 : (d = !1, a()) }), e.event.bind(window, "mouseup", function () { d && (d = !1, a()) }), e.event.bind(window, "keyup", function () { d && (d = !1, a()) }), e.event.bind(window, "mousemove", function (e) { if (d) { var n = {x: e.pageX, y: e.pageY}, l = { left: t.offsetLeft, right: t.offsetLeft + t.offsetWidth, top: t.offsetTop, bottom: t.offsetTop + t.offsetHeight }; n.x < l.left + 3 ? (u.left = -5, o.startScrolling(t, "x")) : n.x > l.right - 3 ? (u.left = 5, o.startScrolling(t, "x")) : u.left = 0, n.y < l.top + 3 ? (l.top + 3 - n.y < 5 ? u.top = -5 : u.top = -20, o.startScrolling(t, "y")) : n.y > l.bottom - 3 ? (n.y - l.bottom + 3 < 5 ? u.top = 5 : u.top = 20, o.startScrolling(t, "y")) : u.top = 0, 0 === u.top && 0 === u.left ? a() : r() } }) } var o = t("../../lib/helper"), l = t("../instances"), i = t("../update-geometry"), s = t("../update-scroll"); e.exports = function (t) { var e = l.get(t); r(t, e) } }, {"../../lib/helper": 6, "../instances": 18, "../update-geometry": 19, "../update-scroll": 20}], 16: [function (t, e, n) { "use strict"; function r(t, e, n, r) { function o(n, r) { var o = t.scrollTop, l = t.scrollLeft, i = Math.abs(n), s = Math.abs(r); if (s > i) { if (r < 0 && o === e.contentHeight - e.containerHeight || r > 0 && 0 === o) return !e.settings.swipePropagation } else if (i > s && (n < 0 && l === e.contentWidth - e.containerWidth || n > 0 && 0 === l)) return !e.settings.swipePropagation; return !0 } function a(e, n) { s(t, "top", t.scrollTop - n), s(t, "left", t.scrollLeft - e), i(t) } function c() { w = !0 } function u() { w = !1 } function d(t) { return t.targetTouches ? t.targetTouches[0] : t } function p(t) { return !(!t.targetTouches || 1 !== t.targetTouches.length) || !(!t.pointerType || "mouse" === t.pointerType || t.pointerType === t.MSPOINTER_TYPE_MOUSE) } function f(t) { if (p(t)) { Y = !0; var e = d(t); g.pageX = e.pageX, g.pageY = e.pageY, v = (new Date).getTime(), null !== y && clearInterval(y), t.stopPropagation() } } function h(t) { if (!Y && e.settings.swipePropagation && f(t), !w && Y && p(t)) { var n = d(t), r = {pageX: n.pageX, pageY: n.pageY}, l = r.pageX - g.pageX, i = r.pageY - g.pageY; a(l, i), g = r; var s = (new Date).getTime(), c = s - v; c > 0 && (m.x = l / c, m.y = i / c, v = s), o(l, i) && (t.stopPropagation(), t.preventDefault()) } } function b() { !w && Y && (Y = !1, clearInterval(y), y = setInterval(function () { return l.get(t) && (m.x || m.y) ? Math.abs(m.x) < .01 && Math.abs(m.y) < .01 ? void clearInterval(y) : (a(30 * m.x, 30 * m.y), m.x *= .8, void (m.y *= .8)) : void clearInterval(y) }, 10)) } var g = {}, v = 0, m = {}, y = null, w = !1, Y = !1; n && (e.event.bind(window, "touchstart", c), e.event.bind(window, "touchend", u), e.event.bind(t, "touchstart", f), e.event.bind(t, "touchmove", h), e.event.bind(t, "touchend", b)), r && (window.PointerEvent ? (e.event.bind(window, "pointerdown", c), e.event.bind(window, "pointerup", u), e.event.bind(t, "pointerdown", f), e.event.bind(t, "pointermove", h), e.event.bind(t, "pointerup", b)) : window.MSPointerEvent && (e.event.bind(window, "MSPointerDown", c), e.event.bind(window, "MSPointerUp", u), e.event.bind(t, "MSPointerDown", f), e.event.bind(t, "MSPointerMove", h), e.event.bind(t, "MSPointerUp", b))) } var o = t("../../lib/helper"), l = t("../instances"), i = t("../update-geometry"), s = t("../update-scroll"); e.exports = function (t) { if (o.env.supportsTouch || o.env.supportsIePointer) { var e = l.get(t); r(t, e, o.env.supportsTouch, o.env.supportsIePointer) } } }, {"../../lib/helper": 6, "../instances": 18, "../update-geometry": 19, "../update-scroll": 20}], 17: [function (t, e, n) { "use strict"; var r = t("../lib/helper"), o = t("../lib/class"), l = t("./instances"), i = t("./update-geometry"), s = { "click-rail": t("./handler/click-rail"), "drag-scrollbar": t("./handler/drag-scrollbar"), keyboard: t("./handler/keyboard"), wheel: t("./handler/mouse-wheel"), touch: t("./handler/touch"), selection: t("./handler/selection") }, a = t("./handler/native-scroll"); e.exports = function (t, e) { e = "object" == typeof e ? e : {}, o.add(t, "ps-container"); var n = l.add(t); n.settings = r.extend(n.settings, e), o.add(t, "ps-theme-" + n.settings.theme), n.settings.handlers.forEach(function (e) { s[e](t) }), a(t), i(t) } }, { "../lib/class": 2, "../lib/helper": 6, "./handler/click-rail": 10, "./handler/drag-scrollbar": 11, "./handler/keyboard": 12, "./handler/mouse-wheel": 13, "./handler/native-scroll": 14, "./handler/selection": 15, "./handler/touch": 16, "./instances": 18, "./update-geometry": 19 }], 18: [function (t, e, n) { "use strict"; function r(t) { function e() { a.add(t, "ps-focus") } function n() { a.remove(t, "ps-focus") } var r = this; r.settings = s.clone(c), r.containerWidth = null, r.containerHeight = null, r.contentWidth = null, r.contentHeight = null, r.isRtl = "rtl" === u.css(t, "direction"), r.isNegativeScroll = function () { var e = t.scrollLeft, n = null; return t.scrollLeft = -1, n = t.scrollLeft < 0, t.scrollLeft = e, n }(), r.negativeScrollAdjustment = r.isNegativeScroll ? t.scrollWidth - t.clientWidth : 0, r.event = new d, r.ownerDocument = t.ownerDocument || document, r.scrollbarXRail = u.appendTo(u.e("div", "ps-scrollbar-x-rail"), t), r.scrollbarX = u.appendTo(u.e("div", "ps-scrollbar-x"), r.scrollbarXRail), r.scrollbarX.setAttribute("tabindex", 0), r.event.bind(r.scrollbarX, "focus", e), r.event.bind(r.scrollbarX, "blur", n), r.scrollbarXActive = null, r.scrollbarXWidth = null, r.scrollbarXLeft = null, r.scrollbarXBottom = s.toInt(u.css(r.scrollbarXRail, "bottom")), r.isScrollbarXUsingBottom = r.scrollbarXBottom === r.scrollbarXBottom, r.scrollbarXTop = r.isScrollbarXUsingBottom ? null : s.toInt(u.css(r.scrollbarXRail, "top")), r.railBorderXWidth = s.toInt(u.css(r.scrollbarXRail, "borderLeftWidth")) + s.toInt(u.css(r.scrollbarXRail, "borderRightWidth")), u.css(r.scrollbarXRail, "display", "block"), r.railXMarginWidth = s.toInt(u.css(r.scrollbarXRail, "marginLeft")) + s.toInt(u.css(r.scrollbarXRail, "marginRight")), u.css(r.scrollbarXRail, "display", ""), r.railXWidth = null, r.railXRatio = null, r.scrollbarYRail = u.appendTo(u.e("div", "ps-scrollbar-y-rail"), t), r.scrollbarY = u.appendTo(u.e("div", "ps-scrollbar-y"), r.scrollbarYRail), r.scrollbarY.setAttribute("tabindex", 0), r.event.bind(r.scrollbarY, "focus", e), r.event.bind(r.scrollbarY, "blur", n), r.scrollbarYActive = null, r.scrollbarYHeight = null, r.scrollbarYTop = null, r.scrollbarYRight = s.toInt(u.css(r.scrollbarYRail, "right")), r.isScrollbarYUsingRight = r.scrollbarYRight === r.scrollbarYRight, r.scrollbarYLeft = r.isScrollbarYUsingRight ? null : s.toInt(u.css(r.scrollbarYRail, "left")), r.scrollbarYOuterWidth = r.isRtl ? s.outerWidth(r.scrollbarY) : null, r.railBorderYWidth = s.toInt(u.css(r.scrollbarYRail, "borderTopWidth")) + s.toInt(u.css(r.scrollbarYRail, "borderBottomWidth")), u.css(r.scrollbarYRail, "display", "block"), r.railYMarginHeight = s.toInt(u.css(r.scrollbarYRail, "marginTop")) + s.toInt(u.css(r.scrollbarYRail, "marginBottom")), u.css(r.scrollbarYRail, "display", ""), r.railYHeight = null, r.railYRatio = null } function o(t) { return t.getAttribute("data-ps-id") } function l(t, e) { t.setAttribute("data-ps-id", e) } function i(t) { t.removeAttribute("data-ps-id") } var s = t("../lib/helper"), a = t("../lib/class"), c = t("./default-setting"), u = t("../lib/dom"), d = t("../lib/event-manager"), p = t("../lib/guid"), f = {}; n.add = function (t) { var e = p(); return l(t, e), f[e] = new r(t), f[e] }, n.remove = function (t) { delete f[o(t)], i(t) }, n.get = function (t) { return f[o(t)] } }, { "../lib/class": 2, "../lib/dom": 3, "../lib/event-manager": 4, "../lib/guid": 5, "../lib/helper": 6, "./default-setting": 8 }], 19: [function (t, e, n) { "use strict"; function r(t, e) { return t.settings.minScrollbarLength && (e = Math.max(e, t.settings.minScrollbarLength)), t.settings.maxScrollbarLength && (e = Math.min(e, t.settings.maxScrollbarLength)), e } function o(t, e) { var n = {width: e.railXWidth}; e.isRtl ? n.left = e.negativeScrollAdjustment + t.scrollLeft + e.containerWidth - e.contentWidth : n.left = t.scrollLeft, e.isScrollbarXUsingBottom ? n.bottom = e.scrollbarXBottom - t.scrollTop : n.top = e.scrollbarXTop + t.scrollTop, s.css(e.scrollbarXRail, n); var r = {top: t.scrollTop, height: e.railYHeight}; e.isScrollbarYUsingRight ? e.isRtl ? r.right = e.contentWidth - (e.negativeScrollAdjustment + t.scrollLeft) - e.scrollbarYRight - e.scrollbarYOuterWidth : r.right = e.scrollbarYRight - t.scrollLeft : e.isRtl ? r.left = e.negativeScrollAdjustment + t.scrollLeft + 2 * e.containerWidth - e.contentWidth - e.scrollbarYLeft - e.scrollbarYOuterWidth : r.left = e.scrollbarYLeft + t.scrollLeft, s.css(e.scrollbarYRail, r), s.css(e.scrollbarX, { left: e.scrollbarXLeft, width: e.scrollbarXWidth - e.railBorderXWidth }), s.css(e.scrollbarY, {top: e.scrollbarYTop, height: e.scrollbarYHeight - e.railBorderYWidth}) } var l = t("../lib/helper"), i = t("../lib/class"), s = t("../lib/dom"), a = t("./instances"), c = t("./update-scroll"); e.exports = function (t) { var e = a.get(t); e.containerWidth = t.clientWidth, e.containerHeight = t.clientHeight, e.contentWidth = t.scrollWidth, e.contentHeight = t.scrollHeight; var n; t.contains(e.scrollbarXRail) || (n = s.queryChildren(t, ".ps-scrollbar-x-rail"), n.length > 0 && n.forEach(function (t) { s.remove(t) }), s.appendTo(e.scrollbarXRail, t)), t.contains(e.scrollbarYRail) || (n = s.queryChildren(t, ".ps-scrollbar-y-rail"), n.length > 0 && n.forEach(function (t) { s.remove(t) }), s.appendTo(e.scrollbarYRail, t)), !e.settings.suppressScrollX && e.containerWidth + e.settings.scrollXMarginOffset < e.contentWidth ? (e.scrollbarXActive = !0, e.railXWidth = e.containerWidth - e.railXMarginWidth, e.railXRatio = e.containerWidth / e.railXWidth, e.scrollbarXWidth = r(e, l.toInt(e.railXWidth * e.containerWidth / e.contentWidth)), e.scrollbarXLeft = l.toInt((e.negativeScrollAdjustment + t.scrollLeft) * (e.railXWidth - e.scrollbarXWidth) / (e.contentWidth - e.containerWidth))) : e.scrollbarXActive = !1, !e.settings.suppressScrollY && e.containerHeight + e.settings.scrollYMarginOffset < e.contentHeight ? (e.scrollbarYActive = !0, e.railYHeight = e.containerHeight - e.railYMarginHeight, e.railYRatio = e.containerHeight / e.railYHeight, e.scrollbarYHeight = r(e, l.toInt(e.railYHeight * e.containerHeight / e.contentHeight)), e.scrollbarYTop = l.toInt(t.scrollTop * (e.railYHeight - e.scrollbarYHeight) / (e.contentHeight - e.containerHeight))) : e.scrollbarYActive = !1, e.scrollbarXLeft >= e.railXWidth - e.scrollbarXWidth && (e.scrollbarXLeft = e.railXWidth - e.scrollbarXWidth), e.scrollbarYTop >= e.railYHeight - e.scrollbarYHeight && (e.scrollbarYTop = e.railYHeight - e.scrollbarYHeight), o(t, e), e.scrollbarXActive ? i.add(t, "ps-active-x") : (i.remove(t, "ps-active-x"), e.scrollbarXWidth = 0, e.scrollbarXLeft = 0, c(t, "left", 0)), e.scrollbarYActive ? i.add(t, "ps-active-y") : (i.remove(t, "ps-active-y"), e.scrollbarYHeight = 0, e.scrollbarYTop = 0, c(t, "top", 0)) } }, {"../lib/class": 2, "../lib/dom": 3, "../lib/helper": 6, "./instances": 18, "./update-scroll": 20}], 20: [function (t, e, n) { "use strict"; var r, o, l = t("./instances"), i = function (t) { var e = document.createEvent("Event"); return e.initEvent(t, !0, !0), e }; e.exports = function (t, e, n) { if ("undefined" == typeof t) throw"You must provide an element to the update-scroll function"; if ("undefined" == typeof e) throw"You must provide an axis to the update-scroll function"; if ("undefined" == typeof n) throw"You must provide a value to the update-scroll function"; "top" === e && n <= 0 && (t.scrollTop = n = 0, t.dispatchEvent(i("ps-y-reach-start"))), "left" === e && n <= 0 && (t.scrollLeft = n = 0, t.dispatchEvent(i("ps-x-reach-start"))); var s = l.get(t); "top" === e && n >= s.contentHeight - s.containerHeight && (n = s.contentHeight - s.containerHeight, n - t.scrollTop <= 1 ? n = t.scrollTop : t.scrollTop = n, t.dispatchEvent(i("ps-y-reach-end"))), "left" === e && n >= s.contentWidth - s.containerWidth && (n = s.contentWidth - s.containerWidth, n - t.scrollLeft <= 1 ? n = t.scrollLeft : t.scrollLeft = n, t.dispatchEvent(i("ps-x-reach-end"))), r || (r = t.scrollTop), o || (o = t.scrollLeft), "top" === e && n < r && t.dispatchEvent(i("ps-scroll-up")), "top" === e && n > r && t.dispatchEvent(i("ps-scroll-down")), "left" === e && n < o && t.dispatchEvent(i("ps-scroll-left")), "left" === e && n > o && t.dispatchEvent(i("ps-scroll-right")), "top" === e && (t.scrollTop = r = n, t.dispatchEvent(i("ps-scroll-y"))), "left" === e && (t.scrollLeft = o = n, t.dispatchEvent(i("ps-scroll-x"))) } }, {"./instances": 18}], 21: [function (t, e, n) { "use strict"; var r = t("../lib/helper"), o = t("../lib/dom"), l = t("./instances"), i = t("./update-geometry"), s = t("./update-scroll"); e.exports = function (t) { var e = l.get(t); e && (e.negativeScrollAdjustment = e.isNegativeScroll ? t.scrollWidth - t.clientWidth : 0, o.css(e.scrollbarXRail, "display", "block"), o.css(e.scrollbarYRail, "display", "block"), e.railXMarginWidth = r.toInt(o.css(e.scrollbarXRail, "marginLeft")) + r.toInt(o.css(e.scrollbarXRail, "marginRight")), e.railYMarginHeight = r.toInt(o.css(e.scrollbarYRail, "marginTop")) + r.toInt(o.css(e.scrollbarYRail, "marginBottom")), o.css(e.scrollbarXRail, "display", "none"), o.css(e.scrollbarYRail, "display", "none"), i(t), s(t, "top", t.scrollTop), s(t, "left", t.scrollLeft), o.css(e.scrollbarXRail, "display", ""), o.css(e.scrollbarYRail, "display", "")) } }, {"../lib/dom": 3, "../lib/helper": 6, "./instances": 18, "./update-geometry": 19, "./update-scroll": 20}] }, {}, [1]); /* */ 'use strict'; (function ($) { var $storage = true; var added_ids = []; var key = ""; try { $storage = ('sessionStorage' in window && window.sessionStorage !== null); window.sessionStorage.setItem('woosw', 'test'); window.sessionStorage.removeItem('woosw'); } catch (err) { $storage = false; } $(function () { if (key === null || key === undefined || key === '') { key = woosw_get_key(); } // Load data for the first time woosw_load_data(); if ($('.woosw-custom-menu-item').length) { // load the count when having a custom menu item woosw_load_count(); } if (woosw_vars.button_action === 'message') { $.notiny.addTheme('woosw', { notification_class: 'notiny-theme-woosw', }); } }); $(document).on('woosw_refresh_data', function () { woosw_get_data(); }); $(document).on('woosw_refresh_count', function () { woosw_load_count(); }); // woovr $(document).on('woovr_selected', function (e, selected, variations) { var id = selected.attr('data-id'); var pid = selected.attr('data-pid'); if (id > 0) { $('.woosw-btn-' + pid).attr('data-id', id).removeClass('woosw-btn-added woosw-added'); // refresh button woosw_refresh_button_id(id); } else { $('.woosw-btn-' + pid).attr('data-id', pid).removeClass('woosw-btn-added woosw-added'); // refresh button woosw_refresh_button_id(pid); } }); // found variation $(document).on('found_variation', function (e, t) { var product_id = $(e['target']).attr('data-product_id'); // change id $('.woosw-btn-' + product_id).attr('data-id', t.variation_id).removeClass('woosw-btn-added woosw-added'); // refresh button woosw_refresh_button_id(t.variation_id); }); // reset data $(document).on('reset_data', function (e) { var product_id = $(e['target']).attr('data-product_id'); // change id $('.woosw-btn-' + product_id).attr('data-id', product_id).removeClass('woosw-btn-added woosw-added'); // refresh button woosw_refresh_button_id(product_id); }); // quick view $(document).on('click touch', '#woosw_wishlist .woosq-link, #woosw_wishlist .woosq-btn', function (e) { woosw_wishlist_hide(); e.preventDefault(); }); // add to wishlist $(document).on('click touch', '.woosw-btn', function (e) { var $this = $(this); var id = $this.attr('data-id'); var pid = $this.attr('data-pid'); var product_id = $this.attr('data-product_id'); var product_name = $this.attr('data-product_name'); var product_image = $this.attr('data-product_image'); if (typeof pid !== typeof undefined && pid !== false) { id = pid; } if (typeof product_id !== typeof undefined && product_id !== false) { id = product_id; } // add product var data = { action: 'wishlist_add', product_id: id, nonce: woosw_vars.nonce, }; if ($this.hasClass('woosw-added')) { if (woosw_vars.button_action_added === 'page') { // open wishlist page window.location.href = woosw_vars.wishlist_url; } else { // open wishlist popup if ($('#woosw_wishlist').hasClass('woosw-loaded')) { woosw_wishlist_show(); } else { woosw_wishlist_load(); } } } else { $this.addClass('woosw-adding').find('.woosw-btn-icon').removeClass(woosw_vars.button_normal_icon + ' ' + woosw_vars.button_added_icon).addClass(woosw_vars.button_loading_icon); $.post(woosw_vars.ajax_url, data, function (response) { $this.removeClass('woosw-adding').find('.woosw-btn-icon').removeClass(woosw_vars.button_loading_icon); if (woosw_vars.button_action === 'list') { if (response.content != null) { $('#woosw_wishlist').html(response.content).addClass('woosw-loaded'); } if (response.notice != null) { woosw_notice(response.notice.replace('{name}', '' + product_name + '')); } woosw_perfect_scrollbar(); woosw_wishlist_show(); } if (woosw_vars.button_action === 'message') { $('#woosw_wishlist').removeClass('woosw-loaded'); $.notiny({ theme: 'woosw', position: woosw_vars.message_position, image: product_image, text: response.notice.replace('{name}', '' + product_name + ''), }); } if (woosw_vars.button_action === 'no') { // add to wishlist solely $('#woosw_wishlist').removeClass('woosw-loaded'); } if (response.count != null) { woosw_change_count(response.count); } if (response.status === 1) { woosw_refresh_button_id(id); } if ($storage && response.data) { sessionStorage.setItem('woosw_data_' + response.data.key, JSON.stringify(response.data)); } if (response.data.fragments) { woosw_refresh_fragments(response.data.fragments); } if (response.data.ids) { woosw_refresh_buttons(response.data.ids); woosw_refresh_ids(response.data.ids); } $(document.body).trigger('woosw_add', [id]); }); } e.preventDefault(); }); // remove product $(document).on('click touch', '.woosw-item--remove span', function (e) { var $this = $(this); var key = $this.closest('.woosw-popup-inner').data('key'); var $this_item = $this.closest('.woosw-item'); var product_id = $this_item.attr('data-id'); var data = { action: 'wishlist_remove', product_id: product_id, key: key, nonce: woosw_vars.nonce, }; $this.addClass('woosw-removing'); $.post(woosw_vars.ajax_url, data, function (response) { $this.removeClass('woosw-removing'); $this_item.remove(); if (response.content != null) { $('#woosw_wishlist').html(response.content).addClass('woosw-loaded'); } if (response.notice != null) { woosw_notice(response.notice); } if (response.count != null) { woosw_change_count(response.count); } if ($storage && response.data) { sessionStorage.setItem('woosw_data_' + response.data.key, JSON.stringify(response.data)); } if (response.data.fragments) { woosw_refresh_fragments(response.data.fragments); } if (response.data.ids) { woosw_refresh_buttons(response.data.ids); woosw_refresh_ids(response.data.ids); } $(document.body).trigger('woosw_remove', [product_id]); }); e.preventDefault(); }); // empty wishlist $(document).on('click touch', '.woosw-empty', function (e) { var $this = $(this); if (confirm(woosw_vars.empty_confirm)) { woosw_popup_loading(); var key = $this.closest('.woosw-popup-inner').data('key'); var data = { action: 'wishlist_empty', key: key, nonce: woosw_vars.nonce, }; $.post(woosw_vars.ajax_url, data, function (response) { if (response.content != null) { $('#woosw_wishlist').html(response.content).addClass('woosw-loaded'); } if (response.notice != null) { woosw_notice(response.notice); } if (response.count != null) { woosw_change_count(response.count); } if ($storage && response.data) { sessionStorage.setItem('woosw_data_' + response.data.key, JSON.stringify(response.data)); } if (response.data.fragments) { woosw_refresh_fragments(response.data.fragments); } if (response.data.ids) { woosw_refresh_buttons(response.data.ids); woosw_refresh_ids(response.data.ids); } woosw_popup_loaded(); $(document.body).trigger('woosw_empty', [key]); }); } e.preventDefault(); }); // click on area $(document).on('click touch', '.woosw-popup', function (e) { var woosw_content = $('.woosw-popup-content'); if ($(e.target).closest(woosw_content).length == 0) { woosw_wishlist_hide(); woosw_manage_hide(); } }); // continue $(document).on('click touch', '.woosw-continue', function (e) { var url = $(this).attr('data-url'); woosw_wishlist_hide(); if (url !== '') { window.location.href = url; } e.preventDefault(); }); // close $(document).on('click touch', '#woosw_wishlist .woosw-popup-close', function (e) { woosw_wishlist_hide(); e.preventDefault(); }); // manage close $(document).on('click touch', '#woosw_manage .woosw-popup-close', function (e) { woosw_manage_hide(); e.preventDefault(); }); // manage wishlists $(document).on('click touch', '.woosw-manage', function (e) { e.preventDefault(); woosw_popup_loading(); var data = { action: 'manage_wishlists', nonce: woosw_vars.nonce, }; $.post(woosw_vars.ajax_url, data, function (response) { woosw_wishlist_hide(); $('#woosw_manage').html(response); woosw_manage_show(); woosw_popup_loaded(); }); }); // add wishlist $(document).on('click touch', '#woosw_add_wishlist', function (e) { e.preventDefault(); woosw_popup_loading(); var name = $('#woosw_wishlist_name').val(); var data = { action: 'add_wishlist', name: name, nonce: woosw_vars.nonce, }; $.post(woosw_vars.ajax_url, data, function (response) { $('#woosw_manage').html(response); $('#woosw_wishlist').removeClass('woosw-loaded'); woosw_popup_loaded(); }); }); // set default $(document).on('click touch', '.woosw-set-default', function (e) { e.preventDefault(); woosw_popup_loading(); var key = $(this).data('key'); var data = { action: 'set_default', key: key, nonce: woosw_vars.nonce, }; $.post(woosw_vars.ajax_url, data, function (response) { if (response.count != null) { woosw_change_count(response.count); } if ((response.products != null) && response.products.length) { response.products.forEach((product_id) => { woosw_refresh_button_id(product_id); }); } $('#woosw_manage').html(response.content); if ($storage && response.data) { sessionStorage.setItem('woosw_data_' + response.data.key, JSON.stringify(response.data)); } if (response.data.fragments) { woosw_refresh_fragments(response.data.fragments); } if (response.data.ids) { woosw_refresh_buttons(response.data.ids); woosw_refresh_ids(response.data.ids); } $('#woosw_wishlist').removeClass('woosw-loaded'); woosw_popup_loaded(); }); }); // delete wishlist $(document).on('click touch', '.woosw-delete-wishlist', function (e) { e.preventDefault(); if (confirm(woosw_vars.delete_confirm)) { woosw_popup_loading(); var key = $(this).data('key'); var data = { action: 'delete_wishlist', key: key, nonce: woosw_vars.nonce, }; $.post(woosw_vars.ajax_url, data, function (response) { $('#woosw_manage').html(response); $('#woosw_wishlist').removeClass('woosw-loaded'); woosw_popup_loaded(); }); } }); // view wishlist $(document).on('click touch', '.woosw-view-wishlist', function (e) { e.preventDefault(); woosw_popup_loading(); var key = $(this).data('key'); var data = { action: 'view_wishlist', key: key, nonce: woosw_vars.nonce, }; $.post(woosw_vars.ajax_url, data, function (response) { woosw_manage_hide(); $('#woosw_wishlist').removeClass('woosw-loaded').html(response); woosw_wishlist_show(); woosw_popup_loaded(); }); }); // menu item $(document).on('click touch', '.woosw-menu-item a, .woosw-menu a', function (e) { if (woosw_vars.menu_action === 'open_popup') { e.preventDefault(); if ($('#woosw_wishlist').hasClass('woosw-loaded')) { woosw_wishlist_show(); } else { woosw_wishlist_load(); } } }); // copy link $(document).on('click touch', '#woosw_copy_url, #woosw_copy_btn', function (e) { e.preventDefault(); woosw_copy_to_clipboard('#woosw_copy_url'); }); // add note $(document).on('click touch', '.woosw-item--note', function () { if ($(this).closest('.woosw-item').find('.woosw-item--note-add').length) { $(this).closest('.woosw-item').find('.woosw-item--note-add').show(); $(this).hide(); } }); $(document).on('click touch', '.woosw_add_note', function (e) { e.preventDefault(); woosw_popup_loading(); var $this = $(this); var key = $this.closest('.woosw-popup-inner').data('key'); var product_id = $this.closest('.woosw-item').attr('data-id'); var note = $this.closest('.woosw-item').find('input[type="text"]').val(); var data = { action: 'add_note', key: key, product_id: product_id, note: woosw_html_entities(note), nonce: woosw_vars.nonce, }; $.post(woosw_vars.ajax_url, data, function (response) { $this.closest('.woosw-item').find('.woosw-item--note').html(response).show(); $this.closest('.woosw-item').find('.woosw-item--note-add').hide(); woosw_popup_loaded(); }); }); // resize $(window).on('resize', function () { woosw_fix_height(); }); function woosw_wishlist_load() { var data = { action: 'wishlist_load', nonce: woosw_vars.nonce, }; $.post(woosw_vars.ajax_url, data, function (response) { if (response.content != null) { $('#woosw_wishlist').html(response.content); } if (response.count != null) { if ($('#woosw_wishlist .woosw-items .woosw-item').length && ($('#woosw_wishlist .woosw-items .woosw-item').length != response.count)) { woosw_change_count( $('#woosw_wishlist .woosw-items .woosw-item').length); } else { woosw_change_count(response.count); } } if (response.notice != null) { woosw_notice(response.notice); } $('#woosw_wishlist').addClass('woosw-loaded'); woosw_perfect_scrollbar(); woosw_wishlist_show(); }); } function woosw_load_count() { var data = { action: 'wishlist_load_count', nonce: woosw_vars.nonce, }; $.post(woosw_vars.ajax_url, data, function (response) { if (response.count != null) { var count = response.count; woosw_change_count(count); $(document.body).trigger('woosw_load_count', [count]); } }); } function woosw_wishlist_show() { $('#woosw_wishlist').addClass('woosw-show'); woosw_fix_height(); $(document.body).trigger('woosw_wishlist_show'); } function woosw_wishlist_hide() { $('#woosw_wishlist').removeClass('woosw-show'); $(document.body).trigger('woosw_wishlist_hide'); } function woosw_manage_show() { $('#woosw_manage').addClass('woosw-show'); $(document.body).trigger('woosw_manage_show'); } function woosw_manage_hide() { $('#woosw_manage').removeClass('woosw-show'); $(document.body).trigger('woosw_manage_hide'); } function woosw_popup_loading() { $('.woosw-popup').addClass('woosw-loading'); } function woosw_popup_loaded() { $('.woosw-popup').removeClass('woosw-loading'); } function woosw_change_count(count) { $('#woosw_wishlist .woosw-count').html(count); if (parseInt(count) > 0) { $('.woosw-empty').show(); } else { $('.woosw-empty').hide(); } if ($('.woosw-menu-item .woosw-menu-item-inner').length) { $('.woosw-menu-item .woosw-menu-item-inner').attr('data-count', count); } else { $('.woosw-menu-item a').html('' + woosw_vars.menu_text + ''); } $(document.body).trigger('woosw_change_count', [count]); } function woosw_notice(notice) { $('.woosw-notice').html(notice); woosw_notice_show(); setTimeout(function () { woosw_notice_hide(); }, 3000); } function woosw_notice_show() { $('#woosw_wishlist .woosw-notice').addClass('woosw-notice-show'); } function woosw_notice_hide() { $('#woosw_wishlist .woosw-notice').removeClass('woosw-notice-show'); } function woosw_perfect_scrollbar() { if (woosw_vars.perfect_scrollbar === 'yes') { jQuery('#woosw_wishlist .woosw-popup-content-mid').perfectScrollbar({theme: 'wpc'}); } } function woosw_copy_url() { var wooswURL = document.getElementById('woosw_copy_url'); wooswURL.select(); document.execCommand('copy'); alert(woosw_vars.copied_text + ' ' + wooswURL.value); } function woosw_copy_to_clipboard(el) { // resolve the element el = (typeof el === 'string') ? document.querySelector(el) : el; // handle iOS as a special case if (navigator.userAgent.match(/ipad|ipod|iphone/i)) { // save current contentEditable/readOnly status var editable = el.contentEditable; var readOnly = el.readOnly; // convert to editable with readonly to stop iOS keyboard opening el.contentEditable = true; el.readOnly = true; // create a selectable range var range = document.createRange(); range.selectNodeContents(el); // select the range var selection = window.getSelection(); selection.removeAllRanges(); selection.addRange(range); el.setSelectionRange(0, 999999); // restore contentEditable/readOnly to original state el.contentEditable = editable; el.readOnly = readOnly; } else { el.select(); } // execute copy command document.execCommand('copy'); // alert alert(woosw_vars.copied_text + ' ' + el.value); } function woosw_html_entities(str) { return String(str).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); } function woosw_get_key() { var result = []; var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; var charactersLength = characters.length; for (var i = 0; i < 6; i++) { result.push( characters.charAt(Math.floor(Math.random() * charactersLength))); } return result.join(''); } function woosw_fix_height() { // fix for center only jQuery('.woosw-popup-center .woosw-popup-content').height(2 * Math.floor( jQuery('.woosw-popup-center .woosw-popup-content').height() / 2) + 2); } function woosw_load_data() { if ($storage) { try { var data = JSON.parse(sessionStorage.getItem('woosw_data_' + key)); if (data.fragments) { woosw_refresh_fragments(data.fragments); } if (data.ids) { woosw_refresh_buttons(data.ids); woosw_refresh_ids(data.ids); } if (data.key && (key === null || key === undefined || key === '')) { } } catch (err) { woosw_get_data(); } } else { woosw_get_data(); } } function woosw_get_data() { var data = { action: 'woosw_get_data', nonce: woosw_vars.nonce, }; $.post(woosw_vars.ajax_url, data, function (response) { if (response) { if ($storage) { sessionStorage.setItem('woosw_data_' + response.key, JSON.stringify(response)); } if (response.fragments) { woosw_refresh_fragments(response.fragments); } if (response.ids) { woosw_refresh_buttons(response.ids); woosw_refresh_ids(response.ids); } if (response.key && (key === null || key === undefined || key === '' || key !== response.key)) { } $(document.body).trigger('woosw_data_refreshed', [response]); } }); } function woosw_refresh_fragments(fragments) { $.each(fragments, function (key, value) { $(key).replaceWith(value); }); $(document.body).trigger('woosw_fragments_refreshed', [fragments]); } function woosw_refresh_ids(ids) { added_ids = ids; } function woosw_refresh_buttons(ids) { $('.woosw-btn').removeClass('woosw-btn-added woosw-added'); $('.woosw-btn:not(.woosw-btn-has-icon)').html(woosw_vars.button_text); $('.woosw-btn.woosw-btn-has-icon').find('.woosw-btn-icon').removeClass(woosw_vars.button_added_icon).addClass(woosw_vars.button_normal_icon); $('.woosw-btn.woosw-btn-has-icon').find('.woosw-btn-text').html(woosw_vars.button_text); $.each(ids, function (key, value) { $('.woosw-btn-' + key).addClass('woosw-btn-added woosw-added'); $('.woosw-btn-' + key + ':not(.woosw-btn-has-icon)').html(woosw_vars.button_text_added); $('.woosw-btn-has-icon.woosw-btn-' + key).find('.woosw-btn-icon').removeClass(woosw_vars.button_normal_icon).addClass(woosw_vars.button_added_icon); $('.woosw-btn-has-icon.woosw-btn-' + key).find('.woosw-btn-text').html(woosw_vars.button_text_added); if (value.parent !== undefined) { $('.woosw-btn-' + value.parent).addClass('woosw-btn-added woosw-added'); $('.woosw-btn-' + value.parent + ':not(.woosw-btn-has-icon)').html(woosw_vars.button_text_added); $('.woosw-btn-has-icon.woosw-btn-' + value.parent).find('.woosw-btn-icon').removeClass(woosw_vars.button_normal_icon).addClass(woosw_vars.button_added_icon); $('.woosw-btn-has-icon.woosw-btn-' + value.parent).find('.woosw-btn-text').html(woosw_vars.button_text_added); } }); $(document.body).trigger('woosw_buttons_refreshed', [ids]); } function woosw_refresh_button_id(id) { $('.woosw-btn[data-id="' + id + '"]').removeClass('woosw-btn-added woosw-added'); $('.woosw-btn[data-id="' + id + '"]:not(.woosw-btn-has-icon)').html(woosw_vars.button_text); $('.woosw-btn-has-icon.woosw-btn[data-id="' + id + '"]').find('.woosw-btn-icon').removeClass(woosw_vars.button_added_icon).addClass(woosw_vars.button_normal_icon); $('.woosw-btn-has-icon.woosw-btn[data-id="' + id + '"]').find('.woosw-btn-text').html(woosw_vars.button_text); $.each(added_ids, function (key) { if (parseInt(key) === parseInt(id)) { $('.woosw-btn[data-id="' + id + '"]').addClass('woosw-btn-added woosw-added'); $('.woosw-btn[data-id="' + id + '"]:not(.woosw-btn-has-icon)').html(woosw_vars.button_text_added); $('.woosw-btn-has-icon.woosw-btn[data-id="' + id + '"]').find('.woosw-btn-icon').removeClass(woosw_vars.button_normal_icon).addClass(woosw_vars.button_added_icon); $('.woosw-btn-has-icon.woosw-btn[data-id="' + id + '"]').find('.woosw-btn-text').html(woosw_vars.button_text_added); } }); $(document.body).trigger('woosw_refresh_button_id', [id, added_ids]); } })(jQuery); /* Copyright (C) Federico Zivolo 2020 Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). */ (function (e, t) { 'object' == typeof exports && 'undefined' != typeof module ? module.exports = t() : 'function' == typeof define && define.amd ? define(t) : e.Popper = t() })(this, function () { 'use strict'; function e(e) { return e && '[object Function]' === {}.toString.call(e) } function t(e, t) { if (1 !== e.nodeType) return []; var o = e.ownerDocument.defaultView, n = o.getComputedStyle(e, null); return t ? n[t] : n } function o(e) { return 'HTML' === e.nodeName ? e : e.parentNode || e.host } function n(e) { if (!e) return document.body; switch (e.nodeName) { case'HTML': case'BODY': return e.ownerDocument.body; case'#document': return e.body; } var i = t(e), r = i.overflow, p = i.overflowX, s = i.overflowY; return /(auto|scroll|overlay)/.test(r + s + p) ? e : n(o(e)) } function i(e) { return e && e.referenceNode ? e.referenceNode : e } function r(e) { return 11 === e ? re : 10 === e ? pe : re || pe } function p(e) { if (!e) return document.documentElement; for (var o = r(10) ? document.body : null, n = e.offsetParent || null; n === o && e.nextElementSibling;) n = (e = e.nextElementSibling).offsetParent; var i = n && n.nodeName; return i && 'BODY' !== i && 'HTML' !== i ? -1 !== ['TH', 'TD', 'TABLE'].indexOf(n.nodeName) && 'static' === t(n, 'position') ? p(n) : n : e ? e.ownerDocument.documentElement : document.documentElement } function s(e) { var t = e.nodeName; return 'BODY' !== t && ('HTML' === t || p(e.firstElementChild) === e) } function d(e) { return null === e.parentNode ? e : d(e.parentNode) } function a(e, t) { if (!e || !e.nodeType || !t || !t.nodeType) return document.documentElement; var o = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING, n = o ? e : t, i = o ? t : e, r = document.createRange(); r.setStart(n, 0), r.setEnd(i, 0); var l = r.commonAncestorContainer; if (e !== l && t !== l || n.contains(i)) return s(l) ? l : p(l); var f = d(e); return f.host ? a(f.host, t) : a(e, d(t).host) } function l(e) { var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 'top', o = 'top' === t ? 'scrollTop' : 'scrollLeft', n = e.nodeName; if ('BODY' === n || 'HTML' === n) { var i = e.ownerDocument.documentElement, r = e.ownerDocument.scrollingElement || i; return r[o] } return e[o] } function f(e, t) { var o = 2 < arguments.length && void 0 !== arguments[2] && arguments[2], n = l(t, 'top'), i = l(t, 'left'), r = o ? -1 : 1; return e.top += n * r, e.bottom += n * r, e.left += i * r, e.right += i * r, e } function m(e, t) { var o = 'x' === t ? 'Left' : 'Top', n = 'Left' == o ? 'Right' : 'Bottom'; return parseFloat(e['border' + o + 'Width']) + parseFloat(e['border' + n + 'Width']) } function h(e, t, o, n) { return ee(t['offset' + e], t['scroll' + e], o['client' + e], o['offset' + e], o['scroll' + e], r(10) ? parseInt(o['offset' + e]) + parseInt(n['margin' + ('Height' === e ? 'Top' : 'Left')]) + parseInt(n['margin' + ('Height' === e ? 'Bottom' : 'Right')]) : 0) } function c(e) { var t = e.body, o = e.documentElement, n = r(10) && getComputedStyle(o); return {height: h('Height', t, o, n), width: h('Width', t, o, n)} } function g(e) { return le({}, e, {right: e.left + e.width, bottom: e.top + e.height}) } function u(e) { var o = {}; try { if (r(10)) { o = e.getBoundingClientRect(); var n = l(e, 'top'), i = l(e, 'left'); o.top += n, o.left += i, o.bottom += n, o.right += i } else o = e.getBoundingClientRect() } catch (t) { } var p = {left: o.left, top: o.top, width: o.right - o.left, height: o.bottom - o.top}, s = 'HTML' === e.nodeName ? c(e.ownerDocument) : {}, d = s.width || e.clientWidth || p.width, a = s.height || e.clientHeight || p.height, f = e.offsetWidth - d, h = e.offsetHeight - a; if (f || h) { var u = t(e); f -= m(u, 'x'), h -= m(u, 'y'), p.width -= f, p.height -= h } return g(p) } function b(e, o) { var i = 2 < arguments.length && void 0 !== arguments[2] && arguments[2], p = r(10), s = 'HTML' === o.nodeName, d = u(e), a = u(o), l = n(e), m = t(o), h = parseFloat(m.borderTopWidth), c = parseFloat(m.borderLeftWidth); i && s && (a.top = ee(a.top, 0), a.left = ee(a.left, 0)); var b = g({top: d.top - a.top - h, left: d.left - a.left - c, width: d.width, height: d.height}); if (b.marginTop = 0, b.marginLeft = 0, !p && s) { var w = parseFloat(m.marginTop), y = parseFloat(m.marginLeft); b.top -= h - w, b.bottom -= h - w, b.left -= c - y, b.right -= c - y, b.marginTop = w, b.marginLeft = y } return (p && !i ? o.contains(l) : o === l && 'BODY' !== l.nodeName) && (b = f(b, o)), b } function w(e) { var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], o = e.ownerDocument.documentElement, n = b(e, o), i = ee(o.clientWidth, window.innerWidth || 0), r = ee(o.clientHeight, window.innerHeight || 0), p = t ? 0 : l(o), s = t ? 0 : l(o, 'left'), d = {top: p - n.top + n.marginTop, left: s - n.left + n.marginLeft, width: i, height: r}; return g(d) } function y(e) { var n = e.nodeName; if ('BODY' === n || 'HTML' === n) return !1; if ('fixed' === t(e, 'position')) return !0; var i = o(e); return !!i && y(i) } function E(e) { if (!e || !e.parentElement || r()) return document.documentElement; for (var o = e.parentElement; o && 'none' === t(o, 'transform');) o = o.parentElement; return o || document.documentElement } function v(e, t, r, p) { var s = 4 < arguments.length && void 0 !== arguments[4] && arguments[4], d = {top: 0, left: 0}, l = s ? E(e) : a(e, i(t)); if ('viewport' === p) d = w(l, s); else { var f; 'scrollParent' === p ? (f = n(o(t)), 'BODY' === f.nodeName && (f = e.ownerDocument.documentElement)) : 'window' === p ? f = e.ownerDocument.documentElement : f = p; var m = b(f, l, s); if ('HTML' === f.nodeName && !y(l)) { var h = c(e.ownerDocument), g = h.height, u = h.width; d.top += m.top - m.marginTop, d.bottom = g + m.top, d.left += m.left - m.marginLeft, d.right = u + m.left } else d = m } r = r || 0; var v = 'number' == typeof r; return d.left += v ? r : r.left || 0, d.top += v ? r : r.top || 0, d.right -= v ? r : r.right || 0, d.bottom -= v ? r : r.bottom || 0, d } function x(e) { var t = e.width, o = e.height; return t * o } function O(e, t, o, n, i) { var r = 5 < arguments.length && void 0 !== arguments[5] ? arguments[5] : 0; if (-1 === e.indexOf('auto')) return e; var p = v(o, n, r, i), s = { top: {width: p.width, height: t.top - p.top}, right: {width: p.right - t.right, height: p.height}, bottom: {width: p.width, height: p.bottom - t.bottom}, left: {width: t.left - p.left, height: p.height} }, d = Object.keys(s).map(function (e) { return le({key: e}, s[e], {area: x(s[e])}) }).sort(function (e, t) { return t.area - e.area }), a = d.filter(function (e) { var t = e.width, n = e.height; return t >= o.clientWidth && n >= o.clientHeight }), l = 0 < a.length ? a[0].key : d[0].key, f = e.split('-')[1]; return l + (f ? '-' + f : '') } function L(e, t, o) { var n = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null, r = n ? E(t) : a(t, i(o)); return b(o, r, n) } function S(e) { var t = e.ownerDocument.defaultView, o = t.getComputedStyle(e), n = parseFloat(o.marginTop || 0) + parseFloat(o.marginBottom || 0), i = parseFloat(o.marginLeft || 0) + parseFloat(o.marginRight || 0), r = {width: e.offsetWidth + i, height: e.offsetHeight + n}; return r } function T(e) { var t = {left: 'right', right: 'left', bottom: 'top', top: 'bottom'}; return e.replace(/left|right|bottom|top/g, function (e) { return t[e] }) } function C(e, t, o) { o = o.split('-')[0]; var n = S(e), i = {width: n.width, height: n.height}, r = -1 !== ['right', 'left'].indexOf(o), p = r ? 'top' : 'left', s = r ? 'left' : 'top', d = r ? 'height' : 'width', a = r ? 'width' : 'height'; return i[p] = t[p] + t[d] / 2 - n[d] / 2, i[s] = o === s ? t[s] - n[a] : t[T(s)], i } function D(e, t) { return Array.prototype.find ? e.find(t) : e.filter(t)[0] } function N(e, t, o) { if (Array.prototype.findIndex) return e.findIndex(function (e) { return e[t] === o }); var n = D(e, function (e) { return e[t] === o }); return e.indexOf(n) } function P(t, o, n) { var i = void 0 === n ? t : t.slice(0, N(t, 'name', n)); return i.forEach(function (t) { t['function'] && console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); var n = t['function'] || t.fn; t.enabled && e(n) && (o.offsets.popper = g(o.offsets.popper), o.offsets.reference = g(o.offsets.reference), o = n(o, t)) }), o } function k() { if (!this.state.isDestroyed) { var e = {instance: this, styles: {}, arrowStyles: {}, attributes: {}, flipped: !1, offsets: {}}; e.offsets.reference = L(this.state, this.popper, this.reference, this.options.positionFixed), e.placement = O(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), e.originalPlacement = e.placement, e.positionFixed = this.options.positionFixed, e.offsets.popper = C(this.popper, e.offsets.reference, e.placement), e.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute', e = P(this.modifiers, e), this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e)) } } function W(e, t) { return e.some(function (e) { var o = e.name, n = e.enabled; return n && o === t }) } function B(e) { for (var t = [!1, 'ms', 'Webkit', 'Moz', 'O'], o = e.charAt(0).toUpperCase() + e.slice(1), n = 0; n < t.length; n++) { var i = t[n], r = i ? '' + i + o : e; if ('undefined' != typeof document.body.style[r]) return r } return null } function H() { return this.state.isDestroyed = !0, W(this.modifiers, 'applyStyle') && (this.popper.removeAttribute('x-placement'), this.popper.style.position = '', this.popper.style.top = '', this.popper.style.left = '', this.popper.style.right = '', this.popper.style.bottom = '', this.popper.style.willChange = '', this.popper.style[B('transform')] = ''), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this } function A(e) { var t = e.ownerDocument; return t ? t.defaultView : window } function M(e, t, o, i) { var r = 'BODY' === e.nodeName, p = r ? e.ownerDocument.defaultView : e; p.addEventListener(t, o, {passive: !0}), r || M(n(p.parentNode), t, o, i), i.push(p) } function F(e, t, o, i) { o.updateBound = i, A(e).addEventListener('resize', o.updateBound, {passive: !0}); var r = n(e); return M(r, 'scroll', o.updateBound, o.scrollParents), o.scrollElement = r, o.eventsEnabled = !0, o } function I() { this.state.eventsEnabled || (this.state = F(this.reference, this.options, this.state, this.scheduleUpdate)) } function R(e, t) { return A(e).removeEventListener('resize', t.updateBound), t.scrollParents.forEach(function (e) { e.removeEventListener('scroll', t.updateBound) }), t.updateBound = null, t.scrollParents = [], t.scrollElement = null, t.eventsEnabled = !1, t } function U() { this.state.eventsEnabled && (cancelAnimationFrame(this.scheduleUpdate), this.state = R(this.reference, this.state)) } function Y(e) { return '' !== e && !isNaN(parseFloat(e)) && isFinite(e) } function V(e, t) { Object.keys(t).forEach(function (o) { var n = ''; -1 !== ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(o) && Y(t[o]) && (n = 'px'), e.style[o] = t[o] + n }) } function j(e, t) { Object.keys(t).forEach(function (o) { var n = t[o]; !1 === n ? e.removeAttribute(o) : e.setAttribute(o, t[o]) }) } function q(e, t) { var o = e.offsets, n = o.popper, i = o.reference, r = $, p = function (e) { return e }, s = r(i.width), d = r(n.width), a = -1 !== ['left', 'right'].indexOf(e.placement), l = -1 !== e.placement.indexOf('-'), f = t ? a || l || s % 2 == d % 2 ? r : Z : p, m = t ? r : p; return { left: f(1 == s % 2 && 1 == d % 2 && !l && t ? n.left - 1 : n.left), top: m(n.top), bottom: m(n.bottom), right: f(n.right) } } function K(e, t, o) { var n = D(e, function (e) { var o = e.name; return o === t }), i = !!n && e.some(function (e) { return e.name === o && e.enabled && e.order < n.order }); if (!i) { var r = '`' + t + '`'; console.warn('`' + o + '`' + ' modifier is required by ' + r + ' modifier in order to work, be sure to include it before ' + r + '!') } return i } function z(e) { return 'end' === e ? 'start' : 'start' === e ? 'end' : e } function G(e) { var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], o = he.indexOf(e), n = he.slice(o + 1).concat(he.slice(0, o)); return t ? n.reverse() : n } function _(e, t, o, n) { var i = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/), r = +i[1], p = i[2]; if (!r) return e; if (0 === p.indexOf('%')) { var s; switch (p) { case'%p': s = o; break; case'%': case'%r': default: s = n; } var d = g(s); return d[t] / 100 * r } if ('vh' === p || 'vw' === p) { var a; return a = 'vh' === p ? ee(document.documentElement.clientHeight, window.innerHeight || 0) : ee(document.documentElement.clientWidth, window.innerWidth || 0), a / 100 * r } return r } function X(e, t, o, n) { var i = [0, 0], r = -1 !== ['right', 'left'].indexOf(n), p = e.split(/(\+|\-)/).map(function (e) { return e.trim() }), s = p.indexOf(D(p, function (e) { return -1 !== e.search(/,|\s/) })); p[s] && -1 === p[s].indexOf(',') && console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); var d = /\s*,\s*|\s+/, a = -1 === s ? [p] : [p.slice(0, s).concat([p[s].split(d)[0]]), [p[s].split(d)[1]].concat(p.slice(s + 1))]; return a = a.map(function (e, n) { var i = (1 === n ? !r : r) ? 'height' : 'width', p = !1; return e.reduce(function (e, t) { return '' === e[e.length - 1] && -1 !== ['+', '-'].indexOf(t) ? (e[e.length - 1] = t, p = !0, e) : p ? (e[e.length - 1] += t, p = !1, e) : e.concat(t) }, []).map(function (e) { return _(e, i, t, o) }) }), a.forEach(function (e, t) { e.forEach(function (o, n) { Y(o) && (i[t] += o * ('-' === e[n - 1] ? -1 : 1)) }) }), i } function J(e, t) { var o, n = t.offset, i = e.placement, r = e.offsets, p = r.popper, s = r.reference, d = i.split('-')[0]; return o = Y(+n) ? [+n, 0] : X(n, p, s, d), 'left' === d ? (p.top += o[0], p.left -= o[1]) : 'right' === d ? (p.top += o[0], p.left += o[1]) : 'top' === d ? (p.left += o[0], p.top -= o[1]) : 'bottom' === d && (p.left += o[0], p.top += o[1]), e.popper = p, e } var Q = Math.min, Z = Math.floor, $ = Math.round, ee = Math.max, te = 'undefined' != typeof window && 'undefined' != typeof document && 'undefined' != typeof navigator, oe = function () { for (var e = ['Edge', 'Trident', 'Firefox'], t = 0; t < e.length; t += 1) if (te && 0 <= navigator.userAgent.indexOf(e[t])) return 1; return 0 }(), ne = te && window.Promise, ie = ne ? function (e) { var t = !1; return function () { t || (t = !0, window.Promise.resolve().then(function () { t = !1, e() })) } } : function (e) { var t = !1; return function () { t || (t = !0, setTimeout(function () { t = !1, e() }, oe)) } }, re = te && !!(window.MSInputMethodContext && document.documentMode), pe = te && /MSIE 10/.test(navigator.userAgent), se = function (e, t) { if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') }, de = function () { function e(e, t) { for (var o, n = 0; n < t.length; n++) o = t[n], o.enumerable = o.enumerable || !1, o.configurable = !0, 'value' in o && (o.writable = !0), Object.defineProperty(e, o.key, o) } return function (t, o, n) { return o && e(t.prototype, o), n && e(t, n), t } }(), ae = function (e, t, o) { return t in e ? Object.defineProperty(e, t, { value: o, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = o, e }, le = Object.assign || function (e) { for (var t, o = 1; o < arguments.length; o++) for (var n in t = arguments[o], t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]); return e }, fe = te && /Firefox/i.test(navigator.userAgent), me = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'], he = me.slice(3), ce = {FLIP: 'flip', CLOCKWISE: 'clockwise', COUNTERCLOCKWISE: 'counterclockwise'}, ge = function () { function t(o, n) { var i = this, r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}; se(this, t), this.scheduleUpdate = function () { return requestAnimationFrame(i.update) }, this.update = ie(this.update.bind(this)), this.options = le({}, t.Defaults, r), this.state = { isDestroyed: !1, isCreated: !1, scrollParents: [] }, this.reference = o && o.jquery ? o[0] : o, this.popper = n && n.jquery ? n[0] : n, this.options.modifiers = {}, Object.keys(le({}, t.Defaults.modifiers, r.modifiers)).forEach(function (e) { i.options.modifiers[e] = le({}, t.Defaults.modifiers[e] || {}, r.modifiers ? r.modifiers[e] : {}) }), this.modifiers = Object.keys(this.options.modifiers).map(function (e) { return le({name: e}, i.options.modifiers[e]) }).sort(function (e, t) { return e.order - t.order }), this.modifiers.forEach(function (t) { t.enabled && e(t.onLoad) && t.onLoad(i.reference, i.popper, i.options, t, i.state) }), this.update(); var p = this.options.eventsEnabled; p && this.enableEventListeners(), this.state.eventsEnabled = p } return de(t, [{ key: 'update', value: function () { return k.call(this) } }, { key: 'destroy', value: function () { return H.call(this) } }, { key: 'enableEventListeners', value: function () { return I.call(this) } }, { key: 'disableEventListeners', value: function () { return U.call(this) } }]), t }(); return ge.Utils = ('undefined' == typeof window ? global : window).PopperUtils, ge.placements = me, ge.Defaults = { placement: 'bottom', positionFixed: !1, eventsEnabled: !0, removeOnDestroy: !1, onCreate: function () { }, onUpdate: function () { }, modifiers: { shift: { order: 100, enabled: !0, fn: function (e) { var t = e.placement, o = t.split('-')[0], n = t.split('-')[1]; if (n) { var i = e.offsets, r = i.reference, p = i.popper, s = -1 !== ['bottom', 'top'].indexOf(o), d = s ? 'left' : 'top', a = s ? 'width' : 'height', l = {start: ae({}, d, r[d]), end: ae({}, d, r[d] + r[a] - p[a])}; e.offsets.popper = le({}, p, l[n]) } return e } }, offset: {order: 200, enabled: !0, fn: J, offset: 0}, preventOverflow: { order: 300, enabled: !0, fn: function (e, t) { var o = t.boundariesElement || p(e.instance.popper); e.instance.reference === o && (o = p(o)); var n = B('transform'), i = e.instance.popper.style, r = i.top, s = i.left, d = i[n]; i.top = '', i.left = '', i[n] = ''; var a = v(e.instance.popper, e.instance.reference, t.padding, o, e.positionFixed); i.top = r, i.left = s, i[n] = d, t.boundaries = a; var l = t.priority, f = e.offsets.popper, m = { primary: function (e) { var o = f[e]; return f[e] < a[e] && !t.escapeWithReference && (o = ee(f[e], a[e])), ae({}, e, o) }, secondary: function (e) { var o = 'right' === e ? 'left' : 'top', n = f[o]; return f[e] > a[e] && !t.escapeWithReference && (n = Q(f[o], a[e] - ('right' === e ? f.width : f.height))), ae({}, o, n) } }; return l.forEach(function (e) { var t = -1 === ['left', 'top'].indexOf(e) ? 'secondary' : 'primary'; f = le({}, f, m[t](e)) }), e.offsets.popper = f, e }, priority: ['left', 'right', 'top', 'bottom'], padding: 5, boundariesElement: 'scrollParent' }, keepTogether: { order: 400, enabled: !0, fn: function (e) { var t = e.offsets, o = t.popper, n = t.reference, i = e.placement.split('-')[0], r = Z, p = -1 !== ['top', 'bottom'].indexOf(i), s = p ? 'right' : 'bottom', d = p ? 'left' : 'top', a = p ? 'width' : 'height'; return o[s] < r(n[d]) && (e.offsets.popper[d] = r(n[d]) - o[a]), o[d] > r(n[s]) && (e.offsets.popper[d] = r(n[s])), e } }, arrow: { order: 500, enabled: !0, fn: function (e, o) { var n; if (!K(e.instance.modifiers, 'arrow', 'keepTogether')) return e; var i = o.element; if ('string' == typeof i) { if (i = e.instance.popper.querySelector(i), !i) return e; } else if (!e.instance.popper.contains(i)) return console.warn('WARNING: `arrow.element` must be child of its popper element!'), e; var r = e.placement.split('-')[0], p = e.offsets, s = p.popper, d = p.reference, a = -1 !== ['left', 'right'].indexOf(r), l = a ? 'height' : 'width', f = a ? 'Top' : 'Left', m = f.toLowerCase(), h = a ? 'left' : 'top', c = a ? 'bottom' : 'right', u = S(i)[l]; d[c] - u < s[m] && (e.offsets.popper[m] -= s[m] - (d[c] - u)), d[m] + u > s[c] && (e.offsets.popper[m] += d[m] + u - s[c]), e.offsets.popper = g(e.offsets.popper); var b = d[m] + d[l] / 2 - u / 2, w = t(e.instance.popper), y = parseFloat(w['margin' + f]), E = parseFloat(w['border' + f + 'Width']), v = b - e.offsets.popper[m] - y - E; return v = ee(Q(s[l] - u, v), 0), e.arrowElement = i, e.offsets.arrow = (n = {}, ae(n, m, $(v)), ae(n, h, ''), n), e }, element: '[x-arrow]' }, flip: { order: 600, enabled: !0, fn: function (e, t) { if (W(e.instance.modifiers, 'inner')) return e; if (e.flipped && e.placement === e.originalPlacement) return e; var o = v(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement, e.positionFixed), n = e.placement.split('-')[0], i = T(n), r = e.placement.split('-')[1] || '', p = []; switch (t.behavior) { case ce.FLIP: p = [n, i]; break; case ce.CLOCKWISE: p = G(n); break; case ce.COUNTERCLOCKWISE: p = G(n, !0); break; default: p = t.behavior; } return p.forEach(function (s, d) { if (n !== s || p.length === d + 1) return e; n = e.placement.split('-')[0], i = T(n); var a = e.offsets.popper, l = e.offsets.reference, f = Z, m = 'left' === n && f(a.right) > f(l.left) || 'right' === n && f(a.left) < f(l.right) || 'top' === n && f(a.bottom) > f(l.top) || 'bottom' === n && f(a.top) < f(l.bottom), h = f(a.left) < f(o.left), c = f(a.right) > f(o.right), g = f(a.top) < f(o.top), u = f(a.bottom) > f(o.bottom), b = 'left' === n && h || 'right' === n && c || 'top' === n && g || 'bottom' === n && u, w = -1 !== ['top', 'bottom'].indexOf(n), y = !!t.flipVariations && (w && 'start' === r && h || w && 'end' === r && c || !w && 'start' === r && g || !w && 'end' === r && u), E = !!t.flipVariationsByContent && (w && 'start' === r && c || w && 'end' === r && h || !w && 'start' === r && u || !w && 'end' === r && g), v = y || E; (m || b || v) && (e.flipped = !0, (m || b) && (n = p[d + 1]), v && (r = z(r)), e.placement = n + (r ? '-' + r : ''), e.offsets.popper = le({}, e.offsets.popper, C(e.instance.popper, e.offsets.reference, e.placement)), e = P(e.instance.modifiers, e, 'flip')) }), e }, behavior: 'flip', padding: 5, boundariesElement: 'viewport', flipVariations: !1, flipVariationsByContent: !1 }, inner: { order: 700, enabled: !1, fn: function (e) { var t = e.placement, o = t.split('-')[0], n = e.offsets, i = n.popper, r = n.reference, p = -1 !== ['left', 'right'].indexOf(o), s = -1 === ['top', 'left'].indexOf(o); return i[p ? 'left' : 'top'] = r[o] - (s ? i[p ? 'width' : 'height'] : 0), e.placement = T(t), e.offsets.popper = g(i), e } }, hide: { order: 800, enabled: !0, fn: function (e) { if (!K(e.instance.modifiers, 'hide', 'preventOverflow')) return e; var t = e.offsets.reference, o = D(e.instance.modifiers, function (e) { return 'preventOverflow' === e.name }).boundaries; if (t.bottom < o.top || t.left > o.right || t.top > o.bottom || t.right < o.left) { if (!0 === e.hide) return e; e.hide = !0, e.attributes['x-out-of-boundaries'] = '' } else { if (!1 === e.hide) return e; e.hide = !1, e.attributes['x-out-of-boundaries'] = !1 } return e } }, computeStyle: { order: 850, enabled: !0, fn: function (e, t) { var o = t.x, n = t.y, i = e.offsets.popper, r = D(e.instance.modifiers, function (e) { return 'applyStyle' === e.name }).gpuAcceleration; void 0 !== r && console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); var s, d, a = void 0 === r ? t.gpuAcceleration : r, l = p(e.instance.popper), f = u(l), m = {position: i.position}, h = q(e, 2 > window.devicePixelRatio || !fe), c = 'bottom' === o ? 'top' : 'bottom', g = 'right' === n ? 'left' : 'right', b = B('transform'); if (d = 'bottom' == c ? 'HTML' === l.nodeName ? -l.clientHeight + h.bottom : -f.height + h.bottom : h.top, s = 'right' == g ? 'HTML' === l.nodeName ? -l.clientWidth + h.right : -f.width + h.right : h.left, a && b) m[b] = 'translate3d(' + s + 'px, ' + d + 'px, 0)', m[c] = 0, m[g] = 0, m.willChange = 'transform'; else { var w = 'bottom' == c ? -1 : 1, y = 'right' == g ? -1 : 1; m[c] = d * w, m[g] = s * y, m.willChange = c + ', ' + g } var E = {"x-placement": e.placement}; return e.attributes = le({}, E, e.attributes), e.styles = le({}, m, e.styles), e.arrowStyles = le({}, e.offsets.arrow, e.arrowStyles), e }, gpuAcceleration: !0, x: 'bottom', y: 'right' }, applyStyle: { order: 900, enabled: !0, fn: function (e) { return V(e.instance.popper, e.styles), j(e.instance.popper, e.attributes), e.arrowElement && Object.keys(e.arrowStyles).length && V(e.arrowElement, e.arrowStyles), e }, onLoad: function (e, t, o, n, i) { var r = L(i, t, e, o.positionFixed), p = O(o.placement, r, t, e, o.modifiers.flip.boundariesElement, o.modifiers.flip.padding); return t.setAttribute('x-placement', p), V(t, {position: o.positionFixed ? 'fixed' : 'absolute'}), o }, gpuAcceleration: void 0 } } }, ge }); //# sourceMappingURL=popper.min.js.map /*! * Bootstrap v4.5.3 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ !function (t, e) { "object" == typeof exports && "undefined" != typeof module ? e(exports, require("jquery"), require("popper.js")) : "function" == typeof define && define.amd ? define(["exports", "jquery", "popper.js"], e) : e((t = "undefined" != typeof globalThis ? globalThis : t || self).bootstrap = {}, t.jQuery, t.Popper) }(this, (function (t, e, n) { "use strict"; function i(t) { return t && "object" == typeof t && "default" in t ? t : { default: t } } var o = i(e), a = i(n); function s(t, e) { for (var n = 0; n < e.length; n++) { var i = e[n]; i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i) } } function l(t, e, n) { return e && s(t.prototype, e), n && s(t, n), t } function r() { return (r = Object.assign || function (t) { for (var e = 1; e < arguments.length; e++) { var n = arguments[e]; for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (t[i] = n[i]) } return t }).apply(this, arguments) } function u(t) { var e = this, n = !1; return o.default(this).one(d.TRANSITION_END, (function () { n = !0 })), setTimeout((function () { n || d.triggerTransitionEnd(e) }), t), this } var d = { TRANSITION_END: "bsTransitionEnd", getUID: function (t) { do { t += ~~(1e6 * Math.random()) } while (document.getElementById(t)); return t }, getSelectorFromElement: function (t) { var e = t.getAttribute("data-target"); if (!e || "#" === e) { var n = t.getAttribute("href"); e = n && "#" !== n ? n.trim() : "" } try { return document.querySelector(e) ? e : null } catch (t) { return null } }, getTransitionDurationFromElement: function (t) { if (!t) return 0; var e = o.default(t).css("transition-duration"), n = o.default(t).css("transition-delay"), i = parseFloat(e), a = parseFloat(n); return i || a ? (e = e.split(",")[0], n = n.split(",")[0], 1e3 * (parseFloat(e) + parseFloat(n))) : 0 }, reflow: function (t) { return t.offsetHeight }, triggerTransitionEnd: function (t) { o.default(t).trigger("transitionend") }, supportsTransitionEnd: function () { return Boolean("transitionend") }, isElement: function (t) { return (t[0] || t).nodeType }, typeCheckConfig: function (t, e, n) { for (var i in n) if (Object.prototype.hasOwnProperty.call(n, i)) { var o = n[i], a = e[i], s = a && d.isElement(a) ? "element" : null === (l = a) || "undefined" == typeof l ? "" + l : {}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase(); if (!new RegExp(o).test(s)) throw new Error(t.toUpperCase() + ': Option "' + i + '" provided type "' + s + '" but expected type "' + o + '".') } var l }, findShadowRoot: function (t) { if (!document.documentElement.attachShadow) return null; if ("function" == typeof t.getRootNode) { var e = t.getRootNode(); return e instanceof ShadowRoot ? e : null } return t instanceof ShadowRoot ? t : t.parentNode ? d.findShadowRoot(t.parentNode) : null }, jQueryDetection: function () { if ("undefined" == typeof o.default) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript."); var t = o.default.fn.jquery.split(" ")[0].split("."); if (t[0] < 2 && t[1] < 9 || 1 === t[0] && 9 === t[1] && t[2] < 1 || t[0] >= 4) throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0") } }; d.jQueryDetection(), o.default.fn.emulateTransitionEnd = u, o.default.event.special[d.TRANSITION_END] = { bindType: "transitionend", delegateType: "transitionend", handle: function (t) { if (o.default(t.target).is(this)) return t.handleObj.handler.apply(this, arguments) } }; var f = "alert", c = o.default.fn[f], h = function () { function t(t) { this._element = t } var e = t.prototype; return e.close = function (t) { var e = this._element; t && (e = this._getRootElement(t)), this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e) }, e.dispose = function () { o.default.removeData(this._element, "bs.alert"), this._element = null }, e._getRootElement = function (t) { var e = d.getSelectorFromElement(t), n = !1; return e && (n = document.querySelector(e)), n || (n = o.default(t).closest(".alert")[0]), n }, e._triggerCloseEvent = function (t) { var e = o.default.Event("close.bs.alert"); return o.default(t).trigger(e), e }, e._removeElement = function (t) { var e = this; if (o.default(t).removeClass("show"), o.default(t).hasClass("fade")) { var n = d.getTransitionDurationFromElement(t); o.default(t).one(d.TRANSITION_END, (function (n) { return e._destroyElement(t, n) })).emulateTransitionEnd(n) } else this._destroyElement(t) }, e._destroyElement = function (t) { o.default(t).detach().trigger("closed.bs.alert").remove() }, t._jQueryInterface = function (e) { return this.each((function () { var n = o.default(this), i = n.data("bs.alert"); i || (i = new t(this), n.data("bs.alert", i)), "close" === e && i[e](this) })) }, t._handleDismiss = function (t) { return function (e) { e && e.preventDefault(), t.close(this) } }, l(t, null, [{ key: "VERSION", get: function () { return "4.5.3" } }]), t }(); o.default(document).on("click.bs.alert.data-api", '[data-dismiss="alert"]', h._handleDismiss(new h)), o.default.fn[f] = h._jQueryInterface, o.default.fn[f].Constructor = h, o.default.fn[f].noConflict = function () { return o.default.fn[f] = c, h._jQueryInterface }; var g = o.default.fn.button, m = function () { function t(t) { this._element = t, this.shouldAvoidTriggerChange = !1 } var e = t.prototype; return e.toggle = function () { var t = !0, e = !0, n = o.default(this._element).closest('[data-toggle="buttons"]')[0]; if (n) { var i = this._element.querySelector('input:not([type="hidden"])'); if (i) { if ("radio" === i.type) if (i.checked && this._element.classList.contains("active")) t = !1; else { var a = n.querySelector(".active"); a && o.default(a).removeClass("active") } t && ("checkbox" !== i.type && "radio" !== i.type || (i.checked = !this._element.classList.contains("active")), this.shouldAvoidTriggerChange || o.default(i).trigger("change")), i.focus(), e = !1 } } this._element.hasAttribute("disabled") || this._element.classList.contains("disabled") || (e && this._element.setAttribute("aria-pressed", !this._element.classList.contains("active")), t && o.default(this._element).toggleClass("active")) }, e.dispose = function () { o.default.removeData(this._element, "bs.button"), this._element = null }, t._jQueryInterface = function (e, n) { return this.each((function () { var i = o.default(this), a = i.data("bs.button"); a || (a = new t(this), i.data("bs.button", a)), a.shouldAvoidTriggerChange = n, "toggle" === e && a[e]() })) }, l(t, null, [{ key: "VERSION", get: function () { return "4.5.3" } }]), t }(); o.default(document).on("click.bs.button.data-api", '[data-toggle^="button"]', (function (t) { var e = t.target, n = e; if (o.default(e).hasClass("btn") || (e = o.default(e).closest(".btn")[0]), !e || e.hasAttribute("disabled") || e.classList.contains("disabled")) t.preventDefault(); else { var i = e.querySelector('input:not([type="hidden"])'); if (i && (i.hasAttribute("disabled") || i.classList.contains("disabled"))) return void t.preventDefault(); "INPUT" !== n.tagName && "LABEL" === e.tagName || m._jQueryInterface.call(o.default(e), "toggle", "INPUT" === n.tagName) } })).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', (function (t) { var e = o.default(t.target).closest(".btn")[0]; o.default(e).toggleClass("focus", /^focus(in)?$/.test(t.type)) })), o.default(window).on("load.bs.button.data-api", (function () { for (var t = [].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')), e = 0, n = t.length; e < n; e++) { var i = t[e], o = i.querySelector('input:not([type="hidden"])'); o.checked || o.hasAttribute("checked") ? i.classList.add("active") : i.classList.remove("active") } for (var a = 0, s = (t = [].slice.call(document.querySelectorAll('[data-toggle="button"]'))).length; a < s; a++) { var l = t[a]; "true" === l.getAttribute("aria-pressed") ? l.classList.add("active") : l.classList.remove("active") } })), o.default.fn.button = m._jQueryInterface, o.default.fn.button.Constructor = m, o.default.fn.button.noConflict = function () { return o.default.fn.button = g, m._jQueryInterface }; var p = "carousel", _ = ".bs.carousel", v = o.default.fn[p], b = { interval: 5e3, keyboard: !0, slide: !1, pause: "hover", wrap: !0, touch: !0 }, y = { interval: "(number|boolean)", keyboard: "boolean", slide: "(boolean|string)", pause: "(string|boolean)", wrap: "boolean", touch: "boolean" }, E = { TOUCH: "touch", PEN: "pen" }, w = function () { function t(t, e) { this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(e), this._element = t, this._indicatorsElement = this._element.querySelector(".carousel-indicators"), this._touchSupported = "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0, this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent), this._addEventListeners() } var e = t.prototype; return e.next = function () { this._isSliding || this._slide("next") }, e.nextWhenVisible = function () { var t = o.default(this._element); !document.hidden && t.is(":visible") && "hidden" !== t.css("visibility") && this.next() }, e.prev = function () { this._isSliding || this._slide("prev") }, e.pause = function (t) { t || (this._isPaused = !0), this._element.querySelector(".carousel-item-next, .carousel-item-prev") && (d.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null }, e.cycle = function (t) { t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval)) }, e.to = function (t) { var e = this; this._activeElement = this._element.querySelector(".active.carousel-item"); var n = this._getItemIndex(this._activeElement); if (!(t > this._items.length - 1 || t < 0)) if (this._isSliding) o.default(this._element).one("slid.bs.carousel", (function () { return e.to(t) })); else { if (n === t) return this.pause(), void this.cycle(); var i = t > n ? "next" : "prev"; this._slide(i, this._items[t]) } }, e.dispose = function () { o.default(this._element).off(_), o.default.removeData(this._element, "bs.carousel"), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null }, e._getConfig = function (t) { return t = r({}, b, t), d.typeCheckConfig(p, t, y), t }, e._handleSwipe = function () { var t = Math.abs(this.touchDeltaX); if (!(t <= 40)) { var e = t / this.touchDeltaX; this.touchDeltaX = 0, e > 0 && this.prev(), e < 0 && this.next() } }, e._addEventListeners = function () { var t = this; this._config.keyboard && o.default(this._element).on("keydown.bs.carousel", (function (e) { return t._keydown(e) })), "hover" === this._config.pause && o.default(this._element).on("mouseenter.bs.carousel", (function (e) { return t.pause(e) })).on("mouseleave.bs.carousel", (function (e) { return t.cycle(e) })), this._config.touch && this._addTouchEventListeners() }, e._addTouchEventListeners = function () { var t = this; if (this._touchSupported) { var e = function (e) { t._pointerEvent && E[e.originalEvent.pointerType.toUpperCase()] ? t.touchStartX = e.originalEvent.clientX : t._pointerEvent || (t.touchStartX = e.originalEvent.touches[0].clientX) }, n = function (e) { t._pointerEvent && E[e.originalEvent.pointerType.toUpperCase()] && (t.touchDeltaX = e.originalEvent.clientX - t.touchStartX), t._handleSwipe(), "hover" === t._config.pause && (t.pause(), t.touchTimeout && clearTimeout(t.touchTimeout), t.touchTimeout = setTimeout((function (e) { return t.cycle(e) }), 500 + t._config.interval)) }; o.default(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel", (function (t) { return t.preventDefault() })), this._pointerEvent ? (o.default(this._element).on("pointerdown.bs.carousel", (function (t) { return e(t) })), o.default(this._element).on("pointerup.bs.carousel", (function (t) { return n(t) })), this._element.classList.add("pointer-event")) : (o.default(this._element).on("touchstart.bs.carousel", (function (t) { return e(t) })), o.default(this._element).on("touchmove.bs.carousel", (function (e) { return function (e) { e.originalEvent.touches && e.originalEvent.touches.length > 1 ? t.touchDeltaX = 0 : t.touchDeltaX = e.originalEvent.touches[0].clientX - t.touchStartX }(e) })), o.default(this._element).on("touchend.bs.carousel", (function (t) { return n(t) }))) } }, e._keydown = function (t) { if (!/input|textarea/i.test(t.target.tagName)) switch (t.which) { case 37: t.preventDefault(), this.prev(); break; case 39: t.preventDefault(), this.next() } }, e._getItemIndex = function (t) { return this._items = t && t.parentNode ? [].slice.call(t.parentNode.querySelectorAll(".carousel-item")) : [], this._items.indexOf(t) }, e._getItemByDirection = function (t, e) { var n = "next" === t, i = "prev" === t, o = this._getItemIndex(e), a = this._items.length - 1; if ((i && 0 === o || n && o === a) && !this._config.wrap) return e; var s = (o + ("prev" === t ? -1 : 1)) % this._items.length; return -1 === s ? this._items[this._items.length - 1] : this._items[s] }, e._triggerSlideEvent = function (t, e) { var n = this._getItemIndex(t), i = this._getItemIndex(this._element.querySelector(".active.carousel-item")), a = o.default.Event("slide.bs.carousel", { relatedTarget: t, direction: e, from: i, to: n }); return o.default(this._element).trigger(a), a }, e._setActiveIndicatorElement = function (t) { if (this._indicatorsElement) { var e = [].slice.call(this._indicatorsElement.querySelectorAll(".active")); o.default(e).removeClass("active"); var n = this._indicatorsElement.children[this._getItemIndex(t)]; n && o.default(n).addClass("active") } }, e._slide = function (t, e) { var n, i, a, s = this, l = this._element.querySelector(".active.carousel-item"), r = this._getItemIndex(l), u = e || l && this._getItemByDirection(t, l), f = this._getItemIndex(u), c = Boolean(this._interval); if ("next" === t ? (n = "carousel-item-left", i = "carousel-item-next", a = "left") : (n = "carousel-item-right", i = "carousel-item-prev", a = "right"), u && o.default(u).hasClass("active")) this._isSliding = !1; else if (!this._triggerSlideEvent(u, a).isDefaultPrevented() && l && u) { this._isSliding = !0, c && this.pause(), this._setActiveIndicatorElement(u); var h = o.default.Event("slid.bs.carousel", { relatedTarget: u, direction: a, from: r, to: f }); if (o.default(this._element).hasClass("slide")) { o.default(u).addClass(i), d.reflow(u), o.default(l).addClass(n), o.default(u).addClass(n); var g = parseInt(u.getAttribute("data-interval"), 10); g ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = g) : this._config.interval = this._config.defaultInterval || this._config.interval; var m = d.getTransitionDurationFromElement(l); o.default(l).one(d.TRANSITION_END, (function () { o.default(u).removeClass(n + " " + i).addClass("active"), o.default(l).removeClass("active " + i + " " + n), s._isSliding = !1, setTimeout((function () { return o.default(s._element).trigger(h) }), 0) })).emulateTransitionEnd(m) } else o.default(l).removeClass("active"), o.default(u).addClass("active"), this._isSliding = !1, o.default(this._element).trigger(h); c && this.cycle() } }, t._jQueryInterface = function (e) { return this.each((function () { var n = o.default(this).data("bs.carousel"), i = r({}, b, o.default(this).data()); "object" == typeof e && (i = r({}, i, e)); var a = "string" == typeof e ? e : i.slide; if (n || (n = new t(this, i), o.default(this).data("bs.carousel", n)), "number" == typeof e) n.to(e); else if ("string" == typeof a) { if ("undefined" == typeof n[a]) throw new TypeError('No method named "' + a + '"'); n[a]() } else i.interval && i.ride && (n.pause(), n.cycle()) })) }, t._dataApiClickHandler = function (e) { var n = d.getSelectorFromElement(this); if (n) { var i = o.default(n)[0]; if (i && o.default(i).hasClass("carousel")) { var a = r({}, o.default(i).data(), o.default(this).data()), s = this.getAttribute("data-slide-to"); s && (a.interval = !1), t._jQueryInterface.call(o.default(i), a), s && o.default(i).data("bs.carousel").to(s), e.preventDefault() } } }, l(t, null, [{ key: "VERSION", get: function () { return "4.5.3" } }, { key: "Default", get: function () { return b } }]), t }(); o.default(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", w._dataApiClickHandler), o.default(window).on("load.bs.carousel.data-api", (function () { for (var t = [].slice.call(document.querySelectorAll('[data-ride="carousel"]')), e = 0, n = t.length; e < n; e++) { var i = o.default(t[e]); w._jQueryInterface.call(i, i.data()) } })), o.default.fn[p] = w._jQueryInterface, o.default.fn[p].Constructor = w, o.default.fn[p].noConflict = function () { return o.default.fn[p] = v, w._jQueryInterface }; var T = "collapse", C = o.default.fn[T], S = { toggle: !0, parent: "" }, N = { toggle: "boolean", parent: "(string|element)" }, D = function () { function t(t, e) { this._isTransitioning = !1, this._element = t, this._config = this._getConfig(e), this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#' + t.id + '"],[data-toggle="collapse"][data-target="#' + t.id + '"]')); for (var n = [].slice.call(document.querySelectorAll('[data-toggle="collapse"]')), i = 0, o = n.length; i < o; i++) { var a = n[i], s = d.getSelectorFromElement(a), l = [].slice.call(document.querySelectorAll(s)).filter((function (e) { return e === t })); null !== s && l.length > 0 && (this._selector = s, this._triggerArray.push(a)) } this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle() } var e = t.prototype; return e.toggle = function () { o.default(this._element).hasClass("show") ? this.hide() : this.show() }, e.show = function () { var e, n, i = this; if (!this._isTransitioning && !o.default(this._element).hasClass("show") && (this._parent && 0 === (e = [].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function (t) { return "string" == typeof i._config.parent ? t.getAttribute("data-parent") === i._config.parent : t.classList.contains("collapse") }))).length && (e = null), !(e && (n = o.default(e).not(this._selector).data("bs.collapse")) && n._isTransitioning))) { var a = o.default.Event("show.bs.collapse"); if (o.default(this._element).trigger(a), !a.isDefaultPrevented()) { e && (t._jQueryInterface.call(o.default(e).not(this._selector), "hide"), n || o.default(e).data("bs.collapse", null)); var s = this._getDimension(); o.default(this._element).removeClass("collapse").addClass("collapsing"), this._element.style[s] = 0, this._triggerArray.length && o.default(this._triggerArray).removeClass("collapsed").attr("aria-expanded", !0), this.setTransitioning(!0); var l = "scroll" + (s[0].toUpperCase() + s.slice(1)), r = d.getTransitionDurationFromElement(this._element); o.default(this._element).one(d.TRANSITION_END, (function () { o.default(i._element).removeClass("collapsing").addClass("collapse show"), i._element.style[s] = "", i.setTransitioning(!1), o.default(i._element).trigger("shown.bs.collapse") })).emulateTransitionEnd(r), this._element.style[s] = this._element[l] + "px" } } }, e.hide = function () { var t = this; if (!this._isTransitioning && o.default(this._element).hasClass("show")) { var e = o.default.Event("hide.bs.collapse"); if (o.default(this._element).trigger(e), !e.isDefaultPrevented()) { var n = this._getDimension(); this._element.style[n] = this._element.getBoundingClientRect()[n] + "px", d.reflow(this._element), o.default(this._element).addClass("collapsing").removeClass("collapse show"); var i = this._triggerArray.length; if (i > 0) for (var a = 0; a < i; a++) { var s = this._triggerArray[a], l = d.getSelectorFromElement(s); if (null !== l) o.default([].slice.call(document.querySelectorAll(l))).hasClass("show") || o.default(s).addClass("collapsed").attr("aria-expanded", !1) } this.setTransitioning(!0); this._element.style[n] = ""; var r = d.getTransitionDurationFromElement(this._element); o.default(this._element).one(d.TRANSITION_END, (function () { t.setTransitioning(!1), o.default(t._element).removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse") })).emulateTransitionEnd(r) } } }, e.setTransitioning = function (t) { this._isTransitioning = t }, e.dispose = function () { o.default.removeData(this._element, "bs.collapse"), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null }, e._getConfig = function (t) { return (t = r({}, S, t)).toggle = Boolean(t.toggle), d.typeCheckConfig(T, t, N), t }, e._getDimension = function () { return o.default(this._element).hasClass("width") ? "width" : "height" }, e._getParent = function () { var e, n = this; d.isElement(this._config.parent) ? (e = this._config.parent, "undefined" != typeof this._config.parent.jquery && (e = this._config.parent[0])) : e = document.querySelector(this._config.parent); var i = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]', a = [].slice.call(e.querySelectorAll(i)); return o.default(a).each((function (e, i) { n._addAriaAndCollapsedClass(t._getTargetFromElement(i), [i]) })), e }, e._addAriaAndCollapsedClass = function (t, e) { var n = o.default(t).hasClass("show"); e.length && o.default(e).toggleClass("collapsed", !n).attr("aria-expanded", n) }, t._getTargetFromElement = function (t) { var e = d.getSelectorFromElement(t); return e ? document.querySelector(e) : null }, t._jQueryInterface = function (e) { return this.each((function () { var n = o.default(this), i = n.data("bs.collapse"), a = r({}, S, n.data(), "object" == typeof e && e ? e : {}); if (!i && a.toggle && "string" == typeof e && /show|hide/.test(e) && (a.toggle = !1), i || (i = new t(this, a), n.data("bs.collapse", i)), "string" == typeof e) { if ("undefined" == typeof i[e]) throw new TypeError('No method named "' + e + '"'); i[e]() } })) }, l(t, null, [{ key: "VERSION", get: function () { return "4.5.3" } }, { key: "Default", get: function () { return S } }]), t }(); o.default(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', (function (t) { "A" === t.currentTarget.tagName && t.preventDefault(); var e = o.default(this), n = d.getSelectorFromElement(this), i = [].slice.call(document.querySelectorAll(n)); o.default(i).each((function () { var t = o.default(this), n = t.data("bs.collapse") ? "toggle" : e.data(); D._jQueryInterface.call(t, n) })) })), o.default.fn[T] = D._jQueryInterface, o.default.fn[T].Constructor = D, o.default.fn[T].noConflict = function () { return o.default.fn[T] = C, D._jQueryInterface }; var k = "dropdown", A = o.default.fn[k], I = new RegExp("38|40|27"), j = { offset: 0, flip: !0, boundary: "scrollParent", reference: "toggle", display: "dynamic", popperConfig: null }, O = { offset: "(number|string|function)", flip: "boolean", boundary: "(string|element)", reference: "(string|element)", display: "string", popperConfig: "(null|object)" }, x = function () { function t(t, e) { this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners() } var e = t.prototype; return e.toggle = function () { if (!this._element.disabled && !o.default(this._element).hasClass("disabled")) { var e = o.default(this._menu).hasClass("show"); t._clearMenus(), e || this.show(!0) } }, e.show = function (e) { if (void 0 === e && (e = !1), !(this._element.disabled || o.default(this._element).hasClass("disabled") || o.default(this._menu).hasClass("show"))) { var n = { relatedTarget: this._element }, i = o.default.Event("show.bs.dropdown", n), s = t._getParentFromElement(this._element); if (o.default(s).trigger(i), !i.isDefaultPrevented()) { if (!this._inNavbar && e) { if ("undefined" == typeof a.default) throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)"); var l = this._element; "parent" === this._config.reference ? l = s : d.isElement(this._config.reference) && (l = this._config.reference, "undefined" != typeof this._config.reference.jquery && (l = this._config.reference[0])), "scrollParent" !== this._config.boundary && o.default(s).addClass("position-static"), this._popper = new a.default(l, this._menu, this._getPopperConfig()) } "ontouchstart" in document.documentElement && 0 === o.default(s).closest(".navbar-nav").length && o.default(document.body).children().on("mouseover", null, o.default.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), o.default(this._menu).toggleClass("show"), o.default(s).toggleClass("show").trigger(o.default.Event("shown.bs.dropdown", n)) } } }, e.hide = function () { if (!this._element.disabled && !o.default(this._element).hasClass("disabled") && o.default(this._menu).hasClass("show")) { var e = { relatedTarget: this._element }, n = o.default.Event("hide.bs.dropdown", e), i = t._getParentFromElement(this._element); o.default(i).trigger(n), n.isDefaultPrevented() || (this._popper && this._popper.destroy(), o.default(this._menu).toggleClass("show"), o.default(i).toggleClass("show").trigger(o.default.Event("hidden.bs.dropdown", e))) } }, e.dispose = function () { o.default.removeData(this._element, "bs.dropdown"), o.default(this._element).off(".bs.dropdown"), this._element = null, this._menu = null, null !== this._popper && (this._popper.destroy(), this._popper = null) }, e.update = function () { this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate() }, e._addEventListeners = function () { var t = this; o.default(this._element).on("click.bs.dropdown", (function (e) { e.preventDefault(), e.stopPropagation(), t.toggle() })) }, e._getConfig = function (t) { return t = r({}, this.constructor.Default, o.default(this._element).data(), t), d.typeCheckConfig(k, t, this.constructor.DefaultType), t }, e._getMenuElement = function () { if (!this._menu) { var e = t._getParentFromElement(this._element); e && (this._menu = e.querySelector(".dropdown-menu")) } return this._menu }, e._getPlacement = function () { var t = o.default(this._element.parentNode), e = "bottom-start"; return t.hasClass("dropup") ? e = o.default(this._menu).hasClass("dropdown-menu-right") ? "top-end" : "top-start" : t.hasClass("dropright") ? e = "right-start" : t.hasClass("dropleft") ? e = "left-start" : o.default(this._menu).hasClass("dropdown-menu-right") && (e = "bottom-end"), e }, e._detectNavbar = function () { return o.default(this._element).closest(".navbar").length > 0 }, e._getOffset = function () { var t = this, e = {}; return "function" == typeof this._config.offset ? e.fn = function (e) { return e.offsets = r({}, e.offsets, t._config.offset(e.offsets, t._element) || {}), e } : e.offset = this._config.offset, e }, e._getPopperConfig = function () { var t = { placement: this._getPlacement(), modifiers: { offset: this._getOffset(), flip: { enabled: this._config.flip }, preventOverflow: { boundariesElement: this._config.boundary } } }; return "static" === this._config.display && (t.modifiers.applyStyle = { enabled: !1 }), r({}, t, this._config.popperConfig) }, t._jQueryInterface = function (e) { return this.each((function () { var n = o.default(this).data("bs.dropdown"); if (n || (n = new t(this, "object" == typeof e ? e : null), o.default(this).data("bs.dropdown", n)), "string" == typeof e) { if ("undefined" == typeof n[e]) throw new TypeError('No method named "' + e + '"'); n[e]() } })) }, t._clearMenus = function (e) { if (!e || 3 !== e.which && ("keyup" !== e.type || 9 === e.which)) for (var n = [].slice.call(document.querySelectorAll('[data-toggle="dropdown"]')), i = 0, a = n.length; i < a; i++) { var s = t._getParentFromElement(n[i]), l = o.default(n[i]).data("bs.dropdown"), r = { relatedTarget: n[i] }; if (e && "click" === e.type && (r.clickEvent = e), l) { var u = l._menu; if (o.default(s).hasClass("show") && !(e && ("click" === e.type && /input|textarea/i.test(e.target.tagName) || "keyup" === e.type && 9 === e.which) && o.default.contains(s, e.target))) { var d = o.default.Event("hide.bs.dropdown", r); o.default(s).trigger(d), d.isDefaultPrevented() || ("ontouchstart" in document.documentElement && o.default(document.body).children().off("mouseover", null, o.default.noop), n[i].setAttribute("aria-expanded", "false"), l._popper && l._popper.destroy(), o.default(u).removeClass("show"), o.default(s).removeClass("show").trigger(o.default.Event("hidden.bs.dropdown", r))) } } } }, t._getParentFromElement = function (t) { var e, n = d.getSelectorFromElement(t); return n && (e = document.querySelector(n)), e || t.parentNode }, t._dataApiKeydownHandler = function (e) { if (!(/input|textarea/i.test(e.target.tagName) ? 32 === e.which || 27 !== e.which && (40 !== e.which && 38 !== e.which || o.default(e.target).closest(".dropdown-menu").length) : !I.test(e.which)) && !this.disabled && !o.default(this).hasClass("disabled")) { var n = t._getParentFromElement(this), i = o.default(n).hasClass("show"); if (i || 27 !== e.which) { if (e.preventDefault(), e.stopPropagation(), !i || 27 === e.which || 32 === e.which) return 27 === e.which && o.default(n.querySelector('[data-toggle="dropdown"]')).trigger("focus"), void o.default(this).trigger("click"); var a = [].slice.call(n.querySelectorAll(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)")).filter((function (t) { return o.default(t).is(":visible") })); if (0 !== a.length) { var s = a.indexOf(e.target); 38 === e.which && s > 0 && s--, 40 === e.which && s < a.length - 1 && s++, s < 0 && (s = 0), a[s].focus() } } } }, l(t, null, [{ key: "VERSION", get: function () { return "4.5.3" } }, { key: "Default", get: function () { return j } }, { key: "DefaultType", get: function () { return O } }]), t }(); o.default(document).on("keydown.bs.dropdown.data-api", '[data-toggle="dropdown"]', x._dataApiKeydownHandler).on("keydown.bs.dropdown.data-api", ".dropdown-menu", x._dataApiKeydownHandler).on("click.bs.dropdown.data-api keyup.bs.dropdown.data-api", x._clearMenus).on("click.bs.dropdown.data-api", '[data-toggle="dropdown"]', (function (t) { t.preventDefault(), t.stopPropagation(), x._jQueryInterface.call(o.default(this), "toggle") })).on("click.bs.dropdown.data-api", ".dropdown form", (function (t) { t.stopPropagation() })), o.default.fn[k] = x._jQueryInterface, o.default.fn[k].Constructor = x, o.default.fn[k].noConflict = function () { return o.default.fn[k] = A, x._jQueryInterface }; var P = o.default.fn.modal, R = { backdrop: !0, keyboard: !0, focus: !0, show: !0 }, L = { backdrop: "(boolean|string)", keyboard: "boolean", focus: "boolean", show: "boolean" }, q = function () { function t(t, e) { this._config = this._getConfig(e), this._element = t, this._dialog = t.querySelector(".modal-dialog"), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0 } var e = t.prototype; return e.toggle = function (t) { return this._isShown ? this.hide() : this.show(t) }, e.show = function (t) { var e = this; if (!this._isShown && !this._isTransitioning) { o.default(this._element).hasClass("fade") && (this._isTransitioning = !0); var n = o.default.Event("show.bs.modal", { relatedTarget: t }); o.default(this._element).trigger(n), this._isShown || n.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), o.default(this._element).on("click.dismiss.bs.modal", '[data-dismiss="modal"]', (function (t) { return e.hide(t) })), o.default(this._dialog).on("mousedown.dismiss.bs.modal", (function () { o.default(e._element).one("mouseup.dismiss.bs.modal", (function (t) { o.default(t.target).is(e._element) && (e._ignoreBackdropClick = !0) })) })), this._showBackdrop((function () { return e._showElement(t) }))) } }, e.hide = function (t) { var e = this; if (t && t.preventDefault(), this._isShown && !this._isTransitioning) { var n = o.default.Event("hide.bs.modal"); if (o.default(this._element).trigger(n), this._isShown && !n.isDefaultPrevented()) { this._isShown = !1; var i = o.default(this._element).hasClass("fade"); if (i && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), o.default(document).off("focusin.bs.modal"), o.default(this._element).removeClass("show"), o.default(this._element).off("click.dismiss.bs.modal"), o.default(this._dialog).off("mousedown.dismiss.bs.modal"), i) { var a = d.getTransitionDurationFromElement(this._element); o.default(this._element).one(d.TRANSITION_END, (function (t) { return e._hideModal(t) })).emulateTransitionEnd(a) } else this._hideModal() } } }, e.dispose = function () { [window, this._element, this._dialog].forEach((function (t) { return o.default(t).off(".bs.modal") })), o.default(document).off("focusin.bs.modal"), o.default.removeData(this._element, "bs.modal"), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null }, e.handleUpdate = function () { this._adjustDialog() }, e._getConfig = function (t) { return t = r({}, R, t), d.typeCheckConfig("modal", t, L), t }, e._triggerBackdropTransition = function () { var t = this; if ("static" === this._config.backdrop) { var e = o.default.Event("hidePrevented.bs.modal"); if (o.default(this._element).trigger(e), e.isDefaultPrevented()) return; var n = this._element.scrollHeight > document.documentElement.clientHeight; n || (this._element.style.overflowY = "hidden"), this._element.classList.add("modal-static"); var i = d.getTransitionDurationFromElement(this._dialog); o.default(this._element).off(d.TRANSITION_END), o.default(this._element).one(d.TRANSITION_END, (function () { t._element.classList.remove("modal-static"), n || o.default(t._element).one(d.TRANSITION_END, (function () { t._element.style.overflowY = "" })).emulateTransitionEnd(t._element, i) })).emulateTransitionEnd(i), this._element.focus() } else this.hide() }, e._showElement = function (t) { var e = this, n = o.default(this._element).hasClass("fade"), i = this._dialog ? this._dialog.querySelector(".modal-body") : null; this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), o.default(this._dialog).hasClass("modal-dialog-scrollable") && i ? i.scrollTop = 0 : this._element.scrollTop = 0, n && d.reflow(this._element), o.default(this._element).addClass("show"), this._config.focus && this._enforceFocus(); var a = o.default.Event("shown.bs.modal", { relatedTarget: t }), s = function () { e._config.focus && e._element.focus(), e._isTransitioning = !1, o.default(e._element).trigger(a) }; if (n) { var l = d.getTransitionDurationFromElement(this._dialog); o.default(this._dialog).one(d.TRANSITION_END, s).emulateTransitionEnd(l) } else s() }, e._enforceFocus = function () { var t = this; o.default(document).off("focusin.bs.modal").on("focusin.bs.modal", (function (e) { document !== e.target && t._element !== e.target && 0 === o.default(t._element).has(e.target).length && t._element.focus() })) }, e._setEscapeEvent = function () { var t = this; this._isShown ? o.default(this._element).on("keydown.dismiss.bs.modal", (function (e) { t._config.keyboard && 27 === e.which ? (e.preventDefault(), t.hide()) : t._config.keyboard || 27 !== e.which || t._triggerBackdropTransition() })) : this._isShown || o.default(this._element).off("keydown.dismiss.bs.modal") }, e._setResizeEvent = function () { var t = this; this._isShown ? o.default(window).on("resize.bs.modal", (function (e) { return t.handleUpdate(e) })) : o.default(window).off("resize.bs.modal") }, e._hideModal = function () { var t = this; this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._isTransitioning = !1, this._showBackdrop((function () { o.default(document.body).removeClass("modal-open"), t._resetAdjustments(), t._resetScrollbar(), o.default(t._element).trigger("hidden.bs.modal") })) }, e._removeBackdrop = function () { this._backdrop && (o.default(this._backdrop).remove(), this._backdrop = null) }, e._showBackdrop = function (t) { var e = this, n = o.default(this._element).hasClass("fade") ? "fade" : ""; if (this._isShown && this._config.backdrop) { if (this._backdrop = document.createElement("div"), this._backdrop.className = "modal-backdrop", n && this._backdrop.classList.add(n), o.default(this._backdrop).appendTo(document.body), o.default(this._element).on("click.dismiss.bs.modal", (function (t) { e._ignoreBackdropClick ? e._ignoreBackdropClick = !1 : t.target === t.currentTarget && e._triggerBackdropTransition() })), n && d.reflow(this._backdrop), o.default(this._backdrop).addClass("show"), !t) return; if (!n) return void t(); var i = d.getTransitionDurationFromElement(this._backdrop); o.default(this._backdrop).one(d.TRANSITION_END, t).emulateTransitionEnd(i) } else if (!this._isShown && this._backdrop) { o.default(this._backdrop).removeClass("show"); var a = function () { e._removeBackdrop(), t && t() }; if (o.default(this._element).hasClass("fade")) { var s = d.getTransitionDurationFromElement(this._backdrop); o.default(this._backdrop).one(d.TRANSITION_END, a).emulateTransitionEnd(s) } else a() } else t && t() }, e._adjustDialog = function () { var t = this._element.scrollHeight > document.documentElement.clientHeight; !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px") }, e._resetAdjustments = function () { this._element.style.paddingLeft = "", this._element.style.paddingRight = "" }, e._checkScrollbar = function () { var t = document.body.getBoundingClientRect(); this._isBodyOverflowing = Math.round(t.left + t.right) < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth() }, e._setScrollbar = function () { var t = this; if (this._isBodyOverflowing) { var e = [].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top")), n = [].slice.call(document.querySelectorAll(".sticky-top")); o.default(e).each((function (e, n) { var i = n.style.paddingRight, a = o.default(n).css("padding-right"); o.default(n).data("padding-right", i).css("padding-right", parseFloat(a) + t._scrollbarWidth + "px") })), o.default(n).each((function (e, n) { var i = n.style.marginRight, a = o.default(n).css("margin-right"); o.default(n).data("margin-right", i).css("margin-right", parseFloat(a) - t._scrollbarWidth + "px") })); var i = document.body.style.paddingRight, a = o.default(document.body).css("padding-right"); o.default(document.body).data("padding-right", i).css("padding-right", parseFloat(a) + this._scrollbarWidth + "px") } o.default(document.body).addClass("modal-open") }, e._resetScrollbar = function () { var t = [].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top")); o.default(t).each((function (t, e) { var n = o.default(e).data("padding-right"); o.default(e).removeData("padding-right"), e.style.paddingRight = n || "" })); var e = [].slice.call(document.querySelectorAll(".sticky-top")); o.default(e).each((function (t, e) { var n = o.default(e).data("margin-right"); "undefined" != typeof n && o.default(e).css("margin-right", n).removeData("margin-right") })); var n = o.default(document.body).data("padding-right"); o.default(document.body).removeData("padding-right"), document.body.style.paddingRight = n || "" }, e._getScrollbarWidth = function () { var t = document.createElement("div"); t.className = "modal-scrollbar-measure", document.body.appendChild(t); var e = t.getBoundingClientRect().width - t.clientWidth; return document.body.removeChild(t), e }, t._jQueryInterface = function (e, n) { return this.each((function () { var i = o.default(this).data("bs.modal"), a = r({}, R, o.default(this).data(), "object" == typeof e && e ? e : {}); if (i || (i = new t(this, a), o.default(this).data("bs.modal", i)), "string" == typeof e) { if ("undefined" == typeof i[e]) throw new TypeError('No method named "' + e + '"'); i[e](n) } else a.show && i.show(n) })) }, l(t, null, [{ key: "VERSION", get: function () { return "4.5.3" } }, { key: "Default", get: function () { return R } }]), t }(); o.default(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', (function (t) { var e, n = this, i = d.getSelectorFromElement(this); i && (e = document.querySelector(i)); var a = o.default(e).data("bs.modal") ? "toggle" : r({}, o.default(e).data(), o.default(this).data()); "A" !== this.tagName && "AREA" !== this.tagName || t.preventDefault(); var s = o.default(e).one("show.bs.modal", (function (t) { t.isDefaultPrevented() || s.one("hidden.bs.modal", (function () { o.default(n).is(":visible") && n.focus() })) })); q._jQueryInterface.call(o.default(e), a, this) })), o.default.fn.modal = q._jQueryInterface, o.default.fn.modal.Constructor = q, o.default.fn.modal.noConflict = function () { return o.default.fn.modal = P, q._jQueryInterface }; var F = ["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"], Q = { "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i], a: ["target", "href", "title", "rel"], area: [], b: [], br: [], col: [], code: [], div: [], em: [], hr: [], h1: [], h2: [], h3: [], h4: [], h5: [], h6: [], i: [], img: ["src", "srcset", "alt", "title", "width", "height"], li: [], ol: [], p: [], pre: [], s: [], small: [], span: [], sub: [], sup: [], strong: [], u: [], ul: [] }, B = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi, H = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i; function U(t, e, n) { if (0 === t.length) return t; if (n && "function" == typeof n) return n(t); for (var i = (new window.DOMParser).parseFromString(t, "text/html"), o = Object.keys(e), a = [].slice.call(i.body.querySelectorAll("*")), s = function (t, n) { var i = a[t], s = i.nodeName.toLowerCase(); if (-1 === o.indexOf(i.nodeName.toLowerCase())) return i.parentNode.removeChild(i), "continue"; var l = [].slice.call(i.attributes), r = [].concat(e["*"] || [], e[s] || []); l.forEach((function (t) { (function (t, e) { var n = t.nodeName.toLowerCase(); if (-1 !== e.indexOf(n)) return -1 === F.indexOf(n) || Boolean(t.nodeValue.match(B) || t.nodeValue.match(H)); for (var i = e.filter((function (t) { return t instanceof RegExp })), o = 0, a = i.length; o < a; o++) if (n.match(i[o])) return !0; return !1 })(t, r) || i.removeAttribute(t.nodeName) })) }, l = 0, r = a.length; l < r; l++) s(l); return i.body.innerHTML } var M = "tooltip", W = o.default.fn[M], V = new RegExp("(^|\\s)bs-tooltip\\S+", "g"), z = ["sanitize", "whiteList", "sanitizeFn"], K = { animation: "boolean", template: "string", title: "(string|element|function)", trigger: "string", delay: "(number|object)", html: "boolean", selector: "(string|boolean)", placement: "(string|function)", offset: "(number|string|function)", container: "(string|element|boolean)", fallbackPlacement: "(string|array)", boundary: "(string|element)", sanitize: "boolean", sanitizeFn: "(null|function)", whiteList: "object", popperConfig: "(null|object)" }, X = { AUTO: "auto", TOP: "top", RIGHT: "right", BOTTOM: "bottom", LEFT: "left" }, Y = { animation: !0, template: '', trigger: "hover focus", title: "", delay: 0, html: !1, selector: !1, placement: "top", offset: 0, container: !1, fallbackPlacement: "flip", boundary: "scrollParent", sanitize: !0, sanitizeFn: null, whiteList: Q, popperConfig: null }, $ = { HIDE: "hide.bs.tooltip", HIDDEN: "hidden.bs.tooltip", SHOW: "show.bs.tooltip", SHOWN: "shown.bs.tooltip", INSERTED: "inserted.bs.tooltip", CLICK: "click.bs.tooltip", FOCUSIN: "focusin.bs.tooltip", FOCUSOUT: "focusout.bs.tooltip", MOUSEENTER: "mouseenter.bs.tooltip", MOUSELEAVE: "mouseleave.bs.tooltip" }, J = function () { function t(t, e) { if ("undefined" == typeof a.default) throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)"); this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this.element = t, this.config = this._getConfig(e), this.tip = null, this._setListeners() } var e = t.prototype; return e.enable = function () { this._isEnabled = !0 }, e.disable = function () { this._isEnabled = !1 }, e.toggleEnabled = function () { this._isEnabled = !this._isEnabled }, e.toggle = function (t) { if (this._isEnabled) if (t) { var e = this.constructor.DATA_KEY, n = o.default(t.currentTarget).data(e); n || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), o.default(t.currentTarget).data(e, n)), n._activeTrigger.click = !n._activeTrigger.click, n._isWithActiveTrigger() ? n._enter(null, n) : n._leave(null, n) } else { if (o.default(this.getTipElement()).hasClass("show")) return void this._leave(null, this); this._enter(null, this) } }, e.dispose = function () { clearTimeout(this._timeout), o.default.removeData(this.element, this.constructor.DATA_KEY), o.default(this.element).off(this.constructor.EVENT_KEY), o.default(this.element).closest(".modal").off("hide.bs.modal", this._hideModalHandler), this.tip && o.default(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null }, e.show = function () { var t = this; if ("none" === o.default(this.element).css("display")) throw new Error("Please use show on visible elements"); var e = o.default.Event(this.constructor.Event.SHOW); if (this.isWithContent() && this._isEnabled) { o.default(this.element).trigger(e); var n = d.findShadowRoot(this.element), i = o.default.contains(null !== n ? n : this.element.ownerDocument.documentElement, this.element); if (e.isDefaultPrevented() || !i) return; var s = this.getTipElement(), l = d.getUID(this.constructor.NAME); s.setAttribute("id", l), this.element.setAttribute("aria-describedby", l), this.setContent(), this.config.animation && o.default(s).addClass("fade"); var r = "function" == typeof this.config.placement ? this.config.placement.call(this, s, this.element) : this.config.placement, u = this._getAttachment(r); this.addAttachmentClass(u); var f = this._getContainer(); o.default(s).data(this.constructor.DATA_KEY, this), o.default.contains(this.element.ownerDocument.documentElement, this.tip) || o.default(s).appendTo(f), o.default(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new a.default(this.element, s, this._getPopperConfig(u)), o.default(s).addClass("show"), "ontouchstart" in document.documentElement && o.default(document.body).children().on("mouseover", null, o.default.noop); var c = function () { t.config.animation && t._fixTransition(); var e = t._hoverState; t._hoverState = null, o.default(t.element).trigger(t.constructor.Event.SHOWN), "out" === e && t._leave(null, t) }; if (o.default(this.tip).hasClass("fade")) { var h = d.getTransitionDurationFromElement(this.tip); o.default(this.tip).one(d.TRANSITION_END, c).emulateTransitionEnd(h) } else c() } }, e.hide = function (t) { var e = this, n = this.getTipElement(), i = o.default.Event(this.constructor.Event.HIDE), a = function () { "show" !== e._hoverState && n.parentNode && n.parentNode.removeChild(n), e._cleanTipClass(), e.element.removeAttribute("aria-describedby"), o.default(e.element).trigger(e.constructor.Event.HIDDEN), null !== e._popper && e._popper.destroy(), t && t() }; if (o.default(this.element).trigger(i), !i.isDefaultPrevented()) { if (o.default(n).removeClass("show"), "ontouchstart" in document.documentElement && o.default(document.body).children().off("mouseover", null, o.default.noop), this._activeTrigger.click = !1, this._activeTrigger.focus = !1, this._activeTrigger.hover = !1, o.default(this.tip).hasClass("fade")) { var s = d.getTransitionDurationFromElement(n); o.default(n).one(d.TRANSITION_END, a).emulateTransitionEnd(s) } else a(); this._hoverState = "" } }, e.update = function () { null !== this._popper && this._popper.scheduleUpdate() }, e.isWithContent = function () { return Boolean(this.getTitle()) }, e.addAttachmentClass = function (t) { o.default(this.getTipElement()).addClass("bs-tooltip-" + t) }, e.getTipElement = function () { return this.tip = this.tip || o.default(this.config.template)[0], this.tip }, e.setContent = function () { var t = this.getTipElement(); this.setElementContent(o.default(t.querySelectorAll(".tooltip-inner")), this.getTitle()), o.default(t).removeClass("fade show") }, e.setElementContent = function (t, e) { "object" != typeof e || !e.nodeType && !e.jquery ? this.config.html ? (this.config.sanitize && (e = U(e, this.config.whiteList, this.config.sanitizeFn)), t.html(e)) : t.text(e) : this.config.html ? o.default(e).parent().is(t) || t.empty().append(e) : t.text(o.default(e).text()) }, e.getTitle = function () { var t = this.element.getAttribute("data-original-title"); return t || (t = "function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), t }, e._getPopperConfig = function (t) { var e = this; return r({}, { placement: t, modifiers: { offset: this._getOffset(), flip: { behavior: this.config.fallbackPlacement }, arrow: { element: ".arrow" }, preventOverflow: { boundariesElement: this.config.boundary } }, onCreate: function (t) { t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t) }, onUpdate: function (t) { return e._handlePopperPlacementChange(t) } }, this.config.popperConfig) }, e._getOffset = function () { var t = this, e = {}; return "function" == typeof this.config.offset ? e.fn = function (e) { return e.offsets = r({}, e.offsets, t.config.offset(e.offsets, t.element) || {}), e } : e.offset = this.config.offset, e }, e._getContainer = function () { return !1 === this.config.container ? document.body : d.isElement(this.config.container) ? o.default(this.config.container) : o.default(document).find(this.config.container) }, e._getAttachment = function (t) { return X[t.toUpperCase()] }, e._setListeners = function () { var t = this; this.config.trigger.split(" ").forEach((function (e) { if ("click" === e) o.default(t.element).on(t.constructor.Event.CLICK, t.config.selector, (function (e) { return t.toggle(e) })); else if ("manual" !== e) { var n = "hover" === e ? t.constructor.Event.MOUSEENTER : t.constructor.Event.FOCUSIN, i = "hover" === e ? t.constructor.Event.MOUSELEAVE : t.constructor.Event.FOCUSOUT; o.default(t.element).on(n, t.config.selector, (function (e) { return t._enter(e) })).on(i, t.config.selector, (function (e) { return t._leave(e) })) } })), this._hideModalHandler = function () { t.element && t.hide() }, o.default(this.element).closest(".modal").on("hide.bs.modal", this._hideModalHandler), this.config.selector ? this.config = r({}, this.config, { trigger: "manual", selector: "" }) : this._fixTitle() }, e._fixTitle = function () { var t = typeof this.element.getAttribute("data-original-title"); (this.element.getAttribute("title") || "string" !== t) && (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", "")) }, e._enter = function (t, e) { var n = this.constructor.DATA_KEY; (e = e || o.default(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), o.default(t.currentTarget).data(n, e)), t && (e._activeTrigger["focusin" === t.type ? "focus" : "hover"] = !0), o.default(e.getTipElement()).hasClass("show") || "show" === e._hoverState ? e._hoverState = "show" : (clearTimeout(e._timeout), e._hoverState = "show", e.config.delay && e.config.delay.show ? e._timeout = setTimeout((function () { "show" === e._hoverState && e.show() }), e.config.delay.show) : e.show()) }, e._leave = function (t, e) { var n = this.constructor.DATA_KEY; (e = e || o.default(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), o.default(t.currentTarget).data(n, e)), t && (e._activeTrigger["focusout" === t.type ? "focus" : "hover"] = !1), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = "out", e.config.delay && e.config.delay.hide ? e._timeout = setTimeout((function () { "out" === e._hoverState && e.hide() }), e.config.delay.hide) : e.hide()) }, e._isWithActiveTrigger = function () { for (var t in this._activeTrigger) if (this._activeTrigger[t]) return !0; return !1 }, e._getConfig = function (t) { var e = o.default(this.element).data(); return Object.keys(e).forEach((function (t) { -1 !== z.indexOf(t) && delete e[t] })), "number" == typeof (t = r({}, this.constructor.Default, e, "object" == typeof t && t ? t : {})).delay && (t.delay = { show: t.delay, hide: t.delay }), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), d.typeCheckConfig(M, t, this.constructor.DefaultType), t.sanitize && (t.template = U(t.template, t.whiteList, t.sanitizeFn)), t }, e._getDelegateConfig = function () { var t = {}; if (this.config) for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]); return t }, e._cleanTipClass = function () { var t = o.default(this.getTipElement()), e = t.attr("class").match(V); null !== e && e.length && t.removeClass(e.join("")) }, e._handlePopperPlacementChange = function (t) { this.tip = t.instance.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement)) }, e._fixTransition = function () { var t = this.getTipElement(), e = this.config.animation; null === t.getAttribute("x-placement") && (o.default(t).removeClass("fade"), this.config.animation = !1, this.hide(), this.show(), this.config.animation = e) }, t._jQueryInterface = function (e) { return this.each((function () { var n = o.default(this), i = n.data("bs.tooltip"), a = "object" == typeof e && e; if ((i || !/dispose|hide/.test(e)) && (i || (i = new t(this, a), n.data("bs.tooltip", i)), "string" == typeof e)) { if ("undefined" == typeof i[e]) throw new TypeError('No method named "' + e + '"'); i[e]() } })) }, l(t, null, [{ key: "VERSION", get: function () { return "4.5.3" } }, { key: "Default", get: function () { return Y } }, { key: "NAME", get: function () { return M } }, { key: "DATA_KEY", get: function () { return "bs.tooltip" } }, { key: "Event", get: function () { return $ } }, { key: "EVENT_KEY", get: function () { return ".bs.tooltip" } }, { key: "DefaultType", get: function () { return K } }]), t }(); o.default.fn[M] = J._jQueryInterface, o.default.fn[M].Constructor = J, o.default.fn[M].noConflict = function () { return o.default.fn[M] = W, J._jQueryInterface }; var G = "popover", Z = o.default.fn[G], tt = new RegExp("(^|\\s)bs-popover\\S+", "g"), et = r({}, J.Default, { placement: "right", trigger: "click", content: "", template: '' }), nt = r({}, J.DefaultType, { content: "(string|element|function)" }), it = { HIDE: "hide.bs.popover", HIDDEN: "hidden.bs.popover", SHOW: "show.bs.popover", SHOWN: "shown.bs.popover", INSERTED: "inserted.bs.popover", CLICK: "click.bs.popover", FOCUSIN: "focusin.bs.popover", FOCUSOUT: "focusout.bs.popover", MOUSEENTER: "mouseenter.bs.popover", MOUSELEAVE: "mouseleave.bs.popover" }, ot = function (t) { var e, n; function i() { return t.apply(this, arguments) || this } n = t, (e = i).prototype = Object.create(n.prototype), e.prototype.constructor = e, e.__proto__ = n; var a = i.prototype; return a.isWithContent = function () { return this.getTitle() || this._getContent() }, a.addAttachmentClass = function (t) { o.default(this.getTipElement()).addClass("bs-popover-" + t) }, a.getTipElement = function () { return this.tip = this.tip || o.default(this.config.template)[0], this.tip }, a.setContent = function () { var t = o.default(this.getTipElement()); this.setElementContent(t.find(".popover-header"), this.getTitle()); var e = this._getContent(); "function" == typeof e && (e = e.call(this.element)), this.setElementContent(t.find(".popover-body"), e), t.removeClass("fade show") }, a._getContent = function () { return this.element.getAttribute("data-content") || this.config.content }, a._cleanTipClass = function () { var t = o.default(this.getTipElement()), e = t.attr("class").match(tt); null !== e && e.length > 0 && t.removeClass(e.join("")) }, i._jQueryInterface = function (t) { return this.each((function () { var e = o.default(this).data("bs.popover"), n = "object" == typeof t ? t : null; if ((e || !/dispose|hide/.test(t)) && (e || (e = new i(this, n), o.default(this).data("bs.popover", e)), "string" == typeof t)) { if ("undefined" == typeof e[t]) throw new TypeError('No method named "' + t + '"'); e[t]() } })) }, l(i, null, [{ key: "VERSION", get: function () { return "4.5.3" } }, { key: "Default", get: function () { return et } }, { key: "NAME", get: function () { return G } }, { key: "DATA_KEY", get: function () { return "bs.popover" } }, { key: "Event", get: function () { return it } }, { key: "EVENT_KEY", get: function () { return ".bs.popover" } }, { key: "DefaultType", get: function () { return nt } }]), i }(J); o.default.fn[G] = ot._jQueryInterface, o.default.fn[G].Constructor = ot, o.default.fn[G].noConflict = function () { return o.default.fn[G] = Z, ot._jQueryInterface }; var at = "scrollspy", st = o.default.fn[at], lt = { offset: 10, method: "auto", target: "" }, rt = { offset: "number", method: "string", target: "(string|element)" }, ut = function () { function t(t, e) { var n = this; this._element = t, this._scrollElement = "BODY" === t.tagName ? window : t, this._config = this._getConfig(e), this._selector = this._config.target + " .nav-link," + this._config.target + " .list-group-item," + this._config.target + " .dropdown-item", this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, o.default(this._scrollElement).on("scroll.bs.scrollspy", (function (t) { return n._process(t) })), this.refresh(), this._process() } var e = t.prototype; return e.refresh = function () { var t = this, e = this._scrollElement === this._scrollElement.window ? "offset" : "position", n = "auto" === this._config.method ? e : this._config.method, i = "position" === n ? this._getScrollTop() : 0; this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map((function (t) { var e, a = d.getSelectorFromElement(t); if (a && (e = document.querySelector(a)), e) { var s = e.getBoundingClientRect(); if (s.width || s.height) return [o.default(e)[n]().top + i, a] } return null })).filter((function (t) { return t })).sort((function (t, e) { return t[0] - e[0] })).forEach((function (e) { t._offsets.push(e[0]), t._targets.push(e[1]) })) }, e.dispose = function () { o.default.removeData(this._element, "bs.scrollspy"), o.default(this._scrollElement).off(".bs.scrollspy"), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null }, e._getConfig = function (t) { if ("string" != typeof (t = r({}, lt, "object" == typeof t && t ? t : {})).target && d.isElement(t.target)) { var e = o.default(t.target).attr("id"); e || (e = d.getUID(at), o.default(t.target).attr("id", e)), t.target = "#" + e } return d.typeCheckConfig(at, t, rt), t }, e._getScrollTop = function () { return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop }, e._getScrollHeight = function () { return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) }, e._getOffsetHeight = function () { return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height }, e._process = function () { var t = this._getScrollTop() + this._config.offset, e = this._getScrollHeight(), n = this._config.offset + e - this._getOffsetHeight(); if (this._scrollHeight !== e && this.refresh(), t >= n) { var i = this._targets[this._targets.length - 1]; this._activeTarget !== i && this._activate(i) } else { if (this._activeTarget && t < this._offsets[0] && this._offsets[0] > 0) return this._activeTarget = null, void this._clear(); for (var o = this._offsets.length; o--;) { this._activeTarget !== this._targets[o] && t >= this._offsets[o] && ("undefined" == typeof this._offsets[o + 1] || t < this._offsets[o + 1]) && this._activate(this._targets[o]) } } }, e._activate = function (t) { this._activeTarget = t, this._clear(); var e = this._selector.split(",").map((function (e) { return e + '[data-target="' + t + '"],' + e + '[href="' + t + '"]' })), n = o.default([].slice.call(document.querySelectorAll(e.join(",")))); n.hasClass("dropdown-item") ? (n.closest(".dropdown").find(".dropdown-toggle").addClass("active"), n.addClass("active")) : (n.addClass("active"), n.parents(".nav, .list-group").prev(".nav-link, .list-group-item").addClass("active"), n.parents(".nav, .list-group").prev(".nav-item").children(".nav-link").addClass("active")), o.default(this._scrollElement).trigger("activate.bs.scrollspy", { relatedTarget: t }) }, e._clear = function () { [].slice.call(document.querySelectorAll(this._selector)).filter((function (t) { return t.classList.contains("active") })).forEach((function (t) { return t.classList.remove("active") })) }, t._jQueryInterface = function (e) { return this.each((function () { var n = o.default(this).data("bs.scrollspy"); if (n || (n = new t(this, "object" == typeof e && e), o.default(this).data("bs.scrollspy", n)), "string" == typeof e) { if ("undefined" == typeof n[e]) throw new TypeError('No method named "' + e + '"'); n[e]() } })) }, l(t, null, [{ key: "VERSION", get: function () { return "4.5.3" } }, { key: "Default", get: function () { return lt } }]), t }(); o.default(window).on("load.bs.scrollspy.data-api", (function () { for (var t = [].slice.call(document.querySelectorAll('[data-spy="scroll"]')), e = t.length; e--;) { var n = o.default(t[e]); ut._jQueryInterface.call(n, n.data()) } })), o.default.fn[at] = ut._jQueryInterface, o.default.fn[at].Constructor = ut, o.default.fn[at].noConflict = function () { return o.default.fn[at] = st, ut._jQueryInterface }; var dt = o.default.fn.tab, ft = function () { function t(t) { this._element = t } var e = t.prototype; return e.show = function () { var t = this; if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && o.default(this._element).hasClass("active") || o.default(this._element).hasClass("disabled"))) { var e, n, i = o.default(this._element).closest(".nav, .list-group")[0], a = d.getSelectorFromElement(this._element); if (i) { var s = "UL" === i.nodeName || "OL" === i.nodeName ? "> li > .active" : ".active"; n = (n = o.default.makeArray(o.default(i).find(s)))[n.length - 1] } var l = o.default.Event("hide.bs.tab", { relatedTarget: this._element }), r = o.default.Event("show.bs.tab", { relatedTarget: n }); if (n && o.default(n).trigger(l), o.default(this._element).trigger(r), !r.isDefaultPrevented() && !l.isDefaultPrevented()) { a && (e = document.querySelector(a)), this._activate(this._element, i); var u = function () { var e = o.default.Event("hidden.bs.tab", { relatedTarget: t._element }), i = o.default.Event("shown.bs.tab", { relatedTarget: n }); o.default(n).trigger(e), o.default(t._element).trigger(i) }; e ? this._activate(e, e.parentNode, u) : u() } } }, e.dispose = function () { o.default.removeData(this._element, "bs.tab"), this._element = null }, e._activate = function (t, e, n) { var i = this, a = (!e || "UL" !== e.nodeName && "OL" !== e.nodeName ? o.default(e).children(".active") : o.default(e).find("> li > .active"))[0], s = n && a && o.default(a).hasClass("fade"), l = function () { return i._transitionComplete(t, a, n) }; if (a && s) { var r = d.getTransitionDurationFromElement(a); o.default(a).removeClass("show").one(d.TRANSITION_END, l).emulateTransitionEnd(r) } else l() }, e._transitionComplete = function (t, e, n) { if (e) { o.default(e).removeClass("active"); var i = o.default(e.parentNode).find("> .dropdown-menu .active")[0]; i && o.default(i).removeClass("active"), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !1) } if (o.default(t).addClass("active"), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), d.reflow(t), t.classList.contains("fade") && t.classList.add("show"), t.parentNode && o.default(t.parentNode).hasClass("dropdown-menu")) { var a = o.default(t).closest(".dropdown")[0]; if (a) { var s = [].slice.call(a.querySelectorAll(".dropdown-toggle")); o.default(s).addClass("active") } t.setAttribute("aria-expanded", !0) } n && n() }, t._jQueryInterface = function (e) { return this.each((function () { var n = o.default(this), i = n.data("bs.tab"); if (i || (i = new t(this), n.data("bs.tab", i)), "string" == typeof e) { if ("undefined" == typeof i[e]) throw new TypeError('No method named "' + e + '"'); i[e]() } })) }, l(t, null, [{ key: "VERSION", get: function () { return "4.5.3" } }]), t }(); o.default(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', (function (t) { t.preventDefault(), ft._jQueryInterface.call(o.default(this), "show") })), o.default.fn.tab = ft._jQueryInterface, o.default.fn.tab.Constructor = ft, o.default.fn.tab.noConflict = function () { return o.default.fn.tab = dt, ft._jQueryInterface }; var ct = o.default.fn.toast, ht = { animation: "boolean", autohide: "boolean", delay: "number" }, gt = { animation: !0, autohide: !0, delay: 500 }, mt = function () { function t(t, e) { this._element = t, this._config = this._getConfig(e), this._timeout = null, this._setListeners() } var e = t.prototype; return e.show = function () { var t = this, e = o.default.Event("show.bs.toast"); if (o.default(this._element).trigger(e), !e.isDefaultPrevented()) { this._clearTimeout(), this._config.animation && this._element.classList.add("fade"); var n = function () { t._element.classList.remove("showing"), t._element.classList.add("show"), o.default(t._element).trigger("shown.bs.toast"), t._config.autohide && (t._timeout = setTimeout((function () { t.hide() }), t._config.delay)) }; if (this._element.classList.remove("hide"), d.reflow(this._element), this._element.classList.add("showing"), this._config.animation) { var i = d.getTransitionDurationFromElement(this._element); o.default(this._element).one(d.TRANSITION_END, n).emulateTransitionEnd(i) } else n() } }, e.hide = function () { if (this._element.classList.contains("show")) { var t = o.default.Event("hide.bs.toast"); o.default(this._element).trigger(t), t.isDefaultPrevented() || this._close() } }, e.dispose = function () { this._clearTimeout(), this._element.classList.contains("show") && this._element.classList.remove("show"), o.default(this._element).off("click.dismiss.bs.toast"), o.default.removeData(this._element, "bs.toast"), this._element = null, this._config = null }, e._getConfig = function (t) { return t = r({}, gt, o.default(this._element).data(), "object" == typeof t && t ? t : {}), d.typeCheckConfig("toast", t, this.constructor.DefaultType), t }, e._setListeners = function () { var t = this; o.default(this._element).on("click.dismiss.bs.toast", '[data-dismiss="toast"]', (function () { return t.hide() })) }, e._close = function () { var t = this, e = function () { t._element.classList.add("hide"), o.default(t._element).trigger("hidden.bs.toast") }; if (this._element.classList.remove("show"), this._config.animation) { var n = d.getTransitionDurationFromElement(this._element); o.default(this._element).one(d.TRANSITION_END, e).emulateTransitionEnd(n) } else e() }, e._clearTimeout = function () { clearTimeout(this._timeout), this._timeout = null }, t._jQueryInterface = function (e) { return this.each((function () { var n = o.default(this), i = n.data("bs.toast"); if (i || (i = new t(this, "object" == typeof e && e), n.data("bs.toast", i)), "string" == typeof e) { if ("undefined" == typeof i[e]) throw new TypeError('No method named "' + e + '"'); i[e](this) } })) }, l(t, null, [{ key: "VERSION", get: function () { return "4.5.3" } }, { key: "DefaultType", get: function () { return ht } }, { key: "Default", get: function () { return gt } }]), t }(); o.default.fn.toast = mt._jQueryInterface, o.default.fn.toast.Constructor = mt, o.default.fn.toast.noConflict = function () { return o.default.fn.toast = ct, mt._jQueryInterface }, t.Alert = h, t.Button = m, t.Carousel = w, t.Collapse = D, t.Dropdown = x, t.Modal = q, t.Popover = ot, t.Scrollspy = ut, t.Tab = ft, t.Toast = mt, t.Tooltip = J, t.Util = d, Object.defineProperty(t, "__esModule", { value: !0 }) })); //# sourceMappingURL=bootstrap.min.js.map ;(function (root, factory) { if (typeof define === 'function' && define.amd) { define(['jquery'], factory); } else if (typeof exports === 'object') { module.exports = factory(require('jquery')); } else { root.jquery_mmenu_all_min_js = factory(root.jQuery); } }(this, function (jQuery) { /* * jQuery mmenu v6.0.2 * @requires jQuery 1.7.0 or later * * mmenu.frebsite.nl * * Copyright (c) Fred Heusschen * www.frebsite.nl * * License: CC-BY-NC-4.0 * http://creativecommons.org/licenses/by-nc/4.0/ */ !function (e) { function t() { e[n].glbl || (r = { $wndw: e(window), $docu: e(document), $html: e("html"), $body: e("body") }, s = {}, a = {}, o = {}, e.each([s, a, o], function (e, t) { t.add = function (e) { e = e.split(" "); for (var n = 0, i = e.length; n < i; n++) t[e[n]] = t.mm(e[n]) } }), s.mm = function (e) { return "mm-" + e }, s.add("wrapper menu panels panel nopanel highest opened subopened navbar hasnavbar title btn prev next listview nolistview inset vertical selected divider spacer hidden fullsubopen noanimation"), s.umm = function (e) { return "mm-" == e.slice(0, 3) && (e = e.slice(3)), e }, a.mm = function (e) { return "mm-" + e }, a.add("parent child"), o.mm = function (e) { return e + ".mm" }, o.add("transitionend webkitTransitionEnd click scroll resize keydown mousedown mouseup touchstart touchmove touchend orientationchange"), e[n]._c = s, e[n]._d = a, e[n]._e = o, e[n].glbl = r) } var n = "mmenu", i = "6.0.2"; if (!(e[n] && e[n].version > i)) { e[n] = function (e, t, n) { return this.$menu = e, this._api = ["bind", "getInstance", "initPanels", "openPanel", "closePanel", "closeAllPanels", "setSelected"], this.opts = t, this.conf = n, this.vars = {}, this.cbck = {}, this.mtch = {}, "function" == typeof this.___deprecated && this.___deprecated(), this._initAddons(), this._initExtensions(), this._initMenu(), this._initPanels(), this._initOpened(), this._initAnchors(), this._initMatchMedia(), "function" == typeof this.___debug && this.___debug(), this }, e[n].version = i, e[n].addons = {}, e[n].uniqueId = 0, e[n].defaults = { extensions: [], initMenu: function () { }, initPanels: function () { }, navbar: {add: !0, title: "Menu", titleLink: "parent"}, onClick: {setSelected: !0}, slidingSubmenus: !0 }, e[n].configuration = { classNames: { divider: "Divider", inset: "Inset", nolistview: "NoListview", nopanel: "NoPanel", panel: "Panel", selected: "Selected", spacer: "Spacer", vertical: "Vertical" }, clone: !1, openingInterval: 25, panelNodetype: "ul, ol, div", transitionDuration: 400 }, e[n].prototype = { getInstance: function () { return this }, initPanels: function (e) { this._initPanels(e) }, openPanel: function (t, i) { if (this.trigger("openPanel:before", t), t && t.length && (t.is("." + s.panel) || (t = t.closest("." + s.panel)), t.is("." + s.panel))) { var o = this; if ("boolean" != typeof i && (i = !0), t.hasClass(s.vertical)) t.add(t.parents("." + s.vertical)).removeClass(s.hidden).parent("li").addClass(s.opened), this.openPanel(t.parents("." + s.panel).not("." + s.vertical).first()), this.trigger("openPanel:start", t), this.trigger("openPanel:finish", t); else { if (t.hasClass(s.opened)) return; var r = this.$pnls.children("." + s.panel), l = r.filter("." + s.opened); if (!e[n].support.csstransitions) return l.addClass(s.hidden).removeClass(s.opened), t.removeClass(s.hidden).addClass(s.opened), this.trigger("openPanel:start", t), void this.trigger("openPanel:finish", t); r.not(t).removeClass(s.subopened); for (var d = t.data(a.parent); d;) d = d.closest("." + s.panel), d.is("." + s.vertical) || d.addClass(s.subopened), d = d.data(a.parent); r.removeClass(s.highest).not(l).not(t).addClass(s.hidden), t.removeClass(s.hidden); var c = function () { l.removeClass(s.opened), t.addClass(s.opened), t.hasClass(s.subopened) ? (l.addClass(s.highest), t.removeClass(s.subopened)) : (l.addClass(s.subopened), t.addClass(s.highest)), this.trigger("openPanel:start", t) }, h = function () { l.removeClass(s.highest).addClass(s.hidden), t.removeClass(s.highest), this.trigger("openPanel:finish", t) }; i && !t.hasClass(s.noanimation) ? setTimeout(function () { o.__transitionend(t, function () { h.call(o) }, o.conf.transitionDuration), c.call(o) }, this.conf.openingInterval) : (c.call(this), h.call(this)) } this.trigger("openPanel:after", t) } }, closePanel: function (e) { this.trigger("closePanel:before", e); var t = e.parent(); t.hasClass(s.vertical) && (t.removeClass(s.opened), this.trigger("closePanel", e)), this.trigger("closePanel:after", e) }, closeAllPanels: function () { this.trigger("closeAllPanels:before"), this.$pnls.find("." + s.listview).children().removeClass(s.selected).filter("." + s.vertical).removeClass(s.opened); var e = this.$pnls.children("." + s.panel), t = e.first(); this.$pnls.children("." + s.panel).not(t).removeClass(s.subopened).removeClass(s.opened).removeClass(s.highest).addClass(s.hidden), this.openPanel(t), this.trigger("closeAllPanels:after") }, togglePanel: function (e) { var t = e.parent(); t.hasClass(s.vertical) && this[t.hasClass(s.opened) ? "closePanel" : "openPanel"](e) }, setSelected: function (e) { this.trigger("setSelected:before", e), this.$menu.find("." + s.listview).children("." + s.selected).removeClass(s.selected), e.addClass(s.selected), this.trigger("setSelected:after", e) }, bind: function (e, t) { this.cbck[e] = this.cbck[e] || [], this.cbck[e].push(t) }, trigger: function () { var e = this, t = Array.prototype.slice.call(arguments), n = t.shift(); if (this.cbck[n]) for (var i = 0, s = this.cbck[n].length; i < s; i++) this.cbck[n][i].apply(e, t) }, matchMedia: function (e, t, n) { var i = {yes: t, no: n}; this.mtch[e] = this.mtch[e] || [], this.mtch[e].push(i) }, _initAddons: function () { this.trigger("initAddons:before"); var t; for (t in e[n].addons) e[n].addons[t].add.call(this), e[n].addons[t].add = function () { }; for (t in e[n].addons) e[n].addons[t].setup.call(this); this.trigger("initAddons:after") }, _initExtensions: function () { this.trigger("initExtensions:before"); var e = this; this.opts.extensions.constructor === Array && (this.opts.extensions = {all: this.opts.extensions}); for (var t in this.opts.extensions) this.opts.extensions[t] = this.opts.extensions[t].length ? "mm-" + this.opts.extensions[t].join(" mm-") : "", this.opts.extensions[t] && !function (t) { e.matchMedia(t, function () { this.$menu.addClass(this.opts.extensions[t]) }, function () { this.$menu.removeClass(this.opts.extensions[t]) }) }(t); this.trigger("initExtensions:after") }, _initMenu: function () { this.trigger("initMenu:before"); this.conf.clone && (this.$orig = this.$menu, this.$menu = this.$orig.clone(), this.$menu.add(this.$menu.find("[id]")).filter("[id]").each(function () { e(this).attr("id", s.mm(e(this).attr("id"))) })), this.opts.initMenu.call(this, this.$menu, this.$orig), this.$menu.attr("id", this.$menu.attr("id") || this.__getUniqueId()), this.$pnls = e('
').append(this.$menu.children(this.conf.panelNodetype)).prependTo(this.$menu); var t = [s.menu]; this.opts.slidingSubmenus || t.push(s.vertical), this.$menu.addClass(t.join(" ")).parent().addClass(s.wrapper), this.trigger("initMenu:after") }, _initPanels: function (t) { this.trigger("initPanels:before", t), t = t || this.$pnls.children(this.conf.panelNodetype); var n = e(), i = this, a = function (t) { t.filter(this.conf.panelNodetype).each(function () { if ($panel = i._initPanel(e(this)), $panel) { i._initNavbar($panel), i._initListview($panel), n = n.add($panel); var t = $panel.children("." + s.listview).children("li").children(i.conf.panelNodeType).add($panel.children("." + i.conf.classNames.panel)); t.length && a.call(i, t) } }) }; a.call(this, t), this.opts.initPanels.call(this, n), this.trigger("initPanels:after", n) }, _initPanel: function (e) { this.trigger("initPanel:before", e); if (this.__refactorClass(e, this.conf.classNames.panel, "panel"), this.__refactorClass(e, this.conf.classNames.nopanel, "nopanel"), this.__refactorClass(e, this.conf.classNames.vertical, "vertical"), this.__refactorClass(e, this.conf.classNames.inset, "inset"), e.filter("." + s.inset).addClass(s.nopanel), e.hasClass(s.nopanel)) return !1; if (e.hasClass(s.panel)) return e; var t = e.hasClass(s.vertical) || !this.opts.slidingSubmenus; e.removeClass(s.vertical); var n = e.attr("id") || this.__getUniqueId(); e.removeAttr("id"), e.is("ul, ol") && (e.wrap("
"), e = e.parent()), e.addClass(s.panel + " " + s.hidden).attr("id", n); var i = e.parent("li"); return t ? e.add(i).addClass(s.vertical) : e.appendTo(this.$pnls), i.length && (i.data(a.child, e), e.data(a.parent, i)), this.trigger("initPanel:after", e), e }, _initNavbar: function (t) { if (this.trigger("initNavbar:before", t), !t.children("." + s.navbar).length) { var i = t.data(a.parent), o = e('
'), r = e[n].i18n(this.opts.navbar.title), l = !1; if (i && i.length) { if (i.hasClass(s.vertical)) return; if (i.parent().is("." + s.listview)) var d = i.children("a, span").not("." + s.next); else var d = i.closest("." + s.panel).find('a[href="#' + t.attr("id") + '"]'); d = d.first(), i = d.closest("." + s.panel); var c = i.attr("id"); switch (r = d.text(), this.opts.navbar.titleLink) { case"anchor": l = d.attr("href"); break; case"parent": l = "#" + c } o.append('') } else if (!this.opts.navbar.title) return; this.opts.navbar.add && t.addClass(s.hasnavbar), o.append('" + r + "").prependTo(t), this.trigger("initNavbar:after", t) } }, _initListview: function (t) { this.trigger("initListview:before", t); var n = this.__childAddBack(t, "ul, ol"); this.__refactorClass(n, this.conf.classNames.nolistview, "nolistview"), n.filter("." + this.conf.classNames.inset).addClass(s.nolistview); var i = n.not("." + s.nolistview).addClass(s.listview).children(); this.__refactorClass(i, this.conf.classNames.selected, "selected"), this.__refactorClass(i, this.conf.classNames.divider, "divider"), this.__refactorClass(i, this.conf.classNames.spacer, "spacer"); var o = t.data(a.parent); if (o && o.parent().is("." + s.listview) && !o.children("." + s.next).length) { var r = o.children("a, span").first(), l = e('').insertBefore(r); r.is("span") && l.addClass(s.fullsubopen) } this.trigger("initListview:after", t) }, _initOpened: function () { this.trigger("initOpened:before"); var e = this.$pnls.find("." + s.listview).children("." + s.selected).removeClass(s.selected).last().addClass(s.selected), t = e.length ? e.closest("." + s.panel) : this.$pnls.children("." + s.panel).first(); this.openPanel(t, !1), this.trigger("initOpened:after") }, _initAnchors: function () { var t = this; r.$body.on(o.click + "-oncanvas", "a[href]", function (i) { var a = e(this), o = !1, r = t.$menu.find(a).length; for (var l in e[n].addons) if (e[n].addons[l].clickAnchor.call(t, a, r)) { o = !0; break } var d = a.attr("href"); if (!o && r && d.length > 1 && "#" == d.slice(0, 1)) try { var c = e(d, t.$menu); c.is("." + s.panel) && (o = !0, t[a.parent().hasClass(s.vertical) ? "togglePanel" : "openPanel"](c)) } catch (h) { } if (o && i.preventDefault(), !o && r && a.is("." + s.listview + " > li > a") && !a.is('[rel="external"]') && !a.is('[target="_blank"]')) { t.__valueOrFn(t.opts.onClick.setSelected, a) && t.setSelected(e(i.target).parent()); var f = t.__valueOrFn(t.opts.onClick.preventDefault, a, "#" == d.slice(0, 1)); f && i.preventDefault(), t.__valueOrFn(t.opts.onClick.close, a, f) && t.close() } }) }, _initMatchMedia: function () { var e = this; this._fireMatchMedia(), r.$wndw.on(o.resize, function (t) { e._fireMatchMedia() }) }, _fireMatchMedia: function () { for (var e in this.mtch) for (var t = window.matchMedia && window.matchMedia(e).matches ? "yes" : "no", n = 0; n < this.mtch[e].length; n++) this.mtch[e][n][t].call(this) }, _getOriginalMenuId: function () { var e = this.$menu.attr("id"); return this.conf.clone && e && e.length && (e = s.umm(e)), e }, __api: function () { var t = this, n = {}; return e.each(this._api, function (e) { var i = this; n[i] = function () { var e = t[i].apply(t, arguments); return "undefined" == typeof e ? n : e } }), n }, __valueOrFn: function (e, t, n) { return "function" == typeof e ? e.call(t[0]) : "undefined" == typeof e && "undefined" != typeof n ? n : e }, __refactorClass: function (e, t, n) { return e.filter("." + t).removeClass(t).addClass(s[n]) }, __findAddBack: function (e, t) { return e.find(t).add(e.filter(t)) }, __childAddBack: function (e, t) { return e.children(t).add(e.filter(t)) }, __filterListItems: function (e) { return e.not("." + s.divider).not("." + s.hidden) }, __filterListItemAnchors: function (e) { return this.__filterListItems(e).children("a").not("." + s.next) }, __transitionend: function (e, t, n) { var i = !1, s = function (n) { "undefined" != typeof n && n.target != e[0] || (i || (e.unbind(o.transitionend), e.unbind(o.webkitTransitionEnd), t.call(e[0])), i = !0) }; e.on(o.transitionend, s), e.on(o.webkitTransitionEnd, s), setTimeout(s, 1.1 * n) }, __getUniqueId: function () { return s.mm(e[n].uniqueId++) } }, e.fn[n] = function (i, s) { t(), i = e.extend(!0, {}, e[n].defaults, i), s = e.extend(!0, {}, e[n].configuration, s); var a = e(); return this.each(function () { var t = e(this); if (!t.data(n)) { var o = new e[n](t, i, s); o.$menu.data(n, o.__api()), a = a.add(o.$menu) } }), a }, e[n].i18n = function () { var t = {}; return function (n) { switch (typeof n) { case"object": return e.extend(t, n), t; case"string": return t[n] || n; case"undefined": default: return t } } }(), e[n].support = { touch: "ontouchstart" in window || navigator.msMaxTouchPoints || !1, csstransitions: function () { return "undefined" == typeof Modernizr || "undefined" == typeof Modernizr.csstransitions || Modernizr.csstransitions }(), csstransforms: function () { return "undefined" == typeof Modernizr || "undefined" == typeof Modernizr.csstransforms || Modernizr.csstransforms }(), csstransforms3d: function () { return "undefined" == typeof Modernizr || "undefined" == typeof Modernizr.csstransforms3d || Modernizr.csstransforms3d }() }; var s, a, o, r } }(jQuery),/* * jQuery mmenu offCanvas add-on * mmenu.frebsite.nl * * Copyright (c) Fred Heusschen */ function (e) { var t = "mmenu", n = "offCanvas"; e[t].addons[n] = { setup: function () { if (this.opts[n]) { var s = this, a = this.opts[n], r = this.conf[n]; o = e[t].glbl, this._api = e.merge(this._api, ["open", "close", "setPage"]), "object" != typeof a && (a = {}), "top" != a.position && "bottom" != a.position || (a.zposition = "front"), a = this.opts[n] = e.extend(!0, {}, e[t].defaults[n], a), "string" != typeof r.pageSelector && (r.pageSelector = "> " + r.pageNodetype), o.$allMenus = (o.$allMenus || e()).add(this.$menu), this.vars.opened = !1; var l = [i.offcanvas]; "left" != a.position && l.push(i.mm(a.position)), "back" != a.zposition && l.push(i.mm(a.zposition)), e[t].support.csstransforms || l.push(i["no-csstransforms"]), e[t].support.csstransforms3d || l.push(i["no-csstransforms3d"]), this.bind("initMenu:after", function () { this.setPage(o.$page), this._initBlocker(), this["_initWindow_" + n](), this.$menu.addClass(l.join(" ")).parent("." + i.wrapper).removeClass(i.wrapper), this.$menu[r.menuInsertMethod](r.menuInsertSelector); var e = window.location.hash; if (e) { var t = this._getOriginalMenuId(); t && t == e.slice(1) && this.open() } }), this.bind("initExtensions:after", function () { for (var e = [i.mm("widescreen"), i.mm("iconbar")], t = 0; t < e.length; t++) for (var n in this.opts.extensions) if (this.opts.extensions[n].indexOf(e[t]) > -1) { !function (t, n) { s.matchMedia(t, function () { o.$html.addClass(e[n]) }, function () { o.$html.removeClass(e[n]) }) }(n, t); break } }), this.bind("open:start:sr-aria", function () { this.__sr_aria(this.$menu, "hidden", !1) }), this.bind("close:finish:sr-aria", function () { this.__sr_aria(this.$menu, "hidden", !0) }), this.bind("initMenu:after:sr-aria", function () { this.__sr_aria(this.$menu, "hidden", !0) }) } }, add: function () { i = e[t]._c, s = e[t]._d, a = e[t]._e, i.add("offcanvas slideout blocking modal background opening blocker page no-csstransforms3d"), s.add("style") }, clickAnchor: function (e, t) { var s = this; if (this.opts[n]) { var a = this._getOriginalMenuId(); if (a && e.is('[href="#' + a + '"]')) { if (t) return !0; var r = e.closest("." + i.menu); if (r.length) { var l = r.data("mmenu"); if (l && l.close) return l.close(), s.__transitionend(r, function () { s.open() }, s.conf.transitionDuration), !0 } return this.open(), !0 } if (o.$page) return a = o.$page.first().attr("id"), a && e.is('[href="#' + a + '"]') ? (this.close(), !0) : void 0 } } }, e[t].defaults[n] = { position: "left", zposition: "back", blockUI: !0, moveBackground: !0 }, e[t].configuration[n] = { pageNodetype: "div", pageSelector: null, noPageSelector: [], wrapPageIfNeeded: !0, menuInsertMethod: "prependTo", menuInsertSelector: "body" }, e[t].prototype.open = function () { if (this.trigger("open:before"), !this.vars.opened) { var e = this; this._openSetup(), setTimeout(function () { e._openFinish() }, this.conf.openingInterval), this.trigger("open:after") } }, e[t].prototype._openSetup = function () { var t = this, r = this.opts[n]; this.closeAllOthers(), o.$page.each(function () { e(this).data(s.style, e(this).attr("style") || "") }), o.$wndw.trigger(a.resize + "-" + n, [!0]); var l = [i.opened]; r.blockUI && l.push(i.blocking), "modal" == r.blockUI && l.push(i.modal), r.moveBackground && l.push(i.background), "left" != r.position && l.push(i.mm(this.opts[n].position)), "back" != r.zposition && l.push(i.mm(this.opts[n].zposition)), o.$html.addClass(l.join(" ")), setTimeout(function () { t.vars.opened = !0 }, this.conf.openingInterval), this.$menu.addClass(i.opened) }, e[t].prototype._openFinish = function () { var e = this; this.__transitionend(o.$page.first(), function () { e.trigger("open:finish") }, this.conf.transitionDuration), this.trigger("open:start"), o.$html.addClass(i.opening) }, e[t].prototype.close = function () { if (this.trigger("close:before"), this.vars.opened) { var t = this; this.__transitionend(o.$page.first(), function () { t.$menu.removeClass(i.opened); var a = [i.opened, i.blocking, i.modal, i.background, i.mm(t.opts[n].position), i.mm(t.opts[n].zposition)]; o.$html.removeClass(a.join(" ")), o.$page.each(function () { e(this).attr("style", e(this).data(s.style)) }), t.vars.opened = !1, t.trigger("close:finish") }, this.conf.transitionDuration), this.trigger("close:start"), o.$html.removeClass(i.opening), this.trigger("close:after") } }, e[t].prototype.closeAllOthers = function () { o.$allMenus.not(this.$menu).each(function () { var n = e(this).data(t); n && n.close && n.close() }) }, e[t].prototype.setPage = function (t) { this.trigger("setPage:before", t); var s = this, a = this.conf[n]; t && t.length || (t = o.$body.find(a.pageSelector), a.noPageSelector.length && (t = t.not(a.noPageSelector.join(", "))), t.length > 1 && a.wrapPageIfNeeded && (t = t.wrapAll("<" + this.conf[n].pageNodetype + " />").parent())), t.each(function () { e(this).attr("id", e(this).attr("id") || s.__getUniqueId()) }), t.addClass(i.page + " " + i.slideout), o.$page = t, this.trigger("setPage:after", t) }, e[t].prototype["_initWindow_" + n] = function () { o.$wndw.off(a.keydown + "-" + n).on(a.keydown + "-" + n, function (e) { if (o.$html.hasClass(i.opened) && 9 == e.keyCode) return e.preventDefault(), !1 }); var e = 0; o.$wndw.off(a.resize + "-" + n).on(a.resize + "-" + n, function (t, n) { if (1 == o.$page.length && (n || o.$html.hasClass(i.opened))) { var s = o.$wndw.height(); (n || s != e) && (e = s, o.$page.css("minHeight", s)) } }) }, e[t].prototype._initBlocker = function () { var t = this; this.opts[n].blockUI && (o.$blck || (o.$blck = e('
')), o.$blck.appendTo(o.$body).off(a.touchstart + "-" + n + " " + a.touchmove + "-" + n).on(a.touchstart + "-" + n + " " + a.touchmove + "-" + n, function (e) { e.preventDefault(), e.stopPropagation(), o.$blck.trigger(a.mousedown + "-" + n) }).off(a.mousedown + "-" + n).on(a.mousedown + "-" + n, function (e) { e.preventDefault(), o.$html.hasClass(i.modal) || (t.closeAllOthers(), t.close()) })) }; var i, s, a, o }(jQuery),/* * jQuery mmenu scrollBugFix add-on * mmenu.frebsite.nl * * Copyright (c) Fred Heusschen */ function (e) { var t = "mmenu", n = "scrollBugFix"; e[t].addons[n] = { setup: function () { var s = this.opts[n]; this.conf[n]; o = e[t].glbl, e[t].support.touch && this.opts.offCanvas && this.opts.offCanvas.blockUI && ("boolean" == typeof s && (s = {fix: s}), "object" != typeof s && (s = {}), s = this.opts[n] = e.extend(!0, {}, e[t].defaults[n], s), s.fix && (this.bind("open:start", function () { this.$pnls.children("." + i.opened).scrollTop(0) }), this.bind("initMenu:after", function () { this["_initWindow_" + n]() }))) }, add: function () { i = e[t]._c, s = e[t]._d, a = e[t]._e }, clickAnchor: function (e, t) { } }, e[t].defaults[n] = {fix: !0}, e[t].prototype["_initWindow_" + n] = function () { o.$docu.off(a.touchmove + "-" + n).on(a.touchmove + "-" + n, function (e) { o.$html.hasClass(i.opened) && e.preventDefault() }); var t = !1; o.$body.off(a.touchstart + "-" + n).on(a.touchstart + "-" + n, "." + i.panels + "> ." + i.opened, function (e) { o.$html.hasClass(i.opened) && (t || (t = !0, 0 === e.currentTarget.scrollTop ? e.currentTarget.scrollTop = 1 : e.currentTarget.scrollHeight === e.currentTarget.scrollTop + e.currentTarget.offsetHeight && (e.currentTarget.scrollTop -= 1), t = !1)) }).off(a.touchmove + "-" + n).on(a.touchmove + "-" + n, "." + i.panels + "> ." + i.opened, function (t) { o.$html.hasClass(i.opened) && e(this)[0].scrollHeight > e(this).innerHeight() && t.stopPropagation() }), o.$wndw.off(a.orientationchange + "-" + n).on(a.orientationchange + "-" + n, function () { that.$pnls.children("." + i.opened).scrollTop(0).css({"-webkit-overflow-scrolling": "auto"}).css({"-webkit-overflow-scrolling": "touch"}) }) }; var i, s, a, o }(jQuery),/* * jQuery mmenu screenReader add-on * mmenu.frebsite.nl * * Copyright (c) Fred Heusschen */ function (e) { var t = "mmenu", n = "screenReader"; e[t].addons[n] = { setup: function () { var s = this, a = this.opts[n], r = this.conf[n]; o = e[t].glbl, "boolean" == typeof a && (a = { aria: a, text: a }), "object" != typeof a && (a = {}), a = this.opts[n] = e.extend(!0, {}, e[t].defaults[n], a), a.aria && (this.bind("initAddons:after", function () { this.bind("initMenu:after", function () { this.trigger("initMenu:after:sr-aria") }), this.bind("initNavbar:after", function () { this.trigger("initNavbar:after:sr-aria", arguments[0]) }), this.bind("openPanel:start", function () { this.trigger("openPanel:start:sr-aria", arguments[0]) }), this.bind("close:start", function () { this.trigger("close:start:sr-aria") }), this.bind("close:finish", function () { this.trigger("close:finish:sr-aria") }), this.bind("open:start", function () { this.trigger("open:start:sr-aria") }), this.bind("open:finish", function () { this.trigger("open:finish:sr-aria") }) }), this.bind("updateListview", function () { this.$pnls.find("." + i.listview).children().each(function () { s.__sr_aria(e(this), "hidden", e(this).is("." + i.hidden)) }) }), this.bind("openPanel:start", function (e) { var t = this.$menu.find("." + i.panel).not(e).not(e.parents("." + i.panel)), n = e.add(e.find("." + i.vertical + "." + i.opened).children("." + i.panel)); this.__sr_aria(t, "hidden", !0), this.__sr_aria(n, "hidden", !1) }), this.bind("closePanel", function (e) { this.__sr_aria(e, "hidden", !0) }), this.bind("initPanels:after", function (t) { var n = t.find("." + i.prev + ", ." + i.next).each(function () { s.__sr_aria(e(this), "owns", e(this).attr("href").replace("#", "")) }); this.__sr_aria(n, "haspopup", !0) }), this.bind("initNavbar:after", function (e) { var t = e.children("." + i.navbar); this.__sr_aria(t, "hidden", !e.hasClass(i.hasnavbar)) }), a.text && (this.bind("initlistview:after", function (e) { var t = e.find("." + i.listview).find("." + i.fullsubopen).parent().children("span"); this.__sr_aria(t, "hidden", !0) }), "parent" == this.opts.navbar.titleLink && this.bind("initNavbar:after", function (e) { var t = e.children("." + i.navbar), n = !!t.children("." + i.prev).length; this.__sr_aria(t.children("." + i.title), "hidden", n) }))), a.text && (this.bind("initAddons:after", function () { this.bind("setPage:after", function () { this.trigger("setPage:after:sr-text", arguments[0]) }) }), this.bind("initNavbar:after", function (n) { var s = n.children("." + i.navbar), a = s.children("." + i.title).text(), o = e[t].i18n(r.text.closeSubmenu); a && (o += " (" + a + ")"), s.children("." + i.prev).html(this.__sr_text(o)) }), this.bind("initlistview:after", function (n) { n.find("." + i.listview).children("li").children("." + i.next).each(function () { var n = e(this), a = $prev.nextAll("span, a").first().text(), o = e[t].i18n(r.text[$prev.parent().is("." + i.vertical) ? "toggleSubmenu" : "openSubmenu"]); a && (o += " (" + a + ")"), n.html(s.__sr_text(o)) }) })) }, add: function () { i = e[t]._c, s = e[t]._d, a = e[t]._e, i.add("sronly") }, clickAnchor: function (e, t) { } }, e[t].defaults[n] = {aria: !0, text: !0}, e[t].configuration[n] = { text: { closeMenu: "Close menu", closeSubmenu: "Close submenu", openSubmenu: "Open submenu", toggleSubmenu: "Toggle submenu" } }, e[t].prototype.__sr_aria = function (e, t, n) { e.prop("aria-" + t, n)[n ? "attr" : "removeAttr"]("aria-" + t, n) }, e[t].prototype.__sr_text = function (e) { return '' + e + "" }; var i, s, a, o }(jQuery),/* * jQuery mmenu autoHeight add-on * mmenu.frebsite.nl * * Copyright (c) Fred Heusschen */ function (e) { var t = "mmenu", n = "autoHeight"; e[t].addons[n] = { setup: function () { var s = this.opts[n]; this.conf[n]; if (o = e[t].glbl, "boolean" == typeof s && s && (s = {height: "auto"}), "string" == typeof s && (s = {height: s}), "object" != typeof s && (s = {}), s = this.opts[n] = e.extend(!0, {}, e[t].defaults[n], s), "auto" == s.height || "highest" == s.height) { this.bind("initMenu:after", function () { this.$menu.addClass(i.autoheight) }); var a = function (t) { if (!this.opts.offCanvas || this.vars.opened) { var n = Math.max(parseInt(this.$pnls.css("top"), 10), 0) || 0, a = Math.max(parseInt(this.$pnls.css("bottom"), 10), 0) || 0, o = 0; this.$menu.addClass(i.measureheight), "auto" == s.height ? (t = t || this.$pnls.children("." + i.opened), t.is("." + i.vertical) && (t = t.parents("." + i.panel).not("." + i.vertical).first()), o = t.outerHeight()) : "highest" == s.height && this.$pnls.children().each(function () { var t = e(this); t.is("." + i.vertical) && (t = t.parents("." + i.panel).not("." + i.vertical).first()), o = Math.max(o, t.outerHeight()) }), this.$menu.height(o + n + a).removeClass(i.measureheight) } }; this.opts.offCanvas && this.bind("open:start", a), "highest" == s.height && this.bind("initPanels:after", a), "auto" == s.height && (this.bind("updateListview", a), this.bind("openPanel:start", a), this.bind("closePanel:finish", a)) } }, add: function () { i = e[t]._c, s = e[t]._d, a = e[t]._e, i.add("autoheight measureheight"), a.add("resize") }, clickAnchor: function (e, t) { } }, e[t].defaults[n] = {height: "default"}; var i, s, a, o }(jQuery),/* * jQuery mmenu backButton add-on * mmenu.frebsite.nl * * Copyright (c) Fred Heusschen */ function (e) { var t = "mmenu", n = "backButton"; e[t].addons[n] = { setup: function () { if (this.opts.offCanvas) { var s = this, a = this.opts[n]; this.conf[n]; if (o = e[t].glbl, "boolean" == typeof a && (a = {close: a}), "object" != typeof a && (a = {}), a = e.extend(!0, {}, e[t].defaults[n], a), a.close) { var r = "#" + s.$menu.attr("id"); this.bind("open:finish", function (e) { location.hash != r && history.pushState(null, document.title, r) }), e(window).on("popstate", function (e) { o.$html.hasClass(i.opened) ? (e.stopPropagation(), s.close()) : location.hash == r && (e.stopPropagation(), s.open()) }) } } }, add: function () { return window.history && window.history.pushState ? (i = e[t]._c, s = e[t]._d, void (a = e[t]._e)) : void (e[t].addons[n].setup = function () { }) }, clickAnchor: function (e, t) { } }, e[t].defaults[n] = {close: !1}; var i, s, a, o }(jQuery),/* * jQuery mmenu columns add-on * mmenu.frebsite.nl * * Copyright (c) Fred Heusschen */ function (e) { var t = "mmenu", n = "columns"; e[t].addons[n] = { setup: function () { var s = this.opts[n]; this.conf[n]; if (o = e[t].glbl, "boolean" == typeof s && (s = {add: s}), "number" == typeof s && (s = { add: !0, visible: s }), "object" != typeof s && (s = {}), "number" == typeof s.visible && (s.visible = { min: s.visible, max: s.visible }), s = this.opts[n] = e.extend(!0, {}, e[t].defaults[n], s), s.add) { s.visible.min = Math.max(1, Math.min(6, s.visible.min)), s.visible.max = Math.max(s.visible.min, Math.min(6, s.visible.max)); for (var a = this.opts.offCanvas ? this.$menu.add(o.$html) : this.$menu, r = [], l = 0; l <= s.visible.max; l++) r.push(i.columns + "-" + l); r = r.join(" "); var d = function (e) { var t = this.$pnls.children("." + i.subopened).length; e && !e.hasClass(i.subopened) && t++, t = Math.min(s.visible.max, Math.max(s.visible.min, t)), a.removeClass(r).addClass(i.columns + "-" + t) }, c = function () { a.removeClass(r) }, h = function (t) { this.$pnls.children("." + i.panel).removeClass(r).filter("." + i.subopened).add(t).slice(-s.visible.max).each(function (t) { e(this).addClass(i.columns + "-" + t) }) }; this.bind("initMenu:after", function () { this.$menu.addClass(i.columns) }), this.bind("initPanels:after", function (e) { h.call(this, this.$pnls.children("." + i.opened)) }), this.bind("open:start", d), this.bind("openPanel:start", d), this.bind("openPanel:start", h), this.bind("close:finish", c), this.opts.offCanvas || openMenu.call(this) } }, add: function () { i = e[t]._c, s = e[t]._d, a = e[t]._e, i.add("columns") }, clickAnchor: function (t, s) { if (!this.opts[n].add) return !1; if (s) { var a = t.attr("href"); if (a.length > 1 && "#" == a.slice(0, 1)) try { var o = e(a, this.$menu); if (o.is("." + i.panel)) for (var r = parseInt(t.closest("." + i.panel).attr("class").split(i.columns + "-")[1].split(" ")[0], 10) + 1; r !== !1;) { var l = this.$pnls.children("." + i.columns + "-" + r); if (!l.length) { r = !1; break } r++, l.removeClass(i.subopened).removeClass(i.opened).removeClass(i.highest).addClass(i.hidden) } } catch (d) { } } } }, e[t].defaults[n] = {add: !1, visible: {min: 1, max: 3}}; var i, s, a, o }(jQuery),/* * jQuery mmenu dividers add-on * mmenu.frebsite.nl * * Copyright (c) Fred Heusschen */ function (e) { var t = "mmenu", n = "dividers"; e[t].addons[n] = { setup: function () { var s = this, r = this.opts[n]; this.conf[n]; if (o = e[t].glbl, "boolean" == typeof r && (r = { add: r, fixed: r }), "object" != typeof r && (r = {}), r = this.opts[n] = e.extend(!0, {}, e[t].defaults[n], r), this.bind("initListview:after", function (e) { this.__refactorClass(e.find("li"), this.conf.classNames[n].collapsed, "collapsed") }), r.add && this.bind("initListview:after", function (t) { var n; switch (r.addTo) { case"panels": n = t; break; default: n = t.filter(r.addTo) } n.length && n.find("." + i.listview).find("." + i.divider).remove().end().each(function () { var t = ""; s.__filterListItems(e(this).children()).each(function () { var n = e.trim(e(this).children("a, span").text()).slice(0, 1).toLowerCase(); n != t && n.length && (t = n, e('
  • ' + n + "
  • ").insertBefore(this)) }) }) }), r.collapse && this.bind("initListview:after", function (t) { t.find("." + i.divider).each(function () { var t = e(this), n = t.nextUntil("." + i.divider, "." + i.collapsed); n.length && (t.children("." + i.next).length || (t.wrapInner(""), t.prepend('
    '))) }) }), r.fixed) { this.bind("initPanels:after", function () { "undefined" == typeof this.$fixeddivider && (this.$fixeddivider = e('
    ').prependTo(this.$pnls).children()) }); var l = function (t) { if (t = t || this.$pnls.children("." + i.opened), !t.is(":hidden")) { var n = t.children("." + i.listview).children("." + i.divider).not("." + i.hidden), s = t.scrollTop() || 0, a = ""; n.each(function () { e(this).position().top + s < s + 1 && (a = e(this).text()) }), this.$fixeddivider.text(a), this.$pnls[a.length ? "addClass" : "removeClass"](i.hasdividers) } }; this.bind("open:start", l), this.bind("openPanel:start", l), this.bind("updateListview", l), this.bind("initPanel:after", function (e) { e.off(a.scroll + "-" + n + " " + a.touchmove + "-" + n).on(a.scroll + "-" + n + " " + a.touchmove + "-" + n, function (t) { l.call(s, e) }) }) } }, add: function () { i = e[t]._c, s = e[t]._d, a = e[t]._e, i.add("collapsed uncollapsed fixeddivider hasdividers"), a.add("scroll") }, clickAnchor: function (e, t) { if (this.opts[n].collapse && t) { var s = e.parent(); if (s.is("." + i.divider)) { var a = s.nextUntil("." + i.divider, "." + i.collapsed); return s.toggleClass(i.opened), a[s.hasClass(i.opened) ? "addClass" : "removeClass"](i.uncollapsed), !0 } } return !1 } }, e[t].defaults[n] = { add: !1, addTo: "panels", fixed: !1, collapse: !1 }, e[t].configuration.classNames[n] = {collapsed: "Collapsed"}; var i, s, a, o }(jQuery),/* * jQuery mmenu counters add-on * mmenu.frebsite.nl * * Copyright (c) Fred Heusschen */ function (e) { var t = "mmenu", n = "counters"; e[t].addons[n] = { setup: function () { var a = this, r = this.opts[n]; this.conf[n]; if (o = e[t].glbl, "boolean" == typeof r && (r = { add: r, update: r }), "object" != typeof r && (r = {}), r = this.opts[n] = e.extend(!0, {}, e[t].defaults[n], r), this.bind("initListview:after", function (t) { this.__refactorClass(e("em", t), this.conf.classNames[n].counter, "counter") }), r.add && this.bind("initListview:after", function (t) { var n; switch (r.addTo) { case"panels": n = t; break; default: n = t.filter(r.addTo) } n.each(function () { var t = e(this).data(s.parent); t && (t.children("em." + i.counter).length || t.prepend(e(''))) }) }), r.update) { var l = function (t) { t = t || this.$pnls.children("." + i.panel), t.each(function () { var t = e(this), n = t.data(s.parent); if (n) { var o = n.children("em." + i.counter); o.length && (t = t.children("." + i.listview), t.length && o.html(a.__filterListItems(t.children()).length)) } }) }; this.bind("initListview:after", l), this.bind("updateListview", l) } }, add: function () { i = e[t]._c, s = e[t]._d, a = e[t]._e, i.add("counter search noresultsmsg") }, clickAnchor: function (e, t) { } }, e[t].defaults[n] = { add: !1, addTo: "panels", count: !1 }, e[t].configuration.classNames[n] = {counter: "Counter"}; var i, s, a, o }(jQuery),/* * jQuery mmenu drag add-on * mmenu.frebsite.nl * * Copyright (c) Fred Heusschen */ function (e) { function t(e, t, n) { return e < t && (e = t), e > n && (e = n), e } function n(n, i, s) { var r, l, d, c, h, f = this, u = {}, p = 0, v = !1, m = !1, b = 0, g = 0; switch (this.opts.offCanvas.position) { case"left": case"right": u.events = "panleft panright", u.typeLower = "x", u.typeUpper = "X", m = "width"; break; case"top": case"bottom": u.events = "panup pandown", u.typeLower = "y", u.typeUpper = "Y", m = "height" } switch (this.opts.offCanvas.position) { case"right": case"bottom": u.negative = !0, c = function (e) { e >= s.$wndw[m]() - n.maxStartPos && (p = 1) }; break; default: u.negative = !1, c = function (e) { e <= n.maxStartPos && (p = 1) } } switch (this.opts.offCanvas.position) { case"left": u.open_dir = "right", u.close_dir = "left"; break; case"right": u.open_dir = "left", u.close_dir = "right"; break; case"top": u.open_dir = "down", u.close_dir = "up"; break; case"bottom": u.open_dir = "up", u.close_dir = "down" } switch (this.opts.offCanvas.zposition) { case"front": h = function () { return this.$menu }; break; default: h = function () { return e("." + o.slideout) } } var _ = this.__valueOrFn(n.node, this.$menu, s.$page); "string" == typeof _ && (_ = e(_)); var C = new Hammer(_[0], this.opts[a].vendors.hammer); C.on("panstart", function (e) { c(e.center[u.typeLower]), s.$slideOutNodes = h(), v = u.open_dir }).on(u.events + " panend", function (e) { p > 0 && e.preventDefault() }).on(u.events, function (e) { if (r = e["delta" + u.typeUpper], u.negative && (r = -r), r != b && (v = r >= b ? u.open_dir : u.close_dir), b = r, b > n.threshold && 1 == p) { if (s.$html.hasClass(o.opened)) return; p = 2, f._openSetup(), f.trigger("open:start"), s.$html.addClass(o.dragging), g = t(s.$wndw[m]() * i[m].perc, i[m].min, i[m].max) } 2 == p && (l = t(b, 10, g) - ("front" == f.opts.offCanvas.zposition ? g : 0), u.negative && (l = -l), d = "translate" + u.typeUpper + "(" + l + "px )", s.$slideOutNodes.css({ "-webkit-transform": "-webkit-" + d, transform: d })) }).on("panend", function (e) { 2 == p && (s.$html.removeClass(o.dragging), s.$slideOutNodes.css("transform", ""), f[v == u.open_dir ? "_openFinish" : "close"]()), p = 0 }) } function i(e, t, n, i) { var s = this, l = e.data(r.parent); if (l) { l = l.closest("." + o.panel); var d = new Hammer(e[0], s.opts[a].vendors.hammer), c = null; d.on("panright", function (e) { c || (s.openPanel(l), c = setTimeout(function () { clearTimeout(c), c = null }, s.conf.openingInterval + s.conf.transitionDuration)) }) } } var s = "mmenu", a = "drag"; e[s].addons[a] = { setup: function () { if (this.opts.offCanvas) { var t = this.opts[a], o = this.conf[a]; d = e[s].glbl, "boolean" == typeof t && (t = { menu: t, panels: t }), "object" != typeof t && (t = {}), "boolean" == typeof t.menu && (t.menu = {open: t.menu}), "object" != typeof t.menu && (t.menu = {}), "boolean" == typeof t.panels && (t.panels = {close: t.panels}), "object" != typeof t.panels && (t.panels = {}), t = this.opts[a] = e.extend(!0, {}, e[s].defaults[a], t), t.menu.open && this.bind("setPage:after", function () { n.call(this, t.menu, o.menu, d) }), t.panels.close && this.bind("initPanel:after", function (e) { i.call(this, e, t.panels, o.panels, d) }) } }, add: function () { return "function" != typeof Hammer || Hammer.VERSION < 2 ? (e[s].addons[a].add = function () { }, void (e[s].addons[a].setup = function () { })) : (o = e[s]._c, r = e[s]._d, l = e[s]._e, void o.add("dragging")) }, clickAnchor: function (e, t) { } }, e[s].defaults[a] = { menu: {open: !1, maxStartPos: 100, threshold: 50}, panels: {close: !1}, vendors: {hammer: {}} }, e[s].configuration[a] = { menu: { width: {perc: .8, min: 140, max: 440}, height: {perc: .8, min: 140, max: 880} }, panels: {} }; var o, r, l, d }(jQuery),/* * jQuery mmenu dropdown add-on * mmenu.frebsite.nl * * Copyright (c) Fred Heusschen */ function (e) { var t = "mmenu", n = "dropdown"; e[t].addons[n] = { setup: function () { if (this.opts.offCanvas) { var r = this, l = this.opts[n], d = this.conf[n]; if (o = e[t].glbl, "boolean" == typeof l && l && (l = {drop: l}), "object" != typeof l && (l = {}), "string" == typeof l.position && (l.position = {of: l.position}), l = this.opts[n] = e.extend(!0, {}, e[t].defaults[n], l), l.drop) { var c; this.bind("initMenu:after", function () { if (this.$menu.addClass(i.dropdown), l.tip && this.$menu.addClass(i.tip), "string" != typeof l.position.of) { var t = this._getOriginalMenuId(); t && t.length && (l.position.of = '[href="#' + t + '"]') } "string" == typeof l.position.of && (c = e(l.position.of), l.event = l.event.split(" "), 1 == l.event.length && (l.event[1] = l.event[0]), "hover" == l.event[0] && c.on(a.mouseenter + "-" + n, function () { r.open() }), "hover" == l.event[1] && this.$menu.on(a.mouseleave + "-" + n, function () { r.close() })) }), this.bind("open:start", function () { this.$menu.data(s.style, this.$menu.attr("style") || ""), o.$html.addClass(i.dropdown) }), this.bind("close:finish", function () { this.$menu.attr("style", this.$menu.data(s.style)), o.$html.removeClass(i.dropdown) }); var h = function (e, t) { var n = t[0], s = t[1], a = "x" == e ? "scrollLeft" : "scrollTop", r = "x" == e ? "outerWidth" : "outerHeight", h = "x" == e ? "left" : "top", f = "x" == e ? "right" : "bottom", u = "x" == e ? "width" : "height", p = "x" == e ? "maxWidth" : "maxHeight", v = null, m = o.$wndw[a](), b = c.offset()[h] -= m, g = b + c[r](), _ = o.$wndw[u](), C = d.offset.button[e] + d.offset.viewport[e]; if (l.position[e]) switch (l.position[e]) { case"left": case"bottom": v = "after"; break; case"right": case"top": v = "before" } null === v && (v = b + (g - b) / 2 < _ / 2 ? "after" : "before"); var y, w; return "after" == v ? (y = "x" == e ? b : g, w = _ - (y + C), n[h] = y + d.offset.button[e], n[f] = "auto", s.push(i["x" == e ? "tipleft" : "tiptop"])) : (y = "x" == e ? g : b, w = y - C, n[f] = "calc( 100% - " + (y - d.offset.button[e]) + "px )", n[h] = "auto", s.push(i["x" == e ? "tipright" : "tipbottom"])), n[p] = Math.min(d[u].max, w), [n, s] }, f = function (e) { if (this.vars.opened) { this.$menu.attr("style", this.$menu.data(s.style)); var t = [{}, []]; t = h.call(this, "y", t), t = h.call(this, "x", t), this.$menu.css(t[0]), l.tip && this.$menu.removeClass(i.tipleft + " " + i.tipright + " " + i.tiptop + " " + i.tipbottom).addClass(t[1].join(" ")) } }; this.bind("open:start", f), o.$wndw.on(a.resize + "-" + n, function (e) { f.call(r) }), this.opts.offCanvas.blockUI || o.$wndw.on(a.scroll + "-" + n, function (e) { f.call(r) }) } } }, add: function () { i = e[t]._c, s = e[t]._d, a = e[t]._e, i.add("dropdown tip tipleft tipright tiptop tipbottom"), a.add("mouseenter mouseleave resize scroll") }, clickAnchor: function (e, t) { } }, e[t].defaults[n] = { drop: !1, event: "click", position: {}, tip: !0 }, e[t].configuration[n] = { offset: {button: {x: -10, y: 10}, viewport: {x: 20, y: 20}}, height: {max: 880}, width: {max: 440} }; var i, s, a, o }(jQuery),/* * jQuery mmenu fixedElements add-on * mmenu.frebsite.nl * * Copyright (c) Fred Heusschen */ function (e) { var t = "mmenu", n = "fixedElements"; e[t].addons[n] = { setup: function () { if (this.opts.offCanvas) { var i = this.opts[n], s = this.conf[n]; o = e[t].glbl, i = this.opts[n] = e.extend(!0, {}, e[t].defaults[n], i); var a = function (e) { var t = this.conf.classNames[n].fixed; this.__refactorClass(e.find("." + t), t, "slideout")[s.elemInsertMethod](s.elemInsertSelector) }; this.bind("setPage:after", a) } }, add: function () { i = e[t]._c, s = e[t]._d, a = e[t]._e, i.add("fixed") }, clickAnchor: function (e, t) { } }, e[t].configuration[n] = { elemInsertMethod: "appendTo", elemInsertSelector: "body" }, e[t].configuration.classNames[n] = {fixed: "Fixed"}; var i, s, a, o }(jQuery),/* * jQuery mmenu iconPanels add-on * mmenu.frebsite.nl * * Copyright (c) Fred Heusschen */ function (e) { var t = "mmenu", n = "iconPanels"; e[t].addons[n] = { setup: function () { var s = this, a = this.opts[n]; this.conf[n]; if (o = e[t].glbl, "boolean" == typeof a && (a = {add: a}), "number" == typeof a && (a = { add: !0, visible: a }), "object" != typeof a && (a = {}), a = this.opts[n] = e.extend(!0, {}, e[t].defaults[n], a), a.visible++, a.add) { for (var r = [], l = 0; l <= a.visible; l++) r.push(i.iconpanel + "-" + l); r = r.join(" "); var d = function (t) { t.hasClass(i.vertical) || s.$pnls.children("." + i.panel).removeClass(r).filter("." + i.subopened).removeClass(i.hidden).add(t).not("." + i.vertical).slice(-a.visible).each(function (t) { e(this).addClass(i.iconpanel + "-" + t) }) }; this.bind("initMenu:after", function () { this.$menu.addClass(i.iconpanel) }), this.bind("openPanel:start", d), this.bind("initPanels:after", function (e) { d.call(s, s.$pnls.children("." + i.opened)) }), this.bind("initListview:after", function (e) { e.hasClass(i.vertical) || e.children("." + i.subblocker).length || e.prepend('
    ') }) } }, add: function () { i = e[t]._c, s = e[t]._d, a = e[t]._e, i.add("iconpanel subblocker") }, clickAnchor: function (e, t) { } }, e[t].defaults[n] = {add: !1, visible: 3}; var i, s, a, o }(jQuery),/* * jQuery mmenu keyboardNavigation add-on * mmenu.frebsite.nl * * Copyright (c) Fred Heusschen */ function (e) { function t(t, n) { t = t || this.$pnls.children("." + a.opened); var i = e(), s = this.$menu.children("." + a.mm("navbars-top") + ", ." + a.mm("navbars-bottom")).children("." + a.navbar); s.find(d).filter(":focus").length || ("default" == n && (i = t.children("." + a.listview).find("a[href]").not("." + a.hidden), i.length || (i = t.find(d).not("." + a.hidden)), i.length || (i = s.find(d).not("." + a.hidden))), i.length || (i = this.$menu.children("." + a.tabstart)), i.first().focus()) } function n(e) { e || (e = this.$pnls.children("." + a.opened)); var t = this.$pnls.children("." + a.panel), n = t.not(e); n.find(d).attr("tabindex", -1), e.find(d).attr("tabindex", 0), e.find("." + a.mm("toggle") + ", ." + a.mm("check")).attr("tabindex", -1), e.children("." + a.navbar).children("." + a.title).attr("tabindex", -1) } var i = "mmenu", s = "keyboardNavigation"; e[i].addons[s] = { setup: function () { var o = this.opts[s]; this.conf[s]; if (l = e[i].glbl, "boolean" != typeof o && "string" != typeof o || (o = {enable: o}), "object" != typeof o && (o = {}), o = this.opts[s] = e.extend(!0, {}, e[i].defaults[s], o), o.enable) { var r = e('', nextArrow: '', autoplay: !1, autoplaySpeed: 3e3, centerMode: !1, centerPadding: "50px", cssEase: "ease", customPaging: function (e, t) { return i('