From eb8ecd371955adaa45feec7b902ac16af75319ef Mon Sep 17 00:00:00 2001 From: jules Date: Wed, 29 Jan 2014 10:23:01 -0500 Subject: add gif encoder to gruntfile --- Gruntfile.js | 16 +--------------- dist/app.min.js | 6 +++--- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 7908f2a..258e602 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -10,26 +10,12 @@ module.exports = function(grunt) { dest_html: 'dist/index.html' } }, - blobify: { - worker: { - src: [ - 'js/gif-encode/GIFEncoder.js', - 'js/gif-encode/LZWEncoder.js', - 'js/gif-encode/NeuQuant.js', - 'js/gif-encode/worker.js', - ] - dest: 'js/gif-encode/worker.concat.js' - } - }, - }, concat: { dist: { src: [ "js/vendor/acorn.js", "js/vendor/gif.js", - "js/vendor/gif-encode/util.js", - "js/vendor/gif-encode/tube.js", - "js/vendor/gif-encode/client.js", + "js/vendor/gif-encode.min.js", "js/vendor/jquery/jquery.min.js", "js/vendor/jquery-ui-1.10.3.custom.min.js", "js/vendor/canvasquery.js", diff --git a/dist/app.min.js b/dist/app.min.js index 58b69ed..fcdaf09 100644 --- a/dist/app.min.js +++ b/dist/app.min.js @@ -1,9 +1,9 @@ /* asdf.us/shader */ -function shuffle(a){var b=new Array(a.length);b[0]=a[0];for(var c=1;cb;b++){var d=new Worker("js/vendor/gif-encode/worker.js");d.onmessage=a.receiveWork,c.push(d)}};var d={};a.hire=function(a,b){d[a]=b},a.work=function(a){c[++b%c.length].postMessage(a)},a.receiveWork=function(a){a.data.task in d&&d[a.data.task](a)},a.fire=function(){for(var b in c)c[b].postMessage("close");c=[],a.init()},a.init()}function b(a){console.log("[WORKER]",a.data.message)}function c(a){console.log(Date.now()-q,"quantization done"),i=a.data.neuquant,j=a.data.colortab,f.quantized=!0,f.tube("quantized")}function d(a){var b=a.data.frame_index,c=a.data.frame_data;m[b]=c,f.tube("encoded-frame",m.length,k.length);for(var d=0;da?b:c>a?a:c}function lerp(a,b,c){return(c-b)*a+b}function mix(a,b,c){return b*(1-a)+c*a}function ceil(a){return Math.ceil(a)}function floor(a){return Math.floor(a)}function round(a){return Math.round(a)}function max(a){return Math.max(a)}function min(a){return Math.min(a)}function abs(a){return Math.abs(a)}function sign(a){return Math.abs(a)/a}function pow(a,b){return Math.pow(a,b)}function exp(a){return Math.exp(a)}function sqrt(a){return Math.sqrt(a,b)}function cos(a){return Math.cos(a)}function sin(a){return Math.sin(a)}function tan(a){return Math.tan(a)}function acos(a){return Math.cos(a)}function asin(a){return Math.sin(a)}function atan(a){return Math.atan(a)}function atan2(a){return Math.atan2(a)}function sec(a){return 1/cos(a)}function csc(a){return 1/sin(a)}function cot(a){return 1/tan(a)}function cosp(a){return(1+Math.cos(a))/2}function sinp(a){return(1+Math.sin(a))/2}function random(){return Math.random()}function rand(a){return Math.random()*a}function randint(a){return 0|rand(a)}function choice(a){return a[randint(a.length)]}function deg(a){return 180*a/PI}function rad(a){return a*PI/180}function xor(a,b){return a=!!a,b=!!b,(a||b)&&!(a&&b)}function mod(a,b){return a-b*floor(a/b)}function dist(a,b,c,d){return sqrt(pow(c-a,2)+pow(d-b,2))}function angle(a,b,c,d){return atan2(d-b,c-a)}function avg(a,b,c){return(a*(c-1)+b)/c}function pixel(a,b){return 4*(mod(b,actual_h)*actual_w+mod(a,actual_w))}function rgbpixel(c,d,e){var f=pixel(~~d,~~e);r=c[f],g=c[f+1],b=c[f+2],a=c[f+3]}function fit(a,b,c){rgbpixel(a,b*actual_w/w,c*actual_h/h)}function step(a,b){return(b>=a)+0}function julestep(a,b,c){return clamp((c-a)/(b-a),0,1)}function smoothstep(a,b,c){var d=clamp((c-a)/(b-a),0,1);return d*d*(3-2*d)}function shuffle(a){for(var b=a.length;b>0;b--){var c=randint(b),d=a[b-1];a[b-1]=a[c],a[c]=d}return a}function reverse(a){for(var b=[],c=0,d=a.length-1;d>=c;c++)b[c]=a[d-c];return b}function deinterlace(a){for(var b=[],c=[],d=0,e=a.length;e>d;d++)d%2?c.push(a[d]):b.push(a[d]);return[c,b]}function weave(a){var b=deinterlace(a),c=[];return b[0].forEach(function(a){c.push(a)}),reverse(b[1]).forEach(function(a){c.push(a)}),c}function rgb(a,c,d){r=a,g=c,b=d}function rgbref(a){r=a[0],g=a[1],b=a[2]}function black(){rgb(0,0,0)}function white(){rgb(255,255,255)}function red(){rgb(255,0,0)}function gray(a){1>a&&(a*=255),rgb(a,a,a)}function rgb2xyz(a){var b=a[0]/255,c=a[1]/255,d=a[2]/255;b>.04045?b=(b+.055)/1.055^2.4:b/=12.92,c>.04045?c=(c+.055)/1.055^2.4:c/=12.92,d>.04045?d=(d+.055)/1.055^2.4:d/=12.92,b=100*b,c=100*c,d=100*d;var e=.4124*b+.3576*c+.1805*d,f=.2126*b+.7152*c+.0722*d,g=.0193*b+.1192*c+.9505*d;return[e,f,g]}function xyz2rgb(a){var b=a[0]/100,c=a[1]/100,d=a[2]/100;var_R=3.2406*b+-1.5372*c+d*-.4986,var_G=b*-.9689+1.8758*c+.0415*d,var_B=.0557*b+c*-.204+1.057*d,var_R=var_R>.0031308?1.055*Math.pow(var_R,1/2.4)-.055:12.92*var_R,var_G=var_G>.0031308?1.055*Math.pow(var_G,1/2.4)-.055:12.92*var_G,var_B=var_B>.0031308?1.055*Math.pow(var_B,1/2.4)-.055:12.92*var_B;var e=clamp(255*var_R,0,255),f=clamp(255*var_G,0,255),g=clamp(255*var_B,0,255);return[e,f,g]}function xyz2hunterlab(a){var b=a[0],c=a[1],d=a[2],e=10*sqrt(c),f=17.5*((1.02*b-c)/sqrt(c)),g=7*((c-.847*d)/sqrt(c));return[e,f,g]}function hunterlab2xyz(a){var b=a[0],c=a[1],d=a[2];return var_Y=b/10,var_X=c/17.5*b/10,var_Z=d/7*b/10,Y=Math.pow(var_Y,2),X=(var_X+Y)/1.02,Z=-(var_Z-Y)/.847,[X,Y,Z]}function xyz2cielab(a){var b=a[0]/ref_X,c=a[1]/ref_Y,d=a[2]/ref_Z;b=b>.008856?Math.pow(b,1/3):7.787*b+16/116,c=c>.008856?Math.pow(c,1/3):7.787*c+16/116,d=d>.008856?Math.pow(d,1/3):7.787*d+16/116;var e=116*c-16,f=500*(b-c),g=200*(c-d);return[e,f,g]}function cielab2xyz(a){var b=(a[0]+16)/116,c=a[1]/500+b,d=b-a[2]/200;b=b^!0?Math.pow(b,3):(b-16/116)/7.787,c=c^!0?Math.pow(c,3):(c-16/116)/7.787,d=d^!0?Math.pow(d,3):(d-16/116)/7.787;return[x,y,z]}function rgb2hsl(a){var b,c,d=a[0],e=a[1],f=a[2],g=d/255,h=e/255,i=f/255,j=min(g,h,i),k=max(g,h,i),l=k-j,m=(k+j)/2;if(0==l)b=0,c=0;else{c=.5>m?l/(k+j):l/(2-k-j);var n=((k-g)/6+l/2)/l,o=((k-h)/6+l/2)/l,p=((k-i)/6+l/2)/l;g==k?b=p-o:h==k?b=1/3+n-p:i==k&&(b=2/3+o-n),0>b&&(b+=1),b>1&&(b-=1)}return[b,c,m]}function hsl2rgb(a,b,c){var d,e,f,g,h;return 0==b?(d=255*c,e=255*c,f=255*c):(h=.5>c?c*(1+b):c+b-b*c,g=2*c-h,d=255*hue2rgb(g,h,a+1/3),e=255*hue2rgb(g,h,a),f=255*hue2rgb(g,h,a-1/3)),[d,e,f]}function hue2rgb(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1>6*c?a+6*(b-a)*c:1>2*c?b:2>3*c?a+(b-a)*(2/3-c)*6:a}function rgb2cmy(a,b,c){a.length&&(c=a[2],b=a[1],a=a[0]);var d=1-a/255,e=1-b/255,f=1-c/255;return[d,e,f]}function cmy2rgb(a,b,c){a.length&&(c=a[2],b=a[1],a=a[0]);var d=255*(1-a),e=255*(1-b),f=255*(1-c);return[d,e,f]}function cmy2cmyk(a,b,c){a.length&&(c=a[2],b=a[1],a=a[0]);var d=1;d>a&&(d=a),d>b&&(d=b),d>c&&(d=c),1==d?(a=0,b=0,c=0):(a=(a-d)/(1-d),b=(b-d)/(1-d),c=(c-d)/(1-d));var e=d;return[a,b,c,e]}function cmyk2cmy(a,b,c,d){a.length&&(d=a[3],c=a[2],b=a[1],a=a[0]);var a=a*(1-d)+d,b=b*(1-d)+d,c=c*(1-d)+d;return[a,b,c]}function loadImage(a,b){var a=proxify(a);return window.imageURL=a,window.gif=window.img=null,a?"gif"===a.substr(-3)?(window.gif=GIF(a),gif.on("rendered",b),gif.render()):(window.img=new Image,img.addEventListener("load",b),img.crossOrigin="anonymous",img.src=a):(window.gif=null,window.img=null,b(),void 0)}function giveImage(a){return window.gif?gif.frames[gif.currentFrame(a)]:img}function proxify(a){return 0==a.indexOf("http")?"/cgi-bin/proxy?"+a.replace(/^https/,"http"):a}function filesize(a){return 1e3>a?a+" bytes":1e6>a?decimalString(a/1e3)+" kb":1e9>a?decimalString(a/1e6)+" mb":"WAY TOO BIG DUDE"}function decimalString(a){var b=Math.floor(a);return b+"."+Math.round(10*(a-b))}function noop(){}function uploadImage(a){if(a.blob&&a.filename){a.username=a.username||"",a.success=a.success||noop,a.error=a.error||noop;var b=new FormData;b.append("username",a.username),b.append("filename",a.filename),b.append("qqfile",a.blob);var c=new XMLHttpRequest;c.open("POST","/cgi-bin/im/upload"),c.onload=function(){if(200==c.status){var b=JSON.parse(c.responseText);b.success?a.success(b):a.error(b)}else a.error({success:!1,error:c.status})},c.send(b)}}function add_frame(){var a=$("#framecount").int();2>a?add_single_frame():add_frames(a)}function add_single_frame(){var a=$("
");a.html($("#frame-template").html()),a.attr("index",$("#frames div").length);var b=cc.clone().appendTo(a.find(".frame")[0]);b.canvas.className="fullsize",b.canvas.style.display="none";cc.clone().resize(frame_thumb_size,frame_thumb_size).appendTo(a.find(".frame")[0]);$("#frames").append(a)}function add_frames(a){rendering=!0;for(var b,c=old_t-start_t-pause_t,d=1e3*($("#frameinterval").float()||$("#framedelay").float()),e=0;a>e;e++)b=giveFrame(c),c+=d,shade(b,c),add_single_frame();rendering=!1}function remove_frame(){$(this).closest("div").remove()}function remove_all_frames(){$("#frames").empty()}function shuffle_frames(){var a=$("#frames div");$("#frames").empty().append(shuffle(a))}function reverse_frames(){var a=$("#frames div");$("#frames").empty().append(reverse(a))}function weave_frames(){var a=$("#frames div");$("#frames").empty().append(weave(a))}function sort_frames(){var a=$("#frames div"),b=a.map(function(a,b){return console.log(a,b),[[b.getAttribute("index"),b]]}).sort(function(a,b){return a[0]-b[0]}).map(function(a,b){return console.log(b),b[1]});$("#frames").empty().append(b)}function render(){if(!rendering){0==$("#frames canvas.fullsize").length&&add_frame(),rendering=!0,encoder.reset();var a=1e3*$("#framedelay").float()||100;$("#frames canvas.fullsize").each(function(){var b=cq(this.width,this.height).fillStyle($("#background").string()).fillRect(0,0,this.width,this.height).drawImage(this,0,0);encoder.addFrame(b.canvas,a)}),$("#pause,#render,#add-frame").disable(),$("#workspace").find("img").remove(),$("#rendered").show(),status("encoding");try{encoder.encode()}catch(b){throw $("#pause,#render,#add-frame").enable(),rendering=!1,status(b),b}$("#render").html("rendering")}}function get_filename(){var a=$("#url").val().replace(/^.*\//,"").replace(/\..*$/,"").replace(/[^-_ a-zA-Z0-9]/g,""),b=user.username,c=a+"-"+b+"-"+ +new Date+".gif";return c.replace(/ /g,"_").replace(/-+/g,"-")}function save(){if(lastGif){var a=get_filename(),b=dataUriToBlob(lastGif);saveAs(b,a)}}function saveJSON(a,b){for(var c=JSON.stringify(a),d=new ArrayBuffer(c.length),e=new Uint8Array(d),f=0;fl;l++)for(var m=0;h>m;m++)q=4*(m*w+l),r=f[q],g=f[q+1],b=f[q+2],a=f[q+3],result=shader(l,m,d,i),f[q]=r,f[q+1]=g,f[q+2]=b,f[q+3]=a,w=j,h=k;cc.putImageData(e,0,0)}function shade_error_handling(c,d){if(!d||isNaN(d))throw Error("No time specified");if(!c||!c.ctx||!c.cloneData)throw Error("No frame specified");var e=c.ctx.getImageData(0,0,w,h),f=e.data,i=c.cloneData.data;try{for(var j=w,k=h,l=0;w>l;l++)for(var m=0;h>m;m++)q=4*(m*w+l),r=f[q],g=f[q+1],b=f[q+2],a=f[q+3],result=shader(l,m,d,i),f[q]=r,f[q+1]=g,f[q+2]=b,f[q+3]=a,w=j,h=k}catch(n){var o=(n.stack+"").split("\n");if("anonymous@"===o[0].substr(0,10)){var p=o[0].match(firefox_stack_regexp);p.length>1&&error_highlight.on(parseInt(p[1])-5)}else if(o.length>1){var p=o[1].match(chrome_stack_regexp);p&&p.length>1&&error_highlight.on(parseInt(p[1])-3)}throw Error("Shader execution error")}cc.putImageData(e,0,0),shade=shade_no_error_handling,error_highlight.off()}function drag_start(){dragging=!0,$(this).addClass("dragging")}function drag_stop(){dragging=!1,$(".dragging").removeClass("dragging")}function status(a){$(".status").html(a),console.log(a)}function quiet_status(a){$(".status").html(a)}function new_shader(){shader_id_root=null,run_shader({id:"",shader_id:"",image_url:$("#url").val(),script:"",name:""})}function run_shader(a){console.log(a),shader_id_root=a.shader_id,$("#persist-image:checked").length&&($("#url").val(a.image_url),load()),$("#shader").val(a.script),$("#shader-id").val(a.id),$("#shader-name").val(a.name||""),shader_build()}function load_shaders(a,b){var c=$("#shader-gallery").empty();for(var d in b){var e=display_shader(b[d]);c.append(e)}firsttime&&(firsttime=!1,run_shader(b[0]))}function display_shader(a){var b=$("
").addClass("shader");b.data("shader",a),b.data("id",a.id);var c=shader_gallery_template;for(var d in a)c=c.replace("{"+d+"}",a[d]);return b.html(c),a.id&&b.data("id",a.id),b}function save_shader(){shader_id_root=shader_id_root||"";var a={script:$("#shader").val(),image_url:$("#url").val(),username:user.username,name:$("#shader-name").val()||"",shader_id:shader_id_root},b=make_thumbnail();status("saving.."),console.log(a),$.post("http://asdf.us/cgi-bin/im/shader/save",a,function(c){return console.log(c),data=JSON.parse(c),data.ERROR?(status("error saving shader"),alert(data.ERROR),!1):(status("uploading thumbnail"),shader_id_root||(shader_id_root=data.id),a.id=data.id,a.thumbnail_url="http://i.asdf.us/im/9a/chtiny3_1334529294_1334529329.gif",$shader=display_shader(a),$("#shader-gallery").prepend($shader),void save_thumbnail(data.id,b))})}function make_thumbnail(){return dataUriToBlob(cc.clone().resize(200,200).canvas.toDataURL("image/png"))}function save_thumbnail(a,b){if(a&&""!=a){b=b||make_thumbnail();var c=new FormData;c.append("id",a),c.append("qqfile",b),$.ajax({url:"http://asdf.us/cgi-bin/im/shader/thumbnail_upload",type:"POST",data:c,processData:!1,contentType:!1}).done(function(b){console.log(b),status("");var c=JSON.parse(b);c.success&&$(".shader[data-id="+a+"]").find("img").attr("src",c.url)})}}function init(){$("#url").change(load),$("#reset").click(reset),$("#pause").click(pause),$("#step-forward").click(step_forward),$(document).on("mousemove",function(a){mousex=a.pageX,mousey=a.pageY}),$("#toggle-shaders").click(function(){$("#header .form").hide(),$("#shader-api-form").show(),$(".bold").removeClass("bold"),$(this).addClass("bold")}).trigger("click"),$("#toggle-images").click(function(){$("#header .form").hide(),$("#gallery-form").show(),$(".bold").removeClass("bold"),$(this).addClass("bold"),asdf.fetched||$("#gallery-random").trigger("click")}),$(".toggle-off").click(function(){$("#header .form").hide(),$(".bold").removeClass("bold")}),$("#width").change(function(){w=abs(parseInt(this.value,10))||1,cc.canvas.width=w,cc.canvas.height=h}),$("#height").change(function(){h=abs(parseInt(this.value,10))||1,cc.canvas.width=w,cc.canvas.height=h}),$("#show-frame-controls").click(function(){$("#frame-controls").show(),$("#frame-hidden-controls").hide()}),$("#hide-frame-controls").click(function(){$("#frame-controls").hide(),$("#frame-hidden-controls").show()}),$("#reorder-frames").change(function(){var a=$(this).val();switch(console.log(a),a){case"weave-frames":weave_frames();break;case"shuffle-frames":shuffle_frames();break;case"reverse-frames":reverse_frames();break;case"sort-frames":sort_frames();break;default:return}render()}),load(),help.init(),user.init(),frame_editor.init(),shader_gallery.init(),gallery.init(choose),document.getElementById("shader").addEventListener("input",shader_build),requestAnimationFrame(animate)}!function(a,b){return"object"==typeof exports&&"object"==typeof module?b(exports):"function"==typeof define&&define.amd?define(["exports"],b):void b(a.acorn||(a.acorn={}))}(this,function(a){"use strict";function b(a){lb=a||{};for(var b in pb)Object.prototype.hasOwnProperty.call(lb,b)||(lb[b]=pb[b]);ob=lb.sourceFile||null}function c(a,b){var c=qb(mb,a);b+=" ("+c.line+":"+c.column+")";var d=new SyntaxError(b);throw d.pos=a,d.loc=c,d.raisedAt=rb,d}function d(a){function b(a){if(1==a.length)return c+="return str === "+JSON.stringify(a[0])+";";c+="switch(str){";for(var b=0;b3){d.sort(function(a,b){return b.length-a.length}),c+="switch(str.length){";for(var e=0;erb&&10!==c&&13!==c&&8232!==c&&8233!==c;)++rb,c=mb.charCodeAt(rb);lb.onComment&&lb.onComment(!1,mb.slice(a+2,rb),a,rb,b,lb.locations&&new e)}function j(){for(;nb>rb;){var a=mb.charCodeAt(rb);if(32===a)++rb;else if(13===a){++rb;var b=mb.charCodeAt(rb);10===b&&++rb,lb.locations&&(++zb,Ab=rb)}else if(10===a||8232===a||8233===a)++rb,lb.locations&&(++zb,Ab=rb);else if(a>8&&14>a)++rb;else if(47===a){var b=mb.charCodeAt(rb+1);if(42===b)h();else{if(47!==b)break;i()}}else if(160===a)++rb;else{if(!(a>=5760&&Sc.test(String.fromCharCode(a))))break;++rb}}}function k(){var a=mb.charCodeAt(rb+1);return a>=48&&57>=a?y(!0):(++rb,g(uc))}function l(){var a=mb.charCodeAt(rb+1);return yb?(++rb,v()):61===a?u(yc,2):u(wc,1)}function m(){var a=mb.charCodeAt(rb+1);return 61===a?u(yc,2):u(Kc,1)}function n(a){var b=mb.charCodeAt(rb+1);return b===a?u(124===a?Bc:Cc,2):61===b?u(yc,2):u(124===a?Dc:Fc,1)}function o(){var a=mb.charCodeAt(rb+1);return 61===a?u(yc,2):u(Ec,1)}function p(a){var b=mb.charCodeAt(rb+1);return b===a?45==b&&62==mb.charCodeAt(rb+2)&&Xc.test(mb.slice(Cb,rb))?(rb+=3,i(),j(),t()):u(zc,2):61===b?u(yc,2):u(Jc,1)}function q(a){var b=mb.charCodeAt(rb+1),c=1;return b===a?(c=62===a&&62===mb.charCodeAt(rb+2)?3:2,61===mb.charCodeAt(rb+c)?u(yc,c+1):u(Ic,c)):33==b&&60==a&&45==mb.charCodeAt(rb+2)&&45==mb.charCodeAt(rb+3)?(rb+=4,i(),j(),t()):(61===b&&(c=61===mb.charCodeAt(rb+2)?3:2),u(Hc,c))}function r(a){var b=mb.charCodeAt(rb+1);return 61===b?u(Gc,61===mb.charCodeAt(rb+2)?3:2):u(61===a?xc:Ac,1)}function s(a){switch(a){case 46:return k();case 40:return++rb,g(pc);case 41:return++rb,g(qc);case 59:return++rb,g(sc);case 44:return++rb,g(rc);case 91:return++rb,g(lc);case 93:return++rb,g(mc);case 123:return++rb,g(nc);case 125:return++rb,g(oc);case 58:return++rb,g(tc);case 63:return++rb,g(vc);case 48:var b=mb.charCodeAt(rb+1);if(120===b||88===b)return x();case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return y(!1);case 34:case 39:return z(a);case 47:return l(a);case 37:case 42:return m();case 124:case 38:return n(a);case 94:return o();case 43:case 45:return p(a);case 60:case 62:return q(a);case 61:case 33:return r(a);case 126:return u(Ac,1)}return!1}function t(a){if(a?rb=sb+1:sb=rb,lb.locations&&(ub=new e),a)return v();if(rb>=nb)return g(Mb);var b=mb.charCodeAt(rb);if(Zc(b)||92===b)return C();var d=s(b);if(d===!1){var f=String.fromCharCode(b);if("\\"===f||Vc.test(f))return C();c(rb,"Unexpected character '"+f+"'")}return d}function u(a,b){var c=mb.slice(rb,rb+b);rb+=b,g(a,c)}function v(){for(var a,b,d="",e=rb;;){rb>=nb&&c(e,"Unterminated regular expression");var f=mb.charAt(rb);if(Xc.test(f)&&c(e,"Unterminated regular expression"),a)a=!1;else{if("["===f)b=!0;else if("]"===f&&b)b=!1;else if("/"===f&&!b)break;a="\\"===f}++rb}var d=mb.slice(e,rb);++rb;var h=B();h&&!/^[gmsiy]*$/.test(h)&&c(e,"Invalid regexp flag");try{var i=new RegExp(d,h)}catch(j){j instanceof SyntaxError&&c(e,j.message),c(j)}return g(Jb,i)}function w(a,b){for(var c=rb,d=0,e=0,f=null==b?1/0:b;f>e;++e){var g,h=mb.charCodeAt(rb);if(g=h>=97?h-97+10:h>=65?h-65+10:h>=48&&57>=h?h-48:1/0,g>=a)break;++rb,d=d*a+g}return rb===c||null!=b&&rb-c!==b?null:d}function x(){rb+=2;var a=w(16);return null==a&&c(sb+2,"Expected hexadecimal number"),Zc(mb.charCodeAt(rb))&&c(rb,"Identifier directly after number"),g(Ib,a)}function y(a){var b=rb,d=!1,e=48===mb.charCodeAt(rb);a||null!==w(10)||c(b,"Invalid number"),46===mb.charCodeAt(rb)&&(++rb,w(10),d=!0);var f=mb.charCodeAt(rb);(69===f||101===f)&&(f=mb.charCodeAt(++rb),(43===f||45===f)&&++rb,null===w(10)&&c(b,"Invalid number"),d=!0),Zc(mb.charCodeAt(rb))&&c(rb,"Identifier directly after number");var h,i=mb.slice(b,rb);return d?h=parseFloat(i):e&&1!==i.length?/[89]/.test(i)||Gb?c(b,"Invalid number"):h=parseInt(i,8):h=parseInt(i,10),g(Ib,h)}function z(a){rb++;for(var b="";;){rb>=nb&&c(sb,"Unterminated string constant");var d=mb.charCodeAt(rb);if(d===a)return++rb,g(Kb,b);if(92===d){d=mb.charCodeAt(++rb);var e=/^[0-7]+/.exec(mb.slice(rb,rb+3));for(e&&(e=e[0]);e&&parseInt(e,8)>255;)e=e.slice(0,-1);if("0"===e&&(e=null),++rb,e)Gb&&c(rb-2,"Octal literal in strict mode"),b+=String.fromCharCode(parseInt(e,8)),rb+=e.length-1;else switch(d){case 110:b+="\n";break;case 114:b+="\r";break;case 120:b+=String.fromCharCode(A(2));break;case 117:b+=String.fromCharCode(A(4));break;case 85:b+=String.fromCharCode(A(8));break;case 116:b+=" ";break;case 98:b+="\b";break;case 118:b+=" ";break;case 102:b+="\f";break;case 48:b+="\x00";break;case 13:10===mb.charCodeAt(rb)&&++rb;case 10:lb.locations&&(Ab=rb,++zb);break;default:b+=String.fromCharCode(d)}}else(13===d||10===d||8232===d||8233===d)&&c(sb,"Unterminated string constant"),b+=String.fromCharCode(d),++rb}}function A(a){var b=w(16,a);return null===b&&c(sb,"Bad character escape sequence"),b}function B(){Mc=!1;for(var a,b=!0,d=rb;;){var e=mb.charCodeAt(rb);if($c(e))Mc&&(a+=mb.charAt(rb)),++rb;else{if(92!==e)break;Mc||(a=mb.slice(d,rb)),Mc=!0,117!=mb.charCodeAt(++rb)&&c(rb,"Expecting Unicode escape sequence \\uXXXX"),++rb;var f=A(4),g=String.fromCharCode(f);g||c(rb-1,"Invalid Unicode escape"),(b?Zc(f):$c(f))||c(rb-4,"Invalid Unicode escape"),a+=g}b=!1}return Mc?a:mb.slice(d,rb)}function C(){var a=B(),b=Lb;return Mc||(Rc(a)?b=kc[a]:(lb.forbidReserved&&(3===lb.ecmaVersion?Nc:Oc)(a)||Gb&&Pc(a))&&c(sb,"The keyword '"+a+"' is reserved")),g(b,a)}function D(){Bb=sb,Cb=tb,Db=vb,t()}function E(a){if(Gb=a,rb=sb,lb.locations)for(;Ab>rb;)Ab=mb.lastIndexOf("\n",Ab-2)+1,--zb;j(),t()}function F(){this.type=null,this.start=sb,this.end=null}function G(){this.start=ub,this.end=null,null!==ob&&(this.source=ob)}function H(){var a=new F;return lb.locations&&(a.loc=new G),lb.directSourceFile&&(a.sourceFile=lb.directSourceFile),lb.ranges&&(a.range=[sb,0]),a}function I(a){var b=new F;return b.start=a.start,lb.locations&&(b.loc=new G,b.loc.start=a.loc.start),lb.ranges&&(b.range=[a.range[0],0]),b}function J(a,b){return a.type=b,a.end=Cb,lb.locations&&(a.loc.end=Db),lb.ranges&&(a.range[1]=Cb),a}function K(a){return lb.ecmaVersion>=5&&"ExpressionStatement"===a.type&&"Literal"===a.expression.type&&"use strict"===a.expression.value}function L(a){return wb===a?(D(),!0):void 0}function M(){return!lb.strictSemicolons&&(wb===Mb||wb===oc||Xc.test(mb.slice(Cb,sb)))}function N(){L(sc)||M()||P()}function O(a){wb===a?D():P()}function P(){c(sb,"Unexpected token")}function Q(a){"Identifier"!==a.type&&"MemberExpression"!==a.type&&c(a.start,"Assigning to rvalue"),Gb&&"Identifier"===a.type&&Qc(a.name)&&c(a.start,"Assigning to "+a.name+" in strict mode")}function R(a){Bb=Cb=rb,lb.locations&&(Db=new e),Eb=Gb=null,Fb=[],t();var b=a||H(),c=!0;for(a||(b.body=[]);wb!==Mb;){var d=S();b.body.push(d),c&&K(d)&&E(!0),c=!1}return J(b,"Program")}function S(){(wb===wc||wb===yc&&"/="==xb)&&t(!0);var a=wb,b=H();switch(a){case Nb:case Qb:D();var d=a===Nb;L(sc)||M()?b.label=null:wb!==Lb?P():(b.label=kb(),N());for(var e=0;eb){var e=I(a);e.left=a,e.operator=xb;var f=wb;D(),e.right=ab(bb(),d,c);var g=J(e,f===Bc||f===Cc?"LogicalExpression":"BinaryExpression");return ab(g,b,c)}return a}function bb(){if(wb.prefix){var a=H(),b=wb.isUpdate;return a.operator=xb,a.prefix=!0,yb=!0,D(),a.argument=bb(),b?Q(a.argument):Gb&&"delete"===a.operator&&"Identifier"===a.argument.type&&c(a.start,"Deleting local variable in strict mode"),J(a,b?"UpdateExpression":"UnaryExpression")}for(var d=cb();wb.postfix&&!M();){var a=I(d);a.operator=xb,a.prefix=!1,a.argument=d,Q(d),D(),d=J(a,"UpdateExpression")}return d}function cb(){return db(eb())}function db(a,b){if(L(uc)){var c=I(a);return c.object=a,c.property=kb(!0),c.computed=!1,db(J(c,"MemberExpression"),b)}if(L(lc)){var c=I(a);return c.object=a,c.property=Y(),c.computed=!0,O(mc),db(J(c,"MemberExpression"),b)}if(!b&&L(pc)){var c=I(a);return c.callee=a,c.arguments=jb(qc,!1),db(J(c,"CallExpression"),b)}return a}function eb(){switch(wb){case fc:var a=H();return D(),J(a,"ThisExpression");case Lb:return kb();case Ib:case Kb:case Jb:var a=H();return a.value=xb,a.raw=mb.slice(sb,tb),D(),J(a,"Literal");case gc:case hc:case ic:var a=H(); -return a.value=wb.atomValue,a.raw=wb.keyword,D(),J(a,"Literal");case pc:var b=ub,c=sb;D();var d=Y();return d.start=c,d.end=tb,lb.locations&&(d.loc.start=b,d.loc.end=vb),lb.ranges&&(d.range=[c,tb]),O(qc),d;case lc:var a=H();return D(),a.elements=jb(mc,!0,!0),J(a,"ArrayExpression");case nc:return gb();case Xb:var a=H();return D(),ib(a,!1);case ec:return fb();default:P()}}function fb(){var a=H();return D(),a.callee=db(eb(),!0),a.arguments=L(pc)?jb(qc,!1):Hb,J(a,"NewExpression")}function gb(){var a=H(),b=!0,d=!1;for(a.properties=[],D();!L(oc);){if(b)b=!1;else if(O(rc),lb.allowTrailingCommas&&L(oc))break;var e,f={key:hb()},g=!1;if(L(tc)?(f.value=Y(!0),e=f.kind="init"):lb.ecmaVersion>=5&&"Identifier"===f.key.type&&("get"===f.key.name||"set"===f.key.name)?(g=d=!0,e=f.kind=f.key.name,f.key=hb(),wb!==pc&&P(),f.value=ib(H(),!1)):P(),"Identifier"===f.key.type&&(Gb||d))for(var h=0;hg?a.id:a.params[g];if((Pc(h.name)||Qc(h.name))&&c(h.start,"Defining '"+h.name+"' in strict mode"),g>=0)for(var i=0;g>i;++i)h.name===a.params[i].name&&c(h.start,"Argument name clash in strict mode")}return J(a,b?"FunctionDeclaration":"FunctionExpression")}function jb(a,b,c){for(var d=[],e=!0;!L(a);){if(e)e=!1;else if(O(rc),b&&lb.allowTrailingCommas&&L(a))break;d.push(c&&wb===rc?null:Y(!0))}return d}function kb(a){var b=H();return b.name=wb===Lb?xb:a&&!lb.forbidReserved&&wb.keyword||P(),yb=!1,D(),J(b,"Identifier")}a.version="0.4.1";var lb,mb,nb,ob;a.parse=function(a,c){return mb=String(a),nb=mb.length,b(c),f(),R(lb.program)};var pb=a.defaultOptions={ecmaVersion:5,strictSemicolons:!1,allowTrailingCommas:!0,forbidReserved:!1,locations:!1,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null},qb=a.getLineInfo=function(a,b){for(var c=1,d=0;;){Yc.lastIndex=d;var e=Yc.exec(a);if(!(e&&e.indexa?36===a:91>a?!0:97>a?95===a:123>a?!0:a>=170&&Vc.test(String.fromCharCode(a))},$c=a.isIdentifierChar=function(a){return 48>a?36===a:58>a?!0:65>a?!1:91>a?!0:97>a?95===a:123>a?!0:a>=170&&Wc.test(String.fromCharCode(a))},_c={kind:"loop"},ad={kind:"switch"}}),function(a,b,c,d){function e(d){if(!c[d]){if(!b[d]){if(a)return a(d);throw new Error("Cannot find module '"+d+"'")}var f=c[d]={exports:{}};b[d][0](function(a){var c=b[d][1][a];return e(c?c:a)},f,f.exports)}return c[d].exports}for(var f=0;f1){var g={};g[arguments[0]]=arguments[1]}else var g=arguments[0];for(var h in g){c=h.split(" ");var f=g[h];"function"==typeof f&&(f=[f]);for(var b=0;d=c[b];b++){if(d in e.listeners)a=e.listeners;else{if(!(d in e.globListeners))continue;a=e.globListeners}a[d]=a[d].filter(function(a){return-1===f.indexOf(a)})}}return e},i.proto.send=function(a){i.total[a]||(i.total[a]=0),i.total[a]+=1;var b,c,f,g=this.listeners,j=this.globListeners,k=d(a);if(arguments.length){var l=Array.prototype.splice.call(arguments,1);l.push(a)}else var l=[];for(var m=0;c=k[m];m++){var n={},o={};if(b=g[c])for(var p=0;f=b[p];p++)n[f.uid]=f,o[f.uid]=c;var q=c.split(":");for(var r in j){if("*"!==r){var s=h[r]||(h[r]=r.split(":"));if(!e(s,q))continue}b=j[r];for(var p=0;f=b[p];p++)n[f.uid]=f,o[f.uid]=c}var t=[];for(var f in n)t.push(n[f]);for(var f,p=0;f=t[p];p++)f.apply(f,l)}return this},b.exports=i},{"./object/setproto":7,"./string/tokenize":8,"./string/globber":9,"./uid":10,"./nexttick":11}],7:[function(a,b){var c=function(a,b){if(a.__proto__)a.__proto__=b;else for(var c in b)a[c]=b[c]};b.exports=c},{}],8:[function(a,b){var c=function(a,b){return a.trim().split(b||c.default)};c.default=/\s+/g,b.exports=c},{}],9:[function(a,b){var c=function(a,b){var d,e=a[0],f=a.slice(1),g=b.length;if("*"===e){for(var h=0;g>=h;++h)if(c(f,b.slice(h)))return!0;return!1}return d=e===b[0],d&&(!f.length&&!g||c(f,b.slice(1)))};b.exports=c},{}],10:[function(a,b){var c=function(){return c.counter++ +""};c.counter=1,b.exports=c},{}],11:[function(a,b){if(window.ActiveXObject||!window.postMessage)var c=function(a){setTimeout(a,0)};else{var d=[],e="next-tick-zero-timeout";window.addEventListener("message",function(a){a.source==window&&a.data==e&&(a.stopPropagation&&a.stopPropagation(),d.length&&d.shift()())},!0);var c=function(a){d.push(a),window.postMessage(e,"*")}}b.exports=c},{}],4:[function(a,b){var c=(a("./benchmark"),a("./object/setproto")),d=a("./object/extend"),e=a("./tube"),f=function(a,b){var d=e();return c(d,f.proto),b&&b.benchmark&&(d.benchmark=b.benchmark),d.src=a,d};f.proto={},d(f.proto,e.proto),f.proto.load=function(){var a=this,b=a.src;"string"==typeof b?a.loadFromUrl(b):b instanceof File?a.loadFromFile(b):b instanceof ArrayBuffer&&a("load",b)},f.proto.loadFromFile=function(a){var b=this,c=new FileReader;c.addEventListener("load",function(a){b.benchmark&&b.benchmark.stop("fetch-from-disk"),b("load",c.result,a)}),c.addEventListener("error",function(a){b("error",a,c)}),c.addEventListener("progress",function(a){b("progress",a)}),b.benchmark&&b.benchmark.start("fetch-from-disk"),c.readAsArrayBuffer(a)},f.proto.loadFromUrl=function(a){var b=this,c=new XMLHttpRequest;c.open("GET",a),c.responseType="arraybuffer",c.addEventListener("load",function(a){b.benchmark&&b.benchmark.stop("fetch-from-network"),b("load",c.response,a)}),c.addEventListener("error",function(a){b("error",a,c)}),c.addEventListener("progress",function(a){b("progress",a)}),b.benchmark&&b.benchmark.start("fetch-from-network"),c.send()},b.exports=f},{"./benchmark":2,"./object/setproto":7,"./object/extend":12,"./tube":3}],12:[function(a,b){b.exports=function(a,b){for(var c in b)a[c]=b[c];return a}},{}],5:[function(a,b){!function(){var c=a("./spec").blockSigs,d=a("./spec").extSigs,e=a("./palette"),f=a("./animate").makeCurrentFrame,g=a("../../binaryspec"),h=a("./spec").spec,i=g(h),j=function(a){k(a)},k=function(a,b){b=b||"header";for(var c=a.buf;"done"!==b&&"error"!==b;)if(b in l&&"function"==typeof l[b])b=l[b](a);else{var d=i.parts[b].byteSize;if(c.abuf.byteLengthe){i=!0;break}if(h=d[g],g+=1,0===h){j+=1;break}if(g+h>e){i=!0;break}b.push(g+h),g+=h,j+=h+1}return i?(console.log("out of data"),!1):(c.cursor+=j,a.benchmark&&a.benchmark.stop("read-subblocks"),{start:f,blockEnds:b})};b.exports=j}()},{"./spec":13,"./palette":14,"./animate":15,"../../binaryspec":16}],13:[function(a,b,c){var d={33:"extension",44:"imageDesc",59:"trailer"};c.blockSigs=d;var e={249:"graphicControl",254:"comment",1:"plainText",255:"applicationExtension"};c.extSigs=e;var f={header:["str[3] signature","str[3] version"],screenDesc:["u16 w","u16 h","bit paletteExists","bit[3] resolution ignore","bit sortFlag ignore","bit[3] paletteSize","u8 bgColorIndex","u8 aspectRatio ignore"],imageDesc:["u8 sig ignore","u16 x","u16 y","u16 w","u16 h","bit paletteExists","bit interlaced","bit sortFlag","bit[2] reserved ignore","bit[3] paletteSize"],applicationExtension:["u8 sig ignore","u8 extSig ignore","u8 blockSize ignore","str[8] identifier","str[3] authCode ignore"],graphicControl:["u8 sig ignore","u8 extSig ignore","u8 blockSize ignore","bit[3] reserved ignore","bit[3] disposalMethod","bit userInput ignore","bit transparentColor","u16 delay","u8 transparentIndex","u8 blockTerminator ignore"],comment:["u8 sig ignore","u8 extSig ignore"],plainText:["u8 sig ignore","u8 extSig ignore","u8 blockSize","u16 textGridLeft","u16 textGridTop","u16 textGridWidth","u16 textGridHeight","u8 charCellWidth","u8 charCellHeight","u8 fgColorIndex","u8 bgColorIndex"],imageData:["u8 lzwCodeSize"]};c.spec=f},{}],14:[function(a,b){!function(){var c=a("../../color/rgba2css"),d=(a("../../create/2d"),a("../../create/imagedata")),e={};e.binary2rgba=function(a){for(var b=new Uint8Array(a.byteLength/3*4),c=0,d=0,e=a.byteLength/3*4;e>d;d+=4)b[d]=a[c],b[d+1]=a[c+1],b[d+2]=a[c+2],b[d+3]=255,c+=3;return b},e.create=function(a){var b={0:0},e=["rgba(0,0,0,0)"],f=[[0,0,0,0]],g=function(a){for(var d=0,g=a.length;g>d;d+=4){var h=a[d+3];if(0!==h){var i=a[d],j=a[d+1],k=a[d+2],l=(i|j<<8|k<<16|h<<24).toString();if(!(l in b)){b[l]=f.length;var m=[i,j,k,h];f.push(m),e.push(c(m))}}}};"palette"in a&&g(a.palette);for(var h=0;hk;k+=4){var n=f[k/4];m[k]=n[0],m[k+1]=n[1],m[k+2]=n[2],m[k+3]=n[3]}return{rgba2Index:b,index2Rgba:f,index2Css:e,imagedata:j,length:f.length}},b.exports=e}()},{"../../color/rgba2css":17,"../../create/2d":18,"../../create/imagedata":19}],17:[function(a,b){var c=function(a){return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")"};b.exports=c},{}],18:[function(a,b){var c=function(a,b){var c=document.createElement("canvas");return c.width=a||0,c.height=b||0,c.getContext("2d")};"undefined"!=typeof b&&(b.exports=c)},{}],19:[function(a,b){var c=function d(a,b){return d.ctx.createImageData(a,b)};c.ctx=document.createElement("canvas").getContext("2d"),"undefined"!=typeof b&&(b.exports=c)},{}],15:[function(a,b,c){var d=function(){var a=100;1===this.frames.length&&(this.currentFrame=function(){return 0});for(var b=0,c=[],d=0;d0?10*f.delay:a;b+=g,c.push(b)}this.currentFrame=e(c)},e=function(a){var b=a[a.length-1];return function(c){for(var d=(c||Date.now())%b,e=0;e1,m=b[j]*k;d.fields.push({name:g[1],type:j,ignore:h,bitSize:m,isArray:l}),e+=m}return d.bitSize=e,d.byteSize=e/8,d};e.proto.decodeBinaryFieldsToJSON=function(a,b,c){for(var e=this,f=e.parts[a],h={},i=f.fields.length,j=0,k=0;i>k;k++){var l=f.fields[k];if(!l.ignore){{var m=j%8,n=Math.floor((j-m)/8);n+Math.ceil(l.bitSize/8)}switch(l.type){case"u8":h[l.name]=c.u8[b+n];break;case"i8":h[l.name]=c.dv.getInt8(b+n);break;case"u16":h[l.name]=c.dv.getUint16(b+n,!0);break;case"i16":h[l.name]=c.dv.getInt16(b+n,!0);break;case"u32":h[l.name]=c.dv.getUint32(b+n,!0);break;case"i32":h[l.name]=c.dv.getInt32(b+n,!0);break;case"str":h[l.name]=g(c.abuf,b+n,l.bitSize>>3);break;case"bit":if(l.isArray){for(var o=new d(c.abuf,b+n),p=[],q=m;q>3],c=7&a;return b>>7-c&1},b.exports=c},{}],6:[function(a,b){var c=a("../../create/2d"),d=a("../../create/imagedata"),e=a("../../nexttick"),f=a("./decode-lzw"),g=function(a,b){b=b||{};var d=a.benchmark||!1,i=b.frameNum||0;if(0===i)for(var j=0;j=a.frames.length)return a.rendered=!0,void a.tube("rendered");var k=a.frames[i],l=a.buf.pixeldata;d&&d.start("decompress-lzw"),f(k.blockinfo,a.buf.u8,k.lzwCodeSize,k.w,k.h,l),d&&d.stop("decompress-lzw"),k.interlaced&&(d&&d.start("deinterlace"),l=m(l,k.w,k.h),d&&d.stop("deinterlace")),d&&d.start("pixeldata-to-canvas"),h(l,a,i),d&&d.stop("pixeldata-to-canvas");var n=g.bind(void 0,a,{frameNum:i+1});e(n)},h=function(a,b,c){var d=b.frames[c],e=d.ctx;if(0===c)return void e.putImageData(k(a,b,d),d.x,d.y,0,0,d.w,d.h);var f,g=c-1,h=b.frames[g],l=h.ctx.canvas;if((0===h.disposalMethod||1===h.disposalMethod)&&(f=i(b,c,a),e.drawImage(l,0,0),e.drawImage(f.canvas,0,0,d.w,d.h,d.x,d.y,d.w,d.h)),2===h.disposalMethod&&(0===h.x&&0===h.y&&h.w===b.w&&h.h===b.h?e.putImageData(j(b,c,a),d.x,d.y,0,0,d.w,d.h):(h.y>0&&e.drawImage(l,0,0,b.w,h.y,0,0,b.w,h.y),h.x>0&&e.drawImage(l,0,h.y,h.x,h.h,0,h.y,h.x,h.h),h.x+h.w0&&3===b.frames[g].disposalMethod;)g-=1;h=b.frames[g],3!=h.disposalMethod&&e.drawImage(h.ctx.canvas,0,0),f=i(b,c,a),e.drawImage(f.canvas,0,0,d.w,d.h,d.x,d.y,d.w,d.h)}},i=function(a,b,d){if(i.ctx&&i.ctx.canvas.width===a.w&&i.ctx.canvas.height===a.h)var e=i.ctx;else var e=i.ctx=c(a.w,a.h);var f=a.frames[b];d=d||f.pixelData;var g="palette"in f?f.palette:a.palette,h="transparentIndex"in f?f.transparentIndex:-1;h>-1&&(g[4*h+3]=0);var j=l(a,g,d,f.w,f.h,h);return e.putImageData(j,0,0,0,0,f.w,f.h),e},j=function(a,b,c){var d=a.frames[b];c=c||d.pixelData;var e="palette"in d?d.palette:a.palette,f="transparentIndex"in d?d.transparentIndex:-1;return f>-1&&(e[4*f+3]=0),l(a,e,c,d.w,d.h,f)},k=function(a,b,c){var d="palette"in c?c.palette:b.palette,e="transparentIndex"in c?c.transparentIndex:-1;return e>-1&&(d[4*e+3]=0),l(b,d,a,c.w,c.h,e)},l=function(a,b,c,e,f){if(l.imagedata&&l.imagedata.width===a.w&&l.imagedata.height===a.h)var g=l.imagedata;else var g=l.imagedata=d(a.w,a.h);for(var h=g.data,i=0,j=0;f>j;j++)for(var k=j*a.w,m=0;e>m;m++){var n=4*(m+k),o=4*c[i];h[n]=b[o],h[n+1]=b[o+1],h[n+2]=b[o+2],h[n+3]=b[o+3],i+=1}return g},m=function(a,b,c){for(var d=new Uint8Array(a.length),e=Math.ceil(c/8),f=Math.ceil(c/4),g=Math.ceil(c/2),h=0;c>h;h++){var i,j=b*h;i=h%8===0?b*(h/8):(h+4)%8===0?b*((h-4)/8+e):h%2===0?b*((h-2)/4+f):b*((h-1)/2+g);for(var k=0;b>k;k++)d[j+k]=a[i+k]}return d};b.exports=g},{"../../create/2d":18,"../../create/imagedata":19,"../../nexttick":11,"./decode-lzw":21}],21:[function(a,b){var c=function(a,b,c,d,e,f,g){var h,i,j,k=4096,l=-1,m=d*e,n=0,o=0,p=0,f=f||new Uint8Array(m),q=new Uint16Array(2*k),r=new Uint8Array(k),s=new Uint8Array(k+1),t=1<h;h++)q[h]=0,r[h]=h;for(var y=0,z=0,A=a.start,B=a.blockEnds,C=B.shift(),D=0;m>D;){if(0===o){if(w>y){z+=b[A]<>=w,y-=w,h>v&&console.log(":("),h===u){console.log("fuck");break}if(h===t){w=c+1,x=(1<t;)s[o++]=r[h],h=q[h];n=r[h],s[o++]=n,q[v]=j,r[v]=n,v++,0===(v&x)&&k>v&&(w++,x+=v),j=i}o--,f[p++]=g?g[s[o]]:s[o],D++}return f};b.exports=c},{}]},{},[1]);var nextTick=function(){if(window.ActiveXObject||!window.postMessage)var a=function(a){setTimeout(a,0)};else{var b=[],c="next-tick-zero-timeout";window.addEventListener("message",function(a){a.source==window&&a.data==c&&(a.stopPropagation&&a.stopPropagation(),b.length&&b.shift()())},!0);var a=function(a){b.push(a),window.postMessage(c,"*")}}return a}(),Uid=function(){var a=0;return function(){return a++ +""}}(),tokenize=function(){var a=function(b,c){return b.trim().split(c||a.default)};return a.default=/\s+/g,a}(),globber=function(a,b){var c,d=a[0],e=a.slice(1),f=b.length;if("*"===d){for(var g=0;f>=g;++g)if(globber(e,b.slice(g)))return!0;return!1}return c=d===b[0],c&&(!e.length&&!f||globber(e,b.slice(1)))},setproto=function(a,b){if(a.__proto__)a.__proto__=b;else for(var c in b)a[c]=b[c]},Tube=function(){var a={},b=function(a){if(a=a||{},a.queue)var c=function(){var a=arguments;return nextTick(function(){c.send.apply(c,a)}),c};else var c=function(){return c.send.apply(c,arguments),c};return setproto(c,b.proto),c.listeners={},c.globListeners={},c};return b.total={},b.proto={},b.proto.on=function(){var a=this;if("string"==typeof arguments[0]){var b={};b[arguments[0]]=arguments[1];{arguments[2]||{}}}else{var b=arguments[0];arguments[1]||{}}for(var c in b){var d=c.split(" "),e=b[c];Array.isArray(e)||(e=[e]);for(var f,g=0;f=e[g];g++)f.uid||(f.uid=Uid());for(var h,g=0;h=d[g];g++){var i=-1===h.indexOf("*")?a.listeners:a.globListeners;i[h]=h in i?i[h].concat(e):e.concat()}}return a},b.proto.off=function(){var a,b,c,d,e=this;if(0===arguments.length)return e.listeners={},e.globListeners={},e;if(1===arguments.length&&"string"==typeof arguments[0]){for(c=arguments[0].split(" "),b=0;d=c[b];b++)delete e.listeners[d],delete e.globListeners[d];return e}if("function"==typeof arguments[0]||Array.isArray(arguments[0])){var f="function"==typeof arguments[0]?[arguments[0]]:arguments[0];return e}if(arguments.length>1){var g={};g[arguments[0]]=arguments[1]}else var g=arguments[0];for(var h in g){c=h.split(" ");var f=g[h];"function"==typeof f&&(f=[f]);for(var b=0;d=c[b];b++){if(d in e.listeners)a=e.listeners;else{if(!(d in e.globListeners))continue;a=e.globListeners}a[d]=a[d].filter(function(a){return-1===f.indexOf(a)})}}return e},b.proto.send=function(c){b.total[c]||(b.total[c]=0),b.total[c]+=1;var d,e,f,g=this.listeners,h=this.globListeners,i=tokenize(c);if(arguments.length){var j=Array.prototype.splice.call(arguments,1);j.push(c)}else var j=[];for(var k=0;e=i[k];k++){var l={},m={};if(d=g[e])for(var n=0;f=d[n];n++)l[f.uid]=f,m[f.uid]=e;var o=e.split(":");for(var p in h){if("*"!==p){var q=a[p]||(a[p]=p.split(":"));if(!globber(q,o))continue}d=h[p];for(var n=0;f=d[n];n++)l[f.uid]=f,m[f.uid]=e}var r=[];for(var f in l)r.push(l[f]);for(var f,n=0;f=r[n];n++)f.apply(f,j)}return this},b}(),FRAMES_PER_GIF=36,FPS=12,DELAY=Math.floor(1e3/FPS),WORKERS=6,FRAMES_TO_QUANTIZE=4,DO_UPLOAD=!0;!function(a,b){function c(a){var b=a.length,c=fb.type(a);return fb.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||"function"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){var b=ob[a]={};return fb.each(a.match(hb)||[],function(a,c){b[c]=!0}),b}function e(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=fb.expando+Math.random()}function f(a,c,d){var e;if(d===b&&1===a.nodeType)if(e="data-"+c.replace(sb,"-$1").toLowerCase(),d=a.getAttribute(e),"string"==typeof d){try{d="true"===d?!0:"false"===d?!1:"null"===d?null:+d+""===d?+d:rb.test(d)?JSON.parse(d):d}catch(f){}pb.set(a,c,d)}else d=b;return d}function g(){return!0}function h(){return!1}function i(){try{return T.activeElement}catch(a){}}function j(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function k(a,b,c){if(fb.isFunction(b))return fb.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return fb.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(Cb.test(b))return fb.filter(b,a,c);b=fb.filter(b,a)}return fb.grep(a,function(a){return bb.call(b,a)>=0!==c})}function l(a,b){return fb.nodeName(a,"table")&&fb.nodeName(1===b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function m(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function n(a){var b=Nb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function o(a,b){for(var c=a.length,d=0;c>d;d++)qb.set(a[d],"globalEval",!b||qb.get(b[d],"globalEval"))}function p(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(qb.hasData(a)&&(f=qb.access(a),g=qb.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)fb.event.add(b,e,j[e][c])}pb.hasData(a)&&(h=pb.access(a),i=fb.extend({},h),pb.set(b,i))}}function q(a,c){var d=a.getElementsByTagName?a.getElementsByTagName(c||"*"):a.querySelectorAll?a.querySelectorAll(c||"*"):[];return c===b||c&&fb.nodeName(a,c)?fb.merge([a],d):d}function r(a,b){var c=b.nodeName.toLowerCase();"input"===c&&Kb.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function s(a,b){if(b in a)return b;for(var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=_b.length;e--;)if(b=_b[e]+c,b in a)return b;return d}function t(a,b){return a=b||a,"none"===fb.css(a,"display")||!fb.contains(a.ownerDocument,a)}function u(b){return a.getComputedStyle(b,null)}function v(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=qb.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&t(d)&&(f[g]=qb.access(d,"olddisplay",z(d.nodeName)))):f[g]||(e=t(d),(c&&"none"!==c||!e)&&qb.set(d,"olddisplay",e?c:fb.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function w(a,b,c){var d=Ub.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function x(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=fb.css(a,c+$b[f],!0,e)),d?("content"===c&&(g-=fb.css(a,"padding"+$b[f],!0,e)),"margin"!==c&&(g-=fb.css(a,"border"+$b[f]+"Width",!0,e))):(g+=fb.css(a,"padding"+$b[f],!0,e),"padding"!==c&&(g+=fb.css(a,"border"+$b[f]+"Width",!0,e))); +function shuffle(a){var b=new Array(a.length);b[0]=a[0];for(var c=1;cb;b++){var d=new Worker("js/vendor/gif-encode/worker.js");d.onmessage=a.receiveWork,c.push(d)}};var d={};a.hire=function(a,b){d[a]=b},a.work=function(a){c[++b%c.length].postMessage(a)},a.receiveWork=function(a){a.data.task in d&&d[a.data.task](a)},a.fire=function(){for(var b in c)c[b].postMessage("close");c=[],a.init()},a.init()}function b(a){console.log("[WORKER]",a.data.message)}function c(a){console.log(Date.now()-q,"quantization done"),i=a.data.neuquant,j=a.data.colortab,f.quantized=!0,f.tube("quantized")}function d(a){var b=a.data.frame_index,c=a.data.frame_data;m[b]=c,f.tube("encoded-frame",m.length,k.length);for(var d=0;da?b:c>a?a:c}function lerp(a,b,c){return(c-b)*a+b}function mix(a,b,c){return b*(1-a)+c*a}function ceil(a){return Math.ceil(a)}function floor(a){return Math.floor(a)}function round(a){return Math.round(a)}function max(a){return Math.max(a)}function min(a){return Math.min(a)}function abs(a){return Math.abs(a)}function sign(a){return Math.abs(a)/a}function pow(a,b){return Math.pow(a,b)}function exp(a){return Math.exp(a)}function sqrt(a){return Math.sqrt(a,b)}function cos(a){return Math.cos(a)}function sin(a){return Math.sin(a)}function tan(a){return Math.tan(a)}function acos(a){return Math.cos(a)}function asin(a){return Math.sin(a)}function atan(a){return Math.atan(a)}function atan2(a){return Math.atan2(a)}function sec(a){return 1/cos(a)}function csc(a){return 1/sin(a)}function cot(a){return 1/tan(a)}function cosp(a){return(1+Math.cos(a))/2}function sinp(a){return(1+Math.sin(a))/2}function random(){return Math.random()}function rand(a){return Math.random()*a}function randint(a){return 0|rand(a)}function choice(a){return a[randint(a.length)]}function deg(a){return 180*a/PI}function rad(a){return a*PI/180}function xor(a,b){return a=!!a,b=!!b,(a||b)&&!(a&&b)}function mod(a,b){return a-b*floor(a/b)}function dist(a,b,c,d){return sqrt(pow(c-a,2)+pow(d-b,2))}function angle(a,b,c,d){return atan2(d-b,c-a)}function avg(a,b,c){return(a*(c-1)+b)/c}function pixel(a,b){return 4*(mod(b,actual_h)*actual_w+mod(a,actual_w))}function rgbpixel(c,d,e){var f=pixel(~~d,~~e);r=c[f],g=c[f+1],b=c[f+2],a=c[f+3]}function fit(a,b,c){rgbpixel(a,b*actual_w/w,c*actual_h/h)}function step(a,b){return(b>=a)+0}function julestep(a,b,c){return clamp((c-a)/(b-a),0,1)}function smoothstep(a,b,c){var d=clamp((c-a)/(b-a),0,1);return d*d*(3-2*d)}function shuffle(a){for(var b=a.length;b>0;b--){var c=randint(b),d=a[b-1];a[b-1]=a[c],a[c]=d}return a}function reverse(a){for(var b=[],c=0,d=a.length-1;d>=c;c++)b[c]=a[d-c];return b}function deinterlace(a){for(var b=[],c=[],d=0,e=a.length;e>d;d++)d%2?c.push(a[d]):b.push(a[d]);return[c,b]}function weave(a){var b=deinterlace(a),c=[];return b[0].forEach(function(a){c.push(a)}),reverse(b[1]).forEach(function(a){c.push(a)}),c}function rgb(a,c,d){r=a,g=c,b=d}function rgbref(a){r=a[0],g=a[1],b=a[2]}function black(){rgb(0,0,0)}function white(){rgb(255,255,255)}function red(){rgb(255,0,0)}function gray(a){1>a&&(a*=255),rgb(a,a,a)}function rgb2xyz(a){var b=a[0]/255,c=a[1]/255,d=a[2]/255;b>.04045?b=(b+.055)/1.055^2.4:b/=12.92,c>.04045?c=(c+.055)/1.055^2.4:c/=12.92,d>.04045?d=(d+.055)/1.055^2.4:d/=12.92,b=100*b,c=100*c,d=100*d;var e=.4124*b+.3576*c+.1805*d,f=.2126*b+.7152*c+.0722*d,g=.0193*b+.1192*c+.9505*d;return[e,f,g]}function xyz2rgb(a){var b=a[0]/100,c=a[1]/100,d=a[2]/100;var_R=3.2406*b+-1.5372*c+d*-.4986,var_G=b*-.9689+1.8758*c+.0415*d,var_B=.0557*b+c*-.204+1.057*d,var_R=var_R>.0031308?1.055*Math.pow(var_R,1/2.4)-.055:12.92*var_R,var_G=var_G>.0031308?1.055*Math.pow(var_G,1/2.4)-.055:12.92*var_G,var_B=var_B>.0031308?1.055*Math.pow(var_B,1/2.4)-.055:12.92*var_B;var e=clamp(255*var_R,0,255),f=clamp(255*var_G,0,255),g=clamp(255*var_B,0,255);return[e,f,g]}function xyz2hunterlab(a){var b=a[0],c=a[1],d=a[2],e=10*sqrt(c),f=17.5*((1.02*b-c)/sqrt(c)),g=7*((c-.847*d)/sqrt(c));return[e,f,g]}function hunterlab2xyz(a){var b=a[0],c=a[1],d=a[2];return var_Y=b/10,var_X=c/17.5*b/10,var_Z=d/7*b/10,Y=Math.pow(var_Y,2),X=(var_X+Y)/1.02,Z=-(var_Z-Y)/.847,[X,Y,Z]}function xyz2cielab(a){var b=a[0]/ref_X,c=a[1]/ref_Y,d=a[2]/ref_Z;b=b>.008856?Math.pow(b,1/3):7.787*b+16/116,c=c>.008856?Math.pow(c,1/3):7.787*c+16/116,d=d>.008856?Math.pow(d,1/3):7.787*d+16/116;var e=116*c-16,f=500*(b-c),g=200*(c-d);return[e,f,g]}function cielab2xyz(a){var b=(a[0]+16)/116,c=a[1]/500+b,d=b-a[2]/200;b=b^!0?Math.pow(b,3):(b-16/116)/7.787,c=c^!0?Math.pow(c,3):(c-16/116)/7.787,d=d^!0?Math.pow(d,3):(d-16/116)/7.787;return[x,y,z]}function rgb2hsl(a){var b,c,d=a[0],e=a[1],f=a[2],g=d/255,h=e/255,i=f/255,j=min(g,h,i),k=max(g,h,i),l=k-j,m=(k+j)/2;if(0==l)b=0,c=0;else{c=.5>m?l/(k+j):l/(2-k-j);var n=((k-g)/6+l/2)/l,o=((k-h)/6+l/2)/l,p=((k-i)/6+l/2)/l;g==k?b=p-o:h==k?b=1/3+n-p:i==k&&(b=2/3+o-n),0>b&&(b+=1),b>1&&(b-=1)}return[b,c,m]}function hsl2rgb(a,b,c){var d,e,f,g,h;return 0==b?(d=255*c,e=255*c,f=255*c):(h=.5>c?c*(1+b):c+b-b*c,g=2*c-h,d=255*hue2rgb(g,h,a+1/3),e=255*hue2rgb(g,h,a),f=255*hue2rgb(g,h,a-1/3)),[d,e,f]}function hue2rgb(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1>6*c?a+6*(b-a)*c:1>2*c?b:2>3*c?a+(b-a)*(2/3-c)*6:a}function rgb2cmy(a,b,c){a.length&&(c=a[2],b=a[1],a=a[0]);var d=1-a/255,e=1-b/255,f=1-c/255;return[d,e,f]}function cmy2rgb(a,b,c){a.length&&(c=a[2],b=a[1],a=a[0]);var d=255*(1-a),e=255*(1-b),f=255*(1-c);return[d,e,f]}function cmy2cmyk(a,b,c){a.length&&(c=a[2],b=a[1],a=a[0]);var d=1;d>a&&(d=a),d>b&&(d=b),d>c&&(d=c),1==d?(a=0,b=0,c=0):(a=(a-d)/(1-d),b=(b-d)/(1-d),c=(c-d)/(1-d));var e=d;return[a,b,c,e]}function cmyk2cmy(a,b,c,d){a.length&&(d=a[3],c=a[2],b=a[1],a=a[0]);var a=a*(1-d)+d,b=b*(1-d)+d,c=c*(1-d)+d;return[a,b,c]}function loadImage(a,b){var a=proxify(a);return window.imageURL=a,window.gif=window.img=null,a?"gif"===a.substr(-3)?(window.gif=GIF(a),gif.on("rendered",b),gif.render()):(window.img=new Image,img.addEventListener("load",b),img.crossOrigin="anonymous",img.src=a):(window.gif=null,window.img=null,b(),void 0)}function giveImage(a){return window.gif?gif.frames[gif.currentFrame(a)]:img}function proxify(a){return 0==a.indexOf("http")?"/cgi-bin/proxy?"+a.replace(/^https/,"http"):a}function filesize(a){return 1e3>a?a+" bytes":1e6>a?decimalString(a/1e3)+" kb":1e9>a?decimalString(a/1e6)+" mb":"WAY TOO BIG DUDE"}function decimalString(a){var b=Math.floor(a);return b+"."+Math.round(10*(a-b))}function noop(){}function uploadImage(a){if(a.blob&&a.filename){a.username=a.username||"",a.success=a.success||noop,a.error=a.error||noop;var b=new FormData;b.append("username",a.username),b.append("filename",a.filename),b.append("qqfile",a.blob);var c=new XMLHttpRequest;c.open("POST","/cgi-bin/im/upload"),c.onload=function(){if(200==c.status){var b=JSON.parse(c.responseText);b.success?a.success(b):a.error(b)}else a.error({success:!1,error:c.status})},c.send(b)}}function add_frame(){var a=$("#framecount").int();2>a?add_single_frame():add_frames(a)}function add_single_frame(){var a=$("
");a.html($("#frame-template").html()),a.attr("index",$("#frames div").length);var b=cc.clone().appendTo(a.find(".frame")[0]);b.canvas.className="fullsize",b.canvas.style.display="none";cc.clone().resize(frame_thumb_size,frame_thumb_size).appendTo(a.find(".frame")[0]);$("#frames").append(a)}function add_frames(a){rendering=!0;for(var b,c=old_t-start_t-pause_t,d=1e3*($("#frameinterval").float()||$("#framedelay").float()),e=0;a>e;e++)b=giveFrame(c),c+=d,shade(b,c),add_single_frame();rendering=!1}function remove_frame(){$(this).closest("div").remove()}function remove_all_frames(){$("#frames").empty()}function shuffle_frames(){var a=$("#frames div");$("#frames").empty().append(shuffle(a))}function reverse_frames(){var a=$("#frames div");$("#frames").empty().append(reverse(a))}function weave_frames(){var a=$("#frames div");$("#frames").empty().append(weave(a))}function sort_frames(){var a=$("#frames div"),b=a.map(function(a,b){return console.log(a,b),[[b.getAttribute("index"),b]]}).sort(function(a,b){return a[0]-b[0]}).map(function(a,b){return console.log(b),b[1]});$("#frames").empty().append(b)}function render(){if(!rendering){0==$("#frames canvas.fullsize").length&&add_frame(),rendering=!0,encoder.reset();var a=1e3*$("#framedelay").float()||100;$("#frames canvas.fullsize").each(function(){var b=cq(this.width,this.height).fillStyle($("#background").string()).fillRect(0,0,this.width,this.height).drawImage(this,0,0);encoder.addFrame(b.canvas,a)}),$("#pause,#render,#add-frame").disable(),$("#workspace").find("img").remove(),$("#rendered").show(),status("encoding");try{encoder.encode()}catch(b){throw $("#pause,#render,#add-frame").enable(),rendering=!1,status(b),b}$("#render").html("rendering")}}function get_filename(){var a=$("#url").val().replace(/^.*\//,"").replace(/\..*$/,"").replace(/[^-_ a-zA-Z0-9]/g,""),b=user.username,c=a+"-"+b+"-"+ +new Date+".gif";return c.replace(/ /g,"_").replace(/-+/g,"-")}function save(){if(lastGif){var a=get_filename(),b=dataUriToBlob(lastGif);saveAs(b,a)}}function saveJSON(a,b){for(var c=JSON.stringify(a),d=new ArrayBuffer(c.length),e=new Uint8Array(d),f=0;fl;l++)for(var m=0;h>m;m++)q=4*(m*w+l),r=f[q],g=f[q+1],b=f[q+2],a=f[q+3],result=shader(l,m,d,i),f[q]=r,f[q+1]=g,f[q+2]=b,f[q+3]=a,w=j,h=k;cc.putImageData(e,0,0)}function shade_error_handling(c,d){if(!d||isNaN(d))throw Error("No time specified");if(!c||!c.ctx||!c.cloneData)throw Error("No frame specified");var e=c.ctx.getImageData(0,0,w,h),f=e.data,i=c.cloneData.data;try{for(var j=w,k=h,l=0;w>l;l++)for(var m=0;h>m;m++)q=4*(m*w+l),r=f[q],g=f[q+1],b=f[q+2],a=f[q+3],result=shader(l,m,d,i),f[q]=r,f[q+1]=g,f[q+2]=b,f[q+3]=a,w=j,h=k}catch(n){var o=(n.stack+"").split("\n");if("anonymous@"===o[0].substr(0,10)){var p=o[0].match(firefox_stack_regexp);p.length>1&&error_highlight.on(parseInt(p[1])-5)}else if(o.length>1){var p=o[1].match(chrome_stack_regexp);p&&p.length>1&&error_highlight.on(parseInt(p[1])-3)}throw Error("Shader execution error")}cc.putImageData(e,0,0),shade=shade_no_error_handling,error_highlight.off()}function drag_start(){dragging=!0,$(this).addClass("dragging")}function drag_stop(){dragging=!1,$(".dragging").removeClass("dragging")}function status(a){$(".status").html(a),console.log(a)}function quiet_status(a){$(".status").html(a)}function new_shader(){shader_id_root=null,run_shader({id:"",shader_id:"",image_url:$("#url").val(),script:"",name:""})}function run_shader(a){console.log(a),shader_id_root=a.shader_id,$("#persist-image:checked").length&&($("#url").val(a.image_url),load()),$("#shader").val(a.script),$("#shader-id").val(a.id),$("#shader-name").val(a.name||""),shader_build()}function load_shaders(a,b){var c=$("#shader-gallery").empty();for(var d in b){var e=display_shader(b[d]);c.append(e)}firsttime&&(firsttime=!1,run_shader(b[0]))}function display_shader(a){var b=$("
").addClass("shader");b.data("shader",a),b.data("id",a.id);var c=shader_gallery_template;for(var d in a)c=c.replace("{"+d+"}",a[d]);return b.html(c),a.id&&b.data("id",a.id),b}function save_shader(){shader_id_root=shader_id_root||"";var a={script:$("#shader").val(),image_url:$("#url").val(),username:user.username,name:$("#shader-name").val()||"",shader_id:shader_id_root},b=make_thumbnail();status("saving.."),console.log(a),$.post("http://asdf.us/cgi-bin/im/shader/save",a,function(c){return console.log(c),data=JSON.parse(c),data.ERROR?(status("error saving shader"),alert(data.ERROR),!1):(status("uploading thumbnail"),shader_id_root||(shader_id_root=data.id),a.id=data.id,a.thumbnail_url="http://i.asdf.us/im/9a/chtiny3_1334529294_1334529329.gif",$shader=display_shader(a),$("#shader-gallery").prepend($shader),void save_thumbnail(data.id,b))})}function make_thumbnail(){return dataUriToBlob(cc.clone().resize(200,200).canvas.toDataURL("image/png"))}function save_thumbnail(a,b){if(a&&""!=a){b=b||make_thumbnail();var c=new FormData;c.append("id",a),c.append("qqfile",b),$.ajax({url:"http://asdf.us/cgi-bin/im/shader/thumbnail_upload",type:"POST",data:c,processData:!1,contentType:!1}).done(function(b){console.log(b),status("");var c=JSON.parse(b);c.success&&$(".shader[data-id="+a+"]").find("img").attr("src",c.url)})}}function init(){$("#url").change(load),$("#reset").click(reset),$("#pause").click(pause),$("#step-forward").click(step_forward),$(document).on("mousemove",function(a){mousex=a.pageX,mousey=a.pageY}),$("#toggle-shaders").click(function(){$("#header .form").hide(),$("#shader-api-form").show(),$(".bold").removeClass("bold"),$(this).addClass("bold")}).trigger("click"),$("#toggle-images").click(function(){$("#header .form").hide(),$("#gallery-form").show(),$(".bold").removeClass("bold"),$(this).addClass("bold"),asdf.fetched||$("#gallery-random").trigger("click")}),$(".toggle-off").click(function(){$("#header .form").hide(),$(".bold").removeClass("bold")}),$("#width").change(function(){w=abs(parseInt(this.value,10))||1,cc.canvas.width=w,cc.canvas.height=h}),$("#height").change(function(){h=abs(parseInt(this.value,10))||1,cc.canvas.width=w,cc.canvas.height=h}),$("#show-frame-controls").click(function(){$("#frame-controls").show(),$("#frame-hidden-controls").hide()}),$("#hide-frame-controls").click(function(){$("#frame-controls").hide(),$("#frame-hidden-controls").show()}),$("#reorder-frames").change(function(){var a=$(this).val();switch(console.log(a),a){case"weave-frames":weave_frames();break;case"shuffle-frames":shuffle_frames();break;case"reverse-frames":reverse_frames();break;case"sort-frames":sort_frames();break;default:return}render()}),load(),help.init(),user.init(),frame_editor.init(),shader_gallery.init(),gallery.init(choose),document.getElementById("shader").addEventListener("input",shader_build),requestAnimationFrame(animate)}!function(a,b){return"object"==typeof exports&&"object"==typeof module?b(exports):"function"==typeof define&&define.amd?define(["exports"],b):void b(a.acorn||(a.acorn={}))}(this,function(a){"use strict";function b(a){lb=a||{};for(var b in pb)Object.prototype.hasOwnProperty.call(lb,b)||(lb[b]=pb[b]);ob=lb.sourceFile||null}function c(a,b){var c=qb(mb,a);b+=" ("+c.line+":"+c.column+")";var d=new SyntaxError(b);throw d.pos=a,d.loc=c,d.raisedAt=rb,d}function d(a){function b(a){if(1==a.length)return c+="return str === "+JSON.stringify(a[0])+";";c+="switch(str){";for(var b=0;b3){d.sort(function(a,b){return b.length-a.length}),c+="switch(str.length){";for(var e=0;erb&&10!==c&&13!==c&&8232!==c&&8233!==c;)++rb,c=mb.charCodeAt(rb);lb.onComment&&lb.onComment(!1,mb.slice(a+2,rb),a,rb,b,lb.locations&&new e)}function j(){for(;nb>rb;){var a=mb.charCodeAt(rb);if(32===a)++rb;else if(13===a){++rb;var b=mb.charCodeAt(rb);10===b&&++rb,lb.locations&&(++zb,Ab=rb)}else if(10===a||8232===a||8233===a)++rb,lb.locations&&(++zb,Ab=rb);else if(a>8&&14>a)++rb;else if(47===a){var b=mb.charCodeAt(rb+1);if(42===b)h();else{if(47!==b)break;i()}}else if(160===a)++rb;else{if(!(a>=5760&&Sc.test(String.fromCharCode(a))))break;++rb}}}function k(){var a=mb.charCodeAt(rb+1);return a>=48&&57>=a?y(!0):(++rb,g(uc))}function l(){var a=mb.charCodeAt(rb+1);return yb?(++rb,v()):61===a?u(yc,2):u(wc,1)}function m(){var a=mb.charCodeAt(rb+1);return 61===a?u(yc,2):u(Kc,1)}function n(a){var b=mb.charCodeAt(rb+1);return b===a?u(124===a?Bc:Cc,2):61===b?u(yc,2):u(124===a?Dc:Fc,1)}function o(){var a=mb.charCodeAt(rb+1);return 61===a?u(yc,2):u(Ec,1)}function p(a){var b=mb.charCodeAt(rb+1);return b===a?45==b&&62==mb.charCodeAt(rb+2)&&Xc.test(mb.slice(Cb,rb))?(rb+=3,i(),j(),t()):u(zc,2):61===b?u(yc,2):u(Jc,1)}function q(a){var b=mb.charCodeAt(rb+1),c=1;return b===a?(c=62===a&&62===mb.charCodeAt(rb+2)?3:2,61===mb.charCodeAt(rb+c)?u(yc,c+1):u(Ic,c)):33==b&&60==a&&45==mb.charCodeAt(rb+2)&&45==mb.charCodeAt(rb+3)?(rb+=4,i(),j(),t()):(61===b&&(c=61===mb.charCodeAt(rb+2)?3:2),u(Hc,c))}function r(a){var b=mb.charCodeAt(rb+1);return 61===b?u(Gc,61===mb.charCodeAt(rb+2)?3:2):u(61===a?xc:Ac,1)}function s(a){switch(a){case 46:return k();case 40:return++rb,g(pc);case 41:return++rb,g(qc);case 59:return++rb,g(sc);case 44:return++rb,g(rc);case 91:return++rb,g(lc);case 93:return++rb,g(mc);case 123:return++rb,g(nc);case 125:return++rb,g(oc);case 58:return++rb,g(tc);case 63:return++rb,g(vc);case 48:var b=mb.charCodeAt(rb+1);if(120===b||88===b)return x();case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return y(!1);case 34:case 39:return z(a);case 47:return l(a);case 37:case 42:return m();case 124:case 38:return n(a);case 94:return o();case 43:case 45:return p(a);case 60:case 62:return q(a);case 61:case 33:return r(a);case 126:return u(Ac,1)}return!1}function t(a){if(a?rb=sb+1:sb=rb,lb.locations&&(ub=new e),a)return v();if(rb>=nb)return g(Mb);var b=mb.charCodeAt(rb);if(Zc(b)||92===b)return C();var d=s(b);if(d===!1){var f=String.fromCharCode(b);if("\\"===f||Vc.test(f))return C();c(rb,"Unexpected character '"+f+"'")}return d}function u(a,b){var c=mb.slice(rb,rb+b);rb+=b,g(a,c)}function v(){for(var a,b,d="",e=rb;;){rb>=nb&&c(e,"Unterminated regular expression");var f=mb.charAt(rb);if(Xc.test(f)&&c(e,"Unterminated regular expression"),a)a=!1;else{if("["===f)b=!0;else if("]"===f&&b)b=!1;else if("/"===f&&!b)break;a="\\"===f}++rb}var d=mb.slice(e,rb);++rb;var h=B();h&&!/^[gmsiy]*$/.test(h)&&c(e,"Invalid regexp flag");try{var i=new RegExp(d,h)}catch(j){j instanceof SyntaxError&&c(e,j.message),c(j)}return g(Jb,i)}function w(a,b){for(var c=rb,d=0,e=0,f=null==b?1/0:b;f>e;++e){var g,h=mb.charCodeAt(rb);if(g=h>=97?h-97+10:h>=65?h-65+10:h>=48&&57>=h?h-48:1/0,g>=a)break;++rb,d=d*a+g}return rb===c||null!=b&&rb-c!==b?null:d}function x(){rb+=2;var a=w(16);return null==a&&c(sb+2,"Expected hexadecimal number"),Zc(mb.charCodeAt(rb))&&c(rb,"Identifier directly after number"),g(Ib,a)}function y(a){var b=rb,d=!1,e=48===mb.charCodeAt(rb);a||null!==w(10)||c(b,"Invalid number"),46===mb.charCodeAt(rb)&&(++rb,w(10),d=!0);var f=mb.charCodeAt(rb);(69===f||101===f)&&(f=mb.charCodeAt(++rb),(43===f||45===f)&&++rb,null===w(10)&&c(b,"Invalid number"),d=!0),Zc(mb.charCodeAt(rb))&&c(rb,"Identifier directly after number");var h,i=mb.slice(b,rb);return d?h=parseFloat(i):e&&1!==i.length?/[89]/.test(i)||Gb?c(b,"Invalid number"):h=parseInt(i,8):h=parseInt(i,10),g(Ib,h)}function z(a){rb++;for(var b="";;){rb>=nb&&c(sb,"Unterminated string constant");var d=mb.charCodeAt(rb);if(d===a)return++rb,g(Kb,b);if(92===d){d=mb.charCodeAt(++rb);var e=/^[0-7]+/.exec(mb.slice(rb,rb+3));for(e&&(e=e[0]);e&&parseInt(e,8)>255;)e=e.slice(0,-1);if("0"===e&&(e=null),++rb,e)Gb&&c(rb-2,"Octal literal in strict mode"),b+=String.fromCharCode(parseInt(e,8)),rb+=e.length-1;else switch(d){case 110:b+="\n";break;case 114:b+="\r";break;case 120:b+=String.fromCharCode(A(2));break;case 117:b+=String.fromCharCode(A(4));break;case 85:b+=String.fromCharCode(A(8));break;case 116:b+=" ";break;case 98:b+="\b";break;case 118:b+=" ";break;case 102:b+="\f";break;case 48:b+="\x00";break;case 13:10===mb.charCodeAt(rb)&&++rb;case 10:lb.locations&&(Ab=rb,++zb);break;default:b+=String.fromCharCode(d)}}else(13===d||10===d||8232===d||8233===d)&&c(sb,"Unterminated string constant"),b+=String.fromCharCode(d),++rb}}function A(a){var b=w(16,a);return null===b&&c(sb,"Bad character escape sequence"),b}function B(){Mc=!1;for(var a,b=!0,d=rb;;){var e=mb.charCodeAt(rb);if($c(e))Mc&&(a+=mb.charAt(rb)),++rb;else{if(92!==e)break;Mc||(a=mb.slice(d,rb)),Mc=!0,117!=mb.charCodeAt(++rb)&&c(rb,"Expecting Unicode escape sequence \\uXXXX"),++rb;var f=A(4),g=String.fromCharCode(f);g||c(rb-1,"Invalid Unicode escape"),(b?Zc(f):$c(f))||c(rb-4,"Invalid Unicode escape"),a+=g}b=!1}return Mc?a:mb.slice(d,rb)}function C(){var a=B(),b=Lb;return Mc||(Rc(a)?b=kc[a]:(lb.forbidReserved&&(3===lb.ecmaVersion?Nc:Oc)(a)||Gb&&Pc(a))&&c(sb,"The keyword '"+a+"' is reserved")),g(b,a)}function D(){Bb=sb,Cb=tb,Db=vb,t()}function E(a){if(Gb=a,rb=sb,lb.locations)for(;Ab>rb;)Ab=mb.lastIndexOf("\n",Ab-2)+1,--zb;j(),t()}function F(){this.type=null,this.start=sb,this.end=null}function G(){this.start=ub,this.end=null,null!==ob&&(this.source=ob)}function H(){var a=new F;return lb.locations&&(a.loc=new G),lb.directSourceFile&&(a.sourceFile=lb.directSourceFile),lb.ranges&&(a.range=[sb,0]),a}function I(a){var b=new F;return b.start=a.start,lb.locations&&(b.loc=new G,b.loc.start=a.loc.start),lb.ranges&&(b.range=[a.range[0],0]),b}function J(a,b){return a.type=b,a.end=Cb,lb.locations&&(a.loc.end=Db),lb.ranges&&(a.range[1]=Cb),a}function K(a){return lb.ecmaVersion>=5&&"ExpressionStatement"===a.type&&"Literal"===a.expression.type&&"use strict"===a.expression.value}function L(a){return wb===a?(D(),!0):void 0}function M(){return!lb.strictSemicolons&&(wb===Mb||wb===oc||Xc.test(mb.slice(Cb,sb)))}function N(){L(sc)||M()||P()}function O(a){wb===a?D():P()}function P(){c(sb,"Unexpected token")}function Q(a){"Identifier"!==a.type&&"MemberExpression"!==a.type&&c(a.start,"Assigning to rvalue"),Gb&&"Identifier"===a.type&&Qc(a.name)&&c(a.start,"Assigning to "+a.name+" in strict mode")}function R(a){Bb=Cb=rb,lb.locations&&(Db=new e),Eb=Gb=null,Fb=[],t();var b=a||H(),c=!0;for(a||(b.body=[]);wb!==Mb;){var d=S();b.body.push(d),c&&K(d)&&E(!0),c=!1}return J(b,"Program")}function S(){(wb===wc||wb===yc&&"/="==xb)&&t(!0);var a=wb,b=H();switch(a){case Nb:case Qb:D();var d=a===Nb;L(sc)||M()?b.label=null:wb!==Lb?P():(b.label=kb(),N());for(var e=0;eb){var e=I(a);e.left=a,e.operator=xb;var f=wb;D(),e.right=ab(bb(),d,c);var g=J(e,f===Bc||f===Cc?"LogicalExpression":"BinaryExpression");return ab(g,b,c)}return a}function bb(){if(wb.prefix){var a=H(),b=wb.isUpdate;return a.operator=xb,a.prefix=!0,yb=!0,D(),a.argument=bb(),b?Q(a.argument):Gb&&"delete"===a.operator&&"Identifier"===a.argument.type&&c(a.start,"Deleting local variable in strict mode"),J(a,b?"UpdateExpression":"UnaryExpression")}for(var d=cb();wb.postfix&&!M();){var a=I(d);a.operator=xb,a.prefix=!1,a.argument=d,Q(d),D(),d=J(a,"UpdateExpression")}return d}function cb(){return db(eb())}function db(a,b){if(L(uc)){var c=I(a);return c.object=a,c.property=kb(!0),c.computed=!1,db(J(c,"MemberExpression"),b)}if(L(lc)){var c=I(a);return c.object=a,c.property=Y(),c.computed=!0,O(mc),db(J(c,"MemberExpression"),b)}if(!b&&L(pc)){var c=I(a);return c.callee=a,c.arguments=jb(qc,!1),db(J(c,"CallExpression"),b)}return a}function eb(){switch(wb){case fc:var a=H();return D(),J(a,"ThisExpression");case Lb:return kb();case Ib:case Kb:case Jb:var a=H();return a.value=xb,a.raw=mb.slice(sb,tb),D(),J(a,"Literal");case gc:case hc:case ic:var a=H(); +return a.value=wb.atomValue,a.raw=wb.keyword,D(),J(a,"Literal");case pc:var b=ub,c=sb;D();var d=Y();return d.start=c,d.end=tb,lb.locations&&(d.loc.start=b,d.loc.end=vb),lb.ranges&&(d.range=[c,tb]),O(qc),d;case lc:var a=H();return D(),a.elements=jb(mc,!0,!0),J(a,"ArrayExpression");case nc:return gb();case Xb:var a=H();return D(),ib(a,!1);case ec:return fb();default:P()}}function fb(){var a=H();return D(),a.callee=db(eb(),!0),a.arguments=L(pc)?jb(qc,!1):Hb,J(a,"NewExpression")}function gb(){var a=H(),b=!0,d=!1;for(a.properties=[],D();!L(oc);){if(b)b=!1;else if(O(rc),lb.allowTrailingCommas&&L(oc))break;var e,f={key:hb()},g=!1;if(L(tc)?(f.value=Y(!0),e=f.kind="init"):lb.ecmaVersion>=5&&"Identifier"===f.key.type&&("get"===f.key.name||"set"===f.key.name)?(g=d=!0,e=f.kind=f.key.name,f.key=hb(),wb!==pc&&P(),f.value=ib(H(),!1)):P(),"Identifier"===f.key.type&&(Gb||d))for(var h=0;hg?a.id:a.params[g];if((Pc(h.name)||Qc(h.name))&&c(h.start,"Defining '"+h.name+"' in strict mode"),g>=0)for(var i=0;g>i;++i)h.name===a.params[i].name&&c(h.start,"Argument name clash in strict mode")}return J(a,b?"FunctionDeclaration":"FunctionExpression")}function jb(a,b,c){for(var d=[],e=!0;!L(a);){if(e)e=!1;else if(O(rc),b&&lb.allowTrailingCommas&&L(a))break;d.push(c&&wb===rc?null:Y(!0))}return d}function kb(a){var b=H();return b.name=wb===Lb?xb:a&&!lb.forbidReserved&&wb.keyword||P(),yb=!1,D(),J(b,"Identifier")}a.version="0.4.1";var lb,mb,nb,ob;a.parse=function(a,c){return mb=String(a),nb=mb.length,b(c),f(),R(lb.program)};var pb=a.defaultOptions={ecmaVersion:5,strictSemicolons:!1,allowTrailingCommas:!0,forbidReserved:!1,locations:!1,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null},qb=a.getLineInfo=function(a,b){for(var c=1,d=0;;){Yc.lastIndex=d;var e=Yc.exec(a);if(!(e&&e.indexa?36===a:91>a?!0:97>a?95===a:123>a?!0:a>=170&&Vc.test(String.fromCharCode(a))},$c=a.isIdentifierChar=function(a){return 48>a?36===a:58>a?!0:65>a?!1:91>a?!0:97>a?95===a:123>a?!0:a>=170&&Wc.test(String.fromCharCode(a))},_c={kind:"loop"},ad={kind:"switch"}}),function(a,b,c,d){function e(d){if(!c[d]){if(!b[d]){if(a)return a(d);throw new Error("Cannot find module '"+d+"'")}var f=c[d]={exports:{}};b[d][0](function(a){var c=b[d][1][a];return e(c?c:a)},f,f.exports)}return c[d].exports}for(var f=0;f1){var g={};g[arguments[0]]=arguments[1]}else var g=arguments[0];for(var h in g){c=h.split(" ");var f=g[h];"function"==typeof f&&(f=[f]);for(var b=0;d=c[b];b++){if(d in e.listeners)a=e.listeners;else{if(!(d in e.globListeners))continue;a=e.globListeners}a[d]=a[d].filter(function(a){return-1===f.indexOf(a)})}}return e},i.proto.send=function(a){i.total[a]||(i.total[a]=0),i.total[a]+=1;var b,c,f,g=this.listeners,j=this.globListeners,k=d(a);if(arguments.length){var l=Array.prototype.splice.call(arguments,1);l.push(a)}else var l=[];for(var m=0;c=k[m];m++){var n={},o={};if(b=g[c])for(var p=0;f=b[p];p++)n[f.uid]=f,o[f.uid]=c;var q=c.split(":");for(var r in j){if("*"!==r){var s=h[r]||(h[r]=r.split(":"));if(!e(s,q))continue}b=j[r];for(var p=0;f=b[p];p++)n[f.uid]=f,o[f.uid]=c}var t=[];for(var f in n)t.push(n[f]);for(var f,p=0;f=t[p];p++)f.apply(f,l)}return this},b.exports=i},{"./object/setproto":7,"./string/tokenize":8,"./string/globber":9,"./uid":10,"./nexttick":11}],7:[function(a,b){var c=function(a,b){if(a.__proto__)a.__proto__=b;else for(var c in b)a[c]=b[c]};b.exports=c},{}],8:[function(a,b){var c=function(a,b){return a.trim().split(b||c.default)};c.default=/\s+/g,b.exports=c},{}],9:[function(a,b){var c=function(a,b){var d,e=a[0],f=a.slice(1),g=b.length;if("*"===e){for(var h=0;g>=h;++h)if(c(f,b.slice(h)))return!0;return!1}return d=e===b[0],d&&(!f.length&&!g||c(f,b.slice(1)))};b.exports=c},{}],10:[function(a,b){var c=function(){return c.counter++ +""};c.counter=1,b.exports=c},{}],11:[function(a,b){if(window.ActiveXObject||!window.postMessage)var c=function(a){setTimeout(a,0)};else{var d=[],e="next-tick-zero-timeout";window.addEventListener("message",function(a){a.source==window&&a.data==e&&(a.stopPropagation&&a.stopPropagation(),d.length&&d.shift()())},!0);var c=function(a){d.push(a),window.postMessage(e,"*")}}b.exports=c},{}],4:[function(a,b){var c=(a("./benchmark"),a("./object/setproto")),d=a("./object/extend"),e=a("./tube"),f=function(a,b){var d=e();return c(d,f.proto),b&&b.benchmark&&(d.benchmark=b.benchmark),d.src=a,d};f.proto={},d(f.proto,e.proto),f.proto.load=function(){var a=this,b=a.src;"string"==typeof b?a.loadFromUrl(b):b instanceof File?a.loadFromFile(b):b instanceof ArrayBuffer&&a("load",b)},f.proto.loadFromFile=function(a){var b=this,c=new FileReader;c.addEventListener("load",function(a){b.benchmark&&b.benchmark.stop("fetch-from-disk"),b("load",c.result,a)}),c.addEventListener("error",function(a){b("error",a,c)}),c.addEventListener("progress",function(a){b("progress",a)}),b.benchmark&&b.benchmark.start("fetch-from-disk"),c.readAsArrayBuffer(a)},f.proto.loadFromUrl=function(a){var b=this,c=new XMLHttpRequest;c.open("GET",a),c.responseType="arraybuffer",c.addEventListener("load",function(a){b.benchmark&&b.benchmark.stop("fetch-from-network"),b("load",c.response,a)}),c.addEventListener("error",function(a){b("error",a,c)}),c.addEventListener("progress",function(a){b("progress",a)}),b.benchmark&&b.benchmark.start("fetch-from-network"),c.send()},b.exports=f},{"./benchmark":2,"./object/setproto":7,"./object/extend":12,"./tube":3}],12:[function(a,b){b.exports=function(a,b){for(var c in b)a[c]=b[c];return a}},{}],5:[function(a,b){!function(){var c=a("./spec").blockSigs,d=a("./spec").extSigs,e=a("./palette"),f=a("./animate").makeCurrentFrame,g=a("../../binaryspec"),h=a("./spec").spec,i=g(h),j=function(a){k(a)},k=function(a,b){b=b||"header";for(var c=a.buf;"done"!==b&&"error"!==b;)if(b in l&&"function"==typeof l[b])b=l[b](a);else{var d=i.parts[b].byteSize;if(c.abuf.byteLengthe){i=!0;break}if(h=d[g],g+=1,0===h){j+=1;break}if(g+h>e){i=!0;break}b.push(g+h),g+=h,j+=h+1}return i?(console.log("out of data"),!1):(c.cursor+=j,a.benchmark&&a.benchmark.stop("read-subblocks"),{start:f,blockEnds:b})};b.exports=j}()},{"./spec":13,"./palette":14,"./animate":15,"../../binaryspec":16}],13:[function(a,b,c){var d={33:"extension",44:"imageDesc",59:"trailer"};c.blockSigs=d;var e={249:"graphicControl",254:"comment",1:"plainText",255:"applicationExtension"};c.extSigs=e;var f={header:["str[3] signature","str[3] version"],screenDesc:["u16 w","u16 h","bit paletteExists","bit[3] resolution ignore","bit sortFlag ignore","bit[3] paletteSize","u8 bgColorIndex","u8 aspectRatio ignore"],imageDesc:["u8 sig ignore","u16 x","u16 y","u16 w","u16 h","bit paletteExists","bit interlaced","bit sortFlag","bit[2] reserved ignore","bit[3] paletteSize"],applicationExtension:["u8 sig ignore","u8 extSig ignore","u8 blockSize ignore","str[8] identifier","str[3] authCode ignore"],graphicControl:["u8 sig ignore","u8 extSig ignore","u8 blockSize ignore","bit[3] reserved ignore","bit[3] disposalMethod","bit userInput ignore","bit transparentColor","u16 delay","u8 transparentIndex","u8 blockTerminator ignore"],comment:["u8 sig ignore","u8 extSig ignore"],plainText:["u8 sig ignore","u8 extSig ignore","u8 blockSize","u16 textGridLeft","u16 textGridTop","u16 textGridWidth","u16 textGridHeight","u8 charCellWidth","u8 charCellHeight","u8 fgColorIndex","u8 bgColorIndex"],imageData:["u8 lzwCodeSize"]};c.spec=f},{}],14:[function(a,b){!function(){var c=a("../../color/rgba2css"),d=(a("../../create/2d"),a("../../create/imagedata")),e={};e.binary2rgba=function(a){for(var b=new Uint8Array(a.byteLength/3*4),c=0,d=0,e=a.byteLength/3*4;e>d;d+=4)b[d]=a[c],b[d+1]=a[c+1],b[d+2]=a[c+2],b[d+3]=255,c+=3;return b},e.create=function(a){var b={0:0},e=["rgba(0,0,0,0)"],f=[[0,0,0,0]],g=function(a){for(var d=0,g=a.length;g>d;d+=4){var h=a[d+3];if(0!==h){var i=a[d],j=a[d+1],k=a[d+2],l=(i|j<<8|k<<16|h<<24).toString();if(!(l in b)){b[l]=f.length;var m=[i,j,k,h];f.push(m),e.push(c(m))}}}};"palette"in a&&g(a.palette);for(var h=0;hk;k+=4){var n=f[k/4];m[k]=n[0],m[k+1]=n[1],m[k+2]=n[2],m[k+3]=n[3]}return{rgba2Index:b,index2Rgba:f,index2Css:e,imagedata:j,length:f.length}},b.exports=e}()},{"../../color/rgba2css":17,"../../create/2d":18,"../../create/imagedata":19}],17:[function(a,b){var c=function(a){return"rgba("+a[0]+","+a[1]+","+a[2]+","+a[3]+")"};b.exports=c},{}],18:[function(a,b){var c=function(a,b){var c=document.createElement("canvas");return c.width=a||0,c.height=b||0,c.getContext("2d")};"undefined"!=typeof b&&(b.exports=c)},{}],19:[function(a,b){var c=function d(a,b){return d.ctx.createImageData(a,b)};c.ctx=document.createElement("canvas").getContext("2d"),"undefined"!=typeof b&&(b.exports=c)},{}],15:[function(a,b,c){var d=function(){var a=100;1===this.frames.length&&(this.currentFrame=function(){return 0});for(var b=0,c=[],d=0;d0?10*f.delay:a;b+=g,c.push(b)}this.currentFrame=e(c)},e=function(a){var b=a[a.length-1];return function(c){for(var d=(c||Date.now())%b,e=0;e1,m=b[j]*k;d.fields.push({name:g[1],type:j,ignore:h,bitSize:m,isArray:l}),e+=m}return d.bitSize=e,d.byteSize=e/8,d};e.proto.decodeBinaryFieldsToJSON=function(a,b,c){for(var e=this,f=e.parts[a],h={},i=f.fields.length,j=0,k=0;i>k;k++){var l=f.fields[k];if(!l.ignore){{var m=j%8,n=Math.floor((j-m)/8);n+Math.ceil(l.bitSize/8)}switch(l.type){case"u8":h[l.name]=c.u8[b+n];break;case"i8":h[l.name]=c.dv.getInt8(b+n);break;case"u16":h[l.name]=c.dv.getUint16(b+n,!0);break;case"i16":h[l.name]=c.dv.getInt16(b+n,!0);break;case"u32":h[l.name]=c.dv.getUint32(b+n,!0);break;case"i32":h[l.name]=c.dv.getInt32(b+n,!0);break;case"str":h[l.name]=g(c.abuf,b+n,l.bitSize>>3);break;case"bit":if(l.isArray){for(var o=new d(c.abuf,b+n),p=[],q=m;q>3],c=7&a;return b>>7-c&1},b.exports=c},{}],6:[function(a,b){var c=a("../../create/2d"),d=a("../../create/imagedata"),e=a("../../nexttick"),f=a("./decode-lzw"),g=function(a,b){b=b||{};var d=a.benchmark||!1,i=b.frameNum||0;if(0===i)for(var j=0;j=a.frames.length)return a.rendered=!0,void a.tube("rendered");var k=a.frames[i],l=a.buf.pixeldata;d&&d.start("decompress-lzw"),f(k.blockinfo,a.buf.u8,k.lzwCodeSize,k.w,k.h,l),d&&d.stop("decompress-lzw"),k.interlaced&&(d&&d.start("deinterlace"),l=m(l,k.w,k.h),d&&d.stop("deinterlace")),d&&d.start("pixeldata-to-canvas"),h(l,a,i),d&&d.stop("pixeldata-to-canvas");var n=g.bind(void 0,a,{frameNum:i+1});e(n)},h=function(a,b,c){var d=b.frames[c],e=d.ctx;if(0===c)return void e.putImageData(k(a,b,d),d.x,d.y,0,0,d.w,d.h);var f,g=c-1,h=b.frames[g],l=h.ctx.canvas;if((0===h.disposalMethod||1===h.disposalMethod)&&(f=i(b,c,a),e.drawImage(l,0,0),e.drawImage(f.canvas,0,0,d.w,d.h,d.x,d.y,d.w,d.h)),2===h.disposalMethod&&(0===h.x&&0===h.y&&h.w===b.w&&h.h===b.h?e.putImageData(j(b,c,a),d.x,d.y,0,0,d.w,d.h):(h.y>0&&e.drawImage(l,0,0,b.w,h.y,0,0,b.w,h.y),h.x>0&&e.drawImage(l,0,h.y,h.x,h.h,0,h.y,h.x,h.h),h.x+h.w0&&3===b.frames[g].disposalMethod;)g-=1;h=b.frames[g],3!=h.disposalMethod&&e.drawImage(h.ctx.canvas,0,0),f=i(b,c,a),e.drawImage(f.canvas,0,0,d.w,d.h,d.x,d.y,d.w,d.h)}},i=function(a,b,d){if(i.ctx&&i.ctx.canvas.width===a.w&&i.ctx.canvas.height===a.h)var e=i.ctx;else var e=i.ctx=c(a.w,a.h);var f=a.frames[b];d=d||f.pixelData;var g="palette"in f?f.palette:a.palette,h="transparentIndex"in f?f.transparentIndex:-1;h>-1&&(g[4*h+3]=0);var j=l(a,g,d,f.w,f.h,h);return e.putImageData(j,0,0,0,0,f.w,f.h),e},j=function(a,b,c){var d=a.frames[b];c=c||d.pixelData;var e="palette"in d?d.palette:a.palette,f="transparentIndex"in d?d.transparentIndex:-1;return f>-1&&(e[4*f+3]=0),l(a,e,c,d.w,d.h,f)},k=function(a,b,c){var d="palette"in c?c.palette:b.palette,e="transparentIndex"in c?c.transparentIndex:-1;return e>-1&&(d[4*e+3]=0),l(b,d,a,c.w,c.h,e)},l=function(a,b,c,e,f){if(l.imagedata&&l.imagedata.width===a.w&&l.imagedata.height===a.h)var g=l.imagedata;else var g=l.imagedata=d(a.w,a.h);for(var h=g.data,i=0,j=0;f>j;j++)for(var k=j*a.w,m=0;e>m;m++){var n=4*(m+k),o=4*c[i];h[n]=b[o],h[n+1]=b[o+1],h[n+2]=b[o+2],h[n+3]=b[o+3],i+=1}return g},m=function(a,b,c){for(var d=new Uint8Array(a.length),e=Math.ceil(c/8),f=Math.ceil(c/4),g=Math.ceil(c/2),h=0;c>h;h++){var i,j=b*h;i=h%8===0?b*(h/8):(h+4)%8===0?b*((h-4)/8+e):h%2===0?b*((h-2)/4+f):b*((h-1)/2+g);for(var k=0;b>k;k++)d[j+k]=a[i+k]}return d};b.exports=g},{"../../create/2d":18,"../../create/imagedata":19,"../../nexttick":11,"./decode-lzw":21}],21:[function(a,b){var c=function(a,b,c,d,e,f,g){var h,i,j,k=4096,l=-1,m=d*e,n=0,o=0,p=0,f=f||new Uint8Array(m),q=new Uint16Array(2*k),r=new Uint8Array(k),s=new Uint8Array(k+1),t=1<h;h++)q[h]=0,r[h]=h;for(var y=0,z=0,A=a.start,B=a.blockEnds,C=B.shift(),D=0;m>D;){if(0===o){if(w>y){z+=b[A]<>=w,y-=w,h>v&&console.log(":("),h===u){console.log("fuck");break}if(h===t){w=c+1,x=(1<t;)s[o++]=r[h],h=q[h];n=r[h],s[o++]=n,q[v]=j,r[v]=n,v++,0===(v&x)&&k>v&&(w++,x+=v),j=i}o--,f[p++]=g?g[s[o]]:s[o],D++}return f};b.exports=c},{}]},{},[1]);var nextTick=function(){if(window.ActiveXObject||!window.postMessage)var a=function(a){setTimeout(a,0)};else{var b=[],c="next-tick-zero-timeout";window.addEventListener("message",function(a){a.source==window&&a.data==c&&(a.stopPropagation&&a.stopPropagation(),b.length&&b.shift()())},!0);var a=function(a){b.push(a),window.postMessage(c,"*")}}return a}(),Uid=function(){var a=0;return function(){return a++ +""}}(),tokenize=function(){var a=function(b,c){return b.trim().split(c||a.default)};return a.default=/\s+/g,a}(),globber=function(a,b){var c,d=a[0],e=a.slice(1),f=b.length;if("*"===d){for(var g=0;f>=g;++g)if(globber(e,b.slice(g)))return!0;return!1}return c=d===b[0],c&&(!e.length&&!f||globber(e,b.slice(1)))},setproto=function(a,b){if(a.__proto__)a.__proto__=b;else for(var c in b)a[c]=b[c]},Tube=function(){var a={},b=function(a){if(a=a||{},a.queue)var c=function(){var a=arguments;return nextTick(function(){c.send.apply(c,a)}),c};else var c=function(){return c.send.apply(c,arguments),c};return setproto(c,b.proto),c.listeners={},c.globListeners={},c};return b.total={},b.proto={},b.proto.on=function(){var a=this;if("string"==typeof arguments[0]){var b={};b[arguments[0]]=arguments[1],arguments[2]||{}}else{var b=arguments[0];arguments[1]||{}}for(var c in b){var d=c.split(" "),e=b[c];Array.isArray(e)||(e=[e]);for(var f,g=0;f=e[g];g++)f.uid||(f.uid=Uid());for(var h,g=0;h=d[g];g++){var i=-1===h.indexOf("*")?a.listeners:a.globListeners;i[h]=h in i?i[h].concat(e):e.concat()}}return a},b.proto.off=function(){var a,b,c,d,e=this;if(0===arguments.length)return e.listeners={},e.globListeners={},e;if(1===arguments.length&&"string"==typeof arguments[0]){for(c=arguments[0].split(" "),b=0;d=c[b];b++)delete e.listeners[d],delete e.globListeners[d];return e}if("function"==typeof arguments[0]||Array.isArray(arguments[0])){var f="function"==typeof arguments[0]?[arguments[0]]:arguments[0];return e}if(arguments.length>1){var g={};g[arguments[0]]=arguments[1]}else var g=arguments[0];for(var h in g){c=h.split(" ");var f=g[h];"function"==typeof f&&(f=[f]);for(var b=0;d=c[b];b++){if(d in e.listeners)a=e.listeners;else{if(!(d in e.globListeners))continue;a=e.globListeners}a[d]=a[d].filter(function(a){return-1===f.indexOf(a)})}}return e},b.proto.send=function(c){b.total[c]||(b.total[c]=0),b.total[c]+=1;var d,e,f,g=this.listeners,h=this.globListeners,i=tokenize(c);if(arguments.length){var j=Array.prototype.splice.call(arguments,1);j.push(c)}else var j=[];for(var k=0;e=i[k];k++){var l={},m={};if(d=g[e])for(var n=0;f=d[n];n++)l[f.uid]=f,m[f.uid]=e;var o=e.split(":");for(var p in h){if("*"!==p){var q=a[p]||(a[p]=p.split(":"));if(!globber(q,o))continue}d=h[p];for(var n=0;f=d[n];n++)l[f.uid]=f,m[f.uid]=e}var r=[];for(var f in l)r.push(l[f]);for(var f,n=0;f=r[n];n++)f.apply(f,j)}return this},b}(),FRAMES_PER_GIF=36,FPS=12,DELAY=Math.floor(1e3/FPS),WORKERS=6,FRAMES_TO_QUANTIZE=4,DO_UPLOAD=!0;!function(a,b){function c(a){var b=a.length,c=fb.type(a);return fb.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||"function"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){var b=ob[a]={};return fb.each(a.match(hb)||[],function(a,c){b[c]=!0}),b}function e(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=fb.expando+Math.random()}function f(a,c,d){var e;if(d===b&&1===a.nodeType)if(e="data-"+c.replace(sb,"-$1").toLowerCase(),d=a.getAttribute(e),"string"==typeof d){try{d="true"===d?!0:"false"===d?!1:"null"===d?null:+d+""===d?+d:rb.test(d)?JSON.parse(d):d}catch(f){}pb.set(a,c,d)}else d=b;return d}function g(){return!0}function h(){return!1}function i(){try{return T.activeElement}catch(a){}}function j(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function k(a,b,c){if(fb.isFunction(b))return fb.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return fb.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(Cb.test(b))return fb.filter(b,a,c);b=fb.filter(b,a)}return fb.grep(a,function(a){return bb.call(b,a)>=0!==c})}function l(a,b){return fb.nodeName(a,"table")&&fb.nodeName(1===b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function m(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function n(a){var b=Nb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function o(a,b){for(var c=a.length,d=0;c>d;d++)qb.set(a[d],"globalEval",!b||qb.get(b[d],"globalEval"))}function p(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(qb.hasData(a)&&(f=qb.access(a),g=qb.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)fb.event.add(b,e,j[e][c])}pb.hasData(a)&&(h=pb.access(a),i=fb.extend({},h),pb.set(b,i))}}function q(a,c){var d=a.getElementsByTagName?a.getElementsByTagName(c||"*"):a.querySelectorAll?a.querySelectorAll(c||"*"):[];return c===b||c&&fb.nodeName(a,c)?fb.merge([a],d):d}function r(a,b){var c=b.nodeName.toLowerCase();"input"===c&&Kb.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function s(a,b){if(b in a)return b;for(var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=_b.length;e--;)if(b=_b[e]+c,b in a)return b;return d}function t(a,b){return a=b||a,"none"===fb.css(a,"display")||!fb.contains(a.ownerDocument,a)}function u(b){return a.getComputedStyle(b,null)}function v(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=qb.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&t(d)&&(f[g]=qb.access(d,"olddisplay",z(d.nodeName)))):f[g]||(e=t(d),(c&&"none"!==c||!e)&&qb.set(d,"olddisplay",e?c:fb.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function w(a,b,c){var d=Ub.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function x(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=fb.css(a,c+$b[f],!0,e)),d?("content"===c&&(g-=fb.css(a,"padding"+$b[f],!0,e)),"margin"!==c&&(g-=fb.css(a,"border"+$b[f]+"Width",!0,e))):(g+=fb.css(a,"padding"+$b[f],!0,e),"padding"!==c&&(g+=fb.css(a,"border"+$b[f]+"Width",!0,e))); return g}function y(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=u(a),g=fb.support.boxSizing&&"border-box"===fb.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Qb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Vb.test(e))return e;d=g&&(fb.support.boxSizingReliable||e===a.style[b]),e=parseFloat(e)||0}return e+x(a,b,c||(g?"border":"content"),d,f)+"px"}function z(a){var b=T,c=Xb[a];return c||(c=A(a,b),"none"!==c&&c||(Rb=(Rb||fb("