Overview

URLequilume.com/blog/understanding-the-benefits-of-light/
IP 139.162.163.84 (Germany)
ASN#63949 Linode, LLC
UserAgentMozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Referer
Report completed2022-12-02 10:14:03 UTC
StatusLoading report..
IDS alerts0
Blocklist alert1
urlquery alerts No alerts detected
Tags None

Domain Summary (17)

Fully Qualifying Domain Name Rank First Seen Last Seen IP Comment
contile.services.mozilla.com (1) 1114 2021-05-27 18:32:35 UTC 2022-12-01 17:12:49 UTC 34.117.237.239
ssl.google-analytics.com (1) 275 2018-06-15 20:32:37 UTC 2022-12-01 22:05:54 UTC 142.250.74.40
stats.g.doubleclick.net (1) 96 2013-06-10 20:21:11 UTC 2022-12-01 20:40:43 UTC 108.177.14.156
www.google.no (1) 25607 2016-04-05 19:50:59 UTC 2022-12-01 20:43:35 UTC 142.250.74.67
r3.o.lencr.org (3) 344 No data No data 23.36.77.32
ocsp.digicert.com (2) 86 2012-05-21 07:02:23 UTC 2020-05-02 20:58:10 UTC 93.184.220.29
ocsp.pki.goog (10) 175 2018-07-01 06:43:07 UTC 2020-05-02 20:58:16 UTC 216.58.211.3
www.google.com (1) 7 2016-03-22 03:56:07 UTC 2022-12-01 18:17:59 UTC 142.250.74.132
img-getpocket.cdn.mozilla.net (2) 1631 2018-06-21 23:36:00 UTC 2020-02-19 04:43:25 UTC 34.120.237.76
content-signature-2.cdn.mozilla.net (1) 1152 No data No data 34.160.144.191
cdn.pubble.io (1) 157511 2018-08-26 07:06:59 UTC 2020-04-21 07:33:37 UTC 143.204.55.95
www.gstatic.com (1) 0 2016-07-26 09:37:06 UTC 2022-12-01 17:12:24 UTC 216.58.207.227 Domain (gstatic.com) ranked at: 540
fonts.googleapis.com (2) 8877 2013-06-10 20:14:26 UTC 2022-12-01 17:28:41 UTC 142.250.74.138
equilume.com (169) 0 2014-06-14 04:31:01 UTC 2022-11-28 06:35:27 UTC 139.162.163.84 Unknown ranking
firefox.settings.services.mozilla.com (2) 867 2020-06-04 20:08:41 UTC 2022-12-01 17:14:08 UTC 34.102.187.140
push.services.mozilla.com (1) 2140 2014-10-24 08:27:06 UTC 2020-05-03 10:09:39 UTC 35.161.26.194
fonts.gstatic.com (4) 0 2014-09-09 00:40:21 UTC 2022-12-01 22:08:56 UTC 216.58.207.227 Domain (gstatic.com) ranked at: 540

Network Intrusion Detection Systemsinfo

Suricata /w Emerging Threats Pro
 No alerts detected

Blocklists

OpenPhish
 No alerts detected

PhishTank
 No alerts detected

Fortinet's Web Filter
Scan Date Severity Indicator Comment
2022-12-02 2 cdn.pubble.io/javascript/loader.js Malware

mnemonic secure dns
 No alerts detected

Quad9 DNS
 No alerts detected


Files

No files detected

Recent reports on same IP/ASN/Domain/Screenshot

Last 1 reports on IP: 139.162.163.84
Date UQ / IDS / BL URL IP
2022-12-02 10:14:03 +0000 0 - 0 - 1 equilume.com/blog/understanding-the-benefits- (...) 139.162.163.84


Last 5 reports on ASN: Linode, LLC
Date UQ / IDS / BL URL IP
2023-01-29 11:21:07 +0000 0 - 0 - 2 wewanted.com.tw/upload/corp1/intro/bid/login.php 172.104.168.13
2023-01-29 11:00:27 +0000 0 - 3 - 2 www.chawkyfrenn.com/icon/JtT/ 50.116.62.25
2023-01-29 10:31:17 +0000 0 - 2 - 2 www.chawkyfrenn.com/icon/BzGzSWFZIZGaTK/ 50.116.62.25
2023-01-29 10:30:19 +0000 0 - 2 - 2 www.chawkyfrenn.com/icon/LRWYSefRL7/ 50.116.62.25
2023-01-29 10:13:00 +0000 0 - 0 - 5 shaikut.com/blog/Cancellation_674898_Dec23.zip 192.46.211.19


Last 1 reports on domain: equilume.com
Date UQ / IDS / BL URL IP
2022-12-02 10:14:03 +0000 0 - 0 - 1 equilume.com/blog/understanding-the-benefits- (...) 139.162.163.84


No other reports with similar screenshot

JavaScript

Executed Scripts (157)

Executed Evals (7)
#1 JavaScript::Eval (size: 64) - SHA256: cc158dc49db31ac40a09769c14f1e96ce12d8ee44ddb54a5321c32cd0536ef78
0,
function(y, e, K) {
    (e = (K = u((e = u(y), y)), y.u[e] && v(y, e)), V)(K, y, e)
}
#2 JavaScript::Eval (size: 15588) - SHA256: 0d4559ba47020dfb3d3229a79fae241152a0337f86a9c8a01bd5add41c1753b7
/* Anti-spam. Want to say hello? Contact (base64) Ym90Z3VhcmQtY29udGFjdEBnb29nbGUuY29t */
(function() {
    var y = this || self,
        e = function(R) {
            return R
        },
        q = function(R, n) {
            if ((n = (R = y.trustedTypes, null), !R) || !R.createPolicy) return n;
            try {
                n = R.createPolicy("bg", {
                    createHTML: e,
                    createScript: e,
                    createScriptURL: e
                })
            } catch (k) {
                y.console && y.console.error(k.message)
            }
            return n
        };
    (0, eval)(function(R, n) {
        return (n = q()) && 1 === R.eval(n.createScript("1")) ? function(k) {
            return n.createScript(k)
        } : function(k) {
            return "" + k
        }
    }(y)(Array(7824 * Math.random() | 0).join("\n") + '(function(){var p=function(R,n,k){k[V(R,n,k),Rl]=2796},nX=function(R,n){return R(function(k){k(n)}),[function(){return n}]},kz=function(R,n,k,q,c){for(n=(q=(c=n[3]|0,0),n[2])|0;14>q;q++)c=c>>>8|c<<24,k=k>>>8|k<<24,k+=R|0,c+=n|0,k^=n+2298,R=R<<3|R>>>29,c^=q+2298,R^=k,n=n<<3|n>>>29,n^=c;return[R>>>24&255,R>>>16&255,R>>>8&255,R>>>0&255,k>>>24&255,k>>>16&255,k>>>8&255,k>>>0&255]},E,L=function(R,n,k,q,c,y,e,K,N,Q,Z,w,U,h){if(y=v(n,278),y>=n.B)throw[x,31];for(c=(K=0,q=R,Q=y,n.c0.length);0<q;)Z=Q%8,N=8-(Z|0),N=N<q?N:q,U=Q>>3,w=n.i[U],k&&(e=n,e.A!=Q>>6&&(e.A=Q>>6,h=v(e,358),e.l=kz(e.O,[0,0,h[1],h[2]],e.A)),w^=n.l[U&c]),K|=(w>>8-(Z|0)-(N|0)&(1<<N)-1)<<(q|0)-(N|0),Q+=N,q-=N;return V(278,n,(k=K,(y|0)+(R|0))),k},yB=function(R,n,k,q){try{q=R[((n|0)+2)%3],R[n]=(R[n]|0)-(R[((n|0)+1)%3]|0)-(q|0)^(1==n?q<<k:q>>>k)}catch(c){throw c;}},eM=function(R,n){return n=P(R),n&128&&(n=n&127|P(R)<<7),n},qX=function(R,n,k){if((n=typeof R,"object")==n)if(R){if(R instanceof Array)return"array";if(R instanceof Object)return n;if("[object Window]"==(k=Object.prototype.toString.call(R),k))return"object";if("[object Array]"==k||"number"==typeof R.length&&"undefined"!=typeof R.splice&&"undefined"!=typeof R.propertyIsEnumerable&&!R.propertyIsEnumerable("splice"))return"array";if("[object Function]"==k||"undefined"!=typeof R.call&&"undefined"!=typeof R.propertyIsEnumerable&&!R.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==n&&"undefined"==typeof R.call)return"object";return n},C=function(R,n){R.P.splice(0,0,n)},G=function(R,n,k,q,c,y){if(n.C==n)for(c=v(n,R),421==R?(R=function(e,K,N,Q){if(c.mm!=(Q=((K=c.length,K)|0)-4>>3,Q)){Q=(c.mm=(N=[0,0,y[1],y[2]],Q),(Q<<3)-4);try{c.nk=kz(KX(c,Q),N,KX(c,(Q|0)+4))}catch(Z){throw Z;}}c.push(c.nk[K&7]^e)},y=v(n,408)):R=function(e){c.push(e)},q&&R(q&255),n=k.length,q=0;q<n;q++)R(k[q])},NX=function(R,n,k,q){for(;R.P.length;){k=(R.F=null,R).P.pop();try{q=ca(R,k)}catch(c){r(R,c)}if(n&&R.F){n=R.F,n(function(){B(true,R,true)});break}}return q},QB=function(R,n,k,q){return(q=I[R.substring(0,3)+"_"])?q(R.substring(3),n,k):nX(n,R)},sk=function(R,n,k,q,c){G(((c=(k=u((c=u((q=n&4,n&=3,R)),R)),v(R,c)),q)&&(c=pX(""+c)),n&&G(k,R,D(2,c.length)),k),R,c)},l=function(R,n,k,q,c,y,e,K,N){if((R.C=(((K=(y=(N=(c=(e=0<(k||R.X++,R).U&&R.S&&R.xh&&1>=R.J&&!R.L&&!R.F&&(!k||1<R.Z-n)&&0==document.hidden,4==R.X))||e?R.s():R.T,N-R.T),y)>>14,R).O&&(R.O^=K*(y<<2)),R).Y+=K,K||R.C),c)||e)R.X=0,R.T=N;if(!e||N-R.H<R.U-(q?255:k?5:2))return false;return!((V(278,(q=v(R,(R.Z=n,k?426:278)),R),R.B),R.P).push([jM,q,k?n+1:n]),R.F=z,0)},Ek=function(R,n,k){if(3==R.length){for(k=0;3>k;k++)n[k]+=R[k];for(k=[(R=0,13),8,13,12,16,5,3,10,15];9>R;R++)n[3](n,R%3,k[R])}},u=function(R,n){if(R.L)return Zn(R,R.N);return n=L(8,R,true),n&128&&(n^=128,R=L(2,R,true),n=(n<<2)+(R|0)),n},KX=function(R,n){return R[n]<<24|R[(n|0)+1]<<16|R[(n|0)+2]<<8|R[(n|0)+3]},we=function(R,n,k,q,c,y,e,K){return(c=d[n.I]((k=[-2,42,-72,-(y=va,46),-26,-71,k,61,(K=q&7,9),2],n.MJ)),c)[n.I]=function(N){e=N,K+=6+7*q,K&=7},c.concat=function(N){return(N=(e=(N=+(N=R%16+1,k)[K+59&7]*R*N-N*e- -2440*e+(y()|0)*N+1*R*R*N-2562*R*e-61*R*R*e+K+61*e*e,void 0),k[N]),k[(K+69&7)+(q&2)]=N,k)[K+(q&2)]=42,N},c},V=function(R,n,k){if(278==R||426==R)n.u[R]?n.u[R].concat(k):n.u[R]=h8(n,k);else{if(n.D&&358!=R)return;305==R||421==R||352==R||236==R||408==R?n.u[R]||(n.u[R]=we(R,n,k,54)):n.u[R]=we(R,n,k,113)}358==R&&(n.O=L(32,n,false),n.A=void 0)},P=function(R){return R.L?Zn(R,R.N):L(8,R,true)},B=function(R,n,k,q,c,y){if(n.P.length){(n.S=!(n.S&&0(),0),n).xh=k;try{q=n.s(),n.H=q,n.T=q,n.X=0,c=NX(n,k),y=n.s()-n.H,n.G+=y,y<(R?0:10)||0>=n.g--||(y=Math.floor(y),n.K.push(254>=y?y:254))}finally{n.S=false}return c}},xz=function(R,n,k,q){for(k=(q=u(n),0);0<R;R--)k=k<<8|P(n);V(q,n,k)},I,Pa=function(R,n,k,q){return v(R,(LX((q=v(R,278),R.i&&q<R.B?(V(278,R,R.B),Uk(k,R)):V(278,R,k),n),R),V(278,R,q),15))},Tu=function(R,n,k,q,c){for(c=(q=(k.In=(k.MJ=J8(k.I,(k.v0=(k.NJ=be,CX),k.c0=k[F],{get:function(){return this.concat()}})),d)[k.I](k.MJ,{value:{value:{}}}),[]),0);128>c;c++)q[c]=String.fromCharCode(c);B((C((C(k,(C(k,(p(340,(V((V(305,k,[160,((V(307,(V(327,(V(236,k,(p(59,k,(p(127,k,(p(119,(V(421,k,(V(270,k,(p(87,(p(158,(p(396,k,(p(448,k,(k.on=(p(362,(k.E9=(p((p(250,k,(p(371,(V(15,(p(354,k,(V(352,k,((p(442,k,(p(227,k,(p(103,k,(p(11,k,(p(121,(V(289,(p(173,(V(409,k,(p(275,k,(p(317,(p(375,k,(p(432,((p((p(295,(V(278,k,(k.B0=(k.wE=(k.P0=function(y){this.C=y},k.u=(k.R=void 0,[]),k.F=((k.O=(k.N=void 0,void 0),k.Y=1,k.U=0,(k.Rn=[],k).C=k,c=window.performance||{},k.j=[],(k.J=0,k).T=0,k.B=0,k.S=((k.A=void 0,k.X=void 0,k).i=[],k.H=(k.P=(k.xh=false,[]),k.g=(k.G=0,25),0),k.L=(k.l=void 0,void 0),k.D=false,k.Z=8001,false),k).K=[],null),0),c).timeOrigin||(c.timing||{}).navigationStart||0,0)),V(426,k,0),k),function(y,e,K,N){V((e=v(y,(N=(K=(N=(e=u(y),u(y)),u(y)),v(y,N)),e)),K),y,e in N|0)}),163),k,function(y,e,K,N){!l(y,e,true,false)&&(e=re(y),N=e.Ck,K=e.h,y.C==y||K==y.P0&&N==y)&&(V(e.un,y,K.apply(N,e.o)),y.T=y.s())}),p)(341,k,function(y,e,K,N){if(N=y.Rn.pop()){for(K=P(y);0<K;K--)e=u(y),N[e]=y.u[e];y.u=(N[236]=y.u[236],N[307]=y.u[307],N)}else V(278,y,y.B)}),k),function(y,e){(e=v(y,u(y)),Uk)(e,y.C)}),function(y,e,K,N){(e=v(y,(N=v((K=(N=u((e=u(y),y)),u(y)),y),N),e))==N,V)(K,y,+e)})),k),function(y){xz(4,y)}),function(y,e,K,N,Q,Z){if(!l(y,e,true,true)){if("object"==(y=v((N=(Q=v((e=v((N=(e=(Q=(Z=u(y),u)(y),u(y)),u)(y),y),e),y),Q),v(y,N)),y),Z),qX)(y)){for(K in Z=[],y)Z.push(K);y=Z}for(Z=(e=0<e?e:1,K=y.length,0);Z<K;Z+=e)Q(y.slice(Z,(Z|0)+(e|0)),N)}})),p(193,k,function(y,e,K,N,Q){0!==(Q=v(y,(K=(e=v((N=v(y,(N=(Q=u((K=u(y),y)),e=u(y),u(y)),N)),y),e),v(y.C,K)),Q)),K)&&(N=Ba(e,N,y,1,K,Q),K.addEventListener(Q,N,W),V(270,y,[K,Q,N]))}),687)),k),function(y){sk(y,4)}),k),0),k),function(){}),function(y,e,K,N,Q,Z,w){for(w=(e=(K=(N=u(y),Z=eM(y),Q="",v(y,115)),K.length),0);Z--;)w=((w|0)+(eM(y)|0))%e,Q+=q[K[w]];V(N,y,Q)})),function(y,e,K){K=v((e=(K=(e=u(y),u(y)),0!=v(y,e)),y),K),e&&V(278,y,K)})),function(y,e,K,N,Q){for(K=(e=(N=u(y),eM)(y),0),Q=[];K<e;K++)Q.push(P(y));V(N,y,Q)})),function(y,e,K){(e=u((K=u(y),y)),V)(e,y,""+v(y,K))})),V)(408,k,[0,0,0]),[])),function(y,e,K,N,Q,Z,w,U,h,T,Y,J){function f(b,a){for(;e<b;)T|=P(y)<<e,e+=8;return T>>=(a=T&(e-=b,(1<<b)-1),b),a}for(K=(h=(U=(Y=(e=T=(Z=u(y),0),f(3)|0)+1,f(5)),0),[]),Q=0;Q<U;Q++)J=f(1),K.push(J),h+=J?0:1;for(Q=(N=(h=((h|0)-1).toString(2).length,[]),0);Q<U;Q++)K[Q]||(N[Q]=f(h));for(h=0;h<U;h++)K[h]&&(N[h]=u(y));for(w=[];Y--;)w.push(v(y,u(y)));p(Z,y,function(b,a,O,VB,X){for(O=(VB=(X=[],[]),0);O<U;O++){if(a=N[O],!K[O]){for(;a>=X.length;)X.push(u(b));a=X[a]}VB.push(a)}b.L=h8(b,w.slice()),b.N=h8(b,VB)})})),k),{}),k),function(y){al(y,1)}),function(y,e,K){l(y,e,true,false)||(e=u(y),K=u(y),V(K,y,function(N){return eval(N)}(Gu(v(y.C,e)))))})),499),k,function(y){sk(y,3)}),0),k),function(y,e,K,N){K=(N=P((e=u(y),y)),u(y)),V(K,y,v(y,e)>>>N)}),0),function(y,e,K,N){V((e=v(y,(N=v(y,(K=u((N=u(y),y)),N)),K)),K),y,e+N)})),function(y,e){y=(e=u(y),v)(y.C,e),y[0].removeEventListener(y[1],y[2],W)})),k),function(y,e,K,N,Q){V((K=v(y,(N=(Q=v(y,(Q=(N=(K=(e=u(y),u(y)),u(y)),u)(y),Q)),v(y,N)),K)),e),y,Ba(K,N,y,Q))}),k),function(y,e,K){V((K=v(y,(e=(K=u(y),u(y)),K)),K=qX(K),e),y,K)}),0)),S(4))),k),function(y,e,K,N,Q,Z){l(y,e,true,false)||(N=re(y.C),e=N.o,Z=N.Ck,Q=N.h,K=e.length,N=N.un,e=0==K?new Z[Q]:1==K?new Z[Q](e[0]):2==K?new Z[Q](e[0],e[1]):3==K?new Z[Q](e[0],e[1],e[2]):4==K?new Z[Q](e[0],e[1],e[2],e[3]):2(),V(N,y,e))}),function(y,e,K,N){N=u((e=u(y),y)),K=u(y),y.C==y&&(N=v(y,N),K=v(y,K),v(y,e)[N]=K,358==e&&(y.A=void 0,2==N&&(y.O=L(32,y,false),y.A=void 0)))})),function(y){al(y,4)})),[])),k),H),k),2048),k).an=0,0),0]),120),k,k),k),function(y,e,K,N){V((K=v((e=v(y,(N=u((K=u((e=u(y),y)),y)),e)),y),K),N),y,e[K])}),p(472,k,function(y,e,K,N){N=(e=u(y),u)(y),K=u(y),V(K,y,v(y,e)||v(y,N))}),[Rl])),[A,n])),k),[Il,R]),true),k,true)},J8=function(R,n){return d[R](d.prototype,{pop:n,replace:n,length:n,document:n,splice:n,parent:n,stack:n,floor:n,prototype:n,console:n,call:n,propertyIsEnumerable:n})},pX=function(R,n,k,q,c){for(q=(R=R.replace(/\\r\\n/g,"\\n"),n=0,[]),k=0;n<R.length;n++)c=R.charCodeAt(n),128>c?q[k++]=c:(2048>c?q[k++]=c>>6|192:(55296==(c&64512)&&n+1<R.length&&56320==(R.charCodeAt(n+1)&64512)?(c=65536+((c&1023)<<10)+(R.charCodeAt(++n)&1023),q[k++]=c>>18|240,q[k++]=c>>12&63|128):q[k++]=c>>12|224,q[k++]=c>>6&63|128),q[k++]=c&63|128);return q},LX=function(R,n,k,q,c,y){if(!n.R){n.J++;try{for(k=(q=(y=void 0,n).B,0);--R;)try{if((c=void 0,n).L)y=Zn(n,n.L);else{if(k=v(n,278),k>=q)break;y=(c=(V(426,n,k),u(n)),v)(n,c)}(y&&y[ue]&2048?y(n,R):M(n,0,[x,21,c]),l)(n,R,false,false)}catch(e){v(n,409)?M(n,22,e):V(409,n,e)}if(!R){if(n.Lk){n.J--,LX(338687074593,n);return}M(n,0,[x,33])}}catch(e){try{M(n,22,e)}catch(K){r(n,K)}}n.J--}},Zn=function(R,n){return(n=n.create().shift(),R.L.create()).length||R.N.create().length||(R.L=void 0,R.N=void 0),n},Dn=function(R,n,k,q){function c(){}return{invoke:(k=QB((q=void 0,R),function(y){c&&(n&&z(n),q=y,c(),c=void 0)},!!n)[0],function(y,e,K,N){function Q(){q(function(Z){z(function(){y(Z)})},K)}if(!e)return e=k(K),y&&y(e),e;q?Q():(N=c,c=function(){N(),z(Q)})})}},v=function(R,n){if(void 0===(R=R.u[n],R))throw[x,30,n];if(R.value)return R.create();return R.create(1*n*n+42*n+-40),R.prototype},D=function(R,n,k,q){for(k=(q=(R|0)-1,[]);0<=q;q--)k[(R|0)-1-(q|0)]=n>>8*q&255;return k},Uk=function(R,n){V(278,((n.Rn.push(n.u.slice()),n.u)[278]=void 0,n),R)},r=function(R,n){R.R=((R.R?R.R+"~":"E:")+n.message+":"+n.stack).slice(0,2048)},fX=function(R,n,k){return n.W(function(q){k=q},false,R),k},Ba=function(R,n,k,q,c,y){function e(){if(k.C==k){if(k.u){var K=[m,R,n,void 0,c,y,arguments];if(2==q)var N=B(false,(C(k,K),k),false);else if(1==q){var Q=!k.P.length;C(k,K),Q&&B(false,k,false)}else N=ca(k,K);return N}c&&y&&c.removeEventListener(y,e,W)}}return e},S=function(R,n){for(n=[];R--;)n.push(255*Math.random()|0);return n},ca=function(R,n,k,q,c){if(c=n[0],c==g)R.g=25,R.v(n);else if(c==F){q=n[1];try{k=R.R||R.v(n)}catch(y){r(R,y),k=R.R}q(k)}else if(c==jM)R.v(n);else if(c==A)R.v(n);else if(c==Il){try{for(k=0;k<R.j.length;k++)try{q=R.j[k],q[0][q[1]](q[2])}catch(y){}}catch(y){}(0,n[R.j=[],1])(function(y,e){R.W(y,true,e)},function(y){(C((y=!R.P.length,R),[ue]),y)&&B(false,R,true)})}else{if(c==m)return k=n[2],V(126,R,n[6]),V(15,R,k),R.v(n);c==ue?(R.K=[],R.i=[],R.u=null):c==Rl&&"loading"===H.document.readyState&&(R.F=function(y,e){function K(){e||(e=true,y())}H.document.addEventListener("DOMContentLoaded",(e=false,K),W),H.addEventListener("load",K,W)})}},al=function(R,n,k,q){G((k=u(R),q=u(R),q),R,D(n,v(R,k)))},$z=function(R,n){if((R=null,n=H.trustedTypes,!n)||!n.createPolicy)return R;try{R=n.createPolicy("bg",{createHTML:zu,createScript:zu,createScriptURL:zu})}catch(k){H.console&&H.console.error(k.message)}return R},zu=function(R){return R},M=function(R,n,k,q,c,y){if(!R.D){if((k=v(R,(n=(0==(q=((c=void 0,k&&k[0]===x)&&(c=k[2],n=k[1],k=void 0),v)(R,236),q).length&&(y=v(R,426)>>3,q.push(n,y>>8&255,y&255),void 0!=c&&q.push(c&255)),""),k&&(k.message&&(n+=k.message),k.stack&&(n+=":"+k.stack)),307)),3)<k){R.C=(c=(n=pX((k-=((n=n.slice(0,(k|0)-3),n.length)|0)+3,n)),R.C),R);try{G(421,R,D(2,n.length).concat(n),9)}finally{R.C=c}}V(307,R,k)}},H=this||self,t=function(R,n,k){k=this;try{Tu(n,R,this)}catch(q){r(this,q),n(function(c){c(k.R)})}},h8=function(R,n,k){return k=d[R.I](R.In),k[R.I]=function(){return n},k.concat=function(q){n=q},k},W={passive:true,capture:true},re=function(R,n,k,q,c,y){for(q=(c=(n=(k=u((y=R[le]||{},R)),y.un=u(R),y.o=[],R.C==R?(P(R)|0)-1:1),u(R)),0);q<n;q++)y.o.push(u(R));for(y.Ck=v(R,c);n--;)y.o[n]=v(R,y.o[n]);return y.h=v(R,k),y},z=H.requestIdleCallback?function(R){requestIdleCallback(function(){R()},{timeout:4})}:H.setImmediate?function(R){setImmediate(R)}:function(R){setTimeout(R,0)},de=function(R,n){n.push(R[0]<<24|R[1]<<16|R[2]<<8|R[3]),n.push(R[4]<<24|R[5]<<16|R[6]<<8|R[7]),n.push(R[8]<<24|R[9]<<16|R[10]<<8|R[11])},le=String.fromCharCode(105,110,116,101,103,67,104,101,99,107,66,121,112,97,115,115),x=((t.prototype.V="toString",t.prototype.Lk=false,t).prototype.Qy=void 0,{}),g=[],Il=[],jM=[],A=[],m=[],ue=(t.prototype.kh=void 0,[]),F=[],Rl=[],d=(E=((de,function(){})(S),yB,Ek,t.prototype),E.zc=function(){return Math.floor(this.G+(this.s()-this.H))},x.constructor),va=(E.s=(t.prototype.I="create",(E.dE=(E.W=function(R,n,k,q,c){if((k="array"===qX(k)?k:[k],this).R)R(this.R);else try{q=!this.P.length,c=[],C(this,[g,c,k]),C(this,[F,R,c]),n&&!q||B(true,this,n)}catch(y){r(this,y),R(this.R)}},function(R,n,k,q,c,y){for(c=q=0,y=[];q<R.length;q++)for(c+=n,k=k<<n|R[q];7<c;)c-=8,y.push(k>>c&255);return y}),(E.eN=(E.s9=function(R,n,k){return((n=(n^=n<<13,n^=n>>17,(n^n<<5)&k))||(n=1),R)^n},function(R,n,k,q,c){for(q=c=0;c<R.length;c++)q+=R.charCodeAt(c),q+=q<<10,q^=q>>6;return c=new Number((q+=q<<3,q^=q>>11,R=q+(q<<15)>>>0,R&(1<<n)-1)),c[0]=(R>>>n)%k,c}),E.FH=function(){return Math.floor(this.s())},window.performance||{}).now)?function(){return this.B0+window.performance.now()}:function(){return+new Date}),void 0),CX=((t.prototype.v=function(R,n){return n={},va=(R={},function(){return n==R?-40:9}),function(k,q,c,y,e,K,N,Q,Z,w,U,h,T,Y,J){n=(Y=n,R);try{if(h=k[0],h==A){T=k[1];try{for(Q=(y=atob(T),e=[],K=0);Q<y.length;Q++)J=y.charCodeAt(Q),255<J&&(e[K++]=J&255,J>>=8),e[K++]=J;V(358,this,(this.B=(this.i=e,this.i).length<<3,[0,0,0]))}catch(f){M(this,17,f);return}LX(8001,this)}else if(h==g)k[1].push(v(this,307),v(this,421).length,v(this,352).length,v(this,305).length),V(15,this,k[2]),this.u[349]&&Pa(this,8001,v(this,349));else{if(h==F){this.C=(Z=(U=D(2,(v(this,(K=k[2],305)).length|0)+2),this.C),this);try{w=v(this,236),0<w.length&&G(305,this,D(2,w.length).concat(w),10),G(305,this,D(1,this.Y),109),G(305,this,D(1,this[F].length)),y=0,y-=(v(this,305).length|0)+5,y+=v(this,289)&2047,q=v(this,421),4<q.length&&(y-=(q.length|0)+3),0<y&&G(305,this,D(2,y).concat(S(y)),15),4<q.length&&G(305,this,D(2,q.length).concat(q),156)}finally{this.C=Z}if(c=((Q=S(2).concat(v(this,305)),Q[1]=Q[0]^6,Q[3]=Q[1]^U[0],Q)[4]=Q[1]^U[1],this.rE(Q)))c="!"+c;else for(c="",y=0;y<Q.length;y++)N=Q[y][this.V](16),1==N.length&&(N="0"+N),c+=N;return v(this,(v((v((V(307,this,(e=c,K.shift())),this),421).length=K.shift(),this),352).length=K.shift(),305)).length=K.shift(),e}if(h==jM)Pa(this,k[2],k[1]);else if(h==m)return Pa(this,8001,k[1])}}finally{n=Y}}}(),t.prototype).rE=function(R,n,k,q){if(n=window.btoa){for(q=(k=0,"");k<R.length;k+=8192)q+=String.fromCharCode.apply(null,R.slice(k,k+8192));R=n(q).replace(/\\+/g,"-").replace(/\\//g,"_").replace(/=/g,"")}else R=void 0;return R},/./);(t.prototype.Ax=0,t.prototype).yy=0;var be,Fn=A.pop.bind((t.prototype[Il]=[0,0,1,1,0,1,1],t).prototype[g]),Gu=function(R,n){return(n=$z())&&1===R.eval(n.createScript("1"))?function(k){return n.createScript(k)}:function(k){return""+k}}(((be=J8(t.prototype.I,{get:(CX[t.prototype.V]=Fn,Fn)}),t.prototype).O9=void 0,H));40<(I=H.botguard||(H.botguard={}),I.m)||(I.m=41,I.bg=Dn,I.a=QB),I.bDL_=function(R,n,k){return k=new t(R,n),[function(q){return fX(q,k)}]};}).call(this);'));
}).call(this);
#3 JavaScript::Eval (size: 22) - SHA256: 9bb0c662c12831d4a6a9d504b2534e28f08b91591da1303a05ad2b3e12a6e49e
0,
function(y) {
    xz(1, y)
}
#4 JavaScript::Eval (size: 22) - SHA256: 2ed176c7f9d5b3c8ca6ccdb0e994b6ddc34944c41fc4db7451fd7a3d27fed6f1
0,
function(y) {
    xz(2, y)
}
#5 JavaScript::Eval (size: 18634) - SHA256: c711e82a521af5684ab965bac8fc27d1522887d3a848196a169fb50750694463
(function() {
    var p = function(R, n, k) {
            k[V(R, n, k), Rl] = 2796
        },
        nX = function(R, n) {
            return R(function(k) {
                k(n)
            }), [function() {
                return n
            }]
        },
        kz = function(R, n, k, q, c) {
            for (n = (q = (c = n[3] | 0, 0), n[2]) | 0; 14 > q; q++) c = c >>> 8 | c << 24, k = k >>> 8 | k << 24, k += R | 0, c += n | 0, k ^= n + 2298, R = R << 3 | R >>> 29, c ^= q + 2298, R ^= k, n = n << 3 | n >>> 29, n ^= c;
            return [R >>> 24 & 255, R >>> 16 & 255, R >>> 8 & 255, R >>> 0 & 255, k >>> 24 & 255, k >>> 16 & 255, k >>> 8 & 255, k >>> 0 & 255]
        },
        E, L = function(R, n, k, q, c, y, e, K, N, Q, Z, w, U, h) {
            if (y = v(n, 278), y >= n.B) throw [x, 31];
            for (c = (K = 0, q = R, Q = y, n.c0.length); 0 < q;) Z = Q % 8, N = 8 - (Z | 0), N = N < q ? N : q, U = Q >> 3, w = n.i[U], k && (e = n, e.A != Q >> 6 && (e.A = Q >> 6, h = v(e, 358), e.l = kz(e.O, [0, 0, h[1], h[2]], e.A)), w ^= n.l[U & c]), K |= (w >> 8 - (Z | 0) - (N | 0) & (1 << N) - 1) << (q | 0) - (N | 0), Q += N, q -= N;
            return V(278, n, (k = K, (y | 0) + (R | 0))), k
        },
        yB = function(R, n, k, q) {
            try {
                q = R[((n | 0) + 2) % 3], R[n] = (R[n] | 0) - (R[((n | 0) + 1) % 3] | 0) - (q | 0) ^ (1 == n ? q << k : q >>> k)
            } catch (c) {
                throw c;
            }
        },
        eM = function(R, n) {
            return n = P(R), n & 128 && (n = n & 127 | P(R) << 7), n
        },
        qX = function(R, n, k) {
            if ((n = typeof R, "object") == n)
                if (R) {
                    if (R instanceof Array) return "array";
                    if (R instanceof Object) return n;
                    if ("[object Window]" == (k = Object.prototype.toString.call(R), k)) return "object";
                    if ("[object Array]" == k || "number" == typeof R.length && "undefined" != typeof R.splice && "undefined" != typeof R.propertyIsEnumerable && !R.propertyIsEnumerable("splice")) return "array";
                    if ("[object Function]" == k || "undefined" != typeof R.call && "undefined" != typeof R.propertyIsEnumerable && !R.propertyIsEnumerable("call")) return "function"
                } else return "null";
            else if ("function" == n && "undefined" == typeof R.call) return "object";
            return n
        },
        C = function(R, n) {
            R.P.splice(0, 0, n)
        },
        G = function(R, n, k, q, c, y) {
            if (n.C == n)
                for (c = v(n, R), 421 == R ? (R = function(e, K, N, Q) {
                        if (c.mm != (Q = ((K = c.length, K) | 0) - 4 >> 3, Q)) {
                            Q = (c.mm = (N = [0, 0, y[1], y[2]], Q), (Q << 3) - 4);
                            try {
                                c.nk = kz(KX(c, Q), N, KX(c, (Q | 0) + 4))
                            } catch (Z) {
                                throw Z;
                            }
                        }
                        c.push(c.nk[K & 7] ^ e)
                    }, y = v(n, 408)) : R = function(e) {
                        c.push(e)
                    }, q && R(q & 255), n = k.length, q = 0; q < n; q++) R(k[q])
        },
        NX = function(R, n, k, q) {
            for (; R.P.length;) {
                k = (R.F = null, R).P.pop();
                try {
                    q = ca(R, k)
                } catch (c) {
                    r(R, c)
                }
                if (n && R.F) {
                    n = R.F, n(function() {
                        B(true, R, true)
                    });
                    break
                }
            }
            return q
        },
        QB = function(R, n, k, q) {
            return (q = I[R.substring(0, 3) + "_"]) ? q(R.substring(3), n, k) : nX(n, R)
        },
        sk = function(R, n, k, q, c) {
            G(((c = (k = u((c = u((q = n & 4, n &= 3, R)), R)), v(R, c)), q) && (c = pX("" + c)), n && G(k, R, D(2, c.length)), k), R, c)
        },
        l = function(R, n, k, q, c, y, e, K, N) {
            if ((R.C = (((K = (y = (N = (c = (e = 0 < (k || R.X++, R).U && R.S && R.xh && 1 >= R.J && !R.L && !R.F && (!k || 1 < R.Z - n) && 0 == document.hidden, 4 == R.X)) || e ? R.s() : R.T, N - R.T), y) >> 14, R).O && (R.O ^= K * (y << 2)), R).Y += K, K || R.C), c) || e) R.X = 0, R.T = N;
            if (!e || N - R.H < R.U - (q ? 255 : k ? 5 : 2)) return false;
            return !((V(278, (q = v(R, (R.Z = n, k ? 426 : 278)), R), R.B), R.P).push([jM, q, k ? n + 1 : n]), R.F = z, 0)
        },
        Ek = function(R, n, k) {
            if (3 == R.length) {
                for (k = 0; 3 > k; k++) n[k] += R[k];
                for (k = [(R = 0, 13), 8, 13, 12, 16, 5, 3, 10, 15]; 9 > R; R++) n[3](n, R % 3, k[R])
            }
        },
        u = function(R, n) {
            if (R.L) return Zn(R, R.N);
            return n = L(8, R, true), n & 128 && (n ^= 128, R = L(2, R, true), n = (n << 2) + (R | 0)), n
        },
        KX = function(R, n) {
            return R[n] << 24 | R[(n | 0) + 1] << 16 | R[(n | 0) + 2] << 8 | R[(n | 0) + 3]
        },
        we = function(R, n, k, q, c, y, e, K) {
            return (c = d[n.I]((k = [-2, 42, -72, -(y = va, 46), -26, -71, k, 61, (K = q & 7, 9), 2], n.MJ)), c)[n.I] = function(N) {
                e = N, K += 6 + 7 * q, K &= 7
            }, c.concat = function(N) {
                return (N = (e = (N = +(N = R % 16 + 1, k)[K + 59 & 7] * R * N - N * e - -2440 * e + (y() | 0) * N + 1 * R * R * N - 2562 * R * e - 61 * R * R * e + K + 61 * e * e, void 0), k[N]), k[(K + 69 & 7) + (q & 2)] = N, k)[K + (q & 2)] = 42, N
            }, c
        },
        V = function(R, n, k) {
            if (278 == R || 426 == R) n.u[R] ? n.u[R].concat(k) : n.u[R] = h8(n, k);
            else {
                if (n.D && 358 != R) return;
                305 == R || 421 == R || 352 == R || 236 == R || 408 == R ? n.u[R] || (n.u[R] = we(R, n, k, 54)) : n.u[R] = we(R, n, k, 113)
            }
            358 == R && (n.O = L(32, n, false), n.A = void 0)
        },
        P = function(R) {
            return R.L ? Zn(R, R.N) : L(8, R, true)
        },
        B = function(R, n, k, q, c, y) {
            if (n.P.length) {
                (n.S = !(n.S && 0(), 0), n).xh = k;
                try {
                    q = n.s(), n.H = q, n.T = q, n.X = 0, c = NX(n, k), y = n.s() - n.H, n.G += y, y < (R ? 0 : 10) || 0 >= n.g-- || (y = Math.floor(y), n.K.push(254 >= y ? y : 254))
                } finally {
                    n.S = false
                }
                return c
            }
        },
        xz = function(R, n, k, q) {
            for (k = (q = u(n), 0); 0 < R; R--) k = k << 8 | P(n);
            V(q, n, k)
        },
        I, Pa = function(R, n, k, q) {
            return v(R, (LX((q = v(R, 278), R.i && q < R.B ? (V(278, R, R.B), Uk(k, R)) : V(278, R, k), n), R), V(278, R, q), 15))
        },
        Tu = function(R, n, k, q, c) {
            for (c = (q = (k.In = (k.MJ = J8(k.I, (k.v0 = (k.NJ = be, CX), k.c0 = k[F], {get: function() {
                        return this.concat()
                    }
                })), d)[k.I](k.MJ, {
                    value: {
                        value: {}
                    }
                }), []), 0); 128 > c; c++) q[c] = String.fromCharCode(c);
            B((C((C(k, (C(k, (p(340, (V((V(305, k, [160, ((V(307, (V(327, (V(236, k, (p(59, k, (p(127, k, (p(119, (V(421, k, (V(270, k, (p(87, (p(158, (p(396, k, (p(448, k, (k.on = (p(362, (k.E9 = (p((p(250, k, (p(371, (V(15, (p(354, k, (V(352, k, ((p(442, k, (p(227, k, (p(103, k, (p(11, k, (p(121, (V(289, (p(173, (V(409, k, (p(275, k, (p(317, (p(375, k, (p(432, ((p((p(295, (V(278, k, (k.B0 = (k.wE = (k.P0 = function(y) {
                this.C = y
            }, k.u = (k.R = void 0, []), k.F = ((k.O = (k.N = void 0, void 0), k.Y = 1, k.U = 0, (k.Rn = [], k).C = k, c = window.performance || {}, k.j = [], (k.J = 0, k).T = 0, k.B = 0, k.S = ((k.A = void 0, k.X = void 0, k).i = [], k.H = (k.P = (k.xh = false, []), k.g = (k.G = 0, 25), 0), k.L = (k.l = void 0, void 0), k.D = false, k.Z = 8001, false), k).K = [], null), 0), c).timeOrigin || (c.timing || {}).navigationStart || 0, 0)), V(426, k, 0), k), function(y, e, K, N) {
                V((e = v(y, (N = (K = (N = (e = u(y), u(y)), u(y)), v(y, N)), e)), K), y, e in N | 0)
            }), 163), k, function(y, e, K, N) {
                !l(y, e, true, false) && (e = re(y), N = e.Ck, K = e.h, y.C == y || K == y.P0 && N == y) && (V(e.un, y, K.apply(N, e.o)), y.T = y.s())
            }), p)(341, k, function(y, e, K, N) {
                if (N = y.Rn.pop()) {
                    for (K = P(y); 0 < K; K--) e = u(y), N[e] = y.u[e];
                    y.u = (N[236] = y.u[236], N[307] = y.u[307], N)
                } else V(278, y, y.B)
            }), k), function(y, e) {
                (e = v(y, u(y)), Uk)(e, y.C)
            }), function(y, e, K, N) {
                (e = v(y, (N = v((K = (N = u((e = u(y), y)), u(y)), y), N), e)) == N, V)(K, y, +e)
            })), k), function(y) {
                xz(4, y)
            }), function(y, e, K, N, Q, Z) {
                if (!l(y, e, true, true)) {
                    if ("object" == (y = v((N = (Q = v((e = v((N = (e = (Q = (Z = u(y), u)(y), u(y)), u)(y), y), e), y), Q), v(y, N)), y), Z), qX)(y)) {
                        for (K in Z = [], y) Z.push(K);
                        y = Z
                    }
                    for (Z = (e = 0 < e ? e : 1, K = y.length, 0); Z < K; Z += e) Q(y.slice(Z, (Z | 0) + (e | 0)), N)
                }
            })), p(193, k, function(y, e, K, N, Q) {
                0 !== (Q = v(y, (K = (e = v((N = v(y, (N = (Q = u((K = u(y), y)), e = u(y), u(y)), N)), y), e), v(y.C, K)), Q)), K) && (N = Ba(e, N, y, 1, K, Q), K.addEventListener(Q, N, W), V(270, y, [K, Q, N]))
            }), 687)), k), function(y) {
                sk(y, 4)
            }), k), 0), k), function() {}), function(y, e, K, N, Q, Z, w) {
                for (w = (e = (K = (N = u(y), Z = eM(y), Q = "", v(y, 115)), K.length), 0); Z--;) w = ((w | 0) + (eM(y) | 0)) % e, Q += q[K[w]];
                V(N, y, Q)
            })), function(y, e, K) {
                K = v((e = (K = (e = u(y), u(y)), 0 != v(y, e)), y), K), e && V(278, y, K)
            })), function(y, e, K, N, Q) {
                for (K = (e = (N = u(y), eM)(y), 0), Q = []; K < e; K++) Q.push(P(y));
                V(N, y, Q)
            })), function(y, e, K) {
                (e = u((K = u(y), y)), V)(e, y, "" + v(y, K))
            })), V)(408, k, [0, 0, 0]), [])), function(y, e, K, N, Q, Z, w, U, h, T, Y, J) {
                function f(b, a) {
                    for (; e < b;) T |= P(y) << e, e += 8;
                    return T >>= (a = T & (e -= b, (1 << b) - 1), b), a
                }
                for (K = (h = (U = (Y = (e = T = (Z = u(y), 0), f(3) | 0) + 1, f(5)), 0), []), Q = 0; Q < U; Q++) J = f(1), K.push(J), h += J ? 0 : 1;
                for (Q = (N = (h = ((h | 0) - 1).toString(2).length, []), 0); Q < U; Q++) K[Q] || (N[Q] = f(h));
                for (h = 0; h < U; h++) K[h] && (N[h] = u(y));
                for (w = []; Y--;) w.push(v(y, u(y)));
                p(Z, y, function(b, a, O, VB, X) {
                    for (O = (VB = (X = [], []), 0); O < U; O++) {
                        if (a = N[O], !K[O]) {
                            for (; a >= X.length;) X.push(u(b));
                            a = X[a]
                        }
                        VB.push(a)
                    }
                    b.L = h8(b, w.slice()), b.N = h8(b, VB)
                })
            })), k), {}), k), function(y) {
                al(y, 1)
            }), function(y, e, K) {
                l(y, e, true, false) || (e = u(y), K = u(y), V(K, y, function(N) {
                    return eval(N)
                }(Gu(v(y.C, e)))))
            })), 499), k, function(y) {
                sk(y, 3)
            }), 0), k), function(y, e, K, N) {
                K = (N = P((e = u(y), y)), u(y)), V(K, y, v(y, e) >>> N)
            }), 0), function(y, e, K, N) {
                V((e = v(y, (N = v(y, (K = u((N = u(y), y)), N)), K)), K), y, e + N)
            })), function(y, e) {
                y = (e = u(y), v)(y.C, e), y[0].removeEventListener(y[1], y[2], W)
            })), k), function(y, e, K, N, Q) {
                V((K = v(y, (N = (Q = v(y, (Q = (N = (K = (e = u(y), u(y)), u(y)), u)(y), Q)), v(y, N)), K)), e), y, Ba(K, N, y, Q))
            }), k), function(y, e, K) {
                V((K = v(y, (e = (K = u(y), u(y)), K)), K = qX(K), e), y, K)
            }), 0)), S(4))), k), function(y, e, K, N, Q, Z) {
                l(y, e, true, false) || (N = re(y.C), e = N.o, Z = N.Ck, Q = N.h, K = e.length, N = N.un, e = 0 == K ? new Z[Q] : 1 == K ? new Z[Q](e[0]) : 2 == K ? new Z[Q](e[0], e[1]) : 3 == K ? new Z[Q](e[0], e[1], e[2]) : 4 == K ? new Z[Q](e[0], e[1], e[2], e[3]) : 2(), V(N, y, e))
            }), function(y, e, K, N) {
                N = u((e = u(y), y)), K = u(y), y.C == y && (N = v(y, N), K = v(y, K), v(y, e)[N] = K, 358 == e && (y.A = void 0, 2 == N && (y.O = L(32, y, false), y.A = void 0)))
            })), function(y) {
                al(y, 4)
            })), [])), k), H), k), 2048), k).an = 0, 0), 0]), 120), k, k), k), function(y, e, K, N) {
                V((K = v((e = v(y, (N = u((K = u((e = u(y), y)), y)), e)), y), K), N), y, e[K])
            }), p(472, k, function(y, e, K, N) {
                N = (e = u(y), u)(y), K = u(y), V(K, y, v(y, e) || v(y, N))
            }), [Rl])), [A, n])), k), [Il, R]), true), k, true)
        },
        J8 = function(R, n) {
            return d[R](d.prototype, {
                pop: n,
                replace: n,
                length: n,
                document: n,
                splice: n,
                parent: n,
                stack: n,
                floor: n,
                prototype: n,
                console: n,
                call: n,
                propertyIsEnumerable: n
            })
        },
        pX = function(R, n, k, q, c) {
            for (q = (R = R.replace(/\r\n/g, "\n"), n = 0, []), k = 0; n < R.length; n++) c = R.charCodeAt(n), 128 > c ? q[k++] = c : (2048 > c ? q[k++] = c >> 6 | 192 : (55296 == (c & 64512) && n + 1 < R.length && 56320 == (R.charCodeAt(n + 1) & 64512) ? (c = 65536 + ((c & 1023) << 10) + (R.charCodeAt(++n) & 1023), q[k++] = c >> 18 | 240, q[k++] = c >> 12 & 63 | 128) : q[k++] = c >> 12 | 224, q[k++] = c >> 6 & 63 | 128), q[k++] = c & 63 | 128);
            return q
        },
        LX = function(R, n, k, q, c, y) {
            if (!n.R) {
                n.J++;
                try {
                    for (k = (q = (y = void 0, n).B, 0); --R;) try {
                        if ((c = void 0, n).L) y = Zn(n, n.L);
                        else {
                            if (k = v(n, 278), k >= q) break;
                            y = (c = (V(426, n, k), u(n)), v)(n, c)
                        }(y && y[ue] & 2048 ? y(n, R) : M(n, 0, [x, 21, c]), l)(n, R, false, false)
                    } catch (e) {
                        v(n, 409) ? M(n, 22, e) : V(409, n, e)
                    }
                    if (!R) {
                        if (n.Lk) {
                            n.J--, LX(338687074593, n);
                            return
                        }
                        M(n, 0, [x, 33])
                    }
                } catch (e) {
                    try {
                        M(n, 22, e)
                    } catch (K) {
                        r(n, K)
                    }
                }
                n.J--
            }
        },
        Zn = function(R, n) {
            return (n = n.create().shift(), R.L.create()).length || R.N.create().length || (R.L = void 0, R.N = void 0), n
        },
        Dn = function(R, n, k, q) {
            function c() {}
            return {
                invoke: (k = QB((q = void 0, R), function(y) {
                    c && (n && z(n), q = y, c(), c = void 0)
                }, !!n)[0], function(y, e, K, N) {
                    function Q() {
                        q(function(Z) {
                            z(function() {
                                y(Z)
                            })
                        }, K)
                    }
                    if (!e) return e = k(K), y && y(e), e;
                    q ? Q() : (N = c, c = function() {
                        N(), z(Q)
                    })
                })
            }
        },
        v = function(R, n) {
            if (void 0 === (R = R.u[n], R)) throw [x, 30, n];
            if (R.value) return R.create();
            return R.create(1 * n * n + 42 * n + -40), R.prototype
        },
        D = function(R, n, k, q) {
            for (k = (q = (R | 0) - 1, []); 0 <= q; q--) k[(R | 0) - 1 - (q | 0)] = n >> 8 * q & 255;
            return k
        },
        Uk = function(R, n) {
            V(278, ((n.Rn.push(n.u.slice()), n.u)[278] = void 0, n), R)
        },
        r = function(R, n) {
            R.R = ((R.R ? R.R + "~" : "E:") + n.message + ":" + n.stack).slice(0, 2048)
        },
        fX = function(R, n, k) {
            return n.W(function(q) {
                k = q
            }, false, R), k
        },
        Ba = function(R, n, k, q, c, y) {
            function e() {
                if (k.C == k) {
                    if (k.u) {
                        var K = [m, R, n, void 0, c, y, arguments];
                        if (2 == q) var N = B(false, (C(k, K), k), false);
                        else if (1 == q) {
                            var Q = !k.P.length;
                            C(k, K), Q && B(false, k, false)
                        } else N = ca(k, K);
                        return N
                    }
                    c && y && c.removeEventListener(y, e, W)
                }
            }
            return e
        },
        S = function(R, n) {
            for (n = []; R--;) n.push(255 * Math.random() | 0);
            return n
        },
        ca = function(R, n, k, q, c) {
            if (c = n[0], c == g) R.g = 25, R.v(n);
            else if (c == F) {
                q = n[1];
                try {
                    k = R.R || R.v(n)
                } catch (y) {
                    r(R, y), k = R.R
                }
                q(k)
            } else if (c == jM) R.v(n);
            else if (c == A) R.v(n);
            else if (c == Il) {
                try {
                    for (k = 0; k < R.j.length; k++) try {
                        q = R.j[k], q[0][q[1]](q[2])
                    } catch (y) {}
                } catch (y) {}(0, n[R.j = [], 1])(function(y, e) {
                    R.W(y, true, e)
                }, function(y) {
                    (C((y = !R.P.length, R), [ue]), y) && B(false, R, true)
                })
            } else {
                if (c == m) return k = n[2], V(126, R, n[6]), V(15, R, k), R.v(n);
                c == ue ? (R.K = [], R.i = [], R.u = null) : c == Rl && "loading" === H.document.readyState && (R.F = function(y, e) {
                    function K() {
                        e || (e = true, y())
                    }
                    H.document.addEventListener("DOMContentLoaded", (e = false, K), W), H.addEventListener("load", K, W)
                })
            }
        },
        al = function(R, n, k, q) {
            G((k = u(R), q = u(R), q), R, D(n, v(R, k)))
        },
        $z = function(R, n) {
            if ((R = null, n = H.trustedTypes, !n) || !n.createPolicy) return R;
            try {
                R = n.createPolicy("bg", {
                    createHTML: zu,
                    createScript: zu,
                    createScriptURL: zu
                })
            } catch (k) {
                H.console && H.console.error(k.message)
            }
            return R
        },
        zu = function(R) {
            return R
        },
        M = function(R, n, k, q, c, y) {
            if (!R.D) {
                if ((k = v(R, (n = (0 == (q = ((c = void 0, k && k[0] === x) && (c = k[2], n = k[1], k = void 0), v)(R, 236), q).length && (y = v(R, 426) >> 3, q.push(n, y >> 8 & 255, y & 255), void 0 != c && q.push(c & 255)), ""), k && (k.message && (n += k.message), k.stack && (n += ":" + k.stack)), 307)), 3) < k) {
                    R.C = (c = (n = pX((k -= ((n = n.slice(0, (k | 0) - 3), n.length) | 0) + 3, n)), R.C), R);
                    try {
                        G(421, R, D(2, n.length).concat(n), 9)
                    } finally {
                        R.C = c
                    }
                }
                V(307, R, k)
            }
        },
        H = this || self,
        t = function(R, n, k) {
            k = this;
            try {
                Tu(n, R, this)
            } catch (q) {
                r(this, q), n(function(c) {
                    c(k.R)
                })
            }
        },
        h8 = function(R, n, k) {
            return k = d[R.I](R.In), k[R.I] = function() {
                return n
            }, k.concat = function(q) {
                n = q
            }, k
        },
        W = {
            passive: true,
            capture: true
        },
        re = function(R, n, k, q, c, y) {
            for (q = (c = (n = (k = u((y = R[le] || {}, R)), y.un = u(R), y.o = [], R.C == R ? (P(R) | 0) - 1 : 1), u(R)), 0); q < n; q++) y.o.push(u(R));
            for (y.Ck = v(R, c); n--;) y.o[n] = v(R, y.o[n]);
            return y.h = v(R, k), y
        },
        z = H.requestIdleCallback ? function(R) {
            requestIdleCallback(function() {
                R()
            }, {
                timeout: 4
            })
        } : H.setImmediate ? function(R) {
            setImmediate(R)
        } : function(R) {
            setTimeout(R, 0)
        },
        de = function(R, n) {
            n.push(R[0] << 24 | R[1] << 16 | R[2] << 8 | R[3]), n.push(R[4] << 24 | R[5] << 16 | R[6] << 8 | R[7]), n.push(R[8] << 24 | R[9] << 16 | R[10] << 8 | R[11])
        },
        le = String.fromCharCode(105, 110, 116, 101, 103, 67, 104, 101, 99, 107, 66, 121, 112, 97, 115, 115),
        x = ((t.prototype.V = "toString", t.prototype.Lk = false, t).prototype.Qy = void 0, {}),
        g = [],
        Il = [],
        jM = [],
        A = [],
        m = [],
        ue = (t.prototype.kh = void 0, []),
        F = [],
        Rl = [],
        d = (E = ((de, function() {})(S), yB, Ek, t.prototype), E.zc = function() {
            return Math.floor(this.G + (this.s() - this.H))
        }, x.constructor),
        va = (E.s = (t.prototype.I = "create", (E.dE = (E.W = function(R, n, k, q, c) {
            if ((k = "array" === qX(k) ? k : [k], this).R) R(this.R);
            else try {
                q = !this.P.length, c = [], C(this, [g, c, k]), C(this, [F, R, c]), n && !q || B(true, this, n)
            } catch (y) {
                r(this, y), R(this.R)
            }
        }, function(R, n, k, q, c, y) {
            for (c = q = 0, y = []; q < R.length; q++)
                for (c += n, k = k << n | R[q]; 7 < c;) c -= 8, y.push(k >> c & 255);
            return y
        }), (E.eN = (E.s9 = function(R, n, k) {
            return ((n = (n ^= n << 13, n ^= n >> 17, (n ^ n << 5) & k)) || (n = 1), R) ^ n
        }, function(R, n, k, q, c) {
            for (q = c = 0; c < R.length; c++) q += R.charCodeAt(c), q += q << 10, q ^= q >> 6;
            return c = new Number((q += q << 3, q ^= q >> 11, R = q + (q << 15) >>> 0, R & (1 << n) - 1)), c[0] = (R >>> n) % k, c
        }), E.FH = function() {
            return Math.floor(this.s())
        }, window.performance || {}).now) ? function() {
            return this.B0 + window.performance.now()
        } : function() {
            return +new Date
        }), void 0),
        CX = ((t.prototype.v = function(R, n) {
            return n = {}, va = (R = {}, function() {
                    return n == R ? -40 : 9
                }),
                function(k, q, c, y, e, K, N, Q, Z, w, U, h, T, Y, J) {
                    n = (Y = n, R);
                    try {
                        if (h = k[0], h == A) {
                            T = k[1];
                            try {
                                for (Q = (y = atob(T), e = [], K = 0); Q < y.length; Q++) J = y.charCodeAt(Q), 255 < J && (e[K++] = J & 255, J >>= 8), e[K++] = J;
                                V(358, this, (this.B = (this.i = e, this.i).length << 3, [0, 0, 0]))
                            } catch (f) {
                                M(this, 17, f);
                                return
                            }
                            LX(8001, this)
                        } else if (h == g) k[1].push(v(this, 307), v(this, 421).length, v(this, 352).length, v(this, 305).length), V(15, this, k[2]), this.u[349] && Pa(this, 8001, v(this, 349));
                        else {
                            if (h == F) {
                                this.C = (Z = (U = D(2, (v(this, (K = k[2], 305)).length | 0) + 2), this.C), this);
                                try {
                                    w = v(this, 236), 0 < w.length && G(305, this, D(2, w.length).concat(w), 10), G(305, this, D(1, this.Y), 109), G(305, this, D(1, this[F].length)), y = 0, y -= (v(this, 305).length | 0) + 5, y += v(this, 289) & 2047, q = v(this, 421), 4 < q.length && (y -= (q.length | 0) + 3), 0 < y && G(305, this, D(2, y).concat(S(y)), 15), 4 < q.length && G(305, this, D(2, q.length).concat(q), 156)
                                } finally {
                                    this.C = Z
                                }
                                if (c = ((Q = S(2).concat(v(this, 305)), Q[1] = Q[0] ^ 6, Q[3] = Q[1] ^ U[0], Q)[4] = Q[1] ^ U[1], this.rE(Q))) c = "!" + c;
                                else
                                    for (c = "", y = 0; y < Q.length; y++) N = Q[y][this.V](16), 1 == N.length && (N = "0" + N), c += N;
                                return v(this, (v((v((V(307, this, (e = c, K.shift())), this), 421).length = K.shift(), this), 352).length = K.shift(), 305)).length = K.shift(), e
                            }
                            if (h == jM) Pa(this, k[2], k[1]);
                            else if (h == m) return Pa(this, 8001, k[1])
                        }
                    } finally {
                        n = Y
                    }
                }
        }(), t.prototype).rE = function(R, n, k, q) {
            if (n = window.btoa) {
                for (q = (k = 0, ""); k < R.length; k += 8192) q += String.fromCharCode.apply(null, R.slice(k, k + 8192));
                R = n(q).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "")
            } else R = void 0;
            return R
        }, /./);
    (t.prototype.Ax = 0, t.prototype).yy = 0;
    var be, Fn = A.pop.bind((t.prototype[Il] = [0, 0, 1, 1, 0, 1, 1], t).prototype[g]),
        Gu = function(R, n) {
            return (n = $z()) && 1 === R.eval(n.createScript("1")) ? function(k) {
                return n.createScript(k)
            } : function(k) {
                return "" + k
            }
        }(((be = J8(t.prototype.I, {get: (CX[t.prototype.V] = Fn, Fn)
        }), t.prototype).O9 = void 0, H));
    40 < (I = H.botguard || (H.botguard = {}), I.m) || (I.m = 41, I.bg = Dn, I.a = QB), I.bDL_ = function(R, n, k) {
        return k = new t(R, n), [function(q) {
            return fX(q, k)
        }]
    };
}).call(this);
#6 JavaScript::Eval (size: 224676) - SHA256: 5d0854a65806f5e555eb4815a0e302f51ed9d21b70ff9a0c70955474165d133e
! function(X) {
    "use strict";
    window._layerSliders = {}, X.fn.layerSlider = function(i, a, s, o) {
        i = i || {};
        var t, e = "1.8.0",
            r = X.fn.jquery;
        if (window._layerSlider.checkVersions(e, r, e)) return (typeof i).match("object|undefined") ? this.each(function(e) {
            t = "LS" + Math.random().toString(36).substr(2, 9), X(this).data("lsSliderUID") || (window._layerSliders[t] = new n(this, X(this), i, t))
        }) : "data" === i ? window._layerSliders[this.data("lsSliderUID")] : "eventData" === i ? window._layerSliders[this.data("lsSliderUID")].api.eventData() : "defaultInitOptions" === i ? window._layerSliders[this.data("lsSliderUID")].defaults.init.options || !1 : "userInitOptions" === i ? window._layerSliders[this.data("lsSliderUID")].userInitOptions || !1 : "sliderInitOptions" === i ? window._layerSliders[this.data("lsSliderUID")].o || !1 : "originalMarkup" === i ? window._layerSliders[this.data("lsSliderUID")].originalMarkup || !1 : this.each(function(e) {
            var t = window._layerSliders[X(this).data("lsSliderUID")];
            t && t.api.methods(i, a, s, o), t = null
        });
        window._layerSlider.showNotice(this, "oldjquery", r, e)
    };
    var n = function($, B, i, W) {
        B.data("lsSliderUID", W).attr("data-layerslider-uid", W);
        var V = this,
            H = V.gsap = window._layerSlider.GSAP || window;
        V.defaults = {
            init: {
                lsDataArraySplitChar: "|",
                dataKey: "_LS",
                controls: ["#playmedia", "#pausemedia", "#unmute", "#unmutemedia", "#start", "#stop", "#prev", "#next", "#replay", "#reverse", "#reverse-replay", "#reversereplay"],
                options: {
                    type: "responsive",
                    fullSizeMode: "normal",
                    fitScreenWidth: !0,
                    preventSliderClip: !0,
                    allowFullscreen: !0,
                    responsiveUnder: -1,
                    layersContainerWidth: -1,
                    layersContainerHeight: -1,
                    maxRatio: -1,
                    insertMethod: "prependTo",
                    insertSelector: null,
                    clipSlideTransition: !1,
                    slideBGSize: "cover",
                    slideBGPosition: "50% 50%",
                    preferBlendMode: !1,
                    autoStart: !0,
                    startInViewport: !0,
                    playByScroll: !1,
                    playByScrollSpeed: 1,
                    playByScrollStart: !1,
                    playByScrollSkipSlideBreaks: !1,
                    pauseOnHover: !1,
                    pauseLayers: !1,
                    firstSlide: 1,
                    sliderFadeInDuration: 350,
                    cycles: -1,
                    forceCycles: !0,
                    twoWaySlideshow: !1,
                    shuffleSlideshow: !1,
                    forceLayersOutDuration: 750,
                    slideDuration: !1,
                    slideDurationWithoutLayers: 3e3,
                    slideTransitionDuration: !1,
                    slideTimeShift: 0,
                    skin: "v6",
                    skinsPath: "/layerslider/skins/",
                    globalBGColor: "transparent",
                    globalBGImage: !1,
                    globalBGRepeat: "no-repeat",
                    globalBGAttachment: "scroll",
                    globalBGSize: "auto",
                    globalBGPosition: "50% 50%",
                    navPrevNext: !0,
                    navStartStop: !0,
                    navButtons: !0,
                    keybNav: !0,
                    touchNav: !0,
                    hoverPrevNext: !0,
                    hoverBottomNav: !1,
                    showBarTimer: !1,
                    showCircleTimer: !0,
                    showSlideBarTimer: !1,
                    thumbnailNavigation: "hover",
                    tnContainerWidth: "60%",
                    tnWidth: 100,
                    tnHeight: 60,
                    tnActiveOpacity: 35,
                    tnInactiveOpacity: 100,
                    scrollModifier: 0,
                    autoPlayVideos: !0,
                    autoPauseSlideshow: "auto",
                    youtubePreview: "maxresdefault.jpg",
                    rememberUnmuteState: !0,
                    parallaxCenterDegree: 40,
                    parallaxSensitivity: 10,
                    parallaxCenterLayers: "center",
                    parallaxScrollReverse: !1,
                    scrollCenterLayers: "center",
                    yourLogo: !1,
                    yourLogoStyle: "left: -10px; top: -10px;",
                    yourLogoLink: !1,
                    yourLogoTarget: "_self",
                    optimizeForMobile: !0,
                    hideOnMobile: !1,
                    hideUnder: -1,
                    hideOver: -1,
                    slideOnSwipe: !0,
                    allowRestartOnResize: !1,
                    useSrcset: !0,
                    hashChange: !1,
                    refreshWaypoint: !0,
                    staticImage: ""
                }
            },
            slider: {
                errorText: "LayerSlider (UID: " + W + ") error:"
            },
            slide: {
                keys: {
                    slidedelay: ["data", "duration"],
                    duration: ["data", "duration"],
                    timeshift: ["data", "timeShift"],
                    transition2d: ["data", "transition2d"],
                    transition3d: ["data", "transition3d"],
                    transitionorigami: ["data", "transitionorigami"],
                    customtransition2d: ["data", "customtransition2d"],
                    customtransition3d: ["data", "customtransition3d"],
                    transitionduration: ["data", "transitionDuration"],
                    backgroundsize: ["data", "backgroundSize"],
                    bgsize: ["data", "backgroundSize"],
                    backgroundposition: ["data", "backgroundPosition"],
                    bgposition: ["data", "backgroundPosition"],
                    backgroundcolor: ["data", "backgroundColor"],
                    bgcolor: ["data", "backgroundColor"],
                    thumbnail: ["data", "thumbnail"],
                    deeplink: ["data", "deeplink"],
                    overflow: ["data", "overflow"],
                    kenburnspan: ["kenBurns", "pan"],
                    kenburnszoom: ["kenBurns", "zoom"],
                    kenburnsrotation: ["kenBurns", "rotation"],
                    kenburnsrotate: ["kenBurns", "rotation"],
                    kenburnsscale: ["kenBurns", "scale"],
                    filterfrom: ["filter", "from"],
                    filterto: ["filter", "to"],
                    parallaxtype: ["parallax", "type"],
                    parallaxevent: ["parallax", "event"],
                    parallaxpath: ["parallax", "path"],
                    parallaxdirection: ["parallax", "direction"],
                    parallaxduration: ["parallax", "duration"],
                    parallaxcount: ["parallax", "count"],
                    parallaxdelay: ["parallax", "startAt"],
                    parallaxstartat: ["parallax", "startAt"],
                    parallaxaxis: ["parallax", "axis"],
                    parallaxtransformorigin: ["parallax", "transformOrigin"],
                    parallaxdurationmove: ["parallax", "durationMove"],
                    parallaxdurationleave: ["parallax", "durationLeave"],
                    parallaxrotate: ["parallax", "rotation"],
                    parallaxrotation: ["parallax", "rotation"],
                    parallaxdistance: ["parallax", "distance"],
                    parallaxtransformperspective: ["parallax", "transformPerspective"],
                    globalhover: ["data", "globalhover"]
                },
                options: {
                    $link: !1,
                    index: -1,
                    data: {
                        duration: -1,
                        timeShift: 0,
                        calculatedTimeShift: 0
                    },
                    parallax: {},
                    kenBurns: {
                        scale: 1.2
                    },
                    filter: {}
                },
                registerPluginDefaults: function(e, t, i) {
                    V.defaults.slide.options.plugins || (V.defaults.slide.options.plugins = {}), V.defaults.slide.options.plugins[e] = t
                }
            },
            layer: {
                keys: {
                    keyframe: ["is"],
                    responsive: ["is"],
                    position: ["settings"],
                    static: ["settings"],
                    mirrortransitions: ["settings"],
                    minfontsize: ["styleSettings"],
                    minmobilefontsize: ["styleSettings"],
                    overlay: ["styleSettings"],
                    pointerevents: ["styleSettings"],
                    autoplay: ["mediaSettings"],
                    controls: ["mediaSettings"],
                    showinfo: ["mediaSettings"],
                    fillmode: ["mediaSettings"],
                    thumbnail: ["poster", "mediaSettings"],
                    poster: ["mediaSettings"],
                    volume: ["mediaSettings"],
                    muted: ["mediaSettings"],
                    loopmedia: ["loop", "mediaSettings"],
                    backgroundvideo: ["backgroundVideo", "mediaSettings"],
                    fadein: ["opacity", "inLayerFromCSS"],
                    opacityin: ["opacity", "inLayerFromCSS"],
                    rotatein: ["rotation", "inLayerFromCSS"],
                    rotatexin: ["rotationX", "inLayerFromCSS"],
                    rotateyin: ["rotationY", "inLayerFromCSS"],
                    rotationin: ["rotation", "inLayerFromCSS"],
                    rotationxin: ["rotationX", "inLayerFromCSS"],
                    rotationyin: ["rotationY", "inLayerFromCSS"],
                    scalein: ["scale", "inLayerFromCSS"],
                    scalexin: ["scaleX", "inLayerFromCSS"],
                    scaleyin: ["scaleY", "inLayerFromCSS"],
                    skewxin: ["skewX", "inLayerFromCSS"],
                    skewyin: ["skewY", "inLayerFromCSS"],
                    bgcolorin: ["backgroundColor", "inLayerStyleFromCSS"],
                    colorin: ["color", "inLayerStyleFromCSS"],
                    radiusin: ["borderRadius", "inLayerStyleShouldBeConvertedFrom"],
                    widthin: ["width", "inLayerStyleShouldBeConvertedFrom"],
                    heightin: ["height", "inLayerStyleShouldBeConvertedFrom"],
                    filterin: ["filter", "inLayerStyleShouldBeConvertedFrom"],
                    rotate: ["rotation", "inLayerToCSS"],
                    rotatex: ["rotationX", "inLayerToCSS"],
                    rotatey: ["rotationY", "inLayerToCSS"],
                    rotation: ["rotation", "inLayerToCSS"],
                    rotationx: ["rotationX", "inLayerToCSS"],
                    rotationy: ["rotationY", "inLayerToCSS"],
                    scale: ["scale", "inLayerToCSS"],
                    scalex: ["scaleX", "inLayerToCSS"],
                    scaley: ["scaleY", "inLayerToCSS"],
                    skewx: ["skewX", "inLayerToCSS"],
                    skewy: ["skewY", "inLayerToCSS"],
                    transformoriginin: ["transformOrigin", "inLayerShouldBeConverted"],
                    offsetxin: ["x", "inLayerShouldBeConverted"],
                    offsetyin: ["y", "inLayerShouldBeConverted"],
                    clipin: ["clip", "inClipShouldBeConverted"],
                    delayin: ["startAt", "in"],
                    startatin: ["startAt", "in"],
                    instartat: ["startAt", "in"],
                    durationin: ["duration", "in"],
                    easein: ["ease", "in"],
                    easingin: ["ease", "in"],
                    transitionin: ["enabled", "in"],
                    textfadein: ["opacity", "textInNodesFrom"],
                    textopacityin: ["opacity", "textInNodesFrom"],
                    textrotatein: ["rotation", "textInNodesFrom"],
                    textrotatexin: ["rotationX", "textInNodesFrom"],
                    textrotateyin: ["rotationY", "textInNodesFrom"],
                    textrotationin: ["rotation", "textInNodesFrom"],
                    textrotationxin: ["rotationX", "textInNodesFrom"],
                    textrotationyin: ["rotationY", "textInNodesFrom"],
                    textscalein: ["scale", "textInNodesFrom"],
                    textscalexin: ["scaleX", "textInNodesFrom"],
                    textscaleyin: ["scaleY", "textInNodesFrom"],
                    textskewxin: ["skewX", "textInNodesFrom"],
                    textskewyin: ["skewY", "textInNodesFrom"],
                    texteasein: ["ease", "textInNodesTo"],
                    texteasingin: ["ease", "textInNodesTo"],
                    texttransformoriginin: ["transformOrigin", "textInShouldBeConverted"],
                    textoffsetxin: ["x", "textInShouldBeConverted"],
                    textoffsetyin: ["y", "textInShouldBeConverted"],
                    texttypein: ["type", "textIn"],
                    textshiftin: ["shiftNodes", "textIn"],
                    textdelayin: ["startAt", "textIn"],
                    textstartatin: ["startAt", "textIn"],
                    textinstartat: ["startAt", "textIn"],
                    textdurationin: ["duration", "textIn"],
                    texttransitionin: ["enabled", "textIn"],
                    fadeout: ["opacity", "outLayerToCSS"],
                    opacityout: ["opacity", "outLayerToCSS"],
                    rotateout: ["rotation", "outLayerToCSS"],
                    rotatexout: ["rotationX", "outLayerToCSS"],
                    rotateyout: ["rotationY", "outLayerToCSS"],
                    rotationout: ["rotation", "outLayerToCSS"],
                    rotationxout: ["rotationX", "outLayerToCSS"],
                    rotationyout: ["rotationY", "outLayerToCSS"],
                    scaleout: ["scale", "outLayerToCSS"],
                    scalexout: ["scaleX", "outLayerToCSS"],
                    scaleyout: ["scaleY", "outLayerToCSS"],
                    skewxout: ["skewX", "outLayerToCSS"],
                    skewyout: ["skewY", "outLayerToCSS"],
                    bgcolorout: ["backgroundColor", "outLayerStyleToCSS"],
                    colorout: ["color", "outLayerStyleToCSS"],
                    radiusout: ["borderRadius", "outLayerStyleShouldBeConvertedTo"],
                    widthout: ["width", "outLayerStyleShouldBeConvertedTo"],
                    heightout: ["height", "outLayerStyleShouldBeConvertedTo"],
                    filterout: ["filter", "outLayerStyleShouldBeConvertedTo"],
                    transformoriginout: ["transformOrigin", "outLayerShouldBeConverted"],
                    offsetxout: ["x", "outLayerShouldBeConverted"],
                    offsetyout: ["y", "outLayerShouldBeConverted"],
                    clipout: ["clip", "outClipShouldBeConverted"],
                    showuntil: ["showUntil", "out"],
                    startatout: ["startAt", "out"],
                    outstartat: ["startAt", "out"],
                    durationout: ["duration", "out"],
                    easeout: ["ease", "out"],
                    easingout: ["ease", "out"],
                    transitionout: ["enabled", "out"],
                    textfadeout: ["opacity", "textOutNodesTo"],
                    textopacityout: ["opacity", "textOutNodesTo"],
                    textrotateout: ["rotation", "textOutNodesTo"],
                    textrotatexout: ["rotationX", "textOutNodesTo"],
                    textrotateyout: ["rotationY", "textOutNodesTo"],
                    textrotationout: ["rotation", "textOutNodesTo"],
                    textrotationxout: ["rotationX", "textOutNodesTo"],
                    textrotationyout: ["rotationY", "textOutNodesTo"],
                    textscaleout: ["scale", "textOutNodesTo"],
                    textscalexout: ["scaleX", "textOutNodesTo"],
                    textscaleyout: ["scaleY", "textOutNodesTo"],
                    textskewxout: ["skewX", "textOutNodesTo"],
                    textskewyout: ["skewY", "textOutNodesTo"],
                    texteaseout: ["ease", "textOutNodesTo"],
                    texteasingout: ["ease", "textOutNodesTo"],
                    texttransformoriginout: ["transformOrigin", "textOutShouldBeConverted"],
                    textoffsetxout: ["x", "textOutShouldBeConverted"],
                    textoffsetyout: ["y", "textOutShouldBeConverted"],
                    texttypeout: ["type", "textOut"],
                    textshiftout: ["shiftNodes", "textOut"],
                    textdelayout: ["startAt", "textOut"],
                    textstartatout: ["startAt", "textOut"],
                    textoutstartat: ["startAt", "textOut"],
                    textdurationout: ["duration", "textOut"],
                    texttransitionout: ["enabled", "textOut"],
                    loopopacity: ["opacity", "loopToCSS"],
                    looprotate: ["rotation", "loopToCSS"],
                    looprotatex: ["rotationX", "loopToCSS"],
                    looprotatey: ["rotationY", "loopToCSS"],
                    looprotation: ["rotation", "loopToCSS"],
                    looprotationx: ["rotationX", "loopToCSS"],
                    looprotationy: ["rotationY", "loopToCSS"],
                    loopscale: ["scale", "loopToCSS"],
                    loopscalex: ["scaleX", "loopToCSS"],
                    loopscaley: ["scaleY", "loopToCSS"],
                    loopskewx: ["skewX", "loopToCSS"],
                    loopskewy: ["skewY", "loopToCSS"],
                    looptransformorigin: ["transformOrigin", "loopLayerShouldBeConverted"],
                    loopoffsetx: ["x", "loopLayerShouldBeConverted"],
                    loopoffsety: ["y", "loopLayerShouldBeConverted"],
                    loopfilter: ["filter", "loopLayerShouldBeConverted"],
                    loopclip: ["clip", "loopClipShouldBeConverted"],
                    loopdelay: ["startAt", "loop"],
                    loopstartat: ["startAt", "loop"],
                    loopduration: ["duration", "loop"],
                    loopcount: ["count", "loop"],
                    looprepeatdelay: ["repeatDelay", "loop"],
                    loopyoyo: ["yoyo", "loop"],
                    loopease: ["ease", "loop"],
                    loopeasing: ["ease", "loop"],
                    loop: ["enabled", "loop"],
                    hoveropacity: ["opacity", "hoverToCSS"],
                    hoverrotate: ["rotation", "hoverToCSS"],
                    hoverrotatex: ["rotationX", "hoverToCSS"],
                    hoverrotatey: ["rotationY", "hoverToCSS"],
                    hoverrotation: ["rotation", "hoverToCSS"],
                    hoverrotationx: ["rotationX", "hoverToCSS"],
                    hoverrotationy: ["rotationY", "hoverToCSS"],
                    hoverscale: ["scale", "hoverToCSS"],
                    hoverscalex: ["scaleX", "hoverToCSS"],
                    hoverscaley: ["scaleY", "hoverToCSS"],
                    hoverskewx: ["skewX", "hoverToCSS"],
                    hoverskewy: ["skewY", "hoverToCSS"],
                    hoverbgcolor: ["backgroundColor", "hoverToCSS"],
                    hovercolor: ["color", "hoverToCSS"],
                    hoverease: ["easeIn", "hover"],
                    hovereasing: ["easeIn", "hover"],
                    hovereasein: ["easeIn", "hover"],
                    hovereasingin: ["easeIn", "hover"],
                    hovereaseout: ["easeOut", "hover"],
                    hovereasingout: ["easeOut", "hover"],
                    hoverduration: ["durationIn", "hover"],
                    hoverdurationin: ["durationIn", "hover"],
                    hoverdurationout: ["durationOut", "hover"],
                    hoveralwaysontop: ["alwaysOnTop", "hover"],
                    hoveroffsetx: ["x", "hoverShouldBeConverted"],
                    hoveroffsety: ["y", "hoverShouldBeConverted"],
                    hoverfilter: ["filter", "hoverShouldBeConverted"],
                    hoverborderradius: ["borderRadius", "hoverShouldBeConverted"],
                    hoverradius: ["borderRadius", "hoverShouldBeConverted"],
                    hovertransformorigin: ["transformOrigin", "hoverShouldBeConverted"],
                    hover: ["enabled", "hover"],
                    kenburnspan: ["pan", "kenBurns"],
                    kenburnszoom: ["zoom", "kenBurns"],
                    kenburnsrotation: ["rotation", "kenBurns"],
                    kenburnsrotate: ["rotation", "kenBurns"],
                    kenburnsscale: ["scale", "kenBurns"],
                    parallaxlevel: ["level", "parallax"],
                    parallaxtype: ["type", "parallax"],
                    parallaxevent: ["event", "parallax"],
                    parallaxpath: ["path", "parallax"],
                    parallaxdirection: ["direction", "parallax"],
                    parallaxduration: ["duration", "parallax"],
                    parallaxcount: ["count", "parallax"],
                    parallaxdelay: ["startAt", "parallax"],
                    parallaxstartat: ["startAt", "parallax"],
                    parallaxaxis: ["axis", "parallax"],
                    parallaxtransformorigin: ["transformOrigin", "parallax"],
                    parallaxdurationmove: ["durationMove", "parallax"],
                    parallaxdurationleave: ["durationLeave", "parallax"],
                    parallaxrotate: ["rotation", "parallax"],
                    parallaxrotation: ["rotation", "parallax"],
                    parallaxdistance: ["distance", "parallax"],
                    parallax: ["enabled", "parallax"],
                    scroll: ["enabled", "scroll"],
                    scrollduration: ["duration", "scroll"],
                    scrollcenter: ["center", "scroll"],
                    scrollopacity: ["opacity", "scroll"],
                    scrollopacitymin: ["opacitymin", "scroll"],
                    scrollopacitymax: ["opacitymax", "scroll"],
                    scrollopacityyoyo: ["opacityyoyo", "scroll"],
                    scrollrotate: ["rotation", "scroll"],
                    scrollrotatemin: ["rotationmin", "scroll"],
                    scrollrotatemax: ["rotationmax", "scroll"],
                    scrollrotateyoyo: ["rotationyoyo", "scroll"],
                    scrollrotatex: ["rotationX", "scroll"],
                    scrollrotatexmin: ["rotationXmin", "scroll"],
                    scrollrotatexmax: ["rotationXmax", "scroll"],
                    scrollrotatexyoyo: ["rotationXyoyo", "scroll"],
                    scrollrotatey: ["rotationY", "scroll"],
                    scrollrotateymin: ["rotationYmin", "scroll"],
                    scrollrotateymax: ["rotationYmax", "scroll"],
                    scrollrotateyyoyo: ["rotationYyoyo", "scroll"],
                    scrollrotation: ["rotation", "scroll"],
                    scrollrotationmin: ["rotationmin", "scroll"],
                    scrollrotationmax: ["rotationmax", "scroll"],
                    scrollrotationyoyo: ["rotationyoyo", "scroll"],
                    scrollrotationx: ["rotationX", "scroll"],
                    scrollrotationxmin: ["rotationXmin", "scroll"],
                    scrollrotationxmax: ["rotationXmax", "scroll"],
                    scrollrotationxyoyo: ["rotationXyoyo", "scroll"],
                    scrollrotationy: ["rotationY", "scroll"],
                    scrollrotationymin: ["rotationYmin", "scroll"],
                    scrollrotationymax: ["rotationYmax", "scroll"],
                    scrollrotationyyoyo: ["rotationYyoyo", "scroll"],
                    scrollscalex: ["scaleX", "scroll"],
                    scrollscalexmin: ["scaleXmin", "scroll"],
                    scrollscalexmax: ["scaleXmax", "scroll"],
                    scrollscalexyoyo: ["scaleXyoyo", "scroll"],
                    scrollscaley: ["scaleY", "scroll"],
                    scrollscaleymin: ["scaleYmin", "scroll"],
                    scrollscaleymax: ["scaleYmax", "scroll"],
                    scrollscaleyyoyo: ["scaleYyoyo", "scroll"],
                    scrollskewx: ["skewX", "scroll"],
                    scrollskewxmin: ["skewXmin", "scroll"],
                    scrollskewxmax: ["skewXmax", "scroll"],
                    scrollskewxyoyo: ["skewXyoyo", "scroll"],
                    scrollskewy: ["skewY", "scroll"],
                    scrollskewymin: ["skewYmin", "scroll"],
                    scrollskewymax: ["skewYmax", "scroll"],
                    scrollskewyyoyo: ["skewYyoyo", "scroll"],
                    scrolloffsetx: ["x", "scroll"],
                    scrolloffsetxmin: ["xmin", "scroll"],
                    scrolloffsetxmax: ["xmax", "scroll"],
                    scrolloffsetxyoyo: ["xyoyo", "scroll"],
                    scrolloffsety: ["y", "scroll"],
                    scrolloffsetymin: ["ymin", "scroll"],
                    scrolloffsetymax: ["ymax", "scroll"],
                    scrolloffsetyyoyo: ["yyoyo", "scroll"],
                    scrolltransformorigin: ["transformOrigin", "scrollShouldBeConverted"],
                    transformperspective: ["layer", "transformPerspective"],
                    transformperspectivein: ["layer", "transformPerspective"],
                    transformperspectiveout: ["layer", "transformPerspective"],
                    texttransformperspective: ["text", "transformPerspective"],
                    texttransformperspectivein: ["text", "transformPerspective"],
                    texttransformperspectiveout: ["text", "transformPerspective"],
                    looptransformperspective: ["loop", "transformPerspective"],
                    hovertransformperspective: ["hover", "transformPerspective"],
                    parallaxtransformperspective: ["parallax", "transformPerspective"],
                    scrolltransformperspective: ["scroll", "transformPerspective"]
                },
                splitTypeKeys: ["chars_asc", "chars_desc", "chars_rand", "chars_center", "chars_edge", "words_asc", "words_desc", "words_rand", "words_center", "words_edge", "lines_asc", "lines_desc", "lines_rand", "lines_center", "lines_edge"],
                timelineHierarchy: {
                    slidestart: [0],
                    transitioninstart: [1],
                    transitioninend: [2],
                    textinstart: [3, [1, 2, 6, 7, 8]],
                    textinend: [4],
                    allinend: [5],
                    loopstart: [6, [1, 2, 3, 4, 5]],
                    loopend: [7],
                    autoparallaxstart: [6.5, [0, 1, 2, 3, 4, 5, 6, 7]],
                    autoparallaxend: [7.5],
                    transitioninandloopend: [8],
                    textinandloopend: [9],
                    allinandloopend: [10],
                    textoutstart: [11, [2, 3, 4, 5, 6, 7, 8, 9, 10]],
                    textoutend: [12],
                    textoutandloopend: [13],
                    transitionoutstart: [14, [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]],
                    transitionoutend: [15],
                    alloutend: [16],
                    alloutandloopend: [17]
                },
                properties: {
                    filter: function() {
                        return {
                            blur: 0,
                            brightness: 100,
                            contrast: 100,
                            grayscale: 0,
                            "hue-rotate": 0,
                            invert: 0,
                            saturate: 100,
                            sepia: 0
                        }
                    }
                },
                options: function(e, t) {
                    t = {
                        is: {
                            slideBackground: !!e.is("img.ls-bg"),
                            backgroundVideo: !!e.is(".ls-bg-video"),
                            imageLayer: !!e.is("img.ls-layer"),
                            mediaLayer: !1,
                            textLayer: !1,
                            responsive: !0,
                            onSlide: t
                        },
                        should: {},
                        elements: {},
                        settings: {
                            position: "relative",
                            slideIn: t,
                            slideOut: t
                        },
                        styleSettings: {
                            minfontsize: 0,
                            minmobilefontsize: 0
                        },
                        mediaSettings: {
                            fillmode: "cover",
                            backgroundVideo: !1
                        },
                        timeline: {
                            slidestart: 0,
                            transitioninstart: 0,
                            transitioninend: 0,
                            textinstart: 0,
                            textinend: 0,
                            allinend: function(e) {
                                return Math.max(this.transitioninend, this.textinend)
                            },
                            loopstart: 0,
                            loopend: 0,
                            transitioninandloopend: function(e) {
                                return 0 === this.loopend && e.loop.enabled && ("number" == typeof e.loop.startAt || -1 !== e.loop.startAt.indexOf("textinstart") && -1 !== e.loop.startAt.indexOf("textinend") && -1 !== e.loop.startAt.indexOf("allinend")) ? (this.loopstart = V.transitions.layers.timeline.getTiming(e, e.loop.startAt, "loopstart"), this.loopend = -1 !== e.loop.count && e.timeline.loopstart + (e.loop.repeat + 1) * e.loop.duration + e.loop.repeat * e.loop.repeatDelay) : V.debugMode && V.debug.add("warn", "layerTransition.infinite", e.self[0].tagName + "." + e.self.attr("class") + " [ " + e.self.html().substr(0, 30) + "... ]"), Math.max(this.transitioninend, this.loopend)
                            },
                            textinandloopend: function(e) {
                                return Math.max(this.textinend, this.loopend)
                            },
                            allinandloopend: function(e) {
                                return Math.max(this.allinend(), this.loopend)
                            },
                            textoutstart: 0,
                            textoutend: 0,
                            textoutandloopend: function(e) {
                                return Math.max(this.textoutend, this.loopend)
                            },
                            transitionoutstart: function(e) {
                                return Math.max(this.allinandloopend(), this.textoutend)
                            },
                            transitionoutend: 0,
                            alloutend: function(e) {
                                return Math.max(this.transitionoutend, this.textoutend, this.allinend())
                            },
                            alloutandloopend: function(e) {
                                return Math.max(this.transitionoutend, this.textoutandloopend(), this.allinend())
                            },
                            staticfrom: !1,
                            staticto: !1
                        },
                        transitionProperties: { in : {
                                enabled: !0,
                                layerFrom: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {
                                        opacity: 0
                                    }
                                },
                                layerTo: {
                                    autoCSS: !1,
                                    onStart: function() {
                                        V.transitions.layers.in.onStart(e)
                                    },
                                    onComplete: function() {
                                        V.transitions.layers.in.onComplete(e)
                                    },
                                    css: {
                                        display: "block",
                                        opacity: 1,
                                        rotation: 0,
                                        rotationX: 0,
                                        rotationY: 0,
                                        scaleX: 1,
                                        scaleY: 1,
                                        skewX: 0,
                                        skewY: 0,
                                        x: 0,
                                        y: 0
                                    }
                                },
                                layerStyleFrom: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                layerStyleTo: {
                                    autoCSS: !1,
                                    css: {}
                                },
                                clipFrom: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                clipTo: {
                                    autoCSS: !1,
                                    css: {}
                                },
                                layerShouldBeConverted: {
                                    transformOrigin: "50% 50% 0",
                                    x: 0,
                                    y: 0
                                },
                                layerStyleShouldBeConvertedFrom: {},
                                layerStyleShouldBeConvertedTo: {},
                                clipShouldBeConverted: {},
                                startAt: 0,
                                duration: 1,
                                ease: "easeInOutQuint"
                            }, textIn: {
                                enabled: null,
                                nodesFrom: {
                                    cycle: {},
                                    random: {},
                                    opacity: 0
                                },
                                nodesTo: {
                                    ease: "easeInOutQuint",
                                    css: {
                                        opacity: 1,
                                        rotation: 0,
                                        rotationX: 0,
                                        rotationY: 0,
                                        scaleX: 1,
                                        scaleY: 1,
                                        skewX: 0,
                                        skewY: 0,
                                        x: 0,
                                        y: 0
                                    }
                                },
                                shouldBeConverted: {
                                    cycle: {},
                                    random: {},
                                    transformOrigin: "50% 50% 0",
                                    x: 0,
                                    y: 0
                                },
                                split: "",
                                shiftNodes: .05,
                                startAt: "transitioninend",
                                duration: 1
                            }, out: {
                                enabled: !0,
                                layerFrom: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                layerTo: {
                                    autoCSS: !1,
                                    onStart: function() {
                                        V.transitions.layers.out.onStart(e)
                                    },
                                    onComplete: function() {
                                        V.transitions.layers.out.onComplete(e)
                                    },
                                    css: {
                                        opacity: 0,
                                        rotation: 0,
                                        rotationX: 0,
                                        rotationY: 0,
                                        scaleX: 1,
                                        scaleY: 1,
                                        skewX: 0,
                                        skewY: 0
                                    }
                                },
                                layerStyleFrom: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                layerStyleTo: {
                                    autoCSS: !1,
                                    css: {}
                                },
                                clipFrom: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                clipTo: {
                                    autoCSS: !1,
                                    css: {}
                                },
                                layerShouldBeConverted: {
                                    x: 0,
                                    y: 0
                                },
                                layerStyleShouldBeConvertedFrom: {},
                                layerStyleShouldBeConvertedTo: {},
                                clipShouldBeConverted: {},
                                startAt: "slidechangeonly",
                                duration: 1,
                                ease: "easeInOutQuint"
                            }, textOut: {
                                enabled: null,
                                nodesFrom: {
                                    immediateRender: !1,
                                    cycle: {},
                                    opacity: 1
                                },
                                nodesTo: {
                                    ease: "easeInOutQuint",
                                    immediateRender: !1,
                                    cycle: {},
                                    random: {},
                                    opacity: 0
                                },
                                shouldBeConverted: {
                                    cycle: {},
                                    random: {},
                                    x: 0,
                                    y: 0
                                },
                                split: "",
                                startAt: "allinandloopend",
                                shiftNodes: .05,
                                duration: 1
                            }, loop: {
                                enabled: null,
                                from: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                to: {
                                    autoCSS: !1,
                                    css: {}
                                },
                                clipTo: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                layerShouldBeConverted: {
                                    transformOrigin: "50% 50% 0",
                                    x: 0,
                                    y: 0
                                },
                                clipShouldBeConverted: {},
                                ease: "linear",
                                startAt: "allinend",
                                repeatDelay: 0,
                                duration: 1,
                                count: 0,
                                yoyo: !1
                            }, hover: {
                                enabled: null,
                                from: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {}
                                },
                                to: {
                                    autoCSS: !1,
                                    css: {}
                                },
                                shouldBeConverted: {
                                    transformOrigin: "50% 50% 0"
                                },
                                alwaysOnTop: !0,
                                easeIn: "easeInOutQuint",
                                durationIn: .5
                            }, parallax: {
                                enabled: null
                            }, scroll: {
                                enabled: null,
                                shouldBeConverted: {
                                    transformOrigin: "50% 50% 0"
                                }
                            }, kenBurns: {
                                scale: 1.2
                            }, clip: {
                                enabled: !1,
                                min: "0 0 0 0",
                                max: "-9999 9999 9999 -9999"
                            }, filter: {
                                values: {
                                    style: {},
                                    in : {},
                                    out: {},
                                    loop: {},
                                    hover: {},
                                    afterIn: {},
                                    afterLoop: {},
                                    bgFrom: {},
                                    bgTo: {}
                                },
                                transitions: {
                                    bg: null,
                                    in : null,
                                    out: null,
                                    loop: null,
                                    hover: null
                                }
                            }, init: {
                                wrapper: {
                                    autoCSS: !1,
                                    immediateRender: !1,
                                    css: {
                                        display: "block"
                                    }
                                }
                            }, transformPerspective: {
                                layer: 500,
                                text: 500,
                                loop: 500,
                                hover: 500
                            }, reset: {
                                wrapperOnTimelineEnd: {
                                    autoCSS: !1,
                                    css: {
                                        opacity: 1,
                                        display: "none"
                                    }
                                },
                                wrapperOnSlideChange: {
                                    autoCSS: !1,
                                    css: {
                                        x: 0,
                                        y: 0,
                                        rotation: 0,
                                        rotationX: 0,
                                        rotationY: 0,
                                        scaleX: 1,
                                        scaleY: 1,
                                        skewX: 0,
                                        skewY: 0,
                                        opacity: 1,
                                        display: "none"
                                    }
                                },
                                loopWrapperOnSlideChange: {
                                    autoCSS: !1,
                                    css: {
                                        x: 0,
                                        y: 0,
                                        rotation: 0,
                                        rotationX: 0,
                                        rotationY: 0,
                                        scaleX: 1,
                                        scaleY: 1,
                                        skewX: 0,
                                        skewY: 0,
                                        opacity: 1
                                    }
                                }
                            }
                        }
                    };
                    return {
                        is: t.is,
                        should: t.should,
                        elements: t.elements,
                        settings: t.settings,
                        styleSettings: t.styleSettings,
                        mediaSettings: t.mediaSettings,
                        mediaProperties: t.mediaProperties,
                        timeline: t.timeline,
                        in : t.transitionProperties.in,
                        inLayerFrom: t.transitionProperties.in.layerFrom,
                        inLayerFromCSS: t.transitionProperties.in.layerFrom.css,
                        inLayerStyleFrom: t.transitionProperties.in.layerStyleFrom,
                        inLayerStyleFromCSS: t.transitionProperties.in.layerStyleFrom.css,
                        inClipFrom: t.transitionProperties.in.clipFrom,
                        inClipFromCSS: t.transitionProperties.in.clipFrom.css,
                        inLayerTo: t.transitionProperties.in.layerTo,
                        inLayerToCSS: t.transitionProperties.in.layerTo.css,
                        inLayerStyleTo: t.transitionProperties.in.layerStyleTo,
                        inLayerStyleToCSS: t.transitionProperties.in.layerStyleTo.css,
                        inClipTo: t.transitionProperties.in.clipTo,
                        inClipToCSS: t.transitionProperties.in.clipTo.css,
                        inClipShouldBeConverted: t.transitionProperties.in.clipShouldBeConverted,
                        inLayerShouldBeConverted: t.transitionProperties.in.layerShouldBeConverted,
                        inLayerStyleShouldBeConvertedFrom: t.transitionProperties.in.layerStyleShouldBeConvertedFrom,
                        inLayerStyleShouldBeConvertedTo: t.transitionProperties.in.layerStyleShouldBeConvertedTo,
                        textIn: t.transitionProperties.textIn,
                        textInNodesFrom: t.transitionProperties.textIn.nodesFrom,
                        textInNodesTo: t.transitionProperties.textIn.nodesTo,
                        textInNodesToCSS: t.transitionProperties.textIn.nodesTo.css,
                        textInShouldBeConverted: t.transitionProperties.textIn.shouldBeConverted,
                        out: t.transitionProperties.out,
                        outLayerFrom: t.transitionProperties.out.layerFrom,
                        outLayerFromCSS: t.transitionProperties.out.layerFrom.css,
                        outLayerStyleFrom: t.transitionProperties.out.layerStyleFrom,
                        outLayerStyleFromCSS: t.transitionProperties.out.layerStyleFrom.css,
                        outLayerTo: t.transitionProperties.out.layerTo,
                        outLayerToCSS: t.transitionProperties.out.layerTo.css,
                        outLayerStyleTo: t.transitionProperties.out.layerStyleTo,
                        outLayerStyleToCSS: t.transitionProperties.out.layerStyleTo.css,
                        outClipTo: t.transitionProperties.out.clipTo,
                        outClipToCSS: t.transitionProperties.out.clipTo.css,
                        outClipShouldBeConverted: t.transitionProperties.out.clipShouldBeConverted,
                        outLayerShouldBeConverted: t.transitionProperties.out.layerShouldBeConverted,
                        outLayerStyleShouldBeConvertedFrom: t.transitionProperties.out.layerStyleShouldBeConvertedFrom,
                        outLayerStyleShouldBeConvertedTo: t.transitionProperties.out.layerStyleShouldBeConvertedTo,
                        textOut: t.transitionProperties.textOut,
                        textOutNodesFrom: t.transitionProperties.textOut.nodesFrom,
                        textOutNodesTo: t.transitionProperties.textOut.nodesTo,
                        textOutShouldBeConverted: t.transitionProperties.textOut.shouldBeConverted,
                        loop: t.transitionProperties.loop,
                        loopFrom: t.transitionProperties.loop.from,
                        loopFromCSS: t.transitionProperties.loop.from.css,
                        loopTo: t.transitionProperties.loop.to,
                        loopToCSS: t.transitionProperties.loop.to.css,
                        loopClipTo: t.transitionProperties.loop.clipTo,
                        loopClipToCSS: t.transitionProperties.loop.clipTo.css,
                        loopClipShouldBeConverted: t.transitionProperties.loop.clipShouldBeConverted,
                        loopLayerShouldBeConverted: t.transitionProperties.loop.layerShouldBeConverted,
                        hover: t.transitionProperties.hover,
                        hoverFrom: t.transitionProperties.hover.from,
                        hoverFromCSS: t.transitionProperties.hover.from.css,
                        hoverTo: t.transitionProperties.hover.to,
                        hoverToCSS: t.transitionProperties.hover.to.css,
                        hoverShouldBeConverted: t.transitionProperties.hover.shouldBeConverted,
                        parallax: t.transitionProperties.parallax,
                        scroll: t.transitionProperties.scroll,
                        scrollShouldBeConverted: t.transitionProperties.scroll.shouldBeConverted,
                        kenBurns: t.transitionProperties.kenBurns,
                        clip: t.transitionProperties.clip,
                        filter: t.transitionProperties.filter,
                        transformPerspective: t.transitionProperties.transformPerspective,
                        init: t.transitionProperties.init,
                        reset: t.transitionProperties.reset
                    }
                }
            }
        }, V.slides = {
            count: 0,
            first: {},
            prev: {},
            current: {},
            next: {},
            init: function() {
                if (!document.body.contains($)) return !1;
                for (var e = B.find("> .ls-layer, > .ls-slide"), t = 0, i = V.defaults.slide.keys, a = 0, s = e.length; a < s; a++) {
                    var o = X(e[a]),
                        r = o[0].style,
                        n = X.extend(!0, {}, V.defaults.slide.options),
                        l = !1;
                    if (V.slides.count++, o.removeClass("ls-layer").addClass("ls-slide").css({
                            width: V.slider.initial.originalWidth,
                            height: V.slider.initial.originalHeight
                        }).appendTo(V.slider.$hiddenWrapper), o.data("ls"))
                        for (var d = o.data("ls").toLowerCase().split(";"), u = 0; u < d.length; u++) {
                            var c, p, h = d[u].split(":");
                            h[0] = X.trim(h[0]), h[1] = X.trim(h[1]), "" !== h[0] && (void 0 !== i[h[0]] ? (c = void 0 === i[h[0]][1] ? h[0] : i[h[0]][1], p = V.functions.convert.properties(h[1]), -1 === c.toLowerCase().indexOf("duration") && -1 === c.toLowerCase().indexOf("delay") && "timeShift" != c || (p /= 1e3), n[i[h[0]][0]] || (n[i[h[0]][0]] = {}), n[i[h[0]][0]][c] = p) : n.data[h[0]] = h[1])
                        }
                    if (n.plugins && !X.isEmptyObject(n.plugins))
                        for (var m in n.plugins)
                            if (o.data("ls-plugin-" + m)) {
                                var f, g = o.data("ls-plugin-" + m).toLowerCase().split(";"),
                                    y = {};
                                for (f in n.plugins[m]) y[f.toLowerCase()] = f;
                                for (var v = 0; v < g.length; v++) {
                                    var b, w = g[v].split(":");
                                    w[0] = X.trim(w[0]), "" !== w[0] && (b = V.functions.convert.properties(X.trim(w[1])), -1 === w[0].indexOf("duration") && -1 === w[0].indexOf("delay") || (b /= 1e3), y[w[0]] ? n.plugins[m][y[w[0]]] = b : n.plugins[m][w[0]] = b)
                                }
                            } else delete n.plugins[m];
                    o.children("a.ls-link").length && (n.data.$link = o.children("a.ls-link").first().css({
                        zIndex: 5
                    }).attr("data-ls-slide-link", t + 1).appendTo(V.slider.$layersWrapper), V.layers.set.smartLinks(n.data.$link)), n.data.$backgroundVideo = o.children('[data-ls*="backgroundvideo"]').first(), n.data.$backgroundVideo.find("iframe, video, audio").length || (n.data.$backgroundVideo = X()), n.data.$backgroundVideo.length && (null !== n.data.$backgroundVideo.attr("data-ls").split("backgroundvideo")[1].split(";")[0].match(/(true|enabled|on|1)/i) ? (n.data.$backgroundVideo.addClass("ls-bg-video").css({
                        width: "auto",
                        height: "auto"
                    }).children("video, audio, iframe").css({
                        width: "100%",
                        height: "100%"
                    }), n.data.$backgroundVideo.append(X('<div class="ls-bg-video-overlay"></div>'))) : n.data.$backgroundVideo = !1);
                    for (var S = o.find("picture"), v = 0, x = S.length; v < x; v++) V.layers.set.pictureElement(X(S[v]));
                    o.find("> .ls-bg").length && (n.data.$background = o.find("> .ls-bg").first()), n.data.thumbnail || (o.find("> .ls-tn").length ? l = o.find("> .ls-tn").first() : o.find("> .ls-bg").length && (l = o.find("> .ls-bg").first()), l ? (n.data.thumbnail = V.functions.getURL(l), n.data.tnAlt = V.functions.getALT(l)) : n.data.thumbnail = V.o.skinsPath + V.o.skin + "/nothumb.png"), (n.data.customtransition2d || n.data.customtransition3d) && "undefined" == typeof layerSliderCustomTransitions && (delete n.data.customtransition2d, delete n.data.customtransition3d, V.debugMode && V.debug.add("warn", "sliderInit.customTransitions", t + 1)), "visible" === r.overflow && (n.data.overflow = "visible"), n.data.backgroundColor ? n.data.$background || n.data.$backgroundVideo && n.data.$backgroundVideo.length || (n.data.$background = X("<img>").addClass("ls-bg").attr("src", "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==").appendTo(o)) : n.data.backgroundColor = "" === o[0].style.backgroundColor ? "transparent" : o[0].style.backgroundColor, V.slides[++t] = {}, V.slides[t].data = X.extend(!0, {}, V.defaults.slide.options.data, n.data), V.slides[t].parallax = n.parallax, V.slides[t].scroll = n.scroll, V.slides[t].kenBurns = n.kenBurns, V.slides[t].filter = n.filter, V.slides[t].index = t, V.slides[t].$layers = X(), V.slides[t].plugins = n.plugins, V.slider.thumbnails.push(n.data.thumbnail), V.layers.init(o, t)
                }
                V.debugMode && V.debug.groupEnd("sliderInit.style")
            },
            set: {
                slideIndexes: function() {
                    var e = V.slides;
                    e.prev.index = e.current.index, e.current.index = e.next.index, e.next.index = V.slideshow.get.slideInSequence(V.slideshow.direction), e.set.slidesData(), V.slider.set.attributes()
                },
                nextSlideIndex: function(e) {
                    var t = V.slides;
                    t.next.index = e, t.set.slidesData()
                },
                slidesData: function() {
                    var e = V.slides;
                    e.prev = -1 !== e.prev.index ? X.extend(!0, {}, e[e.prev.index]) : {}, e.current = -1 !== e.current.index ? X.extend(!0, {}, e[e.current.index]) : {}, e.next = -1 !== e.next.index ? X.extend(!0, {}, e[e.next.index]) : {}
                },
                firstSlide: function() {
                    var e, t = V.slides;
                    t.first.index = "random" === V.o.firstSlide ? V.o.firstSlide : Math.max(V.functions.convert.properties(V.o.firstSlide, !0), 1), V.o.shuffleSlideshow && 2 < V.slides.count ? V.o.twoWaySlideshow = !1 : V.o.shuffleSlideshow = !1, t.first.index = "random" == t.first.index ? Math.floor(Math.random() * V.slides.count + 1) : t.first.index, !document.location.hash || (e = V.slides.deeplink(document.location.hash, !0)) && (V.slides.first.index = e), t.first.index = t.first.index < 1 || t.first.index > V.slides.count ? 1 : t.first.index, V.o.shuffleSlideshow && "random" != V.o.firstSlide && (t.first.index = V.o.firstSlide), t[t.first.index] && t[t.first.index].data && (t.first.data = X.extend(!0, {}, t[t.first.index].data)), V.o.playByScroll && V.slideshow.set.normalizedSequence(), V.debugMode && V.debug.options.firstSlide && (t.first.index = V.debug.options.firstSlide)
                }
            },
            get: {
                deeplink: function(e) {
                    return e && V.slides[e] && V.slides[e].data && V.slides[e].data.deeplink ? V.slides[e].data.deeplink : null
                }
            },
            deeplink: function(e, t) {
                for (var i = !1, a = 1; a < V.slides.count + 1; a++)
                    if (V.slides[a].data.deeplink == e.substring(1)) {
                        if (i = a, t) return i;
                        V.slideshow.changeTo(i, !0, !0)
                    }
                if (!i && t) return !1
            },
            slide: []
        }, V.layers = {
            $all: X(),
            getStyle: function(e, t) {
                return -1 != e.indexOf("em") ? e : (-1 != e.indexOf("%") ? parseFloat(e) * t : parseFloat(e)).toString()
            },
            toNum: function(e, t) {
                return t = parseFloat(t), -1 != e.indexOf("em") ? parseFloat(e) * t : parseFloat(e)
            },
            init: function(e, t) {
                if (!document.body.contains($)) return !1;
                for (var i, a = e.find(".ls-bg, .ls-l, .ls-layer"), s = 0, o = a.length; s < o; s++) {
                    var r = X(a[s]),
                        n = r[0],
                        l = r.children();
                    if (r.data("slideIndex", t), r.hasClass("ls-l")) r.removeClass("ls-l").addClass("ls-layer");
                    else if (!r.is(".ls-bg, .ls-layer")) {
                        r.remove();
                        continue
                    }
                    r.is("a") && 1 === l.length && ((n = (r = r.children().first())[0]).setAttribute("data-ls", n.parentNode.getAttribute("data-ls")), n.parentNode.removeAttribute("data-ls"), r.parent().removeClass("ls-layer"), r.addClass("ls-layer")), r.data(V.defaults.init.dataKey, new V.defaults.layer.options(r, t)), -1 !== r.attr("class").indexOf("ls-linkto-") && this.set.linkTo(r), r.parent().is("a") ? (i = r.parent(), this.set.smartLinks(i)) : i = r, i.attr("data-ls-actions") && this.set.actions(i, JSON.parse(i.attr("data-ls-actions")) || {}), V.slides[t].$layers = V.slides[t].$layers.add(i)
                }
            },
            set: {
                pictureElement: function(e) {
                    var t = e.find("source").last().attr("srcset").split(" ")[0] || "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",
                        i = e.find("img"),
                        a = i.length ? i : X("<img>").attr("src", t),
                        s = a[0],
                        o = (e.attr("ls-data") || a.attr("ls-data"), e.attr("style") || !1),
                        i = s.currentSrc || s.src,
                        r = i.split(".").pop(),
                        t = (i.indexOf("webp"), a.attr("data-src") ? "data-" : ""),
                        s = "";
                    e.hasClass("ls-bg") ? s = "ls-bg" : e.hasClass("ls-tn") ? s = "ls-tn" : (e.hasClass("ls-l") || e.hasClass("ls-layer")) && (s = "ls-layer");
                    for (var n, l, d, u = e.find("source"), c = 0; c < u.length && (n = u[c], l = (n = X(n)).attr("srcset"), d = n.attr("sizes"), l.split(" ")[0].split(".").pop() != r); c++);
                    a.removeAttr("width height sizes src srcset data-src data-srcset loading"), a.addClass(s).attr(t + "src", i).attr(t + "srcset", l).attr("sizes", d), o && a.attr("style", o), a.insertAfter(e), e.remove()
                },
                actions: function(t, i) {
                    var a = i.length;
                    for (let e = 0; e < a; e++) {
                        var s = i[e];
                        t.on(s.trigger, function() {
                            setTimeout(function(e) {
                                o(e)
                            }, s.delay || 0, s)
                        })
                    }
                    var o = function(s) {
                        let o = !1,
                            r = "";
                        switch (s.action) {
                            case "scrollBelowProject":
                            case "scrollToNextProject":
                            case "scrollToPrevProject":
                            case "scrollToElement":
                                let e, t = X(".ls-wp-container:not(.ls-hidden"),
                                    i = X([]);
                                if ("scrollBelowProject" === s.action) e = V.slider.offsetTop + V.slider.height + (s.offset || 0);
                                else if ("scrollToPrevProject" === s.action) 0 !== t.index(B) ? (i = t.eq(t.index(B) - 1), e = parseInt(i.offset().top) + (s.offset || 0)) : o = "Theres no previous project to scroll to.";
                                else if ("scrollToNextProject" === s.action) t.index(B) < t.length - 1 ? (i = t.eq(t.index(B) + 1), e = parseInt(i.offset().top) + (s.offset || 0)) : o = "Theres no next project to scroll to.";
                                else if ("scrollToElement" === s.action) {
                                    try {
                                        i = X(s.selector.toString()).not(".ls-wp-container.ls-hidden")
                                    } catch (e) {
                                        r = e
                                    }
                                    i.size() ? e = parseInt(i.offset().top) + (s.offset || 0) : o = 'Couldnt find the scroll target element "' + s.selector + '". Please verify the selector youve entered.'
                                }
                                o || H.TweenMax.to("html, body", (s.duration || 1e3) / 1e3, {
                                    scrollTop: e,
                                    ease: V.functions.convert.easing(s.easing)
                                });
                                break;
                            case "switchSlide":
                                V.slideshow.changeTo(s.slide, !0, !0);
                                break;
                            case "nextSlide":
                            case "prevSlide":
                            case "stopSlideshow":
                            case "startSlideshow":
                                let a;
                                "nextSlide" === s.action && (a = "next"), "prevSlide" === s.action && (a = "prev"), "stopSlideshow" === s.action && (a = "stop"), "startSlideshow" === s.action && (a = "start"), V.navigation[a]("clicked");
                                break;
                            case "replaySlide":
                                V.api.methods("replay");
                                break;
                            case "reverseSlide":
                                V.api.methods("reverse", s.replay);
                                break;
                            case "resetSlide":
                                V.api.methods("resetSlide");
                                break;
                            case "pauseProject":
                                V.api.methods("pauseSlider");
                                break;
                            case "resumeProject":
                                V.api.methods("resumeSlider");
                                break;
                            case "toggleProject":
                                V.api.methods("toggleSlider");
                                break;
                            case "playMedia":
                                V.media.functions.playActiveMedia();
                                break;
                            case "pauseMedia":
                                V.media.functions.pauseActiveMedia();
                                break;
                            case "unmuteMedia":
                                V.media.unmute.multipleMediaElements();
                                break;
                            case "openPopup":
                                V.api.methods("openPopup", s.slide || !1);
                                break;
                            case "closePopup":
                                V.api.methods("closePopup");
                                break;
                            case "closeAllPopups":
                                V.api.methods("closeAllPopups");
                                break;
                            case "jsFunction":
                                try {
                                    window[s.function]()
                                } catch (e) {
                                    r = e, o = "The browser thrown the following error after calling " + s.function+"() JavaScript function."
                                }
                        }
                        o && console.error('LayerSlider: Error while calling layer action "' + s.action + '". ' + o + ("" !== r ? "\n\r\n\r" : ""), r)
                    }
                },
                smartLinks: function(e) {
                    var i = e.attr("href"),
                        t = e.attr("target"),
                        a = "";
                    if (t && -1 !== t.indexOf("ls-scroll")) {
                        switch (i) {
                            case "pagetop":
                                a = "Scroll to page top";
                                break;
                            case "pagebottom":
                                a = "Scroll to page bottom";
                                break;
                            case "slidertop":
                                a = "Scroll to the top of the slider";
                                break;
                            case "":
                            case "sliderbottom":
                                a = "Scroll to the bottom of the slider";
                                break;
                            default:
                                a = "Scroll to a specified location on the page"
                        }
                        V.layers.set.ariaLabel(e, a), e.on("click." + W, function(e) {
                            e.preventDefault();
                            var t, e = document.body.scrollHeight - V.device.viewportHeight;
                            if (i) switch (i) {
                                case "pagetop":
                                    t = 0;
                                    break;
                                case "pagebottom":
                                    t = V.device.docHeight - V.device.viewportHeight;
                                    break;
                                case "slidertop":
                                    t = V.slider.offsetTop;
                                    break;
                                case "":
                                case "sliderbottom":
                                    t = V.slider.offsetTop + V.slider.height;
                                    break;
                                default:
                                    t = X(i).filter(":visible").last().length ? X(i).filter(":visible").last().offset().top : V.slider.offsetTop + V.slider.height
                            }
                            t += V.o.scrollModifier, t = Math.min(t, e), t = Math.max(0, t), H.TweenMax.to("html, body", 1, {
                                scrollTop: t,
                                ease: H.Quint.easeInOut
                            })
                        })
                    }
                    if (-1 !== V.defaults.init.controls.indexOf(i.toLowerCase()) || i.match(/^\#[0-9]/)) {
                        var s = X.trim(i.toLowerCase().split("#")[1]),
                            o = parseInt(s);
                        switch (s) {
                            case "playmedia":
                                a = "play active media elements on current slide";
                                break;
                            case "pausemedia":
                                a = "pause active media elements on current slide";
                                break;
                            case "prev":
                                a = "jump to the previous slide";
                                break;
                            case "next":
                                a = "jump to the next slide";
                                break;
                            case "start":
                                a = "start slideshow";
                                break;
                            case "stop":
                                a = "stop slideshow";
                                break;
                            case "replay":
                                a = "replay slide";
                                break;
                            case "reverse":
                                a = "reverse slide";
                                break;
                            case "reverse-replay":
                            case "reversereplay":
                                a = "reverse, than replay slide";
                                break;
                            default:
                                "number" == typeof o && o == o && (a = "jump to slide " + o)
                        }
                        V.layers.set.ariaLabel(e, a), e.on("click." + W, function(e) {
                            if (e.preventDefault(), -1 !== ["prev", "next", "start", "stop"].indexOf(s)) V.navigation[s]("clicked");
                            else if ("number" == typeof o && o == o) V.slideshow.changeTo(o, !0, !0);
                            else if (!V.slider.state.changingSlides) switch (s) {
                                case "replay":
                                    V.api.methods("replay");
                                    break;
                                case "reverse":
                                    V.api.methods("reverse");
                                    break;
                                case "reverse-replay":
                                case "reversereplay":
                                    V.api.methods("reverse", !0);
                                    break;
                                case "playmedia":
                                    V.media.functions.playActiveMedia();
                                    break;
                                case "pausemedia":
                                    V.media.functions.pauseActiveMedia();
                                    break;
                                case "unmute":
                                case "unmutemedia":
                                    V.media.unmute.multipleMediaElements()
                            }
                        })
                    }
                },
                ariaLabel: function(e, t) {
                    e.attr("aria-label") || e.attr("aria-label", t)
                },
                linkTo: function(e) {
                    for (var t = e.attr("class").split(" "), i = 1, a = 0; a < t.length; a++) - 1 != t[a].indexOf("ls-linkto-") && (i = parseInt(t[a].split("ls-linkto-")[1]));
                    e.data(V.defaults.init.dataKey).settings.linkedToSlide = i, e.css({
                        cursor: "pointer"
                    }).on("click." + W, function(e) {
                        e.preventDefault(), B.layerSlider(X(this).data(V.defaults.init.dataKey).settings.linkedToSlide)
                    })
                },
                wrappers: function(e, t, i) {
                    t.is.slideBackground || t.is.backgroundVideo ? (t.elements.$bgWrapper = e.closest(".ls-bg-wrap"), t.elements.$bgOuterWrapper = e.closest(".ls-bg-outer")) : (t.elements.$wrapper = e.closest(".ls-in-out"), t.elements.$wrapper.data(V.defaults.init.dataKey, {}), t.settings.wrapperData = t.elements.$wrapper.data(V.defaults.init.dataKey), t.elements.$clipWrapper = e.closest(".ls-clip"), t.elements.$clipWrapper.data(V.defaults.init.dataKey, {}), t.settings.clipWrapperData = t.elements.$clipWrapper.data(V.defaults.init.dataKey), t.elements.$loopWrapper = e.closest(".ls-loop"), t.elements.$loopWrapper.data(V.defaults.init.dataKey, {}), t.settings.loopWrapperData = t.elements.$loopWrapper.data(V.defaults.init.dataKey)), t.parallax.enabled && (t.elements.$parallaxWrapper = e.closest(".ls-parallax"), t.elements.$parallaxWrapper.data(V.defaults.init.dataKey, {
                        parallax: {}
                    }), t.settings.parallaxWrapperData = t.elements.$parallaxWrapper.data(V.defaults.init.dataKey), V.transitions.layers.parallax.addLayer(t.elements.$parallaxWrapper, t.settings.parallaxWrapperData.parallax, t, i)), t.scroll.enabled && (t.elements.$scrollWrapper = e.closest(".ls-scroll"), t.elements.$scrollTransformWrapper = e.closest(".ls-scroll-transform"), t.elements.$scrollWrapper.data(V.defaults.init.dataKey, {
                        scroll: {}
                    }), t.settings.scrollWrapperData = t.elements.$scrollWrapper.data(V.defaults.init.dataKey), V.transitions.layers.scroll.addLayer(t.elements.$scrollWrapper, t.settings.scrollWrapperData.scroll, t, i)), t.hover.enabled && !V.slides[i].data.globalhover && V.transitions.layers.hover.set(e, t), V.browser.isSafari ? t.elements.$outerWrapper = e.closest(".ls-z") : t.elements.$outerWrapper = t.parallax.enabled ? t.elements.$parallaxWrapper : t.elements.$bgWrapper ? t.elements.$bgOuterWrapper : t.elements.$wrapper, t.elements.$outerWrapper.attr("data-slide-index", i)
                },
                singleLayer: function(e, t) {
                    V.layers.set.style(e), V.layers.set.properties(e, t), V.layers.set.dataAttribute(e, "hidden"), e.data("hasBeenSet", !0)
                },
                style: function(e) {
                    var t, i, a, s, o, r, n, l, d, u, c, p = e[0],
                        h = e.data(V.defaults.init.dataKey),
                        m = p.style,
                        f = V.layers,
                        g = 0,
                        y = 0,
                        v = !1,
                        b = parseFloat(e.css("font-size")),
                        w = p.getBoundingClientRect(),
                        S = "" !== m.paddingLeft ? f.getStyle(m.paddingLeft, V.slider.initial.percW) : f.getStyle(e.css("padding-left"), V.slider.initial.percW),
                        x = "" !== m.paddingRight ? f.getStyle(m.paddingRight, V.slider.initial.percW) : f.getStyle(e.css("padding-right"), V.slider.initial.percW),
                        T = "" !== m.paddingTop ? f.getStyle(m.paddingTop, V.slider.initial.percH) : f.getStyle(e.css("padding-top"), V.slider.initial.percH),
                        C = "" !== m.paddingBottom ? f.getStyle(m.paddingBottom, V.slider.initial.percH) : f.getStyle(e.css("padding-bottom"), V.slider.initial.percH),
                        k = "" !== m.marginLeft ? f.getStyle(m.marginLeft, V.slider.initial.percW) : f.getStyle(e.css("margin-left"), V.slider.initial.percW),
                        P = "" !== m.marginTop ? f.getStyle(m.marginTop, V.slider.initial.percH) : f.getStyle(e.css("margin-top"), V.slider.initial.percH);
                    p.style.margin = "0", o = "" !== m.borderLeftWidth ? f.getStyle(m.borderLeftWidth, V.slider.initial.percW) : f.getStyle(e.css("border-left-width"), V.slider.initial.percW), n = "" !== m.borderRightWidth ? f.getStyle(m.borderRightWidth, V.slider.initial.percW) : f.getStyle(e.css("border-right-width"), V.slider.initial.percW), r = "" !== m.borderTopWidth ? f.getStyle(m.borderTopWidth, V.slider.initial.percH) : f.getStyle(e.css("border-top-width"), V.slider.initial.percH), l = "" !== m.borderBottomWidth ? f.getStyle(m.borderBottomWidth, V.slider.initial.percH) : f.getStyle(e.css("border-bottom-width"), V.slider.initial.percH), 1 !== V.media.properties.$allMediaLayers.filter(e).length && !e.children("iframe").length || (c = (u = e.children()).attr("width") ? u.attr("width") : u.width(), I = u.attr("height") ? u.attr("height") : u.height(), 300 === parseInt(c) && 150 === parseInt(I) && (c = 640, I = 360), "" !== p.style.width && "auto" !== p.style.width || e.css("width", c), "" !== p.style.height && "auto" !== p.style.height || e.css("height", I), "100%" === m.width && "100%" === m.height && (m.left = "50%", m.top = "50%", h.mediaSettings.fullsize = !0), v = c / I, u.css({
                        width: "100%",
                        height: "100%"
                    }));
                    var I = h.attributes;
                    e.is("img") && (d = (a = e.data("preloadedWidth")) / (s = e.data("preloadedHeight")), (!m.width && !m.height || "auto" === m.width && "auto" === m.height) && I && (I.width && I.height ? (t = -1 === I.width.indexOf("%") ? parseInt(I.width) : (g = parseInt(I.width), f.getStyle(I.width, V.slider.initial.percW)), i = -1 === I.height.indexOf("%") ? parseInt(I.height) : (y = parseInt(I.height), f.getStyle(I.height, V.slider.initial.percH))) : I.maxWidth && (e[0].style.width = I.maxWidth + "px", t = I.maxWidth, i = e.height()))), u = w.width || w.right - w.left, w = w.height || w.bottom - w.top, t || (t = m.width, -1 !== m.width.indexOf("%") && (g = parseInt(m.width)), t = (t = "" !== t && "auto" !== t ? f.getStyle(t, V.slider.initial.percW) : u - V.layers.toNum(S, b) - V.layers.toNum(x, b) - V.layers.toNum(o, b) - V.layers.toNum(n, b)) || "auto"), i || (i = m.height, -1 !== m.height.indexOf("%") && (y = parseInt(m.height)), i = (i = "" !== i && "auto" !== i ? f.getStyle(i, V.slider.initial.percH) : w - V.layers.toNum(T, b) - V.layers.toNum(C, b) - V.layers.toNum(r, b) - V.layers.toNum(l, b)) || "auto"), v = v || ("auto" !== t && "auto" !== i ? t / i : "auto"), !e.is("img") || m.width || m.height || I && (!I || I.width || I.height) || a === t && s === i || (a !== t ? i = (t = 5 < a ? a : t) / (v = 5 < a ? d : v) : s !== i && (t = (i = 5 < s ? s : i) * (v = 5 < s ? d : v))), parseFloat(e.css("opacity")), s = "" !== m.clip && m.clip, m.clip = "", d = m.webkitFilter || m.filter;
                    h.original = {
                        clip: s,
                        clipShouldBeConverted: !1,
                        left: m.left || "0",
                        top: m.top || "0",
                        width: "auto" !== t ? parseFloat(t) : "auto",
                        height: "auto" !== i ? parseFloat(i) : "auto",
                        sWidth: m.width,
                        sHeight: m.height,
                        percentWidth: g,
                        percentHeight: y,
                        ratio: v,
                        paddingLeft: S,
                        paddingTop: T,
                        paddingRight: x,
                        paddingBottom: C,
                        marginLeft: k,
                        marginTop: P,
                        borderLeftWidth: o,
                        borderTopWidth: r,
                        borderRightWidth: n,
                        borderBottomWidth: l,
                        borderRadius: function(o, r) {
                            let n = ["borderTopLeftRadius", "borderTopRightRadius", "borderBottomRightRadius", "borderBottomLeftRadius"],
                                l = "";
                            return r.borderRadius && (-1 === r.borderRadius.indexOf("/") ? X.each(["border-top-left-radius", "border-top-right-radius", "border-bottom-right-radius", "border-bottom-left-radius"], function(e, t) {
                                let i = r[n[e]],
                                    a = o.css(t),
                                    s = X.trim(void 0 !== i && i.length ? i : a); - 1 == s.indexOf(" ") && -1 == s.indexOf("em") && -1 == s.indexOf("%") && (s = parseInt(s)), l += s + " "
                            }) : l = r.borderRadius), X.trim(l)
                        }(e, m),
                        fontSize: b,
                        lineHeight: e.css("line-height"),
                        letterSpacing: e.css("letter-spacing"),
                        color: e.css("color"),
                        zIndex: parseInt(e.css("z-index")) || "auto",
                        filter: d,
                        backgroundColor: e.css("background-color"),
                        dataLS: e.attr("data-ls") || "",
                        styles: e.attr("style") || ""
                    }, m.zIndex = "auto", h.responsive = {
                        left: m.left || "0",
                        top: m.top || "0",
                        width: t,
                        height: i
                    }
                },
                properties: function(e, t, i) {
                    t = t || e.data("slideIndex");
                    var a = e.data(V.defaults.init.dataKey);
                    e.data("ls");
                    if (a.is.textLayer = !(e.is("img") || a.is.mediaLayer || a.is.backgroundVideo), (a.self = e).data("ls"))
                        for (var s = V.defaults.layer.keys, o = e.data("ls").split(";"), r = e.data("ls").toLowerCase().split(";"), n = 0; n < r.length; n++)
                            if (X.trim(r[n])) {
                                var l = r[n].indexOf(":"),
                                    d = [r[n].substring(0, l), r[n].substring(l + 1)],
                                    u = null,
                                    c = null,
                                    p = null,
                                    h = null,
                                    m = null;
                                if ("" !== (u = X.trim(d[0])))
                                    if (void 0 !== s[u = u.replace("split", "text")]) {
                                        if (c = s[u][0], m = "overlay" === u ? X.trim(o[n].substring(l + 1)) : V.functions.convert.properties(X.trim(d[1])), d[1] && -1 !== d[1].indexOf("random") && (u.match(/(text)/) || (m = V.functions.convert.randomProperties(m, c)), a.should.update || (a.should.update = !0)), "number" == typeof m && c.match(/(duration|startat|shift|delay)/i) && (m /= 1e3), u.match(/(fade)(.+)/)) switch (m) {
                                            case !0:
                                                m = 0;
                                                break;
                                            case !1:
                                                m = 1
                                        }
                                        void 0 !== (h = s[u][1]) ? "" !== m ? "object" == typeof m ? u.match(/(text)/) ? h.match(/(converted)/i) ? a[h][c] = m : a[h].cycle[c] = m : (p = V.functions.convert.properties(X.trim(m[0])), V.debugMode && V.debug.add("warn", "layerInit.prop1", [u, m, p]), "number" == typeof p && c.match(/(duration|startat|shift|delay)/i) && (p /= 1e3), a[h][c] = p) : u.match(/(text)/) && -1 !== m.toString().indexOf("random") ? a[h].random[c] = m : a[h][c] = m : V.debugMode && V.debug.add("warn", "layerInit.prop2", u) : a[c][u] = m
                                    } else "clip" === u ? (a.original.clip = d[1], a.original.clipShouldBeConverted = !0) : V.debugMode && V.debug.add("warn", "layerInit.prop4", u)
                            }
                    if (V.browser.isOld && (a.in.enabled = !0, a.textIn.enabled = !1, a.textOut.enabled = !1, a.textIn.type = null, a.textOut.type = null), a.in.enabled && (a.inLayerTo.ease = a.inLayerStyleTo.ease = a.inClipTo.ease = V.functions.convert.easing(a.in.ease)), void 0 !== a.inLayerStyleShouldBeConvertedFrom.borderRadius && (a.inLayerStyleShouldBeConvertedTo.borderRadius = a.original.borderRadius), void 0 !== a.outLayerStyleShouldBeConvertedTo.borderRadius && (a.outLayerStyleShouldBeConvertedFrom.borderRadius = a.original.borderRadius), a.inLayerStyleFromCSS.backgroundColor && (a.inLayerStyleToCSS.backgroundColor = a.original.backgroundColor), a.outLayerStyleToCSS.backgroundColor && (a.outLayerStyleFromCSS.backgroundColor = a.original.backgroundColor), a.inLayerStyleFromCSS.color && (a.inLayerStyleToCSS.color = a.original.color), a.outLayerStyleToCSS.color && (a.outLayerStyleFromCSS.color = a.original.color), void 0 !== a.inLayerStyleShouldBeConvertedFrom.width && (a.inLayerStyleShouldBeConvertedTo.width = a.original.width), void 0 !== a.outLayerStyleShouldBeConvertedTo.width && (a.outLayerStyleShouldBeConvertedFrom.width = a.original.width), void 0 !== a.inLayerStyleShouldBeConvertedFrom.height && (a.inLayerStyleShouldBeConvertedTo.height = a.original.height), void 0 !== a.outLayerStyleShouldBeConvertedTo.height && (a.outLayerStyleShouldBeConvertedFrom.height = a.original.height), void 0 !== a.out.showUntil && 0 !== a.out.showUntil && (a.out.startAt = "transitioninend + " + a.out.showUntil), -1 !== a.out.startAt.indexOf("slidechangeonly") && "slidechangeonly" !== a.out.startAt && (a.out.startAt = "slidechangeonly"), a.out.enabled && (a.outLayerTo.ease = a.outLayerStyleTo.ease = a.outClipTo.ease = V.functions.convert.easing(a.out.ease)), X.isNumeric(a.loop.count) && (0 < a.loop.count || -1 === a.loop.count) && !1 !== a.loop.enabled ? (a.loop.enabled = !0, a.loopTo.ease = a.loopClipTo.ease = V.functions.convert.easing(a.loop.ease), -1 !== a.loop.count ? a.loop.yoyo ? a.loop.repeat = 2 * a.loop.count - 1 : a.loop.repeat = a.loop.count - 1 : a.loop.repeat = -1) : a.loop.enabled = !1, (!X.isEmptyObject(a.hoverToCSS) || a.hoverShouldBeConverted.x || a.hoverShouldBeConverted.y || a.hoverShouldBeConverted.borderRadius || a.hoverShouldBeConverted.filter) && !1 !== a.hover.enabled ? (a.hover.enabled = !0, a.hover.easeOut || (a.hover.easeOut = a.hover.easeIn), a.hover.easeIn = V.functions.convert.easing(a.hover.easeIn), a.hover.easeOut = V.functions.convert.easing(a.hover.easeOut, !0), a.hover.durationOut || (a.hover.durationOut = a.hover.durationIn), H.TweenMax.set(e[0], {
                            autoCSS: !1,
                            css: {
                                transformPerspective: a.hoverShouldBeConverted.transformPerspective
                            }
                        })) : a.hover.enabled = !1, a.parallax.level && X.isNumeric(a.parallax.level) && 0 !== a.parallax.level && !1 !== a.parallax.enabled ? a.parallax.enabled = !0 : a.parallax.enabled = !1, a.is.slideBackground) {
                        var f = {
                            scale: 1,
                            rotation: 0
                        };
                        if (V.slides[t].kenBurns.zoom && (a.kenBurns = V.slides[t].kenBurns), a.kenBurns.zoom) {
                            switch (a.kenBurns.from = {}, a.kenBurns.to = {}, a.kenBurns.zoom) {
                                case "out":
                                    a.kenBurns.from.scale = a.kenBurns.scale || 1, a.kenBurns.from.rotation = a.kenBurns.rotation || 0, a.kenBurns.to = f;
                                    break;
                                case "in":
                                    a.kenBurns.from = f, a.kenBurns.to.scale = a.kenBurns.scale || 1, a.kenBurns.to.rotation = a.kenBurns.rotation || 0
                            }
                            delete a.kenBurns.scale, delete a.kenBurns.rotation
                        } else a.kenBurns.from = f, a.kenBurns.to = f;
                        X.isEmptyObject(V.slides[t].filter) || (V.slides[t].filter.from && (a.filter.values.bgFrom = V.transitions.layers.filters.convert(V.slides[t].filter.from)), V.slides[t].filter.to && (a.filter.values.bgTo = V.transitions.layers.filters.convert(V.slides[t].filter.to)))
                    }
                    if (a.textIn.type && -1 === V.defaults.layer.splitTypeKeys.indexOf(a.textIn.type) && (V.debugMode && V.debug.add("warn", "layerInit.splitType3a", [e[0].tagName, a.textIn.type]), delete a.textIn.type, delete a.textIn.ns, a.textIn.enabled = !1), a.textOut.type && -1 === V.defaults.layer.splitTypeKeys.indexOf(a.textOut.type) && (V.debugMode && V.debug.add("warn", "layerInit.splitType3b", [e[0].tagName, a.textOut.type]), delete a.textOut.type, delete a.textOut.ns, a.textOut.enabled = !1), a.textIn.type || a.textOut.type) {
                        var g = 0;
                        if (a.is.textLayer ? (a.textIn.type && (a.textIn.enabled = !0, a.textInNodesTo.ease = V.functions.convert.easing(a.textInNodesTo.ease), a.textIn.split = a.textIn.type.split("_")[0], e.children().length && V.debugMode && (g = 1)), a.textOut.type && (a.textOut.enabled = !0, a.textOutNodesTo.ease = V.functions.convert.easing(a.textOutNodesTo.ease)), a.textOut.enabled && a.textOut.type.split("_")[0] !== a.textIn.split && (a.textIn.split += ", " + a.textOut.type.split("_")[0], e.children().length && V.debugMode && (g = 1)), -1 !== a.textIn.split.indexOf("chars") && -1 === a.textIn.split.indexOf("words") && (a.textIn.split += ", words"), -1 !== a.textIn.split.indexOf("words") && -1 === a.textIn.split.indexOf("lines") && (a.textIn.split += ", lines")) : (delete a.textIn.type, delete a.textOut.type, delete a.textIn.ns, delete a.textOut.ns, V.debugMode && (g = 2)), V.debugMode && 0 !== g && t && !i) switch (g) {
                            case 1:
                                V.debug.add("warn", "layerInit.splitType1", [e.prop("nodeName"), t]);
                                break;
                            case 2:
                                V.debug.add("warn", "layerInit.splitType2", [t, e.prop("nodeName")])
                        }
                    }(a.original.clip || a.inClipShouldBeConverted.clip || a.outClipShouldBeConverted.clip || a.loopClipShouldBeConverted.clip) && (a.clip.enabled = !0), a.in.enabled && a.inLayerToCSS.scale && (delete a.inLayerToCSS.scaleX, delete a.inLayerToCSS.scaleY), a.out.enabled && a.outLayerToCSS.scale && (delete a.outLayerToCSS.scaleX, delete a.outLayerToCSS.scaleY), a.inLayerStyleShouldBeConvertedFrom.filter && (a.filter.values.in = V.transitions.layers.filters.convert(a.inLayerStyleShouldBeConvertedFrom.filter)), a.filter.values.style = V.transitions.layers.filters.convert(a.original.filter), a.outLayerStyleShouldBeConvertedTo.filter && (a.filter.values.out = V.transitions.layers.filters.convert(a.outLayerStyleShouldBeConvertedTo.filter)), a.loopLayerShouldBeConverted.filter && (a.filter.values.loop = V.transitions.layers.filters.convert(a.loopLayerShouldBeConverted.filter)), a.hoverShouldBeConverted.filter && (a.filter.values.hover = V.transitions.layers.filters.convert(a.hoverShouldBeConverted.filter)), a.in.enabled || (a.in.duration = 0), a.textIn.enabled || (a.textIn.duration = 0), a.loop.enabled || (a.loop.duration = 0), a.textOut.enabled || (a.textOut.duration = 0), a.out.enabled || (a.out.duration = 0), e.attr("data-ls-slidein", t), void 0 !== a.settings.static && "none" !== a.settings.static ? (0 !== (g = parseInt(a.settings.static)) && "forever" !== a.settings.static ? (e.attr("data-ls-slideout", g), a.settings.slideOut = g) : a.settings.slideOut = 0, a.is.static = !0, e.attr("data-ls-static", "1")) : e.attr("data-ls-slideout", t), a.is.mediaLayer && e.children("video, audio").length && V.media.html5.singleInit(e.children("video, audio").eq(0)), a.is.backgroundVideo && a.styleSettings.overlay && e.find(".ls-bg-video-overlay").css({
                        backgroundImage: "url(" + a.styleSettings.overlay + ")"
                    }), a.styleSettings.minfontsize && (a.styleSettings.minfontsize = parseFloat(a.styleSettings.minfontsize)), a.styleSettings.minmobilefontsize && (a.styleSettings.minmobilefontsize = parseFloat(a.styleSettings.minmobilefontsize))
                },
                dataAttribute: function(e, t) {
                    e.removeAttr("data-ls-animating-in data-ls-active data-ls-animating-out data-ls-hidden"), e.attr("data-ls-" + t, "")
                }
            },
            get: function(e) {
                var t, i, a, s, o, r = this.$all;
                return e && (t = "in", a = i = "", s = ':not(".ls-bg")', o = ':not(".ls-bg-video")', -1 == (e = e.toLowerCase()).indexOf("bgvideo") && -1 == e.indexOf("backgroundvideo") || (o = "", e = e.replace("bgvideo", "").replace("backgroundvideo", "")), -1 != e.indexOf("video") && (a += ", > video", e = e.replace("video", "")), -1 != e.indexOf("audio") && (a += ", > audio", e = e.replace("audio", "")), -1 != e.indexOf("html5") && (a += ", > video, > audio", e = e.replace("html5", "")), -1 != e.indexOf("youtube") && (a += ', > iframe[src*="youtube-nocookie.com"], > iframe[src*="youtube.com"], > iframe[src*="youtu.be"], > iframe[data-src*="youtube-nocookie.com"], > iframe[data-src*="youtube.com"], > iframe[data-src*="youtu.be"]', e = e.replace("youtube", "")), -1 != e.indexOf("vimeo") && (a += ', > iframe[src*="player.vimeo"], > iframe[data-src*="player.vimeo"]', e = e.replace("vimeo", "")), "," == a.charAt(0) && (a = a.substring(2, a.length)), -1 != e.indexOf("out") && (t = "out"), -1 == e.indexOf("img") && -1 == e.indexOf("image") || (i = "img"), -1 == e.indexOf("bg") && -1 == e.indexOf("background") && -1 == e.indexOf("bgonly") || (s = ""), r = -1 != e.indexOf("current") ? r.filter(i + "[data-ls-slide" + t + '="' + V.slides.current.index + '"]' + s + o) : -1 != e.indexOf("next") ? r.filter(i + "[data-ls-slide" + t + '="' + V.slides.next.index + '"]' + s + o) : r.filter(i + s + o), -1 != e.indexOf("notactive") && (r = r.filter(".ls-bg, .ls-bg-video, :hidden"), e = e.replace("notactive", "")), -1 != e.indexOf("active") && (r = r.filter(":visible:not(.ls-bg, .ls-bg-video)"), e = e.replace("active", "")), -1 != e.indexOf("notstatic") && (r = r.filter(':not([data-ls-static="1"])'), e = e.replace("notstatic", "")), -1 != e.indexOf("static") && (r = r.filter('[data-ls-static="1"]'), e = e.replace("static", "")), -1 != e.indexOf("bgonly") && (r = r.filter(".ls-bg"), e = e.replace("bgonly", "")), "" !== a && (r = r.find(a))), r
            },
            update: {
                data: function(e, t, i) {
                    var a, s, o;
                    switch (e instanceof jQuery || (e = X(e)), i && e.attr("data-ls", i).data("ls", i), a = (s = e.data(V.defaults.init.dataKey)).is.onSlide, o = s.original, t) {
                        default:
                            case "transitions":
                            s.settings.timelineIsCalculated = !1,
                        V.layers.set.properties(e, a, !0);
                        break;
                        case "all":
                                e.data(V.defaults.init.dataKey, new V.defaults.layer.options(e, a)),
                            (s = e.data(V.defaults.init.dataKey)).original = o,
                            V.layers.set.properties(e, a, !0),
                            V.layers.set.wrappers(e, s, a)
                    }
                }
            },
            wrap: function(u, e) {
                var t, c;
                V.slides[u].wrapped || "wrapping" === V.slides[u].wrapped || (V.slides[u].wrapped = "wrapping", t = e ? 25 : 0, e = V.slides[u].$layers, c = e.length, e.each(function(l, d) {
                    V.timeouts["slide-" + u + "-layer-" + l] = setTimeout(function() {
                        delete V.timeouts["slide-" + u + "-layer-" + l];
                        var e = X(d),
                            t = e,
                            i = "",
                            a = !1,
                            s = "";
                        e.hasClass("ls-hide-phone") && (s += " ls-hide-on-phone"), e.hasClass("ls-hide-tablet") && (s += " ls-hide-on-tablet"), e.hasClass("ls-hide-desktop") && (s += " ls-hide-on-desktop"), e.removeClass("ls-hide-phone ls-hide-tablet ls-hide-desktop"), t.is("a") && 1 === t.children().length && (a = !0, e = t.find(".ls-layer"));
                        var o, r = e.data(V.defaults.init.dataKey);
                        if (!r) return !0;
                        n = V.slider.$layersWrapper, r.is.backgroundVideo ? n = V.slider.$bgVideosWrapper : r.is.slideBackground && (n = V.slider.$slideBGWrapper), e.data("hasBeenSet") || V.layers.set.singleLayer(e, u), r.textIn.split && (o = new H.SplitType(e[0], {
                            split: r.textIn.split
                        }), r.textIn.type && (r.textIn.ns = o[r.textIn.type.split("_")[0]]), r.textOut.type && (r.textOut.ns = o[r.textOut.type.split("_")[0]])), i = r.is.slideBackground || r.is.backgroundVideo ? '<div class="ls-wrapper ls-bg-outer"><div class="ls-wrapper ls-bg-wrap"></div></div>' : (r.clip.enabled && (i = '<div class="ls-wrapper ls-clip"></div>'), r.loop.enabled && (i = '<div class="ls-wrapper ls-loop">' + i + "</div>"), r.scroll.enabled && (i = '<div class="ls-wrapper ls-scroll"><div class="ls-wrapper ls-scroll-transform">' + i + "</div></div>"), '<div class="ls-wrapper ls-in-out">' + i + "</div>"), r.parallax.enabled && (i = '<div class="ls-wrapper ls-parallax">' + i + "</div>"), V.browser.isSafari && (i = '<div class="ls-wrapper ls-z">' + i + "</div>"), "" !== i ? e.appendTo(n).wrap(i) : e.appendTo(n), !0 === a && t.addClass("ls-layer-link").appendTo(e.parent());
                        var n = {},
                            a = e.css("mix-blend-mode");
                        a && "normal" !== a && (n["mix-blend-mode"] = a, e.css("mix-blend-mode", "normal")), r.original.customZIndex = 1;
                        a = parseInt(r.original.zIndex);
                        r.is.backgroundVideo || r.is.slideBackground ? n = {
                            zIndex: r.original.customZIndex
                        } : (a = a || l + 101, n.zIndex = a, r.original.customZIndex = a), r.styleSettings.pointerevents && (n.pointerEvents = "none"), V.browser.isSafari && (n.transform = "translateZ(" + 3e3 * a + "px )"), V.layers.set.wrappers(e, r, u), r.elements.$outerWrapper.css(n).addClass(s), r.is.slideBackground && r.elements.$bgWrapper.css({
                            backgroundColor: V.slides[u].data.backgroundColor
                        }), V.layers.$all = V.layers.$all.add(e), V.slides[u].$layers = V.slides[u].$layers.not(t), l === c - 1 && (B.children(".ls-slide").eq(u - 1).empty(), V.slides[u].wrapped = !0)
                    }, t * (l + 1))
                }))
            }
        }, V.slideshow = {
            direction: "next",
            nextLoop: 0,
            firstStart: !0,
            forceFastChange: !1,
            sequence: {
                normal: [],
                randomized: []
            },
            state: {
                running: !0,
                paused: !1,
                pausedByVideo: !1,
                pausedByHover: !1,
                pausedByLastCycle: !1
            },
            should: {
                change: !1,
                start: !1,
                stop: !1
            },
            isPaused: function() {
                return this.state.paused || this.state.pausedByVideo || this.state.pausedByHover
            },
            init: function() {
                1 == V.slides.count && (V.o.autoStart = !1, V.o.navPrevNext = !1, V.o.navStartStop = !1, V.o.navButtons = !1, V.o.cycles = -1, V.o.forceLoopNum = !1, V.o.autoPauseSlideshow = !0, V.o.firstSlide = 1, V.o.thumbnailNavigation = "disabled"), V.o.autoStart && 1 != V.slides.count || V.functions.setStates(this, {
                    running: !1,
                    paused: !0
                }), this.set.pauseOnHover(), this.set.sequences()
            },
            set: {
                pauseOnHover: function() {
                    V.o.pauseOnHover = !0 === V.o.pauseOnHover ? "slideshowOnly" : V.o.pauseOnHover, !1 !== V.o.pauseOnHover && B.on("mouseenter." + W, function() {
                        V.slider.state.inFullscreen || (V.functions.setStates(V.slideshow, {
                            pausedByHover: !0
                        }), "slideshowOnly" !== V.o.pauseOnHover && V.transitions.layers.timeline.pause())
                    }).on("mouseleave." + W, function() {
                        var e = 1;
                        V.transitions._slideTimeline && V.transitions._slideTimeline.duration() > V.transitions.layers.timeline.totalDuration && (e = V.transitions.layers.timeline.totalDuration / V.transitions._slideTimeline.duration()), V.functions.setStates(V.slideshow, {
                            pausedByHover: !1
                        }), X("body").hasClass("ls-unselectable") || "slideshowOnly" === V.o.pauseOnHover || V.o.pauseLayers && V.slideshow.isPaused() || V.transitions.layers.timeline.resume(), V.transitions._slideTimeline && V.transitions.layers.timeline.state.finished && V.transitions._slideTimeline.progress() < e && V.functions.setStates(V.transitions.layers.timeline, {
                            finished: !1
                        }), V.slideshow.start()
                    })
                },
                sequences: function() {
                    for (var e = 0; e < V.slides.count; e++) V.slideshow.sequence.normal[e] = e + 1;
                    V.slideshow.sequence.randomized = V.functions.shuffleArray(X.merge([], V.slideshow.sequence.normal))
                },
                normalizedSequence: function() {
                    var e = V.o.shuffleSlideshow ? "randomized" : "normal",
                        t = V.slideshow.sequence[e],
                        i = V.slideshow.sequence[e].length,
                        a = t.indexOf(V.slides.first.index);
                    V.slideshow.sequence.normalized = [];
                    for (var s = a; s < i; s++) V.slideshow.sequence.normalized.push(t[s]);
                    for (var o = 0; o < a; o++) V.slideshow.sequence.normalized.push(t[o])
                },
                prevNext: function(e) {
                    switch (e) {
                        case "prev":
                            V.o.twoWaySlideshow && (V.slideshow.direction = "prev"), V.slideshow.changeTo(V.slideshow.get.slideInSequence("prev"), !0);
                            break;
                        case "next":
                            V.slideshow.direction = "next", V.slideshow.changeTo(V.slideshow.get.slideInSequence("next"), !0)
                    }
                }
            },
            get: {
                sequence: function() {
                    var e = "normal";
                    return V.o.playByScroll ? e = "normalized" : V.o.shuffleSlideshow && (e = "randomized"), e
                },
                slideInSequence: function(e) {
                    var t = V.slideshow.sequence[this.sequence()],
                        i = t.indexOf(V.slides.current.index);
                    switch (e) {
                        case "prev":
                            return 0 === i ? t[t.length - 1] : t[i - 1];
                        case "next":
                            return i === t.length - 1 ? t[0] : t[i + 1];
                        default:
                            return t[e]
                    }
                },
                indexOfSlideInSequence: function(e) {
                    return V.slideshow.sequence[this.sequence()].indexOf(e)
                }
            },
            cycles: {set: function() {
                    0 < V.o.cycles && (V.slideshow.curCycle = 1, V.slideshow.cycleSlideIndex = V.slideshow.get.indexOfSlideInSequence(V.slides.first.index))
                },
                check: function(e) {
                    if (V.slideshow.get.indexOfSlideInSequence(e) === V.slideshow.cycleSlideIndex) return ++V.slideshow.curCycle === V.o.cycles + 1
                }
            },
            start: function(e) {
                !this.isPaused() && V.transitions._slideTimeline && V.transitions.layers.timeline.state.finished && this.changeTo(V.slides.next.index)
            },
            stop: function() {
                V.functions.setStates(this, {
                    running: !1,
                    paused: !0
                })
            },
            changeTo: function(e, t, i) {
                if (!document.body.contains($)) return !1;
                if (V.slides.current.index === e && !V.slideshow.forceSlideChangeTo) return !1;
                if (V.slideshow.forceSlideChangeTo = null, !this.firstStart && V.api.hasEvent("slideChangeWillStart")) {
                    var a = V.api.triggerEvent("slideChangeWillStart", V.api.eventData());
                    if (!1 === a) return;
                    X.isNumeric(a) && (e = parseInt(a))
                }
                e > V.slides.count || e < 1 ? V.debugMode && (V.debug.add("group", "slideshow"), V.debug.add("warn", "slideshow.invalidSlideIndex", [e, V.slides.count]), V.debug.groupEnd()) : V.slider.isBusy() || V.slideshow.state.pausedByVideo && !t ? !V.slider.state.preloadingImages && V.slider.state.animatingSlides && V.transitions._slideTransition && (V.slideshow.forceSlideChangeTo = e, V.slideshow.should.change = !0, V.transitions._slideTransition.progress(1), V.transitions._forceLayersOut && V.transitions._forceLayersOut.progress(1)) : (V.functions.setStates(V.transitions.layers.timeline, {
                    finished: !1
                }), V.slideshow.should.change = !1, V.debugMode && V.debug.add("group", "slideshow"), t ? ("prev" === V.navigation.direction && V.o.twoWaySlideshow && (V.slideshow.direction = "prev"), V.debugMode && (V.debug.add("log", "slideshow.changedByUser", !1), V.o.twoWaySlideshow && V.debug.add("log", "slideshow.setdir", V.slideshow.direction))) : V.navigation.direction = V.slideshow.direction, V.transitions.timers.reverse(), V.gui.media.hideUnmute(), V.slides.set.nextSlideIndex(e), V.debugMode && (V.debug.add("log", "slideshow.change", [V.slides.current.index, V.slides.next.index, V.slideshow.direction, V.navigation.direction]), V.debug.groupEnd()), V.functions.setStates(this, {
                    pausedByVideo: !1
                }), V.functions.setStates(V.slider, {
                    changingSlides: !0
                }), V.slider.state.animatingSlides && V.transitions._slideTransition && V.transitions._forceLayersOut && V.transitions._forceLayersOut.progress(1), V.preload.imagesOfSlide(V.slides.next.index, function() {
                    V.transitions.start()
                }))
            },
            forceStop: function() {
                V.navigation.stop(), X.each(V.timeouts, function(e, t) {
                    clearTimeout(V.timeouts[e])
                }), V.transitions.timers.stop(), V.transitions._slideTimeline.stop(), V.functions.setStates(V.transitions.layers.timeline, {
                    stopped: !0,
                    running: !1
                }), B.find("*").stop(!0, !1).dequeue()
            },
            restart: function() {
                B.find("*").stop(), V.navigation.change(V.slides.current.index, V.slideshow.direction)
            }
        }, V.media = {
            properties: {
                $allMediaLayers: X(),
                playingInCurSlide: 0,
                endedInCurSlide: 0,
                userDidUnmute: !1
            },
            init: function() {
                V.functions.setStates(V.slider, {
                    waitingForYouTube: !1,
                    waitingForVimeo: !1
                }), V.media.properties.allowToUnmute = !0, V.media.youtube.init(), V.media.vimeo.init(), V.media.html5.init()
            },
            get: function(e) {
                var t, i = V.media.properties.$allMediaLayers;
                return e && (-1 !== (e = e.toLowerCase()).indexOf("notbg") && (i = i.not(".ls-bg-video")), -1 !== e.indexOf("active") && (i = i.filter("[data-ls-active], [data-ls-animating-in]")), -1 !== e.indexOf("notstatic") && (i = i.not("[data-ls-static]")), t = i.find("video, audio, iframe"), -1 !== e.indexOf("notplaying") ? t = t.filter("[data-ls-not-playing]") : -1 !== e.indexOf("playing") && (t = t.filter("[data-ls-playing]")), -1 !== e.indexOf("allowtounmute") && (t = t.filter("[data-ls-allow-to-unmute]")), -1 !== e.indexOf("mutedbybrowser") && (t = t.filter("[data-ls-muted-by-browser]"))), t
            },
            set: {
                backgroundVideo: function(e, t) {
                    0 === e.children(".ls-vpcontainer").length && (e = X("<div>").addClass("ls-vpcontainer").appendTo(e), t.mediaSettings.poster && X("<div>").appendTo(e).addClass("ls-videopreview").attr({
                        style: "background-image: url(" + t.mediaSettings.poster + ")"
                    }))
                },
                customPoster: function(e, t) {
                    return t.mediaSettings.poster || !1
                },
                dataAttribute: function(e, t) {
                    e.removeAttr("data-ls-playing data-ls-not-playing"), e.attr("data-ls-" + t, ""), V.media.functions.checkSlideshowWaiting()
                },
                mediaElements: function(e, t, i) {
                    var a = X("<div>").addClass("ls-vpcontainer").appendTo(e);
                    !("autoplay" in i.mediaSettings) && V.o.autoPlayVideos || i.mediaSettings.autoplay ? e.addClass("ls-autoplay") : X("<div>").appendTo(a).addClass("ls-playvideo"), t.is("iframe") && i.mediaProperties.poster && X("<div>").appendTo(a).addClass("ls-videopreview").attr({
                        style: "background-image: url(" + i.mediaProperties.poster + ")"
                    }), t.is("video, audio") && i.mediaProperties.poster && X("<div>").appendTo(a).addClass("ls-videopreview").attr({
                        style: "background-image: url(" + i.mediaProperties.poster + ")"
                    })
                },
                properties: function(e, t, i) {
                    switch (i.is.mediaLayer = !0, i.mediaProperties.type) {
                        case "youtube":
                            i.is.backgroundVideo ? (i.mediaProperties.options = X.extend(!0, {
                                loop: 1,
                                playlist: i.mediaProperties.embedID,
                                controls: 0,
                                autoplay: 0,
                                showinfo: !1,
                                modestbranding: 1,
                                thumbnail: !1
                            }, V.media[i.mediaProperties.type].defaults, i.mediaProperties.embedOptions), V.media.set.backgroundVideo(e, i)) : (i.mediaProperties.options = X.extend(!0, {}, V.media[i.mediaProperties.type].defaults, i.mediaProperties.embedOptions, {
                                autoplay: 0
                            }), V.media.set.mediaElements(e, t, i));
                            break;
                        case "vimeo":
                            i.is.backgroundVideo ? (i.mediaProperties.options = X.extend(!0, {
                                loop: 1,
                                byline: 0,
                                portrait: 0,
                                title: 0,
                                fun: 0
                            }, V.media[i.mediaProperties.type].defaults, i.mediaProperties.embedOptions), V.media.set.backgroundVideo(e, i)) : (i.mediaProperties.options = X.extend(!0, {}, V.media[i.mediaProperties.type].defaults, i.mediaProperties.embedOptions, {
                                autoplay: 0
                            }), V.media.set.mediaElements(e, t, i));
                            break;
                        case "html5":
                            t.attr("autoplay") && (t.removeAttr("autoplay"), e.attr("data-ls", e.attr("data-ls") + " autoplay: true;")), i.is.backgroundVideo && (t.removeAttr("controls"), t[0].muted = !0, t.attr("loop", "")), "controls" in i.mediaSettings && (i.mediaSettings.controls ? (t.attr("controls", ""), t.removeAttr("nocontrols")) : t.removeAttr("controls")), "volume" in i.mediaSettings && (i.mediaSettings.volume < 0 ? i.mediaSettings.volume = 0 : 100 < i.mediaSettings.volume && (i.mediaSettings.volume = 100), t[0].volume = i.mediaSettings.volume / 100), "muted" in i.mediaSettings && (i.mediaSettings.muted ? t[0].muted = !0 : t[0].muted = !1), "loop" in i.mediaSettings && (i.mediaSettings.loop ? t.attr("loop", "") : t.removeAttr("loop")), i.is.backgroundVideo ? V.media.set.backgroundVideo(e, i) : V.media.set.mediaElements(e, t, i)
                    }
                },
                thumbnail: function(e, t) {
                    switch (t) {
                        case "show":
                            e.fadeIn(V.transitions.media.defaults.fadeIn);
                            break;
                        case "hide":
                            e.delay(V.transitions.media.defaults.delay).fadeOut(V.transitions.media.defaults.fadeOut)
                    }
                }
            },
            events: {
                start: function(e, t, i) {
                    var a;
                    V.api.hasEvent("mediaDidStart") && !i.mediaProperties.alreadyStarted && V.media.functions.allowedToPlay(e, i) && ((a = V.api.eventData()).event.target = e[0], V.api.triggerEvent("mediaDidStart", a), i.mediaProperties.alreadyStarted = !0)
                },
                stop: function(e, t, i) {
                    var a;
                    V.api.hasEvent("mediaDidStop") && i.mediaProperties.alreadyStarted && ((a = V.api.eventData()).event.target = e[0], V.api.triggerEvent("mediaDidStop", a), i.mediaProperties.alreadyStarted = !1)
                }
            },
            unmute: {set: function(e, t, i) {
                    ("youtube" !== t && "vimeo" !== t || V.media.properties.allowToUnmute) && V.gui.media.showUnmute(), e.attr("data-ls-allow-to-unmute", ""), i && e.attr("data-ls-muted-by-browser", "")
                },
                multipleMediaElements: function() {
                    var e = B.find("[data-ls-allow-to-unmute]");
                    (V.o.rememberUnmuteState ? e : e.filter("[data-ls-playing], [data-ls-muted-by-browser]")).each(function() {
                        V.media.unmute.singleMediaElement(X(this))
                    }), V.gui.media.hideUnmute(), V.media.properties.userDidUnmute = !0
                },
                singleMediaElement: function(e) {
                    var t, i = e.closest(".ls-layer").data(V.defaults.init.dataKey),
                        a = !1;
                    switch (i.mediaProperties.type) {
                        case "youtube":
                            V.media.properties.allowToUnmute && (a = !0, i.mediaProperties.player.unMute());
                            break;
                        case "vimeo":
                            V.media.properties.allowToUnmute && (a = !0, t = i.mediaSettings.volume ? i.mediaSettings.volume / 100 : 1, i.mediaProperties.player.setVolume(t));
                            break;
                        case "html5":
                            a = !0, e[0].muted = !1
                    }
                    a && e.removeAttr("data-ls-muted-by-browser data-ls-allow-to-unmute")
                }
            },
            functions: {
                allowedToPlay: function(e, t) {
                    e = e.closest(".ls-layer");
                    return !!(V.slides.current.index === parseInt(e.attr("data-ls-slidein")) || t.is.backgroundVideo && V.slides.next.index === parseInt(e.attr("data-ls-slidein")) || e.attr("data-ls-static") && void 0 !== e.attr("data-ls-active"))
                },
                playActiveMedia: function() {
                    var e;
                    V.media.get("notbg,active").each(function() {
                        if ((e = X(this).closest(".ls-layer").data(V.defaults.init.dataKey)).mediaProperties.alreadyStarted) switch (e.mediaProperties.type) {
                            case "youtube":
                                e.mediaProperties.player.playVideo();
                                break;
                            case "vimeo":
                                e.mediaProperties.player.play();
                                break;
                            case "html5":
                                e.mediaProperties.$media[0].play()
                        } else X(this).parent().find(".ls-vpcontainer").trigger("playMedia")
                    })
                },
                pauseActiveMedia: function() {
                    var e;
                    V.media.get("notbg,active,playing").each(function() {
                        switch ((e = X(this).closest(".ls-layer").data(V.defaults.init.dataKey)).mediaProperties.type) {
                            case "youtube":
                                e.mediaProperties.player.pauseVideo();
                                break;
                            case "vimeo":
                                e.mediaProperties.player.pause();
                                break;
                            case "html5":
                                this.pause()
                        }
                    })
                },
                urlToObject: function(e) {
                    var a = {},
                        e = e.split("?")[1];
                    return e && e.split("#")[0].replace(/([^=&]+)=([^&]*)/g, function(e, t, i) {
                        a[decodeURIComponent(t)] = X.isNumeric(decodeURIComponent(i)) ? parseInt(decodeURIComponent(i)) : decodeURIComponent(i)
                    }), a
                },
                checkSlideshowState: function(e, t) {
                    !t.is.static && V.o.autoPauseSlideshow && (V.functions.setStates(V.slideshow, {
                        pausedByVideo: !0
                    }), "auto" == V.o.autoPauseSlideshow && V.media.properties.playingInCurSlide++)
                },
                checkSlideshowWaiting: function() {
                    var e = V.media.properties.playingInCurSlide,
                        t = V.media.get("notbg,active,notstatic,notplaying"),
                        i = V.media.get("notbg,active,notstatic,notplaying").length;
                    i === e && 0 < i && V.slideshow.state.pausedByVideo && V.o.autoPauseSlideshow && !V.timeouts.pausedVideos && V.slideshow.state.running ? V.timeouts.pausedVideos = setTimeout(function() {
                        V.slideshow.state.running ? t.each(function() {
                            V.media.functions.mediaEnded(X(this), X(this).closest(".ls-layer"), X(this).closest(".ls-layer").data(V.defaults.init.dataKey))
                        }) : V.slideshow.state.pausedByVideo = !1
                    }, 5e3) : V.timeouts.pausedVideos && (clearTimeout(V.timeouts.pausedVideos), delete V.timeouts.pausedVideos)
                },
                playIfAllowed: function(e) {
                    var t = e.data(V.defaults.init.dataKey);
                    t.is.mediaLayer && (V.device.isMobile && (B.hasClass("ls-device-is-phone") && t.elements.$outerWrapper.hasClass("ls-hide-on-phone") || B.hasClass("ls-device-is-tablet") && t.elements.$outerWrapper.hasClass("ls-hide-on-tablet")) || ("autoplay" in t.mediaSettings || !V.o.autoPlayVideos) && !t.mediaSettings.autoplay || e.find(".ls-vpcontainer").trigger("playMedia"))
                },
                stop: function(a) {
                    a = void 0 === a || a;
                    V.layers.get("current,out,youtube").each(function() {
                        var e = X(this),
                            t = e.closest(".ls-layer"),
                            i = t.data(V.defaults.init.dataKey);
                        V.media.youtube.stop(t, e, i, a)
                    }), V.layers.get("current,out,vimeo").each(function() {
                        var e = X(this),
                            t = e.closest(".ls-layer"),
                            i = t.data(V.defaults.init.dataKey);
                        V.media.vimeo.stop(t, e, i, a)
                    }), V.layers.get("current,out,html5").each(function() {
                        var e = X(this),
                            t = e.closest(".ls-layer"),
                            i = t.data(V.defaults.init.dataKey);
                        V.media.html5.stop(t, e, i, a)
                    }), V.media.properties.playingInCurSlide = 0, V.media.properties.endedInCurSlide = 0
                },
                mediaEnded: function(e, t, i) {
                    "auto" != V.o.autoPauseSlideshow || i.is.backgroundVideo || (i.is.static || V.media.properties.endedInCurSlide++, V.media.properties.endedInCurSlide == V.media.properties.playingInCurSlide && 0 !== V.media.properties.playingInCurSlide && (V.functions.setStates(V.slideshow, {
                        pausedByVideo: !1
                    }), V.slideshow.remainingSlideDuration = 1, V.slideshow.start())), V.media.set.dataAttribute(e, "not-playing"), V.media.events.stop(e, t, i)
                },
                removeFromTimeline: function(e) {
                    V.transitions._slideTimeline.kill(null, e.closest(".ls-in-out")[0])
                }
            },
            youtube: {
                defaults: {
                    autoplay: 0,
                    playsinline: 1,
                    wmode: "opaque",
                    html5: 1,
                    enablejsapi: 1,
                    version: 3,
                    rel: 0
                },
                init: function() {
                    var f = 0;
                    this.$medias = V.slider.$hiddenWrapper.find('iframe[src*="youtube-nocookie.com"], iframe[src*="youtube.com"], iframe[src*="youtu.be"], iframe[data-src*="youtube-nocookie.com"], iframe[data-src*="youtube.com"], iframe[data-src*="youtu.be"]').each(function() {
                        var e = X(this).attr({
                                id: "ls-youtube-" + ++f,
                                allow: "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture; fullscreen",
                                allowfullscreen: ""
                            }),
                            t = e.closest(".ls-layer");
                        t.data("hasBeenSet") || V.layers.set.singleLayer(t);
                        var i, a, s, o, r, n, l, d, u = t.data(V.defaults.init.dataKey),
                            c = e.attr("src") || e.attr("data-src"),
                            p = V.media.functions.urlToObject(c),
                            h = (c = c.split("?")[0].split("//")[1]).split("/"),
                            m = h[h.length - 1],
                            h = V.media.set.customPoster(t, u);
                        u.mediaProperties = {
                            type: "youtube",
                            $media: e,
                            embedURL: c,
                            embedID: m,
                            embedOptions: p
                        }, h ? (u.mediaProperties.poster = h, V.media.set.properties(t, e, u)) : (i = ["default.jpg", "mqdefault.jpg", "hqdefault.jpg", "sddefault.jpg", "maxresdefault.jpg"], a = "https://img.youtube.com/vi/" + c.split("embed/")[1].split("?")[0] + "/", s = a + V.o.youtubePreview, r = o = 0, n = function() {
                            this.width > o && (o = this.width, s = this.src), d()
                        }, l = function() {
                            d()
                        }, d = function() {
                            (r += 1) === i.length && (u.mediaProperties.poster = s, V.media.set.properties(t, e, u))
                        }, i.forEach(function(e) {
                            var t = new Image;
                            t.addEventListener("error", l, !1), t.addEventListener("load", n, !1), t.src = a + e
                        }))
                    }), this.$medias.length && (V.media.properties.$allMediaLayers = V.media.properties.$allMediaLayers.add(this.$medias.closest(".ls-layer")), V.timeouts.loadYouTube = Math.floor(Date.now() / 1e3), window.YT || X("<script>").attr({
                        src: "https://www.youtube.com/iframe_api",
                        type: "text/javascript"
                    }).appendTo("head"), window.onYouTubeIframeAPIReady = function() {
                        window._layerSlider.globals.youTubeIsReady = !0
                    }, V.intervals.isYouTubeReady = setInterval(function() {
                        window.YT && 1 === window.YT.loaded || window._layerSlider.globals.youTubeIsReady || 3 < Math.floor(Date.now() / 1e3) - V.timeouts.loadYouTube ? (clearInterval(V.intervals.isYouTubeReady), delete V.intervals.isYouTubeReady, delete V.timeouts.loadYouTube, V.media.youtube.$medias.closest(".ls-layer").each(function() {
                            var e = X(this),
                                t = e.data(V.defaults.init.dataKey);
                            e.on("playMedia." + W + " click." + W, ".ls-vpcontainer", function() {
                                V.media.set.thumbnail(X(this), "hide"), V.media.functions.checkSlideshowState(e, t), V.media.functions.removeFromTimeline(e), V.media.youtube.play(e, t.mediaProperties.$media, t, t.mediaProperties.embedURL)
                            }).on("playBackgroundVideo." + W, function() {
                                V.media.youtube.play(e, t.mediaProperties.$media, t, t.mediaProperties.embedURL), V.layers.set.dataAttribute(e, "active")
                            }).on("stopBackgroundVideo." + W, function() {
                                V.media.youtube.stop(e, t.mediaProperties.$media, t, !0), V.layers.set.dataAttribute(e, "hidden")
                            }).on("preloadBackgroundVideo." + W, function() {
                                V.media.youtube.createPlayer(e, t.mediaProperties.$media, t, t.mediaProperties.embedURL, !0)
                            })
                        }), V.functions.setStates(V.slider, {
                            waitingForYouTube: !1
                        })) : V.functions.setStates(V.slider, {
                            waitingForYouTube: !0
                        })
                    }, 25))
                },
                createPlayer: function(t, i, a, s, o) {
                    a.mediaProperties.playerState = "initializing", "controls" in a.mediaSettings && (a.mediaProperties.options.controls = a.mediaSettings.controls ? 1 : 0), "loop" in a.mediaSettings && (a.mediaProperties.options.loop = a.mediaSettings.loop ? 1 : 0), "showinfo" in a.mediaSettings && (a.mediaProperties.options.showinfo = a.mediaSettings.showinfo ? 1 : 0), a.mediaProperties.options.loop ? a.mediaProperties.options.playlist = a.mediaProperties.embedID : delete a.mediaProperties.options.playlist, 0 === a.mediaProperties.options.showinfo && (a.mediaProperties.options.modestbranding = 1), i.attr("src", "https://" + s + "?" + jQuery.param(a.mediaProperties.options)).on("load", function() {
                        a.mediaProperties.player = new YT.Player(i[0], {
                            events: {
                                onReady: function(e) {
                                    a.mediaProperties.playerState = "ready", a.mediaSettings.volume && a.mediaProperties.player.setVolume(a.mediaSettings.volume), o && !a.mediaProperties.shouldPlay || (V.media.youtube.play(t, i, a, s), a.mediaProperties.shouldPlay = !1)
                                },
                                onStateChange: function(e) {
                                    switch (e.data) {
                                        case 0:
                                            a.mediaProperties.options.loop && 1 === a.mediaProperties.options.loop || V.media.functions.mediaEnded(i, t, a);
                                            break;
                                        case 1:
                                            V.media.events.start(i, t, a), a.mediaProperties.lastStarted = Date.now();
                                            break;
                                        case 2:
                                        case -1:
                                            a.mediaProperties.firstState && 0 !== a.mediaProperties.lastState && 1 !== a.mediaProperties.lastState || a.mediaProperties.lastStarted && (Date.now(), a.mediaProperties.lastStarted)
                                    }
                                    1 === e.data ? V.media.set.dataAttribute(i, "playing") : V.media.set.dataAttribute(i, "not-playing"), V.media.youtube.savePlayerState(a, e.data)
                                }
                            }
                        })
                    })
                },
                savePlayerState: function(e, t) {
                    e.mediaProperties.firstState || (e.mediaProperties.firstState = t), e.mediaProperties.lastState = t
                },
                play: function(e, t, i, a, s) {
                    void 0 !== t.attr("data-ls-muted-by-browser") && V.media.unmute.singleMediaElement(t), i.mediaProperties.player ? i.mediaProperties.player.playVideo ? (!i.is.backgroundVideo || "muted" in i.mediaSettings || i.mediaProperties.player.mute(), i.mediaSettings.muted ? V.o.rememberUnmuteState && V.media.properties.userDidUnmute || (i.mediaProperties.player.mute(), "offertounmute" == i.mediaSettings.muted && V.media.unmute.set(t, i.mediaProperties.type)) : s && (i.mediaProperties.player.mute(), V.media.unmute.set(t, i.mediaProperties.type, !0)), V.media.functions.allowedToPlay(t, i) ? i.mediaProperties.player.playVideo() : V.media.youtube.stop(e, t, i, !0)) : i.mediaProperties.shouldPlay = !0 : i.mediaProperties.playerState ? i.mediaProperties.shouldPlay = !0 : this.createPlayer(e, t, i, a)
                },
                stop: function(e, t, i, a) {
                    i.mediaProperties.player && (i.mediaProperties.player.pauseVideo(), a && i.mediaProperties.player.seekTo(0), i.is.backgroundVideo || V.media.set.thumbnail(e.find(".ls-vpcontainer"), "show"), V.media.events.stop(t, e, i))
                }
            },
            vimeo: {
                defaults: {
                    autoplay: 0,
                    autopause: 0,
                    wmode: "opaque",
                    playsinline: 1
                },
                init: function() {
                    var d, e, t = this.$medias = V.slider.$hiddenWrapper.find('iframe[src*="player.vimeo"], iframe[data-src*="player.vimeo"]'),
                        u = V.slider.$hiddenWrapper.find('.ls-slide:eq(0) iframe[src*="player.vimeo"], .ls-slide:eq(0) iframe[data-src*="player.vimeo"]').length;
                    t.length && (V.timeouts.loadVimeo = Math.floor(Date.now() / 1e3), V.media.properties.$allMediaLayers = V.media.properties.$allMediaLayers.add(t.closest(".ls-layer")), d = 0, X("<script>").attr({
                        src: "https://player.vimeo.com/api/player.js",
                        type: "text/javascript"
                    }).appendTo("head"), V.intervals.isVimeoReady = setInterval(function() {
                        V.functions.setStates(V.slider, {
                            waitingForVimeo: !0
                        }), (window.Vimeo || 3 < Math.floor(Date.now() / 1e3) - V.timeouts.loadVimeo) && (clearInterval(V.intervals.isVimeoReady), delete V.intervals.isVimeoReady, delete V.timeouts.loadVimeo, e())
                    }, 25), e = function() {
                        var l = 0;
                        V.media.vimeo.$medias.each(function() {
                            var t = X(this).attr({
                                    id: "ls-vimeo-" + ++d,
                                    allow: "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture; fullscreen",
                                    allowfullscreen: ""
                                }),
                                i = t.closest(".ls-layer");
                            i.data("hasBeenSet") || V.layers.set.singleLayer(i);
                            var a = i.data(V.defaults.init.dataKey),
                                e = t.attr("src") || t.attr("data-src"),
                                s = V.media.functions.urlToObject(e),
                                o = "https://vimeo.com/api/oembed.json?url=http://vimeo.com/" + e.split("video/")[1].split("?")[0],
                                e = e.split("?")[0].split("//")[1];
                            V.media.vimeo.defaults.player_id = "ls-vimeo-" + d;
                            var r = V.media.set.customPoster(i, a);
                            a.mediaProperties = {
                                type: "vimeo",
                                $media: t,
                                embedURL: e,
                                embedOptions: s
                            };

                            function n(e) {
                                a.mediaProperties.poster = e, (0 === u || 0 < u && ++l == u) && (window._layerSlider.globals.vimeoIsReady = !0), V.media.set.properties(i, t, a)
                            }
                            r ? n(r) : X.getJSON(o, function(e) {
                                n(e.thumbnail_url)
                            }), i.on("playMedia." + W + " click." + W, ".ls-vpcontainer", function() {
                                V.media.set.thumbnail(X(this), "hide"), V.media.functions.checkSlideshowState(i, a), V.media.functions.removeFromTimeline(i), V.media.vimeo.play(i, t, a, e)
                            }).on("playBackgroundVideo." + W, function() {
                                V.media.vimeo.play(i, t, a, e), V.layers.set.dataAttribute(i, "active")
                            }).on("stopBackgroundVideo." + W, function() {
                                V.media.vimeo.stop(i, t, a, !0), V.layers.set.dataAttribute(i, "hidden")
                            }).on("preloadBackgroundVideo." + W, function() {
                                V.media.vimeo.createPlayer(i, t, a, e, !0)
                            })
                        }), V.functions.setStates(V.slider, {
                            waitingForVimeo: !1
                        })
                    })
                },
                createPlayer: function(e, t, i, a, s) {
                    i.mediaProperties.playerState = "initializing";
                    "controls" in i.mediaSettings && delete i.mediaSettings.controls, "loop" in i.mediaSettings && (i.mediaProperties.options.loop = i.mediaSettings.loop ? 1 : 0), "showinfo" in i.mediaSettings && (i.mediaSettings.showinfo ? (i.mediaProperties.options.byline = 1, i.mediaProperties.options.portrait = 1, i.mediaProperties.options.title = 1) : (i.mediaProperties.options.byline = 0, i.mediaProperties.options.portrait = 0, i.mediaProperties.options.title = 0), delete i.mediaProperties.options.showinfo), "volume" in i.mediaSettings && (0 === i.mediaSettings.volume ? (i.mediaSettings.volume = 100, i.mediaSettings.muted = 1) : (i.mediaSettings.volume < 0 || 100 < i.mediaSettings.volume) && (i.mediaSettings.volume = 100)), t.attr("src", "https://" + a + "?" + jQuery.param(i.mediaProperties.options)), i.mediaProperties.player = new Vimeo.Player(t[0]), i.mediaProperties.player.on("play", function() {
                        V.media.set.dataAttribute(t, "playing"), V.media.events.start(t, e, i)
                    }), i.mediaProperties.player.on("pause", function() {
                        V.media.set.dataAttribute(t, "not-playing")
                    }), i.mediaProperties.player.on("ended", function() {
                        V.media.functions.mediaEnded(t, e, i)
                    }), i.mediaProperties.player.ready().then(function() {
                        i.mediaProperties.playerState = "ready", i.mediaSettings.volume && !i.mediaSettings.muted && X.isNumeric(i.mediaSettings.volume) && 0 <= i.mediaSettings.volume && i.mediaSettings.volume <= 100 && i.mediaProperties.player.setVolume(i.mediaSettings.volume / 100), s || V.media.vimeo.play(e, t, i, a)
                    })
                },
                play: function(t, i, a, s, e) {
                    void 0 !== i.attr("data-ls-muted-by-browser") && V.media.unmute.singleMediaElement(i), a.mediaProperties.player ? (!a.is.backgroundVideo || "muted" in a.mediaSettings || a.mediaProperties.player.setVolume(0), a.mediaSettings.muted && (V.o.rememberUnmuteState && V.media.properties.userDidUnmute ? V.o.rememberUnmuteState && V.media.properties.userDidUnmute && (a.mediaProperties.player.setVolume(a.mediaSettings.volume / 100 || 1), delete a.mediaSettings.muted) : (a.mediaProperties.player.setVolume(0), "offertounmute" == a.mediaSettings.muted && V.media.unmute.set(i, a.mediaProperties.type))), e ? (a.mediaProperties.player.setVolume(0), V.media.unmute.set(i, a.mediaProperties.type, !0)) : a.mediaProperties.player.getVolume().then(function(e) {
                        0 == e && "offertounmute" == a.mediaSettings.muted && V.media.unmute.set(i, a.mediaProperties.type)
                    }), V.media.functions.allowedToPlay(i, a) ? a.mediaProperties.player.play().then(function() {}).catch(function(e) {
                        switch (e.name) {
                            case "PasswordError":
                                window.console && (console.error(V.defaults.slider.errorText), console.error("Vimeo video is password protected and may cause playback issues."));
                                break;
                            case "PrivacyError":
                                window.console && (console.error(V.defaults.slider.errorText), console.error("Vimeo video is private and may cause playback issues."));
                                break;
                            default:
                                V.media.vimeo.play(t, i, a, s, !0)
                        }
                    }) : V.media.vimeo.stop(t, i, a, !0)) : this.createPlayer(t, i, a, s)
                },
                stop: function(e, t, i, a) {
                    i.mediaProperties.player && (i.mediaProperties.player.pause(), a && i.mediaProperties.player.setCurrentTime(0), i.is.backgroundVideo || V.media.set.thumbnail(e.find(".ls-vpcontainer"), "show"), V.media.events.stop(t, e, i))
                }
            },
            html5: {
                singleInit: function(t) {
                    var e, i, a, s, o = t.closest(".ls-layer"),
                        r = o.data(V.defaults.init.dataKey),
                        n = t.find("source"),
                        l = V.media.set.customPoster(o, r);
                    r.mediaProperties = {
                        type: "html5",
                        $media: t,
                        poster: l || t.attr("poster")
                    }, t.removeAttr("poster"), 0 < n.length ? n.each(function() {
                        void 0 !== (e = X(this).attr("type")) && !1 !== e || (i = X(this).attr("src"), a = i.split("."), s = a[a.length - 1].toLowerCase(), X(this).attr("type", X(this).parent()[0].tagName.toLowerCase() + "/" + s)), "" !== t[0].canPlayType(X(this).attr("type")) && (r.mediaProperties.canBePlayed = !0)
                    }) : void 0 !== t.attr("src") && !1 !== t.attr("src") && (i = t.attr("src"), a = i.split("."), s = a[a.length - 1].toLowerCase(), "" !== t[0].canPlayType(t[0].tagName.toLowerCase() + "/" + s) && (r.mediaProperties.canBePlayed = !0)), r.mediaProperties.canBePlayed && (V.media.set.properties(o, t, r), t.on("ended." + W, function() {
                        V.media.functions.mediaEnded(t, o, r)
                    }).on("play." + W, function() {}).on("playing." + W, function() {
                        V.media.events.start(t, o, r), V.media.set.dataAttribute(t, "playing")
                    }).on("pause." + W, function() {
                        V.media.set.dataAttribute(t, "not-playing")
                    }), o.on("playMedia." + W + " click." + W, ".ls-vpcontainer", function(e) {
                        V.media.set.thumbnail(X(this), "hide"), V.media.functions.checkSlideshowState(o, r), V.media.functions.removeFromTimeline(o), V.media.html5.play(o, t, r)
                    }).on("playBackgroundVideo." + W, function() {
                        V.media.html5.play(o, t, r), V.layers.set.dataAttribute(o, "active")
                    }).on("stopBackgroundVideo." + W, function() {
                        V.media.html5.stop(o, t, r, !0), V.layers.set.dataAttribute(o, "hidden")
                    }))
                },
                init: function() {
                    var e, t = V.slider.$hiddenWrapper.find("video, audio");
                    V.media.properties.$allMediaLayers = V.media.properties.$allMediaLayers.add(t.closest(".ls-layer")), t.length && (e = 0, t.each(function() {
                        X(this).closest(".ls-layer").data(V.defaults.init.dataKey).is.mediaLayer = !0, X(this).attr("id", "ls-html5-" + ++e).attr("playsinline", ""), X(this)[0].pause()
                    }))
                },
                play: function(e, t, i) {
                    var a;
                    i.mediaProperties.canBePlayed && (void 0 !== t.attr("data-ls-muted-by-browser") && V.media.unmute.singleMediaElement(t), i.mediaSettings.muted && (V.o.rememberUnmuteState && V.media.properties.userDidUnmute ? V.o.rememberUnmuteState && V.media.properties.userDidUnmute && (t[0].muted = !1) : (t[0].muted = !0, "offertounmute" == i.mediaSettings.muted && V.media.unmute.set(t, i.mediaProperties.type))), void 0 !== (a = t[0].play()) && a.then(function(e) {}).catch(function(e) {
                        t[0].muted = !0, t[0].play(), t[0].paused && V.functions.setStates(V.slideshow, {
                            pausedByVideo: !1
                        }), V.media.unmute.set(t, i.mediaProperties.type, !0)
                    }))
                },
                stop: function(e, t, i, a) {
                    i.mediaProperties.canBePlayed && (t[0].pause(), a && (t[0].currentTime = 0), i.is.backgroundVideo || V.media.set.thumbnail(X(this), "show"), V.media.events.stop(t, e, i))
                }
            }
        }, V.yourLogo = {
            init: function() {
                V.o.yourLogo && (this.$element = X("<img>").addClass("ls-yourlogo").appendTo(B).attr("style", V.o.yourLogoStyle).css({
                    visibility: "hidden",
                    display: "bock"
                }).on("load." + W, function() {
                    var e = V.yourLogo.$element ? 500 : 0;
                    V.timeouts.yourLogo = setTimeout(function() {
                        delete V.timeouts.yourLogo, V.yourLogo.$element.data("originalWidth", V.yourLogo.$element.width()), V.yourLogo.$element.data("originalHeight", V.yourLogo.$element.height()), "auto" != V.yourLogo.$element.css("left") && V.yourLogo.$element.data("originalLeft", V.yourLogo.$element[0].style.left), "auto" != V.yourLogo.$element.css("right") && V.yourLogo.$element.data("originalRight", V.yourLogo.$element[0].style.right), "auto" != V.yourLogo.$element.css("top") && V.yourLogo.$element.data("originalTop", V.yourLogo.$element[0].style.top), "auto" != V.yourLogo.$element.css("bottom") && V.yourLogo.$element.data("originalBottom", V.yourLogo.$element[0].style.bottom), !1 !== V.o.yourLogoLink && X("<a>").appendTo(B).attr("href", V.o.yourLogoLink).attr("target", V.o.yourLogoTarget).css({
                            textDecoration: "none",
                            outline: "none"
                        }).append(V.yourLogo.$element), V.yourLogo.$element.css({
                            display: "none",
                            visibility: "visible"
                        }), V.yourLogo.resize()
                    }, e)
                }).attr("src", V.o.yourLogo))
            },
            resize: function() {
                this.$element.css({
                    width: this.$element.data("originalWidth") * V.resize.ratio,
                    height: this.$element.data("originalHeight") * V.resize.ratio
                }), this.$element.fadeIn(300);
                var e = "auto",
                    t = "auto",
                    i = "auto",
                    a = "auto",
                    e = this.$element.data("originalLeft") && -1 != this.$element.data("originalLeft").indexOf("%") ? B.width() / 100 * parseFloat(this.$element.data("originalLeft")) - this.$element.width() / 2 + parseInt(B.css("padding-left")) : parseInt(this.$element.data("originalLeft")) * V.resize.ratio,
                    t = this.$element.data("originalRight") && -1 != this.$element.data("originalRight").indexOf("%") ? B.width() / 100 * parseFloat(this.$element.data("originalRight")) - this.$element.width() / 2 + parseInt(B.css("padding-right")) : parseInt(this.$element.data("originalRight")) * V.resize.ratio,
                    i = this.$element.data("originalTop") && -1 != this.$element.data("originalTop").indexOf("%") ? B.height() / 100 * parseFloat(this.$element.data("originalTop")) - this.$element.height() / 2 + parseInt(B.css("padding-top")) : parseInt(this.$element.data("originalTop")) * V.resize.ratio,
                    a = this.$element.data("originalBottom") && -1 != this.$element.data("originalBottom").indexOf("%") ? B.height() / 100 * parseFloat(this.$element.data("originalBottom")) - this.$element.height() / 2 + parseInt(B.css("padding-bottom")) : parseInt(this.$element.data("originalBottom")) * V.resize.ratio;
                this.$element.css({
                    left: e,
                    right: t,
                    top: i,
                    bottom: a
                })
            }
        }, V.gui = {
            navigation: {
                init: function() {
                    V.o.navPrevNext && this.prevNext.init(), (V.o.navStartStop || V.o.navButtons) && this.bottom.init()
                },
                prevNext: {
                    init: function() {
                        X('<a class="ls-gui-element ls-nav-prev" aria-label="jump to the previous slide" href="#" />').on("click." + W, function(e) {
                            e.preventDefault(), B.layerSlider("prev")
                        }).appendTo(B), X('<a class="ls-gui-element ls-nav-next" aria-label="jump to the next slide" href="#" />').on("click." + W, function(e) {
                            e.preventDefault(), B.layerSlider("next")
                        }).appendTo(B), V.o.hoverPrevNext && this.setHover()
                    },
                    setHover: function() {
                        B.find(".ls-nav-prev, .ls-nav-next").css({
                            display: "none"
                        }), B.on("mouseenter." + W, function() {
                            V.gui.navigation.forceHide || B.find(".ls-nav-prev, .ls-nav-next").stop(!0, !0).fadeIn(300)
                        }).on("mouseleave." + W, function() {
                            B.find(".ls-nav-prev, .ls-nav-next").stop(!0, !0).fadeOut(300)
                        })
                    }
                },
                bottom: {
                    init: function() {
                        this.wrapper = X('<div class="ls-gui-element ls-bottom-nav-wrapper" />').appendTo(B), V.o.navButtons && "always" != V.o.thumbnailNavigation && this.bullets.init(), V.o.navStartStop ? this.createStartStop() : "always" != V.o.thumbnailNavigation && this.createSides(), V.o.hoverBottomNav && "always" != V.o.thumbnailNavigation && this.setHover(), "always" == V.o.thumbnailNavigation && (this.wrapper.addClass("ls-above-thumbnails"), this.thumbnails.init())
                    },
                    bullets: {
                        init: function() {
                            var t = this;
                            X('<span class="ls-bottom-slidebuttons" />').appendTo(B.find(".ls-bottom-nav-wrapper"));
                            for (var e = 0; e < V.slides.count; e++) {
                                var i = X('<a href="#" aria-label="jump to slide ' + (e + 1) + '" />').appendTo(B.find(".ls-bottom-slidebuttons")).data("index", e + 1).on("click." + W, function(e) {
                                    e.preventDefault(), B.layerSlider(X(this).data("index"))
                                });
                                "hover" == V.o.thumbnailNavigation && i.on("mouseenter." + W, function() {
                                    var e = X(this);
                                    B.find(".ls-thumbnail-hover-img").css({
                                        left: parseInt(t.hoverWrapper.css("padding-left")),
                                        top: parseInt(t.hoverWrapper.css("padding-top"))
                                    }), t.hoverImage.on("load." + W, function() {
                                        0 === X(this).width() ? t.hoverImage.css({
                                            position: "relative",
                                            margin: "0 auto",
                                            left: "auto"
                                        }) : t.hoverImage.css({
                                            position: "absolute",
                                            marginLeft: -X(this).width() / 2,
                                            left: "50%"
                                        }), t.hoverImage.css("display", "none").stop(!0, !0).fadeIn(250)
                                    }).attr("src", V.slides[e.data("index")].data.thumbnail), t.hoverWrapper.css({
                                        display: "block"
                                    }).stop().animate({
                                        left: X(this).position().left + (X(this).width() - t.hoverWrapper.outerWidth()) / 2
                                    }, 250), t.hoverWrapperInner.css({
                                        display: "none",
                                        visibility: "visible"
                                    }).stop().fadeIn(250)
                                }).on("mouseleave." + W, function() {
                                    t.hoverWrapperInner.stop().fadeOut(250, function() {
                                        t.hoverWrapper.css({
                                            visibility: "hidden",
                                            display: "block"
                                        })
                                    })
                                })
                            }
                            t.set.active(V.slides.first.index), "hover" == V.o.thumbnailNavigation && t.set.hover()
                        },
                        set: {
                            active: function(e) {
                                void 0 === e && (e = V.slides.current.index), e--, B.find(".ls-bottom-slidebuttons a").removeClass("ls-nav-active"), B.find(".ls-bottom-slidebuttons a:eq( " + e + " )").addClass("ls-nav-active")
                            },
                            hover: function() {
                                var e = V.gui.navigation.bottom.bullets,
                                    t = X('<div class="ls-thumbnail-hover"><div class="ls-thumbnail-hover-inner"><div class="ls-thumbnail-hover-bg"></div><div class="ls-thumbnail-hover-img"><img></div><span></span></div></div>').appendTo(B.find(".ls-bottom-slidebuttons"));
                                B.find(".ls-thumbnail-hover, .ls-thumbnail-hover-img").css({
                                    width: V.o.tnWidth,
                                    height: V.o.tnHeight
                                }), e.hoverWrapper = B.find(".ls-thumbnail-hover"), e.hoverImage = e.hoverWrapper.find("img").css({
                                    height: V.o.tnHeight
                                }), e.hoverWrapperInner = B.find(".ls-thumbnail-hover-inner").css({
                                    visibility: "hidden",
                                    display: "block"
                                }), t.appendTo(B.find(".ls-bottom-slidebuttons"))
                            }
                        }
                    },
                    createStartStop: function() {
                        this.buttonStart = X('<a class="ls-nav-start" aria-label="start slideshow" href="#" />').on("click." + W, function(e) {
                            e.preventDefault(), B.layerSlider("start")
                        }).prependTo(B.find(".ls-bottom-nav-wrapper")), this.buttonStop = X('<a class="ls-nav-stop" aria-label="stop slideshow" href="#" />').on("click." + W, function(e) {
                            e.preventDefault(), B.layerSlider("stop")
                        }).appendTo(B.find(".ls-bottom-nav-wrapper")), V.o.autoStart ? this.setStartStop("start") : this.setStartStop("stop")
                    },
                    setStartStop: function(e) {
                        if (V.o.navStartStop) switch (e) {
                            case "start":
                                this.buttonStart.addClass("ls-nav-start-active"), this.buttonStop.removeClass("ls-nav-stop-active");
                                break;
                            case "stop":
                                this.buttonStart.removeClass("ls-nav-start-active"), this.buttonStop.addClass("ls-nav-stop-active")
                        }
                    },
                    createSides: function() {
                        X('<span class="ls-nav-sides ls-nav-sideleft" />').prependTo(B.find(".ls-bottom-nav-wrapper")), X('<span class="ls-nav-sides ls-nav-sideright" />').appendTo(B.find(".ls-bottom-nav-wrapper"))
                    },
                    setHover: function() {
                        var e = this;
                        e.wrapper.css({
                            display: "none"
                        }), B.on("mouseenter." + W, function() {
                            V.gui.navigation.forceHide || e.wrapper.stop(!0, !0).fadeIn(300)
                        }).on("mouseleave." + W, function() {
                            e.wrapper.stop(!0, !0).fadeOut(300)
                        })
                    },
                    switchHelper: function(e) {
                        if (V.o.hoverBottomNav && !B.hasClass("ls-hover")) switch (e) {
                            case "on":
                                V.gui.navigation.bottom.thumbnails.wrapper.css({
                                    visibility: "hidden",
                                    display: "block"
                                });
                                break;
                            case "off":
                                V.gui.navigation.bottom.thumbnails.wrapper.css({
                                    visibility: "visible",
                                    display: "none"
                                })
                        }
                    },
                    thumbnails: {
                        init: function() {
                            this.wrapper = X('<div class="ls-gui-element ls-thumbnail-wrapper"></div>').appendTo(B), X('<div class="ls-thumbnail"><div class="ls-thumbnail-inner"><div class="ls-thumbnail-slide-container"><div class="ls-thumbnail-slide"></div></div></div></div>').appendTo(this.wrapper), this.$element = B.find(".ls-thumbnail-slide-container"), "ontouchstart" in window ? this.$element.addClass("ls-touchscroll") : this.$element.on("mouseenter." + W, function() {
                                X(this).addClass("ls-thumbnail-slide-hover")
                            }).on("mouseleave." + W, function() {
                                X(this).removeClass("ls-thumbnail-slide-hover"), V.gui.navigation.bottom.thumbnails.scroll()
                            }).on("mousemove." + W, function(e) {
                                e = parseInt(e.pageX - X(this).offset().left) / X(this).width() * (X(this).width() - X(this).find(".ls-thumbnail-slide").width());
                                X(this).find(".ls-thumbnail-slide").stop().css({
                                    marginLeft: e
                                })
                            });
                            for (var e = 0; e < V.slides.count; e++) {
                                var t = e + 1,
                                    i = X('<a href="#" class="ls-thumb-' + (e + 1) + '"  aria-label="jump to slide ' + (e + 1) + '"><img src="' + V.slides[t].data.thumbnail + '"></a>');
                                V.slides[t].data.tnAlt && i.find("img").attr("alt", V.slides[t].data.tnAlt), i.data("index", t).on("click." + W, function(e) {
                                    e.preventDefault(), B.layerSlider(X(this).data("index"))
                                }).appendTo(B.find(".ls-thumbnail-slide")), "ontouchstart" in window || i.on("mouseenter." + W, function() {
                                    X(this).children().stop().fadeTo(300, V.o.tnActiveOpacity / 100)
                                }).on("mouseleave." + W, function() {
                                    X(this).children().hasClass("ls-thumb-active") || X(this).children().stop().fadeTo(300, V.o.tnInactiveOpacity / 100)
                                })
                            }
                            V.gui.navigation.bottom.buttonStart && V.gui.navigation.bottom.buttonStop && (V.gui.navigation.bottom.wrapper = X('<div class="ls-bottom-nav-wrapper ls-below-thumbnails"></div>').appendTo(B), V.gui.navigation.bottom.buttonStart.clone().on("click." + W, function(e) {
                                e.preventDefault(), B.layerSlider("start")
                            }).appendTo(V.gui.navigation.bottom.wrapper), V.gui.navigation.bottom.buttonStop.clone().on("click." + W, function(e) {
                                e.preventDefault(), B.layerSlider("stop")
                            }).appendTo(V.gui.navigation.bottom.wrapper)), V.o.hoverBottomNav && this.setHover()
                        },
                        setHover: function() {
                            var e = this;
                            e.wrapper.css("display", "none"), V.gui.navigation.bottom.wrapper && (V.gui.navigation.bottom.wrapper = "block" == V.gui.navigation.bottom.wrapper.css("display") ? V.gui.navigation.bottom.wrapper : B.find(".ls-above-thumbnails"), V.gui.navigation.bottom.wrapper.css("display", "none")), B.on("mouseenter." + W, function() {
                                B.addClass("ls-hover"), V.gui.navigation.forceHide || (e.wrapper.stop(!0, !0).fadeIn(300), V.gui.navigation.bottom.wrapper && V.gui.navigation.bottom.wrapper.stop(!0, !0).fadeIn(300))
                            }).on("mouseleave." + W, function() {
                                B.removeClass("ls-hover"), e.wrapper.stop(!0, !0).fadeOut(300), V.gui.navigation.bottom.wrapper && V.gui.navigation.bottom.wrapper.stop(!0, !0).fadeOut(300)
                            })
                        },
                        change: function(e) {
                            e = e || V.slides.next.index;
                            B.find(".ls-thumbnail-slide a:not(.ls-thumb-" + e + " )").children().each(function() {
                                X(this).removeClass("ls-thumb-active").stop().fadeTo(750, V.o.tnInactiveOpacity / 100)
                            }), B.find(".ls-thumbnail-slide a.ls-thumb-" + e).children().addClass("ls-thumb-active").stop().fadeTo(750, V.o.tnActiveOpacity / 100)
                        },
                        scroll: function() {
                            var e;
                            B.find(".ls-thumbnail-slide-container").hasClass("ls-thumbnail-slide-hover") || (e = !!B.find(".ls-thumb-active").length && B.find(".ls-thumb-active").parent()) && (e = e.position().left + e.width() / 2, e = 0 < (e = (e = B.find(".ls-thumbnail-slide-container").width() / 2 - e) < B.find(".ls-thumbnail-slide-container").width() - B.find(".ls-thumbnail-slide").width() ? B.find(".ls-thumbnail-slide-container").width() - B.find(".ls-thumbnail-slide").width() : e) ? 0 : e, B.find(".ls-thumbnail-slide").animate({
                                marginLeft: e
                            }, 600))
                        },
                        resize: function() {
                            V.gui.navigation.bottom.switchHelper("on");
                            var e = -1 == V.slider.initial.width.indexOf("%") ? parseInt(V.slider.initial.originalWidth) : B.width(),
                                t = B.find(".ls-thumbnail"),
                                e = -1 == V.o.tnContainerWidth.indexOf("%") ? parseInt(V.o.tnContainerWidth) : parseInt(e / 100 * parseInt(V.o.tnContainerWidth));
                            B.find(".ls-thumbnail-slide a").css({
                                width: parseInt(V.o.tnWidth * V.resize.ratio),
                                height: parseInt(V.o.tnHeight * V.resize.ratio)
                            }), B.find(".ls-thumbnail-slide a:last").css({
                                margin: 0
                            }), B.find(".ls-thumbnail-slide").css({
                                height: parseInt(V.o.tnHeight * V.resize.ratio)
                            }), t.css({
                                width: e * Math.floor(100 * V.resize.ratio) / 100
                            }), t.width() > B.find(".ls-thumbnail-slide").width() && t.css({
                                width: B.find(".ls-thumbnail-slide").width()
                            }), V.gui.navigation.bottom.switchHelper("off")
                        }
                    }
                }
            },
            media: {
                init: function() {
                    0 < V.media.properties.$allMediaLayers.length && X('<div class="ls-gui-element ls-media-unmute" aria-label="Unmute"><div class="ls-media-unmute-bg"></div><div class="ls-icon-muted"></div><div class="ls-icon-unmuted"></div></div>').on("click." + W, function(e) {
                        e.preventDefault(), B.layerSlider("unmute")
                    }).appendTo(B)
                },
                showUnmute: function() {
                    B.find(".ls-media-unmute").addClass("ls-media-unmute-active")
                },
                hideUnmute: function() {
                    B.find(".ls-media-unmute").removeClass("ls-media-unmute-active")
                }
            },
            skin: {
                load: function() {
                    B.addClass("ls-" + V.o.skin);
                    var e, t = V.o.skinsPath + V.o.skin + "/skin.css",
                        i = X("head").length ? X("head") : X("body");
                    X('link[href="' + t + '"]').length ? (e = X('link[href="' + t + '"]'), V.gui.skin.isLoaded || (V.gui.skin.isLoaded = !0, V.timeouts.skinLoad1 = setTimeout(function() {
                        delete V.timeouts.skinLoad1, V.slider.init()
                    }, 150))) : e = document.createStyleSheet ? (document.createStyleSheet(t), X('link[href="' + t + '"]')) : X('<link rel="stylesheet" href="' + t + '" type="text/css" />').appendTo(i), e.on("load." + W, function() {
                        V.gui.skin.isLoaded || (V.gui.skin.isLoaded = !0, V.timeouts.skinLoad2 = setTimeout(function() {
                            delete V.timeouts.skinLoad2, V.slider.init()
                        }, 150))
                    }), X(window).on("load." + W, function() {
                        V.gui.skin.isLoaded || (V.gui.skin.isLoaded = !0, V.timeouts.skinLoad3 = setTimeout(function() {
                            delete V.timeouts.skinLoad3, V.slider.init()
                        }, 150))
                    }), V.timeouts.skinLoad4 = setTimeout(function() {
                        V.gui.skin.isLoaded || (V.gui.skin.isLoaded = !0, delete V.timeouts.skinLoad4, V.slider.init())
                    }, 1e3)
                }
            },
            shadow: {
                init: function() {
                    this.set(), this.resize()
                },
                set: function() {
                    this.$element = X('<div class="ls-gui-element ls-shadow"></div>').appendTo(B), "block" != this.$element.css("display") || this.$element.find("img").length || (this.show = function() {
                        V.gui.shadow.$element.css({
                            display: "none",
                            visibility: "visible"
                        }).fadeIn(500, function() {
                            V.gui.shadow.show = !1
                        })
                    }, this.image = X("<img>").attr("src", V.o.skinsPath + V.o.skin + "/shadow.png").appendTo(this.$element), this.btmMod = "number" == typeof parseInt(B.css("padding-bottom")) ? parseInt(B.css("padding-bottom")) : 0)
                },
                resize: function() {
                    this.image && (0 < this.image.height() ? 0 < this.btmMod ? this.$element.css({
                        height: this.image.height() / 2
                    }) : this.$element.css({
                        height: this.image.height(),
                        marginTop: -this.image.height() / 2
                    }) : V.timeouts.resizeShadow = setTimeout(function() {
                        delete V.timeouts.resizeShadow, V.gui.shadow.resize()
                    }, 50))
                }
            },
            timers: {
                init: function() {
                    V.o.showBarTimer && this.bar.create(), V.o.showCircleTimer && this.circle.create();
                    var e = !1;
                    (e = V.o.showSlideBarTimer ? X("<div>").insertAfter(B) : X('[data-slidebar-for="' + B.attr("id") + '"], [data-slidebar-for="' + W + '"]')).length && (e.addClass("ls-gui-element"), this.slidebar.create(e))
                },
                bar: {
                    create: function() {
                        this.$element = X("<div>").addClass("ls-gui-element ls-bar-timer").appendTo(B)
                    }
                },
                circle: {
                    create: function() {
                        this.$element = X("<div>").addClass("ls-gui-element ls-circle-timer").appendTo(B), this.$element.append(X('<div class="ls-ct-center"></div><div class="ls-ct-left"><div class="ls-ct-rotate"><div class="ls-ct-hider"><div class="ls-ct-half"></div></div></div></div><div class="ls-ct-right"><div class="ls-ct-rotate"><div class="ls-ct-hider"><div class="ls-ct-half"></div></div></div></div>')), this.$element.data("original", {
                            opacity: this.$element.css("opacity")
                        })
                    }
                },
                slidebar: {
                    $containerElement: [],
                    $element: [],
                    $progressBarElement: [],
                    $sliderContainerElement: [],
                    $sliderElement: [],
                    elementWidth: [],
                    containerElementWidth: [],
                    sliderContainerElementWidth: [],
                    state: {},
                    create: function(e) {
                        function i(e, t) {
                            (s = (e.pageX || V.device.touchX || 0) - r.$element[t].offset().left - r.sliderContainerElementWidth[t] / 2) < 0 && (s = 0), s > r.containerElementWidth[t] - r.sliderContainerElementWidth[t] && (s = "calc( 100% - " + V.gui.timers.slidebar.sliderContainerElementWidth[t] + "px )"), r.$sliderContainerElement[t].css({
                                left: s
                            }), V.transitions._slideTimeline && V.transitions._slideTimeline.progress("string" == typeof s ? V.transitions.layers.timeline.progress : s / (r.containerElementWidth[t] - r.sliderContainerElementWidth[t]) * V.transitions.layers.timeline.progress)
                        }

                        function a(e) {
                            "dragging" == V.gui.timers.slidebar.state && (V.transitions._slideTimeline && V.transitions.layers.timeline.state.finished && V.transitions._slideTimeline.progress() !== V.transitions.layers.timeline.progress && V.functions.setStates(V.transitions.layers.timeline, {
                                finished: !1
                            }), X(document).off("mousemove." + W), X("body").prop("unselectable", !1).removeClass("ls-unselectable"), V.o.pauseLayers && !V.slideshow.state.running || V.slider.state.isPaused || !V.transitions._slideTimeline || V.o.playByScroll || (!0 === V.transitions.layers.timeline.state.started ? V.transitions.layers.timeline.resume() : V.transitions.layers.timeline.play()), V.gui.timers.slidebar.state = !1)
                        }
                        var s, o = X(document),
                            r = this;
                        X.each(e, function(t, e) {
                            r.$containerElement[t] = X(e).addClass("ls-slidebar-container " + W), r.$element[t] = X("<div>").addClass("ls-slidebar").appendTo(r.$containerElement[t]), r.$progressBarElement[t] = X("<div>").addClass("ls-progressbar").appendTo(r.$element[t]), r.$sliderContainerElement[t] = X("<div>").addClass("ls-slidebar-slider-container").appendTo(r.$containerElement[t]), r.$sliderElement[t] = X("<div>").addClass("ls-slidebar-slider").appendTo(r.$sliderContainerElement[t]), r.sliderContainerElementWidth[t] = r.$sliderContainerElement[t].width(), r.$sliderContainerElement[t].css({
                                marginTop: -r.$sliderElement[t].outerHeight() / 2
                            }), r.$containerElement[t].on("touchmove." + W, function(e) {
                                i(e, t)
                            }), r.$containerElement[t].on("touchend." + W, function(e) {
                                a()
                            }), r.$containerElement[t].on("mousedown." + W + " touchstart." + W, function(e) {
                                V.transitions.layers.timeline.pause(0), X("body").prop("unselectable", !0).addClass("ls-unselectable"), X(document).on("mousemove." + W, function(e) {
                                    i(e, t)
                                }), i(e, t), V.gui.timers.slidebar.state = "dragging"
                            }), o = o.add(r.$sliderElement[t])
                        }), X("body").on("mouseup." + W, function(e) {
                            a()
                        })
                    }
                }
            },
            loadingIndicator: {
                init: function() {
                    this.$element = X("<div>").css({
                        display: "none"
                    }).addClass("ls-gui-element ls-loading-container").appendTo(B), X("<div>").addClass("ls-loading-indicator").appendTo(this.$element)
                },
                show: function() {
                    this.$element.delay(400).fadeIn(300)
                },
                hide: function() {
                    this.$element.stop(!0, !0).fadeOut(300)
                }
            }
        }, V.navigation = {
            direction: "next",
            init: function() {
                1 < V.slides.count && (this.set.keyboard(), this.set.touch())
            },
            set: {
                keyboard: function() {
                    V.o.keybNav && X("body").on("keydown." + W, function(e) {
                        V.slider.isAnimating || V.slider.isPreloading || (37 == e.which ? V.navigation.prev() : 39 == e.which && V.navigation.next())
                    })
                },
                touch: function() {
                    "ontouchstart" in window && V.o.touchNav && (V.slider.$innerWrapper.on("touchstart." + W, function(e) {
                        e = e.touches || e.originalEvent.touches;
                        1 == e.length && (V.device.touchStartX = V.device.touchEndX = e[0].clientX)
                    }), V.slider.$innerWrapper.on("touchmove." + W, function(e) {
                        var t = e.touches || e.originalEvent.touches;
                        1 == t.length && (V.device.touchEndX = t[0].clientX), 45 < Math.abs(V.device.touchStartX - V.device.touchEndX) && e.preventDefault()
                    }), V.slider.$innerWrapper.on("touchend." + W, function(e) {
                        45 < Math.abs(V.device.touchStartX - V.device.touchEndX) && (0 < V.device.touchStartX - V.device.touchEndX ? B.layerSlider("touchNext") : B.layerSlider("touchPrev"))
                    }))
                }
            },
            prev: function() {
                (!V.slider.isPopup || V.slider.isPopup && V.slider.state.popupIsVisible) && (this.direction = "prev", this.forceDirection = "prev", V.slideshow.set.prevNext("prev"))
            },
            next: function() {
                (!V.slider.isPopup || V.slider.isPopup && V.slider.state.popupIsVisible) && (this.direction = "next", this.forceDirection = "next", V.slideshow.set.prevNext("next"))
            },
            start: function() {
                V.functions.setStates(V.slideshow, {
                    running: !0,
                    paused: !1
                }), !0 === V.slideshow.state.pausedByLastCycle && V.functions.setStates(V.slideshow, {
                    pausedByLastCycle: !1
                }), V.gui.navigation.bottom.setStartStop("start"), V.slideshow.state.pausedByHover || 1 !== V.transitions._slideTimeline.timeScale() && V.transitions.layers.timeline.resume(), V.slideshow.start()
            },
            stop: function() {
                V.gui.navigation.bottom.setStartStop("stop"), V.o.pauseLayers && V.transitions.layers.timeline.pause(), V.slideshow.stop()
            }
        }, V.preload = {
            init: function() {
                V.slider.$hiddenWrapper.find(".ls-slide img").each(function() {
                    var e, t = X(this),
                        i = t[0],
                        a = {};
                    t.is(".ls-layer, .ls-bg") && (i.getAttribute("width") && (a.width = i.getAttribute("width")), i.getAttribute("height") && (a.height = i.getAttribute("height")), i.sizes && (a.sizes = i.sizes), V.o.useSrcset && (t.data("srcset") || i.srcset) && (a.srcSet = t.data("srcset") || i.srcset, a.curSrc = i.currentSrc, e = a.srcSet.split(",").map(function(e) {
                        return parseInt(X.trim(e).split(" ")[1])
                    }), a.maxWidth = Math.max.apply(null, e)), t.removeAttr("width height sizes srcset loading"), X.isEmptyObject(a) || (t.data(V.defaults.init.dataKey).attributes = a)), t.data("lazy-src") ? t.data("src", t.data("lazy-src")) : t.attr("data-lazy-src") ? t.data("src", t.attr("data-lazy-src")) : t.attr("data-lazy") ? t.data("src", t.attr("data-lazy")) : t.data("src") ? a.curSrc && t.data("src", a.curSrc) : t.data("src", a.curSrc || i.src), t.attr("src", "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")
                })
            },
            imagesOfSlide: function(e, t) {
                var i, a, s;
                !0 !== V.slides[e].wrapped ? (this.slideIndex = e, t ? (this.onCompleteCallback = t, V.functions.setStates(V.slider, {
                    preloadingImages: !0
                }), V.gui.loadingIndicator.show()) : this.onCompleteCallback = !1, V.slider.canShow && B.css({
                    visibility: "visible"
                }), this.preImages = [], i = this, V.slider.$hiddenWrapper.find(".ls-slide:eq(" + (i.slideIndex - 1) + ") *").each(function() {
                    a = X(this), s = this;
                    var e, t = a.data(V.defaults.init.dataKey);
                    a.is("img") ? (a.data("src") && a.attr("src", a.data("src")), t && t.attributes && t.attributes.srcSet && V.o.useSrcset && (s.srcset = t.attributes.srcSet), e = s.src, (t = !!(t && t.attributes && t.attributes.curSrc) && t.attributes.curSrc) && e !== t && a.is(".ls-bg") && (e = t, V.slides[i.slideIndex].data.$background.attr("src", e)), V.preload.preImages.push([e, a])) : "none" !== a.css("background-image") && -1 !== a.css("background-image").indexOf("url") && V.preload.preImages.push([a.css("background-image").match(/url\((.*)\)/)[1].replace(/"/gi, ""), a])
                }), V.transitions.firstSlide && V.o.globalBGImage && V.preload.preImages.push([V.o.globalBGImage, X()]), this.thumbnailsAreLoaded || this.thumbnails(), 0 === this.preImages.length ? this.onComplete() : this.start()) : V.slider.shouldResize && t && (V.resize.setLayers(V.layers.get("next, bg")), V.resize.layers(t))
            },
            thumbnails: function() {
                for (var e = V.slider.thumbnails.filter(function(e, t, i) {
                        return i.indexOf(e) == t
                    }), t = e.length, i = 0; i < t; i++)(new Image).src = e[i];
                this.thumbnailsAreLoaded = !0
            },
            start: function() {
                V.debugMode && (V.debug.add("group", "preload"), V.debug.add("log", "preload.info", this.slideIndex)), this.preloadedImagesCount = 0;
                for (var e, t = this, i = function() {
                        ++t.preloadedImagesCount == t.preImages.length && (V.debugMode && V.debug.groupEnd(), t.onComplete())
                    }, a = function() {
                        V.debugMode && (e = this.src.substring(this.src.lastIndexOf("/") + 1, this.src.length), V.debug.add("log", "preload.success", e)), this.originalLayer.data("preloadedWidth", this.width), this.originalLayer.data("preloadedHeight", this.height), i()
                    }, s = function() {
                        V.debugMode && (e = this.src.substring(this.src.lastIndexOf("/") + 1, this.src.length), V.debug.add("warn", "preload.fail", e)), i()
                    }, o = 0; o < this.preImages.length; o++) {
                    var r = new Image;
                    r.addEventListener("error", s, !1), r.addEventListener("load", a, !1), r.src = this.preImages[o][0], r.originalLayer = this.preImages[o][1]
                }
            },
            onComplete: function() {
                var s = this;
                this.onCompleteCallback ? (V.layers.wrap(this.slideIndex), function e() {
                    var t, i, a;
                    0 !== V.slides[s.slideIndex].$layers.length ? V.timeouts.waitForWrap = setTimeout(e, 100) : (delete V.timeouts.waitForWrap, V.functions.setStates(V.transitions.layers.parallax, {
                        ready: !0
                    }), X(".ls-thumbnail-wrapper, .ls-nav-next, .ls-nav-prev, .ls-bottom-nav-wrapper").css({
                        visibility: "visible"
                    }), V.slides[s.slideIndex].wrapped = !0, t = !(!window._layerSlider.globals.youTubeIsReady && V.layers.get("next,in,youtube,bgvideo").length), i = !(!window._layerSlider.globals.vimeoIsReady && V.layers.get("next,in,vimeo,bgvideo").length), a = function() {
                        V.gui.loadingIndicator.hide(), V.slider.shouldResize ? (V.resize.setLayers(V.layers.get("next, bg")), V.resize.layers(s.onCompleteCallback)) : s.onCompleteCallback()
                    }, t && i ? a() : V.intervals.waitForJSApisLoaded = setInterval(function() {
                        (t || window._layerSlider.globals.youTubeIsReady) && (i || window._layerSlider.globals.vimeoIsReady) && (clearInterval(V.intervals.waitForJSApisLoaded), delete V.intervals.waitForJSApisLoaded, a())
                    }, 50))
                }()) : V.layers.wrap(this.slideIndex, !0), V.functions.setStates(V.slider, {
                    preloadingImages: !1
                })
            }
        }, V.resize = {
            setLayers: function(e) {
                this.$responsiveLayers = e.add(V.layers.get("active")), V.slides.next.data.$backgroundVideo.length && (this.$responsiveLayers = this.$responsiveLayers.add(V.slides.next.data.$backgroundVideo))
            },
            all: function() {
                if (!document.body.contains($)) return !1;
                V.api.hasEvent("sliderWillResize") && V.api.triggerEvent("sliderWillResize", V.api.eventData()), this.slider(), this.navigation(), this.layers(), this.yourLogo(), this.shadow(), this.timers(), V.transitions.layers.timeline.shouldRestart && V.o.allowRestartOnResize && (V.functions.resetSlideTimelines(), V.transitions.layers.timeline.create(!0)), V.api.hasEvent("sliderDidResize") && V.api.triggerEvent("sliderDidResize", V.api.eventData())
            },
            viewport: function() {
                X(window).scrollTop(Math.round(V.slider.offsetTop) - (V.device.viewportHeight - V.slider.height) / 2)
            },
            slider: function() {
                if (!document.body.contains($)) return !1;
                var e, t = V.slider.$parentWithNumericWidthValue && 0 < V.slider.$parentWithNumericWidthValue.width() ? V.slider.$parentWithNumericWidthValue : V.functions.getSliderClosestParentElementWidthNumericValueOfProperty("width"),
                    i = V.slider.initial,
                    a = V.slider.$parentWithNumericWidthValuePercent ? t.width() / 100 * V.slider.$parentWithNumericWidthValuePercent : t.width(),
                    s = i.type,
                    o = 0 !== i.maxWidth ? i.maxWidth : a,
                    r = "auto" === i.marginLeft ? 0 : i.marginLeft,
                    n = "auto" === i.marginRight ? 0 : i.marginRight;
                switch (V.slider.state.inFullscreen ? B[0].style.maxWidth = "" : 0 !== i.maxWidth && (B[0].style.maxWidth = i.maxWidth + "px"), -1 !== o.indexOf("%") && (o = a / 100 * parseInt(o)), o < (a -= r + n) && 0 <= o && (a = o), V.o.fitScreenWidth && ("fullwidth" === s || "fullsize" === s && "fitheight" !== V.o.fullSizeMode && "fitwidth" !== V.o.fullSizeMode) && (r = t.offset().left, n = parseInt(t.css("padding-left")) || 0, o = parseInt(t.css("border-left-width")) || 0, B[0].style.maxWidth = "none", B[0].style.marginLeft = -(r + n + o) + "px", a = V.device.viewportWidth || X(window).width()), a -= i.skinWidth, V.slider.state.inFullscreen && (a = V.device.width), s) {
                    case "responsive":
                        e = (V.slider.state.inFullscreen ? (V.device.ratio > i.ratio ? this.ratio = V.device.height / i.height : this.ratio = V.device.width / i.width, a = Math.round(i.width * this.ratio)) : this.ratio = a / i.width, Math.round(i.height * this.ratio));
                        break;
                    case "fullwidth":
                        e = a < V.o.responsiveUnder ? (this.ratio = a / V.o.responsiveUnder, Math.round(i.height * this.ratio)) : V.slider.state.inFullscreen ? V.device.ratio > i.layersWidth / i.height ? (this.ratio = V.device.height / i.height, V.device.height) : (this.ratio = V.device.width / i.layersWidth, i.height * this.ratio) : (this.ratio = 1, i.height);
                        break;
                    case "fullsize":
                        switch (V.o.fullSizeMode.toLowerCase()) {
                            case "normal":
                                e = V.device.viewportHeight - i.skinHeight;
                                break;
                            case "hero":
                                e = V.device.viewportHeight - i.skinHeight, V.slider.state.inFullscreen || (e -= V.slider.heroTop || V.slider.offsetTop) <= 0 && (e = V.device.viewportHeight - i.skinHeight);
                                break;
                            case "fitheight":
                                a = t.width() - i.skinWidth, e = t.height() - i.skinHeight;
                                break;
                            case "fitwidth":
                                a = t.width() - i.skinWidth, e = V.device.viewportHeight - i.skinHeight
                        }
                        a / e < i.ratio ? this.ratio = a / i.layersWidth : this.ratio = e / i.layersHeight;
                        break;
                    case "fixed":
                    case "fixedsize":
                        this.ratio = 1, a = i.width, e = i.height, V.o.maxRatio = 1, $.style.maxWidth = "none"
                }
                this.ratio = V.o.maxRatio && 0 < V.o.maxRatio && this.ratio > V.o.maxRatio ? V.o.maxRatio : this.ratio, $.style.width = a + "px", $.style.height = e + "px", V.slider.width = a, V.slider.height = e;
                s = B.offset();
                V.slider.offsetX = s.left, V.slider.offsetY = s.top, V.device.isMobile ? V.device.viewportWidth < 1025 && 767 < V.device.viewportWidth ? B.removeClass("ls-device-is-phone").addClass("ls-device-is-tablet") : V.device.viewportWidth < 768 && B.removeClass("ls-device-is-tablet").addClass("ls-device-is-phone") : B.removeClass("ls-device-is-phone ls-device-is-tablet").addClass("ls-device-is-desktop")
            },
            borderRadius: function(e) {
                X.isNumeric(e) && (e = e.toString());
                let i = V.o.maxRatio && 0 < V.o.maxRatio && this.ratio > V.o.maxRatio ? V.o.maxRatio : this.ratio,
                    a = "";
                return X.each(e.split(" "), function(e, t) {
                    -1 == t.indexOf("%") && -1 == t.indexOf("em") ? a += Math.round(parseInt(t) * i) + "px " : a += t + " "
                }), X.trim(a)
            },
            convertSingleValue: function(e) {
                var t = V.o.maxRatio && 0 < V.o.maxRatio && this.ratio > V.o.maxRatio ? V.o.maxRatio : this.ratio;
                return -1 == e.indexOf("em") ? Math.round(parseInt(e) * t) + "px " : e
            },
            layers: function(e) {
                if (this.$responsiveLayers) {
                    V.debugMode && V.debug.add("group", "resize");
                    for (var t = this.ratio, i = this.$responsiveLayers, a = V.slider.initial, s = V.slider.width, o = V.slider.height, r = s / o, n = [], l = [], d = [], u = [], c = 0, p = 0, h = "responsive" === a.type && -1 !== V.o.maxRatio ? a.width : a.layersWidth, m = "responsive" === a.type && -1 !== V.o.maxRatio ? a.height : a.layersHeight, p = "fullsize" === a.type || "fullwidth" === a.type || "responsive" === a.type ? (c = 0 < h ? (s - h * t) / 2 : 0, 0 < m ? (o - m * t) / 2 : 0) : (c = c < 0 ? 0 : c, p < 0 ? 0 : p), f = 0, g = i.length; f < g; f++) {
                        var y = i[f],
                            v = X(y),
                            b = v.data(V.defaults.init.dataKey),
                            w = b.original,
                            S = "fixed" == b.settings.position || "fixedx" == b.settings.position,
                            x = "fixed" == b.settings.position || "fixedy" == b.settings.position,
                            T = S ? 0 : c,
                            C = x ? 0 : p,
                            k = X(),
                            P = X(),
                            I = {
                                width: S && 0 !== w.percentWidth ? s / 100 * w.percentWidth : w.width * t,
                                height: x && 0 !== w.percentHeight ? o / 100 * w.percentHeight : w.height * t,
                                paddingLeft: this.convertSingleValue(w.paddingLeft),
                                paddingTop: this.convertSingleValue(w.paddingTop),
                                paddingRight: this.convertSingleValue(w.paddingRight),
                                paddingBottom: this.convertSingleValue(w.paddingBottom),
                                borderLeftWidth: this.convertSingleValue(w.borderLeftWidth),
                                borderTopWidth: this.convertSingleValue(w.borderTopWidth),
                                borderRightWidth: this.convertSingleValue(w.borderRightWidth),
                                borderBottomWidth: this.convertSingleValue(w.borderBottomWidth),
                                borderRadius: this.borderRadius(w.borderRadius)
                            },
                            O = {
                                marginLeft: w.marginLeft * t,
                                marginTop: w.marginTop * t
                            },
                            L = {},
                            y = {
                                borderRadius: I.borderRadius
                            };
                        if ((S || x) && (w.percentHeight || w.percentWidth) && b.is.imageLayer && (w.percentHeight && !w.percentWidth && (I.width = w.width * (I.height / w.height)), w.percentWidth && !w.percentHeight && (I.height = w.height * (I.width / w.width))), ("number" == typeof w.width && w.width < 0 || "auto" == w.width || "" == w.sWidth) && V.debugMode && V.debug.add("warn", "resize.width", [f + 1, w.width]), ("number" == typeof w.height && w.height < 0 || "auto" == w.height || "" == w.sHeight) && V.debugMode && V.debug.add("warn", "resize.height", [f + 1, w.height]), b.is.textLayer && (k = b.elements.$wrapper.add(b.elements.$loopWrapper).add(b.elements.$clipWrapper), P = b.loop.enabled || b.clip.enabled ? b.elements.$wrapper : X(), I.fontSize = w.fontSize * t, V.device.isMobile && I.fontSize < b.styleSettings.minmobilefontsize ? I.fontSize = b.styleSettings.minmobilefontsize : I.fontSize < b.styleSettings.minfontsize && (I.fontSize = b.styleSettings.minfontsize), x = I.fontSize / w.fontSize, I.fontSize += "px", "normal" !== w.lineHeight && (I.lineHeight = parseFloat(w.lineHeight) * x + "px"), "normal" !== w.letterSpacing && (I.letterSpacing = parseFloat(w.letterSpacing) * x + "px"), "" == w.sWidth && (I.width = "auto", k.addClass("ls-force-width-auto"), "nowrap" !== v.css("white-space") && (k.addClass("ls-force-left-0"), P.addClass("ls-force-full-size"))), "" == w.sHeight && (I.height = "auto", k.addClass("ls-force-height-auto")), "" != w.sWidth && "" != w.sHeight || v.css(I)), b.is.slideBackground || b.is.backgroundVideo)
                            if (b.is.slideBackground) {
                                P = V.slides[b.is.onSlide].data.backgroundSize;
                                switch ((void 0 !== P && "inherit" !== P ? P : V.o.slideBGSize).replace("100% 100%", "stretch")) {
                                    case "auto":
                                        break;
                                    case "cover":
                                        w.ratio < r ? (I.width = s, I.height = I.width / w.ratio) : (I.height = o, I.width = I.height * w.ratio);
                                        break;
                                    case "contain":
                                        w.ratio < r ? (I.height = o, I.width = I.height * w.ratio) : (I.width = s, I.height = I.width / w.ratio);
                                        break;
                                    case "stretch":
                                        I.width = s, I.height = o
                                }
                                I.width = Math.round(I.width), I.height = Math.round(I.height);
                                var $, P = V.slides[b.is.onSlide].data.backgroundPosition;
                                switch (($ = (void 0 !== P ? P : V.o.slideBGPosition).split(" "))[0]) {
                                    case "left":
                                        I.x = 0;
                                        break;
                                    case "center":
                                        I.x = (V.slider.width - I.width) / 2;
                                        break;
                                    case "right":
                                        I.x = V.slider.width - I.width;
                                        break;
                                    default:
                                        -1 !== $[0].indexOf("%") ? I.x = (V.slider.width - I.width) / 100 * parseInt($[0]) : I.x = parseInt($[0])
                                }
                                if (void 0 !== $[1]) switch ($[1]) {
                                    case "top":
                                        I.y = 0;
                                        break;
                                    case "center":
                                        I.y = (V.slider.height - I.height) / 2;
                                        break;
                                    case "bottom":
                                        I.y = V.slider.height - I.height;
                                        break;
                                    default:
                                        -1 !== $[1].indexOf("%") ? I.y = (V.slider.height - I.height) / 100 * parseInt($[1]) : I.y = parseInt($[1])
                                }
                                I.transform = "translateX(" + I.x + "px) translateY(" + I.y + "px)", I["-ms-transform"] = "translateX(" + I.x + "px) translateY(" + I.y + "px)", I["-webkit-transform"] = "translateX(" + I.x + "px) translateY(" + I.y + "px)"
                            } else b.is.backgroundVideo && (w.ratio < r ? (I.width = s, I.height = I.width / w.ratio) : (I.height = o, I.width = I.height * w.ratio), I.x = (V.slider.width - I.width) / 2, I.y = (V.slider.height - I.height) / 2, I.width = Math.round(I.width), I.height = Math.round(I.height), I.transform = "translateX(" + I.x + "px) translateY(" + I.y + "px)", I["-ms-transform"] = "translateX(" + I.x + "px) translateY(" + I.y + "px)", I["-webkit-transform"] = "translateX(" + I.x + "px) translateY(" + I.y + "px)");
                        else {
                            if (b.mediaSettings.fullsize) switch (b.mediaSettings.fillmode) {
                                default:
                                    case "cover":
                                    w.ratio < r ? (I.width = s, I.height = I.width / w.ratio) : (I.height = o, I.width = I.height * w.ratio);
                                break;
                                case "contain":
                                        w.ratio > r ? (I.width = s, I.height = I.width / w.ratio) : (I.height = o, I.width = I.height * w.ratio)
                            }
                            k.addClass("ls-force-display-block"), "auto" == I.width ? I.outerWidth = v.outerWidth() : I.outerWidth = I.width + V.layers.toNum(I.paddingLeft, I.fontSize) + V.layers.toNum(I.paddingRight, I.fontSize) + V.layers.toNum(I.borderLeftWidth, I.fontSize) + V.layers.toNum(I.borderRightWidth, I.fontSize), "auto" == I.height ? I.outerHeight = v.outerHeight() : I.outerHeight = I.height + V.layers.toNum(I.paddingTop, I.fontSize) + V.layers.toNum(I.paddingBottom, I.fontSize) + V.layers.toNum(I.borderTopWidth, I.fontSize) + V.layers.toNum(I.borderBottomWidth, I.fontSize), k.removeClass("ls-force-display-block ls-force-width-auto ls-force-height-auto ls-force-left-0 ls-force-full-size"), O.width = L.width = I.outerWidth, O.height = L.height = I.outerHeight, -1 != w.left.indexOf("%") ? "100%" === w.left ? I.left = 0 === T ? V.slider.width / 100 * parseFloat(w.left) - I.outerWidth : T + h * t / 100 * parseFloat(w.left) - I.outerWidth : "0%" === w.left ? I.left = 0 === T ? 0 : T : I.left = 0 === T ? V.slider.width / 100 * parseFloat(w.left) - I.outerWidth / 2 : T + h * t / 100 * parseFloat(w.left) - I.outerWidth / 2 : I.left = T + parseFloat(w.left) * t, O.left = I.left, -1 != w.top.indexOf("%") ? "100%" === w.top ? I.top = 0 === C ? V.slider.height / 100 * parseFloat(w.top) - I.outerHeight : C + m * t / 100 * parseFloat(w.top) - I.outerHeight : "0%" === w.top ? I.top = 0 === C ? 0 : C + 0 : I.top = 0 === C ? V.slider.height / 100 * parseFloat(w.top) - I.outerHeight / 2 : C + m * t / 100 * parseFloat(w.top) - I.outerHeight / 2 : I.top = C + parseFloat(w.top) * t, O.top = I.top
                        }
                        b.responsive = I, n[f] = I, b.is.slideBackground || b.is.backgroundVideo || (b.settings.wrapperData.responsive = O, l[f] = O, d[f] = L, u[f] = y)
                    }
                    for (var B = 0, W = n.length; B < W; B++) {
                        var M = X(i[B]),
                            _ = M.data(V.defaults.init.dataKey);
                        M.css(n[B]), _.is.slideBackground || _.is.backgroundVideo ? (_.is.slideBackground || _.is.backgroundVideo) && (_.elements.$bgOuterWrapper.css({
                            width: V.slider.width,
                            height: V.slider.height
                        }), _.elements.$outerWrapper.css({
                            width: V.slider.width,
                            height: V.slider.height
                        })) : (M.find(".split-item").css(u[B]), this.wrappers(M, _, l[B], d[B]))
                    }
                    void 0 !== e && e(), V.debugMode && V.debug.groupEnd("resize")
                }
            },
            wrappers: function(e, t, i, a) {
                i && t.elements.$wrapper.css(i), a && t.loop.enabled && t.elements.$loopWrapper.css(a), H.TweenMax.set(t.elements.$wrapper[0], {
                    autoCSS: !1,
                    css: {
                        transformPerspective: t.transformPerspective.layer * V.resize.ratio
                    }
                }), t.loop.enabled && H.TweenMax.set(t.elements.$loopWrapper[0], {
                    autoCSS: !1,
                    css: {
                        transformPerspective: t.transformPerspective.loop * V.resize.ratio
                    }
                }), t.hover.enabled && H.TweenMax.set(e[0], {
                    autoCSS: !1,
                    css: {
                        transformPerspective: t.transformPerspective.hover * V.resize.ratio
                    }
                }), t.textIn.nodes && H.TweenMax.set(t.textIn.nodes, {
                    autoCSS: !1,
                    css: {
                        transformPerspective: t.transformPerspective.text * V.resize.ratio
                    }
                }), t.textOut.nodes && H.TweenMax.set(t.textOut.nodes, {
                    autoCSS: !1,
                    css: {
                        transformPerspective: t.transformPerspective.text * V.resize.ratio
                    }
                }), t.parallax.enabled && H.TweenMax.set(t.elements.$parallaxWrapper[0], {
                    autoCSS: !1,
                    css: {
                        transformPerspective: t.transformPerspective.parallax * V.resize.ratio
                    }
                }), t.scroll.enabled && H.TweenMax.set(t.elements.$scrollTransformWrapper[0], {
                    autoCSS: !1,
                    css: {
                        transformPerspective: t.transformPerspective.scroll * V.resize.ratio
                    }
                })
            },
            transformProperties: function(e, t, i, a) {
                if ("object" == typeof i.x) {
                    for (var s = [], o = 0; o < i.x.length; o++) "string" == typeof i.x[o] ? s[o] = this.getXY(e, i.x[o], "Width") : s[o] = i.x[o] * V.resize.ratio;
                    t.cycle.x = s
                } else "string" == typeof i.x ? t.x = this.getXY(e, i.x, "Width") : void 0 !== i.x && (t.x = i.x * V.resize.ratio);
                if ("object" == typeof i.y) {
                    for (var r = [], n = 0; n < i.y.length; n++) "string" == typeof i.y[n] ? r[n] = this.getXY(e, i.y[n], "Height") : r[n] = i.y[n] * V.resize.ratio;
                    t.cycle.y = r
                } else "string" == typeof i.y ? t.y = this.getXY(e, i.y, "Height") : void 0 !== i.y && (t.y = i.y * V.resize.ratio);
                if (a && (t = a), "object" == typeof i.transformOrigin) {
                    for (var l = [], d = 0; d < i.transformOrigin.length; d++) l[d] = V.functions.convert.transformOrigin(i.transformOrigin[d], e, e.data(V.defaults.init.dataKey).elements.$wrapper, !1);
                    t.cycle.transformOrigin = l
                } else "string" == typeof i.transformOrigin && (t.transformOrigin = V.functions.convert.transformOrigin(i.transformOrigin, e, e.data(V.defaults.init.dataKey).elements.$wrapper, !1))
            },
            styleProperties: function(e, t) {
                void 0 !== t.width && (X.isNumeric(t.width) ? e.width = parseInt(t.width) * V.resize.ratio : "string" == typeof t.width && -1 !== t.width.indexOf("%") && (e.width = V.slider.width / 100 * parseInt(t.width))), void 0 !== t.height && (X.isNumeric(t.height) ? e.height = parseInt(t.height) * V.resize.ratio : "string" == typeof t.height && -1 !== t.height.indexOf("%") && (e.height = V.slider.height / 100 * parseInt(t.height))), t.borderRadius && (e.borderRadius = V.resize.borderRadius(t.borderRadius))
            },
            clip: function(e, t, i) {
                t = X.trim(t.replace("rect(", "").replace(")", ""));
                for (var a, e = e.data(V.defaults.init.dataKey).responsive, s = Math.ceil(e.outerWidth), o = Math.ceil(e.outerHeight), r = -1 === t.indexOf(",") ? t.split(" ") : t.split(","), n = "", l = 0; l < r.length; l++)
                    if (-1 !== r[l].indexOf("%")) switch (l) {
                        case 0:
                            n += parseInt(o / 100 * parseInt(r[l]) * 100) / 100 + "px ";
                            break;
                        case 1:
                            n += i ? parseInt(100 * (s - s / 100 * parseInt(r[l]))) / 100 + "px " : parseInt(s / 100 * parseInt(r[l]) * 100) / 100 + "px ";
                            break;
                        case 2:
                            n += i ? parseInt(100 * (o - o / 100 * parseInt(r[l]))) / 100 + "px " : parseInt(o / 100 * parseInt(r[l]) * 100) / 100 + "px ";
                            break;
                        case 3:
                            n += parseInt(s / 100 * parseInt(r[l]) * 100) / 100 + "px"
                    } else switch (a = parseInt(r[l]) * V.resize.ratio, l) {
                        case 0:
                            n += a + "px ";
                            break;
                        case 1:
                            n += i ? s - a + "px " : a + "px ";
                            break;
                        case 2:
                            n += i ? o - a + "px " : a + "px ";
                            break;
                        case 3:
                            n += a + "px"
                    }
                    return "rect(" + n + ")"
            },
            getXY: function(e, t, i) {
                var a = 0,
                    e = e.data(V.defaults.init.dataKey),
                    s = e.original,
                    o = e.responsive,
                    r = e.settings.wrapperData.responsive;
                if (s && o && r) switch (t) {
                    case "left":
                        a = -1 == s.left.indexOf("%") || "100%" === s.left ? -o.left - o.outerWidth - r.marginLeft : -parseInt(s.left) / 100 * V.slider.width - o.outerWidth / 2 - r.marginLeft;
                        break;
                    case "right":
                        a = -1 == s.left.indexOf("%") || "100%" === s.left ? V.slider.width - o.left - r.marginLeft : (1 - parseInt(s.left) / 100) * V.slider.width + o.outerWidth / 2 - r.marginLeft;
                        break;
                    case "top":
                        a = -1 == s.top.indexOf("%") || "100%" === s.top ? -o.top - o.outerHeight - r.marginTop : -parseInt(s.top) / 100 * V.slider.height - o.outerHeight / 2 - r.marginTop;
                        break;
                    case "bottom":
                        a = -1 == s.top.indexOf("%") || "100%" === s.top ? V.slider.height - o.top - r.marginTop : (1 - parseInt(s.top) / 100) * V.slider.height + o.outerHeight / 2 - r.marginTop;
                        break;
                    case "width":
                        a = o.outerWidth;
                        break;
                    case "-width":
                        a = -o.outerWidth;
                        break;
                    case "height":
                        a = o.outerHeight;
                        break;
                    case "-height":
                        a = -o.outerHeight;
                        break;
                    default:
                        a = -1 !== t.indexOf("%") ? o["outer" + i] / 100 * parseInt(t) : -1 !== t.indexOf("sw") ? parseInt(t.split("sw")[0]) / 100 * V.slider.width : -1 !== t.indexOf("sh") ? parseInt(t.split("sh")[0]) / 100 * V.slider.height : -1 !== t.indexOf("lw") ? o.outerWidth / 100 * parseInt(t.split("lw")[0]) : -1 !== t.indexOf("lh") ? o.outerHeight / 100 * parseInt(t.split("lh")[0]) : parseInt(t) * V.resize.ratio
                }
                return a
            },
            navigation: function() {
                "always" == V.o.thumbnailNavigation && V.gui.navigation.bottom.thumbnails.resize()
            },
            shadow: function() {
                V.gui.shadow.show && V.gui.shadow.show(), V.gui.shadow.$element && V.gui.shadow.resize()
            },
            yourLogo: function() {
                V.yourLogo.$element && V.yourLogo.resize()
            },
            timers: function() {
                if (0 < V.gui.timers.slidebar.$containerElement.length)
                    for (var e = 0, t = V.gui.timers.slidebar.$containerElement.length; e < t; e++) V.gui.timers.slidebar.containerElementWidth[e] = V.gui.timers.slidebar.$containerElement[e].width(), V.gui.timers.slidebar.elementWidth[e] = V.gui.timers.slidebar.$element[e].width()
            }
        }, V.transitions = {
            firstSlide: !0,
            start: function() {
                return !!document.body.contains($) && (V.slider.isPopup && V.slider.state.popupIsWaitingForDelay ? !(V.slider.state.waitingForPopupTimer = !0) : (V.device.scroll.directionAtSlideTransitionStart = V.device.scroll.direction, "always" == V.o.thumbnailNavigation && (V.gui.navigation.bottom.thumbnails.change(), "ontouchstart" in window || V.gui.navigation.bottom.thumbnails.scroll()), this.layers.out.forced(), void this.slide.init()))
            },
            slide: {
                $wrapper: X(),
                init: function() {
                    var e, t, i;
                    V.functions.setStates(V.slider, {
                        animatingSlides: !0
                    }), V.transitions.layers.parallax.reset(), V.slider.$layersWrapper.children('.ls-parallax[data-ls-parallax="active"]').each(function() {
                        X(this).find(".ls-layer").data(V.defaults.init.dataKey).settings.slideOut === V.slides.current.index && X(this).attr("data-ls-parallax", "disbaled")
                    }), V.transitions.curSlide = V.slides.current, V.transitions.nextSlide = V.slides.next, V.transitions._slideTransition = new H.TimelineMax({
                        paused: !0,
                        onComplete: function() {
                            V.transitions.slide.onComplete()
                        }
                    }), V.transitions.firstSlide ? (void 0 !== V.transitions.nextSlide.data.$background && (e = (i = V.transitions.nextSlide.data.$background.data(V.defaults.init.dataKey)).kenBurns.zoom ? i.kenBurns.from.scale : 1, t = i.kenBurns.zoom ? i.kenBurns.from.rotation : 0, i = V.transitions.nextSlide.filter.from || "none", V.transitions._slideTransition.set(V.transitions.nextSlide.data.$background[0], {
                        "-webkit-filter": i,
                        filter: i
                    }, 0), V.transitions._slideTransition.fromTo(V.transitions.nextSlide.data.$background.closest(".ls-bg-wrap")[0], V.o.sliderFadeInDuration, {
                        autoCSS: !1,
                        css: {
                            scale: e,
                            rotation: t,
                            opacity: 0,
                            display: "block"
                        }
                    }, {
                        autoCSS: !1,
                        css: {
                            opacity: 1
                        }
                    }, 0)), this.start(!0)) : "undefined" == typeof layerSliderTransitions && "undefined" == typeof layerSliderCustomTransitions ? (this.start(!0), V.debugMode && V.debug.add("warn", "slideTransition.noSlideTransition", V.transitions.nextSlide.index)) : void 0 === V.transitions.curSlide.data.$background && void 0 === V.transitions.nextSlide.data.$background && "transparent" == V.transitions.curSlide.data.backgroundColor && "transparent" == V.transitions.nextSlide.data.backgroundColor ? this.start(!0) : ("x" === V.o.clipSlideTransition ? V.device.$overflowWrapper.addClass("ls-overflowx-hidden") : "y" === V.o.clipSlideTransition ? V.device.$overflowWrapper.addClass("ls-overflowy-hidden") : !0 === V.o.clipSlideTransition && V.device.$overflowWrapper.addClass("ls-overflow-hidden"), void 0 !== V.transitions.curSlide.data.$background && (e = V.transitions.curSlide.data.$background.closest(".ls-bg-wrap")[0]._gsTransform, (t = V.transitions.curSlide.data.$background.data(V.defaults.init.dataKey)).responsive.filter = V.transitions.curSlide.data.$background[0].style.filter, t.responsive.kbRotation = void 0 !== e ? " rotate(" + e.rotation + "deg)" : " rotate(0deg)", t.responsive.kbScale = void 0 !== e ? " scale(" + e.scaleX + ")" : " scale(1)"), V.transitions.slide.$wrapper = X("<div>").addClass("ls-slide-transition-wrapper").css({
                        width: V.slider.width,
                        height: V.slider.height
                    }), this.select.slideTransitionType())
                },
                select: {
                    slideTransitionType: function() {
                        V.transitions.slide.normal.select.transitionType()
                    }
                },
                start: function(e) {
                    var t, i = !(!V.slides.current.index || !V.slides.current.data.$backgroundVideo.length),
                        a = !(!V.slides.next.index || !V.slides.next.data.$backgroundVideo.length);
                    !V.slideshow.firstStart && V.api.hasEvent("slideChangeDidStart") && V.api.triggerEvent("slideChangeDidStart", V.api.eventData()), e || (void 0 !== V.transitions.nextSlide.data.transitionDuration ? s = V.transitions.nextSlide.data.transitionDuration : void 0 !== V.o.slideTransitionDuration && X.isNumeric(V.o.slideTransitionDuration) && -1 < V.o.slideTransitionDuration && (s = V.o.slideTransitionDuration / 1e3), X.isNumeric(s) && (0 === s && (s += 1e-5), V.transitions._slideTransition.duration(s)), V.debugMode && V.debug.options.transitionDuration && V.transitions._slideTransition.duration(V.debug.options.transitionDuration), .25 < V.transitions.layers.timeline.timeScaleModifier && (o = (o = V.transitions._slideTransition.duration() / (.75 + V.transitions.layers.timeline.timeScaleModifier)) < .5 ? .5 : o, V.transitions._slideTransition.duration(o)));
                    var e = V.transitions._slideTransition.duration() / V.transitions._slideTransition.timeScale(),
                        s = e,
                        o = V.transitions.nextSlide.data.timeShift || (void 0 !== V.o.slideTimeShift && X.isNumeric(V.o.slideTimeShift) && V.o.slideTimeShift < 0 ? V.o.slideTimeShift / 1e3 : 0);
                    0 < o ? o = 0 : Math.abs(o) > e && (o = -e), V.transitions.nextSlide.data.calculatedTimeShift = o, o = V.transitions.firstSlide ? V.o.sliderFadeInDuration + .01 : (s + o) * V.transitions._slideTransition.timeScale(), (i || a) && V.transitions.media.changeBackgroundVideo(V.transitions.firstSlide, i && a), V.transitions._slideTransition.call(function() {
                        !V.slideshow.firstStart && V.api.hasEvent("slideChangeWillComplete") && V.api.triggerEvent("slideChangeWillComplete", V.api.eventData()), V.slideshow.should.change || V.transitions.layers.timeline.prepare(), V.media.functions.stop(!0), V.slides.set.slideIndexes(), V.o.hashChange && (document.location.hash = V.slides[V.slides.current.index].data.deeplink || "_no-deeplink-found_"), V.slideshow.start(), !V.transitions.firstSlide && V.slides.prev.index && V.slides.prev.data.$backgroundVideo.length && !V.slides.prev.data.$backgroundVideo.data(V.defaults.init.dataKey).mediaProperties.willBePaused && (V.slides.prev.data.$backgroundVideo.trigger("stopBackgroundVideo"), V.slides.prev.data.$backgroundVideo.data(V.defaults.init.dataKey).elements.$bgWrapper.css({
                            display: "none"
                        })), V.slideshow.should.change || V.slides.next.data.$backgroundVideo.length && V.slides.next.data.$backgroundVideo.data(V.defaults.init.dataKey).mediaProperties && !V.slides.next.data.$backgroundVideo.data(V.defaults.init.dataKey).mediaProperties.isPreloaded && (V.slides.next.data.$backgroundVideo.trigger("preloadBackgroundVideo"), V.slides.next.data.$backgroundVideo.data(V.defaults.init.dataKey).mediaProperties.isPreloaded = !0), V.transitions.firstSlide = !1
                    }, [], this, o), V.transitions._slideTransition.play(), V.slideshow.forceFastChange && V.transitions._slideTransition.progress(1), void 0 !== V.transitions.curSlide.data && void 0 !== V.transitions.curSlide.data.$background && (t = V.transitions.curSlide.data.$background.data(V.defaults.init.dataKey), V.timeouts.applyBG = setTimeout(function() {
                        delete V.timeouts.applyBG, V.transitions.curSlide.data.$background.closest(".ls-bg-wrap").hide(), t.kenBurns.zoom && H.TweenMax.set(V.transitions.curSlide.data.$background[0], {
                            autoCSS: !1,
                            css: t.kenBurns.from
                        })
                    }, 5))
                },
                onComplete: function() {
                    var e;
                    void 0 !== V.transitions.nextSlide.data.$background && V.transitions.nextSlide.data.$background.closest(".ls-bg-wrap").show(), "transparent" !== V.transitions.nextSlide.data.backgroundColor ? V.slider.$slideBGColorWrapper.css("background-color", V.transitions.nextSlide.data.backgroundColor) : V.slider.$slideBGColorWrapper.css("background-color", "transparent"), V.o.leaveOverflow || V.device.$overflowWrapper.removeClass("ls-overflowx-hidden ls-overflowy-hidden ls-overflow-hidden"), this.$wrapper && (this.$wrapper.html("").remove(), this.$wrapper = !1), V.gui.navigation.bottom.bullets.set.active(), 0 < V.o.cycles && (V.slideshow.hasOwnProperty("cycleSlideIndex") ? V.slideshow.cycles.check(V.transitions.nextSlide.index) && (V.navigation.stop(), V.functions.setStates(V.slideshow, {
                        pausedByLastCycle: !0
                    }), V.o.forceCycles && (V.slideshow.curCycle = 1)) : V.slideshow.cycles.set()), V.functions.setStates(V.slider, {
                        animatingSlides: !1,
                        changingSlides: !1
                    }), !V.slideshow.firstStart && V.api.hasEvent("slideChangeDidComplete") && V.api.triggerEvent("slideChangeDidComplete", V.api.eventData()), V.slideshow.firstStart = !1, V.slideshow.forceFastChange = !1, V.slideshow.forceFastChangeCallback && (V.slideshow.forceFastChangeCallback(), V.slideshow.forceFastChangeCallback = !1), V.slideshow.should.change && (V.navigation.forceDirection ? (void 0 !== V.transitions.curSlide.data && void 0 !== V.transitions.curSlide.data.$background && (e = V.transitions.curSlide.data.$background.data(V.defaults.init.dataKey), V.transitions.curSlide.data.$background.closest(".ls-bg-wrap").hide(), e.kenBurns.zoom && H.TweenMax.set(V.transitions.curSlide.data.$background[0], {
                        autoCSS: !1,
                        css: e.kenBurns.from
                    })), V.slideshow.changeTo(V.slideshow.get.slideInSequence(V.navigation.forceDirection), !0)) : V.slideshow.forceSlideChangeTo ? V.slideshow.changeTo(V.slideshow.forceSlideChangeTo) : V.preload.imagesOfSlide(V.slides.next.index))
                },
                normal: {
                    select: {
                        transitionType: function() {
                            var e, t, i;
                            V.o.slideTransition ? V.transitions.slide.normal.setTransition(V.o.slideTransition.type, V.o.slideTransition.obj) : (i = !!V.transitions.nextSlide.data.transition2d && V.transitions.nextSlide.data.transition2d.toString().split(","), V.device.touchPrev && V.o.slideOnSwipe ? (V.device.touchPrev = !1, this.transition("2d", "1")) : V.device.touchNext && V.o.slideOnSwipe ? (V.device.touchNext = !1, this.transition("2d", "1")) : V.slides.next.data.$background || i && (!i || -1 != i.indexOf("1") || -1 != i.indexOf("2") || -1 != i.indexOf("3") || -1 != i.indexOf("4")) ? V.browser.supports3D() && (V.transitions.nextSlide.data.transition3d || V.transitions.nextSlide.data.customtransition3d) ? V.transitions.nextSlide.data.transition3d && V.transitions.nextSlide.data.customtransition3d ? (e = Math.floor(2 * Math.random()), t = [
                                ["3d", V.transitions.nextSlide.data.transition3d],
                                ["custom3d", V.transitions.nextSlide.data.customtransition3d]
                            ], this.transition(t[e][0], t[e][1])) : V.transitions.nextSlide.data.transition3d ? this.transition("3d", V.transitions.nextSlide.data.transition3d) : this.transition("custom3d", V.transitions.nextSlide.data.customtransition3d) : V.transitions.nextSlide.data.transition2d && V.transitions.nextSlide.data.customtransition2d ? (e = Math.floor(2 * Math.random()), t = [
                                ["2d", V.transitions.nextSlide.data.transition2d],
                                ["custom2d", V.transitions.nextSlide.data.customtransition2d]
                            ], this.transition(t[e][0], t[e][1])) : V.transitions.nextSlide.data.transition2d ? this.transition("2d", V.transitions.nextSlide.data.transition2d) : V.transitions.nextSlide.data.customtransition2d ? this.transition("custom2d", V.transitions.nextSlide.data.customtransition2d) : this.transition("2d", "1") : this.transition("2d", "5"))
                        },
                        transition: function(e, t) {
                            V.debugMode && V.debug.add("group", "slideTransition.info"), t += "";
                            var i, a, s = -1 == e.indexOf("custom") ? V.t : V.ct,
                                o = "3d"; - 1 != e.indexOf("2d") && (o = "2d"), a = -1 != t.indexOf("last") ? s["t" + o].length - 1 : -1 != t.indexOf("all") ? Math.floor(Math.random() * V.functions.countProp(s["t" + o])) : (t = (i = t.split(",")).length, parseInt(i[Math.floor(Math.random() * t)]) - 1), void 0 === s["t" + o][a] && (V.debugMode && V.debug.add("warn", "slideTransition.customTransition", [o.toUpperCase() + (-1 === e.indexOf("custom") ? "" : " (CUSTOM)"), a + 1]), s = V.t, e = o = "2d", a = 0), V.debugMode && V.debug.add("log", "slideTransition.info", [o.toUpperCase() + (-1 === e.indexOf("custom") ? "" : " (CUSTOM)"), a + 1, s["t" + o][a].name]), V.transitions.slide.normal.setTransition(o, s["t" + o][a])
                        }
                    },
                    setTransition: function(e, t) {
                        var i, a, s, o, r = X.extend(!0, {
                                cols: 1,
                                rows: 1
                            }, t),
                            n = typeof r.cols,
                            l = typeof r.rows,
                            d = [],
                            u = V.navigation.direction,
                            c = 0,
                            p = 0,
                            h = !!V.transitions.curSlide.data.$background && V.functions.getURL(V.transitions.curSlide.data.$background),
                            m = !!V.transitions.nextSlide.data.$background && V.functions.getURL(V.transitions.nextSlide.data.$background),
                            f = V.o.playByScroll && "up" === V.device.scroll.direction ? "to" : "from";
                        switch (n) {
                            case "number":
                                n = r.cols;
                                break;
                            case "string":
                                n = Math.floor(Math.random() * (parseInt(r.cols.split(",")[1]) - parseInt(r.cols.split(",")[0]) + 1)) + parseInt(r.cols.split(",")[0]);
                                break;
                            default:
                                n = Math.floor(Math.random() * (r.cols[1] - r.cols[0] + 1)) + r.cols[0]
                        }
                        switch (l) {
                            case "number":
                                l = r.rows;
                                break;
                            case "string":
                                l = Math.floor(Math.random() * (parseInt(r.rows.split(",")[1]) - parseInt(r.rows.split(",")[0]) + 1)) + parseInt(r.rows.split(",")[0]);
                                break;
                            default:
                                l = Math.floor(Math.random() * (r.rows[1] - r.rows[0] + 1)) + r.rows[0]
                        }
                        V.device.isMobile && V.o.optimizeForMobile ? (15 <= n ? n = 7 : 5 <= n ? n = 4 : 4 <= n ? n = 3 : 2 < n && (n = 2), 15 <= l ? l = 7 : 5 <= l ? l = 4 : 4 <= l ? l = 3 : 2 < l && (l = 2), 2 < l && 2 < n && (l = 2, 4 < n && (n = 4))) : (n = 35 < n ? 35 : n, l = 35 < l ? 35 : l), V.debugMode && !V.o.slideTransition && (V.debug.add("log", "slideTransition.properties", [
                            [n, l], n * l
                        ]), V.debug.groupEnd()), i = Math.floor(V.slider.width / n), a = Math.floor(V.slider.height / l), s = V.slider.width - i * n, o = V.slider.height - a * l, "prev" == u && (r.tile && r.tile.sequence && (r.tile.sequence = {
                            random: "random",
                            forward: "reverse",
                            reverse: "forward",
                            "col-forward": "col-reverse",
                            "col-reverse": "col-forward"
                        }[r.tile.sequence]), X.each(["animation", "before", "after"], function(e, t) {
                            r[t] && r[t].transition && ((t = r[t].transition).rotateX && 44 < Math.abs(t.rotateX) && (t.rotateX *= -1), t.rotateY && 44 < Math.abs(t.rotateY) && (t.rotateY *= -1), t.rotate && (t.rotate *= -1))
                        }));
                        for (var g, y, v = 0; v < n * l; v++) d.push(v);
                        switch (r.tile.sequence) {
                            case "reverse":
                                d.reverse();
                                break;
                            case "col-forward":
                                d = V.functions.sortArray(l, n, "forward");
                                break;
                            case "col-reverse":
                                d = V.functions.sortArray(l, n, "reverse");
                                break;
                            case "random":
                                d = V.functions.shuffleArray(d)
                        }("transparent" === V.transitions.nextSlide.data.backgroundColor || "3d" == e || void 0 !== V.transitions.curSlide.data.$background && void 0 !== V.transitions.nextSlide.data.$background) && V.slider.$slideBGColorWrapper.css("background-color", "transparent"), "2d" == e && (g = -1 != r.name.toLowerCase().indexOf("carousel"), y = -1 != r.name.toLowerCase().indexOf("crossfad"), this.$curTiles = X("<div>").addClass("ls-curtiles").appendTo(V.transitions.slide.$wrapper), this.$nextTiles = X("<div>").addClass("ls-nexttiles").appendTo(V.transitions.slide.$wrapper));
                        for (var b = 0; b < n * l; b++) {
                            var w, S = (b + 1) % n == 0 ? s : 0,
                                x = (l - 1) * n - 1 < b ? o : 0,
                                T = X("<div>").addClass("ls-slide-transition-tile").css({
                                    width: i + S,
                                    height: a + x
                                }).data("style", {
                                    width: i + S,
                                    height: a + x
                                }).appendTo(V.transitions.slide.$wrapper),
                                c = (d[b], b % n == 0 ? c + 1 : c),
                                p = b % n == 0 ? 1 : p + 1;
                            if ("3d" == e) {
                                T.addClass("ls-3d-container");
                                var C, k, P = i + S,
                                    I = a + x,
                                    O = new H.TimelineMax,
                                    L = Math.abs(Math.abs(p - n / 2 - .5) - n / 2 - .5) * Math.abs(Math.abs(c - l / 2 - .5) - l / 2 - .5);
                                T.css({
                                    zIndex: L
                                }), C = P / 2, k = I / 2, x = (L = "horizontal" == r.animation.direction ? 90 < Math.abs(r.animation.transition.rotateY) && "large" != r.tile.depth ? Math.floor(P / 7) + S : P : 90 < Math.abs(r.animation.transition.rotateX) && "large" != r.tile.depth ? Math.floor(I / 7) + x : I) / 2, this.createCuboids("ls-3d-box", T, 0, 0, 0, 0, -x, 0, 0, C + "px " + k + "px 0px"), this.createCuboids("ls-3d-front", T.find(".ls-3d-box"), P, I, 0, 0, x, 0, 0), "vertical" == r.animation.direction && 90 < Math.abs(r.animation.transition.rotateX) ? this.createCuboids("ls-3d-back", T.find(".ls-3d-box"), P, I, 0, 0, -x, 180, 0) : this.createCuboids("ls-3d-back", T.find(".ls-3d-box"), P, I, 0, 0, -x, 0, 180), this.createCuboids("ls-3d-left", T.find(".ls-3d-box"), L, I, -x, 0, 0, 0, -90), this.createCuboids("ls-3d-right", T.find(".ls-3d-box"), L, I, P - x, 0, 0, 0, 90), this.createCuboids("ls-3d-top", T.find(".ls-3d-box"), P, L, 0, -x, 0, 90, 0), this.createCuboids("ls-3d-bottom", T.find(".ls-3d-box"), P, L, 0, I - x, 0, -90, 0), P = T.find(".ls-3d-front"), L = "horizontal" == r.animation.direction ? 90 < Math.abs(r.animation.transition.rotateY) ? T.find(".ls-3d-back") : 0 < r.animation.transition.rotateY ? T.find(".ls-3d-left") : T.find(".ls-3d-right") : 90 < Math.abs(r.animation.transition.rotateX) ? T.find(".ls-3d-back") : 0 < r.animation.transition.rotateX ? T.find(".ls-3d-bottom") : T.find(".ls-3d-top"), I = d[b] * r.tile.delay, x = V.transitions.slide.$wrapper.find(".ls-3d-container:eq( " + b + " ) .ls-3d-box"), r.before && r.before.transition ? (r.before.transition.delay = r.before.transition.delay ? (r.before.transition.delay + I) / 1e3 : I / 1e3, O.to(x[0], r.before.duration / 1e3, V.functions.convert.transition(r.before.transition, r.before.easing))) : r.animation.transition.delay = r.animation.transition.delay ? (r.animation.transition.delay + I) / 1e3 : I / 1e3, O.to(x[0], r.animation.duration / 1e3, V.functions.convert.transition(r.animation.transition, r.animation.easing)), r.after && (r.after.transition || (r.after.transition = {}), O.to(x[0], r.after.duration / 1e3, V.functions.convert.transition(r.after.transition, r.after.easing, "after"))), V.transitions._slideTransition.add(O, 0)
                            } else {
                                var $, B, W, M, _, z = "auto",
                                    D = "auto",
                                    F = "auto",
                                    A = "auto",
                                    E = 1,
                                    R = 1,
                                    N = {},
                                    O = "random" == r.transition.direction ? (W = ["top", "bottom", "right", "left"])[Math.floor(Math.random() * W.length)] : r.transition.direction;
                                switch (-1 != r.name.toLowerCase().indexOf("mirror") && b % 2 == 0 && (u = "prev" == u ? "next" : "prev"), "prev" == u && (O = {
                                    top: "bottom",
                                    bottom: "top",
                                    left: "right",
                                    right: "left",
                                    topleft: "bottomright",
                                    topright: "bottomleft",
                                    bottomleft: "topright",
                                    bottomright: "topleft"
                                }[O]), O) {
                                    case "top":
                                        z = F = -T.data("style").height, D = A = 0;
                                        break;
                                    case "bottom":
                                        z = F = T.data("style").height, D = A = 0;
                                        break;
                                    case "left":
                                        z = F = 0, D = A = -T.data("style").width;
                                        break;
                                    case "right":
                                        z = F = 0, D = A = T.data("style").width;
                                        break;
                                    case "topleft":
                                        z = T.data("style").height, F = 0, D = T.data("style").width, A = 0;
                                        break;
                                    case "topright":
                                        z = T.data("style").height, F = 0, D = -T.data("style").width, A = 0;
                                        break;
                                    case "bottomleft":
                                        z = -T.data("style").height, F = 0, D = T.data("style").width, A = 0;
                                        break;
                                    case "bottomright":
                                        z = -T.data("style").height, F = 0, D = -T.data("style").width, A = 0
                                }
                                switch (this.scale2D = r.transition.scale || 1, 1 == g && 1 != this.scale2D && (z /= 2, F /= 2, D /= 2, A /= 2), r.transition.type) {
                                    case "fade":
                                        E = z = F = D = A = 0, R = 1;
                                        break;
                                    case "mixed":
                                        E = 0, (R = 1) == this.scale2D && (F = A = 0)
                                }(r.transition.rotate || r.transition.rotateX || r.transition.rotateY || 1 != this.scale2D) && "slide" != r.transition.type ? T.css({
                                    overflow: "visible"
                                }) : T.css({
                                    overflow: "hidden"
                                }), 1 == g ? this.$curTiles.css({
                                    overflow: "visible"
                                }) : this.$curTiles.css({
                                    overflow: "hidden"
                                }), !0 === y || "slide" == r.transition.type || !0 === g ? (M = T.appendTo(this.$curTiles), $ = T.clone().appendTo(this.$nextTiles), P = X("<div>").addClass("ls-curtile").appendTo(M)) : $ = T.appendTo(this.$nextTiles), L = X("<div>").addClass("ls-nexttile").appendTo($), B = d[b] * r.tile.delay / 1e3, W = r.transition.rotate || 0, O = r.transition.rotateX || 0, M = r.transition.rotateY || 0, "prev" == u && (W = -W, O = -O, M = -M), V.transitions._slideTransition.fromTo(L[0], r.transition.duration / 1e3, {
                                    immediateRender: !1,
                                    autoCSS: !1,
                                    css: {
                                        x: -D,
                                        y: -z,
                                        display: "block",
                                        opacity: E,
                                        rotation: W,
                                        rotationX: O,
                                        rotationY: M,
                                        scale: this.scale2D
                                    }
                                }, {
                                    autoCSS: !1,
                                    css: {
                                        x: 0,
                                        y: 0,
                                        opacity: R,
                                        rotation: 0,
                                        rotationX: 0,
                                        rotationY: 0,
                                        scale: 1
                                    },
                                    ease: V.functions.convert.easing(r.transition.easing)
                                }, B), 1 == y && (void 0 === V.transitions.nextSlide.data.$background || void 0 !== V.transitions.nextSlide.data.$background && (-1 != V.transitions.nextSlide.data.$background.attr("src").toLowerCase().indexOf("png") || V.transitions.nextSlide.data.$background.width() < V.slider.width || V.transitions.nextSlide.data.$background.height() < V.slider.height)) && (N.opacity = 0), "slide" != r.transition.type && 1 != g || -1 != r.name.toLowerCase().indexOf("mirror") || (_ = 0 !== W ? -W : 0, N.x = A, N.y = F, N.rotation = _, N.scale = this.scale2D, N.opacity = E), void 0 !== P && V.transitions._slideTransition.to(P[0], r.transition.duration / 1e3, {
                                    autoCSS: !1,
                                    css: N,
                                    ease: V.functions.convert.easing(r.transition.easing)
                                }, B)
                            }
                            _ = b % n * i, N = Math.floor(b / n) * a, void 0 !== V.transitions.curSlide.data.$background && (w = V.transitions.curSlide.data.$background.data(V.defaults.init.dataKey), "3d" === e || "2d" === e && (!0 === y || "slide" === r.transition.type || !0 === g) ? P.append(X("<img>").attr("src", h).css({
                                width: w.responsive.width,
                                height: w.responsive.height,
                                "-webkit-filter": w.responsive.filter,
                                filter: w.responsive.filter,
                                "-ms-transform": "translateX(" + (w.responsive.x - _) + "px) translateY(" + (w.responsive.y - N) + "px)" + w.responsive.kbRotation + w.responsive.kbScale,
                                "-webkit-transform": "translateX(" + (w.responsive.x - _) + "px) translateY(" + (w.responsive.y - N) + "px)" + w.responsive.kbRotation + w.responsive.kbScale,
                                transform: "translateX(" + (w.responsive.x - _) + "px) translateY(" + (w.responsive.y - N) + "px)" + w.responsive.kbRotation + w.responsive.kbScale
                            })) : 0 === this.$curTiles.children().length && this.$curTiles.css("background-color", V.transitions.curSlide.data.backgroundColor).append(X("<img>").attr("src", h).css({
                                width: w.responsive.width,
                                height: w.responsive.height,
                                "-webkit-filter": w.responsive.filter,
                                filter: w.responsive.filter,
                                "-ms-transform": "translateX(" + w.responsive.x + "px) translateY(" + w.responsive.y + "px)" + w.responsive.kbRotation + w.responsive.kbScale,
                                "-webkit-transform": "translateX(" + w.responsive.x + "px) translateY(" + w.responsive.y + "px)" + w.responsive.kbRotation + w.responsive.kbScale,
                                transform: "translateX(" + w.responsive.x + "px) translateY(" + w.responsive.y + "px)" + w.responsive.kbRotation + w.responsive.kbScale
                            }))), "transparent" === V.transitions.curSlide.data.backgroundColor || V.transitions.curSlide.data.$backgroundVideo.length || ("3d" === e || "2d" === e && (!0 === y || "slide" === r.transition.type || !0 === g) ? P.css("background-color", V.transitions.curSlide.data.backgroundColor) : 0 === this.$curTiles.children().length && this.$curTiles.css("background-color", V.transitions.curSlide.data.backgroundColor)), void 0 !== V.transitions.nextSlide.data.$background && (w = (B = V.transitions.nextSlide.data.$background.data(V.defaults.init.dataKey)).kenBurns[f], L.append(X("<img>").attr("src", m).css({
                                width: B.responsive.width,
                                height: B.responsive.height,
                                "-webkit-filter": V.transitions.nextSlide.filter.from || "none",
                                filter: V.transitions.nextSlide.filter.from || "none",
                                "-ms-transform": "translateX(" + (B.responsive.x - _) + "px) translateY(" + (B.responsive.y - N) + "px) rotate(" + w.rotation + "deg) scale(" + w.scale + ")",
                                "-webkit-transform": "translateX(" + (B.responsive.x - _) + "px) translateY(" + (B.responsive.y - N) + "px) rotate(" + w.rotation + "deg) scale(" + w.scale + ")",
                                transform: "translateX(" + (B.responsive.x - _) + "px) translateY(" + (B.responsive.y - N) + "px) rotate(" + w.rotation + "deg) scale(" + w.scale + ")"
                            }))), "transparent" === V.transitions.nextSlide.data.backgroundColor || V.transitions.nextSlide.data.$backgroundVideo.length || L.css("background-color", V.transitions.nextSlide.data.backgroundColor)
                        }
                        V.transitions.slide.$wrapper.prependTo(V.o.preferBlendMode ? V.slider.$layersWrapper : V.slider.$innerWrapper), V.transitions.slide.start()
                    },
                    createCuboids: function(e, t, i, a, s, o, r, n, l, d) {
                        r = "translate3d( " + s + "px, " + o + "px, " + r + "px)";
                        0 !== n && (r += "rotateX( " + n + "deg)"), 0 !== l && (r += "rotateY( " + l + "deg)");
                        r = {
                            width: i,
                            height: a,
                            transform: r,
                            "-ms-transform": r,
                            "-webkit-transform": r
                        };
                        d && (r["transform-origin"] = d, r["-ms-transform-origin"] = d, r["-webkit-transform-origin"] = d), X("<div>").addClass(e).css(r).appendTo(t)
                    }
                }
            },
            layers: { in : {
                    onStart: function(e) {
                        e.data(V.defaults.init.dataKey).hover.enabled && V.transitions.layers.hover.enable(e), V.layers.set.dataAttribute(e, "animating-in")
                    },
                    onComplete: function(e) {
                        V.media.functions.playIfAllowed(e), V.layers.set.dataAttribute(e, "active")
                    }
                }, out: {
                    forced: function() {
                        var s, o, r, n, e, t, i;
                        V.transitions._forceLayersOut && (V.transitions._slideTimeline && (s = new H.TimelineMax({
                            paused: !0,
                            autoRemoveChildren: !0
                        }), n = [], e = V.layers.get("current, in, static, active").add(V.layers.get("current, out, static, active")), i = V.layers.get("current, out, notstatic, active"), t = V.layers.get("current, out, active"), i = X().add(e).add(i), i.each(function() {
                            var e, t = X(this).data(V.defaults.init.dataKey);
                            if (t.loop._timeline && (V.transitions._slideTimeline.remove(t.loop._timeline), t.loop._timeline.play()), t.is.static) {
                                o = [t.elements.$wrapper[0]], t.elements.$clipWrapper && (o = o.concat(t.elements.$clipWrapper[0])), t.textIn.nodes && (o = o.concat(t.textIn.nodes));
                                for (var i = 0; i < o.length; i++) n = n.concat(V.transitions._slideTimeline.getTweensOf(o[i], !0));
                                for (var a = 0; a < n.length; a++) n[a].duration && 0 !== n[a].duration() && (r = n[a], e = r, s.add(e, 100 - e.duration() * e.progress()))
                            }
                        }), t.each(function() {
                            X(this).data(V.defaults.init.dataKey).should.reset = !0
                        }), s.play().seek(100), V.transitions._slideTimeline.eventCallback("onStart", null), V.transitions._slideTimeline.eventCallback("onComplete", null), V.transitions._slideTimeline.eventCallback("onReverseComplete", null), V.transitions._slideTimeline.eventCallback("onUpdate", null), V.transitions._slideTimeline.stop().clear()), V.transitions._forceLayersOut.play(), V.slideshow.forceFastChange && V.transitions._forceLayersOut.progress(1)), V.slider.$layersWrapper.find(".ls-link").css({
                            display: "none"
                        })
                    },
                    onStart: function(e) {
                        V.layers.set.dataAttribute(e, "animating-out")
                    },
                    onComplete: function(e) {
                        var t = e.data(V.defaults.init.dataKey);
                        !V.slider.state.changingSlides && t.settings.slideOut === V.slides.current.index || V.transitions.layers.reset(e, t), t.hover.enabled && V.transitions.layers.hover.disable(e), V.layers.set.dataAttribute(e, "hidden")
                    }
                }, reset: function(e, t) {
                    t.loop._timeline && (t.loop._timeline.stop().clear(), delete t.loop._timeline, H.TweenMax.set(t.elements.$loopWrapper[0], t.reset.loopWrapperOnSlideChange)), H.TweenMax.set(t.elements.$wrapper[0], t.reset.wrapperOnSlideChange), H.TweenMax.set(e[0], {
                        "-webkit-filter": "none",
                        filter: "none"
                    }), t.should.update && (t.textInNodesFrom.random = {}, t.textOutNodesTo.random = {}, V.layers.update.data(e)), t.should.reset = !1
                }, timeline: {
                    shouldRestart: !1,
                    create: function(e) {
                        var t, i, a, s = e ? "current" : "next";
                        V.transitions.curNext = s, V.transitions.layers.timeline.shouldRestart = !1, V.transitions.layers.timeline.resetStates(), V.transitions._slideTimeline && (V.transitions._slideTimeline.pause().progress(0).kill().clear(!0), V.transitions._slideTimeline = null), V.transitions._slideTimeline = new H.TimelineMax({
                            paused: !0,
                            onStart: function() {
                                V.api.hasEvent("slideTimelineDidStart") && V.api.triggerEvent("slideTimelineDidStart", V.api.eventData())
                            },
                            onComplete: function() {
                                V.o.playByScroll && V.o.playByScrollSkipSlideBreaks && ("next" === V.slideshow.direction ? V.transitions.layers.timeline.scrollForward(!0) : V.transitions.layers.timeline.scrollBackwards(!0, !0))
                            },
                            onReverseComplete: function() {
                                V.api.hasEvent("slideTimelineDidReverseComplete") && V.api.triggerEvent("slideTimelineDidReverseComplete", V.api.eventData()), V.transitions.layers.timeline.shouldReplay && (V.transitions.layers.timeline.shouldRestart = !1, V.transitions._slideTimeline.play()), V.o.playByScroll && V.o.playByScrollSkipSlideBreaks && V.transitions.layers.timeline.scrollBackwards(!0, !1)
                            },
                            onUpdate: function(e) {
                                V.api.hasEvent("slideTimelineDidUpdate") && V.api.triggerEvent("slideTimelineDidUpdate", e)
                            },
                            onUpdateParams: ["{self}"]
                        }), this.totalDuration = 0, this.progress = 1, V.transitions._forceLayersOut = new H.TimelineMax({
                            paused: !0,
                            autoRemoveChildren: !0
                        }), t = V.layers.get(s + ", in, notactive"), i = V.layers.get(s + ", out, notstatic").add(V.layers.get(s + ", out, active, static")), e = V.layers.get(s + ", in, bgonly, notactive"), a = X().add(t).add(i).add(e), this.addLayers(t, "in", V.transitions._slideTimeline, V.transitions._forceLayersOut), this.addLayers(i, "out", V.transitions._slideTimeline, V.transitions._forceLayersOut), V.slides[s].data && -1 !== V.slides[s].data.duration && V.slides[s].data.duration < this.totalDuration ? (this.progress = V.slides[s].data.duration / this.totalDuration, V.debugMode && V.debug.add("warn", "slideTimeline.duration", [V.slides[s].data.duration, this.totalDuration])) : V.transitions._slideTimeline.duration() > this.totalDuration && (this.progress = this.totalDuration / V.transitions._slideTimeline.duration()), -1 === V.slides[s].data.duration ? (V.o.slideDuration && X.isNumeric(V.o.slideDuration) && -1 < V.o.slideDuration ? this.totalDuration = V.o.slideDuration / 1e3 : 0 === this.totalDuration && (this.totalDuration = V.o.slideDurationWithoutLayers / 1e3), V.slides[s].data.duration = this.totalDuration, V.slides[V.slides[s].index].data.duration = this.totalDuration) : this.totalDuration = V.slides[s].data.duration, this.addLayers(e, "in", V.transitions._slideTimeline, V.transitions._forceLayersOut), !0 === V.transitions.layers.timeline.shouldRestart && V.debugMode && V.debug.add("warn", "slideTimeline.restart", V.o.allowRestartOnResize ? "enabled" : "disabled");
                        for (var o, r = 0; r < a.length; r++) X(a[r]).data(V.defaults.init.dataKey).parallax.enabled && X(a[r]).data(V.defaults.init.dataKey).elements.$parallaxWrapper.attr("data-ls-parallax", "active");
                        V.transitions.layers.parallax.trigger(), V.transitions.layers.scroll.reset(), V.transitions.layers.scroll.trigger(), V.api.hasEvent("slideTimelineDidCreate") && V.api.triggerEvent("slideTimelineDidCreate", {
                            slideTimeline: V.transitions._slideTimeline,
                            layersOnSlideTimeline: a,
                            slideTimelineDuration: this.totalDuration
                        }), V.transitions.timers.create(), V.transitions.timers.bar._transition && V.transitions._slideTimeline.add(V.transitions.timers.bar._transition.play(), 0), V.transitions.timers.circle._transition && V.transitions._slideTimeline.add(V.transitions.timers.circle._transition.play(), 0), V.transitions.timers.slidebar._transition && V.transitions._slideTimeline.add(V.transitions.timers.slidebar._transition.play(), 0), V.transitions._slideTimeline.call(function() {
                            V.transitions._slideTimeline.reversed() || V.api.hasEvent("slideTimelineDidComplete") && !1 === V.api.triggerEvent("slideTimelineDidComplete", V.api.eventData()) || (V.functions.setStates(V.transitions.layers.timeline, {
                                finished: !0
                            }), !V.slideshow.isPaused() && V.slideshow.state.running ? V.slideshow.changeTo(V.slides.next.index) : V.slideshow.state.pausedByLastCycle && V.transitions.timers.reverse())
                        }, [], this, V.slides[s].data.duration), V.slides.next.data.$link && V.slides.next.data.$link.css({
                            display: "block"
                        }), (!V.o.startInViewport || "inside" !== V.slider.positionToViewport && !V.o.playByScrollStart) && V.o.startInViewport || !(V.slider.isPopup && V.slider.state.popupIsVisible && V.slider.state.popupShouldStart) && V.slider.isPopup || (V.o.pauseLayers && V.slideshow.isPaused() && V.transitions._slideTimeline.timeScale(0), V.transitions.layers.timeline.play(), V.o.playByScroll && "up" === V.device.scroll.directionAtSlideTransitionStart && V.transitions._slideTimeline.progress(1)), B.trigger("mouseleave.globalhover" + W), B.off("mouseenter.globalhover" + W + " mouseleave.globalhover" + W + " mousemove.globalhover" + W), V.slides[s].data.globalhover && (o = V.layers.get(s + ",in,notactive").add(V.layers.get("static,active")), B.on("mouseenter.globalhover" + W, function() {
                            o.each(function() {
                                V.transitions.layers.hover.mouseEnter(X(this), X(this).data(V.defaults.init.dataKey))
                            })
                        }), B.on("mouseleave.globalhover" + W, function() {
                            o.each(function() {
                                V.transitions.layers.hover.mouseLeave(X(this), X(this).data(V.defaults.init.dataKey))
                            })
                        }), B.on("mousemove.globalhover" + W, function() {
                            o.each(function() {
                                V.transitions.layers.hover.mouseMove(X(this), X(this).data(V.defaults.init.dataKey))
                            })
                        }))
                    },
                    prepare: function() {
                        V.slides.next.data.overflow && "hidden" !== V.slides.next.data.overflow ? (V.slider.$layersWrapper.addClass("ls-visible"), V.slider.$slideBGWrapper.addClass("ls-visible")) : (V.slider.$layersWrapper.removeClass("ls-visible"), V.slider.$slideBGWrapper.removeClass("ls-visible")), this.create()
                    },
                    getTiming: function(e, t, i, a) {
                        if ("number" == typeof t) return t;
                        t = t.toLowerCase();
                        var s, o, r, n, l, d = V.defaults.layer.timelineHierarchy,
                            u = 0;
                        if (-1 !== t.indexOf("*") && (l = "*"), -1 !== t.indexOf("/") && (l = "/"), -1 !== t.indexOf("+") && (l = "+"), -1 !== t.indexOf("-") && (l = "-"), l)
                            if (n = t.split(l), s = X.trim(n[0]), r = parseInt(X.trim(n[1])), d[s] && -1 !== d[i][1].indexOf(d[s][0]))
                                if (o = "number" == typeof e.timeline[s] ? e.timeline[s] : e.timeline[s](e), a) u = r / 1e3;
                                else switch (l) {
                                    case "*":
                                        u = o * r;
                                        break;
                                    case "/":
                                        u = o / r;
                                        break;
                                    case "+":
                                        u = o + r / 1e3;
                                        break;
                                    case "-":
                                        u = o - r / 1e3
                                } else V.debugMode && (d[s] || V.debug.add("warn", "layerTransition.timing1", s), -1 === d[i][1].indexOf(d[s][0]) && V.debug.add("warn", "layerTransition.timing3", [s, d[s], i, d[i]])), "+" !== l && !a || (u = r / 1e3);
                        else d[s = X.trim(t)] && -1 !== d[i][1].indexOf(d[s][0]) ? u = a ? 0 : "number" == typeof e.timeline[s] ? e.timeline[s] : e.timeline[s](e) : V.debugMode && (d[s] ? -1 === d[i][1].indexOf(d[s][0]) && V.debug.add("warn", "layerTransition.timing3", [s, d[s], i, d[i]]) : V.debug.add("warn", "layerTransition.timing1", s));
                        return (u != u || u < 0) && (V.debugMode && V.debug.add("warn", "layerTransition.timing2", [i, s, u]), u = 0), u
                    },
                    addLayers: function(e, t, i, a) {
                        for (var s = 0, o = e.length; s < o; s++) {
                            var r, n = X(e[s]),
                                l = n.data(V.defaults.init.dataKey),
                                d = l.elements.$wrapper,
                                u = l.elements.$clipWrapper,
                                c = l.elements.$loopWrapper,
                                p = l.elements.$parallaxWrapper;
                            l.elements.$scrollWrapper, l.elements.$scrollTransformWrapper;
                            if (l.should.reset && V.transitions.layers.reset(n, l), n.hasClass("ls-bg")) l.kenBurns.zoom && i.fromTo(n.closest(".ls-bg-wrap"), V.transitions.nextSlide.data.duration + V.transitions.nextSlide.data.calculatedTimeShift, {
                                autoCSS: !1,
                                css: l.kenBurns.from
                            }, {
                                autoCSS: !1,
                                css: l.kenBurns.to,
                                ease: H.Quad.easeInOut
                            }, -V.transitions.nextSlide.data.calculatedTimeShift), X.isEmptyObject(l.filter.values.bgFrom) && X.isEmptyObject(l.filter.values.bgTo) || (l.filter.transitions.bg || (l.filter.transitions.bg = V.transitions.layers.filters.createTransition(l, "bg", l.filter.values.bgFrom, l.filter.values.bgTo)), i.to([{
                                p: 0
                            }, n[0]], V.transitions.nextSlide.data.duration, {
                                p: 1,
                                autoCSS: !1,
                                ease: H.Sine.easeInOut,
                                onUpdate: V.transitions.layers.filters.animate,
                                onUpdateParams: ["{self}", l.filter.transitions.bg]
                            }, 0));
                            else switch (t) {
                                case "in":
                                    if (l.in.enabled && (l.settings.timelineIsCalculated || ("number" != typeof l.in.startAt && (l.in.startAt = 0), l.timeline.transitioninstart = l.in.startAt, l.timeline.transitioninend = l.timeline.transitioninstart + l.in.duration), V.resize.transformProperties(n, l.inLayerFromCSS, l.inLayerShouldBeConverted), V.resize.styleProperties(l.inLayerStyleFromCSS, l.inLayerStyleShouldBeConvertedFrom), V.resize.styleProperties(l.inLayerStyleToCSS, l.inLayerStyleShouldBeConvertedTo), l.inLayerFromCSS.transformPerspective = l.transformPerspective.layer * V.resize.ratio, l.clip.enabled && (l.original.clip || (l.original.clip = l.clip.min, l.original.clipShouldBeConverted = !0), l.inClipShouldBeConverted.clip ? (l.inClipFromCSS.clip = V.resize.clip(n, l.inClipShouldBeConverted.clip, !0), l.inClipToCSS.clip = V.resize.clip(n, l.original.clip, l.original.clipShouldBeConverted), i.fromTo(u[0], l.in.duration, l.inClipFrom, l.inClipTo, l.timeline.transitioninstart)) : H.TweenMax.set(u[0], {
                                            clip: V.resize.clip(n, l.original.clip, l.original.clipShouldBeConverted)
                                        }), V.transitions.layers.timeline.shouldRestart = !0), X.isEmptyObject(l.filter.values.in) ? X.isEmptyObject(l.filter.values.out) || n.css("filter", l.original.filter) : (l.filter.transitions.in || (l.filter.transitions.in = V.transitions.layers.filters.createTransition(l, "in", l.filter.values.in, l.filter.values.style)), i.to([{
                                            p: 0
                                        }, n[0]], l.in.duration, {
                                            p: 1,
                                            autoCSS: !1,
                                            ease: l.inLayerTo.ease,
                                            onUpdate: V.transitions.layers.filters.animate,
                                            onUpdateParams: ["{self}", l.filter.transitions.in]
                                        }, l.timeline.transitioninstart)), i.fromTo(d[0], l.in.duration, l.inLayerFrom, l.inLayerTo, l.timeline.transitioninstart), i.fromTo(n[0], l.in.duration, l.inLayerStyleFrom, l.inLayerStyleTo, l.timeline.transitioninstart)), l.is.textLayer && ((l.textIn.type || l.textOut.type) && V.transitions.layers.splitType.resetNodes(n, l), l.textIn.enabled && (l.in.enabled || i.to(d[0], 0, X.extend(!0, {}, l.inLayerTo, l.init.wrapper), l.timeline.textinstart), l.textIn.nodes = V.transitions.layers.splitType.setNodesSequence(l.textIn.type.split("_"), l.textIn.ns), V.resize.transformProperties(n, l.textInNodesFrom, l.textInShouldBeConverted), l.textInNodesFrom.transformPerspective = l.transformPerspective.text * V.resize.ratio, X.isEmptyObject(l.textInShouldBeConverted.random) || V.transitions.layers.splitType.setRandomProperties(l, l.textInShouldBeConverted.random, l.textInNodesFrom, "In"), X.isEmptyObject(l.textInNodesFrom.random) || V.transitions.layers.splitType.setRandomProperties(l, l.textInNodesFrom.random, l.textInNodesFrom, "In"), delete l.textInNodesFrom.random, l.settings.timelineIsCalculated || (l.timeline.textinstart = this.getTiming(l, l.textIn.startAt, "textinstart"), l.timeline.textinend = l.timeline.textinstart + (l.textIn.nodes.length - 1) * l.textIn.shiftNodes + l.textIn.duration), i.staggerFromTo(l.textIn.nodes, l.textIn.duration, l.textInNodesFrom, l.textInNodesTo, l.textIn.shiftNodes, l.timeline.textinstart, function(e) {
                                            V.transitions.layers.in.onComplete(e)
                                        }, [n]))), l.is.keyframe && V.o.playByScroll && i.addPause(l.timeline.allinend(), function() {
                                            setTimeout(function() {
                                                delete V.timeouts.scroll, V.transitions.layers.timeline.timeScaleModifier = 0, V.device.scroll.timeout = 250
                                            }, 500)
                                        }), l.parallax.enabled && "auto" == l.parallax.event) {
                                        V.transitions.layers.parallax.auto();
                                        var h = new H.TimelineMax({
                                                paused: !0
                                            }),
                                            m = {
                                                repeat: -1 == l.parallax.count ? -1 : l.parallax.count - 1,
                                                ease: Linear.easeNone
                                            };
                                        switch (l.settings.timelineIsCalculated && !l.is.static || (l.timeline.autoparallaxstart = this.getTiming(l, l.parallax.startAt, "autoparallaxstart"), l.timeline.autoparallaxend = -1 !== l.parallax.count && l.timeline.autoparallaxstart + l.parallax.duration * l.parallax.count), l.parallax._timeline = h, l.parallax.dummy = {
                                            x: 0,
                                            y: -10
                                        }, l.parallax.path) {
                                            default:
                                                case "circle":
                                                m.bezier = {
                                                curviness: 1.5,
                                                values: [{
                                                    x: 10,
                                                    y: 0
                                                }, {
                                                    x: 0,
                                                    y: 10
                                                }, {
                                                    x: -10,
                                                    y: 0
                                                }, {
                                                    x: 0,
                                                    y: -10
                                                }]
                                            };
                                            break;
                                            case "oval-h":
                                                    m.bezier = {
                                                    type: "thru",
                                                    curviness: 1,
                                                    values: [{
                                                        x: 20,
                                                        y: 0
                                                    }, {
                                                        x: 0,
                                                        y: 10
                                                    }, {
                                                        x: -20,
                                                        y: 0
                                                    }, {
                                                        x: 0,
                                                        y: -10
                                                    }]
                                                };
                                                break;
                                            case "oval-v":
                                                    l.parallax.dummy = {
                                                    x: 0,
                                                    y: -20
                                                },
                                                m.bezier = {
                                                    type: "thru",
                                                    curviness: 1,
                                                    values: [{
                                                        x: 10,
                                                        y: 0
                                                    }, {
                                                        x: 0,
                                                        y: 20
                                                    }, {
                                                        x: -10,
                                                        y: 0
                                                    }, {
                                                        x: 0,
                                                        y: -20
                                                    }]
                                                };
                                                break;
                                            case "infinity":
                                                    l.parallax.dummy = {
                                                    x: 0,
                                                    y: 0
                                                },
                                                m.bezier = {
                                                    type: "thru",
                                                    curviness: 1,
                                                    values: [{
                                                        x: 20,
                                                        y: -10
                                                    }, {
                                                        x: 40,
                                                        y: 0
                                                    }, {
                                                        x: 20,
                                                        y: 10
                                                    }, {
                                                        x: 0,
                                                        y: 0
                                                    }, {
                                                        x: -20,
                                                        y: -10
                                                    }, {
                                                        x: -40,
                                                        y: 0
                                                    }, {
                                                        x: -20,
                                                        y: 10
                                                    }, {
                                                        x: 0,
                                                        y: 0
                                                    }]
                                                };
                                                break;
                                            case "linear-h":
                                                    l.parallax.dummy = {
                                                    x: -10,
                                                    y: 0
                                                },
                                                m.x = 10,
                                                m.ease = Quad.easeInOut,
                                                m.yoyo = !0,
                                                m.repeat = -1 == l.parallax.count ? -1 : 2 * l.parallax.count - 1;
                                                break;
                                            case "linear-v":
                                                    l.parallax.dummy = {
                                                    x: 0,
                                                    y: -10
                                                },
                                                m.y = 10,
                                                m.ease = Quad.easeInOut,
                                                m.yoyo = !0,
                                                m.repeat = -1 == l.parallax.count ? -1 : 2 * l.parallax.count - 1
                                        }
                                        m.onUpdate = function(e, t, i, a, s, o, r) {
                                            H.TweenMax.set(i, {
                                                x: -t.x * (a / 50) * parseInt(s),
                                                y: -t.y * (a / 50) * parseInt(s),
                                                rotationX: "3d" == o ? t.y / (100 / r) : 0,
                                                rotationY: "3d" == o ? -t.x / (100 / r) : 0
                                            })
                                        }, m.onUpdateParams = ["{self}", l.parallax.dummy, p[0], l.parallax.distance, l.parallax.level, l.parallax.type, l.parallax.rotation], h.to(l.parallax.dummy, -1 == l.parallax.path.indexOf("linear") ? l.parallax.duration : l.parallax.duration / 2, m), i.add(h, l.timeline.autoparallaxstart), h.play()
                                    }
                                    l.loop.enabled && (h = new H.TimelineMax({
                                        repeat: l.loop.repeat,
                                        repeatDelay: l.loop.repeatDelay,
                                        yoyo: l.loop.yoyo,
                                        paused: !0
                                    }), l.settings.timelineIsCalculated && !l.is.static || (l.timeline.loopstart = this.getTiming(l, l.loop.startAt, "loopstart"), l.timeline.loopend = -1 !== l.loop.count && l.timeline.loopstart + (l.loop.repeat + 1) * l.loop.duration + l.loop.repeat * l.loop.repeatDelay), l.loop._timeline = h, V.resize.transformProperties(n, l.loopToCSS, {
                                        x: l.loopLayerShouldBeConverted.x,
                                        y: l.loopLayerShouldBeConverted.y
                                    }), (l.loopToCSS.x && 0 !== l.loopToCSS.x || l.loopToCSS.y && 0 !== l.loopToCSS.y) && (V.transitions.layers.timeline.shouldRestart = !0), l.loopFromCSS.transformOrigin = V.functions.convert.transformOrigin(l.loopLayerShouldBeConverted.transformOrigin, n, n.data(V.defaults.init.dataKey).elements.$wrapper, !1), l.loopFromCSS.transformPerspective = l.transformPerspective.loop * V.resize.ratio, X.isEmptyObject(l.filter.values.loop) || (l.filter.transitions.loop || (l.filter.transitions.loop = V.transitions.layers.filters.createTransition(l, "loop", X.isEmptyObject(l.filter.values.afterIn) ? l.filter.values.style : l.filter.values.afterIn, l.filter.values.loop)), h.to([{
                                        p: 0
                                    }, n[0]], l.loop.duration, {
                                        p: 1,
                                        autoCSS: !1,
                                        ease: l.loopTo.ease,
                                        onUpdate: V.transitions.layers.filters.animate,
                                        onUpdateParams: ["{self}", l.filter.transitions.loop]
                                    }, 0)), h.fromTo(c[0], l.loop.duration, l.loopFrom, l.loopTo, 0), l.loopClipShouldBeConverted.clip && (l.loopClipToCSS.clip = V.resize.clip(n, l.loopClipShouldBeConverted.clip, !0), h.to(u[0], l.loop.duration, l.loopClipTo, 0), V.transitions.layers.timeline.shouldRestart = !0), -1 !== l.loop.repeat && ("looplayers" === V.o.pauseOnHover || V.gui.timers.slidebar.$element || V.o.playByScroll) ? (i.add(h, l.timeline.loopstart), h.play()) : i.addCallback(function(e) {
                                        e.play()
                                    }, l.timeline.loopstart, [h])), l.is.static && (l.timeline.staticfrom = l.timeline.transitioninend, l.timeline.staticto = "100%", l.settings.timelineIsCalculated || (r = Math.max(l.timeline.allinandloopend(), 0), this.totalDuration = Math.max(this.totalDuration, r)));
                                    break;
                                case "out":
                                    l.is.textLayer && l.textOut.enabled && (l.textOut.nodes = V.transitions.layers.splitType.setNodesSequence(l.textOut.type.split("_"), l.textOut.ns), V.resize.transformProperties(n, l.textOutNodesTo, l.textOutShouldBeConverted, l.textOutNodesFrom), l.textOutNodesFrom.transformPerspective = l.transformPerspective.text * V.resize.ratio, X.isEmptyObject(l.textOutShouldBeConverted.random) || V.transitions.layers.splitType.setRandomProperties(l, l.textOutShouldBeConverted.random, l.textOutNodesTo, "Out"), X.isEmptyObject(l.textOutNodesTo.random) || V.transitions.layers.splitType.setRandomProperties(l, l.textOutNodesTo.random, l.textOutNodesTo, "Out"), delete l.textOutNodesTo.random, l.settings.timelineIsCalculated || (l.timeline.textoutstart = this.getTiming(l, l.textOut.startAt, "textoutstart"), l.timeline.textoutend = l.timeline.textoutstart + (l.textOut.nodes.length - 1) * l.textOut.shiftNodes + l.textOut.duration), l.clip.enabled && (void 0 === l.outClipShouldBeConverted.clip && i.to(u[0], 0, {
                                        immediateRender: !1,
                                        css: {
                                            clip: V.resize.clip(n, l.clip.max)
                                        }
                                    }, l.timeline.textoutstart), V.transitions.layers.timeline.shouldRestart = !0), i.staggerFromTo(l.textOut.nodes, l.textOut.duration, l.textOutNodesFrom, l.textOutNodesTo, l.textOut.shiftNodes, l.timeline.textoutstart)), V.resize.transformProperties(n, l.outLayerToCSS, l.outLayerShouldBeConverted, l.outLayerFromCSS), V.resize.styleProperties(l.outLayerStyleFromCSS, l.outLayerStyleShouldBeConvertedFrom), V.resize.styleProperties(l.outLayerStyleToCSS, l.outLayerStyleShouldBeConvertedTo), l.outLayerFromCSS.transformPerspective = l.transformPerspective.layer * V.resize.ratio, "slidechangeonly" !== l.out.startAt ? (l.settings.timelineIsCalculated && !l.is.static || (l.is.static ? (l.timeline.staticfrom = 0, l.timeline.transitionoutstart = this.getTiming(l, l.out.startAt, "transitionoutstart", !0), l.timeline.staticto = l.timeline.transitionoutstart) : l.timeline.transitionoutstart = Math.max(this.getTiming(l, l.out.startAt, "transitionoutstart"), l.timeline.transitioninend), l.timeline.transitionoutend = l.timeline.transitionoutstart + l.out.duration), l.clip.enabled && (void 0 === l.outClipShouldBeConverted.clip ? i.to(u[0], 0, {
                                        immediateRender: !1,
                                        css: {
                                            clip: V.resize.clip(n, l.clip.max)
                                        }
                                    }, l.timeline.transitionoutstart) : (l.outClipToCSS.clip = V.resize.clip(n, l.outClipShouldBeConverted.clip, !0), i.to(u[0], l.out.duration, l.outClipTo, l.timeline.transitionoutstart)), V.transitions.layers.timeline.shouldRestart = !0), X.isEmptyObject(l.filter.values.out) || (l.filter.transitions.out || (l.filter.transitions.out = V.transitions.layers.filters.createTransition(l, "out", X.isEmptyObject(l.filter.values.afterLoop) ? X.isEmptyObject(l.filter.values.afterIn) ? l.filter.values.style : l.filter.values.afterIn : l.filter.values.afterLoop, l.filter.values.out)), i.to([{
                                        p: 0
                                    }, n[0]], l.out.duration, {
                                        p: 1,
                                        autoCSS: !1,
                                        ease: l.outLayerTo.ease,
                                        onUpdate: V.transitions.layers.filters.animate,
                                        onUpdateParams: ["{self}", l.filter.transitions.out]
                                    }, l.timeline.transitionoutstart)), i.fromTo(d[0], l.out.duration, l.outLayerFrom, l.outLayerTo, l.timeline.transitionoutstart), i.fromTo(n[0], l.out.duration, l.outLayerStyleFrom, l.outLayerStyleTo, l.timeline.transitionoutstart), i.fromTo(d[0], 0, l.init.wrapper, l.reset.wrapperOnTimelineEnd, l.timeline.transitionoutend)) : (l.timeline.staticfrom = 0, l.timeline.staticto = "100%"), (!l.is.static || l.is.static && l.settings.slideOut === V.slides.next.index) && (a.fromTo(d[0], V.o.forceLayersOutDuration, l.outLayerFrom, l.outLayerTo, 0), a.fromTo(n[0], V.o.forceLayersOutDuration, l.outLayerStyleFrom, l.outLayerStyleTo, 0), l.clip.enabled && void 0 !== l.outClipShouldBeConverted.clip && (l.outClipToCSS.clip = V.resize.clip(n, l.outClipShouldBeConverted.clip, !0), a.to(u[0], V.o.forceLayersOutDuration, l.outClipTo, 0))), r = Math.max(l.timeline.alloutandloopend(), 0), this.totalDuration = Math.max(this.totalDuration, r), l.settings.timelineIsCalculated = !0
                            }
                        }
                    },
                    play: function() {
                        V.transitions._slideTimeline && (V.transitions._slideTimeline.play(), V.functions.setStates(this, {
                            started: !0,
                            running: !0,
                            stopped: !1,
                            paused: !1
                        }))
                    },
                    pause: function(e) {
                        e = X.isNumeric(e) ? e : .75;
                        V.transitions._slideTimeline && (H.TweenMax.to(V.transitions._slideTimeline, e, {
                            timeScale: 0
                        }), V.functions.setStates(this, {
                            paused: !0,
                            stopped: !1
                        }))
                    },
                    resume: function() {
                        V.transitions._slideTimeline && (H.TweenMax.to(V.transitions._slideTimeline, .75, {
                            timeScale: 1
                        }), V.functions.setStates(this, {
                            paused: !1,
                            stopped: !1
                        }))
                    },
                    reverse: function() {
                        V.transitions._slideTimeline && V.transitions._slideTimeline.reverse()
                    },
                    scrollForward: function(e) {
                        e || (this.play(), this.modifyTimeScale()), V.transitions._slideTimeline && (V.slider.isBusy() || 0 !== V.transitions._slideTimeline.totalDuration() && 1 !== V.transitions._slideTimeline.progress() || "down" !== V.device.scroll.direction || (V.slideshow.direction = "next", (e = V.slideshow.sequence.normalized).indexOf(V.slides.current.index) === e.length - 1 ? (V.slider.positionToViewport = "under", V.device.scroll.enable(), V.slideshow.direction = "prev") : V.navigation.next()))
                    },
                    scrollBackwards: function(e, t) {
                        e && !t || (this.reverse(), this.modifyTimeScale()), V.transitions._slideTimeline && (V.slider.isBusy() || 0 !== V.transitions._slideTimeline.totalDuration() && 0 !== V.transitions._slideTimeline.progress() || "up" !== V.device.scroll.direction || (V.slideshow.direction = "prev", 0 === V.slideshow.sequence.normalized.indexOf(V.slides.current.index) ? (V.slider.positionToViewport = "over", V.device.scroll.enable(), V.slideshow.direction = "next") : V.navigation.prev()))
                    },
                    modifyTimeScale: function() {
                        V.transitions._slideTimeline && H.TweenMax.to(V.transitions._slideTimeline, .25, {
                            timeScale: 1 + this.timeScaleModifier
                        })
                    },
                    resetStates: function() {
                        this.state = {
                            started: !1,
                            running: !1,
                            paused: !1,
                            stopped: !1,
                            finished: !1
                        }
                    }
                }, hover: {
                    enable: function(e) {
                        e.attr("data-ls-canhover", "1")
                    },
                    disable: function(e) {
                        e.attr("data-ls-canhover", "0")
                    },
                    set: function(e, t) {
                        t.elements.$wrapper.on("mouseenter." + W, function() {
                            V.transitions.layers.hover.mouseEnter(e, t)
                        }), t.elements.$wrapper.on("mouseleave." + W, function() {
                            V.transitions.layers.hover.mouseLeave(e, t)
                        }), t.elements.$wrapper.on("mousemove." + W, function() {
                            V.transitions.layers.hover.mouseMove(e, t)
                        })
                    },
                    createTimeline: function(e, t) {
                        var i, a, s;
                        t.hover._timeline = new H.TimelineMax({
                            paused: !0,
                            onReverseComplete: function(e, t) {
                                t.hover._timeline._reversed && (t.hover._timeline.stop().clear(), delete t.hover._timeline)
                            },
                            onReverseCompleteParams: [e, t]
                        }), V.resize.transformProperties(e, t.hoverToCSS, t.hoverShouldBeConverted, t.hoverFromCSS), V.resize.styleProperties(t.hoverToCSS, t.hoverShouldBeConverted), t.hoverFromCSS.transformPerspective = t.transformPerspective.hover * V.resize.ratio, t.hover._tween = H.TweenMax.fromTo(e[0], t.hover.durationIn, t.hoverFrom, t.hoverTo), t.hover._timeline.add(t.hover._tween, 0), e.next().is(".ls-layer-link") ? (i = e.next(), a = X.extend(!0, {}, t.hoverFrom, {
                            css: {
                                opacity: 1,
                                color: "transparent",
                                background: "transparent",
                                z: 0
                            }
                        }), s = X.extend(!0, {}, t.hoverTo, {
                            css: {
                                opacity: 1,
                                color: "transparent",
                                background: "transparent",
                                z: 0
                            }
                        }), t.hover._linkTween = H.TweenMax.fromTo(i[0], t.hover.durationIn, a, s), t.hover._timeline.add(t.hover._linkTween, 0)) : t.hover._linkTween = null, t.hover.alwaysOnTop && (s = {
                            zIndex: 9999
                        }, V.browser.isSafari && (s.transform = "translateZ(999999px)"), t.hover._timeline.to(t.elements.$outerWrapper[0], t.hover.durationIn, {
                            autoCSS: !1,
                            css: s
                        }, 0)), t.hover.reverseTimeScale = t.hover.durationIn / t.hover.durationOut == 1 ? 1 : t.hover.durationIn / t.hover.durationOut, this.hoverIn(e, t)
                    },
                    mouseEnter: function(e, t) {
                        "1" === e.attr("data-ls-canhover") && (e.attr("data-ls-hovered", 1), t.elements.$wrapper.off("mousemove." + W), t.hover._timeline ? (t.hover._timeline.play().stop().progress(0), this.hoverIn(e, t)) : this.createTimeline(e, t))
                    },
                    mouseLeave: function(e, t) {
                        t.hover._timeline && (t.hover._timeline.stop().progress(1), this.hoverOut(e, t)), e.removeAttr("data-ls-hovered")
                    },
                    mouseMove: function(e, t) {
                        e.attr("data-ls-hovered") || this.mouseEnter(e, t)
                    },
                    hoverIn: function(e, t) {
                        t.hover._tween.updateTo({
                            ease: t.hover.easeIn
                        }), t.hover._linkTween && t.hover._linkTween.updateTo({
                            ease: t.hover.easeIn
                        }), t.hover._timeline.play().timeScale(1)
                    },
                    hoverOut: function(e, t) {
                        t.hover._tween.updateTo({
                            ease: t.hover.easeOut
                        }), t.hover._linkTween && t.hover._linkTween.updateTo({
                            ease: t.hover.easeOut
                        }), t.hover._timeline.reverse().timeScale(t.hover.reverseTimeScale)
                    }
                }, parallax: {
                    defaultProperties: {
                        type: "2d",
                        event: "cursor",
                        path: "circle",
                        direction: "clockwise",
                        duration: 5,
                        count: -1,
                        startAt: "slidestart",
                        x: !0,
                        y: !0,
                        rotation: 10,
                        distance: 10,
                        durationMove: 1.5,
                        durationLeave: 1.2,
                        transformOrigin: "50% 50% 0",
                        transformPerspective: 500
                    },
                    defaults: {
                        scrollModifier: 5,
                        centerLayers: "center",
                        centerDegree: 40,
                        sensitive: 10
                    },
                    state: {
                        enabled: !1,
                        ready: !1
                    },
                    wrappers: {
                        cursor: {
                            $2d: X(),
                            $3d: X()
                        },
                        scroll: {
                            $2d: X(),
                            $3d: X()
                        },
                        auto: {
                            $2d: X(),
                            $3d: X()
                        }
                    },
                    init: function() {
                        var t = this;
                        B.on("mouseenter." + W, function() {
                            (t.wrappers.cursor.$2d.length || t.wrappers.cursor.$3d.length) && t.calculateTransformProperties()
                        }), B.on("mousemove." + W, function(e) {
                            (t.wrappers.cursor.$2d.length || t.wrappers.cursor.$3d.length) && t.mouseMove(e)
                        }), B.on("mouseleave." + W, function() {
                            (t.wrappers.cursor.$2d.length || t.wrappers.cursor.$3d.length) && t.reset()
                        }), V.device.isMobile && V.device.supportOrientation && (X(window).on("deviceorientation." + W, function() {
                            t.state.ready && t.deviceTurn(event)
                        }), X(window).on("orientationchange." + W, function() {
                            t.calculateTransformProperties()
                        })), X(window).on("scroll.parallax" + W + " touchmove.parallax" + W, function() {
                            (t.wrappers.scroll.$2d.length || t.wrappers.scroll.$3d.length) && t.scroll()
                        }), t.defaults.scrollModifier *= V.o.parallaxScrollReverse ? -1 : 1
                    },
                    addLayer: function(e, t, i, a) {
                        switch (this.state.enabled || (V.functions.setStates(this, {
                            enabled: !0
                        }), this.init()), X.extend(!0, t, this.defaultProperties, V.slides[a].parallax, i.parallax), i.transformPerspective.parallax ? t.transformPerspective = i.transformPerspective.parallax : i.transformPerspective.parallax = t.transformPerspective, t.event.match(/(cursor|scroll|auto)/) || (t.event = "cursor"), t.path.match(/(circle|oval-h|oval-v|infinity|linear-h|linear-v)/) || (t.path = "circle"), t.direction.match(/(clockwise|counterclockwise)/) || (t.direction = "clockwise"), t.type.match(/(2d,3d)/) && (t.type = "2d"), (i.parallax = t).axis) {
                            case "none":
                                t.x = !1, t.y = !1;
                                break;
                            case "x":
                                t.y = !1;
                                break;
                            case "y":
                                t.x = !1
                        }
                        this.wrappers[t.event]["$" + t.type] = this.wrappers[t.event]["$" + t.type].add(e)
                    },
                    addShadow: function() {
                        var e, t, i, a = V.gui.shadow.$element,
                            s = (V.slides.current && V.slides.current.parallax ? V.slides.current : V.slides.next).index;
                        V.slides[s].data.$background && V.slides[s].data.$background.data(V.defaults.init.dataKey).parallax.enabled && V.slides[s].data.overflow && "hidden" !== V.slides[s].data.overflow && (e = "50% -" + .25 * V.slider.height + "px 0", i = void 0 !== (t = V.slides[s].data.$background.data(V.defaults.init.dataKey).parallax).rotation ? 2 * t.rotation : void 0 !== V.slides[s].parallax.rotation ? 2 * V.slides[s].parallax.rotation : 2 * this.defaultProperties.rotation, a.data(V.defaults.init.dataKey, {
                            parallax: X.extend(!0, {}, this.defaultProperties, V.slides[s].parallax, {
                                level: t.level,
                                transformOrigin: e,
                                rotation: i
                            })
                        }), a.attr("data-ls-parallax", "active"), H.TweenMax.set(a[0], {
                            transformOrigin: e,
                            transformPerspective: a.data(V.defaults.init.dataKey).parallax.transformPerspective * V.resize.ratio
                        }), "3d" === V.slides[s].parallax.type || "3d" === t.type ? this.wrappers.cursor.$3d = this.wrappers.cursor.$3d.add(a) : this.wrappers.cursor.$2d = this.wrappers.cursor.$2d.add(a)), this.shadowIsChecked = !0
                    },
                    removeShadow: function() {
                        var e = V.gui.shadow.$element;
                        this.wrappers.cursor.$2d = this.wrappers.cursor.$2d.not(e), this.wrappers.cursor.$3d = this.wrappers.cursor.$3d.not(e), e.attr("data-ls-parallax", "disabled"), this.shadowIsChecked = !1
                    },
                    calculateTransformProperties: function() {
                        X().add(this.wrappers.cursor.$2d).add(this.wrappers.cursor.$3d).add(this.wrappers.scroll.$2d).add(this.wrappers.scroll.$3d).add(this.wrappers.auto.$2d).add(this.wrappers.auto.$3d).each(function() {
                            var e = X(this),
                                t = e.data(V.defaults.init.dataKey).parallax,
                                i = e.find(".ls-layer");
                            H.TweenMax.set(X(this)[0], {
                                transformOrigin: V.functions.convert.transformOrigin(t.transformOrigin, e, i.data(V.defaults.init.dataKey).elements.$wrapper, V.slider.$layersWrapper),
                                transformPerspective: t.transformPerspective * V.resize.ratio
                            })
                        }), this.transformPropertiesCalculated = !0
                    },
                    deviceTurn: function(e) {
                        var t, i;
                        this.transformPropertiesCalculated ? (e = 0 === (t = window.orientation) ? (i = 5 * -parseInt(e.gamma) * this.defaults.sensitive * V.resize.ratio, 5 * (this.defaults.centerDegree - parseInt(e.beta)) * this.defaults.sensitive * V.resize.ratio) : 90 === t ? (i = 5 * -parseInt(e.beta) * this.defaults.sensitive * V.resize.ratio, 5 * (parseInt(e.gamma) + this.defaults.centerDegree) * this.defaults.sensitive * V.resize.ratio) : (i = 5 * parseInt(e.beta) * this.defaults.sensitive * V.resize.ratio, 5 * (this.defaults.centerDegree - parseInt(e.gamma)) * this.defaults.sensitive * V.resize.ratio), this.animate2D(i, e, "cursor"), this.animate3D(i, e, "cursor")) : this.calculateTransformProperties(), V.slider.state.animatingSlides || this.shadowIsChecked || !V.gui.shadow.$element || this.addShadow()
                    },
                    trigger: function() {
                        X(window).trigger("scroll.parallax" + W), X(window).trigger("touchmove.parallax" + W)
                    },
                    auto: function() {
                        this.transformPropertiesCalculated || this.calculateTransformProperties()
                    },
                    scroll: function() {
                        var e = (("top" === this.defaults.centerLayers ? V.device.winScrollTop : V.device.winScrollTop + (V.device.viewportHeight - V.slider.height) / 2) - V.slider.offsetTop) * V.resize.ratio * this.defaults.scrollModifier;
                        V.slider.state.inFullscreen && (e = 0), this.transformPropertiesCalculated || this.calculateTransformProperties(), this.animate2D(0, e, "scroll"), this.animate3D(0, e, "scroll")
                    },
                    mouseMove: function(e) {
                        var t, i;
                        this.transformPropertiesCalculated ? (V.slider.state.animatingSlides || this.shadowIsChecked || !V.gui.shadow.$element || this.addShadow(), t = V.slider.offsetLeft + V.slider.width / 2, i = V.slider.offsetTop + V.slider.height / 2, t = e.pageX - t, i = e.pageY - i, this.animate2D(t, i, "cursor"), this.animate3D(t, i, "cursor")) : this.calculateTransformProperties()
                    },
                    animate2D: function(s, o, e) {
                        this.wrappers[e].$2d.each(function() {
                            var e, t, i, a = X(this);
                            "active" === a.attr("data-ls-parallax") && (t = (e = a.data(V.defaults.init.dataKey).parallax).x ? -s * (e.distance / 2e3) * parseInt(e.level) : 0, i = e.y ? -o * (e.distance / 2e3) * parseInt(e.level) : 0, H.TweenMax.to(a[0], e.durationMove, {
                                x: t,
                                y: i
                            }))
                        })
                    },
                    animate3D: function(r, n, e) {
                        this.wrappers[e].$3d.each(function() {
                            var e, t, i, a, s, o = X(this);
                            "active" === o.attr("data-ls-parallax") && (a = (e = o.data(V.defaults.init.dataKey).parallax).x ? (i = -r / (4e3 / e.rotation), -r * (e.distance / 2e3) * parseInt(e.level)) : i = 0, s = e.y ? (t = n / (4e3 / e.rotation), -n * (e.distance / 2e3) * parseInt(e.level)) : t = 0, H.TweenMax.to(o[0], e.durationMove, {
                                rotationX: t,
                                rotationY: i,
                                x: a,
                                y: s
                            }))
                        })
                    },
                    reset: function() {
                        X().add(this.wrappers.cursor.$2d).add(this.wrappers.cursor.$3d).each(function() {
                            var e = X(this);
                            "active" === e.attr("data-ls-parallax") ? H.TweenMax.to(e[0], X(this).data(V.defaults.init.dataKey).parallax.durationLeave, {
                                x: 0,
                                y: 0,
                                rotationX: 0,
                                rotationY: 0
                            }) : H.TweenMax.set(e[0], {
                                x: 0,
                                y: 0,
                                rotationX: 0,
                                rotationY: 0
                            })
                        }), V.gui.shadow.$element && this.removeShadow(), this.transformPropertiesCalculated = !1
                    }
                }, scroll: {
                    defaultProperties: {
                        shouldBeConverted: {
                            transformOrigin: "50% 50% 0"
                        },
                        transformPerspective: 500,
                        duration: 1
                    },
                    defaults: {
                        centerLayers: "top"
                    },
                    state: {
                        enabled: !1
                    },
                    $wrappers: X(),
                    init: function() {
                        var e = this;
                        X(window).on("scroll.scroll" + W + " touchmove.scroll" + W, function() {
                            e.$wrappers.length && e.scroll()
                        }), X(window).on("resize.scroll" + W, function() {
                            e.$wrappers.length && e.calculateTransformProperties()
                        })
                    },
                    addLayer: function(e, t, i, a) {
                        this.state.enabled || (V.functions.setStates(this, {
                            enabled: !0
                        }), this.init()), X.extend(!0, t, this.defaultProperties, i.scroll), i.transformPerspective.scroll ? t.transformPerspective = i.transformPerspective.scroll : i.transformPerspective.scroll = t.transformPerspective, i.scroll = t, this.$wrappers = this.$wrappers.add(e)
                    },
                    getCenter: function(e) {
                        switch (e) {
                            case "top":
                                e = V.device.winScrollTop;
                                break;
                            case "center":
                                e = V.device.winScrollTop + (V.device.viewportHeight - V.slider.height) / 2;
                                break;
                            case "bottom":
                                e = V.device.winScrollTop + V.device.viewportHeight - V.slider.height
                        }
                        return e
                    },
                    scroll: function(o) {
                        var r = this,
                            n = this.getCenter(this.defaults.centerLayers);
                        this.transformPropertiesCalculated || this.calculateTransformProperties(), this.$wrappers.each(function() {
                            var e = X(this),
                                t = e.find(".ls-scroll-transform"),
                                i = e.data(V.defaults.init.dataKey).scroll;
                            i.center && n !== i.center && (n = r.getCenter(i.center)), s = V.slider.state.inFullscreen ? 0 : n - V.slider.offsetTop;
                            var a = {
                                    x: i.x ? r.calculateTransformations(-s * i.x, "x", i, -s) : 0,
                                    y: i.y ? r.calculateTransformations(-s * i.y, "y", i, -s) : 0
                                },
                                s = {
                                    rotation: i.rotation ? r.calculateTransformations(-s * i.rotation, "rotation", i, -s) : 0,
                                    rotationX: i.rotationX ? r.calculateTransformations(-s * i.rotationX, "rotationX", i, -s) : 0,
                                    rotationY: i.rotationY ? r.calculateTransformations(-s * i.rotationY, "rotationY", i, -s) : 0,
                                    skewX: i.skewX ? r.calculateTransformations(-s * i.skewX, "skewX", i, -s) : 0,
                                    skewY: i.skewY ? r.calculateTransformations(-s * i.skewY, "skewY", i, -s) : 0,
                                    scaleX: i.scaleX ? 1 + -s / 1e3 * i.scaleX : 1,
                                    scaleY: i.scaleY ? 1 + -s / 1e3 * i.scaleY : 1
                                };
                            o ? (H.TweenMax.set(e[0], a), H.TweenMax.set(t[0], s)) : (H.TweenMax.to(e[0], i.duration, a), H.TweenMax.to(t[0], i.duration, s))
                        })
                    },
                    calculateTransformations: function(e, t, i, a) {
                        return i[t + "yoyo"] && a < 1 && (e = -e), void 0 !== i[t + "min"] && e < i[t + "min"] && (e = i[t + "min"]), void 0 !== i[t + "max"] && e > i[t + "max"] && (e = i[t + "max"]), e * V.resize.ratio
                    },
                    calculateTransformProperties: function() {
                        this.$wrappers.each(function() {
                            var e = X(this).data(V.defaults.init.dataKey).scroll,
                                t = X(this).find(".ls-layer");
                            H.TweenMax.set(X(this).find(".ls-scroll-transform")[0], {
                                transformOrigin: V.functions.convert.transformOrigin(e.shouldBeConverted.transformOrigin, X(this), t, t),
                                transformPerspective: e.transformPerspective * V.resize.ratio
                            })
                        }), this.transformPropertiesCalculated = !0
                    },
                    trigger: function() {
                        this.scroll(!0)
                    },
                    reset: function() {
                        this.transformPropertiesCalculated = !1
                    }
                }, filters: {
                    createTransition: function(e, t, i, a) {
                        var s, o = new V.defaults.layer.properties.filter,
                            r = {};
                        for (s in o) switch (t) {
                            case "in":
                                r[s] = [o[s], o[s]], r[s][0] = (i.hasOwnProperty(s) ? i : a.hasOwnProperty(s) ? a : o)[s], r[s][1] = (a.hasOwnProperty(s) ? a : o)[s], e.filter.values.afterIn[s] = r[s][1];
                                break;
                            case "hover":
                            case "loop":
                            case "out":
                                r[s] = [], r[s][0] = (i.hasOwnProperty(s) ? i : o)[s], r[s][1] = (a.hasOwnProperty(s) ? a : i.hasOwnProperty(s) && i[s] !== o[s] ? i : o)[s], "loop" === t && !0 !== e.loop.yoyo && -1 !== e.loop.count && (e.filter.values.afterLoop[s] = r[s][1]);
                                break;
                            case "bg":
                                r[s] = [o[s], o[s]], i.hasOwnProperty(s) && (r[s][0] = i[s]), a.hasOwnProperty(s) && (r[s][1] = a[s])
                        }
                        return r
                    },
                    convert: function(e) {
                        for (var t, i, a = {}, s = /(blur|brightness|contrast|grayscale|hue-rotate|invert|saturate|sepia)/i, o = 0, r = (e = e.split(" ")).length; o < r; o++)(t = (i = e[o].split("("))[0]).match(s) && (i = parseInt(i[1]), a[t] = i);
                        return a
                    },
                    animate: function(e, t) {
                        var i = 100 * e.target[0].p;
                        if ("object" == typeof t) {
                            var a, s = "";
                            for (a in t)
                                if ("object" == typeof t[a] && 2 === t[a].length) switch (a) {
                                    case "blur":
                                        s += " blur( " + (t[a][0] < t[a][1] ? t[a][0] + Math.abs(t[a][0] - t[a][1]) / 100 * i : t[a][0] - Math.abs(t[a][0] - t[a][1]) / 100 * i) + "px )";
                                        break;
                                    case "hue-rotate":
                                        s += " hue-rotate( " + (t[a][0] < t[a][1] ? t[a][0] + Math.abs(t[a][0] - t[a][1]) / 100 * i : t[a][0] - Math.abs(t[a][0] - t[a][1]) / 100 * i) + "deg )";
                                        break;
                                    default:
                                        s += " " + a + "( " + (t[a][0] < t[a][1] ? t[a][0] + Math.abs(t[a][0] - t[a][1]) / 100 * i : t[a][0] - Math.abs(t[a][0] - t[a][1]) / 100 * i) + "% )"
                                }
                                H.TweenMax.set(e.target, {
                                "-webkit-filter": s,
                                filter: s
                            })
                        }
                    }
                }, splitType: {
                    setNodesSequence: function(e, t) {
                        var i = t;
                        if ("desc" == e[1]) i = t.slice(0).reverse();
                        else if ("rand" == e[1]) i = t.slice(0).sort(function() {
                            return .5 - Math.random()
                        });
                        else if ("center" == e[1]) {
                            for (var a = Math.floor(t.length / 2), i = [t[a]], s = 1; s <= a; s++) i.push(t[a - s], t[a + s]);
                            i.length = t.length
                        } else if ("edge" == e[1]) {
                            var o, r = Math.floor(t.length / 2);
                            for (i = [t[0]], o = 1; o <= r; o++) i.push(t[t.length - o], t[o]);
                            i.length = t.length
                        }
                        return i
                    },
                    resetNodes: function(e, t) {
                        X(".char, .word, .line", e).add(t.elements.$wrapper).css({
                            transform: "none",
                            opacity: 1
                        }).each(function() {
                            delete this._gsTransform
                        })
                    },
                    setRandomProperties: function(e, t, i, a) {
                        for (var s in t) {
                            for (var o = [], r = 0, n = e["text" + a].nodes.length; r < n; r++) o[r] = V.functions.convert.randomProperties(t[s], s);
                            delete i[s], i.cycle[s] = o
                        }
                        t = null
                    }
                }
            },
            media: {
                defaults: {
                    delay: 500,
                    fadeIn: 500,
                    fadeOut: 750
                },
                changeBackgroundVideo: function(e, t) {
                    var i, a, s, o;
                    V.slides.current.index && V.slides.current.data.$backgroundVideo.length && (o = (i = V.slides.current.data.$backgroundVideo).data(V.defaults.init.dataKey).elements.$bgWrapper, t && (i.data(V.defaults.init.dataKey).mediaProperties.willBePaused = !0, o.fadeOut(V.transitions.media.defaults.fadeOut, function() {
                        i.trigger("stopBackgroundVideo"), i.data(V.defaults.init.dataKey).mediaProperties.willBePaused = !1
                    }))), V.slides.next.data.$backgroundVideo.length && (s = (a = V.slides.next.data.$backgroundVideo).data(V.defaults.init.dataKey).elements.$bgWrapper, o = a.data(V.defaults.init.dataKey).elements.$bgOuterWrapper, V.device.isMobile && (B.hasClass("ls-device-is-phone") && o.hasClass("ls-hide-on-phone") || B.hasClass("ls-device-is-tablet") && o.hasClass("ls-hide-on-tablet")) || setTimeout(function() {
                        a.trigger("playBackgroundVideo")
                    }, e ? 50 : 0), e || t ? s.fadeIn(V.transitions.media.defaults.fadeOut) : s.css({
                        display: "block"
                    }), a.data(V.defaults.init.dataKey).mediaProperties.isPreloaded = !0)
                }
            },
            timers: {
                defaults: {
                    fadeInDuration: .35,
                    reverseDuration: .3
                },
                create: function(e) {
                    this.curNext = e || "next", this.reset(), V.gui.timers.bar.$element && this.bar.createTransition(), V.gui.timers.circle.$element && this.circle.createTransition(), V.gui.timers.slidebar.$element && this.slidebar.createTransition()
                },
                reverse: function() {
                    var e;
                    V.slides.current && V.slides.current.data && V.transitions._slideTimeline && (e = V.transitions._slideTimeline.progress(), e = V.slides.current.data.duration * e / this.defaults.reverseDuration, V.gui.timers.bar.$element && this.bar._transition && (V.transitions._slideTimeline.remove(V.transitions.timers.bar._transition), this.bar._transition.reverse().timeScale(e)), V.gui.timers.circle.$element && this.circle._transition && (V.transitions._slideTimeline.remove(V.transitions.timers.circle._transition), this.circle._transition.reverse().timeScale(e)), V.gui.timers.slidebar.$element && this.slidebar._transition && (V.transitions._slideTimeline.remove(V.transitions.timers.slidebar._transition), this.slidebar._transition.reverse().timeScale(e)))
                },
                reset: function() {
                    V.gui.timers.bar.$element && this.bar._transition && this.bar.reset(), V.gui.timers.circle.$element && this.circle._transition && this.circle.reset(), V.gui.timers.slidebar.$element && this.slidebar._transition && this.slidebar.reset()
                },
                bar: {
                    reset: function() {
                        this._transition && (this._transition.kill(), this._transition = !1)
                    },
                    createTransition: function() {
                        this._transition = H.TweenMax.fromTo(V.gui.timers.bar.$element[0], V.slides[V.transitions.curNext].data.duration, {
                            autoCSS: !1,
                            paused: !0,
                            css: {
                                width: 0
                            }
                        }, {
                            autoCSS: !1,
                            css: {},
                            ease: H.Linear.easeNone,
                            onReverseComplete: function() {
                                V.transitions.timers.bar._transition = !1
                            },
                            onComplete: function(e) {
                                e.target.style.width = "100%", e.target.style.width = "calc( 100% - " + V.slider.initial.skinWidth + "px )"
                            },
                            onCompleteParams: ["{self}"],
                            onUpdate: function(e) {
                                e.target.style.width = Math.min(V.slider.width, V.slider.width * e.progress()) + "px"
                            },
                            onUpdateParams: ["{self}"]
                        })
                    }
                },
                circle: {
                    reset: function() {
                        this._transition && (V.gui.timers.circle.$element.stop(!0, !0), this._transition.kill(), this._transition = !1)
                    },
                    createTransition: function() {
                        var e = V.gui.timers.circle.$element.find(".ls-ct-right .ls-ct-rotate")[0],
                            t = V.gui.timers.circle.$element.find(".ls-ct-left .ls-ct-rotate")[0],
                            i = V.slides[V.transitions.curNext].data.duration;
                        this._transition = new H.TimelineMax({
                            paused: !0
                        }).fromTo(V.gui.timers.circle.$element[0], V.transitions.timers.defaults.fadeInDuration, {
                            autoCSS: !1,
                            immediateRender: !0,
                            css: {
                                opacity: 0,
                                display: "block"
                            }
                        }, {
                            autoCSS: !1,
                            css: {
                                opacity: V.gui.timers.circle.$element.data("original").opacity
                            }
                        }).fromTo(e, i / 2, {
                            autoCSS: !1,
                            css: {
                                rotation: 0
                            }
                        }, {
                            autoCSS: !1,
                            css: {
                                rotation: 180
                            },
                            ease: H.Linear.easeNone
                        }, 0).fromTo(t, i / 2, {
                            autoCSS: !1,
                            css: {
                                rotation: 0
                            }
                        }, {
                            autoCSS: !1,
                            css: {
                                rotation: 180
                            },
                            ease: H.Linear.easeNone
                        }, i / 2)
                    }
                },
                slidebar: {
                    reset: function() {
                        this._transition && (this._transition.kill(), this._transition = !1)
                    },
                    createTransition: function() {
                        var i = this;
                        i._transition = new H.TimelineMax({
                            paused: !0,
                            onReverseComplete: function() {
                                V.transitions.timers.slidebar._transition = !1
                            }
                        }), X.each(V.gui.timers.slidebar.$sliderContainerElement, function(t, e) {
                            i._transition.add(H.TweenMax.fromTo(V.gui.timers.slidebar.$sliderContainerElement[t][0], V.slides[V.transitions.curNext].data.duration, {
                                autoCSS: !1,
                                css: {
                                    left: 0
                                }
                            }, {
                                autoCSS: !1,
                                css: {},
                                ease: H.Linear.easeNone,
                                onComplete: function(e) {
                                    e.target.style.left = "calc( 100% - " + V.gui.timers.slidebar.sliderContainerElementWidth[t] + "px )"
                                },
                                onCompleteParams: ["{self}"],
                                onUpdate: function(e) {
                                    e.target.style.left = (V.gui.timers.slidebar.containerElementWidth[t] - V.gui.timers.slidebar.sliderContainerElementWidth[t]) * e.progress() + "px"
                                },
                                onUpdateParams: ["{self}"]
                            }), 0), i._transition.add(H.TweenMax.fromTo(V.gui.timers.slidebar.$progressBarElement[t][0], V.slides[V.transitions.curNext].data.duration, {
                                autoCSS: !1,
                                css: {
                                    width: 0
                                }
                            }, {
                                autoCSS: !1,
                                css: {},
                                ease: H.Linear.easeNone,
                                onComplete: function(e) {
                                    e.target.style.width = "100%"
                                },
                                onCompleteParams: ["{self}"],
                                onUpdate: function(e) {
                                    e.target.style.width = V.gui.timers.slidebar.elementWidth[t] * e.progress() + "px"
                                },
                                onUpdateParams: ["{self}"]
                            }), 0)
                        })
                    }
                }
            }
        }, V.plugins = {
            load: function() {
                var e, a;
                V.o.plugins && 0 !== V.o.plugins.length ? (e = V.o.plugins[0], a = "object" == typeof e ? e.namespace : e, window._layerSlider.plugins[a] ? (V.plugins.init(a, e, !0), V.plugins.load()) : V.browser.usesFileProtocol || "object" != typeof e ? (V.browser.usesFileProtocol ? window.console && (console.error(V.defaults.slider.errorText, "Cannot load plugins on file:// protocol."), console.info("Please include the plugin files manually.")) : window.console && (console.error(V.defaults.slider.errorText, "Plugin files are missing!"), console.info('Plugin "' + a + '" has been added in slider init options, but the source files are not found on page.')), V.o.plugins.splice(0, 1), V.plugins.load()) : -1 === window._layerSlider.pluginsBeingLoaded.indexOf(a) ? -1 === window._layerSlider.pluginsLoaded.indexOf(a) && -1 === window._layerSlider.pluginsNotLoaded.indexOf(a) ? (window._layerSlider.pluginsBeingLoaded.push(a), X.ajax({
                    url: -1 === e.js.indexOf("http://") && -1 === e.js.indexOf("https://") ? (window._layerSlider.pluginsPath || window._layerSlider.scriptPath + "/../plugins/") + e.js : e.js,
                    dataType: "script",
                    success: function() {
                        V.plugins.init(e.namespace, e, !0), window._layerSlider.pluginsLoaded.push(a)
                    },
                    error: function(e, t, i) {
                        window.console && (console.error(V.defaults.slider.errorText, a, "plugin has not been loaded!"), console.error("Additional error info:", i)), window._layerSlider.pluginsNotLoaded.push(a)
                    },
                    complete: function() {
                        window._layerSlider.pluginsBeingLoaded.splice(window._layerSlider.pluginsBeingLoaded.indexOf(a), 1), V.plugins.load()
                    }
                })) : (V[a] || -1 !== window._layerSlider.pluginsNotLoaded.indexOf(a) ? V.o.plugins.splice(0, 1) : V.plugins.init(a, e), V.plugins.load()) : V.plugins.checkLoaded(a)) : V.slider.check.initialized()
            },
            init: function(e, t, i) {
                V.initializedPlugins[e] = new window._layerSlider.plugins[e](V, B, W, t.settings), window._layerSlider.checkVersions(V.initializedPlugins[e].pluginData.requiredLSVersion, V.plugin.version) ? (t.css && i && X('<link rel="stylesheet" href="' + (-1 === t.css.indexOf("http://") && -1 === t.css.indexOf("https://") ? (window._layerSlider.pluginsPath || window._layerSlider.scriptPath + "/../plugins/") + t.css : t.css) + '">').appendTo("head"), V.initializedPlugins[e].init && V.initializedPlugins[e].init()) : window.console && console.error(V.defaults.slider.errorText, e, "plugin has not been loaded! Required LayerSlider version:", V.initializedPlugins[e].pluginData.requiredLSVersion, "(you have:", V.plugin.version + ")"), V.o.plugins.splice(0, 1)
            },
            checkLoaded: function(e) {
                V.intervals.pluginLoaded = setInterval(function() {
                    -1 === window._layerSlider.pluginsLoaded.indexOf(e) && -1 === window._layerSlider.pluginsNotLoaded.indexOf(e) || -1 !== window._layerSlider.pluginsBeingLoaded.indexOf(e) || (clearInterval(V.intervals.pluginLoaded), delete V.intervals.pluginLoaded, V.plugins.load())
                }, 100)
            }
        }, V.slider = {
            shouldResize: !0,
            thumbnails: [],
            state: {
                isHidden: !1,
                isPaused: !1,
                preloadingImages: !1,
                changingSlides: !1,
                animatingSlides: !1
            },
            isBusy: function() {
                return this.state.preloadingImages || this.state.changingSlides || this.state.animatingSlides
            },
            checkVisibility: function() {
                !!V.slider.$innerWrapper.width() ? (this.state.isHidden && V.resize.all(), this.state.isHidden = !1) : this.state.isHidden = !0
            },
            load: function() {
                if (!document.body.contains($)) return !1;
                V.api.hasEvent("sliderWillLoad") && V.api.triggerEvent("sliderWillLoad"), V.slider.set.global()
            },
            set: {
                global: function() {
                    var e;
                    V.originalMarkup = B[0].outerHTML, V.userInitOptions = V.functions.convert.properties(V.functions.convert.oldProperties(i)), V.meta = {}, V.o = X.extend(!0, {}, V.defaults.init.options, V.userInitOptions), V.o.forceLayersOutDuration /= 1e3, V.o.forceLayersOutDuration = 0 < V.o.forceLayersOutDuration ? V.o.forceLayersOutDuration : .75, V.o.sliderFadeInDuration /= 1e3, window.console && !0 !== V.o.hideWelcomeMessage && !0 !== window._layerSlider.hideWelcomeMessage && (window._layerSlider.hideWelcomeMessage = !0, t = window.console.info ? "info" : "log", e = window.LS_Meta && window.LS_Meta.v ? " | WP Plugin: " + window.LS_Meta.v : "", console[t]("LayerSlider initialized | core: " + V.plugin.version + "-" + V.plugin.release + e), console[t]("Find updates and docs @ https://layerslider.com/"));
                    var t = {
                        namespace: "debug",
                        js: "debug/layerslider.debug.js",
                        css: "debug/layerslider.debug.css"
                    }; - 1 !== document.location.hash.indexOf("debug") && window.console && (-1 !== document.location.hash.indexOf("url=") && (window._layerSlider.pluginsPath = document.location.hash.split("url=")[1].split("&")[0], t.js = window._layerSlider.pluginsPath + "debug/layerslider.debug.js", t.css = window._layerSlider.pluginsPath + "debug/layerslider.debug.css"), "object" == typeof V.o.plugins ? V.o.plugins.push(t) : V.o.plugins = [t]), (window._layerSlider.currentScript || window._layerSlider.lsScript) && (window._layerSlider.scriptPath = (window._layerSlider.currentScript || window._layerSlider.lsScript).src.replace(/\\/g, "/").replace(/\/[^\/]*$/, "")), "object" == typeof V.o.plugins ? V.plugins.load() : V.slider.check.initialized()
                },
                styles: function() {
                    var e, t, i, a, s, o, r, n, l, d, u, c, p, h, m, f, g, y, v = V.slider,
                        b = B.parent(),
                        w = $.style,
                        S = window.getComputedStyle($, null),
                        x = parseInt($.clientWidth),
                        T = parseInt($.clientHeight),
                        C = parseInt(b.width()),
                        k = parseInt(b.height()),
                        P = V.o.layersContainerWidth,
                        I = V.o.layersContainerHeight,
                        O = V.o.type.toLowerCase();
                    switch (V.debugMode && V.debug.add("group", "sliderInit.style"), V.o.width ? e = -1 == V.o.width.indexOf("%") ? parseInt(V.o.width) : V.o.width : w.width ? e = -1 == w.width.indexOf("%") ? parseInt(w.width) : w.width : 0 < P ? (e = P, V.debugMode && V.debug.add("warn", "sliderInit.noWidth", P)) : (e = x, V.debugMode && V.debug.add("warn", "sliderInit.noWidth2", x)), i = e, V.o.height ? t = -1 == V.o.height.indexOf("%") ? parseInt(V.o.height) : V.o.height : w.height ? t = -1 == w.height.indexOf("%") ? parseInt(w.height) : w.height : 0 < I ? (t = I, V.debugMode && V.debug.add("warn", "sliderInit.noHeight", I)) : (t = T, V.debugMode && V.debug.add("warn", "sliderInit.noHeight2", k)), a = t, s = "" !== w.maxWidth ? -1 === w.maxWidth.indexOf("%") ? parseInt(w.maxWidth) : w.maxWidth : 0, void 0 === V.userInitOptions.type && (0 < P && 0 < I || "100%" === e && "100%" === t ? O = "fullsize" : P <= 0 && I <= 0 && (V.o.responsiveUnder <= 0 || 0 < V.o.responsiveUnder && V.o.sliderVersion) ? O = void 0 !== V.o.responsive && !1 === V.o.responsive ? "fixedsize" : "responsive" : 0 < V.o.responsiveUnder && (O = "fullwidth")), O) {
                        case "fullwidth":
                            -1 !== e.indexOf("%") && (V.debugMode && V.debug.add("warn", "sliderInit.percWidth", [O, e, x]), e = x), P <= 0 && (P = e, V.debugMode && V.debug.add("warn", "sliderInit.conWidth", [O, e])), V.o.responsiveUnder <= 0 && (V.o.responsiveUnder = P, V.debugMode && V.debug.add("warn", "sliderInit.fullwidth", P)), -1 !== t.indexOf("%") && (r = k / (100 / parseInt(t)), V.debugMode && V.debug.add("warn", "sliderInit.fullwidth2", [O, t, r]), t = r), I <= 0 && (I = t);
                            break;
                        case "fullsize":
                            -1 !== e.indexOf("%") && (o = 0 < P ? P : C, V.debugMode && V.debug.add("warn", "sliderInit.fullsize", [O, e, o, C, P]), e = o), P <= 0 && (P = e, V.debugMode && V.debug.add("warn", "sliderInit.conWidth", [O, e])), -1 !== t.indexOf("%") && (r = 0 < I ? I : X(window).height() / (100 / parseInt(t)), V.debugMode && V.debug.add("warn", "sliderInit.fullsize2", [O, t, r, X(window).height(), I]), t = r), I <= 0 && (I = t, V.debugMode && V.debug.add("warn", "sliderInit.conHeight", [O, t]));
                            break;
                        case "fixedsize":
                            break;
                        default:
                            V.userInitOptions.type = V.o.type = O = "responsive", (V.o.responsiveUnder = -1) !== e.indexOf("%") && (e = x, V.debugMode && V.debug.add("warn", "sliderInit.percWidth", [O, e, x])), -1 !== t.indexOf("%") && (e = T, V.debugMode && V.debug.add("warn", "sliderInit.responsive", [O, t, T])), V.debugMode && 0 < P && V.debug.add("warn", "sliderInit.conWidth2", [O, P]), V.debugMode && 0 < I && V.debug.add("warn", "sliderInit.conHeight2", [O, I])
                    }
                    B.addClass("ls-container ls-" + O), B.parent().addClass("ls-direction-fix"), V.o.preventSliderClip && V.o.fitScreenWidth && ("fullwidth" === O || "fullsize" === O && "fitheight" !== V.o.fullSizeMode) && B.parents(":not(body, html)").each(function() {
                        X(this).addClass("ls-overflow-visible")
                    }), V.userInitOptions.slideBGSize || "responsive" !== O || !V.userInitOptions.hasOwnProperty("sliderVersion") || V.userInitOptions.sliderVersion || (V.o.slideBGSize = "auto", V.debugMode && V.debug.add("warn", "sliderInit.bgCover", O)), V.o.slideBGSize = V.o.slideBGSize.replace("100% 100%", "stretch"), n = 0 < P ? P : e, l = 0 < I ? I : t, (d = "auto" === (y = $.style.marginLeft) ? "auto" : "" === y ? parseInt(S.getPropertyValue("margin-left")) : parseInt($.style.marginLeft)) === (u = "auto" === (g = $.style.marginRight) ? "auto" : "" === g ? parseInt(S.getPropertyValue("margin-right")) : parseInt($.style.marginRight)) && ("" === y && "" === g && (c = d, u = d = "auto"), B.css({
                        marginLeft: "auto",
                        marginRight: "auto"
                    })), p = "" !== w.paddingLeft ? parseInt(w.paddingLeft) : parseInt(B.css("padding-left")), m = "" !== w.paddingRight ? parseInt(w.paddingRight) : parseInt(B.css("padding-right")), h = "" !== w.paddingTop ? parseInt(w.paddingTop) : parseInt(B.css("padding-top")), f = "" !== w.paddingBottom ? parseInt(w.paddingBottom) : parseInt(B.css("padding-bottom")), b = "" !== w.borderLeftWidth ? parseInt(w.borderLeftWidth) : parseInt(B.css("border-left-width")), y = "" !== w.borderRightWidth ? parseInt(w.borderRightWidth) : parseInt(B.css("border-right-width")), g = "" !== w.borderTopWidth ? parseInt(w.borderTopWidth) : parseInt(B.css("border-top-width")), w = "" !== w.borderBottomWidth ? parseInt(w.borderBottomWidth) : parseInt(B.css("border-bottom-width")), v.initial = {
                        type: O,
                        width: e,
                        height: t,
                        originalWidth: i,
                        originalHeight: a,
                        percW: e / 100,
                        percH: t / 100,
                        layersWidth: P,
                        layersHeight: I,
                        ratio: n / l,
                        maxWidth: s,
                        marginLeft: d,
                        marginRight: u,
                        paddingLeft: p,
                        paddingTop: h,
                        paddingRight: m,
                        paddingBottom: f,
                        borderLeftWidth: b,
                        borderTopWidth: g,
                        borderRightWidth: y,
                        borderBottomWidth: w,
                        skinWidth: p + m + b + y,
                        skinHeight: h + f + g + w
                    }, V.debugMode && (V.debug.add("log", "sliderInit.style", [e, t, i, a, P, I, parseInt(n / l * 100) / 100, 0 < s ? s : void 0, [d, u]]), c && V.debug.add("warn", "sliderInit.margin", c)), X("html").attr("id") ? X("body").attr("id") || X("body").attr("id", "ls-global") : X("html").attr("id", "ls-global"), "static" !== S.getPropertyValue("position") && "absolute" !== S.getPropertyValue("position") && ($.style.position = "relative"), V.o.insertSelector && B[V.o.insertMethod](V.o.insertSelector), V.slider.$hiddenWrapper = X('<div class="ls-wp-container fitvidsignore ls-hidden" data-layerslider-uid="' + W + '"></div>').addClass(B.attr("class")).prependTo("body"), V.slider.$innerWrapper = X('<div class="ls-inner"></div>'), V.slider.$slideBGColorWrapper = X('<div class="ls-slide-bgcolor"></div>').appendTo(V.slider.$innerWrapper), V.slider.$layersWrapper = X('<div class="ls-layers"></div>').appendTo(V.slider.$innerWrapper), V.slider.$bgVideosWrapper = X('<div class="ls-background-videos"></div>').appendTo(V.slider.$layersWrapper), V.slider.$slideBGWrapper = X('<div class="ls-slide-backgrounds"></div>').appendTo(V.slider.$layersWrapper), V.slider.$innerWrapper.appendTo(B), !0 === V.o.hideOnMobile && V.device.isMobile ? (B.addClass("ls-forcehide"), B.closest(".ls-wp-fullwidth-container").addClass("ls-forcehide"), V.o.autoStart = !1) : V.slider.check.showHide();
                    let L = !1; - 1 == V.o.globalBGColor.indexOf("gradient") ? V.slider.$innerWrapper.css({
                        backgroundColor: V.o.globalBGColor
                    }) : (L = V.o.globalBGColor, V.o.globalBGColor = "transparent"), V.o.globalBGImage ? V.slider.$innerWrapper.css({
                        backgroundImage: "url( " + V.o.globalBGImage + " )" + (L ? ", " + L : ""),
                        backgroundRepeat: V.o.globalBGRepeat,
                        backgroundAttachment: V.o.globalBGAttachment,
                        backgroundSize: V.o.globalBGSize,
                        backgroundPosition: V.o.globalBGPosition
                    }) : L && V.slider.$innerWrapper.css({
                        backgroundImage: L
                    }), "transparent" == V.o.globalBGColor && !1 === V.o.globalBGImage && V.slider.$innerWrapper.css({
                        background: "none transparent"
                    })
                },
                options: function() {
                    var t, i, a, s, o;
                    X("html").find('meta[content*="WordPress"]').length && (V.meta.wpVersion = X("html").find('meta[content*="WordPress"]').attr("content").split("WordPress")[1]), window.LS_Meta && window.LS_Meta.v ? V.meta.lswpVersion = window.LS_Meta.v : X("html").find('script[src*="layerslider"]').length && -1 != X("html").find('script[src*="layerslider"]').attr("src").indexOf("?") && (V.meta.lswpVersion = X("html").find('script[src*="layerslider"]').attr("src").split("?")[1].split("=")[1]), "undefined" != typeof layerSliderTransitions && (V.t = X.extend({}, layerSliderTransitions)), "undefined" != typeof layerSliderCustomTransitions && (V.ct = X.extend({}, layerSliderCustomTransitions)), V.debugMode && ("undefined" != typeof layerCustomSliderTransitions ? (V.debug.add("log", "sliderInit.customTransitions", !1), "undefined" == typeof layerSliderTransitions && V.debug.add("warn", "sliderInit.slideTransitions")) : "undefined" == typeof layerSliderTransitions && V.debug.add("warn", "sliderInit.noSlideTransitions")), "number" == typeof V.o.parallaxCenterDegree && (V.transitions.layers.parallax.defaults.centerDegree = V.o.parallaxCenterDegree), "number" == typeof V.o.parallaxSensitivity && (V.transitions.layers.parallax.defaults.sensitive = V.o.parallaxSensitivity), V.o.parallaxCenterLayers && (V.transitions.layers.parallax.defaults.centerLayers = V.o.parallaxCenterLayers), V.o.scrollCenterLayers && (V.transitions.layers.scroll.defaults.centerLayers = V.o.scrollCenterLayers), V.o.playByScroll && (V.o.cycles = -1, V.o.startInViewport = !0, V.o.pauseOnHover = !1, V.o.autoStart = !1), V.device.isMobile && (V.o.pauseOnHover = !1), X(window).on("hashchange." + W, function() {
                        document.location.hash && V.slides.deeplink(document.location.hash)
                    }), V.o.startInViewport && (V.slider.positionToViewport = V.device.winScrollTop > V.slider.offsetTop - (V.device.viewportHeight - V.slider.height) / 2 ? "under" : "over", V.o.playByScroll ? (t = !0, i = 4 * V.o.playByScrollSpeed, V.device.scroll.timeout = 250, V.transitions.layers.timeline.timeScaleModifier = 0, X(document).on("wheel." + W + " touchmove." + W, function(e) {
                        V.device.isMobile ? (a = e.originalEvent.touches[0].clientY, s < a ? V.device.scroll.direction = "up" : a < s && (V.device.scroll.direction = "down"), o = s - a, s = a) : (0 < e.originalEvent.deltaY ? V.device.scroll.direction = "down" : V.device.scroll.direction = "up", o = e.originalEvent.deltaY), 0 !== Math.abs(o) && (V.device.scroll.lastDirection ? V.device.scroll.lastDirection !== V.device.scroll.direction && (V.device.scroll.lastDirection = V.device.scroll.direction, V.transitions.layers.timeline.timeScaleModifier = 0) : V.device.scroll.lastDirection = V.device.scroll.direction, "inside" === V.slider.positionToViewport && (V.resize.viewport(), 0 <= o ? V.transitions.layers.timeline.scrollForward() : V.transitions.layers.timeline.scrollBackwards(), t && (clearTimeout(V.timeouts.scroll), t = !1, V.transitions.layers.timeline.timeScaleModifier = V.transitions.layers.timeline.timeScaleModifier < i ? V.transitions.layers.timeline.timeScaleModifier + .25 : i, V.timeouts.scroll2 = setTimeout(function() {
                            delete V.timeouts.scroll2, t = !0, V.device.scroll.timeout = 50 < V.device.scroll.timeout ? V.device.scroll.timeout - 50 : 50
                        }, V.device.scroll.timeout))), V.slider.check.positionToViewport())
                    })) : X(window).on("scroll." + W, function() {
                        V.slider.check.positionToViewport()
                    }), V.timeouts.checkPosition = setTimeout(function() {
                        V.slider.check.positionToViewport()
                    }, 25)), V.slider.canShow = !0
                },
                attributes: function() {
                    B.attr("data-current-slide", V.slides.current.index)
                }
            },
            check: {
                initialized: function() {
                    V.debugMode && V.debug.add("log", "sliderInit.info", [V.plugin.version, V.plugin.releaseDate, V.userInitOptions.sliderVersion || "n/a or slider version is pre 6.0.0", B.attr("id"), W, X.fn.jquery, V.meta.lswpVersion, V.meta.wpVersion], !0), V.slider.initialized || (V.slider.initialized = !0, this.skins())
                },
                skins: function() {
                    V.o.skin && "" !== V.o.skin && V.o.skinsPath && "" !== V.o.skinsPath ? V.gui.skin.load() : V.slider.init()
                },
                showHide: function() {
                    V.device.isMobile && !1 !== V.o.hideOnMobile || (V.device.viewportWidth < V.o.hideUnder || V.device.viewportWidth > V.o.hideOver && 0 < V.o.hideOver ? V.slider.hide() : V.slider.show())
                },
                positionToViewport: function() {
                    var e, t;
                    delete V.timeouts.checkPosition, V.o.playByScroll ? V.device.scroll.direction && (t = "down" === V.device.scroll.direction ? V.device.winScrollTop : V.slider.offsetTop - (V.device.viewportHeight - V.slider.height) / 2, (("down" === V.device.scroll.direction ? V.slider.offsetTop - (V.device.viewportHeight - V.slider.height) / 2 : V.device.winScrollTop) < t && ("up" === V.device.scroll.direction && "under" === V.slider.positionToViewport || "down" === V.device.scroll.direction && "over" === V.slider.positionToViewport) || V.device.docHeight <= V.device.viewportHeight || V.slider.height < V.device.viewportHeight && ("up" === V.device.scroll.direction && V.device.winScrollTop <= 0 && V.slider.offsetTop + V.slider.height / 2 < V.device.viewportHeight / 2 || "down" === V.device.scroll.direction && V.device.winScrollTop >= V.device.docHeight - V.device.viewportHeight && V.slider.offsetTop + V.slider.height / 2 > V.device.winScrollTop + V.device.viewportHeight / 2)) && (V.slider.positionToViewport = "inside", V.resize.viewport(), V.device.scroll.disable())) : (e = V.device.winScrollTop + V.device.viewportHeight / 2, t = V.slider.offsetTop + V.slider.height / 2, (Math.abs(e - t) < V.device.viewportHeight / 2 || V.device.winScrollTop < V.slider.offsetTop && V.device.winScrollTop + V.device.viewportHeight > V.slider.offsetTop + V.slider.height) && (V.slider.positionToViewport = "inside", X(window).off("scroll." + W), V.debugMode && V.debug.add("log", "slideshow.inviewport", !1), V.transitions._slideTimeline && V.transitions.layers.timeline.play()))
                }
            },
            init: function() {
                clearTimeout(V.timeouts.skinLoad1), clearTimeout(V.timeouts.skinLoad2), clearTimeout(V.timeouts.skinLoad3), clearTimeout(V.timeouts.skinLoad4), V.device.setBasicEvents(), V.slider.set.styles(), V.slider.set.options(), V.slides.init(), V.device.fullscreen.set(), V.media.init(), V.gui.timers.init(), V.gui.loadingIndicator.init(), V.preload.init(), V.gui.shadow.init(), V.navigation.init(), V.slideshow.init(), V.slides.set.firstSlide(), V.gui.navigation.init(), V.gui.media.init(), V.resize.slider(), V.yourLogo.init(), X(window).on("resize." + W, function() {
                    V.slider.check.showHide(), "inside" === V.slider.positionToViewport && V.o.playByScroll && V.resize.viewport(), V.slider.shouldResize && V.resize.all()
                }), V.debugMode && (X(window).off(".debug" + W), X(window).on("resize.debug" + W, function() {
                    V.debug.add("log", "resize.window", V.device.viewportWidth, !0)
                })), X(window).on("orientationchange." + W, function() {
                    V.device.getDimensions(), V.resize.all()
                }), V.device.getDimensions(), X(window).trigger("resize." + W), X(window).trigger("orientationchange." + W), V.o.refreshWaypoint && window.Waypoint && Waypoint.refreshAll(), V.api.hasEvent("sliderDidLoad") && V.api.triggerEvent("sliderDidLoad", V.api.eventData()), V.functions.setStates(V.slider, {
                    isLoaded: !0
                }), V.slider.state.shouldBeDestroyed ? V.api.methods("destroy") : ((-1 < V.o.hideOver || -1 < V.o.hideUnder || "fullsize" == V.slider.initial.type && "hero" == V.o.fullSizeMode) && !V.intervals.checkSliderOffset && (V.intervals.checkSliderOffset = setInterval(function() {
                    V.device.checkSliderOffset()
                }, 100)), V.intervals.checkSliderVisibility = setInterval(function() {
                    V.slider.checkVisibility()
                }, 500), V.slideshow.changeTo(V.slides.first.index))
            },
            hide: function() {
                B.addClass("ls-forcehide"), B.closest(".ls-wp-fullwidth-container").addClass("ls-forcehide"), B.closest(".ls-popup").addClass("ls-forcehide"), B.closest(".ls-popup").prev(".ls-popup-overlay").addClass("ls-forcehide")
            },
            show: function() {
                B.removeClass("ls-forcehide"), B.closest(".ls-wp-fullwidth-container").removeClass("ls-forcehide"), B.closest(".ls-popup").removeClass("ls-forcehide"), B.closest(".ls-popup").prev(".ls-popup-overlay").removeClass("ls-forcehide")
            }
        }, V.functions = {
            convert: {
                transformOrigin: function(e, t, i, a) {
                    for (var s = (l = X.trim(e)).split(" "), o = "", r = ["Left", "Top"], n = [V.slider.width, V.slider.height], l = l.replace("sliderleft", "0").replace("sliderright", "100%").replace("slidercenter", "50%").replace("slidermiddle", "50%").replace("slidertop", "0").replace("sliderbottom", "100%").replace("left", "0").replace("right", "100%").replace("center", "50%").replace("middle", "50%").replace("top", "0").replace("bottom", "100%").split(" "), d = 0; d < l.length; d++)
                        if (-1 !== s[d].indexOf("slider")) {
                            V.transitions.layers.timeline.shouldRestart = !0;
                            var u = i[0].style;
                            o += d < 2 ? n[d] / (100 / parseInt(l[d])) - parseInt(u[r[d].toLowerCase()]) - parseInt(u["margin" + r[d]]) + "px " : "0px"
                        } else {
                            if (d < 2 && t && a) switch (d) {
                                case 0:
                                    n = a.width();
                                    break;
                                case 1:
                                    n = a.height()
                            } - 1 !== l[d].indexOf("%") ? o += d < 2 && t && a ? n / (100 / parseInt(l[d])) + "px " : l[d] + " " : o += parseInt(l[d]) * V.resize.ratio + "px "
                        }
                    return X.trim(o)
                },
                easing: function(e, t) {
                    return "string" != typeof e ? e : (-1 !== (e = e.toLowerCase()).indexOf("swing") || -1 !== e.indexOf("linear") ? i = H.Linear.easeNone : (a = e.match(/(easeinout|easein|easeout)(.+)/)[2], a = H[a.charAt(0).toUpperCase() + a.slice(1)], -1 !== e.indexOf("easeinout") ? i = a.easeInOut : -1 !== e.indexOf("easeout") ? i = t ? a.easeIn : a.easeOut : -1 !== e.indexOf("easein") && (i = t ? a.easeOut : a.easeIn)), i);
                    var i, a
                },
                transition: function(e, t, i, a) {
                    var s = X.extend({}, e);
                    return X.each({
                        rotate: "rotation",
                        rotateX: "rotationX",
                        rotateY: "rotationY"
                    }, function(e, t) {
                        e in s && (s[t] = s[e], delete s[e])
                    }), "after" === i ? s.scaleX = s.scaleY = s.scaleZ = 1 : s.scale3d !== a && (s.scaleX = s.scaleY = s.scaleZ = s.scale3d, delete s.scale3d), s.delay && (s.delay = "after" === i ? s.delay / 1e3 : s.delay), void 0 === t && (t = "easeInOutQuart"), s.ease = V.functions.convert.easing(t), s
                },
                randomProperties: function(e, t) {
                    if (e && -1 !== e.indexOf("(") && -1 !== e.indexOf(",") && -1 !== e.indexOf(")")) {
                        var i = e.split("(")[1].split(")")[0].split(","),
                            a = 1;
                        return i[0] = parseFloat(i[0]), i[1] = parseFloat(i[1]), -1 !== t.indexOf("scale") && (a = 100, i[0] *= a, i[1] *= a), Math.floor(Math.random() * (i[1] - i[0] + 1) + i[0]) / a
                    }
                    return e
                },
                properties: function(e, t) {
                    if ("string" == typeof e) return V.functions.convert._properties(e, t);
                    if ("object" != typeof e) return e;
                    for (var i in e) e[i] = V.functions.convert._properties(e[i], t);
                    return e
                },
                _properties: function(e, t) {
                    if ("enable" == e || "enabled" == e || "true" == e) return !0;
                    if ("disable" == e || "disabled" == e || "false" == e) return !1;
                    if ("string" != typeof e || -1 === e.indexOf(V.defaults.init.lsDataArraySplitChar)) return t ? "" + parseInt(e) == "NaN" ? 0 : parseInt(e) : X.isNumeric(e) ? parseFloat(e) : e;
                    for (var i = e.split(V.defaults.init.lsDataArraySplitChar), a = [], s = 0; s < i.length; s++) a[s] = X.isNumeric(i[s]) ? parseFloat(X.trim(i[s])) : X.trim(i[s]);
                    return a
                },
                oldProperties: function(i) {
                    return X.each({
                        firstLayer: "firstSlide",
                        loops: "cycles",
                        forceLoopNum: "forceCycles",
                        layersContainer: "layersContainerWidth",
                        sublayerContainer: "layersContainerWidth",
                        randomSlideshow: "shuffleSlideshow"
                    }, function(e, t) {
                        e in i && (i[t] = i[e], delete i[e])
                    }), i
                }
            },
            getSliderClosestParentElementWidthNumericValueOfProperty: function(e) {
                for (var t, i = B.parents().not(".ls-fullscreen-wrapper"), a = i.length, s = 100, o = 0; o < a; o++)
                    if ("auto" !== (t = window.getComputedStyle(i[o]).getPropertyValue(e))) {
                        if (-1 !== t.indexOf("px")) return V.slider.$parentWithNumericWidthValue = X(i[o]), X(i[o]); - 1 !== t.indexOf("%") && (s = s / 100 * parseInt(t), V.slider.$parentWithNumericWidthValuePercent = s)
                    }
            },
            sortArray: function(e, t, i) {
                var a = [];
                if ("forward" == i)
                    for (var s = 0; s < e; s++)
                        for (var o = 0; o < t; o++) a.push(s + o * e);
                else
                    for (var r = e - 1; - 1 < r; r--)
                        for (var n = t - 1; - 1 < n; n--) a.push(r + n * e);
                return a
            },
            shuffleArray: function(e) {
                for (var t, i, a = e.length; 0 !== a;) i = Math.floor(Math.random() * a), t = e[--a], e[a] = e[i], e[i] = t;
                return e
            },
            countProp: function(e) {
                var t, i = 0;
                for (t in e) e.hasOwnProperty(t) && ++i;
                return i
            },
            getURL: function(e) {
                return e[0].currentSrc || (e.data("src") ? e.data("src") : e.attr("src"))
            },
            getALT: function(e) {
                return !!e.attr("alt") && e.attr("alt")
            },
            setStates: function(e, t, i) {
                if (e && e.state) {
                    var a = V.slideshow.isPaused();
                    if (i) e.state[t] = i;
                    else
                        for (var s in t) e.state[s] = t[s];
                    i = V.slideshow.isPaused();
                    e == V.slideshow && (V.api.hasEvent("slideshowStateDidChange") && V.api.triggerEvent("slideshowStateDidChange", V.api.eventData()), i != a && (i ? V.api.hasEvent("slideshowDidPause") && V.api.triggerEvent("slideshowDidPause", V.api.eventData()) : V.api.hasEvent("slideshowDidResume") && V.api.triggerEvent("slideshowDidResume", V.api.eventData())))
                }
            },
            clearTimers: function() {
                for (var e in V.timeouts) clearTimeout(V.timeouts[e]), delete V.timeouts[e];
                for (var t in V.intervals) clearInterval(V.intervals[t]), delete V.intervals[t]
            },
            clearTimelines: function() {
                V.transitions._slideTimeline && (V.transitions._slideTimeline.pause().clear().kill(), delete V.transitions._slideTimeline), V.transitions._forceLayersOut && (V.transitions._forceLayersOut.kill(), delete V.transitions._forceLayersOut), V.transitions._slideTransition && (V.transitions._slideTransition.pause().clear().kill(), delete V.transitions._slideTransition), H.TweenMax.killTweensOf(B.find(".ls-bg, .ls-layer, .ls-wrapper, .ls-curtile, .ls-nexttile").get())
            },
            resetSlideTimelines: function() {
                V.transitions._slideTimeline && (V.transitions._slideTimeline.pause().progress(0).clear().kill(), delete V.transitions._slideTimeline), V.transitions._forceLayersOut && (V.transitions._forceLayersOut.pause().progress(1).clear().kill(), delete V.transitions._forceLayersOut), B.find(".ls-layer:not(.ls-bg-video)").each(function() {
                    var e = X(this).data(V.defaults.init.dataKey);
                    e.loop._timeline && (e.loop._timeline.stop().clear(), delete e.loop._timeline, H.TweenMax.set(e.elements.$loopWrapper[0], e.reset.loopWrapperOnSlideChange)), H.TweenMax.set(e.elements.$wrapper[0], e.reset.wrapperOnSlideChange)
                })
            },
            clearEvents: function() {
                X(window).add("body").add(B).add(B.find("*")).add("." + W).off("." + W + " .debug" + W + " .parallax" + W + " .scroll" + W + " .setter" + W), B.off()
            }
        }, V.device = {
            $overflowWrapper: X("body").length ? X("body") : X("html"),
            isMobile: !!navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|BB10|webOS|Windows Phone|mobi|opera mini|nexus 7)/i),
            supportOrientation: !!window.DeviceOrientationEvent,
            scroll: {
                keys: [32, 33, 34, 35, 36, 37, 38, 39, 40],
                disable: function() {
                    window.addEventListener("scroll", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.addEventListener("wheel", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.addEventListener("mousewheel", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.addEventListener("touchmove", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.addEventListener("keydown", this.preventDefaultForScrollKeys, {
                        capture: !0
                    })
                },
                enable: function() {
                    window.removeEventListener("scroll", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.removeEventListener("wheel", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.removeEventListener("mousewheel", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.removeEventListener("touchmove", this.preventDefault, {
                        passive: !1,
                        capture: !0
                    }), window.removeEventListener("keydown", this.preventDefaultForScrollKeys, {
                        capture: !0
                    })
                },
                preventDefault: function(e) {
                    (e = e || window.event).preventDefault && e.preventDefault(), e.returnValue = !1
                },
                preventDefaultForScrollKeys: function(e) {
                    if (-1 !== V.device.scroll.keys.indexOf(e.keyCode)) return V.device.scroll.preventDefault(e), !1
                }
            },
            removeSelection: function() {
                window.getSelection ? window.getSelection().empty ? window.getSelection().empty() : window.getSelection().removeAllRanges && window.getSelection().removeAllRanges() : document.selection && document.selection.empty()
            },
            fullscreen: {
                enter: function() {
                    "fullsize" == V.slider.initial.type && "hero" == V.o.fullSizeMode && (V.slider.heroTop = V.slider.offsetTop), V.functions.setStates(V.slider, {
                        inFullscreen: !0
                    }), X("body, html").addClass("ls-fullscreen"), V.slider.fullscreenWrapper.requestFullscreen(), B.trigger("mouseleave"), V.device.removeSelection()
                },
                exit: function() {
                    V.functions.setStates(V.slider, {
                        inFullscreen: !1
                    }), V.resize.all(), X("body, html").removeClass("ls-fullscreen"), V.device.removeSelection()
                },
                toggle: function() {
                    V.device.fullscreen.element() ? (V.device.fullscreen.exit(), document.exitFullscreen()) : V.device.fullscreen.enter()
                },
                set: function() {
                    V.o.allowFullscreen && (document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled) && (B.wrap('<div class="ls-fullscreen-wrapper"></div>'), V.slider.$fullscreenWrapper = B.closest(".ls-fullscreen-wrapper"), V.slider.fullscreenWrapper = V.slider.$fullscreenWrapper[0], V.slider.fullscreenWrapper.requestFullscreen = V.slider.fullscreenWrapper.requestFullscreen || V.slider.fullscreenWrapper.webkitRequestFullscreen || V.slider.fullscreenWrapper.mozRequestFullScreen || V.slider.fullscreenWrapper.msRequestFullscreen, document.exitFullscreen = document.exitFullscreen || document.webkitExitFullscreen || document.mozCancelFullScreen || document.msExitFullscreen, X(document).on("fullscreenchange." + W + " webkitfullscreenchange." + W + " mozfullscreenchange." + W + " msfullscreenchange." + W, function() {
                        V.device.fullscreen.element() || V.device.fullscreen.exit()
                    }), V.slider.$fullscreenWrapper.on("dblclick." + W, function() {
                        V.device.fullscreen.toggle()
                    }))
                },
                element: function() {
                    return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement
                }
            },
            getDimensions: function() {
                this.width = screen.width, this.height = screen.height, this.viewportWidth = X(window).width(), this.viewportHeight = X(window).height(), this.docWidth = X(document).width(), this.docHeight = X(document).height(), this.winScrollTop = X(window).scrollTop(), this.winScrollLeft = X(window).scrollLeft(), this.ratio = this.width / this.height, this.checkSliderOffset()
            },
            checkSliderOffset: function() {
                "none" !== B.css("display") && (V.slider.offsetTopOld = V.slider.offsetTop || Math.round(B.offset().top), V.slider.offsetLeftOld = V.slider.offsetLeft || Math.round(B.offset().left), V.slider.offsetTop = Math.round(B.offset().top), V.slider.offsetLeft = Math.round(B.offset().left), V.slider.offsetTopOld === V.slider.offsetTop && V.slider.offsetLeftOld === V.slider.offsetLeft || (V.resize.all(), V.slider.check.positionToViewport(), X(window).trigger("scroll")))
            },
            setBasicEvents: function() {
                var t, i = this;
                X(window).on("resize.setter" + W, function() {
                    i.viewportWidth = X(window).width(), i.viewportHeight = X(window).height(), i.ratio = i.width / i.height, i.checkSliderOffset()
                }), X(window).on("scroll.setter" + W, function() {
                    i.winScrollTop = X(window).scrollTop(), i.winScrollLeft = X(window).scrollLeft(), i.checkSliderOffset()
                }), X(window).on("touchmove", function(e) {
                    i.winScrollTop = window.pageYOffset, i.winScrollLeft = window.pageXOffset, 1 == (t = e.touches || e.originalEvent.touches).length && (i.touchX = t[0].clientX)
                })
            }
        }, V.api = {
            hasEvent: function(e, t) {
                t = X._data(t || $, "events");
                return !(!t || !t[e])
            },
            methods: function(e, t, i, a) {
                if (!V.slider.isBusy())
                    if ("number" == typeof e) 0 < e && e < V.slides.count + 1 && e != V.slides.current.index && V.slideshow.changeTo(e, !0, !0);
                    else switch (e) {
                        case "touchPrev":
                            V.device.touchPrev = !0;
                        case "previousSlide":
                        case "prev":
                            V.navigation.prev();
                            break;
                        case "touchNext":
                            V.device.touchNext = !0;
                        case "nextSlide":
                        case "next":
                            V.navigation.next();
                            break;
                        case "startSlideshow":
                        case "start":
                            V.navigation.start()
                    }
                    switch (e) {
                        case "openPopup":
                            V.initializedPlugins.popup && (t && X.isNumeric(t) ? B.layerSlider("fastChangeTo", t, function() {
                                V.initializedPlugins.popup.events.show()
                            }) : V.initializedPlugins.popup.events.show());
                            break;
                        case "fastChangeTo":
                            t && X.isNumeric(t) && (V.slides.current.index !== t ? (V.slideshow.forceFastChange = !0, i && "function" == typeof i && (V.slideshow.forceFastChangeCallback = i), V.slideshow.changeTo(t, !0, !0)) : i && i());
                            break;
                        case "closePopup":
                            V.initializedPlugins.popup && V.initializedPlugins.popup.events.hide();
                            break;
                        case "closeAllPopups":
                            X('<div class="ls-close-all-popups-button"></div>').css("display", "none").appendTo("body").trigger("click").remove();
                            break;
                        case "updateLayerData":
                            t && V.layers.update.data(t, i, a);
                            break;
                        case "redrawSlider":
                        case "redraw":
                            V.resize.all();
                            break;
                        case "replaySlide":
                        case "replay":
                            V.transitions._slideTimeline && (V.transitions._slideTimeline.progress(0), V.transitions._slideTimeline.play());
                            break;
                        case "reverseSlide":
                        case "reverse":
                            V.transitions._slideTimeline && (V.transitions._slideTimeline.reversed() ? V.transitions._slideTimeline.play() : V.transitions._slideTimeline.reverse(), t && (V.transitions.layers.timeline.shouldReplay = !0));
                            break;
                        case "unmute":
                        case "unmuteMedia":
                            V.media.unmute.multipleMediaElements();
                            break;
                        case "stopSlideshow":
                        case "stop":
                            V.navigation.stop();
                            break;
                        case "pauseSlider":
                        case "pause":
                            V.transitions._slideTimeline && V.transitions._slideTimeline.stop(), V.transitions._slideTransition && V.transitions._slideTransition.stop(), V.media.functions.stop(!1);
                            break;
                        case "resumePopup":
                            V.layers.get("active").each(function() {
                                V.media.functions.playIfAllowed(X(this))
                            });
                        case "resumeSlider":
                        case "resume":
                            V.transitions._slideTimeline && (V.transitions._slideTimeline.timeScale() < .001 && V.transitions.layers.timeline.resume(), V.transitions._slideTimeline.play()), V.transitions._slideTransition && V.transitions._slideTransition.play();
                            break;
                        case "playMedia":
                            V.media.functions.playActiveMedia();
                            break;
                        case "pauseMedia":
                            V.media.functions.pauseActiveMedia();
                            break;
                        case "toggleSlider":
                        case "toggle":
                            V.slider.state.isPaused ? (B.layerSlider("resume"), V.slider.state.isPaused = !1) : (B.layerSlider("pause"), V.slider.state.isPaused = !0);
                            break;
                        case "reset":
                        case "resetSlider":
                            break;
                        case "resetSlide":
                        case "resetCurrentSlide":
                            V.transitions._slideTimeline && (V.transitions._slideTimeline.progress(0), V.transitions._slideTimeline.stop()), V.media.functions.stop(!0);
                            break;
                        case "destroy":
                        case "kill":
                            if (V.slider.state.isLoaded) {
                                if (V.functions.clearTimers(), V.functions.clearTimelines(), V.layers.$all.removeData(), V.api.hasEvent("sliderDidDestroy") && V.api.triggerEvent("sliderDidDestroy"), V.slider.state.sholudBeRemoved || t) {
                                    if (V.slider.$hiddenWrapper.remove(), V.gui.timers.slidebar.$containerElement)
                                        for (var s = 0; s < V.gui.timers.slidebar.$containerElement.length; s++) V.gui.timers.slidebar.$containerElement[s] instanceof jQuery && V.gui.timers.slidebar.$containerElement[s].remove();
                                    V.api.hasEvent("sliderDidRemove") && V.api.triggerEvent("sliderDidRemove");
                                    var o = B;
                                    o.closest(".ls-fullscreen-wrapper").length ? o = o.closest(".ls-fullscreen-wrapper") : o.closest(".ls-popup").length && (o = o.closest(".ls-popup")).prev(".ls-popup-overlay").remove(), o.remove()
                                }
                                V.functions.clearEvents(), window._layerSlider.removeSlider(W)
                            } else V.functions.setStates(V.slider, {
                                shouldBeDestroyed: !0,
                                sholudBeRemoved: t || !1
                            });
                            V.slider.positionToViewport = "under", V.device.scroll.enable()
                    }
            },
            eventData: function() {
                return {
                    data: V,
                    userData: V.o,
                    uid: W,
                    target: $,
                    slider: B,
                    state: V.slider.state,
                    isBusy: V.slider.isBusy(),
                    event: {
                        target: $
                    },
                    api: function(e, t, i, a) {
                        B.layerSlider(e, t, i, a)
                    },
                    slides: {
                        first: {
                            index: V.slides.first.index,
                            deeplink: V.slides.get.deeplink(V.slides.first.index),
                            data: V.slides.first.data
                        },
                        prev: {
                            index: V.slides.prev.index,
                            deeplink: V.slides.get.deeplink(V.slides.prev.index),
                            data: V.slides.prev.data
                        },
                        current: {
                            index: V.slides.current.index || V.slides.first.index,
                            deeplink: V.slides.get.deeplink(V.slides.current.index),
                            layersIn: V.layers.get("current,in"),
                            layersOut: V.layers.get("current,out"),
                            timeline: V.transitions._slideTimeline,
                            data: V.slides.current.data
                        },
                        next: {
                            index: V.slides.next.index,
                            deeplink: V.slides.get.deeplink(V.slides.next.index),
                            layersIn: V.layers.get("next,in"),
                            layersOut: V.layers.get("next,out"),
                            data: V.slides.next.data
                        },
                        count: V.slides.count
                    },
                    slideChangeTimeline: V.transitions._slideTransition,
                    slideshow: {
                        state: V.slideshow.state,
                        sequence: V.slideshow.sequence,
                        direction: V.slideshow.direction,
                        isPaused: V.slideshow.isPaused()
                    },
                    cycles: {
                        max: V.o.cycles,
                        current: V.slideshow.curCycle
                    }
                }
            },
            triggerEvent: function(t, e) {
                let i = null,
                    a = null;
                try {
                    i = e ? (a = B.triggerHandler(t + ".layerSlider", e), B.triggerHandler(t + ".$", e)) : (a = B.triggerHandler(t + ".layerSlider"), B.triggerHandler(t + ".$"))
                } catch (e) {
                    console.error('LayerSlider: Error while calling event "' + t + '":\n\r\n\r', e)
                }
                return null !== a ? a : null !== i ? i : void 0
            }
        }, V.browser = {
            isSafari: !!navigator.userAgent.match(/(iPhone|iPod|iPad|Safari)/i) && !navigator.userAgent.match(/(Opera|Chrome|Edge)/i),
            isChrome: function() {
                var e = window.chrome,
                    t = window.navigator,
                    i = t.vendor,
                    a = void 0 !== window.opr,
                    s = -1 < t.userAgent.indexOf("Edge"),
                    s = !!t.userAgent.match("CriOS") || null != e && "Google Inc." === i && !1 == a && !1 == s;
                return s
            },
            usesFileProtocol: -1 !== document.location.href.indexOf("file://"),
            supports3D: function() {
                for (var e = X("<div>"), t = !1, i = !1, a = ["perspective", "OPerspective", "msPerspective", "MozPerspective", "WebkitPerspective"], s = ["transformStyle", "OTransformStyle", "msTransformStyle", "MozTransformStyle", "WebkitTransformStyle"], o = a.length - 1; 0 <= o; o--) t = t || void 0 !== e[0].style[a[o]];
                for (var r = s.length - 1; 0 <= r; r--) e.css("transform-style", "preserve-3d"), i = i || "preserve-3d" == e[0].style[s[r]];
                return t && void 0 !== e[0].style[a[4]] && (e.attr("id", "ls-test3d").appendTo(B), t = 3 === e[0].offsetHeight && 9 === e[0].offsetLeft, e.remove()), t && i
            },
            isOld: -1 !== navigator.userAgent.indexOf("rident/5")
        }, V.initializedPlugins = {}, V.timeouts = {}, V.intervals = {}, V.debug = {
            options: {}
        }, V.plugin = {
            version: "7.2.1",
            release: "stable",
            releaseDate: "2022. 05. 02."
        }, V.slider.load()
    }
}(jQuery);
#7 JavaScript::Eval (size: 51400) - SHA256: fe08ee1b77a38bfc9b010174176daef008200916c7c64ac05bff2e860ca5c8a3
var layerSliderTransitions = {
    t2d: [{
        name: "Sliding from right",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuad",
            duration: 1e3,
            direction: "left"
        }
    }, {
        name: "Sliding from left",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuad",
            duration: 1e3,
            direction: "right"
        }
    }, {
        name: "Sliding from bottom",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuad",
            duration: 1e3,
            direction: "top"
        }
    }, {
        name: "Sliding from top",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuad",
            duration: 1e3,
            direction: "bottom"
        }
    }, {
        name: "Crossfading",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeInOutQuad",
            duration: 1e3,
            direction: "left"
        }
    }, {
        name: "Fading tiles forward",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 30,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 1e3,
            direction: "left"
        }
    }, {
        name: "Fading tiles reverse",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 30,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 1e3,
            direction: "left"
        }
    }, {
        name: "Fading tiles col-forward",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 30,
            sequence: "col-forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 1e3,
            direction: "left"
        }
    }, {
        name: "Fading tiles col-reverse",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 30,
            sequence: "col-reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 1e3,
            direction: "left"
        }
    }, {
        name: "Fading tiles (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 30,
            sequence: "random"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 1e3,
            direction: "left"
        }
    }, {
        name: "Smooth fading from right",
        rows: 1,
        cols: 35,
        tile: {
            delay: 25,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "linear",
            duration: 750,
            direction: "left"
        }
    }, {
        name: "Smooth fading from left",
        rows: 1,
        cols: 35,
        tile: {
            delay: 25,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeInOutQuart",
            duration: 750,
            direction: "left"
        }
    }, {
        name: "Smooth fading from bottom",
        rows: 35,
        cols: 1,
        tile: {
            delay: 25,
            sequence: "col-reverse"
        },
        transition: {
            type: "fade",
            easing: "easeInOutQuart",
            duration: 750,
            direction: "left"
        }
    }, {
        name: "Smooth fading from top",
        rows: 35,
        cols: 1,
        tile: {
            delay: 25,
            sequence: "col-forward"
        },
        transition: {
            type: "fade",
            easing: "easeInOutQuart",
            duration: 750,
            direction: "left"
        }
    }, {
        name: "Smooth sliding from right",
        rows: 1,
        cols: 25,
        tile: {
            delay: 30,
            sequence: "reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 350,
            direction: "left"
        }
    }, {
        name: "Smooth sliding from left",
        rows: 1,
        cols: 25,
        tile: {
            delay: 30,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 350,
            direction: "right"
        }
    }, {
        name: "Smooth sliging from bottom",
        rows: 25,
        cols: 1,
        tile: {
            delay: 30,
            sequence: "col-reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 350,
            direction: "top"
        }
    }, {
        name: "Smooth sliding from top",
        rows: 25,
        cols: 1,
        tile: {
            delay: 30,
            sequence: "col-forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 350,
            direction: "bottom"
        }
    }, {
        name: "Sliding tiles to right (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 500,
            direction: "right"
        }
    }, {
        name: "Sliding tiles to left (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 500,
            direction: "left"
        }
    }, {
        name: "Sliding tiles to bottom (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 500,
            direction: "bottom"
        }
    }, {
        name: "Sliding tiles to top (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 500,
            direction: "top"
        }
    }, {
        name: "Sliding random tiles to random directions",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 500,
            direction: "random"
        }
    }, {
        name: "Sliding rows to right (forward)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Sliding rows to right (reverse)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Sliding rows to right (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Sliding rows to left (forward)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Sliding rows to left (reverse)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Sliding rows to left (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Sliding rows from top to bottom (forward)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Sliding rows from top to bottom (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Sliding rows from bottom to top (reverse)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Sliding rows from bottom to top (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Sliding columns to bottom (forward)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Sliding columns to bottom (reverse)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Sliding columns to bottom (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Sliding columns to top (forward)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Sliding columns to top (reverse)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Sliding columns to top (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Sliding columns from left to right (forward)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Sliding columns from left to right (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Sliding columns from right to left (reverse)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Sliding columns from right to left (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Fading and sliding tiles to right (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "right"
        }
    }, {
        name: "Fading and sliding tiles to left (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "left"
        }
    }, {
        name: "Fading and sliding tiles to bottom (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "bottom"
        }
    }, {
        name: "Fading and sliding tiles to top (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "top"
        }
    }, {
        name: "Fading and sliding random tiles to random directions",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "random"
        }
    }, {
        name: "Fading and sliding tiles from top-left (forward)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "topleft"
        }
    }, {
        name: "Fading and sliding tiles from bottom-right (reverse)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "reverse"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "bottomright"
        }
    }, {
        name: "Fading and sliding tiles from top-right (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "topright"
        }
    }, {
        name: "Fading and sliding tiles from bottom-left (random)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 50,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 500,
            direction: "bottomleft"
        }
    }, {
        name: "Fading and sliding rows to right (forward)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Fading and sliding rows to right (reverse)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "reverse"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Fading and sliding rows to right (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Fading and sliding rows to left (forward)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Fading and sliding rows to left (reverse)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "reverse"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Fading and sliding rows to left (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Fading and sliding rows from top to bottom (forward)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Fading and sliding rows from top to bottom (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Fading and sliding rows from bottom to top (reverse)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "reverse"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Fading and sliding rows from bottom to top (random)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 100,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Fading and sliding columns to bottom (forward)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Fading and sliding columns to bottom (reverse)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Fading and sliding columns to bottom (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "bottom"
        }
    }, {
        name: "Fading and sliding columns to top (forward)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Fading and sliding columns to top (reverse)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Fading and sliding columns to top (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "top"
        }
    }, {
        name: "Fading and sliding columns from left to right (forward)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Fading and sliding columns from left to right (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "right"
        }
    }, {
        name: "Fading and sliding columns from right to left (reverse)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Fading and sliding columns from right to left (random)",
        rows: 1,
        cols: [12, 16],
        tile: {
            delay: 75,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuart",
            duration: 600,
            direction: "left"
        }
    }, {
        name: "Carousel",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "left",
            scale: .5
        }
    }, {
        name: "Carousel rows",
        rows: 4,
        cols: 1,
        tile: {
            delay: 50,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "left",
            scale: .5
        }
    }, {
        name: "Carousel cols",
        rows: 1,
        cols: 4,
        tile: {
            delay: 50,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "left",
            scale: .5
        }
    }, {
        name: "Carousel tiles horizontal",
        rows: 3,
        cols: 4,
        tile: {
            delay: 35,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "left",
            scale: .5,
            rotateY: 90
        }
    }, {
        name: "Carousel tiles vertical",
        rows: 3,
        cols: 4,
        tile: {
            delay: 35,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "top",
            scale: .5,
            rotateX: -90
        }
    }, {
        name: "Carousel-mirror tiles horizontal",
        rows: 3,
        cols: 4,
        tile: {
            delay: 15,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "left",
            scale: .5,
            rotateY: 90
        }
    }, {
        name: "Carousel-mirror tiles vertical",
        rows: 3,
        cols: 4,
        tile: {
            delay: 15,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "top",
            scale: .5,
            rotateX: -90
        }
    }, {
        name: "Carousel mirror rows",
        rows: 4,
        cols: 1,
        tile: {
            delay: 50,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "right",
            scale: .5
        }
    }, {
        name: "Carousel mirror cols",
        rows: 1,
        cols: 4,
        tile: {
            delay: 50,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeInOutQuad",
            duration: 750,
            direction: "left",
            scale: .5
        }
    }, {
        name: "Turning tile from left",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 750,
            direction: "right",
            rotateY: 90
        }
    }, {
        name: "Turning tile from right",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateY: -90
        }
    }, {
        name: "Turning tile from top",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 750,
            direction: "bottom",
            rotateX: -90
        }
    }, {
        name: "Turning tile from bottom",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeOutQuart",
            duration: 750,
            direction: "top",
            rotateX: 90
        }
    }, {
        name: "Turning tiles from left",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateY: 90
        }
    }, {
        name: "Turning tiles from right",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateY: -90
        }
    }, {
        name: "Turning tiles from top",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateX: -90
        }
    }, {
        name: "Turning tiles from bottom",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateX: 90
        }
    }, {
        name: "Turning rows from top",
        rows: [6, 12],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateX: 90
        }
    }, {
        name: "Turning rows from bottom",
        rows: [6, 12],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateX: -90
        }
    }, {
        name: "Turning cols from left",
        rows: 1,
        cols: [6, 12],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateY: -90
        }
    }, {
        name: "Turning cols from right",
        rows: 1,
        cols: [6, 12],
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateY: 90
        }
    }, {
        name: "Flying rows from left",
        rows: [3, 10],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateY: 90
        }
    }, {
        name: "Flying rows from right",
        rows: [3, 10],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateY: -90
        }
    }, {
        name: "Flying cols from top",
        rows: 1,
        cols: [3, 10],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateX: -90
        }
    }, {
        name: "Flying cols from bottom",
        rows: 1,
        cols: [3, 10],
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotateX: 90
        }
    }, {
        name: "Flying and rotating tile from left",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "right",
            scale: .1,
            rotate: -90,
            rotateY: 90
        }
    }, {
        name: "Flying and rotating tile from right",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            scale: .1,
            rotate: 90,
            rotateY: -90
        }
    }, {
        name: "Flying and rotating tiles from left",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "right",
            rotate: -45
        }
    }, {
        name: "Flying and rotating tiles from right",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            rotate: -45
        }
    }, {
        name: "Flying and rotating tiles from random",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 55,
            sequence: "random"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "random",
            rotate: -45
        }
    }, {
        name: "Scaling tile in",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 1500,
            direction: "left",
            scale: .8
        }
    }, {
        name: "Scaling tile from out",
        rows: 1,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "fade",
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "left",
            scale: 1.2
        }
    }, {
        name: "Scaling tiles random",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 35,
            sequence: "random"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            scale: .1
        }
    }, {
        name: "Scaling tiles from out random",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 35,
            sequence: "random"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            scale: 2
        }
    }, {
        name: "Scaling in and rotating tiles random",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 35,
            sequence: "random"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            scale: .1,
            rotate: 90
        }
    }, {
        name: "Scaling and rotating tiles from out random",
        rows: [3, 4],
        cols: [3, 4],
        tile: {
            delay: 35,
            sequence: "random"
        },
        transition: {
            type: "fade",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left",
            scale: 2,
            rotate: -90
        }
    }, {
        name: "Mirror-sliding tiles diagonal",
        rows: 3,
        cols: 4,
        tile: {
            delay: 15,
            sequence: "forward"
        },
        transition: {
            type: "slide",
            easing: "easeInOutQuart",
            duration: 850,
            direction: "topright"
        }
    }, {
        name: "Mirror-sliding rows horizontal",
        rows: 6,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left"
        }
    }, {
        name: "Mirror-sliding rows vertical",
        rows: 6,
        cols: 1,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "top"
        }
    }, {
        name: "Mirror-sliding cols horizontal",
        rows: 1,
        cols: 8,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "left"
        }
    }, {
        name: "Mirror-sliding cols vertical",
        rows: 1,
        cols: 8,
        tile: {
            delay: 0,
            sequence: "forward"
        },
        transition: {
            type: "mixed",
            easing: "easeOutQuart",
            duration: 750,
            direction: "top"
        }
    }, {
        name: "Random slices to left",
        rows: 10,
        cols: 1,
        tile: {
            delay: 10,
            sequence: "random"
        },
        transition: {
            duration: 1500,
            easing: "easeInOutQuart",
            type: "slide",
            direction: "left"
        }
    }, {
        name: "Random slices to right",
        rows: 10,
        cols: 1,
        tile: {
            delay: 10,
            sequence: "random"
        },
        transition: {
            duration: 1500,
            easing: "easeInOutQuart",
            type: "slide",
            direction: "right"
        }
    }, {
        name: "Random slices to bottom",
        rows: 1,
        cols: 15,
        tile: {
            delay: 10,
            sequence: "random"
        },
        transition: {
            duration: 1500,
            easing: "easeInOutQuart",
            type: "slide",
            direction: "bottom"
        }
    }, {
        name: "Random slices to top",
        rows: 1,
        cols: 15,
        tile: {
            delay: 10,
            sequence: "random"
        },
        transition: {
            duration: 1500,
            easing: "easeInOutQuart",
            type: "slide",
            direction: "top"
        }
    }],
    t3d: [{
        name: "Spinning tile to right (180�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: 91
            },
            easing: "easeInQuart",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateY: 180
            },
            easing: "easeOutQuart",
            duration: 1e3,
            direction: "horizontal"
        }
    }, {
        name: "Spinning tile to left (180�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: -91
            },
            easing: "easeInQuart",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateY: -180
            },
            easing: "easeOutQuart",
            duration: 1e3,
            direction: "horizontal"
        }
    }, {
        name: "Spinning tile to bottom (180�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateX: -91
            },
            easing: "easeInQuart",
            duration: 800,
            direction: "vertical"
        },
        after: {
            transition: {
                rotateX: -180
            },
            easing: "easeOutQuart",
            duration: 800,
            direction: "vertical"
        }
    }, {
        name: "Spinning tile to top (180�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateX: 91
            },
            easing: "easeInQuart",
            duration: 800,
            direction: "vertical"
        },
        after: {
            transition: {
                rotateX: 180
            },
            easing: "easeOutQuart",
            duration: 800,
            direction: "vertical"
        }
    }, {
        name: "Spinning tiles to right (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "horizontal"
        }
    }, {
        name: "Spinning tiles to left (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "horizontal"
        }
    }, {
        name: "Spinning tiles to bottom (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-forward"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Spinning tiles to top (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-reverse"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Horizontal spinning tiles random (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1300,
            direction: "horizontal"
        }
    }, {
        name: "Vertical spinning tiles random (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 1300,
            direction: "vertical"
        }
    }, {
        name: "Scaling and spinning tiles to right (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .95
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and spinning tiles to left (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .95
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and spinning tiles to bottom (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-forward"
        },
        before: {
            transition: {
                scale3d: .95
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and spinning tiles to top (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-reverse"
        },
        before: {
            transition: {
                scale3d: .95
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and horizontal spinning tiles random (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .95,
                rotateX: 30
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: 180,
                rotateX: -30
            },
            easing: "easeInOutBack",
            duration: 1300,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateX: 0
            },
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and vertical spinning tiles random (180�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .95,
                rotateY: -15
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: 180,
                rotateY: 15
            },
            easing: "easeInOutBack",
            duration: 1300,
            direction: "vertical"
        },
        after: {
            transition: {
                rotateY: 0
            },
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Spinning rows to right (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Spinning rows to left (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Spinning rows to bottom (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Spinning rows to top (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Horizontal spinning rows random (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Vertical spinning rows random (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "vertical"
        }
    }, {
        name: "Vertical spinning rows random (540�)",
        rows: [3, 7],
        cols: 1,
        tile: {
            delay: 150,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateX: -540
            },
            easing: "easeInOutQuart",
            duration: 2e3,
            direction: "vertical"
        }
    }, {
        name: "Scaling and spinning rows to right (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 1200,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and spinning rows to left (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutBack",
            duration: 1200,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and spinning rows to bottom (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 600,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and spinning rows to top (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 600,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and horizontal spinning rows random (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 1200,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and vertical spinning rows random (180�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 55,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutBack",
            duration: 600,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Spinning columns to right (180�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Spinning columns to left (180�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Spinning columns to bottom (180�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Spinning columns to top (180�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Horizontal spinning columns random (180�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Vertical spinning columns random (180�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "vertical"
        }
    }, {
        name: "Horizontal spinning columns random (540�)",
        rows: 1,
        cols: [4, 9],
        tile: {
            delay: 150,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateY: 540
            },
            easing: "easeInOutQuart",
            duration: 2e3,
            direction: "horizontal"
        }
    }, {
        name: "Scaling and spinning columns to right (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 600,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and spinning columns to left (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 55,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutQuart",
            duration: 600,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and spinning columns to bottom (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 55,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutBack",
            duration: 1200,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and spinning columns to top (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutBack",
            duration: 1200,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and horizontal spinning columns random (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 600,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and vertical spinning columns random (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutBack",
            duration: 1200,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Drunk colums scaling and spinning to right (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85,
                rotateX: -30
            },
            duration: 600,
            easing: "easeOutQuart"
        },
        animation: {
            transition: {
                rotateX: -30,
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateX: 0,
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 600
        }
    }, {
        name: "Drunk colums scaling and spinning to left (180�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85,
                rotateX: -30
            },
            duration: 600,
            easing: "easeOutQuart"
        },
        animation: {
            transition: {
                rotateX: 30,
                rotateY: -180
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateX: 0,
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 600
        }
    }, {
        name: "Turning cuboid to right (90�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Turning cuboid to left (90�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: -90
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Turning cuboid to bottom (90�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "vertical"
        }
    }, {
        name: "Turning cuboid to top (90�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateX: 90
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "vertical"
        }
    }, {
        name: "Scaling and turning cuboid to right (90�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                scale3d: .8,
                rotate: 7,
                rotateX: 10,
                rotateY: 45
            },
            easing: "easeInOutQuad",
            duration: 800,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotate: 0,
                rotateX: 0,
                rotateY: 90
            },
            duration: 800,
            easing: "easeInOutQuad"
        }
    }, {
        name: "Scaling and turning cuboid to left (90�)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                scale3d: .8,
                rotate: -7,
                rotateX: 10,
                rotateY: -45
            },
            easing: "easeInOutQuad",
            duration: 800,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotate: 0,
                rotateX: 0,
                rotateY: -90
            },
            duration: 800,
            easing: "easeInOutQuad"
        }
    }, {
        name: "Scaling and turning cuboids to right (90�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and turning cuboids to left (90�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and turning cuboids to bottom (90�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and turning cuboids to top (90�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: 90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and horizontal turning cuboids random (90�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .75,
                rotateX: -15
            },
            duration: 700,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: 75,
                rotateX: 15
            },
            easing: "easeInOutBack",
            duration: 700,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateY: 90,
                rotateX: 0
            },
            duration: 700,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and vertical turning cuboids random (90�)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .75,
                rotateY: 15
            },
            duration: 700,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: 75,
                rotateY: -15
            },
            easing: "easeInOutBack",
            duration: 700,
            direction: "vertical"
        },
        after: {
            transition: {
                rotateX: 90,
                rotateY: 0
            },
            duration: 700,
            easing: "easeInOutBack"
        }
    }, {
        name: "Turning rows to right (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Turning rows to left (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateY: -90
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Horizontal turning rows random (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Scaling and turning rows to right (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 87
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200,
                rotateY: 90
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and turning rows to left (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and turning rows to bottom (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and turning rows to top (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: 90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and horizontal turning rows random (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and vertical turning rows random (90�)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and horizontal turning drunk rows to right (90�)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                scale3d: .85,
                rotateY: 45
            },
            easing: "easeInOutQuint",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutQuint",
            duration: 1e3
        }
    }, {
        name: "Scaling and horizontal turning drunk rows to left (90�)",
        rows: [7, 11],
        cols: 1,
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        animation: {
            transition: {
                scale3d: .85,
                rotateY: -45
            },
            easing: "easeInOutQuint",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateY: -90
            },
            easing: "easeInOutQuint",
            duration: 1e3
        }
    }, {
        name: "Turning columns to bottom (90�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Turning columns to top (90�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        animation: {
            transition: {
                rotateX: 90
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Vertical turning columns random (90�)",
        rows: 1,
        cols: [5, 9],
        tile: {
            delay: 75,
            sequence: "random"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutQuart",
            duration: 1e3,
            direction: "vertical"
        }
    }, {
        name: "Scaling and turning columns to bottom (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and turning columns to top (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: 90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and turning columns to right (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and turning columns to left (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and horizontal turning columns random (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and vertical turning columns random (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutBack",
            duration: 600
        }
    }, {
        name: "Scaling and vertical turning drunk columns to right (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "forward"
        },
        animation: {
            transition: {
                scale3d: .85,
                rotateX: 45
            },
            easing: "easeInOutQuint",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                rotateX: 90
            },
            easing: "easeInOutQuint",
            duration: 1e3
        }
    }, {
        name: "Scaling and vertical turning drunk columns to left (90�)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 75,
            sequence: "reverse"
        },
        animation: {
            transition: {
                scale3d: .85,
                rotateX: -45
            },
            easing: "easeInOutQuint",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                rotateX: -90
            },
            easing: "easeInOutQuint",
            duration: 1e3
        }
    }, {
        name: "Spinning cuboid to right (180�, large depth)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward",
            depth: "large"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Spinning cuboid to left (180�, large depth)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward",
            depth: "large"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Spinning cuboid to bottom (180�, large depth)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward",
            depth: "large"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "vertical"
        }
    }, {
        name: "Spinning cuboid to top (180�, large depth)",
        rows: 1,
        cols: 1,
        tile: {
            delay: 75,
            sequence: "forward",
            depth: "large"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 1500,
            direction: "vertical"
        }
    }, {
        name: "Scaling and spinning cuboids to right (180�, large depth)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and spinning cuboids to left (180�, large depth)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "reverse",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and spinning cuboids to bottom (180�, large depth)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and spinning cuboids to top (180�, large depth)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "col-reverse",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 450,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            duration: 350,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and horizontal spinning cuboids random (180�, large depth)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .65
            },
            duration: 700,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 700,
            direction: "horizontal"
        },
        after: {
            duration: 700,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and vertical spinning cuboids random (180�, large depth)",
        rows: [2, 4],
        cols: [4, 7],
        tile: {
            delay: 75,
            sequence: "random",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .65
            },
            duration: 700,
            easing: "easeInOutQuint"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutBack",
            duration: 700,
            direction: "vertical"
        },
        after: {
            duration: 700,
            easing: "easeInOutBack"
        }
    }, {
        name: "Scaling and spinning rows to right (180�, large depth)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 65,
            sequence: "forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1200,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and spinning rows to left (180�, large depth)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 65,
            sequence: "reverse",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutQuart",
            duration: 1200,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and spinning rows to bottom (180�, large depth)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 65,
            sequence: "forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and spinning rows to top (180�, large depth)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 65,
            sequence: "reverse",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and horizontal spinning rows random (180�, large depth)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 65,
            sequence: "random",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1200,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and vertical spinning rows random (180�, large depth)",
        rows: [5, 9],
        cols: 1,
        tile: {
            delay: 65,
            sequence: "random",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and spinning columns to bottom (180�, large depth)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 65,
            sequence: "forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1200,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and spinning columns to top (180�, large depth)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 65,
            sequence: "reverse",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 1200,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and spinning columns to right (180�, large depth)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 65,
            sequence: "forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and spinning columns to left (180�, large depth)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 65,
            sequence: "reverse",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: -180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and horizontal spinning columns random (180�, large depth)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 65,
            sequence: "random",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateY: 180
            },
            easing: "easeInOutBack",
            duration: 1e3,
            direction: "horizontal"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Scaling and vertical spinning columns random (180�, large depth)",
        rows: 1,
        cols: [7, 11],
        tile: {
            delay: 65,
            sequence: "random",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .85
            },
            duration: 600,
            easing: "easeOutBack"
        },
        animation: {
            transition: {
                rotateX: -180
            },
            easing: "easeInOutQuart",
            duration: 1200,
            direction: "vertical"
        },
        after: {
            transition: {
                delay: 200
            },
            easing: "easeOutQuart",
            duration: 400
        }
    }, {
        name: "Horizontally rotating and fading cube",
        rows: 1,
        cols: 1,
        tile: {
            delay: 1,
            sequence: "forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .65,
                rotateY: -270,
                opacity: 0
            },
            duration: 1500,
            easing: "easeInQuart"
        },
        animation: {
            transition: {
                scale3d: 1,
                rotateY: -540,
                opacity: 1
            },
            easing: "easeOutQuart",
            duration: 1500,
            direction: "horizontal"
        }
    }, {
        name: "Vertically rotating and fading cube",
        rows: 1,
        cols: 1,
        tile: {
            delay: 1,
            sequence: "forward",
            depth: "large"
        },
        before: {
            transition: {
                scale3d: .65,
                rotateX: -270,
                opacity: 0
            },
            duration: 1500,
            easing: "easeInQuart"
        },
        animation: {
            transition: {
                scale3d: 1,
                rotateX: -540,
                opacity: 1
            },
            easing: "easeOutQuart",
            duration: 1500,
            direction: "vertical"
        }
    }, {
        name: "Horizontally rotating and fading cuboids",
        rows: [2, 3],
        cols: [3, 5],
        tile: {
            delay: 50,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .75,
                opacity: 0
            },
            duration: 350,
            easing: "easeInQuart"
        },
        animation: {
            transition: {
                rotateY: -45,
                rotateX: 180
            },
            easing: "easeInOutQuart",
            duration: 1,
            direction: "vertical"
        },
        after: {
            transition: {
                rotateY: 0,
                opacity: 1
            },
            easing: "easeOutQuart",
            duration: 1200
        }
    }, {
        name: "Vertically rotating and fading cuboids",
        rows: [2, 3],
        cols: [3, 5],
        tile: {
            delay: 50,
            sequence: "random"
        },
        before: {
            transition: {
                scale3d: .75,
                opacity: 0
            },
            duration: 350,
            easing: "easeInQuart"
        },
        animation: {
            transition: {
                rotateX: -45,
                rotateY: 180
            },
            easing: "easeInOutQuart",
            duration: 1,
            direction: "horizontal"
        },
        after: {
            transition: {
                rotateX: 0,
                opacity: 1
            },
            easing: "easeOutQuart",
            duration: 1200
        }
    }]
};

Executed Writes (0)


HTTP Transactions (203)


Request Response
                                        
                                            GET /blog/understanding-the-benefits-of-light/ HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1

search
                                         139.162.163.84
HTTP/1.1 301 Moved Permanently
Content-Type: text/html
                                        
Server: nginx/1.15.8
Date: Fri, 02 Dec 2022 10:13:52 GMT
Content-Length: 169
Connection: keep-alive
Location: https://equilume.com/blog/understanding-the-benefits-of-light/


--- Additional Info ---
Magic:  HTML document text\012- HTML document text\012- HTML document, ASCII text, with CRLF line terminators
Size:   169
Md5:    62dd5e858f45c692ab2d61af17ece7fe
Sha1:   ddd08bf6bb841a6d229dfc16533b25800a6becda
Sha256: 2de0f598272458a97eb1f5e8646527107ad713aec7de0aa9f6fd1dcf55c4a765
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         23.36.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "6035871C0DE6FF2D120921461207CFA32BC286E1FE78849CE74815FFBB9FF950"
Last-Modified: Thu, 01 Dec 2022 09:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=13086
Expires: Fri, 02 Dec 2022 13:51:58 GMT
Date: Fri, 02 Dec 2022 10:13:52 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: ocsp.digicert.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         93.184.220.29
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Accept-Ranges: bytes
Age: 2518
Cache-Control: max-age=89958
Date: Fri, 02 Dec 2022 10:13:52 GMT
Etag: "63888270-1d7"
Expires: Sat, 03 Dec 2022 11:13:10 GMT
Last-Modified: Thu, 01 Dec 2022 10:31:12 GMT
Server: ECS (ska/F70B)
X-Cache: HIT
Content-Length: 471

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         23.36.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "39F6BB64420BCFC8F0B010168FD35B67732984CD0698409F04D5AE40410422AA"
Last-Modified: Thu, 01 Dec 2022 09:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=9999
Expires: Fri, 02 Dec 2022 13:00:31 GMT
Date: Fri, 02 Dec 2022 10:13:52 GMT
Connection: keep-alive

                                        
                                            GET /v1/ HTTP/1.1 
Host: firefox.settings.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.102.187.140
HTTP/2 200 OK
content-type: application/json
                                        
access-control-allow-origin: *
access-control-expose-headers: Retry-After, Alert, Backoff, Content-Length, Content-Type
content-security-policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none';
strict-transport-security: max-age=31536000
x-content-type-options: nosniff
content-length: 939
via: 1.1 google
date: Fri, 02 Dec 2022 09:18:11 GMT
cache-control: public,max-age=3600
age: 3341
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (939), with no line terminators
Size:   939
Md5:    14cd9a0afb6ba9a763651d5112760d1e
Sha1:   75d7b104ab9ab11fbb73c3f348b43b0119b5adfa
Sha256: 4e32a117106be587ffcd63239c16a8117eb7840830d4c9decf6527761967532e
                                        
                                            GET /chains/remote-settings.content-signature.mozilla.org-2022-12-30-09-21-26.chain HTTP/1.1 
Host: content-signature-2.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

search
                                         34.160.144.191
HTTP/2 200 OK
content-type: binary/octet-stream
                                        
x-amz-id-2: Sn5X/OBIz3ebCTTGdnbqQ5nvfZ0SApX/X+Wgehz/PCEtS3RAiIFf4Zp2be43AyybWT5Ysw/F5BQ=
x-amz-request-id: VD4SYWCX37Z2YQR8
content-disposition: attachment
accept-ranges: bytes
server: AmazonS3
content-length: 5348
via: 1.1 google
date: Fri, 02 Dec 2022 09:46:04 GMT
age: 1668
last-modified: Thu, 10 Nov 2022 09:21:27 GMT
etag: "9ebddc2b260d081ebbefee47c037cb28"
cache-control: public,max-age=3600
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  PEM certificate\012- , ASCII text
Size:   5348
Md5:    9ebddc2b260d081ebbefee47c037cb28
Sha1:   492bad62a7ca6a74738921ef5ae6f0be5edebf39
Sha256: 74bbb7cba16f7d084a08a0907d47d7496e5c148f904707ec6950f8f6a61027e5
                                        
                                            GET /v1/tiles HTTP/1.1 
Host: contile.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.117.237.239
HTTP/2 200 OK
content-type: application/json
                                        
server: nginx
date: Fri, 02 Dec 2022 10:13:52 GMT
content-length: 12
strict-transport-security: max-age=31536000
via: 1.1 google
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with no line terminators
Size:   12
Md5:    23e88fb7b99543fb33315b29b1fad9d6
Sha1:   a48926c4ec03c7c8a4e8dffcd31e5a6cdda417ce
Sha256: 7d8f1de8b7de7bc21dfb546a1d0c51bf31f16eee5fad49dbceae1e76da38e5c3
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         23.36.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "538D493377B078E62FE5022ECC83197A8987D19FA7C37786E646CFD1113DF22A"
Last-Modified: Thu, 01 Dec 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=21556
Expires: Fri, 02 Dec 2022 16:13:08 GMT
Date: Fri, 02 Dec 2022 10:13:52 GMT
Connection: keep-alive

                                        
                                            GET /v1/buckets/main/collections/ms-language-packs/records/cfr-v1-en-US HTTP/1.1 
Host: firefox.settings.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: application/json
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/json
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.102.187.140
HTTP/2 200 OK
content-type: application/json
                                        
access-control-allow-origin: *
access-control-expose-headers: Content-Length, Pragma, Last-Modified, ETag, Alert, Expires, Retry-After, Cache-Control, Backoff, Content-Type
content-security-policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none';
strict-transport-security: max-age=31536000
x-content-type-options: nosniff
content-length: 329
via: 1.1 google
date: Fri, 02 Dec 2022 10:11:15 GMT
cache-control: public,max-age=3600
age: 157
last-modified: Fri, 25 Mar 2022 17:45:46 GMT
etag: "1648230346554"
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (329), with no line terminators
Size:   329
Md5:    0333b0655111aa68de771adfcc4db243
Sha1:   63f295a144ac87a7c8e23417626724eeca68a7eb
Sha256: 60636eb1dc67c9ed000fe0b49f03777ad6f549cb1d2b9ff010cf198465ae6300
                                        
                                            POST / HTTP/1.1 
Host: ocsp.digicert.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         93.184.220.29
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Accept-Ranges: bytes
Age: 2513
Cache-Control: 'max-age=158059'
Date: Fri, 02 Dec 2022 10:13:52 GMT
Last-Modified: Fri, 02 Dec 2022 09:31:59 GMT
Server: ECS (ska/F70B)
X-Cache: HIT
Content-Length: 471

                                        
                                            GET / HTTP/1.1 
Host: push.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Sec-WebSocket-Version: 13
Origin: wss://push.services.mozilla.com/
Sec-WebSocket-Protocol: push-notification
Sec-WebSocket-Extensions: permessage-deflate
Sec-WebSocket-Key: bM2c0WLRXOaITsmAa0dWSQ==
Connection: keep-alive, Upgrade
Sec-Fetch-Dest: websocket
Sec-Fetch-Mode: websocket
Sec-Fetch-Site: cross-site
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket

search
                                         35.161.26.194
HTTP/1.1 101 Switching Protocols
                                        
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: eND1yzWxi82ac61fkiyBz5cIlMQ=

                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         216.58.211.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Fri, 02 Dec 2022 10:13:53 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         216.58.211.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Fri, 02 Dec 2022 10:13:53 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /javascript/loader.js HTTP/1.1 
Host: cdn.pubble.io
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

search
                                         143.204.55.95
HTTP/1.1 200 OK
Content-Type: application/x-javascript
                                        
Transfer-Encoding: chunked
Connection: keep-alive
Last-Modified: Thu, 26 May 2022 12:51:59 GMT
Server: AmazonS3
Content-Encoding: gzip
Date: Thu, 01 Dec 2022 16:34:46 GMT
ETag: W/"9081aa178f89c6ff4e2dd1e5f82ae677"
X-Cache: Hit from cloudfront
Via: 1.1 f66e3db0f0449307dba3fbf72bbf3bac.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: OSL50-C1
X-Amz-Cf-Id: p_fBgI_rYkR0L1SdItJv--OCzOqDfHuvf-sb3qrw0xK4tzl4oGLwzw==
Age: 63603
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Vary: Accept-Encoding, Origin


--- Additional Info ---
Magic:  ASCII text, with very long lines (42311), with no line terminators
Size:   11159
Md5:    fce0a97dca67ee26860e5192d9abdcd9
Sha1:   eff3221a430424a0ff5c237a7b3b199462bf6e8d
Sha256: 3214d77a074b79262102c756a0ae4618327af0e4f9c75748490337173b7f58b6

Alerts:
  Blocklists:
    - fortinet: Malware
                                        
                                            GET /wp-content/plugins/equilume_calculator/jquery-ui.css?ver=8d821f543c51c33a7a9b3e75417d684e HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: text/css
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Fri, 14 Oct 2022 15:46:48 GMT
vary: Accept-Encoding
etag: W/"63498468-8c85"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   8912
Md5:    f6375b17b94d58002422ded378e891df
Sha1:   db86b61480e2b291b5496f824cb19ef012223e23
Sha256: bd9c0fcf5dc7287feae81d33961dd6a32344b531b9f6117128f60ddefe4753a2
                                        
                                            GET /recaptcha/api.js?render=6LfoOLkgAAAAAEgfnxogocOWYlrYnd0xus4pzrtV&ver=3.0 HTTP/1.1 
Host: www.google.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

search
                                         142.250.74.132
HTTP/2 200 OK
content-type: text/javascript; charset=UTF-8
                                        
expires: Fri, 02 Dec 2022 10:13:53 GMT
date: Fri, 02 Dec 2022 10:13:53 GMT
cache-control: private, max-age=300
cross-origin-resource-policy: cross-origin
content-encoding: gzip
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
content-security-policy: frame-ancestors 'self'
x-xss-protection: 1; mode=block
content-length: 581
server: GSE
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (884), with no line terminators
Size:   581
Md5:    27962de5f144101441e53fff53d4ff19
Sha1:   7b9178cd3bf7005d60297fae18aefa0c3a22fbb6
Sha256: 0ab34f174bd330898c2b9c6510380fc23864757be69ed8c0838b394fb7cceae5
                                        
                                            GET /wp-content/uploads/2021/08/wht_horse_12_02_blu-eye_web-254x300.jpg HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
content-length: 13967
last-modified: Fri, 14 Oct 2022 15:47:02 GMT
etag: "63498476-368f"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, Exif Standard: [TIFF image data, little-endian, direntries=0], baseline, precision 8, 254x300, components 3\012- data
Size:   13967
Md5:    3eb9227aa6d374f42152087d3ab0797b
Sha1:   54b22f892b64ddb22c76784d2e30e82b2264d5b6
Sha256: 02d379205526aaff577435799f6a9a98ec3913b9722b8cce7aca90fd847d8a79
                                        
                                            GET /wp-includes/js/jquery/jquery-migrate.min.js?ver=3.3.2 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Wed, 09 Dec 2020 12:33:42 GMT
vary: Accept-Encoding
etag: W/"5fd0c426-2bd8"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   4648
Md5:    7f4d0c600326d22ee58a8d66593f6c33
Sha1:   10dcdd8667766d41eed39f7c447be4a6372b7da1
Sha256: ae571c3a501bd11264e5ee7024aebed63e65eea21de05947e5e46836465a7bb5
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         216.58.211.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Fri, 02 Dec 2022 10:13:53 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /wp-includes/js/jquery/ui/resizable.min.js?ver=1.13.1 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Wed, 29 Jun 2022 07:03:36 GMT
vary: Accept-Encoding
etag: W/"62bbf948-4911"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   5857
Md5:    6328aeb73cf903a3480c58c1aea1b146
Sha1:   9efe3dbf60171c0699f0f07848c77a55bd8acc8f
Sha256: f1f73809397e9f8b2305d9c7f340c4b5b96b9f1a76cf62179bea923d05126c82
                                        
                                            GET /wp-includes/js/jquery/ui/sortable.min.js?ver=1.13.1 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Wed, 29 Jun 2022 07:03:36 GMT
vary: Accept-Encoding
etag: W/"62bbf948-636f"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   7151
Md5:    099b0f150acd928572171270f4d92ce8
Sha1:   586a6ed0da83b3a53c1d2f28511cb17bc20aa9c1
Sha256: 45d7abcbd330a04a53b2a64230bcc496d3d49ce335f2f992785d9a1b293b0d9b
                                        
                                            GET /wp-includes/js/jquery/ui/selectable.min.js?ver=1.13.1 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Wed, 29 Jun 2022 07:03:36 GMT
vary: Accept-Encoding
etag: W/"62bbf948-118b"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   1896
Md5:    94342d41501dabd25fc94a3e5e6bfc85
Sha1:   4711a483aba6e53d2481d6d555e65159aacca995
Sha256: fd550df2e81d23350b3e717f0c87ef58a21e95ebf988d176aa4ad7e97694d499
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F6b6b798b-d396-454d-9d5b-17b47827e4ad.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 2942
x-amzn-requestid: ed26679f-cd56-477f-9914-f9afbcaaeea6
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: cfGeoGFYoAMFWgA=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-63891df7-4ec6bebe21656d5026456994;Sampled=0
x-amzn-remapped-date: Thu, 01 Dec 2022 21:34:47 GMT
x-amz-cf-pop: HIO50-C1, SEA19-C2
x-cache: Miss from cloudfront
x-amz-cf-id: Fw6nrporwF27NW0-vXpaolW79nDXLF2RyS-lqhhp1osHt7q98VpI3g==
via: 1.1 e291f351a18746d40754b367095a2872.cloudfront.net (CloudFront), 1.1 9046e5a276a05e60ee34c8475e92b8e6.cloudfront.net (CloudFront), 1.1 google
date: Thu, 01 Dec 2022 21:49:56 GMT
age: 44638
etag: "9fc7ab3a4eb2d36fd6df7e0267a26a47627d1704"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   2942
Md5:    b47431190f34eccf0a6efb98e2a32b7d
Sha1:   9fc7ab3a4eb2d36fd6df7e0267a26a47627d1704
Sha256: 08d3b6be354cafb70c20e6865788cb375adbf88d47711651fe1a3b855094daf2
                                        
                                            GET /wp-content/themes/bridge/js/woocommerce.min.js?ver=8d821f543c51c33a7a9b3e75417d684e HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Fri, 14 Oct 2022 15:46:53 GMT
vary: Accept-Encoding
etag: W/"6349846d-21a8"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   10252
Md5:    68d504a41d86b57b8a85c25439ecb539
Sha1:   33c772e897d3d2107742a618c4d352ae909b9dd9
Sha256: d186b64e787aedcc277a96e661b85eebe11f346fe83be9116b6f2cae1b54197b
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F449f29d0-f60b-4dec-8b5b-0a1971bab406.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 10270
x-amzn-requestid: ac2d2825-2ec4-435e-9921-3ea6524df1dc
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: cfG1nEvYoAMFliA=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-63891e8a-4419423112b5723e3dba46ea;Sampled=0
x-amzn-remapped-date: Thu, 01 Dec 2022 21:37:14 GMT
x-amz-cf-pop: HIO50-C1, SEA19-C2
x-cache: Miss from cloudfront
x-amz-cf-id: 2ihxuuXiECC4oX11t_vswhnLF0UpqDuboPLkrhpWwp-vfCR5pxGGxw==
via: 1.1 56c69262ecfa7873b40572ba8a323242.cloudfront.net (CloudFront), 1.1 112d82578d402a38d8d02e8b857617e0.cloudfront.net (CloudFront), 1.1 google
date: Thu, 01 Dec 2022 21:53:50 GMT
age: 44404
etag: "2cb4edc6b161c6d2d5b47aa498ae54e677966466"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   10270
Md5:    4c7113338bc3310b13d23ca415c177e2
Sha1:   2cb4edc6b161c6d2d5b47aa498ae54e677966466
Sha256: 3a83adce869dd7eb064c583bf7ff93c57fabd7ea2da872f7d1f7d868b8a492e9
                                        
                                            GET /wp-includes/js/jquery/ui/button.min.js?ver=1.13.1 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Wed, 29 Jun 2022 07:03:36 GMT
vary: Accept-Encoding
etag: W/"62bbf948-17fa"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   8156
Md5:    ae3e5c24da06518562b7effafd06caa2
Sha1:   08311f99b3f69b02d0b949cc478c3bf7a758b5fe
Sha256: c35b91d19d79b255dc74153e908d9ab6d86625862d543d0188a9a7871190f7aa
                                        
                                            GET /wp-content/plugins/js_composer/assets/js/dist/js_composer_front.min.js?ver=6.9.0 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Fri, 14 Oct 2022 15:46:49 GMT
vary: Accept-Encoding
etag: W/"63498469-4f5b"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   11704
Md5:    98a0aedee62a8e151e04efdf420209ef
Sha1:   8513734b46d4170b471650931dfcd466c04c202f
Sha256: 6c49cdaee12150db806567523ada8ae4374568ad984542d86e27b612f53cc501
                                        
                                            GET /wp-includes/js/jquery/ui/controlgroup.min.js?ver=1.13.1 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Wed, 29 Jun 2022 07:03:36 GMT
vary: Accept-Encoding
etag: W/"62bbf948-113f"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   8492
Md5:    3570b18c7892b9c73bb3163fbd8d96a2
Sha1:   c21da7de336e9852692d17b921281a08e5a44dbc
Sha256: 843bd10d36a296d5d4d2bf610386563502e31bc588ccbd9be95c7fac4335b8c3
                                        
                                            GET /wp-content/themes/bridge-child/img/bag-white.png HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/wp-content/themes/bridge-child/css/custom_css.css?ver=1.0.0
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: image/png
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:55 GMT
content-length: 1414
last-modified: Fri, 14 Oct 2022 15:46:54 GMT
etag: "6349846e-586"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  PNG image data, 34 x 38, 8-bit/color RGBA, non-interlaced\012- data
Size:   1414
Md5:    3a0ae70245a0467962b57ea5a501e1ac
Sha1:   d3b25d66c1cc4d0fe77bfea9455d2772bc00fbc0
Sha256: 380b120ca434eb95e0d490369f1231cf2b74e845811219ff846155dfbb2ea158
                                        
                                            GET /wp-includes/js/jquery/ui/progressbar.min.js?ver=1.13.1 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Wed, 29 Jun 2022 07:03:36 GMT
vary: Accept-Encoding
etag: W/"62bbf948-9ec"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   1393
Md5:    59c6e7df484231544631a888601a9e3f
Sha1:   116a84d3b9c21d7d87e0698c5fd00a1092c2e140
Sha256: 648286eef47280b9b3f57925984ba2ca8bef7c7f56764fefe3b7ac0f686bd422
                                        
                                            GET /wp-content/plugins/svg-support/js/min/svgs-inline-min.js?ver=1.0.0 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Fri, 14 Oct 2022 15:46:47 GMT
vary: Accept-Encoding
etag: W/"63498467-6ac"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   1280
Md5:    70c1698c1046e8a3a87179728ef28fbf
Sha1:   b0f802c1089c535be824d72c4834756d601b866c
Sha256: 6065a4fd7c22e20de49f98c161fac61f03851a5162b8742b7259e971455a2666
                                        
                                            GET /s/oxygen/v15/2sDcZG1Wl4LcnbuCJW8zaGW5.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://equilume.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         216.58.207.227
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 15792
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Mon, 28 Nov 2022 23:14:31 GMT
expires: Tue, 28 Nov 2023 23:14:31 GMT
cache-control: public, max-age=31536000
age: 298764
last-modified: Mon, 09 May 2022 18:30:32 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 15792, version 1.0\012- data
Size:   15792
Md5:    94c3db6f7f5df851bc87a5bf309b9a89
Sha1:   986af9276cc364fe0b2a6801d4514fb3cd920cc3
Sha256: c5c877b2f70eaa51b17f81150decd43027fec02788fec5719be6befb12af115f
                                        
                                            GET /wp-content/plugins/duracelltomi-google-tag-manager/js/gtm4wp-woocommerce-enhanced.js?ver=1.16 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Fri, 14 Oct 2022 15:46:46 GMT
vary: Accept-Encoding
etag: W/"63498466-a19b"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   7757
Md5:    697e9c9b36bfb3ed590c005dd567ea9a
Sha1:   560f560f78a23eb56a2f9cbebde9567c0a683f87
Sha256: 19cd9c36ade009b300c2d4e06f7d227061475598293ac63113bf2260634ec74e
                                        
                                            GET /wp-content/plugins/equilume_calculator/equilume_calculator.js?ver=1669976033 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Fri, 14 Oct 2022 15:46:48 GMT
vary: Accept-Encoding
etag: W/"63498468-279e"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   2777
Md5:    402c8ccdaefd982bd78c391b3aa94cc5
Sha1:   dbdb447963ca6451d4df873935c95fe72681db18
Sha256: 5669d928d368985c35787044886b7bdaef85928ab42f6e25c35bcd1504fbab5e
                                        
                                            GET /wp-content/themes/bridge-child/js/custom_js.js?ver=8d821f543c51c33a7a9b3e75417d684e HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Fri, 14 Oct 2022 15:46:54 GMT
vary: Accept-Encoding
etag: W/"6349846e-393"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2

                                        
                                            GET /wp-includes/js/jquery/ui/effect.min.js?ver=1.13.1 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Wed, 29 Jun 2022 07:03:36 GMT
vary: Accept-Encoding
etag: W/"62bbf948-43b3"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   53556
Md5:    7c7cf5e543ed3227cb80a82136b4f9ad
Sha1:   ea6cfee1ef66a2ffc34ab5f634fcf589e6895286
Sha256: 798554d4e644a8fa33b410aaa1499008b47dac66bda6236d0cbb584f5839e03c
                                        
                                            GET /wp-includes/js/jquery/ui/effect-blind.min.js?ver=1.13.1 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Wed, 29 Jun 2022 07:03:36 GMT
vary: Accept-Encoding
etag: W/"62bbf948-360"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   47022
Md5:    c869847e77c080796264ced8de64ea77
Sha1:   be520ac223d95ba11abb46def053fa3bbc7ef606
Sha256: 7cd6e86535fc1dbe34f24405375f03dba996479af5791036cc28ea488d075022
                                        
                                            GET /s/oxygen/v15/2sDcZG1Wl4LcnbuCNWgzaGW5.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://equilume.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         216.58.207.227
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 16172
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Mon, 28 Nov 2022 22:33:20 GMT
expires: Tue, 28 Nov 2023 22:33:20 GMT
cache-control: public, max-age=31536000
age: 301235
last-modified: Mon, 09 May 2022 18:30:51 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 16172, version 1.0\012- data
Size:   16172
Md5:    891cacadb2d3449b6f342f571dc743ae
Sha1:   e35ea255304a2981b27f6c2822eb4fd8eaa984d5
Sha256: 5740bce57f68562d42e8ca6f6eb70dca3bc33be11ef0361e78274d360f41adc9
                                        
                                            GET /s/oxygen/v15/2sDfZG1Wl4LcnbuKjk0m.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://equilume.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         216.58.207.227
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 16348
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Mon, 28 Nov 2022 21:12:58 GMT
expires: Tue, 28 Nov 2023 21:12:58 GMT
cache-control: public, max-age=31536000
age: 306057
last-modified: Mon, 09 May 2022 18:31:32 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 16348, version 1.0\012- data
Size:   16348
Md5:    8dc707b4818131fab44d482b1db5d458
Sha1:   8a0ff82b12fa25391ce17a6ae069d7fe5002f12d
Sha256: 9e64f128d5352d04ea5c87031e4cf1ad204b72a0afb003ece52eeb997d28a570
                                        
                                            GET /wp-includes/js/jquery/ui/tooltip.min.js?ver=1.13.1 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Wed, 29 Jun 2022 07:03:36 GMT
vary: Accept-Encoding
etag: W/"62bbf948-1828"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   15196
Md5:    ae20878bc2f8fdfdcbd8067588c86439
Sha1:   534fbbb7238bfeae596782e88fcb3b762dc83d96
Sha256: 1ee4bf0dce2425f7044013fe55f3be3d77fc28ff62c53c2e00fbf4c9e65a5c35
                                        
                                            GET /s/sourcesanspro/v21/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://equilume.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         216.58.207.227
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 12956
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Tue, 29 Nov 2022 15:42:42 GMT
expires: Wed, 29 Nov 2023 15:42:42 GMT
cache-control: public, max-age=31536000
age: 239473
last-modified: Wed, 27 Apr 2022 16:54:52 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 12956, version 1.0\012- data
Size:   12956
Md5:    1c772d9d0531b187db80bcfc199c1786
Sha1:   c0c04fb334190e10dffed0dcc5c817c2a6041a15
Sha256: 122854df4f39cf922db317714c2ff0eccab27a1028c14a5aa2211f48b7e0eade
                                        
                                            GET /wp-content/themes/bridge/css/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Connection: keep-alive
Referer: https://equilume.com/wp-content/themes/bridge/css/font-awesome/css/font-awesome.min.css?ver=8d821f543c51c33a7a9b3e75417d684e
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/octet-stream
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:55 GMT
content-length: 77160
last-modified: Fri, 14 Oct 2022 15:46:53 GMT
etag: "6349846d-12d68"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 77160, version 4.459\012- data
Size:   77160
Md5:    af7ae505a9eed503f8b8e6982036873e
Sha1:   d6f48cba7d076fb6f2fd6ba993a75b9dc1ecbf0c
Sha256: 2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe
                                        
                                            GET /wp-content/uploads/2021/08/blue-sky-shiny-horse-narrow.jpg HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:55 GMT
content-length: 481609
last-modified: Fri, 14 Oct 2022 15:47:02 GMT
etag: "63498476-75949"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, baseline, precision 8, 614x1080, components 3\012- data
Size:   481609
Md5:    936f0872671503d5ea274756b6aafaab
Sha1:   56cdff2f62692da638dc20257efec6eaba5eb855
Sha256: 0295be9d70b7349e07fa9e555975d777c856ca51146015acde73127f0953a215
                                        
                                            GET /wp-content/themes/bridge-child/js/slick.min.js?ver=8d821f543c51c33a7a9b3e75417d684e HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Fri, 14 Oct 2022 15:46:54 GMT
vary: Accept-Encoding
etag: W/"6349846e-a3e1"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  data
Size:   96672
Md5:    0e98d24aad9444b496821d0a934090f2
Sha1:   6125edfc394a4de9e902d063e2f258513236ed40
Sha256: 3ac887bb121bd73c145abbe427b1c166d217e2bee854b305f87506e9af8bdb44
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         216.58.211.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Fri, 02 Dec 2022 10:13:55 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /recaptcha/releases/Km9gKuG06He-isPsP6saG8cn/recaptcha__en.js HTTP/1.1 
Host: www.gstatic.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: https://equilume.com
Connection: keep-alive
Referer: https://equilume.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

search
                                         216.58.207.227
HTTP/2 200 OK
content-type: text/javascript
                                        
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/recaptcha
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin-allow-popups; report-to="recaptcha"
report-to: {"group":"recaptcha","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/recaptcha"}]}
content-length: 162976
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Mon, 28 Nov 2022 19:09:57 GMT
expires: Tue, 28 Nov 2023 19:09:57 GMT
cache-control: public, max-age=31536000
last-modified: Mon, 14 Nov 2022 03:01:59 GMT
age: 313438
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (730)
Size:   162976
Md5:    79d18cf4265108d7cecca1bf4ada6109
Sha1:   e51d0285a545381d4c39e9e0292a650ffeeecbb9
Sha256: 59ce7253f371df0833c3f72d4748ef812002b90a49413c56d0ca7c40bb5a0ab6
                                        
                                            GET /wp-content/uploads/2016/11/EquilumeFavicon1.png HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: image/png
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:55 GMT
content-length: 3539
last-modified: Fri, 14 Oct 2022 15:47:02 GMT
etag: "63498476-dd3"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  PNG image data, 32 x 32, 8-bit/color RGBA, non-interlaced\012- data
Size:   3539
Md5:    ad3d455ea7fca1c3c1048edc963470d2
Sha1:   48386bebf2185c6725eb2f1f8882546fbc7c8bb0
Sha256: 76b3a1ad22205c014f859be6beb15f37be32f424edb0d2458b4542f9dd36d683
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         216.58.211.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Fri, 02 Dec 2022 10:13:55 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /ga.js HTTP/1.1 
Host: ssl.google-analytics.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

search
                                         142.250.74.40
HTTP/2 200 OK
content-type: text/javascript
                                        
strict-transport-security: max-age=10886400; includeSubDomains; preload
x-content-type-options: nosniff
vary: Accept-Encoding
content-encoding: gzip
cross-origin-resource-policy: cross-origin
server: Golfe2
content-length: 17168
date: Fri, 02 Dec 2022 08:32:37 GMT
expires: Fri, 02 Dec 2022 10:32:37 GMT
cache-control: public, max-age=7200
age: 6078
last-modified: Tue, 27 Sep 2022 22:01:05 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (1305)
Size:   17168
Md5:    01d5892e6e243b52998310c2925b9f3a
Sha1:   58180151b6a6ee4af73583a214b68efb9e8844d4
Sha256: 7e90efb4620a78e8869796d256bcddbde90b853c8c15c5cc116cb11d3d17bc4d
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         216.58.211.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Fri, 02 Dec 2022 10:13:55 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         216.58.211.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Fri, 02 Dec 2022 10:13:56 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /r/collect?v=1&aip=1&t=dc&_r=3&tid=UA-37876914-2&cid=1756384305.1669976034&jid=1444640274&_v=5.7.2&z=2114359518 HTTP/1.1 
Host: stats.g.doubleclick.net
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://equilume.com/
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

search
                                         108.177.14.156
HTTP/2 302 Found
content-type: text/html; charset=UTF-8
                                        
location: https://www.google.com/ads/ga-audiences?v=1&aip=1&t=sr&_r=4&tid=UA-37876914-2&cid=1756384305.1669976034&jid=1444640274&_v=5.7.2&z=2114359518
access-control-allow-origin: *
strict-transport-security: max-age=10886400; includeSubDomains; preload
date: Fri, 02 Dec 2022 10:13:56 GMT
pragma: no-cache
expires: Fri, 01 Jan 1990 00:00:00 GMT
cache-control: no-cache, no-store, must-revalidate
last-modified: Sun, 17 May 1998 03:00:00 GMT
cross-origin-resource-policy: cross-origin
server: Golfe2
content-length: 369
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  HTML document text\012- HTML document text\012- HTML document text\012- HTML document, ASCII text, with CRLF, LF line terminators
Size:   369
Md5:    a5da81fd014ab669114904fa3bbe2000
Sha1:   0582ed1f5a85a0ae37faa012c937a9b76ec5cce5
Sha256: a02d3f89d973e39011b7325929a43c60401ecdf390b43a111c145b9e1474603c
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         216.58.211.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Fri, 02 Dec 2022 10:13:56 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         216.58.211.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Fri, 02 Dec 2022 10:13:56 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /ads/ga-audiences?v=1&aip=1&t=sr&_r=4&tid=UA-37876914-2&cid=1756384305.1669976034&jid=1444640274&_v=5.7.2&z=2114359518&slf_rd=1&random=1163299887 HTTP/1.1 
Host: www.google.no
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://equilume.com/
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

search
                                         142.250.74.67
HTTP/2 200 OK
content-type: image/gif
                                        
p3p: policyref="https://www.googleadservices.com/pagead/p3p.xml", CP="NOI DEV PSA PSD IVA IVD OTP OUR OTR IND OTC"
timing-allow-origin: *
cross-origin-resource-policy: cross-origin
date: Fri, 02 Dec 2022 10:13:56 GMT
pragma: no-cache
expires: Fri, 01 Jan 1990 00:00:00 GMT
cache-control: no-cache, no-store, must-revalidate
x-content-type-options: nosniff
server: cafe
content-length: 42
x-xss-protection: 0
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  GIF image data, version 89a, 1 x 1\012- data
Size:   42
Md5:    d89746888da2d9510b64a9f031eaecd5
Sha1:   d5fceb6532643d0d84ffe09c40c481ecdf59e15a
Sha256: ef1955ae757c8b966c83248350331bd3a30f658ced11f387f8ebf05ab3368629
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         216.58.211.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Fri, 02 Dec 2022 10:13:56 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /wp-includes/js/jquery/ui/mouse.min.js?ver=1.13.1 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Wed, 29 Jun 2022 07:03:36 GMT
vary: Accept-Encoding
etag: W/"62bbf948-d53"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
                                        
                                            GET /wp-includes/js/jquery/ui/effect-size.min.js?ver=1.13.1 HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Wed, 29 Jun 2022 07:03:36 GMT
vary: Accept-Encoding
etag: W/"62bbf948-9ab"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
                                        
                                            GET /wp-content/plugins/qi-addons-for-elementor/inc/shortcodes/before-after/assets/js/plugins/jquery.twentytwenty.js?ver=8d821f543c51c33a7a9b3e75417d684e HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Fri, 14 Oct 2022 15:46:47 GMT
vary: Accept-Encoding
etag: W/"63498467-1556"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
                                        
                                            GET /wp-includes/js/wp-emoji-release.min.js?ver=8d821f543c51c33a7a9b3e75417d684e HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         139.162.163.84
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.15.8
date: Fri, 02 Dec 2022 10:13:53 GMT
last-modified: Wed, 29 Jun 2022 07:03:36 GMT
vary: Accept-Encoding
etag: W/"62bbf948-48b9"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
                                        
                                            POST /?wc-ajax=get_refreshed_fragments HTTP/1.1 
Host: equilume.com
                                        
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 18
Origin: https://equilume.com
Connection: keep-alive
Referer: https://equilume.com/blog/understanding-the-benefits-of-light/
Cookie: aelia_cs_selected_currency=EUR; aelia_customer_country=NO
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
TE: trailers

search