git ssb

0+

Zach! / music-visions



Tree: 600dbebbcf63259dc62efc29572bad058dff0f50

Files: 600dbebbcf63259dc62efc29572bad058dff0f50 / bundle.js

53768 bytesRaw
1!function(){var e,t,n,o=e={};function r(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===r||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:r}catch(e){t=r}try{n="function"==typeof clearTimeout?clearTimeout:i}catch(e){n=i}}();var s,h=[],l=!1,u=-1;function c(){l&&s&&(l=!1,s.length?h=s.concat(h):u=-1,h.length&&f())}function f(){if(!l){var e=a(c);l=!0;for(var t=h.length;t;){for(s=h,h=[];++u<t;)s&&s[u].run();u=-1,t=h.length}s=null,l=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===i||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function d(e,t){this.fun=e,this.array=t}function p(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];h.push(new d(e,t)),1!==h.length||l||a(f)},d.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=p,o.addListener=p,o.once=p,o.off=p,o.removeListener=p,o.removeAllListeners=p,o.emit=p,o.prependListener=p,o.prependOnceListener=p,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0};var m={};(function(e){function t(e,t){for(var n=0,o=e.length-1;o>=0;o--){var r=e[o];"."===r?e.splice(o,1):".."===r?(e.splice(o,1),n++):n&&(e.splice(o,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function n(e,t){if(e.filter)return e.filter(t);for(var n=[],o=0;o<e.length;o++)t(e[o],o,e)&&n.push(e[o]);return n}m.resolve=function(){for(var o="",r=!1,i=arguments.length-1;i>=-1&&!r;i--){var a=i>=0?arguments[i]:e.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(o=a+"/"+o,r="/"===a.charAt(0))}return o=t(n(o.split("/"),function(e){return!!e}),!r).join("/"),(r?"/":"")+o||"."},m.normalize=function(e){var r=m.isAbsolute(e),i="/"===o(e,-1);return(e=t(n(e.split("/"),function(e){return!!e}),!r).join("/"))||r||(e="."),e&&i&&(e+="/"),(r?"/":"")+e},m.isAbsolute=function(e){return"/"===e.charAt(0)},m.join=function(){var e=Array.prototype.slice.call(arguments,0);return m.normalize(n(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))};var o="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,e);var g={exports:{}};function y(e,t){return Object.prototype.hasOwnProperty.call(e,t)}(function(e){!function(t){var n="object"==typeof g.exports&&g.exports&&!g.exports.nodeType&&g.exports,o=g&&!g.nodeType&&g,r="object"==typeof e&&e;r.global!==r&&r.window!==r&&r.self!==r||(t=r);var i,a,s=2147483647,h=36,l=1,u=26,c=38,f=700,d=72,p=128,m="-",y=/^xn--/,v=/[^\x20-\x7E]/,w=/[\x2E\u3002\uFF0E\uFF61]/g,b={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},A=h-l,k=Math.floor,T=String.fromCharCode;function _(e){throw new RangeError(b[e])}function x(e,t){for(var n=e.length,o=[];n--;)o[n]=t(e[n]);return o}function E(e,t){var n=e.split("@"),o="";return n.length>1&&(o=n[0]+"@",e=n[1]),o+x((e=e.replace(w,".")).split("."),t).join(".")}function I(e){for(var t,n,o=[],r=0,i=e.length;r<i;)(t=e.charCodeAt(r++))>=55296&&t<=56319&&r<i?56320==(64512&(n=e.charCodeAt(r++)))?o.push(((1023&t)<<10)+(1023&n)+65536):(o.push(t),r--):o.push(t);return o}function O(e){return x(e,function(e){var t="";return e>65535&&(t+=T((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+T(e)}).join("")}function S(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function N(e,t,n){var o=0;for(e=n?k(e/f):e>>1,e+=k(e/t);e>A*u>>1;o+=h)e=k(e/A);return k(o+(A+1)*e/(e+c))}function C(e){var t,n,o,r,i,a,c,f,g,y,v,w=[],b=e.length,A=0,T=p,x=d;for((n=e.lastIndexOf(m))<0&&(n=0),o=0;o<n;++o)e.charCodeAt(o)>=128&&_("not-basic"),w.push(e.charCodeAt(o));for(r=n>0?n+1:0;r<b;){for(i=A,a=1,c=h;r>=b&&_("invalid-input"),((f=(v=e.charCodeAt(r++))-48<10?v-22:v-65<26?v-65:v-97<26?v-97:h)>=h||f>k((s-A)/a))&&_("overflow"),A+=f*a,!(f<(g=c<=x?l:c>=x+u?u:c-x));c+=h)a>k(s/(y=h-g))&&_("overflow"),a*=y;x=N(A-i,t=w.length+1,0==i),k(A/t)>s-T&&_("overflow"),T+=k(A/t),A%=t,w.splice(A++,0,T)}return O(w)}function L(e){var t,n,o,r,i,a,c,f,g,y,v,w,b,A,x,E=[];for(w=(e=I(e)).length,t=p,n=0,i=d,a=0;a<w;++a)(v=e[a])<128&&E.push(T(v));for(o=r=E.length,r&&E.push(m);o<w;){for(c=s,a=0;a<w;++a)(v=e[a])>=t&&v<c&&(c=v);for(c-t>k((s-n)/(b=o+1))&&_("overflow"),n+=(c-t)*b,t=c,a=0;a<w;++a)if((v=e[a])<t&&++n>s&&_("overflow"),v==t){for(f=n,g=h;!(f<(y=g<=i?l:g>=i+u?u:g-i));g+=h)x=f-y,A=h-y,E.push(T(S(y+x%A,0))),f=k(x/A);E.push(T(S(f,0))),i=N(n,b,o==r),n=0,++o}++n,++t}return E.join("")}if(i={version:"1.4.1",ucs2:{decode:I,encode:O},decode:C,encode:L,toASCII:function(e){return E(e,function(e){return v.test(e)?"xn--"+L(e):e})},toUnicode:function(e){return E(e,function(e){return y.test(e)?C(e.slice(4).toLowerCase()):e})}},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return i});else if(n&&o)if(g.exports==n)o.exports=i;else for(a in i)i.hasOwnProperty(a)&&(n[a]=i[a]);else t.punycode=i}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),g=g.exports;var v=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},w=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},b=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function A(e,t){if(e.map)return e.map(t);for(var n=[],o=0;o<e.length;o++)n.push(t(e[o],o));return n}var k=Object.keys||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},T={parse:function(e,t,n,o){t=t||"&",n=n||"=";var r={};if("string"!=typeof e||0===e.length)return r;var i=/\+/g;e=e.split(t);var a=1e3;o&&"number"==typeof o.maxKeys&&(a=o.maxKeys);var s=e.length;a>0&&s>a&&(s=a);for(var h=0;h<s;++h){var l,u,c,f,d=e[h].replace(i,"%20"),p=d.indexOf(n);p>=0?(l=d.substr(0,p),u=d.substr(p+1)):(l=d,u=""),c=decodeURIComponent(l),f=decodeURIComponent(u),y(r,c)?v(r[c])?r[c].push(f):r[c]=[r[c],f]:r[c]=f}return r},stringify:function(e,t,n,o){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?A(k(e),function(o){var r=encodeURIComponent(w(o))+n;return b(e[o])?A(e[o],function(e){return r+encodeURIComponent(w(e))}).join(t):r+encodeURIComponent(w(e[o]))}).join(t):o?encodeURIComponent(w(o))+n+encodeURIComponent(w(e)):""}},_={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}},x={};function E(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}x.format=function(e){return _.isString(e)&&(e=U(e)),e instanceof E?e.format():E.prototype.format.call(e)};var I=/^([a-z0-9.+-]+:)/i,O=/:[0-9]*$/,S=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,N=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),C=["'"].concat(N),L=["%","/","?",";","#"].concat(C),j=["/","?","#"],R=/^[+a-z0-9A-Z_-]{0,63}$/,D=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,P={javascript:!0,"javascript:":!0},M={javascript:!0,"javascript:":!0},q={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function U(e,t,n){if(e&&_.isObject(e)&&e instanceof E)return e;var o=new E;return o.parse(e,t,n),o}E.prototype.parse=function(e,t,n){if(!_.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var o=e.indexOf("?"),r=-1!==o&&o<e.indexOf("#")?"?":"#",i=e.split(r);i[0]=i[0].replace(/\\/g,"/");var a=e=i.join(r);if(a=a.trim(),!n&&1===e.split("#").length){var s=S.exec(a);if(s)return this.path=a,this.href=a,this.pathname=s[1],s[2]?(this.search=s[2],this.query=t?T.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var h=I.exec(a);if(h){var l=(h=h[0]).toLowerCase();this.protocol=l,a=a.substr(h.length)}if(n||h||a.match(/^\/\/[^@\/]+@[^@\/]+/)){var u="//"===a.substr(0,2);!u||h&&M[h]||(a=a.substr(2),this.slashes=!0)}if(!M[h]&&(u||h&&!q[h])){for(var c,f,d=-1,p=0;p<j.length;p++)-1!==(m=a.indexOf(j[p]))&&(-1===d||m<d)&&(d=m);for(-1!==(f=-1===d?a.lastIndexOf("@"):a.lastIndexOf("@",d))&&(c=a.slice(0,f),a=a.slice(f+1),this.auth=decodeURIComponent(c)),d=-1,p=0;p<L.length;p++){var m;-1!==(m=a.indexOf(L[p]))&&(-1===d||m<d)&&(d=m)}-1===d&&(d=a.length),this.host=a.slice(0,d),a=a.slice(d),this.parseHost(),this.hostname=this.hostname||"";var y="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!y)for(var v=this.hostname.split(/\./),w=(p=0,v.length);p<w;p++){var b=v[p];if(b&&!b.match(R)){for(var A="",k=0,x=b.length;k<x;k++)b.charCodeAt(k)>127?A+="x":A+=b[k];if(!A.match(R)){var E=v.slice(0,p),O=v.slice(p+1),N=b.match(D);N&&(E.push(N[1]),O.unshift(N[2])),O.length&&(a="/"+O.join(".")+a),this.hostname=E.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),y||(this.hostname=g.toASCII(this.hostname));var U=this.port?":"+this.port:"",$=this.hostname||"";this.host=$+U,this.href+=this.host,y&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==a[0]&&(a="/"+a))}if(!P[l])for(p=0,w=C.length;p<w;p++){var V=C[p];if(-1!==a.indexOf(V)){var G=encodeURIComponent(V);G===V&&(G=escape(V)),a=a.split(V).join(G)}}var B=a.indexOf("#");-1!==B&&(this.hash=a.substr(B),a=a.slice(0,B));var F=a.indexOf("?");if(-1!==F?(this.search=a.substr(F),this.query=a.substr(F+1),t&&(this.query=T.parse(this.query)),a=a.slice(0,F)):t&&(this.search="",this.query={}),a&&(this.pathname=a),q[l]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){U=this.pathname||"";var W=this.search||"";this.path=U+W}return this.href=this.format(),this},E.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",o=this.hash||"",r=!1,i="";this.host?r=e+this.host:this.hostname&&(r=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(r+=":"+this.port)),this.query&&_.isObject(this.query)&&Object.keys(this.query).length&&(i=T.stringify(this.query));var a=this.search||i&&"?"+i||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||q[t])&&!1!==r?(r="//"+(r||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):r||(r=""),o&&"#"!==o.charAt(0)&&(o="#"+o),a&&"?"!==a.charAt(0)&&(a="?"+a),t+r+(n=n.replace(/[?#]/g,function(e){return encodeURIComponent(e)}))+(a=a.replace("#","%23"))+o},E.prototype.resolve=function(e){return this.resolveObject(U(e,!1,!0)).format()},E.prototype.resolveObject=function(e){if(_.isString(e)){var t=new E;t.parse(e,!1,!0),e=t}for(var n=new E,o=Object.keys(this),r=0;r<o.length;r++){var i=o[r];n[i]=this[i]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var a=Object.keys(e),s=0;s<a.length;s++){var h=a[s];"protocol"!==h&&(n[h]=e[h])}return q[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!q[e.protocol]){for(var l=Object.keys(e),u=0;u<l.length;u++){var c=l[u];n[c]=e[c]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||M[e.protocol])n.pathname=e.pathname;else{for(var f=(e.pathname||"").split("/");f.length&&!(e.host=f.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==f[0]&&f.unshift(""),f.length<2&&f.unshift(""),n.pathname=f.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var d=n.pathname||"",p=n.search||"";n.path=d+p}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var m=n.pathname&&"/"===n.pathname.charAt(0),g=e.host||e.pathname&&"/"===e.pathname.charAt(0),y=g||m||n.host&&e.pathname,v=y,w=n.pathname&&n.pathname.split("/")||[],b=(f=e.pathname&&e.pathname.split("/")||[],n.protocol&&!q[n.protocol]);if(b&&(n.hostname="",n.port=null,n.host&&(""===w[0]?w[0]=n.host:w.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===f[0]?f[0]=e.host:f.unshift(e.host)),e.host=null),y=y&&(""===f[0]||""===w[0])),g)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,w=f;else if(f.length)w||(w=[]),w.pop(),w=w.concat(f),n.search=e.search,n.query=e.query;else if(!_.isNullOrUndefined(e.search))return b&&(n.hostname=n.host=w.shift(),(I=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=I.shift(),n.host=n.hostname=I.shift())),n.search=e.search,n.query=e.query,_.isNull(n.pathname)&&_.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n;if(!w.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var A=w.slice(-1)[0],k=(n.host||e.host||w.length>1)&&("."===A||".."===A)||""===A,T=0,x=w.length;x>=0;x--)"."===(A=w[x])?w.splice(x,1):".."===A?(w.splice(x,1),T++):T&&(w.splice(x,1),T--);if(!y&&!v)for(;T--;T)w.unshift("..");!y||""===w[0]||w[0]&&"/"===w[0].charAt(0)||w.unshift(""),k&&"/"!==w.join("/").substr(-1)&&w.push("");var I,O=""===w[0]||w[0]&&"/"===w[0].charAt(0);return b&&(n.hostname=n.host=O?"":w.length?w.shift():"",(I=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=I.shift(),n.host=n.hostname=I.shift())),(y=y||n.host&&w.length)&&!O&&w.unshift(""),w.length?n.pathname=w.join("/"):(n.pathname=null,n.path=null),_.isNull(n.pathname)&&_.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},E.prototype.parseHost=function(){var e=this.host,t=O.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};var $=function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)V.call(n,o)&&(e[o]=n[o])}return e},V=Object.prototype.hasOwnProperty,G={};(function(e){G=n;var t=n.events={INSTALLED:"sw:installed",UPDATED:"sw:updated",REDUNDANT:"sw:redundant",POST_MESSAGE:"sw:postMessage",MESSAGE:"sw:message",SYNC:"sw:sync",NOTIFICATION_REQUEST:"sw:notificationRequest",ERROR:"log:error"};function n(n,o){return n=n||"/sw.js",o=o||{},function(r,i){i.on(r.events.DOMCONTENTLOADED,function(){if((o=$({scope:"/"},o)).electron){o.scope=m.join(e,o.scope),n=x.format({pathname:m.join(e,n.replace(/^\//,"")),protocol:"file:",slashes:!0}),delete o.electron}if(window.onmessage=function(e){i.emit(t.MESSAGE,{data:e.data,channel:"window",port:null})},window.MessageChannel){var a=new MessageChannel;a.port1.onmessage=function(e){i.emit(t.MESSAGE,{data:e.data,channel:"messageChannel",port:"port1"})},a.port2.onmessage=function(e){i.emit(t.MESSAGE,{data:e.data,channel:"messageChannel",port:"port2"})}}i.on(t.NOTIFICATION_REQUEST,function(e){Notification.requestPermission(function(t){"function"==typeof t&&e(t)})}),navigator.serviceWorker&&navigator.onLine&&(navigator.serviceWorker.onmessage=function(e){i.emit(t.MESSAGE,{data:e.data,channel:"navigator.serviceWorker",port:null})},navigator.serviceWorker.register(n,o).then(function(e){e.onupdatefound=function(){var n=e.installing;n.onstatechange=function(){"installed"===n.state?navigator.serviceWorker.controller?i.emit(t.UPDATED,e):i.emit(t.INSTALLED,e):"redundant"===n.state&&i.emit(t.REDUNDANT,e)}},e.sync&&function(e){e.sync.getTags().then(function(e){r.syncTags=e}).catch(function(e){i.emit(t.ERROR,e)})}(e)}).catch(function(e){i.emit(t.ERROR,e)}),navigator.serviceWorker.ready.then(function(e){new Promise(function(n){var o=e.active;"activated"!==o.state?(o.addEventListener("statechange",n,{once:!0}),i.on(t.POST_MESSAGE,function(e){o.postMessage(e)})):n()}).then(function(){e.navigationPreload&&e.navigationPreload.enable()}),i.on(t.SYNC,function(n){e.sync.register(n).then(function(){return e.sync.getTags()}).then(function(e){r.syncTags=e}).catch(function(e){i.emit(t.ERROR,e)})})}).catch(function(e){i.emit(t.ERROR,e)}))})}}}).call(this,"/node_modules/choo-service-worker");var B=/\n[\s]+$/,F=/^\n[\s]+/,W=/[\s]+$/,z=/^[\s]+/,Y=/[\n\s]+/g,H=["a","abbr","b","bdi","bdo","br","cite","data","dfn","em","i","kbd","mark","q","rp","rt","rtc","ruby","s","amp","small","span","strong","sub","sup","time","u","var","wbr"],K=["code","pre","textarea"],Z=function e(t,n){if(Array.isArray(n))for(var o,r,i=t.nodeName.toLowerCase(),a=!1,s=0,h=n.length;s<h;s++){var l=n[s];if(Array.isArray(l))e(t,l);else{("number"==typeof l||"boolean"==typeof l||"function"==typeof l||l instanceof Date||l instanceof RegExp)&&(l=l.toString());var u=t.childNodes[t.childNodes.length-1];if("string"==typeof l)a=!0,u&&"#text"===u.nodeName?u.nodeValue+=l:(l=document.createTextNode(l),t.appendChild(l),u=l),s===h-1&&(a=!1,-1===H.indexOf(i)&&-1===K.indexOf(i)?""===(o=u.nodeValue.replace(F,"").replace(W,"").replace(B,"").replace(Y," "))?t.removeChild(u):u.nodeValue=o:-1===K.indexOf(i)&&(r=0===s?"":" ",o=u.nodeValue.replace(F,r).replace(z," ").replace(W,"").replace(B,"").replace(Y," "),u.nodeValue=o));else if(l&&l.nodeType){a&&(a=!1,-1===H.indexOf(i)&&-1===K.indexOf(i)?""===(o=u.nodeValue.replace(F,"").replace(B,"").replace(Y," "))?t.removeChild(u):u.nodeValue=o:-1===K.indexOf(i)&&(o=u.nodeValue.replace(z," ").replace(F,"").replace(B,"").replace(Y," "),u.nodeValue=o));var c=l.nodeName;c&&(i=c.toLowerCase()),t.appendChild(l)}}}},X={class:"className",for:"htmlFor","http-equiv":"httpEquiv"},Q=1,J=2,ee=3,te=4,ne=5,oe=6,re=7,ie=8,ae=9,se=10,he=11,le=12,ue=13;function ce(e){return e===ae||e===se}Object.prototype.hasOwnProperty;var fe=RegExp("^("+["area","base","basefont","bgsound","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr","!--","animate","animateTransform","circle","cursor","desc","ellipse","feBlend","feColorMatrix","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","font-face-format","font-face-name","font-face-uri","glyph","glyphRef","hkern","image","line","missing-glyph","mpath","path","polygon","polyline","rect","set","stop","tref","use","view","vkern"].join("|")+")(?:[.#][a-zA-Z0-9\x7f-\uffff_:-]+)*$"),de={},pe="http://www.w3.org/2000/svg",me="http://www.w3.org/1999/xlink",ge=["autofocus","checked","defaultchecked","disabled","formnovalidate","indeterminate","readonly","required","selected","willvalidate"],ye="!--",ve=["svg","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignObject","g","glyph","glyphRef","hkern","image","line","linearGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"];function we(e,t,n){var o;-1!==ve.indexOf(e)&&(t.namespace=pe);var r=!1;if(t.namespace&&(r=t.namespace,delete t.namespace),r)o=document.createElementNS(r,e);else{if(e===ye)return document.createComment(t.comment);o=document.createElement(e)}for(var i in t)if(t.hasOwnProperty(i)){var a=i.toLowerCase(),s=t[i];if("classname"===a&&(a="class",i="class"),"htmlFor"===i&&(i="for"),-1!==ge.indexOf(a))if("true"===s)s=a;else if("false"===s)continue;"on"===a.slice(0,2)?o[i]=s:r?"xlink:href"===i?o.setAttributeNS(me,i,s):/^xmlns($|:)/i.test(i)||o.setAttributeNS(null,i,s):o.setAttribute(i,s)}return Z(o,n),o}(de=function(e,t){t||(t={});var n=t.concat||function(e,t){return String(e)+String(t)};return!1!==t.attrToProp&&(e=function(e){return function(t,n,o){for(var r in n)r in X&&(n[X[r]]=n[r],delete n[r]);return e(t,n,o)}}(e)),function(r){for(var i=Q,a="",s=arguments.length,h=[],l=0;l<r.length;l++)if(l<s-1){var u=arguments[l+1],c=T(r[l]),f=i;f===se&&(f=ie),f===ae&&(f=ie),f===re&&(f=ie),f===te&&(f=ne),f===J?"/"===a?(c.push([J,"/",u]),a=""):c.push([J,u]):c.push([0,f,u]),h.push.apply(h,c)}else h.push.apply(h,T(r[l]));var d,p=[null,{},[]],m=[[p,-1]];for(l=0;l<h.length;l++){var g=m[m.length-1][0],y=(c=h[l])[0];if(y===J&&/^\//.test(c[1])){var v=m[m.length-1][1];m.length>1&&(m.pop(),m[m.length-1][0][2][v]=e(g[0],g[1],g[2].length?g[2]:void 0))}else if(y===J){var w=[c[1],{},[]];g[2].push(w),m.push([w,g[2].length-1])}else if(y===ne||0===y&&c[1]===ne){for(var b,A="";l<h.length;l++)if(h[l][0]===ne)A=n(A,h[l][1]);else{if(0!==h[l][0]||h[l][1]!==ne)break;if("object"!=typeof h[l][2]||A)A=n(A,h[l][2]);else for(b in h[l][2])h[l][2].hasOwnProperty(b)&&!g[1][b]&&(g[1][b]=h[l][2][b])}h[l][0]===he&&l++;for(var k=l;l<h.length;l++)if(h[l][0]===ie||h[l][0]===ne)g[1][A]?""===h[l][1]||(g[1][A]=n(g[1][A],h[l][1])):g[1][A]=o(h[l][1]);else{if(0!==h[l][0]||h[l][1]!==ie&&h[l][1]!==ne){!A.length||g[1][A]||l!==k||h[l][0]!==ee&&h[l][0]!==le||(g[1][A]=A.toLowerCase()),h[l][0]===ee&&l--;break}g[1][A]?""===h[l][2]||(g[1][A]=n(g[1][A],h[l][2])):g[1][A]=o(h[l][2])}}else if(y===ne)g[1][c[1]]=!0;else if(0===y&&c[1]===ne)g[1][c[2]]=!0;else if(y===ee)d=g[0],fe.test(d)&&m.length&&(v=m[m.length-1][1],m.pop(),m[m.length-1][0][2][v]=e(g[0],g[1],g[2].length?g[2]:void 0));else if(0===y&&c[1]===Q)void 0===c[2]||null===c[2]?c[2]="":c[2]||(c[2]=n("",c[2])),Array.isArray(c[2][0])?g[2].push.apply(g[2],c[2]):g[2].push(c[2]);else if(y===Q)g[2].push(c[1]);else if(y!==he&&y!==le)throw new Error("unhandled: "+y)}if(p[2].length>1&&/^\s*$/.test(p[2][0])&&p[2].shift(),p[2].length>2||2===p[2].length&&/\S/.test(p[2][1]))throw new Error("multiple root elements must be wrapped in an enclosing tag");return Array.isArray(p[2][0])&&"string"==typeof p[2][0][0]&&Array.isArray(p[2][0][2])&&(p[2][0]=e(p[2][0][0],p[2][0][1],p[2][0][2])),p[2][0];function T(e){var n=[];i===re&&(i=te);for(var o=0;o<e.length;o++){var r=e.charAt(o);i===Q&&"<"===r?(a.length&&n.push([Q,a]),a="",i=J):">"!==r||ce(i)||i===ue?i===ue&&/-$/.test(a)&&"-"===r?(t.comments&&n.push([ie,a.substr(0,a.length-1)],[ee]),a="",i=Q):i===J&&/^!--$/.test(a)?(t.comments&&n.push([J,a],[ne,"comment"],[he]),a=r,i=ue):i===Q||i===ue?a+=r:i===J&&"/"===r&&a.length||(i===J&&/\s/.test(r)?(a.length&&n.push([J,a]),a="",i=te):i===J?a+=r:i===te&&/[^\s"'=/]/.test(r)?(i=ne,a=r):i===te&&/\s/.test(r)?(a.length&&n.push([ne,a]),n.push([le])):i===ne&&/\s/.test(r)?(n.push([ne,a]),a="",i=oe):i===ne&&"="===r?(n.push([ne,a],[he]),a="",i=re):i===ne?a+=r:i!==oe&&i!==te||"="!==r?i!==oe&&i!==te||/\s/.test(r)?i===re&&'"'===r?i=se:i===re&&"'"===r?i=ae:i===se&&'"'===r?(n.push([ie,a],[le]),a="",i=te):i===ae&&"'"===r?(n.push([ie,a],[le]),a="",i=te):i!==re||/\s/.test(r)?i===ie&&/\s/.test(r)?(n.push([ie,a],[le]),a="",i=te):i!==ie&&i!==ae&&i!==se||(a+=r):(i=ie,o--):(n.push([le]),/[\w-]/.test(r)?(a+=r,i=ne):i=te):(n.push([he]),i=re)):(i===J&&a.length?n.push([J,a]):i===ne?n.push([ne,a]):i===ie&&a.length&&n.push([ie,a]),n.push([ee]),a="",i=Q)}return i===Q&&a.length?(n.push([Q,a]),a=""):i===ie&&a.length?(n.push([ie,a]),a=""):i===se&&a.length?(n.push([ie,a]),a=""):i===ae&&a.length?(n.push([ie,a]),a=""):i===ne&&(n.push([ne,a]),a=""),n}};function o(e){return"function"==typeof e?e:"string"==typeof e?e:e&&"object"==typeof e?e:n("",e)}}(we,{comments:!0})).default=de,de.createElement=we;var be=de,Ae={};function ke(e){if(!(this instanceof ke))return new ke(e);"number"==typeof e&&(e={max:e}),e||(e={}),this.cache={},this.head=this.tail=null,this.length=0,this.max=e.max||1e3,this.maxAge=e.maxAge||0}Ae=ke,Object.defineProperty(ke.prototype,"keys",{get:function(){return Object.keys(this.cache)}}),ke.prototype.clear=function(){this.cache={},this.head=this.tail=null,this.length=0},ke.prototype.remove=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];return delete this.cache[e],this._unlink(e,t.prev,t.next),t.value}},ke.prototype._unlink=function(e,t,n){this.length--,0===this.length?this.head=this.tail=null:this.head===e?(this.head=t,this.cache[this.head].next=null):this.tail===e?(this.tail=n,this.cache[this.tail].prev=null):(this.cache[t].next=n,this.cache[n].prev=t)},ke.prototype.peek=function(e){if(this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return t.value}},ke.prototype.set=function(e,t){var n;if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){if((n=this.cache[e]).value=t,this.maxAge&&(n.modified=Date.now()),e===this.head)return t;this._unlink(e,n.prev,n.next)}else n={value:t,modified:0,next:null,prev:null},this.maxAge&&(n.modified=Date.now()),this.cache[e]=n,this.length===this.max&&this.evict();return this.length++,n.next=null,n.prev=this.head,this.head&&(this.cache[this.head].next=e),this.head=e,this.tail||(this.tail=e),t},ke.prototype._checkAge=function(e,t){return!(this.maxAge&&Date.now()-t.modified>this.maxAge&&(this.remove(e),1))},ke.prototype.get=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return this.head!==e&&(e===this.tail?(this.tail=t.next,this.cache[this.tail].prev=null):this.cache[t.prev].next=t.next,this.cache[t.next].prev=t.prev,this.cache[this.head].next=e,t.prev=this.head,t.next=null,this.head=e),t.value}},ke.prototype.evict=function(){this.tail&&this.remove(this.tail)};var Te={};function _e(e,t,n){this.cache="number"==typeof n?new Ae(n):n||new Ae(100),this.state=e,this.emit=t}function xe(e){return new(e.bind.apply(e,arguments))}Te=_e,_e.prototype.render=function(e,t){var n=this.cache.get(t);if(!n){for(var o=[],r=2,i=arguments.length;r<i;r++)o.push(arguments[r]);o.unshift(e,t,this.state,this.emit),n=xe.apply(xe,o),this.cache.set(t,n)}return n};var Ee=function(e){var t=document.readyState;if("complete"===t||"interactive"===t)return setTimeout(e,0);document.addEventListener("DOMContentLoaded",function(){e()})},Ie="undefined"!=typeof window;function Oe(e){this.hasWindow=e,this.hasIdle=this.hasWindow&&window.requestIdleCallback,this.method=this.hasIdle?window.requestIdleCallback.bind(window):this.setTimeout,this.scheduled=!1,this.queue=[]}Oe.prototype.push=function(e){this.queue.push(e),this.schedule()},Oe.prototype.schedule=function(){if(!this.scheduled){this.scheduled=!0;var e=this;this.method(function(t){for(;e.queue.length&&t.timeRemaining()>0;)e.queue.shift()(t);e.scheduled=!1,e.queue.length&&e.schedule()})}},Oe.prototype.setTimeout=function(e){setTimeout(e,0,{timeRemaining:function(){return 1}})};var Se,Ne=function(){var e;return Ie?(window._nanoScheduler||(window._nanoScheduler=new Oe(!0)),e=window._nanoScheduler):e=new Oe,e}();Ce.disabled=!0;try{Se=window.performance,Ce.disabled="true"===window.localStorage.DISABLE_NANOTIMING||!Se.mark}catch(e){}function Ce(e){if(Ce.disabled)return Le;var t=(1e4*Se.now()).toFixed()%Number.MAX_SAFE_INTEGER,n="start-"+t+"-"+e;function o(o){var r="end-"+t+"-"+e;Se.mark(r),Ne.push(function(){var i=null;try{var a=e+" ["+t+"]";Se.measure(a,n,r),Se.clearMarks(n),Se.clearMarks(r)}catch(e){i=e}o&&o(i,e)})}return Se.mark(n),o.uuid=t,o}function Le(e){e&&Ne.push(function(){e(new Error("nanotiming: performance API unavailable"))})}var je=Ce,Re=function(e,t,n){var o,r=e.length;if(!(t>=r||0===n)){var i=r-(n=t+n>r?r-t:n);for(o=t;o<i;++o)e[o]=e[o+n];e.length=i}},De={};function Pe(e){if(!(this instanceof Pe))return new Pe(e);this._name=e||"nanobus",this._starListeners=[],this._listeners={}}De=Pe,Pe.prototype.emit=function(e){for(var t=[],n=1,o=arguments.length;n<o;n++)t.push(arguments[n]);var r=je(this._name+"('"+e+"')"),i=this._listeners[e];return i&&i.length>0&&this._emit(this._listeners[e],t),this._starListeners.length>0&&this._emit(this._starListeners,e,t,r.uuid),r(),this},Pe.prototype.on=Pe.prototype.addListener=function(e,t){return"*"===e?this._starListeners.push(t):(this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push(t)),this},Pe.prototype.prependListener=function(e,t){return"*"===e?this._starListeners.unshift(t):(this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].unshift(t)),this},Pe.prototype.once=function(e,t){var n=this;return this.on(e,function o(){t.apply(n,arguments),n.removeListener(e,o)}),this},Pe.prototype.prependOnceListener=function(e,t){var n=this;return this.prependListener(e,function o(){t.apply(n,arguments),n.removeListener(e,o)}),this},Pe.prototype.removeListener=function(e,t){return"*"===e?(this._starListeners=this._starListeners.slice(),n(this._starListeners,t)):(void 0!==this._listeners[e]&&(this._listeners[e]=this._listeners[e].slice()),n(this._listeners[e],t));function n(e,t){if(e){var n=e.indexOf(t);return-1!==n?(Re(e,n,1),!0):void 0}}},Pe.prototype.removeAllListeners=function(e){return e?"*"===e?this._starListeners=[]:this._listeners[e]=[]:(this._starListeners=[],this._listeners={}),this},Pe.prototype.listeners=function(e){var t="*"!==e?this._listeners[e]:this._starListeners,n=[];if(t)for(var o=t.length,r=0;r<o;r++)n.push(t[r]);return n},Pe.prototype._emit=function(e,t,n,o){if(void 0!==e&&0!==e.length){void 0===n&&(n=t,t=null),t&&(n=void 0!==o?[t].concat(n,o):[t].concat(n));for(var r=e.length,i=0;i<r;i++){var a=e[i];a.apply(a,n)}}};var Me=/(noopener|noreferrer) (noopener|noreferrer)/,qe=/^[\w-_]+:/,Ue=function(){return window.location.pathname.replace(/\/$/,"")+window.location.hash.replace(/^#/,"/")},$e=["onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onmouseenter","onmouseleave","ontouchcancel","ontouchend","ontouchmove","ontouchstart","ondragstart","ondrag","ondragenter","ondragleave","ondragover","ondrop","ondragend","onkeydown","onkeypress","onkeyup","onunload","onabort","onerror","onresize","onscroll","onselect","onchange","onsubmit","onreset","onfocus","onblur","oninput","oncontextmenu","onfocusin","onfocusout"],Ve=$e.length;function Ge(e,t,n){e[n]!==t[n]&&(t[n]=e[n],e[n]?t.setAttribute(n,""):t.removeAttribute(n))}var Be=function(e,t){var n=e.nodeType,o=e.nodeName;1===n&&function(e,t){for(var n=t.attributes,o=e.attributes,r=null,i=null,a=null,s=null,h=o.length-1;h>=0;--h)a=(s=o[h]).name,r=s.namespaceURI,i=s.value,r?(a=s.localName||a,t.getAttributeNS(r,a)!==i&&t.setAttributeNS(r,a,i)):t.hasAttribute(a)?t.getAttribute(a)!==i&&("null"===i||"undefined"===i?t.removeAttribute(a):t.setAttribute(a,i)):t.setAttribute(a,i);for(var l=n.length-1;l>=0;--l)!1!==(s=n[l]).specified&&(a=s.name,(r=s.namespaceURI)?(a=s.localName||a,e.hasAttributeNS(r,a)||t.removeAttributeNS(r,a)):e.hasAttributeNS(null,a)||t.removeAttribute(a))}(e,t),3!==n&&8!==n||t.nodeValue!==e.nodeValue&&(t.nodeValue=e.nodeValue),"INPUT"===o?function(e,t){var n=e.value,o=t.value;Ge(e,t,"checked"),Ge(e,t,"disabled"),n!==o&&(t.setAttribute("value",n),t.value=n),"null"===n&&(t.value="",t.removeAttribute("value")),e.hasAttributeNS(null,"value")?"range"===t.type&&(t.value=n):t.removeAttribute("value")}(e,t):"OPTION"===o?function(e,t){Ge(e,t,"selected")}(e,t):"TEXTAREA"===o&&function(e,t){var n=e.value;if(n!==t.value&&(t.value=n),t.firstChild&&t.firstChild.nodeValue!==n){if(""===n&&t.firstChild.nodeValue===t.placeholder)return;t.firstChild.nodeValue=n}}(e,t),function(e,t){for(var n=0;n<Ve;n++){var o=$e[n];e[o]?t[o]=e[o]:t[o]&&(t[o]=void 0)}}(e,t)},Fe=3;function We(e,t){return e.id?e.id===t.id:e.isSameNode?e.isSameNode(t):e.tagName===t.tagName&&e.type===Fe&&e.nodeValue===t.nodeValue}var ze=function(e,t){return function e(t,n){return n?t?t.isSameNode&&t.isSameNode(n)?n:t.tagName!==n.tagName?t:(Be(t,n),function(t,n){for(var o,r,i,a,s=0,h=0;o=n.childNodes[h],r=t.childNodes[h-s],o||r;h++)if(r)if(o)if(We(r,o))(i=e(r,o))!==o&&(n.replaceChild(i,o),s++);else{a=null;for(var l=h;l<n.childNodes.length;l++)if(We(n.childNodes[l],r)){a=n.childNodes[l];break}a?((i=e(r,a))!==a&&s++,n.insertBefore(i,o)):r.id||o.id?(n.insertBefore(r,o),s++):(i=e(r,o))!==o&&(n.replaceChild(i,o),s++)}else n.appendChild(r),s++;else n.removeChild(o),h--}(t,n),n):null:t}(t,e)},Ye=/([^?=&]+)(=([^&]*))?/g,He=function(){for(var e={},t=0;t<arguments.length;t++){var n=arguments[t];for(var o in n)Ke.call(n,o)&&(e[o]=n[o])}return e},Ke=Object.prototype.hasOwnProperty,Ze={};function Xe(){if(!(this instanceof Xe))return new Xe;this.trie={nodes:{}}}Ze=Xe,Xe.prototype.create=function(e){var t=e.replace(/^\//,"").split("/");return function e(n,o){var r=t.hasOwnProperty(n)&&t[n];if(!1===r)return o;var i=null;return/^:|^\*/.test(r)?(o.nodes.hasOwnProperty("$$")?i=o.nodes.$$:(i={nodes:{}},o.nodes.$$=i),"*"===r[0]&&(o.wildcard=!0),o.name=r.replace(/^:|^\*/,"")):o.nodes.hasOwnProperty(r)?i=o.nodes[r]:(i={nodes:{}},o.nodes[r]=i),e(n+1,i)}(0,this.trie)},Xe.prototype.match=function(e){var t=e.replace(/^\//,"").split("/"),n={},o=function e(o,r){if(void 0!==r){var i=t[o];if(void 0===i)return r;if(r.nodes.hasOwnProperty(i))return e(o+1,r.nodes[i]);if(r.name){try{n[r.name]=decodeURIComponent(i)}catch(t){return e(o,void 0)}return e(o+1,r.nodes.$$)}if(r.wildcard){try{n.wildcard=decodeURIComponent(t.slice(o).join("/"))}catch(t){return e(o,void 0)}return r.nodes.$$}return e(o+1)}}(0,this.trie);if(o)return(o=He(o)).params=n,o},Xe.prototype.mount=function(e,t){var n=e.replace(/^\//,"").split("/"),o=null,r=null;if(1===n.length)r=n[0],o=this.create(r);else{var i=n.join("/");r=n[0],o=this.create(i)}$(o.nodes,t.nodes),t.name&&(o.name=t.name),o.nodes[""]&&(Object.keys(o.nodes[""]).forEach(function(e){"nodes"!==e&&(o[e]=o.nodes[""][e])}),$(o.nodes,o.nodes[""].nodes),delete o.nodes[""].nodes)};var Qe=function e(t){if(!(this instanceof e))return new e(t);var n=(t||"").replace(/^\//,""),o=Ze();return r._trie=o,r.on=function(e,t){(e=e||"/",t.route=e,t&&t._wayfarer&&t._trie)?o.mount(e,t._trie.trie):o.create(e).cb=t;return r},r.emit=r,r.match=i,r._wayfarer=!0,r;function r(e){var t=i(e),n=new Array(arguments.length);n[0]=t.params;for(var o=1;o<n.length;o++)n[o]=arguments[o];return t.cb.apply(t.cb,n)}function i(e){var t=o.match(e);if(t&&t.cb)return new a(t);var r=o.match(n);if(r&&r.cb)return new a(r);throw new Error("route '"+e+"' did not match")}function a(e){this.cb=e.cb,this.route=e.cb.route,this.params=e.params}},Je={},et=/file:\/\//.test("object"==typeof window&&window.location&&window.location.origin),tt=new RegExp("^(file://|/)(.*.html?/?)?"),nt=new RegExp("^(http(s)?(://))?(www.)?[a-zA-Z0-9-_.]+(:[0-9]{1,5})?(/{1})?"),ot=new RegExp("#"),rt=new RegExp("[?].*$");function it(e){if(!(this instanceof it))return new it(e);e=e||{},this.router=Qe(e.default||"/404")}function at(e,t){return e=t?e.replace(tt,""):e.replace(nt,""),decodeURI(e.replace(rt,"").replace(ot,"/"))}Je=it,it.prototype.on=function(e,t){e=e.replace(/^[#/]/,""),this.router.on(e,t)},it.prototype.emit=function(e){return e=at(e,et),this.router.emit(e)},it.prototype.match=function(e){return e=at(e,et),this.router.match(e)};var st=lt,ht={};function lt(e){if(!(this instanceof lt))return new lt(e);e=e||{};var t=this;this._events={DOMCONTENTLOADED:"DOMContentLoaded",DOMTITLECHANGE:"DOMTitleChange",REPLACESTATE:"replaceState",PUSHSTATE:"pushState",NAVIGATE:"navigate",POPSTATE:"popState",RENDER:"render"},this._historyEnabled=void 0===e.history||e.history,this._hrefEnabled=void 0===e.href||e.href,this._hasWindow="undefined"!=typeof window,this._createLocation=Ue,this._cache=e.cache,this._loaded=!1,this._stores=[],this._tree=null;var n={events:this._events,components:{}};this._hasWindow?(this.state=window.initialState?He(window.initialState,n):n,delete window.initialState):this.state=n,this.router=Je({curry:!0}),this.emitter=De("choo.emit"),this.emit=this.emitter.emit.bind(this.emitter),this._hasWindow&&(this.state.title=document.title),this.emitter.prependListener(this._events.DOMTITLECHANGE,function(e){t.state.title=e,t._hasWindow&&(document.title=e)})}lt.prototype.route=function(e,t){this.router.on(e,t)},lt.prototype.use=function(e){var t=this;this._stores.push(function(n){var o="choo.use";o=e.storeName?o+"("+e.storeName+")":o;var r=je(o);e(n,t.emitter,t),r()})},lt.prototype.start=function(){var e,t,n=this;return this._historyEnabled&&(this.emitter.prependListener(this._events.NAVIGATE,function(){n._matchRoute(),n._loaded&&(n.emitter.emit(n._events.RENDER),setTimeout(function(e,t){if(e)try{var n=document.querySelector(e);n&&n.scrollIntoView(t)}catch(e){}}.bind(null,window.location.hash),0))}),this.emitter.prependListener(this._events.POPSTATE,function(){n.emitter.emit(n._events.NAVIGATE)}),this.emitter.prependListener(this._events.PUSHSTATE,function(e){window.history.pushState(ht,null,e),n.emitter.emit(n._events.NAVIGATE)}),this.emitter.prependListener(this._events.REPLACESTATE,function(e){window.history.replaceState(ht,null,e),n.emitter.emit(n._events.NAVIGATE)}),window.onpopstate=function(){n.emitter.emit(n._events.POPSTATE)},n._hrefEnabled&&(e=function(e){var t=e.href;t!==window.location.href&&n.emitter.emit(n._events.PUSHSTATE,t)},t=t||window.document,window.addEventListener("click",function(n){if(!(n.button&&0!==n.button||n.ctrlKey||n.metaKey||n.altKey||n.shiftKey||n.defaultPrevented)){var o=function e(n){if(n&&n!==t)return"a"!==n.localName||void 0===n.href?e(n.parentNode):n}(n.target);o&&(window.location.origin!==o.origin||o.hasAttribute("download")||"_blank"===o.getAttribute("target")&&Me.test(o.getAttribute("rel"))||qe.test(o.getAttribute("href"))||(n.preventDefault(),e(o)))}}))),this._setCache(this.state),this._stores.forEach(function(e){e(n.state)}),this._matchRoute(),this._tree=this._prerender(this.state),this.emitter.prependListener(n._events.RENDER,function(e,t){t||(t=window.requestAnimationFrame);var n=!1,o=null;return function(){null!==o||n||(n=!0,t(function(){n=!1;for(var t=o.length,r=new Array(t),i=0;i<t;i++)r[i]=o[i];e.apply(e,r),o=null})),o=arguments}}(function(){var e=je("choo.render"),t=n._prerender(n.state),o=je("choo.morph");ze(n._tree,t),o(),e()})),Ee(function(){n.emitter.emit(n._events.DOMCONTENTLOADED),n._loaded=!0}),this._tree},lt.prototype.mount=function(e){if("object"!=typeof window)return this.selector=e,this;var t=this;Ee(function(){var n=je("choo.render"),o=t.start();t._tree="string"==typeof e?document.querySelector(e):e;var r=je("choo.morph");ze(t._tree,o),r(),n()})},lt.prototype.toString=function(e,t){this.state=He(this.state,t||{});var n=this;this._setCache(this.state),this._stores.forEach(function(e){e(n.state)}),this._matchRoute(e);var o=this._prerender(this.state);return"string"==typeof o.outerHTML?o.outerHTML:o.toString()},lt.prototype._matchRoute=function(e){var t,n;e?(t=e.replace(/\?.+$/,""),n=e):(t=this._createLocation(),n=window.location.search);var o,r=this.router.match(t);return this._handler=r.cb,this.state.href=t,this.state.query=(o={},n.replace(/^.*\?/,"").replace(Ye,function(e,t,n,r){o[decodeURIComponent(t)]=decodeURIComponent(r)}),o),this.state.route=r.route,this.state.params=r.params,this.state},lt.prototype._prerender=function(e){var t=je("choo.prerender('"+e.route+"')"),n=this._handler(e,this.emit);return t(),n},lt.prototype._setCache=function(e){var t=new Te(e,this.emitter.emit.bind(this.emitter),this._cache);function n(e,n){for(var o=[],r=0,i=arguments.length;r<i;r++)o.push(arguments[r]);return t.render.apply(t,o)}e.cache=n,n.toJSON=function(){return null}};var ut=[{title:"introduction",post:["In the spring of 2018, I set out on a personal project as part of my work at Enspiral Dev Academy. The goal of the project was to make a successful contribution to a decentralized app. I started the course because I wanted to help build a better solarpunk future, and so I figured I should spend my personal project energy on learning how these awesome future applications are made.","The decentralized app I chose was Datradio--a punk2punk music player. Datradio is a site you can access through the Beaker Browser, where you can create playlists on your computer and then share them through the magic, person-powered fabric that is decentralized technology.","I made a small pull request to datradio (fixing a small bug), but the creator of the project (@cbglh) told me what would really help is some long-term envisioning of what datradio <em>could</em> be. I thought I would write a couple thoughts on features. Instead, I ended up with this entire site.","Datradio exists in an entirely new space, using entirely new technology. I did not want to give any long-term future for it, unless that future vision was also entirely new. I think this technology will allow us to create something truly meaningful for music scenes, and for the future romances of future youth. That is really exciting to me , and so this project might have ended up a bit sincere. But hey, the future <em>is</em> sincere."]},{title:"the structure",post:["This site is a mix of my thoughts on the future, memories, favorite albums, feelings i wanna express but cannot quite articulate, and some practical roadmapping. There is some mention of good features or things to build, but it is largely a collage of tones that I hope gives forth an idea of where datradio could go.","There are practical thoughts within here, but none are given that linear. This is partly just a personal hurdle, that I have a hard time with 'linear thought', but it's also that I didn't want to narrow the possibilities of datradio by trying to construct a logical argument for an emotional thing. I wanted to give you a prairie, instead of a few blades of glass, carefully arranged in a line."]},{title:"some context",post:["It is 11:50 at night. I am in a mint-green room, with thick muslin curtains, on top of a mountain in New Zealand. But I'm also feeling homesick and wistful and listening to Bright Eyes. I have a window open, to let the wonderfully crisp night air in. Exotic moths keep finding their way into my room, drawn by the light of this computer screen. They crawl for a minute over these words then fly back out again."]},{title:"the playlist as offering",post:["You seek out songs and bands to explore your own history and place. The details of a narrative you feel called to own.","Songs often hold our first experience with an emotion, a tremble, a hue of a color you could name but not see. You are reminded of your personal introduction to these feelings when you hear those songs again. And so our favorite songs are like droplets of amber, containing a reflection of the place you heard them, the time you heard them. They contain a reflection of you.","And so, the gift of a mixtape is a literal offering of yourself. the mixtape is a form of oral storytelling, like the folktales of old that act as song, lesson, and map all at once.","The myths that contain maps, the myths whose style and rhythm of telling are important for within that is held a map."]},{title:"datradio survey",post:["Datradio is a single page, filled mostly with text. The left hand side contains a list of playlists you've made or subscribed to. The right is a list of commands you can run to change the appearance of each playlist's page, along with the tracklistings and names and other commands. In the center is a terminal window to enter these commands.","Within this text window you can also throw in links to dat archives. If that archive includes mp3s, they suddenly fill up the center column and you now have a true blue playlist. You can then run commands to move these freshly imported tracks around, or change the name and appearance of the list.","After you've made all these changes, you can go into the beaker library of your datradio and see a bunch of changes to review. You review them, publish teh changes, and now all your customization will be saved in the configurations of the site.","To add a new playlist, you have to have a link to a dat archive. And so, you must first upload a folder of mp3's to your dat. You do this through the beaker library too--you click 'new > import folder' and then choose the folder from your computer. You publish your changes, view this dat archive to copy it's link, then throw this link back into your datradio site.","In other words, using dat is a balance between the nitty gritty of file management and a simple, two color interface. You are continually aware that everything you're doing lives as some tangible object on your computer, and you can easily make changes to files to see these changes reflected on your site and vice versa."]},{title:"four views into datradio",post:["The view of the listener, who wants to pick a playlist to have in the background, and personalize their unique datradio fork. This is datradio as boombox, with each link entered into the window like a cassette being added to the deck.","The view of the artist, who wants to upload their latest album or mix. They are navigating between a file structure and the dat instance, and making sure their specific playlist has the colors, shape, appearance, and tracklisting that they want. They are not concerned with the larger collection, just the shape of this particular datarchive.","The view of the explorer and voyeur, who is visiting their friend's datradio. They trust their friend's taste, and want to find something new to listen to. So they browse through the friend's list of playlists, and find ones that look interesting. If they click on one, and the first song is great, and the appearance of that playlist is ownderful, then they'll copy the link and add it to their own personal collection. In this case, the view into the friend's collection is likely different from the friend's own view,b ut v. similar. In the way that the tapes you display in your room is different than the walkman you have on you.","And so there is the view of the curator, who wants to display the playlists they've collected, the albums they've found. This may not be all of their music, and it may look different than their personal view. This is offering their entire collection to the grander chorus."]},{title:"language",post:["I will hold fast to language, because in language culture is preserverd. Worldviews are articulated. The world is not made by humans, but our understanding of the world is, as our understanding is carried forth by language.","The forcing of another lanugage is the forcing of a worldview. colonization no longer requires physical space. colonization can happen entirely in the digital. The suprresion of a culture through the forced assimilation of another."]},{title:"the means of distribution",post:["We must own the means of distribution. There are so many diverse physical methods, the style of play is imnportant. Not the way you chooose to distribute that style. Like--people will want to listen to a tape, or a cd, or a record. And, if they big ol' audiophiles, they may appreciate a certain thickness of vinyl or quality of tape. But there are few, if zero, people who would say 'I only listen to bands who press vinyl specifically with VinylCo. Pressing plant. And I only listen to bands who use RCA-DVI for distribution. If that 180gram vinyl came to me through any other means, than fucking NO way will I listen.","That concept is absurd, but it's a value we've been forced into adapting through digital music. People ultimately want to stream music, or listen to it all on a single device instead of having to swtich out hard packages. But the streaming type of play has become fully intertwined with the distribution methods of that particular streaming file. You choose whether you want to be on spotify or google play or Tidal or deezer or whatever shit, and then you mostly only listen to bands that are licensed there. And if you are a band, you make sure you are distributed with these channels, even if they don't agree with yo ur values, because you want people to be able to hear your music.","Band sshould own the means for distribution, while still being able to be in the preent moment. Autonomy doesn't have to mean adapting older styles only. You should be able to have a tape, vinyl, cd, mpp3, and streaming and have autonomy over each. We are in the future, that's entirely possible."]},{title:"greatgatsby.js",post:["Code is art. It is a beautiful form of human expression, but it has a disadvantage when compared to other art forms: code doesn't get to stick around and resonate. Books get better with time, when the words have sunk in over generations. Music can be ahead of its time, with the full influence of an album finally coming through decades later. But it's rare when we re-appraise source code, rediscover the coder's original intent and the imagination they were trying to manifest. If code is successful, then it gets blotted out by its fanmade sequels, and we only appraise it by how it stands today.","The web is a work built upon an original piece of code that maybe we misunderstood. And maybe even that original proposal was built upon ideas that Tim Berners-Lee didn't really understand.","Ted Nelson's Xanadu is a beautiful thought that is now maligned because 'the web won', as if the fact Xanadu was never built negates the strength of its dream.","Can we learn from past technology and past visions beyond just stating 'where they went wrong'? Can we appreciate the artistic importance of a book even if it never became a movie?"]},{title:"the spotify alternative",post:["We will polish and sculpt datradio and want to share it widely, and the first batch of feedback will include, 'Is this a spotify alternative?' Or 'What are you going to do to really take out spotify?' or 'You're going to need a lot more features if you want to take on itunes.' 'I love this,' they'll say, so that they can add, 'and here' swhat I think you need to be a true soundcloud replacement: discovery, embeddable urls, more licenses, a business plan.'","I wanna urge you to listen to none of this. They are positioning an argument that is absurd and damaging--this notion that we are trying to 'replace' a shitty thing, to assume it's spot, and to do so we should have feature parity with that shitty thing.","That's like someone listing to the music on the radio and saying, 'All of this music sucks, I guess I'll just have to start a band to make music I wanna hear. And I beter make sure my music recreactes this radio song exactly...it's gotta have hooks, a bridge, an overlong guitar solo. But, y'know, this time <em>i'm</em> the one wanking.'"]},{title:"discovery",post:["Discovery is important, otherwise you are just making a personal cloud music player--which is not really exciting to me. So how can we include discovery?","I think we should think jof how discovery worked before algorithms? Those methods worked for millennia, somehow we've always been able to find new music, and playlists today that are helped by playlists are especially bland.","So how did discovery work before?","through the ability to dive in and to recommend and through hubs.","the hub of a venue","the hub of a record store","the hub of a message board.","hubs are natural, but can form anywhere and shift over time."]},{title:"supporting not hoarding",post:["What is the tool that builds support, and sharing. That doesn't promote hoarding. That doesn't encourage you to grab an entire discography cos you can, but instead to intentionally seed the things you love, and inspire you to create your own too?"]}];const ct=()=>be`
2 <div class='paper-splash'>
3 <h1>music</h1>
4 <h1>visions</h1>
5 <a href='#songbook'>~enter~</a>
6 </div>
7 `,ft=st();ft.use(G()),ft.use(function(e,t){e.songs=ut,e.currentSong="",t.on("DOMContentLoaded",function(){t.on("changeSong",function(e){e=e.replace(/\s+/g,"-").toLowerCase(),t.emit("pushState","/#songbook/"+e),setTimeout("document.getElementById('track').classList.toggle('change-color')",1500)})}),t.on("DOMContentLoaded",function(){t.on("close",function(n){e.lastSong=n,t.emit("pushState","/#songbook")})})}),ft.route("/",ct),ft.route("#songbook",function(e,t){return function(e,t){return be`
8 <div class='wrapper'>
9 <div class='paper'>
10 <h1>M U S I C V I S I O N S </h1>
11 <div id='tracklist'>
12 <ul>
13 ${e.songs.map(n)}
14 </ul>
15 </div>
16 <h1>Last Track: ${e.lastSong}</h1>
17 </div>
18 </div>
19 `}(e);function n(e){return be`<li onclick=${o}>${e.title}</li>`}function o(e){console.log(e.target.innerHTML),song=e.target.innerHTML,t("changeSong",song)}}),ft.route("#songbook/:song",function(e,t){var n=e.songs.find(t=>t.title==e.params.song.replace(/-/g," "));return console.log({song:n}),be`
20 <div class='wrapper'>
21 <div id='track' class='paper'>
22 <h1>${n.title}</h1>
23 <div id='text'>
24 ${n.post.map(function(e){return be`<p>${e}</p>`})}
25 </div>
26 <a href='/#songbook' onclick=${function(){t("close",n.title)}}>x close x</a>
27 </div>
28 </div>
29 `}),ft.mount("div")}();

Built with git-ssb-web