PageSourceSearch

https://www.chilischarf.at/typo3temp/assets/compressed/merged-c6ae…da5da9f50fd889988fa0d6e3.js.gzip?1713432833

js chilischarf.at collected 2026-10-04 12:17:31 UTC 438,067 bytes, 4,247 lines download raw bytes

1
vendor: 68,253 bytes, lines 2-14
2// ==================================================
3// fancyBox v3.5.7
4//
5// Licensed GPLv3 for open source use
6// or fancyBox Commercial License for commercial use
7//
8// http://fancyapps.com/fancybox/
9// Copyright 2019 fancyApps
10//
11// ==================================================
12!function(t,e,n,o){"use strict";function i(t,e){var o,i,a,s=[],r=0;t&&t.isDefaultPrevented()||(t.preventDefault(),e=e||{},t&&t.data&&(e=h(t.data.options,e)),o=e.$target||n(t.currentTarget).trigger("blur"),(a=n.fancybox.getInstance())&&a.$trigger&&a.$trigger.is(o)||(e.selector?s=n(e.selector):(i=o.attr("data-fancybox")||"",i?(s=t.data?t.data.items:[],s=s.length?s.filter('[data-fancybox="'+i+'"]'):n('[data-fancybox="'+i+'"]')):s=[o]),r=n(s).index(o),r<0&&(r=0),a=n.fancybox.open(s,e,r),a.$trigger=o))}if(t.console=t.console||{info:function(t){}},n){if(n.fn.fancybox)return void console.info("fancyBox already initialized");var a={closeExisting:!1,loop:!1,gutter:50,keyboard:!0,preventCaptionOverlap:!0,arrows:!0,infobar:!0,smallBtn:"auto",toolbar:"auto",buttons:["zoom","slideShow","thumbs","close"],idleTime:3,protect:!1,modal:!1,image:{preload:!1},ajax:{settings:{data:{fancybox:!0}}},iframe:{tpl:'<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" allowfullscreen="allowfullscreen" allow="autoplay; fullscreen" src=""></iframe>',preload:!0,css:{},attr:{scrolling:"auto"}},video:{tpl:'<video class="fancybox-video" controls controlsList="nodownload" poster="{{poster}}"><source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos, <a href="{{src}}">download</a> and watch with your favorite video player!</video>',format:"",autoStart:!0},defaultType:"image",animationEffect:"zoom",animationDuration:366,zoomOpacity:"auto",transitionEffect:"fade",transitionDuration:366,slideClass:"",baseClass:"",baseTpl:'<div class="fancybox-container" role="dialog" tabindex="-1"><div class="fancybox-bg"></div><div class="fancybox-inner"><div class="fancybox-infobar"><span data-fancybox-index></span>&nbsp;/&nbsp;<span data-fancybox-count></span></div><div class="fancybox-toolbar">{{buttons}}</div><div class="fancybox-navigation">{{arrows}}</div><div class="fancybox-stage"></div><div class="fancybox-caption"><div class="fancybox-caption__body"></div></div></div></div>',spinnerTpl:'<div class="fancybox-loading"></div>',errorTpl:'<div class="fancybox-error"><p>{{ERROR}}</p></div>',btnTpl:{download:'<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}" href="javascript:;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.62 17.09V19H5.38v-1.91zm-2.97-6.96L17 11.45l-5 4.87-5-4.87 1.36-1.32 2.68 2.64V5h1.92v7.77z"/></svg></a>',zoom:'<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.7 17.3l-3-3a5.9 5.9 0 0 0-.6-7.6 5.9 5.9 0 0 0-8.4 0 5.9 5.9 0 0 0 0 8.4 5.9 5.9 0 0 0 7.7.7l3 3a1 1 0 0 0 1.3 0c.4-.5.4-1 0-1.5zM8.1 13.8a4 4 0 0 1 0-5.7 4 4 0 0 1 5.7 0 4 4 0 0 1 0 5.7 4 4 0 0 1-5.7 0z"/></svg></button>',close:'<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 10.6L6.6 5.2 5.2 6.6l5.4 5.4-5.4 5.4 1.4 1.4 5.4-5.4 5.4 5.4 1.4-1.4-5.4-5.4 5.4-5.4-1.4-1.4-5.4 5.4z"/></svg></button>',arrowLeft:'<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.28 15.7l-1.34 1.37L5 12l4.94-5.07 1.34 1.38-2.68 2.72H19v1.94H8.6z"/></svg></div></button>',arrowRight:'<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.4 12.97l-2.68 2.72 1.34 1.38L19 12l-4.94-5.07-1.34 1.38 2.68 2.72H5v1.94z"/></svg></div></button>',smallBtn:'<button type="button" data-fancybox-close class="fancybox-button fancybox-close-small" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" version="1" viewBox="0 0 24 24"><path d="M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z"/></svg></button>'},parentEl:"body",hideScrollbar:!0,autoFocus:!0,backFocus:!0,trapFocus:!0,fullScreen:{autoStart:!1},touch:{vertical:!0,momentum:!0},hash:null,media:{},slideShow:{autoStart:!1,speed:3e3},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"},wheel:"auto",onInit:n.noop,beforeLoad:n.noop,afterLoad:n.noop,beforeShow:n.noop,afterShow:n.noop,beforeClose:n.noop,afterClose:n.noop,onActivate:n.noop,onDeactivate:n.noop,clickContent:function(t,e){return"image"===t.type&&"zoom"},clickSlide:"close",clickOutside:"close",dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1,mobile:{preventCaptionOverlap:!1,idleTime:!1,clickContent:function(t,e){return"image"===t.type&&"toggleControls"},clickSlide:function(t,e){return"image"===t.type?"toggleControls":"close"},dblclickContent:function(t,e){return"image"===t.type&&"zoom"},dblclickSlide:function(t,e){return"image"===t.type&&"zoom"}},lang:"en",i18n:{en:{CLOSE:"Close",NEXT:"Next",PREV:"Previous",ERROR:"The requested content cannot be loaded. <br/> Please try again later.",PLAY_START:"Start slideshow",PLAY_STOP:"Pause slideshow",FULL_SCREEN:"Full screen",THUMBS:"Thumbnails",DOWNLOAD:"Download",SHARE:"Share",ZOOM:"Zoom"},de:{CLOSE:"Schlie&szlig;en",NEXT:"Weiter",PREV:"Zur&uuml;ck",ERROR:"Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es sp&auml;ter nochmal.",PLAY_START:"Diaschau starten",PLAY_STOP:"Diaschau beenden",FULL_SCREEN:"Vollbild",THUMBS:"Vorschaubilder",DOWNLOAD:"Herunterladen",SHARE:"Teilen",ZOOM:"Vergr&ouml;&szlig;ern"}}},s=n(t),r=n(e),c=0,l=function(t){return t&&t.hasOwnProperty&&t instanceof n},d=function(){return t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)}}(),u=function(){return t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.mozCancelAnimationFrame||t.oCancelAnimationFrame||function(e){t.clearTimeout(e)}}(),f=function(){var t,n=e.createElement("fakeelement"),o={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(t in o)if(void 0!==n.style[t])return o[t];return"transitionend"}(),p=function(t){return t&&t.length&&t[0].offsetHeight},h=function(t,e){var o=n.extend(!0,{},t,e);return n.each(e,function(t,e){n.isArray(e)&&(o[t]=e)}),o},g=function(t){var o,i;return!(!t||t.ownerDocument!==e)&&(n(".fancybox-container").css("pointer-events","none"),o={x:t.getBoundingClientRect().left+t.offsetWidth/2,y:t.getBoundingClientRect().top+t.offsetHeight/2},i=e.elementFromPoint(o.x,o.y)===t,n(".fancybox-container").css("pointer-events",""),i)},b=function(t,e,o){var i=this;i.opts=h({index:o},n.fancybox.defaults),n.isPlainObject(e)&&(i.opts=h(i.opts,e)),n.fancybox.isMobile&&(i.opts=h(i.opts,i.opts.mobile)),i.id=i.opts.id||++c,i.currIndex=parseInt(i.opts.index,10)||0,i.prevIndex=null,i.prevPos=null,i.currPos=0,i.firstRun=!0,i.group=[],i.slides={},i.addContent(t),i.group.length&&i.init()};n.extend(b.prototype,{init:function(){var o,i,a=this,s=a.group[a.currIndex],r=s.opts;r.closeExisting&&n.fancybox.close(!0),n("body").addClass("fancybox-active"),!n.fancybox.getInstance()&&!1!==r.hideScrollbar&&!n.fancybox.isMobile&&e.body.scrollHeight>t.innerHeight&&(n("head").append('<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar{margin-right:'+(t.innerWidth-e.documentElement.clientWidth)+"px;}</style>"),n("body").addClass("compensate-for-scrollbar")),i="",n.each(r.buttons,function(t,e){i+=r.btnTpl[e]||""}),o=n(a.translate(a,r.baseTpl.replace("{{buttons}}",i).replace("{{arrows}}",r.btnTpl.arrowLeft+r.btnTpl.arrowRight))).attr("id","fancybox-container-"+a.id).addClass(r.baseClass).data("FancyBox",a).appendTo(r.parentEl),a.$refs={container:o},["bg","inner","infobar","toolbar","stage","caption","navigation"].forEach(function(t){a.$refs[t]=o.find(".fancybox-"+t)}),a.trigger("onInit"),a.activate(),a.jumpTo(a.currIndex)},translate:function(t,e){var n=t.opts.i18n[t.opts.lang]||t.opts.i18n.en;return e.replace(/\{\{(\w+)\}\}/g,function(t,e){return void 0===n[e]?t:n[e]})},addContent:function(t){var e,o=this,i=n.makeArray(t);n.each(i,function(t,e){var i,a,s,r,c,l={},d={};n.isPlainObject(e)?(l=e,d=e.opts||e):"object"===n.type(e)&&n(e).length?(i=n(e),d=i.data()||{},d=n.extend(!0,{},d,d.options),d.$orig=i,l.src=o.opts.src||d.src||i.attr("href"),l.type||l.src||(l.type="inline",l.src=e)):l={type:"html",src:e+""},l.opts=n.extend(!0,{},o.opts,d),n.isArray(d.buttons)&&(l.opts.buttons=d.buttons),n.fancybox.isMobile&&l.opts.mobile&&(l.opts=h(l.opts,l.opts.mobile)),a=l.type||l.opts.type,r=l.src||"",!a&&r&&((s=r.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))?(a="video",l.opts.video.format||(l.opts.video.format="video/"+("ogv"===s[1]?"ogg":s[1]))):r.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)?a="image":r.match(/\.(pdf)((\?|#).*)?$/i)?(a="iframe",l=n.extend(!0,l,{contentType:"pdf",opts:{iframe:{preload:!1}}})):"#"===r.charAt(0)&&(a="inline")),a?l.type=a:o.trigger("objectNeedsType",l),l.contentType||(l.contentType=n.inArray(l.type,["html","inline","ajax"])>-1?"html":l.type),l.index=o.group.length,"auto"==l.opts.smallBtn&&(l.opts.smallBtn=n.inArray(l.type,["html","inline","ajax"])>-1),"auto"===l.opts.toolbar&&(l.opts.toolbar=!l.opts.smallBtn),l.$thumb=l.opts.$thumb||null,l.opts.$trigger&&l.index===o.opts.index&&(l.$thumb=l.opts.$trigger.find("img:first"),l.$thumb.length&&(l.opts.$orig=l.opts.$trigger)),l.$thumb&&l.$thumb.length||!l.opts.$orig||(l.$thumb=l.opts.$orig.find("img:first")),l.$thumb&&!l.$thumb.length&&(l.$thumb=null),l.thumb=l.opts.thumb||(l.$thumb?l.$thumb[0].src:null),"function"===n.type(l.opts.caption)&&(l.opts.caption=l.opts.caption.apply(e,[o,l])),"function"===n.type(o.opts.caption)&&(l.opts.caption=o.opts.caption.apply(e,[o,l])),l.opts.caption instanceof n||(l.opts.caption=void 0===l.opts.caption?"":l.opts.caption+""),"ajax"===l.type&&(c=r.split(/\s+/,2),c.length>1&&(l.src=c.shift(),l.opts.filter=c.shift())),l.opts.modal&&(l.opts=n.extend(!0,l.opts,{trapFocus:!0,infobar:0,toolbar:0,smallBtn:0,keyboard:0,slideShow:0,fullScreen:0,thumbs:0,touch:0,clickContent:!1,clickSlide:!1,clickOutside:!1,dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1})),o.group.push(l)}),Object.keys(o.slides).length&&(o.updateControls(),(e=o.Thumbs)&&e.isActive&&(e.create(),e.focus()))},addEvents:function(){var e=this;e.removeEvents(),e.$refs.container.on("click.fb-close","[data-fancybox-close]",function(t){t.stopPropagation(),t.preventDefault(),e.close(t)}).on("touchstart.fb-prev click.fb-prev","[data-fancybox-prev]",function(t){t.stopPropagation(),t.preventDefault(),e.previous()}).on("touchstart.fb-next click.fb-next","[data-fancybox-next]",function(t){t.stopPropagation(),t.preventDefault(),e.next()}).on("click.fb","[data-fancybox-zoom]",function(t){e[e.isScaledDown()?"scaleToActual":"scaleToFit"]()}),s.on("orientationchange.fb resize.fb",function(t){t&&t.originalEvent&&"resize"===t.originalEvent.type?(e.requestId&&u(e.requestId),e.requestId=d(function(){e.update(t)})):(e.current&&"iframe"===e.current.type&&e.$refs.stage.hide(),setTimeout(function(){e.$refs.stage.show(),e.update(t)},n.fancybox.isMobile?600:250))}),r.on("keydown.fb",function(t){var o=n.fancybox?n.fancybox.getInstance():null,i=o.current,a=t.keyCode||t.which;if(9==a)return void(i.opts.trapFocus&&e.focus(t));if(!(!i.opts.keyboard||t.ctrlKey||t.altKey||t.shiftKey||n(t.target).is("input,textarea,video,audio,select")))return 8===a||27===a?(t.preventDefault(),void e.close(t)):37===a||38===a?(t.preventDefault(),void e.previous()):39===a||40===a?(t.preventDefault(),void e.next()):void e.trigger("afterKeydown",t,a)}),e.group[e.currIndex].opts.idleTime&&(e.idleSecondsCounter=0,r.on("mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle",function(t){e.idleSecondsCounter=0,e.isIdle&&e.showControls(),e.isIdle=!1}),e.idleInterval=t.setInterval(function(){++e.idleSecondsCounter>=e.group[e.currIndex].opts.idleTime&&!e.isDragging&&(e.isIdle=!0,e.idleSecondsCounter=0,e.hideControls())},1e3))},removeEvents:function(){var e=this;s.off("orientationchange.fb resize.fb"),r.off("keydown.fb .fb-idle"),this.$refs.container.off(".fb-close .fb-prev .fb-next"),e.idleInterval&&(t.clearInterval(e.idleInterval),e.idleInterval=null)},previous:function(t){return this.jumpTo(this.currPos-1,t)},next:function(t){return this.jumpTo(this.currPos+1,t)},jumpTo:function(t,e){var o,i,a,s,r,c,l,d,u,f=this,h=f.group.length;if(!(f.isDragging||f.isClosing||f.isAnimating&&f.firstRun)){if(t=parseInt(t,10),!(a=f.current?f.current.opts.loop:f.opts.loop)&&(t<0||t>=h))return!1;if(o=f.firstRun=!Object.keys(f.slides).length,r=f.current,f.prevIndex=f.currIndex,f.prevPos=f.currPos,s=f.createSlide(t),h>1&&((a||s.index<h-1)&&f.createSlide(t+1),(a||s.index>0)&&f.createSlide(t-1)),f.current=s,f.currIndex=s.index,f.currPos=s.pos,f.trigger("beforeShow",o),f.updateControls(),s.forcedDuration=void 0,n.isNumeric(e)?s.forcedDuration=e:e=s.opts[o?"animationDuration":"transitionDuration"],e=parseInt(e,10),i=f.isMoved(s),s.$slide.addClass("fancybox-slide--current"),o)return s.opts.animationEffect&&e&&f.$refs.container.css("transition-duration",e+"ms"),f.$refs.container.addClass("fancybox-is-open").trigger("focus"),f.loadSlide(s),void f.preload("image");c=n.fancybox.getTranslate(r.$slide),l=n.fancybox.getTranslate(f.$refs.stage),n.each(f.slides,function(t,e){n.fancybox.stop(e.$slide,!0)}),r.pos!==s.pos&&(r.isComplete=!1),r.$slide.removeClass("fancybox-slide--complete fancybox-slide--current"),i?(u=c.left-(r.pos*c.width+r.pos*r.opts.gutter),n.each(f.slides,function(t,o){o.$slide.removeClass("fancybox-animated").removeClass(function(t,e){return(e.match(/(^|\s)fancybox-fx-\S+/g)||[]).join(" ")});var i=o.pos*c.width+o.pos*o.opts.gutter;n.fancybox.setTranslate(o.$slide,{top:0,left:i-l.left+u}),o.pos!==s.pos&&o.$slide.addClass("fancybox-slide--"+(o.pos>s.pos?"next":"previous")),p(o.$slide),n.fancybox.animate(o.$slide,{top:0,left:(o.pos-s.pos)*c.width+(o.pos-s.pos)*o.opts.gutter},e,function(){o.$slide.css({transform:"",opacity:""}).removeClass("fancybox-slide--next fancybox-slide--previous"),o.pos===f.currPos&&f.complete()})})):e&&s.opts.transitionEffect&&(d="fancybox-animated fancybox-fx-"+s.opts.transitionEffect,r.$slide.addClass("fancybox-slide--"+(r.pos>s.pos?"next":"previous")),n.fancybox.animate(r.$slide,d,e,function(){r.$slide.removeClass(d).removeClass("fancybox-slide--next fancybox-slide--previous")},!1)),s.isLoaded?f.revealContent(s):f.loadSlide(s),f.preload("image")}},createSlide:function(t){var e,o,i=this;return o=t%i.group.length,o=o<0?i.group.length+o:o,!i.slides[t]&&i.group[o]&&(e=n('<div class="fancybox-slide"></div>').appendTo(i.$refs.stage),i.slides[t]=n.extend(!0,{},i.group[o],{pos:t,$slide:e,isLoaded:!1}),i.updateSlide(i.slides[t])),i.slides[t]},scaleToActual:function(t,e,o){var i,a,s,r,c,l=this,d=l.current,u=d.$content,f=n.fancybox.getTranslate(d.$slide).width,p=n.fancybox.getTranslate(d.$slide).height,h=d.width,g=d.height;l.isAnimating||l.isMoved()||!u||"image"!=d.type||!d.isLoaded||d.hasError||(l.isAnimating=!0,n.fancybox.stop(u),t=void 0===t?.5*f:t,e=void 0===e?.5*p:e,i=n.fancybox.getTranslate(u),i.top-=n.fancybox.getTranslate(d.$slide).top,i.left-=n.fancybox.getTranslate(d.$slide).left,r=h/i.width,c=g/i.height,a=.5*f-.5*h,s=.5*p-.5*g,h>f&&(a=i.left*r-(t*r-t),a>0&&(a=0),a<f-h&&(a=f-h)),g>p&&(s=i.top*c-(e*c-e),s>0&&(s=0),s<p-g&&(s=p-g)),l.updateCursor(h,g),n.fancybox.animate(u,{top:s,left:a,scaleX:r,scaleY:c},o||366,function(){l.isAnimating=!1}),l.SlideShow&&l.SlideShow.isActive&&l.SlideShow.stop())},scaleToFit:function(t){var e,o=this,i=o.current,a=i.$content;o.isAnimating||o.isMoved()||!a||"image"!=i.type||!i.isLoaded||i.hasError||(o.isAnimating=!0,n.fancybox.stop(a),e=o.getFitPos(i),o.updateCursor(e.width,e.height),n.fancybox.animate(a,{top:e.top,left:e.left,scaleX:e.width/a.width(),scaleY:e.height/a.height()},t||366,function(){o.isAnimating=!1}))},getFitPos:function(t){var e,o,i,a,s=this,r=t.$content,c=t.$slide,l=t.width||t.opts.width,d=t.height||t.opts.height,u={};return!!(t.isLoaded&&r&&r.length)&&(e=n.fancybox.getTranslate(s.$refs.stage).width,o=n.fancybox.getTranslate(s.$refs.stage).height,e-=parseFloat(c.css("paddingLeft"))+parseFloat(c.css("paddingRight"))+parseFloat(r.css("marginLeft"))+parseFloat(r.css("marginRight")),o-=parseFloat(c.css("paddingTop"))+parseFloat(c.css("paddingBottom"))+parseFloat(r.css("marginTop"))+parseFloat(r.css("marginBottom")),l&&d||(l=e,d=o),i=Math.min(1,e/l,o/d),l*=i,d*=i,l>e-.5&&(l=e),d>o-.5&&(d=o),"image"===t.type?(u.top=Math.floor(.5*(o-d))+parseFloat(c.css("paddingTop")),u.left=Math.floor(.5*(e-l))+parseFloat(c.css("paddingLeft"))):"video"===t.contentType&&(a=t.opts.width&&t.opts.height?l/d:t.opts.ratio||16/9,d>l/a?d=l/a:l>d*a&&(l=d*a)),u.width=l,u.height=d,u)},update:function(t){var e=this;n.each(e.slides,function(n,o){e.updateSlide(o,t)})},updateSlide:function(t,e){var o=this,i=t&&t.$content,a=t.width||t.opts.width,s=t.height||t.opts.height,r=t.$slide;o.adjustCaption(t),i&&(a||s||"video"===t.contentType)&&!t.hasError&&(n.fancybox.stop(i),n.fancybox.setTranslate(i,o.getFitPos(t)),t.pos===o.currPos&&(o.isAnimating=!1,o.updateCursor())),o.adjustLayout(t),r.length&&(r.trigger("refresh"),t.pos===o.currPos&&o.$refs.toolbar.add(o.$refs.navigation.find(".fancybox-button--arrow_right")).toggleClass("compensate-for-scrollbar",r.get(0).scrollHeight>r.get(0).clientHeight)),o.trigger("onUpdate",t,e)},centerSlide:function(t){var e=this,o=e.current,i=o.$slide;!e.isClosing&&o&&(i.siblings().css({transform:"",opacity:""}),i.parent().children().removeClass("fancybox-slide--previous fancybox-slide--next"),n.fancybox.animate(i,{top:0,left:0,opacity:1},void 0===t?0:t,function(){i.css({transform:"",opacity:""}),o.isComplete||e.complete()},!1))},isMoved:function(t){var e,o,i=t||this.current;return!!i&&(o=n.fancybox.getTranslate(this.$refs.stage),e=n.fancybox.getTranslate(i.$slide),!i.$slide.hasClass("fancybox-animated")&&(Math.abs(e.top-o.top)>.5||Math.abs(e.left-o.left)>.5))},updateCursor:function(t,e){var o,i,a=this,s=a.current,r=a.$refs.container;s&&!a.isClosing&&a.Guestures&&(r.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan"),o=a.canPan(t,e),i=!!o||a.isZoomable(),r.toggleClass("fancybox-is-zoomable",i),n("[data-fancybox-zoom]").prop("disabled",!i),o?r.addClass("fancybox-can-pan"):i&&("zoom"===s.opts.clickContent||n.isFunction(s.opts.clickContent)&&"zoom"==s.opts.clickContent(s))?r.addClass("fancybox-can-zoomIn"):s.opts.touch&&(s.opts.touch.vertical||a.group.length>1)&&"video"!==s.contentType&&r.addClass("fancybox-can-swipe"))},isZoomable:function(){var t,e=this,n=e.current;if(n&&!e.isClosing&&"image"===n.type&&!n.hasError){if(!n.isLoaded)return!0;if((t=e.getFitPos(n))&&(n.width>t.width||n.height>t.height))return!0}return!1},isScaledDown:function(t,e){var o=this,i=!1,a=o.current,s=a.$content;return void 0!==t&&void 0!==e?i=t<a.width&&e<a.height:s&&(i=n.fancybox.getTranslate(s),i=i.width<a.width&&i.height<a.height),i},canPan:function(t,e){var o=this,i=o.current,a=null,s=!1;return"image"===i.type&&(i.isComplete||t&&e)&&!i.hasError&&(s=o.getFitPos(i),void 0!==t&&void 0!==e?a={width:t,height:e}:i.isComplete&&(a=n.fancybox.getTranslate(i.$content)),a&&s&&(s=Math.abs(a.width-s.width)>1.5||Math.abs(a.height-s.height)>1.5)),s},loadSlide:function(t){var e,o,i,a=this;if(!t.isLoading&&!t.isLoaded){if(t.isLoading=!0,!1===a.trigger("beforeLoad",t))return t.isLoading=!1,!1;switch(e=t.type,o=t.$slide,o.off("refresh").trigger("onReset").addClass(t.opts.slideClass),e){case"image":a.setImage(t);break;case"iframe":a.setIframe(t);break;case"html":a.setContent(t,t.src||t.content);break;case"video":a.setContent(t,t.opts.video.tpl.replace(/\{\{src\}\}/gi,t.src).replace("{{format}}",t.opts.videoFormat||t.opts.video.format||"").replace("{{poster}}",t.thumb||""));break;case"inline":n(t.src).length?a.setContent(t,n(t.src)):a.setError(t);break;case"ajax":a.showLoading(t),i=n.ajax(n.extend({},t.opts.ajax.settings,{url:t.src,success:function(e,n){"success"===n&&a.setContent(t,e)},error:function(e,n){e&&"abort"!==n&&a.setError(t)}})),o.one("onReset",function(){i.abort()});break;default:a.setError(t)}return!0}},setImage:function(t){var o,i=this;setTimeout(function(){var e=t.$image;i.isClosing||!t.isLoading||e&&e.length&&e[0].complete||t.hasError||i.showLoading(t)},50),i.checkSrcset(t),t.$content=n('<div class="fancybox-content"></div>').addClass("fancybox-is-hidden").appendTo(t.$slide.addClass("fancybox-slide--image")),!1!==t.opts.preload&&t.opts.width&&t.opts.height&&t.thumb&&(t.width=t.opts.width,t.height=t.opts.height,o=e.createElement("img"),o.onerror=function(){n(this).remove(),t.$ghost=null},o.onload=function(){i.afterLoad(t)},t.$ghost=n(o).addClass("fancybox-image").appendTo(t.$content).attr("src",t.thumb)),i.setBigImage(t)},checkSrcset:function(e){var n,o,i,a,s=e.opts.srcset||e.opts.image.srcset;if(s){i=t.devicePixelRatio||1,a=t.innerWidth*i,o=s.split(",").map(function(t){var e={};return t.trim().split(/\s+/).forEach(function(t,n){var o=parseInt(t.substring(0,t.length-1),10);if(0===n)return e.url=t;o&&(e.value=o,e.postfix=t[t.length-1])}),e}),o.sort(function(t,e){return t.value-e.value});for(var r=0;r<o.length;r++){var c=o[r];if("w"===c.postfix&&c.value>=a||"x"===c.postfix&&c.value>=i){n=c;break}}!n&&o.length&&(n=o[o.length-1]),n&&(e.src=n.url,e.width&&e.height&&"w"==n.postfix&&(e.height=e.width/e.height*n.value,e.width=n.value),e.opts.srcset=s)}},setBigImage:function(t){var o=this,i=e.createElement("img"),a=n(i);t.$image=a.one("error",function(){o.setError(t)}).one("load",function(){var e;t.$ghost||(o.resolveImageSlideSize(t,this.naturalWidth,this.naturalHeight),o.afterLoad(t)),o.isClosing||(t.opts.srcset&&(e=t.opts.sizes,e&&"auto"!==e||(e=(t.width/t.height>1&&s.width()/s.height()>1?"100":Math.round(t.width/t.height*100))+"vw"),a.attr("sizes",e).attr("srcset",t.opts.srcset)),t.$ghost&&setTimeout(function(){t.$ghost&&!o.isClosing&&t.$ghost.hide()},Math.min(300,Math.max(1e3,t.height/1600))),o.hideLoading(t))}).addClass("fancybox-image").attr("src",t.src).appendTo(t.$content),(i.complete||"complete"==i.readyState)&&a.naturalWidth&&a.naturalHeight?a.trigger("load"):i.error&&a.trigger("error")},resolveImageSlideSize:function(t,e,n){var o=parseInt(t.opts.width,10),i=parseInt(t.opts.height,10);t.width=e,t.height=n,o>0&&(t.width=o,t.height=Math.floor(o*n/e)),i>0&&(t.width=Math.floor(i*e/n),t.height=i)},setIframe:function(t){var e,o=this,i=t.opts.iframe,a=t.$slide;t.$content=n('<div class="fancybox-content'+(i.preload?" fancybox-is-hidden":"")+'"></div>').css(i.css).appendTo(a),a.addClass("fancybox-slide--"+t.contentType),t.$iframe=e=n(i.tpl.replace(/\{rnd\}/g,(new Date).getTime())).attr(i.attr).appendTo(t.$content),i.preload?(o.showLoading(t),e.on("load.fb error.fb",function(e){this.isReady=1,t.$slide.trigger("refresh"),o.afterLoad(t)}),a.on("refresh.fb",function(){var n,o,s=t.$content,r=i.css.width,c=i.css.height;if(1===e[0].isReady){try{n=e.contents(),o=n.find("body")}catch(t){}o&&o.length&&o.children().length&&(a.css("overflow","visible"),s.css({width:"100%","max-width":"100%",height:"9999px"}),void 0===r&&(r=Math.ceil(Math.max(o[0].clientWidth,o.outerWidth(!0)))),s.css("width",r||"").css("max-width",""),void 0===c&&(c=Math.ceil(Math.max(o[0].clientHeight,o.outerHeight(!0)))),s.css("height",c||""),a.css("overflow","auto")),s.removeClass("fancybox-is-hidden")}})):o.afterLoad(t),e.attr("src",t.src),a.one("onReset",function(){try{n(this).find("iframe").hide().unbind().attr("src","//about:blank")}catch(t){}n(this).off("refresh.fb").empty(),t.isLoaded=!1,t.isRevealed=!1})},setContent:function(t,e){var o=this;o.isClosing||(o.hideLoading(t),t.$content&&n.fancybox.stop(t.$content),t.$slide.empty(),l(e)&&e.parent().length?((e.hasClass("fancybox-content")||e.parent().hasClass("fancybox-content"))&&e.parents(".fancybox-slide").trigger("onReset"),t.$placeholder=n("<div>").hide().insertAfter(e),e.css("display","inline-block")):t.hasError||("string"===n.type(e)&&(e=n("<div>").append(n.trim(e)).contents()),t.opts.filter&&(e=n("<div>").html(e).find(t.opts.filter))),t.$slide.one("onReset",function(){n(this).find("video,audio").trigger("pause"),t.$placeholder&&(t.$placeholder.after(e.removeClass("fancybox-content").hide()).remove(),t.$placeholder=null),t.$smallBtn&&(t.$smallBtn.remove(),t.$smallBtn=null),t.hasError||(n(this).empty(),t.isLoaded=!1,t.isRevealed=!1)}),n(e).appendTo(t.$slide),n(e).is("video,audio")&&(n(e).addClass("fancybox-video"),n(e).wrap("<div></div>"),t.contentType="video",t.opts.width=t.opts.width||n(e).attr("width"),t.opts.height=t.opts.height||n(e).attr("height")),t.$content=t.$slide.children().filter("div,form,main,video,audio,article,.fancybox-content").first(),t.$content.siblings().hide(),t.$content.length||(t.$content=t.$slide.wrapInner("<div></div>").children().first()),t.$content.addClass("fancybox-content"),t.$slide.addClass("fancybox-slide--"+t.contentType),o.afterLoad(t))},setError:function(t){t.hasError=!0,t.$slide.trigger("onReset").removeClass("fancybox-slide--"+t.contentType).addClass("fancybox-slide--error"),t.contentType="html",this.setContent(t,this.translate(t,t.opts.errorTpl)),t.pos===this.currPos&&(this.isAnimating=!1)},showLoading:function(t){var e=this;(t=t||e.current)&&!t.$spinner&&(t.$spinner=n(e.translate(e,e.opts.spinnerTpl)).appendTo(t.$slide).hide().fadeIn("fast"))},hideLoading:function(t){var e=this;(t=t||e.current)&&t.$spinner&&(t.$spinner.stop().remove(),delete t.$spinner)},afterLoad:function(t){var e=this;e.isClosing||(t.isLoading=!1,t.isLoaded=!0,e.trigger("afterLoad",t),e.hideLoading(t),!t.opts.smallBtn||t.$smallBtn&&t.$smallBtn.length||(t.$smallBtn=n(e.translate(t,t.opts.btnTpl.smallBtn)).appendTo(t.$content)),t.opts.protect&&t.$content&&!t.hasError&&(t.$content.on("contextmenu.fb",function(t){return 2==t.button&&t.preventDefault(),!0}),"image"===t.type&&n('<div class="fancybox-spaceball"></div>').appendTo(t.$content)),e.adjustCaption(t),e.adjustLayout(t),t.pos===e.currPos&&e.updateCursor(),e.revealContent(t))},adjustCaption:function(t){var e,n=this,o=t||n.current,i=o.opts.caption,a=o.opts.preventCaptionOverlap,s=n.$refs.caption,r=!1;s.toggleClass("fancybox-caption--separate",a),a&&i&&i.length&&(o.pos!==n.currPos?(e=s.clone().appendTo(s.parent()),e.children().eq(0).empty().html(i),r=e.outerHeight(!0),e.empty().remove()):n.$caption&&(r=n.$caption.outerHeight(!0)),o.$slide.css("padding-bottom",r||""))},adjustLayout:function(t){var e,n,o,i,a=this,s=t||a.current;s.isLoaded&&!0!==s.opts.disableLayoutFix&&(s.$content.css("margin-bottom",""),s.$content.outerHeight()>s.$slide.height()+.5&&(o=s.$slide[0].style["padding-bottom"],i=s.$slide.css("padding-bottom"),parseFloat(i)>0&&(e=s.$slide[0].scrollHeight,s.$slide.css("padding-bottom",0),Math.abs(e-s.$slide[0].scrollHeight)<1&&(n=i),s.$slide.css("padding-bottom",o))),s.$content.css("margin-bottom",n))},revealContent:function(t){var e,o,i,a,s=this,r=t.$slide,c=!1,l=!1,d=s.isMoved(t),u=t.isRevealed;return t.isRevealed=!0,e=t.opts[s.firstRun?"animationEffect":"transitionEffect"],i=t.opts[s.firstRun?"animationDuration":"transitionDuration"],i=parseInt(void 0===t.forcedDuration?i:t.forcedDuration,10),!d&&t.pos===s.currPos&&i||(e=!1),"zoom"===e&&(t.pos===s.currPos&&i&&"image"===t.type&&!t.hasError&&(l=s.getThumbPos(t))?c=s.getFitPos(t):e="fade"),"zoom"===e?(s.isAnimating=!0,c.scaleX=c.width/l.width,c.scaleY=c.height/l.height,a=t.opts.zoomOpacity,"auto"==a&&(a=Math.abs(t.width/t.height-l.width/l.height)>.1),a&&(l.opacity=.1,c.opacity=1),n.fancybox.setTranslate(t.$content.removeClass("fancybox-is-hidden"),l),p(t.$content),void n.fancybox.animate(t.$content,c,i,function(){s.isAnimating=!1,s.complete()})):(s.updateSlide(t),e?(n.fancybox.stop(r),o="fancybox-slide--"+(t.pos>=s.prevPos?"next":"previous")+" fancybox-animated fancybox-fx-"+e,r.addClass(o).removeClass("fancybox-slide--current"),t.$content.removeClass("fancybox-is-hidden"),p(r),"image"!==t.type&&t.$content.hide().show(0),void n.fancybox.animate(r,"fancybox-slide--current",i,function(){r.removeClass(o).css({transform:"",opacity:""}),t.pos===s.currPos&&s.complete()},!0)):(t.$content.removeClass("fancybox-is-hidden"),u||!d||"image"!==t.type||t.hasError||t.$content.hide().fadeIn("fast"),void(t.pos===s.currPos&&s.complete())))},getThumbPos:function(t){var e,o,i,a,s,r=!1,c=t.$thumb;return!(!c||!g(c[0]))&&(e=n.fancybox.getTranslate(c),o=parseFloat(c.css("border-top-width")||0),i=parseFloat(c.css("border-right-width")||0),a=parseFloat(c.css("border-bottom-width")||0),s=parseFloat(c.css("border-left-width")||0),r={top:e.top+o,left:e.left+s,width:e.width-i-s,height:e.height-o-a,scaleX:1,scaleY:1},e.width>0&&e.height>0&&r)},complete:function(){var t,e=this,o=e.current,i={};!e.isMoved()&&o.isLoaded&&(o.isComplete||(o.isComplete=!0,o.$slide.siblings().trigger("onReset"),e.preload("inline"),p(o.$slide),o.$slide.addClass("fancybox-slide--complete"),n.each(e.slides,function(t,o){o.pos>=e.currPos-1&&o.pos<=e.currPos+1?i[o.pos]=o:o&&(n.fancybox.stop(o.$slide),o.$slide.off().remove())}),e.slides=i),e.isAnimating=!1,e.updateCursor(),e.trigger("afterShow"),o.opts.video.autoStart&&o.$slide.find("video,audio").filter(":visible:first").trigger("play").one("ended",function(){Document.exitFullscreen?Document.exitFullscreen():this.webkitExitFullscreen&&this.webkitExitFullscreen(),e.next()}),o.opts.autoFocus&&"html"===o.contentType&&(t=o.$content.find("input[autofocus]:enabled:visible:first"),t.length?t.trigger("focus"):e.focus(null,!0)),o.$slide.scrollTop(0).scrollLeft(0))},preload:function(t){var e,n,o=this;o.group.length<2||(n=o.slides[o.currPos+1],e=o.slides[o.currPos-1],e&&e.type===t&&o.loadSlide(e),n&&n.type===t&&o.loadSlide(n))},focus:function(t,o){var i,a,s=this,r=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden])","iframe","object","embed","video","audio","[contenteditable]",'[tabindex]:not([tabindex^="-"])'].join(",");s.isClosing||(i=!t&&s.current&&s.current.isComplete?s.current.$slide.find("*:visible"+(o?":not(.fancybox-close-small)":"")):s.$refs.container.find("*:visible"),i=i.filter(r).filter(function(){return"hidden"!==n(this).css("visibility")&&!n(this).hasClass("disabled")}),i.length?(a=i.index(e.activeElement),t&&t.shiftKey?(a<0||0==a)&&(t.preventDefault(),i.eq(i.length-1).trigger("focus")):(a<0||a==i.length-1)&&(t&&t.preventDefault(),i.eq(0).trigger("focus"))):s.$refs.container.trigger("focus"))},activate:function(){var t=this;n(".fancybox-container").each(function(){var e=n(this).data("FancyBox");e&&e.id!==t.id&&!e.isClosing&&(e.trigger("onDeactivate"),e.removeEvents(),e.isVisible=!1)}),t.isVisible=!0,(t.current||t.isIdle)&&(t.update(),t.updateControls()),t.trigger("onActivate"),t.addEvents()},close:function(t,e){var o,i,a,s,r,c,l,u=this,f=u.current,h=function(){u.cleanUp(t)};return!u.isClosing&&(u.isClosing=!0,!1===u.trigger("beforeClose",t)?(u.isClosing=!1,d(function(){u.update()}),!1):(u.removeEvents(),a=f.$content,o=f.opts.animationEffect,i=n.isNumeric(e)?e:o?f.opts.animationDuration:0,f.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"),!0!==t?n.fancybox.stop(f.$slide):o=!1,f.$slide.siblings().trigger("onReset").remove(),i&&u.$refs.container.removeClass("fancybox-is-open").addClass("fancybox-is-closing").css("transition-duration",i+"ms"),u.hideLoading(f),u.hideControls(!0),u.updateCursor(),"zoom"!==o||a&&i&&"image"===f.type&&!u.isMoved()&&!f.hasError&&(l=u.getThumbPos(f))||(o="fade"),"zoom"===o?(n.fancybox.stop(a),s=n.fancybox.getTranslate(a),c={top:s.top,left:s.left,scaleX:s.width/l.width,scaleY:s.height/l.height,width:l.width,height:l.height},r=f.opts.zoomOpacity,
13"auto"==r&&(r=Math.abs(f.width/f.height-l.width/l.height)>.1),r&&(l.opacity=0),n.fancybox.setTranslate(a,c),p(a),n.fancybox.animate(a,l,i,h),!0):(o&&i?n.fancybox.animate(f.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"),"fancybox-animated fancybox-fx-"+o,i,h):!0===t?setTimeout(h,i):h(),!0)))},cleanUp:function(e){var o,i,a,s=this,r=s.current.opts.$orig;s.current.$slide.trigger("onReset"),s.$refs.container.empty().remove(),s.trigger("afterClose",e),s.current.opts.backFocus&&(r&&r.length&&r.is(":visible")||(r=s.$trigger),r&&r.length&&(i=t.scrollX,a=t.scrollY,r.trigger("focus"),n("html, body").scrollTop(a).scrollLeft(i))),s.current=null,o=n.fancybox.getInstance(),o?o.activate():(n("body").removeClass("fancybox-active compensate-for-scrollbar"),n("#fancybox-style-noscroll").remove())},trigger:function(t,e){var o,i=Array.prototype.slice.call(arguments,1),a=this,s=e&&e.opts?e:a.current;if(s?i.unshift(s):s=a,i.unshift(a),n.isFunction(s.opts[t])&&(o=s.opts[t].apply(s,i)),!1===o)return o;"afterClose"!==t&&a.$refs?a.$refs.container.trigger(t+".fb",i):r.trigger(t+".fb",i)},updateControls:function(){var t=this,o=t.current,i=o.index,a=t.$refs.container,s=t.$refs.caption,r=o.opts.caption;o.$slide.trigger("refresh"),r&&r.length?(t.$caption=s,s.children().eq(0).html(r)):t.$caption=null,t.hasHiddenControls||t.isIdle||t.showControls(),a.find("[data-fancybox-count]").html(t.group.length),a.find("[data-fancybox-index]").html(i+1),a.find("[data-fancybox-prev]").prop("disabled",!o.opts.loop&&i<=0),a.find("[data-fancybox-next]").prop("disabled",!o.opts.loop&&i>=t.group.length-1),"image"===o.type?a.find("[data-fancybox-zoom]").show().end().find("[data-fancybox-download]").attr("href",o.opts.image.src||o.src).show():o.opts.toolbar&&a.find("[data-fancybox-download],[data-fancybox-zoom]").hide(),n(e.activeElement).is(":hidden,[disabled]")&&t.$refs.container.trigger("focus")},hideControls:function(t){var e=this,n=["infobar","toolbar","nav"];!t&&e.current.opts.preventCaptionOverlap||n.push("caption"),this.$refs.container.removeClass(n.map(function(t){return"fancybox-show-"+t}).join(" ")),this.hasHiddenControls=!0},showControls:function(){var t=this,e=t.current?t.current.opts:t.opts,n=t.$refs.container;t.hasHiddenControls=!1,t.idleSecondsCounter=0,n.toggleClass("fancybox-show-toolbar",!(!e.toolbar||!e.buttons)).toggleClass("fancybox-show-infobar",!!(e.infobar&&t.group.length>1)).toggleClass("fancybox-show-caption",!!t.$caption).toggleClass("fancybox-show-nav",!!(e.arrows&&t.group.length>1)).toggleClass("fancybox-is-modal",!!e.modal)},toggleControls:function(){this.hasHiddenControls?this.showControls():this.hideControls()}}),n.fancybox={version:"3.5.7",defaults:a,getInstance:function(t){var e=n('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),o=Array.prototype.slice.call(arguments,1);return e instanceof b&&("string"===n.type(t)?e[t].apply(e,o):"function"===n.type(t)&&t.apply(e,o),e)},open:function(t,e,n){return new b(t,e,n)},close:function(t){var e=this.getInstance();e&&(e.close(),!0===t&&this.close(t))},destroy:function(){this.close(!0),r.add("body").off("click.fb-start","**")},isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),use3d:function(){var n=e.createElement("div");return t.getComputedStyle&&t.getComputedStyle(n)&&t.getComputedStyle(n).getPropertyValue("transform")&&!(e.documentMode&&e.documentMode<11)}(),getTranslate:function(t){var e;return!(!t||!t.length)&&(e=t[0].getBoundingClientRect(),{top:e.top||0,left:e.left||0,width:e.width,height:e.height,opacity:parseFloat(t.css("opacity"))})},setTranslate:function(t,e){var n="",o={};if(t&&e)return void 0===e.left&&void 0===e.top||(n=(void 0===e.left?t.position().left:e.left)+"px, "+(void 0===e.top?t.position().top:e.top)+"px",n=this.use3d?"translate3d("+n+", 0px)":"translate("+n+")"),void 0!==e.scaleX&&void 0!==e.scaleY?n+=" scale("+e.scaleX+", "+e.scaleY+")":void 0!==e.scaleX&&(n+=" scaleX("+e.scaleX+")"),n.length&&(o.transform=n),void 0!==e.opacity&&(o.opacity=e.opacity),void 0!==e.width&&(o.width=e.width),void 0!==e.height&&(o.height=e.height),t.css(o)},animate:function(t,e,o,i,a){var s,r=this;n.isFunction(o)&&(i=o,o=null),r.stop(t),s=r.getTranslate(t),t.on(f,function(c){(!c||!c.originalEvent||t.is(c.originalEvent.target)&&"z-index"!=c.originalEvent.propertyName)&&(r.stop(t),n.isNumeric(o)&&t.css("transition-duration",""),n.isPlainObject(e)?void 0!==e.scaleX&&void 0!==e.scaleY&&r.setTranslate(t,{top:e.top,left:e.left,width:s.width*e.scaleX,height:s.height*e.scaleY,scaleX:1,scaleY:1}):!0!==a&&t.removeClass(e),n.isFunction(i)&&i(c))}),n.isNumeric(o)&&t.css("transition-duration",o+"ms"),n.isPlainObject(e)?(void 0!==e.scaleX&&void 0!==e.scaleY&&(delete e.width,delete e.height,t.parent().hasClass("fancybox-slide--image")&&t.parent().addClass("fancybox-is-scaling")),n.fancybox.setTranslate(t,e)):t.addClass(e),t.data("timer",setTimeout(function(){t.trigger(f)},o+33))},stop:function(t,e){t&&t.length&&(clearTimeout(t.data("timer")),e&&t.trigger(f),t.off(f).css("transition-duration",""),t.parent().removeClass("fancybox-is-scaling"))}},n.fn.fancybox=function(t){var e;return t=t||{},e=t.selector||!1,e?n("body").off("click.fb-start",e).on("click.fb-start",e,{options:t},i):this.off("click.fb-start").on("click.fb-start",{items:this,options:t},i),this},r.on("click.fb-start","[data-fancybox]",i),r.on("click.fb-start","[data-fancybox-trigger]",function(t){n('[data-fancybox="'+n(this).attr("data-fancybox-trigger")+'"]').eq(n(this).attr("data-fancybox-index")||0).trigger("click.fb-start",{$trigger:n(this)})}),function(){var t=null;r.on("mousedown mouseup focus blur",".fancybox-button",function(e){switch(e.type){case"mousedown":t=n(this);break;case"mouseup":t=null;break;case"focusin":n(".fancybox-button").removeClass("fancybox-focus"),n(this).is(t)||n(this).is("[disabled]")||n(this).addClass("fancybox-focus");break;case"focusout":n(".fancybox-button").removeClass("fancybox-focus")}})}()}}(window,document,jQuery),function(t){"use strict";var e={youtube:{matcher:/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,params:{autoplay:1,autohide:1,fs:1,rel:0,hd:1,wmode:"transparent",enablejsapi:1,html5:1},paramPlace:8,type:"iframe",url:"https://www.youtube-nocookie.com/embed/$4",thumb:"https://img.youtube.com/vi/$4/hqdefault.jpg"},vimeo:{matcher:/^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,params:{autoplay:1,hd:1,show_title:1,show_byline:1,show_portrait:0,fullscreen:1},paramPlace:3,type:"iframe",url:"//player.vimeo.com/video/$2"},instagram:{matcher:/(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,type:"image",url:"//$1/p/$2/media/?size=l"},gmap_place:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/?ll="+(t[9]?t[9]+"&z="+Math.floor(t[10])+(t[12]?t[12].replace(/^\//,"&"):""):t[12]+"").replace(/\?/,"&")+"&output="+(t[12]&&t[12].indexOf("layer=c")>0?"svembed":"embed")}},gmap_search:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/maps?q="+t[5].replace("query=","q=").replace("api=1","")+"&output=embed"}}},n=function(e,n,o){if(e)return o=o||"","object"===t.type(o)&&(o=t.param(o,!0)),t.each(n,function(t,n){e=e.replace("$"+t,n||"")}),o.length&&(e+=(e.indexOf("?")>0?"&":"?")+o),e};t(document).on("objectNeedsType.fb",function(o,i,a){var s,r,c,l,d,u,f,p=a.src||"",h=!1;s=t.extend(!0,{},e,a.opts.media),t.each(s,function(e,o){if(c=p.match(o.matcher)){if(h=o.type,f=e,u={},o.paramPlace&&c[o.paramPlace]){d=c[o.paramPlace],"?"==d[0]&&(d=d.substring(1)),d=d.split("&");for(var i=0;i<d.length;++i){var s=d[i].split("=",2);2==s.length&&(u[s[0]]=decodeURIComponent(s[1].replace(/\+/g," ")))}}return l=t.extend(!0,{},o.params,a.opts[e],u),p="function"===t.type(o.url)?o.url.call(this,c,l,a):n(o.url,c,l),r="function"===t.type(o.thumb)?o.thumb.call(this,c,l,a):n(o.thumb,c),"youtube"===e?p=p.replace(/&t=((\d+)m)?(\d+)s/,function(t,e,n,o){return"&start="+((n?60*parseInt(n,10):0)+parseInt(o,10))}):"vimeo"===e&&(p=p.replace("&%23","#")),!1}}),h?(a.opts.thumb||a.opts.$thumb&&a.opts.$thumb.length||(a.opts.thumb=r),"iframe"===h&&(a.opts=t.extend(!0,a.opts,{iframe:{preload:!1,attr:{scrolling:"no"}}})),t.extend(a,{type:h,src:p,origSrc:a.src,contentSource:f,contentType:"image"===h?"image":"gmap_place"==f||"gmap_search"==f?"map":"video"})):p&&(a.type=a.opts.defaultType)});var o={youtube:{src:"https://www.youtube.com/iframe_api",class:"YT",loading:!1,loaded:!1},vimeo:{src:"https://player.vimeo.com/api/player.js",class:"Vimeo",loading:!1,loaded:!1},load:function(t){var e,n=this;if(this[t].loaded)return void setTimeout(function(){n.done(t)});this[t].loading||(this[t].loading=!0,e=document.createElement("script"),e.type="text/javascript",e.src=this[t].src,"youtube"===t?window.onYouTubeIframeAPIReady=function(){n[t].loaded=!0,n.done(t)}:e.onload=function(){n[t].loaded=!0,n.done(t)},document.body.appendChild(e))},done:function(e){var n,o,i;"youtube"===e&&delete window.onYouTubeIframeAPIReady,(n=t.fancybox.getInstance())&&(o=n.current.$content.find("iframe"),"youtube"===e&&void 0!==YT&&YT?i=new YT.Player(o.attr("id"),{events:{onStateChange:function(t){0==t.data&&n.next()}}}):"vimeo"===e&&void 0!==Vimeo&&Vimeo&&(i=new Vimeo.Player(o),i.on("ended",function(){n.next()})))}};t(document).on({"afterShow.fb":function(t,e,n){e.group.length>1&&("youtube"===n.contentSource||"vimeo"===n.contentSource)&&o.load(n.contentSource)}})}(jQuery),function(t,e,n){"use strict";var o=function(){return t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||function(e){return t.setTimeout(e,1e3/60)}}(),i=function(){return t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.mozCancelAnimationFrame||t.oCancelAnimationFrame||function(e){t.clearTimeout(e)}}(),a=function(e){var n=[];e=e.originalEvent||e||t.e,e=e.touches&&e.touches.length?e.touches:e.changedTouches&&e.changedTouches.length?e.changedTouches:[e];for(var o in e)e[o].pageX?n.push({x:e[o].pageX,y:e[o].pageY}):e[o].clientX&&n.push({x:e[o].clientX,y:e[o].clientY});return n},s=function(t,e,n){return e&&t?"x"===n?t.x-e.x:"y"===n?t.y-e.y:Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)):0},r=function(t){if(t.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe')||n.isFunction(t.get(0).onclick)||t.data("selectable"))return!0;for(var e=0,o=t[0].attributes,i=o.length;e<i;e++)if("data-fancybox-"===o[e].nodeName.substr(0,14))return!0;return!1},c=function(e){var n=t.getComputedStyle(e)["overflow-y"],o=t.getComputedStyle(e)["overflow-x"],i=("scroll"===n||"auto"===n)&&e.scrollHeight>e.clientHeight,a=("scroll"===o||"auto"===o)&&e.scrollWidth>e.clientWidth;return i||a},l=function(t){for(var e=!1;;){if(e=c(t.get(0)))break;if(t=t.parent(),!t.length||t.hasClass("fancybox-stage")||t.is("body"))break}return e},d=function(t){var e=this;e.instance=t,e.$bg=t.$refs.bg,e.$stage=t.$refs.stage,e.$container=t.$refs.container,e.destroy(),e.$container.on("touchstart.fb.touch mousedown.fb.touch",n.proxy(e,"ontouchstart"))};d.prototype.destroy=function(){var t=this;t.$container.off(".fb.touch"),n(e).off(".fb.touch"),t.requestId&&(i(t.requestId),t.requestId=null),t.tapped&&(clearTimeout(t.tapped),t.tapped=null)},d.prototype.ontouchstart=function(o){var i=this,c=n(o.target),d=i.instance,u=d.current,f=u.$slide,p=u.$content,h="touchstart"==o.type;if(h&&i.$container.off("mousedown.fb.touch"),(!o.originalEvent||2!=o.originalEvent.button)&&f.length&&c.length&&!r(c)&&!r(c.parent())&&(c.is("img")||!(o.originalEvent.clientX>c[0].clientWidth+c.offset().left))){if(!u||d.isAnimating||u.$slide.hasClass("fancybox-animated"))return o.stopPropagation(),void o.preventDefault();i.realPoints=i.startPoints=a(o),i.startPoints.length&&(u.touch&&o.stopPropagation(),i.startEvent=o,i.canTap=!0,i.$target=c,i.$content=p,i.opts=u.opts.touch,i.isPanning=!1,i.isSwiping=!1,i.isZooming=!1,i.isScrolling=!1,i.canPan=d.canPan(),i.startTime=(new Date).getTime(),i.distanceX=i.distanceY=i.distance=0,i.canvasWidth=Math.round(f[0].clientWidth),i.canvasHeight=Math.round(f[0].clientHeight),i.contentLastPos=null,i.contentStartPos=n.fancybox.getTranslate(i.$content)||{top:0,left:0},i.sliderStartPos=n.fancybox.getTranslate(f),i.stagePos=n.fancybox.getTranslate(d.$refs.stage),i.sliderStartPos.top-=i.stagePos.top,i.sliderStartPos.left-=i.stagePos.left,i.contentStartPos.top-=i.stagePos.top,i.contentStartPos.left-=i.stagePos.left,n(e).off(".fb.touch").on(h?"touchend.fb.touch touchcancel.fb.touch":"mouseup.fb.touch mouseleave.fb.touch",n.proxy(i,"ontouchend")).on(h?"touchmove.fb.touch":"mousemove.fb.touch",n.proxy(i,"ontouchmove")),n.fancybox.isMobile&&e.addEventListener("scroll",i.onscroll,!0),((i.opts||i.canPan)&&(c.is(i.$stage)||i.$stage.find(c).length)||(c.is(".fancybox-image")&&o.preventDefault(),n.fancybox.isMobile&&c.parents(".fancybox-caption").length))&&(i.isScrollable=l(c)||l(c.parent()),n.fancybox.isMobile&&i.isScrollable||o.preventDefault(),(1===i.startPoints.length||u.hasError)&&(i.canPan?(n.fancybox.stop(i.$content),i.isPanning=!0):i.isSwiping=!0,i.$container.addClass("fancybox-is-grabbing")),2===i.startPoints.length&&"image"===u.type&&(u.isLoaded||u.$ghost)&&(i.canTap=!1,i.isSwiping=!1,i.isPanning=!1,i.isZooming=!0,n.fancybox.stop(i.$content),i.centerPointStartX=.5*(i.startPoints[0].x+i.startPoints[1].x)-n(t).scrollLeft(),i.centerPointStartY=.5*(i.startPoints[0].y+i.startPoints[1].y)-n(t).scrollTop(),i.percentageOfImageAtPinchPointX=(i.centerPointStartX-i.contentStartPos.left)/i.contentStartPos.width,i.percentageOfImageAtPinchPointY=(i.centerPointStartY-i.contentStartPos.top)/i.contentStartPos.height,i.startDistanceBetweenFingers=s(i.startPoints[0],i.startPoints[1]))))}},d.prototype.onscroll=function(t){var n=this;n.isScrolling=!0,e.removeEventListener("scroll",n.onscroll,!0)},d.prototype.ontouchmove=function(t){var e=this;return void 0!==t.originalEvent.buttons&&0===t.originalEvent.buttons?void e.ontouchend(t):e.isScrolling?void(e.canTap=!1):(e.newPoints=a(t),void((e.opts||e.canPan)&&e.newPoints.length&&e.newPoints.length&&(e.isSwiping&&!0===e.isSwiping||t.preventDefault(),e.distanceX=s(e.newPoints[0],e.startPoints[0],"x"),e.distanceY=s(e.newPoints[0],e.startPoints[0],"y"),e.distance=s(e.newPoints[0],e.startPoints[0]),e.distance>0&&(e.isSwiping?e.onSwipe(t):e.isPanning?e.onPan():e.isZooming&&e.onZoom()))))},d.prototype.onSwipe=function(e){var a,s=this,r=s.instance,c=s.isSwiping,l=s.sliderStartPos.left||0;if(!0!==c)"x"==c&&(s.distanceX>0&&(s.instance.group.length<2||0===s.instance.current.index&&!s.instance.current.opts.loop)?l+=Math.pow(s.distanceX,.8):s.distanceX<0&&(s.instance.group.length<2||s.instance.current.index===s.instance.group.length-1&&!s.instance.current.opts.loop)?l-=Math.pow(-s.distanceX,.8):l+=s.distanceX),s.sliderLastPos={top:"x"==c?0:s.sliderStartPos.top+s.distanceY,left:l},s.requestId&&(i(s.requestId),s.requestId=null),s.requestId=o(function(){s.sliderLastPos&&(n.each(s.instance.slides,function(t,e){var o=e.pos-s.instance.currPos;n.fancybox.setTranslate(e.$slide,{top:s.sliderLastPos.top,left:s.sliderLastPos.left+o*s.canvasWidth+o*e.opts.gutter})}),s.$container.addClass("fancybox-is-sliding"))});else if(Math.abs(s.distance)>10){if(s.canTap=!1,r.group.length<2&&s.opts.vertical?s.isSwiping="y":r.isDragging||!1===s.opts.vertical||"auto"===s.opts.vertical&&n(t).width()>800?s.isSwiping="x":(a=Math.abs(180*Math.atan2(s.distanceY,s.distanceX)/Math.PI),s.isSwiping=a>45&&a<135?"y":"x"),"y"===s.isSwiping&&n.fancybox.isMobile&&s.isScrollable)return void(s.isScrolling=!0);r.isDragging=s.isSwiping,s.startPoints=s.newPoints,n.each(r.slides,function(t,e){var o,i;n.fancybox.stop(e.$slide),o=n.fancybox.getTranslate(e.$slide),i=n.fancybox.getTranslate(r.$refs.stage),e.$slide.css({transform:"",opacity:"","transition-duration":""}).removeClass("fancybox-animated").removeClass(function(t,e){return(e.match(/(^|\s)fancybox-fx-\S+/g)||[]).join(" ")}),e.pos===r.current.pos&&(s.sliderStartPos.top=o.top-i.top,s.sliderStartPos.left=o.left-i.left),n.fancybox.setTranslate(e.$slide,{top:o.top-i.top,left:o.left-i.left})}),r.SlideShow&&r.SlideShow.isActive&&r.SlideShow.stop()}},d.prototype.onPan=function(){var t=this;if(s(t.newPoints[0],t.realPoints[0])<(n.fancybox.isMobile?10:5))return void(t.startPoints=t.newPoints);t.canTap=!1,t.contentLastPos=t.limitMovement(),t.requestId&&i(t.requestId),t.requestId=o(function(){n.fancybox.setTranslate(t.$content,t.contentLastPos)})},d.prototype.limitMovement=function(){var t,e,n,o,i,a,s=this,r=s.canvasWidth,c=s.canvasHeight,l=s.distanceX,d=s.distanceY,u=s.contentStartPos,f=u.left,p=u.top,h=u.width,g=u.height;return i=h>r?f+l:f,a=p+d,t=Math.max(0,.5*r-.5*h),e=Math.max(0,.5*c-.5*g),n=Math.min(r-h,.5*r-.5*h),o=Math.min(c-g,.5*c-.5*g),l>0&&i>t&&(i=t-1+Math.pow(-t+f+l,.8)||0),l<0&&i<n&&(i=n+1-Math.pow(n-f-l,.8)||0),d>0&&a>e&&(a=e-1+Math.pow(-e+p+d,.8)||0),d<0&&a<o&&(a=o+1-Math.pow(o-p-d,.8)||0),{top:a,left:i}},d.prototype.limitPosition=function(t,e,n,o){var i=this,a=i.canvasWidth,s=i.canvasHeight;return n>a?(t=t>0?0:t,t=t<a-n?a-n:t):t=Math.max(0,a/2-n/2),o>s?(e=e>0?0:e,e=e<s-o?s-o:e):e=Math.max(0,s/2-o/2),{top:e,left:t}},d.prototype.onZoom=function(){var e=this,a=e.contentStartPos,r=a.width,c=a.height,l=a.left,d=a.top,u=s(e.newPoints[0],e.newPoints[1]),f=u/e.startDistanceBetweenFingers,p=Math.floor(r*f),h=Math.floor(c*f),g=(r-p)*e.percentageOfImageAtPinchPointX,b=(c-h)*e.percentageOfImageAtPinchPointY,m=(e.newPoints[0].x+e.newPoints[1].x)/2-n(t).scrollLeft(),v=(e.newPoints[0].y+e.newPoints[1].y)/2-n(t).scrollTop(),y=m-e.centerPointStartX,x=v-e.centerPointStartY,w=l+(g+y),$=d+(b+x),S={top:$,left:w,scaleX:f,scaleY:f};e.canTap=!1,e.newWidth=p,e.newHeight=h,e.contentLastPos=S,e.requestId&&i(e.requestId),e.requestId=o(function(){n.fancybox.setTranslate(e.$content,e.contentLastPos)})},d.prototype.ontouchend=function(t){var o=this,s=o.isSwiping,r=o.isPanning,c=o.isZooming,l=o.isScrolling;if(o.endPoints=a(t),o.dMs=Math.max((new Date).getTime()-o.startTime,1),o.$container.removeClass("fancybox-is-grabbing"),n(e).off(".fb.touch"),e.removeEventListener("scroll",o.onscroll,!0),o.requestId&&(i(o.requestId),o.requestId=null),o.isSwiping=!1,o.isPanning=!1,o.isZooming=!1,o.isScrolling=!1,o.instance.isDragging=!1,o.canTap)return o.onTap(t);o.speed=100,o.velocityX=o.distanceX/o.dMs*.5,o.velocityY=o.distanceY/o.dMs*.5,r?o.endPanning():c?o.endZooming():o.endSwiping(s,l)},d.prototype.endSwiping=function(t,e){var o=this,i=!1,a=o.instance.group.length,s=Math.abs(o.distanceX),r="x"==t&&a>1&&(o.dMs>130&&s>10||s>50);o.sliderLastPos=null,"y"==t&&!e&&Math.abs(o.distanceY)>50?(n.fancybox.animate(o.instance.current.$slide,{top:o.sliderStartPos.top+o.distanceY+150*o.velocityY,opacity:0},200),i=o.instance.close(!0,250)):r&&o.distanceX>0?i=o.instance.previous(300):r&&o.distanceX<0&&(i=o.instance.next(300)),!1!==i||"x"!=t&&"y"!=t||o.instance.centerSlide(200),o.$container.removeClass("fancybox-is-sliding")},d.prototype.endPanning=function(){var t,e,o,i=this;i.contentLastPos&&(!1===i.opts.momentum||i.dMs>350?(t=i.contentLastPos.left,e=i.contentLastPos.top):(t=i.contentLastPos.left+500*i.velocityX,e=i.contentLastPos.top+500*i.velocityY),o=i.limitPosition(t,e,i.contentStartPos.width,i.contentStartPos.height),o.width=i.contentStartPos.width,o.height=i.contentStartPos.height,n.fancybox.animate(i.$content,o,366))},d.prototype.endZooming=function(){var t,e,o,i,a=this,s=a.instance.current,r=a.newWidth,c=a.newHeight;a.contentLastPos&&(t=a.contentLastPos.left,e=a.contentLastPos.top,i={top:e,left:t,width:r,height:c,scaleX:1,scaleY:1},n.fancybox.setTranslate(a.$content,i),r<a.canvasWidth&&c<a.canvasHeight?a.instance.scaleToFit(150):r>s.width||c>s.height?a.instance.scaleToActual(a.centerPointStartX,a.centerPointStartY,150):(o=a.limitPosition(t,e,r,c),n.fancybox.animate(a.$content,o,150)))},d.prototype.onTap=function(e){var o,i=this,s=n(e.target),r=i.instance,c=r.current,l=e&&a(e)||i.startPoints,d=l[0]?l[0].x-n(t).scrollLeft()-i.stagePos.left:0,u=l[0]?l[0].y-n(t).scrollTop()-i.stagePos.top:0,f=function(t){var o=c.opts[t];if(n.isFunction(o)&&(o=o.apply(r,[c,e])),o)switch(o){case"close":r.close(i.startEvent);break;case"toggleControls":r.toggleControls();break;case"next":r.next();break;case"nextOrClose":r.group.length>1?r.next():r.close(i.startEvent);break;case"zoom":"image"==c.type&&(c.isLoaded||c.$ghost)&&(r.canPan()?r.scaleToFit():r.isScaledDown()?r.scaleToActual(d,u):r.group.length<2&&r.close(i.startEvent))}};if((!e.originalEvent||2!=e.originalEvent.button)&&(s.is("img")||!(d>s[0].clientWidth+s.offset().left))){if(s.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container"))o="Outside";else if(s.is(".fancybox-slide"))o="Slide";else{if(!r.current.$content||!r.current.$content.find(s).addBack().filter(s).length)return;o="Content"}if(i.tapped){if(clearTimeout(i.tapped),i.tapped=null,Math.abs(d-i.tapX)>50||Math.abs(u-i.tapY)>50)return this;f("dblclick"+o)}else i.tapX=d,i.tapY=u,c.opts["dblclick"+o]&&c.opts["dblclick"+o]!==c.opts["click"+o]?i.tapped=setTimeout(function(){i.tapped=null,r.isAnimating||f("click"+o)},500):f("click"+o);return this}},n(e).on("onActivate.fb",function(t,e){e&&!e.Guestures&&(e.Guestures=new d(e))}).on("beforeClose.fb",function(t,e){e&&e.Guestures&&e.Guestures.destroy()})}(window,document,jQuery),function(t,e){"use strict";e.extend(!0,e.fancybox.defaults,{btnTpl:{slideShow:'<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 5.4v13.2l11-6.6z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.33 5.75h2.2v12.5h-2.2V5.75zm5.15 0h2.2v12.5h-2.2V5.75z"/></svg></button>'},slideShow:{autoStart:!1,speed:3e3,progress:!0}});var n=function(t){this.instance=t,this.init()};e.extend(n.prototype,{timer:null,isActive:!1,$button:null,init:function(){var t=this,n=t.instance,o=n.group[n.currIndex].opts.slideShow;t.$button=n.$refs.toolbar.find("[data-fancybox-play]").on("click",function(){t.toggle()}),n.group.length<2||!o?t.$button.hide():o.progress&&(t.$progress=e('<div class="fancybox-progress"></div>').appendTo(n.$refs.inner))},set:function(t){var n=this,o=n.instance,i=o.current;i&&(!0===t||i.opts.loop||o.currIndex<o.group.length-1)?n.isActive&&"video"!==i.contentType&&(n.$progress&&e.fancybox.animate(n.$progress.show(),{scaleX:1},i.opts.slideShow.speed),n.timer=setTimeout(function(){o.current.opts.loop||o.current.index!=o.group.length-1?o.next():o.jumpTo(0)},i.opts.slideShow.speed)):(n.stop(),o.idleSecondsCounter=0,o.showControls())},clear:function(){var t=this;clearTimeout(t.timer),t.timer=null,t.$progress&&t.$progress.removeAttr("style").hide()},start:function(){var t=this,e=t.instance.current;e&&(t.$button.attr("title",(e.opts.i18n[e.opts.lang]||e.opts.i18n.en).PLAY_STOP).removeClass("fancybox-button--play").addClass("fancybox-button--pause"),t.isActive=!0,e.isComplete&&t.set(!0),t.instance.trigger("onSlideShowChange",!0))},stop:function(){var t=this,e=t.instance.current;t.clear(),t.$button.attr("title",(e.opts.i18n[e.opts.lang]||e.opts.i18n.en).PLAY_START).removeClass("fancybox-button--pause").addClass("fancybox-button--play"),t.isActive=!1,t.instance.trigger("onSlideShowChange",!1),t.$progress&&t.$progress.removeAttr("style").hide()},toggle:function(){var t=this;t.isActive?t.stop():t.start()}}),e(t).on({"onInit.fb":function(t,e){e&&!e.SlideShow&&(e.SlideShow=new n(e))},"beforeShow.fb":function(t,e,n,o){var i=e&&e.SlideShow;o?i&&n.opts.slideShow.autoStart&&i.start():i&&i.isActive&&i.clear()},"afterShow.fb":function(t,e,n){var o=e&&e.SlideShow;o&&o.isActive&&o.set()},"afterKeydown.fb":function(n,o,i,a,s){var r=o&&o.SlideShow;!r||!i.opts.slideShow||80!==s&&32!==s||e(t.activeElement).is("button,a,input")||(a.preventDefault(),r.toggle())},"beforeClose.fb onDeactivate.fb":function(t,e){var n=e&&e.SlideShow;n&&n.stop()}}),e(t).on("visibilitychange",function(){var n=e.fancybox.getInstance(),o=n&&n.SlideShow;o&&o.isActive&&(t.hidden?o.clear():o.set())})}(document,jQuery),function(t,e){"use strict";var n=function(){for(var e=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],n={},o=0;o<e.length;o++){var i=e[o];if(i&&i[1]in t){for(var a=0;a<i.length;a++)n[e[0][a]]=i[a];return n}}return!1}();if(n){var o={request:function(e){e=e||t.documentElement,e[n.requestFullscreen](e.ALLOW_KEYBOARD_INPUT)},exit:function(){t[n.exitFullscreen]()},toggle:function(e){e=e||t.documentElement,this.isFullscreen()?this.exit():this.request(e)},isFullscreen:function(){return Boolean(t[n.fullscreenElement])},enabled:function(){return Boolean(t[n.fullscreenEnabled])}};e.extend(!0,e.fancybox.defaults,{btnTpl:{fullScreen:'<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fsenter" title="{{FULL_SCREEN}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 16h3v3h2v-5H5zm3-8H5v2h5V5H8zm6 11h2v-3h3v-2h-5zm2-11V5h-2v5h5V8z"/></svg></button>'},fullScreen:{autoStart:!1}}),e(t).on(n.fullscreenchange,function(){var t=o.isFullscreen(),n=e.fancybox.getInstance();n&&(n.current&&"image"===n.current.type&&n.isAnimating&&(n.isAnimating=!1,n.update(!0,!0,0),n.isComplete||n.complete()),n.trigger("onFullscreenChange",t),n.$refs.container.toggleClass("fancybox-is-fullscreen",t),n.$refs.toolbar.find("[data-fancybox-fullscreen]").toggleClass("fancybox-button--fsenter",!t).toggleClass("fancybox-button--fsexit",t))})}e(t).on({"onInit.fb":function(t,e){var i;if(!n)return void e.$refs.toolbar.find("[data-fancybox-fullscreen]").remove();e&&e.group[e.currIndex].opts.fullScreen?(i=e.$refs.container,i.on("click.fb-fullscreen","[data-fancybox-fullscreen]",function(t){t.stopPropagation(),t.preventDefault(),o.toggle()}),e.opts.fullScreen&&!0===e.opts.fullScreen.autoStart&&o.request(),e.FullScreen=o):e&&e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide()},"afterKeydown.fb":function(t,e,n,o,i){e&&e.FullScreen&&70===i&&(o.preventDefault(),e.FullScreen.toggle())},"beforeClose.fb":function(t,e){e&&e.FullScreen&&e.$refs.container.hasClass("fancybox-is-fullscreen")&&o.exit()}})}(document,jQuery),function(t,e){"use strict";var n="fancybox-thumbs";e.fancybox.defaults=e.extend(!0,{btnTpl:{thumbs:'<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.59 14.59h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76H5.65V5.65z"/></svg></button>'},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container",axis:"y"}},e.fancybox.defaults);var o=function(t){this.init(t)};e.extend(o.prototype,{$button:null,$grid:null,$list:null,isVisible:!1,isActive:!1,init:function(t){var e=this,n=t.group,o=0;e.instance=t,e.opts=n[t.currIndex].opts.thumbs,t.Thumbs=e,e.$button=t.$refs.toolbar.find("[data-fancybox-thumbs]");for(var i=0,a=n.length;i<a&&(n[i].thumb&&o++,!(o>1));i++);o>1&&e.opts?(e.$button.removeAttr("style").on("click",function(){e.toggle()}),e.isActive=!0):e.$button.hide()},create:function(){var t,o=this,i=o.instance,a=o.opts.parentEl,s=[];o.$grid||(o.$grid=e('<div class="'+n+" "+n+"-"+o.opts.axis+'"></div>').appendTo(i.$refs.container.find(a).addBack().filter(a)),o.$grid.on("click","a",function(){i.jumpTo(e(this).attr("data-index"))})),o.$list||(o.$list=e('<div class="'+n+'__list">').appendTo(o.$grid)),e.each(i.group,function(e,n){t=n.thumb,t||"image"!==n.type||(t=n.src),s.push('<a href="javascript:;" tabindex="0" data-index="'+e+'"'+(t&&t.length?' style="background-image:url('+t+')"':'class="fancybox-thumbs-missing"')+"></a>")}),o.$list[0].innerHTML=s.join(""),"x"===o.opts.axis&&o.$list.width(parseInt(o.$grid.css("padding-right"),10)+i.group.length*o.$list.children().eq(0).outerWidth(!0))},focus:function(t){var e,n,o=this,i=o.$list,a=o.$grid;o.instance.current&&(e=i.children().removeClass("fancybox-thumbs-active").filter('[data-index="'+o.instance.current.index+'"]').addClass("fancybox-thumbs-active"),n=e.position(),"y"===o.opts.axis&&(n.top<0||n.top>i.height()-e.outerHeight())?i.stop().animate({scrollTop:i.scrollTop()+n.top},t):"x"===o.opts.axis&&(n.left<a.scrollLeft()||n.left>a.scrollLeft()+(a.width()-e.outerWidth()))&&i.parent().stop().animate({scrollLeft:n.left},t))},update:function(){var t=this;t.instance.$refs.container.toggleClass("fancybox-show-thumbs",this.isVisible),t.isVisible?(t.$grid||t.create(),t.instance.trigger("onThumbsShow"),t.focus(0)):t.$grid&&t.instance.trigger("onThumbsHide"),t.instance.update()},hide:function(){this.isVisible=!1,this.update()},show:function(){this.isVisible=!0,this.update()},toggle:function(){this.isVisible=!this.isVisible,this.update()}}),e(t).on({"onInit.fb":function(t,e){var n;e&&!e.Thumbs&&(n=new o(e),n.isActive&&!0===n.opts.autoStart&&n.show())},"beforeShow.fb":function(t,e,n,o){var i=e&&e.Thumbs;i&&i.isVisible&&i.focus(o?0:250)},"afterKeydown.fb":function(t,e,n,o,i){var a=e&&e.Thumbs;a&&a.isActive&&71===i&&(o.preventDefault(),a.toggle())},"beforeClose.fb":function(t,e){var n=e&&e.Thumbs;n&&n.isVisible&&!1!==n.opts.hideOnClose&&n.$grid.hide()}})}(document,jQuery),function(t,e){"use strict";function n(t){var e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;","`":"&#x60;","=":"&#x3D;"};return String(t).replace(/[&<>"'`=\/]/g,function(t){return e[t]})}e.extend(!0,e.fancybox.defaults,{btnTpl:{share:'<button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.55 19c1.4-8.4 9.1-9.8 11.9-9.8V5l7 7-7 6.3v-3.5c-2.8 0-10.5 2.1-11.9 4.2z"/></svg></button>'},share:{url:function(t,e){return!t.currentHash&&"inline"!==e.type&&"html"!==e.type&&(e.origSrc||e.src)||window.location},
14tpl:'<div class="fancybox-share"><h1>{{SHARE}}</h1><p><a class="fancybox-share__button fancybox-share__button--fb" href="https://www.facebook.com/sharer/sharer.php?u={{url}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196" /></svg><span>Facebook</span></a><a class="fancybox-share__button fancybox-share__button--tw" href="https://twitter.com/intent/tweet?url={{url}}&text={{descr}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z" /></svg><span>Twitter</span></a><a class="fancybox-share__button fancybox-share__button--pt" href="https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z" fill="#fff"/></svg><span>Pinterest</span></a></p><p><input class="fancybox-share__input" type="text" value="{{url_raw}}" onclick="select()" /></p></div>'}}),e(t).on("click","[data-fancybox-share]",function(){var t,o,i=e.fancybox.getInstance(),a=i.current||null;a&&("function"===e.type(a.opts.share.url)&&(t=a.opts.share.url.apply(a,[i,a])),o=a.opts.share.tpl.replace(/\{\{media\}\}/g,"image"===a.type?encodeURIComponent(a.src):"").replace(/\{\{url\}\}/g,encodeURIComponent(t)).replace(/\{\{url_raw\}\}/g,n(t)).replace(/\{\{descr\}\}/g,i.$caption?encodeURIComponent(i.$caption.text()):""),e.fancybox.open({src:i.translate(i,o),type:"html",opts:{touch:!1,animationEffect:!1,afterLoad:function(t,e){i.$refs.container.one("beforeClose.fb",function(){t.close(null,0)}),e.$content.find(".fancybox-share__button").click(function(){return window.open(this.href,"Share","width=550, height=450"),!1})},mobile:{autoFocus:!1}}}))})}(document,jQuery),function(t,e,n){"use strict";function o(){var e=t.location.hash.substr(1),n=e.split("-"),o=n.length>1&&/^\+?\d+$/.test(n[n.length-1])?parseInt(n.pop(-1),10)||1:1,i=n.join("-");return{hash:e,index:o<1?1:o,gallery:i}}function i(t){""!==t.gallery&&n("[data-fancybox='"+n.escapeSelector(t.gallery)+"']").eq(t.index-1).focus().trigger("click.fb-start")}function a(t){var e,n;return!!t&&(e=t.current?t.current.opts:t.opts,""!==(n=e.hash||(e.$orig?e.$orig.data("fancybox")||e.$orig.data("fancybox-trigger"):""))&&n)}n.escapeSelector||(n.escapeSelector=function(t){return(t+"").replace(/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t})}),n(function(){!1!==n.fancybox.defaults.hash&&(n(e).on({"onInit.fb":function(t,e){var n,i;!1!==e.group[e.currIndex].opts.hash&&(n=o(),(i=a(e))&&n.gallery&&i==n.gallery&&(e.currIndex=n.index-1))},"beforeShow.fb":function(n,o,i,s){var r;i&&!1!==i.opts.hash&&(r=a(o))&&(o.currentHash=r+(o.group.length>1?"-"+(i.index+1):""),t.location.hash!=="#"+o.currentHash&&(s&&!o.origHash&&(o.origHash=t.location.hash),o.hashTimer&&clearTimeout(o.hashTimer),o.hashTimer=setTimeout(function(){"replaceState"in t.history?(t.history[s?"pushState":"replaceState"]({},e.title,t.location.pathname+t.location.search+"#"+o.currentHash),s&&(o.hasCreatedHistory=!0)):t.location.hash=o.currentHash,o.hashTimer=null},300)))},"beforeClose.fb":function(n,o,i){i&&!1!==i.opts.hash&&(clearTimeout(o.hashTimer),o.currentHash&&o.hasCreatedHistory?t.history.back():o.currentHash&&("replaceState"in t.history?t.history.replaceState({},e.title,t.location.pathname+t.location.search+(o.origHash||"")):t.location.hash=o.origHash),o.currentHash=null)}}),n(t).on("hashchange.fb",function(){var t=o(),e=null;n.each(n(".fancybox-container").get().reverse(),function(t,o){var i=n(o).data("FancyBox");if(i&&i.currentHash)return e=i,!1}),e?e.currentHash===t.gallery+"-"+t.index||1===t.index&&e.currentHash==t.gallery||(e.currentHash=null,e.close()):""!==t.gallery&&i(t)}),setTimeout(function(){n.fancybox.getInstance()||i(o())},50))})}(window,document,jQuery),function(t,e){"use strict";var n=(new Date).getTime();e(t).on({"onInit.fb":function(t,e,o){e.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll",function(t){var o=e.current,i=(new Date).getTime();e.group.length<2||!1===o.opts.wheel||"auto"===o.opts.wheel&&"image"!==o.type||(t.preventDefault(),t.stopPropagation(),o.$slide.hasClass("fancybox-animated")||(t=t.originalEvent||t,i-n<250||(n=i,e[(-t.deltaY||-t.deltaX||t.wheelDelta||-t.detail)<0?"next":"previous"]())))})}})}(document,jQuery);
vendor: 15,447 bytes, lines 14-22
14
15/*!
16 * justifiedGallery - v3.7.0
17 * http://miromannino.github.io/Justified-Gallery/
18 * Copyright (c) 2018 Miro Mannino
19 * Licensed under the MIT license.
20 */
21
22!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?module.exports=function(t,i){return void 0===i&&(i="undefined"!=typeof window?require("jquery"):require("jquery")(t)),e(i),i}:e(jQuery)}(function(g){var r=function(t,i){this.settings=i,this.checkSettings(),this.imgAnalyzerTimeout=null,this.entries=null,this.buildingRow={entriesBuff:[],width:0,height:0,aspectRatio:0},this.lastFetchedEntry=null,this.lastAnalyzedIndex=-1,this.yield={every:2,flushed:0},this.border=0<=i.border?i.border:i.margins,this.maxRowHeight=this.retrieveMaxRowHeight(),this.suffixRanges=this.retrieveSuffixRanges(),this.offY=this.border,this.rows=0,this.spinner={phase:0,timeSlot:150,$el:g('<div class="spinner"><span></span><span></span><span></span></div>'),intervalId:null},this.scrollBarOn=!1,this.checkWidthIntervalId=null,this.galleryWidth=t.width(),this.$gallery=t};r.prototype.getSuffix=function(t,i){var e,s;for(e=i<t?t:i,s=0;s<this.suffixRanges.length;s++)if(e<=this.suffixRanges[s])return this.settings.sizeRangeSuffixes[this.suffixRanges[s]];return this.settings.sizeRangeSuffixes[this.suffixRanges[s-1]]},r.prototype.removeSuffix=function(t,i){return t.substring(0,t.length-i.length)},r.prototype.endsWith=function(t,i){return-1!==t.indexOf(i,t.length-i.length)},r.prototype.getUsedSuffix=function(t){for(var i in this.settings.sizeRangeSuffixes)if(this.settings.sizeRangeSuffixes.hasOwnProperty(i)){if(0===this.settings.sizeRangeSuffixes[i].length)continue;if(this.endsWith(t,this.settings.sizeRangeSuffixes[i]))return this.settings.sizeRangeSuffixes[i]}return""},r.prototype.newSrc=function(t,i,e,s){var n;if(this.settings.thumbnailPath)n=this.settings.thumbnailPath(t,i,e,s);else{var r=t.match(this.settings.extension),o=null!==r?r[0]:"";n=t.replace(this.settings.extension,""),n=this.removeSuffix(n,this.getUsedSuffix(n)),n+=this.getSuffix(i,e)+o}return n},r.prototype.showImg=function(t,i){this.settings.cssAnimation?(t.addClass("entry-visible"),i&&i()):(t.stop().fadeTo(this.settings.imagesAnimationDuration,1,i),t.find(this.settings.imgSelector).stop().fadeTo(this.settings.imagesAnimationDuration,1,i))},r.prototype.extractImgSrcFromImage=function(t){var i=void 0!==t.data("safe-src")?t.data("safe-src"):t.attr("src");return t.data("jg.originalSrc",i),i},r.prototype.imgFromEntry=function(t){var i=t.find(this.settings.imgSelector);return 0===i.length?null:i},r.prototype.captionFromEntry=function(t){var i=t.find("> .caption");return 0===i.length?null:i},r.prototype.displayEntry=function(t,i,e,s,n,r){t.width(s),t.height(r),t.css("top",e),t.css("left",i);var o=this.imgFromEntry(t);if(null!==o){o.css("width",s),o.css("height",n),o.css("margin-left",-s/2),o.css("margin-top",-n/2);var a=o.attr("src"),h=this.newSrc(a,s,n,o[0]);o.one("error",function(){o.attr("src",o.data("jg.originalSrc"))});var l=function(){a!==h&&o.attr("src",h)};"skipped"===t.data("jg.loaded")?this.onImageEvent(a,g.proxy(function(){this.showImg(t,l),t.data("jg.loaded",!0)},this)):this.showImg(t,l)}else this.showImg(t);this.displayEntryCaption(t)},r.prototype.displayEntryCaption=function(t){var i=this.imgFromEntry(t);if(null!==i&&this.settings.captions){var e=this.captionFromEntry(t);if(null===e){var s=i.attr("alt");this.isValidCaption(s)||(s=t.attr("title")),this.isValidCaption(s)&&(e=g('<div class="caption">'+s+"</div>"),t.append(e),t.data("jg.createdCaption",!0))}null!==e&&(this.settings.cssAnimation||e.stop().fadeTo(0,this.settings.captionSettings.nonVisibleOpacity),this.addCaptionEventsHandlers(t))}else this.removeCaptionEventsHandlers(t)},r.prototype.isValidCaption=function(t){return void 0!==t&&0<t.length},r.prototype.onEntryMouseEnterForCaption=function(t){var i=this.captionFromEntry(g(t.currentTarget));this.settings.cssAnimation?i.addClass("caption-visible").removeClass("caption-hidden"):i.stop().fadeTo(this.settings.captionSettings.animationDuration,this.settings.captionSettings.visibleOpacity)},r.prototype.onEntryMouseLeaveForCaption=function(t){var i=this.captionFromEntry(g(t.currentTarget));this.settings.cssAnimation?i.removeClass("caption-visible").removeClass("caption-hidden"):i.stop().fadeTo(this.settings.captionSettings.animationDuration,this.settings.captionSettings.nonVisibleOpacity)},r.prototype.addCaptionEventsHandlers=function(t){var i=t.data("jg.captionMouseEvents");void 0===i&&(i={mouseenter:g.proxy(this.onEntryMouseEnterForCaption,this),mouseleave:g.proxy(this.onEntryMouseLeaveForCaption,this)},t.on("mouseenter",void 0,void 0,i.mouseenter),t.on("mouseleave",void 0,void 0,i.mouseleave),t.data("jg.captionMouseEvents",i))},r.prototype.removeCaptionEventsHandlers=function(t){var i=t.data("jg.captionMouseEvents");void 0!==i&&(t.off("mouseenter",void 0,i.mouseenter),t.off("mouseleave",void 0,i.mouseleave),t.removeData("jg.captionMouseEvents"))},r.prototype.clearBuildingRow=function(){this.buildingRow.entriesBuff=[],this.buildingRow.aspectRatio=0,this.buildingRow.width=0},r.prototype.prepareBuildingRow=function(t){var i,e,s,n,r,o=!0,a=0,h=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*this.settings.margins,l=h/this.buildingRow.aspectRatio,g=this.settings.rowHeight,u=this.buildingRow.width/h>this.settings.justifyThreshold;if(t&&"hide"===this.settings.lastRow&&!u){for(i=0;i<this.buildingRow.entriesBuff.length;i++)e=this.buildingRow.entriesBuff[i],this.settings.cssAnimation?e.removeClass("entry-visible"):(e.stop().fadeTo(0,.1),e.find("> img, > a > img").fadeTo(0,0));return-1}for(t&&!u&&"justify"!==this.settings.lastRow&&"hide"!==this.settings.lastRow&&(o=!1,0<this.rows&&(o=(g=(this.offY-this.border-this.settings.margins*this.rows)/this.rows)*this.buildingRow.aspectRatio/h>this.settings.justifyThreshold)),i=0;i<this.buildingRow.entriesBuff.length;i++)s=(e=this.buildingRow.entriesBuff[i]).data("jg.width")/e.data("jg.height"),o?(n=i===this.buildingRow.entriesBuff.length-1?h:l*s,r=l):(n=g*s,r=g),h-=Math.round(n),e.data("jg.jwidth",Math.round(n)),e.data("jg.jheight",Math.ceil(r)),(0===i||r<a)&&(a=r);return this.buildingRow.height=a,o},r.prototype.flushRow=function(t){var i,e,s,n=this.settings,r=this.border;if(e=this.prepareBuildingRow(t),t&&"hide"===n.lastRow&&-1===e)this.clearBuildingRow();else{if(this.maxRowHeight&&this.maxRowHeight<this.buildingRow.height&&(this.buildingRow.height=this.maxRowHeight),t&&("center"===n.lastRow||"right"===n.lastRow)){var o=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*n.margins;for(s=0;s<this.buildingRow.entriesBuff.length;s++)o-=(i=this.buildingRow.entriesBuff[s]).data("jg.jwidth");"center"===n.lastRow?r+=o/2:"right"===n.lastRow&&(r+=o)}var a=this.buildingRow.entriesBuff.length-1;for(s=0;s<=a;s++)i=this.buildingRow.entriesBuff[this.settings.rtl?a-s:s],this.displayEntry(i,r,this.offY,i.data("jg.jwidth"),i.data("jg.jheight"),this.buildingRow.height),r+=i.data("jg.jwidth")+n.margins;this.galleryHeightToSet=this.offY+this.buildingRow.height+this.border,this.setGalleryTempHeight(this.galleryHeightToSet+this.getSpinnerHeight()),(!t||this.buildingRow.height<=n.rowHeight&&e)&&(this.offY+=this.buildingRow.height+n.margins,this.rows+=1,this.clearBuildingRow(),this.settings.triggerEvent.call(this,"jg.rowflush"))}};var i=0;function e(){return g("body").height()>g(window).height()}r.prototype.rememberGalleryHeight=function(){i=this.$gallery.height(),this.$gallery.height(i)},r.prototype.setGalleryTempHeight=function(t){i=Math.max(t,i),this.$gallery.height(i)},r.prototype.setGalleryFinalHeight=function(t){i=t,this.$gallery.height(t)},r.prototype.checkWidth=function(){this.checkWidthIntervalId=setInterval(g.proxy(function(){if(this.$gallery.is(":visible")){var t=parseFloat(this.$gallery.width());e()===this.scrollBarOn?Math.abs(t-this.galleryWidth)>this.settings.refreshSensitivity&&(this.galleryWidth=t,this.rewind(),this.rememberGalleryHeight(),this.startImgAnalyzer(!0)):(this.scrollBarOn=e(),this.galleryWidth=t)}},this),this.settings.refreshTime)},r.prototype.isSpinnerActive=function(){return null!==this.spinner.intervalId},r.prototype.getSpinnerHeight=function(){return this.spinner.$el.innerHeight()},r.prototype.stopLoadingSpinnerAnimation=function(){clearInterval(this.spinner.intervalId),this.spinner.intervalId=null,this.setGalleryTempHeight(this.$gallery.height()-this.getSpinnerHeight()),this.spinner.$el.detach()},r.prototype.startLoadingSpinnerAnimation=function(){var t=this.spinner,i=t.$el.find("span");clearInterval(t.intervalId),this.$gallery.append(t.$el),this.setGalleryTempHeight(this.offY+this.buildingRow.height+this.getSpinnerHeight()),t.intervalId=setInterval(function(){t.phase<i.length?i.eq(t.phase).fadeTo(t.timeSlot,1):i.eq(t.phase-i.length).fadeTo(t.timeSlot,0),t.phase=(t.phase+1)%(2*i.length)},t.timeSlot)},r.prototype.rewind=function(){this.lastFetchedEntry=null,this.lastAnalyzedIndex=-1,this.offY=this.border,this.rows=0,this.clearBuildingRow()},r.prototype.updateEntries=function(t){var i;return t&&null!=this.lastFetchedEntry?i=g(this.lastFetchedEntry).nextAll(this.settings.selector).toArray():(this.entries=[],i=this.$gallery.children(this.settings.selector).toArray()),0<i.length&&(g.isFunction(this.settings.sort)?i=this.sortArray(i):this.settings.randomize&&(i=this.shuffleArray(i)),this.lastFetchedEntry=i[i.length-1],this.settings.filter?i=this.filterArray(i):this.resetFilters(i)),this.entries=this.entries.concat(i),!0},r.prototype.insertToGallery=function(t){var i=this;g.each(t,function(){g(this).appendTo(i.$gallery)})},r.prototype.shuffleArray=function(t){var i,e,s;for(i=t.length-1;0<i;i--)e=Math.floor(Math.random()*(i+1)),s=t[i],t[i]=t[e],t[e]=s;return this.insertToGallery(t),t},r.prototype.sortArray=function(t){return t.sort(this.settings.sort),this.insertToGallery(t),t},r.prototype.resetFilters=function(t){for(var i=0;i<t.length;i++)g(t[i]).removeClass("jg-filtered")},r.prototype.filterArray=function(t){var e=this.settings;if("string"===g.type(e.filter))return t.filter(function(t){var i=g(t);return i.is(e.filter)?(i.removeClass("jg-filtered"),!0):(i.addClass("jg-filtered").removeClass("jg-visible"),!1)});if(g.isFunction(e.filter)){for(var i=t.filter(e.filter),s=0;s<t.length;s++)-1===i.indexOf(t[s])?g(t[s]).addClass("jg-filtered").removeClass("jg-visible"):g(t[s]).removeClass("jg-filtered");return i}},r.prototype.destroy=function(){clearInterval(this.checkWidthIntervalId),g.each(this.entries,g.proxy(function(t,i){var e=g(i);e.css("width",""),e.css("height",""),e.css("top",""),e.css("left",""),e.data("jg.loaded",void 0),e.removeClass("jg-entry");var s=this.imgFromEntry(e);s.css("width",""),s.css("height",""),s.css("margin-left",""),s.css("margin-top",""),s.attr("src",s.data("jg.originalSrc")),s.data("jg.originalSrc",void 0),this.removeCaptionEventsHandlers(e);var n=this.captionFromEntry(e);e.data("jg.createdCaption")?(e.data("jg.createdCaption",void 0),null!==n&&n.remove()):null!==n&&n.fadeTo(0,1)},this)),this.$gallery.css("height",""),this.$gallery.removeClass("justified-gallery"),this.$gallery.data("jg.controller",void 0)},r.prototype.analyzeImages=function(t){for(var i=this.lastAnalyzedIndex+1;i<this.entries.length;i++){var e=g(this.entries[i]);if(!0===e.data("jg.loaded")||"skipped"===e.data("jg.loaded")){var s=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*this.settings.margins,n=e.data("jg.width")/e.data("jg.height");if(s/(this.buildingRow.aspectRatio+n)<this.settings.rowHeight&&(this.flushRow(!1),++this.yield.flushed>=this.yield.every))return void this.startImgAnalyzer(t);this.buildingRow.entriesBuff.push(e),this.buildingRow.aspectRatio+=n,this.buildingRow.width+=n*this.settings.rowHeight,this.lastAnalyzedIndex=i}else if("error"!==e.data("jg.loaded"))return}0<this.buildingRow.entriesBuff.length&&this.flushRow(!0),this.isSpinnerActive()&&this.stopLoadingSpinnerAnimation(),this.stopImgAnalyzerStarter(),this.settings.triggerEvent.call(this,t?"jg.resize":"jg.complete"),this.setGalleryFinalHeight(this.galleryHeightToSet)},r.prototype.stopImgAnalyzerStarter=function(){this.yield.flushed=0,null!==this.imgAnalyzerTimeout&&(clearTimeout(this.imgAnalyzerTimeout),this.imgAnalyzerTimeout=null)},r.prototype.startImgAnalyzer=function(t){var i=this;this.stopImgAnalyzerStarter(),this.imgAnalyzerTimeout=setTimeout(function(){i.analyzeImages(t)},.001)},r.prototype.onImageEvent=function(t,i,e){if(i||e){var s=new Image,n=g(s);i&&n.one("load",function(){n.off("load error"),i(s)}),e&&n.one("error",function(){n.off("load error"),e(s)}),s.src=t}},r.prototype.init=function(){var a=!1,h=!1,l=this;g.each(this.entries,function(t,i){var e=g(i),s=l.imgFromEntry(e);if(e.addClass("jg-entry"),!0!==e.data("jg.loaded")&&"skipped"!==e.data("jg.loaded"))if(null!==l.settings.rel&&e.attr("rel",l.settings.rel),null!==l.settings.target&&e.attr("target",l.settings.target),null!==s){var n=l.extractImgSrcFromImage(s);if(s.attr("src",n),!1===l.settings.waitThumbnailsLoad){var r=parseFloat(s.prop("width")),o=parseFloat(s.prop("height"));if(!isNaN(r)&&!isNaN(o))return e.data("jg.width",r),e.data("jg.height",o),e.data("jg.loaded","skipped"),h=!0,l.startImgAnalyzer(!1),!0}e.data("jg.loaded",!1),a=!0,l.isSpinnerActive()||l.startLoadingSpinnerAnimation(),l.onImageEvent(n,function(t){e.data("jg.width",t.width),e.data("jg.height",t.height),e.data("jg.loaded",!0),l.startImgAnalyzer(!1)},function(){e.data("jg.loaded","error"),l.startImgAnalyzer(!1)})}else e.data("jg.loaded",!0),e.data("jg.width",e.width()|parseFloat(e.css("width"))|1),e.data("jg.height",e.height()|parseFloat(e.css("height"))|1)}),a||h||this.startImgAnalyzer(!1),this.checkWidth()},r.prototype.checkOrConvertNumber=function(t,i){if("string"===g.type(t[i])&&(t[i]=parseFloat(t[i])),"number"!==g.type(t[i]))throw i+" must be a number";if(isNaN(t[i]))throw"invalid number for "+i},r.prototype.checkSizeRangesSuffixes=function(){if("object"!==g.type(this.settings.sizeRangeSuffixes))throw"sizeRangeSuffixes must be defined and must be an object";var t=[];for(var i in this.settings.sizeRangeSuffixes)this.settings.sizeRangeSuffixes.hasOwnProperty(i)&&t.push(i);for(var e={0:""},s=0;s<t.length;s++)if("string"===g.type(t[s]))try{e[parseInt(t[s].replace(/^[a-z]+/,""),10)]=this.settings.sizeRangeSuffixes[t[s]]}catch(t){throw"sizeRangeSuffixes keys must contains correct numbers ("+t+")"}else e[t[s]]=this.settings.sizeRangeSuffixes[t[s]];this.settings.sizeRangeSuffixes=e},r.prototype.retrieveMaxRowHeight=function(){var t=null,i=this.settings.rowHeight;if("string"===g.type(this.settings.maxRowHeight))t=this.settings.maxRowHeight.match(/^[0-9]+%$/)?i*parseFloat(this.settings.maxRowHeight.match(/^([0-9]+)%$/)[1])/100:parseFloat(this.settings.maxRowHeight);else{if("number"!==g.type(this.settings.maxRowHeight)){if(!1===this.settings.maxRowHeight||null==this.settings.maxRowHeight)return null;throw"maxRowHeight must be a number or a percentage"}t=this.settings.maxRowHeight}if(isNaN(t))throw"invalid number for maxRowHeight";return t<i&&(t=i),t},r.prototype.checkSettings=function(){this.checkSizeRangesSuffixes(),this.checkOrConvertNumber(this.settings,"rowHeight"),this.checkOrConvertNumber(this.settings,"margins"),this.checkOrConvertNumber(this.settings,"border");var t=["justify","nojustify","left","center","right","hide"];if(-1===t.indexOf(this.settings.lastRow))throw"lastRow must be one of: "+t.join(", ");
22if(this.checkOrConvertNumber(this.settings,"justifyThreshold"),this.settings.justifyThreshold<0||1<this.settings.justifyThreshold)throw"justifyThreshold must be in the interval [0,1]";if("boolean"!==g.type(this.settings.cssAnimation))throw"cssAnimation must be a boolean";if("boolean"!==g.type(this.settings.captions))throw"captions must be a boolean";if(this.checkOrConvertNumber(this.settings.captionSettings,"animationDuration"),this.checkOrConvertNumber(this.settings.captionSettings,"visibleOpacity"),this.settings.captionSettings.visibleOpacity<0||1<this.settings.captionSettings.visibleOpacity)throw"captionSettings.visibleOpacity must be in the interval [0, 1]";if(this.checkOrConvertNumber(this.settings.captionSettings,"nonVisibleOpacity"),this.settings.captionSettings.nonVisibleOpacity<0||1<this.settings.captionSettings.nonVisibleOpacity)throw"captionSettings.nonVisibleOpacity must be in the interval [0, 1]";if(this.checkOrConvertNumber(this.settings,"imagesAnimationDuration"),this.checkOrConvertNumber(this.settings,"refreshTime"),this.checkOrConvertNumber(this.settings,"refreshSensitivity"),"boolean"!==g.type(this.settings.randomize))throw"randomize must be a boolean";if("string"!==g.type(this.settings.selector))throw"selector must be a string";if(!1!==this.settings.sort&&!g.isFunction(this.settings.sort))throw"sort must be false or a comparison function";if(!1!==this.settings.filter&&!g.isFunction(this.settings.filter)&&"string"!==g.type(this.settings.filter))throw"filter must be false, a string or a filter function"},r.prototype.retrieveSuffixRanges=function(){var t=[];for(var i in this.settings.sizeRangeSuffixes)this.settings.sizeRangeSuffixes.hasOwnProperty(i)&&t.push(parseInt(i,10));return t.sort(function(t,i){return i<t?1:t<i?-1:0}),t},r.prototype.updateSettings=function(t){this.settings=g.extend({},this.settings,t),this.checkSettings(),this.border=0<=this.settings.border?this.settings.border:this.settings.margins,this.maxRowHeight=this.retrieveMaxRowHeight(),this.suffixRanges=this.retrieveSuffixRanges()},r.prototype.defaults={sizeRangeSuffixes:{},thumbnailPath:void 0,rowHeight:120,maxRowHeight:!1,margins:1,border:-1,lastRow:"nojustify",justifyThreshold:.9,waitThumbnailsLoad:!0,captions:!0,cssAnimation:!0,imagesAnimationDuration:500,captionSettings:{animationDuration:500,visibleOpacity:.7,nonVisibleOpacity:0},rel:null,target:null,extension:/\.[^.\\/]+$/,refreshTime:200,refreshSensitivity:0,randomize:!1,rtl:!1,sort:!1,filter:!1,selector:"a, div:not(.spinner)",imgSelector:"> img, > a > img",triggerEvent:function(t){this.$gallery.trigger(t)}},g.fn.justifiedGallery=function(n){return this.each(function(t,i){var e=g(i);e.addClass("justified-gallery");var s=e.data("jg.controller");if(void 0===s){if(null!=n&&"object"!==g.type(n)){if("destroy"===n)return;throw"The argument must be an object"}s=new r(e,g.extend({},r.prototype.defaults,n)),e.data("jg.controller",s)}else if("norewind"===n);else{if("destroy"===n)return void s.destroy();s.updateSettings(n),s.rewind()}s.updateEntries("norewind"===n)&&s.init()})}});
23let gridgallery={init:function(){gridgallery.loadGallery();gridgallery.lazyLoadImages();$(window).on("resize scroll",function(){gridgallery.lazyLoadImages()})},loadGallery:function(){$(".ce-gridgallery").each(function(){$(this).justifiedGallery({rowHeight:$(this).data("row-height"),margins:$(this).data("margins"),captions:$(this).data("captions")===1,randomize:$(this).data("randomize")===1,lastRow:$(this).data("last-row"),border:$(this).data("border")})})},lazyLoadImages:function(){$(".ce-gridgallery img.unloaded").each(function(){if(gridgallery.isInViewport($(this))===true){let src=$(this).attr("data-src");let srcset=$(this).attr("data-srcset");if(src!==undefined&&src!==""){$(this).attr("src",src).removeAttr("data-src")}if(srcset!==undefined&&srcset!==""){$(this).attr("srcset",srcset).removeAttr("data-srcset")}$(this).removeClass("unloaded")}})},isInViewport:function(a){let elementTop=a.offset().top;let elementBottom=elementTop+a.outerHeight();let viewportTop=$(window).scrollTop();let viewportBottom=viewportTop+$(window).height();return elementBottom>=viewportTop&&elementTop<=viewportBottom}};$(document).ready(function(){gridgallery.init()});
24/*!
25 * ScrollMagic v2.0.7 (2019-05-07)
26 * The javascript library for magical scroll interactions.
27 * (c) 2019 Jan Paepke (@janpaepke)
28 * Project Website: http://scrollmagic.io
29 * 
30 * @version 2.0.7
31 * @license Dual licensed under MIT license and GPL.
32 * @author Jan Paepke - [email protected]
33 *
34 * @file ScrollMagic main library.
35 */
36/**
37 * @namespace ScrollMagic
38 */
39(function (root, factory) {
40	if (typeof define === 'function' && define.amd) {
41		// AMD. Register as an anonymous module.
42		define(factory);
43	} else if (typeof exports === 'object') {
44		// CommonJS
45		module.exports = factory();
46	} else {
47		// Browser global
48		root.ScrollMagic = factory();
49	}
50}(this, function () {
51	"use strict";
52
53	var ScrollMagic = function () {
54		_util.log(2, '(COMPATIBILITY NOTICE) -> As of ScrollMagic 2.0.0 you need to use \'new ScrollMagic.Controller()\' to create a new controller instance. Use \'new ScrollMagic.Scene()\' to instance a scene.');
55	};
56
57	ScrollMagic.version = "2.0.7";
58
59	// TODO: temporary workaround for chrome's scroll jitter bug
60	window.addEventListener("mousewheel", function () {});
61
62	// global const
63	var PIN_SPACER_ATTRIBUTE = "data-scrollmagic-pin-spacer";
64
65	/**
66	 * The main class that is needed once per scroll container.
67	 *
68	 * @class
69	 *
70	 * @example
71	 * // basic initialization
72	 * var controller = new ScrollMagic.Controller();
73	 *
74	 * // passing options
75	 * var controller = new ScrollMagic.Controller({container: "#myContainer", loglevel: 3});
76	 *
77	 * @param {object}
77 [options] - An object containing one or more options for the controller.
78	 * @param {(string|object)} [options.container=window] - A selector, DOM object that references the main container for scrolling.
79	 * @param {boolean} [options.vertical=true] - Sets the scroll mode to vertical (`true`) or horizontal (`false`) scrolling.
80	 * @param {object} [options.globalSceneOptions={}] - These options will be passed to every Scene that is added to the controller using the addScene method. For more information on Scene options see {@link ScrollMagic.Scene}.
81	 * @param {number} [options.loglevel=2] Loglevel for debugging. Note that logging is disabled in the minified version of ScrollMagic.
82											 ** `0` => silent
83											 ** `1` => errors
84											 ** `2` => errors, warnings
85											 ** `3` => errors, warnings, debuginfo
86	 * @param {boolean} [options.refreshInterval=100] - Some changes don't call events by default, like changing the container size or moving a scene trigger element.  
87	 																										 This interval polls these parameters to fire the necessary events.  
88	 																										 If you don't use custom containers, trigger elements or have static layouts, where the positions of the trigger elements don't change, you can set this to 0 disable interval checking and improve performance.
89	 *
90	 */
91	ScrollMagic.Controller = function (options) {
92		/*
93		 * ----------------------------------------------------------------
94		 * settings
95		 * ----------------------------------------------------------------
96		 */
97		var
98			NAMESPACE = 'ScrollMagic.Controller',
99			SCROLL_DIRECTION_FORWARD = 'FORWARD',
100			SCROLL_DIRECTION_REVERSE = 'REVERSE',
101			SCROLL_DIRECTION_PAUSED = 'PAUSED',
102			DEFAULT_OPTIONS = CONTROLLER_OPTIONS.defaults;
103
104		/*
105		 * ----------------------------------------------------------------
106		 * private vars
107		 * ----------------------------------------------------------------
108		 */
109		var
110			Controller = this,
111			_options = _util.extend({}, DEFAULT_OPTIONS, options),
112			_sceneObjects = [],
113			_updateScenesOnNextCycle = false, // can be boolean (true => all scenes) or an array of scenes to be updated
114			_scrollPos = 0,
115			_scrollDirection = SCROLL_DIRECTION_PAUSED,
116			_isDocument = true,
117			_viewPortSize = 0,
118			_enabled = true,
119			_updateTimeout,
120			_refreshTimeout;
121
122		/*
123		 * ----------------------------------------------------------------
124		 * private functions
125		 * ----------------------------------------------------------------
126		 */
127
128		/**
129		 * Internal constructor function of the ScrollMagic Controller
130		 * @private
131		 */
132		var construct = function () {
133			for (var key in _options) {
134				if (!DEFAULT_OPTIONS.hasOwnProperty(key)) {
135					log(2, "WARNING: Unknown option \"" + key + "\"");
136					delete _options[key];
137				}
138			}
139			_options.container = _util.get.elements(_options.container)[0];
140			// check ScrollContainer
141			if (!_options.container) {
142				log(1, "ERROR creating object " + NAMESPACE + ": No valid scroll container supplied");
143				throw NAMESPACE + " init failed."; // cancel
144			}
145			_isDocument = _options.container === window || _options.container === document.body || !document.body.contains(_options.container);
146			// normalize to window
147			if (_isDocument) {
148				_options.container = window;
149			}
150			// update container size immediately
151			_viewPortSize = getViewportSize();
152			// set event handlers
153			_options.container.addEventListener("resize", onChange);
154			_options.container.addEventListener("scroll", onChange);
155
156			var ri = parseInt(_options.refreshInterval, 10);
157			_options.refreshInterval = _util.type.Number(ri) ? ri : DEFAULT_OPTIONS.refreshInterval;
158			scheduleRefresh();
159
160			log(3, "added new " + NAMESPACE + " controller (v" + ScrollMagic.version + ")");
161		};
162
163		/**
164		 * Schedule the next execution of the refresh function
165		 * @private
166		 */
167		var scheduleRefresh = function () {
168			if (_options.refreshInterval > 0) {
169				_refreshTimeout = window.setTimeout(refresh, _options.refreshInterval);
170			}
171		};
172
173		/**
174		 * Default function to get scroll pos - overwriteable using `Controller.scrollPos(newFunction)`
175		 * @private
176		 */
177		var getScrollPos = function () {
178			return _options.vertical ? _util.get.scrollTop(_options.container) : _util.get.scrollLeft(_options.container);
179		};
180
181		/**
182		 * Returns the current viewport Size (width vor horizontal, height for vertical)
183		 * @private
184		 */
185		var getViewportSize = function () {
186			return _options.vertical ? _util.get.height(_options.container) : _util.get.width(_options.container);
187		};
188
189		/**
190		 * Default function to set scroll pos - overwriteable using `Controller.scrollTo(newFunction)`
191		 * Make available publicly for pinned mousewheel workaround.
192		 * @private
193		 */
194		var setScrollPos = this._setScrollPos = function (pos) {
195			if (_options.vertical) {
196				if (_isDocument) {
197					window.scrollTo(_util.get.scrollLeft(), pos);
198				} else {
199					_options.container.scrollTop = pos;
200				}
201			} else {
202				if (_isDocument) {
203					window.scrollTo(pos, _util.get.scrollTop());
204				} else {
205					_options.container.scrollLeft = pos;
206				}
207			}
208		};
209
210		/**
211		 * Handle updates in cycles instead of on scroll (performance)
212		 * @private
213		 */
214		var updateScenes = function () {
215			if (_enabled && _updateScenesOnNextCycle) {
216				// determine scenes to update
217				var scenesToUpdate = _util.type.Array(_updateScenesOnNextCycle) ? _updateScenesOnNextCycle : _sceneObjects.slice(0);
218				// reset scenes
219				_updateScenesOnNextCycle = false;
220				var oldScrollPos = _scrollPos;
221				// update scroll pos now instead of onChange, as it might have changed since scheduling (i.e. in-browser smooth scroll)
222				_scrollPos = Controller.scrollPos();
223				var deltaScroll = _scrollPos - oldScrollPos;
224				if (deltaScroll !== 0) { // scroll position changed?
225					_scrollDirection = (deltaScroll > 0) ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_REVERSE;
226				}
227				// reverse order of scenes if scrolling reverse
228				if (_scrollDirection === SCROLL_DIRECTION_REVERSE) {
229					scenesToUpdate.reverse();
230				}
231				// update scenes
232				scenesToUpdate.forEach(function (scene, index) {
233					log(3, "updating Scene " + (index + 1) + "/" + scenesToUpdate.length + " (" + _sceneObjects.length + " total)");
234					scene.update(true);
235				});
236				if (scenesToUpdate.length === 0 && _options.loglevel >= 3) {
237					log(3, "updating 0 Scenes (nothing added to controller)");
238				}
239			}
240		};
241
242		/**
243		 * Initializes rAF callback
244		 * @private
245		 */
246		var debounceUpdate = function () {
247			_updateTimeout = _util.rAF(updateScenes);
248		};
249
250		/**
251		 * Handles Container changes
252		 * @private
253		 */
254		var onChange = function (e) {
255			log(3, "event fired causing an update:", e.type);
256			if (e.type == "resize") {
257				// resize
258				_viewPortSize = getViewportSize();
259				_scrollDirection = SCROLL_DIRECTION_PAUSED;
260			}
261			// schedule update
262			if (_updateScenesOnNextCycle !== true) {
263				_updateScenesOnNextCycle = true;
264				debounceUpdate();
265			}
266		};
267
268		var refresh = function () {
269			if (!_isDocument) {
270				// simulate resize event. Only works for viewport relevant param (performance)
271				if (_viewPortSize != getViewportSize()) {
272					var resizeEvent;
273					try {
274						resizeEvent = new Event('resize', {
275							bubbles: false,
276							cancelable: false
277						});
278					} catch (e) { // stupid IE
279						resizeEvent = document.createEvent("Event");
280						resizeEvent.initEvent("resize", false, false);
281					}
282					_options.container.dispatchEvent(resizeEvent);
283				}
284			}
285			_sceneObjects.forEach(function (scene, index) { // refresh all scenes
286				scene.refresh();
287			});
288			scheduleRefresh();
289		};
290
291		/**
292		 * Send a debug message to the console.
293		 * provided publicly with _log for plugins
294		 * @private
295		 *
296		 * @param {number} loglevel - The loglevel required to initiate output for the message.
297		 * @param {...mixed} output - One or more variables that should be passed to the console.
298		 */
299		var log = this._log = function (loglevel, output) {
300			if (_options.loglevel >= loglevel) {
301				Array.prototype.splice.call(arguments, 1, 0, "(" + NAMESPACE + ") ->");
302				_util.log.apply(window, arguments);
303			}
304		};
305		// for scenes we have getters for each option, but for the controller we don't, so we need to make it available externally for plugins
306		this._options = _options;
307
308		/**
309		 * Sort scenes in ascending order of their start offset.
310		 * @private
311		 *
312		 * @param {array} ScenesArray - an array of ScrollMagic Scenes that should be sorted
313		 * @return {array} The sorted array of Scenes.
314		 */
315		var sortScenes = function (ScenesArray) {
316			if (ScenesArray.length <= 1) {
317				return ScenesArray;
318			} else {
319				var scenes = ScenesArray.slice(0);
320				scenes.sort(function (a, b) {
321					return a.scrollOffset() > b.scrollOffset() ? 1 : -1;
322				});
323				return scenes;
324			}
325		};
326
327		/**
328		 * ----------------------------------------------------------------
329		 * public functions
330		 * ----------------------------------------------------------------
331		 */
332
333		/**
334		 * Add one ore more scene(s) to the controller.  
335		 * This is the equivalent to `Scene.addTo(controller)`.
336		 * @public
337		 * @example
338		 * // with a previously defined scene
339		 * controller.addScene(scene);
340		 *
341		 * // with a newly created scene.
342		 * controller.addScene(new ScrollMagic.Scene({duration : 0}));
343		 *
344		 * // adding multiple scenes
345		 * controller.addScene([scene, scene2, new ScrollMagic.Scene({duration : 0})]);
346		 *
347		 * @param {(ScrollMagic.Scene|array)} newScene - ScrollMagic Scene or Array of Scenes to be added to the controller.
348		 * @return {Controller} Parent object for chaining.
349		 */
350		this.addScene = function (newScene) {
351			if (_util.type.Array(newScene)) {
352				newScene.forEach(function (scene, index) {
353					Controller.addScene(scene);
354				});
355			} else if (newScene instanceof ScrollMagic.Scene) {
356				if (newScene.controller() !== Controller) {
357					newScene.addTo(Controller);
358				} else if (_sceneObjects.indexOf(newScene) < 0) {
359					// new scene
360					_sceneObjects.push(newScene); // add to array
361					_sceneObjects = sortScenes(_sceneObjects); // sort
362					newScene.on("shift.controller_sort", function () { // resort whenever scene moves
363						_sceneObjects = sortScenes(_sceneObjects);
364					});
365					// insert Global defaults.
366					for (var key in _options.globalSceneOptions) {
367						if (newScene[key]) {
368							newScene[key].call(newScene, _options.globalSceneOptions[key]);
369						}
370					}
371					log(3, "adding Scene (now " + _sceneObjects.length + " total)");
372				}
373			} else {
374				log(1, "ERROR: invalid argument supplied for '.addScene()'");
375			}
376			return Controller;
377		};
378
379		/**
380		 * Remove one ore more scene(s) from the controller.  
381		 * This is the equivalent to `Scene.remove()`.
382		 * @public
383		 * @example
384		 * // remove a scene from the controller
385		 * controller.removeScene(scene);
386		 *
387		 * // remove multiple scenes from the controller
388		 * controller.removeScene([scene, scene2, scene3]);
389		 *
390		 * @param {(ScrollMagic.Scene|array)} Scene - ScrollMagic Scene or Array of Scenes to be removed from the controller.
391		 * @returns {Controller} Parent object for chaining.
392		 */
393		this.removeScene = function (Scene) {
394			if (_util.type.Array(Scene)) {
395				Scene.forEach(function (scene, index) {
396					Controller.removeScene(scene);
397				});
398			} else {
399				var index = _sceneObjects.indexOf(Scene);
400				if (index > -1) {
401					Scene.off("shift.controller_sort");
402					_sceneObjects.splice(index, 1);
403					log(3, "removing Scene (now " + _sceneObjects.length + " left)");
404					Scene.remove();
405				}
406			}
407			return Controller;
408		};
409
410		/**
411	 * Update one ore more scene(s) according to the scroll position of the container.  
412	 * This is the equivalent to `Scene.update()`.  
413	 * The update method calculates the scene's start and end position (based on the trigger element, trigger hook, duration and offset) and checks it against the current scroll position of the container.  
414	 * It then updates the current scene state accordingly (or does nothing, if the state is already correct) – Pins will be set to their correct position and tweens will be updated to their correct progress.  
415	 * _**Note:** This method gets called constantly whenever Controller detects a change. The only application for you is if you change something outside of the realm of ScrollMagic, like moving the trigger or changing tween parameters._
416	 * @public
417	 * @example
418	 * // update a specific scene on next cycle
419 	 * controller.updateScene(scene);
420 	 *
421	 * // update a specific scene immediately
422	 * controller.updateScene(scene, true);
423 	 *
424	 * // update multiple scenes scene on next cycle
425	 * controller.updateScene([scene1, scene2, scene3]);
426	 *
427	 * @param {ScrollMagic.Scene} Scene - ScrollMagic Scene or Array of Scenes that is/are supposed to be updated.
428	 * @param {boolean} [immediately=false] - If `true` the update will be instant, if `false` it will wait until next update cycle.  
429	 										  This is useful when changing multiple properties of the scene - this way it will only be updated once all new properties are set (updateScenes).
430	 * @return {Controller} Parent object for chaining.
431	 */
432		this.updateScene = function (Scene, immediately) {
433			if (_util.type.Array(Scene)) {
434				Scene.forEach(function (scene, index) {
435					Controller.updateScene(scene, immediately);
436				});
437			} else {
438				if (immediately) {
439					Scene.update(true);
440				} else if (_updateScenesOnNextCycle !== true && Scene instanceof ScrollMagic.Scene) { // if _updateScenesOnNextCycle is true, all connected scenes are already scheduled for update
441					// prep array for next update cycle
442					_updateScenesOnNextCycle = _updateScenesOnNextCycle || [];
443					if (_updateScenesOnNextCycle.indexOf(Scene) == -1) {
444						_updateScenesOnNextCycle.push(Scene);
445					}
446					_updateScenesOnNextCycle = sortScenes(_updateScenesOnNextCycle); // sort
447					debounceUpdate();
448				}
449			}
450			return Controller;
451		};
452
453		/**
454		 * Updates the controller params and calls updateScene on every scene, that is attached to the controller.  
455		 * See `Controller.updateScene()` for more information about what this means.  
456		 * In most cases you will not need this function, as it is called constantly, whenever ScrollMagic detects a state change event, like resize or scroll.  
457		 * The only application for this method is when ScrollMagic fails to detect these events.  
458		 * One application is with some external scroll libraries (like iScroll) that move an internal container to a negative offset instead of actually scrolling. In this case the update on the controller needs to be called whenever the child container's position changes.
459		 * For this case there will also be the need to provide a custom function to calculate the correct scroll position. See `Controller.scrollPos()` for details.
460		 * @public
461		 * @example
462		 * // update the controller on next cycle (saves performance due to elimination of redundant updates)
463		 * controller.update();
464		 *
465		 * // update the controller immediately
466		 * controller.update(true);
467		 *
468		 * @param {boolean} [immediately=false] - If `true` the update will be instant, if `false` it will wait until next update cycle (better performance)
469		 * @return {Controller} Parent object for chaining.
470		 */
471		this.update = function (immediately) {
472			onChange({
473				type: "resize"
474			}); // will update size and set _updateScenesOnNextCycle to true
475			if (immediately) {
476				updateScenes();
477			}
478			return Controller;
479		};
480
481		/**
482		 * Scroll to a numeric scroll offset, a DOM element, the start of a scene or provide an alternate method for scrolling.  
483		 * For vertical controllers it will change the top scroll offset and for horizontal applications it will change the left offset.
484		 * @public
485		 *
486		 * @since 1.1.0
487		 * @example
488		 * // scroll to an offset of 100
489		 * controller.scrollTo(100);
490		 *
491		 * // scroll to a DOM element
492		 * controller.scrollTo("#anchor");
493		 *
494		 * // scroll to the beginning of a scene
495		 * var scene = new ScrollMagic.Scene({offset: 200});
496		 * controller.scrollTo(scene);
497		 *
498		 * // define a new scroll position modification function (jQuery animate instead of jump)
499		 * controller.scrollTo(function (newScrollPos) {
500		 *	$("html, body").animate({scrollTop: newScrollPos});
501		 * });
502		 * controller.scrollTo(100); // call as usual, but the new function will be used instead
503		 *
504		 * // define a new scroll function with an additional parameter
505		 * controller.scrollTo(function (newScrollPos, message) {
506		 *  console.log(message);
507		 *	$(this).animate({scrollTop: newScrollPos});
508		 * });
509		 * // call as usual, but supply an extra parameter to the defined custom function
510		 * controller.scrollTo(100, "my message");
511		 *
512		 * // define a new scroll function with an additional parameter containing multiple variables
513		 * controller.scrollTo(function (newScrollPos, options) {
514		 *  someGlobalVar = options.a + options.b;
515		 *	$(this).animate({scrollTop: newScrollPos});
516		 * });
517		 * // call as usual, but supply an extra parameter containing multiple options
518		 * controller.scrollTo(100, {a: 1, b: 2});
519		 *
520		 * // define a new scroll function with a callback supplied as an additional parameter
521		 * controller.scrollTo(function (newScrollPos, callback) {
522		 *	$(this).animate({scrollTop: newScrollPos}, 400, "swing", callback);
523		 * });
524		 * // call as usual, but supply an extra parameter, which is used as a callback in the previously defined custom scroll function
525		 * controller.scrollTo(100, function() {
526		 *	console.log("scroll has finished.");
527		 * });
528		 *
529		 * @param {mixed} scrollTarget - The supplied argument can be one of these types:
530		 * 1. `number` -> The container will scroll to this new scroll offset.
531		 * 2. `string` or `object` -> Can be a selector or a DOM object.  
532		 *  The container will scroll to the position of this element.
533		 * 3. `ScrollMagic Scene` -> The container will scroll to the start of this scene.
534		 * 4. `function` -> This function will be used for future scroll position modifications.  
535		 *  This provides a way for you to change the behaviour of scrolling and adding new behaviour like animation. The function receives the new scroll position as a parameter and a reference to the container element using `this`.  
536		 *  It may also optionally receive an optional additional parameter (see below)  
537		 *  _**NOTE:**  
538		 *  All other options will still work as expected, using the new function to scroll._
539		 * @param {mixed} [additionalParameter] - If a custom scroll function was defined (see above 4.), you may want to supply additional parameters to it, when calling it. You can do this using this parameter – see examples for details. Please note, that this parameter will have no effect, if you use the default scrolling function.
540		 * @returns {Controller} Parent object for chaining.
541		 */
542		this.scrollTo = function (scrollTarget, additionalParameter) {
543			if (_util.type.Number(scrollTarget)) { // excecute
544				setScrollPos.call(_options.container, scrollTarget, additionalParameter);
545			} else if (scrollTarget instanceof ScrollMagic.Scene) { // scroll to scene
546				if (scrollTarget.controller() === Controller) { // check if the controller is associated with this scene
547					Controller.scrollTo(scrollTarget.scrollOffset(), additionalParameter);
548				} else {
549					log(2, "scrollTo(): The supplied scene does not belong to this controller. Scroll cancelled.", scrollTarget);
550				}
551			} else if (_util.type.Function(scrollTarget)) { // assign new scroll function
552				setScrollPos = scrollTarget;
553			} else { // scroll to element
554				var elem = _util.get.elements(scrollTarget)[0];
555				if (elem) {
556					// if parent is pin spacer, use spacer position instead so correct start position is returned for pinned elements.
557					while (elem.parentNode.hasAttribute(PIN_SPACER_ATTRIBUTE)) {
558						elem = elem.parentNode;
559					}
560
561					var
562						param = _options.vertical ? "top" : "left", // which param is of interest ?
563						containerOffset = _util.get.offset(_options.container), // container position is needed because element offset is returned in relation to document, not in relation to container.
564						elementOffset = _util.get.offset(elem);
565
566					if (!_isDocument) { // container is not the document root, so substract scroll Position to get correct trigger element position relative to scrollcontent
567						containerOffset[param] -= Controller.scrollPos();
568					}
569
570					Controller.scrollTo(elementOffset[param] - containerOffset[param], additionalParameter);
571				} else {
572					log(2, "scrollTo(): The supplied argument is invalid. Scroll cancelled.", scrollTarget);
573				}
574			}
575			return Controller;
576		};
577
578		/**
579		 * **Get** the current scrollPosition or **Set** a new method to calculate it.  
580		 * -> **GET**:
581		 * When used as a getter this function will return the current scroll position.  
582		 * To get a cached value use Controller.info("scrollPos"), which will be updated in the update cycle.  
583		 * For vertical controllers it will return the top scroll offset and for horizontal applications it will return the left offset.
584		 *
585		 * -> **SET**:
586		 * When used as a setter this method prodes a way to permanently overwrite the controller's scroll position calculation.  
587		 * A typical usecase is when the scroll position is not reflected by the containers scrollTop or scrollLeft values, but for example by the inner offset of a child container.  
588		 * Moving a child container inside a parent is a commonly used method for several scrolling frameworks, including iScroll.  
589		 * By providing an alternate calculation function you can make sure ScrollMagic receives the correct scroll position.  
590		 * Please also bear in mind that your function should return y values for vertical scrolls an x for horizontals.
591		 *
592		 * To change the current scroll position please use `Controller.scrollTo()`.
593		 * @public
594		 *
595		 * @example
596		 * // get the current scroll Position
597		 * var scrollPos = controller.scrollPos();
598		 *
599		 * // set a new scroll position calculation method
600		 * controller.scrollPos(function () {
601		 *	return this.info("vertical") ? -mychildcontainer.y : -mychildcontainer.x
602		 * });
603		 *
604		 * @param {function} [scrollPosMethod] - The function to be used for the scroll position calculation of the container.
605		 * @returns {(number|Controller)} Current scroll position or parent object for chaining.
606		 */
607		this.scrollPos = function (scrollPosMethod) {
608			if (!arguments.length) { // get
609				return getScrollPos.call(Controller);
610			} else { // set
611				if (_util.type.Function(scrollPosMethod)) {
612					getScrollPos = scrollPosMethod;
613				} else {
614					log(2, "Provided value for method 'scrollPos' is not a function. To change the current scroll position use 'scrollTo()'.");
615				}
616			}
617			return Controller;
618		};
619
620		/**
621		 * **Get** all infos or one in particular about the controller.
622		 * @public
623		 * @example
624		 * // returns the current scroll position (number)
625		 * var scrollPos = controller.info("scrollPos");
626		 *
627		 * // returns all infos as an object
628		 * var infos = controller.info();
629		 *
630		 * @param {string} [about] - If passed only this info will be returned instead of an object c
630ontaining all.  
631		 							 Valid options are:
632		 							 ** `"size"` => the current viewport size of the container
633		 							 ** `"vertical"` => true if vertical scrolling, otherwise false
634		 							 ** `"scrollPos"` => the current scroll position
635		 							 ** `"scrollDirection"` => the last known direction of the scroll
636		 							 ** `"container"` => the container element
637		 							 ** `"isDocument"` => true if container element is the document.
638		 * @returns {(mixed|object)} The requested info(s).
639		 */
640		this.info = function (about) {
641			var values = {
642				size: _viewPortSize, // contains height or width (in regard to orientation);
643				vertical: _options.vertical,
644				scrollPos: _scrollPos,
645				scrollDirection: _scrollDirection,
646				container: _options.container,
647				isDocument: _isDocument
648			};
649			if (!arguments.length) { // get all as an object
650				return values;
651			} else if (values[about] !== undefined) {
652				return values[about];
653			} else {
654				log(1, "ERROR: option \"" + about + "\" is not available");
655				return;
656			}
657		};
658
659		/**
660		 * **Get** or **Set** the current loglevel option value.
661		 * @public
662		 *
663		 * @example
664		 * // get the current value
665		 * var loglevel = controller.loglevel();
666		 *
667		 * // set a new value
668		 * controller.loglevel(3);
669		 *
670		 * @param {number} [newLoglevel] - The new loglevel setting of the Controller. `[0-3]`
671		 * @returns {(number|Controller)} Current loglevel or parent object for chaining.
672		 */
673		this.loglevel = function (newLoglevel) {
674			if (!arguments.length) { // get
675				return _options.loglevel;
676			} else if (_options.loglevel != newLoglevel) { // set
677				_options.loglevel = newLoglevel;
678			}
679			return Controller;
680		};
681
682		/**
683		 * **Get** or **Set** the current enabled state of the controller.  
684		 * This can be used to disable all Scenes connected to the controller without destroying or removing them.
685		 * @public
686		 *
687		 * @example
688		 * // get the current value
689		 * var enabled = controller.enabled();
690		 *
691		 * // disable the controller
692		 * controller.enabled(false);
693		 *
694		 * @param {boolean} [newState] - The new enabled state of the controller `true` or `false`.
695		 * @returns {(boolean|Controller)} Current enabled state or parent object for chaining.
696		 */
697		this.enabled = function (newState) {
698			if (!arguments.length) { // get
699				return _enabled;
700			} else if (_enabled != newState) { // set
701				_enabled = !!newState;
702				Controller.updateScene(_sceneObjects, true);
703			}
704			return Controller;
705		};
706
707		/**
708		 * Destroy the Controller, all Scenes and everything.
709		 * @public
710		 *
711		 * @example
712		 * // without resetting the scenes
713		 * controller = controller.destroy();
714		 *
715		 * // with scene reset
716		 * controller = controller.destroy(true);
717		 *
718		 * @param {boolean} [resetScenes=false] - If `true` the pins and tweens (if existent) of all scenes will be reset.
719		 * @returns {null} Null to unset handler variables.
720		 */
721		this.destroy = function (resetScenes) {
722			window.clearTimeout(_refreshTimeout);
723			var i = _sceneObjects.length;
724			while (i--) {
725				_sceneObjects[i].destroy(resetScenes);
726			}
727			_options.container.removeEventListener("resize", onChange);
728			_options.container.removeEventListener("scroll", onChange);
729			_util.cAF(_updateTimeout);
730			log(3, "destroyed " + NAMESPACE + " (reset: " + (resetScenes ? "true" : "false") + ")");
731			return null;
732		};
733
734		// INIT
735		construct();
736		return Controller;
737	};
738
739	// store pagewide controller options
740	var CONTROLLER_OPTIONS = {
741		defaults: {
742			container: window,
743			vertical: true,
744			globalSceneOptions: {},
745			loglevel: 2,
746			refreshInterval: 100
747		}
748	};
749	/*
750	 * method used to add an option to ScrollMagic Scenes.
751	 */
752	ScrollMagic.Controller.addOption = function (name, defaultValue) {
753		CONTROLLER_OPTIONS.defaults[name] = defaultValue;
754	};
755	// instance extension function for plugins
756	ScrollMagic.Controller.extend = function (extension) {
757		var oldClass = this;
758		ScrollMagic.Controller = function () {
759			oldClass.apply(this, arguments);
760			this.$super = _util.extend({}, this); // copy parent state
761			return extension.apply(this, arguments) || this;
762		};
763		_util.extend(ScrollMagic.Controller, oldClass); // copy properties
764		ScrollMagic.Controller.prototype = oldClass.prototype; // copy prototype
765		ScrollMagic.Controller.prototype.constructor = ScrollMagic.Controller; // restore constructor
766	};
767
768
769	/**
770	 * A Scene defines where the controller should react and how.
771	 *
772	 * @class
773	 *
774	 * @example
775	 * // create a standard scene and add it to a controller
776	 * new ScrollMagic.Scene()
777	 *		.addTo(controller);
778	 *
779	 * // create a scene with custom options and assign a handler to it.
780	 * var scene = new ScrollMagic.Scene({
781	 * 		duration: 100,
782	 *		offset: 200,
783	 *		triggerHook: "onEnter",
784	 *		reverse: false
785	 * });
786	 *
787	 * @param {object} [options] - Options for the Scene. The options can be updated at any time.  
788	 							   Instead of setting the options for each scene individually you can also set them globally in the controller as the controllers `globalSceneOptions` option. The object accepts the same properties as the ones below.  
789	 							   When a scene is added to the controller the options defined using the Scene constructor will be overwritten by those set in `globalSceneOptions`.
790	 * @param {(number|string|function)} [options.duration=0] - The duration of the scene. 
791	 					Please see `Scene.duration()` for details.
792	 * @param {number} [options.offset=0] - Offset Value for the Trigger Position. If no triggerElement is defined this will be the scroll distance from the start of the page, after which the scene will start.
793	 * @param {(string|object)} [options.triggerElement=null] - Selector or DOM object that defines the start of the scene. If undefined the scene will start right at the start of the page (unless an offset is set).
794	 * @param {(number|string)} [options.triggerHook="onCenter"] - Can be a number between 0 and 1 defining the position of the trigger Hook in relation to the viewport.  
795	 															  Can also be defined using a string:
796	 															  ** `"onEnter"` => `1`
797	 															  ** `"onCenter"` => `0.5`
798	 															  ** `"onLeave"` => `0`
799	 * @param {boolean} [options.reverse=true] - Should the scene reverse, when scrolling up?
800	 * @param {number} [options.loglevel=2] - Loglevel for debugging. Note that logging is disabled in the minified version of ScrollMagic.
801	 										  ** `0` => silent
802	 										  ** `1` => errors
803	 										  ** `2` => errors, warnings
804	 										  ** `3` => errors, warnings, debuginfo
805	 * 
806	 */
807	ScrollMagic.Scene = function (options) {
808
809		/*
810		 * ----------------------------------------------------------------
811		 * settings
812		 * ----------------------------------------------------------------
813		 */
814
815		var
816			NAMESPACE = 'ScrollMagic.Scene',
817			SCENE_STATE_BEFORE = 'BEFORE',
818			SCENE_STATE_DURING = 'DURING',
819			SCENE_STATE_AFTER = 'AFTER',
820			DEFAULT_OPTIONS = SCENE_OPTIONS.defaults;
821
822		/*
823		 * ----------------------------------------------------------------
824		 * private vars
825		 * ----------------------------------------------------------------
826		 */
827
828		var
829			Scene = this,
830			_options = _util.extend({}, DEFAULT_OPTIONS, options),
831			_state = SCENE_STATE_BEFORE,
832			_progress = 0,
833			_scrollOffset = {
834				start: 0,
835				end: 0
836			}, // reflects the controllers's scroll position for the start and end of the scene respectively
837			_triggerPos = 0,
838			_enabled = true,
839			_durationUpdateMethod,
840			_controller;
841
842		/**
843		 * Internal constructor function of the ScrollMagic Scene
844		 * @private
845		 */
846		var construct = function () {
847			for (var key in _options) { // check supplied options
848				if (!DEFAULT_OPTIONS.hasOwnProperty(key)) {
849					log(2, "WARNING: Unknown option \"" + key + "\"");
850					delete _options[key];
851				}
852			}
853			// add getters/setters for all possible options
854			for (var optionName in DEFAULT_OPTIONS) {
855				addSceneOption(optionName);
856			}
857			// validate all options
858			validateOption();
859		};
860
861		/*
862		 * ----------------------------------------------------------------
863		 * Event Management
864		 * ----------------------------------------------------------------
865		 */
866
867		var _listeners = {};
868		/**
869		 * Scene start event.  
870		 * Fires whenever the scroll position its the starting point of the scene.  
871		 * It will also fire when scrolling back up going over the start position of the scene. If you want something to happen only when scrolling down/right, use the scrollDirection parameter passed to the callback.
872		 *
873		 * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.
874		 *
875		 * @event ScrollMagic.Scene#start
876		 *
877		 * @example
878		 * scene.on("start", function (event) {
879		 * 	console.log("Hit start point of scene.");
880		 * });
881		 *
882		 * @property {object} event - The event Object passed to each callback
883		 * @property {string} event.type - The name of the event
884		 * @property {Scene} event.target - The Scene object that triggered this event
885		 * @property {number} event.progress - Reflects the current progress of the scene
886		 * @property {string} event.state - The current state of the scene `"BEFORE"` or `"DURING"`
887		 * @property {string} event.scrollDirection - Indicates which way we are scrolling `"PAUSED"`, `"FORWARD"` or `"REVERSE"`
888		 */
889		/**
890		 * Scene end event.  
891		 * Fires whenever the scroll position its the ending point of the scene.  
892		 * It will also fire when scrolling back up from after the scene and going over its end position. If you want something to happen only when scrolling down/right, use the scrollDirection parameter passed to the callback.
893		 *
894		 * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.
895		 *
896		 * @event ScrollMagic.Scene#end
897		 *
898		 * @example
899		 * scene.on("end", function (event) {
900		 * 	console.log("Hit end point of scene.");
901		 * });
902		 *
903		 * @property {object} event - The event Object passed to each callback
904		 * @property {string} event.type - The name of the event
905		 * @property {Scene} event.target - The Scene object that triggered this event
906		 * @property {number} event.progress - Reflects the current progress of the scene
907		 * @property {string} event.state - The current state of the scene `"DURING"` or `"AFTER"`
908		 * @property {string} event.scrollDirection - Indicates which way we are scrolling `"PAUSED"`, `"FORWARD"` or `"REVERSE"`
909		 */
910		/**
911		 * Scene enter event.  
912		 * Fires whenever the scene enters the "DURING" state.  
913		 * Keep in mind that it doesn't matter if the scene plays forward or backward: This event always fires when the scene enters its active scroll timeframe, regardless of the scroll-direction.
914		 *
915		 * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.
916		 *
917		 * @event ScrollMagic.Scene#enter
918		 *
919		 * @example
920		 * scene.on("enter", function (event) {
921		 * 	console.log("Scene entered.");
922		 * });
923		 *
924		 * @property {object} event - The event Object passed to each callback
925		 * @property {string} event.type - The name of the event
926		 * @property {Scene} event.target - The Scene object that triggered this event
927		 * @property {number} event.progress - Reflects the current progress of the scene
928		 * @property {string} event.state - The current state of the scene - always `"DURING"`
929		 * @property {string} event.scrollDirection - Indicates which way we are scrolling `"PAUSED"`, `"FORWARD"` or `"REVERSE"`
930		 */
931		/**
932		 * Scene leave event.  
933		 * Fires whenever the scene's state goes from "DURING" to either "BEFORE" or "AFTER".  
934		 * Keep in mind that it doesn't matter if the scene plays forward or backward: This event al
934ways fires when the scene leaves its active scroll timeframe, regardless of the scroll-direction.
935		 *
936		 * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.
937		 *
938		 * @event ScrollMagic.Scene#leave
939		 *
940		 * @example
941		 * scene.on("leave", function (event) {
942		 * 	console.log("Scene left.");
943		 * });
944		 *
945		 * @property {object} event - The event Object passed to each callback
946		 * @property {string} event.type - The name of the event
947		 * @property {Scene} event.target - The Scene object that triggered this event
948		 * @property {number} event.progress - Reflects the current progress of the scene
949		 * @property {string} event.state - The current state of the scene `"BEFORE"` or `"AFTER"`
950		 * @property {string} event.scrollDirection - Indicates which way we are scrolling `"PAUSED"`, `"FORWARD"` or `"REVERSE"`
951		 */
952		/**
953		 * Scene update event.  
954		 * Fires whenever the scene is updated (but not necessarily changes the progress).
955		 *
956		 * @event ScrollMagic.Scene#update
957		 *
958		 * @example
959		 * scene.on("update", function (event) {
960		 * 	console.log("Scene updated.");
961		 * });
962		 *
963		 * @property {object} event - The event Object passed to each callback
964		 * @property {string} event.type - The name of the event
965		 * @property {Scene} event.target - The Scene object that triggered this event
966		 * @property {number} event.startPos - The starting position of the scene (in relation to the conainer)
967		 * @property {number} event.endPos - The ending position of the scene (in relation to the conainer)
968		 * @property {number} event.scrollPos - The current scroll position of the container
969		 */
970		/**
971		 * Scene progress event.  
972		 * Fires whenever the progress of the scene changes.
973		 *
974		 * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.
975		 *
976		 * @event ScrollMagic.Scene#progress
977		 *
978		 * @example
979		 * scene.on("progress", function (event) {
980		 * 	console.log("Scene progress changed to " + event.progress);
981		 * });
982		 *
983		 * @property {object} event - The event Object passed to each callback
984		 * @property {string} event.type - The name of the event
985		 * @property {Scene} event.target - The Scene object that triggered this event
986		 * @property {number} event.progress - Reflects the current progress of the scene
987		 * @property {string} event.state - The current state of the scene `"BEFORE"`, `"DURING"` or `"AFTER"`
988		 * @property {string} event.scrollDirection - Indicates which way we are scrolling `"PAUSED"`, `"FORWARD"` or `"REVERSE"`
989		 */
990		/**
991		 * Scene change event.  
992		 * Fires whenvever a property of the scene is changed.
993		 *
994		 * @event ScrollMagic.Scene#change
995		 *
996		 * @example
997		 * scene.on("change", function (event) {
998		 * 	console.log("Scene Property \"" + event.what + "\" changed to " + event.newval);
999		 * });
1000		 *
1001		 * @property {object} event - The event Object passed to each callback
1002		 * @property {string} event.type - The name of the event
1003		 * @property {Scene} event.target - The Scene object that triggered this event
1004		 * @property {string} event.what - Indicates what value has been changed
1005		 * @property {mixed} event.newval - The new value of the changed property
1006		 */
1007		/**
1008		 * Scene shift event.  
1009		 * Fires whenvever the start or end **scroll offset** of the scene change.
1010		 * This happens explicitely, when one of these values change: `offset`, `duration` or `triggerHook`.
1011		 * It will fire implicitly when the `triggerElement` changes, if the new element has a different position (most cases).
1012		 * It will also fire implicitly when the size of the container changes and the triggerHook is anything other than `onLeave`.
1013		 *
1014		 * @event ScrollMagic.Scene#shift
1015		 * @since 1.1.0
1016		 *
1017		 * @example
1018		 * scene.on("shift", function (event) {
1019		 * 	console.log("Scene moved, because the " + event.reason + " has changed.)");
1020		 * });
1021		 *
1022		 * @property {object} event - The event Object passed to each callback
1023		 * @property {string} event.type - The name of the event
1024		 * @property {Scene} event.target - The Scene object that triggered this event
1025		 * @property {string} event.reason - Indicates why the scene has shifted
1026		 */
1027		/**
1028		 * Scene destroy event.  
1029		 * Fires whenvever the scene is destroyed.
1030		 * This can be used to tidy up custom behaviour used in events.
1031		 *
1032		 * @event ScrollMagic.Scene#destroy
1033		 * @since 1.1.0
1034		 *
1035		 * @example
1036		 * scene.on("enter", function (event) {
1037		 *        // add custom action
1038		 *        $("#my-elem").left("200");
1039		 *      })
1040		 *      .on("destroy", function (event) {
1041		 *        // reset my element to start position
1042		 *        if (event.reset) {
1043		 *          $("#my-elem").left("0");
1044		 *        }
1045		 *      });
1046		 *
1047		 * @property {object} event - The event Object passed to each callback
1048		 * @property {string} event.type - The name of the event
1049		 * @property {Scene} event.target - The Scene object that triggered this event
1050		 * @property {boolean} event.reset - Indicates if the destroy method was called with reset `true` or `false`.
1051		 */
1052		/**
1053		 * Scene add event.  
1054		 * Fires when the scene is added to a controller.
1055		 * This is mostly used by plugins to know that change might be due.
1056		 *
1057		 * @event ScrollMagic.Scene#add
1058		 * @since 2.0.0
1059		 *
1060		 * @example
1061		 * scene.on("add", function (event) {
1062		 * 	console.log('Scene was added to a new controller.');
1063		 * });
1064		 *
1065		 * @property {object} event - The event Object passed to each callback
1066		 * @property {string} event.type - The name of the event
1067		 * @property {Scene} event.target - The Scene object that triggered this event
1068		 * @property {boolean} event.controller - The controller object the scene was added to.
1069		 */
1070		/**
1071		 * Scene remove event.  
1072		 * Fires when the scene is removed from a controller.
1073		 * This is mostly used by plugins to know that change might be due.
1074		 *
1075		 * @event ScrollMagic.Scene#remove
1076		 * @since 2.0.0
1077		 *
1078		 * @example
1079		 * scene.on("remove", function (event) {
1080		 * 	console.log('Scene was removed from its controller.');
1081		 * });
1082		 *
1083		 * @property {object} event - The event Object passed to each callback
1084		 * @property {string} event.type - The name of the event
1085		 * @property {Scene} event.target - The Scene object that triggered this event
1086		 */
1087
1088		/**
1089		 * Add one ore more event listener.  
1090		 * The callback function will be fired at the respective event, and an object c
1090ontaining relevant data will be passed to the callback.
1091		 * @method ScrollMagic.Scene#on
1092		 *
1093		 * @example
1094		 * function callback (event) {
1095		 * 		console.log("Event fired! (" + event.type + ")");
1096		 * }
1097		 * // add listeners
1098		 * scene.on("change update progress start end enter leave", callback);
1099		 *
1100		 * @param {string} names - The name or names of the event the callback should be attached to.
1101		 * @param {function} callback - A function that should be executed, when the event is dispatched. An event object will be passed to the callback.
1102		 * @returns {Scene} Parent object for chaining.
1103		 */
1104		this.on = function (names, callback) {
1105			if (_util.type.Function(callback)) {
1106				names = names.trim().split(' ');
1107				names.forEach(function (fullname) {
1108					var
1109						nameparts = fullname.split('.'),
1110						eventname = nameparts[0],
1111						namespace = nameparts[1];
1112					if (eventname != "*") { // disallow wildcards
1113						if (!_listeners[eventname]) {
1114							_listeners[eventname] = [];
1115						}
1116						_listeners[eventname].push({
1117							namespace: namespace || '',
1118							callback: callback
1119						});
1120					}
1121				});
1122			} else {
1123				log(1, "ERROR when calling '.on()': Supplied callback for '" + names + "' is not a valid function!");
1124			}
1125			return Scene;
1126		};
1127
1128		/**
1129		 * Remove one or more event listener.
1130		 * @method ScrollMagic.Scene#off
1131		 *
1132		 * @example
1133		 * function callback (event) {
1134		 * 		console.log("Event fired! (" + event.type + ")");
1135		 * }
1136		 * // add listeners
1137		 * scene.on("change update", callback);
1138		 * // remove listeners
1139		 * scene.off("change update", callback);
1140		 *
1141		 * @param {string} names - The name or names of the event that should be removed.
1142		 * @param {function} [callback] - A specific callback function that should be removed. If none is passed all callbacks to the event listener will be removed.
1143		 * @returns {Scene} Parent object for chaining.
1144		 */
1145		this.off = function (names, callback) {
1146			if (!names) {
1147				log(1, "ERROR: Invalid event name supplied.");
1148				return Scene;
1149			}
1150			names = names.trim().split(' ');
1151			names.forEach(function (fullname, key) {
1152				var
1153					nameparts = fullname.split('.'),
1154					eventname = nameparts[0],
1155					namespace = nameparts[1] || '',
1156					removeList = eventname === '*' ? Object.keys(_listeners) : [eventname];
1157				removeList.forEach(function (remove) {
1158					var
1159						list = _listeners[remove] || [],
1160						i = list.length;
1161					while (i--) {
1162						var listener = list[i];
1163						if (listener && (namespace === listener.namespace || namespace === '*') && (!callback || callback == listener.callback)) {
1164							list.splice(i, 1);
1165						}
1166					}
1167					if (!list.length) {
1168						delete _listeners[remove];
1169					}
1170				});
1171			});
1172			return Scene;
1173		};
1174
1175		/**
1176		 * Trigger an event.
1177		 * @method ScrollMagic.Scene#trigger
1178		 *
1179		 * @example
1180		 * this.trigger("change");
1181		 *
1182		 * @param {string} name - The name of the event that should be triggered.
1183		 * @param {object} [vars] - An object containing info that should be passed to the callback.
1184		 * @returns {Scene} Parent object for chaining.
1185		 */
1186		this.trigger = function (name, vars) {
1187			if (name) {
1188				var
1189					nameparts = name.trim().split('.'),
1190					eventname = nameparts[0],
1191					namespace = nameparts[1],
1192					listeners = _listeners[eventname];
1193				log(3, 'event fired:', eventname, vars ? "->" : '', vars || '');
1194				if (listeners) {
1195					listeners.forEach(function (listener, key) {
1196						if (!namespace || namespace === listener.namespace) {
1197							listener.callback.call(Scene, new ScrollMagic.Event(eventname, listener.namespace, Scene, vars));
1198						}
1199					});
1200				}
1201			} else {
1202				log(1, "ERROR: Invalid event name supplied.");
1203			}
1204			return Scene;
1205		};
1206
1207		// set event listeners
1208		Scene
1209			.on("change.internal", function (e) {
1210				if (e.what !== "loglevel" && e.what !== "tweenChanges") { // no need for a scene update scene with these options...
1211					if (e.what === "triggerElement") {
1212						updateTriggerElementPosition();
1213					} else if (e.what === "reverse") { // the only property left that may have an impact on the current scene state. Everything else is handled by the shift event.
1214						Scene.update();
1215					}
1216				}
1217			})
1218			.on("shift.internal", function (e) {
1219				updateScrollOffset();
1220				Scene.update(); // update scene to reflect new position
1221			});
1222
1223		/**
1224		 * Send a debug message to the console.
1225		 * @private
1226		 * but provided publicly with _log for plugins
1227		 *
1228		 * @param {number} loglevel - The loglevel required to initiate output for the message.
1229		 * @param {...mixed} output - One or more variables that should be passed to the console.
1230		 */
1231		var log = this._log = function (loglevel, output) {
1232			if (_options.loglevel >= loglevel) {
1233				Array.prototype.splice.call(arguments, 1, 0, "(" + NAMESPACE + ") ->");
1234				_util.log.apply(window, arguments);
1235			}
1236		};
1237
1238		/**
1239		 * Add the scene to a controller.  
1240		 * This is the equivalent to `Controller.addScene(scene)`.
1241		 * @method ScrollMagic.Scene#addTo
1242		 *
1243		 * @example
1244		 * // add a scene to a ScrollMagic Controller
1245		 * scene.addTo(controller);
1246		 *
1247		 * @param {ScrollMagic.Controller} controller - The controller to which the scene should be added.
1248		 * @returns {Scene} Parent object for chaining.
1249		 */
1250		this.addTo = function (controller) {
1251			if (!(controller instanceof ScrollMagic.Controller)) {
1252				log(1, "ERROR: supplied argument of 'addTo()' is not a valid ScrollMagic Controller");
1253			} else if (_controller != controller) {
1254				// new controller
1255				if (_controller) { // was associated to a different controller before, so remove it...
1256					_controller.removeScene(Scene);
1257				}
1258				_controller = controller;
1259				validateOption();
1260				updateDuration(true);
1261				updateTriggerElementPosition(true);
1262				updateScrollOffset();
1263				_controller.info("container").addEventListener('resize', onContainerResize);
1264				controller.addScene(Scene);
1265				Scene.trigger("add", {
1266					controller: _controller
1267				});
1268				log(3, "added " + NAMESPACE + " to controller");
1269				Scene.update();
1270			}
1271			return Scene;
1272		};
1273
1274		/**
1275		 * **Get** or **Set** the current enabled state of the scene.  
1276		 * This can be used to disable this scene without removing or destroying it.
1277		 * @method ScrollMagic.Scene#enabled
1278		 *
1279		 * @example
1280		 * // get the current value
1281		 * var enabled = scene.enabled();
1282		 *
1283		 * // disable the scene
1284		 * scene.enabled(false);
1285		 *
1286		 * @param {boolean} [newState] - The new enabled state of the scene `true` or `false`.
1287		 * @returns {(boolean|Scene)} Current enabled state or parent object for chaining.
1288		 */
1289		this.enabled = function (newState) {
1290			if (!arguments.length) { // get
1291				return _enabled;
1292			} else if (_enabled != newState) { // set
1293				_enabled = !!newState;
1294				Scene.update(true);
1295			}
1296			return Scene;
1297		};
1298
1299		/**
1300		 * Remove the scene from the controller.  
1301		 * This is the equivalent to `Controller.removeScene(scene)`.
1302		 * The scene will not be updated anymore until you readd it to a controller.
1303		 * To remove the pin or the tween you need to call removeTween() or removePin() respectively.
1304		 * @method ScrollMagic.Scene#remove
1305		 * @example
1306		 * // remove the scene from its controller
1307		 * scene.remove();
1308		 *
1309		 * @returns {Scene} Parent object for chaining.
1310		 */
1311		this.remove = function () {
1312			if (_controller) {
1313				_controller.info("container").removeEventListener('resize', onContainerResize);
1314				var tmpParent = _controller;
1315				_controller = undefined;
1316				tmpParent.removeScene(Scene);
1317				Scene.trigger("remove");
1318				log(3, "removed " + NAMESPACE + " from controller");
1319			}
1320			return Scene;
1321		};
1322
1323		/**
1324		 * Destroy the scene and everything.
1325		 * @method ScrollMagic.Scene#destroy
1326		 * @example
1327		 * // destroy the scene without resetting the pin and tween to their initial positions
1328		 * scene = scene.destroy();
1329		 *
1330		 * // destroy the scene and reset the pin and tween
1331		 * scene = scene.destroy(true);
1332		 *
1333		 * @param {boolean} [reset=false] - If `true` the pin and tween (if existent) will be reset.
1334		 * @returns {null} Null to unset handler variables.
1335		 */
1336		this.destroy = function (reset) {
1337			Scene.trigger("destroy", {
1338				reset: reset
1339			});
1340			Scene.remove();
1341			Scene.off("*.*");
1342			log(3, "destroyed " + NAMESPACE + " (reset: " + (reset ? "true" : "false") + ")");
1343			return null;
1344		};
1345
1346
1347		/**
1348		 * Updates the Scene to reflect the current state.  
1349		 * This is the equivalent to `Controller.updateScene(scene, immediately)`.  
1350		 * The update method calculates the scene's start and end position (based on the trigger element, trigger hook, duration and offset) and checks it against the current scroll position of the container.  
1351		 * It then updates the current scene state accordingly (or does nothing, if the state is already correct) – Pins will be set to their correct position and tweens will be updated to their correct progress.
1352		 * This means an update doesn't necessarily result in a progress change. The `progress` event will be fired if the progress has indeed changed between this update and the last.  
1353		 * _**NOTE:** This method gets called constantly whenever ScrollMagic detects a change. The only application for you is 
1353if you change something outside of the realm of ScrollMagic, like moving the trigger or changing tween parameters._
1354		 * @method ScrollMagic.Scene#update
1355		 * @example
1356		 * // update the scene on next tick
1357		 * scene.update();
1358		 *
1359		 * // update the scene immediately
1360		 * scene.update(true);
1361		 *
1362		 * @fires Scene.update
1363		 *
1364		 * @param {boolean} [immediately=false] - If `true` the update will be instant, if `false` it will wait until next update cycle (better performance).
1365		 * @returns {Scene} Parent object for chaining.
1366		 */
1367		this.update = function (immediately) {
1368			if (_controller) {
1369				if (immediately) {
1370					if (_controller.enabled() && _enabled) {
1371						var
1372							scrollPos = _controller.info("scrollPos"),
1373							newProgress;
1374
1375						if (_options.duration > 0) {
1376							newProgress = (scrollPos - _scrollOffset.start) / (_scrollOffset.end - _scrollOffset.start);
1377						} else {
1378							newProgress = scrollPos >= _scrollOffset.start ? 1 : 0;
1379						}
1380
1381						Scene.trigger("update", {
1382							startPos: _scrollOffset.start,
1383							endPos: _scrollOffset.end,
1384							scrollPos: scrollPos
1385						});
1386
1387						Scene.progress(newProgress);
1388					} else if (_pin && _state === SCENE_STATE_DURING) {
1389						updatePinState(true); // unpin in position
1390					}
1391				} else {
1392					_controller.updateScene(Scene, false);
1393				}
1394			}
1395			return Scene;
1396		};
1397
1398		/**
1399		 * Updates dynamic scene variables like the trigger element position or the duration.
1400		 * This method is automatically called in regular intervals from the controller. See {@link ScrollMagic.Controller} option `refreshInterval`.
1401		 * 
1402		 * You can call it to minimize lag, for example when you intentionally change the position of the triggerElement.
1403		 * If you don't it will simply be updated in the next refresh interval of the container, which is usually sufficient.
1404		 *
1405		 * @method ScrollMagic.Scene#refresh
1406		 * @since 1.1.0
1407		 * @example
1408		 * scene = new ScrollMagic.Scene({triggerElement: "#trigger"});
1409		 * 
1410		 * // change the position of the trigger
1411		 * $("#trigger").css("top", 500);
1412		 * // immediately let the scene know of this change
1413		 * scene.refresh();
1414		 *
1415		 * @fires {@link Scene.shift}, if the trigger element position or the duration changed
1416		 * @fires {@link Scene.change}, if the duration changed
1417		 *
1418		 * @returns {Scene} Parent object for chaining.
1419		 */
1420		this.refresh = function () {
1421			updateDuration();
1422			updateTriggerElementPosition();
1423			// update trigger element position
1424			return Scene;
1425		};
1426
1427		/**
1428		 * **Get** or **Set** the scene's progress.  
1429		 * Usually it shouldn't be necessary to use this as a setter, as it is set automatically by scene.update().  
1430		 * The order in which the events are fired depends on the duration of the scene:
1431		 *  1. Scenes with `duration == 0`:  
1432		 *  Scenes that have no duration by definition have no ending. Thus the `end` event will never be fired.  
1433		 *  When the trigger position of the scene is passed the events are always fired in this order:  
1434		 *  `enter`, `start`, `progress` when scrolling forward  
1435		 *  and  
1436		 *  `progress`, `start`, `leave` when scrolling in reverse
1437		 *  2. Scenes with `duration > 0`:  
1438		 *  Scenes with a set duration have a defined start and end point.  
1439		 *  When scrolling past the start position of the scene it will fire these events in this order:  
1440		 *  `enter`, `start`, `progress`  
1441		 *  When continuing to scroll and passing the end point it will fire these events:  
1442		 *  `progress`, `end`, `leave`  
1443		 *  When reversing through the end point these events are fired:  
1444		 *  `enter`, `end`, `progress`  
1445		 *  And when continuing to scroll past the start position in reverse it will fire:  
1446		 *  `progress`, `start`, `leave`  
1447		 *  In between start and end the `progress` event will be called constantly, whenever the progress changes.
1448		 * 
1449		 * In short:  
1450		 * `enter` events will always trigger **before** the progress update and `leave` envents will trigger **after** the progress update.  
1451		 * `start` and `end` will always trigger at their respective position.
1452		 * 
1453		 * Please review the event descriptions for details on the events and the event object that is passed to the callback.
1454		 * 
1455		 * @method ScrollMagic.Scene#progress
1456		 * @example
1457		 * // get the current scene progress
1458		 * var progress = scene.progress();
1459		 *
1460		 * // set new scene progress
1461		 * scene.progress(0.3);
1462		 *
1463		 * @fires {@link Scene.enter}, when used as setter
1464		 * @fires {@link Scene.start}, when used as setter
1465		 * @fires {@link Scene.progress}, when used as setter
1466		 * @fires {@link Scene.end}, when used as setter
1467		 * @fires {@link Scene.leave}, when used as setter
1468		 *
1469		 * @param {number} [progress] - The new progress value of the scene `[0-1]`.
1470		 * @returns {number} `get` -  Current scene progress.
1471		 * @returns {Scene} `set` -  Parent object for chaining.
1472		 */
1473		this.progress = function (progress) {
1474			if (!arguments.length) { // get
1475				return _progress;
1476			} else { // set
1477				var
1478					doUpdate = false,
1479					oldState = _state,
1480					scrollDirection = _controller ? _controller.info("scrollDirection") : 'PAUSED',
1481					reverseOrForward = _options.reverse || progress >= _progress;
1482				if (_options.duration === 0) {
1483					// zero duration scenes
1484					doUpdate = _progress != progress;
1485					_progress = progress < 1 && reverseOrForward ? 0 : 1;
1486					_state = _progress === 0 ? SCENE_STATE_BEFORE : SCENE_STATE_DURING;
1487				} else {
1488					// scenes with start and end
1489					if (progress < 0 && _state !== SCENE_STATE_BEFORE && reverseOrForward) {
1490						// go back to initial state
1491						_progress = 0;
1492						_state = SCENE_STATE_BEFORE;
1493						doUpdate = true;
1494					} else if (progress >= 0 && progress < 1 && reverseOrForward) {
1495						_progress = progress;
1496						_state = SCENE_STATE_DURING;
1497						doUpdate = true;
1498					} else if (progress >= 1 && _state !== SCENE_STATE_AFTER) {
1499						_progress = 1;
1500						_state = SCENE_STATE_AFTER;
1501						doUpdate = true;
1502					} else if (_state === SCENE_STATE_DURING && !reverseOrForward) {
1503						updatePinState(); // in case we scrolled backwards mid-scene and reverse is disabled => update the pin position, so it doesn't move back as well.
1504					}
1505				}
1506				if (doUpdate) {
1507					// fire events
1508					var
1509						eventVars = {
1510							progress: _progress,
1511							state: _state,
1512							scrollDirection: scrollDirection
1513						},
1514						stateChanged = _state != oldState;
1515
1516					var trigger = function (eventName) { // tmp helper to simplify code
1517						Scene.trigger(eventName, eventVars);
1518					};
1519
1520					if (stateChanged) { // enter events
1521						if (oldState !== SCENE_STATE_DURING) {
1522							trigger("enter");
1523							trigger(oldState === SCENE_STATE_BEFORE ? "start" : "end");
1524						}
1525					}
1526					trigger("progress");
1527					if (stateChanged) { // leave events
1528						if (_state !== SCENE_STATE_DURING) {
1529							trigger(_state === SCENE_STATE_BEFORE ? "start" : "end");
1530							trigger("leave");
1531						}
1532					}
1533				}
1534
1535				return Scene;
1536			}
1537		};
1538
1539
1540		/**
1541		 * Update the start and end scrollOffset of the container.
1542		 * The positions reflect what the controller's scroll position will be at the start and end respectively.
1543		 * Is called, when:
1544		 *   - Scene event "change" is called with: offset, triggerHook, duration 
1545		 *   - scroll container event "resize" is called
1546		 *   - the position of the triggerElement changes
1547		 *   - the controller changes -> addTo()
1548		 * @private
1549		 */
1550		var updateScrollOffset = function () {
1551			_scrollOffset = {
1552				start: _triggerPos + _options.offset
1553			};
1554			if (_controller && _options.triggerElement) {
1555				// take away triggerHook portion to get relative to top
1556				_scrollOffset.start -= _controller.info("size") * _options.triggerHook;
1557			}
1558			_scrollOffset.end = _scrollOffset.start + _options.duration;
1559		};
1560
1561		/**
1562		 * Updates the duration if set to a dynamic function.
1563		 * This method is called when the scene is added to a controller and in regular intervals from the controller through scene.refresh().
1564		 * 
1565		 * @fires {@link Scene.change}, if the duration changed
1566		 * @fires {@link Scene.shift}, if the duration changed
1567		 *
1568		 * @param {boolean} [suppressEvents=false] - If true the shift event will be suppressed.
1569		 * @private
1570		 */
1571		var updateDuration = function (suppressEvents) {
1572			// update duration
1573			if (_durationUpdateMethod) {
1574				var varname = "duration";
1575				if (changeOption(varname, _durationUpdateMethod.call(Scene)) && !suppressEvents) { // set
1576					Scene.trigger("change", {
1577						what: varname,
1578						newval: _options[varname]
1579					});
1580					Scene.trigger("shift", {
1581						reason: varname
1582					});
1583				}
1584			}
1585		};
1586
1587		/**
1588		 * Updates the position of the triggerElement, if present.
1589		 * This method is called ...
1590		 *  - ... when the triggerElement is changed
1591		 *  - ... when the scene is added to a (new) controller
1592		 *  - ... in regular intervals from the controller through scene.refresh().
1593		 * 
1594		 * @fires {@link Scene.shift}, if the position changed
1595		 *
1596		 * @param {boolean} [suppressEvents=false] - If true the shift event will be suppressed.
1597		 * @private
1598		 */
1599		var updateTriggerElementPosition = function (suppressEvents) {
1600			var
1601				elementPos = 0,
1602				telem = _options.triggerElement;
1603			if (_controller && (telem || _triggerPos > 0)) { // either an element exists or was removed and the triggerPos is still > 0
1604				if (telem) { // there currently a triggerElement set
1605					if (telem.parentNode) { // check if element is still attached to DOM
1606						var
1607							controllerInfo = _controller.info(),
1608							containerOffset = _util.get.offset(controllerInfo.container), // container position is needed because element offset is returned in relation to document, not in relation to container.
1609							param = controllerInfo.vertical ? "top" : "left"; // which param is of interest ?
1610
1611						// if parent is spacer, use spacer position instead so correct start position is returned for pinned elements.
1612						while (telem.parentNode.hasAttribute(PIN_SPACER_ATTRIBUTE)) {
1613							telem = telem.parentNode;
1614						}
1615
1616						var elementOffset = _util.get.offset(telem);
1617
1618						if (!controllerInfo.isDocument) { // container is not the document root, so substract scroll Position to get correct trigger element position relative to scrollcontent
1619							containerOffset[param] -= _controller.scrollPos();
1620						}
1621
1622						elementPos = elementOffset[param] - containerOffset[param];
1623
1624					} else { // there was an element, but it was removed from DOM
1625						log(2, "WARNING: triggerElement was removed from DOM and will be reset to", undefined);
1626						Scene.triggerElement(undefined); // unset, so a change event is triggered
1627					}
1628				}
1629
1630				var changed = elementPos != _triggerPos;
1631				_triggerPos = elementPos;
1632				if (changed && !suppressEvents) {
1633					Scene.trigger("shift", {
1634						reason: "triggerElementPosition"
1635					});
1636				}
1637			}
1638		};
1639
1640		/**
1641		 * Trigger a shift event, when the container is resized and the triggerHook is > 1.
1642		 * @private
1643		 */
1644		var onContainerResize = function (e) {
1645			if (_options.triggerHook > 0) {
1646				Scene.trigger("shift", {
1647					reason: "containerResize"
1648				});
1649			}
1650		};
1651
1652
1653		var _validate = _util.extend(SCENE_OPTIONS.validate, {
1654			// validation for duration handled internally for reference to private var _durationMethod
1655			duration: function (val) {
1656				if (_util.type.String(val) && val.match(/^(\.|\d)*\d+%$/)) {
1657					// percentage value
1658					var perc = parseFloat(val) / 100;
1659					val = function () {
1660						return _controller ? _controller.info("size") * perc : 0;
1661					};
1662				}
1663				if (_util.type.Function(val)) {
1664					// function
1665					_durationUpdateMethod = val;
1666					try {
1667						val = parseFloat(_durationUpdateMethod.call(Scene));
1668					} catch (e) {
1669						val = -1; // will cause error below
1670					}
1671				}
1672				// val has to be float
1673				val = parseFloat(val);
1674				if (!_util.type.Number(val) || val < 0) {
1675					if (_durationUpdateMethod) {
1676						_durationUpdateMethod = undefined;
1677						throw ["Invalid return value of supplied function for option \"duration\":", val];
1678					} else {
1679						throw ["Invalid value for option \"duration\":", val];
1680					}
1681				}
1682				return val;
1683			}
1684		});
1685
1686		/**
1687		 * Checks the validity of a specific or all options and reset to default if neccessary.
1688		 * @private
1689		 */
1690		var validateOption = function (check) {
1691			check = arguments.length ? [check] : Object.keys(_validate);
1692			check.forEach(function (optionName, key) {
1693				var value;
1694				if (_validate[optionName]) { // there is a validation method for this option
1695					try { // validate value
1696						value = _validate[optionName](_options[optionName]);
1697					} catch (e) { // validation failed -> reset to default
1698						value = DEFAULT_OPTIONS[optionName];
1699						var logMSG = _util.type.String(e) ? [e] : e;
1700						if (_util.type.Array(logMSG)) {
1701							logMSG[0] = "ERROR: " + logMSG[0];
1702							logMSG.unshift(1); // loglevel 1 for error msg
1703							log.apply(this, logMSG);
1704						} else {
1705							log(1, "ERROR: Problem executing validation callback for option '" + optionName + "':", e.message);
1706						}
1707					} finally {
1708						_options[optionName] = value;
1709					}
1710				}
1711			});
1712		};
1713
1714		/**
1715		 * Helper used by the setter/getters for scene options
1716		 * @private
1717		 */
1718		var changeOption = function (varname, newval) {
1719			var
1720				changed = false,
1721				oldval = _options[varname];
1722			if (_options[varname] != newval) {
1723				_options[varname] = newval;
1724				validateOption(varname); // resets to default if necessary
1725				changed = oldval != _options[varname];
1726			}
1727			return changed;
1728		};
1729
1730		// generate getters/setters for all options
1731		var addSceneOption = function (optionName) {
1732			if (!Scene[optionName]) {
1733				Scene[optionName] = function (newVal) {
1734					if (!arguments.length) { // get
1735						return _options[optionName];
1736					} else {
1737						if (optionName === "duration") { // new duration is set, so any previously set function must be unset
1738							_durationUpdateMethod = undefined;
1739						}
1740						if (changeOption(optionName, newVal)) { // set
1741							Scene.trigger("change", {
1742								what: optionName,
1743								newval: _options[optionName]
1744							});
1745							if (SCENE_OPTIONS.shifts.indexOf(optionName) > -1) {
1746								Scene.trigger("shift", {
1747									reason: optionName
1748								});
1749							}
1750						}
1751					}
1752					return Scene;
1753				};
1754			}
1755		};
1756
1757		/**
1758		 * **Get** or **Set** the duration option value.
1759		 *
1760		 * As a **setter** it accepts three types of parameters:
1761		 * 1. `number`: Sets the duration of the scene to exactly this amount of pixels.  
1762		 *   This means the scene will last for exactly this amount of pixels scrolled. Sub-Pixels are also valid.
1763		 *   A value of `0` means that the scene is 'open end' and no end will be triggered. Pins will never unpin and animations will play independently of scroll progress.
1764		 * 2. `string`: Always updates the duration relative to parent scroll container.  
1765		 *   For example `"100%"` will keep the duration always exactly at the inner height of the scroll container.
1766		 *   When scrolling vertically the width is used for reference respectively.
1767		 * 3. `function`: The supplied function will be called to return the scene duration.
1768		 *   This is useful in setups where the duration depends on other elements who might change size. By supplying a function you can return a value instead of updating potentially multiple scene durations.  
1769		 *   The scene can be referenced inside the callback using `this`.
1770		 *   _**WARNING:** This is an easy way to kill performance, as the callback will be executed every time `Scene.refresh()` is called, which happens a lot. The interval is defined by the controller (see ScrollMagic.Controller option `refreshInterval`).  
1771		 *   It's recomended to avoid calculations within the function and use cached variables as return values.  
1772		 *   This counts double if you use the same function for multiple scenes._
1773		 *
1774		 * @method ScrollMagic.Scene#duration
1775		 * @example
1776		 * // get the current duration value
1777		 * var duration = scene.duration();
1778		 *
1779		 * // set a new duration
1780		 * scene.duration(300);
1781		 *
1782		 * // set duration responsively to container size
1783		 * scene.duration("100%");
1784		 *
1785		 * // use a function to randomize the duration for some reason.
1786		 * var durationValueCache;
1787		 * function durationCallback () {
1788		 *   return durationValueCache;
1789		 * }
1790		 * function updateDuration () {
1791		 *   durationValueCache = Math.random() * 100;
1792		 * }
1793		 * updateDuration(); // set to initial value
1794		 * scene.duration(durationCallback); // set duration callback
1795		 *
1796		 * @fires {@link Scene.change}, when used as setter
1797		 * @fires {@link Scene.shift}, when used as setter
1798		 * @param {(number|string|function)} [newDuration] - The new duration setting for the scene.
1799		 * @returns {number} `get` -  Current scene duration.
1800		 * @returns {Scene} `set` -  Parent object for chaining.
1801		 */
1802
1803		/**
1804		 * **Get** or **Set** the offset option value.
1805		 * @method ScrollMagic.Scene#offset
1806		 * @example
1807		 * // get the current offset
1808		 * var offset = scene.offset();
1809		 *
1810		 * // set a new offset
1811		 * scene.offset(100);
1812		 *
1813		 * @fires {@link Scene.change}, when used as setter
1814		 * @fires {@link Scene.shift}, when used as setter
1815		 * @param {number} [newOffset] - The new offset of the scene.
1816		 * @returns {number} `get` -  Current scene offset.
1817		 * @returns {Scene} `set` -  Parent object for chaining.
1818		 */
1819
1820		/**
1821		 * **Get** or **Set** the triggerElement option value.
1822		 * Does **not** fire `Scene.shift`, because changing the trigger Element doesn't necessarily mean the start position changes. This will be determined in `Scene.refresh()`, which is automatically triggered.
1823		 * @method ScrollMagic.Scene#triggerElement
1824		 * @example
1825		 * // get the current triggerElement
1826		 * var triggerElement = scene.triggerElement();
1827		 *
1828		 * // set a new triggerElement using a selector
1829		 * scene.triggerElement("#trigger");
1830		 * // set a new triggerElement using a DOM object
1831		 * scene.triggerElement(document.getElementById("trigger"));
1832		 *
1833		 * @fires {@link Scene.change}, when used as setter
1834		 * @param {(string|object)} [newTriggerElement] - The new trigger element for the scene.
1835		 * @returns {(string|object)} `get` -  Current triggerElement.
1836		 * @returns {Scene} `set` -  Parent object for chaining.
1837		 */
1838
1839		/**
1840		 * **Get** or **Set** the triggerHook option value.
1841		 * @method ScrollMagic.Scene#triggerHook
1842		 * @example
1843		 * // get the current triggerHook value
1844		 * var triggerHook = scene.triggerHook();
1845		 *
1846		 * // set a new triggerHook using a string
1847		 * scene.triggerHook("onLeave");
1848		 * // set a new triggerHook using a number
1849		 * scene.triggerHook(0.7);
1850		 *
1851		 * @fires {@link Scene.change}, when used as setter
1852		 * @fires {@link Scene.shift}, when used as setter
1853		 * @param {(number|string)} [newTriggerHook] - The new triggerHook of the scene. See {@link Scene} parameter description for value options.
1854		 * @returns {number} `get` -  Current triggerHook (ALWAYS numerical).
1855		 * @returns {Scene} `set` -  Parent object for chaining.
1856		 */
1857
1858		/**
1859		 * **Get** or **Set** the reverse option value.
1860		 * @method ScrollMagic.Scene#reverse
1861		 * @example
1862		 * // get the current reverse option
1863		 * var reverse = scene.reverse();
1864		 *
1865		 * // set new reverse option
1866		 * scene.reverse(false);
1867		 *
1868		 * @fires {@link Scene.change}, when used as setter
1869		 * @param {boolean} [newReverse] - The new reverse setting of the scene.
1870		 * @returns {boolean} `get` -  Current reverse option value.
1871		 * @returns {Scene} `set` -  Parent object for chaining.
1872		 */
1873
1874		/**
1875		 * **Get** or **Set** the loglevel option value.
1876		 * @method ScrollMagic.Scene#loglevel
1877		 * @example
1878		 * // get the current loglevel
1879		 * var loglevel = scene.loglevel();
1880		 *
1881		 * // set new loglevel
1882		 * scene.loglevel(3);
1883		 *
1884		 * @fires {@link Scene.change}, when used as setter
1885		 * @param {number} [newLoglevel] - The new loglevel setting of the scene. `[0-3]`
1886		 * @returns {number} `get` -  Current loglevel.
1887		 * @returns {Scene} `set` -  Parent object for chaining.
1888		 */
1889
1890		/**
1891		 * **Get** the associated controller.
1892		 * @method ScrollMagic.Scene#controller
1893		 * @example
1894		 * // get the controller of a scene
1895		 * var controller = scene.controller();
1896		 *
1897		 * @returns {ScrollMagic.Controller} Parent controller or `undefined`
1898		 */
1899		this.controller = function () {
1900			return _controller;
1901		};
1902
1903		/**
1904		 * **Get** the current state.
1905		 * @method ScrollMagic.Scene#state
1906		 * @example
1907		 * // get the current state
1908		 * var state = scene.state();
1909		 *
1910		 * @returns {string} `"BEFORE"`, `"DURING"` or `"AFTER"`
1911		 */
1912		this.state = function () {
1913			return _state;
1914		};
1915
1916		/**
1917		 * **Get** the current scroll offset for the start of the scene.  
1918		 * Mind, that the scrollOffset is related to the size of the container, if `triggerHook` is bigger than `0` (or `"onLeave"`).  
1919		 * This means, that resizing the container or changing the `triggerHook` will influence the scene's start offset.
1920		 * @method ScrollMagic.Scene#scrollOffset
1921		 * @example
1922		 * // get the current scroll offset for the start and end of the scene.
1923		 * var start = scene.scrollOffset();
1924		 * var end = scene.scrollOffset() + scene.duration();
1925		 * console.log("the scene starts at", start, "and ends at", end);
1926		 *
1927		 * @returns {number} The scroll offset (of the container) at which the scene will trigger. Y value for vertical and X value for horizontal scrolls.
1928		 */
1929		this.scrollOffset = function () {
1930			return _scrollOffset.start;
1931		};
1932
1933		/**
1934		 * **Get** the trigger position of the scene (including the value of the `offset` option).  
1935		 * @method ScrollMagic.Scene#triggerPosition
1936		 * @example
1937		 * // get the scene's trigger position
1938		 * var triggerPosition = scene.triggerPosition();
1939		 *
1940		 * @returns {number} Start position of the scene. Top position value for vertical and left position value for horizontal scrolls.
1941		 */
1942		this.triggerPosition = function () {
1943			var pos = _options.offset; // the offset is the basis
1944			if (_controller) {
1945				// get the trigger position
1946				if (_options.triggerElement) {
1947					// Element as trigger
1948					pos += _triggerPos;
1949				} else {
1950					// return the height of the triggerHook to start at the beginning
1951					pos += _controller.info("size") * Scene.triggerHook();
1952				}
1953			}
1954			return pos;
1955		};
1956
1957
1958		var
1959			_pin,
1960			_pinOptions;
1961
1962		Scene
1963			.on("shift.internal", function (e) {
1964				var durationChanged = e.reason === "duration";
1965				if ((_state === SCENE_STATE_AFTER && durationChanged) || (_state === SCENE_STATE_DURING && _options.duration === 0)) {
1966					// if [duration changed after a scene (inside scene progress updates pin position)] or [duration is 0, we are in pin phase and some other value changed].
1967					updatePinState();
1968				}
1969				if (durationChanged) {
1970					updatePinDimensions();
1971				}
1972			})
1973			.on("progress.internal", function (e) {
1974				updatePinState();
1975			})
1976			.on("add.internal", function (e) {
1977				updatePinDimensions();
1978			})
1979			.on("destroy.internal", function (e) {
1980				Scene.removePin(e.reset);
1981			});
1982		/**
1983		 * Update the pin state.
1984		 * @private
1985		 */
1986		var updatePinState = function (forceUnpin) {
1987			if (_pin && _controller) {
1988				var
1989					containerInfo = _controller.info(),
1990					pinTarget = _pinOptions.spacer.firstChild; // may be pin element or another spacer, if cascading pins
1991
1992				if (!forceUnpin && _state === SCENE_STATE_DURING) { // during scene or if duration is 0 and we are past the trigger
1993					// pinned state
1994					if (_util.css(pinTarget, "position") != "fixed") {
1995						// change state before updating pin spacer (position changes due to fixed collapsing might occur.)
1996						_util.css(pinTarget, {
1997							"position": "fixed"
1998						});
1999						// update pin spacer
2000						updatePinDimensions();
2001					}
2002
2003					var
2004						fixedPos = _util.get.offset(_pinOptions.spacer, true), // get viewport position of spacer
2005						scrollDistance = _options.reverse || _options.duration === 0 ?
2006						containerInfo.scrollPos - _scrollOffset.start // quicker
2007						:
2008						Math.round(_progress * _options.duration * 10) / 10; // if no reverse and during pin the position needs to be recalculated using the progress
2009
2010					// add scrollDistance
2011					fixedPos[containerInfo.vertical ? "top" : "left"] += scrollDistance;
2012
2013					// set new values
2014					_util.css(_pinOptions.spacer.firstChild, {
2015						top: fixedPos.top,
2016						left: fixedPos.left
2017					});
2018				} else {
2019					// unpinned state
2020					var
2021						newCSS = {
2022							position: _pinOptions.inFlow ? "relative" : "absolute",
2023							top: 0,
2024							left: 0
2025						},
2026						change = _util.css(pinTarget, "position") != newCSS.position;
2027
2028					if (!_pinOptions.pushFollowers) {
2029						newCSS[containerInfo.vertical ? "top" : "left"] = _options.duration * _progress;
2030					} else if (_options.duration > 0) { // only concerns scenes with duration
2031						if (_state === SCENE_STATE_AFTER && parseFloat(_util.css(_pinOptions.spacer, "padding-top")) === 0) {
2032							change = true; // if in after state but havent updated spacer yet (jumped past pin)
2033						} else if (_state === SCENE_STATE_BEFORE && parseFloat(_util.css(_pinOptions.spacer, "padding-bottom")) === 0) { // before
2034							change = true; // jumped past fixed state upward direction
2035						}
2036					}
2037					// set new values
2038					_util.css(pinTarget, newCSS);
2039					if (change) {
2040						// update pin spacer if state changed
2041						updatePinDimensions();
2042					}
2043				}
2044			}
2045		};
2046
2047		/**
2048		 * Update the pin spacer and/or element size.
2049		 * The size of the spacer needs to be updated whenever the duration of the scene changes, if it is to push down following elements.
2050		 * @private
2051		 */
2052		var updatePinDimensions = function () {
2053			if (_pin && _controller && _pinOptions.inFlow) { // no spacerresize, if original position is absolute
2054				var
2055					after = (_state === SCENE_STATE_AFTER),
2056					before = (_state === SCENE_STATE_BEFORE),
2057					during = (_state === SCENE_STATE_DURING),
2058					vertical = _controller.info("vertical"),
2059					pinTarget = _pinOptions.spacer.firstChild, // usually the pined element but can also be another spacer (cascaded pins)
2060					marginCollapse = _util.isMarginCollapseType(_util.css(_pinOptions.spacer, "display")),
2061					css = {};
2062
2063				// set new size
2064				// if relsize: spacer -> pin | else: pin -> spacer
2065				if (_pinOptions.relSize.width || _pinOptions.relSize.autoFullWidth) {
2066					if (during) {
2067						_util.css(_pin, {
2068							"width": _util.get.width(_pinOptions.spacer)
2069						});
2070					} else {
2071						_util.css(_pin, {
2072							"width": "100%"
2073						});
2074					}
2075				} else {
2076					// minwidth is needed for cascaded pins.
2077					css["min-width"] = _util.get.width(vertical ? _pin : pinTarget, true, true);
2078					css.width = during ? css["min-width"] : "auto";
2079				}
2080				if (_pinOptions.relSize.height) {
2081					if (during) {
2082						// the only padding the spacer should ever include is the duration (if pushFollowers = true), so we need to substract that.
2083						_util.css(_pin, {
2084							"height": _util.get.height(_pinOptions.spacer) - (_pinOptions.pushFollowers ? _options.duration : 0)
2085						});
2086					} else {
2087						_util.css(_pin, {
2088							"height": "100%"
2089						});
2090					}
2091				} else {
2092					// margin is only included if it's a cascaded pin to resolve an IE9 bug
2093					css["min-height"] = _util.get.height(vertical ? pinTarget : _pin, true, !marginCollapse); // needed for cascading pins
2094					css.height = during ? css["min-height"] : "auto";
2095				}
2096
2097				// add space for duration if pushFollowers is true
2098				if (_pinOptions.pushFollowers) {
2099					css["padding" + (vertical ? "Top" : "Left")] = _options.duration * _progress;
2100					css["padding" + (vertical ? "Bottom" : "Right")] = _options.duration * (1 - _progress);
2101				}
2102				_util.css(_pinOptions.spacer, css);
2103			}
2104		};
2105
2106		/**
2107		 * Updates the Pin state (in certain scenarios)
2108		 * If the controller container is not the document and we are mid-pin-phase scrolling or resizing the main document can result to wrong pin positions.
2109		 * So this function is called on resize and scroll of the document.
2110		 * @private
2111		 */
2112		var updatePinInContainer = function () {
2113			if (_controller && _pin && _state === SCENE_STATE_DURING && !_controller.info("isDocument")) {
2114				updatePinState();
2115			}
2116		};
2117
2118		/**
2119		 * Updates the Pin spacer size state (in certain scenarios)
2120		 * If container is resized during pin and relatively sized the size of the pin might need to be updated...
2121		 * So this function is called on resize of the container.
2122		 * @private
2123		 */
2124		var updateRelativePinSpacer = function () {
2125			if (_controller && _pin && // well, duh
2126				_state === SCENE_STATE_DURING && // element in pinned state?
2127				( // is width or height relatively sized, but
2127 not in relation to body? then we need to recalc.
2128					((_pinOptions.relSize.width || _pinOptions.relSize.autoFullWidth) && _util.get.width(window) != _util.get.width(_pinOptions.spacer.parentNode)) ||
2129					(_pinOptions.relSize.height && _util.get.height(window) != _util.get.height(_pinOptions.spacer.parentNode))
2130				)
2131			) {
2132				updatePinDimensions();
2133			}
2134		};
2135
2136		/**
2137		 * Is called, when the mousewhel is used while over a pinned element inside a div container.
2138		 * If the scene is in fixed state scroll events would be counted towards the body. This forwards the event to the scroll container.
2139		 * @private
2140		 */
2141		var onMousewheelOverPin = function (e) {
2142			if (_controller && _pin && _state === SCENE_STATE_DURING && !_controller.info("isDocument")) { // in pin state
2143				e.preventDefault();
2144				_controller._setScrollPos(_controller.info("scrollPos") - ((e.wheelDelta || e[_controller.info("vertical") ? "wheelDeltaY" : "wheelDeltaX"]) / 3 || -e.detail * 30));
2145			}
2146		};
2147
2148		/**
2149		 * Pin an element for the duration of the scene.
2150		 * If the scene duration is 0 the element will only be unpinned, if the user scrolls back past the start position.  
2151		 * Make sure only one pin is applied to an element at the same time.
2152		 * An element can be pinned multiple times, but only successively.
2153		 * _**NOTE:** The option `pushFollowers` has no effect, when the scene duration is 0._
2154		 * @method ScrollMagic.Scene#setPin
2155		 * @example
2156		 * // pin element and push all following elements down by the amount of the pin duration.
2157		 * scene.setPin("#pin");
2158		 *
2159		 * // pin element and keeping all following elements in their place. The pinned element will move past them.
2160		 * scene.setPin("#pin", {pushFollowers: false});
2161		 *
2162		 * @param {(string|object)} element - A Selector targeting an element or a DOM object that is supposed to be pinned.
2163		 * @param {object} [settings] - settings for the pin
2164		 * @param {boolean} [settings.pushFollowers=true] - If `true` following elements will be "pushed" down for the duration of the pin, if `false` the pinned element will just scroll past them.  
2165		 												   Ignored, when duration is `0`.
2166		 * @param {string} [settings.spacerClass="scrollmagic-pin-spacer"] - Classname of the pin spacer element, which is used to replace the element.
2167		 *
2168		 * @returns {Scene} Parent object for chaining.
2169		 */
2170		this.setPin = function (element, settings) {
2171			var
2172				defaultSettings = {
2173					pushFollowers: true,
2174					spacerClass: "scrollmagic-pin-spacer"
2175				};
2176			var pushFollowersActivelySet = settings && settings.hasOwnProperty('pushFollowers');
2177			settings = _util.extend({}, defaultSettings, settings);
2178
2179			// validate Element
2180			element = _util.get.elements(element)[0];
2181			if (!element) {
2182				log(1, "ERROR calling method 'setPin()': Invalid pin element supplied.");
2183				return Scene; // cancel
2184			} else if (_util.css(element, "position") === "fixed") {
2185				log(1, "ERROR calling method 'setPin()': Pin does not work with elements that are positioned 'fixed'.");
2186				return Scene; // cancel
2187			}
2188
2189			if (_pin) { // preexisting pin?
2190				if (_pin === element) {
2191					// same pin we already have -> do nothing
2192					return Scene; // cancel
2193				} else {
2194					// kill old pin
2195					Scene.removePin();
2196				}
2197
2198			}
2199			_pin = element;
2200
2201			var
2202				parentDisplay = _pin.parentNode.style.display,
2203				boundsParams = ["top", "left", "bottom", "right", "margin", "marginLeft", "marginRight", "marginTop", "marginBottom"];
2204
2205			_pin.parentNode.style.display = 'none'; // hack start to force css to return stylesheet values instead of calculated px values.
2206			var
2207				inFlow = _util.css(_pin, "position") != "absolute",
2208				pinCSS = _util.css(_pin, boundsParams.concat(["display"])),
2209				sizeCSS = _util.css(_pin, ["width", "height"]);
2210			_pin.parentNode.style.display = parentDisplay; // hack end.
2211
2212			if (!inFlow && settings.pushFollowers) {
2213				log(2, "WARNING: If the pinned element is positioned absolutely pushFollowers will be disabled.");
2214				settings.pushFollowers = false;
2215			}
2216			window.setTimeout(function () { // wait until all finished, because with responsive duration it will only be set after scene is added to controller
2217				if (_pin && _options.duration === 0 && pushFollowersActivelySet && settings.pushFollowers) {
2218					log(2, "WARNING: pushFollowers =", true, "has no effect, when scene duration is 0.");
2219				}
2220			}, 0);
2221
2222			// create spacer and insert
2223			var
2224				spacer = _pin.parentNode.insertBefore(document.createElement('div'), _pin),
2225				spacerCSS = _util.extend(pinCSS, {
2226					position: inFlow ? "relative" : "absolute",
2227					boxSizing: "content-box",
2228					mozBoxSizing: "content-box",
2229					webkitBoxSizing: "content-box"
2230				});
2231
2232			if (!inFlow) { // copy size if positioned absolutely, to work for bottom/right positioned elements.
2233				_util.extend(spacerCSS, _util.css(_pin, ["width", "height"]));
2234			}
2235
2236			_util.css(spacer, spacerCSS);
2237			spacer.setAttribute(PIN_SPACER_ATTRIBUTE, "");
2238			_util.addClass(spacer, settings.spacerClass);
2239
2240			// set the pin Options
2241			_pinOptions = {
2242				spacer: spacer,
2243				relSize: { // save if size is defined using % values. if so, handle spacer resize differently...
2244					width: sizeCSS.width.slice(-1) === "%",
2245					height: sizeCSS.height.slice(-1) === "%",
2246					autoFullWidth: sizeCSS.width === "auto" && inFlow && _util.isMarginCollapseType(pinCSS.display)
2247				},
2248				pushFollowers: settings.pushFollowers,
2249				inFlow: inFlow, // stores if the element takes up space in the document flow
2250			};
2251
2252			if (!_pin.___origStyle) {
2253				_pin.___origStyle = {};
2254				var
2255					pinInlineCSS = _pin.style,
2256					copyStyles = boundsParams.concat(["width", "height", "position", "boxSizing", "mozBoxSizing", "webkitBoxSizing"]);
2257				copyStyles.forEach(function (val) {
2258					_pin.___origStyle[val] = pinInlineCSS[val] || "";
2259				});
2260			}
2261
2262			// if relative size, transfer it to spacer and make pin calculate it...
2263			if (_pinOptions.relSize.width) {
2264				_util.css(spacer, {
2265					width: sizeCSS.width
2266				});
2267			}
2268			if (_pinOptions.relSize.height) {
2269				_util.css(spacer, {
2270					height: sizeCSS.height
2271				});
2272			}
2273
2274			// now place the pin element inside the spacer	
2275			spacer.appendChild(_pin);
2276			// and set new css
2277			_util.css(_pin, {
2278				position: inFlow ? "relative" : "absolute",
2279				margin: "auto",
2280				top: "auto",
2281				left: "auto",
2282				bottom: "auto",
2283				right: "auto"
2284			});
2285
2286			if (_pinOptions.relSize.width || _pinOptions.relSize.autoFullWidth) {
2287				_util.css(_pin, {
2288					boxSizing: "border-box",
2289					mozBoxSizing: "border-box",
2290					webkitBoxSizing: "border-box"
2291				});
2292			}
2293
2294			// add listener to document to update pin position in case controller is not the document.
2295			window.addEventListener('scroll', updatePinInContainer);
2296			window.addEventListener('resize', updatePinInContainer);
2297			window.addEventListener('resize', updateRelativePinSpacer);
2298			// add mousewheel listener to catch scrolls over fixed elements
2299			_pin.addEventListener("mousewheel", onMousewheelOverPin);
2300			_pin.addEventListener("DOMMouseScroll", onMousewheelOverPin);
2301
2302			log(3, "added pin");
2303
2304			// finally update the pin to init
2305			updatePinState();
2306
2307			return Scene;
2308		};
2309
2310		/**
2311		 * Remove the pin from the scene.
2312		 * @method ScrollMagic.Scene#removePin
2313		 * @example
2314		 * // remove the pin from the scene without resetting it (the spacer is not removed)
2315		 * scene.removePin();
2316		 *
2317		 * // remove the pin from the scene and reset the pin element to its initial position (spacer is removed)
2318		 * scene.removePin(true);
2319		 *
2320		 * @param {boolean} [reset=false] - If `false` the spacer will not be removed and the element's position will not be reset.
2321		 * @returns {Scene} Parent object for chaining.
2322		 */
2323		this.removePin = function (reset) {
2324			if (_pin) {
2325				if (_state === SCENE_STATE_DURING) {
2326					updatePinState(true); // force unpin at position
2327				}
2328				if (reset || !_controller) { // if there's no controller no progress was made anyway...
2329					var pinTarget = _pinOptions.spacer.firstChild; // usually the pin element, but may be another spacer (cascaded pins)...
2330					if (pinTarget.hasAttribute(PIN_SPACER_ATTRIBUTE)) { // copy margins to child spacer
2331						var
2332							style = _pinOptions.spacer.style,
2333							values = ["margin", "marginLeft", "marginRight", "marginTop", "marginBottom"],
2334							margins = {};
2335						values.forEach(function (val) {
2336							margins[val] = style[val] || "";
2337						});
2338						_util.css(pinTarget, margins);
2339					}
2340					_pinOptions.spacer.parentNode.insertBefore(pinTarget, _pinOptions.spacer);
2341					_pinOptions.spacer.parentNode.removeChild(_pinOptions.spacer);
2342					if (!_pin.parentNode.hasAttribute(PIN_SPACER_ATTRIBUTE)) { // if it's the last pin for this element -> restore inline styles
2343						// TODO: only correctly set for first pin (when cascading) - how to fix?
2344						_util.css(_pin, _pin.___origStyle);
2345						delete _pin.___origStyle;
2346					}
2347				}
2348				window.removeEventListener('scroll', updatePinInContainer);
2349				window.removeEventListener('resize', updatePinInContainer);
2350				window.removeEventListener('resize', updateRelativePinSpacer);
2351				_pin.removeEventListener("mousewheel", onMousewheelOverPin);
2352				_pin.removeEventListener("DOMMouseScroll", onMousewheelOverPin);
2353				_pin = undefined;
2354				log(3, "removed pin (reset: " + (reset ? "true" : "false") + ")");
2355			}
2356			return Scene;
2357		};
2358
2359
2360		var
2361			_cssClasses,
2362			_cssClassElems = [];
2363
2364		Scene
2365			.on("destroy.internal", function (e) {
2366				Scene.removeClassToggle(e.reset);
2367			});
2368		/**
2369		 * Define a css class modification while the scene is active.  
2370		 * When the scene triggers the classes will be added to the supplied element and removed, when the scene is over.
2371		 * If the scene duration is 0 the classes will only be removed if the user scrolls back past the start position.
2372		 * @method ScrollMagic.Scene#setClassToggle
2373		 * @example
2374		 * // add the class 'myclass' to the element with the id 'my-elem' for the duration of the scene
2375		 * scene.setClassToggle("#my-elem", "myclass");
2376		 *
2377		 * // add multiple classes to multiple elements defined by the selector '.classChange'
2378		 * scene.setClassToggle(".classChange", "class1 class2 class3");
2379		 *
2380		 * @param {(string|object)} element - A Selector targeting one or more elements or a DOM object that is supposed to be modified.
2381		 * @param {string} classes - One or more Classnames (separated by space) that should be added to the element during the scene.
2382		 *
2383		 * @returns {Scene} Parent object for chaining.
2384		 */
2385		this.setClassToggle = function (element, classes) {
2386			var elems = _util.get.elements(element);
2387			if (elems.length === 0 || !_util.type.String(classes)) {
2388				log(1, "ERROR calling method 'setClassToggle()': Invalid " + (elems.length === 0 ? "element" : "classes") + " supplied.");
2389				return Scene;
2390			}
2391			if (_cssClassElems.length > 0) {
2392				// remove old ones
2393				Scene.removeClassToggle();
2394			}
2395			_cssClasses = classes;
2396			_cssClassElems = elems;
2397			Scene.on("enter.internal_class leave.internal_class", function (e) {
2398				var toggle = e.type === "enter" ? _util.addClass : _util.removeClass;
2399				_cssClassElems.forEach(function (elem, key) {
2400					toggle(elem, _cssClasses);
2401				});
2402			});
2403			return Scene;
2404		};
2405
2406		/**
2407		 * Remove the class binding from the scene.
2408		 * @method ScrollMagic.Scene#removeClassToggle
2409		 * @example
2410		 * // remove class binding from the scene without reset
2411		 * scene.removeClassToggle();
2412		 *
2413		 * // remove class binding and remove the changes it caused
2414		 * scene.removeClassToggle(true);
2415		 *
2416		 * @param {boolean} [reset=false] - If `false` and the classes are currently active, they will remain on the element. If `true` they will be removed.
2417		 * @returns {Scene} Parent object for chaining.
2418		 */
2419		this.removeClassToggle = function (reset) {
2420			if (reset) {
2421				_cssClassElems.forEach(function (elem, key) {
2422					_util.removeClass(elem, _cssClasses);
2423				});
2424			}
2425			Scene.off("start.internal_class end.internal_class");
2426			_cssClasses = undefined;
2427			_cssClassElems = [];
2428			return Scene;
2429		};
2430
2431		// INIT
2432		construct();
2433		return Scene;
2434	};
2435
2436	// store pagewide scene options
2437	var SCENE_OPTIONS = {
2438		defaults: {
2439			duration: 0,
2440			offset: 0,
2441			triggerElement: undefined,
2442			triggerHook: 0.5,
2443			reverse: true,
2444			loglevel: 2
2445		},
2446		validate: {
2447			offset: function (val) {
2448				val = parseFloat(val);
2449				if (!_util.type.Number(val)) {
2450					throw ["Invalid value for option \"offset\":", val];
2451				}
2452				return val;
2453			},
2454			triggerElement: function (val) {
2455				val = val || undefined;
2456				if (val) {
2457					var elem = _util.get.elements(val)[0];
2458					if (elem && elem.parentNode) {
2459						val = elem;
2460					} else {
2461						throw ["Element defined in option \"triggerElement\" was not found:", val];
2462					}
2463				}
2464				return val;
2465			},
2466			triggerHook: function (val) {
2467				var translate = {
2468					"onCenter": 0.5,
2469					"onEnter": 1,
2470					"onLeave": 0
2471				};
2472				if (_util.type.Number(val)) {
2473					val = Math.max(0, Math.min(parseFloat(val), 1)); //  make sure its betweeen 0 and 1
2474				} else if (val in translate) {
2475					val = translate[val];
2476				} else {
2477					throw ["Invalid value for option \"triggerHook\": ", val];
2478				}
2479				return val;
2480			},
2481			reverse: function (val) {
2482				return !!val; // force boolean
2483			},
2484			loglevel: function (val) {
2485				val = parseInt(val);
2486				if (!_util.type.Number(val) || val < 0 || val > 3) {
2487					throw ["Invalid value for option \"loglevel\":", val];
2488				}
2489				return val;
2490			}
2491		}, // holder for  validation methods. duration validation is handled in 'getters-setters.js'
2492		shifts: ["duration", "offset", "triggerHook"], // list of options that trigger a `shift` event
2493	};
2494	/*
2495	 * method used to add an option to ScrollMagic Scenes.
2496	 * TODO: DOC (private for dev)
2497	 */
2498	ScrollMagic.Scene.addOption = function (name, defaultValue, validationCallback, shifts) {
2499		if (!(name in SCENE_OPTIONS.defaults)) {
2500			SCENE_OPTIONS.defaults[name] = defaultValue;
2501			SCENE_OPTIONS.validate[name] = validationCallback;
2502			if (shifts) {
2503				SCENE_OPTIONS.shifts.push(name);
2504			}
2505		} else {
2506			ScrollMagic._util.log(1, "[static] ScrollMagic.Scene -> Cannot add Scene option '" + name + "', because it already exists.");
2507		}
2508	};
2509	// instance extension function for plugins
2510	// TODO: DOC (private for dev)
2511	ScrollMagic.Scene.extend = function (extension) {
2512		var oldClass = this;
2513		ScrollMagic.Scene = function () {
2514			oldClass.apply(this, arguments);
2515			this.$super = _util.extend({}, this); // copy parent state
2516			return extension.apply(this, arguments) || this;
2517		};
2518		_util.extend(ScrollMagic.Scene, oldClass); // copy properties
2519		ScrollMagic.Scene.prototype = oldClass.prototype; // copy prototype
2520		ScrollMagic.Scene.prototype.constructor = ScrollMagic.Scene; // restore constructor
2521	};
2522
2523
2524
2525	/**
2526	 * TODO: DOCS (private for dev)
2527	 * @class
2528	 * @private
2529	 */
2530
2531	ScrollMagic.Event = function (type, namespace, target, vars) {
2532		vars = vars || {};
2533		for (var key in vars) {
2534			this[key] = vars[key];
2535		}
2536		this.type = type;
2537		this.target = this.currentTarget = target;
2538		this.namespace = namespace || '';
2539		this.timeStamp = this.timestamp = Date.now();
2540		return this;
2541	};
2542
2543	/*
2544	 * TODO: DOCS (private for dev)
2545	 */
2546
2547	var _util = ScrollMagic._util = (function (window) {
2548		var U = {},
2549			i;
2550
2551		/**
2552		 * ------------------------------
2553		 * internal helpers
2554		 * ------------------------------
2555		 */
2556
2557		// parse float and fall back to 0.
2558		var floatval = function (number) {
2559			return parseFloat(number) || 0;
2560		};
2561		// get current style IE safe (otherwise IE would return calculated values for 'auto')
2562		var _getComputedStyle = function (elem) {
2563			return elem.currentStyle ? elem.currentStyle : window.getComputedStyle(elem);
2564		};
2565
2566		// get element dimension (width or height)
2567		var _dimension = function (which, elem, outer, includeMargin) {
2568			elem = (elem === document) ? window : elem;
2569			if (elem === window) {
2570				includeMargin = false;
2571			} else if (!_type.DomElement(elem)) {
2572				return 0;
2573			}
2574			which = which.charAt(0).toUpperCase() + which.substr(1).toLowerCase();
2575			var dimension = (outer ? elem['offset' + which] || elem['outer' + which] : elem['client' + which] || elem['inner' + which]) || 0;
2576			if (outer && includeMargin) {
2577				var style = _getComputedStyle(elem);
2578				dimension += which === 'Height' ? floatval(style.marginTop) + floatval(style.marginBottom) : floatval(style.marginLeft) + floatval(style.marginRight);
2579			}
2580			return dimension;
2581		};
2582		// converts 'margin-top' into 'marginTop'
2583		var _camelCase = function (str) {
2584			return str.replace(/^[^a-z]+([a-z])/g, '$1').replace(/-([a-z])/g, function (g) {
2585				return g[1].toUpperCase();
2586			});
2587		};
2588
2589		/**
2590		 * ------------------------------
2591		 * external helpers
2592		 * ------------------------------
2593		 */
2594
2595		// extend obj – same as jQuery.extend({}, objA, objB)
2596		U.extend = function (obj) {
2597			obj = obj || {};
2598			for (i = 1; i < arguments.length; i++) {
2599				if (!arguments[i]) {
2600					continue;
2601				}
2602				for (var key in arguments[i]) {
2603					if (arguments[i].hasOwnProperty(key)) {
2604						obj[key] = arguments[i][key];
2605					}
2606				}
2607			}
2608			return obj;
2609		};
2610
2611		// check if a css display type results in margin-collapse or not
2612		U.isMarginCollapseType = function (str) {
2613			return ["block", "flex", "list-item", "table", "-webkit-box"].indexOf(str) > -1;
2614		};
2615
2616		// implementation of requestAnimationFrame
2617		// based on https://gist.github.com/paulirish/1579671
2618		var
2619			lastTime = 0,
2620			vendors = ['ms', 'moz', 'webkit', 'o'];
2621		var _requestAnimationFrame = window.requestAnimationFrame;
2622		var _cancelAnimationFrame = window.cancelAnimationFrame;
2623		// try vendor prefixes if the above doesn't work
2624		for (i = 0; !_requestAnimationFrame && i < vendors.length; ++i) {
2625			_requestAnimationFrame = window[vendors[i] + 'RequestAnimationFrame'];
2626			_cancelAnimationFrame = window[vendors[i] + 'CancelAnimationFrame'] || window[vendors[i] + 'CancelRequestAnimationFrame'];
2627		}
2628
2629		// fallbacks
2630		if (!_requestAnimationFrame) {
2631			_requestAnimationFrame = function (callback) {
2632				var
2633					currTime = new Date().getTime(),
2634					timeToCall = Math.max(0, 16 - (currTime - lastTime)),
2635					id = window.setTimeout(function () {
2636						callback(currTime + timeToCall);
2637					}, timeToCall);
2638				lastTime = currTime + timeToCall;
2639				return id;
2640			};
2641		}
2642		if (!_cancelAnimationFrame) {
2643			_cancelAnimationFrame = function (id) {
2644				window.clearTimeout(id);
2645			};
2646		}
2647		U.rAF = _requestAnimationFrame.bind(window);
2648		U.cAF = _cancelAnimationFrame.bind(window);
2649
2650		var
2651			loglevels = ["error", "warn", "log"],
2652			console = window.console || {};
2653
2654		console.log = console.log || function () {}; // no console log, well - do nothing then...
2655		// make sure methods for all levels exist.
2656		for (i = 0; i < loglevels.length; i++) {
2657			var method = loglevels[i];
2658			if (!console[method]) {
2659				console[method] = console.log; // prefer .log over nothing
2660			}
2661		}
2662		U.log = function (loglevel) {
2663			if (loglevel > loglevels.length || loglevel <= 0) loglevel = loglevels.length;
2664			var now = new Date(),
2665				time = ("0" + now.getHours()).slice(-2) + ":" + ("0" + now.getMinutes()).slice(-2) + ":" + ("0" + now.getSeconds()).slice(-2) + ":" + ("00" + now.getMilliseconds()).slice(-3),
2666				method = loglevels[loglevel - 1],
2667				args = Array.prototype.splice.call(arguments, 1),
2668				func = Function.prototype.bind.call(console[method], console);
2669			args.unshift(time);
2670			func.apply(console, args);
2671		};
2672
2673		/**
2674		 * ------------------------------
2675		 * type testing
2676		 * ------------------------------
2677		 */
2678
2679		var _type = U.type = function (v) {
2680			return Object.prototype.toString.call(v).replace(/^\[object (.+)\]$/, "$1").toLowerCase();
2681		};
2682		_type.String = function (v) {
2683			return _type(v) === 'string';
2684		};
2685		_type.Function = function (v) {
2686			return _type(v) === 'function';
2687		};
2688		_type.Array = function (v) {
2689			return Array.isArray(v);
2690		};
2691		_type.Number = function (v) {
2692			return !_type.Array(v) && (v - parseFloat(v) + 1) >= 0;
2693		};
2694		_type.DomElement = function (o) {
2695			return (
2696				typeof HTMLElement === "object" || typeof HTMLElement === "function" ? o instanceof HTMLElement || o instanceof SVGElement : //DOM2
2697				o && typeof o === "object" && o !== null && o.nodeType === 1 && typeof o.nodeName === "string"
2698			);
2699		};
2700
2701		/**
2702		 * ------------------------------
2703		 * DOM Element info
2704		 * ------------------------------
2705		 */
2706		// always returns a list of matching DOM elements, from a selector, a DOM element or an list of elements or even an array of selectors
2707		var _get = U.get = {};
2708		_get.elements = function (selector) {
2709			var arr = [];
2710			if (_type.String(selector)) {
2711				try {
2712					selector = document.querySelectorAll(selector);
2713				} catch (e) { // invalid selector
2714					return arr;
2715				}
2716			}
2717			if (_type(selector) === 'nodelist' || _type.Array(selector) || selector instanceof NodeList) {
2718				for (var i = 0, ref = arr.length = selector.length; i < ref; i++) { // list of elements
2719					var elem = selector[i];
2720					arr[i] = _type.DomElement(elem) ? elem : _get.elements(elem); // if not an element, try to resolve recursively
2721				}
2722			} else if (_type.DomElement(selector) || selector === document || selector === window) {
2723				arr = [selector]; // only the element
2724			}
2725			return arr;
2726		};
2727		// get scroll top value
2728		_get.scrollTop = function (elem) {
2729			return (elem && typeof elem.scrollTop === 'number') ? elem.scrollTop : window.pageYOffset || 0;
2730		};
2731		// get scroll left value
2732		_get.scrollLeft = function (elem) {
2733			return (elem && typeof elem.scrollLeft === 'number') ? elem.scrollLeft : window.pageXOffset || 0;
2734		};
2735		// get element height
2736		_get.width = function (elem, outer, includeMargin) {
2737			return _dimension('width', elem, outer, includeMargin);
2738		};
2739		// get element width
2740		_get.height = function (elem, outer, includeMargin) {
2741			return _dimension('height', elem, outer, includeMargin);
2742		};
2743
2744		// get element position (optionally relative to viewport)
2745		_get.offset = function (elem, relativeToViewport) {
2746			var offset = {
2747				top: 0,
2748				left: 0
2749			};
2750			if (elem && elem.getBoundingClientRect) { // check if available
2751				var rect = elem.getBoundingClientRect();
2752				offset.top = rect.top;
2753				offset.left = rect.left;
2754				if (!relativeToViewport) { // clientRect is by default relative to viewport...
2755					offset.top += _get.scrollTop();
2756					offset.left += _get.scrollLeft();
2757				}
2758			}
2759			return offset;
2760		};
2761
2762		/**
2763		 * ------------------------------
2764		 * DOM Element manipulation
2765		 * ------------------------------
2766		 */
2767
2768		U.addClass = function (elem, classname) {
2769			if (classname) {
2770				if (elem.classList)
2771					elem.classList.add(classname);
2772				else
2773					elem.className += ' ' + classname;
2774			}
2775		};
2776		U.removeClass = function (elem, classname) {
2777			if (classname) {
2778				if (elem.classList)
2779					elem.classList.remove(classname);
2780				else
2781					elem.className = elem.className.replace(new RegExp('(^|\\b)' + classname.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
2782			}
2783		};
2784		// if options is string -> returns css value
2785		// if options is array -> returns object with css value pairs
2786		// if options is object -> set new css values
2787		U.css = function (elem, options) {
2788			if (_type.String(options)) {
2789				return _getComputedStyle(elem)[_camelCase(options)];
2790			} else if (_type.Array(options)) {
2791				var
2792					obj = {},
2793					style = _getComputedStyle(elem);
2794				options.forEach(function (option, key) {
2795					obj[option] = style[_camelCase(option)];
2796				});
2797				return obj;
2798			} else {
2799				for (var option in options) {
2800					var val = options[option];
2801					if (val == parseFloat(val)) { // assume pixel for seemingly numerical values
2802						val += 'px';
2803					}
2804					elem.style[_camelCase(option)] = val;
2805				}
2806			}
2807		};
2808
2809		return U;
2810	}(window || {}));
2811
2812
2813	ScrollMagic.Scene.prototype.addIndicators = function () {
2814		ScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling addIndicators() due to missing Plugin \'debug.addIndicators\'. Please make sure to include plugins/debug.addIndicators.js');
2815		return this;
2816	}
2817	ScrollMagic.Scene.prototype.removeIndicators = function () {
2818		ScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling removeIndicators() due to missing Plugin \'debug.addIndicators\'. Please make sure to include plugins/debug.addIndicators.js');
2819		return this;
2820	}
2821	ScrollMagic.Scene.prototype.setTween = function () {
2822		ScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling setTween() due to missing Plugin \'animation.gsap\'. Please make sure to include plugins/animation.gsap.js');
2823		return this;
2824	}
2825	ScrollMagic.Scene.prototype.removeTween = function () {
2826		ScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling removeTween() due to missing Plugin \'animation.gsap\'. Please make sure to include plugins/animation.gsap.js');
2827		return this;
2828	}
2829	ScrollMagic.Scene.prototype.setVelocity = function () {
2830		ScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling setVelocity() due to missing Plugin \'animation.velocity\'. Please make sure to include plugins/animation.velocity.js');
2831		return this;
2832	}
2833	ScrollMagic.Scene.prototype.removeVelocity = function () {
2834		ScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling removeVelocity() due to missing Plugin \'animation.velocity\'. Please make sure to include plugins/animation.velocity.js');
2835		return this;
2836	}
2837
2838	return ScrollMagic;
2839}));
2840/*!
2841 * ScrollMagic v2.0.7 (2019-05-07)
2842 * The javascript library for magical scroll interactions.
2843 * (c) 2019 Jan Paepke (@janpaepke)
2844 * Project Website: http://scrollmagic.io
2845 * 
2846 * @version 2.0.7
2847 * @license Dual licensed under MIT license and GPL.
2848 * @author Jan Paepke - [email protected]
2849 *
2850 * @file Debug Extension for ScrollMagic.
2851 */
2852/**
2853 * This plugin was formerly known as the ScrollMagic debug extension.
2854 *
2855 * It enables you to add visual indicators to your page, to be able to see exactly when a scene is triggered.
2856 *
2857 * To have access to this extension, please include `plugins/debug.addIndicators.js`.
2858 * @mixin debug.addIndicators
2859 */
2860(function (root, factory) {
2861	if (typeof define === 'function' && define.amd) {
2862		// AMD. Register as an anonymous module.
2863		define(['ScrollMagic'], factory);
2864	} else if (typeof exports === 'object') {
2865		// CommonJS
2866		factory(require('scrollmagic'));
2867	} else {
2868		// no browser global export needed, just execute
2869		factory(root.ScrollMagic || (root.jQuery && root.jQuery.ScrollMagic));
2870	}
2871}(this, function (ScrollMagic) {
2872	"use strict";
2873	var NAMESPACE = "debug.addIndicators";
2874
2875	var
2876		console = window.console || {},
2877		err = Function.prototype.bind.call(console.error || console.log || function () {}, console);
2878	if (!ScrollMagic) {
2879		err("(" + NAMESPACE + ") -> ERROR: The ScrollMagic main module could not be found. Please make sure it's loaded before this plugin or use an asynchronous loader like requirejs.");
2880	}
2881
2882	// plugin settings
2883	var
2884		FONT_SIZE = "0.85em",
2885		ZINDEX = "9999",
2886		EDGE_OFFSET = 15; // minimum edge distance, added to indentation
2887
2888	// overall vars
2889	var
2890		_util = ScrollMagic._util,
2891		_autoindex = 0;
2892
2893
2894
2895	ScrollMagic.Scene.extend(function () {
2896		var
2897			Scene = this,
2898			_indicator;
2899
2900		var log = function () {
2901			if (Scene._log) { // not available, when main source minified
2902				Array.prototype.splice.call(arguments, 1, 0, "(" + NAMESPACE + ")", "->");
2903				Scene._log.apply(this, arguments);
2904			}
2905		};
2906
2907		/**
2908		 * Add visual indicators for a ScrollMagic.Scene.  
2909		 * @memberof! debug.addIndicators#
2910		 *
2911		 * @example
2912		 * // add basic indicators
2913		 * scene.addIndicators()
2914		 *
2915		 * // passing options
2916		 * scene.addIndicators({name: "pin scene", colorEnd: "#FFFFFF"});
2917		 *
2918		 * @param {object}
2918 [options] - An object containing one or more options for the indicators.
2919		 * @param {(string|object)} [options.parent] - A selector, DOM Object or a jQuery object that the indicators should be added to.  
2920		 														 														 If undefined, the controller's container will be used.
2921		 * @param {number} [options.name=""] - This string will be displayed at the start and end indicators of the scene for identification purposes. If no name is supplied an automatic index will be used.
2922		 * @param {number} [options.indent=0] - Additional position offset for the indicators (useful, when having multiple scenes starting at the same position).
2923		 * @param {string} [options.colorStart=green] - CSS color definition for the start indicator.
2924		 * @param {string} [options.colorEnd=red] - CSS color definition for the end indicator.
2925		 * @param {string} [options.colorTrigger=blue] - CSS color definition for the trigger indicator.
2926		 */
2927		Scene.addIndicators = function (options) {
2928			if (!_indicator) {
2929				var
2930					DEFAULT_OPTIONS = {
2931						name: "",
2932						indent: 0,
2933						parent: undefined,
2934						colorStart: "green",
2935						colorEnd: "red",
2936						colorTrigger: "blue",
2937					};
2938
2939				options = _util.extend({}, DEFAULT_OPTIONS, options);
2940
2941				_autoindex++;
2942				_indicator = new Indicator(Scene, options);
2943
2944				Scene.on("add.plugin_addIndicators", _indicator.add);
2945				Scene.on("remove.plugin_addIndicators", _indicator.remove);
2946				Scene.on("destroy.plugin_addIndicators", Scene.removeIndicators);
2947
2948				// it the scene already has a controller we can start right away.
2949				if (Scene.controller()) {
2950					_indicator.add();
2951				}
2952			}
2953			return Scene;
2954		};
2955
2956		/**
2957		 * Removes visual indicators from a ScrollMagic.Scene.
2958		 * @memberof! debug.addIndicators#
2959		 *
2960		 * @example
2961		 * // remove previously added indicators
2962		 * scene.removeIndicators()
2963		 *
2964		 */
2965		Scene.removeIndicators = function () {
2966			if (_indicator) {
2967				_indicator.remove();
2968				this.off("*.plugin_addIndicators");
2969				_indicator = undefined;
2970			}
2971			return Scene;
2972		};
2973
2974	});
2975
2976
2977	/*
2978	 * ----------------------------------------------------------------
2979	 * Extension for controller to store and update related indicators
2980	 * ----------------------------------------------------------------
2981	 */
2982	// add option to globally auto-add indicators to scenes
2983	/**
2984	 * Every ScrollMagic.Controller instance now accepts an additional option.  
2985	 * See {@link ScrollMagic.Controller} for a complete list of the standard options.
2986	 * @memberof! debug.addIndicators#
2987	 * @method new ScrollMagic.Controller(options)
2988	 * @example
2989	 * // make a controller and add indicators to all scenes attached
2990	 * var controller = new ScrollMagic.Controller({addIndicators: true});
2991	 * // this scene will automatically have indicators added to it
2992	 * new ScrollMagic.Scene()
2993	 *                .addTo(controller);
2994	 *
2995	 * @param {object} [options] - Options for the Controller.
2996	 * @param {boolean} [options.addIndicators=false] - If set to `true` every scene that is added to the controller will automatically get indicators added to it.
2997	 */
2998	ScrollMagic.Controller.addOption("addIndicators", false);
2999	// extend Controller
3000	ScrollMagic.Controller.extend(function () {
3001		var
3002			Controller = this,
3003			_info = Controller.info(),
3004			_container = _info.container,
3005			_isDocument = _info.isDocument,
3006			_vertical = _info.vertical,
3007			_indicators = { // container for all indicators and methods
3008				groups: []
3009			};
3010
3011		var log = function () {
3012			if (Controller._log) { // not available, when main source minified
3013				Array.prototype.splice.call(arguments, 1, 0, "(" + NAMESPACE + ")", "->");
3014				Controller._log.apply(this, arguments);
3015			}
3016		};
3017		if (Controller._indicators) {
3018			log(2, "WARNING: Scene already has a property '_indicators', which will be overwritten by plugin.");
3019		}
3020
3021		// add indicators container
3022		this._indicators = _indicators;
3023		/*
3024			needed updates:
3025			+++++++++++++++
3026			start/end position on scene shift (handled in Indicator class)
3027			trigger parameters on triggerHook value change (handled in Indicator class)
3028			bounds position on container scroll or resize (to keep alignment to bottom/right)
3029			trigger position on container resize, window resize (if container isn't document) and window scroll (if container isn't document)
3030		*/
3031
3032		// event handler for when associated bounds markers need to be repositioned
3033		var handleBoundsPositionChange = function () {
3034			_indicators.updateBoundsPositions();
3035		};
3036
3037		// event handler for when associated trigger groups need to be repositioned
3038		var handleTriggerPositionChange = function () {
3039			_indicators.updateTriggerGroupPositions();
3040		};
3041
3042		_container.addEventListener("resize", handleTriggerPositionChange);
3043		if (!_isDocument) {
3044			window.addEventListener("resize", handleTriggerPositionChange);
3045			window.addEventListener("scroll", handleTriggerPositionChange);
3046		}
3047		// update all related bounds containers
3048		_container.addEventListener("resize", handleBoundsPositionChange);
3049		_container.addEventListener("scroll", handleBoundsPositionChange);
3050
3051
3052		// updates the position of the bounds container to aligned to the right for vertical containers and to the bottom for horizontal
3053		this._indicators.updateBoundsPositions = function (specificIndicator) {
3054			var // constant for all bounds
3055				groups = specificIndicator ? [_util.extend({}, specificIndicator.triggerGroup, {
3056					members: [specificIndicator]
3057				})] : // create a group with only one element
3058				_indicators.groups, // use all
3059				g = groups.length,
3060				css = {},
3061				paramPos = _vertical ? "left" : "top",
3062				paramDimension = _vertical ? "width" : "height",
3063				edge = _vertical ?
3064				_util.get.scrollLeft(_container) + _util.get.width(_container) - EDGE_OFFSET :
3065				_util.get.scrollTop(_container) + _util.get.height(_container) - EDGE_OFFSET,
3066				b, triggerSize, group;
3067			while (g--) { // group loop
3068				group = groups[g];
3069				b = group.members.length;
3070				triggerSize = _util.get[paramDimension](group.element.firstChild);
3071				while (b--) { // indicators loop
3072					css[paramPos] = edge - triggerSize;
3073					_util.css(group.members[b].bounds, css);
3074				}
3075			}
3076		};
3077
3078		// updates the positions of all trigger groups attached to a controller or a specific one, if provided
3079		this._indicators.updateTriggerGroupPositions = function (specificGroup) {
3080			var // constant vars
3081				groups = specificGroup ? [specificGroup] : _indicators.groups,
3082				i = groups.length,
3083				container = _isDocument ? document.body : _container,
3084				containerOffset = _isDocument ? {
3085					top: 0,
3086					left: 0
3087				} : _util.get.offset(container, true),
3088				edge = _vertical ?
3089				_util.get.width(_container) - EDGE_OFFSET :
3090				_util.get.height(_container) - EDGE_OFFSET,
3091				paramDimension = _vertical ? "width" : "height",
3092				paramTransform = _vertical ? "Y" : "X";
3093			var // changing vars
3094				group,
3095				elem,
3096				pos,
3097				elemSize,
3098				transform;
3099			while (i--) {
3100				group = groups[i];
3101				elem = group.element;
3102				pos = group.triggerHook * Controller.info("size");
3103				elemSize = _util.get[paramDimension](elem.firstChild.firstChild);
3104				transform = pos > elemSize ? "translate" + paramTransform + "(-100%)" : "";
3105
3106				_util.css(elem, {
3107					top: containerOffset.top + (_vertical ? pos : edge - group.members[0].options.indent),
3108					left: containerOffset.left + (_vertical ? edge - group.members[0].options.indent : pos)
3109				});
3110				_util.css(elem.firstChild.firstChild, {
3111					"-ms-transform": transform,
3112					"-webkit-transform": transform,
3113					"transform": transform
3114				});
3115			}
3116		};
3117
3118		// updates the label for the group to contain the name, if it only has one member
3119		this._indicators.updateTriggerGroupLabel = function (group) {
3120			var
3121				text = "trigger" + (group.members.length > 1 ? "" : " " + group.members[0].options.name),
3122				elem = group.element.firstChild.firstChild,
3123				doUpdate = elem.textContent !== text;
3124			if (doUpdate) {
3125				elem.textContent = text;
3126				if (_vertical) { // bounds position is dependent on text length, so update
3127					_indicators.updateBoundsPositions();
3128				}
3129			}
3130		};
3131
3132		// add indicators if global option is set
3133		this.addScene = function (newScene) {
3134
3135			if (this._options.addIndicators && newScene instanceof ScrollMagic.Scene && newScene.controller() === Controller) {
3136				newScene.addIndicators();
3137			}
3138			// call original destroy method
3139			this.$super.addScene.apply(this, arguments);
3140		};
3141
3142		// remove all previously set listeners on destroy
3143		this.destroy = function () {
3144			_container.removeEventListener("resize", handleTriggerPositionChange);
3145			if (!_isDocument) {
3146				window.removeEventListener("resize", handleTriggerPositionChange);
3147				window.removeEventListener("scroll", handleTriggerPositionChange);
3148			}
3149			_container.removeEventListener("resize", handleBoundsPositionChange);
3150			_container.removeEventListener("scroll", handleBoundsPositionChange);
3151			// call original destroy method
3152			this.$super.destroy.apply(this, arguments);
3153		};
3154		return Controller;
3155
3156	});
3157
3158	/*
3159	 * ----------------------------------------------------------------
3160	 * Internal class for the construction of Indicators
3161	 * ----------------------------------------------------------------
3162	 */
3163	var Indicator = function (Scene, options) {
3164		var
3165			Indicator = this,
3166			_elemBounds = TPL.bounds(),
3167			_elemStart = TPL.start(options.colorStart),
3168			_elemEnd = TPL.end(options.colorEnd),
3169			_boundsContainer = options.parent && _util.get.elements(options.parent)[0],
3170			_vertical,
3171			_ctrl;
3172
3173		var log = function () {
3174			if (Scene._log) { // not available, when main source minified
3175				Array.prototype.splice.call(arguments, 1, 0, "(" + NAMESPACE + ")", "->");
3176				Scene._log.apply(this, arguments);
3177			}
3178		};
3179
3180		options.name = options.name || _autoindex;
3181
3182		// prepare bounds elements
3183		_elemStart.firstChild.textContent += " " + options.name;
3184		_elemEnd.textContent += " " + options.name;
3185		_elemBounds.appendChild(_elemStart);
3186		_elemBounds.appendChild(_elemEnd);
3187
3188		// set public variables
3189		Indicator.options = options;
3190		Indicator.bounds = _elemBounds;
3191		// will be set later
3192		Indicator.triggerGroup = undefined;
3193
3194		// add indicators to DOM
3195		this.add = function () {
3196			_ctrl = Scene.controller();
3197			_vertical = _ctrl.info("vertical");
3198
3199			var isDocument = _ctrl.info("isDocument");
3200
3201			if (!_boundsContainer) {
3202				// no parent supplied or doesnt exist
3203				_boundsContainer = isDocument ? document.body : _ctrl.info("container"); // check if window/document (then use body)
3204			}
3205			if (!isDocument && _util.css(_boundsContainer, "position") === 'static') {
3206				// position mode needed for correct positioning of indicators
3207				_util.css(_boundsContainer, {
3208					position: "relative"
3209				});
3210			}
3211
3212			// add listeners for updates
3213			Scene.on("change.plugin_addIndicators", handleTriggerParamsChange);
3214			Scene.on("shift.plugin_addIndicators", handleBoundsParamsChange);
3215
3216			// updates trigger & bounds (will add elements if needed)
3217			updateTriggerGroup();
3218			updateBounds();
3219
3220			setTimeout(function () { // do after all execution is finished otherwise sometimes size calculations are off
3221				_ctrl._indicators.updateBoundsPositions(Indicator);
3222			}, 0);
3223
3224			log(3, "added indicators");
3225		};
3226
3227		// remove indicators from DOM
3228		this.remove = function () {
3229			if (Indicator.triggerGroup) { // if not set there's nothing to remove
3230				Scene.off("change.plugin_addIndicators", handleTriggerParamsChange);
3231				Scene.off("shift.plugin_addIndicators", handleBoundsParamsChange);
3232
3233				if (Indicator.triggerGroup.members.length > 1) {
3234					// just remove from memberlist of old group
3235					var group = Indicator.triggerGroup;
3236					group.members.splice(group.members.indexOf(Indicator), 1);
3237					_ctrl._indicators.updateTriggerGroupLabel(group);
3238					_ctrl._indicators.updateTriggerGroupPositions(group);
3239					Indicator.triggerGroup = undefined;
3240				} else {
3241					// remove complete group
3242					removeTriggerGroup();
3243				}
3244				removeBounds();
3245
3246				log(3, "removed indicators");
3247			}
3248		};
3249
3250		/*
3251		 * ----------------------------------------------------------------
3252		 * internal Event Handlers
3253		 * ----------------------------------------------------------------
3254		 */
3255
3256		// event handler for when bounds params change
3257		var handleBoundsParamsChange = function () {
3258			updateBounds();
3259		};
3260
3261		// event handler for when trigger params change
3262		var handleTriggerParamsChange = function (e) {
3263			if (e.what === "triggerHook") {
3264				updateTriggerGroup();
3265			}
3266		};
3267
3268		/*
3269		 * ----------------------------------------------------------------
3270		 * Bounds (start / stop) management
3271		 * ----------------------------------------------------------------
3272		 */
3273
3274		// adds an new bounds elements to the array and to the DOM
3275		var addBounds = function () {
3276			var v = _ctrl.info("vertical");
3277			// apply stuff we didn't know before...
3278			_util.css(_elemStart.firstChild, {
3279				"border-bottom-width": v ? 1 : 0,
3280				"border-right-width": v ? 0 : 1,
3281				"bottom": v ? -1 : options.indent,
3282				"right": v ? options.indent : -1,
3283				"padding": v ? "0 8px" : "2px 4px",
3284			});
3285			_util.css(_elemEnd, {
3286				"border-top-width": v ? 1 : 0,
3287				"border-left-width": v ? 0 : 1,
3288				"top": v ? "100%" : "",
3289				"right": v ? options.indent : "",
3290				"bottom": v ? "" : options.indent,
3291				"left": v ? "" : "100%",
3292				"padding": v ? "0 8px" : "2px 4px"
3293			});
3294			// append
3295			_boundsContainer.appendChild(_elemBounds);
3296		};
3297
3298		// remove bounds from list and DOM
3299		var removeBounds = function () {
3300			_elemBounds.parentNode.removeChild(_elemBounds);
3301		};
3302
3303		// update the start and end positions of the scene
3304		var updateBounds = function () {
3305			if (_elemBounds.parentNode !== _boundsContainer) {
3306				addBounds(); // Add Bounds elements (start/end)
3307			}
3308			var css = {};
3309			css[_vertical ? "top" : "left"] = Scene.triggerPosition();
3310			css[_vertical ? "height" : "width"] = Scene.duration();
3311			_util.css(_elemBounds, css);
3312			_util.css(_elemEnd, {
3313				display: Scene.duration() > 0 ? "" : "none"
3314			});
3315		};
3316
3317		/*
3318		 * ----------------------------------------------------------------
3319		 * trigger and trigger group management
3320		 * ----------------------------------------------------------------
3321		 */
3322
3323		// adds an new trigger group to the array and to the DOM
3324		var addTriggerGroup = function () {
3325			var triggerElem = TPL.trigger(options.colorTrigger); // new trigger element
3326			var css = {};
3327			css[_vertical ? "right" : "bottom"] = 0;
3328			css[_vertical ? "border-top-width" : "border-left-width"] = 1;
3329			_util.css(triggerElem.firstChild, css);
3330			_util.css(triggerElem.firstChild.firstChild, {
3331				padding: _vertical ? "0 8px 3px 8px" : "3px 4px"
3332			});
3333			document.body.appendChild(triggerElem); // directly add to body
3334			var newGroup = {
3335				triggerHook: Scene.triggerHook(),
3336				element: triggerElem,
3337				members: [Indicator]
3338			};
3339			_ctrl._indicators.groups.push(newGroup);
3340			Indicator.triggerGroup = newGroup;
3341			// update right away
3342			_ctrl._indicators.updateTriggerGroupLabel(newGroup);
3343			_ctrl._indicators.updateTriggerGroupPositions(newGroup);
3344		};
3345
3346		var removeTriggerGroup = function () {
3347			_ctrl._indicators.groups.splice(_ctrl._indicators.groups.indexOf(Indicator.triggerGroup), 1);
3348			Indicator.triggerGroup.element.parentNode.removeChild(Indicator.triggerGroup.element);
3349			Indicator.triggerGroup = undefined;
3350		};
3351
3352		// updates the trigger group -> either join existing or add new one
3353		/*	
3354		 * Logic:
3355		 * 1 if a trigger group exist, check if it's in sync with Scene settings – if so, nothing else needs to happen
3356		 * 2 try to find an existing one that matches Scene parameters
3357		 * 	 2.1 If a match is found check if already assigned to an existing group
3358		 *			 If so:
3359		 *       A: it was the last member of existing group -> kill whole group
3360		 *       B: the existing group has other members -> just remove from member list
3361		 *	 2.2 Assign to matching group
3362		 * 3 if no new match could be found, check if assigned to existing group
3363		 *   A: yes, and it's the only member -> just update parameters and positions and keep using this group
3364		 *   B: yes but there are other members -> remove from member list and create a new one
3365		 *   C: no, so create a new one
3366		 */
3367		var updateTriggerGroup = function () {
3368			var
3369				triggerHook = Scene.triggerHook(),
3370				closeEnough = 0.0001;
3371
3372			// Have a group, check if it still matches
3373			if (Indicator.triggerGroup) {
3374				if (Math.abs(Indicator.triggerGroup.triggerHook - triggerHook) < closeEnough) {
3375					// _util.log(0, "trigger", options.name, "->", "no need to change, still in sync");
3376					return; // all good
3377				}
3378			}
3379			// Don't have a group, check if a matching one exists
3380			// _util.log(0, "trigger", options.name, "->", "out of sync!");
3381			var
3382				groups = _ctrl._indicators.groups,
3383				group,
3384				i = groups.length;
3385			while (i--) {
3386				group = groups[i];
3387				if (Math.abs(group.triggerHook - triggerHook) < closeEnough) {
3388					// found a match!
3389					// _util.log(0, "trigger", options.name, "->", "found match");
3390					if (Indicator.triggerGroup) { // do I have an old group that is out of sync?
3391						if (Indicator.triggerGroup.members.length === 1) { // is it the only remaining group?
3392							// _util.log(0, "trigger", options.name, "->", "kill");
3393							// was the last member, remove the whole group
3394							removeTriggerGroup();
3395						} else {
3396							Indicator.triggerGroup.members.splice(Indicator.triggerGroup.members.indexOf(Indicator), 1); // just remove from memberlist of old group
3397							_ctrl._indicators.updateTriggerGroupLabel(Indicator.triggerGroup);
3398							_ctrl._indicators.updateTriggerGroupPositions(Indicator.triggerGroup);
3399							// _util.log(0, "trigger", options.name, "->", "removing from previous member list");
3400						}
3401					}
3402					// join new group
3403					group.members.push(Indicator);
3404					Indicator.triggerGroup = group;
3405					_ctrl._indicators.updateTriggerGroupLabel(group);
3406					return;
3407				}
3408			}
3409
3410			// at this point I am obviously out of sync and don't match any other group
3411			if (Indicator.triggerGroup) {
3412				if (Indicator.triggerGroup.members.length === 1) {
3413					// _util.log(0, "trigger", options.name, "->", "updating existing");
3414					// out of sync but i'm the only member => just change and update
3415					Indicator.triggerGroup.triggerHook = triggerHook;
3416					_ctrl._indicators.updateTriggerGroupPositions(Indicator.triggerGroup);
3417					return;
3418				} else {
3419					// _util.log(0, "trigger", options.name, "->", "removing from previous member list");
3420					Indicator.triggerGroup.members.splice(Indicator.triggerGroup.members.indexOf(Indicator), 1); // just remove from memberlist of old group
3421					_ctrl._indicators.updateTriggerGroupLabel(Indicator.triggerGroup);
3422					_ctrl._indicators.updateTriggerGroupPositions(Indicator.triggerGroup);
3423					Indicator.triggerGroup = undefined; // need a brand new group...
3424				}
3425			}
3426			// _util.log(0, "trigger", options.name, "->", "add a new one");
3427			// did not find any match, make new trigger group
3428			addTriggerGroup();
3429		};
3430	};
3431
3432	/*
3433	 * ----------------------------------------------------------------
3434	 * Templates for the indicators
3435	 * ----------------------------------------------------------------
3436	 */
3437	var TPL = {
3438		start: function (color) {
3439			// inner element (for bottom offset -1, while keeping top position 0)
3440			var inner = document.createElement("div");
3441			inner.textContent = "start";
3442			_util.css(inner, {
3443				position: "absolute",
3444				overflow: "visible",
3445				"border-width": 0,
3446				"border-style": "solid",
3447				color: color,
3448				"border-color": color
3449			});
3450			var e = document.createElement('div');
3451			// wrapper
3452			_util.css(e, {
3453				position: "absolute",
3454				overflow: "visible",
3455				width: 0,
3456				height: 0
3457			});
3458			e.appendChild(inner);
3459			return e;
3460		},
3461		end: function (color) {
3462			var e = document.createElement('div');
3463			e.textContent = "end";
3464			_util.css(e, {
3465				position: "absolute",
3466				overflow: "visible",
3467				"border-width": 0,
3468				"border-style": "solid",
3469				color: color,
3470				"border-color": color
3471			});
3472			return e;
3473		},
3474		bounds: function () {
3475			var e = document.createElement('div');
3476			_util.css(e, {
3477				position: "absolute",
3478				overflow: "visible",
3479				"white-space": "nowrap",
3480				"pointer-events": "none",
3481				"font-size": FONT_SIZE
3482			});
3483			e.style.zIndex = ZINDEX;
3484			return e;
3485		},
3486		trigger: function (color) {
3487			// inner to be above or below line but keep position
3488			var inner = document.createElement('div');
3489			inner.textContent = "trigger";
3490			_util.css(inner, {
3491				position: "relative",
3492			});
3493			// inner wrapper for right: 0 and main element has no size
3494			var w = document.createElement('div');
3495			_util.css(w, {
3496				position: "absolute",
3497				overflow: "visible",
3498				"border-width": 0,
3499				"border-style": "solid",
3500				color: color,
3501				"border-color": color
3502			});
3503			w.appendChild(inner);
3504			// wrapper
3505			var e = document.createElement('div');
3506			_util.css(e, {
3507				position: "fixed",
3508				overflow: "visible",
3509				"white-space": "nowrap",
3510				"pointer-events": "none",
3511				"font-size": FONT_SIZE
3512			});
3513			e.style.zIndex = ZINDEX;
3514			e.appendChild(w);
3515			return e;
3516		},
3517	};
3518
3519}));
3520/*!
3521 * GSAP 3.2.0
3522 * https://greensock.com
3523 * 
3524 * @license Copyright 2020, GreenSock. All rights reserved.
3525 * Subject to the terms at https://greensock.com/standard-license or for Club GreenSock members, the agreement issued with that membership.
3526 * @author: Jack Doyle, [email protected]
3527 */
3528
3529!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).window=t.window||{})}(this,function(e){"use strict";function _inheritsLoose(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function n(t){return"string"==typeof t}function o(t){return"function"==typeof t}function p(t){return"number"==typeof t}function q(t){return void 0===t}function r(t){return"object"==typeof t}function s(t){return!1!==t}function t(){return"undefined"!=typeof window}function u(t){return o(t)||n(t)}function K(t){return(l=dt(t,at))&&ne}function L(t,e){return console.warn("Invalid property",t,"set to",e,"Missing plugin? gsap.registerPlugin()")}function M(t,e){return!e&&console.warn(t)}function N(t,e){return t&&(at[t]=e)&&l&&(l[t]=e)||at}function O(){return 0}function Y(t){var e,n,i=t[0];if(r(i)||o(i)||(t=[t]),!(e=(i._gsap||{}).harness)){for(n=pt.length;n--&&!pt[n].targetTest(i););e=pt[n]}for(n=t.length;n--;)t[n]&&(t[n]._gsap||(t[n]._gsap=new Rt(t[n],e)))||t.splice(n,1);return t}function Z(t){return t._gsap||Y(yt(t))[0]._gsap}function $(t,e){var r=t[e];return o(r)?t[e]():q(r)&&t.getAttribute(e)||r}
3529function _(t,e){return(t=t.split(",")).forEach(e)||t}function aa(t){return Math.round(1e5*t)/1e5||0}function ba(t,e){for(var r=e.length,n=0;t.indexOf(e[n])<0&&++n<r;);return n<r}function ca(t,e,r){var n,i=p(t[1]),a=(i?2:1)+(e<2?0:1),o=t[a];if(i&&(o.duration=t[1]),o.parent=r,e){for(n=o;r&&!("immediateRender"in n);)n=r.vars.defaults||{},r=s(r.vars.inherit)&&r.parent;o.immediateRender=s(n.immediateRender),e<2?o.runBackwards=1:o.startAt=t[a-1]}return o}function da(){var t,e,r=ot.length,n=ot.slice(0);for(ut={},t=ot.length=0;t<r;t++)(e=n[t])&&e._lazy&&(e.render(e._lazy[0],e._lazy[1],!0)._lazy=0)}function ea(t,e,r,n){ot.length&&da(),t.render(e,r,n),ot.length&&da()}function fa(t){var e=parseFloat(t);return(e||0===e)&&(t+"").match(it).length<2?e:t}function ga(t){return t}function ha(t,e){for(var r in e)r in t||(t[r]=e[r]);return t}function ia(t,e){for(var r in e)r in t||"duration"===r||"ease"===r||(t[r]=e[r])}function ka(t,e){for(var n in e)t[n]=r(e[n])?ka(t[n]||(t[n]={}),e[n]):e[n];return t}function la(t,e){var r,n={};for(r in t)r in e||(n[r]=t[r]);return n}function pa(t,e,r,n){void 0===r&&(r="_first"),void 0===n&&(n="_last");var i=e._prev,a=e._next;i?i._next=a:t[r]===e&&(t[r]=a),a?a._prev=i:t[n]===e&&(t[n]=i),e._dp=t,e._next=e._prev=e.parent=null}function qa(t,e){!t.parent||e&&!t.parent.autoRemoveChildren||t.parent.remove(t),t._act=0}function ra(t){for(var e=t;e;)e._dirty=1,e=e.parent;return t}function ua(t){return t._repeat?_t(t._tTime,t=t.duration()+t._rDelay)*t:0}function wa(t,e){return(t-e._start)*e._ts+(0<=e._ts?0:e._dirty?e.totalDuration():e._tDur)}function xa(t){return t._end=aa(t._start+(t._tDur/Math.abs(t._ts||t._pauseTS||B)||0))}function ya(t,e,r){if(e.parent&&qa(e),e._start=aa(r+e._delay),e._end=aa(e._start+(e.totalDuration()/Math.abs(e.timeScale())||0)),function _addLinkedListItem(t,e,r,n,i){void 0===r&&(r="_first"),void 0===n&&(n="_last");var a,s=t[n];if(i)for(a=e[i];s&&s[i]>a;)s=s._prev;s?(e._next=s._next,s._next=e):(e._next=t[r],t[r]=e),e._next?e._next._prev=e:t[n]=e,e._prev=s,e.parent=t}(t,e,"_first","_last",t._sort?"_start":0),(t._recent=e)._time||!e._dur&&e._initted){var n=(t.rawTime()-e._start)*e._ts;(!e._dur||gt(0,e.totalDuration(),n)-e._tTime>B)&&e.render(n,!0)}if(ra(t)._dp&&t._initted&&t._time>=t._dur&&t._ts){if(t._dur<t.duration())for(var i=t;i._dp;)0<=i.rawTime()&&i.totalTime(i._tTime,!0),i=i._dp;t._zTime=-B}return t}function za(t,e,r,n){return qt(t,e),t._initted?!r&&t._pt&&(t._dur&&!1!==t.vars.lazy||!t._dur&&t.vars.lazy)&&c!==Mt.frame?(ot.push(t),t._lazy=[e,n],1):void 0:1}function Ca(t,e,r){var n=t._repeat,i=aa(e);return t._dur=i,t._tDur=n?n<0?1e12:aa(i*(n+1)+t._rDelay*n):i,r||ra(t.parent),t.parent&&xa(t),t}function Da(t){return t instanceof Bt?ra(t):Ca(t,t._dur)}function Fa(t,e){var r,i,a=t.labels,s=t._recent||mt,o=t.duration()>=z?s.endTime(!1):t._dur;return n(e)&&(isNaN(e)||e in a)?"<"===(r=e.charAt(0))||">"===r?("<"===r?s._start:s.endTime(0<=s._repeat))+(parseFloat(e.substr(1))||0):(r=e.indexOf("="))<0?(e in a||(a[e]=o),a[e]):(i=+(e.charAt(r-1)+e.substr(r+1)),1<r?Fa(t,e.substr(0,r-1))+i:o+i):null==e?o:+e}function Ga(t,e){return t||0===t?e(t):e}function Ia(t){return(t+"").substr((parseFloat(t)+"").length)}function La(t,e){return t&&r(t)&&"length"in t&&(!e&&!t.length||t.length-1 in t&&r(t[0]))&&!t.nodeType&&t!==i}function Oa(t){return t.sort(function(){return.5-Math.random()})}function Pa(t){if(o(t))return t;var d=r(t)?t:{each:t},_=Dt(d.ease),m=d.from||0,g=parseFloat(d.base)||0,v={},e=0<m&&m<1,y=isNaN(m)||e,T=d.axis,b=m,w=m;return n(m)?b=w={center:.5,edges:.5,end:1}[m]||0:!e&&y&&(b=m[0],w=m[1]),function(t,e,r){var n,i,a,s,o,u,h,l,f,p=(r||d).length,c=v[p];if(!c){if(!(f="auto"===d.grid?0:(d.grid||[1,z])[1])){for(h=-z;h<(h=r[f++].getBoundingClientRect().left)&&f<p;);f--}for(c=v[p]=[],n=y?Math.min(f,p)*b-.5:m%f,i=y?p*w/f-.5:m/f|0,l=z,u=h=0;u<p;u++)a=u%f-n,s=i-(u/f|0),c[u]=o=T?Math.abs("y"===T?s:a):X(a*a+s*s),h<o&&(h=o),o<l&&(l=o);"random"===m&&Oa(c),c.max=h-l,c.min=l,c.v=p=(parseFloat(d.amount)||parseFloat(d.each)*(p<f?p-1:T?"y"===T?p/f:f:Math.max(f,p/f))||0)*("edges"===m?-1:1),c.b=p<0?g-p:g,c.u=Ia(d.amount||d.each)||0,_=_&&p<0?Ft(_):_}return p=(c[t]-c.min)/c.max||0,aa(c.b+(_?_(p):p)*c.v)+c.u}}function Qa(e){var r=e<1?Math.pow(10,(e+"").length-2):1;return function(t){return~~(Math.round(parseFloat(t)/e)*e*r)/r+(p(t)?0:Ia(t))}}function Ra(u,t){var h,l,e=W(u);
vendor: 8,693 bytes, line 3529
3529return!e&&r(u)&&(h=e=u.radius||z,u.values?(u=yt(u.values),(l=!p(u[0]))&&(h*=h)):u=Qa(u.increment)),Ga(t,e?o(u)?function(t){return l=u(t),Math.abs(l-t)<=h?l:t}:function(t){for(var e,r,n=parseFloat(l?t.x:t),i=parseFloat(l?t.y:0),a=z,s=0,o=u.length;o--;)(e=l?(e=u[o].x-n)*e+(r=u[o].y-i)*r:Math.abs(u[o]-n))<a&&(a=e,s=o);return s=!h||a<=h?u[s]:t,l||s===t||p(t)?s:s+Ia(t)}:Qa(u))}function Sa(t,e,r,n){return Ga(W(t)?!e:!0===r?!!(r=0):!n,function(){return W(t)?t[~~(Math.random()*t.length)]:(r=r||1e-5)&&(n=r<1?Math.pow(10,(r+"").length-2):1)&&~~(Math.round((t+Math.random()*(e-t))/r)*r*n)/n})}function Wa(e,r,t){return Ga(t,function(t){return e[~~r(t)]})}function Za(t){for(var e,r,n,i,a=0,s="";~(e=t.indexOf("random(",a));)n=t.indexOf(")",e),i="["===t.charAt(e+7),r=t.substr(e+7,n-e-7).match(i?it:H),s+=t.substr(a,e-a)+Sa(i?r:+r[0],+r[1],+r[2]||1e-5),a=n+1;return s+t.substr(a,t.length-a)}function ab(t,e,r){var n,i,a,s=t.labels,o=z;for(n in s)(i=s[n]-e)<0==!!r&&i&&o>(i=Math.abs(i))&&(a=n,o=i);return a}function cb(t){return qa(t),t.progress()<1&&bt(t,"onInterrupt"),t}function hb(t,e,r){return(6*(t=t<0?t+1:1<t?t-1:t)<1?e+(r-e)*t*6:t<.5?r:3*t<2?e+(r-e)*(2/3-t)*6:e)*wt+.5|0}function ib(t,e,r){var n,i,a,s,o,u,h,l,f,c,d=t?p(t)?[t>>16,t>>8&wt,t&wt]:0:xt.black;if(!d){if(","===t.substr(-1)&&(t=t.substr(0,t.length-1)),xt[t])d=xt[t];else if("#"===t.charAt(0))4===t.length&&(t="#"+(n=t.charAt(1))+n+(i=t.charAt(2))+i+(a=t.charAt(3))+a),d=[(t=parseInt(t.substr(1),16))>>16,t>>8&wt,t&wt];else if("hsl"===t.substr(0,3))if(d=c=t.match(H),e){if(~t.indexOf("="))return d=t.match(J),r&&d.length<4&&(d[3]=1),d}else s=+d[0]%360/360,o=d[1]/100,n=2*(u=d[2]/100)-(i=u<=.5?u*(o+1):u+o-u*o),3<d.length&&(d[3]*=1),d[0]=hb(s+1/3,n,i),d[1]=hb(s,n,i),d[2]=hb(s-1/3,n,i);else d=t.match(H)||xt.transparent;d=d.map(Number)}return e&&!c&&(n=d[0]/wt,i=d[1]/wt,a=d[2]/wt,u=((h=Math.max(n,i,a))+(l=Math.min(n,i,a)))/2,h===l?s=o=0:(f=h-l,o=.5<u?f/(2-h-l):f/(h+l),s=h===n?(i-a)/f+(i<a?6:0):h===i?(a-n)/f+2:(n-i)/f+4,s*=60),d[0]=~~(s+.5),d[1]=~~(100*o+.5),d[2]=~~(100*u+.5)),r&&d.length<4&&(d[3]=1),d}function jb(t){var r=[],n=[],i=-1;return t.split(kt).forEach(function(t){var e=t.match(tt)||[];r.push.apply(r,e),n.push(i+=e.length+1)}),r.c=n,r}function kb(t,e,r){var n,i,a,s,o="",u=(t+o).match(kt),h=e?"hsla(":"rgba(",l=0;if(!u)return t;if(u=u.map(function(t){return(t=ib(t,e,1))&&h+(e?t[0]+","+t[1]+"%,"+t[2]+"%,"+t[3]:t.join(","))+")"}),r&&(a=jb(t),(n=r.c).join(o)!==a.c.join(o)))for(s=(i=t.replace(kt,"1").split(tt)).length-1;l<s;l++)o+=i[l]+(~n.indexOf(l)?u.shift()||h+"0,0,0,0)":(a.length?a:u.length?u:r).shift());if(!i)for(s=(i=t.split(kt)).length-1;l<s;l++)o+=i[l]+u[l];return o+i[s]}function nb(t){var e,r=t.join(" ");if(kt.lastIndex=0,kt.test(r))return e=Ot.test(r),t[1]=kb(t[1],e),t[0]=kb(t[0],e,jb(t[1])),!0}function vb(t){var e=(t+"").split("("),r=Ct[e[0]];return r&&1<e.length&&r.config?r.config.apply(null,~t.indexOf("{")?[function _parseObjectInString(t){for(var e,r,n,i={},a=t.substr(1,t.length-3).split(":"),s=a[0],o=1,u=a.length;o<u;o++)r=a[o],e=o!==u-1?r.lastIndexOf(","):r.length,n=r.substr(0,e),i[s]=isNaN(n)?n.replace(At,"").trim():+n,s=r.substr(e+1).trim();return i}(e[1])]:rt.exec(t)[1].split(",").map(fa)):Ct._CE&&St.test(t)?Ct._CE("",t):r}function yb(t,e,r,n){void 0===r&&(r=function easeOut(t){return 1-e(1-t)}),void 0===n&&(n=function easeInOut(t){return t<.5?e(2*t)/2:1-e(2*(1-t))/2});var i,a={easeIn:e,easeOut:r,easeInOut:n};return _(t,function(t){for(var e in Ct[t]=at[t]=a,Ct[i=t.toLowerCase()]=r,a)Ct[i+("easeIn"===e?".in":"easeOut"===e?".out":".inOut")]=Ct[t+"."+e]=a[e]}),a}function zb(e){return function(t){return t<.5?(1-e(1-2*t))/2:.5+e(2*(t-.5))/2}}function Ab(r,t,e){function Vk(t){return 1===t?1:n*Math.pow(2,-10*t)*Q((t-a)*i)+1}var n=1<=t?t:1,i=(e||(r?.3:.45))/(t<1?t:1),a=i/I*(Math.asin(1/n)||0),s="out"===r?Vk:"in"===r?function(t){return 1-Vk(1-t)}:zb(Vk);return i=I/i,s.config=function(t,e){return Ab(r,t,e)},s}function Bb(e,r){function bl(t){return t?--t*t*((r+1)*t+r)+1:0}void 0===r&&(r=1.70158);var t="out"===e?bl:"in"===e?function(t){return 1-bl(1-t)}:zb(bl);return t.config=function(t){return Bb(e,t)},t}var R,i,a,h,l,f,c,d,m,g,v,y,T,b,w,x,k,P,C,S,A,F,D,U={autoSleep:120,force3D:"auto",nullTargetWarn:1,units:{lineHeight:""}},E={duration:.5,overwrite:!1,delay:0},z=1e8,B=1/z,I=2*Math.PI,V=I/4,j=0,X=Math.sqrt,G=Math.cos,Q=Math.sin,W=Array.isArray,H=/(?:-?\.?\d|\.)+/gi,J=/[-+=.]*\d+[.e\-+]*\d*[e\-\+]*\d*/g,tt=/[-+=.]*\d+[.e-]*\d*[a-z%]*/g,et=/[-+=.]*\d+(?:\.|e-|e)*\d*/gi,rt=/\(([^()]+)\)/i,nt=/[+-]=-?[\.\d]+/,it=/[#\-+.]*\b[a-z\d-=+%.]+/gi,at={},st={},ot=[],ut={},ht={},lt={},ft=30,pt=[],ct="onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt",dt=function _merge(t,e){for(var r in e)t[r]=e[r];return t},_t=function _animationCycle(t,e){return(t/=e)&&~~t===t?~~t-1:~~t},mt={_start:0,endTime:O},gt=function _clamp(t,e,r){return r<t?t:e<r?e:r},vt=[].slice,yt=function toArray(t,e){return!n(t)||e||!a&&Pt()?W(t)?function _flatten(t,e,r){return void 0===r&&(r=[]),t.forEach(function(t){return n(t)&&!e||La(t,1)?r.push.apply(r,yt(t)):r.push(t)})||r}(t,e):La(t)?vt.call(t,0):t?[t]:[]:vt.call(h.querySelectorAll(t),0)},Tt=function mapRange(e,t,r,n,i){var a=t-e,s=n-r;return Ga(i,function(t){return r+(t-e)/a*s})},bt=function _callback(t,e,r){var n,i,a=t.vars,s=a[e];if(s)return n=a[e+"Params"],i=a.callbackScope||t,r&&ot.length&&da(),n?s.apply(i,n):s.call(i)},wt=255,xt={aqua:[0,wt,wt],lime:[0,wt,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,wt],navy:[0,0,128],white:[wt,wt,wt],olive:[128,128,0],yellow:[wt,wt,0],orange:[wt,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[wt,0,0],pink:[wt,192,203],cyan:[0,wt,wt],transparent:[wt,wt,wt,0]},kt=function(){var t,e="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3}){1,2}\\b";for(t in xt)e+="|"+t+"\\b";return new RegExp(e+")","gi")}(),Ot=/hsl[a]?\(/,Mt=(b=Date.now,w=500,x=33,k=b(),P=k,S=C=1/240,T={time:0,frame:0,tick:function tick(){_j(!0)},wake:function wake(){f&&(!a&&t()&&(i=a=window,h=i.document||{},at.gsap=ne,(i.gsapVersions||(i.gsapVersions=[])).push(ne.version),K(l||i.GreenSockGlobals||!i.gsap&&i||{}),y=i.requestAnimationFrame),g&&T.sleep(),v=y||function(t){return setTimeout(t,1e3*(S-T.time)+1|0)},m=1,_j(2))},sleep:function sleep(){(y?i.cancelAnimationFrame:clearTimeout)(g),m=0,v=O},lagSmoothing:function lagSmoothing(t,e){w=t||1e8,x=Math.min(e,w,0)},fps:function fps(t){C=1/(t||240),S=T.time+C},add:function add(t){A.indexOf(t)<0&&A.push(t),Pt()},remove:function remove(t){var e;~(e=A.indexOf(t))&&A.splice(e,1)},_listeners:A=[]}),Pt=function _wake(){return!m&&Mt.wake()},Ct={},St=/^[\d.\-M][\d.\-,\s]/,At=/["']/g,Ft=function _invertEase(e){return function(t){return 1-e(1-t)}},Dt=function _parseEase(t,e){return t&&(o(t)?t:Ct[t]||vb(t))||e};function _j(e){var t,r,n=b()-P,i=!0===e;w<n&&(k+=n-x),P+=n,T.time=(P-k)/1e3,(0<(t=T.time-S)||i)&&(T.frame++,S+=t+(C<=t?.004:C-t),r=1),i||(g=v(_j)),r&&A.forEach(function(t){return t(T.time,n,T.frame,e)})}function sl(t){return t<D?F*t*t:t<.7272727272727273?F*Math.pow(t-1.5/2.75,2)+.75:t<.9090909090909092?F*(t-=2.25/2.75)*t+.9375:F*Math.pow(t-2.625/2.75,2)+.984375}_("Linear,Quad,Cubic,Quart,Quint,Strong",function(t,e){var r=e<5?e+1:e;yb(t+",Power"+(r-1),e?function(t){return Math.pow(t,r)}:function(t){return t},function(t){return 1-Math.pow(1-t,r)},function(t){return t<.5?Math.pow(2*t,r)/2:1-Math.pow(2*(1-t),r)/2})}),Ct.Linear.easeNone=Ct.none=Ct.Linear.easeIn,yb("Elastic",Ab("in"),Ab("out"),Ab()),F=7.5625,D=1/2.75,yb("Bounce",function(t){return 1-sl(1-t)},sl),yb("Expo",function(t){return t?Math.pow(2,10*(t-1)):0}),yb("Circ",function(t){return-(X(1-t*t)-1)}),yb("Sine",function(t){return 1-G(t*V)}),yb("Back",Bb("in"),Bb("out"),Bb()),Ct.SteppedEase=Ct.steps=at.SteppedEase={config:function config(t,e){void 0===t&&(t=1);var r=1/t,n=t+(e?0:1),i=e?1:0;return function(t){return((n*gt(0,.99999999,t)|0)+i)*r}}},E.ease=Ct["quad.out"];var zt,Rt=function GSCache(t,e){this.id=j++,(t._gsap=this).target=t,this.harness=e,this.get=e?e.get:$,this.set=e?e.getSetter:Gt},Et=((zt=Animation.prototype).delay=function delay(t){return t||0===t?(this._delay=t,this):this._delay},zt.duration=function duration(t){return arguments.length?Ca(this,t):this.totalDuration()&&this._dur},zt.totalDuration=function totalDuration(t){return arguments.length?(this._dirty=0,Ca(this,this._repeat<0?t:(t-this._repeat*this._rDelay)/(this._repeat+1))):this._tDur},zt.totalTime=function totalTime(t,e){if(Pt(),!arguments.length)return this._tTime;var r=this.parent||this._dp;if(r&&r.smoothChildTiming&&this._ts){for(this._start=aa(r._time-(0<this._ts?t/this._ts:((this._dirty?this.totalDuration():this._tDur)-t)/-this._ts
3529)),xa(this),r._dirty||ra(r);r.parent;)r.parent._time!==r._start+(0<=r._ts?r._tTime/r._ts:(r.totalDuration()-r._tTime)/-r._ts)&&r.totalTime(r._tTime,!0),r=r.parent;!this.parent&&this._dp.autoRemoveChildren&&ya(this._dp,this,this._start-this._delay)}return this._tTime===t&&(this._dur||e)&&Math.abs(this._zTime)!==B||(this._ts||(this._pTime=t),ea(this,t,e)),this},zt.time=function time(t,e){return arguments.length?this.totalTime(Math.min(this.totalDuration(),t+ua(this))%this._dur||(t?this._dur:0),e):this._time},zt.totalProgress=function totalProgress(t,e){return arguments.length?this.totalTime(this.totalDuration()*t,e):this.totalDuration()?Math.min(1,this._tTime/this._tDur):this.ratio},zt.progress=function progress(t,e){return arguments.length?this.totalTime(this.duration()*(!this._yoyo||1&this.iteration()?t:1-t)+ua(this),e):this.duration()?Math.min(1,this._time/this._dur):this.ratio},zt.iteration=function iteration(t,e){var r=this.duration()+this._rDelay;return arguments.length?this.totalTime(this._time+(t-1)*r,e):this._repeat?_t(this._tTime,r)+1:1},zt.timeScale=function timeScale(t){if(!arguments.length)return this._ts||this._pauseTS||0;if(null!==this._pauseTS)return this._pauseTS=t,this;var e=this.parent&&this._ts?wa(this.parent._time,this):this._tTime;return this._ts=t,function _recacheAncestors(t){for(var e=t.parent;e&&e.parent;)e._dirty=1,e.totalDuration(),e=e.parent;return t}(this.totalTime(e,!0))},zt.paused=function paused(t){var e=!this._ts;return arguments.length?(e!==t&&(t?(this._pauseTS=this._ts,this._pTime=this._tTime||Math.max(-this._delay,this.rawTime()),this._ts=this._act=0):(Pt(),this._ts=this._pauseTS||1,this._pauseTS=null,this.totalTime(this.parent&&!this.parent.smoothChildTiming?this.rawTime():this._tTime||this._pTime,1===this.progress()&&(this._tTime-=B)&&Math.abs(this._zTime)!==B))),this):e},zt.startTime=function startTime(t){return arguments.length?(this.parent&&this.parent._sort&&ya(this.parent,this,t-this._delay),this):this._start},zt.endTime=function endTime(t){return this._start+(s(t)?this.totalDuration():this.duration())/Math.abs(this._ts)},zt.rawTime=function rawTime(t){var e=this.parent||this._dp;return e?t&&(!this._ts||this._repeat&&this._time&&this.totalProgress()<1)?this._tTime%(this._dur+this._rDelay):this._ts?wa(e.rawTime(t),this):this._tTime:this._tTime},zt.repeat=function repeat(t){return arguments.length?(this._repeat=t,Da(this)):this._repeat},zt.repeatDelay=function repeatDelay(t){return arguments.length?(this._rDelay=t,Da(this)):this._rDelay},zt.yoyo=function yoyo(t){return arguments.length?(this._yoyo=t,this):this._yoyo},zt.seek=function seek(t,e){return this.totalTime(Fa(this,t),s(e))},zt.restart=function restart(t,e){return this.play().totalTime(t?-this._delay:0,s(e))},zt.play=function play(t,e){return null!=t&&this.seek(t,e),this.reversed(!1).paused(!1)},zt.reverse=function reverse(t,e){return null!=t&&this.seek(t||this.totalDuration(),e),this.reversed(!0).paused(!1)},zt.pause=function pause(t,e){return null!=t&&this.seek(t,e),this.paused(!0)},zt.resume=function resume(){return this.paused(!1)},zt.reversed=function reversed(t){var e=this._ts||this._pauseTS||0;return arguments.length?(t!==this.reversed()&&(this[null===this._pauseTS?"_ts":"_pauseTS"]=Math.abs(e)*(t?-1:1),this.totalTime(this._tTime,!0)),this):e<0}
3529,zt.invalidate=function invalidate(){return this._initted=0,this._zTime=-B,this},zt.isActive=function isActive(t){var e,r=this.parent||this._dp,n=this._start;return!(r&&!(this._ts&&(this._initted||!t)&&r.isActive(t)&&(e=r.rawTime(!0))>=n&&e<this.endTime(!0)-B))},zt.eventCallback=function eventCallback(t,e,r){var n=this.vars;return 1<arguments.length?(e?(n[t]=e,r&&(n[t+"Params"]=r),"onUpdate"===t&&(this._onUpdate=e)):delete n[t],this):n[t]},zt.then=function then(t){var n=this;return new Promise(function(e){function Hm(){var t=n.then;n.then=null,o(r)&&(r=r(n))&&(r.then||r===n)&&(n.then=t),e(r),n.then=t}var r=o(t)?t:ga;n._initted&&1===n.totalProgress()&&0<=n._ts||!n._tTime&&n._ts<0?Hm():n._prom=Hm})},zt.kill=function kill(){cb(this)},Animation);function Animation(t,e){var r=t.parent||R;this.vars=t,this._delay=+t.delay||0,(this._repeat=t.repeat||0)&&(this._rDelay=t.repeatDelay||0,this._yoyo=!!t.yoyo||!!t.yoyoEase),this._ts=1,Ca(this,+t.duration,1),this.data=t.data,m||Mt.wake(),r&&ya(r,this,e||0===e?e:r._time),t.reversed&&this.reversed(!0),t.paused&&this.paused(!0)}ha(Et.prototype,{_time:0,_start:0,_end:0,_tTime:0,_tDur:0,_dirty:0,_repeat:0,_yoyo:!1,parent:null,_initted:!1,_rDelay:0,_ts:1,_dp:0,ratio:0,_zTime:-B,_prom:0,_pauseTS:null});var Bt=function(i){function Timeline(t,e){var r;return void 0===t&&(t={}),(r=i.call(this,t,e)||this).labels={},r.smoothChildTiming=!!t.smoothChildTiming,r.autoRemoveChildren=!!t.autoRemoveChildren,r._sort=s(t.sortChildren),r}_inheritsLoose(Timeline,i);var t=Timeline.prototype;return t.to=function to(t,e,r,n){return new Vt(t,ca(arguments,0,this),Fa(this,p(e)?n:r)),this},t.from=function from(t,e,r,n){return new Vt(t,ca(arguments,1,this),Fa(this,p(e)?n:r)),this},t.fromTo=function fromTo(t,e,r,n,i){return new Vt(t,ca(arguments,2,this),Fa(this,p(e)?i:n)),this},t.set=function set(t,e,r){return e.duration=0,e.parent=this,e.repeatDelay||(e.repeat=0),e.immediateRender=!!e.immediateRender,new Vt(t,e,Fa(this,r)),this},t.call=function call(t,e,r){return ya(this,Vt.delayedCall(0,t,e),Fa(this,r))},t.staggerTo=function staggerTo(t,e,r,n,i,a,s){return r.duration=e,r.stagger=r.stagger||n,r.onComplete=a,r.onCompleteParams=s,r.parent=this,new Vt(t,r,Fa(this,i)),this},t.staggerFrom=function staggerFrom(t,e,r,n,i,a,o){return r.runBackwards=1,r.immediateRender=s(r.immediateRender),this.staggerTo(t,e,r,n,i,a,o)},t.staggerFromTo=function staggerFromTo(t,e,r,n,i,a,o,u){return n.startAt=r,n.immediateRender=s(n.immediateRender),this.staggerTo(t,e,n,i,a,o,u)},t.render=function render(t,e,r){var n,i,a,s,o,u,h,l,f,p,c,d,_=this._time,m=this._dirty?this.totalDuration():this._tDur,g=this._dur,v=this!==R&&m-B<t&&0<=t?m:t<B?0:t,y=this._zTime<0!=t<0&&(this._initted||!g);if(v!==this._tTime||r||y){if(_!==this._time&&g&&(v+=this._time-_,t+=this._time-_),n=v,f=this._start,u=!(l=this._ts),y&&(g||(_=this._zTime),!t&&e||(this._zTime=t)),this._repeat&&(c=this._yoyo,o=g+this._rDelay,(g<(n=aa(v%o))||m===v)&&(n=g),(s=~~(v/o))&&s===v/o&&(n=g,s--),c&&1&s&&(n=g-n,d=1),s!==(p=_t(this._tTime,o))&&!this._lock)){var T=c&&1&p,b=T===(c&&
35291&s);if(s<p&&(T=!T),_=T?0:g,this._lock=1,this.render(_,e,!g)._lock=0,!e&&this.parent&&bt(this,"onRepeat"),this.vars.repeatRefresh&&!d&&(this.invalidate()._lock=1),_!==this._time||u!=!this._ts)return this;if(b&&(this._lock=2,_=T?g+1e-4:-1e-4,this.render(_,!0),this.vars.repeatRefresh&&!d&&this.invalidate()),this._lock=0,!this._ts&&!u)return this}if(this._hasPause&&!this._forcing&&this._lock<2&&(h=function _findNextPauseTween(t,e,r){var n;if(e<r)for(n=t._first;n&&n._start<=r;){if(!n._dur&&"isPause"===n.data&&n._start>e)return n;n=n._next}else for(n=t._last;n&&n._start>=r;){if(!n._dur&&"isPause"===n.data&&n._start<e)return n;n=n._prev}}(this,aa(_),aa(n)))&&(v-=n-(n=h._start)),this._tTime=v,this._time=n,this._act=!l,this._initted||(this._onUpdate=this.vars.onUpdate,this._initted=1,this._zTime=t),_||!n||e||bt(this,"onStart"),_<=n&&0<=t)for(i=this._first;i;){if(a=i._next,(i._act||n>=i._start)&&i._ts&&h!==i){if(i.parent!==this)return this.render(t,e,r);if(i.render(0<i._ts?(n-i._start)*i._ts:(i._dirty?i.totalDuration():i._tDur)+(n-i._start)*i._ts,e,r),n!==this._time||!this._ts&&!u){h=0,a&&(v+=this._zTime=-B);break}}i=a}else{i=this._last;for(var w=t<0?t:n;i;){if(a=i._prev,(i._act||w<=i._end)&&i._ts&&h!==i){if(i.parent!==this)return this.render(t,e,r);if(i.render(0<i._ts?(w-i._start)*i._ts:(i._dirty?i.totalDuration():i._tDur)+(w-i._start)*i._ts,e,r),n!==this._time||!this._ts&&!u){h=0,a&&(v+=this._zTime=w?-B:B);break}}i=a}}if(h&&!e&&(this.pause(),h.render(_<=n?0:-B)._zTime=_<=n?1:-1,this._ts))return this._start=f,xa(this),this.render(t,e,r);this._onUpdate&&!e&&bt(this,"onUpdate",!0),(v===m&&m>=this.totalDuration()||!v&&this._ts<0)&&(f!==this._start&&Math.abs(l)===Math.abs(this._ts)||(!t&&g||!(t&&0<this._ts||!v&&this._ts<0)||qa(this,1),e||t<0&&!_||(bt(this,v===m?"onComplete":"onReverseComplete",!0),this._prom&&this._prom())))}return this},t.add=function add(t,e){var r=this;if(p(e)||(e=Fa(this,e)),!(t instanceof Et)){if(W(t))return t.forEach(function(t){return r.add(t,e)}),ra(this);if(n(t))return this.addLabel(t,e);if(!o(t))return this;t=Vt.delayedCall(0,t)}return this!==t?ya(this,t,e):this},t.getChildren=function getChildren(t,e,r,n){void 0===t&&(t=!0),void 0===e&&(e=!0),void 0===r&&(r=!0),void 0===n&&(n=-z);for(var i=[],a=this._first;a;)a._start>=n&&(a instanceof Vt?e&&i.push(a):(r&&i.push(a),t&&i.push.apply(i,a.getChildren(!0,e,r)))),a=a._next;return i},t.getById=function getById(t){for(var e=this.getChildren(1,1,1),r=e.length;r--;)if(e[r].vars.id===t)return e[r]},t.remove=function remove(t){return n(t)?this.removeLabel(t):o(t)?this.killTweensOf(t):(pa(this,t),t===this._recent&&(this._recent=this._last),ra(this))},t.totalTime=function totalTime(t,e){return arguments.length?(this._forcing=1,this.parent||this._dp||!this._ts||(this._start=aa(Mt.time-(0<this._ts?t/this._ts:(this.totalDuration()-t)/-this._ts))),i.prototype.totalTime.call(this,t,e),this._forcing=0,this):this._tTime},t.addLabel=function addLabel(t,e){return this.labels[t]=Fa(this,e),this},t.removeLabel=function removeLabel(t){return delete this.labels[t],this},t.addPause=function addPause(t,e,r){var n=Vt.delayedCall(0,e||O,r);return n.data="isPause",this._hasPause=1,ya(this,n,Fa(this,t))},t.removePause=function removePause(t){var e=this._first;for(t=Fa(this,t);e;)e._start===t&&"isPause"===e.data&&qa(e),e=e._next},t.killTweensOf=function killTweensOf(t,e,r){for(var n=this.getTweensOf(t,r),i=n.length;i--;)It!==n[i]&&n[i].kill(t,e);return this},t.getTweensOf=function getTweensOf(t,e){for(var r,n=[],i=yt(t),a=this._first;a;)a instanceof Vt?!ba(a._targets,i)||e&&!a.isActive("started"===e)||n.push(a):(r=a.getTweensOf(i,e)).length&&n.push.apply(n,r),a=a._next;return n},t.tweenTo=function tweenTo(t,e){e=e||{};var r=this,n=Fa(r,t),i=e.startAt,a=Vt.to(r,ha(e,{ease:"none",lazy:!1,time:n,duration:e.duration||Math.abs(n-(i&&"time"in i?i.time:r._time))/r.timeScale()||B,onStart:function onStart(){r.pause();var t=e.duration||Math.abs(n-r._time)/r.timeScale();a._dur!==t&&Ca(a,t).render(a._time,!0,!0),e.onStart&&e.onStart.apply(a,e.onStartParams||[])}}));return a},t.tweenFromTo=function tweenFromTo(t,e,r){return this.tweenTo(e,ha({startAt:{time:Fa(this,t)}},r))},t.recent=function recent(){return this._recent},t.nextLabel=function nextLabel(t){return void 0===t&&(t=this._time),ab(this,Fa(this,t))},t.previousLabel=function previousLabel(t){return void 0===t&&(t=this._time),ab(this,Fa(this,t),1)},t.currentLabel=function currentLabel(t){return arguments.length?this.seek(t,!0):this.previousLabel(this._time+B)},t.shiftChildren=function shiftChildren(t,e,r){void 0===r&&(r=0);for(var n,i=this._first,a=this.labels;i;)i._start>=r&&(i._start+=t),i=i._next;if(e)for(n in a)a[n]>=r&&(a[n]+=t);return ra(this)}
3529,t.invalidate=function invalidate(){var t=this._first;for(this._lock=0;t;)t.invalidate(),t=t._next;return i.prototype.invalidate.call(this)},t.clear=function clear(t){void 0===t&&(t=!0);for(var e,r=this._first;r;)e=r._next,this.remove(r),r=e;return this._time=this._tTime=0,t&&(this.labels={}),ra(this)},t.totalDuration=function totalDuration(t){var e,r,n,i,a=0,s=this,o=s._last,u=z;if(arguments.length)return s._repeat<0?s:s.timeScale(s.totalDuration()/t);if(s._dirty){for(i=s.parent;o;)e=o._prev,o._dirty&&o.totalDuration(),u<(n=o._start)&&s._sort&&o._ts&&!s._lock?(s._lock=1,ya(s,o,n-o._delay)._lock=0):u=n,n<0&&o._ts&&(a-=n,(!i&&!s._dp||i&&i.smoothChildTiming)&&(s._start+=n/s._ts,s._time-=n,s._tTime-=n),s.shiftChildren(-n,!1,-1e20),u=0),a<(r=xa(o))&&o._ts&&(a=r),o=e;Ca(s,s===R&&s._time>a?s._time:Math.min(z,a),1),s._dirty=0}return s._tDur},Timeline.updateRoot=function updateRoot(t){if(R._ts&&(ea(R,wa(t,R)),c=Mt.frame),Mt.frame>=ft){ft+=U.autoSleep||120;var e=R._first;if((!e||!e._ts)&&U.autoSleep&&Mt._listeners.length<2){for(;e&&!e._ts;)e=e._next;e||Mt.sleep()}}},Timeline}(Et);ha(Bt.prototype,{_lock:0,_hasPause:0,_forcing:0});function Ib(t,e,i,a,s,u){var h,l,f,p;if(ht[t]&&!1!==(h=new ht[t]).init(s,h.rawVars?e[t]:function _processVars(t,e,i,a,s){if(o(t)&&(t=Yt(t,s,e,i,a)),!r(t)||t.style&&t.nodeType||W(t))return n(t)?Yt(t,s,e,i,a):t;var u,h={};for(u in t)h[u]=Yt(t[u],s,e,i,a);return h}(e[t],a,s,u,i),i,a,u)&&(i._pt=l=new ee(i._pt,s,t,0,1,h.render,h,0,h.priority),i!==d))for(f=i._ptLookup[i._targets.indexOf(s)],p=h._props.length;p--;)f[h._props[p]]=l;return h}var It,Lt=function _addPropTween(t,e,r,i,a,s,u,h,l){o(i)&&(i=i(a||0,t,s));var f,p=t[e],c="get"!==r?r:o(p)?l?t[e.indexOf("set")||!o(t["get"+e.substr(3)])?e:"get"+e.substr(3)](l):t[e]():p,d=o(p)?l?Zt:Xt:jt;if(n(i)&&(~i.indexOf("random(")&&(i=Za(i)),"="===i.charAt(1)&&(i=parseFloat(c)+parseFloat(i.substr(2))*("-"===i.charAt(0)?-1:1)+(Ia(c)||0))),c!==i)return isNaN(c+i)?(p||e in t||L(e,i),function _addComplexStringPropTween(t,e,r,n,i,a,s){var o,u,h,l,f,p,c,d,_=new ee(this._pt,t,e,0,1,Ht,null,i),m=0,g=0;for(_.b=r,_.e=n,r+="",(c=~(n+="").indexOf("random("))&&(n=Za(n)),a&&(a(d=[r,n],t,e),r=d[0],n=d[1]),u=r.match(et)||[];o=et.exec(n);)l=o[0],f=n.substring(m,o.index),h?h=(h+1)%5:"rgba("===f.substr(-5)&&(h=1),l!==u[g++]&&(p=parseFloat(u[g-1])||0,_._pt={_next:_._pt,p:f||1===g?f:",",s:p,c:"="===l.charAt(1)?parseFloat(l.substr(2))*("-"===l.charAt(0)?-1:1):parseFloat(l)-p,m:h&&h<4?Math.round:0},m=et.lastIndex);return _.c=m<n.length?n.substring(m,n.length):"",_.fp=s,(nt.test(n)||c)&&(_.e=0),this._pt=_}.call(this,t,e,c,i,d,h||U.stringFilter,l)):(f=new ee(this._pt,t,e,+c||0,i-(c||0),"boolean"==typeof p?Wt:Qt,0,d),l&&(f.fp=l),u&&f.modifier(u,this,t),this._pt=f)},qt=function _initTween(t,e){var r,n,i,a,o,u,h,l,f,p,c,d,_=t.vars,m=_.ease,g=_.startAt,v=_.immediateRender,y=_.lazy,T=_.onUpdate,b=_.onUpdateParams,w=_.callbackScope,x=_.runBackwards,k=_.yoyoEase,O=_.keyframes,M=_.autoRevert,P=t._dur,C=t._startAt,S=t._targets,A=t.parent,F=A&&"nested"===A.data?A.parent._targets:S,D="auto"===t._overwrite,z=t.timeline;if(!z||O&&m||(m="none"),t._ease=Dt(m,E.ease),t._yEase=k?Ft(Dt(!0===k?m:k,E.ease)):0,k&&t._yoyo&&!t._repeat&&(k=t._yEase,t._yEase=t._ease,t._ease=k),!z){if(C&&C.render(-1,!0).kill(),g){if(qa(t._startAt=Vt.set(S,ha({data:"isStart",overwrite:!1,parent:A,immediateRender:!0,lazy:s(y),startAt:null,delay:0,onUpdate:T,onUpdateParams:b,callbackScope:w,stagger:0},g))),v)if(0<e)M||(t._startAt=0);else if(P)return}else if(x&&P)if(C)M||(t._startAt=0);else if(e&&(v=!1),qa(t._startAt=Vt.set(S,dt(la(_,st),{overwrite:!1,data:"isFromStart",lazy:v&&s(y),immediateRender:v,stagger:0,parent:A}))),v){if(!e)return}else _initTween(t._startAt,B);for(r=la(_,st),d=(l=S[t._pt=0]?Z(S[0]).harness:0)&&_[l.prop],y=P&&s(y)||y&&!P,n=0;n<S.length;n++){if(h=(o=S[n])._gsap||Y(S)[n]._gsap,t._ptLookup[n]=p={},ut[h.id]&&da(),c=F===S?n:F.indexOf(o),l&&!1!==(f=new l).init(o,d||r,t,c,F)&&(t._pt=a=new ee(t._pt,o,f.name,0,1,f.render,f,0,f.priority),f._props.forEach(function(t){p[t]=a}),f.priority&&(u=1)),!l||d)for(i in r)ht[i]&&(f=Ib(i,r,t,c,o,F))?f.priority&&(u=1):p[i]=a=Lt.call(t,o,i,"get",r[i],c,F,0,_.stringFilter);t._op&&t._op[n]&&t.kill(o,t._op[n]),D&&t._pt&&(It=t,R.killTweensOf(o,p,"started"),It=0),t._pt&&y&&(ut[h.id]=1)}u&&te(t),t._onInit&&t._onInit(t)}t._from=!z&&!!_.runBackwards,t._onUpdate=T,t._initted=1},Yt=function _parseFuncOrString(t,e,r,i,a){return o(t)?t.call(e,r,i,a):n(t)&&~t.indexOf("random(")?Za(t):t},Nt=ct+",repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase",Ut=(Nt+",id,stagger,delay,duration,paused").split(","),Vt=function(P){function Tween(t,e,n){var i;"number"==typeof e&&(n.duration=e,e=n,n=null);var a,o,h,l,f,c,d,_,m=(i=P.call(this,function _inheritDefaults(t){var e=t.parent||R,r=t.keyframes?ia:ha;if(s(t.inherit))for(;e;)r(t,e.vars.defaults),e=e.parent;return t}(e),n)||this).vars,g=m.duration,v=m.delay,y=m.immediateRender,T=m.stagger,b=m.overwrite,w=m.keyframes,x=m.defaults,k=(W(t)?p(t[0]):"length"in e)?[t]:yt(t);if(i._targets=k.length?Y(k):M("GSAP target "+t+" not found. https://greensock.com",!U.nullTargetWarn)||[],i._ptLookup=[],i._overwrite=b,w||T||u(g)||u(v)){if(e=i.vars,(a=i.timeline=new Bt({data:"nested",defaults:x||{}})).kill(),a.parent=_assertThisInitialized(i),w)ha(a.vars.defaults,{ease:"none"}
3529),w.forEach(function(t){return a.to(k,t,">")});else{if(l=k.length,d=T?Pa(T):O,r(T))for(f in T)~Nt.indexOf(f)&&((_=_||{})[f]=T[f]);for(o=0;o<l;o++){for(f in h={},e)Ut.indexOf(f)<0&&(h[f]=e[f]);h.stagger=0,_&&dt(h,_),e.yoyoEase&&!e.repeat&&(h.yoyoEase=e.yoyoEase),c=k[o],h.duration=+Yt(g,_assertThisInitialized(i),o,c,k),h.delay=(+Yt(v,_assertThisInitialized(i),o,c,k)||0)-i._delay,!T&&1===l&&h.delay&&(i._delay=v=h.delay,i._start+=v,h.delay=0),a.to(c,h,d(o,c,k))}g=v=0}g||i.duration(g=a.duration())}else i.timeline=0;return!0===b&&(It=_assertThisInitialized(i),R.killTweensOf(k),It=0),(y||!g&&!w&&i._start===i.parent._time&&s(y)&&function _hasNoPausedAncestors(t){return!t||t._ts&&_hasNoPausedAncestors(t.parent)}(_assertThisInitialized(i))&&"nested"!==i.parent.data)&&(i._tTime=-B,i.render(Math.max(0,-v))),i}_inheritsLoose(Tween,P);var t=Tween.prototype;return t.render=function render(t,e,r){var n,i,a,s,o,u,h,l,f,p=this._time,c=this._tDur,d=this._dur,_=c-B<t&&0<=t?c:t<B?0:t;if(d){if(_!==this._tTime||!t||r||this._startAt&&this._zTime<0!=t<0){if(n=_,l=this.timeline,this._repeat){if(s=d+this._rDelay,(d<(n=aa(_%s))||c===_)&&(n=d),(a=~~(_/s))&&a===_/s&&(n=d,a--),(u=this._yoyo&&1&a)&&(f=this._yEase,n=d-n),o=_t(this._tTime,s),n===p&&!r&&this._initted)return this;a!==o&&(!this.vars.repeatRefresh||u||this._lock||(this._lock=r=1,this.render(s*a,!0).invalidate()._lock=0))}if(!this._initted&&za(this,n,r,e))return this._tTime=0,this;for(this._tTime=_,this._time=n,!this._act&&this._ts&&(this._act=1,this._lazy=0),this.ratio=h=(f||this._ease)(n/d),this._from&&(this.ratio=h=1-h),p||!n||e||bt(this,"onStart"),i=this._pt;i;)i.r(h,i.d),i=i._next;l&&l.render(t<0?t:!n&&u?-B:l._dur*h,e,r)||this._startAt&&(this._zTime=t),this._onUpdate&&!e&&(t<0&&this._startAt&&this._startAt.render(t,!0,r),bt(this,"onUpdate")),this._repeat&&a!==o&&this.vars.onRepeat&&!e&&this.parent&&bt(this,"onRepeat"),_!==this._tDur&&_||this._tTime!==_||(t<0&&this._startAt&&!this._onUpdate&&this._startAt.render(t,!0,r),!t&&d||!(t&&0<this._ts||!_&&this._ts<0)||qa(this,1),e||t<0&&!p||(bt(this,_===c?"onComplete":"onReverseComplete",!0),this._prom&&this._prom()))}}else!function _renderZeroDurationTween(t,e,r,n){var i,a=t._zTime<0?0:1,s=e<0?0:1,o=t._rDelay,u=0;if(o&&t._repeat&&(u=gt(0,t._tDur,e),_t(u,o)!==_t(t._tTime,o)&&(a=1-s,t.vars.repeatRefresh&&t._initted&&t.invalidate())),(t._initted||!za(t,e,n,r))&&(s!==a||n||t._zTime===B||!e&&t._zTime)){for(t._zTime=e||(r?B:0),t.ratio=s,t._from&&(s=1-s),t._time=0,t._tTime=u,r||bt(t,"onStart"),i=t._pt;i;)i.r(s,i.d),i=i._next;!s&&t._startAt&&!t._onUpdate&&t._start&&t._startAt.render(e,!0,n),t._onUpdate&&!r&&bt(t,"onUpdate"),u&&t._repeat&&!r&&t.parent&&bt(t,"onRepeat"),(e>=t._tDur||e<0)&&t.ratio===s&&(t.ratio&&qa(t,1),r||(bt(t,t.ratio?"onComplete":"onReverseComplete",!0),t._prom&&t._prom()))}}(this,t,e,r);return this},t.targets=function targets(){return this._targets}
vendor: 21,352 bytes, line 3529
3529,t.invalidate=function invalidate(){return this._pt=this._op=this._startAt=this._onUpdate=this._act=this._lazy=0,this._ptLookup=[],this.timeline&&this.timeline.invalidate(),P.prototype.invalidate.call(this)},t.kill=function kill(t,e){if(void 0===e&&(e="all"),!(t||e&&"all"!==e)&&(this._lazy=0,this.parent))return cb(this);if(this.timeline)return this.timeline.killTweensOf(t,e,It&&!0!==It.vars.overwrite),this;var r,i,a,s,o,u,h,l=this._targets,f=t?yt(t):l,p=this._ptLookup,c=this._pt;if((!e||"all"===e)&&function _arraysMatch(t,e){for(var r=t.length,n=r===e.length;n&&r--&&t[r]===e[r];);return r<0}(l,f))return cb(this);for(r=this._op=this._op||[],"all"!==e&&(n(e)&&(o={},_(e,function(t){return o[t]=1}),e=o),e=function _addAliasesToVars(t,e){var r,n,i,a,s=t[0]?Z(t[0]).harness:0,o=s&&s.aliases;if(!o)return e;for(n in r=dt({},e),o)if(n in r)for(i=(a=o[n].split(",")).length;i--;)r[a[i]]=r[n];return r}(l,e)),h=l.length;h--;)if(~f.indexOf(l[h]))for(o in i=p[h],"all"===e?(r[h]=e,s=i,a={}):(a=r[h]=r[h]||{},s=e),s)(u=i&&i[o])&&("kill"in u.d&&!0!==u.d.kill(o)||pa(this,u,"_pt"),delete i[o]),"all"!==a&&(a[o]=1);return this._initted&&!this._pt&&c&&cb(this),this},Tween.to=function to(t,e,r){return new Tween(t,e,r)},Tween.from=function from(t,e){return new Tween(t,ca(arguments,1))},Tween.delayedCall=function delayedCall(t,e,r,n){return new Tween(e,0,{immediateRender:!1,lazy:!1,overwrite:!1,delay:t,onComplete:e,onReverseComplete:e,onCompleteParams:r,onReverseCompleteParams:r,callbackScope:n})},Tween.fromTo=function fromTo(t,e,r){return new Tween(t,ca(arguments,2))},Tween.set=function set(t,e){return e.duration=0,e.repeatDelay||(e.repeat=0),new Tween(t,e)},Tween.killTweensOf=function killTweensOf(t,e,r){return R.killTweensOf(t,e,r)},Tween}(Et);ha(Vt.prototype,{_targets:[],_lazy:0,_startAt:0,_op:0,_onInit:0}),_("staggerTo,staggerFrom,staggerFromTo",function(r){Vt[r]=function(){var t=new Bt,e=vt.call(arguments,0);return e.splice("staggerFromTo"===r?5:4,0,0),t[r].apply(t,e)}});function Tb(t,e,r){return t.setAttribute(e,r)}function _b(t,e,r,n){n.mSet(t,e,n.m.call(n.tween,r,n.mt),n)}var jt=function _setterPlain(t,e,r){return t[e]=r},Xt=function _setterFunc(t,e,r){return t[e](r)},Zt=function _setterFuncWithParam(t,e,r,n){return t[e](n.fp,r)},Gt=function _getSetter(t,e){return o(t[e])?Xt:q(t[e])&&t.setAttribute?Tb:jt},Qt=function _renderPlain(t,e){return e.set(e.t,e.p,Math.round(1e4*(e.s+e.c*t))/1e4,e)},Wt=function _renderBoolean(t,e){return e.set(e.t,e.p,!!(e.s+e.c*t),e)},Ht=function _renderComplexString(t,e){var r=e._pt,n="";if(!t&&e.b)n=e.b;else if(1===t&&e.e)n=e.e;else{for(;r;)n=r.p+(r.m?r.m(r.s+r.c*t):Math.round(1e4*(r.s+r.c*t))/1e4)+n,r=r._next;n+=e.c}e.set(e.t,e.p,n,e)},$t=function _renderPropTweens(t,e){for(var r=e._pt;r;)r.r(t,r.d),r=r._next},Kt=function _addPluginModifier(t,e,r,n){for(var i,a=this._pt;a;)i=a._next,a.p===n&&a.modifier(t,e,r),a=i},Jt=function _killPropTweensOf(t){for(var e,r,n=this._pt;n;)r=n._next,n.p===t&&!n.op||n.op===t?pa(this,n,"_pt"):n.dep||(e=1),n=r;return!e},te=function _sortPropTweensByPriority(t){for(var e,r,n,i,a=t._pt;a;){for(e=a._next,r=n;r&&r.pr>a.pr;)r=r._next;(a._prev=r?r._prev:i)?a._prev._next=a:n=a,(a._next=r)?r._prev=a:i=a,a=e}t._pt=n},ee=(PropTween.prototype.modifier=function modifier(t,e,r){this.mSet=this.mSet||this.set,this.set=_b,this.m=t,this.mt=r,this.tween=e},PropTween);function PropTween(t,e,r,n,i,a,s,o,u){this.t=e,this.s=n,this.c=i,this.p=r,this.r=a||Qt,this.d=s||this,this.set=o||jt,this.pr=u||0,(this._next=t)&&(t._prev=this)}_(ct+",parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert",function(t){st[t]=1,"on"===t.substr(0,2)&&(st[t+"Params"]=1)}),at.TweenMax=at.TweenLite=Vt,at.TimelineLite=at.TimelineMax=Bt,R=new Bt({sortChildren:!1,defaults:E,autoRemoveChildren:!0,id:"root",smoothChildTiming:!0}),U.stringFilter=nb;var re={registerPlugin:function registerPlugin(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];e.forEach(function(t){return function _createPlugin(t){var e=(t=!t.name&&t.default||t).name,r=o(t),n=e&&!r&&t.init?function(){this._props=[]}:t,i={init:O,render:$t,add:Lt,kill:Jt,modifier:Kt,rawVars:0},a={targetTest:0,get:0,getSetter:Gt,aliases:{},register:0};if(Pt(),t!==n){if(ht[e])return;ha(n,ha(la(t,i),a)),dt(n.prototype,dt(i,la(t,a))),ht[n.prop=e]=n,t.targetTest&&(pt.push(n),st[e]=1),e=("css"===e?"CSS":e.charAt(0).toUpperCase()+e.substr(1))+"Plugin"}N(e,n),t.register&&t.register(ne,n,ee)}(t)})},timeline:function timeline(t){return new Bt(t)},getTweensOf:function getTweensOf(t,e){return R.getTweensOf(t,e)},getProperty:function getProperty(i,t,e,r){n(i)&&(i=yt(i)[0]);var a=Z(i||{}).get,s=e?ga:fa;return"native"===e&&(e=""),i?t?s((ht[t]&&ht[t].get||a)(i,t,e,r)):function(t,e,r){return s((ht[t]&&ht[t].get||a)(i,t,e,r))}:i},quickSetter:function quickSetter(r,e,n){if(1<(r=yt(r)).length){var i=r.map(function(t){return ne.quickSetter(t,e,n)}),a=i.length;return function(t){for(var e=a;e--;)i[e](t)}}r=r[0]||{};var s=ht[e],o=Z(r),u=s?function(t){var e=new s;d._pt=0,e.init(r,n?t+n:t,d,0,[r]),e.render(1,e),d._pt&&$t(1,d)}:o.set(r,e);return s?u:function(t){return u(r,e,n?t+n:t,o,1)}},isTweening:function isTweening(t){return 0<R.getTweensOf(t,!0).length},defaults:function defaults(t){return t&&t.ease&&(t.ease=Dt(t.ease,E.ease)),ka(E,t||{})},config:function config(t){return ka(U,t||{})},registerEffect:function registerEffect(t){var i=t.name,n=t.effect,e=t.plugins,a=t.defaults,s=t.extendTimeline;(e||"").split(",").forEach(function(t){return t&&!ht[t]&&!at[t]&&M(i+" effect requires "+t+" plugin.")}),lt[i]=function(t,e){return n(yt(t),ha(e||{},a))},s&&(Bt.prototype[i]=function(t,e,n){return this.add(lt[i](t,r(e)?e:(n=e)&&{}),n)})},registerEase:function registerEase(t,e){Ct[t]=Dt(e)},parseEase:function parseEase(t,e){return arguments.length?Dt(t,e):Ct},getById:function getById(t){return R.getById(t)},exportRoot:function exportRoot(t,e){void 0===t&&(t={});var r,n,i=new Bt(t);for(i.smoothChildTiming=s(t.smoothChildTiming),R.remove(i),i._dp=0,i._time=i._tTime=R._time,r=R._first;r;)n=r._next,!e&&!r._dur&&r instanceof Vt&&r.vars.onComplete===r._targets[0]||ya(i,r,r._start-r._delay),r=n;return ya(R,i,0),i},utils:{wrap:function wrap(e,t,r){var n=t-e;return W(e)?Wa(e,wrap(0,e.length),t):Ga(r,function(t){return(n+(t-e)%n)%n+e})},wrapYoyo:function wrapYoyo(e,t,r){var n=t-e,i=2*n;return W(e)?Wa(e,wrapYoyo(0,e.length-1),t):Ga(r,function(t){return e+(n<(t=(i+(t-e)%i)%i)?i-t:t)})},distribute:Pa,random:Sa,snap:Ra,normalize:function normalize(t,e,r){return Tt(t,e,0,1,r)},getUnit:Ia,clamp:function clamp(e,r,t){return Ga(t,function(t){return gt(e,r,t)})},splitColor:ib,toArray:yt,mapRange:Tt,pipe:function pipe(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return function(t){return e.reduce(function(t,e){return e(t)},t)}},unitize:function unitize(e,r){return function(t){return e(parseFloat(t))+(r||Ia(t))}},interpolate:function interpolate(e,r,t,i){var a=isNaN(e+r)?0:function(t){return(1-t)*e+t*r};if(!a){var s,o,u,h,l,f=n(e),p={};if(!0===t&&(i=1)&&(t=null),f)e={p:e},r={p:r};else if(W(e)&&!W(r)){for(u=[],h=e.length,l=h-2,o=1;o<h;o++)u.push(interpolate(e[o-1],e[o]));h--,a=function func(t){t*=h;var e=Math.min(l,~~t);return u[e](t-e)},t=r}else i||(e=dt(W(e)?[]:{},e));if(!u){for(s in r)Lt.call(p,e,s,"get",r[s]);a=function func(t){return $t(t,p)||(f?e.p:e)}}}return Ga(t,a)},shuffle:Oa},install:K,effects:lt,ticker:Mt,updateRoot:Bt.updateRoot,plugins:ht,globalTimeline:R,core:{PropTween:ee,globals:N,Tween:Vt,Timeline:Bt,Animation:Et,getCache:Z}};_("to,from,fromTo,delayedCall,set,killTweensOf",function(t){return re[t]=Vt[t]}),Mt.add(Bt.updateRoot),d=re.to({},{duration:0});function dc(t,e){for(var r=t._pt;r&&r.p!==e&&r.op!==e&&r.fp!==e;)r=r._next;return r}function fc(t,a){return{name:t,rawVars:1,init:function init(t,i,e){e._onInit=function(t){var e,r;if(n(i)&&(e={},_(i,function(t){return e[t]=1}),i=e),a){for(r in e={},i)e[r]=a(i[r]);i=e}!function _addModifiers(t,e){var r,n,i,a=t._targets;for(r in e)for(n=a.length;n--;)(i=(i=t._ptLookup[n][r])&&i.d)&&(i._pt&&(i=dc(i,r)),i&&i.modifier&&i.modifier(e[r],t,a[n],r))}(t,i)}}}}var ne=re.registerPlugin({name:"attr",init:function init(t,e,r,n,i){for(var a in e)this.add(t,"setAttribute",(t.getAttribute(a)||0)+"",e[a],n,i,0,0,a),this._props.push(a)}},{name:"endArray",init:function init(t,e){for(var r=e.length;r--;)this.add(t,r,t[r]||0,e[r])}},fc("roundProps",Qa),fc("modifiers"),fc("snap",Ra))||re;Vt.version=Bt.version=ne.version="3.2.0",f=1,t()&&Pt();function Qc(t,e){return e.set(e.t,e.p,Math.round(1e4*(e.s+e.c*t))/1e4+e.u,e)}function Rc(t,e){return e.set(e.t,e.p,1===t?e.e:Math.round(1e4*(e.s+e.c*t))/1e4+e.u,e)}function Sc(t,e){return e.set(e.t,e.p,t?Math.round(1e4*(e.s+e.c*t))/1e4+e.u:e.b,e)}function Tc(t,e){var r=e.s+e.c*t;e.set(e.t,e.p,~~(r+(r<0?-.5:.5))+e.u,e)}function Uc(t,e){return e.set(e.t,e.p,t?e.e:e.b,e)}function Vc(t,e){return e.set(e.t,e.p,1!==t?e.b:e.e,e)}function Wc(t,e,r){return t.style[e]=r}function Xc(t,e,r){return t.style.setProperty(e,r)}function Yc(t,e,r){return t._gsap[e]=r}function Zc(t,e,r){return t._gsap.scaleX=t._gsap.scaleY=r}function $c(t,e,r,n,i){var a=t._gsap;a.scaleX=a.scaleY=r,a.renderTransform(i,a)}function _c(t,e,r,n,i){var a=t._gsap;a[e]=r,a.renderTransform(i,a)}function dd(t,e){var r=ae.createElementNS?ae.createElementNS((e||"http://www.w3.org/1999/xhtml").replace(/^https/,"http"),t):ae.createElement(t);return r.style?r:ae.createElement(t)}function ed(t,e,r){var n=getComputedStyle(t);return n[e]||n.getPropertyValue(e.replace(Re,"-$1").toLowerCase())||n.getPropertyValue(e)||!r&&ed(t,Ne(e)||e,1)||""}function hd(){!function _windowExists(){return"undefined"!=typeof window}()||(ie=window,ae=ie.document,se=ae.documentElement,ue=dd("div")||{style:{}},he=dd("div"),Le=Ne(Le),qe=Ne(qe),ue.style.cssText="border-width:0;line-height:0;position:absolute;padding:0",fe=!!Ne("perspective"),oe=1)}function jd(t,e){for(var r=e.length;r--;)if(t.hasAttribute(e[r]))return t.getAttribute(e[r])}function kd(e){var r;try{r=e.getBBox()}catch(t){r=function _getBBoxHack(t){var e,r=dd("svg",this.ownerSVGElement&&this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),n=this.parentNode,i=this.nextSibling,a=this.style.cssText;if(se.appendChild(r),r.appendChild(this),this.style.display="block",t)try{e=this.getBBox(),this._gsapBBox=this.getBBox,this.getBBox=_getBBoxHack}catch(t){}else this._gsapBBox&&(e=this._gsapBBox());return i?n.insertBefore(this,i):n.appendChild(this),se.removeChild(r),this.style.cssText=a,e}.call(e,!0)}return!r||r.width||r.x||r.y?r:{x:+jd(e,["x","cx","x1"])||0,y:+jd(e,["y","cy","y1"])||0,width:0,height:0}}function ld(t){return!(!t.getCTM||t.parentNode&&!t.ownerSVGElement||!kd(t))}function md(t,e){if(e){var r=t.style;e in Ae&&(e=Le),r.removeProperty?("ms"!==e.substr(0,2)&&"webkit"!==e.substr(0,6)||(e="-"+e),r.removeProperty(e.replace(Re,"-$1").toLowerCase())):r.removeAttribute(e)}}function nd(t,e,r,n,i,a){var s=new ee(t._pt,e,r,0,1,a?Vc:Uc);return(t._pt=s).b=n,s.e=i,t._props.push(r),s}function pd(t,e,r,n){var i,a,s,o,u=parseFloat(r)||0,h=(r+"").trim().substr((u+"").length)||"px",l=ue.style,f=Ee.test(e),p="svg"===t.tagName.toLowerCase(),c=(p?"client":"offset")+(f?"Width":"Height"),d="px"===n;return n===h||!u||Ue[n]||Ue[h]?u:(o=t.getCTM&&ld(t),"%"===n&&(Ae[e]||~e.indexOf("adius"))?aa(u/(o?t.getBBox()[f?"width":"height"]:t[c])*100):(l[f?"width":"height"]=100+(d?h:n),a=~e.indexOf("adius")||"em"===n&&t.appendChild&&!p?t:t.parentNode,o&&(a=(t.ownerSVGElement||{}).parentNode),a&&a!==ae&&a.appendChild||(a=ae.body),(s=a._gsap)&&"%"===n&&s.width&&f&&s.time===Mt.time?aa(u/s.width*100):(a===t&&(l.position="static"),a.appendChild(ue),i=ue[c],a.removeChild(ue),l.position="absolute",f&&"%"===n&&((s=Z(a)).time=Mt.time,s.width=a[c]),aa(d?i*u/100:100/i*u))))}function qd(t,e,r,n){var i;return oe||hd(),e in Ie&&"transform"!==e&&~(e=Ie[e]).indexOf(",")&&(e=e.split(",")[0]),Ae[e]&&"transform"!==e?(i=Ge(t,n),i="transformOrigin"!==e?i[e]:Qe(ed(t,qe))+" "+i.zOrigin+"px"):(i=t.style[e])&&"auto"!==i&&!n&&!~(i+"").indexOf("calc(")||(i=je[e]&&je[e](t,e,r)||ed(t,e)||$(t,e)||("opacity"===e?1:0)),r&&!~(i+"").indexOf(" ")?pd(t,e,i,r)+r:i}function rd(t,e,r,n){if(!r||"none"===r){var i=Ne(e,t,1),a=i&&ed(t,i,1);a&&a!==r&&(e=i,r=a)}var s,o,u,h,l,f,p,c,d,_,m,g,v=new ee(this._pt,t.style,e,0,1,Ht),y=0,T=0;if(v.b=r,v.e=n,r+="","auto"===(n+="")&&(t.style[e]=n,n=ed(t,e)||n,t.style[e]=r),nb(s=[r,n]),n=s[1],u=(r=s[0]).match(tt)||[],(n.match(tt)||[]).length){for(;o=tt.exec(n);)p=o[0],d=n.substring(y,o.index),l?l=(l+1)%5:"rgba("!==d.substr(-5)&&"hsla("!==d.substr(-5)||(l=1),p!==(f=u[T++]||"")&&(h=parseFloat(f)||0,m=f.substr((h+"").length),(g="="===p.charAt(1)?+(p.charAt(0)+"1"):0)&&(p=p.substr(2)),c=parseFloat(p),_=p.substr((c+"").length),y=tt.lastIndex-_.length,_||(_=_||U.units[e]||m,y===n.length&&(n+=_,v.e+=_)),m!==_&&(h=pd(t,e,f,_)||0),v._pt={_next:v._pt,p:d||1===T?d:",",s:h,c:g?g*c:c-h,m:l&&l<4?Math.round:0});v.c=y<n.length?n.substring(y,n.length):""}else v.r="display"===e&&"none"===n?Vc:Uc;return nt.test(n)&&(v.e=0),this._pt=v}function td(t){var e=t.split(" "),r=e[0],n=e[1]||"50%";return"top"!==r&&"bottom"!==r&&"left"!==n&&"right"!==n||(t=r,r=n,n=t),e[0]=Ve[r]||r,e[1]=Ve[n]||n,e.join(" ")}function ud(t,e){if(e.tween&&e.tween._time===e.tween._dur){var r,n,i,a=e.t,s=a.style,o=e.u;if("all"===o||!0===o)s.cssText="",n=1;else for(i=(o=o.split(",")).length;-1<--i;)r=o[i],Ae[r]&&(n=1,r="transformOrigin"===r?qe:Le),md(a,r);n&&(md(a,Le),(n=a._gsap)&&(n.svg&&a.removeAttribute("transform"),Ge(a,1)))}}function yd(t){return"matrix(1, 0, 0, 1, 0, 0)"===t||"none"===t||!t}function zd(t){var e=ed(t,Le);return yd(e)?Xe:e.substr(7).match(J).map(aa)}function Ad(t,e){var r,n,i,a,s=t._gsap,o=t.style,u=zd(t);return s.svg&&t.getAttribute("transform")?"1,0,0,1,0,0"===(u=[(i=t.transform.baseVal.consolidate().matrix).a,i.b,i.c,i.d,i.e,i.f]).join(",")?Xe:u:(u!==Xe||t.offsetParent||t===se||s.svg||(i=o.display,o.display="block",(r=t.parentNode)&&t.offsetParent||(a=1,n=t.nextSibling,se.appendChild(t)),u=zd(t),i?o.display=i:md(t,"display"),a&&(n?r.insertBefore(t,n):r?r.appendChild(t):se.removeChild(t))),e&&6<u.length?[u[0],u[1],u[4],u[5],u[12],u[13]]:u)}function Bd(t,e,r,n,i,a){var s,o,u,h=t._gsap,l=i||Ad(t,!0),f=h.xOrigin||0,p=h.yOrigin||0,c=h.xOffset||0,d=h.yOffset||0,_=l[0],m=l[1],g=l[2],v=l[3],y=l[4],T=l[5],b=e.split(" "),w=parseFloat(b[0])||0,x=parseFloat(b[1])||0;r?l!==Xe&&(o=_*v-m*g)&&(u=w*(-m/o)+x*(_/o)-(_*T-m*y)/o,w=w*(v/o)+x*(-g/o)+(g*T-v*y)/o,x=u):(w=(s=kd(t)).x+(~b[0].indexOf("%")?w/100*s.width:w),x=s.y+(~(b[1]||b[0]).indexOf("%")?x/100*s.height:x)),n||!1!==n&&h.smooth?(y=w-f,T=x-p,h.xOffset=c+(y*_+T*g)-y,h.yOffset=d+(y*m+T*v)-T):h.xOffset=h.yOffset=0,h.xOrigin=w,h.yOrigin=x,h.smooth=!!n,h.origin=e,h.originIsAbsolute=!!r,t.style[qe]="0px 0px",a&&(nd(a,h,"xOrigin",f,w),nd(a,h,"yOrigin",p,x),nd(a,h,"xOffset",c,h.xOffset),nd(a,h,"yOffset",d,h.yOffset))}function Ed(t,e,r){var n=Ia(e);return aa(parseFloat(e)+parseFloat(pd(t,"x",r+"px",n)))+n}function Ld(t,e,r,i,a,s){var o,u,h=360,l=n(a),f=parseFloat(a)*(l&&~a.indexOf("rad")?Fe:1),p=s?f*s:f-i,c=i+p+"deg";return l&&("short"===(o=a.split("_")[1])&&(p%=h)!==p%180&&(p+=p<0?h:-h),"cw"===o&&p<0?p=(p+36e9)%h-~~(p/h)*h:"ccw"===o&&0<p&&(p=(p-36e9)%h-~~(p/h)*h)),t._pt=u=new ee(t._pt,e,r,i,p,Rc),u.e=c,u.u="deg",t._props.push(r),u}function Md(t,e,r){var n,i,a,s,o,u,h,l=he.style,f=r._gsap;for(i in l.cssText=getComputedStyle(r).cssText+";position:absolute;display:block;",l[Le]=e,ae.body.appendChild(he),n=Ge(he,1),Ae)(a=f[i])!==(s=n[i])&&"perspective,force3D,transformOrigin,svgOrigin".indexOf(i)<0&&(o=Ia(a)!==(h=Ia(s))?pd(r,i,a,h):parseFloat(a),u=parseFloat(s),t._pt=new ee(t._pt,f,i,o,u-o,Qc),t._pt.u=h||0,t._props.push(i));ae.body.removeChild(he)}var ie,ae,se,oe,ue,he,le,fe,pe=Ct.Power0,ce=Ct.Power1,de=Ct.Power2,_e=Ct.Power3,me=Ct.Power4,ge=Ct.Linear,ve=Ct.Quad,ye=Ct.Cubic,Te=Ct.Quart,be=Ct.Quint,we=Ct.Strong,xe=Ct.Elastic,ke=Ct.Back,Oe=Ct.SteppedEase,Me=Ct.Bounce,Pe=Ct.Sine,Ce=Ct.Expo,Se=Ct.Circ,Ae={},Fe=180/Math.PI,De=Math.PI/180,ze=Math.atan2,Re=/([A-Z])/g,Ee=/(?:left|right|width|margin|padding|x)/i,Be=/[\s,\(]\S/,Ie={autoAlpha:"opacity,visibility",scale:"scaleX,scaleY",alpha:"opacity"},Le="transform",qe=Le+"Origin",Ye="O,Moz,ms,Ms,Webkit".split(","),Ne=function _checkPropPrefix(t,e,r){var n=(e||ue).style,i=5;if(t in n&&!r)return t;for(t=t.charAt(0).toUpperCase()+t.substr(1);i--&&!(Ye[i]+t in n););return i<0?null:(3===i?"ms":0<=i?Ye[i]:"")+t},Ue={deg:1,rad:1,turn:1},Ve={top:"0%",bottom:"100%",left:"0%",right:"100%",center:"50%"},je={clearProps:function clearProps(t,e,r,n,i){if("isFromStart"!==i.data){var a=t._pt=new ee(t._pt,e,r,0,0,ud);return a.u=n,a.pr=-10,a.tween=i,t._props.push(r),1}}},Xe=[1,0,0,1,0,0],Ze={},Ge=function _parseTransform(t,e){var r=t._gsap||new Rt(t);if("x"in r&&!e&&!r.uncache)return r;var n,i,a,s,o,u,h,l,f,p,c,d,_,m,g,v,y,T,b,w,x,k,O,M,P,C,S,A,F,D,z=t.style,R=r.scaleX<0,E=r.xOrigin||0,B=r.yOrigin||0,I="deg",L=ed(t,qe)||"0";return n=i=a=u=h=l=f=p=c=0,s=o=1,r.svg=!(!t.getCTM||!ld(t)),d=Ad(t,r.svg),r.svg&&Bd(t,L,r.originIsAbsolute,!1!==r.smooth,d),d!==Xe&&(v=d[0],y=d[1],T=d[2],b=d[3],n=w=d[4],i=x=d[5],6===d.length?(s=Math.sqrt(v*v+y*y),o=Math.sqrt(b*b+T*T),u=v||y?ze(y,v)*Fe:0,f=T||b?ze(T,b)*Fe+u:0,r.svg&&(n-=E-(E*v+B*T),i-=B-(E*y+B*b))):(D=d[6],A=d[7],P=d[8],C=d[9],S=d[10],F=d[11],n=d[12],i=d[13],a=d[14],h=(_=ze(D,S))*Fe,_&&(k=w*(m=Math.cos(-_))+P*(g=Math.sin(-_)),O=x*m+C*g,M=D*m+S*g,P=w*-g+P*m,C=x*-g+C*m,S=D*-g+S*m,F=A*-g+F*m,w=k,x=O,D=M),l=(_=ze(-T,S))*Fe,_&&(m=Math.cos(-_),F=b*(g=Math.sin(-_))+F*m,v=k=v*m-P*g,y=O=y*m-C*g,T=M=T*m-S*g),u=(_=ze(y,v))*Fe,_&&(k=v*(m=Math.cos(_))+y*(g=Math.sin(_)),O=w*m+x*g,y=y*m-v*g,x=x*m-w*g,v=k,w=O),h&&359.9<Math.abs(h)+Math.abs(u)&&(h=u=0,l=180-l),s=aa(Math.sqrt(v*v+y*y+T*T)),o=aa(Math.sqrt(x*x+D*D)),_=ze(w,x),f=2e-4<Math.abs(_)?_*Fe:0,c=F?1/(F<0?-F:F):0),r.svg&&(d=t.getAttribute("transform"),r.forceCSS=t.setAttribute("transform","")||!yd(ed(t,Le)),d&&t.setAttribute("transform",d))),90<Math.abs(f)&&Math.abs(f)<270&&(R?(s*=-1,f+=u<=0?180:-180,u+=u<=0?180:-180):(o*=-1,f+=f<=0?180:-180)),r.x=((r.xPercent=n&&Math.round(t.offsetWidth/2)===Math.round(-n)?-50:0)?0:n)+"px",r.y=((r.yPercent=i&&Math.round(t.offsetHeight/2)===Math.round(-i)?-50:0)?0:i)+"px",r.z=a+"px",r.scaleX=aa(s),r.scaleY=aa(o),r.rotation=aa(u)+I,r.rotationX=aa(h)+I,r.rotationY=aa(l)+I,r.skewX=f+I,r.skewY=p+I,r.transformPerspective=c+"px",(r.zOrigin=parseFloat(L.split(" ")[2])||0)&&(z[qe]=Qe(L)),r.xOffset=r.yOffset=0,r.force3D=U.force3D,r.renderTransform=r.svg?tr:fe?Je:We,r.uncache=0,r},Qe=function _firstTwoOnly(t){return(t=t.split(" "))[0]+" "+t[1]},We=function _renderNon3DTransforms(t,e){e.z="0px",e.rotationY=e.rotationX="0deg",e.force3D=0,Je(t,e)},He="0deg",$e="0px",Ke=") ",Je=function _renderCSSTransforms(t,e){var r=e||this,n=r.xPercent,i=r.yPercent,a=r.x,s=r.y,o=r.z,u=r.rotation,h=r.rotationY,l=r.rotationX,f=r.skewX,p=r.skewY,c=r.scaleX,d=r.scaleY,_=r.transformPerspective,m=r.force3D,g=r.target,v=r.zOrigin,y="",T="auto"===m&&t&&1!==t||!0===m;if(v&&(l!==He||h!==He)){var b,w=parseFloat(h)*De,x=Math.sin(w),k=Math.cos(w);w=parseFloat(l)*De,b=Math.cos(w),a=Ed(g,a,x*b*-v),s=Ed(g,s,-Math.sin(w)*-v),o=Ed(g,o,k*b*-v+v)}_!==$e&&(y+="perspective("+_+Ke),(n||i)&&(y+="translate("+n+"%, "+i+"%) "),!T&&a===$e&&s===$e&&o===$e||(y+=o!==$e||T?"translate3d("+a+", "+s+", "+o+") ":"translate("+a+", "+s+Ke),u!==He&&(y+="rotate("+u+Ke),h!==He&&(y+="rotateY("+h+Ke),l!==He&&(y+="rotateX("+l+Ke),f===He&&p===He||(y+="skew("+f+", "+p+Ke),1===c&&1===d||(y+="scale("+c+", "+d+Ke),g.style[Le]=y||"translate(0, 0)"},tr=function _renderSVGTransforms(t,e){var r,n,i,a,s,o=e||this,u=o.xPercent,h=o.yPercent,l=o.x,f=o.y,p=o.rotation,c=o.skewX,d=o.skewY,_=o.scaleX,m=o.scaleY,g=o.target,v=o.xOrigin,y=o.yOrigin,T=o.xOffset,b=o.yOffset,w=o.forceCSS,x=parseFloat(l),k=parseFloat(f);p=parseFloat(p),c=parseFloat(c),(d=parseFloat(d))&&(c+=d=parseFloat(d),p+=d),p||c?(p*=De,c*=De,r=Math.cos(p)*_,n=Math.sin(p)*_,i=Math.sin(p-c)*-m,a=Math.cos(p-c)*m,c&&(d*=De,s=Math.tan(c-d),i*=s=Math.sqrt(1+s*s),a*=s,d&&(s=Math.tan(d),r*=s=Math.sqrt(1+s*s),n*=s)),r=aa(r),n=aa(n),i=aa(i),a=aa(a)):(r=_,a=m,n=i=0),(x&&!~(l+"").indexOf("px")||k&&!~(f+"").indexOf("px"))&&(x=pd(g,"x",l,"px"),k=pd(g,"y",f,"px")),(v||y||T||b)&&(x=aa(x+v-(v*r+y*i)+T),k=aa(k+y-(v*n+y*a)+b)),(u||h)&&(s=g.getBBox(),x=aa(x+u/100*s.width),k=aa(k+h/100*s.height)),s="matrix("+r+","+n+","+i+","+a+","+x+","+k+")",g.setAttribute("transform",s),w&&(g.style[Le]=s)};_("padding,margin,Width,Radius",function(e,r){var t="Right",n="Bottom",i="Left",o=(r<3?["Top",t,n,i]:["Top"+i,"Top"+t,n+t,n+i]).map(function(t){return r<2?e+t:"border"+t+e});je[1<r?"border"+e:e]=function(e,t,r,n,i){var a,s;if(arguments.length<4)return a=o.map(function(t){return qd(e,t,r)}),5===(s=a.join(" ")).split(a[0]).length?a[0]:s;a=(n+"").split(" "),s={},o.forEach(function(t,e){return s[t]=a[e]=a[e]||a[(e-1)/2|0]}),e.init(t,s,i)}});var er,rr,nr,ir={name:"css",register:hd,targetTest:function targetTest(t){return t.style&&t.nodeType},init:function init(t,e,r,n,i){var a,s,o,u,h,l,f,p,c,d,_,m,g,v,y,T=this._props,b=t.style;for(f in oe||hd(),e)if("autoRound"!==f&&(s=e[f],!ht[f]||!Ib(f,e,r,n,t,i)))if(h=typeof s,l=je[f],"function"===h&&
3529(h=typeof(s=s.call(r,n,t,i))),"string"===h&&~s.indexOf("random(")&&(s=Za(s)),l)l(this,t,f,s,r)&&(y=1);else if("--"===f.substr(0,2))this.add(b,"setProperty",getComputedStyle(t).getPropertyValue(f)+"",s+"",n,i,0,0,f);else{if(a=qd(t,f),u=parseFloat(a),(d="string"===h&&"="===s.charAt(1)?+(s.charAt(0)+"1"):0)&&(s=s.substr(2)),o=parseFloat(s),f in Ie&&("autoAlpha"===f&&(1===u&&"hidden"===qd(t,"visibility")&&o&&(u=0),nd(this,b,"visibility",u?"inherit":"hidden",o?"inherit":"hidden",!o)),"scale"!==f&&"transform"!==f&&~(f=Ie[f]).indexOf(",")&&(f=f.split(",")[0])),_=f in Ae)if(m||((g=t._gsap).renderTransform||Ge(t),v=!1!==e.smoothOrigin&&g.smooth,(m=this._pt=new ee(this._pt,b,Le,0,1,g.renderTransform,g,0,-1)).dep=1),"scale"===f)this._pt=new ee(this._pt,g,"scaleY",g.scaleY,d?d*o:o-g.scaleY),T.push("scaleY",f),f+="X";else{if("transformOrigin"===f){s=td(s),g.svg?Bd(t,s,0,v,0,this):((c=parseFloat(s.split(" ")[2]))!==g.zOrigin&&nd(this,g,"zOrigin",g.zOrigin,c),nd(this,b,f,Qe(a),Qe(s)));continue}if("svgOrigin"===f){Bd(t,s,1,v,0,this);continue}if(f in Ze){Ld(this,g,f,u,s,d);continue}if("smoothOrigin"===f){nd(this,g,"smooth",g.smooth,s);continue}if("force3D"===f){g[f]=s;continue}if("transform"===f){Md(this,s,t);continue}}else f in b||(f=Ne(f)||f);if(_||(o||0===o)&&(u||0===u)&&!Be.test(s)&&f in b)(p=(a+"").substr((u+"").length))!==(c=(s+"").substr((o+"").length)||(f in U.units?U.units[f]:p))&&(u=pd(t,f,a,c)),this._pt=new ee(this._pt,_?g:b,f,u,d?d*o:o-u,"px"!==c||!1===e.autoRound||_?Qc:Tc),this._pt.u=c||0,p!==c&&(this._pt.b=a,this._pt.r=Sc);else if(f in b)rd.call(this,t,f,a,s);else{if(!(f in t)){L(f,s);continue}this.add(t,f,t[f],s,n,i)}T.push(f)}y&&te(this)},get:qd,aliases:Ie,getSetter:function getSetter(t,e,r){var n=Ie[e];return n&&n.indexOf(",")<0&&(e=n),e in Ae&&e!==qe&&(t._gsap.x||qd(t,"x"))?r&&le===r?"scale"===e?Zc:Yc:(le=r||{})&&("scale"===e?$c:_c):t.style&&!q(t.style[e])?Wc:~e.indexOf("-")?Xc:Gt(t,e)}};ne.utils.checkPrefix=Ne,nr=_((er="x,y,z,scale,scaleX,scaleY,xPercent,yPercent")+","+(rr="rotation,rotationX,rotationY,skewX,skewY")+",transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective",function(t){Ae[t]=1}),_(rr,function(t){U.units[t]="deg",Ze[t]=1}),Ie[nr[13]]=er+","+rr,_("0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY",function(t){var e=t.split(":");Ie[e[1]]=nr[e[0]]}),_("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",function(t){U.units[t]="px"}),ne.registerPlugin(ir);var ar=ne.registerPlugin(ir)||ne,sr=ar.core.Tween;e.Back=ke,e.Bounce=Me,e.CSSPlugin=ir,e.Circ=Se,e.Cubic=ye,e.Elastic=xe,e.Expo=Ce,e.Linear=ge,e.Power0=pe,e.Power1=ce,e.Power2=de,e.Power3=_e,e.Power4=me,e.Quad=ve,e.Quart=Te,e.Quint=be,e.Sine=Pe,e.SteppedEase=Oe,e.Strong=we,e.TimelineLite=Bt,e.TimelineMax=Bt,e.TweenLite=Vt,e.TweenMax=sr,e.default=ar,e.gsap=ar;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}});
3530//# sourceMappingURL=gsap.min.js.map
3531
3532/*! ScrollMagic v2.0.7 | (c) 2019 Jan Paepke (@janpaepke) | license & info: http://scrollmagic.io */
3533!function(e,n){"function"==typeof define&&define.amd?define(["ScrollMagic","TweenMax","TimelineMax"],n):"object"==typeof exports?(require("gsap"),n(require("scrollmagic"),TweenMax,TimelineMax)):n(e.ScrollMagic||e.jQuery&&e.jQuery.ScrollMagic,e.TweenMax||e.TweenLite,e.TimelineMax||e.TimelineLite)}(this,function(e,s,u){"use strict";e.Scene.addOption("tweenChanges",!1,function(e){return!!e}),e.Scene.extend(function(){var i,o=this;o.on("progress.plugin_gsap",function(){a()}),o.on("destroy.plugin_gsap",function(e){o.removeTween(e.reset)});var a=function(){if(i){var e=o.progress(),n=o.state();i.repeat&&-1===i.repeat()?"DURING"===n&&i.paused()?i.play():"DURING"===n||i.paused()||i.pause():e!=i.progress()&&(0===o.duration()?0<e?i.play():i.reverse():o.tweenChanges()&&i.tweenTo?i.tweenTo(e*i.duration()):i.progress(e).pause())}};o.setTween=function(e,n,r){var t;1<arguments.length&&(arguments.length<3&&(r=n,n=1),e=s.to(e,n,r));try{(t=u?new u({smoothChildTiming:!0}).add(e):e).pause()}catch(e){return o}return i&&o.removeTween(),i=t,e.repeat&&-1===e.repeat()&&(i.repeat(-1),i.yoyo(e.yoyo())),a(),o},o.removeTween=function(e){return i&&(e&&i.progress(0).pause(),i.kill(),i=void 0),o}})});
3534/*!
3535 * VERSION: 2.1.3
3536 * DATE: 2019-05-17
3537 * UPDATES AND DOCS AT: http://greensock.com
3538 *
3539 * @license Copyright (c) 2008-2019, GreenSock. All rights reserved.
3540 * This work is subject to the terms at http://greensock.com/standard-license or for
vendor: 8,276 bytes, lines 3541-3545
3541 * Club GreenSock members, the software agreement that was issued with your membership.
3542 * 
3543 * @author: Jack Doyle, [email protected]
3544 */
3545!function(a,b){"use strict";var c={},d=a.document,e=a.GreenSockGlobals=a.GreenSockGlobals||a,f=e[b];if(f)return"undefined"!=typeof module&&module.exports&&(module.exports=f),f;var g,h,i,j,k,l=function(a){var b,c=a.split("."),d=e;for(b=0;b<c.length;b++)d[c[b]]=d=d[c[b]]||{};return d},m=l("com.greensock"),n=1e-8,o=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},p=function(){},q=function(){var a=Object.prototype.toString,b=a.call([]);return function(c){return null!=c&&(c instanceof Array||"object"==typeof c&&!!c.push&&a.call(c)===b)}}(),r={},s=function(d,f,g,h){this.sc=r[d]?r[d].sc:[],r[d]=this,this.gsClass=null,this.func=g;var i=[];this.check=function(j){for(var k,m,n,o,p=f.length,q=p;--p>-1;)(k=r[f[p]]||new s(f[p],[])).gsClass?(i[p]=k.gsClass,q--):j&&k.sc.push(this);if(0===q&&g){if(m=("com.greensock."+d).split("."),n=m.pop(),o=l(m.join("."))[n]=this.gsClass=g.apply(g,i),h)if(e[n]=c[n]=o,"undefined"!=typeof module&&module.exports)if(d===b){module.exports=c[b]=o;for(p in c)o[p]=c[p]}else c[b]&&(c[b][n]=o);else"function"==typeof define&&define.amd&&define((a.GreenSockAMDPath?a.GreenSockAMDPath+"/":"")+d.split(".").pop(),[],function(){return o});for(p=0;p<this.sc.length;p++)this.sc[p].check()}},this.check(!0)},t=a._gsDefine=function(a,b,c,d){return new s(a,b,c,d)},u=m._class=function(a,b,c){return b=b||function(){},t(a,[],function(){return b},c),b};t.globals=e;var v=[0,0,1,1],w=u("easing.Ease",function(a,b,c,d){this._func=a,this._type=c||0,this._power=d||0,this._params=b?v.concat(b):v},!0),x=w.map={},y=w.register=function(a,b,c,d){for(var e,f,g,h,i=b.split(","),j=i.length,k=(c||"easeIn,easeOut,easeInOut").split(",");--j>-1;)for(f=i[j],e=d?u("easing."+f,null,!0):m.easing[f]||{},g=k.length;--g>-1;)h=k[g],x[f+"."+h]=x[h+f]=e[h]=a.getRatio?a:a[h]||new a};for(i=w.prototype,i._calcEnd=!1,i.getRatio=function(a){if(this._func)return this._params[0]=a,this._func.apply(null,this._params);var b=this._type,c=this._power,d=1===b?1-a:2===b?a:.5>a?2*a:2*(1-a);return 1===c?d*=d:2===c?d*=d*d:3===c?d*=d*d*d:4===c&&(d*=d*d*d*d),1===b?1-d:2===b?d:.5>a?d/2:1-d/2},g=["Linear","Quad","Cubic","Quart","Quint,Strong"],h=g.length;--h>-1;)i=g[h]+",Power"+h,y(new w(null,null,1,h),i,"easeOut",!0),y(new w(null,null,2,h),i,"easeIn"+(0===h?",easeNone":"")),y(new w(null,null,3,h),i,"easeInOut");x.linear=m.easing.Linear.easeIn,x.swing=m.easing.Quad.easeInOut;var z=u("events.EventDispatcher",function(a){this._listeners={},this._eventTarget=a||this});i=z.prototype,i.addEventListener=function(a,b,c,d,e){e=e||0;var f,g,h=this._listeners[a],i=0;for(this!==j||k||j.wake(),null==h&&(this._listeners[a]=h=[]),g=h.length;--g>-1;)f=h[g],f.c===b&&f.s===c?h.splice(g,1):0===i&&f.pr<e&&(i=g+1);h.splice(i,0,{c:b,s:c,up:d,pr:e})},i.removeEventListener=function(a,b){var c,d=this._listeners[a];if(d)for(c=d.length;--c>-1;)if(d[c].c===b)return void d.splice(c,1)},i.dispatchEvent=function(a){var b,c,d,e=this._listeners[a];if(e)for(b=e.length,b>1&&(e=e.slice(0)),c=this._eventTarget;--b>-1;)d=e[b],d&&(d.up?d.c.call(d.s||c,{type:a,target:c}):d.c.call(d.s||c))};var A=a.requestAnimationFrame,B=a.cancelAnimationFrame,C=Date.now||function(){return(new Date).getTime()},D=C();for(g=["ms","moz","webkit","o"],h=g.length;--h>-1&&!A;)A=a[g[h]+"RequestAnimationFrame"],B=a[g[h]+"CancelAnimationFrame"]||a[g[h]+"CancelRequestAnimationFrame"];u("Ticker",function(a,b){var c,e,f,g,h,i=this,l=C(),m=b!==!1&&A?"auto":!1,o=500,q=33,r="tick",s=function(a){var b,d,j=C()-D;j>o&&(l+=j-q),D+=j,i.time=(D-l)/1e3,b=i.time-h,(!c||b>0||a===!0)&&(i.frame++,h+=b+(b>=g?.004:g-b),d=!0),a!==!0&&(f=e(s)),d&&i.dispatchEvent(r)};z.call(i),i.time=i.frame=0,i.tick=function(){s(!0)},i.lagSmoothing=function(a,b){return arguments.length?(o=a||1/n,void(q=Math.min(b,o,0))):1/n>o},i.sleep=function(){null!=f&&(m&&B?B(f):clearTimeout(f),e=p,f=null,i===j&&(k=!1))},i.wake=function(a){null!==f?i.sleep():a?l+=-D+(D=C()):i.frame>10&&(D=C()-o+5),e=0===c?p:m&&A?A:function(a){return setTimeout(a,1e3*(h-i.time)+1|0)},i===j&&(k=!0),s(2)},i.fps=function(a){return arguments.length?(c=a,g=1/(c||60),h=this.time+g,void i.wake()):c},i.useRAF=function(a){return arguments.length?(i.sleep(),m=a,void i.fps(c)):m},i.fps(a),setTimeout(function(){"auto"===m&&i.frame<5&&"hidden"!==(d||{}).visibilityState&&i.useRAF(!1)},1500)}),i=m.Ticker.prototype=new m.events.EventDispatcher,i.constructor=m.Ticker;var E=u("core.Animation",function(a,b){if(this.vars=b=b||{},this._duration=this._totalDuration=a||0,this._delay=Number(b.delay)||0,this._timeScale=1,this._active=!!b.immediateRender,this.data=b.data,this._reversed=!!b.reversed,Z){k||j.wake();var c=this.vars.useFrames?Y:Z;c.add(this,c._time),this.vars.paused&&this.paused(!0)}});j=E.ticker=new m.Ticker,i=E.prototype,i._dirty=i._gc=i._initted=i._paused=!1,i._totalTime=i._time=0,i._rawPrevTime=-1,i._next=i._last=i._onUpdate=i._timeline=i.timeline=null,i._paused=!1;var F=function(){k&&C()-D>2e3&&("hidden"!==(d||{}).visibilityState||!j.lagSmoothing())&&j.wake();var a=setTimeout(F,2e3);a.unref&&a.unref()};F(),i.play=function(a,b){return null!=a&&this.seek(a,b),this.reversed(!1).paused(!1)},i.pause=function(a,b){return null!=a&&this.seek(a,b),this.paused(!0)},i.resume=function(a,b){return null!=a&&this.seek(a,b),this.paused(!1)},i.seek=function(a,b){return this.totalTime(Number(a),b!==!1)},i.restart=function(a,b){return this.reversed(!1).paused(!1).totalTime(a?-this._delay:0,b!==!1,!0)},i.reverse=function(a,b){return null!=a&&this.seek(a||this.totalDuration(),b),this.reversed(!0).paused(!1)},i.render=function(a,b,c){},i.invalidate=function(){return this._time=this._totalTime=0,this._initted=this._gc=!1,this._rawPrevTime=-1,(this._gc||!this.timeline)&&this._enabled(!0),this},i.isActive=function(){var a,b=this._timeline,c=this._startTime;return!b||!this._gc&&!this._paused&&b.isActive()&&(a=b.rawTime(!0))>=c&&a<c+this.totalDuration()/this._timeScale-n},i._enabled=function(a,b){return k||j.wake(),this._gc=!a,this._active=this.isActive(),b!==!0&&(a&&!this.timeline?this._timeline.add(this,this._startTime-this._delay):!a&&this.timeline&&this._timeline._remove(this,!0)),!1},i._kill=function(a,b){return this._enabled(!1,!1)},i.kill=function(a,b){return this._kill(a,b),this},i._uncache=function(a){for(var b=a?this:this.timeline;b;)b._dirty=!0,b=b.timeline;return this},i._swapSelfInParams=function(a){for(var b=a.length,c=a.concat();--b>-1;)"{self}"===a[b]&&(c[b]=this);return c},i._callback=function(a){var b=this.vars,c=b[a],d=b[a+"Params"],e=b[a+"Scope"]||b.callbackScope||this,f=d?d.length:0;switch(f){case 0:c.call(e);break;case 1:c.call(e,d[0]);break;case 2:c.call(e,d[0],d[1]);break;default:c.apply(e,d)}},i.eventCallback=function(a,b,c,d){if("on"===(a||"").substr(0,2)){var e=this.vars;if(1===arguments.length)return e[a];null==b?delete e[a]:(e[a]=b,e[a+"Params"]=q(c)&&-1!==c.join("").indexOf("{self}")?this._swapSelfInParams(c):c,e[a+"Scope"]=d),"onUpdate"===a&&(this._onUpdate=b)}return this},i.delay=function(a){return arguments.length?(this._timeline.smoothChildTiming&&this.startTime(this._startTime+a-this._delay),this._delay=a,this):this._delay},i.duration=function(a){return arguments.length?(this._duration=this._totalDuration=a,this._uncache(!0),this._timeline.smoothChildTiming&&this._time>0&&this._time<this._duration&&0!==a&&this.totalTime(this._totalTime*(a/this._duration),!0),this):(this._dirty=!1,this._duration)},i.totalDuration=function(a){return this._dirty=!1,arguments.length?this.duration(a):this._totalDuration},i.time=function(a,b){return arguments.length?(this._dirty&&this.totalDuration(),this.totalTime(a>this._duration?this._duration:a,b)):this._time},i.totalTime=function(a,b,c){if(k||j.wake(),!arguments.length)return this._totalTime;if(this._timeline){if(0>a&&!c&&(a+=this.totalDuration()),this._timeline.smoothChildTiming){this._dirty&&this.totalDuration();var d=this._totalDuration,e=this._timeline;if(a>d&&!c&&(a=d),this._startTime=(this._paused?this._pauseTime:e._time)-(this._reversed?d-a:a)/this._timeScale,e._dirty||this._uncache(!1),e._timeline)for(;e._timeline;)e._timeline._time!==(e._startTime+e._totalTime)/e._timeScale&&e.totalTime(e._totalTime,!0),
vendor: 19,493 bytes, line 3545
3545e=e._timeline}this._gc&&this._enabled(!0,!1),(this._totalTime!==a||0===this._duration)&&(K.length&&_(),this.render(a,b,!1),K.length&&_())}return this},i.progress=i.totalProgress=function(a,b){var c=this.duration();return arguments.length?this.totalTime(c*a,b):c?this._time/c:this.ratio},i.startTime=function(a){return arguments.length?(a!==this._startTime&&(this._startTime=a,this.timeline&&this.timeline._sortChildren&&this.timeline.add(this,a-this._delay)),this):this._startTime},i.endTime=function(a){return this._startTime+(0!=a?this.totalDuration():this.duration())/this._timeScale},i.timeScale=function(a){if(!arguments.length)return this._timeScale;var b,c;for(a=a||n,this._timeline&&this._timeline.smoothChildTiming&&(b=this._pauseTime,c=b||0===b?b:this._timeline.totalTime(),this._startTime=c-(c-this._startTime)*this._timeScale/a),this._timeScale=a,c=this.timeline;c&&c.timeline;)c._dirty=!0,c.totalDuration(),c=c.timeline;return this},i.reversed=function(a){return arguments.length?(a!=this._reversed&&(this._reversed=a,this.totalTime(this._timeline&&!this._timeline.smoothChildTiming?this.totalDuration()-this._totalTime:this._totalTime,!0)),this):this._reversed},i.paused=function(a){if(!arguments.length)return this._paused;var b,c,d=this._timeline;return a!=this._paused&&d&&(k||a||j.wake(),b=d.rawTime(),c=b-this._pauseTime,!a&&d.smoothChildTiming&&(this._startTime+=c,this._uncache(!1)),this._pauseTime=a?b:null,this._paused=a,this._active=this.isActive(),!a&&0!==c&&this._initted&&this.duration()&&(b=d.smoothChildTiming?this._totalTime:(b-this._startTime)/this._timeScale,this.render(b,b===this._totalTime,!0))),this._gc&&!a&&this._enabled(!0,!1),this};var G=u("core.SimpleTimeline",function(a){E.call(this,0,a),this.autoRemoveChildren=this.smoothChildTiming=!0});i=G.prototype=new E,i.constructor=G,i.kill()._gc=!1,i._first=i._last=i._recent=null,i._sortChildren=!1,i.add=i.insert=function(a,b,c,d){var e,f;if(a._startTime=Number(b||0)+a._delay,a._paused&&this!==a._timeline&&(a._pauseTime=this.rawTime()-(a._timeline.rawTime()-a._pauseTime)),a.timeline&&a.timeline._remove(a,!0),a.timeline=a._timeline=this,a._gc&&a._enabled(!0,!0),e=this._last,this._sortChildren)for(f=a._startTime;e&&e._startTime>f;)e=e._prev;return e?(a._next=e._next,e._next=a):(a._next=this._first,this._first=a),a._next?a._next._prev=a:this._last=a,a._prev=e,this._recent=a,this._timeline&&this._uncache(!0),this},i._remove=function(a,b){return a.timeline===this&&(b||a._enabled(!1,!0),a._prev?a._prev._next=a._next:this._first===a&&(this._first=a._next),a._next?a._next._prev=a._prev:this._last===a&&(this._last=a._prev),a._next=a._prev=a.timeline=null,a===this._recent&&(this._recent=this._last),this._timeline&&this._uncache(!0)),this},i.render=function(a,b,c){var d,e=this._first;for(this._totalTime=this._time=this._rawPrevTime=a;e;)d=e._next,(e._active||a>=e._startTime&&!e._paused&&!e._gc)&&(e._reversed?e.render((e._dirty?e.totalDuration():e._totalDuration)-(a-e._startTime)*e._timeScale,b,c):e.render((a-e._startTime)*e._timeScale,b,c)),e=d},i.rawTime=function(){return k||j.wake(),this._totalTime};var H=u("TweenLite",function(b,c,d){if(E.call(this,c,d),this.render=H.prototype.render,null==b)throw"Cannot tween a null target.";this.target=b="string"!=typeof b?b:H.selector(b)||b;var e,f,g,h=b.jquery||b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType),i=this.vars.overwrite;if(this._overwrite=i=null==i?X[H.defaultOverwrite]:"number"==typeof i?i>>0:X[i],(h||b instanceof Array||b.push&&q(b))&&"number"!=typeof b[0])for(this._targets=g=o(b),this._propLookup=[],this._siblings=[],e=0;e<g.length;e++)f=g[e],f?"string"!=typeof f?f.length&&f!==a&&f[0]&&(f[0]===a||f[0].nodeType&&f[0].style&&!f.nodeType)?(g.splice(e--,1),this._targets=g=g.concat(o(f))):(this._siblings[e]=aa(f,this,!1),1===i&&this._siblings[e].length>1&&ca(f,this,null,1,this._siblings[e])):(f=g[e--]=H.selector(f),"string"==typeof f&&g.splice(e+1,1)):g.splice(e--,1);else this._propLookup={},this._siblings=aa(b,this,!1),1===i&&this._siblings.length>1&&ca(b,this,null,1,this._siblings);(this.vars.immediateRender||0===c&&0===this._delay&&this.vars.immediateRender!==!1)&&(this._time=-n,this.render(Math.min(0,-this._delay)))},!0),I=function(b){return b&&b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType)},J=function(a,b){var c,d={};for(c in a)W[c]||c in b&&"transform"!==c&&"x"!==c&&"y"!==c&&"width"!==c&&"height"!==c&&"className"!==c&&"border"!==c||!(!T[c]||T[c]&&T[c]._autoCSS)||(d[c]=a[c],delete a[c]);a.css=d};i=H.prototype=new E,i.constructor=H,i.kill()._gc=!1,i.ratio=0,i._firstPT=i._targets=i._overwrittenProps=i._startAt=null,i._notifyPluginsOfEnabled=i._lazy=!1,H.version="2.1.3",H.defaultEase=i._ease=new w(null,null,1,1),H.defaultOverwrite="auto",H.ticker=j,H.autoSleep=120,H.lagSmoothing=function(a,b){j.lagSmoothing(a,b)},H.selector=a.$||a.jQuery||function(b){var c=a.$||a.jQuery;return c?(H.selector=c,c(b)):(d||(d=a.document),d?d.querySelectorAll?d.querySelectorAll(b):d.getElementById("#"===b.charAt(0)?b.substr(1):b):b)};var K=[],L={},M=/(?:(-|-=|\+=)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,N=/[\+-]=-?[\.\d]/,O=function(a){for(var b,c=this._firstPT,d=1e-6;c;)b=c.blob?1===a&&null!=this.end?this.end:a?this.join(""):this.start:c.c*a+c.s,c.m?b=c.m.call(this._tween,b,this._target||c.t,this._tween):d>b&&b>-d&&!c.blob&&(b=0),c.f?c.fp?c.t[c.p](c.fp,b):c.t[c.p](b):c.t[c.p]=b,c=c._next},P=function(a){return(1e3*a|0)/1e3+""},Q=function(a,b,c,d){var e,f,g,h,i,j,k,l=[],m=0,n="",o=0;for(l.start=a,l.end=b,a=l[0]=a+"",b=l[1]=b+"",c&&(c(l),a=l[0],b=l[1]),l.length=0,e=a.match(M)||[],f=b.match(M)||[],d&&(d._next=null,d.blob=1,l._firstPT=l._applyPT=d),i=f.length,h=0;i>h;h++)k=f[h],j=b.substr(m,b.indexOf(k,m)-m),n+=j||!h?j:",",m+=j.length,o?o=(o+1)%5:"rgba("===j.substr(-5)&&(o=1),k===e[h]||e.length<=h?n+=k:(n&&(l.push(n),n=""),g=parseFloat(e[h]),l.push(g),l._firstPT={_next:l._firstPT,t:l,p:l.length-1,s:g,c:("="===k.charAt(1)?parseInt(k.charAt(0)+"1",10)*parseFloat(k.substr(2)):parseFloat(k)-g)||0,f:0,m:o&&4>o?Math.round:P}),m+=k.length;return n+=b.substr(m),n&&l.push(n),l.setRatio=O,N.test(b)&&(l.end=null),l},R=function(a,b,c,d,e,f,g,h,i){"function"==typeof d&&(d=d(i||0,a));var j,k=typeof a[b],l="function"!==k?"":b.indexOf("set")||"function"!=typeof a["get"+b.substr(3)]?b:"get"+b.substr(3),m="get"!==c?c:l?g?a[l](g):a[l]():a[b],n="string"==typeof d&&"="===d.charAt(1),o={t:a,p:b,s:m,f:"function"===k,pg:0,n:e||b,m:f?"function"==typeof f?f:Math.round:0,pr:0,c:n?parseInt(d.charAt(0)+"1",10)*parseFloat(d.substr(2)):parseFloat(d)-m||0};return("number"!=typeof m||"number"!=typeof d&&!n)&&(g||isNaN(m)||!n&&isNaN(d)||"boolean"==typeof m||"boolean"==typeof d?(o.fp=g,j=Q(m,n?parseFloat(o.s)+o.c+(o.s+"").replace(/[0-9\-\.]/g,""):d,h||H.defaultStringFilter,o),o={t:j,p:"setRatio",s:0,c:1,f:2,pg:0,n:e||b,pr:0,m:0}):(o.s=parseFloat(m),n||(o.c=parseFloat(d)-o.s||0))),o.c?((o._next=this._firstPT)&&(o._next._prev=o),this._firstPT=o,o):void 0},S=H._internals={isArray:q,isSelector:I,lazyTweens:K,blobDif:Q},T=H._plugins={},U=S.tweenLookup={},V=0,W=S.reservedProps={ease:1,delay:1,overwrite:1,onComplete:1,onCompleteParams:1,onCompleteScope:1,useFrames:1,runBackwards:1,startAt:1,onUpdate:1,onUpdateParams:1,onUpdateScope:1,onStart:1,onStartParams:1,onStartScope:1,onReverseComplete:1,onReverseCompleteParams:1,onReverseCompleteScope:1,onRepeat:1,onRepeatParams:1,onRepeatScope:1,easeParams:1,yoyo:1,immediateRender:1,repeat:1,repeatDelay:1,data:1,paused:1,reversed:1,autoCSS:1,lazy:1,onOverwrite:1,callbackScope:1,stringFilter:1,id:1,yoyoEase:1,stagger:1},X={none:0,all:1,auto:2,concurrent:3,allOnStart:4,preexisting:5,"true":1,"false":0},Y=E._rootFramesTimeline=new G,Z=E._rootTimeline=new G,$=30,_=S.lazyRender=function(){var a,b,c=K.length;for(L={},a=0;c>a;a++)b=K[a],b&&b._lazy!==!1&&(b.render(b._lazy[0],b._lazy[1],!0),b._lazy=!1);K.length=0};Z._startTime=j.time,Y._startTime=j.frame,Z._active=Y._active=!0,setTimeout(_,1),E._updateRoot=H.render=function(){var a,b,c;if(K.length&&_(),Z.render((j.time-Z._startTime)*Z._timeScale,!1,!1),Y.render((j.frame-Y._startTime)*Y._timeScale,!1,!1),K.length&&_(),j.frame>=$){$=j.frame+(parseInt(H.autoSleep,10)||120);for(c in U){for(b=U[c].tweens,a=b.length;--a>-1;)b[a]._gc&&b.splice(a,1);0===b.length&&delete U[c]}if(c=Z._first,(!c||c._paused)&&H.autoSleep&&!Y._first&&1===j._listeners.tick.length){for(;c&&c._paused;)c=c._next;c||j.sleep()}}},j.addEventListener("tick",E._updateRoot);var aa=function(a,b,c){var d,e,f=a._gsTweenID;if(U[f||(a._gsTweenID=f="t"+V++)]||(U[f]={target:a,tweens:[]}),b&&(d=U[f].tweens,d[e=d.length]=b,c))for(;--e>-1;)d[e]===b&&d.splice(e,1);return U[f].tweens},ba=function(a,b,c,d){var e,f,g=a.vars.onOverwrite;return g&&(e=g(a,b,c,d)),g=H.onOverwrite,g&&(f=g(a,b,c,d)),e!==!1&&f!==!1},ca=function(a,b,c,d,e){var f,g,h,i;if(1===d||d>=4){for(i=e.length,f=0;i>f;f++)if((h=e[f])!==b)h._gc||h._kill(null,a,b)&&(g=!0);else if(5===d)break;return g}var j,k=b._startTime+n,l=[],m=0,o=0===b._duration;for(f=e.length;--f>-1;)(h=e[f])===b||h._gc||h._paused||(h._timeline!==b._timeline?(j=j||da(b,0,o),0===da(h,j,o)&&(l[m++]=h)):h._startTime<=k&&h._startTime+h.totalDuration()/h._timeScale>k&&((o||!h._initted)&&k-h._startTime<=2*n||(l[m++]=h)));for(f=m;--f>-1;)if(h=l[f],i=h._firstPT,2===d&&h._kill(c,a,b)&&(g=!0),2!==d||!h._firstPT&&h._initted&&i){if(2!==d&&!ba(h,b))continue;h._enabled(!1,!1)&&(g=!0)}return g},da=function(a,b,c){for(var d=a._timeline,e=d._timeScale,f=a._startTime;d._timeline;){if(f+=d._startTime,e*=d._timeScale,d._paused)return-100;d=d._timeline}return f/=e,f>b?f-b:c&&f===b||!a._initted&&2*n>f-b?n:(f+=a.totalDuration()/a._timeScale/e)>b+n?0:f-b-n};i._init=function(){var a,b,c,d,e,f,g=this.vars,h=this._overwrittenProps,i=this._duration,j=!!g.immediateRender,k=g.ease,l=this._startAt;if(g.startAt){l&&(l.render(-1,!0),l.kill()),e={};for(d in g.startAt)e[d]=g.startAt[d];if(e.data="isStart",e.overwrite=!1,e.immediateRender=!0,e.lazy=j&&g.lazy!==!1,e.startAt=e.delay=null,e.onUpdate=g.onUpdate,e.onUpdateParams=g.onUpdateParams,e.onUpdateScope=g.onUpdateScope||g.callbackScope||this,this._startAt=H.to(this.target||{},0,e),j)if(this._time>0)this._startAt=null;else if(0!==i)return}else if(g.runBackwards&&0!==i)if(l)l.render(-1,!0),l.kill(),this._startAt=null;else{0!==this._time&&(j=!1),c={};for(d in g)W[d]&&"autoCSS"!==d||(c[d]=g[d]);if(c.overwrite=0,c.data="isFromStart",c.lazy=j&&g.lazy!==!1,c.immediateRender=j,this._startAt=H.to(this.target,0,c),j){if(0===this._time)return}else this._startAt._init(),this._startAt._enabled(!1),this.vars.immediateRender&&(this._startAt=null)}if(this._ease=k=k?k instanceof w?k:"function"==typeof k?new w(k,g.easeParams):x[k]||H.defaultEase:H.defaultEase,g.easeParams instanceof Array&&k.config&&(this._ease=k.config.apply(k,g.easeParams)),this._easeType=this._ease._type,this._easePower=this._ease._power,this._firstPT=null,this._targets)for(f=this._targets.length,a=0;f>a;a++)this._initProps(this._targets[a],this._propLookup[a]={},this._siblings[a],h?h[a]:null,a)&&(b=!0);else b=this._initProps(this.target,this._propLookup,this._siblings,h,0);if(b&&H._onPluginEvent("_onInitAllProps",this),h&&(this._firstPT||"function"!=typeof this.target&&this._enabled(!1,!1)),g.runBackwards)for(c=this._firstPT;c;)c.s+=c.c,c.c=-c.c,c=c._next;this._onUpdate=g.onUpdate,this._initted=!0},i._initProps=function(b,c,d,e,f){var g,h,i,j,k,l;if(null==b)return!1;L[b._gsTweenID]&&_(),this.vars.css||b.style&&b!==a&&b.nodeType&&T.css&&this.vars.autoCSS!==!1&&J(this.vars,b);for(g in this.vars)if(l=this.vars[g],W[g])l&&(l instanceof Array||l.push&&q(l))&&-1!==l.join("").indexOf("{self}")&&(this.vars[g]=l=this._swapSelfInParams(l,this));else if(T[g]&&(j=new T[g])._onInitTween(b,this.vars[g],this,f)){for(this._firstPT=k={_next:this._firstPT,t:j,p:"setRatio",s:0,c:1,f:1,n:g,pg:1,pr:j._priority,m:0},h=j._overwriteProps.length;--h>-1;)c[j._overwriteProps[h]]=this._firstPT;(j._priority||j._onInitAllProps)&&(i=!0),(j._onDisable||j._onEnable)&&(this._notifyPluginsOfEnabled=!0),k._next&&(k._next._prev=k)}else c[g]=R.call(this,b,g,"get",l,g,0,null,this.vars.stringFilter,f);return e&&this._kill(e,b)?this._initProps(b,c,d,e,f):this._overwrite>1&&this._firstPT&&d.length>1&&ca(b,this,c,this._overwrite,d)?(this._kill(c,b),this._initProps(b,c,d,e,f)):(this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration)&&(L[b._gsTweenID]=!0),i)},i.render=function(a,b,c){var d,e,f,g,h=this,i=h._time,j=h._duration,k=h._rawPrevTime;if(a>=j-n&&a>=0)h._totalTime=h._time=j,h.ratio=h._ease._calcEnd?h._ease.getRatio(1):1,h._reversed||(d=!0,e="onComplete",c=c||h._timeline.autoRemoveChildren),0===j&&(h._initted||!h.vars.lazy||c)&&(h._startTime===h._timeline._duration&&(a=0),(0>k||0>=a&&a>=-n||k===n&&"isPause"!==h.data)&&k!==a&&(c=!0,k>n&&(e="onReverseComplete")),h._rawPrevTime=g=!b||a||k===a?a:n);else if(n>a)h._totalTime=h._time=0,h.ratio=h._ease._calcEnd?h._ease.getRatio(0):0,(0!==i||0===j&&k>0)&&(e="onReverseComplete",d=h._reversed),a>-n?a=0:0>a&&(h._active=!1,0===j&&(h._initted||!h.vars.lazy||c)&&(k>=0&&(k!==n||"isPause"!==h.data)&&(c=!0),h._rawPrevTime=g=!b||a||k===a?a:n)),(!h._initted||h._startAt&&h._startAt.progress())&&(c=!0);else if(h._totalTime=h._time=a,h._easeType){var l=a/j,m=h._easeType,o=h._easePower;(1===m||3===m&&l>=.5)&&(l=1-l),3===m&&(l*=2),1===o?l*=l:2===o?l*=l*l:3===o?l*=l*l*l:4===o&&(l*=l*l*l*l),h.ratio=1===m?1-l:2===m?l:.5>a/j?l/2:1-l/2}else h.ratio=h._ease.getRatio(a/j);if(h._time!==i||c){if(!h._initted){if(h._init(),!h._initted||h._gc)return;if(!c&&h._firstPT&&(h.vars.lazy!==!1&&h._duration||h.vars.lazy&&!h._duration))return h._time=h._totalTime=i,h._rawPrevTime=k,K.push(h),void(h._lazy=[a,b]);h._time&&!d?h.ratio=h._ease.getRatio(h._time/j):d&&h._ease._calcEnd&&(h.ratio=h._ease.getRatio(0===h._time?0:1))}for(h._lazy!==!1&&(h._lazy=!1),h._active||!h._paused&&h._time!==i&&a>=0&&(h._active=!0),0===i&&(h._startAt&&(a>=0?h._startAt.render(a,!0,c):e||(e="_dummyGS")),h.vars.onStart&&(0!==h._time||0===j)&&(b||h._callback("onStart"))),f=h._firstPT;f;)f.f?f.t[f.p](f.c*h.ratio+f.s):f.t[f.p]=f.c*h.ratio+f.s,f=f._next;h._onUpdate&&(0>a&&h._startAt&&a!==-1e-4&&h._startAt.render(a,!0,c),b||(h._time!==i||d||c)&&h._callback("onUpdate")),e&&(!h._gc||c)&&(0>a&&h._startAt&&!h._onUpdate&&a!==-1e-4&&h._startAt.render(a,!0,c),d&&(h._timeline.autoRemoveChildren&&h._enabled(!1,!1),h._active=!1),!b&&h.vars[e]&&h._callback(e),0===j&&h._rawPrevTime===n&&g!==n&&(h._rawPrevTime=0))}},i._kill=function(a,b,c){if("all"===a&&(a=null),null==a&&(null==b||b===this.target))return this._lazy=!1,this._enabled(!1,!1);b="string"!=typeof b?b||this._targets||this.target:H.selector(b)||b;var d,e,f,g,h,i,j,k,l,m=c&&this._time&&c._startTime===this._startTime&&this._timeline===c._timeline,n=this._firstPT;if((q(b)||I(b))&&"number"!=typeof b[0])for(d=b.length;--d>-1;)this._kill(a,b[d],c)&&(i=!0);else{if(this._targets){for(d=this._targets.length;--d>-1;)if(b===this._targets[d]){h=this._propLookup[d]||{},this._overwrittenProps=this._overwrittenProps||[],e=this._overwrittenProps[d]=a?this._overwrittenProps[d]||{}:"all";break}}else{if(b!==this.target)return!1;h=this._propLookup,e=this._overwrittenProps=a?this._overwrittenProps||{}:"all"}if(h){if(j=a||h,k=a!==e&&"all"!==e&&a!==h&&("object"!=typeof a||!a._tempKill),c&&(H.onOverwrite||this.vars.onOverwrite)){for(f in j)h[f]&&(l||(l=[]),l.push(f));if((l||!a)&&!ba(this,c,b,l))return!1}for(f in j)(g=h[f])&&(m&&(g.f?g.t[g.p](g.s):g.t[g.p]=g.s,i=!0),g.pg&&g.t._kill(j)&&(i=!0),g.pg&&0!==g.t._overwriteProps.length||(g._prev?g._prev._next=g._next:g===this._firstPT&&(this._firstPT=g._next),g._next&&(g._next._prev=g._prev),g._next=g._prev=null),delete h[f]),k&&(e[f]=1);!this._firstPT&&this._initted&&n&&this._enabled(!1,!1)}}return i},i.invalidate=function(){this._notifyPluginsOfEnabled&&H._onPluginEvent("_onDisable",this);var a=this._time;return this._firstPT=this._overwrittenProps=this._startAt=this._onUpdate=null,this._notifyPluginsOfEnabled=this._active=this._lazy=!1,this._propLookup=this._targets?{}:[],E.prototype.invalidate.call(this),this.vars.immediateRender&&(this._time=-n,this.render(a,!1,this.vars.lazy!==!1)),this},i._enabled=function(a,b){if(k||j.wake(),a&&this._gc){var c,d=this._targets;if(d)for(c=d.length;--c>-1;)this._siblings[c]=aa(d[c],this,!0);else this._siblings=aa(this.target,this,!0)}return E.prototype._enabled.call(this,a,b),this._notifyPluginsOfEnabled&&this._firstPT?H._onPluginEvent(a?"_onEnable":"_onDisable",this):!1},H.to=function(a,b,c){return new H(a,b,c)},H.from=function(a,b,c){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,new H(a,b,c)},H.fromTo=function(a,b,c,d){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,new H(a,b,d)},H.delayedCall=function(a,b,c,d,e){return new H(b,0,{delay:a,onComplete:b,onCompleteParams:c,callbackScope:d,onReverseComplete:b,onReverseCompleteParams:c,immediateRender:!1,lazy:!1,useFrames:e,overwrite:0})},H.set=function(a,b){return new H(a,0,b)},H.getTweensOf=function(a,b){if(null==a)return[];a="string"!=typeof a?a:H.selector(a)||a;var c,d,e,f;if((q(a)||I(a))&&"number"!=typeof a[0]){for(c=a.length,d=[];--c>-1;)d=d.concat(H.getTweensOf(a[c],b));for(c=d.length;--c>-1;)for(f=d[c],e=c;--e>-1;)f===d[e]&&d.splice(c,1)}else if(a._gsTweenID)for(d=aa(a).concat(),c=d.length;--c>-1;)(d[c]._gc||b&&!d[c].isActive())&&d.splice(c,1);return d||[]},H.killTweensOf=H.killDelayedCallsTo=function(a,b,c){"object"==typeof b&&(c=b,b=!1);for(var d=H.getTweensOf(a,b),e=d.length;--e>-1;)d[e]._kill(c,a)};var ea=u("plugins.TweenPlugin",function(a,b){this._overwriteProps=(a||"").split(","),this._propName=this._overwriteProps[0],this._priority=b||0,this._super=ea.prototype},!0);if(i=ea.prototype,ea.version="1.19.0",ea.API=2,i._firstPT=null,i._addTween=R,i.setRatio=O,i._kill=function(a){var b,c=this._overwriteProps,d=this._firstPT;if(null!=a[this._propName])this._overwriteProps=[];else for(b=c.length;--b>-1;)null!=a[c[b]]&&c.splice(b,1);for(;d;)null!=a[d.n]&&(d._next&&(d._next._prev=d._prev),d._prev?(d._prev._next=d._next,d._prev=null):this._firstPT===d&&(this._firstPT=d._next)),d=d._next;return!1},i._mod=i._roundProps=function(a){for(var b,c=this._firstPT;c;)b=a[this._propName]||null!=c.n&&a[c.n.split(this._propName+"_").join("")],b&&"function"==typeof b&&(2===c.f?c.t._applyPT.m=b:c.m=b),c=c._next},H._onPluginEvent=function(a,b){var c,d,e,f,g,h=b._firstPT;if("_onInitAllProps"===a){for(;h;){for(g=h._next,d=e;d&&d.pr>h.pr;)d=d._next;(h._prev=d?d._prev:f)?h._prev._next=h:e=h,(h._next=d)?d._prev=h:f=h,h=g}h=b._firstPT=e}for(;h;)h.pg&&"function"==typeof h.t[a]&&h.t[a]()&&(c=!0),h=h._next;return c},ea.activate=function(a){for(var b=a.length;--b>-1;)a[b].API===ea.API&&(T[(new a[b])._propName]=a[b]);return!0},t.plugin=function(a){if(!(a&&a.propName&&a.init&&a.API))throw"illegal plugin definition.";var b,c=a.propName,d=a.priority||0,e=a.overwriteProps,f={init:"_onInitTween",set:"setRatio",kill:"_kill",round:"_mod",mod:"_mod",initAll:"_onInitAllProps"},g=u("plugins."+c.charAt(0).toUpperCase()+c.substr(1)+"Plugin",function(){ea.call(this,c,d),this._overwriteProps=e||[]},a.global===!0),h=g.prototype=new ea(c);h.constructor=g,g.API=a.API;for(b in f)"function"==typeof a[b]&&(h[f[b]]=a[b]);return g.version=a.version,ea.activate([g]),g},g=a._gsQueue){for(h=0;h<g.length;h++)g[h]();for(i in r)r[i].func||a.console.log("GSAP encountered missing dependency: "+i)}k=!1}("undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window,"Tween
vendor: 13,565 bytes, lines 3545-3564
3545Lite");
3546/*!
3547 * VERSION: 2.1.3
3548 * DATE: 2019-05-17
3549 * UPDATES AND DOCS AT: http://greensock.com
3550 *
3551 * @license Copyright (c) 2008-2019, GreenSock. All rights reserved.
3552 * This work is subject to the terms at http://greensock.com/standard-license or for
3553 * Club GreenSock members, the software agreement that was issued with your membership.
3554 * 
3555 * @author: Jack Doyle, [email protected]
3556 */
3557var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use strict";_gsScope._gsDefine("TimelineLite",["core.Animation","core.SimpleTimeline","TweenLite"],function(a,b,c){var d=function(a){b.call(this,a);var c,d,e=this,f=e.vars;e._labels={},e.autoRemoveChildren=!!f.autoRemoveChildren,e.smoothChildTiming=!!f.smoothChildTiming,e._sortChildren=!0,e._onUpdate=f.onUpdate;for(d in f)c=f[d],i(c)&&-1!==c.join("").indexOf("{self}")&&(f[d]=e._swapSelfInParams(c));i(f.tweens)&&e.add(f.tweens,0,f.align,f.stagger)},e=1e-8,f=c._internals,g=d._internals={},h=f.isSelector,i=f.isArray,j=f.lazyTweens,k=f.lazyRender,l=_gsScope._gsDefine.globals,m=function(a){var b,c={};for(b in a)c[b]=a[b];return c},n=function(a,b,c){var d,e,f=a.cycle;for(d in f)e=f[d],a[d]="function"==typeof e?e(c,b[c],b):e[c%e.length];delete a.cycle},o=g.pauseCallback=function(){},p=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},q=function(a,b,c,d){var e="immediateRender";return e in b||(b[e]=!(c&&c[e]===!1||d)),b},r=function(a){if("function"==typeof a)return a;var b="object"==typeof a?a:{each:a},c=b.ease,d=b.from||0,e=b.base||0,f={},g=isNaN(d),h=b.axis,i={center:.5,end:1}[d]||0;return function(a,j,k){var l,m,n,o,p,q,r,s,t,u=(k||b).length,v=f[u];if(!v){if(t="auto"===b.grid?0:(b.grid||[1/0])[0],!t){for(r=-(1/0);r<(r=k[t++].getBoundingClientRect().left)&&u>t;);t--}for(v=f[u]=[],l=g?Math.min(t,u)*i-.5:d%t,m=g?u*i/t-.5:d/t|0,r=0,s=1/0,q=0;u>q;q++)n=q%t-l,o=m-(q/t|0),v[q]=p=h?Math.abs("y"===h?o:n):Math.sqrt(n*n+o*o),p>r&&(r=p),s>p&&(s=p);v.max=r-s,v.min=s,v.v=u=b.amount||b.each*(t>u?u-1:h?"y"===h?u/t:t:Math.max(t,u/t))||0,v.b=0>u?e-u:e}return u=(v[a]-v.min)/v.max,v.b+(c?c.getRatio(u):u)*v.v}},s=d.prototype=new b;return d.version="2.1.3",d.distribute=r,s.constructor=d,s.kill()._gc=s._forcingPlayhead=s._hasPause=!1,s.to=function(a,b,d,e){var f=d.repeat&&l.TweenMax||c;return b?this.add(new f(a,b,d),e):this.set(a,d,e)},s.from=function(a,b,d,e){return this.add((d.repeat&&l.TweenMax||c).from(a,b,q(this,d)),e)},s.fromTo=function(a,b,d,e,f){var g=e.repeat&&l.TweenMax||c;return e=q(this,e,d),b?this.add(g.fromTo(a,b,d,e),f):this.set(a,e,f)},s.staggerTo=function(a,b,e,f,g,i,j,k){var l,o,q=new d({onComplete:i,onCompleteParams:j,callbackScope:k,smoothChildTiming:this.smoothChildTiming}),s=r(e.stagger||f),t=e.startAt,u=e.cycle;for("string"==typeof a&&(a=c.selector(a)||a),a=a||[],h(a)&&(a=p(a)),o=0;o<a.length;o++)l=m(e),t&&(l.startAt=m(t),t.cycle&&n(l.startAt,a,o)),u&&(n(l,a,o),null!=l.duration&&(b=l.duration,delete l.duration)),q.to(a[o],b,l,s(o,a[o],a));return this.add(q,g)},s.staggerFrom=function(a,b,c,d,e,f,g,h){return c.runBackwards=!0,this.staggerTo(a,b,q(this,c),d,e,f,g,h)},s.staggerFromTo=function(a,b,c,d,e,f,g,h,i){return d.startAt=c,this.staggerTo(a,b,q(this,d,c),e,f,g,h,i)},s.call=function(a,b,d,e){return this.add(c.delayedCall(0,a,b,d),e)},s.set=function(a,b,d){return this.add(new c(a,0,q(this,b,null,!0)),d)},d.exportRoot=function(a,b){a=a||{},null==a.smoothChildTiming&&(a.smoothChildTiming=!0);var e,f,g,h,i=new d(a),j=i._timeline;for(null==b&&(b=!0),j._remove(i,!0),i._startTime=0,i._rawPrevTime=i._time=i._totalTime=j._time,g=j._first;g;)h=g._next,b&&g instanceof c&&g.target===g.vars.onComplete||(f=g._startTime-g._delay,0>f&&(e=1),i.add(g,f)),g=h;return j.add(i,0),e&&i.totalDuration(),i},s.add=function(e,f,g,h){var j,k,l,m,n,o,p=this;if("number"!=typeof f&&(f=p._parseTimeOrLabel(f,0,!0,e)),!(e instanceof a)){if(e instanceof Array||e&&e.push&&i(e)){for(g=g||"normal",h=h||0,j=f,k=e.length,l=0;k>l;l++)i(m=e[l])&&(m=new d({tweens:m})),p.add(m,j),"string"!=typeof m&&"function"!=typeof m&&("sequence"===g?j=m._startTime+m.totalDuration()/m._timeScale:"start"===g&&(m._startTime-=m.delay())),j+=h;return p._uncache(!0)}if("string"==typeof e)return p.addLabel(e,f);if("function"!=typeof e)throw"Cannot add "+e+" into the timeline; it is not a tween, timeline, function, or string.";e=c.delayedCall(0,e)}if(b.prototype.add.call(p,e,f),(e._time||!e._duration&&e._initted)&&(j=(p.rawTime()-e._startTime)*e._timeScale,(!e._duration||Math.abs(Math.max(0,Math.min(e.totalDuration(),j)))-e._totalTime>1e-5)&&e.render(j,!1,!1)),(p._gc||p._time===p._duration)&&!p._paused&&p._duration<p.duration())for(n=p,o=n.rawTime()>e._startTime;n._timeline;)o&&n._timeline.smoothChildTiming?n.totalTime(n._totalTime,!0):n._gc&&n._enabled(!0,!1),n=n._timeline;return p},s.remove=function(b){if(b instanceof a){this._remove(b,!1);var c=b._timeline=b.vars.useFrames?a._rootFramesTimeline:a._rootTimeline;return b._startTime=(b._paused?b._pauseTime:c._time)-(b._reversed?b.totalDuration()-b._totalTime:b._totalTime)/b._timeScale,this}if(b instanceof Array||b&&b.push&&i(b)){for(var d=b.length;--d>-1;)this.remove(b[d]);return this}return"string"==typeof b?this.removeLabel(b):this.kill(null,b)},s._remove=function(a,c){b.prototype._remove.call(this,a,c);var d=this._last;return d?this._time>this.duration()&&(this._time=this._duration,this._totalTime=this._totalDuration):this._time=this._totalTime=this._duration=this._totalDuration=0,this},s.append=function(a,b){return this.add(a,this._parseTimeOrLabel(null,b,!0,a))},s.insert=s.insertMultiple=function(a,b,c,d){return this.add(a,b||0,c,d)},s.appendMultiple=function(a,b,c,d){return this.add(a,this._parseTimeOrLabel(null,b,!0,a),c,d)},s.addLabel=function(a,b){return this._labels[a]=this._parseTimeOrLabel(b),this},s.addPause=function(a,b,d,e){var f=c.delayedCall(0,o,d,e||this);return f.vars.onComplete=f.vars.onReverseComplete=b,f.data="isPause",this._hasPause=!0,this.add(f,a)},s.removeLabel=function(a){return delete this._labels[a],this},s.getLabelTime=function(a){return null!=this._labels[a]?this._labels[a]:-1},s._parseTimeOrLabel=function(b,c,d,e){var f,g;if(e instanceof a&&e.timeline===this)this.remove(e);else if(e&&(e instanceof Array||e.push&&i(e)))for(g=e.length;--g>-1;)e[g]instanceof a&&e[g].timeline===this&&this.remove(e[g]);if(f="number"!=typeof b||c?this.duration()>99999999999?this.recent().endTime(!1):this._duration:0,"string"==typeof c)return this._parseTimeOrLabel(c,d&&"number"==typeof b&&null==this._labels[c]?b-f:0,d);if(c=c||0,"string"!=typeof b||!isNaN(b)&&null==this._labels[b])null==b&&(b=f);else{if(g=b.indexOf("="),-1===g)return null==this._labels[b]?d?this._labels[b]=f+c:c:this._labels[b]+c;c=parseInt(b.charAt(g-1)+"1",10)*Number(b.substr(g+1)),b=g>1?this._parseTimeOrLabel(b.substr(0,g-1),0,d):f}return Number(b)+c},s.seek=function(a,b){return this.totalTime("number"==typeof a?a:this._parseTimeOrLabel(a),b!==!1)},s.stop=function(){return this.paused(!0)},s.gotoAndPlay=function(a,b){return this.play(a,b)},s.gotoAndStop=function(a,b){return this.pause(a,b)},s.render=function(a,b,c){this._gc&&this._enabled(!0,!1);var d,f,g,h,i,l,m,n,o=this,p=o._time,q=o._dirty?o.totalDuration():o._totalDuration,r=o._startTime,s=o._timeScale,t=o._paused;if(p!==o._time&&(a+=o._time-p),o._hasPause&&!o._forcingPlayhead&&!b){if(a>p)for(d=o._first;d&&d._startTime<=a&&!l;)d._duration||"isPause"!==d.data||d.ratio||0===d._startTime&&0===o._rawPrevTime||(l=d),d=d._next;else for(d=o._last;d&&d._startTime>=a&&!l;)d._duration||"isPause"===d.data&&d._rawPrevTime>0&&(l=d),d=d._prev;l&&(o._time=o._totalTime=a=l._startTime,n=o._startTime+(o._reversed?o._duration-a:a)/o._timeScale)}if(a>=q-e&&a>=0)o._totalTime=o._time=q,o._reversed||o._hasPausedChild()||(f=!0,h="onComplete",i=!!o._timeline.autoRemoveChildren,0===o._duration&&(0>=a&&a>=-e||o._rawPrevTime<0||o._rawPrevTime===e)&&o._rawPrevTime!==a&&o._first&&(i=!0,o._rawPrevTime>e&&(h="onReverseComplete"))),o._rawPrevTime=o._duration||!b||a||o._rawPrevTime===a?a:e,a=q+1e-4;else if(e>a)if(o._totalTime=o._time=0,a>-e&&(a=0),(0!==p||0===o._duration&&o._rawPrevTime!==e&&(o._rawPrevTime>0||0>a&&o._rawPrevTime>=0))&&(h="onReverseComplete",f=o._reversed),0>a)o._active=!1,o._timeline.autoRemoveChildren&&o._reversed?(i=f=!0,h="onReverseComplete"):o._rawPrevTime>=0&&o._first&&(i=!0),o._rawPrevTime=a;else{if(o._rawPrevTime=o._duration||!b||a||o._rawPrevTime===a?a:e,0===a&&f)for(d=o._first;d&&0===d._startTime;)d._duration||(f=!1),d=d._next;a=0,o._initted||(i=!0)}else o._totalTime=o._time=o._rawPrevTime=a;if(o._time!==p&&o._first||c||i||l){if(o._initted||(o._initted=!0),o._active||!o._paused&&o._time!==p&&a>0&&(o._active=!0),0===p&&o.vars.onStart&&(0===o._time&&o._duration||b||o._callback("onStart")),m=o._time,m>=p)for(d=o._first;d&&(g=d._next,m===o._time&&(!o._paused||t));)(d._active||d._startTime<=m&&!d._paused&&!d._gc)&&(l===d&&(o.pause(),o._pauseTime=n),d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)),d=g;else for(d=o._last;d&&(g=d._prev,m===o._time&&(!o._paused||t));){if(d._active||d._startTime<=p&&!d._paused&&!d._gc){if(l===d){for(l=d._prev;l&&l.endTime()>o._time;)l.render(l._reversed?l.totalDuration()-(a-l._startTime)*l._timeScale:(a-l._startTime)*l._timeScale,b,c),l=l._prev;l=null,o.pause(),o._pauseTime=n}d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)}d=g}o._onUpdate&&(b||(j.length&&k(),o._callback("onUpdate"))),h&&(o._gc||(r===o._startTime||s!==o._timeScale)&&(0===o._time||q>=o.totalDuration())&&(f&&(j.length&&k(),o._timeline.autoRemoveChildren&&o._enabled(!1,!1),o._active=!1),!b&&o.vars[h]&&o._callback(h)))}},s._hasPausedChild=function(){for(var a=this._first;a;){if(a._paused||a instanceof d&&a._hasPausedChild())return!0;a=a._next}return!1},s.getChildren=function(a,b,d,e){e=e||-9999999999;for(var f=[],g=this._first,h=0;g;)g._startTime<e||(g instanceof c?b!==!1&&(f[h++]=g):(d!==!1&&(f[h++]=g),a!==!1&&(f=f.concat(g.getChildren(!0,b,d)),h=f.length))),g=g._next;return f},s.getTweensOf=function(a,b){var d,e,f=this._gc,g=[],h=0;for(f&&this._enabled(!0,!0),d=c.getTweensOf(a),e=d.length;--e>-1;)(d[e].timeline===this||b&&this._contains(d[e]))&&(g[h++]=d[e]);return f&&this._enabled(!1,!0),g},s.recent=function(){return this._recent},s._contains=function(a){for(var b=a.timeline;b;){if(b===this)return!0;b=b.timeline}return!1},s.shiftChildren=function(a,b,c){c=c||0;for(var d,e=this._first,f=this._labels;e;)e._startTime>=c&&(e._startTime+=a),e=e._next;if(b)for(d in f)f[d]>=c&&(f[d]+=a);return this._uncache(!0)},s._kill=function(a,b){if(!a&&!b)return this._enabled(!1,!1);for(var c=b?this.getTweensOf(b):this.getChildren(!0,!0,!1),d=c.length,e=!1;--d>-1;)c[d]._kill(a,b)&&(e=!0);return e},s.clear=function(a){var b=this.getChildren(!1,!0,!0),c=b.length;for(this._time=this._totalTime=0;--c>-1;)b[c]._enabled(!1,!1);return a!==!1&&(this._labels={}),this._uncache(!0)},s.invalidate=function(){for(var b=this._first;b;)b.invalidate(),b=b._next;return a.prototype.invalidate.call(this)},s._enabled=function(a,c){if(a===this._gc)for(var d=this._first;d;)d._enabled(a,!0),d=d._next;return b.prototype._enabled.call(this,a,c)},s.totalTime=function(b,c,d){this._forcingPlayhead=!0;var e=a.prototype.totalTime.apply(this,arguments);return this._forcingPlayhead=!1,e},s.duration=function(a){return arguments.length?(0!==this.duration()&&0!==a&&this.timeScale(this._duration/a),this):(this._dirty&&this.totalDuration(),this._duration)},s.totalDuration=function(a){if(!arguments.length){if(this._dirty){for(var b,c,d=0,e=this,f=e._last,g=999999999999;f;)b=f._prev,f._dirty&&f.totalDuration(),f._startTime>g&&e._sortChildren&&!f._paused&&!e._calculatingDuration?(e._calculatingDuration=1,e.add(f,f._startTime-f._delay),e._calculatingDuration=0):g=f._startTime,f._startTime<0&&!f._paused&&(d-=f._startTime,e._timeline.smoothChildTiming&&(e._startTime+=f._startTime/e._timeScale,e._time-=f._startTime,e._totalTime-=f._startTime,e._rawPrevTime-=f._startTime),e.shiftChildren(-f._startTime,!1,-9999999999),g=0),c=f._startTime+f._totalDuration/f._timeScale,c>d&&(d=c),f=b;e._duration=e._totalDuration=d,e._dirty=!1}return this._totalDuration}return a&&this.totalDuration()?this.timeScale(this._totalDuration/a):this},s.paused=function(b){if(b===!1&&this._paused)for(var c=this._first;c;)c._startTime===this._time&&"isPause"===c.data&&(c._rawPrevTime=0),c=c._next;return a.prototype.paused.apply(this,arguments)},s.usesFrames=function(){for(var b=this._timeline;b._timeline;)b=b._timeline;return b===a._rootFramesTimeline},s.rawTime=function(a){return a&&(this._paused||this._repeat&&this.time()>0&&this.totalProgress()<1)?this._totalTime%(this._duration+this._repeatDelay):this._paused?this._totalTime:(this._timeline.rawTime(a)-this._startTime)*this._timeScale},d},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()(),function(a){"use strict";var b=function(){return(_gsScope.GreenSockGlobals||_gsScope)[a]};"undefined"!=typeof module&&module.exports?(require("./TweenLite.min.js"),module.exports=b()):"function"==typeof define&&define.amd&&define(["TweenLite"],b)}("TimelineLite");
3558/*!
3559 * VERSION: 2.1.3
3560 * DATE: 2019-05-17
3561 * UPDATES AND DOCS AT: http://greensock.com
3562 *
3563 * @license Copyright (c) 2008-2019, GreenSock. All rights reserved.
3564 * This work is subject to the terms at http://greensock.com/standard-license or for
3565 * Club GreenSock members, the software agreement that was issued with your membership.
3566 * 
3567 * @author: Jack Doyle, [email protected]
3568 */
3569var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use strict";
vendor: 26,155 bytes, line 3569
3569_gsScope._gsDefine("plugins.CSSPlugin",["plugins.TweenPlugin","TweenLite"],function(a,b){var c,d,e,f,g=function(){a.call(this,"css"),this._overwriteProps.length=0,this.setRatio=g.prototype.setRatio},h=_gsScope._gsDefine.globals,i={},j=g.prototype=new a("css");j.constructor=g,g.version="2.1.3",g.API=2,g.defaultTransformPerspective=0,g.defaultSkewType="compensated",g.defaultSmoothOrigin=!0,j="px",g.suffixMap={top:j,right:j,bottom:j,left:j,width:j,height:j,fontSize:j,padding:j,margin:j,perspective:j,lineHeight:""};var k,l,m,n,o,p,q,r,s=/(?:\-|\.|\b)(\d|\.|e\-)+/g,t=/(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,u=/(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,v=/(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b),?/gi,w=/(?![+-]?\d*\.?\d+|[+-]|e[+-]\d+)[^0-9]/g,x=/(?:\d|\-|\+|=|#|\.)*/g,y=/opacity *= *([^)]*)/i,z=/opacity:([^;]*)/i,A=/alpha\(opacity *=.+?\)/i,B=/^(rgb|hsl)/,C=/([A-Z])/g,D=/-([a-z])/gi,E=/(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,F=function(a,b){return b.toUpperCase()},G=/(?:Left|Right|Width)/i,H=/(M11|M12|M21|M22)=[\d\-\.e]+/gi,I=/progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,J=/,(?=[^\)]*(?:\(|$))/gi,K=/[\s,\(]/i,L=Math.PI/180,M=180/Math.PI,N={},O={style:{}},P=_gsScope.document||{createElement:function(){return O}},Q=function(a,b){var c=P.createElementNS?P.createElementNS(b||"http://www.w3.org/1999/xhtml",a):P.createElement(a);return c.style?c:P.createElement(a)},R=Q("div"),S=Q("img"),T=g._internals={_specialProps:i},U=(_gsScope.navigator||{}).userAgent||"",V=function(){var a=U.indexOf("Android"),b=Q("a");return m=-1!==U.indexOf("Safari")&&-1===U.indexOf("Chrome")&&(-1===a||parseFloat(U.substr(a+8,2))>3),o=m&&parseFloat(U.substr(U.indexOf("Version/")+8,2))<6,n=-1!==U.indexOf("Firefox"),(/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(U)||/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(U))&&(p=parseFloat(RegExp.$1)),b?(b.style.cssText="top:1px;opacity:.55;",/^0.55/.test(b.style.opacity)):!1}(),W=function(a){return y.test("string"==typeof a?a:(a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100:1},X=function(a){_gsScope.console&&console.log(a)},Y="",Z="",$=function(a,b){b=b||R;var c,d,e=b.style;if(void 0!==e[a])return a;for(a=a.charAt(0).toUpperCase()+a.substr(1),c=["O","Moz","ms","Ms","Webkit"],d=5;--d>-1&&void 0===e[c[d]+a];);return d>=0?(Z=3===d?"ms":c[d],Y="-"+Z.toLowerCase()+"-",Z+a):null},_="undefined"!=typeof window?window:P.defaultView||{getComputedStyle:function(){}},aa=function(a){return _.getComputedStyle(a)},ba=g.getStyle=function(a,b,c,d,e){var f;return V||"opacity"!==b?(!d&&a.style[b]?f=a.style[b]:(c=c||aa(a))?f=c[b]||c.getPropertyValue(b)||c.getPropertyValue(b.replace(C,"-$1").toLowerCase()):a.currentStyle&&(f=a.currentStyle[b]),null==e||f&&"none"!==f&&"auto"!==f&&"auto auto"!==f?f:e):W(a)},ca=T.convertToPixels=function(a,c,d,e,f){if("px"===e||!e&&"lineHeight"!==c)return d;if("auto"===e||!d)return 0;var h,i,j,k=G.test(c),l=a,m=R.style,n=0>d,o=1===d;if(n&&(d=-d),o&&(d*=100),"lineHeight"!==c||e)if("%"===e&&-1!==c.indexOf("border"))h=d/100*(k?a.clientWidth:a.clientHeight);else{if(m.cssText="border:0 solid red;position:"+ba(a,"position")+";line-height:0;","%"!==e&&l.appendChild&&"v"!==e.charAt(0)&&"rem"!==e)m[k?"borderLeftWidth":"borderTopWidth"]=d+e;else{if(l=a.parentNode||P.body,-1!==ba(l,"display").indexOf("flex")&&(m.position="absolute"),i=l._gsCache,j=b.ticker.frame,i&&k&&i.time===j)return i.width*d/100;m[k?"width":"height"]=d+e}l.appendChild(R),h=parseFloat(R[k?"offsetWidth":"offsetHeight"]),l.removeChild(R),k&&"%"===e&&g.cacheWidths!==!1&&(i=l._gsCache=l._gsCache||{},i.time=j,i.width=h/d*100),0!==h||f||(h=ca(a,c,d,e,!0))}else i=aa(a).lineHeight,a.style.lineHeight=d,h=parseFloat(aa(a).lineHeight),a.style.lineHeight=i;return o&&(h/=100),n?-h:h},da=T.calculateOffset=function(a,b,c){if("absolute"!==ba(a,"position",c))return 0;var d="left"===b?"Left":"Top",e=ba(a,"margin"+d,c);return a["offset"+d]-(ca(a,b,parseFloat(e),e.replace(x,""))||0)},ea=function(a,b){var c,d,e,f={};if(b=b||aa(a,null))if(c=b.length)for(;--c>-1;)e=b[c],(-1===e.indexOf("-transform")||Fa===e)&&(f[e.replace(D,F)]=b.getPropertyValue(e));else for(c in b)(-1===c.indexOf("Transform")||Ea===c)&&(f[c]=b[c]);else if(b=a.currentStyle||a.style)for(c in b)"string"==typeof c&&void 0===f[c]&&(f[c.replace(D,F)]=b[c]);return V||(f.opacity=W(a)),d=Ta(a,b,!1),f.rotation=d.rotation,f.skewX=d.skewX,f.scaleX=d.scaleX,f.scaleY=d.scaleY,f.x=d.x,f.y=d.y,Ha&&(f.z=d.z,f.rotationX=d.rotationX,f.rotationY=d.rotationY,f.scaleZ=d.scaleZ),f.filters&&delete f.filters,f},fa=function(a,b,c,d,e){var f,g,h,i={},j=a.style;for(g in c)"cssText"!==g&&"length"!==g&&isNaN(g)&&(b[g]!==(f=c[g])||e&&e[g])&&-1===g.indexOf("Origin")&&("number"==typeof f||"string"==typeof f)&&(i[g]="auto"!==f||"left"!==g&&"top"!==g?""!==f&&"auto"!==f&&"none"!==f||"string"!=typeof b[g]||""===b[g].replace(w,"")?f:0:da(a,g),void 0!==j[g]&&(h=new ua(j,g,j[g],h)));if(d)for(g in d)"className"!==g&&(i[g]=d[g]);return{difs:i,firstMPT:h}},ga={width:["Left","Right"],height:["Top","Bottom"]},ha=["marginLeft","marginRight","marginTop","marginBottom"],ia=function(a,b,c){if("svg"===(a.nodeName+"").toLowerCase())return(c||aa(a))[b]||0;if(a.getCTM&&Qa(a))return a.getBBox()[b]||0;var d=parseFloat("width"===b?a.offsetWidth:a.offsetHeight),e=ga[b],f=e.length;for(c=c||aa(a,null);--f>-1;)d-=parseFloat(ba(a,"padding"+e[f],c,!0))||0,d-=parseFloat(ba(a,"border"+e[f]+"Width",c,!0))||0;return d},ja=function(a,b){if("contain"===a||"auto"===a||"auto auto"===a)return a+" ";(null==a||""===a)&&(a="0 0");var c,d=a.split(" "),e=-1!==a.indexOf("left")?"0%":-1!==a.indexOf("right")?"100%":d[0],f=-1!==a.indexOf("top")?"0%":-1!==a.indexOf("bottom")?"100%":d[1];if(d.length>3&&!b){for(d=a.split(", ").join(",").split(","),a=[],c=0;c<d.length;c++)a.push(ja(d[c]));return a.join(",")}return null==f?f="center"===e?"50%":"0":"center"===f&&(f="50%"),("center"===e||isNaN(parseFloat(e))&&-1===(e+"").indexOf("="))&&(e="50%"),a=e+" "+f+(d.length>2?" "+d[2]:""),b&&(b.oxp=-1!==e.indexOf("%"),b.oyp=-1!==f.indexOf("%"),b.oxr="="===e.charAt(1),b.oyr="="===f.charAt(1),b.ox=parseFloat(e.replace(w,"")),b.oy=parseFloat(f.replace(w,"")),b.v=a),b||a},ka=function(a,b){return"function"==typeof a&&(a=a(r,q)),"string"==typeof a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2)):parseFloat(a)-parseFloat(b)||0},la=function(a,b){"function"==typeof a&&(a=a(r,q));var c="string"==typeof a&&"="===a.charAt(1);return"string"==typeof a&&"v"===a.charAt(a.length-2)&&(a=(c?a.substr(0,2):0)+window["inner"+("vh"===a.substr(-2)?"Height":"Width")]*(parseFloat(c?a.substr(2):a)/100)),null==a?b:c?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2))+b:parseFloat(a)||0},ma=function(a,b,c,d){var e,f,g,h,i,j=1e-6;return"function"==typeof a&&(a=a(r,q)),null==a?h=b:"number"==typeof a?h=a:(e=360,f=a.split("_"),i="="===a.charAt(1),g=(i?parseInt(a.charAt(0)+"1",10)*parseFloat(f[0].substr(2)):parseFloat(f[0]))*(-1===a.indexOf("rad")?1:M)-(i?0:b),f.length&&(d&&(d[c]=b+g),-1!==a.indexOf("short")&&(g%=e,g!==g%(e/2)&&(g=0>g?g+e:g-e)),-1!==a.indexOf("_cw")&&0>g?g=(g+9999999999*e)%e-(g/e|0)*e:-1!==a.indexOf("ccw")&&g>0&&(g=(g-9999999999*e)%e-(g/e|0)*e)),h=b+g),j>h&&h>-j&&(h=0),h},na={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},oa=function(a,b,c){return a=0>a?a+1:a>1?a-1:a,255*(1>6*a?b+(c-b)*a*6:.5>a?c:2>3*a?b+(c-b)*(2/3-a)*6:b)+.5|0},pa=g.parseColor=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;if(a)if("number"==typeof a)c=[a>>16,a>>8&255,255&a];else{if(","===a.charAt(a.length-1)&&(a=a.substr(0,a.length-1)),na[a])c=na[a];else if("#"===a.charAt(0))4===a.length&&(d=a.charAt(1),e=a.charAt(2),f=a.charAt(3),a="#"+d+d+e+e+f+f),a=parseInt(a.substr(1),16),c=[a>>16,a>>8&255,255&a];else if("hsl"===a.substr(0,3))if(c=m=a.match(s),b){if(-1!==a.indexOf("="))return a.match(t)}else g=Number(c[0])%360/360,h=Number(c[1])/100,i=Number(c[2])/100,e=.5>=i?i*(h+1):i+h-i*h,d=2*i-e,c.length>3&&(c[3]=Number(c[3])),c[0]=oa(g+1/3,d,e),c[1]=oa(g,d,e),c[2]=oa(g-1/3,d,e);else c=a.match(s)||na.transparent;c[0]=Number(c[0]),c[1]=Number(c[1]),c[2]=Number(c[2]),c.length>3&&(c[3]=Number(c[3]))}else c=na.black;return b&&!m&&(d=c[0]/255,e=c[1]/255,f=c[2]/255,j=Math.max(d,e,f),k=Math.min(d,e,f),i=(j+k)/2,j===k?g=h=0:(l=j-k,h=i>.5?l/(2-j-k):l/(j+k),g=j===d?(e-f)/l+(f>e?6:0):j===e?(f-d)/l+2:(d-e)/l+4,g*=60),c[0]=g+.5|0,c[1]=100*h+.5|0,c[2]=100*i+.5|0),c},qa=function(a,b){var c,d,e,f=a.match(ra)||[],g=0,h="";if(!f.length)return a;for(c=0;c<f.length;c++)d=f[c],e=a.substr(g,a.indexOf(d,g)-g),g+=e.length+d.length,d=pa(d,b),3===d.length&&d.push(1),h+=e+(b?"hsla("+d[0]+","+d[1]+"%,"+d[2]+"%,"+d[3]:"rgba("+d.join(","))+")";return h+a.substr(g)},ra="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3}){1,2}\\b";for(j in na)ra+="|"+j+"\\b";ra=new RegExp(ra+")","gi"),g.colorStringFilter=function(a){var b,c=a[0]+" "+a[1];ra.test(c)&&(b=-1!==c.indexOf("hsl(")||-1!==c.indexOf("hsla("),a[0]=qa(a[0],b),a[1]=qa(a[1],b)),ra.lastIndex=0},b.defaultStringFilter||(b.defaultStringFilter=g.colorStringFilter);var sa=function(a,b,c,d){if(null==a)return function(a){return a};var e,f=b?(a.match(ra)||[""])[0]:"",g=a.split(f).join("").match(u)||[],h=a.substr(0,a.indexOf(g[0])),i=")"===a.charAt(a.length-1)?")":"",j=-1!==a.indexOf(" ")?" ":",",k=g.length,l=k>0?g[0].replace(s,""):"";return k?e=b?function(a){var b,m,n,o;if("number"==typeof a)a+=l;else if(d&&J.test(a)){for(o=a.replace(J,"|").split("|"),n=0;n<o.length;n++)o[n]=e(o[n]);return o.join(",")}if(b=(a.match(ra)||[f])[0],m=a.split(b).join("").match(u)||[],n=m.length,k>n--)for(;++n<k;)m[n]=c?m[(n-1)/2|0]:g[n];return h+m.join(j)+j+b+i+(-1!==a.indexOf("inset")?" inset":"")}:function(a){var b,f,m;if("number"==typeof a)a+=l;else if(d&&J.test(a)){for(f=a.replace(J,"|").split("|"),m=0;m<f.length;m++)f[m]=e(f[m]);return f.join(",")}if(b=a.match(","===j?u:v)||[],m=b.length,k>m--)for(;++m<k;)b[m]=c?b[(m-1)/2|0]:g[m];return(h&&"none"!==a?a.substr(0,a.indexOf(b[0]))||h:h)+b.join(j)+i}:function(a){return a}},ta=function(a){return a=a.split(","),function(b,c,d,e,f,g,h){var i,j=(c+"").split(" ");for(h={},i=0;4>i;i++)h[a[i]]=j[i]=j[i]||j[(i-1)/2>>0];return e.parse(b,h,f,g)}},ua=(T._setPluginRatio=function(a){this.plugin.setRatio(a);for(var b,c,d,e,f,g=this.data,h=g.proxy,i=g.firstMPT,j=1e-6;i;)b=h[i.v],i.r?b=i.r(b):j>b&&b>-j&&(b=0),i.t[i.p]=b,i=i._next;if(g.autoRotate&&(g.autoRotate.rotation=g.mod?g.mod.call(this._tween,h.rotation,this.t,this._tween):h.rotation),1===a||0===a)for(i=g.firstMPT,f=1===a?"e":"b";i;){if(c=i.t,c.type){if(1===c.type){for(e=c.xs0+c.s+c.xs1,d=1;d<c.l;d++)e+=c["xn"+d]+c["xs"+(d+1)];c[f]=e}}else c[f]=c.s+c.xs0;i=i._next}},function(a,b,c,d,e){this.t=a,this.p=b,this.v=c,this.r=e,d&&(d._prev=this,this._next=d)}),va=(T._parseToProxy=function(a,b,c,d,e,f){var g,h,i,j,k,l=d,m={},n={},o=c._transform,p=N;for(c._transform=null,N=b,d=k=c.parse(a,b,d,e),N=p,f&&(c._transform=o,l&&(l._prev=null,l._prev&&(l._prev._next=null)));d&&d!==l;){if(d.type<=1&&(h=d.p,n[h]=d.s+d.c,m[h]=d.s,f||(j=new ua(d,"s",h,j,d.r),d.c=0),1===d.type))for(g=d.l;--g>0;)i="xn"+g,h=d.p+"_"+i,n[h]=d.data[i],m[h]=d[i],f||(j=new ua(d,i,h,j,d.rxp[i]));d=d._next}return{proxy:m,end:n,firstMPT:j,pt:k}},T.CSSPropTween=function(a,b,d,e,g,h,i,j,k,l,m){this.t=a,this.p=b,this.s=d,this.c=e,this.n=i||b,a instanceof va||f.push(this.n),this.r=j?"function"==typeof j?j:Math.round:j,this.type=h||0,k&&(this.pr=k,c=!0),this.b=void 0===l?d:l,this.e=void 0===m?d+e:m,g&&(this._next=g,g._prev=this)}),wa=function(a,b,c,d,e,f){var g=new va(a,b,c,d-c,e,-1,f);return g.b=c,g.e=g.xs0=d,g},xa=g.parseComplex=function(a,b,c,d,e,f,h,i,j,l){c=c||f||"","function"==typeof d&&(d=d(r,q)),h=new va(a,b,0,0,h,l?2:1,null,!1,i,c,d),d+="",e&&ra.test(d+c)&&(d=[c,d],g.colorStringFilter(d),c=d[0],d=d[1]);var m,n,o,p,u,v,w,x,y,z,A,B,C,D=c.split(", ").join(",").split(" "),E=d.split(", ").join(",").split(" "),F=D.length,G=k!==!1;for((-1!==d.indexOf(",")||-1!==c.indexOf(","))&&(-1!==(d+c).indexOf("rgb")||-1!==(d+c).indexOf("hsl")?(D=D.join(" ").replace(J,", ").split(" "),E=E.join(" ").replace(J,", ").split(" ")):(D=D.join(" ").split(",").join(", ").split(" "),E=E.join(" ").split(",").join(", ").split(" ")),F=D.length),F!==E.length&&(D=(f||"").split(" "),F=D.length),h.plugin=j,h.setRatio=l,ra.lastIndex=0,m=0;F>m;m++)if(p=D[m],u=E[m]+"",x=parseFloat(p),x||0===x)h.appendXtra("",x,ka(u,x),u.replace(t,""),G&&-1!==u.indexOf("px")?Math.round:!1,!0);else if(e&&ra.test(p))B=u.indexOf(")")+1,B=")"+(B?u.substr(B):""),C=-1!==u.indexOf("hsl")&&V,z=u,p=pa(p,C),u=pa(u,C),y=p.length+u.length>6,y&&!V&&0===u[3]?(h["xs"+h.l]+=h.l?" transparent":"transparent",h.e=h.e.split(E[m]).join("transparent")):(V||(y=!1),C?h.appendXtra(z.substr(0,z.indexOf("hsl"))+(y?"hsla(":"hsl("),p[0],ka(u[0],p[0]),",",!1,!0).appendXtra("",p[1],ka(u[1],p[1]),"%,",!1).appendXtra("",p[2],ka(u[2],p[2]),y?"%,":"%"+B,!1):h.appendXtra(z.substr(0,z.indexOf("rgb"))+(y?"rgba(":"rgb("),p[0],u[0]-p[0],",",Math.round,!0).appendXtra("",p[1],u[1]-p[1],",",Math.round).appendXtra("",p[2],u[2]-p[2],y?",":B,Math.round),y&&(p=p.length<4?1:p[3],h.appendXtra("",p,(u.length<4?1:u[3])-p,B,!1))),ra.lastIndex=0;else if(v=p.match(s)){if(w=u.match(t),!w||w.length!==v.length)return h;for(o=0,n=0;n<v.length;n++)A=v[n],z=p.indexOf(A,o),h.appendXtra(p.substr(o,z-o),Number(A),ka(w[n],A),"",G&&"px"===p.substr(z+A.length,2)?Math.round:!1,0===n),o=z+A.length;h["xs"+h.l]+=p.substr(o)}else h["xs"+h.l]+=h.l||h["xs"+h.l]?" "+u:u;if(-1!==d.indexOf("=")&&h.data){for(B=h.xs0+h.data.s,m=1;m<h.l;m++)B+=h["xs"+m]+h.data["xn"+m];h.e=B+h["xs"+m]}return h.l||(h.type=-1,h.xs0=h.e),h.xfirst||h},ya=9;for(j=va.prototype,j.l=j.pr=0;--ya>0;)j["xn"+ya]=0,j["xs"+ya]="";j.xs0="",j._next=j._prev=j.xfirst=j.data=j.plugin=j.setRatio=j.rxp=null,j.appendXtra=function(a,b,c,d,e,f){var g=this,h=g.l;return g["xs"+h]+=f&&(h||g["xs"+h])?" "+a:a||"",c||0===h||g.plugin?(g.l++,g.type=g.setRatio?2:1,g["xs"+g.l]=d||"",h>0?(g.data["xn"+h]=b+c,g.rxp["xn"+h]=e,g["xn"+h]=b,g.plugin||(g.xfirst=new va(g,"xn"+h,b,c,g.xfirst||g,0,g.n,e,g.pr),g.xfirst.xs0=0),g):(g.data={s:b+c},g.rxp={},g.s=b,g.c=c,g.r=e,g)):(g["xs"+h]+=b+(d||""),g)};var za=function(a,b){b=b||{},this.p=b.prefix?$(a)||a:a,i[a]=i[this.p]=this,this.format=b.formatter||sa(b.defaultValue,b.color,b.collapsible,b.multi),b.parser&&(this.parse=b.parser),this.clrs=b.color,this.multi=b.multi,this.keyword=b.keyword,this.dflt=b.defaultValue,this.allowFunc=b.allowFunc,this.pr=b.priority||0},Aa=T._registerComplexSpecialProp=function(a,b,c){"object"!=typeof b&&(b={parser:c});var d,e,f=a.split(","),g=b.defaultValue;for(c=c||[g],d=0;d<f.length;d++)b.prefix=0===d&&b.prefix,b.defaultValue=c[d]||g,e=new za(f[d],b)},Ba=T._registerPluginProp=function(a){if(!i[a]){var b=a.charAt(0).toUpperCase()+a.substr(1)+"Plugin";Aa(a,{parser:function(a,c,d,e,f,g,j){var k=h.com.greensock.plugins[b];return k?(k._cssRegister(),i[d].parse(a,c,d,e,f,g,j)):(X("Error: "+b+" js file not loaded."),f)}})}};j=za.prototype,j.parseComplex=function(a,b,c,d,e,f){var g,h,i,j,k,l,m=this.keyword;if(this.multi&&(J.test(c)||J.test(b)?(h=b.replace(J,"|").split("|"),i=c.replace(J,"|").split("|")):m&&(h=[b],i=[c])),i){for(j=i.length>h.length?i.length:h.length,g=0;j>g;g++)b=h[g]=h[g]||this.dflt,c=i[g]=i[g]||this.dflt,m&&(k=b.indexOf(m),l=c.indexOf(m),k!==l&&(-1===l?h[g]=h[g].split(m).join(""):-1===k&&(h[g]+=" "+m)));b=h.join(", "),c=i.join(", ")}return xa(a,this.p,b,c,this.clrs,this.dflt,d,this.pr,e,f)},j.parse=function(a,b,c,d,f,g,h){return this.parseComplex(a.style,this.format(ba(a,this.p,e,!1,this.dflt)),this.format(b),f,g)},g.registerSpecialProp=function(a,b,c){Aa(a,{parser:function(a,d,e,f,g,h,i){var j=new va(a,e,0,0,g,2,e,!1,c);return j.plugin=h,j.setRatio=b(a,d,f._tween,e),j},priority:c})},g.useSVGTransformAttr=!0;var Ca,Da="scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","),Ea=$("transform"),Fa=Y+"transform",Ga=$("transformOrigin"),Ha=null!==$("perspective"),Ia=T.Transform=function(){this.perspective=parseFloat(g.defaultTransformPerspective)||0,this.force3D=g.defaultForce3D!==!1&&Ha?g.defaultForce3D||"auto":!1},Ja=_gsScope.SVGElement,Ka=function(a,b,c){var d,e=P.createElementNS("http://www.w3.org/2000/svg",a),f=/([a-z])([A-Z])/g;for(d in c)e.setAttributeNS(null,d.replace(f,"$1-$2").toLowerCase(),c[d]);return b.appendChild(e),e},La=P.documentElement||{},Ma=function(){var a,b,c,d=p||/Android/i.test(U)&&!_gsScope.chrome;return P.createElementNS&&La.appendChild&&!d&&(a=Ka("svg",La),b=Ka("rect",a,{width:100,height:50,x:100}),c=b.getBoundingClientRect().width,b.style[Ga]="50% 50%",b.style[Ea]="scaleX(0.5)",d=c===b.getBoundingClientRect().width&&!(n&&Ha),La.removeChild(a)),d}(),Na=function(a,b,c,d,e,f){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=a._gsTransform,w=Sa(a,!0);v&&(t=v.xOrigin,u=v.yOrigin),(!d||(h=d.split(" ")).length<2)&&(n=a.getBBox(),0===n.x&&0===n.y&&n.width+n.height===0&&(n={x:parseFloat(a.hasAttribute("x")?a.getAttribute("x"):a.hasAttribute("cx")?a.getAttribute("cx"):0)||0,y:parseFloat(a.hasAttribute("y")?a.getAttribute("y"):a.hasAttribute("cy")?a.getAttribute("cy"):0)||0,width:0,height:0}),b=ja(b).split(" "),h=[(-1!==b[0].indexOf("%")?parseFloat(b[0])/100*n.width:parseFloat(b[0]))+n.x,(-1!==b[1].indexOf("%")?parseFloat(b[1])/100*n.height:parseFloat(b[1]))+n.y]),c.xOrigin=k=parseFloat(h[0]),c.yOrigin=l=parseFloat(h[1]),d&&w!==Ra&&(m=w[0],n=w[1],o=w[2],p=w[3],q=w[4],r=w[5],s=m*p-n*o,s&&(i=k*(p/s)+l*(-o/s)+(o*r-p*q)/s,j=k*(-n/s)+l*(m/s)-(m*r-n*q)/s,k=c.xOrigin=h[0]=i,l=c.yOrigin=h[1]=j)),v&&(f&&(c.xOffset=v.xOffset,c.yOffset=v.yOffset,v=c),e||e!==!1&&g.defaultSmoothOrigin!==!1?(i=k-t,j=l-u,v.xOffset+=i*w[0]+j*w[2]-i,v.yOffset+=i*w[1]+j*w[3]-j):v.xOffset=v.yOffset=0),f||a.setAttribute("data-svg-origin",h.join(" "))},Oa=function(a){var b,c=Q("svg",this.ownerSVGElement&&this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),d=this.parentNode,e=this.nextSibling,f=this.style.cssText;if(La.appendChild(c),c.appendChild(this),this.style.display="block",a)try{b=this.getBBox(),this._originalGetBBox=this.getBBox,this.getBBox=Oa}catch(g){}else this._originalGetBBox&&(b=this._originalGetBBox());return e?d.insertBefore(this,e):d.appendChild(this),La.removeChild(c),this.style.cssText=f,b},Pa=function(a){try{return a.getBBox()}catch(b){return Oa.call(a,!0)}},Qa=function(a){return!(!Ja||!a.getCTM||a.parentNode&&!a.ownerSVGElement||!Pa(a))},Ra=[1,0,0,1,0,0],Sa=function(a,b){var c,d,e,f,g,h,i,j=a._gsTransform||new Ia,k=1e5,l=a.style;if(Ea?d=ba(a,Fa,null,!0):a.currentStyle&&(d=a.currentStyle.filter.match(H),d=d&&4===d.length?[d[0].substr(4),Number(d[2].substr(4)),Number(d[1].substr(4)),d[3].substr(4),j.x||0,j.y||0].join(","):""),c=!d||"none"===d||"matrix(1, 0, 0, 1, 0, 0)"===d,Ea&&c&&!a.offsetParent&&a!==La&&(f=l.display,l.display="block",i=a.parentNode,i&&a.offsetParent||(g=1,h=a.nextSibling,La.appendChild(a)),d=ba(a,Fa,null,!0),c=!d||"none"===d||"matrix(1, 0, 0, 1, 0, 0)"===d,f?l.display=f:Xa(l,"display"),g&&(h?i.insertBefore(a,h):i?i.appendChild(a):La.removeChild(a))),(j.svg||a.getCTM&&Qa(a))&&(c&&-1!==(l[Ea]+"").indexOf("matrix")&&(d=l[Ea],c=0),e=a.getAttribute("transform"),c&&e&&(e=a.transform.baseVal.consolidate().matrix,d="matrix("+e.a+","+e.b+","+e.c+","+e.d+","+e.e+","+e.f+")",c=0)),c)return Ra;for(e=(d||"").match(s)||[],ya=e.length;--ya>-1;)f=Number(e[ya]),e[ya]=(g=f-(f|=0))?(g*k+(0>g?-.5:.5)|0)/k+f:f;return b&&e.length>6?[e[0],e[1],e[4],e[5],e[12],e[13]]:e},Ta=T.getTransform=function(a,c,d,e){if(a._gsTransform&&d&&!e)return a._gsTransform;var f,h,i,j,k,l,m=d?a._gsTransform||new Ia:new Ia,n=m.scaleX<0,o=2e-5,p=1e5,q=Ha?parseFloat(ba(a,Ga,c,!1,"0 0 0").split(" ")[2])||m.zOrigin||0:0,r=parseFloat(g.defaultTransformPerspective)||0;if(m.svg=!(!a.getCTM||!Qa(a)),m.svg&&(Na(a,ba(a,Ga,c,!1,"50% 50%")+"",m,a.getAttribute("data-svg-origin")),Ca=g.useSVGTransformAttr||Ma),f=Sa(a),f!==Ra){if(16===f.length){var s,t,u,v,w,x=f[0],y=f[1],z=f[2],A=f[3],B=f[4],C=f[5],D=f[6],E=f[7],F=f[8],G=f[9],H=f[10],I=f[12],J=f[13],K=f[14],L=f[11],N=Math.atan2(D,H);m.zOrigin&&(K=-m.zOrigin,I=F*K-f[12],J=G*K-f[13],K=H*K+m.zOrigin-f[14]),m.rotationX=N*M,N&&(v=Math.cos(-N),w=Math.sin(-N),s=B*v+F*w,t=C*v+G*w,u=D*v+H*w,F=B*-w+F*v,G=C*-w+G*v,H=D*-w+H*v,L=E*-w+L*v,B=s,C=t,D=u),N=Math.atan2(-z,H),m.rotationY=N*M,N&&(v=Math.cos(-N),w=Math.sin(-N),s=x*v-F*w,t=y*v-G*w,u=z*v-H*w,G=y*w+G*v,H=z*w+H*v,L=A*w+L*v,x=s,y=t,z=u),N=Math.atan2(y,x),m.rotation=N*M,N&&(v=Math.cos(N),w=Math.sin(N),s=x*v+y*w,t=B*v+C*w,u=F*v+G*w,y=y*v-x*w,C=C*v-B*w,G=G*v-F*w,x=s,B=t,F=u),m.rotationX&&Math.abs(m.rotationX)+Math.abs(m.rotation)>359.9&&(m.rotationX=m.rotation=0,m.rotationY=180-m.rotationY),N=Math.atan2(B,C),m.scaleX=(Math.sqrt(x*x+y*y+z*z)*p+.5|0)/p,m.scaleY=(Math.sqrt(C*C+D*D)*p+.5|0)/p,m.scaleZ=(Math.sqrt(F*F+G*G+H*H)*p+.5|0)/p,x/=m.scaleX,B/=m.scaleY,y/=m.scaleX,C/=m.scaleY,Math.abs(N)>o?(m.skewX=N*M,B=0,"simple"!==m.skewType&&(m.scaleY*=1/Math.cos(N))):m.skewX=0,m.perspective=L?1/(0>L?-L:L):0,m.x=I,m.y=J,m.z=K,m.svg&&(m.x-=m.xOrigin-(m.xOrigin*x-m.yOrigin*B),m.y-=m.yOrigin-(m.yOrigin*y-m.xOrigin*C))}else if(!Ha||e||!f.length||m.x!==f[4]||m.y!==f[5]||!m.rotationX&&!m.rotationY){var O=f.length>=6,P=O?f[0]:1,Q=f[1]||0,R=f[2]||0,S=O?f[3]:1;m.x=f[4]||0,m.y=f[5]||0,i=Math.sqrt(P*P+Q*Q),j=Math.sqrt(S*S+R*R),k=P||Q?Math.atan2(Q,P)*M:m.rotation||0,l=R||S?Math.atan2(R,S)*M+k:m.skewX||0,m.scaleX=i,m.scaleY=j,m.rotation=k,m.skewX=l,Ha&&(m.rotationX=m.rotationY=m.z=0,m.perspective=r,m.scaleZ=1),m.svg&&(m.x-=m.xOrigin-(m.xOrigin*P+m.yOrigin*R),m.y-=m.yOrigin-(m.xOrigin*Q+m.yOrigin*S))}Math.abs(m.skewX)>90&&Math.abs(m.skewX)<270&&(n?(m.scaleX*=-1,m.skewX+=m.rotation<=0?180:-180,m.rotation+=m.rotation<=0?180:-180):(m.scaleY*=-1,m.skewX+=m.skewX<=0?180:-180)),m.zOrigin=q;for(h in m)m[h]<o&&m[h]>-o&&(m[h]=0)}return d&&(a._gsTransform=m,m.svg&&(Ca&&a.style[Ea]?b.delayedCall(.001,function(){Xa(a.style,Ea)}):!Ca&&a.getAttribute("transform")&&b.delayedCall(.001,function(){a.removeAttribute("transform")}))),m},Ua=function(a){var b,c,d=this.data,e=-d.rotation*L,f=e+d.skewX*L,g=1e5,h=(Math.cos(e)*d.scaleX*g|0)/g,i=(Math.sin(e)*d.scaleX*g|0)/g,j=(Math.sin(f)*-d.scaleY*g|0)/g,k=(Math.cos(f)*d.scaleY*g|0)/g,l=this.t.style,m=this.t.currentStyle;if(m){c=i,i=-j,j=-c,b=m.filter,l.filter="";var n,o,q=this.t.offsetWidth,r=this.t.offsetHeight,s="absolute"!==m.position,t="progid:DXImageTransform.Microsoft.Matrix(M11="+h+", M12="+i+", M21="+j+", M22="+k,u=d.x+q*d.xPercent/100,v=d.y+r*d.yPercent/100;if(null!=d.ox&&(n=(d.oxp?q*d.ox*.01:d.ox)-q/2,o=(d.oyp?r*d.oy*.01:d.oy)-r/2,u+=n-(n*h+o*i),v+=o-(n*j+o*k)),s?(n=q/2,o=r/2,t+=", Dx="+(n-(n*h+o*i)+u)+", Dy="+(o-(n*j+o*k)+v)+")"):t+=", sizingMethod='auto expand')",-1!==b.indexOf("DXImageTransform.Microsoft.Matrix(")?l.filter=b.replace(I,t):l.filter=t+" "+b,(0===a||1===a)&&1===h&&0===i&&0===j&&1===k&&(s&&-1===t.indexOf("Dx=0, Dy=0")||y.test(b)&&100!==parseFloat(RegExp.$1)||-1===b.indexOf(b.indexOf("Alpha"))&&l.removeAttribute("filter")),!s){var w,z,A,B=8>p?1:-1;for(n=d.ieOffsetX||0,o=d.ieOffsetY||0,d.ieOffsetX=Math.round((q-((0>h?-h:h)*q+(0>i?-i:i)*r))/2+u),d.ieOffsetY=Math.round((r-((0>k?-k:k)*r+(0>j?-j:j)*q))/2+v),ya=0;4>ya;ya++)z=ha[ya],w=m[z],c=-1!==w.indexOf("px")?parseFloat(w):ca(this.t,z,parseFloat(w),w.replace(x,""))||0,A=c!==d[z]?2>ya?-d.ieOffsetX:-d.ieOffsetY:2>ya?n-d.ieOffsetX:o-d.ieOffsetY,l[z]=(d[z]=Math.round(c-A*(0===ya||2===ya?1:B)))+"px"}}},Va=T.set3DTransformRatio=T.setTransformRatio=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,o,p,q,r,s,t,u,v,w,x,y,z=this.data,A=this.t.style,B=z.rotation,C=z.rotationX,D=z.rotationY,E=z.scaleX,F=z.scaleY,G=z.scaleZ,H=z.x,I=z.y,J=z.z,K=z.svg,M=z.perspective,N=z.force3D,O=z.skewY,P=z.skewX;if(O&&(P+=O,B+=O),((1===a||0===a)&&"auto"===N&&(this.tween._totalTime===this.tween._totalDuration||!this.tween._totalTime)||!N)&&!J&&!M&&!D&&!C&&1===G||Ca&&K||!Ha)return void(B||P||K?(B*=L,x=P*L,y=1e5,c=Math.cos(B)*E,f=Math.sin(B)*E,d=Math.sin(B-x)*-F,g=Math.cos(B-x)*F,x&&"simple"===z.skewType&&(b=Math.tan(x-O*L),b=Math.sqrt(1+b*b),d*=b,g*=b,O&&(b=Math.tan(O*L),b=Math.sqrt(1+b*b),c*=b,f*=b)),K&&(H+=z.xOrigin-(z.xOrigin*c+z.yOrigin*d)+z.xOffset,I+=z.yOrigin-(z.xOrigin*f+z.yOrigin*g)+z.yOffset,Ca&&(z.xPercent||z.yPercent)&&(q=this.t.getBBox(),H+=.01*z.xPercent*q.width,I+=.01*z.yPercent*q.height),q=1e-6,q>H&&H>-q&&(H=0),q>I&&I>-q&&(I=0)),u=(c*y|0)/y+","+(f*y|0)/y+","+(d*y|0)/y+","+(g*y|0)/y+","+H+","+I+")",K&&Ca?this.t.setAttribute("transform","matrix("+u):A[Ea]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix(":"matrix(")+u):A[Ea]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix(":"matrix(")+E+",0,0,"+F+","+H+","+I+")");if(n&&(q=1e-4,q>E&&E>-q&&(E=G=2e-5),q>F&&F>-q&&(F=G=2e-5),!M||z.z||z.rotationX||z.rotationY||(M=0)),B||P)B*=L,r=c=Math.cos(B),s=f=Math.sin(B),P&&(B-=P*L,r=Math.cos(B),s=Math.sin(B),"simple"===z.skewType&&(b=Math.tan((P-O)*L),b=Math.sqrt(1+b*b),r*=b,s*=b,z.skewY&&(b=Math.tan(O*L),b=Math.sqrt(1+b*b),c*=b,f*=b))),d=-s,g=r;else{if(!(D||C||1!==G||M||K))return void(A[Ea]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) translate3d(":"translate3d(")+H+"px,"+I+"px,"+J+"px)"+(1!==E||1!==F?" scale("+E+","+F+")":""));c=g=1,d=f=0}k=1,e=h=i=j=l=m=0,o=M?-1/M:0,p=z.zOrigin,q=1e-6,v=",",w="0",B=D*L,B&&(r=Math.cos(B),s=Math.sin(B),i=-s,l=o*-s,e=c*s,h=f*s,k=r,o*=r,c*=r,f*=r),B=C*L,B&&(r=Math.cos(B),s=Math.sin(B),b=d*r+e*s,t=g*r+h*s,j=k*s,m=o*s,e=d*-s+e*r,h=g*-s+h*r,k*=r,o*=r,d=b,g=t),1!==G&&(e*=G,h*=G,k*=G,o*=G),1!==F&&(d*=F,g*=F,j*=F,m*=F),1!==E&&(c*=E,f*=E,i*=E,l*=E),(p||K)&&(p&&(H+=e*-p,I+=h*-p,J+=k*-p+p),K&&(H+=z.xOrigin-(z.xOrigin*c+z.yOrigin*d)+z.xOffset,I+=z.yOrigin-(z.xOrigin*f+z.yOrigin*g)+z.yOffset),q>H&&H>-q&&(H=w),q>I&&I>-q&&(I=w),q>J&&J>-q&&(J=0)),u=z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix3d(":"matrix3d(",u+=(q>c&&c>-q?w:c)+v+(q>f&&f>-q?w:f)+v+(q>i&&i>-q?w:i),u+=v+(q>l&&l>-q?w:l)+v+(q>d&&d>-q?w:d)+v+(q>g&&g>-q?w:g),
vendor: 18,937 bytes, lines 3569-3648
3569C||D||1!==G?(u+=v+(q>j&&j>-q?w:j)+v+(q>m&&m>-q?w:m)+v+(q>e&&e>-q?w:e),u+=v+(q>h&&h>-q?w:h)+v+(q>k&&k>-q?w:k)+v+(q>o&&o>-q?w:o)+v):u+=",0,0,0,0,1,0,",u+=H+v+I+v+J+v+(M?1+-J/M:1)+")",A[Ea]=u};j=Ia.prototype,j.x=j.y=j.z=j.skewX=j.skewY=j.rotation=j.rotationX=j.rotationY=j.zOrigin=j.xPercent=j.yPercent=j.xOffset=j.yOffset=0,j.scaleX=j.scaleY=j.scaleZ=1,Aa("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin",{parser:function(a,b,c,d,f,h,i){if(d._lastParsedTransform===i)return f;d._lastParsedTransform=i;var j=i.scale&&"function"==typeof i.scale?i.scale:0;j&&(i.scale=j(r,a));var k,l,m,n,o,p,s,t,u,v=a._gsTransform,w=a.style,x=1e-6,y=Da.length,z=i,A={},B="transformOrigin",C=Ta(a,e,!0,z.parseTransform),D=z.transform&&("function"==typeof z.transform?z.transform(r,q):z.transform);if(C.skewType=z.skewType||C.skewType||g.defaultSkewType,d._transform=C,"rotationZ"in z&&(z.rotation=z.rotationZ),D&&"string"==typeof D&&Ea)l=R.style,l[Ea]=D,l.display="block",l.position="absolute",-1!==D.indexOf("%")&&(l.width=ba(a,"width"),l.height=ba(a,"height")),P.body.appendChild(R),k=Ta(R,null,!1),"simple"===C.skewType&&(k.scaleY*=Math.cos(k.skewX*L)),C.svg&&(p=C.xOrigin,s=C.yOrigin,k.x-=C.xOffset,k.y-=C.yOffset,(z.transformOrigin||z.svgOrigin)&&(D={},Na(a,ja(z.transformOrigin),D,z.svgOrigin,z.smoothOrigin,!0),p=D.xOrigin,s=D.yOrigin,k.x-=D.xOffset-C.xOffset,k.y-=D.yOffset-C.yOffset),(p||s)&&(t=Sa(R,!0),k.x-=p-(p*t[0]+s*t[2]),k.y-=s-(p*t[1]+s*t[3]))),P.body.removeChild(R),k.perspective||(k.perspective=C.perspective),null!=z.xPercent&&(k.xPercent=la(z.xPercent,C.xPercent)),null!=z.yPercent&&(k.yPercent=la(z.yPercent,C.yPercent));else if("object"==typeof z){if(k={scaleX:la(null!=z.scaleX?z.scaleX:z.scale,C.scaleX),scaleY:la(null!=z.scaleY?z.scaleY:z.scale,C.scaleY),scaleZ:la(z.scaleZ,C.scaleZ),x:la(z.x,C.x),y:la(z.y,C.y),z:la(z.z,C.z),xPercent:la(z.xPercent,C.xPercent),yPercent:la(z.yPercent,C.yPercent),perspective:la(z.transformPerspective,C.perspective)},o=z.directionalRotation,null!=o)if("object"==typeof o)for(l in o)z[l]=o[l];else z.rotation=o;"string"==typeof z.x&&-1!==z.x.indexOf("%")&&(k.x=0,k.xPercent=la(z.x,C.xPercent)),"string"==typeof z.y&&-1!==z.y.indexOf("%")&&(k.y=0,k.yPercent=la(z.y,C.yPercent)),k.rotation=ma("rotation"in z?z.rotation:"shortRotation"in z?z.shortRotation+"_short":C.rotation,C.rotation,"rotation",A),Ha&&(k.rotationX=ma("rotationX"in z?z.rotationX:"shortRotationX"in z?z.shortRotationX+"_short":C.rotationX||0,C.rotationX,"rotationX",A),k.rotationY=ma("rotationY"in z?z.rotationY:"shortRotationY"in z?z.shortRotationY+"_short":C.rotationY||0,C.rotationY,"rotationY",A)),k.skewX=ma(z.skewX,C.skewX),k.skewY=ma(z.skewY,C.skewY)}for(Ha&&null!=z.force3D&&(C.force3D=z.force3D,n=!0),m=C.force3D||C.z||C.rotationX||C.rotationY||k.z||k.rotationX||k.rotationY||k.perspective,m||null==z.scale||(k.scaleZ=1);--y>-1;)u=Da[y],D=k[u]-C[u],(D>x||-x>D||null!=z[u]||null!=N[u])&&(n=!0,f=new va(C,u,C[u],D,f),u in A&&(f.e=A[u]),f.xs0=0,f.plugin=h,d._overwriteProps.push(f.n));return D="function"==typeof z.transformOrigin?z.transformOrigin(r,q):z.transformOrigin,C.svg&&(D||z.svgOrigin)&&(p=C.xOffset,s=C.yOffset,Na(a,ja(D),k,z.svgOrigin,z.smoothOrigin),f=wa(C,"xOrigin",(v?C:k).xOrigin,k.xOrigin,f,B),f=wa(C,"yOrigin",(v?C:k).yOrigin,k.yOrigin,f,B),(p!==C.xOffset||s!==C.yOffset)&&(f=wa(C,"xOffset",v?p:C.xOffset,C.xOffset,f,B),f=wa(C,"yOffset",v?s:C.yOffset,C.yOffset,f,B)),D="0px 0px"),(D||Ha&&m&&C.zOrigin)&&(Ea?(n=!0,u=Ga,D||(D=(ba(a,u,e,!1,"50% 50%")+"").split(" "),D=D[0]+" "+D[1]+" "+C.zOrigin+"px"),D+="",f=new va(w,u,0,0,f,-1,B),f.b=w[u],f.plugin=h,Ha?(l=C.zOrigin,D=D.split(" "),C.zOrigin=(D.length>2?parseFloat(D[2]):l)||0,f.xs0=f.e=D[0]+" "+(D[1]||"50%")+" 0px",f=new va(C,"zOrigin",0,0,f,-1,f.n),f.b=l,f.xs0=f.e=C.zOrigin):f.xs0=f.e=D):ja(D+"",C)),n&&(d._transformType=C.svg&&Ca||!m&&3!==this._transformType?2:3),j&&(i.scale=j),f},allowFunc:!0,prefix:!0}),Aa("boxShadow",{defaultValue:"0px 0px 0px 0px #999",prefix:!0,color:!0,multi:!0,keyword:"inset"}),Aa("clipPath",{defaultValue:"inset(0%)",prefix:!0,multi:!0,formatter:sa("inset(0% 0% 0% 0%)",!1,!0)}),Aa("borderRadius",{defaultValue:"0px",parser:function(a,b,c,f,g,h){b=this.format(b);var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],z=a.style;for(q=parseFloat(a.offsetWidth),r=parseFloat(a.offsetHeight),i=b.split(" "),j=0;j<y.length;j++)this.p.indexOf("border")&&(y[j]=$(y[j])),m=l=ba(a,y[j],e,!1,"0px"),-1!==m.indexOf(" ")&&(l=m.split(" "),m=l[0],l=l[1]),n=k=i[j],o=parseFloat(m),t=m.substr((o+"").length),u="="===n.charAt(1),u?(p=parseInt(n.charAt(0)+"1",10),n=n.substr(2),p*=parseFloat(n),s=n.substr((p+"").length-(0>p?1:0))||""):(p=parseFloat(n),s=n.substr((p+"").length)),""===s&&(s=d[c]||t),s!==t&&(v=ca(a,"borderLeft",o,t),w=ca(a,"borderTop",o,t),"%"===s?(m=v/q*100+"%",l=w/r*100+"%"):"em"===s?(x=ca(a,"borderLeft",1,"em"),m=v/x+"em",l=w/x+"em"):(m=v+"px",l=w+"px"),u&&(n=parseFloat(m)+p+s,k=parseFloat(l)+p+s)),g=xa(z,y[j],m+" "+l,n+" "+k,!1,"0px",g);return g},prefix:!0,formatter:sa("0px 0px 0px 0px",!1,!0)}),Aa("borderBottomLeftRadius,borderBottomRightRadius,borderTopLeftRadius,borderTopRightRadius",{defaultValue:"0px",parser:function(a,b,c,d,f,g){return xa(a.style,c,this.format(ba(a,c,e,!1,"0px 0px")),this.format(b),!1,"0px",f)},prefix:!0,formatter:sa("0px 0px",!1,!0)}),Aa("backgroundPosition",{defaultValue:"0 0",parser:function(a,b,c,d,f,g){
3570var h,i,j,k,l,m,n="background-position",o=e||aa(a,null),q=this.format((o?p?o.getPropertyValue(n+"-x")+" "+o.getPropertyValue(n+"-y"):o.getPropertyValue(n):a.currentStyle.backgroundPositionX+" "+a.currentStyle.backgroundPositionY)||"0 0"),r=this.format(b);if(-1!==q.indexOf("%")!=(-1!==r.indexOf("%"))&&r.split(",").length<2&&(m=ba(a,"backgroundImage").replace(E,""),m&&"none"!==m)){for(h=q.split(" "),i=r.split(" "),S.setAttribute("src",m),j=2;--j>-1;)q=h[j],k=-1!==q.indexOf("%"),k!==(-1!==i[j].indexOf("%"))&&(l=0===j?a.offsetWidth-S.width:a.offsetHeight-S.height,h[j]=k?parseFloat(q)/100*l+"px":parseFloat(q)/l*100+"%");q=h.join(" ")}return this.parseComplex(a.style,q,r,f,g)},formatter:ja}),Aa("backgroundSize",{defaultValue:"0 0",formatter:function(a){return a+="","co"===a.substr(0,2)?a:ja(-1===a.indexOf(" ")?a+" "+a:a)}}),Aa("perspective",{defaultValue:"0px",prefix:!0}),Aa("perspectiveOrigin",{defaultValue:"50% 50%",prefix:!0}),Aa("transformStyle",{prefix:!0}),Aa("backfaceVisibility",{prefix:!0}),Aa("userSelect",{prefix:!0}),Aa("margin",{parser:ta("marginTop,marginRight,marginBottom,marginLeft")}),Aa("padding",{parser:ta("paddingTop,paddingRight,paddingBottom,paddingLeft")}),Aa("clip",{defaultValue:"rect(0px,0px,0px,0px)",parser:function(a,b,c,d,f,g){var h,i,j;return 9>p?(i=a.currentStyle,j=8>p?" ":",",h="rect("+i.clipTop+j+i.clipRight+j+i.clipBottom+j+i.clipLeft+")",b=this.format(b).split(",").join(j)):(h=this.format(ba(a,this.p,e,!1,this.dflt)),b=this.format(b)),this.parseComplex(a.style,h,b,f,g)}}),Aa("textShadow",{defaultValue:"0px 0px 0px #999",color:!0,multi:!0}),Aa("autoRound,strictUnits",{parser:function(a,b,c,d,e){return e}}),Aa("border",{defaultValue:"0px solid #000",parser:function(a,b,c,d,f,g){var h=ba(a,"borderTopWidth",e,!1,"0px"),i=this.format(b).split(" "),j=i[0].replace(x,"");return"px"!==j&&(h=parseFloat(h)/ca(a,"borderTopWidth",1,j)+j),this.parseComplex(a.style,this.format(h+" "+ba(a,"borderTopStyle",e,!1,"solid")+" "+ba(a,"borderTopColor",e,!1,"#000")),i.join(" "),f,g)},color:!0,formatter:function(a){var b=a.split(" ");return b[0]+" "+(b[1]||"solid")+" "+(a.match(ra)||["#000"])[0]}}),Aa("borderWidth",{parser:ta("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")}),Aa("float,cssFloat,styleFloat",{parser:function(a,b,c,d,e,f){var g=a.style,h="cssFloat"in g?"cssFloat":"styleFloat";return new va(g,h,0,0,e,-1,c,!1,0,g[h],b)}});var Wa=function(a){var b,c=this.t,d=c.filter||ba(this.data,"filter")||"",e=this.s+this.c*a|0;100===e&&(-1===d.indexOf("atrix(")&&-1===d.indexOf("radient(")&&-1===d.indexOf("oader(")?(c.removeAttribute("filter"),b=!ba(this.data,"filter")):(c.filter=d.replace(A,""),b=!0)),b||(this.xn1&&(c.filter=d=d||"alpha(opacity="+e+")"),-1===d.indexOf("pacity")?0===e&&this.xn1||(c.filter=d+" alpha(opacity="+e+")"):c.filter=d.replace(y,"opacity="+e))};Aa("opacity,alpha,autoAlpha",{defaultValue:"1",parser:function(a,b,c,d,f,g){var h=parseFloat(ba(a,"opacity",e,!1,"1")),i=a.style,j="autoAlpha"===c;return"string"==typeof b&&"="===b.charAt(1)&&(b=("-"===b.charAt(0)?-1:1)*parseFloat(b.substr(2))+h),j&&1===h&&"hidden"===ba(a,"visibility",e)&&0!==b&&(h=0),V?f=new va(i,"opacity",h,b-h,f):(f=new va(i,"opacity",100*h,100*(b-h),f),f.xn1=j?1:0,i.zoom=1,f.type=2,f.b="alpha(opacity="+f.s+")",f.e="alpha(opacity="+(f.s+f.c)+")",f.data=a,f.plugin=g,f.setRatio=Wa),j&&(f=new va(i,"visibility",0,0,f,-1,null,!1,0,0!==h?"inherit":"hidden",0===b?"hidden":"inherit"),f.xs0="inherit",d._overwriteProps.push(f.n),d._overwriteProps.push(c)),f}});var Xa=function(a,b){b&&(a.removeProperty?(("ms"===b.substr(0,2)||"webkit"===b.substr(0,6))&&(b="-"+b),a.removeProperty(b.replace(C,"-$1").toLowerCase())):a.removeAttribute(b))},Ya=function(a){if(this.t._gsClassPT=this,1===a||0===a){this.t.setAttribute("class",0===a?this.b:this.e);for(var b=this.data,c=this.t.style;b;)b.v?c[b.p]=b.v:Xa(c,b.p),b=b._next;1===a&&this.t._gsClassPT===this&&(this.t._gsClassPT=null)}else this.t.getAttribute("class")!==this.e&&this.t.setAttribute("class",this.e)};Aa("className",{parser:function(a,b,d,f,g,h,i){var j,k,l,m,n,o=a.getAttribute("class")||"",p=a.style.cssText;if(g=f._classNamePT=new va(a,d,0,0,g,2),g.setRatio=Ya,g.pr=-11,c=!0,g.b=o,k=ea(a,e),l=a._gsClassPT){for(m={},n=l.data;n;)m[n.p]=1,n=n._next;l.setRatio(1)}return a._gsClassPT=g,g.e="="!==b.charAt(1)?b:o.replace(new RegExp("(?:\\s|^)"+b.substr(2)+"(?![\\w-])"),"")+("+"===b.charAt(0)?" "+b.substr(2):""),a.setAttribute("class",g.e),j=fa(a,k,ea(a),i,m),a.setAttribute("class",o),g.data=j.firstMPT,a.style.cssText!==p&&(a.style.cssText=p),g=g.xfirst=f.parse(a,j.difs,g,h)}});var Za=function(a){if((1===a||0===a)&&this.data._totalTime===this.data._totalDuration&&"isFromStart"!==this.data.data){var b,c,d,e,f,g=this.t.style,h=i.transform.parse;if("all"===this.e)g.cssText="",e=!0;else for(b=this.e.split(" ").join("").split(","),d=b.length;--d>-1;)c=b[d],i[c]&&(i[c].parse===h?e=!0:c="transformOrigin"===c?Ga:i[c].p),Xa(g,c);e&&(Xa(g,Ea),f=this.t._gsTransform,f&&(f.svg&&(this.t.removeAttribute("data-svg-origin"),this.t.removeAttribute("transform")),delete this.t._gsTransform))}};for(Aa("clearProps",{parser:function(a,b,d,e,f){return f=new va(a,d,0,0,f,2),f.setRatio=Za,f.e=b,f.pr=-10,f.data=e._tween,c=!0,f}}),j="bezier,throwProps,physicsProps,physics2D".split(","),ya=j.length;ya--;)Ba(j[ya]);j=g.prototype,j._firstPT=j._lastParsedTransform=j._transform=null,j._onInitTween=function(a,b,h,j){if(!a.nodeType)return!1;this._target=q=a,this._tween=h,this._vars=b,r=j,k=b.autoRound,c=!1,d=b.suffixMap||g.suffixMap,e=aa(a,""),f=this._overwriteProps;var n,p,s,t,u,v,w,x,y,A=a.style;if(l&&""===A.zIndex&&(n=ba(a,"zIndex",e),("auto"===n||""===n)&&this._addLazySet(A,"zIndex",0)),"string"==typeof b&&(t=A.cssText,n=ea(a,e),A.cssText=t+";"+b,n=fa(a,n,ea(a)).difs,!V&&z.test(b)&&(n.opacity=parseFloat(RegExp.$1)),b=n,A.cssText=t),b.className?this._firstPT=p=i.className.parse(a,b.className,"className",this,null,null,b):this._firstPT=p=this.parse(a,b,null),this._transformType){for(y=3===this._transformType,Ea?m&&(l=!0,""===A.zIndex&&(w=ba(a,"zIndex",e),("auto"===w||""===w)&&this._addLazySet(A,"zIndex",0)),o&&this._addLazySet(A,"WebkitBackfaceVisibility",this._vars.WebkitBackfaceVisibility||(y?"visible":"hidden"))):A.zoom=1,s=p;s&&s._next;)s=s._next;x=new va(a,"transform",0,0,null,2),this._linkCSSP(x,null,s),x.setRatio=Ea?Va:Ua,x.data=this._transform||Ta(a,e,!0),x.tween=h,x.pr=-1,f.pop()}if(c){for(;p;){for(v=p._next,s=t;s&&s.pr>p.pr;)s=s._next;(p._prev=s?s._prev:u)?p._prev._next=p:t=p,(p._next=s)?s._prev=p:u=p,p=v}this._firstPT=t}return!0},j.parse=function(a,b,c,f){var g,h,j,l,m,n,o,p,s,t,u=a.style;for(g in b){if(n=b[g],h=i[g],"function"!=typeof n||h&&h.allowFunc||(n=n(r,q)),h)c=h.parse(a,n,g,this,c,f,b);else{if("--"===g.substr(0,2)){this._tween._propLookup[g]=this._addTween.call(this._tween,a.style,"setProperty",aa(a).getPropertyValue(g)+"",n+"",g,!1,g);continue}m=ba(a,g,e)+"",s="string"==typeof n,"color"===g||"fill"===g||"stroke"===g||-1!==g.indexOf("Color")||s&&B.test(n)?(s||(n=pa(n),n=(n.length>3?"rgba(":"rgb(")+n.join(",")+")"),c=xa(u,g,m,n,!0,"transparent",c,0,f)):s&&K.test(n)?c=xa(u,g,m,n,!0,null,c,0,f):(j=parseFloat(m),o=j||0===j?m.substr((j+"").length):"",(""===m||"auto"===m)&&("width"===g||"height"===g?(j=ia(a,g,e),o="px"):"left"===g||"top"===g?(j=da(a,g,e),o="px"):(j="opacity"!==g?0:1,o="")),t=s&&"="===n.charAt(1),t?(l=parseInt(n.charAt(0)+"1",10),n=n.substr(2),l*=parseFloat(n),p=n.replace(x,"")):(l=parseFloat(n),p=s?n.replace(x,""):""),""===p&&(p=g in d?d[g]:o),n=l||0===l?(t?l+j:l)+p:b[g],o!==p&&(""!==p||"lineHeight"===g)&&(l||0===l)&&j&&(j=ca(a,g,j,o),"%"===p?(j/=ca(a,g,100,"%")/100,b.strictUnits!==!0&&(m=j+"%")):"em"===p||"rem"===p||"vw"===p||"vh"===p?j/=ca(a,g,1,p):"px"!==p&&(l=ca(a,g,l,p),p="px"),t&&(l||0===l)&&(n=l+j+p)),t&&(l+=j),!j&&0!==j||!l&&0!==l?void 0!==u[g]&&(n||n+""!="NaN"&&null!=n)?(c=new va(u,g,l||j||0,0,c,-1,g,!1,0,m,n),c.xs0="none"!==n||"display"!==g&&-1===g.indexOf("Style")?n:m):X("invalid "+g+" tween value: "+b[g]):(c=new va(u,g,j,l-j,c,0,g,k!==!1&&("px"===p||"zIndex"===g),0,m,n),c.xs0=p))}f&&c&&!c.plugin&&(c.plugin=f)}return c},j.setRatio=function(a){var b,c,d,e=this._firstPT,f=1e-6;if(1!==a||this._tween._time!==this._tween._duration&&0!==this._tween._time)if(a||this._tween._time!==this._tween._duration&&0!==this._tween._time||this._tween._rawPrevTime===-1e-6)for(;e;){if(b=e.c*a+e.s,e.r?b=e.r(b):f>b&&b>-f&&(b=0),e.type)if(1===e.type)if(d=e.l,2===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2;else if(3===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3;else if(4===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4;else if(5===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4+e.xn4+e.xs5;else{for(c=e.xs0+b+e.xs1,d=1;d<e.l;d++)c+=e["xn"+d]+e["xs"+(d+1)];e.t[e.p]=c}else-1===e.type?e.t[e.p]=e.xs0:e.setRatio&&e.setRatio(a);else e.t[e.p]=b+e.xs0;e=e._next}else for(;e;)2!==e.type?e.t[e.p]=e.b:e.setRatio(a),e=e._next;else for(;e;){if(2!==e.type)if(e.r&&-1!==e.type)if(b=e.r(e.s+e.c),e.type){if(1===e.type){for(d=e.l,c=e.xs0+b+e.xs1,d=1;d<e.l;d++)c+=e["xn"+d]+e["xs"+(d+1)];e.t[e.p]=c}}else e.t[e.p]=b+e.xs0;else e.t[e.p]=e.e;else e.setRatio(a);e=e._next}},j._enableTransforms=function(a){this._transform=this._transform||Ta(this._target,e,!0),this._transformType=this._transform.svg&&Ca||!a&&3!==this._transformType?2:3};var $a=function(a){this.t[this.p]=this.e,this.data._linkCSSP(this,this._next,null,!0)};j._addLazySet=function(a,b,c){var d=this._firstPT=new va(a,b,0,0,this._firstPT,2);d.e=c,d.setRatio=$a,d.data=this},j._linkCSSP=function(a,b,c,d){return a&&(b&&(b._prev=a),a._next&&(a._next._prev=a._prev),a._prev?a._prev._next=a._next:this._firstPT===a&&(this._firstPT=a._next,d=!0),c?c._next=a:d||null!==this._firstPT||(this._firstPT=a),a._next=b,a._prev=c),a},j._mod=function(a){for(var b=this._firstPT;b;)"function"==typeof a[b.p]&&(b.r=a[b.p]),b=b._next},j._kill=function(b){var c,d,e,f=b;if(b.autoAlpha||b.alpha){f={};for(d in b)f[d]=b[d];f.opacity=1,f.autoAlpha&&(f.visibility=1)}for(b.className&&(c=this._classNamePT)&&(e=c.xfirst,e&&e._prev?this._linkCSSP(e._prev,c._next,e._prev._prev):e===this._firstPT&&(this._firstPT=c._next),c._next&&this._linkCSSP(c._next,c._next._next,e._prev),this._classNamePT=null),c=this._firstPT;c;)c.plugin&&c.plugin!==d&&c.plugin._kill&&(c.plugin._kill(b),d=c.plugin),c=c._next;return a.prototype._kill.call(this,f)};var _a=function(a,b,c){var d,e,f,g;if(a.slice)for(e=a.length;--e>-1;)_a(a[e],b,c);else for(d=a.childNodes,e=d.length;--e>-1;)f=d[e],g=f.type,f.style&&(b.push(ea(f)),c&&c.push(f)),1!==g&&9!==g&&11!==g||!f.childNodes.length||_a(f,b,c)};return g.cascadeTo=function(a,c,d){var e,f,g,h,i=b.to(a,c,d),j=[i],k=[],l=[],m=[],n=b._internals.reservedProps;for(a=i._targets||i.target,_a(a,k,m),i.render(c,!0,!0),_a(a,l),i.render(0,!0,!0),i._enabled(!0),e=m.length;--e>-1;)if(f=fa(m[e],k[e],l[e]),f.firstMPT){f=f.difs;for(g in d)n[g]&&(f[g]=d[g]);h={};for(g in f)h[g]=k[e][g];j.push(b.fromTo(m[e],c,h,f))}return j},a.activate([g]),g},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()(),function(a){"use strict";var b=function(){return(_gsScope.GreenSockGlobals||_gsScope)[a]};"undefined"!=typeof module&&module.exports?(require("../TweenLite.min.js"),module.exports=b()):"function"==typeof define&&define.amd&&define(["TweenLite"],b)}("CSSPlugin");
3571/*!
3572 * Colcade v0.2.0
3573 * Lightweight masonry layout
3574 * by David DeSandro
3575 * MIT license
3576 */
3577
3578/*jshint browser: true, undef: true, unused: true */
3579
3580( function( window, factory ) {
3581  // universal module definition
3582  /*jshint strict: false */
3583  /*global define: false, module: false */
3584  if ( typeof define == 'function' && define.amd ) {
3585    // AMD
3586    define( factory );
3587  } else if ( typeof module == 'object' && module.exports ) {
3588    // CommonJS
3589    module.exports = factory();
3590  } else {
3591    // browser global
3592    window.Colcade = factory();
3593  }
3594
3595}( window, function factory() {
3596
3597// -------------------------- Colcade -------------------------- //
3598
3599function Colcade( element, options ) {
3600  element = getQueryElement( element );
3601
3602  // do not initialize twice on same element
3603  if ( element && element.colcadeGUID ) {
3604    var instance = instances[ element.colcadeGUID ];
3605    instance.option( options );
3606    return instance;
3607  }
3608
3609  this.element = element;
3610  // options
3611  this.options = {};
3612  this.option( options );
3613  // kick things off
3614  this.create();
3615}
3616
3617var proto = Colcade.prototype;
3618
3619proto.option = function( options ) {
3620  this.options = extend( this.options, options );
3621};
3622
3623// globally unique identifiers
3624var GUID = 0;
3625// internal store of all Colcade intances
3626var instances = {};
3627
3628proto.create = function() {
3629  this.errorCheck();
3630  // add guid for Colcade.data
3631  var guid = this.guid = ++GUID;
3632  this.element.colcadeGUID = guid;
3633  instances[ guid ] = this; // associate via id
3634  // update initial properties & layout
3635  this.reload();
3636  // events
3637  this._windowResizeHandler = this.onWindowResize.bind( this );
3638  this._loadHandler = this.onLoad.bind( this );
3639  window.addEventListener( 'resize', this._windowResizeHandler );
3640  this.element.addEventListener( 'load', this._loadHandler, true );
3641};
3642
3643proto.errorCheck = function() {
3644  var errors = [];
3645  if ( !this.element ) {
3646    errors.push( 'Bad element: ' + this.element );
3647  }
3648  if ( !this.options.columns ) {
vendor: 4,287 bytes, lines 3649-3803
3649    errors.push( 'columns option required: ' + this.options.columns );
3650  }
3651  if ( !this.options.items ) {
3652    errors.push( 'items option required: ' + this.options.items );
3653  }
3654
3655  if ( errors.length ) {
3656    throw new Error( '[Colcade error] ' + errors.join('. ') );
3657  }
3658};
3659
3660// update properties and do layout
3661proto.reload = function() {
3662  this.updateColumns();
3663  this.updateItems();
3664  this.layout();
3665};
3666
3667proto.updateColumns = function() {
3668  this.columns = querySelect( this.options.columns, this.element );
3669};
3670
3671proto.updateItems = function() {
3672  this.items = querySelect( this.options.items, this.element );
3673};
3674
3675proto.getActiveColumns = function() {
3676  return this.columns.filter( function( column ) {
3677    var style = getComputedStyle( column );
3678    return style.display != 'none';
3679  });
3680};
3681
3682// ----- layout ----- //
3683
3684// public, updates activeColumns
3685proto.layout = function() {
3686  this.activeColumns = this.getActiveColumns();
3687  this._layout();
3688};
3689
3690// private, does not update activeColumns
3691proto._layout = function() {
3692  // reset column heights
3693  this.columnHeights = this.activeColumns.map( function() {
3694    return 0;
3695  });
3696  // layout all items
3697  this.layoutItems( this.items );
3698};
3699
3700proto.layoutItems = function( items ) {
3701  items.forEach( this.layoutItem, this );
3702};
3703
3704proto.layoutItem = function( item ) {
3705  // layout item by appending to column
3706  var minHeight = Math.min.apply( Math, this.columnHeights );
3707  var index = this.columnHeights.indexOf( minHeight );
3708  this.activeColumns[ index ].appendChild( item );
3709  // at least 1px, if item hasn't loaded
3710  // Not exactly accurate, but it's cool
3711  this.columnHeights[ index ] += item.offsetHeight || 1;
3712};
3713
3714// ----- adding items ----- //
3715
3716proto.append = function( elems ) {
3717  var items = this.getQueryItems( elems );
3718  // add items to collection
3719  this.items = this.items.concat( items );
3720  // lay them out
3721  this.layoutItems( items );
3722};
3723
3724proto.prepend = function( elems ) {
3725  var items = this.getQueryItems( elems );
3726  // add items to collection
3727  this.items = items.concat( this.items );
3728  // lay out everything
3729  this._layout();
3730};
3731
3732proto.getQueryItems = function( elems ) {
3733  elems = makeArray( elems );
3734  var fragment = document.createDocumentFragment();
3735  elems.forEach( function( elem ) {
3736    fragment.appendChild( elem );
3737  });
3738  return querySelect( this.options.items, fragment );
3739};
3740
3741// ----- measure column height ----- //
3742
3743proto.measureColumnHeight = function( elem ) {
3744  var boundingRect = this.element.getBoundingClientRect();
3745  this.activeColumns.forEach( function( column, i ) {
3746    // if elem, measure only that column
3747    // if no elem, measure all columns
3748    if ( !elem || column.contains( elem ) ) {
3749      var lastChildRect = column.lastElementChild.getBoundingClientRect();
3750      // not an exact calculation as it includes top border, and excludes item bottom margin
3751      this.columnHeights[ i ] = lastChildRect.bottom - boundingRect.top;
3752    }
3753  }, this );
3754};
3755
3756// ----- events ----- //
3757
3758proto.onWindowResize = function() {
3759  clearTimeout( this.resizeTimeout );
3760  this.resizeTimeout = setTimeout( function() {
3761    this.onDebouncedResize();
3762  }.bind( this ), 100 );
3763};
3764
3765proto.onDebouncedResize = function() {
3766  var activeColumns = this.getActiveColumns();
3767  // check if columns changed
3768  var isSameLength = activeColumns.length == this.activeColumns.length;
3769  var isSameColumns = true;
3770  this.activeColumns.forEach( function( column, i ) {
3771    isSameColumns = isSameColumns && column == activeColumns[i];
3772  });
3773  if ( isSameLength && isSameColumns ) {
3774    return;
3775  }
3776  // activeColumns changed
3777  this.activeColumns = activeColumns;
3778  this._layout();
3779};
3780
3781proto.onLoad = function( event ) {
3782  this.measureColumnHeight( event.target );
3783};
3784
3785// ----- destroy ----- //
3786
3787proto.destroy = function() {
3788  // move items back to container
3789  this.items.forEach( function( item ) {
3790    this.element.appendChild( item );
3791  }, this );
3792  // remove events
3793  window.removeEventListener( 'resize', this._windowResizeHandler );
3794  this.element.removeEventListener( 'load', this._loadHandler, true );
3795  // remove data
3796  delete this.element.colcadeGUID;
3797  delete instances[ this.guid ];
3798};
3799
3800// -------------------------- HTML init -------------------------- //
3801
3802docReady( function() {
3803  var dataElems = querySelect('[data-colcade]');
3804  dataElems.forEach( htmlInit );
3805});
3806
3807function htmlInit( elem ) {
3808  // convert attribute "foo: bar, qux: baz" into object
3809  var attr = elem.getAttribute('data-colcade');
3810  var attrParts = attr.split(',');
3811  var options = {};
3812  attrParts.forEach( function( part ) {
3813    var pair = part.split(':');
3814    var key = pair[0].trim();
3815    var value = pair[1].trim();
3816    options[ key ] = value;
3817  });
3818
3819  new Colcade( elem, options );
3820}
3821
3822Colcade.data = function( elem ) {
3823  elem = getQueryElement( elem );
3824  var id = elem && elem.colcadeGUID;
3825  return id && instances[ id ];
3826};
3827
3828// -------------------------- jQuery -------------------------- //
3829
3830Colcade.makeJQueryPlugin = function( $ ) {
3831  $ = $ || window.jQuery;
3832  if ( !$ ) {
3833    return;
3834  }
3835
3836  $.fn.colcade = function( arg0 /*, arg1 */) {
3837    // method call $().colcade( 'method', { options } )
3838    if ( typeof arg0 == 'string' ) {
3839      // shift arguments by 1
3840      var args = Array.prototype.slice.call( arguments, 1 );
3841      return methodCall( this, arg0, args );
3842    }
3843    // just $().colcade({ options })
3844    plainCall( this, arg0 );
3845    return this;
3846  };
3847
3848  function methodCall( $elems, methodName, args ) {
3849    var returnValue;
3850    $elems.each( function( i, elem ) {
3851      // get instance
3852      var colcade = $.data( elem, 'colcade' );
3853      if ( !colcade ) {
3854        return;
3855      }
3856      // apply method, get return value
3857      var value = colcade[ methodName ].apply( colcade, args );
3858      // set return value if value is returned, use only first value
3859      returnValue = returnValue === undefined ? value : returnValue;
3860    });
3861    return returnValue !== undefined ? returnValue : $elems;
3862  }
3863
3864  function plainCall( $elems, options ) {
3865    $elems.each( function( i, elem ) {
3866      var colcade = $.data( elem, 'colcade' );
3867      if ( colcade ) {
3868        // set options & init
3869        colcade.option( options );
3870        colcade.layout();
3871      } else {
3872        // initialize new instance
3873        colcade = new Colcade( elem, options );
3874        $.data( elem, 'colcade', colcade );
3875      }
3876    });
3877  }
3878};
3879
3880// try making plugin
3881Colcade.makeJQueryPlugin();
3882
3883// -------------------------- utils -------------------------- //
3884
3885function extend( a, b ) {
3886  for ( var prop in b ) {
3887    a[ prop ] = b[ prop ];
3888  }
3889  return a;
3890}
3891
3892// turn element or nodeList into an array
3893function makeArray( obj ) {
3894  var ary = [];
3895  if ( Array.isArray( obj ) ) {
3896    // use object if already an array
3897    ary = obj;
3898  } else if ( obj && typeof obj.length == 'number' ) {
3899    // convert nodeList to array
3900    for ( var i=0; i < obj.length; i++ ) {
3901      ary.push( obj[i] );
3902    }
3903  } else {
3904    // array of single index
3905    ary.push( obj );
3906  }
3907  return ary;
3908}
3909
3910// get array of elements
3911function querySelect( selector, elem ) {
3912  elem = elem || document;
3913  var elems = elem.querySelectorAll( selector );
3914  return makeArray( elems );
3915}
3916
3917function getQueryElement( elem ) {
3918  if ( typeof elem == 'string' ) {
3919    elem = document.querySelector( elem );
3920  }
3921  return elem;
3922}
3923
3924function docReady( onReady ) {
3925  if ( document.readyState == 'complete' ) {
3926    onReady();
3927    return;
3928  }
3929  document.addEventListener( 'DOMContentLoaded', onReady );
3930}
3931
3932// -------------------------- end -------------------------- //
3933
3934return Colcade;
3935
3936}));
3937
3938/*! pace 1.0.0 */
3939(function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X=[].slice,Y={}.hasOwnProperty,Z=function(a,b){function c(){this.constructor=a}for(var d in b)Y.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},$=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};for(u={catchupTime:100,initialRate:.03,minTime:250,ghostTime:100,maxProgressPerFrame:20,easeFactor:1.25,startOnPageLoad:!0,restartOnPushState:!0,restartOnRequestAfter:500,target:"body",elements:{checkInterval:100,selectors:["body"]},eventLag:{minSamples:10,sampleCount:3,lagThreshold:3},ajax:{trackMethods:["GET"],trackWebSockets:!0,ignoreURLs:[]}},C=function(){var a;return null!=(a="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance.now():void 0)?a:+new Date},E=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,t=window.cancelAnimationFrame||window.mozCancelAnimationFrame,null==E&&(E=function(a){return setTimeout(a,50)},t=function(a){return clearTimeout(a)}),G=function(a){var b,c;return b=C(),(c=function(){var d;return d=C()-b,d>=33?(b=C(),a(d,function(){return E(c)})):setTimeout(c,33-d)})()},F=function(){var a,b,c;return c=arguments[0],b=arguments[1],a=3<=arguments.length?X.call(arguments,2):[],"function"==typeof c[b]?c[b].apply(c,a):c[b]},v=function(){var a,b,c,d,e,f,g;
vendor: 4,025 bytes, line 3939
3939for(b=arguments[0],d=2<=arguments.length?X.call(arguments,1):[],f=0,g=d.length;g>f;f++)if(c=d[f])for(a in c)Y.call(c,a)&&(e=c[a],null!=b[a]&&"object"==typeof b[a]&&null!=e&&"object"==typeof e?v(b[a],e):b[a]=e);return b},q=function(a){var b,c,d,e,f;for(c=b=0,e=0,f=a.length;f>e;e++)d=a[e],c+=Math.abs(d),b++;return c/b},x=function(a,b){var c,d,e;if(null==a&&(a="options"),null==b&&(b=!0),e=document.querySelector("[data-pace-"+a+"]")){if(c=e.getAttribute("data-pace-"+a),!b)return c;try{return JSON.parse(c)}catch(f){return d=f,"undefined"!=typeof console&&null!==console?console.error("Error parsing inline pace options",d):void 0}}},g=function(){function a(){}return a.prototype.on=function(a,b,c,d){var e;return null==d&&(d=!1),null==this.bindings&&(this.bindings={}),null==(e=this.bindings)[a]&&(e[a]=[]),this.bindings[a].push({handler:b,ctx:c,once:d})},a.prototype.once=function(a,b,c){return this.on(a,b,c,!0)},a.prototype.off=function(a,b){var c,d,e;if(null!=(null!=(d=this.bindings)?d[a]:void 0)){if(null==b)return delete this.bindings[a];for(c=0,e=[];c<this.bindings[a].length;)e.push(this.bindings[a][c].handler===b?this.bindings[a].splice(c,1):c++);return e}},a.prototype.trigger=function(){var a,b,c,d,e,f,g,h,i;if(c=arguments[0],a=2<=arguments.length?X.call(arguments,1):[],null!=(g=this.bindings)?g[c]:void 0){for(e=0,i=[];e<this.bindings[c].length;)h=this.bindings[c][e],d=h.handler,b=h.ctx,f=h.once,d.apply(null!=b?b:this,a),i.push(f?this.bindings[c].splice(e,1):e++);return i}},a}(),j=window.Pace||{},window.Pace=j,v(j,g.prototype),D=j.options=v({},u,window.paceOptions,x()),U=["ajax","document","eventLag","elements"],Q=0,S=U.length;S>Q;Q++)K=U[Q],D[K]===!0&&(D[K]=u[K]);i=function(a){function b(){return V=b.__super__.constructor.apply(this,arguments)}return Z(b,a),b}(Error),b=function(){function a(){this.progress=0}return a.prototype.getElement=function(){var a;if(null==this.el){if(a=document.querySelector(D.target),!a)throw new i;this.el=document.createElement("div"),this.el.className="pace pace-active",document.body.className=document.body.className.replace(/pace-done/g,""),document.body.className+=" pace-running",this.el.innerHTML='<div class="pace-progress">\n  <div class="pace-progress-inner"></div>\n</div>\n<div class="pace-activity"></div>',null!=a.firstChild?a.insertBefore(this.el,a.firstChild):a.appendChild(this.el)}return this.el},a.prototype.finish=function(){var a;return a=this.getElement(),a.className=a.className.replace("pace-active",""),a.className+=" pace-inactive",document.body.className=document.body.className.replace("pace-running",""),document.body.className+=" pace-done"},a.prototype.update=function(a){return this.progress=a,this.render()},a.prototype.destroy=function(){try{this.getElement().parentNode.removeChild(this.getElement())}catch(a){i=a}return this.el=void 0},a.prototype.render=function(){var a,b,c,d,e,f,g;if(null==document.querySelector(D.target))return!1;for(a=this.getElement(),d="translate3d("+this.progress+"%, 0, 0)",g=["webkitTransform","msTransform","transform"],e=0,f=g.length;f>e;e++)b=g[e],a.children[0].style[b]=d;return(!this.lastRenderedProgress||this.lastRenderedProgress|0!==this.progress|0)&&(a.children[0].setAttribute("data-progress-text",""+(0|this.progress)+"%"),this.progress>=100?c="99":(c=this.progress<10?"0":"",c+=0|this.progress),a.children[0].setAttribute("data-progress",""+c)),this.lastRenderedProgress=this.progress},a.prototype.done=function(){return this.progress>=100},a}(),h=function(){function a(){this.bindings={}}return a.prototype.trigger=function(a,b){var c,d,e,f,g;if(null!=this.bindings[a]){for(f=this.bindings[a],g=[],d=0,e=f.length;e>d;d++)c=f[d],g.push(c.call(this,b));return g}},a.prototype.on=function(a,b){var c;return null==(c=this.bindings)[a]&&(c[a]=[]),this.bindings[a].push(b)},a}(),P=window.XMLHttpRequest,O=window.XDomainRequest,N=window.WebSocket,w=function(a,b){var c,d,e,f;f=[];for(d in b.prototype)try{e=b.prototype[d],f.push(null==a[d]&&"function"!=typeof e?a[d]=e:void 0)}catch(g){c=g}return f
vendor: 6,688 bytes, line 3939
3939},A=[],j.ignore=function(){var a,b,c;return b=arguments[0],a=2<=arguments.length?X.call(arguments,1):[],A.unshift("ignore"),c=b.apply(null,a),A.shift(),c},j.track=function(){var a,b,c;return b=arguments[0],a=2<=arguments.length?X.call(arguments,1):[],A.unshift("track"),c=b.apply(null,a),A.shift(),c},J=function(a){var b;if(null==a&&(a="GET"),"track"===A[0])return"force";if(!A.length&&D.ajax){if("socket"===a&&D.ajax.trackWebSockets)return!0;if(b=a.toUpperCase(),$.call(D.ajax.trackMethods,b)>=0)return!0}return!1},k=function(a){function b(){var a,c=this;b.__super__.constructor.apply(this,arguments),a=function(a){var b;return b=a.open,a.open=function(d,e){return J(d)&&c.trigger("request",{type:d,url:e,request:a}),b.apply(a,arguments)}},window.XMLHttpRequest=function(b){var c;return c=new P(b),a(c),c};try{w(window.XMLHttpRequest,P)}catch(d){}if(null!=O){window.XDomainRequest=function(){var b;return b=new O,a(b),b};try{w(window.XDomainRequest,O)}catch(d){}}if(null!=N&&D.ajax.trackWebSockets){window.WebSocket=function(a,b){var d;return d=null!=b?new N(a,b):new N(a),J("socket")&&c.trigger("request",{type:"socket",url:a,protocols:b,request:d}),d};try{w(window.WebSocket,N)}catch(d){}}}return Z(b,a),b}(h),R=null,y=function(){return null==R&&(R=new k),R},I=function(a){var b,c,d,e;for(e=D.ajax.ignoreURLs,c=0,d=e.length;d>c;c++)if(b=e[c],"string"==typeof b){if(-1!==a.indexOf(b))return!0}else if(b.test(a))return!0;return!1},y().on("request",function(b){var c,d,e,f,g;return f=b.type,e=b.request,g=b.url,I(g)?void 0:j.running||D.restartOnRequestAfter===!1&&"force"!==J(f)?void 0:(d=arguments,c=D.restartOnRequestAfter||0,"boolean"==typeof c&&(c=0),setTimeout(function(){var b,c,g,h,i,k;if(b="socket"===f?e.readyState<2:0<(h=e.readyState)&&4>h){for(j.restart(),i=j.sources,k=[],c=0,g=i.length;g>c;c++){if(K=i[c],K instanceof a){K.watch.apply(K,d);break}k.push(void 0)}return k}},c))}),a=function(){function a(){var a=this;this.elements=[],y().on("request",function(){return a.watch.apply(a,arguments)})}return a.prototype.watch=function(a){var b,c,d,e;return d=a.type,b=a.request,e=a.url,I(e)?void 0:(c="socket"===d?new n(b):new o(b),this.elements.push(c))},a}(),o=function(){function a(a){var b,c,d,e,f,g,h=this;if(this.progress=0,null!=window.ProgressEvent)for(c=null,a.addEventListener("progress",function(a){return h.progress=a.lengthComputable?100*a.loaded/a.total:h.progress+(100-h.progress)/2},!1),g=["load","abort","timeout","error"],d=0,e=g.length;e>d;d++)b=g[d],a.addEventListener(b,function(){return h.progress=100},!1);else f=a.onreadystatechange,a.onreadystatechange=function(){var b;return 0===(b=a.readyState)||4===b?h.progress=100:3===a.readyState&&(h.progress=50),"function"==typeof f?f.apply(null,arguments):void 0}}return a}(),n=function(){function a(a){var b,c,d,e,f=this;for(this.progress=0,e=["error","open"],c=0,d=e.length;d>c;c++)b=e[c],a.addEventListener(b,function(){return f.progress=100},!1)}return a}(),d=function(){function a(a){var b,c,d,f;for(null==a&&(a={}),this.elements=[],null==a.selectors&&(a.selectors=[]),f=a.selectors,c=0,d=f.length;d>c;c++)b=f[c],this.elements.push(new e(b))}return a}(),e=function(){function a(a){this.selector=a,this.progress=0,this.check()}return a.prototype.check=function(){var a=this;return document.querySelector(this.selector)?this.done():setTimeout(function(){return a.check()},D.elements.checkInterval)},a.prototype.done=function(){return this.progress=100},a}(),c=function(){function a(){var a,b,c=this;this.progress=null!=(b=this.states[document.readyState])?b:100,a=document.onreadystatechange,document.onreadystatechange=function(){return null!=c.states[document.readyState]&&(c.progress=c.states[document.readyState]),"function"==typeof a?a.apply(null,arguments):void 0}}return a.prototype.states={loading:0,interactive:50,complete:100},a}(),f=function(){function a(){var a,b,c,d,e,f=this;this.progress=0,a=0,e=[],d=0,c=C(),b=setInterval(function(){var g;return g=C()-c-50,c=C(),e.push(g),e.length>D.eventLag.sampleCount&&e.shift(),a=q(e),++d>=D.eventLag.minSamples&&a<D.eventLag.lagThreshold?(f.progress=100,clearInterval(b)):f.progress=100*(3/(a+3))},50)}return a}(),m=function(){function a(a){this.source=a,this.last=this.sinceLastUpdate=0,this.rate=D.initialRate,this.catchup=0,this.progress=this.lastProgress=0,null!=this.source&&(this.progress=F(this.source,"progress"))}return a.prototype.tick=function(a,b){var c;return null==b&&(b=F(this.source,"progress")),b>=100&&(this.done=!0),b===this.last?this.sinceLastUpdate+=a:(this.sinceLastUpdate&&(this.rate=(b-this.last)/this.sinceLastUpdate),this.catchup=(b-this.progress)/D.catchupTime,this.sinceLastUpdate=0,this.last=b),b>this.progress&&(this.progress+=this.catchup*a),c=1-Math.pow(this.progress/100,D.easeFactor),this.progress+=c*this.rate*a,this.progress=Math.min(this.lastProgress+D.maxProgressPerFrame,this.progress),this.progress=Math.max(0,this.progress),this.progress=Math.min(100,this.progress),this.lastProgress=this.progress,this.progress},a}(),L=null,H=null,r=null,M=null,p=null,s=null,j.running=!1,z=function(){return D.restartOnPushState?j.restart():void 0},null!=window.history.pushState&&(T=window.history.pushState,window.history.pushState=function(){return z(),T.apply(window.history,arguments)}),null!=window.history.replaceState&&(W=window.history.replaceState,window.history.replaceState=function(){return z(),W.apply(window.history,arguments)}),l={ajax:a,elements:d,document:c,eventLag:f},(B=function(){var a,c,d,e,f,g,h,i;for(j.sources=L=[],g=["ajax","elements","document","eventLag"],c=0,e=g.length;e>c;c++)a=g[c],D[a]!==!1&&L.push(new l[a](D[a]));for(i=null!=(h=D.extraSources)?h:[],d=0,f=i.length;f>d;d++)K=i[d],L.push(new K(D));return j.bar=r=new b,H=[],M=new m})(),j.stop=function(){return j.trigger("stop"),j.running=!1,r.destroy(),s=!0,null!=p&&("function"==typeof t&&t(p),p=null),B()},j.restart=function(){return j.trigger("restart"),j.stop(),j.start()},j.go=function(){var a;return j.running=!0,r.render(),a=C(),s=!1,p=G(function(b,c){var d,e,f,g,h,i,k,l,n,o,p,q,t,u,v,w;for(l=100-r.progress,e=p=0,f=!0,i=q=0,u=L.length;u>q;i=++q)for(K=L[i],o=null!=H[i]?H[i]:H[i]=[],h=null!=(w=K.elements)?w:[K],k=t=0,v=h.length;v>t;k=++t)g=h[k],n=null!=o[k]?o[k]:o[k]=new m(g),f&=n.done,n.done||(e++,p+=n.tick(b));return d=p/e,r.update(M.tick(b,d)),r.done()||f||s?(r.update(100),j.trigger("done"),setTimeout(function(){return r.finish(),j.running=!1,j.trigger("hide")},Math.max(D.ghostTime,Math.max(D.minTime-(C()-a),0)))):c()})},j.start=function(a){v(D,a),j.running=!0;try{r.render()}catch(b){i=b}return document.querySelector(".pace")?(j.trigger("start"),j.go()):setTimeout(j.start,50)},"function"==typeof define&&define.amd?define(
vendor: 8,192 bytes, lines 3939-3942
3939function(){return j}):"object"==typeof exports?module.exports=j:D.startOnPageLoad&&j.start()}).call(this);
3940
3941
3942!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};(e=function(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',nextArrow:'<button class="slick-next" aria-label="Next" type="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('<button type="button" />').text(t+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,focusOnChange:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},n.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,scrolling:!1,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,swiping:!1,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},i.extend(n,n.initials),n.activeBreakpoint=null,n.animType=null,n.animProp=null,n.breakpoints=[],n.breakpointSettings=[],n.cssTransitions=!1,n.focussed=!1,n.interrupted=!1,n.hidden="hidden",n.paused=!0,n.positionProp=null,n.respondTo=null,n.rowCount=1,n.shouldClick=!0,n.$slider=i(t),n.$slidesCache=null,n.transformType=null,n.transitionType=null,n.visibilityChange="visibilitychange",n.windowWidth=0,n.windowTimer=null,s=i(t).data("slick")||{},n.options=i.extend({},n.defaults,o,s),n.currentSlide=n.options.initialSlide,n.originalSettings=n.options,void 0!==document.mozHidden?(n.hidden="mozHidden",n.visibilityChange="mozvisibilitychange"):void 0!==document.webkitHidden&&(n.hidden="webkitHidden",n.visibilityChange="webkitvisibilitychange"),n.autoPlay=i.proxy(n.autoPlay,n),n.autoPlayClear=i.proxy(n.autoPlayClear,n),n.autoPlayIterator=i.proxy(n.autoPlayIterator,n),n.changeSlide=i.proxy(n.changeSlide,n),n.clickHandler=i.proxy(n.clickHandler,n),n.selectHandler=i.proxy(n.selectHandler,n),n.setPosition=i.proxy(n.setPosition,n),n.swipeHandler=i.proxy(n.swipeHandler,n),n.dragHandler=i.proxy(n.dragHandler,n),n.keyHandler=i.proxy(n.keyHandler,n),n.instanceUid=e++,n.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,n.registerBreakpoints(),n.init(!0)}}()).prototype.activateADA=function(){this.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},e.prototype.addSlide=e.prototype.slickAdd=function(e,t,o){var s=this;if("boolean"==typeof t)o=t,t=null;else if(t<0||t>=s.slideCount)return!1;s.unload(),"number"==typeof t?0===t&&0===s.$slides.length?i(e).appendTo(s.$slideTrack):o?i(e).insertBefore(s.$slides.eq(t)):i(e).insertAfter(s.$slides.eq(t)):!0===o?i(e).prependTo(s.$slideTrack):i(e).appendTo(s.$slideTrack),s.$slides=s.$slideTrack.children(this.options.slide),s.$slideTrack.children(this.options.slide).detach(),s.$slideTrack.append(s.$slides),s.$slides.each(function(e,t){i(t).attr("data-slick-index",e)}),s.$slidesCache=s.$slides,s.reinit()},e.prototype.animateHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.animate({height:e},i.options.speed)}},e.prototype.animateSlide=function(e,t){var o={},s=this;s.animateHeight(),!0===s.options.rtl&&!1===s.options.vertical&&(e=-e),!1===s.transformsEnabled?!1===s.options.vertical?s.$slideTrack.animate({left:e},s.options.speed,s.options.easing,t):s.$slideTrack.animate({top:e},s.options.speed,s.options.easing,t):!1===s.cssTransitions?(!0===s.options.rtl&&(s.currentLeft=-s.currentLeft),i({animStart:s.currentLeft}).animate({animStart:e},{duration:s.options.speed,easing:s.options.easing,step:function(i){i=Math.ceil(i),!1===s.options.vertical?(o[s.animType]="translate("+i+"px, 0px)",s.$slideTrack.css(o)):(o[s.animType]="translate(0px,"+i+"px)",s.$slideTrack.css(o))},complete:function(){t&&t.call()}})):(s.applyTransition(),e=Math.ceil(e),!1===s.options.vertical?o[s.animType]="translate3d("+e+"px, 0px, 0px)":o[s.animType]="translate3d(0px,"+e+"px, 0px)",s.$slideTrack.css(o),t&&setTimeout(function(){s.disableTransition(),t.call()},s.options.speed))},e.prototype.getNavTarget=function(){var e=this,t=e.options.asNavFor;return t&&null!==t&&(t=i(t).not(e.$slider)),t},e.prototype.asNavFor=function(e){var t=this.getNavTarget();null!==t&&"object"==typeof t&&t.each(function(){var t=i(this).slick("getSlick");t.unslicked||t.slideHandler(e,!0)})},e.prototype.applyTransition=function(i){var e=this,t={};!1===e.options.fade?t[e.transitionType]=e.transformType+" "+e.options.speed+"ms "+e.options.cssEase:t[e.transitionType]="opacity "+e.options.speed+"ms "+e.options.cssEase,!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},e.prototype.autoPlayClear=function(){var i=this;i.autoPlayTimer&&clearInterval(i.autoPlayTimer)},e.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(!1===i.options.infinite&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1==0&&(i.direction=1))),i.slideHandler(e))},e.prototype.buildArrows=function(){var e=this;!0===e.options.arrows&&(e.$prevArrow=i(e.options.prevArrow).addClass("slick-arrow"),e.$nextArrow=i(e.options.nextArrow).addClass("slick-arrow"),e.slideCount>e.options.slidesToShow?(e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.prependTo(e.options.appendArrows),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.appendTo(e.options.appendArrows),!0!==e.options.infinite&&e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},e.prototype.buildDots=function(){var e,t,o=this;if(!0===o.options.dots){for(o.$slider.addClass("slick-dotted"),t=i("<ul />").addClass(o.options.dotsClass),e=0;e<=o.getDotCount();e+=1)t.append(i("<li />").append(o.options.customPaging.call(this,o,e)));o.$dots=t.appendTo(o.options.appendDots),o.$dots.find("li").first().addClass("slick-active")}},e.prototype.buildOut=function(){var e=this;e.$slides=e.$slider.children(e.options.slide+":not(.slick-cloned)").addClass("slick-slide"),e.slideCount=e.$slides.length,e.$slides.each(function(e,t){i(t).attr("data-slick-index",e).data("originalStyling",i(t).attr("style")||"")}),e.$slider.addClass("slick-slider"),e.$slideTrack=0===e.slideCount?i('<div class="slick-track"/>').appendTo(e.$slider):e.$slides.wrapAll('<div class="slick-track"/>').parent(),e.$list=e.$slideTrack.wrap('<div class="slick-list"/>').parent(),e.$slideTrack.css("opacity",0),!0!==e.options.centerMode&&!0!==e.options.swipeToSlide||(e.options.slidesToScroll=1),i("img[data-lazy]",e.$slider).not("[src]").addClass("slick-loading"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),!0===e.options.draggable&&e.$list.addClass("draggable")},e.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.o
vendor: 3,442 bytes, line 3942
3942ptions.rows>1){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;i<s;i++){var d=document.createElement("div");for(e=0;e<l.options.rows;e++){var a=document.createElement("div");for(t=0;t<l.options.slidesPerRow;t++){var c=i*r+(e*l.options.slidesPerRow+t);n.get(c)&&a.appendChild(n.get(c))}d.appendChild(a)}o.appendChild(d)}l.$slider.empty().append(o),l.$slider.children().children().children().css({width:100/l.options.slidesPerRow+"%",display:"inline-block"})}},e.prototype.checkResponsive=function(e,t){var o,s,n,r=this,l=!1,d=r.$slider.width(),a=window.innerWidth||i(window).width();if("window"===r.respondTo?n=a:"slider"===r.respondTo?n=d:"min"===r.respondTo&&(n=Math.min(a,d)),r.options.responsive&&r.options.responsive.length&&null!==r.options.responsive){s=null;for(o in r.breakpoints)r.breakpoints.hasOwnProperty(o)&&(!1===r.originalSettings.mobileFirst?n<r.breakpoints[o]&&(s=r.breakpoints[o]):n>r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||!1===l||r.$slider.trigger("breakpoint",[r,l])}},e.prototype.changeSlide=function(e,t){var o,s,n,r=this,l=i(e.currentTarget);switch(l.is("a")&&e.preventDefault(),l.is("li")||(l=l.closest("li")),n=r.slideCount%r.options.slidesToScroll!=0,o=n?0:(r.slideCount-r.currentSlide)%r.options.slidesToScroll,e.data.message){case"previous":s=0===o?r.options.slidesToScroll:r.options.slidesToShow-o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide-s,!1,t);break;case"next":s=0===o?r.options.slidesToScroll:o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide+s,!1,t);break;case"index":var d=0===e.data.index?0:e.data.index||l.index()*r.options.slidesToScroll;r.slideHandler(r.checkNavigable(d),!1,t),l.children().trigger("focus");break;default:return}},e.prototype.checkNavigable=function(i){var e,t;if(e=this.getNavigableIndexes(),t=0,i>e[e.length-1])i=e[e.length-1];else for(var o in e){if(i<e[o]){i=t;break}t=e[o]}return i},e.prototype.cleanUpEvents=function(){var e=this;e.options.dots&&null!==e.$dots&&(i("li",e.$dots).off("click.slick",e.changeSlide).off("mouseenter.slick",i.proxy(e.interrupt,e,!0)).off("mouseleave.slick",i.proxy(e.interrupt,e,!1)),!0===e.options.accessibility&&e.$dots.off("keydown.slick",e.keyHandler)),e.$slider.off("focus.slick blur.slick"),!0===e.options.arrows&&e.slideCount>e.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off("click.slick",e.changeSlide),e.$nextArrow&&e.$nextArrow.off("click.slick",e.changeSlide),!0===e.options.accessibility&&(e.$prevArrow&&e.$prevArrow.off("keydown.slick",e.keyHandler),e.$nextArrow&&e.$nextArrow.off("keydown.slick",e.keyHandler))),e.$list.off("touchstart.slick mousedown.slick",e.swipeHandler),e.$list.off("touchmove.slick mousemove.slick",e.swipeHandler),e.$list.off("touchend.slick mouseup.slick",e.swipeHandler),e.$list.off("touchcancel.slick mouseleave.
3942slick",e.swipeHandler),e.$list.off("click.slick",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),!0===e.options.accessibility&&e.$list.off("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().off("click.slick",e.selectHandler),i(window).off("orientationchange.slick.slick-"+e.instanceUid,e.orientationChange),i(window).off("resize.slick.slick-"+e.instanceUid,e.resize),i("[draggable!=true]",e.$slideTrack).off("dragstart",e.preventDefault),i(window).off("load.slick.slick-"+e.instanceUid,e.setPosition)},e.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.off("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>1&&((i=e.$slides.children().children()).removeAttr("style"),e.$slider.empty().append(i))},e.prototype.clickHandler=function(i){!1===this.shouldClick&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},e.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(".slick-cloned",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){i(this).attr("style",i(this).data("originalStyling"))}),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass("slick-slider"),t.$slider.removeClass("slick-initialized"),t.$slider.removeClass("slick-dotted"),t.unslicked=!0,e||t.$slider.trigger("destroy",[t])},e.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]="",!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.fadeSlide=function(i,e){var t=this;!1===t.cssTransitions?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},e.prototype.fadeSlideOut=function(i){var e=this;!1===e.cssTransitions?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},e.prototype.filterSlides=e.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},e.prototype.focusHandler=function(){var e=this;e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*",function(t){t.stopImmediatePropagation();var o=i(this);setTimeout(function(){e.options.pauseOnFocus&&(e.focussed=o.is(":focus"),e.autoPlay())},0)})},e.prototype.getCurrent=e.prototype.slickCurrentSlide=function(){return this.currentSlide},e.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(!0===i.options.infinite)if(i.slideCount<=i.options.slidesToShow)++o;else for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(!0===i.options.centerMode)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},e.prototype.getLeft=function(i){var e,t,o,s,n=this,r=0;return n.slideOffset=0,t=n.$slides.first().outerHeight(!0),!0===n.options.infinite?(n.slideCount>n.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,!0===n.options.vertical&&!0===n.options.centerMode&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),r=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!=0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,r=(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,r=n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,r=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(n.slideOffset=0,r=0),!0===n.options.centerMode&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:!0===n.options.centerMode&&!0===n.options.infinite?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:!0===n.options.centerMode&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=!1===n.options.vertical?i*n.slideWidth*-1+n.slideOffset:i*t*-1+r,!0===n.options.variableWidth&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,!0===n.options.centerMode&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow+1),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,e+=(n.$list.width()-o.outerWidth())/2)),e},e.prototype.getOption=e.prototype.slickGetOption=function(i){return this.options[i]},e.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(!1===e.options.infinite?i=e.slideCount:(t=-1*e.options.slidesToScroll,o=-1*e.options.slidesToScroll,i=2*e.slideCount);t<i;)s.push(t),t=o+e.options.slidesToScroll,o+=e.options.slidesToScroll<=e.options.slidesToShow?e.options.slidesToScroll:e.options.slidesToShow;return s},e.prototype.getSlick=function(){return this},e.prototype.getSlideCount=function(){var e,t,o=this;return t=!0===o.options.centerMode?o.slideWidth*Math.floor(o.options.slidesToShow/2):0,!0===o.options.swipeToSlide?(o.$slideTrack.find(".slick-slide").each(function(s,n){if(n.offsetLeft-t+i(n).outerWidth()/2>-1*o.swipeLeft)return e=n,!1}),Math.abs(i(e).attr("data-slick-index")-o.currentSlide)||1):o.options.slidesToScroll},e.prototype.goTo=e.prototype.slickGoTo=function(i,e){this.changeSlide({data:{message:"index",index:
3942parseInt(i)}},e)},e.prototype.init=function(e){var t=this;i(t.$slider).hasClass("slick-initialized")||(i(t.$slider).addClass("slick-initialized"),t.buildRows(),t.buildOut(),t.setProps(),t.startLoad(),t.loadSlider(),t.initializeEvents(),t.updateArrows(),t.updateDots(),t.checkResponsive(!0),t.focusHandler()),e&&t.$slider.trigger("init",[t]),!0===t.options.accessibility&&t.initADA(),t.options.autoplay&&(t.paused=!1,t.autoPlay())},e.prototype.initADA=function(){var e=this,t=Math.ceil(e.slideCount/e.options.slidesToShow),o=e.getNavigableIndexes().filter(function(i){return i>=0&&i<e.slideCount});e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),null!==e.$dots&&(e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function(t){var s=o.indexOf(t);i(this).attr({role:"tabpanel",id:"slick-slide"+e.instanceUid+t,tabindex:-1}),-1!==s&&i(this).attr({"aria-describedby":"slick-slide-control"+e.instanceUid+s})}),e.$dots.attr("role","tablist").find("li").each(function(s){var n=o[s];i(this).attr({role:"presentation"}),i(this).find("button").first().attr({role:"tab",id:"slick-slide-control"+e.instanceUid+s,"aria-controls":"slick-slide"+e.instanceUid+n,"aria-label":s+1+" of "+t,"aria-selected":null,tabindex:"-1"})}).eq(e.currentSlide).find("button").attr({"aria-selected":"true",tabindex:"0"}).end());for(var s=e.currentSlide,n=s+e.options.slidesToShow;s<n;s++)e.$slides.eq(s).attr("tabindex",0);e.activateADA()},e.prototype.initArrowEvents=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},i.changeSlide),i.$nextArrow.off("click.slick").on("click.slick",{message:"next"},i.changeSlide),!0===i.options.accessibility&&(i.$prevArrow.on("keydown.slick",i.keyHandler),i.$nextArrow.on("keydown.slick",i.keyHandler)))},e.prototype.initDotEvents=function(){var e=this;!0===e.options.dots&&(i("li",e.$dots).on("click.slick",{message:"index"},e.changeSlide),!0===e.options.accessibility&&e.$dots.on("keydown.slick",e.keyHandler)),!0===e.options.dots&&!0===e.options.pauseOnDotsHover&&i("li",e.$dots).on("mouseenter.slick",i.proxy(e.interrupt,e,!0)).on("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.on("mouseleave.slick",i.proxy(e.interrupt,e,!1)))},e.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on("touchstart.slick mousedown.slick",{action:"start"},e.swipeHandler),e.$list.on("touchmove.slick mousemove.slick",{action:"move"},e.swipeHandler),e.$list.on("touchend.slick mouseup.slick",{action:"end"}
3942,e.swipeHandler),e.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},e.swipeHandler),e.$list.on("click.slick",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),!0===e.options.accessibility&&e.$list.on("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),i(window).on("orientationchange.slick.slick-"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on("resize.slick.slick-"+e.instanceUid,i.proxy(e.resize,e)),i("[draggable!=true]",e.$slideTrack).on("dragstart",e.preventDefault),i(window).on("load.slick.slick-"+e.instanceUid,e.setPosition),i(e.setPosition)},e.prototype.initUI=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},e.prototype.keyHandler=function(i){var e=this;i.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===i.keyCode&&!0===e.options.accessibility?e.changeSlide({data:{message:!0===e.options.rtl?"next":"previous"}}):39===i.keyCode&&!0===e.options.accessibility&&e.changeSlide({data:{message:!0===e.options.rtl?"previous":"next"}}))},e.prototype.lazyLoad=function(){function e(e){i("img[data-lazy]",e).each(function(){var e=i(this),t=i(this).attr("data-lazy"),o=i(this).attr("data-srcset"),s=i(this).attr("data-sizes")||n.$slider.attr("data-sizes"),r=document.createElement("img");r.onload=function(){e.animate({opacity:0}
vendor: 5,619 bytes, line 3942
3942,100,function(){o&&(e.attr("srcset",o),s&&e.attr("sizes",s)),e.attr("src",t).animate({opacity:1},200,function(){e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")}),n.$slider.trigger("lazyLoaded",[n,e,t])})},r.onerror=function(){e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),n.$slider.trigger("lazyLoadError",[n,e,t])},r.src=t})}var t,o,s,n=this;if(!0===n.options.centerMode?!0===n.options.infinite?s=(o=n.currentSlide+(n.options.slidesToShow/2+1))+n.options.slidesToShow+2:(o=Math.max(0,n.currentSlide-(n.options.slidesToShow/2+1)),s=n.options.slidesToShow/2+1+2+n.currentSlide):(o=n.options.infinite?n.options.slidesToShow+n.currentSlide:n.currentSlide,s=Math.ceil(o+n.options.slidesToShow),!0===n.options.fade&&(o>0&&o--,s<=n.slideCount&&s++)),t=n.$slider.find(".slick-slide").slice(o,s),"anticipated"===n.options.lazyLoad)for(var r=o-1,l=s,d=n.$slider.find(".slick-slide"),a=0;a<n.options.slidesToScroll;a++)r<0&&(r=n.slideCount-1),t=(t=t.add(d.eq(r))).add(d.eq(l)),r--,l++;e(t),n.slideCount<=n.options.slidesToShow?e(n.$slider.find(".slick-slide")):n.currentSlide>=n.slideCount-n.options.slidesToShow?e(n.$slider.find(".slick-cloned").slice(0,n.options.slidesToShow)):0===n.currentSlide&&e(n.$slider.find(".slick-cloned").slice(-1*n.options.slidesToShow))},e.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass("slick-loading"),i.initUI(),"progressive"===i.options.lazyLoad&&i.progressiveLazyLoad()},e.prototype.next=e.prototype.slickNext=function(){this.changeSlide({data:{message:"next"}})},e.prototype.orientationChange=function(){var i=this;i.checkResponsive(),i.setPosition()},e.prototype.pause=e.prototype.slickPause=function(){var i=this;i.autoPlayClear(),i.paused=!0},e.prototype.play=e.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},e.prototype.postSlide=function(e){var t=this;t.unslicked||(t.$slider.trigger("afterChange",[t,e]),t.animating=!1,t.slideCount>t.options.slidesToShow&&t.setPosition(),t.swipeLeft=null,t.options.autoplay&&t.autoPlay(),!0===t.options.accessibility&&(t.initADA(),t.options.focusOnChange&&i(t.$slides.get(t.currentSlide)).attr("tabindex",0).focus()))},e.prototype.prev=e.prototype.slickPrev=function(){this.changeSlide({data:{message:"previous"}})},e.prototype.preventDefault=function(i){i.preventDefault()},e.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n,r,l=this,d=i("img[data-lazy]",l.$slider);d.length?(t=d.first(),o=t.attr("data-lazy"),s=t.attr("data-srcset"),n=t.attr("data-sizes")||l.$slider.attr("data-sizes"),(r=document.createElement("img")).onload=function(){s&&(t.attr("srcset",s),n&&t.attr("sizes",n)),t.attr("src",o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"),!0===l.options.adaptiveHeight&&l.setPosition(),l.$slider.trigger("lazyLoaded",[l,t,o]),l.progressiveLazyLoad()},r.onerror=function(){e<3?setTimeout(function(){l.progressiveLazyLoad(e+1)},500):(t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),l.$slider.trigger("lazyLoadError",[l,t,o]),l.progressiveLazyLoad())},r.src=o):l.$slider.trigger("allImagesLoaded",[l])},e.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:"index",index:t}},!1)},e.prototype.registerBreakpoints=function(){var e,t,o,s=this,n=s.options.responsive||null;if("array"===i.type(n)&&n.length){s.respondTo=s.options.respondTo||"window";for(e in n)if(o=s.breakpoints.length-1,n.hasOwnProperty(e)){for(t=n[e].breakpoint;o>=0;)s.breakpoints[o]&&s.breakpoints[o]===t&&s.breakpoints.splice(o,1),o--;s.breakpoints.push(t),s.breakpointSettings[t]=n[e].settings}s.breakpoints.sort(function(i,e){return s.options.mobileFirst?i-e:e-i})}},e.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass("slick-slide"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger("reInit",[e])},e.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout(function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()},50))},e.prototype.removeSlide=e.prototype.slickRemove=function(i,e,t){var o=this;if(i="boolean"==typeof i?!0===(e=i)?0:o.slideCount-1:!0===e?--i:i,o.slideCount<1||i<0||i>o.slideCount-1)return!1;o.unload(),!0===t?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,o.reinit()},e.prototype.setCSS=function(i){var e,t,o=this,s={};
3942!0===o.options.rtl&&(i=-i),e="left"==o.positionProp?Math.ceil(i)+"px":"0px",t="top"==o.positionProp?Math.ceil(i)+"px":"0px",s[o.positionProp]=i,!1===o.transformsEnabled?o.$slideTrack.css(s):(s={},!1===o.cssTransitions?(s[o.animType]="translate("+e+", "+t+")",o.$slideTrack.css(s)):(s[o.animType]="translate3d("+e+", "+t+", 0px)",o.$slideTrack.css(s)))},e.prototype.setDimensions=function(){var i=this;!1===i.options.vertical?!0===i.options.centerMode&&i.$list.css({padding:"0px "+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),!0===i.options.centerMode&&i.$list.css({padding:i.options.centerPadding+" 0px"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),!1===i.options.vertical&&!1===i.options.variableWidth?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(".slick-slide").length))):!0===i.options.variableWidth?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(".slick-slide").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();!1===i.options.variableWidth&&i.$slideTrack.children(".slick-slide").width(i.slideWidth-e)},e.prototype.setFade=function(){var e,t=this;t.$slides.each(function(o,s){e=t.slideWidth*o*-1,!0===t.options.rtl?i(s).css({position:"relative",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}
3942):i(s).css({position:"relative",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})}),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},e.prototype.setHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css("height",e)}},e.prototype.setOption=e.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if("object"===i.type(arguments[0])?(o=arguments[0],l=arguments[1],n="multiple"):"string"===i.type(arguments[0])&&(o=arguments[0],s=arguments[1],l=arguments[2],"responsive"===arguments[0]&&"array"===i.type(arguments[1])?n="responsive":void 0!==arguments[1]&&(n="single")),"single"===n)r.options[o]=s;else if("multiple"===n)i.each(o,function(i,e){r.options[i]=e});else if("responsive"===n)for(t in s)if("array"!==i.type(r.options.responsive))r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},e.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),!1===i.options.fade?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger("setPosition",[i])},e.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=!0===i.options.vertical?"top":"left","top"===i.positionProp?i.$slider.addClass("slick-vertical"):i.$slider.removeClass("slick-vertical"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||!0===i.options.useCSS&&(i.cssTransitions=!0),i.options.fade&&("number"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType="OTransform",i.transformType="-o-transform",i.transitionType="OTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType="MozTransform",i.transformType="-moz-transform",i.transitionType="MozTransition",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType="webkitTransform",i.transformType="-webkit-transform",i.transitionType="webkitTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType="msTransform",i.transformType="-ms-transform",i.transitionType="msTransition",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&!1!==i.animType&&(i.animType="transform",i.transformType="transform",i.transitionType="transition"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&!1!==i.animType},e.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;if(t=n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),n.$slides.eq(i).addClass("slick-current"),!0===n.options.centerMode){var r=n.options.slidesToShow%2==0?1:0;e=Math.floor(n.options.slidesToShow/2),!0===n.options.infinite&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e+r,i+e+1).addClass("slick-active").attr("aria-hidden","false"):(o=n.options.slidesToShow+i,t.slice(o-e+1+r,o+e+2).addClass("slick-active").attr("aria-hidden","false")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass("slick-center"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass("slick-center")),n.$slides.eq(i).addClass("slick-center")}else i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):t.length<=n.options.slidesToShow?t.addClass("slick-active").attr("aria-hidden","false"):(s=n.slideCount%n.options.slidesToShow,o=!0===n.options.infinite?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?t.slice(o-(n.options.slidesToShow-s),o+s).addClass("slick-active").attr("aria-hidden","false"):t.slice(o,o+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"));"ondemand"!==n.options.lazyLoad&&"anticipated"!==n.options.lazyLoad||n.lazyLoad()},e.prototype.setupInfinite=function(){var e,t,o,s=this;if(!0===s.options.fade&&(s.options.centerMode=!1),!0===s.options.infinite&&!1===s.options.fade&&(t=null,s.slideCount>s.options.slidesToShow)){for(o=!0===s.options.centerMode?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t-s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");for(e=0;e<o+s.slideCount;e+=1)t=e,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t+s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");s.$slideTrack.find(".slick-cloned").find("[id]").each(function(){i(this).attr("id","")})}},e.prototype.interrupt=function(i){var e=this;i||e.autoPlay(),e.interrupted=i},e.prototype.selectHandler=function(e){var t=this,o=i(e.target).is(".slick-slide")?i(e.target):i(e.target).parents(".slick-slide"),s=parseInt(o.attr("data-slick-index"));s||(s=0),t.slideCount<=t.options.slidesToShow?t.slideHandler(s,!1,!0):t.slideHandler(s)},e.prototype.slideHandler=function(i,e,t){var o,s,n,r,l,d=null,a=this;if(e=e||!1,!(!0===a.animating&&!0===a.options.waitForAnimate||!0===a.options.fade&&a.currentSlide===i))if(!1===e&&a.asNavFor(i),o=i,d=a.getLeft(o),r=a.getLeft(a.currentSlide),a.currentLeft=null===a.swipeLeft?r:a.swipeLeft,!1===a.options.infinite&&!1===a.options.centerMode&&(i<0||i>a.getDotCount()*a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else if(!1===a.options.infinite&&!0===a.options.centerMode&&(i<0||i>a.slideCount-a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else{if(a.options.autoplay&&clearInterval(a.autoPlayTimer),s=o<0?a.slideCount%a.options.slidesToScroll!=0?a.slideCount-a.slideCount%a.options.slidesToScroll:a.slideCount+
3942o:o>=a.slideCount?a.slideCount%a.options.slidesToScroll!=0?0:o-a.slideCount:o,a.animating=!0,a.$slider.trigger("beforeChange",[a,a.currentSlide,s]),n=a.currentSlide,a.currentSlide=s,a.setSlideClasses(a.currentSlide),a.options.asNavFor&&(l=(l=a.getNavTarget()).slick("getSlick")).slideCount<=l.options.slidesToShow&&l.setSlideClasses(a.currentSlide),a.updateDots(),a.updateArrows(),!0===a.options.fade)return!0!==t?(a.fadeSlideOut(n),a.fadeSlide(s,function(){a.postSlide(s)})):a.postSlide(s),void a.animateHeight();!0!==t?a.animateSlide(d,function(){a.postSlide(s)}):a.postSlide(s)}},e.prototype.startLoad=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass("slick-loading")},e.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),(o=Math.round(180*t/Math.PI))<0&&(o=360-Math.abs(o)),o<=45&&o>=0?!1===s.options.rtl?"left":"right":o<=360&&o>=315?!1===s.options.rtl?"left":"right":o>=135&&o<=225?!1===s.options.rtl?"right":"left":!0===s.options.verticalSwiping?o>=35&&o<=135?"down":"up":"vertical"},e.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1,!1;if(o.interrupted=!1,o.shouldClick=!(o.touchObject.swipeLength>10),void 0===o.touchObject.curX)return!1;if(!0===o.touchObject.edgeHit&&o.$slider.trigger("edge",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case"left":case"down":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case"right":case"up":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}"vertical"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger("swipe",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},e.prototype.swipeHandler=function(i){var e=this;if(!(!1===e.options.swipe||"ontouchend"in document&&!1===e.options.swipe||!1===e.options.draggable&&-1!==i.type.indexOf("mouse")))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,!0===e.options.verticalSwiping&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case"start":e.swipeStart(i);break;case"move":e.swipeMove(i);break;case"end":e.swipeEnd(i)}},e.prototype.swipeMove=function(i){var e,t,o,s,n,r,l=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!(!l.dragging||l.scrolling||n&&1!==n.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,l.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),r=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&r>4?(l.scrolling=!0,!1):(!0===l.options.verticalSwiping&&(l.touchObject.swipeLength=r),t=l.swipeDirection(),void 0!==i.originalEvent&&l.touchObject.swipeLength>4&&(l.swiping=!0,i.preventDefault()),s=(!1===l.options.rtl?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),!0===l.options.verticalSwiping&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,l.touchObject.edgeHit=!1,!1===l.options.infinite&&(0===l.currentSlide&&"right"===t||l.currentSlide>=l.getDotCount()&&"left"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),!1===l.options.vertical?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,!0===l.options.verticalSwiping&&(l.swipeLeft=e+o*s),!0!==l.options.fade&&!1!==l.options.touchMove&&(!0===l.animating?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},e.prototype.swipeStart=function(i){var e,t=this;if(t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow)return t.touchObject={},!1;void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,t.dragging=!0},e.prototype.unfilterSlides=e.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},e.prototype.unload=function(){var e=this;i(".slick-cloned",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")}
3942,e.prototype.unslick=function(i){var e=this;e.$slider.trigger("unslick",[e,i]),e.destroy()},e.prototype.updateArrows=function(){var i=this;Math.floor(i.options.slidesToShow/2),!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&!i.options.infinite&&(i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===i.currentSlide?(i.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-i.options.slidesToShow&&!1===i.options.centerMode?(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-1&&!0===i.options.centerMode&&(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},e.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find("li").removeClass("slick-active").end(),i.$dots.find("li").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass("slick-active"))},e.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,t,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;i<r;i++)if("object"==typeof s||void 0===s?o[i].slick=new e(o[i],s):t=o[i].slick[s].apply(o[i].slick,n),void 0!==t)return t;return o}});
3943
3944$(document).ready(function() {
3945    if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
3946        var isMobile = true;
3947    } else {
3948        var isMobile = false;
3949    }
3950
3951
3952    addErrorClassToRecaptcha();
3953
3954    $(".backendlayout-cs_simple #page-content h2").first().addClass( "highlight" );
3955    $(".form-overlay-content form fieldset").last().addClass( "forminfo" );
3956    $("#page-content form fieldset").last().addClass( "forminfo" );
3957
3958
3959    setTimeout(function () {
3960        var divs = $("#p1 .tx-blog-post-list.grid > .grid-item");
3961        for(var i = 0; i < divs.length; i+=2) {
3962            divs.slice(i, i+2).wrapAll("<div class='grid-col-wrapper grid-col'></div>");
3963        }
3964
3965        $("#p1 .tx-blog-post-list.grid .grid-col-wrapper:nth-child(3n+1)").addClass("grid-col--1")
3966        $("#p1 .tx-blog-post-list.grid .grid-col-wrapper:nth-child(3n-1)").addClass("grid-col--2")
3967        $("#p1 .tx-blog-post-list.grid .grid-col-wrapper:nth-child(3n)").addClass("grid-col--3")
3968
3969        if (typeof $('#p1 .tx-blog-post-list.grid').colcade !== "undefined") {
3970            $('#p1 .tx-blog-post-list.grid').colcade({
3971                columns: '.grid-col',
3972                items: '.grid-item',
3973            });
3974        }
3975    }, 500);
3976
3977
3978
3979    // UPDATE V11
3980    var container = document.querySelectorAll('.gallery-row');
3981    container.forEach(function(el){
3982        var inner = el.querySelectorAll('div').length;
3983        if(inner == 1) {
3984            el.classList.add('only-one-div');
3985        }
3986        else {
3987
3988        }
3989    });
3990
3991
3992        $('.burger, .overlay').click(function(){
3993        $('.burger').toggleClass('clicked');
3994        $('.top-menu').toggleClass('clicked');
3995        $('.overlay').toggleClass('show');
3996        $('#mainnavigation').toggleClass('show');
3997        $('body').toggleClass('overflow');
3998        $("#mainnavigation").removeClass("haslevel2");
3999        $("#mainnavigation .level2-wrapper").removeClass("active");
4000    });
4001
4002    // FORM OVERLAY
4003    /*$('.overlaybutton, .overlay-form').click(function(){
4004        $('.overlaybutton').toggleClass('clicked');
4005        $('.overlay-form').toggleClass('show');
4006        $('.form-overlay-content').toggleClass('show');
4007        $('body').toggleClass('overflow');
4008    });
4009    // FORM CLOSE BUTTON
4010    $('.form-overlay-content .close-icon').click(function(){
4011        $('.overlaybutton').removeClass('clicked');
4012        $('.overlay-form').removeClass('show');
4013        $('.form-overlay-content').removeClass('show');
4014        $('body').removeClass('overflow');
4015    });*/
4016    // SEARCH OVERLAY
4017    $('.searchbutton, .overlay-search').click(function(){
4018        $('.searchbutton').toggleClass('clicked');
4019        $('.overlay-search').toggleClass('show');
4020        $('.searchcontent').toggleClass('show');
4021        $('body').toggleClass('overflow');
4022    });
4023    // FORM CLOSE BUTTON
4024    $('.form-overlay-content .close-icon').click(function(){
4025        $('.searchbutton').removeClass('clicked');
4026        $('.overlay-search').removeClass('show');
4027        $('.searchcontent').removeClass('show');
4028        $('body').removeClass('overflow');
4029    });
4030
4031    //MENU DESKTOP OVERLAY
4032    if ($(window).width() >= 992) {
4033        $("body").addClass("desktop");
4034        $("#mainnavigation .dropdown .dropdown-menu").wrapAll( "<div class='level2
4034-wrapper'></div>" );
4035        $(".level2-wrapper").prependTo("#mainnavigation");
4036        $("#mainnavigation .dropdown").click(function(e) {
4037            e.preventDefault();
4038            var currentId = $(this).find('a').attr('id');
4039            $("#mainnavigation .level2-wrapper .dropdown-menu, #mainnavigation .navbar-nav > li ").removeClass("show");
4040            if (!$("#mainnavigation").hasClass('haslevel2')){
4041                $("#mainnavigation").addClass("haslevel2");
4042                $("#mainnavigation .level2-wrapper").addClass("active");
4043            }
4044            $(this).toggleClass("show"); + $("#mainnavigation .level2-wrapper").find("." + currentId).toggleClass("show");
4045            return false;
4046        });
4047    }
4048
4049    //MOBILE MENU
4050    if ($(window).width() < 992) {
4051        $("#mainnavigation > .navbar-nav > .nav-item > a").click(function(e) {
4052            e.preventDefault();
4053            $(this).parent().find(".dropdown-menu").toggleClass("show");
4054            $(this).toggleClass("open");
4055            return false;
4056        });
4057    }
4058
4059    slickSlider();
4060
4061    if (navigator.userAgent.match(/msie/i) || navigator.userAgent.match(/trident/i) ){
4062        $("body").addClass("internet_explorer");
4063    }
4064
4065    ///////////////////////////////////////////////////////////////////////
4066    ////////////////// SCROLLING ANIMATION CIRCLES START //////////////////
4067    ///////////////////////////////////////////////////////////////////////
4068    if (!isMobile) {
4069        if (typeof ScrollMagic !== "undefined" && TimelineMax !== "undefined") {
4070            const controller = new ScrollMagic.Controller();
4071            //SMALL SCREEN
4072            $('.frame-layout-special-text-image .row .col-lg-6:last-child .gallery-item:nth-child(2),.frame-layout-special-text-image .row .col-lg-6:first-child .gallery-item:nth-child(2)').each(function () {
4073                const tl = new TimelineMax();
4074                const child = $(this).find('picture');
4075                tl.to(child, 1, {y: -200, scale: 1.1, ease: 'none'});
4076                const scene = new ScrollMagic.Scene({
4077                    triggerElement: this,
4078                    //triggerHook: 1,
4079                    duration: '200%',
4080                })
4081                    .setTween(tl)
4082                    //.addIndicators()
4083                    .addTo(controller);
4084            });
4085            //ICON
4086            $('.frame-layout-special-text-image .row .col-lg-6:first-child .gallery-item:first-child,.frame-layout-special-text-image .row .col-lg-6:last-child .gallery-item:first-child').each(function () {
4087                const tl = new TimelineMax();
4088                const child = $(this).find('picture');
4089                tl.to(child, 1, {y: +200, scale: 1.1, ease: 'none'});
4090                const scene = new ScrollMagic.Scene({
4091                    triggerElement: this,
4092                    //triggerHook: 1,
4093                    duration: '200%',
4094                })
4095                    .setTween(tl)
4096                    .addTo(controller);
4097            });
4098            //REFERENZEN IMG
4099            $('.frame-layout-customer_teaser').each(function () {
4100                const tl = new TimelineMax();
4101                const child = $(this).find('img');
4102                tl.to(child, 1, {y: +50, scale: 1.2, ease: 'none'});
4103                const scene = new ScrollMagic.Scene({
4104                    triggerElement: this,
4105                    //triggerHook: 1,
4106                    duration: '200%',
4107                })
4108                    .setTween(tl)
4109                    .addTo(controller);
4110            });
4111            //HEADER TEASER BILD
4112            $('body.backendlayout-cs_simple .hero-simple .frame-container .textpic-gallery').each(function () {
4113                const tl = new TimelineMax();
4114                const child = $(this).find('img');
4115                tl.to(child, 1, {y: -100, scale: 1.2, ease: 'none'});
4116                const scene = new ScrollMagic.Scene({
4117                    triggerElement: this,
4118                    //triggerHook: 1,
4119                    duration: '200%',
4120                })
4121                    .setTween(tl)
4122                    .addTo(controller);
4123            });
4124        }
4125
4126    }
4127    ///////////////////////////////////////////////////////////////////////
4128    ////////////////// SCROLLING ANIMATION CIRCLES ENDE ///////////////////
4129    ///////////////////////////////////////////////////////////////////////
4130
4131
4132    // cookie consent
4133    window.consentConfig = {
4134        privacyPolicy: '/datenschutz',
4135        apps : [
4136            {
4137                name : 'google-analytics',
4138                default: true,
4139                title : 'Google Analytics',
4140                purposes : ['statistics'],
4141                cookies : [/^ga/i],
4142                callback : function(consent, app){
4143                    //this is an example callback function...
4144                },
4145            },
4146            //...
4147        ],
4148    }
4149
4150});
4151
4152$( window ).resize(function() {
4153    //MENU DESKTOP OVERLAY
4154    if ($(window).width() > 992) {
4155        $("body").addClass("desktop");
4156    } else {
4157        $("body").removeClass("desktop");
4158    }
4159});
4160
4161$(window).on("load", function () {
4162    startVideo();
4163    //videoStartAttribute();
4164
4165})
4166
4167// ###############################
4168// ########## FUNCTIONS ##########
4169// ###############################
4170function startVideo(){
4171    if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
4172        var isMobile = true;
4173    } else {
4174        var isMobile = false;
4175    }
4176    if (jQuery('body.backendlayout-cs_special_start video').length){
4177
4178        var videoElement = jQuery('body.backendlayout-cs_special_start video');
4179        if (videoElement.length && !isMobile){
4180            videoElement.find('source').each(function() {
4181                var sourceFile = $(this).attr("data-src");
4182                $(this).attr("src", sourceFile);
4183                var video = this.parentElement;
4184                video.load();
4185                jQuery('div.hero > .frame-type-image').hide();
4186                jQuery('div.hero > .frame-type-html').show();
4187                video.play();
4188            });
4189        }
4190    }
4191}
4192function addErrorClassToRecaptcha() {
4193    if (jQuery(".tx-powermail .powermail_message.powermail_message_error")[0]){
4194        jQuery(".tx-powermail .powermail_fieldwrap_type_recaptcha").addClass("error");
4195    } else {
4196        return false;
4197    }
4198}
4199
4200function videoStartAttribute() {
4201    var vid = $(".video video");
4202    console.log(vid);
4203    vid.attr('autoplay',true);
4204    vid.attr('loop',true);
4205    vid.attr('muted',"muted");
4206    vid.attr('playsinline',true);
4207    vid[0].play();
4208}
4209
4210function slickSlider() {
4211    $('.section-slider > div').wrapAll("<div class='slider-wrapper'></div>");
4212    $('<div class="frame-container wrapper-pagingInfo"><div class="pagingInfo"></div></div>').prependTo('.section-slider');
4213    var $status = $('.pagingInfo');
4214    var $slickElement = $('.section-slider > .slider-wrapper');
4215    $slickElement.on('init reInit afterChange', function (event, slick, currentSlide, nextSlide) {
4216        // no dots -> no slides
4217        if(!slick.$dots){
4218            return;
4219        }
4220        //currentSlide is undefined on init -- set it to 0 in this case (currentSlide is 0 based)
4221        var i = (currentSlide ? currentSlide : 0) + 1;
4222        // use dots to get some count information
4223        $status.text(i + '/' + (slick.$dots[0].children.length));
4224    });
4225    $slickElement.slick({
4226        autoplay: false,
4227        //autoplaySpeed: 1500,
4228        speed: 800,
4229        dots: true,
4230        arrows: true,
4231        pauseOnHover: true,
4232        infinite: true,
4233        fade: false,
4234        slide: 'div',
4235        slidesToShow:1,
4236        slidesToScroll: 1,
4237        adaptiveHeight: true,
4238        cssEase: 'linear',
4239        responsive: [{
4240            breakpoint: 992,
4241            settings: {
4242                slidesToShow:1,
4243                slidesToScroll: 1,
4244            }
4245        }]
4246    });
4247}

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