Transaction 8d39a16cda87e5685f236566ad5b47edfcbc08aee69d3a8a8e7ba7b6a3d6f355

1 Input
  • 6a3609c9bf41513f43056e73c181aee6a4284b37c50305a1da2e95eb72d03804:0
    OP_DATA_32(32) a33eab11208112fb82129e85ab6c6f4229a7b2be7eb7eb13016e4e8afe1713af
    OP_CHECKSIG(172)
    OP_0(0)
    OP_IF(99)
    OP_DATA_3(3) ord
    OP_DATA_1(1) 
    OP_DATA_23(23) text/html;charset=utf-8
    OP_0(0)
    OP_PUSHDATA2(77) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Origin</title> <script id="snippet-random-code" type="text/javascript"> let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; } els
    OP_PUSHDATA2(77) e { let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; } } } function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 59
    OP_PUSHDATA2(77) 7399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] } function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>
    OP_PUSHDATA2(77) = 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 } } let mathRand = sfc32(...cyrb128(seed)); </script> <style> body { padding: 0; margin: 0; width: 100%; height: 100%; overflow: hidden; } canvas { position: absolute; /*Can also be `fixed`*/
    OP_PUSHDATA2(77) left: 0; right: 0; top: 0; bottom: 0; margin: auto; } </style> </head> <body> <script type="text/javascript"> (()=>{var F,m,D,k,P,K,x,B,_,O,wt,Tt,kt=[],E=[],Y,me,Ut=0,ne=5,gt=!1,J=!1,oe=0,q,S,ct,rt,ut,ae=10,Me,Ve,Xt=0,Yt=0,Z,Ht,ge=1,he=[["#40f2d0","#999DFF","#FF9751","#545479","#8EB49B","#2F4858"],["#082880","#FD765D","#FFB753","#00BABB","#5E5A8B","#B02F37"],["#7462f9","#B5A6DC","#68BAA6","#EE1E2F","#00098D","#E0EEF0"],["#f4b53f","#2F4858","
    OP_PUSHDATA2(77) #FFEDCB","#4B8178","#4E2D21","#C1554E"],["#1D1B33","#2F4858","#FFEDCB","#4B8178","#7197A8","#362E37"],["#F4B53F","#2F4858","#FFEDCB","#4B8178","#C1554E","#6A4C57"],["#453C4C","#B3AA74","#FFEDCB","#9F9D8A","#7A6154","#204E5E"],["#4C4459","#82B59D","#FFEDCB","#F3AB4E","#A44440","#204E5E"],["#203239","#96977B","#FFEDCB","#DB986F","#964744","#2C3637"],["#344C5C","#698DA0","#BFB8A6","#E8CFC1","#D96D59","#2B3967"],["#263A5B","#61898D","#B4C4C5","#FAE3C0","#7B4B5A","#B3BC99"],["#7A8671","#D2B27C","#E4CC91","#BB605A","#7B4
    OP_PUSHDATA2(77) B5A","#F0E9A9"],["#ffa943","#2177f4","#35fc93","#f9cfd2","#6eabf4","#3714a1"],["#ce2d42","#7462f9","#f4b53f","#123676","#9c223d","#e6c7b4"],["#06a0ba","#6f3bff","#f20a41","#8777f7","#4848c1","#e6c7b4"],["#71f2ff","#81fcca","#f91cb0","#0239c1","#05bdc6","#f7f1b4"],["#302D3B","#DBF7BD","#879369","#9A5154","#C3C590","#CAA174"],["#25164D","#BFD4BF","#316C6F","#494190","#D3B74F","#ECE5DE"],["#624565","#9B9589","#E49E81","#DB6A60","#FAB582","#E3B69A"],["#594C98","#372B33","#FE0878","#82D6DB","#92D0AF","#721F4C"],["#F0DEB
    OP_PUSHDATA2(77) 4","#A1A17A","#5A8170","#F4F3CC","#4B8178","#FFC7A1"],["#A42534","#3F352F","#B74C3B","#D4AA71","#DCCFB2","#693239"],["#665B55","#F5B488","#B55053","#8B2335","#69837B","#F0D2B1"],["#313D51","#FBE8AA","#EB917B","#B15552","#809488","#337F83"],["#042882","#81fcca","#f91cb0","#0239c1","#8450d6","#05bdc6"],["#304B61","#281733","#377F86","#D1D1AE","#DB6D6A","#9AC7C3"],["#2F677E","#B5B383","#C35F4F","#D2E1D9","#7FD1AE","#FAE7BF"],["#2A2B41","#673939","#377F86","#E3D5AE","#EFC375","#281733"],["#FF7E42","#2D2E3C","#FFE1C8","
    OP_PUSHDATA2(77) #4F9472","#D1594D","#384C7D"],["#FF7306","#C7B18E","#FFE3A4","#7F4E4D","#233072","#6B97A8"],["#FF6705","#ED9C7B","#FFE1A2","#7F4E4D","#154150","#BAC292"],["#f2c079","#3c3c67","#f7edcf","#84a0a4","#d22f2f","#cfd5ed"],["#505978","#8ab984","#f7d8c6","#7f655d","#c6d8f7","#78A39B"],["#2F3C3E","#7CAB93","#B6CDA9","#F4F3CF","#666460","#C9A889"],["#C1554E","#0C3E4D","#076269","#C5B65B","#F7C862","#22BB9B"],["#C1554E","#477F82","#22BB9B","#DFD2A8","#F7C862","#63AC9C"],["#3E3649","#6D7180","#B0ACAD","#DFD2A8","#F7C862","#A6B
    OP_PUSHDATA2(77) C99"],["#44E2D2","#2365B8","#645EBA","#664785","#F38073","#2E93B7"],["#E7A564","#AC966F","#596358","#234564","#EB7952","#F0BA81"],["#131C3B","#2B3C61","#4F77C9","#8FC2DE","#D2DCC0","#265670"],["#D62A58","#122959","#4F77C9","#8FC2DE","#D2DCC0","#466C88"],["#DFE3DB","#99BEA5","#51525F","#6C6A36","#3F4159","#572D54"],["#066A74","#352F51","#601449","#EC4E25","#F7954A","#792023"],["#131133","#0A405E","#EF4F56","#68C3A0","#F3EFCA","#A5282F"],["#234357","#33AFA6","#8FE2AD","#DBEFA9","#EACF7B","#408AA8"],["#FDFCF8","#A2A29
    OP_PUSHDATA2(77) 5","#5A5F5F","#2C3D3C","#252929","#31576E"],["#2F2930","#707485","#99AABE","#B6E6E8","#FBF8F2","#C4BEBE"],["#F4B53F","#6A4C57","#DBE3AA","#6EC699","#3C4549","#A66648"],["#F4B53F","#6A4C57","#212D4E","#274B64","#628367","#6B293C"],["#F4B53F","#6A4C57","#21B29F","#406B77","#333F5B","#3A8EA2"],["#432D3A","#42495F","#6F7E67","#C0B37A","#E9C268","#E0DEAB"],["#432D3A","#42495F","#368991","#E5DAB6","#EDAB58","#ED7B4A"],["#F3E6CA","#DCAF8A","#A8AD75","#40818B","#32374A","#96B7B7"],["#492E1B","#732737","#5D5969","#8F8E71","
    OP_PUSHDATA2(77) #E8D993","#B25963"],["#25272C","#FBEFBD","#DCB26C","#386B67","#0D3844","#497084"],["#25272C","#FBEFBD","#AEAA9D","#497084","#303E61","#3770A2"],["#292127","#9B464A","#E0C985","#2A979A","#0D2F3C","#ECEFDB"],["#F4B53F","#2F4858","#0FB3BC","#D6E3BD","#C1554E","#6A4C57"],["#D4BE5B","#A1D1B5","#48ADB6","#516C57","#401D35","#39447D"],["#401D35","#9E4557","#F16E54","#F2D89D","#C4BB86","#F9AD69"],["#FEB613","#DEE4D7","#3EC2B2","#356F8D","#2E2A32","#A5E1AC"],["#8F4756","#E7D7C4","#A9A1A5","#7A909D","#352E3F","#BA8B80"],["#1
    OP_PUSHDATA2(77) A2739","#223653","#5C223D","#CD253A","#EA8353","#15486B"],["#385F8D","#223653","#E3564C","#CD253A","#764468","#E1BAA9"],["#BFE3D4","#F1D499","#6787A0","#3E5277","#341C33","#9E667B"],["#495069","#87AD9F","#D4C8AC","#B67465","#4B1F33","#F28443"],["#495069","#528B8C","#EBDCBE","#F0B07D","#BD5D60","#82A2B9"],["#507386","#78B4AE","#F2E1B9","#C78379","#8A6946","#2D2543"]],Gt,Ce=[["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"],["C","Db","D","Eb","E","F","Gb","G","Ab","A","Bb","B"]],ce=["major","minor"],ft,lt=[["C",
    OP_PUSHDATA2(77) "G","D","A","A#","E","B","F#","Gb","Db","Ab","Eb","Bb","F"],["A","E","B","F#","C#","G#","D#","Bb","F","C","G","D"]],Pt=[["C","G","D","A","E","B","F#","Db","Ab","Eb","Bb","F"],["A","E","B","F#","C#","G#","D#","Bb","F","C","G","D"]];var re=[[0,2,4,5],[0,2,4,6],[0,2,4,5],[0,2,3,5]],_e=[["I","III","IV","V"],["I","III","V","VII"],["I","IV","V","VI"],["IV","III","IV","V"]],Dt=0,Rt,ve;var H=[],Fe=[],xe=[],ye=[],M=0,ue=0,Ot=!1,It=!1;function We(){var s=document.querySelector("body");F=document.createElement("canvas"),s.app
    OP_PUSHDATA2(77) endChild(F),m=F.getContext("2d"),D=new AudioContext,Ne(D);let t=new URLSearchParams(window.location.search),e=parseInt(t.get("blob")),i=Math.min(Math.max(e,3),46);window.innerWidth<window.innerHeight?ut=window.innerWidth:ut=window.innerHeight,ct=ut,rt=ut;let n=window.devicePixelRatio;F.width=ct*n|0,F.height=rt*n|0,F.style.width=`${ct}px`,F.style.height=`${rt}px`,q=ct,S=rt,m.scale(n,n),m.imageSmoothingEnabled=!0,m.lineWidth=1,m.lineCap="round",m.lineJoin="round",Me=q/ae+1|0,Ve=S/ae+1|0,Ut=Date.now();let a=j(0,he.len
    OP_PUSHDATA2(77) gth)|0;Z=he[a],Ht=j(0,Z.length)|0;let o=.001,c=.3,h=.01,g=.01,w=f(1,c,.001,g),X=f(o,c,h,g),$=f(o,c,h,g),G=f(1,c,.1,g),R=f(3,c,.1,g),Et=f(2,.4,.1,.02),nt=f(2e-4,.2,.001,.005),l=f(4e-4,.2,.001,.01),p=f(2e-4,.2,.001,.01),T=f(.5,.6,.01,.4),v=f(.02,.6,.01,.2),L=f(.001,.3,.01,.1),ot=f(1,.02,.05,1.5),Be=f(1,.02,.1,1),we=f(0,0,.1,1.5),Te=f(2e-4,.12,.001,.005),ke=f(4e-4,.12,.001,.01),Ge=f(2e-4,.12,.001,.005);P=new $t(D),k=new N(D,5,w,X,$,.018),k.connect(P.input),k.panner.setPan(.33),k.pingPongDelay.setWet(1),x=new N(D,5,nt,
    OP_PUSHDATA2(77) l,p,.01),x.connect(P.input),x.pingPongDelay.setDelayTime(3/8),x.pingPongDelay.setFeedback(.71),x.delay.setFeedback(.5),x.reverb.setWet(.8),x.reverb.setDelayTime(.5),x.panner.setPan(-.21),B=new N(D,5,T,v,L,.002),B.connect(P.input),B.pingPongDelay.setWet(.7),B.reverb.setWet(.4),B.panner.setPan(-.33),O=new Wt(D,5,Te,ke,Ge,.01),O.connect(P.input),O.delay.setFeedback(.63),O.panner.setPan(.23),K=new Vt(D,5,G,R,Et,.006),K.connect(P.input),K.panner.setPan(.1),_=new _t(D,5,ot,Be,we,.01),_.connect(P.input),_.panner.setPan(-.
    OP_PUSHDATA2(77) 5),wt=new jt(D),wt.connect(P.input),Tt=new Qt(D),P.connect(Tt.analyser),P.connect(D.destination);let at=I(mathRand(),0,1,0,ce.length)|0;ft=ce[at];let Pe=I(mathRand(),0,1,0,Pt[at].length)|0,At=Pt[at][Pe],Re=De(At),Oe=Ae(Re);Gt=Ce[Oe];let Ie=At+"3",qe=be(Ie,ft);Dt=mathRand()*re.length|0,ve=re[Dt],Rt=_e[Dt];let Se=Qe(qe,at),Jt=[],Zt=[],te=[],ee=[];for(let C=0;C<3;C++)Se.forEach((u,A)=>{let b=z(u)[0]+"3",ht=pt(b,!0);Jt.push(ht),Zt.push(pt(u,!1)),te.push(pt(u,!0)),ee.push(pt(u,!0))});H=Jt.map(C=>C.map(u=>dt(u))),Fe=Zt.m
    OP_PUSHDATA2(77) ap(C=>C.map(u=>dt(u))),xe=te.map(C=>C.map(u=>dt(u))),ye=ee.map(C=>C.map(u=>dt(u))),Y=i||j(19,29)|0,me=I(Y,19,46,20,10)|0,Y>18&&(ge=I(Y,19,46,1.03,1.21));for(let C=0;C<Y;C++){let u=new St,A=j(-q/2+40,q/2-40),b=j(-S/2+40,S/2-40),ht=j(7,16)|0;for(let bt=0;bt<ht;bt++){let ie=I(bt,0,ht,0,Math.PI*2),se=new qt(A+Math.cos(ie)*20,b+Math.sin(ie)*20);u.nodes.push(se),kt.push(se)}E.push(u)}for(let C=0;C<E.length;C++){let u=E[C];for(let A=0;A<u.nodes.length;A++){let b=u.nodes[A];A===0?(b.neighbors.push(u.nodes[u.nodes.length-1]
    OP_PUSHDATA2(77) ),u.nodes[u.nodes.length-1].neighbors.push(b)):A===u.nodes.length-1?(b.neighbors.push(u.nodes[0]),u.nodes[0].neighbors.push(b)):(b.neighbors.push(u.nodes[A-1]),u.nodes[A-1].neighbors.push(b),b.neighbors.push(u.nodes[A+1]),u.nodes[A+1].neighbors.push(b))}}window.$generativeTraits={Type:"Audio",BPM:"60",Key:At,Flavour:ft,Chords:Rt},F.addEventListener("keypress",ze,!1),F.addEventListener("click",le),F.addEventListener("touchstart",le),F.addEventListener("mousemove",Le,!1),F.addEventListener("touchmove",je),window.requ
    OP_PUSHDATA2(77) estAnimationFrame(Ee)}function Ee(){window.requestAnimationFrame(Ee),m.clearRect(0,0,q,S),m.fillStyle=Z[Ht],m.fillRect(0,0,q,S),m.save(),m.translate(q/2,S/2);for(let t=0;t<E.length;t++){E[t].update(),E[t].draw();for(let e=0;e<E.length;e++)t!==e&&(E[t].repelPaths(E[e]),E[t].pushNodes(E[e]));E[t].clusterPaths()}M=ue,Ot&&(k.start(),K.start(),x.start(),B.start(),_.start(),O.start(),setTimeout(()=>{s();let t=setInterval(()=>{s();let e=[3/4,3/8,3/16],i=[1/8,1/4,3/8],n=Array.from({length:7},()=>mathRand()*3|0);k.delay.set
    OP_PUSHDATA2(77) DelayTime(e[n[0]]),k.pingPongDelay.setDelayTime(e[n[1]]),x.delay.setDelayTime(i[n[2]]),x.pingPongDelay.setDelayTime(i[n[1]]),B.delay.setDelayTime(e[n[3]]),B.pingPongDelay.setDelayTime(e[n[1]]),_.delay.setDelayTime(e[n[4]]),O.delay.setDelayTime(i[n[5]]);let a=[.73,.78,.83],o=[.63,.71,.78],c=Array.from({length:5},()=>mathRand()*3|0);k.delay.setFeedback(a[c[0]]),k.pingPongDelay.setFeedback(a[c[1]]),B.delay.setFeedback(a[c[3]]),B.pingPongDelay.setFeedback(a[c[1]]),_.delay.setFeedback(a[c[4]]),O.delay.setFeedback(o[c[2]
    OP_PUSHDATA2(77) ]),x.delay.setFeedback(o[c[0]]),x.pingPongDelay.setFeedback(o[c[1]])},6100)},2e3),Ot=!1);function s(){K.triggerAttack(Fe[M]),k.triggerAttack(H[M]),B.triggerAttack(H[M]),_.triggerAttack(H[M]),setTimeout(()=>{K.triggerRelease(),k.triggerRelease(),x.triggerRelease(),B.triggerRelease(),_.triggerRelease(),O.triggerRelease(),ue=(M+1)%H.length},fe(6e3,50)),setTimeout(()=>{wt.offline()},1800),setTimeout(()=>{mathRand()>.68&&O.triggerAttack(ye[M])},fe(1200,50)),setTimeout(()=>{mathRand()<.43&&x.triggerAttack(xe[M])},mathRan
    OP_PUSHDATA2(77) d()*3e3+1200)}J&&mt()-oe>2e3&&(J=!1,oe=mt()),mt()>12e3&&!It&&(gt=!0),m.restore()}var d=class{constructor(t,e){this.x=t,this.y=e}add(t){return new d(this.x+t.x,this.y+t.y)}sub(t){return new d(this.x-t.x,this.y-t.y)}mult(t){return new d(this.x*t,this.y*t)}div(t){return new d(this.x/t,this.y/t)}mag(){return Math.sqrt(this.x*this.x+this.y*this.y)}normalize(){return this.div(this.mag())}limit(t){return this.mag()>t?this.normalize().mult(t):this}dist(t){return this.sub(t).mag()}setMag(t){return this.normalize().mult(t)}l
    OP_PUSHDATA2(77) erp(t,e){return this.add(t.sub(this).mult(e))}static lerp(t,e,i){return t.mult(1-i).add(e.mult(i))}},qt=class{constructor(t,e){this.pos=new d(t,e),this.iniPos=new d(t,e),this.vel=new d(0,0),this.acc=new d(0,0),this.neighbors=[],this.minDistance=10,this.attractionForce=1.9,this.repulsionForce=.13,this.attractionForce2=.6,this.repulsionForce2=.9,this.repulsionForce3=.02,this.attractionForce3=.01,this.attractionForce4=.3,this.repulsionForce4=9.8,this.attractionForce5=.001,this.p=!1,this.amplitude=0,this.r=j(1,4)|0,thi
    OP_PUSHDATA2(77) s.radius=this.r*12,this.init()}update(){let t=new d(0,0);for(let l of this.neighbors){let p=l.pos.sub(this.pos).mag(),v=l.pos.sub(this.pos).normalize().mult(this.attractionForce*(p-this.minDistance));t=t.add(v)}for(let l of this.neighbors){let p=l.pos.sub(this.pos).mag(),v=l.pos.sub(this.pos).normalize().mult(-this.repulsionForce*1/(p*p));t=t.add(v)}let e=this.iniPos.sub(this.pos).mag();if(e>.1){let p=this.iniPos.sub(this.pos).normalize().mult(this.attractionForce3*e);t=t.add(p)}let i=10,n=mt()*.001;this.applyAudio
    OP_PUSHDATA2(77) WaveForce(),this.applySinusoidalForce(new d(0,0),this.amplitude,i,n),t=t.add(this.acc);for(let l of this.knnSearch(this.radius)){let p=l.pos.sub(this.pos).mag(),v=l.pos.sub(this.pos).normalize().mult(-this.repulsionForce2*1/p*p);t=t.add(v)}for(let l of kt){if(l===this)continue;let p=l.pos.sub(this.pos).mag(),v=l.pos.sub(this.pos).normalize().mult(-this.repulsionForce*1/p*p);t=t.add(v)}let a=new d(0,0);for(let l of this.neighbors)a.x+=l.pos.x,a.y+=l.pos.y;a.x/=this.neighbors.length,a.y/=this.neighbors.length;let c=a
    OP_PUSHDATA2(77) .sub(this.pos).normalize().mult(this.attractionForce4*(a.sub(this.pos).mag()-this.minDistance));t=t.add(c);let h=new d(0,0);for(let l=0;l<this.neighbors.length;l++){let p=this.neighbors[l],T=this.neighbors[(l+1)%this.neighbors.length],v=p.pos.sub(this.pos).normalize(),L=T.pos.sub(this.pos).normalize(),ot=v.add(L).normalize();h.x+=ot.x,h.y+=ot.y}h.x/=this.neighbors.length,h.y/=this.neighbors.length;let g=this.pos.add(h.mult(.5)),w=g.sub(this.pos).mag();var $=g.sub(this.pos).normalize().mult(-this.repulsionForce3*1/w
    OP_PUSHDATA2(77) *w);t=t.add($);let G=new d(Xt,Yt);if(G.mag()>0&&J){let l=G.sub(this.pos).mag();if(l<50){let L=G.sub(this.pos).normalize().mult(-this.repulsionForce4*1/l*l);t=t.add(L)}let p=E.find(v=>v.nodes.includes(this)),T=G.sub(p.computeCenterOfMass()).mag();if(T<p.diameter()/2){let L=G.sub(p.computeCenterOfMass()).normalize().mult(-this.repulsionForce4*1/T*T);t=t.add(L)}}this.acc=t.div(1);let R=.1,Et=.5,nt=this.vel.add(this.acc.mult(R)).mult(1-Et*R);this.pos=this.pos.add(nt.mult(R)),this.vel=nt,this.acc=new d(0,0)}applySinusoi
    OP_PUSHDATA2(77) dalForce(t,e,i,n){let a=new d(0,0),o=this.pos.sub(t).normalize(),c=this.pos.sub(t).mag(),h=i*n+c*.05,g=Math.sin(h)*this.amplitude;a.x=o.x*g,a.y=o.y*g;let w=new d(o.y,-o.x);a.x+=w.x,a.y+=w.y,this.acc=this.acc.add(a),gt&&(this.amplitude<12&&!this.p&&(this.amplitude+=.15),this.amplitude>.5&&this.p&&(this.amplitude-=.035),this.amplitude>=12&&(this.p=!0),this.amplitude<=.5&&(this.p=!1))}applyAudioWaveForce(){let t=Tt.getFrequencyData(),e=0;for(let i=0;i<t.length;i++)e+=t[i];e/=t.length,gt||(this.amplitude=Math.min(I(e,0
    OP_PUSHDATA2(77) ,255,0,2)*200,20))}knnSearch(t){let e=[];for(let i of kt)i.pos.sub(this.pos).mag()<=t&&i!==this&&e.push(i);return e}move(){if(0<=this.t&&this.t<this.t1){let t=$e(this.t,0,this.t1-1);this.attractionForce2=pe(0,.8,de(t)),this.repulsionForce2=pe(.1,.9,de(t))}this.t1<this.t&&this.init(),this.t++}init(){this.t=-mathRand()*I(ne,1,5,5e3,1e3)|0,this.t1=I(ne,1,5,2200,600)}},St=class{constructor(){this.nodes=[],this.maxEdgeLength=50,this.minEdgeLength=10,this.attractionForce=.34*ge,this.repulsionForce=10.7,this.influenceRadi
    OP_PUSHDATA2(77) us=me,this.maxForce=6,this.color=Z[He(Z,Ht)]}draw(){m.fillStyle=this.color,m.beginPath(),m.moveTo(this.nodes[0].pos.x,this.nodes[0].pos.y);for(let i=0;i<this.nodes.length-1;i++){let n=(this.nodes[i].pos.x+this.nodes[i+1].pos.x)/2,a=(this.nodes[i].pos.y+this.nodes[i+1].pos.y)/2;m.quadraticCurveTo(this.nodes[i].pos.x,this.nodes[i].pos.y,n,a)}let t=(this.nodes[0].pos.y+this.nodes[1].pos.y)/2,e=(this.nodes[0].pos.x+this.nodes[1].pos.x)/2;m.quadraticCurveTo(this.nodes[this.nodes.length-1].pos.x,this.nodes[this.nodes.len
    OP_PUSHDATA2(77) gth-1].pos.y,e,t),m.fill()}update(){for(let t=0;t<this.nodes.length;t++)this.nodes[t].update(),this.nodes[t].move()}repelPaths(t){let e=t.computeCenterOfMass().sub(this.computeCenterOfMass()),i=e.mag();if(e=e.normalize(),i<this.diameter()/2+t.diameter()/2+this.influenceRadius){let n=e.mult(-this.repulsionForce/i*i);for(let a of this.nodes)for(let o of t.nodes){let c=o.pos.sub(a.pos),h=c.mag();if(c=c.normalize(),h<this.influenceRadius){let w=c.mult(-this.repulsionForce/h*h).sub(a.vel);a.acc=a.acc.add(w)}}}}clusterPa
    OP_PUSHDATA2(77) ths(){let e=new d(0,0).sub(this.computeCenterOfMass()),i=e.mag();e=e.normalize();for(let n of this.nodes){let a=e.mult(this.attractionForce*i);a=a.sub(n.vel),n.acc=n.acc.lerp(a,.5)}}computeCenterOfMass(){let t=new d(0,0);for(let i of this.nodes)t=t.add(i.pos);return t.div(this.nodes.length)}diameter(){let t=0;for(let e=0;e<this.nodes.length;e++)for(let i=0;i<this.nodes.length;i++){let n=this.nodes[e].pos.dist(this.nodes[i].pos);n>t&&(t=n)}return t}pushNodes(t){for(let e=0;e<this.nodes.length;e++){let i=this.nodes[e
    OP_PUSHDATA2(77) ].pos.dist(this.computeCenterOfMass());if(this.nodes[e].pos.dist(t.computeCenterOfMass())<i)for(let a=0;a<t.nodes.length;a++){let o=this.computeCenterOfMass().sub(t.computeCenterOfMass()),c=o.mag();if(o=o.normalize(),c<this.nodes[e].radius+t.nodes[a].radius){let g=o.mult(this.repulsionForce/c*c).sub(this.nodes[e].vel);this.nodes[e].acc=this.nodes[e].acc.add(g)}}}}};window.onload=function(){We(),setInterval(Ke,24*60*60*1e3)};function Ne(s){if(s.state!=="suspended")return;let t=["touchstart","click"];t.forEach(n=>win
    OP_PUSHDATA2(77) dow.addEventListener(n,e,!1));function e(){s.resume().then(i)}function i(){t.forEach(n=>window.removeEventListener(n,e))}}function ze(s){if(s.key==="s"){var t=document.createElement("a");t.download="origin.png",t.href=F.toDataURL("image/png"),t.click()}}function le(s){It||(Ot=!0,gt=!1),It=!0}function Le(s){var t=F.getBoundingClientRect();J=!0,Xt=s.clientX-t.left-q/2|0,Yt=s.clientY-t.top-S/2|0}function je(s){var t=s.touches[0],e=F.getBoundingClientRect();J=!0,Xt=t.clientX-e.left-q/2|0,Yt=t.clientY-e.top-S/2|0}functi
    OP_PUSHDATA2(77) on I(s,t,e,i,n){return i+(n-i)*((s-t)/(e-t))}function j(s,t){let e=mathRand()*(t-s)+s;return parseFloat(e)}function de(s){return 1+--s*s*s*s*s}function pe(s,t,e){return e*(t-s)+s}function $e(s,t,e){return I(s,t,e,0,1)}function mt(){return Date.now()-Ut}function Ke(){Ut=Date.now()}var W=class{constructor(t,e,i,n,a){this.audioCtx=t,this.type=e,this.frequency=i,this.detune=n,this.oscillator=this.audioCtx.createOscillator(),this.oscillator.type=this.type,this.oscillator.frequency.value=this.frequency,this.oscillator.de
    OP_PUSHDATA2(77) tune.value=this.detune,this.gainNode=this.audioCtx.createGain(),this.gainNode.gain.value=a,this.lfo=new Ft(t,"sine",5,.5),this.lfo.connect(this.oscillator.frequency)}connect(t){this.oscillator.connect(this.gainNode),this.gainNode.connect(t)}disconnect(){this.oscillator.disconnect()}setFrequency(t){this.oscillator.frequency.value=t}setDetune(t){this.oscillator.detune.value=t}setType(t){this.oscillator.type=t}start(){this.oscillator.start()}stop(){this.oscillator.stop()}},Mt=class{constructor(t,e,i,n,a){this.audioCtx
    OP_PUSHDATA2(77) =t,this.attack=e,this.decay=i,this.sustain=n,this.release=a,this.gain=this.audioCtx.createGain(),this.gain.gain.value=.5,this.gain.connect(this.audioCtx.destination)}connect(t){this.gain.connect(t)}disconnect(){this.gain.disconnect()}triggerAttack(){this.gain.gain.cancelScheduledValues(this.audioCtx.currentTime),this.gain.gain.setValueAtTime(0,this.audioCtx.currentTime);let t=1e-4;this.gain.gain.linearRampToValueAtTime(t,this.audioCtx.currentTime+this.attack*.2),this.gain.gain.linearRampToValueAtTime(1,this.audioCt
    OP_PUSHDATA2(77) x.currentTime+this.attack),this.gain.gain.linearRampToValueAtTime(this.sustain,this.audioCtx.currentTime+this.attack+this.decay)}triggerRelease(){this.gain.gain.cancelScheduledValues(this.audioCtx.currentTime),this.gain.gain.setValueAtTime(this.gain.gain.value,this.audioCtx.currentTime),this.gain.gain.exponentialRampToValueAtTime(1e-4,this.audioCtx.currentTime+this.release)}},tt=class{constructor(t,e,i,n,a){this.audioCtx=t,this.attack=e,this.decay=i,this.sustain=n,this.release=a,this.gain=this.audioCtx.createGain()
    OP_PUSHDATA2(77) ,this.gain.gain.value=0,this.gain.connect(this.audioCtx.destination)}connect(t){this.gain.connect(t)}disconnect(){this.gain.disconnect()}triggerAttack(){this.gain.gain.cancelScheduledValues(this.audioCtx.currentTime),this.gain.gain.setValueAtTime(0,this.audioCtx.currentTime);let t=1e-4;this.gain.gain.linearRampToValueAtTime(t,this.audioCtx.currentTime+this.attack*.2),this.gain.gain.linearRampToValueAtTime(1,this.audioCtx.currentTime+this.attack),this.gain.gain.linearRampToValueAtTime(this.sustain,this.audioCtx.curr
    OP_PUSHDATA2(77) entTime+this.attack+this.decay)}triggerRelease(){this.gain.gain.cancelScheduledValues(this.audioCtx.currentTime),this.gain.gain.setValueAtTime(this.gain.gain.value,this.audioCtx.currentTime),this.gain.gain.exponentialRampToValueAtTime(1e-4,this.audioCtx.currentTime+this.release)}},Ct=class extends tt{constructor(t,e,i,n,a){super(t,e,i,n,a),this.modulation=new W(this.audioCtx,"sine",10,0,.002),this.modulation.connect(this.gain),this.modulation.start()}setFrequency(t){this.modulation.setFrequency(t)}},vt=class{constr
    OP_PUSHDATA2(77) uctor(t,e,i,n,a,o,c,h){this.audioCtx=t,this.frequency=e,this.q=i,this.gain=n,this.attack=a,this.decay=o,this.sustain=c,this.release=h,this.filter=this.audioCtx.createBiquadFilter(),this.filter.type="lowpass",this.filter.frequency.value=this.frequency,this.filter.Q.value=this.q,this.filter.gain.value=this.gain,this.filter.connect(this.audioCtx.destination)}connect(t){this.filter.connect(t)}disconnect(){this.filter.disconnect()}triggerAttack(){this.filter.frequency.cancelScheduledValues(this.audioCtx.currentTime),thi
    OP_PUSHDATA2(77) s.filter.frequency.setValueAtTime(this.frequency,this.audioCtx.currentTime);let t=1e-4;this.filter.frequency.linearRampToValueAtTime(t,this.audioCtx.currentTime+this.attack*.2),this.filter.frequency.linearRampToValueAtTime(this.frequency,this.audioCtx.currentTime+this.attack),this.filter.frequency.linearRampToValueAtTime(this.frequency*this.sustain,this.audioCtx.currentTime+this.attack+this.decay)}triggerRelease(){this.filter.frequency.cancelScheduledValues(this.audioCtx.currentTime),this.filter.frequency.setValueA
    OP_PUSHDATA2(77) tTime(this.filter.frequency.value,this.audioCtx.currentTime),this.filter.frequency.linearRampToValueAtTime(0,this.audioCtx.currentTime+this.release)}},N=class{constructor(t,e,i,n,a,o){this.audioCtx=t,this.numberOfOscillators=e,this.oscillators=[],this.modulationEnvelopes=[],this.filterEnvelopes=[],this.mod_envelope=n,this.filter_env=a,this.volume=o,this.envelope=new Mt(this.audioCtx,i.attack,i.decay,i.sustain,i.release),this.output=this.audioCtx.createGain(),this.output.gain.value=.5,this.panner=new zt(this.audioCt
    OP_PUSHDATA2(77) x),this.equalizer=new Kt(this.audioCtx),this.panner.connect(this.equalizer.input),this.equalizer.connect(this.output),this.output.connect(this.audioCtx.destination),this.envelope.connect(this.output),this.createOscillators(),this.createModulationEnvelopes(),this.createFilterEnvelopes(),this.createEffects()}createOscillators(){this.oscillators.push(new W(this.audioCtx,"sine",440,0,this.volume)),this.oscillators.push(new W(this.audioCtx,"sine",840,-3,this.volume)),this.oscillators.push(new W(this.audioCtx,"sine",640,
    OP_PUSHDATA2(77) 2,this.volume)),this.oscillators.push(new W(this.audioCtx,"sine",240,5,this.volume)),this.oscillators.push(new W(this.audioCtx,"sine",1020,3,this.volume))}createModulationEnvelopes(){for(let t=0;t<this.numberOfOscillators;t++){let e=new tt(this.audioCtx,this.mod_envelope.attack,this.mod_envelope.decay,this.mod_envelope.sustain,this.mod_envelope.release);this.modulationEnvelopes.push(e)}}createFilterEnvelopes(){for(let t=0;t<this.numberOfOscillators;t++){let e=new vt(this.audioCtx,1e3,0,.2,this.filter_env.attack,thi
    OP_PUSHDATA2(77) s.filter_env.decay,this.filter_env.sustain,this.filter_env.release);this.filterEnvelopes.push(e)}for(let t=0;t<this.numberOfOscillators;t++)this.filterEnvelopes[t].connect(this.modulationEnvelopes[t].gain)}createEffects(){this.chorus=new Q(this.audioCtx),this.chorus.connect(this.output),this.reverb=new U(this.audioCtx),this.reverb.connect(this.output),this.delay=new st(this.audioCtx),this.delay.connect(this.output),this.pingPongDelay=new xt(this.audioCtx),this.pingPongDelay.connect(this.output),this.pingPongDelay.s
    OP_PUSHDATA2(77) tartAutoPanner(),this.pingPongDelay.setWet(.5),this.flanger=new yt(this.audioCtx),this.flanger.connect(this.output),this.lowPassFilter=new r(this.audioCtx,"lowpass",2220,.19),this.lowPassFilter.connect(this.output),this.highPassFilter=new r(this.audioCtx,"highpass",400,.12),this.highPassFilter.connect(this.output),this.StereoWidener=new et(this.audioCtx),this.StereoWidener.connect(this.output),this.StereoWidener.setWidth(1.6),this.tapeSaturator=new it(this.audioCtx),this.tapeSaturator.connect(this.output);for(let t
    OP_PUSHDATA2(77) =0;t<this.numberOfOscillators;t++)this.modulationEnvelopes[t].connect(this.chorus.input),this.modulationEnvelopes[t].connect(this.reverb.input),this.modulationEnvelopes[t].connect(this.delay.input),this.modulationEnvelopes[t].connect(this.pingPongDelay.input),this.modulationEnvelopes[t].connect(this.flanger.input),this.modulationEnvelopes[t].connect(this.lowPassFilter.input),this.modulationEnvelopes[t].connect(this.highPassFilter.input),this.modulationEnvelopes[t].connect(this.StereoWidener.input),this.modulationEn
    OP_PUSHDATA2(77) velopes[t].connect(this.tapeSaturator.input);for(let t=0;t<this.numberOfOscillators;t++)this.filterEnvelopes[t].connect(this.envelope.gain)}connect(t){this.output.connect(t)}disconnect(){this.output.disconnect()}triggerAttack(t){for(let e=0;e<this.numberOfOscillators;e++){let i=t[e]|0;this.oscillators[e].setFrequency(i),this.oscillators[e].connect(this.modulationEnvelopes[e].gain),this.modulationEnvelopes[e].triggerAttack(),this.filterEnvelopes[e].triggerAttack(),this.modulationEnvelopes[e].connect(this.envelope.ga
    OP_PUSHDATA2(77) in)}this.envelope.triggerAttack(),this.envelope.connect(this.output.gain)}triggerRelease(){for(let t=0;t<this.numberOfOscillators;t++)this.oscillators[t].disconnect(),this.modulationEnvelopes[t].triggerRelease(),this.filterEnvelopes[t].triggerRelease();this.envelope.triggerRelease()}start(){this.oscillators.forEach(t=>{t.start()})}stop(){this.oscillators.forEach(t=>{t.stop()})}},Vt=class extends N{constructor(t,e,i,n,a,o){super(t,e,i,n,a,o),this.numberOfOscillators=e,this.createModulationEnvelopes(),this.createEffe
    OP_PUSHDATA2(77) cts()}createModulationEnvelopes(){this.modulationEnvelopes=[];for(let t=0;t<this.numberOfOscillators;t++){let e=new Ct(this.audioCtx,this.mod_envelope.attack,this.mod_envelope.decay,this.mod_envelope.sustain,this.mod_envelope.release);this.modulationEnvelopes.push(e)}}createEffects(){this.chorus=new Q(this.audioCtx),this.chorus.connect(this.output),this.delay=new st(this.audioCtx),this.delay.connect(this.output),this.reverb=new U(this.audioCtx),this.reverb.connect(this.output),this.drone=new Lt(this.audioCtx),this.
    OP_PUSHDATA2(77) drone.connect(this.output);for(let t=0;t<this.numberOfOscillators;t++)this.modulationEnvelopes[t].connect(this.chorus.input),this.modulationEnvelopes[t].connect(this.delay.input),this.modulationEnvelopes[t].connect(this.reverb.input),this.modulationEnvelopes[t].connect(this.drone.input);for(let t=0;t<this.numberOfOscillators;t++)this.filterEnvelopes[t].connect(this.envelope.gain)}},_t=class extends N{constructor(t,e,i,n,a,o){super(t,e,i,n,a,o),this.numberOfOscillators=e,this.mod_envelope=n,this.filter_env=a,this.cr
    OP_PUSHDATA2(77) eateModulationEnvelopes(),this.createFilterEnvelopes(),this.createEffects()}createModulationEnvelopes(){this.modulationEnvelopes=[];for(let t=0;t<this.numberOfOscillators;t++){let e=new tt(this.audioCtx,this.mod_envelope.attack,this.mod_envelope.decay,this.mod_envelope.sustain,this.mod_envelope.release);this.modulationEnvelopes.push(e)}}createFilterEnvelopes(){this.filterEnvelopes=[];for(let t=0;t<this.numberOfOscillators;t++){let e=new vt(this.audioCtx,1e3,0,.2,this.filter_env.attack,this.filter_env.decay,this.fil
    OP_PUSHDATA2(77) ter_env.sustain,this.filter_env.release);this.filterEnvelopes.push(e)}for(let t=0;t<this.numberOfOscillators;t++)this.filterEnvelopes[t].connect(this.modulationEnvelopes[t].gain)}createEffects(){this.chorus=new Q(this.audioCtx),this.chorus.connect(this.output),this.delay=new st(this.audioCtx),this.delay.connect(this.output),this.delay.setDelayTime(1),this.delay.setFeedback(.7),this.reverb=new U(this.audioCtx),this.reverb.connect(this.output),this.reverb.setDelayTime(.5),this.reverb.setWet(.4),this.autoFilter=new Nt
    OP_PUSHDATA2(77) (this.audioCtx),this.autoFilter.connect(this.output),this.highPassFilter=new r(this.audioCtx,"highpass",400,.19),this.highPassFilter.connect(this.output),this.lowPassFilter=new r(this.audioCtx,"lowpass",3e3,.19),this.lowPassFilter.connect(this.output),this.StereoWidener=new et(this.audioCtx),this.StereoWidener.connect(this.output),this.StereoWidener.setWidth(1.8),this.tapeSaturator=new it(this.audioCtx),this.tapeSaturator.connect(this.output),this.tapeSaturator.setDrive(.3);for(let t=0;t<this.numberOfOscillators;t+
    OP_PUSHDATA2(77) +)this.modulationEnvelopes[t].connect(this.chorus.input),this.modulationEnvelopes[t].connect(this.reverb.input),this.modulationEnvelopes[t].connect(this.autoFilter.input),this.modulationEnvelopes[t].connect(this.delay.input),this.modulationEnvelopes[t].connect(this.highPassFilter.input),this.modulationEnvelopes[t].connect(this.lowPassFilter.input),this.modulationEnvelopes[t].connect(this.StereoWidener.input),this.modulationEnvelopes[t].connect(this.tapeSaturator.input);for(let t=0;t<this.numberOfOscillators;t++)thi
    OP_PUSHDATA2(77) s.filterEnvelopes[t].connect(this.envelope.gain)}},Wt=class extends N{constructor(t,e,i,n,a,o){super(t,e,i,n,a,o),this.numberOfOscillators=e,this.mod_envelope=n,this.volume=o,this.createOscillators(),this.createModulationEnvelopes(),this.createEffects()}createModulationEnvelopes(){this.modulationEnvelopes=[];for(let t=0;t<this.numberOfOscillators;t++)this.modulationEnvelopes.push(new Ct(this.audioCtx,this.mod_envelope.attack,this.mod_envelope.decay,this.mod_envelope.sustain,this.mod_envelope.release))}createEffects
    OP_PUSHDATA2(77) (){this.chorus=new Q(this.audioCtx),this.chorus.connect(this.output),this.highPassFilter=new r(this.audioCtx,"highpass",300,0),this.highPassFilter.connect(this.output),this.delay=new xt(this.audioCtx),this.delay.connect(this.output),this.delay.setDelayTime(3/8),this.delay.setFeedback(.3),this.reverb=new U(this.audioCtx),this.reverb.connect(this.output),this.flanger=new yt(this.audioCtx),this.flanger.connect(this.output),this.StereoWidener=new et(this.audioCtx),this.StereoWidener.connect(this.output),this.StereoWide
    OP_PUSHDATA2(77) ner.setWidth(1.6),this.tapeSaturator=new it(this.audioCtx),this.tapeSaturator.connect(this.output),this.tapeSaturator.setDrive(.5);for(let t=0;t<this.numberOfOscillators;t++)this.modulationEnvelopes[t].connect(this.chorus.input),this.modulationEnvelopes[t].connect(this.highPassFilter.input),this.modulationEnvelopes[t].connect(this.delay.input),this.modulationEnvelopes[t].connect(this.reverb.input),this.modulationEnvelopes[t].connect(this.flanger.input),this.modulationEnvelopes[t].connect(this.StereoWidener.input),t
    OP_PUSHDATA2(77) his.modulationEnvelopes[t].connect(this.tapeSaturator.input)}},et=class{constructor(t){this.audioCtx=t,this.input=this.audioCtx.createGain(),this.output=this.audioCtx.createGain(),this.input.connect(this.output),this.splitter=this.audioCtx.createChannelSplitter(2),this.merger=this.audioCtx.createChannelMerger(2),this.leftGain=this.audioCtx.createGain(),this.rightGain=this.audioCtx.createGain(),this.leftGain.gain.value=.5,this.rightGain.gain.value=.5,this.input.connect(this.splitter),this.splitter.connect(this.leftG
    OP_PUSHDATA2(77) ain,0),this.splitter.connect(this.rightGain,1),this.leftGain.connect(this.merger,0,0),this.rightGain.connect(this.merger,0,1),this.merger.connect(this.output)}connect(t){this.output.connect(t)}disconnect(){this.output.disconnect()}setWidth(t){this.width=t,this.leftGain.gain.value=.5*(1-this.width),this.rightGain.gain.value=.5*(1+this.width)}},Q=class{constructor(t,e=.7,i=.1,n=.3){this.audioCtx=t,this.input=this.audioCtx.createGain(),this.output=this.audioCtx.createGain(),this.input.connect(this.output),this.depth=e
    OP_PUSHDATA2(77) ,this.delayTime=i,this.feedback=n,this.lfo=new Ft(t,"sine",.8,.8),this.delay=this.audioCtx.createDelay(),this.feedbackGain=this.audioCtx.createGain(),this.feedbackGain.gain.value=this.feedback,this.input.connect(this.delay),this.delay.connect(this.feedbackGain),this.feedbackGain.connect(this.delay),this.lfo.connect(this.delay.delayTime)}connect(t){this.output.connect(t)}disconnect(){this.output.disconnect()}},it=class{constructor(t){this.audioCtx=t,this.input=this.audioCtx.createGain(),this.output=this.audioCtx.cre
    OP_PUSHDATA2(77) ateGain(),this.input.connect(this.output),this.waveShaper=this.audioCtx.createWaveShaper(),this.waveShaper.connect(this.output),this.input.connect(this.waveShaper),this.setDrive(.3)}connect(t){this.output.connect(t)}disconnect(){this.output.disconnect()}setDrive(t){this.drive=t,this.makeDistortionCurve()}makeDistortionCurve(){let t=this.drive,e=this.audioCtx.sampleRate,i=new Float32Array(e),n=Math.PI/180;for(let a=0;a<e;++a){let o=a*2/e-1;i[a]=(3+t)*o*20*n/(Math.PI+t*Math.abs(o))}this.waveShaper.curve=i}},Nt=class{
    OP_PUSHDATA2(77) constructor(t,e=1,i=.7){this.audioCtx=t,this.input=this.audioCtx.createGain(),this.output=this.audioCtx.createGain(),this.gain=this.audioCtx.createGain(),this.input.connect(this.output),this.lfo=this.audioCtx.createOscillator();let n=new Float32Array([0,1]),a=new Float32Array([0,0]);this.wave=this.audioCtx.createPeriodicWave(n,a),this.lfo.setPeriodicWave(this.wave),this.lfo.frequency.value=e,this.lfo.start(),this.filter=this.audioCtx.createBiquadFilter(),this.filter.type="lowpass",this.filter.frequency.value=1e3,th
    OP_PUSHDATA2(77) is.filter.Q.value=10,this.lfo.connect(this.gain),this.gain.gain.value=1e4,this.gain.connect(this.filter.frequency),this.input.connect(this.filter),this.filter.connect(this.output)}connect(t){this.output.connect(t)}disconnect(){this.output.disconnect()}},zt=class{constructor(t,e=0){this.audioCtx=t,this.input=this.audioCtx.createGain(),this.output=this.audioCtx.createGain(),this.pan=this.audioCtx.createStereoPanner(),this.pan.pan.value=e,this.input.connect(this.pan),this.pan.connect(this.output)}connect(t){this.outpu
    OP_PUSHDATA2(77) t.connect(t)}disconnect(){this.output.disconnect()}setPan(t){this.pan.pan.value=t}},Ft=class{constructor(t,e,i,n){this.audioCtx=t,this.type=e,this.frequency=i,this.gain=n,this.oscillator=this.audioCtx.createOscillator(),this.oscillator.type=this.type,this.oscillator.frequency.value=this.frequency,this.gainNode=this.audioCtx.createGain(),this.gainNode.gain.value=this.gain,this.oscillator.connect(this.gainNode),this.start()}start(){this.oscillator.start()}stop(){this.oscillator.stop()}connect(t){this.gainNode.connect
    OP_PUSHDATA2(77) (t)}disconnect(){this.gainNode.disconnect()}},Lt=class{constructor(t){this.audioCtx=t,this.input=this.audioCtx.createGain(),this.output=this.audioCtx.createGain(),this.input.connect(this.output),this.delay=this.audioCtx.createDelay(),this.delay.connect(this.output),this.delay.delayTime.value=3/4,this.feedback=this.audioCtx.createGain(),this.feedback.gain.value=.1,this.delay.connect(this.feedback),this.input.connect(this.delay),this.feedback.connect(this.delay)}connect(t){this.output.connect(t)}disconnect(){this.out
    OP_PUSHDATA2(77) put.disconnect()}},U=class{constructor(t){this.audioCtx=t,this.input=this.audioCtx.createGain(),this.output=this.audioCtx.createGain(),this.input.connect(this.output),this.convolver=this.audioCtx.createConvolver(),this.convolver.buffer=this.audioCtx.createBuffer(2,t.sampleRate*3,t.sampleRate),this.delay=this.audioCtx.createDelay(.5),this.delay.delayTime.value=3/8,this.wetGain=this.audioCtx.createGain(),this.convolver.connect(this.wetGain),this.wetGain.connect(this.output),this.wetGain.gain.value=.5,this.input.conne
    OP_PUSHDATA2(77) ct(this.delay),this.delay.connect(this.convolver),this.input.connect(this.convolver),this.convolver.connect(this.output)}connect(t){this.output.connect(t)}disconnect(){this.output.disconnect()}setWet(t){this.wetGain.gain.value=t}setDelayTime(t){this.delay.delayTime.value=t}},st=class{constructor(t){this.audioCtx=t,this.input=this.audioCtx.createGain(),this.output=this.audioCtx.createGain(),this.input.connect(this.output),this.delay=this.audioCtx.createDelay(),this.delay.delayTime.value=3/4,this.feedback=this.audioC
    OP_PUSHDATA2(77) tx.createGain(),this.feedback.gain.value=.6,this.delay.connect(this.feedback),this.input.connect(this.delay),this.delay.connect(this.output),this.feedback.connect(this.input)}connect(t){this.output.connect(t)}disconnect(){this.output.disconnect()}setDelayTime(t){this.delay.delayTime.value=t}setFeedback(t){this.feedback.gain.value=t}},xt=class{constructor(t){this.audioCtx=t,this.input=this.audioCtx.createGain(),this.output=this.audioCtx.createGain(),this.input.connect(this.output),this.delay=this.audioCtx.createDela
    OP_PUSHDATA2(77) y(),this.delay.delayTime.value=3/4,this.panner1=this.audioCtx.createStereoPanner(),this.panner2=this.audioCtx.createStereoPanner(),this.feedback=this.audioCtx.createGain(),this.feedback.gain.value=.8,this.wet=this.audioCtx.createGain(),this.wet.gain.value=.8,this.input.connect(this.delay),this.delay.connect(this.panner1),this.panner1.connect(this.feedback),this.feedback.connect(this.delay),this.delay.connect(this.panner2),this.panner2.connect(this.wet),this.wet.connect(this.output),this.input.connect(this.output),t
    OP_PUSHDATA2(77) his.autoPanner=this.audioCtx.createStereoPanner(),this.autoPanner.pan.value=-1,this.autoPannerRate=1,this.panner1.connect(this.autoPanner),this.autoPanner.connect(this.panner2)}connect(t){this.output.connect(t)}disconnect(){this.output.disconnect()}setDelayTime(t){this.delay.delayTime.value=t}setAutoPannerRate(t){this.autoPannerRate=t,this.autoPannerRateIncr=2/this.audioCtx.sampleRate*this.autoPannerRate}startAutoPanner(){let t=this.audioCtx.currentTime;this.autoPanner.pan.setValueAtTime(-1,t),this.autoPanner.pan.l
    OP_PUSHDATA2(77) inearRampToValueAtTime(1,t+1/this.autoPannerRate),this.autoPanner.pan.setValueAtTime(1,t+2/this.autoPannerRate),this.autoPanner.pan.linearRampToValueAtTime(-1,t+3/this.autoPannerRate),this.autoPannerLoop=setInterval(()=>{let e=this.audioCtx.currentTime;this.autoPanner.pan.setValueAtTime(-1,e),this.autoPanner.pan.linearRampToValueAtTime(1,e+1/this.autoPannerRate),this.autoPanner.pan.setValueAtTime(1,e+2/this.autoPannerRate),this.autoPanner.pan.linearRampToValueAtTime(-1,e+3/this.autoPannerRate)},4/this.autoPannerRat
    OP_PUSHDATA2(77) e*1e3)}stopAutoPanner(){clearInterval(this.autoPannerLoop)}setDelayTime(t){this.delay.delayTime.value=t}setFeedback(t){this.feedback.gain.value=t}setWet(t){this.wet.gain.value=t}},r=class{constructor(t,e,i,n,a=1,o=0){this.audioCtx=t,this.input=this.audioCtx.createGain(),this.output=this.audioCtx.createGain(),this.input.connect(this.output),this.filter=this.audioCtx.createBiquadFilter(),this.filter.type=e,this.filter.frequency.value=i,this.filter.Q.value=a,this.filter.gain.value=o,this.filterWet=this.audioCtx.create
    OP_PUSHDATA2(77) Gain(),this.filterWet.gain.value=n,this.input.connect(this.filterWet),this.filterWet.connect(this.filter),this.input.connect(this.filter),this.filter.connect(this.output)}connect(t){this.output.connect(t)}disconnect(){this.output.disconnect()}setFrequency(t){this.filter.frequency.value=t}},yt=class{constructor(t){this.audioCtx=t,this.input=this.audioCtx.createGain(),this.output=this.audioCtx.createGain(),this.input.connect(this.output),this.delay=this.audioCtx.createDelay(),this.delay.delayTime.value=.004,this.lfo=
    OP_PUSHDATA2(77) this.audioCtx.createOscillator(),this.lfo.frequency.value=.5,this.lfoGain=this.audioCtx.createGain(),this.lfoGain.gain.value=.002,this.lfo.connect(this.lfoGain),this.lfoGain.connect(this.delay.delayTime),this.lfo.start(),this.input.connect(this.delay),this.delay.connect(this.output),this.input.connect(this.output)}connect(t){this.output.connect(t)}disconnect(){this.output.disconnect()}},jt=class{constructor(t){this.audioCtx=t,this.buffer=null,this.input=this.audioCtx.createGain(),this.output=this.audioCtx.createGai
    OP_PUSHDATA2(77) n(),this.input.connect(this.output),this.offlineAudioCtx=null,this.offlineBuffer=null,this.offlineSource=null}connect(t){this.output.connect(t)}disconnect(){this.output.disconnect()}offline(){this.buffer=this.audioCtx.createBuffer(2,this.audioCtx.sampleRate*18,this.audioCtx.sampleRate),this.offlineAudioCtx=new OfflineAudioContext(2,this.buffer.length,this.buffer.sampleRate),this.offlineSource=this.offlineAudioCtx.createBufferSource(),this.offlineSource.buffer=this.buffer,this.offlineSource.connect(this.offlineAudio
    OP_PUSHDATA2(77) Ctx.destination),this.offlineSource.start(),this.offlineAudioCtx.oncomplete=t=>{this.offlineBuffer=t.renderedBuffer,setTimeout(()=>{this.render()},mathRand()*1e3+1e3)}}render(){let t=this.audioCtx.createBufferSource();t.buffer=this.offlineBuffer;let e=this.audioCtx.createGain();e.gain.value=5,t.connect(e),e.connect(this.output),t.start(),t.loop=!0,t.playbackRate.value=1/8}},$t=class{constructor(t){this.audioCtx=t,this.input=this.audioCtx.createGain(),this.output=this.audioCtx.createGain(),this.input.connect(this.ou
    OP_PUSHDATA2(77) tput),this.compressor=this.audioCtx.createDynamicsCompressor(),this.compressor.threshold.value=-24,this.compressor.knee.value=30,this.compressor.ratio.value=12,this.compressor.attack.value=.003,this.compressor.release.value=.63,this.input.connect(this.compressor),this.compressor.connect(this.output),this.makeupGain=this.audioCtx.createGain(),this.makeupGain.gain.value=.1,this.compressor.connect(this.makeupGain),this.makeupGain.connect(this.output)}connect(t){this.output.connect(t)}disconnect(){this.output.disconnec
    OP_PUSHDATA2(77) t()}},Kt=class{constructor(t){this.audioCtx=t,this.input=this.audioCtx.createGain(),this.output=this.audioCtx.createGain(),this.input.connect(this.output),this.notchFilters=[],this.notchFilters.push(new r(this.audioCtx,"lowshelf",90,.5,.5,-12)),this.notchFilters.push(new r(this.audioCtx,"notch",185,.5,2)),this.notchFilters.push(new r(this.audioCtx,"notch",246,.5,2)),this.notchFilters.push(new r(this.audioCtx,"notch",259,.5,2)),this.notchFilters.push(new r(this.audioCtx,"notch",315,.5,2)),this.notchFilters.push(new
    OP_PUSHDATA2(77) r(this.audioCtx,"notch",369,.5,2)),this.notchFilters.push(new r(this.audioCtx,"notch",415,.5,2)),this.notchFilters.push(new r(this.audioCtx,"notch",466,.5,2)),this.notchFilters.push(new r(this.audioCtx,"notch",493,.5,2)),this.notchFilters.push(new r(this.audioCtx,"notch",523,.5,2)),this.notchFilters.push(new r(this.audioCtx,"notch",587,.5,2)),this.notchFilters.push(new r(this.audioCtx,"notch",630,.5,1)),this.notchFilters.push(new r(this.audioCtx,"notch",740,.5,2)),this.notchFilters.push(new r(this.audioCtx,"notch",
    OP_PUSHDATA2(77) 932,.5,2)),this.notchFilters.push(new r(this.audioCtx,"notch",1e3,.5,2)),this.notchFilters.push(new r(this.audioCtx,"notch",2500,.5,2)),this.notchFilters.push(new r(this.audioCtx,"notch",3500,.5,2)),this.notchFilters.push(new r(this.audioCtx,"peaking",5e3,.1,.5)),this.notchFilters.push(new r(this.audioCtx,"notch",6e3,.5,2)),this.notchFilters.push(new r(this.audioCtx,"notch",7e3,.5,2)),this.notchFilters.push(new r(this.audioCtx,"peaking",16e3,.1,.5)),this.notchFilters.push(new r(this.audioCtx,"lowpass",8e3,.5,.5)),t
    OP_PUSHDATA2(77) his.notchFilters.push(new r(this.audioCtx,"highshelf",1200,.5,.5,-12)),this.input.connect(this.notchFilters[0].input);for(let e=0;e<this.notchFilters.length-1;e++)this.notchFilters[e].connect(this.notchFilters[e+1].input);this.notchFilters[this.notchFilters.length-1].connect(this.output)}connect(t){this.output.connect(t)}disconnect(){this.output.disconnect()}},Qt=class{constructor(t){this.audioCtx=t,this.analyser=this.audioCtx.createAnalyser(),this.analyser.fftSize=2048,this.bufferLength=this.analyser.frequencyBinC
    OP_PUSHDATA2(77) ount,this.dataArray=new Uint8Array(this.bufferLength)}connect(t){this.analyser.connect(t)}disconnect(){this.analyser.disconnect()}getFrequencyData(){return this.analyser.getByteFrequencyData(this.dataArray),this.dataArray}};function f(s,t,e,i){return{attack:s,decay:t,sustain:e,release:i}}function dt(s){let t;return s.length===3?(t=Gt.indexOf(s.slice(0,2)),t=t+(parseInt(s.slice(2))+1)*12):(t=Gt.indexOf(s.slice(0,1)),t=t+parseInt(s.slice(1))*12),440*Math.pow(2,(t-49)/12)}function Bt(s){let t=z(s)[1],e=z(s)[0],i=0;i=M
    OP_PUSHDATA2(77) ath.floor(mathRand()*3)-1,t<3?i=Math.floor(mathRand()*2):t>4?i=Math.floor(mathRand()*2)-1:e==="F#"&&t+i>4&&i--;let n=parseInt(t)+i;return`${e}${n}`}var V=(s,t)=>{let e=be(s,Ye(s)),i=e.indexOf(s)+t-1,n;if(typeof e[i]<"u")n=e[i];else if(n=e[i-7],n.length===3){let a=parseInt(n.slice(2))+1;n=`${n.slice(0,2)}${a}`}else{let a=parseInt(n.slice(1))+1;n=`${n.slice(0,1)}${a}`}return n};function pt(s,t){let e=[];if(t===!0){let i=Bt(s),n=Bt(V(s,3)),a=Bt(V(s,5)),o=V(s,7),c=V(s,9);e=[i,n,a,o,c]}else{let i=s,n=V(s,3),a=V(s,5),o=V
    OP_PUSHDATA2(77) (s,7),c=V(s,9);e=[i,n,a,o,c]}return e}function Ae(s){return s==="sharp"?0:s==="flat"?1:0}function Qe(s,t){let e=[],i=[];for(let h=0;h<s.length;h++)e.push(z(s[h])[0]),i.push(z(s[h])[1]);let n=[],a=Pt[t],o=ve,c=Rt;for(let h=0;h<o.length;h++){let g=o[h],w=c[h],X=e[g],$=i[g];n.push(X+$);let G=Ue(X,$,w,a);for(let R=0;R<G.length;R++)n.push(G[R])}return n}function Ue(s,t,e,i){let n=Xe(e),a=[];for(let o=0;o<n.length;o++){let c=n[o],h=i[c];a.push(h+t)}return a}function Xe(s){switch(s){case"I":return[0,2,4];case"II":return[1
    OP_PUSHDATA2(77) ,3,5];case"III":return[2,4,6];case"IV":return[3,5,0];case"V":return[4,6,1];case"VI":return[5,0,2];case"VII":return[6,1,3];default:return[0,2,4]}}function y(s,t){return(t%s.length+s.length)%s.length}function be(s,t){let e=z(s)[0],i=z(s)[1],n=De(e),a=Ae(n),o=Ce[a],c=[],h=o.indexOf(e);return t==="major"?(c.push(e+i),c.push(o[y(o,h+2)]+(h+2>o.length?parseInt(i)+1:i)),c.push(o[y(o,h+4)]+(h+4>o.length?parseInt(i)+1:i)),c.push(o[y(o,h+5)]+(h+5>o.length?parseInt(i)+1:i)),c.push(o[y(o,h+7)]+(h+7>o.length?parseInt(i)+1:i)),c
    OP_PUSHDATA2(77) .push(o[y(o,h+9)]+(h+9>o.length?parseInt(i)+1:i)),c.push(o[y(o,h+11)]+(h+11>o.length?parseInt(i)+1:i)),c.push(o[y(o,h+12)]+(h+12>o.length?parseInt(i)+1:i))):t==="minor"&&(c.push(e+i),c.push(o[y(o,h+2)]+(h+2>o.length?parseInt(i)+1:i)),c.push(o[y(o,h+3)]+(h+3>o.length?parseInt(i)+1:i)),c.push(o[y(o,h+5)]+(h+5>o.length?parseInt(i)+1:i)),c.push(o[y(o,h+7)]+(h+7>o.length?parseInt(i)+1:i)),c.push(o[y(o,h+8)]+(h+8>o.length?parseInt(i)+1:i)),c.push(o[y(o,h+10)]+(h+10>o.length?parseInt(i)+1:i)),c.push(o[y(o,h+12)]+(h+12>o.l
    OP_PUSHDATA2(77) ength?parseInt(i)+1:i))),c}function De(s){return{C:"sharp","C#":"sharp",Db:"flat",D:"sharp","D#":"sharp",Eb:"flat",E:"sharp",F:"flat","F#":"sharp",Gb:"flat",G:"sharp","G#":"sharp",Ab:"flat",A:"sharp","A#":"sharp",Bb:"flat",B:"sharp"}[s]}function Ye(s){let t=z(s)[0];if(lt[0].indexOf(t)!==-1&&lt[1].indexOf(t)!==-1)return ft;if(lt[0].indexOf(t)!==-1)return"major";if(lt[1].indexOf(t)!==-1)return"minor"}function z(s){let t,e;return s.length===3?(t=s.slice(0,2),e=s.slice(2)):(t=s.slice(0,1),e=s.slice(1)),[t,e]}function f
    OP_PUSHDATA2(77) e(s,t){let e=s-t/2,i=s+t/2;return mathRand()*(i-e)+e}function He(s,t){let e;do e=mathRand()*s.length|0;while(e===t);return e}})(); </script> <script defer src="https://static.cloudflareinsights.com/beacon.min.js/v52afc6f149f6479b8c77fa569edb01181681764108816" integrity="sha512-jGCTpDpBAYDGNYR5ztKt4BQPGef1P0giN6ZGVUi835kFF88FOmmn8jBQWNgrNd8g/Yu421NdgWhwQoaOPFflDw==" data-cf-beacon='{"rayId":"7bc140555a574bca","version":"2023.3.0","b":1,"token":"6c07c178c94442f695e7a0a2aaee641a","si":100}' crossorigin="anonymous"></
    OP_DATA_23(23) script> </body> </html>
    OP_ENDIF(104)
1 Outputs
  • 8d39a16cda87e5685f236566ad5b47edfcbc08aee69d3a8a8e7ba7b6a3d6f355:0
  • value  10000
    address  bc1pcw4me600kwa8u5gvwxup3934ewsuqde0hgch87xum7w9ktt2uyys2q6kk4