//mini2 by dandavis [CCBY2] F=function Fn(){return{I:function(e){return Math.floor(e)},method:function(e,t,n){return e[this[0]].apply(e,this.slice(1))},generic:function(e,n,r){return t=this,e=t[0](e),e[t[1]].apply(e,t.slice(2))},If:function(e){return Function("a,b","return "+e+"?a:undefined")},K:function(e){return e},argument:function(){return arguments[this]},as:function(e){return function(e,t,n){return fn.call(this.call?this.call(n,e):this,e,t,n)}},avg:function(e,b,c){return this[0]+=e/c.length},b:function(e,t){return t},byConstructors:function(e){return e.constructor==this},byTypes:function(e){return typeof e==this?1:0},c:function(e,t,n){return n},capture:function(e){return[].slice.call(arguments)},contains:function(e){return e.indexOf(this)>-1},count:function(e){return this[e]=this[e]?this[e]+1:1},defined:function(e){return!{"null":1,"undefined":1}[typeof e]},different:function(e){return e!=this},equal:function(e){return e===this},even:function(e){return e%2===0},extract:function(e){return e[this]},extractList:function(e){return this.map(function(t){return e[t]})},extractMany:function(e){return obMap(this).map(function(t){return(t[1]&&t[1].call&&t[1]||String)(e[t[0]])})},f:function(e){return Function("a","b","c",";return "+e)},fill:function(e){return this.call?this.apply(c,arguments):this},getSlot:function(e,t){return t},gt:function(e){return e>this},gte:function(e){return e>=this},guard:function(e,t){return function(n){return e.call(this,[].slice.call(arguments,0,t||99))}},has:function(e){return e[this]!==undefined},invoke:function(e){return e[this]()},isOwn:function(e,k){return hasOwnProperty.call(e,k)},isInt:function(e){return Math.floor(e,10)===e},isNeg:function(e){return e<0},isPos:function(e){return e>=0},isElement:function(e){return e instanceof Element},isArray:function(e){return Array.isArray(e)},isBoolean:function(e){return typeof e=="boolean"},isObject:function(e){return Object(e)===e},isRegExp:function(e){return e&&e.constructor===RegExp},isNull:function(e){return e===null},isUndefined:function(e){var u;return e===u},isDefined:function(e){return e!=null},isNumber:function(e){return+e||e===0},isEmpty:function(e){if(!e)return!0;for(var i in e)if(F.isOwn(e,i))return!1;return!0},isDate:function(e){return e&&e.constructor===Date},k:function(e){return e},keys:function(e){return Object.keys(e)},lt:function(e){return e"+e+""},this2a:function(e){return this.apply(e)},times:function(e){return e*this},typeOf:function(e){return typeof e},unequal:function(e){return e!==this},unique:function(e,t,n){return n.lastIndexOf(e)==t},zip:function(e,t){return[e,this[t]]}}}(),F.pluck=F.extract,F.S=String,F.N=Number,F.B=Boolean,F.R=RegExp,F.O=Object,F.bind=Function.prototype.call.bind(Function.prototype),F.slice=Function.prototype.call.bind(Array.prototype.slice); JSON.view=function(a){return JSON.stringify(a,null,"\t")};document.head=document.head||Q("head")[0];obKeys=Object.keys;obValsl=eval.call.bind([].slice); el=document.getElementById.bind(document);function els(a){return el(a).style}function obVals(a){var c=[],b,e=eval.call.bind(hasOwnProperty,a);for(b in a)e(b)&&(c[c.length]=a[b]);return c}function obMap(a,c){var b=[],e,d,f=eval.call.bind(hasOwnProperty,a);for(d in a)if(c||f(d))e=b[b.length]=[],e.k=e.key=e[0]=d,e.v=e.value=e[1]=a[d];return b}function aCSS(a){document.head.appendChild(document.createElement("style")).innerHTML=a} function jsGet(a){var c=document,c=c.head.appendChild(c.createElement("script"));c.src=a;return c}function F$(a){return Function("a,b,c",a)}function ping(a){(new Image).src=a}function defer(a,c){return setTimeout(a,c||50)}function IO(a,c){var b=new XMLHttpRequest;b.open(c?"POST":"GET",a,!1);b.send(c);return b.responseText}function dataURL(a,c){return"data:"+(c||"text/html")+("undefined"!==typeof btoa?";base64,":",")+(this.btoa||this.encodeURIComponent)(a)} (function(){var a=Array.prototype;a.random=function(){return this[Math.floor(Math.random()*(this.length-1+1))]};a._=function(b,e){var a=typeof b;return"string"===a?"."===b[0]?this.map(Function("a","return a"+b),e).filter(Boolean):this.map(F.extract,b).filter(Boolean):"function"===a?this.map(b,e):b.toFixed&&"number"===a?this.map(F.extract,b).filter(Boolean):!1};a.unique=function(){for(var b=[],e=this.length,a=0;ab&&-1||0}})(); var dom=function(){function a(b){return c[b]}var c={"&":"&","'":""","<":"<",">":">"};return{div:function(b,a){var d=document.createElement(b||"div");d.add=function(b,a,e){d.appendChild(b.charAt?dom.create(b,a,e):b);return d};if(a){if(a.nodeName)return d.appendChild(a),d;a.split&&(d[{br:"title",textarea:"value",input:"value",option:"text",style:"text",script:"text",img:"src"}[b]||"innerHTML"]=a)}return d},attribs:function(b,a){b.charAt&&(b=document.createElement(b));var d={htmlFor:"for", className:"class"},c;for(c in a)if(a.hasOwnProperty(c)){var g=d[c]||c;"style"==c&&(b.style.cssText=a[c]);try{b[c]=a[c]}catch(h){b.setAttribute(g,a[c])}}return b},create:function(b,a,d){b=dom.div(b,a);d&&dom.attribs(b,d);return b},prependChild:function(b,a){return a.insertBefore(b,a.firstChild)},text:function(b){return b.value||b.textContent||b.innerText||b.innerHTML||b.nodeValue},encodeHTML:function(b){return b.replace(/[&'<>]/g,a)},kill:function(b){b.parentNode.removeChild(b);return b},getParent2:function(b){return b.parentNode}, getParent:function(b,a){if(!a)return b.parentNode;for(;(b=b.parentNode)&&b.nodeName.toLowerCase()!=a;);return b},replace:function(b,a){a.parentNode.replaceChild(b,a)},addStyle:function(b,a){var d=document.styleSheets;d&&d[0]||document.head.appendChild(dom.create("style","",{type:"text/css"}));d=d[0];return d.insertRule?d.insertRule(b+" { "+a+" } ",0):d.addRule(b,a)}}}();function Q(a,c){c=c||document.documentElement;c.split&&(c=Q(c)[0]);return obValsl(c.querySelectorAll(a))||[]} function addEvent(a,c,b){return(b&&a||self).addEventListener(b&&c||a,b||c,!1)}function aGet(a,c,b){var e=new XMLHttpRequest;e.onreadystatechange=function(){4==e.readyState&&200==e.status&&c(e.responseText,e)};e.open(b?"POST":"GET",a,!0);e.send(void 0!==b?b:"");return e} function download(a,c,b){var e=document,d=e.createElement("a");b=b||"application/octet-stream";if(window.MSBlobBuilder)return b=new MSBlobBuilder,b.append(a),navigator.msSaveBlob(b,c);if("download"in d)return d.href="data:"+b+","+escape(a),d.setAttribute("download",c),d.innerHTML="downloading...",e.body.appendChild(d),setTimeout(function(){d.click();e.body.removeChild(d)},66),!0;var f=e.createElement("iframe");e.body.appendChild(f);f.src="data:"+b+","+escape(a);setTimeout(function(){e.body.removeChild(f)}, 333);return!0}function required(a){var c=[].join.call(arguments,",");jsGet("http://danml.com/js/?"+c.concat(",complete"));return function(b){_requiredCB=function(){b(a)}}} (function(a){function c(){this[b]=[];this[e]=[]}var b="keys",e="values";c.prototype={get:function(a,c){return a=this[b].indexOf(a),-1==a?c:this[e][a]},set:function(a,c){var g=this[b].indexOf(a);-1==g&&(g=this[b].length);this[b][g]=a;this[e][g]=c},has:function(a){return-1!==this[b].indexOf(a)},"delete":function(a){a=this[b].indexOf(a);if(-1!==a)return this[b][a]=this[e][a]=void 0,!0},clear:function(){this[b].length=this[e].length=0}};self[a]=self[a]||c})("WeakMap"); function Set(){var a=[],c=Object.create&&Object.create(null)||{},b=Object.defineProperty.bind(Object,c);b("delete",{value:function(b){-1!==(b=a.indexOf(b))&&a.splice(b,1);return!0}});b("add",{value:function(b){-1===a.indexOf(b)&&a.push(b)}});b("has",{value:function(b){return-1!==a.indexOf(b)}});b("size",{get:function(){return a.length}});return c} (function(){var a=String.prototype,c=["!==-1","===0","+s.length===this.length"];["contains","startsWith","endsWith"].forEach(function(b,e){a[b]=a[b]||Function("s","return this.indexOf(s)"+c[e])});a.toArray=a.toArray||function(){return this.split("")};a.repeat=a.repeat||function(b){return Array(b+1).join(this)}})();(function(a){a.isNaN=a.isNaN||isNaN;a.toInteger=a.toInteger||Math.floor;a.isFinite=a.isFinite||isFinite;a.isInteger=a.isInteger||function(a){return~~a===a}})(Number); (function(a){function c(b,c){for(var d in c)c[a](d)&&(b[d]=c[d]);return b}c(Object,{merge:c,update:function(b,c){for(var d in c)c[a](d)&&!b[a](d)&&(b[d]=c[d]);return b},common:function(b,c,d){d=d||{};for(var f in c)c[a](f)&&b[a](f)&&(d[f]=c[f]);return d},mutual:function(b,c,d){d=d||{};for(var f in c)c[a](f)&&b[a](f)&&b[v]===c[f]&&(d[f]=c[f]);return d},without:function(b,c,d){d=d||{};for(var f in c)b[a](f)&&!c[a](f)&&(d[f]=c[f]);return d},is:function(a,c){return isNaN(a)&&isNaN(c)?!0:a===c},isnt:function(a, c){return!Object.is(a,c)}})})("hasOwnProperty");function Enum(a){var c={};if(!a)throw"enum: not enough arguments";a&&!a.map&&(a=[a]);1