var TWEEN=TWEEN||(function(){var _tweens=[];return{getAll:function(){return _tweens;},removeAll:function(){_tweens=[];},add:function(tween){_tweens.push(tween);},remove:function(tween){var i=_tweens.indexOf(tween);if(i!==-1){_tweens.splice(i,1);}},update:function(time,preserve){if(_tweens.length===0){return false;}
var i=0;time=time!==undefined?time:TWEEN.now();while(i<_tweens.length){if(_tweens[i].update(time)||preserve){i++;}else{_tweens.splice(i,1);}}
return true;}};})();if(typeof(window)==='undefined'&&typeof(process)!=='undefined'){TWEEN.now=function(){var time=process.hrtime();return time[0]*1000+time[1]/1000000;};}
else if(typeof(window)!=='undefined'&&window.performance!==undefined&&window.performance.now!==undefined){TWEEN.now=window.performance.now.bind(window.performance);}
else if(Date.now!==undefined){TWEEN.now=Date.now;}
else{TWEEN.now=function(){return new Date().getTime();};}
TWEEN.Tween=function(object){var _object=object;var _valuesStart={};var _valuesEnd={};var _valuesStartRepeat={};var _duration=1000;var _repeat=0;var _repeatDelayTime;var _yoyo=false;var _isPlaying=false;var _reversed=false;var _delayTime=0;var _startTime=null;var _easingFunction=TWEEN.Easing.Linear.None;var _interpolationFunction=TWEEN.Interpolation.Linear;var _chainedTweens=[];var _onStartCallback=null;var _onStartCallbackFired=false;var _onUpdateCallback=null;var _onCompleteCallback=null;var _onStopCallback=null;this.to=function(properties,duration){_valuesEnd=properties;if(duration!==undefined){_duration=duration;}
return this;};this.start=function(time){TWEEN.add(this);_isPlaying=true;_onStartCallbackFired=false;_startTime=time!==undefined?time:TWEEN.now();_startTime+=_delayTime;for(var property in _valuesEnd){if(_valuesEnd[property]instanceof Array){if(_valuesEnd[property].length===0){continue;}
_valuesEnd[property]=[_object[property]].concat(_valuesEnd[property]);}
if(_object[property]===undefined){continue;}
_valuesStart[property]=_object[property];if((_valuesStart[property]instanceof Array)===false){_valuesStart[property]*=1.0;}
_valuesStartRepeat[property]=_valuesStart[property]||0;}
return this;};this.stop=function(){if(!_isPlaying){return this;}
TWEEN.remove(this);_isPlaying=false;if(_onStopCallback!==null){_onStopCallback.call(_object,_object);}
this.stopChainedTweens();return this;};this.end=function(){this.update(_startTime+_duration);return this;};this.stopChainedTweens=function(){for(var i=0,numChainedTweens=_chainedTweens.length;i<numChainedTweens;i++){_chainedTweens[i].stop();}};this.delay=function(amount){_delayTime=amount;return this;};this.repeat=function(times){_repeat=times;return this;};this.repeatDelay=function(amount){_repeatDelayTime=amount;return this;};this.yoyo=function(yoyo){_yoyo=yoyo;return this;};this.easing=function(easing){_easingFunction=easing;return this;};this.interpolation=function(interpolation){_interpolationFunction=interpolation;return this;};this.chain=function(){_chainedTweens=arguments;return this;};this.onStart=function(callback){_onStartCallback=callback;return this;};this.onUpdate=function(callback){_onUpdateCallback=callback;return this;};this.onComplete=function(callback){_onCompleteCallback=callback;return this;};this.onStop=function(callback){_onStopCallback=callback;return this;};this.update=function(time){var property;var elapsed;var value;if(time<_startTime){return true;}
if(_onStartCallbackFired===false){if(_onStartCallback!==null){_onStartCallback.call(_object,_object);}
_onStartCallbackFired=true;}
elapsed=(time-_startTime)/_duration;elapsed=elapsed>1?1:elapsed;value=_easingFunction(elapsed);for(property in _valuesEnd){if(_valuesStart[property]===undefined){continue;}
var start=_valuesStart[property]||0;var end=_valuesEnd[property];if(end instanceof Array){_object[property]=_interpolationFunction(end,value);}else{if(typeof(end)==='string'){if(end.charAt(0)==='+'||end.charAt(0)==='-'){end=start+parseFloat(end);}else{end=parseFloat(end);}}
if(typeof(end)==='number'){_object[property]=start+(end-start)*value;}}}
if(_onUpdateCallback!==null){_onUpdateCallback.call(_object,value);}
if(elapsed===1){if(_repeat>0){if(isFinite(_repeat)){_repeat--;}
for(property in _valuesStartRepeat){if(typeof(_valuesEnd[property])==='string'){_valuesStartRepeat[property]=_valuesStartRepeat[property]+parseFloat(_valuesEnd[property]);}
if(_yoyo){var tmp=_valuesStartRepeat[property];_valuesStartRepeat[property]=_valuesEnd[property];_valuesEnd[property]=tmp;}
_valuesStart[property]=_valuesStartRepeat[property];}
if(_yoyo){_reversed=!_reversed;}
if(_repeatDelayTime!==undefined){_startTime=time+_repeatDelayTime;}else{_startTime=time+_delayTime;}
return true;}else{if(_onCompleteCallback!==null){_onCompleteCallback.call(_object,_object);}
for(var i=0,numChainedTweens=_chainedTweens.length;i<numChainedTweens;i++){_chainedTweens[i].start(_startTime+_duration);}
return false;}}
return true;};};TWEEN.Easing={Linear:{None:function(k){return k;}},Quadratic:{In:function(k){return k*k;},Out:function(k){return k*(2-k);},InOut:function(k){if((k*=2)<1){return 0.5*k*k;}
return-0.5*(--k*(k-2)-1);}},Cubic:{In:function(k){return k*k*k;},Out:function(k){return--k*k*k+1;},InOut:function(k){if((k*=2)<1){return 0.5*k*k*k;}
return 0.5*((k-=2)*k*k+2);}},Quartic:{In:function(k){return k*k*k*k;},Out:function(k){return 1-(--k*k*k*k);},InOut:function(k){if((k*=2)<1){return 0.5*k*k*k*k;}
return-0.5*((k-=2)*k*k*k-2);}},Quintic:{In:function(k){return k*k*k*k*k;},Out:function(k){return--k*k*k*k*k+1;},InOut:function(k){if((k*=2)<1){return 0.5*k*k*k*k*k;}
return 0.5*((k-=2)*k*k*k*k+2);}},Sinusoidal:{In:function(k){return 1-Math.cos(k*Math.PI/2);},Out:function(k){return Math.sin(k*Math.PI/2);},InOut:function(k){return 0.5*(1-Math.cos(Math.PI*k));}},Exponential:{In:function(k){return k===0?0:Math.pow(1024,k-1);},Out:function(k){return k===1?1:1-Math.pow(2,-10*k);},InOut:function(k){if(k===0){return 0;}
if(k===1){return 1;}
if((k*=2)<1){return 0.5*Math.pow(1024,k-1);}
return 0.5*(-Math.pow(2,-10*(k-1))+2);}},Circular:{In:function(k){return 1-Math.sqrt(1-k*k);},Out:function(k){return Math.sqrt(1-(--k*k));},InOut:function(k){if((k*=2)<1){return-0.5*(Math.sqrt(1-k*k)-1);}
return 0.5*(Math.sqrt(1-(k-=2)*k)+1);}},Elastic:{In:function(k){if(k===0){return 0;}
if(k===1){return 1;}
return-Math.pow(2,10*(k-1))*Math.sin((k-1.1)*5*Math.PI);},Out:function(k){if(k===0){return 0;}
if(k===1){return 1;}
return Math.pow(2,-10*k)*Math.sin((k-0.1)*5*Math.PI)+1;},InOut:function(k){if(k===0){return 0;}
if(k===1){return 1;}
k*=2;if(k<1){return-0.5*Math.pow(2,10*(k-1))*Math.sin((k-1.1)*5*Math.PI);}
return 0.5*Math.pow(2,-10*(k-1))*Math.sin((k-1.1)*5*Math.PI)+1;}},Back:{In:function(k){var s=1.70158;return k*k*((s+1)*k-s);},Out:function(k){var s=1.70158;return--k*k*((s+1)*k+s)+1;},InOut:function(k){var s=1.70158*1.525;if((k*=2)<1){return 0.5*(k*k*((s+1)*k-s));}
return 0.5*((k-=2)*k*((s+1)*k+s)+2);}},Bounce:{In:function(k){return 1-TWEEN.Easing.Bounce.Out(1-k);},Out:function(k){if(k<(1/2.75)){return 7.5625*k*k;}else if(k<(2/2.75)){return 7.5625*(k-=(1.5/2.75))*k+0.75;}else if(k<(2.5/2.75)){return 7.5625*(k-=(2.25/2.75))*k+0.9375;}else{return 7.5625*(k-=(2.625/2.75))*k+0.984375;}},InOut:function(k){if(k<0.5){return TWEEN.Easing.Bounce.In(k*2)*0.5;}
return TWEEN.Easing.Bounce.Out(k*2-1)*0.5+0.5;}}};TWEEN.Interpolation={Linear:function(v,k){var m=v.length-1;var f=m*k;var i=Math.floor(f);var fn=TWEEN.Interpolation.Utils.Linear;if(k<0){return fn(v[0],v[1],f);}
if(k>1){return fn(v[m],v[m-1],m-f);}
return fn(v[i],v[i+1>m?m:i+1],f-i);},Bezier:function(v,k){var b=0;var n=v.length-1;var pw=Math.pow;var bn=TWEEN.Interpolation.Utils.Bernstein;for(var i=0;i<=n;i++){b+=pw(1-k,n-i)*pw(k,i)*v[i]*bn(n,i);}
return b;},CatmullRom:function(v,k){var m=v.length-1;var f=m*k;var i=Math.floor(f);var fn=TWEEN.Interpolation.Utils.CatmullRom;if(v[0]===v[m]){if(k<0){i=Math.floor(f=m*(1+k));}
return fn(v[(i-1+m)%m],v[i],v[(i+1)%m],v[(i+2)%m],f-i);}else{if(k<0){return v[0]-(fn(v[0],v[0],v[1],v[1],-f)-v[0]);}
if(k>1){return v[m]-(fn(v[m],v[m],v[m-1],v[m-1],f-m)-v[m]);}
return fn(v[i?i-1:0],v[i],v[m<i+1?m:i+1],v[m<i+2?m:i+2],f-i);}},Utils:{Linear:function(p0,p1,t){return(p1-p0)*t+p0;},Bernstein:function(n,i){var fc=TWEEN.Interpolation.Utils.Factorial;return fc(n)/fc(i)/fc(n-i);},Factorial:(function(){var a=[1];return function(n){var s=1;if(a[n]){return a[n];}
for(var i=n;i>1;i--){s*=i;}
a[n]=s;return s;};})(),CatmullRom:function(p0,p1,p2,p3,t){var v0=(p2-p0)*0.5;var v1=(p3-p1)*0.5;var t2=t*t;var t3=t*t2;return(2*p1-2*p2+v0+v1)*t3+(-3*p1+3*p2-2*v0-v1)*t2+v0*t+p1;}}};(function(root){if(typeof define==='function'&&define.amd){define([],function(){return TWEEN;});}else if(typeof module!=='undefined'&&typeof exports==='object'){module.exports=TWEEN;}else if(root!==undefined){root.TWEEN=TWEEN;}})(this);