!function(t,e){"use strict";var i=function(t,e,i){e&&Object.defineProperties(t,e),i&&Object.defineProperties(t.prototype,i)},n=function(){function t(t){var i,n=this,r=arguments[1]===e?{}:arguments[1],o=document.createElement("canvas"),s=o.getContext("2d"),a=document.createElement("canvas"),u=a.getContext("2d"),l=new Image,c=!1;o.setAttribute("id","chromataCanvas"),this.options=this._mergeOptions(r),l.crossOrigin="Anonymous",l.addEventListener("load",function(){i=h._getOutputDimensions(t,n.options.outputSize),a.width=o.width=i.width,a.height=o.height=i.height,u.drawImage(l,0,0,i.width,i.height),n.dimensions=i,n.imageArray=h._getImageArray(u),n.workingArray=h._getWorkingArray(u),c=!0}),l.src=t.src,this.loader=function(t){c?t():setTimeout(function(){return n.loader(t)},50)},this.imageArray=[],this.sourceImageElement=t,this.sourceContext=u,this.renderContext=s,this.isRunning=!1,this.iterationCount=0}return i(t,null,{start:{value:function(){var t=this;this.loader(function(){t.isRunning=!0,void 0===t._tick?t._run():t._tick()})},writable:!0,enumerable:!0,configurable:!0},stop:{value:function(){return this.isRunning=!1,this.iterationCount},writable:!0,enumerable:!0,configurable:!0},toggle:{value:function(){return this.isRunning?this.stop():this.start()},writable:!0,enumerable:!0,configurable:!0},reset:{value:function(){this.isRunning=!1,this._tick=e,cancelAnimationFrame(this.raf),this.renderContext.clearRect(0,0,this.dimensions.width,this.dimensions.height),this.workingArray=h._getWorkingArray(this.sourceContext),this._removeRenderCanvas()},writable:!0,enumerable:!0,configurable:!0},_mergeOptions:{value:function(t){var e={colorMode:"color",compositeOperation:"lighten",iterationLimit:0,key:"low",lineWidth:2,lineMode:"smooth",origin:["bottom"],outputSize:"original",pathFinderCount:30,speed:7,turningAngle:Math.PI},i={};for(var n in e)e.hasOwnProperty(n)&&(i[n]=t[n]||e[n]);return i.origin=i.origin.constructor===Array?i.origin:e.origin,i.pathFinderCount=this._limitToRange(i.pathFinderCount,1,1e4),i.lineWidth=this._limitToRange(i.lineWidth,1,100),i.speed=this._limitToRange(i.speed,1,100),i.turningAngle=this._limitToRange(i.turningAngle,.1,10),i},writable:!0,enumerable:!0,configurable:!0},_limitToRange:{value:function(t,e,i){return Math.min(Math.max(t,e),i)},writable:!0,enumerable:!0,configurable:!0},_appendRenderCanvas:{value:function(){var t=this.sourceImageElement.parentNode;this.sourceImageElement.style.display="none",t.insertBefore(this.renderContext.canvas,this.sourceImageElement.nextSibling)},writable:!0,enumerable:!0,configurable:!0},_removeRenderCanvas:{value:function(){this.sourceImageElement.style.display="",this.renderContext.canvas.parentNode.removeChild(this.renderContext.canvas)},writable:!0,enumerable:!0,configurable:!0},_run:{value:function(){var t=this,e=[],i=this._initPathFinders(),n={colorMode:this.options.colorMode,lineWidth:this.options.lineWidth,lineMode:this.options.lineMode,speed:this.options.speed};this._appendRenderCanvas(),this.renderContext.globalCompositeOperation=this.options.compositeOperation,i.forEach(function(i){e.push(new a(t.renderContext,i,n))}),this._tick=function(){0=2*this.options.speed&&(this.context.beginPath(),this.context.arc(t[0],t[1],this.options.lineWidth,0,2*Math.PI,!1),this.context.fillStyle=this._getStrokeColor(t[2]),this.context.fill(),this.currentPoint=t))},writable:!0,enumerable:!0,configurable:!0},_getLineLength:{value:function(t,e){var i=e[0]-t[0],n=e[1]-t[1];return Math.round(Math.sqrt(i*i+n*n))},writable:!0,enumerable:!0,configurable:!0},_createGradient:{value:function(t,e,i,n){var r=this.context.createLinearGradient(t[0],t[1],e[0],e[1]);return r.addColorStop(0,this._getStrokeColor(i)),r.addColorStop(1,this._getStrokeColor(n)),r},writable:!0,enumerable:!0,configurable:!0},_getStrokeColor:{value:function(t){return"color"===this.options.colorMode?"rgba("+(0!==this.color.r?t:0)+", "+(0!==this.color.g?t:0)+", "+(0!==this.color.b?t:0)+", 1)":"rgba("+t+", "+t+", "+t+", 1)"},writable:!0,enumerable:!0,configurable:!0}}),t}(),h=function(){function t(){}return i(t,{_indexToRgbString:{value:function(t){return t%3==0?"#0000ff":t%2==0?"#00ff00":"#ff0000"},writable:!0,enumerable:!0,configurable:!0},_getImageArray:{value:function(t){for(var e=t.canvas.width,i=t.canvas.height,n=t.getImageData(0,0,e,i),r=[],o=0;o