!function(){"use strict";varn,e,t,o,r,i,u,a,c,s=function(n){returnfunction(){returnn}},f=s(!1),l=s(!0),O={noop:function(){for(varn=[],e=0;e<arguments.length;e++)n[e]=arguments[e]},noarg:function(t){returnfunction(){for(varn=[],e=0;e<arguments.length;e++)n[e]=arguments[e];returnt()}},compose:function(t,o){returnfunction(){for(varn=[],e=0;e<arguments.length;e++)n[e]=arguments[e];returnt(o.apply(null,arguments))}},constant:s,identity:function(n){returnn},tripleEquals:function(n,e){returnn===e},curry:function(i){for(varn=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];for(varu=newArray(arguments.length-1),t=1;t<arguments.length;t++)u[t-1]=arguments[t];returnfunction(){for(varn=[],e=0;e<arguments.length;e++)n[e]=arguments[e];for(vart=newArray(arguments.length),o=0;o<t.length;o++)t[o]=arguments[o];varr=u.concat(t);returni.apply(null,r)}},not:function(t){returnfunction(){for(varn=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(null,arguments)}},die:function(n){returnfunction(){thrownewError(n)}},apply:function(n){returnn()},call:function(n){n()},never:f,always:l},d=function(e){returnfunction(n){returnfunction(n){if(null===n)return"null";vare=typeofn;return"object"===e&&Array.prototype.isPrototypeOf(n)?"array":"object"===e&&String.prototype.isPrototypeOf(n)?"string":e}(n)===e}},E={isString:d("string"),isObject:d("object"),isArray:d("array"),isNull:d("null"),isBoolean:d("boolean"),isUndefined:d("undefined"),isFunction:d("function"),isNumber:d("number")},m=function(u){returnfunction(){for(varn=newArray(arguments.length),e=0;e<n.length;e++)n[e]=arguments[e];if(0===n.length)thrownewError("Can't merge zero objects");for(vart={},o=0;o<n.length;o++){varr=n[o];for(variinr)r.hasOwnProperty(i)&&(t[i]=u(t[i],r[i]))}returnt}},g=m(function(n,e){returnE.isObject(n)&&E.isObject(e)?g(n,e):e}),p=m(function(n,e){returne}),D={deepMerge:g,merge:p},h=O.never,v=O.always,y=function(){returnb},b=(o={fold:function(n,e){returnn()},is:h,isSome:h,isNone:v,getOr:t=function(n){returnn},getOrThunk:e=function(n){returnn()},getOrDie:function(n){thrownewError(n||"error: getOrDie called on none.")},or:t,orThunk:e,map:y,ap:y,each:function(){},bind:y,flatten:y,exists:h,forall:v,filter:y,equals:n=function(n){returnn.isNone()},equals_:n,toArray:function(){return[]},toString:O.constant("none()")},Object.freeze&&Object.freeze(o),o),w=function(t){varn=function(){returnt},e=function(){returnr},o=function(n){returnn(t)},r={fold:function(n,e){returne(t)},is:function(n){returnt===n},isSome:v,isNone:h,getOr:n,getOrThunk:n,getOrDie:n,or:e,orThunk:e,map:function(n){returnw(n(t))},ap:function(n){returnn.fold(y,function(n){returnw(n(t))})},each:function(n){n(t)},bind:o,flatten:n,exists:o,forall:o,filter:function(n){returnn(t)?r:b},equals:function(n){returnn.is(t)},equals_:function(n,e){returnn.fold(h,function(n){returne(t,n)})},toArray:function(){return[t]},toString:function(){return"some("+t+")"}};returnr},x={some:w,none:y,from:function(n){returnnull===n||n===undefined?b:w(n)}},T=(r=Object.keys)===undefined?function(n){vare=[];for(vartinn)n.hasOwnProperty(t)&&e.push(t);returne}:r,S=function(n,e){for(vart=T(n),o=0,r=t.length;o<r;o++){vari=t[o];e(n[i],i,n)}},k=function(o,r){vari={};returnS(o,function(n,e){vart=r(n,e,o);i[t.k]=t.v}),i},C=function(n,t){varo=[];returnS(n,function(n,e){o.push(t(n,e))}),o},A=function(n){returnC(n,function(n){returnn})},M={bifilter:function(n,t){varo={},r={};returnS(n,function(n,e){(t(n,e)?o:r)[e]=n}),{t:o,f:r}},each:S,map:function(n,o){returnk(n,function(n,e,t){return{k:e,v:o(n,e,t)}})},mapToArray:C,tupleMap:k,find:function(n,e){for(vart=T(n),o=0,r=t.length;o<r;o++){vari=t[o],u=n[i];if(e(u,i,n))returnx.some(u)}returnx.none()},keys:T,values:A,size:function(n){returnA(n).length}},B=(O.constant("contextmenu"),O.constant("touchstart")),R=O.constant("touchmove"),I=O.constant("touchend"),F=(O.constant("gesturestart"),O.constant("mousedown")),N=O.constant("mousemove"),V=(O.constant("mouseout"),O.constant("mouseup")),H=O.constant("mouseover"),j=(O.constan