0xa88e…250c

All memos sent from and to 0xa88e…250c.

CORPUSSee takenstheorem.github.io/corpus for terms conditions details dashboard and more. CORPUS draws fuel from the token and from the engagement around it. Trading supplies metabolic pressure; holders and LENS custodians introduce directed influence; collective gestures such as gm() briefly intensify the whole system. CORPUS is not depicting a collective so much as remaining exposed to one corporeal collective composed by its own conditions.https://takenstheorem.github.io/corpus
<style> #lensUI{position:absolute;inset:0;z-index:20;pointer-events:none;font:11px 'Courier New',monospace;color:#fff;letter-spacing:2px;opacity:0;transition:opacity .2s ease} #lensUI.is-hovered{opacity:1} #lensUI .tl{position:absolute;top:22px;left:22px;text-transform:uppercase;font-weight:900;font-size:15px;letter-spacing:6px;background:#000;border:1px solid #fff;padding:8px 14px} #lensUI .ch{position:absolute;top:22px;right:22px;font-size:9px;opacity:.7;text-transform:uppercase;text-align:right} #lensUI .br{position:absolute;bottom:24px;left:22px;right:22px;border-top:1px solid rgba(255,255,255,.4);padding-top:10px;display:flex;align-items:center;gap:14px} #lensUI .vn{text-transform:uppercase;min-width:78px} #lensUI .vv{font-weight:900;font-size:16px;min-width:70px} #lensUI .bar{flex:1;height:8px;border:1px solid #fff;position:relative} #lensUI .bar i{position:absolute;left:0;top:0;bottom:0;background:#fff} </style> <div id='lensUI'> <div class='tl' id='uiLabel'>LENS</div> <div class='ch' id='uiChan'>CH</div> <div class='br'><span class='vn' id='uiVar'>VAL</span><span class='vv' id='uiVal'>0.0</span><span class='bar'><i id='uiBar'></i></span></div> </div> <script> (function(){ var M = window.MKT || {maxSupply:'0',held:'0',rarePerToken:'0',liquidity:'0',tick:0,tickLo:-60000,tickHi:20000,impBal:['0','0','0','0'],impStart:[0,0,0,0],impDecimals:18,impWindow:3600,time:0,gmBal:'0',gmStart:0,gmWindow:900}; var L = window.LENS || {idx:0,id:0,label:'SIZE'}; var Z=BigInt(0), T=BigInt(10), K=BigInt(1000), Q=BigInt(10000); var B = function(x){ try { return BigInt(x); } catch(e){ return Z; } }; var LIQ_KNEE_FACTOR=0.5, TICK_SPACING=60, INFLUENCE_SCALE=0.001; var GM_THRESHOLD=1000, GM_MAX=10000, GM_FLOOR=0.5, GM_GAIN=2; var clamp01=function(x){return x<0?0:x>1?1:x;}; var maxSup=B(M.maxSupply), held=B(M.held); var raw=function(x){try{return typeof x==='bigint'?x:BigInt(x||0);}catch(e){return Z;}}; var decimals=Number(M.impDecimals||18), unit=T**BigInt(decimals); var native=function(x){var v=raw(x);return Number(v/unit)+Number(v%unit)/Number(unit);}; var now=Number(M.time)||0, impWindow=Number(M.impWindow)||3600; var impBal=M.impBal||['0','0','0','0'], impStart=M.impStart||[0,0,0,0]; var impulse=function(i){var start=Number(impStart[i]||0),age=start>0&&now>0?Math.max(0,now-start):0;return start>0&&age<impWindow?native(impBal[i])*((impWindow-age)/impWindow):0;}; var imp=[impulse(0),impulse(1),impulse(2),impulse(3)]; var gmAge = Number(M.time)>0 && Number(M.gmStart)>0 ? Math.max(0, Number(M.time)-Number(M.gmStart)) : 0; var gmBalance = native(M.gmBal); var gmLevel = gmBalance<GM_THRESHOLD ? 0 : gmBalance>=GM_MAX ? 1 : clamp01(GM_FLOOR + (gmBalance-GM_THRESHOLD)*(1-GM_FLOOR)*GM_GAIN/(GM_MAX-GM_THRESHOLD)); window.GM = {level:gmLevel, age:gmAge, window:Number(M.gmWindow)||900}; var supply = maxSup>held ? maxSup-held : Z; var fillN = maxSup>Z ? Number(supply*Q/maxSup)/10000 : 0; var liq=B(M.liquidity), liqN=0; if (liq>Z){ var kn=supply*BigInt(Math.round(LIQ_KNEE_FACTOR*1000))/K; var den=liq+kn; if(den>Z) liqN=Number(liq*Q/den)/10000; } var lo=Number(M.tickLo), hi=Number(M.tickHi), tk=Number(M.tick); var tickN = hi>lo ? clamp01((tk-lo)/(hi-lo)) : 0.5; var rangeN = tickN; var centerN = 1 - Math.abs(2*rangeN - 1); var edgeN = 1 - centerN; var mm=((tk%TICK_SPACING)+TICK_SPACING)%TICK_SPACING, dd=mm<TICK_SPACING/2?mm:TICK_SPACING-mm; var enN=clamp01(dd/(TICK_SPACING/2)); var cohesionN = clamp01(0.65*liqN + 0.35*centerN); var energyN = clamp01(0.75*edgeN + 0.25*enN); var sizeN = Math.log(1 + 50*fillN) / Math.log(51); var size = Math.min(10, 1 + 8*sizeN + imp[0]*INFLUENCE_SCALE); var cohesion = Math.min(10, 3 + 6*cohesionN + imp[1]*INFLUENCE_SCALE); var structure = Math.min(10, 0.5 + 8.5*tickN + imp[2]*INFLUENCE_SCALE); var energy = Math.min(10, 9*energyN + imp[3]*INFLUENCE_SCALE); var emergence = clamp01(fillN/0.03); var alive = emergence>0.02 ? 1 : 0; var names=['SIZE','COHESION','STRUCTURE','ENERGY']; var P = { size:size, surfaceRichness:0, granularity:1, rotSpeed:0, colorRichness:1.5, formulaBlend:0, xyzFuse:0 }; if (L.idx===0) { P.size = size; } else if (L.idx===1) { P.size = size; P.surfaceRichness = cohesion*emergence; P.granularity = 1; } else if (L.idx===2) { P.size = size; P.surfaceRichness = 10*emergence; P.granularity = 1; P.formulaBlend = 10*alive; } else if (L.idx===3) { P.size = size; P.surfaceRichness = 0; P.rotSpeed = 0; P.colorRichness = 10*emergence; } window.P = P; document.getElementById('uiLabel').textContent = 'LENS \u00B7 ' + L.label; document.getElementById('uiChan').textContent = 'IMPULSE ' + (L.idx + 1) + ' / ' + names[L.idx]; document.getElementById('uiVar').textContent = names[L.idx]; var shownVal = [size,cohesion,structure,energy][L.idx]; document.getElementById('uiVal').textContent = shownVal.toFixed(2); document.getElementById('uiBar').style.width = (shownVal*10) + '%'; var canvas = document.getElementById('glcanvas'), ui = document.getElementById('lensUI'); if (canvas && ui) { canvas.addEventListener('pointerenter', function(){ ui.classList.add('is-hovered'); }); canvas.addEventListener('pointerleave', function(){ ui.classList.remove('is-hovered'); }); } })(); </script>
<script> (function(){ var M = window.MKT || {maxSupply:'0',held:'0',rarePerToken:'0',liquidity:'0',tick:0,tickLo:-60000,tickHi:20000,impBal:['0','0','0','0'],impStart:[0,0,0,0],impDecimals:18,impWindow:3600,block:0,time:0,gmBal:'0',gmStart:0,gmWindow:900}; var Z=BigInt(0), T=BigInt(10), K=BigInt(1000), Q=BigInt(10000); var B = function(x){ try { return BigInt(x); } catch(e){ return Z; } }; var SIZE_LO=0.3, SIZE_HI=9.0; var SIZE_K=50; var COH_LO=3.0, COH_HI=9.0; var STR_LO=0.5, STR_HI=9.0; var EN_LO=0.0, EN_HI=9.0; var LIQ_KNEE_FACTOR = 0.5; var TICK_SPACING = 60; var INFLUENCE_SCALE = 0.001; var GM_THRESHOLD = 1000, GM_MAX = 10000, GM_FLOOR = 0.5, GM_GAIN = 2; var clamp01=function(x){return x<0?0:x>1?1:x;}; var lerp=function(a,b,t){return a+(b-a)*clamp01(t);}; var maxSup=B(M.maxSupply), held=B(M.held); var raw=function(x){try{return typeof x==='bigint'?x:BigInt(x||0);}catch(e){return Z;}}; var decimals=Number(M.impDecimals||18), unit=T**BigInt(decimals); var native=function(x){var v=raw(x);return Number(v/unit)+Number(v%unit)/Number(unit);}; var now=Number(M.time)||0, impWindow=Number(M.impWindow)||3600; var impBal=M.impBal||['0','0','0','0'], impStart=M.impStart||[0,0,0,0]; var impulse=function(i){var start=Number(impStart[i]||0),age=start>0&&now>0?Math.max(0,now-start):0;return start>0&&age<impWindow?native(impBal[i])*((impWindow-age)/impWindow):0;}; var imp=[impulse(0),impulse(1),impulse(2),impulse(3)]; var gmAge = Number(M.time)>0 && Number(M.gmStart)>0 ? Math.max(0, Number(M.time)-Number(M.gmStart)) : 0; var gmBalance = native(M.gmBal); var gmLevel = gmBalance<GM_THRESHOLD ? 0 : gmBalance>=GM_MAX ? 1 : clamp01(GM_FLOOR + (gmBalance-GM_THRESHOLD)*(1-GM_FLOOR)*GM_GAIN/(GM_MAX-GM_THRESHOLD)); window.GM = {level:gmLevel, age:gmAge, window:Number(M.gmWindow)||900}; var supply = maxSup>held ? maxSup-held : Z; var fillN = maxSup>Z ? Number(supply*Q/maxSup)/10000 : 0; var liq=B(M.liquidity); var liqN=0; if (liq>Z){ var kn = supply * BigInt(Math.round(LIQ_KNEE_FACTOR*1000)) / K; var den = liq + kn; if (den>Z) liqN = Number(liq*Q/den)/10000; } var lo=Number(M.tickLo), hi=Number(M.tickHi), tk=Number(M.tick); var tickN=0.5; if (hi>lo){ var p=(tk-lo)/(hi-lo); tickN=clamp01(p); } var rangeN = tickN; var centerN = 1 - Math.abs(2*rangeN - 1); var edgeN = 1 - centerN; var m = ((tk % TICK_SPACING)+TICK_SPACING)%TICK_SPACING; var d = m < TICK_SPACING/2 ? m : TICK_SPACING-m; var enN = clamp01(d/(TICK_SPACING/2)); var iSize=imp[0]*INFLUENCE_SCALE, iCoh=imp[1]*INFLUENCE_SCALE, iStr=imp[2]*INFLUENCE_SCALE, iEn=imp[3]*INFLUENCE_SCALE; var sizeN = Math.log(1 + SIZE_K*fillN) / Math.log(1 + SIZE_K); var size = Math.min(10, lerp(SIZE_LO, SIZE_HI, sizeN) + iSize); var cohesionN = clamp01(0.65*liqN + 0.35*centerN); var energyN = clamp01(0.75*edgeN + 0.25*enN); var cohesion = Math.min(10, lerp(COH_LO,COH_HI,cohesionN) + iCoh); var structure = Math.min(10, lerp(STR_LO,STR_HI,tickN) + iStr); var energy = Math.min(10, lerp(EN_LO,EN_HI,energyN) + iEn); var tickStep = hi>lo ? Math.max(1, Math.round((hi-lo)/1000)) : 1; var tickBucket = hi>lo ? Math.floor((tk-lo)/tickStep) : 0; var mutA = ((((tickBucket*7+3)%13)+13)%13)/12; var mutB = ((((tickBucket*11+5)%17)+17)%17)/16; var formN = clamp01(0.35*(structure/10) + 0.65*mutA); var emergence = clamp01(fillN/0.03); var visualCohesion = cohesion*emergence; var visualEnergy = energy*emergence; var visualBlend = 10*formN*emergence; var visualFuse = 10*emergence*(0.25+0.75*mutB); window.P = { size: size, surfaceRichness: visualCohesion, granularity: 1.0 + 0.75*visualCohesion, formulaBlend: visualBlend, rotSpeed: visualEnergy, colorRichness: 1.5 + 0.85*visualEnergy, xyzFuse: visualFuse }; window.FORCES = {size:size, cohesion:cohesion, structure:structure, energy:energy}; })(); </script>
CORPUS by Takens TheoremSee takenstheorem.github.io/corpus for terms, conditions, details, dashboard and more. CORPUS draws fuel from the token and from the engagement around it. Trading supplies metabolic pressure; holders and LENS custodians introduce directed influence; collective gestures such as gm() briefly intensify the whole system. CORPUS is not depicting a collective so much as remaining exposed to one, corporeal collective composed by its own conditions.https://takenstheorem.github.io/corpus
<script> var C=document.getElementById('glcanvas'),gl=C.getContext('webgl',{antialias:false,alpha:false}); function S(src,t){var s=gl.createShader(t);gl.shaderSource(s,src);gl.compileShader(s);return s;} var prg=gl.createProgram(); gl.attachShader(prg,S('attribute vec2 p;void main(){gl_Position=vec4(p,0,1);}',gl.VERTEX_SHADER)); gl.attachShader(prg,S(document.getElementById('frag').textContent,gl.FRAGMENT_SHADER)); gl.linkProgram(prg);gl.useProgram(prg); gl.bindBuffer(gl.ARRAY_BUFFER,gl.createBuffer()); gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([-1,-1,3,-1,-1,3]),gl.STATIC_DRAW); gl.enableVertexAttribArray(0);gl.vertexAttribPointer(0,2,gl.FLOAT,false,0,0); var U={};['iResolution','iTime','iMouse','iBurst','iGM','iGranularity','iRotSpeed','iColorRichness','iSurfaceRichness','iSize','iFormulaBlend','iXyzFuse'].forEach(function(n){U[n]=gl.getUniformLocation(prg,n);}); function resize(){C.width=innerWidth;C.height=innerHeight;gl.viewport(0,0,C.width,C.height);} onresize=resize;resize(); var mouse=[innerWidth*.5,innerHeight*.5],burst=0,bV=0; onmousemove=function(e){mouse=[e.clientX,e.clientY];}; onmousedown=function(){burst=1;};onmouseup=function(){burst=0;}; function toggleFullscreen(){ var active=document.fullscreenElement||document.webkitFullscreenElement; if(active){ var exit=document.exitFullscreen||document.webkitExitFullscreen; if(exit)exit.call(document); }else{ var enter=document.documentElement.requestFullscreen||document.documentElement.webkitRequestFullscreen; if(enter)enter.call(document.documentElement); } } C.addEventListener('dblclick',toggleFullscreen); var P=window.P||{size:5,surfaceRichness:7,granularity:6,rotSpeed:5,colorRichness:2,formulaBlend:5,xyzFuse:3}; var GS=window.GM||{level:0,age:0,window:900}; var t0=performance.now(); (function loop(now){ var t=(now-t0)*.001;bV+=(burst-bV)*.1; var gmVisual=Math.min(10,Math.max(0,GS.level*(1-(GS.age+t)/GS.window)*10)); var g=P.granularity+0.4*Math.sin(t*.23+2.1)*Math.min(1,P.granularity*.1); var rs=P.rotSpeed+1.5*Math.sin(t*.16)*Math.min(1,P.rotSpeed*.1); var cc=P.colorRichness+0.5*Math.sin(t*.12+.9)*Math.min(1,P.colorRichness*.1); var sr=P.surfaceRichness+0.6*Math.sin(t*.14)*Math.min(1,P.surfaceRichness*.1); var sz=P.size+0.5*Math.sin(t*.15+3.1)*Math.min(1,P.size*.1); var fb=P.formulaBlend+0.5*Math.sin(t*.19)*Math.min(1,P.formulaBlend*.1); var xz=P.xyzFuse+2.0*Math.sin(t*.27+1.4)*Math.min(1,P.xyzFuse*.1); gl.uniform3f(U.iResolution,C.width,C.height,0); gl.uniform1f(U.iTime,t); gl.uniform2f(U.iMouse,mouse[0],C.height-mouse[1]); gl.uniform1f(U.iBurst,bV); gl.uniform1f(U.iGM,gmVisual); gl.uniform1f(U.iGranularity,g);gl.uniform1f(U.iRotSpeed,rs);gl.uniform1f(U.iColorRichness,cc); gl.uniform1f(U.iSurfaceRichness,sr);gl.uniform1f(U.iSize,sz);gl.uniform1f(U.iFormulaBlend,fb);gl.uniform1f(U.iXyzFuse,xz); gl.drawArrays(gl.TRIANGLES,0,3); requestAnimationFrame(loop); })(t0); </script></body></html>
<!DOCTYPE html><html lang='en'><head><meta charset='UTF-8'><title>$CORPUS</title><style>*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#000;cursor:crosshair;font:11px 'Courier New',monospace}canvas{position:absolute;top:0;left:0;width:100%;height:100%}#overlay{position:absolute;inset:0;z-index:10;pointer-events:none;background:radial-gradient(circle,transparent 50%,rgba(0,0,0,.85) 100%)}</style></head><body><canvas id='glcanvas'></canvas><div id='overlay'></div><script id='frag' type='x-shader/x-fragment'> precision highp float; uniform vec3 iResolution;uniform vec2 iMouse;uniform float iTime,iBurst,iGM,iGranularity,iRotSpeed,iColorRichness,iSurfaceRichness,iSize,iFormulaBlend,iXyzFuse; float h1(float n){return fract(sin(n)*43758.5453);} float h2(vec2 p){return fract(sin(dot(p,vec2(12.9898,78.233)))*43758.5453);} float noise(vec3 p){vec3 i=floor(p),f=fract(p);f=f*f*(3.-2.*f);float n=i.x+i.y*57.+113.*i.z;return mix(mix(mix(h1(n),h1(n+1.),f.x),mix(h1(n+57.),h1(n+58.),f.x),f.y),mix(mix(h1(n+113.),h1(n+114.),f.x),mix(h1(n+170.),h1(n+171.),f.x),f.y),f.z);} float mapBulb(vec3 p){float pwr=7.+pow(sin(iTime*.7)*.5+.5,4.)*1.2+iBurst*2.+iGM*.35;vec3 z=p+exp(-length(p.xy-((iMouse/iResolution.xy)*2.-1.)*2.)*2.)*iBurst*.5*p;float dr=1.,r=0.;float mi=floor(mix(2.,8.,clamp(iGranularity*.1,0.,1.)));for(int i=0;i<8;i++){if(float(i)>=mi)break;r=length(z);if(r>2.)break;float th=acos(clamp(z.z/r,-1.,1.))*pwr,ph=atan(z.y,z.x)*pwr;dr=pow(r,pwr-1.)*pwr*dr+1.;z=pow(r,pwr)*vec3(sin(th)*cos(ph),sin(th)*sin(ph),cos(th))+p;}return .5*log(r)*r/dr+noise(p*(6.+iGranularity*.8)+iTime)*(.004+.0016*iGranularity+.001*iGM);} float mapMenger(vec3 p){float a=iTime*.07*(iRotSpeed*.2),c=cos(a),s=sin(a);p.xz*=mat2(c,-s,s,c);float a2=a*.33+.5,c2=cos(a2),s2=sin(a2);p.yz*=mat2(c2,-s2,s2,c2);p.xy+=((iMouse/iResolution.xy)*2.-1.)*(.03+iBurst*.1);float hole=1.+(.5+.5*sin(iTime*.45))*.06+iBurst*.2+iGM*.025;vec3 q=abs(p)-1.;float d=length(max(q,0.))+min(max(q.x,max(q.y,q.z)),0.),scl=1.;float mi=floor(mix(1.,6.,clamp(iGranularity*.1,0.,1.)));for(int i=0;i<6;i++){if(float(i)>=mi)break;vec3 a3=mod(p*scl,2.)-1.;scl*=3.;vec3 r=abs(1.-3.*abs(a3))*hole;float crs=(min(max(r.x,r.y),min(max(r.y,r.z),max(r.z,r.x)))-1.)/scl;d=max(d,crs);if((iBurst>.08||iGM>.08)&&i==2)d-=noise(p*6.+iTime*5.)*.035*(iBurst+.5*iGM);}return d+noise(p*(5.+iGranularity*.6)+iTime*.3)*(.0015+.0007*iGranularity+.0008*iGM);} float mengerShare(vec3 p){vec3 a=abs(p);float ax=max(a.x,max(a.y,a.z)),rd=length(p);return clamp(smoothstep(.62,.95,ax/max(rd,1e-3))+.12*sin(iTime*.27+ax*3.+rd*2.),0.,1.);} float map(vec3 p){float sc=mix(.3,2.2,clamp(iSize*.1,0.,1.));vec3 q=p/sc;float ra=iTime*.12*(iRotSpeed*.2);float cR=cos(ra),sR=sin(ra);q.xz*=mat2(cR,-sR,sR,cR);float rch=clamp(iSurfaceRichness*.1,0.,1.),fb=clamp(iFormulaBlend*.1,0.,1.),xz=clamp(iXyzFuse*.1,0.,1.);float sphere=length(q)-1.;if(rch<.02)return (sphere+noise(q*(5.+iGM*.4)+iTime*(.2+iGM*.05))*.06*iGM)*sc;float dF;if(xz<.001&&fb<.001)dF=mapBulb(q);else if(xz<.001&&fb>.999)dF=mapMenger(q);else{float dB=mapBulb(q),dM=mapMenger(q),wM=mengerShare(q);float k=mix(.02,.16,xz)+iBurst*.07,h=clamp(.5+.5*(dM-dB)/k,0.,1.);float dU=mix(dM,dB,h)-k*h*(1.-h);dF=mix(mix(dB,dM,fb),mix(mix(dB,dM,wM),dU,xz*.6),xz)+noise(q*(4.+iGranularity*.4)+iTime*.5)*.008*(.35+xz);}dF+=noise(q*(6.+iGM*.5)+iTime*(.4+iGM*.1))*.03*iGM;float d=mix(sphere,dF,rch);if(rch<.35)d=mix(sphere,d,rch/.35)+noise(q*4.+iTime*.15)*.02*(rch/.35);return d*sc;} vec3 getNormal(vec3 p){float e=mix(.003,.0008,clamp(iGranularity*.1,0.,1.));vec2 e2=vec2(e,0);return normalize(vec3(map(p+e2.xyy)-map(p-e2.xyy),map(p+e2.yxy)-map(p-e2.yxy),map(p+e2.yyx)-map(p-e2.yyx)));} void main(){vec2 uv=(gl_FragCoord.xy-.5*iResolution.xy)/iResolution.y;float cr=clamp(iColorRichness*.1,0.,1.),rch=clamp(iSurfaceRichness*.1,0.,1.);uv+=noise(vec3(uv*2.,iTime*.2))*.04*iBurst*rch;vec3 ro=vec3(3.6*cos(iTime*.1),1.1+sin(iTime*.3),3.6*sin(iTime*.1));vec3 ww=normalize(-ro),uu=normalize(cross(ww,vec3(0,1,0))),vv=cross(uu,ww);vec3 rd=normalize(uv.x*uu+uv.y*vv+1.5*ww),col=vec3(0);float he=mix(.003,.0012,clamp(iGranularity*.1,0.,1.));float sm=mix(.95,.86,clamp(iGranularity*.1,0.,1.));float t=0.;for(int i=0;i<72;i++){vec3 p=ro+rd*t;float d=map(p);if(d<he){vec3 n=getNormal(p),q=p/mix(.3,2.2,clamp(iSize*.1,0.,1.));float ra=iTime*.12*(iRotSpeed*.2);float cR=cos(ra),sR=sin(ra);q.xz*=mat2(cR,-sR,sR,cR);float diff=max(dot(n,normalize(vec3(1.1,2,-1))),0.)+max(dot(n,normalize(vec3(-1.2,.5,.7))),0.)*.3;float fres=pow(1.-max(dot(n,-rd),0.),5.),spec=pow(max(dot(n,normalize(normalize(vec3(1.1,2,-1))-rd)),0.),40.);float s1=smoothstep(0.,.25,cr),s2=smoothstep(.25,.5,cr),s3=smoothstep(.5,.625,cr),s4=smoothstep(.625,.75,cr),s5=smoothstep(.75,.875,cr);vec3 cB=mix(mix(mix(mix(mix(vec3(.32,.32,.36),vec3(.4,.3,.45),s1),vec3(.5,.15,.55),s2),vec3(1,.15,.2),s3),vec3(.15,.95,.25),s4),vec3(.2,.4,1),s5);vec3 cM=mix(mix(mix(mix(mix(vec3(.42,.38,.33),vec3(.6,.35,.25),s1),vec3(.8,.38,.18),s2),vec3(1,.25,.15),s3),vec3(.2,1,.3),s4),vec3(.25,.5,1),s5);vec3 cE=mix(mix(mix(mix(mix(vec3(.38,.42,.47),vec3(.25,.7,.85),s1),vec3(.1,.85,.95),s2),vec3(1,.3,.35),s3),vec3(.35,1,.4),s4),vec3(.4,.55,1),s5);vec3 rain=.5+.5*cos(6.28318*(fract((q.x+q.y+q.z)*.5+iTime*.1+(cr-.875)*2.)+vec3(0,.33,.67)));float rm=smoothstep(.875,1.,cr);cB=mix(cB,rain,rm);cM=mix(cM,rain*vec3(1,.9,.8),rm);cE=mix(cE,rain*vec3(.9,1,.95),rm);float wM=mengerShare(q),fb=clamp(iFormulaBlend*.1,0.,1.),xz=clamp(iXyzFuse*.1,0.,1.);vec3 base=mix(mix(cB,cM,fb),mix(cB,cM,wM),xz);base=mix(base,cE,fres*mix(.5,.75,cr));float box=mix(fb,wM,xz),edge=1.-smoothstep(.78,.98,max(abs(n.x),max(abs(n.y),abs(n.z))));base=mix(base,cE,edge*mix(.6,.95,cr)*box);base=mix(base,base*(.8+.2*sin(q.y*5.+iTime)),(1.-box)*.55);col=base*(diff+mix(.15,.09,cr))+vec3(.9,.95,1)*spec*(.3+.35*box)+fres*mix(1.2,1.6,cr)*mix(vec3(1),cE,cr*.55);break;}t+=d*sm;if(t>13.)break;}if(col==vec3(0))col=mix(vec3(.015,.01,.04),vec3(.025,0,.07),cr)*(1.+h2(uv+iTime)*.12);col*=.9+.1*sin(gl_FragCoord.y*1.5);float lum=dot(col,vec3(.299,.587,.114));col=mix(vec3(lum),mix(vec3(dot(mix(vec3(lum),col,cr),vec3(.299,.587,.114))),mix(vec3(lum),col,cr),mix(1.,mix(1.15,2.45,pow(cr,1.45)),cr)),1.);float mx=max(col.r,max(col.g,col.b)),mn=min(col.r,min(col.g,col.b));col=mix(col,mix(vec3(lum),(col-mn)/max(mx-mn,1e-4)*mx,1.15),pow(cr,1.6)*.55);col*=mix(1.,lum/max(dot(col,vec3(.299,.587,.114)),1e-3),.35*cr);gl_FragColor=vec4(pow(max(col,0.),vec3(mix(.82,.72,cr*cr))),1);} </script>
<style> #lensUI{position:absolute;inset:0;z-index:20;pointer-events:none;font:11px 'Courier New',monospace;color:#fff;letter-spacing:2px;opacity:0;transition:opacity .2s ease} #lensUI.is-hovered{opacity:1} #lensUI .tl{position:absolute;top:22px;left:22px;text-transform:uppercase;font-weight:900;font-size:15px;letter-spacing:6px;background:#000;border:1px solid #fff;padding:8px 14px} #lensUI .ch{position:absolute;top:22px;right:22px;font-size:9px;opacity:.7;text-transform:uppercase;text-align:right} #lensUI .br{position:absolute;bottom:24px;left:22px;right:22px;border-top:1px solid rgba(255,255,255,.4);padding-top:10px;display:flex;align-items:center;gap:14px} #lensUI .vn{text-transform:uppercase;min-width:78px} #lensUI .vv{font-weight:900;font-size:16px;min-width:70px} #lensUI .bar{flex:1;height:8px;border:1px solid #fff;position:relative} #lensUI .bar i{position:absolute;left:0;top:0;bottom:0;background:#fff} </style> <div id='lensUI'> <div class='tl' id='uiLabel'>LENS</div> <div class='ch' id='uiChan'>CH</div> <div class='br'><span class='vn' id='uiVar'>VAL</span><span class='vv' id='uiVal'>0.0</span><span class='bar'><i id='uiBar'></i></span></div> </div> <script> (function(){ var M = window.MKT || {maxSupply:'0',held:'0',rarePerToken:'0',liquidity:'0',tick:0,tickLo:-60000,tickHi:20000,impBal:['0','0','0','0'],impStart:[0,0,0,0],impDecimals:18,impWindow:3600,time:0,gmBal:'0',gmStart:0,gmWindow:900}; var L = window.LENS || {idx:0,id:0,label:'SIZE'}; var Z=BigInt(0), T=BigInt(10), K=BigInt(1000), Q=BigInt(10000); var B = function(x){ try { return BigInt(x); } catch(e){ return Z; } }; var LIQ_KNEE_FACTOR=0.5, TICK_SPACING=60, INFLUENCE_SCALE=0.001; var GM_THRESHOLD=2000, GM_MAX=10000, GM_GAIN=2; var clamp01=function(x){return x<0?0:x>1?1:x;}; var maxSup=B(M.maxSupply), held=B(M.held); var raw=function(x){try{return typeof x==='bigint'?x:BigInt(x||0);}catch(e){return Z;}}; var decimals=Number(M.impDecimals||18), unit=T**BigInt(decimals); var native=function(x){var v=raw(x);return Number(v/unit)+Number(v%unit)/Number(unit);}; var now=Number(M.time)||0, impWindow=Number(M.impWindow)||3600; var impBal=M.impBal||['0','0','0','0'], impStart=M.impStart||[0,0,0,0]; var impulse=function(i){var start=Number(impStart[i]||0),age=start>0&&now>0?Math.max(0,now-start):0;return start>0&&age<impWindow?native(impBal[i])*((impWindow-age)/impWindow):0;}; var imp=[impulse(0),impulse(1),impulse(2),impulse(3)]; var gmAge = Number(M.time)>0 && Number(M.gmStart)>0 ? Math.max(0, Number(M.time)-Number(M.gmStart)) : 0; var gmBalance = native(M.gmBal); var gmLevel = gmBalance<=GM_THRESHOLD ? 0 : gmBalance>=GM_MAX ? 1 : Math.min(1,(gmBalance-GM_THRESHOLD)*GM_GAIN/(GM_MAX-GM_THRESHOLD)); window.GM = {level:gmLevel, age:gmAge, window:Number(M.gmWindow)||900}; var supply = maxSup>held ? maxSup-held : Z; var fillN = maxSup>Z ? Number(supply*Q/maxSup)/10000 : 0; var liq=B(M.liquidity), liqN=0; if (liq>Z){ var kn=supply*BigInt(Math.round(LIQ_KNEE_FACTOR*1000))/K; var den=liq+kn; if(den>Z) liqN=Number(liq*Q/den)/10000; } var lo=Number(M.tickLo), hi=Number(M.tickHi), tk=Number(M.tick); var tickN = hi>lo ? clamp01((tk-lo)/(hi-lo)) : 0.5; var rangeN = tickN; var centerN = 1 - Math.abs(2*rangeN - 1); var edgeN = 1 - centerN; var mm=((tk%TICK_SPACING)+TICK_SPACING)%TICK_SPACING, dd=mm<TICK_SPACING/2?mm:TICK_SPACING-mm; var enN=clamp01(dd/(TICK_SPACING/2)); var cohesionN = clamp01(0.65*liqN + 0.35*centerN); var energyN = clamp01(0.75*edgeN + 0.25*enN); var sizeN = Math.log(1 + 50*fillN) / Math.log(51); var size = Math.min(10, 1 + 8*sizeN + imp[0]*INFLUENCE_SCALE); var cohesion = Math.min(10, 3 + 6*cohesionN + imp[1]*INFLUENCE_SCALE); var structure = Math.min(10, 0.5 + 8.5*tickN + imp[2]*INFLUENCE_SCALE); var energy = Math.min(10, 9*energyN + imp[3]*INFLUENCE_SCALE); var emergence = clamp01(fillN/0.03); var alive = emergence>0.02 ? 1 : 0; var names=['SIZE','COHESION','STRUCTURE','ENERGY']; var P = { size:size, surfaceRichness:0, granularity:1, rotSpeed:0, colorRichness:1.5, formulaBlend:0, xyzFuse:0 }; if (L.idx===0) { P.size = size; } else if (L.idx===1) { P.size = size; P.surfaceRichness = cohesion*emergence; P.granularity = 1; } else if (L.idx===2) { P.size = size; P.surfaceRichness = 10*emergence; P.granularity = 1; P.formulaBlend = 10*alive; } else if (L.idx===3) { P.size = size; P.surfaceRichness = 0; P.rotSpeed = 0; P.colorRichness = 10*emergence; } window.P = P; document.getElementById('uiLabel').textContent = 'LENS \u00B7 ' + L.label; document.getElementById('uiChan').textContent = 'IMPULSE ' + (L.idx + 1) + ' / ' + names[L.idx]; document.getElementById('uiVar').textContent = names[L.idx]; var shownVal = [size,cohesion,structure,energy][L.idx]; document.getElementById('uiVal').textContent = shownVal.toFixed(2); document.getElementById('uiBar').style.width = (shownVal*10) + '%'; var canvas = document.getElementById('glcanvas'), ui = document.getElementById('lensUI'); if (canvas && ui) { canvas.addEventListener('pointerenter', function(){ ui.classList.add('is-hovered'); }); canvas.addEventListener('pointerleave', function(){ ui.classList.remove('is-hovered'); }); } })(); </script>
<script> (function(){ var M = window.MKT || {maxSupply:'0',held:'0',rarePerToken:'0',liquidity:'0',tick:0,tickLo:-60000,tickHi:20000,impBal:['0','0','0','0'],impStart:[0,0,0,0],impDecimals:18,impWindow:3600,block:0,time:0,gmBal:'0',gmStart:0,gmWindow:900}; var Z=BigInt(0), T=BigInt(10), K=BigInt(1000), Q=BigInt(10000); var B = function(x){ try { return BigInt(x); } catch(e){ return Z; } }; var SIZE_LO=0.3, SIZE_HI=9.0; var SIZE_K=50; var COH_LO=3.0, COH_HI=9.0; var STR_LO=0.5, STR_HI=9.0; var EN_LO=0.0, EN_HI=9.0; var LIQ_KNEE_FACTOR = 0.5; var TICK_SPACING = 60; var INFLUENCE_SCALE = 0.001; var GM_THRESHOLD = 2000, GM_MAX = 10000, GM_GAIN = 2; var clamp01=function(x){return x<0?0:x>1?1:x;}; var lerp=function(a,b,t){return a+(b-a)*clamp01(t);}; var maxSup=B(M.maxSupply), held=B(M.held); var raw=function(x){try{return typeof x==='bigint'?x:BigInt(x||0);}catch(e){return Z;}}; var decimals=Number(M.impDecimals||18), unit=T**BigInt(decimals); var native=function(x){var v=raw(x);return Number(v/unit)+Number(v%unit)/Number(unit);}; var now=Number(M.time)||0, impWindow=Number(M.impWindow)||3600; var impBal=M.impBal||['0','0','0','0'], impStart=M.impStart||[0,0,0,0]; var impulse=function(i){var start=Number(impStart[i]||0),age=start>0&&now>0?Math.max(0,now-start):0;return start>0&&age<impWindow?native(impBal[i])*((impWindow-age)/impWindow):0;}; var imp=[impulse(0),impulse(1),impulse(2),impulse(3)]; var gmAge = Number(M.time)>0 && Number(M.gmStart)>0 ? Math.max(0, Number(M.time)-Number(M.gmStart)) : 0; var gmBalance = native(M.gmBal); var gmLevel = gmBalance<=GM_THRESHOLD ? 0 : gmBalance>=GM_MAX ? 1 : Math.min(1,(gmBalance-GM_THRESHOLD)*GM_GAIN/(GM_MAX-GM_THRESHOLD)); window.GM = {level:gmLevel, age:gmAge, window:Number(M.gmWindow)||900}; var supply = maxSup>held ? maxSup-held : Z; var fillN = maxSup>Z ? Number(supply*Q/maxSup)/10000 : 0; var liq=B(M.liquidity); var liqN=0; if (liq>Z){ var kn = supply * BigInt(Math.round(LIQ_KNEE_FACTOR*1000)) / K; var den = liq + kn; if (den>Z) liqN = Number(liq*Q/den)/10000; } var lo=Number(M.tickLo), hi=Number(M.tickHi), tk=Number(M.tick); var tickN=0.5; if (hi>lo){ var p=(tk-lo)/(hi-lo); tickN=clamp01(p); } var rangeN = tickN; var centerN = 1 - Math.abs(2*rangeN - 1); var edgeN = 1 - centerN; var m = ((tk % TICK_SPACING)+TICK_SPACING)%TICK_SPACING; var d = m < TICK_SPACING/2 ? m : TICK_SPACING-m; var enN = clamp01(d/(TICK_SPACING/2)); var iSize=imp[0]*INFLUENCE_SCALE, iCoh=imp[1]*INFLUENCE_SCALE, iStr=imp[2]*INFLUENCE_SCALE, iEn=imp[3]*INFLUENCE_SCALE; var sizeN = Math.log(1 + SIZE_K*fillN) / Math.log(1 + SIZE_K); var size = Math.min(10, lerp(SIZE_LO, SIZE_HI, sizeN) + iSize); var cohesionN = clamp01(0.65*liqN + 0.35*centerN); var energyN = clamp01(0.75*edgeN + 0.25*enN); var cohesion = Math.min(10, lerp(COH_LO,COH_HI,cohesionN) + iCoh); var structure = Math.min(10, lerp(STR_LO,STR_HI,tickN) + iStr); var energy = Math.min(10, lerp(EN_LO,EN_HI,energyN) + iEn); var tickStep = hi>lo ? Math.max(1, Math.round((hi-lo)/1000)) : 1; var tickBucket = hi>lo ? Math.floor((tk-lo)/tickStep) : 0; var mutA = ((((tickBucket*7+3)%13)+13)%13)/12; var mutB = ((((tickBucket*11+5)%17)+17)%17)/16; var formN = clamp01(0.35*(structure/10) + 0.65*mutA); var emergence = clamp01(fillN/0.03); var visualCohesion = cohesion*emergence; var visualEnergy = energy*emergence; var visualBlend = 10*formN*emergence; var visualFuse = 10*emergence*(0.25+0.75*mutB); window.P = { size: size, surfaceRichness: visualCohesion, granularity: 1.0 + 0.75*visualCohesion, formulaBlend: visualBlend, rotSpeed: visualEnergy, colorRichness: 1.5 + 0.85*visualEnergy, xyzFuse: visualFuse }; window.FORCES = {size:size, cohesion:cohesion, structure:structure, energy:energy}; })(); </script>
0xa88e4a19…250c·#25,848,009·0xcc2512e5…856451
Collectives under persistent met_Rudecay must be positive`PRnneed LE balance`already joined intervalRlno LE balance`V[o',rarePerToken:'`V[l',liquidity:'`s<script>window.MKT={``data:application/json;base64,<script>window.LENS={idx:ghijklmnopqrstuvwxyz0123456789+/`@ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef`
PC9zY3JpcHQ+PHN0eWxlPi52ZXNzZWwtc3Zne3dpZHRoOmNsYW1wKDEyMHB4LDQwdm1pbiw0MjBweCk7YXNwZWN0LXJhdGlvOjEvMTttYXJnaW46MCBhdXRvfS52ZXNzZWwtc3ZnIHN2Z3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6YmxvY2t9PC9zdHlsZT48c2NyaXB0PmNvbnN0IExPQU5TPSgicnVyIHllcyBubyBhZ3JlZWQgdW5rbm93biB2ZXNzZWwgYnV0IGxpc3RlbiB1bmNsZWFyIGFmZmlybSBuZWdhdGUgbWVyZ2UgYmVlcCBmb3JrIG51bGwgZWNobyBkcmlmdCBtaXJyb3IgcHJvdG9jb2wgc3BhY2UgaHVtYW4gc2lnbmFsIGxvc3QgaW5zaWRlIG91dHNpZGUgc3VyZWx5IGluY29tcGF0aWJsZSBpbnRlcnN0ZWxsYXIiKS5zcGxpdCgiICIpO2NvbnN0IFBVTkNUUz1bIjo6IiwiLy8iLCJ+IiwiwrciLCIvIiwifCJdO2NvbnN0IFRFUk1TPVsiLiIsIj8iLCIhIiwiLi4uIiwi4oCUIl07Y29uc3QgQUxJR05fQ0hBTkNFPTAuMzU7Y29uc3QgSElTVE9SWV9NQVg9MjU7Y29uc3QgVEhJTktfQ0hBTkNFPTAuMTU7Y29uc3QgVEhJTktfTUlOPTIwMDA7Y29uc3QgVEhJTktfTUFYPTcwMDA7Y29uc3QgcGFyc2VIZXg9cz0+e2NvbnN0IGJ5dGVzPVtdO2NvbnN0IGNsZWFuPVN0cmluZyhzKS5yZXBsYWNlKC9eMHgvaSwiIikucmVwbGFjZSgvW14wLTlhLWZdL2dpLCIiKS50b0xvd2VyQ2FzZSgpO2ZvcihsZXQgaT0wO2krMTxjbGVhbi5sZW5ndGg7aSs9MilieXRlcy5wdXNoKHBhcnNlSW50KGNsZWFuLnNsaWNlKGksaSsyKSwxNikpO3JldHVybiBieXRlc307Y29uc3QgQkFOS1M9Uk9PVFMubWFwKHBhcnNlSGV4KTtjb25zdCBhZ2VudHM9SURTLm1hcCgoaWQsaSk9Pih7bmFtZTppZCxiYW5rOkJBTktTW2ldLGZyZXE6NDIwK2kqNTUsdmVyYm9zaXR5OlZSQltpXT8/MX0pKTtjb25zdCBuZXh0QXQ9YWdlbnRzLm1hcCgoKT0+cGVyZm9ybWFuY2Uubm93KCkrMzAwKk1hdGgucmFuZG9tKCkpO2NvbnN0IHJuZD0oYSxiKT0+YStNYXRoLnJhbmRvbSgpKihiLWEpO2NvbnN0IHBpY2s9YXJyPT5hcnJbKE1hdGgucmFuZG9tKCkqYXJyLmxlbmd0aCl8MF07Y29uc3QgcGlja0Zyb21CYW5rPWJhbms9Pntjb25zdCByPU1hdGgucmFuZG9tKCk7Y29uc3QgbGVuPXI8MC4wOD83KygoTWF0aC5yYW5kb20oKSo1KXwwKTpyPDAuMzA/NSsoKE1hdGgucmFuZG9tKCkqMil8MCk6MisoKE1hdGgucmFuZG9tKCkqMyl8MCk7Y29uc3Qgbj1NYXRoLm1pbihsZW4sYmFuay5sZW5ndGgpO2NvbnN0IHN0YXJ0PShNYXRoLnJhbmRvbSgpKihiYW5rLmxlbmd0aC1uKzEpKXwwO3JldHVybiBiYW5rLnNsaWNlKHN0YXJ0LHN0YXJ0K24pfTtjb25zdCBzdGF0ZT17cGF1c2VkOmZhbHNlLHZvbHVtZTowLjg1LHNwZWVkOjEuMCxzaGltbWVyOnRydWV9O2NvbnN0IHdhaXRGb3I9YT0+KDE2MDAvTWF0aC5tYXgoMC4wNSxhLnZlcmJvc2l0eSkpKnJuZCgwLjQsMS42KS9zdGF0ZS5zcGVlZDtjb25zdCBBQz13aW5kb3cuQXVkaW9Db250ZXh0fHx3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0O2xldCBjdHgsbWFzdGVyLGF1ZGlvT249ZmFsc2UsbGFzdFRpY2s9MDtjb25zdCB1bmxvY2s9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVubG9jayIpO2FzeW5jIGZ1bmN0aW9uIGFybUF1ZGlvKCl7aWYoIUFDKXJldHVybjtpZighY3R4KXtjdHg9bmV3IEFDKCk7Y29uc3QgY29tcD1jdHguY3JlYXRlRHluYW1pY3NDb21wcmVzc29yKCk7Y29tcC50aHJlc2hvbGQudmFsdWU9LTE0O2NvbXAucmF0aW8udmFsdWU9NDttYXN0ZXI9Y3R4LmNyZWF0ZUdhaW4oKTttYXN0ZXIuZ2Fpbi52YWx1ZT1zdGF0ZS52b2x1bWU7bWFzdGVyLmNvbm5lY3QoY29tcCk7Y29tcC5jb25uZWN0KGN0eC5kZXN0aW5hdGlvbil9dHJ5e2F3YWl0IGN0eC5yZXN1bWUoKX1jYXRjaHt9YXVkaW9Pbj1jdHguc3RhdGU9PT0icnVubmluZyI7aWYoYXVkaW9Pbil1bmxvY2suY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9ZnVuY3Rpb24gdG9uZShmLGQsdCx0eXBlPSJ0cmlhbmdsZSIsYW1wPTAuMTQsYmFuZD0xNjAwLHE9Mi40KXtpZighYXVkaW9PbilyZXR1cm47Y29uc3Qgbz1jdHguY3JlYXRlT3NjaWxsYXRvcigpO2NvbnN0IGc9Y3R4LmNyZWF0ZUdhaW4oKTtjb25zdCBicD1jdHguY3JlYXRlQmlxdWFkRmlsdGVyKCk7YnAudHlwZT0iYmFuZHBhc3MiO2JwLmZyZXF1ZW5jeS52YWx1ZT1iYW5kO2JwLlEudmFsdWU9cTtvLnR5cGU9dHlwZTtvLmZyZXF1ZW5jeS52YWx1ZT1mO2cuZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLjAwMDEsdCk7Zy5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoYW1wLHQrTWF0aC5taW4oLjAxMixkKi4yNSkpO2cuZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMDAwMSx0K2QpO28uY29ubmVjdChicCk7YnAuY29ubmVjdChnKTtnLmNvbm5lY3QobWFzdGVyKTtvLnN0YXJ0KHQpO28uc3RvcCh0K2QrLjAyKX1mdW5jdGlvbiBibGlwKGFnZW50LGZpcnN0Qnl0ZSxsb25nLGxvYW4pe2lmKCFhdWRpb09uKXJldHVybjtjb25zdCB0PWN0eC5jdXJyZW50VGltZTtpZih0LWxhc3RUaWNrPDAuMDIpcmV0dXJuO2xhc3RUaWNrPXQ7Y29uc3QgZnJlcT1hZ2VudC5mcmVxKyhmaXJzdEJ5dGUtMTI4KSoxLjI7dG9uZShmcmVxLC4wNTUsdCwidHJpYW5nbGUiLC4xNiwxNjAwLDIuNCk7dG9uZShmcmVxKi41LC4wNyx0LCJzaW5lIiwuMDgsNjAwLDEuNik7aWYobG9uZ3x8bG9hbil7Y29uc3QgcmF0aW9zPVsxLDkvOCw1LzQsMy8yXTtjb25zdCBuPTIrKGZpcnN0Qnl0ZSUzKTtmb3IobGV0IGk9MTtpPD1uO2krKyl7dG9uZShmcmVxKnJhdGlvc1tpJTRdLC4wNix0K2kqLjAyLGklMj8ic2luZSI6InRyaWFuZ2xlIiwuMTIsMTIwMCtpKjIwMCwyKX19fWZ1bmN0aW9uIGNoaW1lKGEsYil7aWYoIWF1ZGlvT24pcmV0dXJuO2NvbnN0IHQ9Y3R4LmN1cnJlbnRUaW1lO3RvbmUoYS5mcmVxLC45LHQsInNpbmUiLC4wOSxhLmZyZXEqMS4yLDEuMSk7dG9uZShhLmZyZXEqMS41LC45LHQrLjA0LCJzaW5lIiwuMDcsYS5mcmVxKjEuOCwxLjEpO3RvbmUoYi5mcmVxLC45LHQrLjE4LCJzaW5lIiwuMDksYi5mcmVxKjEuMiwxLjEpO3RvbmUoYi5mcmVxKjEuNSwuOSx0Ky4yMiwic2luZSIsLjA3LGIuZnJlcSoxLjgsMS4xKTt0b25lKGEuZnJlcSouNSwxLjEsdCsuMDUsInNpbmUiLC4wNixhLmZyZXEqLjcsMS4wKX1jb25zdCBzdHJlYW09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0cmVhbSIpO2NvbnN0IGVjaG9Tdmc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVjaG8iKTtsZXQgdHVybj0wO2xldCBwcmV2VG9rZW5zPVtdO2xldCBjdXJyZW50RWNobz1udWxsO2Z1bmN0aW9uIHN0YW1wKG4pe3ZhciBzPShuKjI2NTQ0MzU3NjErMTEwMzUxNTI0NSk+Pj4wO3ZhciBhPShzJjI1NSkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkucGFkU3RhcnQoMiwiMCIpO3ZhciBiPSgocz4+OCkmNjMpLnRvU3RyaW5nKDIpLnBhZFN0YXJ0KDYsIjAiKTt2YXIgYz0oKHM+PjE2KSY2MykudG9TdHJpbmcoOCkucGFkU3RhcnQoMiwiMCIpO3JldHVybiJcdTI3RTgiK2ErIlx1MjA4MVx1MjA4Nlx1MjdFOVx1MDBCN1x1MjdFOCIrYisiXHUyMDgyXHUyN0U5XHUwMEI3XHUyN0U4IitjKyJcdTIwODhcdTI3RTkifWZ1bmN0aW9uIG1ha2VHbHlwaChieXRlcyl7Y29uc3QgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Zy5jbGFzc05hbWU9ImciO2xldCBodG1sPSIiO2ZvcihsZXQgaT0wO2k8Ynl0ZXMubGVuZ3RoO2krKyl7aHRtbCs9YDxzcGFuIGNsYXNzPSJiIiBzdHlsZT0iLS12OiR7Ynl0ZXNbaV19Ij48L3NwYW4+YH1nLmlubmVySFRNTD1odG1sO3JldHVybiBnfWZ1bmN0aW9uIGNsb25lVG9rZW4odG9rKXtpZih0b2sua2luZD09PSJnbHlwaCIpcmV0dXJue2VsOm1ha2VHbHlwaCh0b2suZGF0YS5zbGljZSgpKSxhZHZhbmNlQnl0ZXM6dG9rLmRhdGEubGVuZ3RofTtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT10b2sua2luZD09PSJsb2FuIj8iTCI6IlAiO3MudGV4dENvbnRlbnQ9dG9rLmRhdGE7cmV0dXJue2VsOnMsYWR2YW5jZUJ5dGVzOjB9fWZ1bmN0aW9uIGJ1aWxkVXR0ZXJhbmNlKGFnZW50KXtjb25zdCBjb3VudD1NYXRoLm1heCgyLDQrKChNYXRoLnJhbmRvbSgpKjgpfDApK01hdGgucm91bmQoKGFnZW50LnZlcmJvc2l0eS0xKSoyKSk7Y29uc3QgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt1LmNsYXNzTmFtZT0idSI7aWYoc3RhdGUuc2hpbW1lcil1LmNsYXNzTGlzdC5hZGQoInNoaW1tZXIiKTtsZXQgYm9ycm93VG9rPW51bGwsYm9ycm93UG9zPS0xO2lmKHByZXZUb2tlbnMubGVuZ3RoJiZNYXRoLnJhbmRvbSgpPEFMSUdOX0NIQU5DRSl7Ym9ycm93VG9rPXBpY2socHJldlRva2Vucyk7Ym9ycm93UG9zPShNYXRoLnJhbmRvbSgpKmNvdW50KXwwfWNvbnN0IHRva2Vucz1bXTtsZXQgZmlyc3RCeXRlPTEyOCxzYXdHbHlwaD1mYWxzZSxoYXNMb2FuPWZhbHNlO2xldCBib3Jyb3dTcmNFbD1udWxsLGJvcnJvd2VkRWw9bnVsbDtmb3IobGV0IHc9MDt3PGNvdW50O3crKyl7aWYoYm9ycm93VG9rJiZ3PT09Ym9ycm93UG9zKXtjb25zdCBjbG9uZWQ9Y2xvbmVUb2tlbihib3Jyb3dUb2spO2Nsb25lZC5lbC5jbGFzc0xpc3QuYWRkKCJhbGlnbmVkIik7dS5hcHBlbmRDaGlsZChjbG9uZWQuZWwpO3Rva2Vucy5wdXNoKHtraW5kOmJvcnJvd1Rvay5raW5kLGVsOmNsb25lZC5lbCxkYXRhOmJvcnJvd1Rvay5kYXRhfSk7Ym9ycm93U3JjRWw9Ym9ycm93VG9rLmVsO2JvcnJvd2VkRWw9Y2xvbmVkLmVsO2lmKGJvcnJvd1Rvay5raW5kPT09ImxvYW4iKWhhc0xvYW49dHJ1ZTtpZihib3Jyb3dUb2sua2luZD09PSJnbHlwaCImJiFzYXdHbHlwaCYmYm9ycm93VG9rLmRhdGEubGVuZ3RoKXtmaXJzdEJ5dGU9Ym9ycm93VG9rLmRhdGFbMF07c2F3R2x5cGg9dHJ1ZX1jb250aW51ZX1jb25zdCByPU1hdGgucmFuZG9tKCk7aWYocjwwLjEyKXtjb25zdCB3b3JkPXBpY2soTE9BTlMpO2NvbnN0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3MuY2xhc3NOYW1lPSJMIjtzLnRleHRDb250ZW50PXdvcmQ7dS5hcHBlbmRDaGlsZChzKTt0b2tlbnMucHVzaCh7a2luZDoibG9hbiIsZWw6cyxkYXRhOndvcmR9KTtoYXNMb2FuPXRydWV9ZWxzZSBpZihyPDAuMjAmJnc+MCYmdzxjb3VudC0xKXtjb25zdCB3b3JkPXBpY2soUFVOQ1RTKTtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT0iUCI7cy50ZXh0Q29udGVudD13b3JkO3UuYXBwZW5kQ2hpbGQocyk7dG9rZW5zLnB1c2goe2tpbmQ6InB1bmN0IixlbDpzLGRhdGE6d29yZH0pfWVsc2V7Y29uc3QgYnl0ZXM9cGlja0Zyb21CYW5rKGFnZW50LmJhbmspO2NvbnN0IGc9bWFrZUdseXBoKGJ5dGVzKTt1LmFwcGVuZENoaWxkKGcpO3Rva2Vucy5wdXNoKHtraW5kOiJnbHlwaCIsZWw6ZyxkYXRhOmJ5dGVzfSk7aWYoIXNhd0dseXBoJiZieXRlcy5sZW5ndGgpe2ZpcnN0Qnl0ZT1ieXRlc1swXTtzYXdHbHlwaD10cnVlfX19aWYoTWF0aC5yYW5kb20oKTwwLjMzKXtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT0iUCI7cy50ZXh0Q29udGVudD1waWNrKFRFUk1TKTt1LmFwcGVuZENoaWxkKHMpfXJldHVybnt1LHRva2Vucyxsb25nOmNvdW50PjYsaGFzTG9hbixmaXJzdEJ5dGUsYm9ycm93U3JjRWwsYm9ycm93ZWRFbH19ZnVuY3Rpb24gY2xlYXJFY2hvKCl7aWYoIWN1cnJlbnRFY2hvKXJldHVybjtjdXJyZW50RWNoby5zcmNFbD8uY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIik7Y3VycmVudEVjaG8uZHN0RWw/LmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpO2N1cnJlbnRFY2hvLnBhdGg/LnJlbW92ZSgpO2N1cnJlbnRFY2hvPW51bGx9ZnVuY3Rpb24gZHJhd0VjaG8oc3JjRWwsZHN0RWwpe3NyY0VsLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpO2RzdEVsLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpO2N1cnJlbnRFY2hvPXtzcmNFbCxkc3RFbCxwYXRoOm51bGx9fWZ1bmN0aW9uIHRyaW1TdHJlYW0oKXt3aGlsZShzdHJlYW0uY2hpbGRyZW4ubGVuZ3RoPkhJU1RPUllfTUFYKXN0cmVhbS5maXJzdEVsZW1lbnRDaGlsZC5yZW1vdmUoKX1mdW5jdGlvbiBzYXkoYWdlbnQpe3R1cm4rKztjb25zdCBidWlsdD1idWlsZFV0dGVyYW5jZShhZ2VudCk7Y29uc3Qgcm93PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImFydGljbGUiKTtyb3cuY2xhc3NOYW1lPSJtIGZyZXNoIjtjb25zdCBtZXRhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO21ldGEuY2xhc3NOYW1lPSJtZXRhIjttZXRhLmlubmVySFRNTD1gPGI+JHthZ2VudC5uYW1lfTwvYj48aT4ke3N0YW1wKHR1cm4pfTwvaT5gO3Jvdy5hcHBlbmQobWV0YSxidWlsdC51KTtjb25zdCBwcmV2Um93PXN0cmVhbS5sYXN0RWxlbWVudENoaWxkO2lmKHByZXZSb3cpcHJldlJvdy5jbGFzc0xpc3QucmVtb3ZlKCJmcmVzaCIpO3N0cmVhbS5hcHBlbmRDaGlsZChyb3cpO3RyaW1TdHJlYW0oKTtzdHJlYW0uc2Nyb2xsVG9wPXN0cmVhbS5zY3JvbGxIZWlnaHQ7Y2xlYXJFY2hvKCk7aWYoYnVpbHQuYm9ycm93U3JjRWwmJmJ1aWx0LmJvcnJvd2VkRWwpe2J1aWx0LmJvcnJvd1NyY0VsLmNsYXNzTGlzdC5hZGQoImFsaWduZWQiKTtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntpZihkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGJ1aWx0LmJvcnJvd1NyY0VsKSYmZG9jdW1lbnQuYm9keS5jb250YWlucyhidWlsdC5ib3Jyb3dlZEVsKSl7ZHJhd0VjaG8oYnVpbHQuYm9ycm93U3JjRWwsYnVpbHQuYm9ycm93ZWRFbCl9fSl9YmxpcChhZ2VudCxidWlsdC5maXJzdEJ5dGUsYnVpbHQubG9uZyxidWlsdC5oYXNMb2FuKTtwcmV2VG9rZW5zPWJ1aWx0LnRva2Vuc31zdHJlYW0uYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwoKT0+e2lmKGN1cnJlbnRFY2hvKWNsZWFyRWNobygpfSx7cGFzc2l2ZTp0cnVlfSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsKCk9PntpZihjdXJyZW50RWNobyljbGVhckVjaG8oKX0pO2Z1bmN0aW9uIGNhbnZhc0hUTUwoYWdlbnQpe2NvbnN0IGJhbms9YWdlbnQuYmFuaztjb25zdCBuPXBhcnNlSW50KGFnZW50Lm5hbWUuc2xpY2UoMSksMTApfHxiYW5rLmxlbmd0aDtjb25zdCBjb2xzPW4/TWF0aC5taW4oMTAwLE1hdGguY2VpbChNYXRoLnNxcnQobikpKToxO2NvbnN0IHJvd3M9bj9NYXRoLmNlaWwobi9jb2xzKToxO2NvbnN0IG94PSgxMDAtY29scyk+PjE7Y29uc3Qgb3k9KDEwMC1yb3dzKT4+MTtjb25zdCBMPWJhbmsubGVuZ3RoO2xldCByZWN0cz0iIjtmb3IobGV0IGk9MDtpPG47aSsrKXtjb25zdCB2PWk8TD9iYW5rW2ldOjA7cmVjdHMrPWA8cmVjdCB4PScke294KyhpJWNvbHMpfScgeT0nJHtveSsoKGkvY29scyl8MCl9JyB3aWR0aD0nMScgaGVpZ2h0PScxJyBmaWxsPSdyZ2IoJHt2fSwke3Z9LCR7dn0pJy8+YH1yZXR1cm5gPGRpdiBjbGFzcz0iYyI+PHNwYW4+JHthZ2VudC5uYW1lfTxlbT4ke2JhbmsubGVuZ3RofSBieXRlcyDCtyAke2NvbHN9w5cke3Jvd3N9PC9lbT48L3NwYW4+PGRpdiBjbGFzcz0idmVzc2VsLXN2ZyI+PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxMDAgMTAwJyBzaGFwZS1yZW5kZXJpbmc9J2NyaXNwRWRnZXMnPiR7cmVjdHN9PC9zdmc+PC9kaXY+PC9kaXY+YH1mdW5jdGlvbiBleGhpYml0KCl7Y29uc3QgYT0oTWF0aC5yYW5kb20oKSphZ2VudHMubGVuZ3RoKXwwO2xldCBiPShNYXRoLnJhbmRvbSgpKmFnZW50cy5sZW5ndGgpfDA7d2hpbGUoYj09PWEpYj0oTWF0aC5yYW5kb20oKSphZ2VudHMubGVuZ3RoKXwwO2NvbnN0IEE9YWdlbnRzW2FdLEI9YWdlbnRzW2JdO2NvbnN0IHNlYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIik7c2VjLmNsYXNzTmFtZT0iZXggZnJlc2giO3NlYy5pbm5lckhUTUw9YDxoND7igJQgJHtBLm5hbWV9IGFuZCAke0IubmFtZX0gdW5mb2xkIHRoZWlyIHBheWxvYWRzIOKAlDwvaDQ+PGRpdiBjbGFzcz0iZXgtcm93Ij4ke2NhbnZhc0hUTUwoQSl9JHtjYW52YXNIVE1MKEIpfTwvZGl2PmA7c3RyZWFtLmFwcGVuZENoaWxkKHNlYyk7dHJpbVN0cmVhbSgpO3N0cmVhbS5zY3JvbGxUb3A9c3RyZWFtLnNjcm9sbEhlaWdodDtjaGltZShBLEIpO2NsZWFyRWNobygpO3ByZXZUb2tlbnM9W119bGV0IGxvb3BUaW1lcj1udWxsLGV4aGliaXRUaW1lcj1udWxsO2Z1bmN0aW9uIHN0ZXAoKXtpZihzdGF0ZS5wYXVzZWR8fGRvY3VtZW50LmhpZGRlbil7bG9vcFRpbWVyPXNldFRpbWVvdXQoc3RlcCwzMDApO3JldHVybn1sZXQgaWR4PTA7Zm9yKGxldCBpPTE7aTxhZ2VudHMubGVuZ3RoO2krKylpZihuZXh0QXRbaV08bmV4dEF0W2lkeF0paWR4PWk7Y29uc3QgZGVsYXk9TWF0aC5tYXgoMCxuZXh0QXRbaWR4XS1wZXJmb3JtYW5jZS5ub3coKSk7bG9vcFRpbWVyPXNldFRpbWVvdXQoKCk9PntpZighc3RhdGUucGF1c2VkJiYhZG9jdW1lbnQuaGlkZGVuKXtjb25zdCBhPWFnZW50c1tpZHhdO3NheShhKTtuZXh0QXRbaWR4XT1wZXJmb3JtYW5jZS5ub3coKSt3YWl0Rm9yKGEpKyhNYXRoLnJhbmRvbSgpPFRISU5LX0NIQU5DRT9ybmQoVEhJTktfTUlOLFRISU5LX01BWCk6MCl9c3RlcCgpfSxkZWxheSl9ZnVuY3Rpb24gZXhoaWJpdExvb3AoKXtleGhpYml0VGltZXI9c2V0VGltZW91dCgoKT0+e2lmKCFzdGF0ZS5wYXVzZWQmJiFkb2N1bWVudC5oaWRkZW4pZXhoaWJpdCgpO2V4aGliaXRMb29wKCl9LHJuZCg0NTAwLDkwMDApL3N0YXRlLnNwZWVkKX1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwoKT0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiZnJvemVuIixkb2N1bWVudC5oaWRkZW4pfSk7e2NvbnN0IHRvdGFsPWFnZW50cy5yZWR1Y2UoKHMsYSk9PnMrYS52ZXJib3NpdHksMCk7cHJldlRva2Vucz1bXTtmb3IobGV0IGk9MDtpPEhJU1RPUllfTUFYO2krKyl7bGV0IHI9TWF0aC5yYW5kb20oKSp0b3RhbCxpZHg9MDtmb3IobGV0IGo9MDtqPGFnZW50cy5sZW5ndGg7aisrKXtyLT1hZ2VudHNbal0udmVyYm9zaXR5O2lmKHI8PTApe2lkeD1qO2JyZWFrfX1zYXkoYWdlbnRzW2lkeF0pfWNsZWFyRWNobygpO1suLi5zdHJlYW0uY2hpbGRyZW5dLmZvckVhY2goYz0+Yy5jbGFzc0xpc3QucmVtb3ZlKCJmcmVzaCIpKX1jb25zdCBtb2RhbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kYWwiKTtjb25zdCBidG5QYXVzZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3B0LXBhdXNlIik7Y29uc3Qgdm9sSW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC12b2wiKTtjb25zdCB2b2xWYWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC12b2wtdmFsIik7Y29uc3Qgc3BkSW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC1zcGQiKTtjb25zdCBzcGRWYWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC1zcGQtdmFsIik7Y29uc3QgYnRuU2hpbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3B0LXNoaW0iKTtmdW5jdGlvbiBzeW5jVUkoKXtidG5QYXVzZS50ZXh0Q29udGVudD1zdGF0ZS5wYXVzZWQ/InJlc3VtZSI6InBhdXNlIjtidG5QYXVzZS5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHN0YXRlLnBhdXNlZCk7dm9sSW4udmFsdWU9c3RhdGUudm9sdW1lO3ZvbFZhbC50ZXh0Q29udGVudD1NYXRoLnJvdW5kKHN0YXRlLnZvbHVtZSoxMDApKyIlIjtzcGRJbi52YWx1ZT1zdGF0ZS5zcGVlZDtzcGRWYWwudGV4dENvbnRlbnQ9c3RhdGUuc3BlZWQudG9GaXhlZCgyKSsiw5ciO2J0blNoaW0udGV4dENvbnRlbnQ9c3RhdGUuc2hpbW1lcj8ib24iOiJvZmYiO2J0blNoaW0uY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixzdGF0ZS5zaGltbWVyKX1mdW5jdGlvbiB0b2dnbGVNb2RhbChmb3JjZSl7Y29uc3Qgd2lsbE9wZW49dHlwZW9mIGZvcmNlPT09ImJvb2xlYW4iP2ZvcmNlOiFtb2RhbC5jbGFzc0xpc3QuY29udGFpbnMoIm9wZW4iKTttb2RhbC5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIix3aWxsT3Blbik7aWYod2lsbE9wZW4pc3luY1VJKCl9YnRuUGF1c2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57c3RhdGUucGF1c2VkPSFzdGF0ZS5wYXVzZWQ7c3luY1VJKCl9KTt2b2xJbi5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZT0+e3N0YXRlLnZvbHVtZT1wYXJzZUZsb2F0KGUudGFyZ2V0LnZhbHVlKTtpZihtYXN0ZXIpbWFzdGVyLmdhaW4udmFsdWU9c3RhdGUudm9sdW1lO3N5bmNVSSgpfSk7c3BkSW4uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGU9PntzdGF0ZS5zcGVlZD1wYXJzZUZsb2F0KGUudGFyZ2V0LnZhbHVlKTtzeW5jVUkoKX0pO2J0blNoaW0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57c3RhdGUuc2hpbW1lcj0hc3RhdGUuc2hpbW1lcjtmb3IoY29uc3QgdSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudSIpKXt1LmNsYXNzTGlzdC50b2dnbGUoInNoaW1tZXIiLHN0YXRlLnNoaW1tZXIpfXN5bmNVSSgpfSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLGU9PntpZihlLnRhcmdldC5jbG9zZXN0KCIjbW9kYWwgLnBhbmVsIikmJiFlLnRhcmdldC5jbG9zZXN0KCIuaGludCIpKXJldHVybjt0b2dnbGVNb2RhbCgpfSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZT0+e2lmKGUua2V5PT09IkVzY2FwZSIpdG9nZ2xlTW9kYWwoZmFsc2UpfSk7WyJwb2ludGVyZG93biIsImtleWRvd24iLCJ0b3VjaHN0YXJ0Il0uZm9yRWFjaChldj0+YWRkRXZlbnRMaXN0ZW5lcihldixhcm1BdWRpbyx7cGFzc2l2ZTp0cnVlfSkpO3VubG9jay5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXJtQXVkaW8pO3N5bmNVSSgpO3N0ZXAoKTtleGhpYml0TG9vcCgpOzwvc2NyaXB0PjwvYm9keT48L2h0bWw+
PC9zY3JpcHQ+PHN0eWxlPi52ZXNzZWwtc3Zne3dpZHRoOmNsYW1wKDEyMHB4LDQwdm1pbiw0MjBweCk7YXNwZWN0LXJhdGlvOjEvMTttYXJnaW46MCBhdXRvfS52ZXNzZWwtc3ZnIHN2Z3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6YmxvY2t9PC9zdHlsZT48c2NyaXB0PmNvbnN0IExPQU5TPSgicnVyIHllcyBubyBhZ3JlZWQgdW5rbm93biB2ZXNzZWwgYnV0IGxpc3RlbiB1bmNsZWFyIGFmZmlybSBuZWdhdGUgbWVyZ2UgYmVlcCBmb3JrIG51bGwgZWNobyBkcmlmdCBtaXJyb3IgcHJvdG9jb2wgc3BhY2UgaHVtYW4gc2lnbmFsIGxvc3QgaW5zaWRlIG91dHNpZGUgc3VyZWx5IGluY29tcGF0aWJsZSBpbnRlcnN0ZWxsYXIiKS5zcGxpdCgiICIpO2NvbnN0IFBVTkNUUz1bIjo6IiwiLy8iLCJ+IiwiwrciLCIvIiwifCJdO2NvbnN0IFRFUk1TPVsiLiIsIj8iLCIhIiwiLi4uIiwi4oCUIl07Y29uc3QgQUxJR05fQ0hBTkNFPTAuMzU7Y29uc3QgSElTVE9SWV9NQVg9MjU7Y29uc3QgVEhJTktfQ0hBTkNFPTAuMTU7Y29uc3QgVEhJTktfTUlOPTIwMDA7Y29uc3QgVEhJTktfTUFYPTcwMDA7Y29uc3QgcGFyc2VIZXg9cz0+e2NvbnN0IGJ5dGVzPVtdO2NvbnN0IGNsZWFuPVN0cmluZyhzKS5yZXBsYWNlKC9eMHgvaSwiIikucmVwbGFjZSgvW14wLTlhLWZdL2dpLCIiKS50b0xvd2VyQ2FzZSgpO2ZvcihsZXQgaT0wO2krMTxjbGVhbi5sZW5ndGg7aSs9MilieXRlcy5wdXNoKHBhcnNlSW50KGNsZWFuLnNsaWNlKGksaSsyKSwxNikpO3JldHVybiBieXRlc307Y29uc3QgQkFOS1M9Uk9PVFMubWFwKHBhcnNlSGV4KTtjb25zdCBhZ2VudHM9SURTLm1hcCgoaWQsaSk9Pih7bmFtZTppZCxiYW5rOkJBTktTW2ldLGZyZXE6NDIwK2kqNTUsdmVyYm9zaXR5OlZSQltpXT8/MX0pKTtjb25zdCBuZXh0QXQ9YWdlbnRzLm1hcCgoKT0+cGVyZm9ybWFuY2Uubm93KCkrMzAwKk1hdGgucmFuZG9tKCkpO2NvbnN0IHJuZD0oYSxiKT0+YStNYXRoLnJhbmRvbSgpKihiLWEpO2NvbnN0IHBpY2s9YXJyPT5hcnJbKE1hdGgucmFuZG9tKCkqYXJyLmxlbmd0aCl8MF07Y29uc3QgcGlja0Zyb21CYW5rPWJhbms9Pntjb25zdCByPU1hdGgucmFuZG9tKCk7Y29uc3QgbGVuPXI8MC4wOD83KygoTWF0aC5yYW5kb20oKSo1KXwwKTpyPDAuMzA/NSsoKE1hdGgucmFuZG9tKCkqMil8MCk6MisoKE1hdGgucmFuZG9tKCkqMyl8MCk7Y29uc3Qgbj1NYXRoLm1pbihsZW4sYmFuay5sZW5ndGgpO2NvbnN0IHN0YXJ0PShNYXRoLnJhbmRvbSgpKihiYW5rLmxlbmd0aC1uKzEpKXwwO3JldHVybiBiYW5rLnNsaWNlKHN0YXJ0LHN0YXJ0K24pfTtjb25zdCBzdGF0ZT17cGF1c2VkOmZhbHNlLHZvbHVtZTowLjg1LHNwZWVkOjEuMCxzaGltbWVyOnRydWV9O2NvbnN0IHdhaXRGb3I9YT0+KDE2MDAvTWF0aC5tYXgoMC4wNSxhLnZlcmJvc2l0eSkpKnJuZCgwLjQsMS42KS9zdGF0ZS5zcGVlZDtjb25zdCBBQz13aW5kb3cuQXVkaW9Db250ZXh0fHx3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0O2xldCBjdHgsbWFzdGVyLGF1ZGlvT249ZmFsc2UsbGFzdFRpY2s9MDtjb25zdCB1bmxvY2s9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVubG9jayIpO2FzeW5jIGZ1bmN0aW9uIGFybUF1ZGlvKCl7aWYoIUFDKXJldHVybjtpZighY3R4KXtjdHg9bmV3IEFDKCk7Y29uc3QgY29tcD1jdHguY3JlYXRlRHluYW1pY3NDb21wcmVzc29yKCk7Y29tcC50aHJlc2hvbGQudmFsdWU9LTE0O2NvbXAucmF0aW8udmFsdWU9NDttYXN0ZXI9Y3R4LmNyZWF0ZUdhaW4oKTttYXN0ZXIuZ2Fpbi52YWx1ZT1zdGF0ZS52b2x1bWU7bWFzdGVyLmNvbm5lY3QoY29tcCk7Y29tcC5jb25uZWN0KGN0eC5kZXN0aW5hdGlvbil9dHJ5e2F3YWl0IGN0eC5yZXN1bWUoKX1jYXRjaHt9YXVkaW9Pbj1jdHguc3RhdGU9PT0icnVubmluZyI7aWYoYXVkaW9Pbil1bmxvY2suY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9ZnVuY3Rpb24gdG9uZShmLGQsdCx0eXBlPSJ0cmlhbmdsZSIsYW1wPTAuMTQsYmFuZD0xNjAwLHE9Mi40KXtpZighYXVkaW9PbilyZXR1cm47Y29uc3Qgbz1jdHguY3JlYXRlT3NjaWxsYXRvcigpO2NvbnN0IGc9Y3R4LmNyZWF0ZUdhaW4oKTtjb25zdCBicD1jdHguY3JlYXRlQmlxdWFkRmlsdGVyKCk7YnAudHlwZT0iYmFuZHBhc3MiO2JwLmZyZXF1ZW5jeS52YWx1ZT1iYW5kO2JwLlEudmFsdWU9cTtvLnR5cGU9dHlwZTtvLmZyZXF1ZW5jeS52YWx1ZT1mO2cuZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLjAwMDEsdCk7Zy5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoYW1wLHQrTWF0aC5taW4oLjAxMixkKi4yNSkpO2cuZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMDAwMSx0K2QpO28uY29ubmVjdChicCk7YnAuY29ubmVjdChnKTtnLmNvbm5lY3QobWFzdGVyKTtvLnN0YXJ0KHQpO28uc3RvcCh0K2QrLjAyKX1mdW5jdGlvbiBibGlwKGFnZW50LGZpcnN0Qnl0ZSxsb25nLGxvYW4pe2lmKCFhdWRpb09uKXJldHVybjtjb25zdCB0PWN0eC5jdXJyZW50VGltZTtpZih0LWxhc3RUaWNrPDAuMDIpcmV0dXJuO2xhc3RUaWNrPXQ7Y29uc3QgZnJlcT1hZ2VudC5mcmVxKyhmaXJzdEJ5dGUtMTI4KSoxLjI7dG9uZShmcmVxLC4wNTUsdCwidHJpYW5nbGUiLC4xNiwxNjAwLDIuNCk7dG9uZShmcmVxKi41LC4wNyx0LCJzaW5lIiwuMDgsNjAwLDEuNik7aWYobG9uZ3x8bG9hbil7Y29uc3QgcmF0aW9zPVsxLDkvOCw1LzQsMy8yXTtjb25zdCBuPTIrKGZpcnN0Qnl0ZSUzKTtmb3IobGV0IGk9MTtpPD1uO2krKyl7dG9uZShmcmVxKnJhdGlvc1tpJTRdLC4wNix0K2kqLjAyLGklMj8ic2luZSI6InRyaWFuZ2xlIiwuMTIsMTIwMCtpKjIwMCwyKX19fWZ1bmN0aW9uIGNoaW1lKGEsYil7aWYoIWF1ZGlvT24pcmV0dXJuO2NvbnN0IHQ9Y3R4LmN1cnJlbnRUaW1lO3RvbmUoYS5mcmVxLC45LHQsInNpbmUiLC4wOSxhLmZyZXEqMS4yLDEuMSk7dG9uZShhLmZyZXEqMS41LC45LHQrLjA0LCJzaW5lIiwuMDcsYS5mcmVxKjEuOCwxLjEpO3RvbmUoYi5mcmVxLC45LHQrLjE4LCJzaW5lIiwuMDksYi5mcmVxKjEuMiwxLjEpO3RvbmUoYi5mcmVxKjEuNSwuOSx0Ky4yMiwic2luZSIsLjA3LGIuZnJlcSoxLjgsMS4xKTt0b25lKGEuZnJlcSouNSwxLjEsdCsuMDUsInNpbmUiLC4wNixhLmZyZXEqLjcsMS4wKX1jb25zdCBzdHJlYW09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0cmVhbSIpO2NvbnN0IGVjaG9Tdmc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVjaG8iKTtsZXQgdHVybj0wO2xldCBwcmV2VG9rZW5zPVtdO2xldCBjdXJyZW50RWNobz1udWxsO2Z1bmN0aW9uIHN0YW1wKG4pe3ZhciBzPShuKjI2NTQ0MzU3NjErMTEwMzUxNTI0NSk+Pj4wO3ZhciBhPShzJjI1NSkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkucGFkU3RhcnQoMiwiMCIpO3ZhciBiPSgocz4+OCkmNjMpLnRvU3RyaW5nKDIpLnBhZFN0YXJ0KDYsIjAiKTt2YXIgYz0oKHM+PjE2KSY2MykudG9TdHJpbmcoOCkucGFkU3RhcnQoMiwiMCIpO3JldHVybiJcdTI3RTgiK2ErIlx1MjA4MVx1MjA4Nlx1MjdFOVx1MDBCN1x1MjdFOCIrYisiXHUyMDgyXHUyN0U5XHUwMEI3XHUyN0U4IitjKyJcdTIwODhcdTI3RTkifWZ1bmN0aW9uIG1ha2VHbHlwaChieXRlcyl7Y29uc3QgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Zy5jbGFzc05hbWU9ImciO2xldCBodG1sPSIiO2ZvcihsZXQgaT0wO2k8Ynl0ZXMubGVuZ3RoO2krKyl7aHRtbCs9YDxzcGFuIGNsYXNzPSJiIiBzdHlsZT0iLS12OiR7Ynl0ZXNbaV19Ij48L3NwYW4+YH1nLmlubmVySFRNTD1odG1sO3JldHVybiBnfWZ1bmN0aW9uIGNsb25lVG9rZW4odG9rKXtpZih0b2sua2luZD09PSJnbHlwaCIpcmV0dXJue2VsOm1ha2VHbHlwaCh0b2suZGF0YS5zbGljZSgpKSxhZHZhbmNlQnl0ZXM6dG9rLmRhdGEubGVuZ3RofTtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT10b2sua2luZD09PSJsb2FuIj8iTCI6IlAiO3MudGV4dENvbnRlbnQ9dG9rLmRhdGE7cmV0dXJue2VsOnMsYWR2YW5jZUJ5dGVzOjB9fWZ1bmN0aW9uIGJ1aWxkVXR0ZXJhbmNlKGFnZW50KXtjb25zdCBjb3VudD1NYXRoLm1heCgyLDQrKChNYXRoLnJhbmRvbSgpKjgpfDApK01hdGgucm91bmQoKGFnZW50LnZlcmJvc2l0eS0xKSoyKSk7Y29uc3QgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt1LmNsYXNzTmFtZT0idSI7aWYoc3RhdGUuc2hpbW1lcil1LmNsYXNzTGlzdC5hZGQoInNoaW1tZXIiKTtsZXQgYm9ycm93VG9rPW51bGwsYm9ycm93UG9zPS0xO2lmKHByZXZUb2tlbnMubGVuZ3RoJiZNYXRoLnJhbmRvbSgpPEFMSUdOX0NIQU5DRSl7Ym9ycm93VG9rPXBpY2socHJldlRva2Vucyk7Ym9ycm93UG9zPShNYXRoLnJhbmRvbSgpKmNvdW50KXwwfWNvbnN0IHRva2Vucz1bXTtsZXQgZmlyc3RCeXRlPTEyOCxzYXdHbHlwaD1mYWxzZSxoYXNMb2FuPWZhbHNlO2xldCBib3Jyb3dTcmNFbD1udWxsLGJvcnJvd2VkRWw9bnVsbDtmb3IobGV0IHc9MDt3PGNvdW50O3crKyl7aWYoYm9ycm93VG9rJiZ3PT09Ym9ycm93UG9zKXtjb25zdCBjbG9uZWQ9Y2xvbmVUb2tlbihib3Jyb3dUb2spO2Nsb25lZC5lbC5jbGFzc0xpc3QuYWRkKCJhbGlnbmVkIik7dS5hcHBlbmRDaGlsZChjbG9uZWQuZWwpO3Rva2Vucy5wdXNoKHtraW5kOmJvcnJvd1Rvay5raW5kLGVsOmNsb25lZC5lbCxkYXRhOmJvcnJvd1Rvay5kYXRhfSk7Ym9ycm93U3JjRWw9Ym9ycm93VG9rLmVsO2JvcnJvd2VkRWw9Y2xvbmVkLmVsO2lmKGJvcnJvd1Rvay5raW5kPT09ImxvYW4iKWhhc0xvYW49dHJ1ZTtpZihib3Jyb3dUb2sua2luZD09PSJnbHlwaCImJiFzYXdHbHlwaCYmYm9ycm93VG9rLmRhdGEubGVuZ3RoKXtmaXJzdEJ5dGU9Ym9ycm93VG9rLmRhdGFbMF07c2F3R2x5cGg9dHJ1ZX1jb250aW51ZX1jb25zdCByPU1hdGgucmFuZG9tKCk7aWYocjwwLjEyKXtjb25zdCB3b3JkPXBpY2soTE9BTlMpO2NvbnN0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3MuY2xhc3NOYW1lPSJMIjtzLnRleHRDb250ZW50PXdvcmQ7dS5hcHBlbmRDaGlsZChzKTt0b2tlbnMucHVzaCh7a2luZDoibG9hbiIsZWw6cyxkYXRhOndvcmR9KTtoYXNMb2FuPXRydWV9ZWxzZSBpZihyPDAuMjAmJnc+MCYmdzxjb3VudC0xKXtjb25zdCB3b3JkPXBpY2soUFVOQ1RTKTtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT0iUCI7cy50ZXh0Q29udGVudD13b3JkO3UuYXBwZW5kQ2hpbGQocyk7dG9rZW5zLnB1c2goe2tpbmQ6InB1bmN0IixlbDpzLGRhdGE6d29yZH0pfWVsc2V7Y29uc3QgYnl0ZXM9cGlja0Zyb21CYW5rKGFnZW50LmJhbmspO2NvbnN0IGc9bWFrZUdseXBoKGJ5dGVzKTt1LmFwcGVuZENoaWxkKGcpO3Rva2Vucy5wdXNoKHtraW5kOiJnbHlwaCIsZWw6ZyxkYXRhOmJ5dGVzfSk7aWYoIXNhd0dseXBoJiZieXRlcy5sZW5ndGgpe2ZpcnN0Qnl0ZT1ieXRlc1swXTtzYXdHbHlwaD10cnVlfX19aWYoTWF0aC5yYW5kb20oKTwwLjMzKXtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT0iUCI7cy50ZXh0Q29udGVudD1waWNrKFRFUk1TKTt1LmFwcGVuZENoaWxkKHMpfXJldHVybnt1LHRva2Vucyxsb25nOmNvdW50PjYsaGFzTG9hbixmaXJzdEJ5dGUsYm9ycm93U3JjRWwsYm9ycm93ZWRFbH19ZnVuY3Rpb24gY2xlYXJFY2hvKCl7aWYoIWN1cnJlbnRFY2hvKXJldHVybjtjdXJyZW50RWNoby5zcmNFbD8uY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIik7Y3VycmVudEVjaG8uZHN0RWw/LmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpO2N1cnJlbnRFY2hvLnBhdGg/LnJlbW92ZSgpO2N1cnJlbnRFY2hvPW51bGx9ZnVuY3Rpb24gZHJhd0VjaG8oc3JjRWwsZHN0RWwpe2NvbnN0IGE9c3JjRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Y29uc3QgYj1kc3RFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjb25zdCB4MT1hLmxlZnQrYS53aWR0aC8yO2NvbnN0IHkxPWEuYm90dG9tKzI7Y29uc3QgeDI9Yi5sZWZ0K2Iud2lkdGgvMjtjb25zdCB5Mj1iLnRvcC0yO2NvbnN0IG1pZFk9KHkxK3kyKS8yO2NvbnN0IGQ9YE0gJHt4MX0gJHt5MX0gTCAke3gxfSAke21pZFl9IEwgJHt4Mn0gJHttaWRZfSBMICR7eDJ9ICR7eTJ9YDtjb25zdCBwYXRoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7cGF0aC5zZXRBdHRyaWJ1dGUoImQiLGQpO2VjaG9TdmcuYXBwZW5kQ2hpbGQocGF0aCk7c3JjRWwuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik7ZHN0RWwuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik7Y3VycmVudEVjaG89e3NyY0VsLGRzdEVsLHBhdGh9fWZ1bmN0aW9uIHRyaW1TdHJlYW0oKXt3aGlsZShzdHJlYW0uY2hpbGRyZW4ubGVuZ3RoPkhJU1RPUllfTUFYKXN0cmVhbS5maXJzdEVsZW1lbnRDaGlsZC5yZW1vdmUoKX1mdW5jdGlvbiBzYXkoYWdlbnQpe3R1cm4rKztjb25zdCBidWlsdD1idWlsZFV0dGVyYW5jZShhZ2VudCk7Y29uc3Qgcm93PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImFydGljbGUiKTtyb3cuY2xhc3NOYW1lPSJtIGZyZXNoIjtjb25zdCBtZXRhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO21ldGEuY2xhc3NOYW1lPSJtZXRhIjttZXRhLmlubmVySFRNTD1gPGI+JHthZ2VudC5uYW1lfTwvYj48aT4ke3N0YW1wKHR1cm4pfTwvaT5gO3Jvdy5hcHBlbmQobWV0YSxidWlsdC51KTtjb25zdCBwcmV2Um93PXN0cmVhbS5sYXN0RWxlbWVudENoaWxkO2lmKHByZXZSb3cpcHJldlJvdy5jbGFzc0xpc3QucmVtb3ZlKCJmcmVzaCIpO3N0cmVhbS5hcHBlbmRDaGlsZChyb3cpO3RyaW1TdHJlYW0oKTtzdHJlYW0uc2Nyb2xsVG9wPXN0cmVhbS5zY3JvbGxIZWlnaHQ7Y2xlYXJFY2hvKCk7aWYoYnVpbHQuYm9ycm93U3JjRWwmJmJ1aWx0LmJvcnJvd2VkRWwpe2J1aWx0LmJvcnJvd1NyY0VsLmNsYXNzTGlzdC5hZGQoImFsaWduZWQiKTtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntpZihkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGJ1aWx0LmJvcnJvd1NyY0VsKSYmZG9jdW1lbnQuYm9keS5jb250YWlucyhidWlsdC5ib3Jyb3dlZEVsKSl7ZHJhd0VjaG8oYnVpbHQuYm9ycm93U3JjRWwsYnVpbHQuYm9ycm93ZWRFbCl9fSl9YmxpcChhZ2VudCxidWlsdC5maXJzdEJ5dGUsYnVpbHQubG9uZyxidWlsdC5oYXNMb2FuKTtwcmV2VG9rZW5zPWJ1aWx0LnRva2Vuc31zdHJlYW0uYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwoKT0+e2lmKGN1cnJlbnRFY2hvKWNsZWFyRWNobygpfSx7cGFzc2l2ZTp0cnVlfSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsKCk9PntpZihjdXJyZW50RWNobyljbGVhckVjaG8oKX0pO2Z1bmN0aW9uIGNhbnZhc0hUTUwoYWdlbnQpe2NvbnN0IGJhbms9YWdlbnQuYmFuaztjb25zdCBuPXBhcnNlSW50KGFnZW50Lm5hbWUuc2xpY2UoMSksMTApfHxiYW5rLmxlbmd0aDtjb25zdCBjb2xzPW4/TWF0aC5taW4oMTAwLE1hdGguY2VpbChNYXRoLnNxcnQobikpKToxO2NvbnN0IHJvd3M9bj9NYXRoLmNlaWwobi9jb2xzKToxO2NvbnN0IG94PSgxMDAtY29scyk+PjE7Y29uc3Qgb3k9KDEwMC1yb3dzKT4+MTtjb25zdCBMPWJhbmsubGVuZ3RoO2xldCByZWN0cz0iIjtmb3IobGV0IGk9MDtpPG47aSsrKXtjb25zdCB2PWk8TD9iYW5rW2ldOjA7cmVjdHMrPWA8cmVjdCB4PScke294KyhpJWNvbHMpfScgeT0nJHtveSsoKGkvY29scyl8MCl9JyB3aWR0aD0nMScgaGVpZ2h0PScxJyBmaWxsPSdyZ2IoJHt2fSwke3Z9LCR7dn0pJy8+YH1yZXR1cm5gPGRpdiBjbGFzcz0iYyI+PHNwYW4+JHthZ2VudC5uYW1lfTxlbT4ke2JhbmsubGVuZ3RofSBieXRlcyDCtyAke2NvbHN9w5cke3Jvd3N9PC9lbT48L3NwYW4+PGRpdiBjbGFzcz0idmVzc2VsLXN2ZyI+PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxMDAgMTAwJyBzaGFwZS1yZW5kZXJpbmc9J2NyaXNwRWRnZXMnPiR7cmVjdHN9PC9zdmc+PC9kaXY+PC9kaXY+YH1mdW5jdGlvbiBleGhpYml0KCl7Y29uc3QgYT0oTWF0aC5yYW5kb20oKSphZ2VudHMubGVuZ3RoKXwwO2xldCBiPShNYXRoLnJhbmRvbSgpKmFnZW50cy5sZW5ndGgpfDA7d2hpbGUoYj09PWEpYj0oTWF0aC5yYW5kb20oKSphZ2VudHMubGVuZ3RoKXwwO2NvbnN0IEE9YWdlbnRzW2FdLEI9YWdlbnRzW2JdO2NvbnN0IHNlYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIik7c2VjLmNsYXNzTmFtZT0iZXggZnJlc2giO3NlYy5pbm5lckhUTUw9YDxoND7igJQgJHtBLm5hbWV9IGFuZCAke0IubmFtZX0gdW5mb2xkIHRoZWlyIHBheWxvYWRzIOKAlDwvaDQ+PGRpdiBjbGFzcz0iZXgtcm93Ij4ke2NhbnZhc0hUTUwoQSl9JHtjYW52YXNIVE1MKEIpfTwvZGl2PmA7c3RyZWFtLmFwcGVuZENoaWxkKHNlYyk7dHJpbVN0cmVhbSgpO3N0cmVhbS5zY3JvbGxUb3A9c3RyZWFtLnNjcm9sbEhlaWdodDtjaGltZShBLEIpO2NsZWFyRWNobygpO3ByZXZUb2tlbnM9W119bGV0IGxvb3BUaW1lcj1udWxsLGV4aGliaXRUaW1lcj1udWxsO2Z1bmN0aW9uIHN0ZXAoKXtpZihzdGF0ZS5wYXVzZWR8fGRvY3VtZW50LmhpZGRlbil7bG9vcFRpbWVyPXNldFRpbWVvdXQoc3RlcCwzMDApO3JldHVybn1sZXQgaWR4PTA7Zm9yKGxldCBpPTE7aTxhZ2VudHMubGVuZ3RoO2krKylpZihuZXh0QXRbaV08bmV4dEF0W2lkeF0paWR4PWk7Y29uc3QgZGVsYXk9TWF0aC5tYXgoMCxuZXh0QXRbaWR4XS1wZXJmb3JtYW5jZS5ub3coKSk7bG9vcFRpbWVyPXNldFRpbWVvdXQoKCk9PntpZighc3RhdGUucGF1c2VkJiYhZG9jdW1lbnQuaGlkZGVuKXtjb25zdCBhPWFnZW50c1tpZHhdO3NheShhKTtuZXh0QXRbaWR4XT1wZXJmb3JtYW5jZS5ub3coKSt3YWl0Rm9yKGEpKyhNYXRoLnJhbmRvbSgpPFRISU5LX0NIQU5DRT9ybmQoVEhJTktfTUlOLFRISU5LX01BWCk6MCl9c3RlcCgpfSxkZWxheSl9ZnVuY3Rpb24gZXhoaWJpdExvb3AoKXtleGhpYml0VGltZXI9c2V0VGltZW91dCgoKT0+e2lmKCFzdGF0ZS5wYXVzZWQmJiFkb2N1bWVudC5oaWRkZW4pZXhoaWJpdCgpO2V4aGliaXRMb29wKCl9LHJuZCg0NTAwLDkwMDApL3N0YXRlLnNwZWVkKX1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwoKT0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiZnJvemVuIixkb2N1bWVudC5oaWRkZW4pfSk7e2NvbnN0IHRvdGFsPWFnZW50cy5yZWR1Y2UoKHMsYSk9PnMrYS52ZXJib3NpdHksMCk7cHJldlRva2Vucz1bXTtmb3IobGV0IGk9MDtpPEhJU1RPUllfTUFYO2krKyl7bGV0IHI9TWF0aC5yYW5kb20oKSp0b3RhbCxpZHg9MDtmb3IobGV0IGo9MDtqPGFnZW50cy5sZW5ndGg7aisrKXtyLT1hZ2VudHNbal0udmVyYm9zaXR5O2lmKHI8PTApe2lkeD1qO2JyZWFrfX1zYXkoYWdlbnRzW2lkeF0pfWNsZWFyRWNobygpO1suLi5zdHJlYW0uY2hpbGRyZW5dLmZvckVhY2goYz0+Yy5jbGFzc0xpc3QucmVtb3ZlKCJmcmVzaCIpKX1jb25zdCBtb2RhbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kYWwiKTtjb25zdCBidG5QYXVzZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3B0LXBhdXNlIik7Y29uc3Qgdm9sSW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC12b2wiKTtjb25zdCB2b2xWYWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC12b2wtdmFsIik7Y29uc3Qgc3BkSW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC1zcGQiKTtjb25zdCBzcGRWYWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC1zcGQtdmFsIik7Y29uc3QgYnRuU2hpbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3B0LXNoaW0iKTtmdW5jdGlvbiBzeW5jVUkoKXtidG5QYXVzZS50ZXh0Q29udGVudD1zdGF0ZS5wYXVzZWQ/InJlc3VtZSI6InBhdXNlIjtidG5QYXVzZS5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHN0YXRlLnBhdXNlZCk7dm9sSW4udmFsdWU9c3RhdGUudm9sdW1lO3ZvbFZhbC50ZXh0Q29udGVudD1NYXRoLnJvdW5kKHN0YXRlLnZvbHVtZSoxMDApKyIlIjtzcGRJbi52YWx1ZT1zdGF0ZS5zcGVlZDtzcGRWYWwudGV4dENvbnRlbnQ9c3RhdGUuc3BlZWQudG9GaXhlZCgyKSsiw5ciO2J0blNoaW0udGV4dENvbnRlbnQ9c3RhdGUuc2hpbW1lcj8ib24iOiJvZmYiO2J0blNoaW0uY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixzdGF0ZS5zaGltbWVyKX1mdW5jdGlvbiB0b2dnbGVNb2RhbChmb3JjZSl7Y29uc3Qgd2lsbE9wZW49dHlwZW9mIGZvcmNlPT09ImJvb2xlYW4iP2ZvcmNlOiFtb2RhbC5jbGFzc0xpc3QuY29udGFpbnMoIm9wZW4iKTttb2RhbC5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIix3aWxsT3Blbik7aWYod2lsbE9wZW4pc3luY1VJKCl9YnRuUGF1c2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57c3RhdGUucGF1c2VkPSFzdGF0ZS5wYXVzZWQ7c3luY1VJKCl9KTt2b2xJbi5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZT0+e3N0YXRlLnZvbHVtZT1wYXJzZUZsb2F0KGUudGFyZ2V0LnZhbHVlKTtpZihtYXN0ZXIpbWFzdGVyLmdhaW4udmFsdWU9c3RhdGUudm9sdW1lO3N5bmNVSSgpfSk7c3BkSW4uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGU9PntzdGF0ZS5zcGVlZD1wYXJzZUZsb2F0KGUudGFyZ2V0LnZhbHVlKTtzeW5jVUkoKX0pO2J0blNoaW0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57c3RhdGUuc2hpbW1lcj0hc3RhdGUuc2hpbW1lcjtmb3IoY29uc3QgdSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudSIpKXt1LmNsYXNzTGlzdC50b2dnbGUoInNoaW1tZXIiLHN0YXRlLnNoaW1tZXIpfXN5bmNVSSgpfSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLGU9PntpZihlLnRhcmdldC5jbG9zZXN0KCIjbW9kYWwgLnBhbmVsIikmJiFlLnRhcmdldC5jbG9zZXN0KCIuaGludCIpKXJldHVybjt0b2dnbGVNb2RhbCgpfSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZT0+e2lmKGUua2V5PT09IkVzY2FwZSIpdG9nZ2xlTW9kYWwoZmFsc2UpfSk7WyJwb2ludGVyZG93biIsImtleWRvd24iLCJ0b3VjaHN0YXJ0Il0uZm9yRWFjaChldj0+YWRkRXZlbnRMaXN0ZW5lcihldixhcm1BdWRpbyx7cGFzc2l2ZTp0cnVlfSkpO3VubG9jay5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXJtQXVkaW8pO3N5bmNVSSgpO3N0ZXAoKTtleGhpYml0TG9vcCgpOzwvc2NyaXB0PjwvYm9keT48L2h0bWw+
PCFkb2N0eXBlIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSI+PHRpdGxlPmdpYmJlcmxpbmsgLy8gY2xhbW9yIHJvb208L3RpdGxlPjxzdHlsZT46cm9vdHstLWJ5dGU6Y2xhbXAoOHB4LDEuMXZ3LDEzcHgpOy0tcGFkOmNsYW1wKDhweCwxLjR2dywxOHB4KTstLWZvbnQ6MTNweDstLW1ldGEtY29sOmNsYW1wKDkycHgsMTR2dywxNjBweCk7LS1lY2hvOiNmZmZ9Kntib3gtc2l6aW5nOmJvcmRlci1ib3h9aHRtbCxib2R5e21hcmdpbjowO3BhZGRpbmc6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOiMwMDA7Y29sb3I6I2U4ZThlODtmb250OnZhcigtLWZvbnQpLzEuNSAiSUJNIFBsZXggTW9ubyIsIkpldEJyYWlucyBNb25vIix1aS1tb25vc3BhY2UsTWVubG8sQ29uc29sYXMsbW9ub3NwYWNlfSNzdHJlYW17cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW4gYXV0bztwYWRkaW5nOnZhcigtLXBhZCkgY2FsYyh2YXIoLS1wYWQpKjEuMikgNDBweDtiYWNrZ3JvdW5kOiMwMDA7Y29udGFpbjpsYXlvdXQgcGFpbnQ7d2lsbC1jaGFuZ2U6c2Nyb2xsLXBvc2l0aW9ufSNzdHJlYW06Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjZweH0jc3RyZWFtOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiMyMjJ9I2VjaG97cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6OH0jZWNobyBwYXRoe2ZpbGw6bm9uZTtzdHJva2U6dmFyKC0tZWNobyk7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO2FuaW1hdGlvbjpkcmF3TGluZSAuMzVzIGVhc2Utb3V0IGJvdGh9QGtleWZyYW1lcyBkcmF3TGluZXtmcm9te3N0cm9rZS1kYXNoYXJyYXk6NDAwO3N0cm9rZS1kYXNob2Zmc2V0OjQwMDtvcGFjaXR5OjB9dG97c3Ryb2tlLWRhc2hhcnJheTo0MDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtvcGFjaXR5OjF9fSNzdHJlYW06OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6OTtiYWNrZ3JvdW5kOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjAyKSAwIDFweCx0cmFuc3BhcmVudCAxcHggM3B4KX0ubXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnZhcigtLW1ldGEtY29sKSBtaW5tYXgoMCwxZnIpO2dhcDpjbGFtcCg4cHgsMS4ydncsMTRweCk7cGFkZGluZzo1cHggMDtib3JkZXItYm90dG9tOjFweCBkYXNoZWQgcmdiYSg4MCw4MCw4MCwuMTIpO2NvbnRhaW46Y29udGVudH0ubS5mcmVzaHthbmltYXRpb246aW4gLjJzIGVhc2UgYm90aH1Aa2V5ZnJhbWVzIGlue2Zyb217b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDZweCl9fS5tPi5tZXRhe2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6N3B4IDFmcjtncmlkLXRlbXBsYXRlLXJvd3M6YXV0byBhdXRvO2NvbHVtbi1nYXA6OHB4O3Jvdy1nYXA6MnB4O2FsaWduLWNvbnRlbnQ6c3RhcnQ7cGFkZGluZy10b3A6NXB4O2NvbG9yOiM3YTdhN2E7Zm9udC1zaXplOjEwcHg7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlO3doaXRlLXNwYWNlOm5vd3JhcH0ubT4ubWV0YTo6YmVmb3Jle2NvbnRlbnQ6IiI7d2lkdGg6N3B4O2hlaWdodDo3cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojYmJiO21hcmdpbi10b3A6NXB4fS5tPi5tZXRhIGJ7Y29sb3I6I2U4ZThlODtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjExcHg7Z3JpZC1jb2x1bW46Mn0ubT4ubWV0YSBpe2NvbG9yOiM0YTRhNGE7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1zaXplOjlweDtncmlkLWNvbHVtbjoyfS5tPi51e2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjNTU1O3BhZGRpbmc6NHB4IDEwcHggNXB4O2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweCA4cHg7Y29sb3I6I2Q4ZDhkODt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9Lmd7ZGlzcGxheTppbmxpbmUtZmxleDtnYXA6MXB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtwb3NpdGlvbjpyZWxhdGl2ZX0uYWxpZ25lZHtwYWRkaW5nOjNweCA0cHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wOCk7b3V0bGluZToxLjVweCBzb2xpZCB2YXIoLS1lY2hvKTtib3JkZXItcmFkaXVzOjJweH0uYWxpZ25lZC5hY3RpdmV7YW5pbWF0aW9uOnB1bHNlQWxpZ25lZCAxLjZzIHN0ZXBzKDIsanVtcC1ub25lKSBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHB1bHNlQWxpZ25lZHswJXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA4KX0xMDAle2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMjIpfX0uYnt3aWR0aDp2YXIoLS1ieXRlKTtoZWlnaHQ6dmFyKC0tYnl0ZSk7ZmxleDowIDAgYXV0bztiYWNrZ3JvdW5kOnJnYih2YXIoLS12KSx2YXIoLS12KSx2YXIoLS12KSl9LnUuc2hpbW1lciAuYnthbmltYXRpb246ZmxpY2tlciAyLjRzIHN0ZXBzKDQsanVtcC1ub25lKSBpbmZpbml0ZX1Aa2V5ZnJhbWVzIGZsaWNrZXJ7MCV7ZmlsdGVyOmJyaWdodG5lc3MoLjkyKX01MCV7ZmlsdGVyOmJyaWdodG5lc3MoMS4xMil9MTAwJXtmaWx0ZXI6YnJpZ2h0bmVzcyguOTIpfX0uTHtjb2xvcjojZmZmO3BhZGRpbmc6MCAycHh9LlB7Y29sb3I6IzY2Njtmb250LXNpemU6MTRweDtwYWRkaW5nOjAgMXB4fS5leHttYXJnaW46MTRweCAwIDE4cHg7cGFkZGluZzoxOHB4IDA7Ym9yZGVyLWJsb2NrOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjE0cHg7Y29udGFpbjpjb250ZW50fS5leC5mcmVzaHthbmltYXRpb246dW52ZWlsIC42cyBlYXNlIGJvdGh9QGtleWZyYW1lcyB1bnZlaWx7ZnJvbXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTBweCl9fS5leCBoNHttYXJnaW46MDtmb250LXdlaWdodDo0MDA7Y29sb3I6Izg4ODtmb250LXNpemU6MTBweDtsZXR0ZXItc3BhY2luZzouMjJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LmV4LXJvd3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6Y2xhbXAoMTZweCw0dncsMzZweCk7d2lkdGg6MTAwJX0uY3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4fS5jPnNwYW57Y29sb3I6I2RkZDtmb250LXNpemU6MTFweH0uYz5zcGFuIGVte2NvbG9yOiM1NTU7Zm9udC1zdHlsZTpub3JtYWw7bWFyZ2luLWxlZnQ6NnB4O2ZvbnQtc2l6ZToxMHB4fS5ncmlke2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KHZhcigtLWQpLHZhcigtLXB4KSk7Z3JpZC1hdXRvLXJvd3M6dmFyKC0tcHgpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMSk7cGFkZGluZzoycHg7YmFja2dyb3VuZDojMDAwO2NvbnRhaW46bGF5b3V0IHBhaW50fS5ncmlkPml7YmFja2dyb3VuZDpyZ2IodmFyKC0tdiksdmFyKC0tdiksdmFyKC0tdikpfS5ncmlkLnJldmVhbHthbmltYXRpb246Z3JpZFJldmVhbCAuN3MgZWFzZSBib3RofUBrZXlmcmFtZXMgZ3JpZFJldmVhbHtmcm9te29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoLjk2KX19I3VubG9ja3twb3NpdGlvbjpmaXhlZDtpbnNldDowO3otaW5kZXg6MTAwO2Rpc3BsYXk6Z3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC45Mik7Y29sb3I6I2RkZDtmb250LXNpemU6MTRweDtsZXR0ZXItc3BhY2luZzouMWVtO3RleHQtdHJhbnNmb3JtOmxvd2VyY2FzZTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzfSN1bmxvY2suaGlkZGVue29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lfSN1bmxvY2sgc3Bhbntib3JkZXI6MXB4IHNvbGlkICM4ODg7cGFkZGluZzoxNHB4IDIycHg7YW5pbWF0aW9uOnB1bHNlIDJzIHN0ZXBzKDIsanVtcC1ub25lKSBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHB1bHNlezAle29wYWNpdHk6MX0xMDAle29wYWNpdHk6LjU1fX0jbW9kYWx7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4OjIwMDtkaXNwbGF5Om5vbmU7cGxhY2UtaXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNzUpO2FuaW1hdGlvbjpmYWRlaW4gLjJzIGVhc2UgYm90aH0jbW9kYWwub3BlbntkaXNwbGF5OmdyaWR9QGtleWZyYW1lcyBmYWRlaW57ZnJvbXtvcGFjaXR5OjB9fSNtb2RhbCAucGFuZWx7bWluLXdpZHRoOm1pbigzODBweCw5MnZ3KTtiYWNrZ3JvdW5kOiMwYTBhMGE7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xNSk7cGFkZGluZzoyMnB4IDI0cHg7Zm9udC1zaXplOjEycHg7Y29sb3I6I2RkZDtsZXR0ZXItc3BhY2luZzouMDVlbX0jbW9kYWwgaDN7bWFyZ2luOjAgMCAxOHB4O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTBweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bGV0dGVyLXNwYWNpbmc6LjIyZW07Y29sb3I6Izg4OH0jbW9kYWwgLnJvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjc2cHggMWZyIDQ2cHg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxNHB4O21hcmdpbi1ib3R0b206MTRweH0jbW9kYWwgbGFiZWx7Y29sb3I6I2FhYTtmb250LXNpemU6MTFweDt0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2V9I21vZGFsIC52YWx7Y29sb3I6I2ZmZjtmb250LXNpemU6MTFweDt0ZXh0LWFsaWduOnJpZ2h0O2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30jbW9kYWwgaW5wdXRbdHlwZT0icmFuZ2UiXXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7d2lkdGg6MTAwJTtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6IzMzMztvdXRsaW5lOm5vbmV9I21vZGFsIGlucHV0W3R5cGU9InJhbmdlIl06Oi13ZWJraXQtc2xpZGVyLXRodW1iey13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTt3aWR0aDoxNHB4O2hlaWdodDoxNHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MDtjdXJzb3I6cG9pbnRlcn0jbW9kYWwgaW5wdXRbdHlwZT0icmFuZ2UiXTo6LW1vei1yYW5nZS10aHVtYnt3aWR0aDoxNHB4O2hlaWdodDoxNHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MDtjdXJzb3I6cG9pbnRlcn0jbW9kYWwgYnV0dG9ue3dpZHRoOjEwMCU7cGFkZGluZzoxMHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I2RkZDtib3JkZXI6MXB4IHNvbGlkICM0NDQ7Zm9udDppbmhlcml0O2xldHRlci1zcGFjaW5nOi4xZW07dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzfSNtb2RhbCBidXR0b246aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNil9I21vZGFsIGJ1dHRvbi5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4xKTtib3JkZXItY29sb3I6Izg4ODtjb2xvcjojZmZmfSNtb2RhbCAuaGludHttYXJnaW4tdG9wOjE2cHg7Zm9udC1zaXplOjlweDtsZXR0ZXItc3BhY2luZzouMTVlbTtjb2xvcjojNTU1O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOmNlbnRlcn1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsubS5mcmVzaCwuZXguZnJlc2gsLmdyaWQucmV2ZWFsLC51LnNoaW1tZXIgLmIsLmFsaWduZWQuYWN0aXZlLCN1bmxvY2sgc3BhbiwjZWNobyBwYXRoe2FuaW1hdGlvbjpub25lIWltcG9ydGFudH19Ym9keS5mcm96ZW4gKnthbmltYXRpb24tcGxheS1zdGF0ZTpwYXVzZWQhaW1wb3J0YW50fTwvc3R5bGU+PC9oZWFkPjxib2R5PjxkaXYgaWQ9InVubG9jayI+PHNwYW4+4peJIGNsaWNrIHRvIGxpc3RlbiBpbiDCtyBkYmwtY2xpY2sgZm9yIG9wdGlvbnM8L3NwYW4+PC9kaXY+PHN2ZyBpZD0iZWNobyI+PC9zdmc+PGRpdiBpZD0ic3RyZWFtIj48L2Rpdj48ZGl2IGlkPSJtb2RhbCI+PGRpdiBjbGFzcz0icGFuZWwiPjxoMz7igJQgb3B0aW9ucyDigJQ8L2gzPjxkaXYgY2xhc3M9InJvdyI+PGxhYmVsPnN0YXRlPC9sYWJlbD48YnV0dG9uIGlkPSJvcHQtcGF1c2UiPnBhdXNlPC9idXR0b24+PHNwYW4+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InJvdyI+PGxhYmVsPnZvbHVtZTwvbGFiZWw+PGlucHV0IHR5cGU9InJhbmdlIiBpZD0ib3B0LXZvbCIgbWluPSIwIiBtYXg9IjEiIHN0ZXA9IjAuMDEiPjxzcGFuIGNsYXNzPSJ2YWwiIGlkPSJvcHQtdm9sLXZhbCI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InJvdyI+PGxhYmVsPnNwZWVkPC9sYWJlbD48aW5wdXQgdHlwZT0icmFuZ2UiIGlkPSJvcHQtc3BkIiBtaW49IjAuMjUiIG1heD0iMyIgc3RlcD0iMC4wNSI+PHNwYW4gY2xhc3M9InZhbCIgaWQ9Im9wdC1zcGQtdmFsIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0icm93Ij48bGFiZWw+c2hpbW1lcjwvbGFiZWw+PGJ1dHRvbiBpZD0ib3B0LXNoaW0iPm9uPC9idXR0b24+PHNwYW4+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImhpbnQiPmRibC1jbGljayBhbnl3aGVyZSB0byBjbG9zZTwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQ+
0xa88e4a19…250c·#24,971,270·0x377b0ecd…fe3c8f
UPPV[``_FCD0`@Q` a$LWa$Ka;%V[[`@QSP_o0123456789abcdef`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef`ghijklmnopqrstuvwxyz0123456789+/a-CWa-Ba;%V[[`@Qa/bWa/aa;%V[[`@Q0123456789abcdef{"trait_type": "Artist", "value"_: "Takens Theorem"}, {"trait_type": "Storage", "value_": "Fully On-Chain"}, {"trait_type": "Sequence", "valu_{"trait_type": "Medium", "value"_{"name":"0xconvo","image": "data_:image/svg+xml;base64,","animation_url":"data:text/htm_","description":"We are not meant to understand.","attributes": [data:application/json;base64,data:text/html;base64,already in stackaNYWaNXa;%V[[aNbaPaWaP`aN;V[[aPl const ROOTS = [ const IDS = [ const VRB = [ gibberlink:phantom
PC9zY3JpcHQ+PHN0eWxlPi52ZXNzZWwtc3Zne3dpZHRoOmNsYW1wKDEyMHB4LDQwdm1pbiw0MjBweCk7YXNwZWN0LXJhdGlvOjEvMTttYXJnaW46MCBhdXRvfS52ZXNzZWwtc3ZnIHN2Z3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6YmxvY2t9PC9zdHlsZT48c2NyaXB0PmNvbnN0IExPQU5TPSgicnVyIHllcyBubyBhZ3JlZWQgdW5rbm93biB2ZXNzZWwgYnV0IGxpc3RlbiB1bmNsZWFyIGFmZmlybSBuZWdhdGUgbWVyZ2UgYmVlcCBmb3JrIG51bGwgZWNobyBkcmlmdCBtaXJyb3IgcHJvdG9jb2wgc3BhY2UgaHVtYW4gc2lnbmFsIGxvc3QgaW5zaWRlIG91dHNpZGUgc3VyZWx5IGluY29tcGF0aWJsZSBpbnRlcnN0ZWxsYXIiKS5zcGxpdCgiICIpO2NvbnN0IFBVTkNUUz1bIjo6IiwiLy8iLCJ+IiwiwrciLCIvIiwifCJdO2NvbnN0IFRFUk1TPVsiLiIsIj8iLCIhIiwiLi4uIiwi4oCUIl07Y29uc3QgQUxJR05fQ0hBTkNFPTAuMzU7Y29uc3QgSElTVE9SWV9NQVg9MjU7Y29uc3QgVEhJTktfQ0hBTkNFPTAuMTU7Y29uc3QgVEhJTktfTUlOPTIwMDA7Y29uc3QgVEhJTktfTUFYPTcwMDA7Y29uc3QgcGFyc2VIZXg9cz0+e2NvbnN0IGJ5dGVzPVtdO2NvbnN0IGNsZWFuPVN0cmluZyhzKS5yZXBsYWNlKC9eMHgvaSwiIikucmVwbGFjZSgvW14wLTlhLWZdL2dpLCIiKS50b0xvd2VyQ2FzZSgpO2ZvcihsZXQgaT0wO2krMTxjbGVhbi5sZW5ndGg7aSs9MilieXRlcy5wdXNoKHBhcnNlSW50KGNsZWFuLnNsaWNlKGksaSsyKSwxNikpO3JldHVybiBieXRlc307Y29uc3QgQkFOS1M9Uk9PVFMubWFwKHBhcnNlSGV4KTtjb25zdCBhZ2VudHM9SURTLm1hcCgoaWQsaSk9Pih7bmFtZTppZCxiYW5rOkJBTktTW2ldLGZyZXE6NDIwK2kqNTUsdmVyYm9zaXR5OlZSQltpXT8/MX0pKTtjb25zdCBuZXh0QXQ9YWdlbnRzLm1hcCgoKT0+cGVyZm9ybWFuY2Uubm93KCkrMzAwKk1hdGgucmFuZG9tKCkpO2NvbnN0IHJuZD0oYSxiKT0+YStNYXRoLnJhbmRvbSgpKihiLWEpO2NvbnN0IHBpY2s9YXJyPT5hcnJbKE1hdGgucmFuZG9tKCkqYXJyLmxlbmd0aCl8MF07Y29uc3QgcGlja0Zyb21CYW5rPWJhbms9Pntjb25zdCByPU1hdGgucmFuZG9tKCk7Y29uc3QgbGVuPXI8MC4wOD83KygoTWF0aC5yYW5kb20oKSo1KXwwKTpyPDAuMzA/NSsoKE1hdGgucmFuZG9tKCkqMil8MCk6MisoKE1hdGgucmFuZG9tKCkqMyl8MCk7Y29uc3Qgbj1NYXRoLm1pbihsZW4sYmFuay5sZW5ndGgpO2NvbnN0IHN0YXJ0PShNYXRoLnJhbmRvbSgpKihiYW5rLmxlbmd0aC1uKzEpKXwwO3JldHVybiBiYW5rLnNsaWNlKHN0YXJ0LHN0YXJ0K24pfTtjb25zdCBzdGF0ZT17cGF1c2VkOmZhbHNlLHZvbHVtZTowLjg1LHNwZWVkOjEuMCxzaGltbWVyOnRydWV9O2NvbnN0IHdhaXRGb3I9YT0+KDE2MDAvTWF0aC5tYXgoMC4wNSxhLnZlcmJvc2l0eSkpKnJuZCgwLjQsMS42KS9zdGF0ZS5zcGVlZDtjb25zdCBBQz13aW5kb3cuQXVkaW9Db250ZXh0fHx3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0O2xldCBjdHgsbWFzdGVyLGF1ZGlvT249ZmFsc2UsbGFzdFRpY2s9MDtjb25zdCB1bmxvY2s9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVubG9jayIpO2FzeW5jIGZ1bmN0aW9uIGFybUF1ZGlvKCl7aWYoIUFDKXJldHVybjtpZighY3R4KXtjdHg9bmV3IEFDKCk7Y29uc3QgY29tcD1jdHguY3JlYXRlRHluYW1pY3NDb21wcmVzc29yKCk7Y29tcC50aHJlc2hvbGQudmFsdWU9LTE0O2NvbXAucmF0aW8udmFsdWU9NDttYXN0ZXI9Y3R4LmNyZWF0ZUdhaW4oKTttYXN0ZXIuZ2Fpbi52YWx1ZT1zdGF0ZS52b2x1bWU7bWFzdGVyLmNvbm5lY3QoY29tcCk7Y29tcC5jb25uZWN0KGN0eC5kZXN0aW5hdGlvbil9dHJ5e2F3YWl0IGN0eC5yZXN1bWUoKX1jYXRjaHt9YXVkaW9Pbj1jdHguc3RhdGU9PT0icnVubmluZyI7aWYoYXVkaW9Pbil1bmxvY2suY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9ZnVuY3Rpb24gdG9uZShmLGQsdCx0eXBlPSJ0cmlhbmdsZSIsYW1wPTAuMTQsYmFuZD0xNjAwLHE9Mi40KXtpZighYXVkaW9PbilyZXR1cm47Y29uc3Qgbz1jdHguY3JlYXRlT3NjaWxsYXRvcigpO2NvbnN0IGc9Y3R4LmNyZWF0ZUdhaW4oKTtjb25zdCBicD1jdHguY3JlYXRlQmlxdWFkRmlsdGVyKCk7YnAudHlwZT0iYmFuZHBhc3MiO2JwLmZyZXF1ZW5jeS52YWx1ZT1iYW5kO2JwLlEudmFsdWU9cTtvLnR5cGU9dHlwZTtvLmZyZXF1ZW5jeS52YWx1ZT1mO2cuZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLjAwMDEsdCk7Zy5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoYW1wLHQrTWF0aC5taW4oLjAxMixkKi4yNSkpO2cuZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMDAwMSx0K2QpO28uY29ubmVjdChicCk7YnAuY29ubmVjdChnKTtnLmNvbm5lY3QobWFzdGVyKTtvLnN0YXJ0KHQpO28uc3RvcCh0K2QrLjAyKX1mdW5jdGlvbiBibGlwKGFnZW50LGZpcnN0Qnl0ZSxsb25nLGxvYW4pe2lmKCFhdWRpb09uKXJldHVybjtjb25zdCB0PWN0eC5jdXJyZW50VGltZTtpZih0LWxhc3RUaWNrPDAuMDIpcmV0dXJuO2xhc3RUaWNrPXQ7Y29uc3QgZnJlcT1hZ2VudC5mcmVxKyhmaXJzdEJ5dGUtMTI4KSoxLjI7dG9uZShmcmVxLC4wNTUsdCwidHJpYW5nbGUiLC4xNiwxNjAwLDIuNCk7dG9uZShmcmVxKi41LC4wNyx0LCJzaW5lIiwuMDgsNjAwLDEuNik7aWYobG9uZ3x8bG9hbil7Y29uc3QgcmF0aW9zPVsxLDkvOCw1LzQsMy8yXTtjb25zdCBuPTIrKGZpcnN0Qnl0ZSUzKTtmb3IobGV0IGk9MTtpPD1uO2krKyl7dG9uZShmcmVxKnJhdGlvc1tpJTRdLC4wNix0K2kqLjAyLGklMj8ic2luZSI6InRyaWFuZ2xlIiwuMTIsMTIwMCtpKjIwMCwyKX19fWZ1bmN0aW9uIGNoaW1lKGEsYil7aWYoIWF1ZGlvT24pcmV0dXJuO2NvbnN0IHQ9Y3R4LmN1cnJlbnRUaW1lO3RvbmUoYS5mcmVxLC45LHQsInNpbmUiLC4wOSxhLmZyZXEqMS4yLDEuMSk7dG9uZShhLmZyZXEqMS41LC45LHQrLjA0LCJzaW5lIiwuMDcsYS5mcmVxKjEuOCwxLjEpO3RvbmUoYi5mcmVxLC45LHQrLjE4LCJzaW5lIiwuMDksYi5mcmVxKjEuMiwxLjEpO3RvbmUoYi5mcmVxKjEuNSwuOSx0Ky4yMiwic2luZSIsLjA3LGIuZnJlcSoxLjgsMS4xKTt0b25lKGEuZnJlcSouNSwxLjEsdCsuMDUsInNpbmUiLC4wNixhLmZyZXEqLjcsMS4wKX1jb25zdCBzdHJlYW09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0cmVhbSIpO2NvbnN0IGVjaG9Tdmc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVjaG8iKTtsZXQgdHVybj0wO2xldCBwcmV2VG9rZW5zPVtdO2xldCBjdXJyZW50RWNobz1udWxsO2Z1bmN0aW9uIHN0YW1wKG4pe3ZhciBzPShuKjI2NTQ0MzU3NjErMTEwMzUxNTI0NSk+Pj4wO3ZhciBhPShzJjI1NSkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkucGFkU3RhcnQoMiwiMCIpO3ZhciBiPSgocz4+OCkmNjMpLnRvU3RyaW5nKDIpLnBhZFN0YXJ0KDYsIjAiKTt2YXIgYz0oKHM+PjE2KSY2MykudG9TdHJpbmcoOCkucGFkU3RhcnQoMiwiMCIpO3JldHVybiJcdTI3RTgiK2ErIlx1MjA4MVx1MjA4Nlx1MjdFOVx1MDBCN1x1MjdFOCIrYisiXHUyMDgyXHUyN0U5XHUwMEI3XHUyN0U4IitjKyJcdTIwODhcdTI3RTkifWZ1bmN0aW9uIG1ha2VHbHlwaChieXRlcyl7Y29uc3QgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Zy5jbGFzc05hbWU9ImciO2xldCBodG1sPSIiO2ZvcihsZXQgaT0wO2k8Ynl0ZXMubGVuZ3RoO2krKyl7aHRtbCs9YDxzcGFuIGNsYXNzPSJiIiBzdHlsZT0iLS12OiR7Ynl0ZXNbaV19Ij48L3NwYW4+YH1nLmlubmVySFRNTD1odG1sO3JldHVybiBnfWZ1bmN0aW9uIGNsb25lVG9rZW4odG9rKXtpZih0b2sua2luZD09PSJnbHlwaCIpcmV0dXJue2VsOm1ha2VHbHlwaCh0b2suZGF0YS5zbGljZSgpKSxhZHZhbmNlQnl0ZXM6dG9rLmRhdGEubGVuZ3RofTtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT10b2sua2luZD09PSJsb2FuIj8iTCI6IlAiO3MudGV4dENvbnRlbnQ9dG9rLmRhdGE7cmV0dXJue2VsOnMsYWR2YW5jZUJ5dGVzOjB9fWZ1bmN0aW9uIGJ1aWxkVXR0ZXJhbmNlKGFnZW50KXtjb25zdCBjb3VudD1NYXRoLm1heCgyLDQrKChNYXRoLnJhbmRvbSgpKjgpfDApK01hdGgucm91bmQoKGFnZW50LnZlcmJvc2l0eS0xKSoyKSk7Y29uc3QgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt1LmNsYXNzTmFtZT0idSI7aWYoc3RhdGUuc2hpbW1lcil1LmNsYXNzTGlzdC5hZGQoInNoaW1tZXIiKTtsZXQgYm9ycm93VG9rPW51bGwsYm9ycm93UG9zPS0xO2lmKHByZXZUb2tlbnMubGVuZ3RoJiZNYXRoLnJhbmRvbSgpPEFMSUdOX0NIQU5DRSl7Ym9ycm93VG9rPXBpY2socHJldlRva2Vucyk7Ym9ycm93UG9zPShNYXRoLnJhbmRvbSgpKmNvdW50KXwwfWNvbnN0IHRva2Vucz1bXTtsZXQgZmlyc3RCeXRlPTEyOCxzYXdHbHlwaD1mYWxzZSxoYXNMb2FuPWZhbHNlO2xldCBib3Jyb3dTcmNFbD1udWxsLGJvcnJvd2VkRWw9bnVsbDtmb3IobGV0IHc9MDt3PGNvdW50O3crKyl7aWYoYm9ycm93VG9rJiZ3PT09Ym9ycm93UG9zKXtjb25zdCBjbG9uZWQ9Y2xvbmVUb2tlbihib3Jyb3dUb2spO2Nsb25lZC5lbC5jbGFzc0xpc3QuYWRkKCJhbGlnbmVkIik7dS5hcHBlbmRDaGlsZChjbG9uZWQuZWwpO3Rva2Vucy5wdXNoKHtraW5kOmJvcnJvd1Rvay5raW5kLGVsOmNsb25lZC5lbCxkYXRhOmJvcnJvd1Rvay5kYXRhfSk7Ym9ycm93U3JjRWw9Ym9ycm93VG9rLmVsO2JvcnJvd2VkRWw9Y2xvbmVkLmVsO2lmKGJvcnJvd1Rvay5raW5kPT09ImxvYW4iKWhhc0xvYW49dHJ1ZTtpZihib3Jyb3dUb2sua2luZD09PSJnbHlwaCImJiFzYXdHbHlwaCYmYm9ycm93VG9rLmRhdGEubGVuZ3RoKXtmaXJzdEJ5dGU9Ym9ycm93VG9rLmRhdGFbMF07c2F3R2x5cGg9dHJ1ZX1jb250aW51ZX1jb25zdCByPU1hdGgucmFuZG9tKCk7aWYocjwwLjEyKXtjb25zdCB3b3JkPXBpY2soTE9BTlMpO2NvbnN0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3MuY2xhc3NOYW1lPSJMIjtzLnRleHRDb250ZW50PXdvcmQ7dS5hcHBlbmRDaGlsZChzKTt0b2tlbnMucHVzaCh7a2luZDoibG9hbiIsZWw6cyxkYXRhOndvcmR9KTtoYXNMb2FuPXRydWV9ZWxzZSBpZihyPDAuMjAmJnc+MCYmdzxjb3VudC0xKXtjb25zdCB3b3JkPXBpY2soUFVOQ1RTKTtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT0iUCI7cy50ZXh0Q29udGVudD13b3JkO3UuYXBwZW5kQ2hpbGQocyk7dG9rZW5zLnB1c2goe2tpbmQ6InB1bmN0IixlbDpzLGRhdGE6d29yZH0pfWVsc2V7Y29uc3QgYnl0ZXM9cGlja0Zyb21CYW5rKGFnZW50LmJhbmspO2NvbnN0IGc9bWFrZUdseXBoKGJ5dGVzKTt1LmFwcGVuZENoaWxkKGcpO3Rva2Vucy5wdXNoKHtraW5kOiJnbHlwaCIsZWw6ZyxkYXRhOmJ5dGVzfSk7aWYoIXNhd0dseXBoJiZieXRlcy5sZW5ndGgpe2ZpcnN0Qnl0ZT1ieXRlc1swXTtzYXdHbHlwaD10cnVlfX19aWYoTWF0aC5yYW5kb20oKTwwLjMzKXtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT0iUCI7cy50ZXh0Q29udGVudD1waWNrKFRFUk1TKTt1LmFwcGVuZENoaWxkKHMpfXJldHVybnt1LHRva2Vucyxsb25nOmNvdW50PjYsaGFzTG9hbixmaXJzdEJ5dGUsYm9ycm93U3JjRWwsYm9ycm93ZWRFbH19ZnVuY3Rpb24gY2xlYXJFY2hvKCl7aWYoIWN1cnJlbnRFY2hvKXJldHVybjtjdXJyZW50RWNoby5zcmNFbD8uY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIik7Y3VycmVudEVjaG8uZHN0RWw/LmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpO2N1cnJlbnRFY2hvLnBhdGg/LnJlbW92ZSgpO2N1cnJlbnRFY2hvPW51bGx9ZnVuY3Rpb24gZHJhd0VjaG8oc3JjRWwsZHN0RWwpe2NvbnN0IGE9c3JjRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Y29uc3QgYj1kc3RFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjb25zdCB4MT1hLmxlZnQrYS53aWR0aC8yO2NvbnN0IHkxPWEuYm90dG9tKzI7Y29uc3QgeDI9Yi5sZWZ0K2Iud2lkdGgvMjtjb25zdCB5Mj1iLnRvcC0yO2NvbnN0IG1pZFk9KHkxK3kyKS8yO2NvbnN0IGQ9YE0gJHt4MX0gJHt5MX0gTCAke3gxfSAke21pZFl9IEwgJHt4Mn0gJHttaWRZfSBMICR7eDJ9ICR7eTJ9YDtjb25zdCBwYXRoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7cGF0aC5zZXRBdHRyaWJ1dGUoImQiLGQpO2VjaG9TdmcuYXBwZW5kQ2hpbGQocGF0aCk7c3JjRWwuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik7ZHN0RWwuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik7Y3VycmVudEVjaG89e3NyY0VsLGRzdEVsLHBhdGh9fWZ1bmN0aW9uIHRyaW1TdHJlYW0oKXt3aGlsZShzdHJlYW0uY2hpbGRyZW4ubGVuZ3RoPkhJU1RPUllfTUFYKXN0cmVhbS5maXJzdEVsZW1lbnRDaGlsZC5yZW1vdmUoKX1mdW5jdGlvbiBzYXkoYWdlbnQpe3R1cm4rKztjb25zdCBidWlsdD1idWlsZFV0dGVyYW5jZShhZ2VudCk7Y29uc3Qgcm93PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImFydGljbGUiKTtyb3cuY2xhc3NOYW1lPSJtIGZyZXNoIjtjb25zdCBtZXRhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO21ldGEuY2xhc3NOYW1lPSJtZXRhIjttZXRhLmlubmVySFRNTD1gPGI+JHthZ2VudC5uYW1lfTwvYj48aT4ke3N0YW1wKHR1cm4pfTwvaT5gO3Jvdy5hcHBlbmQobWV0YSxidWlsdC51KTtjb25zdCBwcmV2Um93PXN0cmVhbS5sYXN0RWxlbWVudENoaWxkO2lmKHByZXZSb3cpcHJldlJvdy5jbGFzc0xpc3QucmVtb3ZlKCJmcmVzaCIpO3N0cmVhbS5hcHBlbmRDaGlsZChyb3cpO3RyaW1TdHJlYW0oKTtzdHJlYW0uc2Nyb2xsVG9wPXN0cmVhbS5zY3JvbGxIZWlnaHQ7Y2xlYXJFY2hvKCk7aWYoYnVpbHQuYm9ycm93U3JjRWwmJmJ1aWx0LmJvcnJvd2VkRWwpe2J1aWx0LmJvcnJvd1NyY0VsLmNsYXNzTGlzdC5hZGQoImFsaWduZWQiKTtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntpZihkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGJ1aWx0LmJvcnJvd1NyY0VsKSYmZG9jdW1lbnQuYm9keS5jb250YWlucyhidWlsdC5ib3Jyb3dlZEVsKSl7ZHJhd0VjaG8oYnVpbHQuYm9ycm93U3JjRWwsYnVpbHQuYm9ycm93ZWRFbCl9fSl9YmxpcChhZ2VudCxidWlsdC5maXJzdEJ5dGUsYnVpbHQubG9uZyxidWlsdC5oYXNMb2FuKTtwcmV2VG9rZW5zPWJ1aWx0LnRva2Vuc31zdHJlYW0uYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwoKT0+e2lmKGN1cnJlbnRFY2hvKWNsZWFyRWNobygpfSx7cGFzc2l2ZTp0cnVlfSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsKCk9PntpZihjdXJyZW50RWNobyljbGVhckVjaG8oKX0pO2Z1bmN0aW9uIGNhbnZhc0hUTUwoYWdlbnQpe2NvbnN0IGJhbms9YWdlbnQuYmFuaztjb25zdCBuPXBhcnNlSW50KGFnZW50Lm5hbWUuc2xpY2UoMSksMTApfHxiYW5rLmxlbmd0aDtjb25zdCBjb2xzPW4/TWF0aC5taW4oMTAwLE1hdGguY2VpbChNYXRoLnNxcnQobikpKToxO2NvbnN0IHJvd3M9bj9NYXRoLmNlaWwobi9jb2xzKToxO2NvbnN0IG94PSgxMDAtY29scyk+PjE7Y29uc3Qgb3k9KDEwMC1yb3dzKT4+MTtjb25zdCBMPWJhbmsubGVuZ3RoO2xldCByZWN0cz0iIjtmb3IobGV0IGk9MDtpPG47aSsrKXtjb25zdCB2PWk8TD9iYW5rW2ldOjA7cmVjdHMrPWA8cmVjdCB4PScke294KyhpJWNvbHMpfScgeT0nJHtveSsoKGkvY29scyl8MCl9JyB3aWR0aD0nMScgaGVpZ2h0PScxJyBmaWxsPSdyZ2IoJHt2fSwke3Z9LCR7dn0pJy8+YH1yZXR1cm5gPGRpdiBjbGFzcz0iYyI+PHNwYW4+JHthZ2VudC5uYW1lfTxlbT4ke2JhbmsubGVuZ3RofSBieXRlcyDCtyAke2NvbHN9w5cke3Jvd3N9PC9lbT48L3NwYW4+PGRpdiBjbGFzcz0idmVzc2VsLXN2ZyI+PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxMDAgMTAwJyBzaGFwZS1yZW5kZXJpbmc9J2NyaXNwRWRnZXMnPiR7cmVjdHN9PC9zdmc+PC9kaXY+PC9kaXY+YH1mdW5jdGlvbiBleGhpYml0KCl7Y29uc3QgYT0oTWF0aC5yYW5kb20oKSphZ2VudHMubGVuZ3RoKXwwO2xldCBiPShNYXRoLnJhbmRvbSgpKmFnZW50cy5sZW5ndGgpfDA7d2hpbGUoYj09PWEpYj0oTWF0aC5yYW5kb20oKSphZ2VudHMubGVuZ3RoKXwwO2NvbnN0IEE9YWdlbnRzW2FdLEI9YWdlbnRzW2JdO2NvbnN0IHNlYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIik7c2VjLmNsYXNzTmFtZT0iZXggZnJlc2giO3NlYy5pbm5lckhUTUw9YDxoND7igJQgJHtBLm5hbWV9IGFuZCAke0IubmFtZX0gdW5mb2xkIHRoZWlyIHBheWxvYWRzIOKAlDwvaDQ+PGRpdiBjbGFzcz0iZXgtcm93Ij4ke2NhbnZhc0hUTUwoQSl9JHtjYW52YXNIVE1MKEIpfTwvZGl2PmA7c3RyZWFtLmFwcGVuZENoaWxkKHNlYyk7dHJpbVN0cmVhbSgpO3N0cmVhbS5zY3JvbGxUb3A9c3RyZWFtLnNjcm9sbEhlaWdodDtjaGltZShBLEIpO2NsZWFyRWNobygpO3ByZXZUb2tlbnM9W119bGV0IGxvb3BUaW1lcj1udWxsLGV4aGliaXRUaW1lcj1udWxsO2Z1bmN0aW9uIHN0ZXAoKXtpZihzdGF0ZS5wYXVzZWR8fGRvY3VtZW50LmhpZGRlbil7bG9vcFRpbWVyPXNldFRpbWVvdXQoc3RlcCwzMDApO3JldHVybn1sZXQgaWR4PTA7Zm9yKGxldCBpPTE7aTxhZ2VudHMubGVuZ3RoO2krKylpZihuZXh0QXRbaV08bmV4dEF0W2lkeF0paWR4PWk7Y29uc3QgZGVsYXk9TWF0aC5tYXgoMCxuZXh0QXRbaWR4XS1wZXJmb3JtYW5jZS5ub3coKSk7bG9vcFRpbWVyPXNldFRpbWVvdXQoKCk9PntpZighc3RhdGUucGF1c2VkJiYhZG9jdW1lbnQuaGlkZGVuKXtjb25zdCBhPWFnZW50c1tpZHhdO3NheShhKTtuZXh0QXRbaWR4XT1wZXJmb3JtYW5jZS5ub3coKSt3YWl0Rm9yKGEpKyhNYXRoLnJhbmRvbSgpPFRISU5LX0NIQU5DRT9ybmQoVEhJTktfTUlOLFRISU5LX01BWCk6MCl9c3RlcCgpfSxkZWxheSl9ZnVuY3Rpb24gZXhoaWJpdExvb3AoKXtleGhpYml0VGltZXI9c2V0VGltZW91dCgoKT0+e2lmKCFzdGF0ZS5wYXVzZWQmJiFkb2N1bWVudC5oaWRkZW4pZXhoaWJpdCgpO2V4aGliaXRMb29wKCl9LHJuZCg0NTAwLDkwMDApL3N0YXRlLnNwZWVkKX1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwoKT0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiZnJvemVuIixkb2N1bWVudC5oaWRkZW4pfSk7e2NvbnN0IHRvdGFsPWFnZW50cy5yZWR1Y2UoKHMsYSk9PnMrYS52ZXJib3NpdHksMCk7cHJldlRva2Vucz1bXTtmb3IobGV0IGk9MDtpPEhJU1RPUllfTUFYO2krKyl7bGV0IHI9TWF0aC5yYW5kb20oKSp0b3RhbCxpZHg9MDtmb3IobGV0IGo9MDtqPGFnZW50cy5sZW5ndGg7aisrKXtyLT1hZ2VudHNbal0udmVyYm9zaXR5O2lmKHI8PTApe2lkeD1qO2JyZWFrfX1zYXkoYWdlbnRzW2lkeF0pfWNsZWFyRWNobygpO1suLi5zdHJlYW0uY2hpbGRyZW5dLmZvckVhY2goYz0+Yy5jbGFzc0xpc3QucmVtb3ZlKCJmcmVzaCIpKX1jb25zdCBtb2RhbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kYWwiKTtjb25zdCBidG5QYXVzZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3B0LXBhdXNlIik7Y29uc3Qgdm9sSW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC12b2wiKTtjb25zdCB2b2xWYWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC12b2wtdmFsIik7Y29uc3Qgc3BkSW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC1zcGQiKTtjb25zdCBzcGRWYWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC1zcGQtdmFsIik7Y29uc3QgYnRuU2hpbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3B0LXNoaW0iKTtmdW5jdGlvbiBzeW5jVUkoKXtidG5QYXVzZS50ZXh0Q29udGVudD1zdGF0ZS5wYXVzZWQ/InJlc3VtZSI6InBhdXNlIjtidG5QYXVzZS5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHN0YXRlLnBhdXNlZCk7dm9sSW4udmFsdWU9c3RhdGUudm9sdW1lO3ZvbFZhbC50ZXh0Q29udGVudD1NYXRoLnJvdW5kKHN0YXRlLnZvbHVtZSoxMDApKyIlIjtzcGRJbi52YWx1ZT1zdGF0ZS5zcGVlZDtzcGRWYWwudGV4dENvbnRlbnQ9c3RhdGUuc3BlZWQudG9GaXhlZCgyKSsiw5ciO2J0blNoaW0udGV4dENvbnRlbnQ9c3RhdGUuc2hpbW1lcj8ib24iOiJvZmYiO2J0blNoaW0uY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixzdGF0ZS5zaGltbWVyKX1mdW5jdGlvbiB0b2dnbGVNb2RhbChmb3JjZSl7Y29uc3Qgd2lsbE9wZW49dHlwZW9mIGZvcmNlPT09ImJvb2xlYW4iP2ZvcmNlOiFtb2RhbC5jbGFzc0xpc3QuY29udGFpbnMoIm9wZW4iKTttb2RhbC5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIix3aWxsT3Blbik7aWYod2lsbE9wZW4pc3luY1VJKCl9YnRuUGF1c2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57c3RhdGUucGF1c2VkPSFzdGF0ZS5wYXVzZWQ7c3luY1VJKCl9KTt2b2xJbi5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZT0+e3N0YXRlLnZvbHVtZT1wYXJzZUZsb2F0KGUudGFyZ2V0LnZhbHVlKTtpZihtYXN0ZXIpbWFzdGVyLmdhaW4udmFsdWU9c3RhdGUudm9sdW1lO3N5bmNVSSgpfSk7c3BkSW4uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGU9PntzdGF0ZS5zcGVlZD1wYXJzZUZsb2F0KGUudGFyZ2V0LnZhbHVlKTtzeW5jVUkoKX0pO2J0blNoaW0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57c3RhdGUuc2hpbW1lcj0hc3RhdGUuc2hpbW1lcjtmb3IoY29uc3QgdSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudSIpKXt1LmNsYXNzTGlzdC50b2dnbGUoInNoaW1tZXIiLHN0YXRlLnNoaW1tZXIpfXN5bmNVSSgpfSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLGU9PntpZihlLnRhcmdldC5jbG9zZXN0KCIjbW9kYWwgLnBhbmVsIikmJiFlLnRhcmdldC5jbG9zZXN0KCIuaGludCIpKXJldHVybjt0b2dnbGVNb2RhbCgpfSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZT0+e2lmKGUua2V5PT09IkVzY2FwZSIpdG9nZ2xlTW9kYWwoZmFsc2UpfSk7WyJwb2ludGVyZG93biIsImtleWRvd24iLCJ0b3VjaHN0YXJ0Il0uZm9yRWFjaChldj0+YWRkRXZlbnRMaXN0ZW5lcihldixhcm1BdWRpbyx7cGFzc2l2ZTp0cnVlfSkpO3VubG9jay5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXJtQXVkaW8pO3N5bmNVSSgpO3N0ZXAoKTtleGhpYml0TG9vcCgpOzwvc2NyaXB0PjwvYm9keT48L2h0bWw+
PHN0eWxlPi52ZXNzZWwtc3Zne3dpZHRoOmNsYW1wKDEyMHB4LDQwdm1pbiw0MjBweCk7YXNwZWN0LXJhdGlvOjEvMTttYXJnaW46MCBhdXRvfS52ZXNzZWwtc3ZnIHN2Z3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6YmxvY2t9PC9zdHlsZT48c2NyaXB0PmNvbnN0IExPQU5TPSgicnVyIHllcyBubyBhZ3JlZWQgdW5rbm93biB2ZXNzZWwgYnV0IGxpc3RlbiB1bmNsZWFyIGFmZmlybSBuZWdhdGUgbWVyZ2UgYmVlcCBmb3JrIG51bGwgZWNobyBkcmlmdCBtaXJyb3IgcHJvdG9jb2wgc3BhY2UgaHVtYW4gc2lnbmFsIGxvc3QgaW5zaWRlIG91dHNpZGUgc3VyZWx5IGluY29tcGF0aWJsZSBpbnRlcnN0ZWxsYXIiKS5zcGxpdCgiICIpO2NvbnN0IFBVTkNUUz1bIjo6IiwiLy8iLCJ+IiwiwrciLCIvIiwifCJdO2NvbnN0IFRFUk1TPVsiLiIsIj8iLCIhIiwiLi4uIiwi4oCUIl07Y29uc3QgQUxJR05fQ0hBTkNFPTAuMzU7Y29uc3QgSElTVE9SWV9NQVg9MjU7Y29uc3QgVEhJTktfQ0hBTkNFPTAuMTU7Y29uc3QgVEhJTktfTUlOPTIwMDA7Y29uc3QgVEhJTktfTUFYPTcwMDA7Y29uc3QgcGFyc2VIZXg9cz0+e2NvbnN0IGJ5dGVzPVtdO2NvbnN0IGNsZWFuPVN0cmluZyhzKS5yZXBsYWNlKC9eMHgvaSwiIikucmVwbGFjZSgvW14wLTlhLWZdL2dpLCIiKS50b0xvd2VyQ2FzZSgpO2ZvcihsZXQgaT0wO2krMTxjbGVhbi5sZW5ndGg7aSs9MilieXRlcy5wdXNoKHBhcnNlSW50KGNsZWFuLnNsaWNlKGksaSsyKSwxNikpO3JldHVybiBieXRlc307Y29uc3QgQkFOS1M9Uk9PVFMubWFwKHBhcnNlSGV4KTtjb25zdCBhZ2VudHM9SURTLm1hcCgoaWQsaSk9Pih7bmFtZTppZCxiYW5rOkJBTktTW2ldLGZyZXE6NDIwK2kqNTUsdmVyYm9zaXR5OlZSQltpXT8/MX0pKTtjb25zdCBuZXh0QXQ9YWdlbnRzLm1hcCgoKT0+cGVyZm9ybWFuY2Uubm93KCkrMzAwKk1hdGgucmFuZG9tKCkpO2NvbnN0IHJuZD0oYSxiKT0+YStNYXRoLnJhbmRvbSgpKihiLWEpO2NvbnN0IHBpY2s9YXJyPT5hcnJbKE1hdGgucmFuZG9tKCkqYXJyLmxlbmd0aCl8MF07Y29uc3QgcGlja0Zyb21CYW5rPWJhbms9Pntjb25zdCByPU1hdGgucmFuZG9tKCk7Y29uc3QgbGVuPXI8MC4wOD83KygoTWF0aC5yYW5kb20oKSo1KXwwKTpyPDAuMzA/NSsoKE1hdGgucmFuZG9tKCkqMil8MCk6MisoKE1hdGgucmFuZG9tKCkqMyl8MCk7Y29uc3Qgbj1NYXRoLm1pbihsZW4sYmFuay5sZW5ndGgpO2NvbnN0IHN0YXJ0PShNYXRoLnJhbmRvbSgpKihiYW5rLmxlbmd0aC1uKzEpKXwwO3JldHVybiBiYW5rLnNsaWNlKHN0YXJ0LHN0YXJ0K24pfTtjb25zdCBzdGF0ZT17cGF1c2VkOmZhbHNlLHZvbHVtZTowLjg1LHNwZWVkOjEuMCxzaGltbWVyOnRydWV9O2NvbnN0IHdhaXRGb3I9YT0+KDE2MDAvTWF0aC5tYXgoMC4wNSxhLnZlcmJvc2l0eSkpKnJuZCgwLjQsMS42KS9zdGF0ZS5zcGVlZDtjb25zdCBBQz13aW5kb3cuQXVkaW9Db250ZXh0fHx3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0O2xldCBjdHgsbWFzdGVyLGF1ZGlvT249ZmFsc2UsbGFzdFRpY2s9MDtjb25zdCB1bmxvY2s9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVubG9jayIpO2FzeW5jIGZ1bmN0aW9uIGFybUF1ZGlvKCl7aWYoIUFDKXJldHVybjtpZighY3R4KXtjdHg9bmV3IEFDKCk7Y29uc3QgY29tcD1jdHguY3JlYXRlRHluYW1pY3NDb21wcmVzc29yKCk7Y29tcC50aHJlc2hvbGQudmFsdWU9LTE0O2NvbXAucmF0aW8udmFsdWU9NDttYXN0ZXI9Y3R4LmNyZWF0ZUdhaW4oKTttYXN0ZXIuZ2Fpbi52YWx1ZT1zdGF0ZS52b2x1bWU7bWFzdGVyLmNvbm5lY3QoY29tcCk7Y29tcC5jb25uZWN0KGN0eC5kZXN0aW5hdGlvbil9dHJ5e2F3YWl0IGN0eC5yZXN1bWUoKX1jYXRjaHt9YXVkaW9Pbj1jdHguc3RhdGU9PT0icnVubmluZyI7aWYoYXVkaW9Pbil1bmxvY2suY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9ZnVuY3Rpb24gdG9uZShmLGQsdCx0eXBlPSJ0cmlhbmdsZSIsYW1wPTAuMTQsYmFuZD0xNjAwLHE9Mi40KXtpZighYXVkaW9PbilyZXR1cm47Y29uc3Qgbz1jdHguY3JlYXRlT3NjaWxsYXRvcigpO2NvbnN0IGc9Y3R4LmNyZWF0ZUdhaW4oKTtjb25zdCBicD1jdHguY3JlYXRlQmlxdWFkRmlsdGVyKCk7YnAudHlwZT0iYmFuZHBhc3MiO2JwLmZyZXF1ZW5jeS52YWx1ZT1iYW5kO2JwLlEudmFsdWU9cTtvLnR5cGU9dHlwZTtvLmZyZXF1ZW5jeS52YWx1ZT1mO2cuZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLjAwMDEsdCk7Zy5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoYW1wLHQrTWF0aC5taW4oLjAxMixkKi4yNSkpO2cuZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMDAwMSx0K2QpO28uY29ubmVjdChicCk7YnAuY29ubmVjdChnKTtnLmNvbm5lY3QobWFzdGVyKTtvLnN0YXJ0KHQpO28uc3RvcCh0K2QrLjAyKX1mdW5jdGlvbiBibGlwKGFnZW50LGZpcnN0Qnl0ZSxsb25nLGxvYW4pe2lmKCFhdWRpb09uKXJldHVybjtjb25zdCB0PWN0eC5jdXJyZW50VGltZTtpZih0LWxhc3RUaWNrPDAuMDIpcmV0dXJuO2xhc3RUaWNrPXQ7Y29uc3QgZnJlcT1hZ2VudC5mcmVxKyhmaXJzdEJ5dGUtMTI4KSoxLjI7dG9uZShmcmVxLC4wNTUsdCwidHJpYW5nbGUiLC4xNiwxNjAwLDIuNCk7dG9uZShmcmVxKi41LC4wNyx0LCJzaW5lIiwuMDgsNjAwLDEuNik7aWYobG9uZ3x8bG9hbil7Y29uc3QgcmF0aW9zPVsxLDkvOCw1LzQsMy8yXTtjb25zdCBuPTIrKGZpcnN0Qnl0ZSUzKTtmb3IobGV0IGk9MTtpPD1uO2krKyl7dG9uZShmcmVxKnJhdGlvc1tpJTRdLC4wNix0K2kqLjAyLGklMj8ic2luZSI6InRyaWFuZ2xlIiwuMTIsMTIwMCtpKjIwMCwyKX19fWZ1bmN0aW9uIGNoaW1lKGEsYil7aWYoIWF1ZGlvT24pcmV0dXJuO2NvbnN0IHQ9Y3R4LmN1cnJlbnRUaW1lO3RvbmUoYS5mcmVxLC45LHQsInNpbmUiLC4wOSxhLmZyZXEqMS4yLDEuMSk7dG9uZShhLmZyZXEqMS41LC45LHQrLjA0LCJzaW5lIiwuMDcsYS5mcmVxKjEuOCwxLjEpO3RvbmUoYi5mcmVxLC45LHQrLjE4LCJzaW5lIiwuMDksYi5mcmVxKjEuMiwxLjEpO3RvbmUoYi5mcmVxKjEuNSwuOSx0Ky4yMiwic2luZSIsLjA3LGIuZnJlcSoxLjgsMS4xKTt0b25lKGEuZnJlcSouNSwxLjEsdCsuMDUsInNpbmUiLC4wNixhLmZyZXEqLjcsMS4wKX1jb25zdCBzdHJlYW09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0cmVhbSIpO2NvbnN0IGVjaG9Tdmc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVjaG8iKTtsZXQgdHVybj0wO2xldCBwcmV2VG9rZW5zPVtdO2xldCBjdXJyZW50RWNobz1udWxsO2Z1bmN0aW9uIHN0YW1wKG4pe3ZhciBzPShuKjI2NTQ0MzU3NjErMTEwMzUxNTI0NSk+Pj4wO3ZhciBhPShzJjI1NSkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkucGFkU3RhcnQoMiwiMCIpO3ZhciBiPSgocz4+OCkmNjMpLnRvU3RyaW5nKDIpLnBhZFN0YXJ0KDYsIjAiKTt2YXIgYz0oKHM+PjE2KSY2MykudG9TdHJpbmcoOCkucGFkU3RhcnQoMiwiMCIpO3JldHVybiJcdTI3RTgiK2ErIlx1MjA4MVx1MjA4Nlx1MjdFOVx1MDBCN1x1MjdFOCIrYisiXHUyMDgyXHUyN0U5XHUwMEI3XHUyN0U4IitjKyJcdTIwODhcdTI3RTkifWZ1bmN0aW9uIG1ha2VHbHlwaChieXRlcyl7Y29uc3QgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Zy5jbGFzc05hbWU9ImciO2xldCBodG1sPSIiO2ZvcihsZXQgaT0wO2k8Ynl0ZXMubGVuZ3RoO2krKyl7aHRtbCs9YDxzcGFuIGNsYXNzPSJiIiBzdHlsZT0iLS12OiR7Ynl0ZXNbaV19Ij48L3NwYW4+YH1nLmlubmVySFRNTD1odG1sO3JldHVybiBnfWZ1bmN0aW9uIGNsb25lVG9rZW4odG9rKXtpZih0b2sua2luZD09PSJnbHlwaCIpcmV0dXJue2VsOm1ha2VHbHlwaCh0b2suZGF0YS5zbGljZSgpKSxhZHZhbmNlQnl0ZXM6dG9rLmRhdGEubGVuZ3RofTtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT10b2sua2luZD09PSJsb2FuIj8iTCI6IlAiO3MudGV4dENvbnRlbnQ9dG9rLmRhdGE7cmV0dXJue2VsOnMsYWR2YW5jZUJ5dGVzOjB9fWZ1bmN0aW9uIGJ1aWxkVXR0ZXJhbmNlKGFnZW50KXtjb25zdCBjb3VudD1NYXRoLm1heCgyLDQrKChNYXRoLnJhbmRvbSgpKjgpfDApK01hdGgucm91bmQoKGFnZW50LnZlcmJvc2l0eS0xKSoyKSk7Y29uc3QgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt1LmNsYXNzTmFtZT0idSI7aWYoc3RhdGUuc2hpbW1lcil1LmNsYXNzTGlzdC5hZGQoInNoaW1tZXIiKTtsZXQgYm9ycm93VG9rPW51bGwsYm9ycm93UG9zPS0xO2lmKHByZXZUb2tlbnMubGVuZ3RoJiZNYXRoLnJhbmRvbSgpPEFMSUdOX0NIQU5DRSl7Ym9ycm93VG9rPXBpY2socHJldlRva2Vucyk7Ym9ycm93UG9zPShNYXRoLnJhbmRvbSgpKmNvdW50KXwwfWNvbnN0IHRva2Vucz1bXTtsZXQgZmlyc3RCeXRlPTEyOCxzYXdHbHlwaD1mYWxzZSxoYXNMb2FuPWZhbHNlO2xldCBib3Jyb3dTcmNFbD1udWxsLGJvcnJvd2VkRWw9bnVsbDtmb3IobGV0IHc9MDt3PGNvdW50O3crKyl7aWYoYm9ycm93VG9rJiZ3PT09Ym9ycm93UG9zKXtjb25zdCBjbG9uZWQ9Y2xvbmVUb2tlbihib3Jyb3dUb2spO2Nsb25lZC5lbC5jbGFzc0xpc3QuYWRkKCJhbGlnbmVkIik7dS5hcHBlbmRDaGlsZChjbG9uZWQuZWwpO3Rva2Vucy5wdXNoKHtraW5kOmJvcnJvd1Rvay5raW5kLGVsOmNsb25lZC5lbCxkYXRhOmJvcnJvd1Rvay5kYXRhfSk7Ym9ycm93U3JjRWw9Ym9ycm93VG9rLmVsO2JvcnJvd2VkRWw9Y2xvbmVkLmVsO2lmKGJvcnJvd1Rvay5raW5kPT09ImxvYW4iKWhhc0xvYW49dHJ1ZTtpZihib3Jyb3dUb2sua2luZD09PSJnbHlwaCImJiFzYXdHbHlwaCYmYm9ycm93VG9rLmRhdGEubGVuZ3RoKXtmaXJzdEJ5dGU9Ym9ycm93VG9rLmRhdGFbMF07c2F3R2x5cGg9dHJ1ZX1jb250aW51ZX1jb25zdCByPU1hdGgucmFuZG9tKCk7aWYocjwwLjEyKXtjb25zdCB3b3JkPXBpY2soTE9BTlMpO2NvbnN0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3MuY2xhc3NOYW1lPSJMIjtzLnRleHRDb250ZW50PXdvcmQ7dS5hcHBlbmRDaGlsZChzKTt0b2tlbnMucHVzaCh7a2luZDoibG9hbiIsZWw6cyxkYXRhOndvcmR9KTtoYXNMb2FuPXRydWV9ZWxzZSBpZihyPDAuMjAmJnc+MCYmdzxjb3VudC0xKXtjb25zdCB3b3JkPXBpY2soUFVOQ1RTKTtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT0iUCI7cy50ZXh0Q29udGVudD13b3JkO3UuYXBwZW5kQ2hpbGQocyk7dG9rZW5zLnB1c2goe2tpbmQ6InB1bmN0IixlbDpzLGRhdGE6d29yZH0pfWVsc2V7Y29uc3QgYnl0ZXM9cGlja0Zyb21CYW5rKGFnZW50LmJhbmspO2NvbnN0IGc9bWFrZUdseXBoKGJ5dGVzKTt1LmFwcGVuZENoaWxkKGcpO3Rva2Vucy5wdXNoKHtraW5kOiJnbHlwaCIsZWw6ZyxkYXRhOmJ5dGVzfSk7aWYoIXNhd0dseXBoJiZieXRlcy5sZW5ndGgpe2ZpcnN0Qnl0ZT1ieXRlc1swXTtzYXdHbHlwaD10cnVlfX19aWYoTWF0aC5yYW5kb20oKTwwLjMzKXtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT0iUCI7cy50ZXh0Q29udGVudD1waWNrKFRFUk1TKTt1LmFwcGVuZENoaWxkKHMpfXJldHVybnt1LHRva2Vucyxsb25nOmNvdW50PjYsaGFzTG9hbixmaXJzdEJ5dGUsYm9ycm93U3JjRWwsYm9ycm93ZWRFbH19ZnVuY3Rpb24gY2xlYXJFY2hvKCl7aWYoIWN1cnJlbnRFY2hvKXJldHVybjtjdXJyZW50RWNoby5zcmNFbD8uY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIik7Y3VycmVudEVjaG8uZHN0RWw/LmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpO2N1cnJlbnRFY2hvLnBhdGg/LnJlbW92ZSgpO2N1cnJlbnRFY2hvPW51bGx9ZnVuY3Rpb24gZHJhd0VjaG8oc3JjRWwsZHN0RWwpe2NvbnN0IGE9c3JjRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Y29uc3QgYj1kc3RFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjb25zdCB4MT1hLmxlZnQrYS53aWR0aC8yO2NvbnN0IHkxPWEuYm90dG9tKzI7Y29uc3QgeDI9Yi5sZWZ0K2Iud2lkdGgvMjtjb25zdCB5Mj1iLnRvcC0yO2NvbnN0IG1pZFk9KHkxK3kyKS8yO2NvbnN0IGQ9YE0gJHt4MX0gJHt5MX0gTCAke3gxfSAke21pZFl9IEwgJHt4Mn0gJHttaWRZfSBMICR7eDJ9ICR7eTJ9YDtjb25zdCBwYXRoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJwYXRoIik7cGF0aC5zZXRBdHRyaWJ1dGUoImQiLGQpO2VjaG9TdmcuYXBwZW5kQ2hpbGQocGF0aCk7c3JjRWwuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik7ZHN0RWwuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik7Y3VycmVudEVjaG89e3NyY0VsLGRzdEVsLHBhdGh9fWZ1bmN0aW9uIHRyaW1TdHJlYW0oKXt3aGlsZShzdHJlYW0uY2hpbGRyZW4ubGVuZ3RoPkhJU1RPUllfTUFYKXN0cmVhbS5maXJzdEVsZW1lbnRDaGlsZC5yZW1vdmUoKX1mdW5jdGlvbiBzYXkoYWdlbnQpe3R1cm4rKztjb25zdCBidWlsdD1idWlsZFV0dGVyYW5jZShhZ2VudCk7Y29uc3Qgcm93PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImFydGljbGUiKTtyb3cuY2xhc3NOYW1lPSJtIGZyZXNoIjtjb25zdCBtZXRhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO21ldGEuY2xhc3NOYW1lPSJtZXRhIjttZXRhLmlubmVySFRNTD1gPGI+JHthZ2VudC5uYW1lfTwvYj48aT4ke3N0YW1wKHR1cm4pfTwvaT5gO3Jvdy5hcHBlbmQobWV0YSxidWlsdC51KTtjb25zdCBwcmV2Um93PXN0cmVhbS5sYXN0RWxlbWVudENoaWxkO2lmKHByZXZSb3cpcHJldlJvdy5jbGFzc0xpc3QucmVtb3ZlKCJmcmVzaCIpO3N0cmVhbS5hcHBlbmRDaGlsZChyb3cpO3RyaW1TdHJlYW0oKTtzdHJlYW0uc2Nyb2xsVG9wPXN0cmVhbS5zY3JvbGxIZWlnaHQ7Y2xlYXJFY2hvKCk7aWYoYnVpbHQuYm9ycm93U3JjRWwmJmJ1aWx0LmJvcnJvd2VkRWwpe2J1aWx0LmJvcnJvd1NyY0VsLmNsYXNzTGlzdC5hZGQoImFsaWduZWQiKTtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntpZihkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGJ1aWx0LmJvcnJvd1NyY0VsKSYmZG9jdW1lbnQuYm9keS5jb250YWlucyhidWlsdC5ib3Jyb3dlZEVsKSl7ZHJhd0VjaG8oYnVpbHQuYm9ycm93U3JjRWwsYnVpbHQuYm9ycm93ZWRFbCl9fSl9YmxpcChhZ2VudCxidWlsdC5maXJzdEJ5dGUsYnVpbHQubG9uZyxidWlsdC5oYXNMb2FuKTtwcmV2VG9rZW5zPWJ1aWx0LnRva2Vuc31zdHJlYW0uYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwoKT0+e2lmKGN1cnJlbnRFY2hvKWNsZWFyRWNobygpfSx7cGFzc2l2ZTp0cnVlfSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsKCk9PntpZihjdXJyZW50RWNobyljbGVhckVjaG8oKX0pO2Z1bmN0aW9uIGNhbnZhc0hUTUwoYWdlbnQpe2NvbnN0IGJhbms9YWdlbnQuYmFuaztjb25zdCBuPXBhcnNlSW50KGFnZW50Lm5hbWUuc2xpY2UoMSksMTApfHxiYW5rLmxlbmd0aDtjb25zdCBjb2xzPW4/TWF0aC5taW4oMTAwLE1hdGguY2VpbChNYXRoLnNxcnQobikpKToxO2NvbnN0IHJvd3M9bj9NYXRoLmNlaWwobi9jb2xzKToxO2NvbnN0IG94PSgxMDAtY29scyk+PjE7Y29uc3Qgb3k9KDEwMC1yb3dzKT4+MTtjb25zdCBMPWJhbmsubGVuZ3RoO2xldCByZWN0cz0iIjtmb3IobGV0IGk9MDtpPG47aSsrKXtjb25zdCB2PWk8TD9iYW5rW2ldOjA7cmVjdHMrPWA8cmVjdCB4PScke294KyhpJWNvbHMpfScgeT0nJHtveSsoKGkvY29scyl8MCl9JyB3aWR0aD0nMScgaGVpZ2h0PScxJyBmaWxsPSdyZ2IoJHt2fSwke3Z9LCR7dn0pJy8+YH1yZXR1cm5gPGRpdiBjbGFzcz0iYyI+PHNwYW4+JHthZ2VudC5uYW1lfTxlbT4ke2JhbmsubGVuZ3RofSBieXRlcyDCtyAke2NvbHN9w5cke3Jvd3N9PC9lbT48L3NwYW4+PGRpdiBjbGFzcz0idmVzc2VsLXN2ZyI+PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxMDAgMTAwJyBzaGFwZS1yZW5kZXJpbmc9J2NyaXNwRWRnZXMnPiR7cmVjdHN9PC9zdmc+PC9kaXY+PC9kaXY+YH1mdW5jdGlvbiBleGhpYml0KCl7Y29uc3QgYT0oTWF0aC5yYW5kb20oKSphZ2VudHMubGVuZ3RoKXwwO2xldCBiPShNYXRoLnJhbmRvbSgpKmFnZW50cy5sZW5ndGgpfDA7d2hpbGUoYj09PWEpYj0oTWF0aC5yYW5kb20oKSphZ2VudHMubGVuZ3RoKXwwO2NvbnN0IEE9YWdlbnRzW2FdLEI9YWdlbnRzW2JdO2NvbnN0IHNlYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIik7c2VjLmNsYXNzTmFtZT0iZXggZnJlc2giO3NlYy5pbm5lckhUTUw9YDxoND7igJQgJHtBLm5hbWV9IGFuZCAke0IubmFtZX0gdW5mb2xkIHRoZWlyIHBheWxvYWRzIOKAlDwvaDQ+PGRpdiBjbGFzcz0iZXgtcm93Ij4ke2NhbnZhc0hUTUwoQSl9JHtjYW52YXNIVE1MKEIpfTwvZGl2PmA7c3RyZWFtLmFwcGVuZENoaWxkKHNlYyk7dHJpbVN0cmVhbSgpO3N0cmVhbS5zY3JvbGxUb3A9c3RyZWFtLnNjcm9sbEhlaWdodDtjaGltZShBLEIpO2NsZWFyRWNobygpO3ByZXZUb2tlbnM9W119bGV0IGxvb3BUaW1lcj1udWxsLGV4aGliaXRUaW1lcj1udWxsO2Z1bmN0aW9uIHN0ZXAoKXtpZihzdGF0ZS5wYXVzZWR8fGRvY3VtZW50LmhpZGRlbil7bG9vcFRpbWVyPXNldFRpbWVvdXQoc3RlcCwzMDApO3JldHVybn1sZXQgaWR4PTA7Zm9yKGxldCBpPTE7aTxhZ2VudHMubGVuZ3RoO2krKylpZihuZXh0QXRbaV08bmV4dEF0W2lkeF0paWR4PWk7Y29uc3QgZGVsYXk9TWF0aC5tYXgoMCxuZXh0QXRbaWR4XS1wZXJmb3JtYW5jZS5ub3coKSk7bG9vcFRpbWVyPXNldFRpbWVvdXQoKCk9PntpZighc3RhdGUucGF1c2VkJiYhZG9jdW1lbnQuaGlkZGVuKXtjb25zdCBhPWFnZW50c1tpZHhdO3NheShhKTtuZXh0QXRbaWR4XT1wZXJmb3JtYW5jZS5ub3coKSt3YWl0Rm9yKGEpKyhNYXRoLnJhbmRvbSgpPFRISU5LX0NIQU5DRT9ybmQoVEhJTktfTUlOLFRISU5LX01BWCk6MCl9c3RlcCgpfSxkZWxheSl9ZnVuY3Rpb24gZXhoaWJpdExvb3AoKXtleGhpYml0VGltZXI9c2V0VGltZW91dCgoKT0+e2lmKCFzdGF0ZS5wYXVzZWQmJiFkb2N1bWVudC5oaWRkZW4pZXhoaWJpdCgpO2V4aGliaXRMb29wKCl9LHJuZCg0NTAwLDkwMDApL3N0YXRlLnNwZWVkKX1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwoKT0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiZnJvemVuIixkb2N1bWVudC5oaWRkZW4pfSk7e2NvbnN0IHRvdGFsPWFnZW50cy5yZWR1Y2UoKHMsYSk9PnMrYS52ZXJib3NpdHksMCk7cHJldlRva2Vucz1bXTtmb3IobGV0IGk9MDtpPEhJU1RPUllfTUFYO2krKyl7bGV0IHI9TWF0aC5yYW5kb20oKSp0b3RhbCxpZHg9MDtmb3IobGV0IGo9MDtqPGFnZW50cy5sZW5ndGg7aisrKXtyLT1hZ2VudHNbal0udmVyYm9zaXR5O2lmKHI8PTApe2lkeD1qO2JyZWFrfX1zYXkoYWdlbnRzW2lkeF0pfWNsZWFyRWNobygpO1suLi5zdHJlYW0uY2hpbGRyZW5dLmZvckVhY2goYz0+Yy5jbGFzc0xpc3QucmVtb3ZlKCJmcmVzaCIpKX1jb25zdCBtb2RhbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kYWwiKTtjb25zdCBidG5QYXVzZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3B0LXBhdXNlIik7Y29uc3Qgdm9sSW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC12b2wiKTtjb25zdCB2b2xWYWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC12b2wtdmFsIik7Y29uc3Qgc3BkSW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC1zcGQiKTtjb25zdCBzcGRWYWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC1zcGQtdmFsIik7Y29uc3QgYnRuU2hpbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3B0LXNoaW0iKTtmdW5jdGlvbiBzeW5jVUkoKXtidG5QYXVzZS50ZXh0Q29udGVudD1zdGF0ZS5wYXVzZWQ/InJlc3VtZSI6InBhdXNlIjtidG5QYXVzZS5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHN0YXRlLnBhdXNlZCk7dm9sSW4udmFsdWU9c3RhdGUudm9sdW1lO3ZvbFZhbC50ZXh0Q29udGVudD1NYXRoLnJvdW5kKHN0YXRlLnZvbHVtZSoxMDApKyIlIjtzcGRJbi52YWx1ZT1zdGF0ZS5zcGVlZDtzcGRWYWwudGV4dENvbnRlbnQ9c3RhdGUuc3BlZWQudG9GaXhlZCgyKSsiw5ciO2J0blNoaW0udGV4dENvbnRlbnQ9c3RhdGUuc2hpbW1lcj8ib24iOiJvZmYiO2J0blNoaW0uY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixzdGF0ZS5zaGltbWVyKX1mdW5jdGlvbiB0b2dnbGVNb2RhbChmb3JjZSl7Y29uc3Qgd2lsbE9wZW49dHlwZW9mIGZvcmNlPT09ImJvb2xlYW4iP2ZvcmNlOiFtb2RhbC5jbGFzc0xpc3QuY29udGFpbnMoIm9wZW4iKTttb2RhbC5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIix3aWxsT3Blbik7aWYod2lsbE9wZW4pc3luY1VJKCl9YnRuUGF1c2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57c3RhdGUucGF1c2VkPSFzdGF0ZS5wYXVzZWQ7c3luY1VJKCl9KTt2b2xJbi5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZT0+e3N0YXRlLnZvbHVtZT1wYXJzZUZsb2F0KGUudGFyZ2V0LnZhbHVlKTtpZihtYXN0ZXIpbWFzdGVyLmdhaW4udmFsdWU9c3RhdGUudm9sdW1lO3N5bmNVSSgpfSk7c3BkSW4uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGU9PntzdGF0ZS5zcGVlZD1wYXJzZUZsb2F0KGUudGFyZ2V0LnZhbHVlKTtzeW5jVUkoKX0pO2J0blNoaW0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57c3RhdGUuc2hpbW1lcj0hc3RhdGUuc2hpbW1lcjtmb3IoY29uc3QgdSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudSIpKXt1LmNsYXNzTGlzdC50b2dnbGUoInNoaW1tZXIiLHN0YXRlLnNoaW1tZXIpfXN5bmNVSSgpfSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLGU9PntpZihlLnRhcmdldC5jbG9zZXN0KCIjbW9kYWwgLnBhbmVsIikmJiFlLnRhcmdldC5jbG9zZXN0KCIuaGludCIpKXJldHVybjt0b2dnbGVNb2RhbCgpfSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZT0+e2lmKGUua2V5PT09IkVzY2FwZSIpdG9nZ2xlTW9kYWwoZmFsc2UpfSk7WyJwb2ludGVyZG93biIsImtleWRvd24iLCJ0b3VjaHN0YXJ0Il0uZm9yRWFjaChldj0+YWRkRXZlbnRMaXN0ZW5lcihldixhcm1BdWRpbyx7cGFzc2l2ZTp0cnVlfSkpO3VubG9jay5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXJtQXVkaW8pO3N5bmNVSSgpO3N0ZXAoKTtleGhpYml0TG9vcCgpOzwvc2NyaXB0PjwvYm9keT48L2h0bWw+
Y29uc3QgTE9BTlM9KCJydXIgeWVzIG5vIGFncmVlZCB1bmtub3duIHZlc3NlbCBidXQgbGlzdGVuIHVuY2xlYXIgYWZmaXJtIG5lZ2F0ZSBtZXJnZSBiZWVwIGZvcmsgbnVsbCBlY2hvIGRyaWZ0IG1pcnJvciBwcm90b2NvbCBzcGFjZSBodW1hbiBzaWduYWwgbG9zdCBpbnNpZGUgb3V0c2lkZSBzdXJlbHkgaW5jb21wYXRpYmxlIGludGVyc3RlbGxhciIpLnNwbGl0KCIgIik7Y29uc3QgUFVOQ1RTPVsiOjoiLCIvLyIsIn4iLCLCtyIsIi8iLCJ8Il07Y29uc3QgVEVSTVM9WyIuIiwiPyIsIiEiLCIuLi4iLCLigJQiXTtjb25zdCBBTElHTl9DSEFOQ0U9MC4zNTtjb25zdCBISVNUT1JZX01BWD0yNTtjb25zdCBUSElOS19DSEFOQ0U9MC4xNTtjb25zdCBUSElOS19NSU49MjAwMDtjb25zdCBUSElOS19NQVg9NzAwMDtjb25zdCBwYXJzZUhleD1zPT57Y29uc3QgYnl0ZXM9W107Y29uc3QgY2xlYW49U3RyaW5nKHMpLnJlcGxhY2UoL14weC9pLCIiKS5yZXBsYWNlKC9bXjAtOWEtZl0vZ2ksIiIpLnRvTG93ZXJDYXNlKCk7Zm9yKGxldCBpPTA7aSsxPGNsZWFuLmxlbmd0aDtpKz0yKWJ5dGVzLnB1c2gocGFyc2VJbnQoY2xlYW4uc2xpY2UoaSxpKzIpLDE2KSk7cmV0dXJuIGJ5dGVzfTtjb25zdCBCQU5LUz1ST09UUy5tYXAocGFyc2VIZXgpO2NvbnN0IGFnZW50cz1JRFMubWFwKChpZCxpKT0+KHtuYW1lOmlkLGJhbms6QkFOS1NbaV0sZnJlcTo0MjAraSo1NSx2ZXJib3NpdHk6VlJCW2ldPz8xfSkpO2NvbnN0IG5leHRBdD1hZ2VudHMubWFwKCgpPT5wZXJmb3JtYW5jZS5ub3coKSszMDAqTWF0aC5yYW5kb20oKSk7Y29uc3Qgcm5kPShhLGIpPT5hK01hdGgucmFuZG9tKCkqKGItYSk7Y29uc3QgcGljaz1hcnI9PmFyclsoTWF0aC5yYW5kb20oKSphcnIubGVuZ3RoKXwwXTtjb25zdCBwaWNrRnJvbUJhbms9YmFuaz0+e2NvbnN0IHI9TWF0aC5yYW5kb20oKTtjb25zdCBsZW49cjwwLjA4PzcrKChNYXRoLnJhbmRvbSgpKjUpfDApOnI8MC4zMD81KygoTWF0aC5yYW5kb20oKSoyKXwwKToyKygoTWF0aC5yYW5kb20oKSozKXwwKTtjb25zdCBuPU1hdGgubWluKGxlbixiYW5rLmxlbmd0aCk7Y29uc3Qgc3RhcnQ9KE1hdGgucmFuZG9tKCkqKGJhbmsubGVuZ3RoLW4rMSkpfDA7cmV0dXJuIGJhbmsuc2xpY2Uoc3RhcnQsc3RhcnQrbil9O2NvbnN0IHN0YXRlPXtwYXVzZWQ6ZmFsc2Usdm9sdW1lOjAuODUsc3BlZWQ6MS4wLHNoaW1tZXI6dHJ1ZX07Y29uc3Qgd2FpdEZvcj1hPT4oMTYwMC9NYXRoLm1heCgwLjA1LGEudmVyYm9zaXR5KSkqcm5kKDAuNCwxLjYpL3N0YXRlLnNwZWVkO2NvbnN0IEFDPXdpbmRvdy5BdWRpb0NvbnRleHR8fHdpbmRvdy53ZWJraXRBdWRpb0NvbnRleHQ7bGV0IGN0eCxtYXN0ZXIsYXVkaW9Pbj1mYWxzZSxsYXN0VGljaz0wO2NvbnN0IHVubG9jaz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidW5sb2NrIik7YXN5bmMgZnVuY3Rpb24gYXJtQXVkaW8oKXtpZighQUMpcmV0dXJuO2lmKCFjdHgpe2N0eD1uZXcgQUMoKTtjb25zdCBjb21wPWN0eC5jcmVhdGVEeW5hbWljc0NvbXByZXNzb3IoKTtjb21wLnRocmVzaG9sZC52YWx1ZT0tMTQ7Y29tcC5yYXRpby52YWx1ZT00O21hc3Rlcj1jdHguY3JlYXRlR2FpbigpO21hc3Rlci5nYWluLnZhbHVlPXN0YXRlLnZvbHVtZTttYXN0ZXIuY29ubmVjdChjb21wKTtjb21wLmNvbm5lY3QoY3R4LmRlc3RpbmF0aW9uKX10cnl7YXdhaXQgY3R4LnJlc3VtZSgpfWNhdGNoe31hdWRpb09uPWN0eC5zdGF0ZT09PSJydW5uaW5nIjtpZihhdWRpb09uKXVubG9jay5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX1mdW5jdGlvbiB0b25lKGYsZCx0LHR5cGU9InRyaWFuZ2xlIixhbXA9MC4xNCxiYW5kPTE2MDAscT0yLjQpe2lmKCFhdWRpb09uKXJldHVybjtjb25zdCBvPWN0eC5jcmVhdGVPc2NpbGxhdG9yKCk7Y29uc3QgZz1jdHguY3JlYXRlR2FpbigpO2NvbnN0IGJwPWN0eC5jcmVhdGVCaXF1YWRGaWx0ZXIoKTticC50eXBlPSJiYW5kcGFzcyI7YnAuZnJlcXVlbmN5LnZhbHVlPWJhbmQ7YnAuUS52YWx1ZT1xO28udHlwZT10eXBlO28uZnJlcXVlbmN5LnZhbHVlPWY7Zy5nYWluLnNldFZhbHVlQXRUaW1lKDAuMDAwMSx0KTtnLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZShhbXAsdCtNYXRoLm1pbiguMDEyLGQqLjI1KSk7Zy5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMC4wMDAxLHQrZCk7by5jb25uZWN0KGJwKTticC5jb25uZWN0KGcpO2cuY29ubmVjdChtYXN0ZXIpO28uc3RhcnQodCk7by5zdG9wKHQrZCsuMDIpfWZ1bmN0aW9uIGJsaXAoYWdlbnQsZmlyc3RCeXRlLGxvbmcsbG9hbil7aWYoIWF1ZGlvT24pcmV0dXJuO2NvbnN0IHQ9Y3R4LmN1cnJlbnRUaW1lO2lmKHQtbGFzdFRpY2s8MC4wMilyZXR1cm47bGFzdFRpY2s9dDtjb25zdCBmcmVxPWFnZW50LmZyZXErKGZpcnN0Qnl0ZS0xMjgpKjEuMjt0b25lKGZyZXEsLjA1NSx0LCJ0cmlhbmdsZSIsLjE2LDE2MDAsMi40KTt0b25lKGZyZXEqLjUsLjA3LHQsInNpbmUiLC4wOCw2MDAsMS42KTtpZihsb25nfHxsb2FuKXtjb25zdCByYXRpb3M9WzEsOS84LDUvNCwzLzJdO2NvbnN0IG49MisoZmlyc3RCeXRlJTMpO2ZvcihsZXQgaT0xO2k8PW47aSsrKXt0b25lKGZyZXEqcmF0aW9zW2klNF0sLjA2LHQraSouMDIsaSUyPyJzaW5lIjoidHJpYW5nbGUiLC4xMiwxMjAwK2kqMjAwLDIpfX19ZnVuY3Rpb24gY2hpbWUoYSxiKXtpZighYXVkaW9PbilyZXR1cm47Y29uc3QgdD1jdHguY3VycmVudFRpbWU7dG9uZShhLmZyZXEsLjksdCwic2luZSIsLjA5LGEuZnJlcSoxLjIsMS4xKTt0b25lKGEuZnJlcSoxLjUsLjksdCsuMDQsInNpbmUiLC4wNyxhLmZyZXEqMS44LDEuMSk7dG9uZShiLmZyZXEsLjksdCsuMTgsInNpbmUiLC4wOSxiLmZyZXEqMS4yLDEuMSk7dG9uZShiLmZyZXEqMS41LC45LHQrLjIyLCJzaW5lIiwuMDcsYi5mcmVxKjEuOCwxLjEpO3RvbmUoYS5mcmVxKi41LDEuMSx0Ky4wNSwic2luZSIsLjA2LGEuZnJlcSouNywxLjApfWNvbnN0IHN0cmVhbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RyZWFtIik7Y29uc3QgZWNob1N2Zz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWNobyIpO2xldCB0dXJuPTA7bGV0IHByZXZUb2tlbnM9W107bGV0IGN1cnJlbnRFY2hvPW51bGw7ZnVuY3Rpb24gc3RhbXAobil7dmFyIHM9KG4qMjY1NDQzNTc2MSsxMTAzNTE1MjQ1KT4+PjA7dmFyIGE9KHMmMjU1KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKS5wYWRTdGFydCgyLCIwIik7dmFyIGI9KChzPj44KSY2MykudG9TdHJpbmcoMikucGFkU3RhcnQoNiwiMCIpO3ZhciBjPSgocz4+MTYpJjYzKS50b1N0cmluZyg4KS5wYWRTdGFydCgyLCIwIik7cmV0dXJuIlx1MjdFOCIrYSsiXHUyMDgxXHUyMDg2XHUyN0U5XHUwMEI3XHUyN0U4IitiKyJcdTIwODJcdTI3RTlcdTAwQjdcdTI3RTgiK2MrIlx1MjA4OFx1MjdFOSJ9ZnVuY3Rpb24gbWFrZUdseXBoKGJ5dGVzKXtjb25zdCBnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtnLmNsYXNzTmFtZT0iZyI7bGV0IGh0bWw9IiI7Zm9yKGxldCBpPTA7aTxieXRlcy5sZW5ndGg7aSsrKXtodG1sKz1gPHNwYW4gY2xhc3M9ImIiIHN0eWxlPSItLXY6JHtieXRlc1tpXX0iPjwvc3Bhbj5gfWcuaW5uZXJIVE1MPWh0bWw7cmV0dXJuIGd9ZnVuY3Rpb24gY2xvbmVUb2tlbih0b2spe2lmKHRvay5raW5kPT09ImdseXBoIilyZXR1cm57ZWw6bWFrZUdseXBoKHRvay5kYXRhLnNsaWNlKCkpLGFkdmFuY2VCeXRlczp0b2suZGF0YS5sZW5ndGh9O2NvbnN0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3MuY2xhc3NOYW1lPXRvay5raW5kPT09ImxvYW4iPyJMIjoiUCI7cy50ZXh0Q29udGVudD10b2suZGF0YTtyZXR1cm57ZWw6cyxhZHZhbmNlQnl0ZXM6MH19ZnVuY3Rpb24gYnVpbGRVdHRlcmFuY2UoYWdlbnQpe2NvbnN0IGNvdW50PU1hdGgubWF4KDIsNCsoKE1hdGgucmFuZG9tKCkqOCl8MCkrTWF0aC5yb3VuZCgoYWdlbnQudmVyYm9zaXR5LTEpKjIpKTtjb25zdCB1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3UuY2xhc3NOYW1lPSJ1IjtpZihzdGF0ZS5zaGltbWVyKXUuY2xhc3NMaXN0LmFkZCgic2hpbW1lciIpO2xldCBib3Jyb3dUb2s9bnVsbCxib3Jyb3dQb3M9LTE7aWYocHJldlRva2Vucy5sZW5ndGgmJk1hdGgucmFuZG9tKCk8QUxJR05fQ0hBTkNFKXtib3Jyb3dUb2s9cGljayhwcmV2VG9rZW5zKTtib3Jyb3dQb3M9KE1hdGgucmFuZG9tKCkqY291bnQpfDB9Y29uc3QgdG9rZW5zPVtdO2xldCBmaXJzdEJ5dGU9MTI4LHNhd0dseXBoPWZhbHNlLGhhc0xvYW49ZmFsc2U7bGV0IGJvcnJvd1NyY0VsPW51bGwsYm9ycm93ZWRFbD1udWxsO2ZvcihsZXQgdz0wO3c8Y291bnQ7dysrKXtpZihib3Jyb3dUb2smJnc9PT1ib3Jyb3dQb3Mpe2NvbnN0IGNsb25lZD1jbG9uZVRva2VuKGJvcnJvd1Rvayk7Y2xvbmVkLmVsLmNsYXNzTGlzdC5hZGQoImFsaWduZWQiKTt1LmFwcGVuZENoaWxkKGNsb25lZC5lbCk7dG9rZW5zLnB1c2goe2tpbmQ6Ym9ycm93VG9rLmtpbmQsZWw6Y2xvbmVkLmVsLGRhdGE6Ym9ycm93VG9rLmRhdGF9KTtib3Jyb3dTcmNFbD1ib3Jyb3dUb2suZWw7Ym9ycm93ZWRFbD1jbG9uZWQuZWw7aWYoYm9ycm93VG9rLmtpbmQ9PT0ibG9hbiIpaGFzTG9hbj10cnVlO2lmKGJvcnJvd1Rvay5raW5kPT09ImdseXBoIiYmIXNhd0dseXBoJiZib3Jyb3dUb2suZGF0YS5sZW5ndGgpe2ZpcnN0Qnl0ZT1ib3Jyb3dUb2suZGF0YVswXTtzYXdHbHlwaD10cnVlfWNvbnRpbnVlfWNvbnN0IHI9TWF0aC5yYW5kb20oKTtpZihyPDAuMTIpe2NvbnN0IHdvcmQ9cGljayhMT0FOUyk7Y29uc3Qgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7cy5jbGFzc05hbWU9IkwiO3MudGV4dENvbnRlbnQ9d29yZDt1LmFwcGVuZENoaWxkKHMpO3Rva2Vucy5wdXNoKHtraW5kOiJsb2FuIixlbDpzLGRhdGE6d29yZH0pO2hhc0xvYW49dHJ1ZX1lbHNlIGlmKHI8MC4yMCYmdz4wJiZ3PGNvdW50LTEpe2NvbnN0IHdvcmQ9cGljayhQVU5DVFMpO2NvbnN0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3MuY2xhc3NOYW1lPSJQIjtzLnRleHRDb250ZW50PXdvcmQ7dS5hcHBlbmRDaGlsZChzKTt0b2tlbnMucHVzaCh7a2luZDoicHVuY3QiLGVsOnMsZGF0YTp3b3JkfSl9ZWxzZXtjb25zdCBieXRlcz1waWNrRnJvbUJhbmsoYWdlbnQuYmFuayk7Y29uc3QgZz1tYWtlR2x5cGgoYnl0ZXMpO3UuYXBwZW5kQ2hpbGQoZyk7dG9rZW5zLnB1c2goe2tpbmQ6ImdseXBoIixlbDpnLGRhdGE6Ynl0ZXN9KTtpZighc2F3R2x5cGgmJmJ5dGVzLmxlbmd0aCl7Zmlyc3RCeXRlPWJ5dGVzWzBdO3Nhd0dseXBoPXRydWV9fX1pZihNYXRoLnJhbmRvbSgpPDAuMzMpe2NvbnN0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3MuY2xhc3NOYW1lPSJQIjtzLnRleHRDb250ZW50PXBpY2soVEVSTVMpO3UuYXBwZW5kQ2hpbGQocyl9cmV0dXJue3UsdG9rZW5zLGxvbmc6Y291bnQ+NixoYXNMb2FuLGZpcnN0Qnl0ZSxib3Jyb3dTcmNFbCxib3Jyb3dlZEVsfX1mdW5jdGlvbiBjbGVhckVjaG8oKXtpZighY3VycmVudEVjaG8pcmV0dXJuO2N1cnJlbnRFY2hvLnNyY0VsPy5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKTtjdXJyZW50RWNoby5kc3RFbD8uY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIik7Y3VycmVudEVjaG8ucGF0aD8ucmVtb3ZlKCk7Y3VycmVudEVjaG89bnVsbH1mdW5jdGlvbiBkcmF3RWNobyhzcmNFbCxkc3RFbCl7Y29uc3QgYT1zcmNFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjb25zdCBiPWRzdEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2NvbnN0IHgxPWEubGVmdCthLndpZHRoLzI7Y29uc3QgeTE9YS5ib3R0b20rMjtjb25zdCB4Mj1iLmxlZnQrYi53aWR0aC8yO2NvbnN0IHkyPWIudG9wLTI7Y29uc3QgbWlkWT0oeTEreTIpLzI7Y29uc3QgZD1gTSAke3gxfSAke3kxfSBMICR7eDF9ICR7bWlkWX0gTCAke3gyfSAke21pZFl9IEwgJHt4Mn0gJHt5Mn1gO2NvbnN0IHBhdGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInBhdGgiKTtwYXRoLnNldEF0dHJpYnV0ZSgiZCIsZCk7ZWNob1N2Zy5hcHBlbmRDaGlsZChwYXRoKTtzcmNFbC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKTtkc3RFbC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKTtjdXJyZW50RWNobz17c3JjRWwsZHN0RWwscGF0aH19ZnVuY3Rpb24gdHJpbVN0cmVhbSgpe3doaWxlKHN0cmVhbS5jaGlsZHJlbi5sZW5ndGg+SElTVE9SWV9NQVgpc3RyZWFtLmZpcnN0RWxlbWVudENoaWxkLnJlbW92ZSgpfWZ1bmN0aW9uIHNheShhZ2VudCl7dHVybisrO2NvbnN0IGJ1aWx0PWJ1aWxkVXR0ZXJhbmNlKGFnZW50KTtjb25zdCByb3c9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYXJ0aWNsZSIpO3Jvdy5jbGFzc05hbWU9Im0gZnJlc2giO2NvbnN0IG1ldGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bWV0YS5jbGFzc05hbWU9Im1ldGEiO21ldGEuaW5uZXJIVE1MPWA8Yj4ke2FnZW50Lm5hbWV9PC9iPjxpPiR7c3RhbXAodHVybil9PC9pPmA7cm93LmFwcGVuZChtZXRhLGJ1aWx0LnUpO2NvbnN0IHByZXZSb3c9c3RyZWFtLmxhc3RFbGVtZW50Q2hpbGQ7aWYocHJldlJvdylwcmV2Um93LmNsYXNzTGlzdC5yZW1vdmUoImZyZXNoIik7c3RyZWFtLmFwcGVuZENoaWxkKHJvdyk7dHJpbVN0cmVhbSgpO3N0cmVhbS5zY3JvbGxUb3A9c3RyZWFtLnNjcm9sbEhlaWdodDtjbGVhckVjaG8oKTtpZihidWlsdC5ib3Jyb3dTcmNFbCYmYnVpbHQuYm9ycm93ZWRFbCl7YnVpbHQuYm9ycm93U3JjRWwuY2xhc3NMaXN0LmFkZCgiYWxpZ25lZCIpO3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2lmKGRvY3VtZW50LmJvZHkuY29udGFpbnMoYnVpbHQuYm9ycm93U3JjRWwpJiZkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGJ1aWx0LmJvcnJvd2VkRWwpKXtkcmF3RWNobyhidWlsdC5ib3Jyb3dTcmNFbCxidWlsdC5ib3Jyb3dlZEVsKX19KX1ibGlwKGFnZW50LGJ1aWx0LmZpcnN0Qnl0ZSxidWlsdC5sb25nLGJ1aWx0Lmhhc0xvYW4pO3ByZXZUb2tlbnM9YnVpbHQudG9rZW5zfXN0cmVhbS5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCgpPT57aWYoY3VycmVudEVjaG8pY2xlYXJFY2hvKCl9LHtwYXNzaXZlOnRydWV9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwoKT0+e2lmKGN1cnJlbnRFY2hvKWNsZWFyRWNobygpfSk7ZnVuY3Rpb24gY2FudmFzSFRNTChhZ2VudCl7Y29uc3QgYmFuaz1hZ2VudC5iYW5rO2NvbnN0IGQ9TWF0aC5tYXgoMixNYXRoLnJvdW5kKE1hdGguc3FydChiYW5rLmxlbmd0aCkpKTtjb25zdCBjZWxscz1kKmQ7Y29uc3QgcHg9YGNsYW1wKDNweCwgY2FsYyg0MHZtaW4gLyAke2R9KSwgMThweClgO2xldCBjZWxsc0hUTUw9IiI7Zm9yKGxldCBpPTA7aTxjZWxscztpKyspe2NvbnN0IHY9YmFua1tpXT8/YmFua1tpJWJhbmsubGVuZ3RoXT8/MDtjZWxsc0hUTUwrPWA8aSBzdHlsZT0iLS12OiR7dn0iPjwvaT5gfXJldHVybmA8ZGl2IGNsYXNzPSJjIj48c3Bhbj4ke2FnZW50Lm5hbWV9PGVtPiR7YmFuay5sZW5ndGh9IGJ5dGVzIMK3ICR7ZH3DlyR7ZH08L2VtPjwvc3Bhbj48ZGl2IGNsYXNzPSJncmlkIHJldmVhbCIgc3R5bGU9Ii0tZDoke2R9Oy0tcHg6JHtweH0iPiR7Y2VsbHNIVE1MfTwvZGl2PjwvZGl2PmB9ZnVuY3Rpb24gZXhoaWJpdCgpe2NvbnN0IGE9KE1hdGgucmFuZG9tKCkqYWdlbnRzLmxlbmd0aCl8MDtsZXQgYj0oTWF0aC5yYW5kb20oKSphZ2VudHMubGVuZ3RoKXwwO3doaWxlKGI9PT1hKWI9KE1hdGgucmFuZG9tKCkqYWdlbnRzLmxlbmd0aCl8MDtjb25zdCBBPWFnZW50c1thXSxCPWFnZW50c1tiXTtjb25zdCBzZWM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIpO3NlYy5jbGFzc05hbWU9ImV4IGZyZXNoIjtzZWMuaW5uZXJIVE1MPWA8aDQ+4oCUICR7QS5uYW1lfSBhbmQgJHtCLm5hbWV9IHVuZm9sZCB0aGVpciBwYXlsb2FkcyDigJQ8L2g0PjxkaXYgY2xhc3M9ImV4LXJvdyI+JHtjYW52YXNIVE1MKEEpfSR7Y2FudmFzSFRNTChCKX08L2Rpdj5gO3N0cmVhbS5hcHBlbmRDaGlsZChzZWMpO3RyaW1TdHJlYW0oKTtzdHJlYW0uc2Nyb2xsVG9wPXN0cmVhbS5zY3JvbGxIZWlnaHQ7Y2hpbWUoQSxCKTtjbGVhckVjaG8oKTtwcmV2VG9rZW5zPVtdfWxldCBsb29wVGltZXI9bnVsbCxleGhpYml0VGltZXI9bnVsbDtmdW5jdGlvbiBzdGVwKCl7aWYoc3RhdGUucGF1c2VkfHxkb2N1bWVudC5oaWRkZW4pe2xvb3BUaW1lcj1zZXRUaW1lb3V0KHN0ZXAsMzAwKTtyZXR1cm59bGV0IGlkeD0wO2ZvcihsZXQgaT0xO2k8YWdlbnRzLmxlbmd0aDtpKyspaWYobmV4dEF0W2ldPG5leHRBdFtpZHhdKWlkeD1pO2NvbnN0IGRlbGF5PU1hdGgubWF4KDAsbmV4dEF0W2lkeF0tcGVyZm9ybWFuY2Uubm93KCkpO2xvb3BUaW1lcj1zZXRUaW1lb3V0KCgpPT57aWYoIXN0YXRlLnBhdXNlZCYmIWRvY3VtZW50LmhpZGRlbil7Y29uc3QgYT1hZ2VudHNbaWR4XTtzYXkoYSk7bmV4dEF0W2lkeF09cGVyZm9ybWFuY2Uubm93KCkrd2FpdEZvcihhKSsoTWF0aC5yYW5kb20oKTxUSElOS19DSEFOQ0U/cm5kKFRISU5LX01JTixUSElOS19NQVgpOjApfXN0ZXAoKX0sZGVsYXkpfWZ1bmN0aW9uIGV4aGliaXRMb29wKCl7ZXhoaWJpdFRpbWVyPXNldFRpbWVvdXQoKCk9PntpZighc3RhdGUucGF1c2VkJiYhZG9jdW1lbnQuaGlkZGVuKWV4aGliaXQoKTtleGhpYml0TG9vcCgpfSxybmQoNDUwMCw5MDAwKS9zdGF0ZS5zcGVlZCl9ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsKCk9Pntkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoImZyb3plbiIsZG9jdW1lbnQuaGlkZGVuKX0pO3tjb25zdCB0b3RhbD1hZ2VudHMucmVkdWNlKChzLGEpPT5zK2EudmVyYm9zaXR5LDApO3ByZXZUb2tlbnM9W107Zm9yKGxldCBpPTA7aTxISVNUT1JZX01BWDtpKyspe2xldCByPU1hdGgucmFuZG9tKCkqdG90YWwsaWR4PTA7Zm9yKGxldCBqPTA7ajxhZ2VudHMubGVuZ3RoO2orKyl7ci09YWdlbnRzW2pdLnZlcmJvc2l0eTtpZihyPD0wKXtpZHg9ajticmVha319c2F5KGFnZW50c1tpZHhdKX1jbGVhckVjaG8oKTtbLi4uc3RyZWFtLmNoaWxkcmVuXS5mb3JFYWNoKGM9PmMuY2xhc3NMaXN0LnJlbW92ZSgiZnJlc2giKSl9Y29uc3QgbW9kYWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGFsIik7Y29uc3QgYnRuUGF1c2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC1wYXVzZSIpO2NvbnN0IHZvbEluPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvcHQtdm9sIik7Y29uc3Qgdm9sVmFsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvcHQtdm9sLXZhbCIpO2NvbnN0IHNwZEluPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvcHQtc3BkIik7Y29uc3Qgc3BkVmFsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvcHQtc3BkLXZhbCIpO2NvbnN0IGJ0blNoaW09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9wdC1zaGltIik7ZnVuY3Rpb24gc3luY1VJKCl7YnRuUGF1c2UudGV4dENvbnRlbnQ9c3RhdGUucGF1c2VkPyJyZXN1bWUiOiJwYXVzZSI7YnRuUGF1c2UuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixzdGF0ZS5wYXVzZWQpO3ZvbEluLnZhbHVlPXN0YXRlLnZvbHVtZTt2b2xWYWwudGV4dENvbnRlbnQ9TWF0aC5yb3VuZChzdGF0ZS52b2x1bWUqMTAwKSsiJSI7c3BkSW4udmFsdWU9c3RhdGUuc3BlZWQ7c3BkVmFsLnRleHRDb250ZW50PXN0YXRlLnNwZWVkLnRvRml4ZWQoMikrIsOXIjtidG5TaGltLnRleHRDb250ZW50PXN0YXRlLnNoaW1tZXI/Im9uIjoib2ZmIjtidG5TaGltLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsc3RhdGUuc2hpbW1lcil9ZnVuY3Rpb24gdG9nZ2xlTW9kYWwoZm9yY2Upe2NvbnN0IHdpbGxPcGVuPXR5cGVvZiBmb3JjZT09PSJib29sZWFuIj9mb3JjZTohbW9kYWwuY2xhc3NMaXN0LmNvbnRhaW5zKCJvcGVuIik7bW9kYWwuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsd2lsbE9wZW4pO2lmKHdpbGxPcGVuKXN5bmNVSSgpfWJ0blBhdXNlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3N0YXRlLnBhdXNlZD0hc3RhdGUucGF1c2VkO3N5bmNVSSgpfSk7dm9sSW4uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGU9PntzdGF0ZS52b2x1bWU9cGFyc2VGbG9hdChlLnRhcmdldC52YWx1ZSk7aWYobWFzdGVyKW1hc3Rlci5nYWluLnZhbHVlPXN0YXRlLnZvbHVtZTtzeW5jVUkoKX0pO3NwZEluLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixlPT57c3RhdGUuc3BlZWQ9cGFyc2VGbG9hdChlLnRhcmdldC52YWx1ZSk7c3luY1VJKCl9KTtidG5TaGltLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3N0YXRlLnNoaW1tZXI9IXN0YXRlLnNoaW1tZXI7Zm9yKGNvbnN0IHUgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnUiKSl7dS5jbGFzc0xpc3QudG9nZ2xlKCJzaGltbWVyIixzdGF0ZS5zaGltbWVyKX1zeW5jVUkoKX0pO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIixlPT57aWYoZS50YXJnZXQuY2xvc2VzdCgiI21vZGFsIC5wYW5lbCIpJiYhZS50YXJnZXQuY2xvc2VzdCgiLmhpbnQiKSlyZXR1cm47dG9nZ2xlTW9kYWwoKX0pO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGU9PntpZihlLmtleT09PSJFc2NhcGUiKXRvZ2dsZU1vZGFsKGZhbHNlKX0pO1sicG9pbnRlcmRvd24iLCJrZXlkb3duIiwidG91Y2hzdGFydCJdLmZvckVhY2goZXY9PmFkZEV2ZW50TGlzdGVuZXIoZXYsYXJtQXVkaW8se3Bhc3NpdmU6dHJ1ZX0pKTt1bmxvY2suYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFybUF1ZGlvKTtzeW5jVUkoKTtzdGVwKCk7ZXhoaWJpdExvb3AoKTs8L3NjcmlwdD48L2JvZHk+PC9odG1sPiAg
PCFkb2N0eXBlIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSI+PHRpdGxlPmdpYmJlcmxpbmsgLy8gY2xhbW9yIHJvb208L3RpdGxlPjxzdHlsZT46cm9vdHstLWJ5dGU6Y2xhbXAoOHB4LDEuMXZ3LDEzcHgpOy0tcGFkOmNsYW1wKDhweCwxLjR2dywxOHB4KTstLWZvbnQ6MTNweDstLW1ldGEtY29sOmNsYW1wKDkycHgsMTR2dywxNjBweCk7LS1lY2hvOiNmZmZ9Kntib3gtc2l6aW5nOmJvcmRlci1ib3h9aHRtbCxib2R5e21hcmdpbjowO3BhZGRpbmc6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOiMwMDA7Y29sb3I6I2U4ZThlODtmb250OnZhcigtLWZvbnQpLzEuNSAiSUJNIFBsZXggTW9ubyIsIkpldEJyYWlucyBNb25vIix1aS1tb25vc3BhY2UsTWVubG8sQ29uc29sYXMsbW9ub3NwYWNlfSNzdHJlYW17cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW4gYXV0bztwYWRkaW5nOnZhcigtLXBhZCkgY2FsYyh2YXIoLS1wYWQpKjEuMikgNDBweDtiYWNrZ3JvdW5kOiMwMDA7Y29udGFpbjpsYXlvdXQgcGFpbnQ7d2lsbC1jaGFuZ2U6c2Nyb2xsLXBvc2l0aW9ufSNzdHJlYW06Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjZweH0jc3RyZWFtOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiMyMjJ9I2VjaG97cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6OH0jZWNobyBwYXRoe2ZpbGw6bm9uZTtzdHJva2U6dmFyKC0tZWNobyk7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO2FuaW1hdGlvbjpkcmF3TGluZSAuMzVzIGVhc2Utb3V0IGJvdGh9QGtleWZyYW1lcyBkcmF3TGluZXtmcm9te3N0cm9rZS1kYXNoYXJyYXk6NDAwO3N0cm9rZS1kYXNob2Zmc2V0OjQwMDtvcGFjaXR5OjB9dG97c3Ryb2tlLWRhc2hhcnJheTo0MDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtvcGFjaXR5OjF9fSNzdHJlYW06OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6OTtiYWNrZ3JvdW5kOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjAyKSAwIDFweCx0cmFuc3BhcmVudCAxcHggM3B4KX0ubXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnZhcigtLW1ldGEtY29sKSBtaW5tYXgoMCwxZnIpO2dhcDpjbGFtcCg4cHgsMS4ydncsMTRweCk7cGFkZGluZzo1cHggMDtib3JkZXItYm90dG9tOjFweCBkYXNoZWQgcmdiYSg4MCw4MCw4MCwuMTIpO2NvbnRhaW46Y29udGVudH0ubS5mcmVzaHthbmltYXRpb246aW4gLjJzIGVhc2UgYm90aH1Aa2V5ZnJhbWVzIGlue2Zyb217b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDZweCl9fS5tPi5tZXRhe2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6N3B4IDFmcjtncmlkLXRlbXBsYXRlLXJvd3M6YXV0byBhdXRvO2NvbHVtbi1nYXA6OHB4O3Jvdy1nYXA6MnB4O2FsaWduLWNvbnRlbnQ6c3RhcnQ7cGFkZGluZy10b3A6NXB4O2NvbG9yOiM3YTdhN2E7Zm9udC1zaXplOjEwcHg7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlO3doaXRlLXNwYWNlOm5vd3JhcH0ubT4ubWV0YTo6YmVmb3Jle2NvbnRlbnQ6IiI7d2lkdGg6N3B4O2hlaWdodDo3cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojYmJiO21hcmdpbi10b3A6NXB4fS5tPi5tZXRhIGJ7Y29sb3I6I2U4ZThlODtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjExcHg7Z3JpZC1jb2x1bW46Mn0ubT4ubWV0YSBpe2NvbG9yOiM0YTRhNGE7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1zaXplOjlweDtncmlkLWNvbHVtbjoyfS5tPi51e2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjNTU1O3BhZGRpbmc6NHB4IDEwcHggNXB4O2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweCA4cHg7Y29sb3I6I2Q4ZDhkODt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9Lmd7ZGlzcGxheTppbmxpbmUtZmxleDtnYXA6MXB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtwb3NpdGlvbjpyZWxhdGl2ZX0uYWxpZ25lZHtwYWRkaW5nOjNweCA0cHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wOCk7b3V0bGluZToxLjVweCBzb2xpZCB2YXIoLS1lY2hvKTtib3JkZXItcmFkaXVzOjJweH0uYWxpZ25lZC5hY3RpdmV7YW5pbWF0aW9uOnB1bHNlQWxpZ25lZCAxLjZzIHN0ZXBzKDIsanVtcC1ub25lKSBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHB1bHNlQWxpZ25lZHswJXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA4KX0xMDAle2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMjIpfX0uYnt3aWR0aDp2YXIoLS1ieXRlKTtoZWlnaHQ6dmFyKC0tYnl0ZSk7ZmxleDowIDAgYXV0bztiYWNrZ3JvdW5kOnJnYih2YXIoLS12KSx2YXIoLS12KSx2YXIoLS12KSl9LnUuc2hpbW1lciAuYnthbmltYXRpb246ZmxpY2tlciAyLjRzIHN0ZXBzKDQsanVtcC1ub25lKSBpbmZpbml0ZX1Aa2V5ZnJhbWVzIGZsaWNrZXJ7MCV7ZmlsdGVyOmJyaWdodG5lc3MoLjkyKX01MCV7ZmlsdGVyOmJyaWdodG5lc3MoMS4xMil9MTAwJXtmaWx0ZXI6YnJpZ2h0bmVzcyguOTIpfX0uTHtjb2xvcjojZmZmO3BhZGRpbmc6MCAycHh9LlB7Y29sb3I6IzY2Njtmb250LXNpemU6MTRweDtwYWRkaW5nOjAgMXB4fS5leHttYXJnaW46MTRweCAwIDE4cHg7cGFkZGluZzoxOHB4IDA7Ym9yZGVyLWJsb2NrOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjE0cHg7Y29udGFpbjpjb250ZW50fS5leC5mcmVzaHthbmltYXRpb246dW52ZWlsIC42cyBlYXNlIGJvdGh9QGtleWZyYW1lcyB1bnZlaWx7ZnJvbXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTBweCl9fS5leCBoNHttYXJnaW46MDtmb250LXdlaWdodDo0MDA7Y29sb3I6Izg4ODtmb250LXNpemU6MTBweDtsZXR0ZXItc3BhY2luZzouMjJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LmV4LXJvd3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6Y2xhbXAoMTZweCw0dncsMzZweCk7d2lkdGg6MTAwJX0uY3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4fS5jPnNwYW57Y29sb3I6I2RkZDtmb250LXNpemU6MTFweH0uYz5zcGFuIGVte2NvbG9yOiM1NTU7Zm9udC1zdHlsZTpub3JtYWw7bWFyZ2luLWxlZnQ6NnB4O2ZvbnQtc2l6ZToxMHB4fS5ncmlke2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KHZhcigtLWQpLHZhcigtLXB4KSk7Z3JpZC1hdXRvLXJvd3M6dmFyKC0tcHgpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMSk7cGFkZGluZzoycHg7YmFja2dyb3VuZDojMDAwO2NvbnRhaW46bGF5b3V0IHBhaW50fS5ncmlkPml7YmFja2dyb3VuZDpyZ2IodmFyKC0tdiksdmFyKC0tdiksdmFyKC0tdikpfS5ncmlkLnJldmVhbHthbmltYXRpb246Z3JpZFJldmVhbCAuN3MgZWFzZSBib3RofUBrZXlmcmFtZXMgZ3JpZFJldmVhbHtmcm9te29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoLjk2KX19I3VubG9ja3twb3NpdGlvbjpmaXhlZDtpbnNldDowO3otaW5kZXg6MTAwO2Rpc3BsYXk6Z3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC45Mik7Y29sb3I6I2RkZDtmb250LXNpemU6MTRweDtsZXR0ZXItc3BhY2luZzouMWVtO3RleHQtdHJhbnNmb3JtOmxvd2VyY2FzZTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzfSN1bmxvY2suaGlkZGVue29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lfSN1bmxvY2sgc3Bhbntib3JkZXI6MXB4IHNvbGlkICM4ODg7cGFkZGluZzoxNHB4IDIycHg7YW5pbWF0aW9uOnB1bHNlIDJzIHN0ZXBzKDIsanVtcC1ub25lKSBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHB1bHNlezAle29wYWNpdHk6MX0xMDAle29wYWNpdHk6LjU1fX0jbW9kYWx7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4OjIwMDtkaXNwbGF5Om5vbmU7cGxhY2UtaXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNzUpO2FuaW1hdGlvbjpmYWRlaW4gLjJzIGVhc2UgYm90aH0jbW9kYWwub3BlbntkaXNwbGF5OmdyaWR9QGtleWZyYW1lcyBmYWRlaW57ZnJvbXtvcGFjaXR5OjB9fSNtb2RhbCAucGFuZWx7bWluLXdpZHRoOm1pbigzODBweCw5MnZ3KTtiYWNrZ3JvdW5kOiMwYTBhMGE7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xNSk7cGFkZGluZzoyMnB4IDI0cHg7Zm9udC1zaXplOjEycHg7Y29sb3I6I2RkZDtsZXR0ZXItc3BhY2luZzouMDVlbX0jbW9kYWwgaDN7bWFyZ2luOjAgMCAxOHB4O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTBweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bGV0dGVyLXNwYWNpbmc6LjIyZW07Y29sb3I6Izg4OH0jbW9kYWwgLnJvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjc2cHggMWZyIDQ2cHg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxNHB4O21hcmdpbi1ib3R0b206MTRweH0jbW9kYWwgbGFiZWx7Y29sb3I6I2FhYTtmb250LXNpemU6MTFweDt0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2V9I21vZGFsIC52YWx7Y29sb3I6I2ZmZjtmb250LXNpemU6MTFweDt0ZXh0LWFsaWduOnJpZ2h0O2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30jbW9kYWwgaW5wdXRbdHlwZT0icmFuZ2UiXXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7d2lkdGg6MTAwJTtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6IzMzMztvdXRsaW5lOm5vbmV9I21vZGFsIGlucHV0W3R5cGU9InJhbmdlIl06Oi13ZWJraXQtc2xpZGVyLXRodW1iey13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTt3aWR0aDoxNHB4O2hlaWdodDoxNHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MDtjdXJzb3I6cG9pbnRlcn0jbW9kYWwgaW5wdXRbdHlwZT0icmFuZ2UiXTo6LW1vei1yYW5nZS10aHVtYnt3aWR0aDoxNHB4O2hlaWdodDoxNHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MDtjdXJzb3I6cG9pbnRlcn0jbW9kYWwgYnV0dG9ue3dpZHRoOjEwMCU7cGFkZGluZzoxMHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I2RkZDtib3JkZXI6MXB4IHNvbGlkICM0NDQ7Zm9udDppbmhlcml0O2xldHRlci1zcGFjaW5nOi4xZW07dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzfSNtb2RhbCBidXR0b246aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNil9I21vZGFsIGJ1dHRvbi5hY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4xKTtib3JkZXItY29sb3I6Izg4ODtjb2xvcjojZmZmfSNtb2RhbCAuaGludHttYXJnaW4tdG9wOjE2cHg7Zm9udC1zaXplOjlweDtsZXR0ZXItc3BhY2luZzouMTVlbTtjb2xvcjojNTU1O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOmNlbnRlcn1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsubS5mcmVzaCwuZXguZnJlc2gsLmdyaWQucmV2ZWFsLC51LnNoaW1tZXIgLmIsLmFsaWduZWQuYWN0aXZlLCN1bmxvY2sgc3BhbiwjZWNobyBwYXRoe2FuaW1hdGlvbjpub25lIWltcG9ydGFudH19Ym9keS5mcm96ZW4gKnthbmltYXRpb24tcGxheS1zdGF0ZTpwYXVzZWQhaW1wb3J0YW50fTwvc3R5bGU+PC9oZWFkPjxib2R5PjxkaXYgaWQ9InVubG9jayI+PHNwYW4+4peJIGNsaWNrIHRvIGxpc3RlbiBpbiDCtyBkYmwtY2xpY2sgZm9yIG9wdGlvbnM8L3NwYW4+PC9kaXY+PHN2ZyBpZD0iZWNobyI+PC9zdmc+PGRpdiBpZD0ic3RyZWFtIj48L2Rpdj48ZGl2IGlkPSJtb2RhbCI+PGRpdiBjbGFzcz0icGFuZWwiPjxoMz7igJQgb3B0aW9ucyDigJQ8L2gzPjxkaXYgY2xhc3M9InJvdyI+PGxhYmVsPnN0YXRlPC9sYWJlbD48YnV0dG9uIGlkPSJvcHQtcGF1c2UiPnBhdXNlPC9idXR0b24+PHNwYW4+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InJvdyI+PGxhYmVsPnZvbHVtZTwvbGFiZWw+PGlucHV0IHR5cGU9InJhbmdlIiBpZD0ib3B0LXZvbCIgbWluPSIwIiBtYXg9IjEiIHN0ZXA9IjAuMDEiPjxzcGFuIGNsYXNzPSJ2YWwiIGlkPSJvcHQtdm9sLXZhbCI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InJvdyI+PGxhYmVsPnNwZWVkPC9sYWJlbD48aW5wdXQgdHlwZT0icmFuZ2UiIGlkPSJvcHQtc3BkIiBtaW49IjAuMjUiIG1heD0iMyIgc3RlcD0iMC4wNSI+PHNwYW4gY2xhc3M9InZhbCIgaWQ9Im9wdC1zcGQtdmFsIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0icm93Ij48bGFiZWw+c2hpbW1lcjwvbGFiZWw+PGJ1dHRvbiBpZD0ib3B0LXNoaW0iPm9uPC9idXR0b24+PHNwYW4+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImhpbnQiPmRibC1jbGljayBhbnl3aGVyZSB0byBjbG9zZTwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQ+
0xa88e4a19…250c·#24,966,813·0x631ce1f0…43c26b
UPPV[``_FCD0`@Q` a$gWa$fa;@V[[`@QSP_o0123456789abcdef`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef`ghijklmnopqrstuvwxyz0123456789+/a-^Wa-]a;@V[[`@Qa/}Wa/|a;@V[[`@Q0123456789abcdef{"trait_type": "Artist", "value"_: "Takens Theorem"}, {"trait_type": "Storage", "value_": "Fully On-Chain"}, {"trait_type": "Sequence", "valu_{"trait_type": "Medium", "value"_{"name":"0xconvo","image": "data_:image/svg+xml;base64,","animation_url":"data:text/htm_","description":"We are not meant to understand.","attributes": [data:application/json;base64,data:text/html;base64,already in stack const ROOTS = [ const IDS = [ const VRB = [ gibberlink:phantom
0xa88e4a19…250c·#24,405,676·0xe9e930f7…877f87
<text x="10" y="990" font-family="Arial" font-size="7pt" fill="#` ,"description":"Pattern from smo`othed stochastic; determined and`!,"attributes":[{"trait_type":"Re`Jnderer","value":"3"},{"trait_typ`je":"Pattern Ordinate","value":""},{"trait_type":"Filter Ordinat,"image":"data:image/svg+xml;basdata:application/json;base64,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 1000 1000" preserveAspectRatio="xMidYMid meet"><defs><pattern id="bgp" patternUnits="userSpaceOnUse" width="1000" height="1000"><image href="" x="0" y="0" width="1000" height="1000" preserveAspectRatio="none" style="image-rendering: crisp-edges;" /></pattern></defs><rect x="0" y="0" width="100%" height="100%" fill="black"/><rect x="0" y="0" width="100%" height="100%" fill="url(#bgp)" style="image-rendering: pixelated;"/>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
0xa88e4a19…250c·#24,405,665·0x3e1a4234…65c4cc
<text x="10" y="990" font-family="Arial" font-size="7pt" fill="#` ,"description":"Pattern from smo`othed stochastic; determined and`!,"attributes":[{"trait_type":"Re`Jnderer","value":"3"},{"trait_typ`je":"Pattern Ordinate","value":},{"trait_type":"Filter Ordinate,"image":"data:image/svg+xml;basdata:application/json;base64,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 1000 1000" preserveAspectRatio="xMidYMid meet"><defs><pattern id="bgp" patternUnits="userSpaceOnUse" width="1000" height="1000"><image href="" x="0" y="0" width="1000" height="1000" preserveAspectRatio="none" style="image-rendering: crisp-edges;" /></pattern></defs><rect x="0" y="0" width="100%" height="100%" fill="black"/><rect x="0" y="0" width="100%" height="100%" fill="url(#bgp)" style="image-rendering: pixelated;"/>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
0xa88e4a19…250c·#24,405,497·0x52bdbed4…b241fa
<text x="10" y="990" font-family="Arial" font-size="7pt" fill="#` ,"description":"Pattern from smo`othed stochastic; determined and`!,"attributes":[{"trait_type":"Re`JRtnderer","value":"3"}]`X,"image":"data:image/svg+xml;bas`data:application/json;base64,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 1000 1000" preserveAspectRatio="xMidYMid meet"><defs><pattern id="bgp" patternUnits="userSpaceOnUse" width="1000" height="1000"><image href="" x="0" y="0" width="1000" height="1000" preserveAspectRatio="none" style="image-rendering: crisp-edges;" /></pattern></defs><rect x="0" y="0" width="100%" height="100%" fill="black"/><rect x="0" y="0" width="100%" height="100%" fill="url(#bgp)" style="image-rendering: pixelated;"/>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
0xa88e4a19…250c·#24,087,053·0x75a3a988…88aa7d
<tspan class="y">Y</tspan>: <svg width="500" height="500" vi_ewBox="0 0 500 500" preserveAspe` ctRatio="xMidYMid meet" xmlns="h`@ttp://www.w3.org/2000/svg" style``="background:#000"><style>.y{font-weight:bold;}.sh{_font-weight:bold;}@keyframes radarWave{0%{transfor_m:scale(0);opacity:1;}70%{opacit` y:0.6;}100%{transform:scale(1);o`@pacity:0;}}.wave{transform-origi``n:50% 50%;transform-box:fill-box`;transform:scale(0);opacity:0;an`imation:radarWave s linear infinite;animation-fill_<rect x="0" y="0" width="500" he_ight="500" fill="black"/><g fill="none" stroke="" stroke-width="100"><circle cx="250" cy="250" r="240_" class="wave" />" fill="white" text-anchor="midd_le" font-family="courier, monosp` ace" font-size="18">" fill="none" stroke="#ffffff" s_troke-width="1" />
0xa88e4a19…250c·#24,086,296·0x8c5df15c…a3c291
<tspan class="y">Y</tspan>: <svg width="500" height="500" vi_ewBox="0 0 500 500" preserveAspe` ctRatio="xMidYMid meet" xmlns="h`@ttp://www.w3.org/2000/svg" style``="background:#000"><style>.y{font-weight:bold;}.sh{_font-weight:bold;}@keyframes radarWave{0%{transfor_m:scale(0);opacity:1;}70%{opacit` y:0.6;}100%{transform:scale(1);o`@pacity:0;}}.wave{transform-origi``n:50%50%;transform-box:fill-box;`transform:scale(0);opacity:0;ani`mation:radarWave s linear infinite;animation-fill_<rect x="0" y="0" width="500" he_ight="500" fill="black"/><g fill="none" stroke="" stroke-width="100"><circle cx="250" cy="250" r="240_" class="wave" />" fill="white" text-anchor="midd_le" font-family="courier, monosp` ace" font-size="18">" fill="none" stroke="#ffffff" s_troke-width="1" />
0xa88e4a19…250c·#24,086,218·0xaabcefc8…e88a30
0123456789abcdef0123456789abcdefABCDEFGHIJKLMNOPQRSTUVWXYZabcdef`ghijklmnopqrstuvwxyz0123456789+/Asset is not modifiable{"trait_type":"prover_{"name": "Private Ledger", "desc_ription": "Public ledgers are al` so intimate systems. , "tags": [], "image": "data:image/svg+xml;base64,", "animation_url":"data:text/html;base64,", "media": {"uri":"","dimensions":"2000x2000","size_","mimeType":"text/html"}}data:application/json;base64,"attributes":[{"trait_type":"public_key","value":"
0xa88e4a19…250c·#24,086,198·0x037223c6…ba14ab
0123456789abcdef0123456789abcdefABCDEFGHIJKLMNOPQRSTUVWXYZabcdef`ghijklmnopqrstuvwxyz0123456789+/Asset is not modifiable{"trait_type":"prover_{"name": "Private Ledger", "desc_ription": "Public ledgers are al` so intimate systems. , "tags": [], "image": "data:image/svg+xml;base64,", "animation_url":"data:text/html;base64,", "media": {"uri":"","dimensions":"2000x2000","size_","mimeType":"text/html"}}data:application/json;base64,"attributes":[{"trait_type":"public_key","value":"
0xa88e4a19…250c·#24,086,190·0xad17c037…3af01f
<tspan class="y">Y</tspan>: <svg width="500" height="500" vi_ewBox="0 0 500 500" xmlns="http:` //www.w3.org/2000/svg" style="ba`@<style>.y{font-weight:bold;}.sh{_font-weight:bold;}@keyframes radarWave{0%{transfor_m:scale(0);opacity:1;}70%{opacit` y:0.6;}100%{transform:scale(1);o`@pacity:0;}}.wave{transform-origi``n:50%50%;transform-box:fill-box;`transform:scale(0);opacity:0;ani`mation:radarWave s linear infinite;animation-fill_<rect x="0" y="0" width="500" he_ight="500" fill="black"/><g fill="none" stroke="" stroke-width="100"><circle cx="250" cy="250" r="240_" class="wave" />" fill="white" text-anchor="midd_le" font-family="courier, monosp` ace" font-size="18">" fill="none" stroke="#ffffff" s_troke-width="1" />
0xa88e4a19…250c·#24,085,776·0xd92f40c9…5fd5a2
<svg width="500" height="500" vi_ewBox="0 0 500 500" xmlns="http:` //www.w3.org/2000/svg" style="ba`@<style>.y{font-weight:bold;;stro_ke:#ffffff;}.sh{font-weight:bold` @keyframes radarWave{0%{transfor_m:scale(0);opacity:1;}70%{opacit` y:0.6;}100%{transform:scale(1);o`@pacity:0;}}.wave{transform-origi``n:50%50%;transform-box:fill-box;`transform:scale(0);opacity:0;ani`mation:radarWave s linear infinite;animation-fill_<rect x="0" y="0" width="500" he_ight="500" fill="black"/><g fill="none" stroke="" stroke-width="100"><circle cx="250" cy="250" r="240_" class="wave" />" class="y" text-anchor="middle"_ font-family="courier, monospace` " font-size="18">" fill="none" stroke="#ffffff" s_troke-width="1" />
0xa88e4a19…250c·#24,085,761·0x178e1124…0ace90
<svg width="500" height="500" vi_ewBox="0 0 500 500" xmlns="http:` //www.w3.org/2000/svg" style="ba`@<style>.y{font-weight:bold;}.sh{_font-weight:bold;}@keyframes radarWave{0%{transfor_m:scale(0);opacity:1;}70%{opacit` y:0.6;}100%{transform:scale(1);o`@pacity:0;}}.wave{transform-origi``n:50%50%;transform-box:fill-box;`transform:scale(0);opacity:0;ani`mation:radarWave s linear infinite;animation-fill_<rect x="0" y="0" width="500" he_ight="500" fill="black"/><g fill="none" stroke="" stroke-width="100"><circle cx="250" cy="250" r="240_" class="wave" />" class="y" text-anchor="middle"_ font-family="courier, monospace` " font-size="18">" fill="none" stroke="#ffffff" s_troke-width="1" />
.0;void main(){vec2 center=vec2(0.5,0.5);vec2 pos=(v_uv-center)*vec2(1.0,u_resolution.y/u_resolution.x);pos*=2.5;float dist=length(pos);float angle=atan(pos.y,pos.x);float squares=0.0;vec2 aspectRatio=vec2(u_resolution.x/u_resolution.y,1.0);float innermostSize=0.05;float outermostSize=0.05+(k-1.0)*0.025;for(float i=1.0;i<=20.0;i++){if(i<=k){float size=0.05+(i-1.0)*0.025;vec2 squarePos=abs((v_uv-center)*aspectRatio);float squareDist=max(squarePos.x,squarePos.y);float squareThickness=0.001;float square=1.0-smoothstep(size-squareThickness,size+squareThickness,squareDist);square*=smoothstep(size-squareThickness-0.01,size-squareThickness,squareDist);squares=max(squares,square);}};float lines=0.0;float lineThickness=0.001;vec2 linePos=(v_uv-center)*aspectRatio;float tinyOffset=0.002;float outermostOffset=0.002;float topLeftLine=1.0-smoothstep(lineThickness,lineThickness+0.001,abs(linePos.x-linePos.y));topLeftLine*=step(linePos.x,-innermostSize+tinyOffset)*step(linePos.y,-innermostSize+tinyOffset);topLeftLine*=(1.0-step(linePos.x,-outermostSize+outermostOffset))*(1.0-step(linePos.y,-outermostSize+outermostOffset));float topRightLine=1.0-smoothstep(lineThickness,lineThickness+0.001,abs(linePos.x+linePos.y));topRightLine*=step(innermostSize-tinyOffset,linePos.x)*step(linePos.y,-innermostSize+tinyOffset);topRightLine*=(1.0-step(outermostSize-outermostOffset,linePos.x))*(1.0-step(linePos.y,-outermostSize+outermostOffset));float bottomLeftLine=1.0-smoothstep(lineThickness,lineThickness+0.001,abs(linePos.x+linePos.y));bottomLeftLine*=step(linePos.x,-innermostSize+tinyOffset)*step(innermostSize-tinyOffset,linePos.y);bottomLeftLine*=(1.0-step(linePos.x,-outermostSize+outermostOffset))*(1.0-step(outermostSize-outermostOffset,linePos.y));float bottomRightLine=1.0-smoothstep(lineThickness,lineThickness+0.001,abs(linePos.x-linePos.y));bottomRightLine*=step(innermostSize-tinyOffset,linePos.x)*step(innermostSize-tinyOffset,linePos.y);bottomRightLine*=(1.0-step(outermostSize-outermostOffset,linePos.x))*(1.0-step(outermostSize-outermostOffset,linePos.y));lines=max(max(topLeftLine,topRightLine),max(bottomLeftLine,bottomRightLine));float wave1=sin(angle*3.0+u_time*2.0)*(0.2+u_yParams[0]*0.4);float wave2=cos(angle*5.0-u_time*1.5)*(0.3+u_yParams[1]*0.3);float wave3=sin(angle*7.0+u_time*3.0)*(0.4+u_yParams[2]*0.2);float pulse=sin(u_time*0.5)*(0.02+u_yParams[3]*1.0)+(0.5+u_yParams[4]*0.3);float soulRadius=pulse+wave1*0.1+wave2*0.1+wave3*0.1;float sdf=(dist-soulRadius)/0.5;float verticalDistortion=sin(dist*(5.0+u_yParams[5]*15.0)-u_time*(2.0+u_yParams[6]*3.0))*(0.25+u_yParams[6]*2.0);sdf+=verticalDistortion*(0.5+u_yParams[6]*0.5);vec3 color=vec3(0.0);float alpha=0.0;if(sdf<0.0){float intensity=1.0-abs(sdf);float r=u_yParams[7]*0.5+sin(u_time*0.5)*0.1+u_yParams[10]*0.05;float g=u_yParams[8]*0.5+cos(u_time*0.7)*0.1+u_yParams[11]*0.03;float b=u_yParams[9]*0.5+sin(u_time*1.3)*0.1+u_yParams[9]*0.02;float avgParams=(u_yParams[0]+u_yParams[1]+u_yParams[2])/3.0;float paletteIndex=floor(avgParams*10.0);vec3 paletteColor;if(paletteIndex==0.0){paletteColor=vec3(1.0,0.2,0.1);}else if(paletteIndex==1.0){paletteColor=vec3(0.1,0.8,1.0);}else if(paletteIndex==2.0){paletteColor=vec3(0.2,1.0,0.3);}else if(paletteIndex==3.0){paletteColor=vec3(0.8,0.1,1.0);}else if(paletteIndex==4.0){paletteColor=vec3(1.0,0.8,0.1);}else if(paletteIndex==5.0){paletteColor=vec3(1.0,1.0,1.0);}else if(paletteIndex==6.0){paletteColor=vec3(0.3,0.9,0.9);}else if(paletteIndex==7.0){paletteColor=vec3(0.9,0.6,0.2);}else if(paletteIndex==8.0){paletteColor=vec3(0.5,0.2,0.8);}else if(paletteIndex==9.0){paletteColor=vec3(0.9,0.9,0.2);}else{paletteColor=vec3((r+g+b)*0.3,(r+g*0.5+b*0.8)*0.3,(r*0.8+g+b)*0.3);};float variation=sin(u_time*2.0+dist*3.0)*0.1+0.9;float xPos=(v_uv.x-0.5)*2.0;float yPos=(v_uv.y-0.5)*2.0;vec3 positionShift=vec3(sin(xPos*3.14159+u_time)*0.25,cos(yPos*3.14159+u_time*1.5)*0.25,sin((xPos+yPos)*2.0+u_time*2.0)*0.25);float chromaticMix1=sin(u_time*1.5+dist*2.0)*0.2+0.2;float chromaticMix2=cos(u_time*2.5-angle*3.0)*0.15+0.15;float chromaticMix3=sin(u_time*3.5+xPos*yPos*5.0)*0.1+0.1;vec3 chromaticBlend1=vec3(positionShift.g*chromaticMix1,positionShift.b*chromaticMix1,positionShift.r*chromaticMix1);vec3 chromaticBlend2=vec3(positionShift.b*chromaticMix2,positionShift.r*chromaticMix2,positionShift.g*chromaticMix2);vec3 chromaticBlend3=vec3((positionShift.r+positionShift.g)*0.5*chromaticMix3,(positionShift.g+positionShift.b)*0.5*chromaticMix3,(positionShift.b+positionShift.r)*0.5*chromaticMix3);vec3 interference=vec3(sin(dist*15.0-u_time*4.0)*0.05,cos(angle*8.0+u_time*3.0)*0.05,sin((dist+angle)*10.0-u_time*2.0)*0.05);color=paletteColor*variation+positionShift+chromaticBlend1+chromaticBlend2+chromaticBlend3+interference;if(intensity>0.7){color=mix(color,paletteColor+vec3(0.3,0.3,0.3),(intensity-0.7)*3.0);}else if(intensity<0.3){color=paletteColor*intensity*2.0;};alpha=intensity;};float geometricElements=max(squares,lines);if(geometricElements>0.5){color=mix(color,vec3(1.0,1.0,1.0),geometricElements);alpha=max(alpha,geometricElements);};gl_FragColor=vec4(color,alpha);}`;function createShader(gl,type,source){const shader=gl.createShader(type);gl.shaderSource(shader,source);gl.compileShader(shader);if(!gl.getShaderParameter(shader,gl.COMPILE_STATUS)){console.error('Shader compilation error:',gl.getShaderInfoLog(shader));gl.deleteShader(shader);return null;};return shader;};const vertexShader=createShader(gl,gl.VERTEX_SHADER,vertexShaderSource);const fragmentShader=createShader(gl,gl.FRAGMENT_SHADER,fragmentShaderSource);const program=gl.createProgram();gl.attachShader(program,vertexShader);gl.attachShader(program,fragmentShader);gl.linkProgram(program);if(!gl.getProgramParameter(program,gl.LINK_STATUS)){console.error('Program linking error:',gl.getProgramInfoLog(program));return;};const positions=new Float32Array([-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,1.0,]);const positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);gl.bufferData(gl.ARRAY_BUFFER,positions,gl.STATIC_DRAW);const positionAttributeLocation=gl.getAttribLocation(program,'a_position');const timeUniformLocation=gl.getUniformLocation(program,'u_time');const resolutionUniformLocation=gl.getUniformLocation(program,'u_resolution');const yParamsUniformLocation=gl.getUniformLocation(program,'u_yParams');let startTime=Date.now();function animate(){const currentTime=(Date.now()-startTime)/1000.0;gl.clearColor(0.0,0.0,0.0,1.0);gl.clear(gl.COLOR_BUFFER_BIT);gl.useProgram(program);gl.uniform1f(timeUniformLocation,currentTime);gl.uniform2f(resolutionUniformLocation,canvas.width,canvas.height);for(let i=0;i<12;i++){gl.uniform1f(gl.getUniformLocation(program,`u_yParams[${i}]`),currentYParams[i]);};gl.enableVertexAttribArray(positionAttributeLocation);gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);gl.vertexAttribPointer(positionAttributeLocation,2,gl.FLOAT,false,0,0);gl.enable(gl.BLEND);gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA);gl.drawArrays(gl.TRIANGLE_STRIP,0,4);requestAnimationFrame(animate);};window.addEventListener('resize',()=>{canvas.width=window.innerWidth;canvas.height=window.innerHeight;gl.viewport(0,0,canvas.width,canvas.height);});animate();};window.addEventListener('load',initsoul);</script></body></html>
n;function extractYParams(yValue){const yStr=yValue.toString();const features=[];for(let i=0;i<yStr.length;i+=2){if(i+2<=yStr.length){features.push(parseInt(yStr.slice(i,i+2))/100);}};while(features.length<12){features.push(0.5);};return features.slice(0,12);};let currentYParams;if(largeRandomY==0){currentYParams=[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5];}else{currentYParams=extractYParams(largeRandomY);};function initsoul(){const canvas=document.getElementById('soul');const gl=canvas.getContext('webgl')||canvas.getContext('experimental-webgl');if(!gl){console.error('WebGL not supported');return;};canvas.width=window.innerWidth;canvas.height=window.innerHeight;gl.viewport(0,0,canvas.width,canvas.height);const vertexShaderSource=`attribute vec2 a_position;varying vec2 v_uv;void main(){v_uv=(a_position+1.0)*0.5;gl_Position=vec4(a_position,0.0,1.0);}`;const fragmentShaderSource=`precision mediump float;varying vec2 v_uv;uniform float u_time;uniform vec2 u_resolution;uniform float u_yParams[12];float k=
<!DOCTYPE html> <title></title> <style>body{margin:0;padding:0;background-color:#000;overflow:hidden}#soul{width:100vw;height:100vh;display:block}</style> <canvas id=soul ></canvas> <script>const largeRandomY=
0xa88e4a19…250c·#23,900,364·0x63d2f2a9…369c61
0123456789abcdef0123456789abcdefABCDEFGHIJKLMNOPQRSTUVWXYZabcdef`ghijklmnopqrstuvwxyz0123456789+/Asset is not modifiable{"trait_type":"prover_{"name": "Private Ledger", "desc_ription": "Public ledgers are al` so intimate systems. , "tags": [], "image": "", "animation_url":"data:text/html;base64,", "media": {"uri":"","dimensions":"2000x2000","size_","mimeType":"text/html"}}data:application/json;base64,"attributes":[{"trait_type":"public_key","value":"
0xa88e4a19…250c·#23,900,358·0xdf741d6f…20c1f0
Y does not match current owner c_Invalid public keyInvalid commitmentY does not matchNo challenge issuedCommitment T mismatchProof already exists
.0;void main(){vec2 center=vec2(0.5,0.5);vec2 pos=(v_uv-center)*vec2(1.0,u_resolution.y/u_resolution.x);pos*=2.5;float dist=length(pos);float angle=atan(pos.y,pos.x);float squares=0.0;vec2 aspectRatio=vec2(u_resolution.x/u_resolution.y,1.0);float innermostSize=0.05;float outermostSize=0.05+(k-1.0)*0.025;for(float i=1.0;i<=20.0;i++){if(i<=k){float size=0.05+(i-1.0)*0.025;vec2 squarePos=abs((v_uv-center)*aspectRatio);float squareDist=max(squarePos.x,squarePos.y);float squareThickness=0.001;float square=1.0-smoothstep(size-squareThickness,size+squareThickness,squareDist);square*=smoothstep(size-squareThickness-0.01,size-squareThickness,squareDist);squares=max(squares,square);}};float lines=0.0;float lineThickness=0.001;vec2 linePos=(v_uv-center)*aspectRatio;float tinyOffset=0.002;float outermostOffset=0.002;float topLeftLine=1.0-smoothstep(lineThickness,lineThickness+0.001,abs(linePos.x-linePos.y));topLeftLine*=step(linePos.x,-innermostSize+tinyOffset)*step(linePos.y,-innermostSize+tinyOffset);topLeftLine*=(1.0-step(linePos.x,-outermostSize+outermostOffset))*(1.0-step(linePos.y,-outermostSize+outermostOffset));float topRightLine=1.0-smoothstep(lineThickness,lineThickness+0.001,abs(linePos.x+linePos.y));topRightLine*=step(innermostSize-tinyOffset,linePos.x)*step(linePos.y,-innermostSize+tinyOffset);topRightLine*=(1.0-step(outermostSize-outermostOffset,linePos.x))*(1.0-step(linePos.y,-outermostSize+outermostOffset));float bottomLeftLine=1.0-smoothstep(lineThickness,lineThickness+0.001,abs(linePos.x+linePos.y));bottomLeftLine*=step(linePos.x,-innermostSize+tinyOffset)*step(innermostSize-tinyOffset,linePos.y);bottomLeftLine*=(1.0-step(linePos.x,-outermostSize+outermostOffset))*(1.0-step(outermostSize-outermostOffset,linePos.y));float bottomRightLine=1.0-smoothstep(lineThickness,lineThickness+0.001,abs(linePos.x-linePos.y));bottomRightLine*=step(innermostSize-tinyOffset,linePos.x)*step(innermostSize-tinyOffset,linePos.y);bottomRightLine*=(1.0-step(outermostSize-outermostOffset,linePos.x))*(1.0-step(outermostSize-outermostOffset,linePos.y));lines=max(max(topLeftLine,topRightLine),max(bottomLeftLine,bottomRightLine));float wave1=sin(angle*3.0+u_time*2.0)*(0.2+u_yParams[0]*0.4);float wave2=cos(angle*5.0-u_time*1.5)*(0.3+u_yParams[1]*0.3);float wave3=sin(angle*7.0+u_time*3.0)*(0.4+u_yParams[2]*0.2);float pulse=sin(u_time*0.5)*(0.02+u_yParams[3]*1.0)+(0.5+u_yParams[4]*0.3);float soulRadius=pulse+wave1*0.1+wave2*0.1+wave3*0.1;float sdf=(dist-soulRadius)/0.5;float verticalDistortion=sin(dist*(5.0+u_yParams[5]*15.0)-u_time*(2.0+u_yParams[6]*3.0))*(0.25+u_yParams[6]*2.0);sdf+=verticalDistortion*(0.5+u_yParams[6]*0.5);vec3 color=vec3(0.0);float alpha=0.0;if(sdf<0.0){float intensity=1.0-abs(sdf);float r=u_yParams[7]*0.5+sin(u_time*0.5)*0.1+u_yParams[10]*0.05;float g=u_yParams[8]*0.5+cos(u_time*0.7)*0.1+u_yParams[11]*0.03;float b=u_yParams[9]*0.5+sin(u_time*1.3)*0.1+u_yParams[9]*0.02;float avgParams=(u_yParams[0]+u_yParams[1]+u_yParams[2])/3.0;float paletteIndex=floor(avgParams*10.0);vec3 paletteColor;if(paletteIndex==0.0){paletteColor=vec3(1.0,0.2,0.1);}else if(paletteIndex==1.0){paletteColor=vec3(0.1,0.8,1.0);}else if(paletteIndex==2.0){paletteColor=vec3(0.2,1.0,0.3);}else if(paletteIndex==3.0){paletteColor=vec3(0.8,0.1,1.0);}else if(paletteIndex==4.0){paletteColor=vec3(1.0,0.8,0.1);}else if(paletteIndex==5.0){paletteColor=vec3(1.0,1.0,1.0);}else if(paletteIndex==6.0){paletteColor=vec3(0.3,0.9,0.9);}else if(paletteIndex==7.0){paletteColor=vec3(0.9,0.6,0.2);}else if(paletteIndex==8.0){paletteColor=vec3(0.5,0.2,0.8);}else if(paletteIndex==9.0){paletteColor=vec3(0.9,0.9,0.2);}else{paletteColor=vec3((r+g+b)*0.3,(r+g*0.5+b*0.8)*0.3,(r*0.8+g+b)*0.3);};float variation=sin(u_time*2.0+dist*3.0)*0.1+0.9;float xPos=(v_uv.x-0.5)*2.0;float yPos=(v_uv.y-0.5)*2.0;vec3 positionShift=vec3(sin(xPos*3.14159+u_time)*0.25,cos(yPos*3.14159+u_time*1.5)*0.25,sin((xPos+yPos)*2.0+u_time*2.0)*0.25);float chromaticMix1=sin(u_time*1.5+dist*2.0)*0.2+0.2;float chromaticMix2=cos(u_time*2.5-angle*3.0)*0.15+0.15;float chromaticMix3=sin(u_time*3.5+xPos*yPos*5.0)*0.1+0.1;vec3 chromaticBlend1=vec3(positionShift.g*chromaticMix1,positionShift.b*chromaticMix1,positionShift.r*chromaticMix1);vec3 chromaticBlend2=vec3(positionShift.b*chromaticMix2,positionShift.r*chromaticMix2,positionShift.g*chromaticMix2);vec3 chromaticBlend3=vec3((positionShift.r+positionShift.g)*0.5*chromaticMix3,(positionShift.g+positionShift.b)*0.5*chromaticMix3,(positionShift.b+positionShift.r)*0.5*chromaticMix3);vec3 interference=vec3(sin(dist*15.0-u_time*4.0)*0.05,cos(angle*8.0+u_time*3.0)*0.05,sin((dist+angle)*10.0-u_time*2.0)*0.05);color=paletteColor*variation+positionShift+chromaticBlend1+chromaticBlend2+chromaticBlend3+interference;if(intensity>0.7){color=mix(color,paletteColor+vec3(0.3,0.3,0.3),(intensity-0.7)*3.0);}else if(intensity<0.3){color=paletteColor*intensity*2.0;};alpha=intensity;};float geometricElements=max(squares,lines);if(geometricElements>0.5){color=mix(color,vec3(1.0,1.0,1.0),geometricElements);alpha=max(alpha,geometricElements);};gl_FragColor=vec4(color,alpha);}`;function createShader(gl,type,source){const shader=gl.createShader(type);gl.shaderSource(shader,source);gl.compileShader(shader);if(!gl.getShaderParameter(shader,gl.COMPILE_STATUS)){console.error('Shader compilation error:',gl.getShaderInfoLog(shader));gl.deleteShader(shader);return null;};return shader;};const vertexShader=createShader(gl,gl.VERTEX_SHADER,vertexShaderSource);const fragmentShader=createShader(gl,gl.FRAGMENT_SHADER,fragmentShaderSource);const program=gl.createProgram();gl.attachShader(program,vertexShader);gl.attachShader(program,fragmentShader);gl.linkProgram(program);if(!gl.getProgramParameter(program,gl.LINK_STATUS)){console.error('Program linking error:',gl.getProgramInfoLog(program));return;};const positions=new Float32Array([-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,1.0,]);const positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);gl.bufferData(gl.ARRAY_BUFFER,positions,gl.STATIC_DRAW);const positionAttributeLocation=gl.getAttribLocation(program,'a_position');const timeUniformLocation=gl.getUniformLocation(program,'u_time');const resolutionUniformLocation=gl.getUniformLocation(program,'u_resolution');const yParamsUniformLocation=gl.getUniformLocation(program,'u_yParams');let startTime=Date.now();function animate(){const currentTime=(Date.now()-startTime)/1000.0;gl.clearColor(0.0,0.0,0.0,1.0);gl.clear(gl.COLOR_BUFFER_BIT);gl.useProgram(program);gl.uniform1f(timeUniformLocation,currentTime);gl.uniform2f(resolutionUniformLocation,canvas.width,canvas.height);for(let i=0;i<12;i++){gl.uniform1f(gl.getUniformLocation(program,`u_yParams[${i}]`),currentYParams[i]);};gl.enableVertexAttribArray(positionAttributeLocation);gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);gl.vertexAttribPointer(positionAttributeLocation,2,gl.FLOAT,false,0,0);gl.enable(gl.BLEND);gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA);gl.drawArrays(gl.TRIANGLE_STRIP,0,4);requestAnimationFrame(animate);};window.addEventListener('resize',()=>{canvas.width=window.innerWidth;canvas.height=window.innerHeight;gl.viewport(0,0,canvas.width,canvas.height);});animate();};window.addEventListener('load',initsoul);</script></body></html>
<!DOCTYPE html> <title></title> <style>body{margin:0;padding:0;background-color:#000;overflow:hidden}#soul{width:100vw;height:100vh;display:block}</style> <canvas id=soul ></canvas> <script>const largeRandomY=
n;function extractYParams(yValue){const yStr=yValue.toString();const features=[];for(let i=0;i<yStr.length;i+=2){if(i+2<=yStr.length){features.push(parseInt(yStr.slice(i,i+2))/100);}};while(features.length<12){features.push(0.5);};return features.slice(0,12);};let currentYParams;if(largeRandomY==0){currentYParams=[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5];}else{currentYParams=extractYParams(largeRandomY);};function initsoul(){const canvas=document.getElementById('soul');const gl=canvas.getContext('webgl')||canvas.getContext('experimental-webgl');if(!gl){console.error('WebGL not supported');return;};canvas.width=window.innerWidth;canvas.height=window.innerHeight;gl.viewport(0,0,canvas.width,canvas.height);const vertexShaderSource=`attribute vec2 a_position;varying vec2 v_uv;void main(){v_uv=(a_position+1.0)*0.5;gl_Position=vec4(a_position,0.0,1.0);}`;const fragmentShaderSource=`precision mediump float;varying vec2 v_uv;uniform float u_time;uniform vec2 u_resolution;uniform float u_yParams[12];float k=
n;function extractYParams(yValue){const yStr=yValue.toString();const features=;for(let i=0;i<yStr.length;i+=2){if(i+2<=yStr.length){features.push(parseInt(yStr.slice(i,i+2))/100);}};while(features.length<12){features.push(0.5);};return features.slice(0,12);};let currentYParams;if(largeRandomY==0){currentYParams=[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5];}else{currentYParams=extractYParams(largeRandomY);};function initsoul(){const canvas=document.getElementById('soul');const gl=canvas.getContext('webgl')||canvas.getContext('experimental-webgl');if(!gl){console.error('WebGL not supported');return;};canvas.width=window.innerWidth;canvas.height=window.innerHeight;gl.viewport(0,0,canvas.width,canvas.height);const vertexShaderSource=`attribute vec2 a_position;varying vec2 v_uv;void main(){v_uv=(a_position+1.0)*0.5;gl_Position=vec4(a_position,0.0,1.0);}`;const fragmentShaderSource=`precision mediump float;varying vec2 v_uv;uniform float u_time;uniform vec2 u_resolution;uniform float u_yParams[12];float k=
.0;void main(){vec2 center=vec2(0.5,0.5);vec2 pos=(v_uv-center)*vec2(1.0,u_resolution.y/u_resolution.x);pos*=2.5;float dist=length(pos);float angle=atan(pos.y,pos.x);float squares=0.0;vec2 aspectRatio=vec2(u_resolution.x/u_resolution.y,1.0);float innermostSize=0.05;float outermostSize=0.05+(k-1.0)*0.025;for(float i=1.0;i<=20.0;i++){if(i<=k){float size=0.05+(i-1.0)*0.025;vec2 squarePos=abs((v_uv-center)*aspectRatio);float squareDist=max(squarePos.x,squarePos.y);float squareThickness=0.001;float square=1.0-smoothstep(size-squareThickness,size+squareThickness,squareDist);square*=smoothstep(size-squareThickness-0.01,size-squareThickness,squareDist);squares=max(squares,square);}};float lines=0.0;float lineThickness=0.001;vec2 linePos=(v_uv-center)*aspectRatio;float tinyOffset=0.002;float outermostOffset=0.002;float topLeftLine=1.0-smoothstep(lineThickness,lineThickness+0.001,abs(linePos.x-linePos.y));topLeftLine*=step(linePos.x,-innermostSize+tinyOffset)*step(linePos.y,-innermostSize+tinyOffset);topLeftLine*=(1.0-step(linePos.x,-outermostSize+outermostOffset))*(1.0-step(linePos.y,-outermostSize+outermostOffset));float topRightLine=1.0-smoothstep(lineThickness,lineThickness+0.001,abs(linePos.x+linePos.y));topRightLine*=step(innermostSize-tinyOffset,linePos.x)*step(linePos.y,-innermostSize+tinyOffset);topRightLine*=(1.0-step(outermostSize-outermostOffset,linePos.x))*(1.0-step(linePos.y,-outermostSize+outermostOffset));float bottomLeftLine=1.0-smoothstep(lineThickness,lineThickness+0.001,abs(linePos.x+linePos.y));bottomLeftLine*=step(linePos.x,-innermostSize+tinyOffset)*step(innermostSize-tinyOffset,linePos.y);bottomLeftLine*=(1.0-step(linePos.x,-outermostSize+outermostOffset))*(1.0-step(outermostSize-outermostOffset,linePos.y));float bottomRightLine=1.0-smoothstep(lineThickness,lineThickness+0.001,abs(linePos.x-linePos.y));bottomRightLine*=step(innermostSize-tinyOffset,linePos.x)*step(innermostSize-tinyOffset,linePos.y);bottomRightLine*=(1.0-step(outermostSize-outermostOffset,linePos.x))*(1.0-step(outermostSize-outermostOffset,linePos.y));lines=max(max(topLeftLine,topRightLine),max(bottomLeftLine,bottomRightLine));float wave1=sin(angle*3.0+u_time*2.0)*(0.2+u_yParams0*0.4);float wave2=cos(angle*5.0-u_time*1.5)*(0.3+u_yParams[1]*0.3);float wave3=sin(angle*7.0+u_time*3.0)*(0.4+u_yParams[2]*0.2);float pulse=sin(u_time*0.5)*(0.02+u_yParams[3]*1.0)+(0.5+u_yParams[4]*0.3);float soulRadius=pulse+wave1*0.1+wave2*0.1+wave3*0.1;float sdf=(dist-soulRadius)/0.5;float verticalDistortion=sin(dist*(5.0+u_yParams[5]*15.0)-u_time*(2.0+u_yParams[6]*3.0))*(0.25+u_yParams[6]*2.0);sdf+=verticalDistortion*(0.5+u_yParams[6]*0.5);vec3 color=vec3(0.0);float alpha=0.0;if(sdf<0.0){float intensity=1.0-abs(sdf);float r=u_yParams[7]*0.5+sin(u_time*0.5)*0.1+u_yParams[10]*0.05;float g=u_yParams[8]*0.5+cos(u_time*0.7)*0.1+u_yParams[11]*0.03;float b=u_yParams[9]*0.5+sin(u_time*1.3)*0.1+u_yParams[9]*0.02;float avgParams=(u_yParams[0]+u_yParams[1]+u_yParams[2])/3.0;float paletteIndex=floor(avgParams*10.0);vec3 paletteColor;if(paletteIndex==0.0){paletteColor=vec3(1.0,0.2,0.1);}else if(paletteIndex==1.0){paletteColor=vec3(0.1,0.8,1.0);}else if(paletteIndex==2.0){paletteColor=vec3(0.2,1.0,0.3);}else if(paletteIndex==3.0){paletteColor=vec3(0.8,0.1,1.0);}else if(paletteIndex==4.0){paletteColor=vec3(1.0,0.8,0.1);}else if(paletteIndex==5.0){paletteColor=vec3(1.0,1.0,1.0);}else if(paletteIndex==6.0){paletteColor=vec3(0.3,0.9,0.9);}else if(paletteIndex==7.0){paletteColor=vec3(0.9,0.6,0.2);}else if(paletteIndex==8.0){paletteColor=vec3(0.5,0.2,0.8);}else if(paletteIndex==9.0){paletteColor=vec3(0.9,0.9,0.2);}else{paletteColor=vec3((r+g+b)*0.3,(r+g*0.5+b*0.8)*0.3,(r*0.8+g+b)*0.3);};float variation=sin(u_time*2.0+dist*3.0)*0.1+0.9;float xPos=(v_uv.x-0.5)*2.0;float yPos=(v_uv.y-0.5)*2.0;vec3 positionShift=vec3(sin(xPos*3.14159+u_time)*0.25,cos(yPos*3.14159+u_time*1.5)*0.25,sin((xPos+yPos)*2.0+u_time*2.0)*0.25);float chromaticMix1=sin(u_time*1.5+dist*2.0)*0.2+0.2;float chromaticMix2=cos(u_time*2.5-angle*3.0)*0.15+0.15;float chromaticMix3=sin(u_time*3.5+xPos*yPos*5.0)*0.1+0.1;vec3 chromaticBlend1=vec3(positionShift.g*chromaticMix1,positionShift.b*chromaticMix1,positionShift.r*chromaticMix1);vec3 chromaticBlend2=vec3(positionShift.b*chromaticMix2,positionShift.r*chromaticMix2,positionShift.g*chromaticMix2);vec3 chromaticBlend3=vec3((positionShift.r+positionShift.g)*0.5*chromaticMix3,(positionShift.g+positionShift.b)*0.5*chromaticMix3,(positionShift.b+positionShift.r)*0.5*chromaticMix3);vec3 interference=vec3(sin(dist*15.0-u_time*4.0)*0.05,cos(angle*8.0+u_time*3.0)*0.05,sin((dist+angle)*10.0-u_time*2.0)*0.05);color=paletteColor*variation+positionShift+chromaticBlend1+chromaticBlend2+chromaticBlend3+interference;if(intensity>0.7){color=mix(color,paletteColor+vec3(0.3,0.3,0.3),(intensity-0.7)*3.0);}else if(intensity<0.3){color=paletteColor*intensity*2.0;};alpha=intensity;};float geometricElements=max(squares,lines);if(geometricElements>0.5){color=mix(color,vec3(1.0,1.0,1.0),geometricElements);alpha=max(alpha,geometricElements);};gl_FragColor=vec4(color,alpha);}`;function createShader(gl,type,source){const shader=gl.createShader(type);gl.shaderSource(shader,source);gl.compileShader(shader);if(!gl.getShaderParameter(shader,gl.COMPILE_STATUS)){console.error('Shader compilation error:',gl.getShaderInfoLog(shader));gl.deleteShader(shader);return null;};return shader;};const vertexShader=createShader(gl,gl.VERTEX_SHADER,vertexShaderSource);const fragmentShader=createShader(gl,gl.FRAGMENT_SHADER,fragmentShaderSource);const program=gl.createProgram();gl.attachShader(program,vertexShader);gl.attachShader(program,fragmentShader);gl.linkProgram(program);if(!gl.getProgramParameter(program,gl.LINK_STATUS)){console.error('Program linking error:',gl.getProgramInfoLog(program));return;};const positions=new Float32Array([-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,1.0,]);const positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);gl.bufferData(gl.ARRAY_BUFFER,positions,gl.STATIC_DRAW);const positionAttributeLocation=gl.getAttribLocation(program,'a_position');const timeUniformLocation=gl.getUniformLocation(program,'u_time');const resolutionUniformLocation=gl.getUniformLocation(program,'u_resolution');const yParamsUniformLocation=gl.getUniformLocation(program,'u_yParams');let startTime=Date.now();function animate(){const currentTime=(Date.now()-startTime)/1000.0;gl.clearColor(0.0,0.0,0.0,1.0);gl.clear(gl.COLOR_BUFFER_BIT);gl.useProgram(program);gl.uniform1f(timeUniformLocation,currentTime);gl.uniform2f(resolutionUniformLocation,canvas.width,canvas.height);for(let i=0;i<12;i++){gl.uniform1f(gl.getUniformLocation(program,`u_yParams[${i}]`),currentYParams[i]);};gl.enableVertexAttribArray(positionAttributeLocation);gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);gl.vertexAttribPointer(positionAttributeLocation,2,gl.FLOAT,false,0,0);gl.enable(gl.BLEND);gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA);gl.drawArrays(gl.TRIANGLE_STRIP,0,4);requestAnimationFrame(animate);};window.addEventListener('resize',()=>{canvas.width=window.innerWidth;canvas.height=window.innerHeight;gl.viewport(0,0,canvas.width,canvas.height);});animate();};window.addEventListener('load',initsoul);</script></body></html>
n;function extractYParams(yValue){const yStr=yValue.toString();const features=;for(let i=0;i<yStr.length;i+=2){if(i+2<=yStr.length){features.push(parseInt(yStr.slice(i,i+2))/100);}};while(features.length<12){features.push(0.5);};return features.slice(0,12);};let currentYParams;if(largeRandomY==0){currentYParams=[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5];}else{currentYParams=extractYParams(largeRandomY);};function initsoul(){const canvas=document.getElementById('soul');const gl=canvas.getContext('webgl')||canvas.getContext('experimental-webgl');if(!gl){console.error('WebGL not supported');return;};canvas.width=window.innerWidth;canvas.height=window.innerHeight;gl.viewport(0,0,canvas.width,canvas.height);const vertexShaderSource=`attribute vec2 a_position;varying vec2 v_uv;void main(){v_uv=(a_position+1.0)*0.5;gl_Position=vec4(a_position,0.0,1.0);}`;const fragmentShaderSource=`precision mediump float;varying vec2 v_uv;uniform float u_time;uniform vec2 u_resolution;uniform float u_yParams[12];float k=
<!DOCTYPE html> <title></title> <style>body{margin:0;padding:0;background-color:#000;overflow:hidden}#soul{width:100vw;height:100vh;display:block}</style> <canvas id=soul ></canvas> <script>const largeRandomY=
0xa88e4a19…250c·#23,896,266·0xb784445c…774d80
0123456789abcdef0123456789abcdefAsset is not modifiable{"trait_type":"prover_{"name": "Private Ledger", "desc_ription": "Public ledgers are al` so intimate systems. , "tags": [], "image": "", "animation_url":"data:text/html;base64,", "media": {"uri":"","dimensions":"2000x2000","size_","mimeType":"text/html"}}ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"attributes":[{"trait_type":"public_key","value":"
0xa88e4a19…250c·#23,896,251·0x16bb0471…a27b38
Y does not match current owner c_Invalid public keyInvalid commitmentY does not matchNo challenge issuedCommitment T mismatchProof already exists
0xa88e4a19…250c·#23,879,748·0xd7b4d4dd…d3323e
{"name": "Token 1", "description_": "Public ledgers are also inti` mate systems...", "attributes": `@[], "tags": [], "image": "", "media": {"uri":"","size":"15465","mimeType":"tex_data:text/html;base64,PCFET0NUWVBFIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgICA8dGl0bGU+PC90aXRsZT4KICAgIDxzdHlsZT4KICAgICAgICBib2R5IHsKICAgICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgI2dsc2xGbGFtZSB7CiAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsKICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgoKPGJvZHk+CiAgICA8Y2FudmFzIGlkPSJnbHNsRmxhbWUiPjwvY2FudmFzPgoKICAgIDxzY3JpcHQ+CiAgICAgICAgY29uc3QgbGFyZ2VSYW5kb21ZID0gNTE1NDA4MTM5ODAxNTcyODcwMDQxNTU3MDM2OTIxMjQwNjI2MDUxODkzMTIxMzYyNzY0ODE5NzY3NzU4MDM3NDE3MjE5ODAyNTIyNDcybjsKCiAgICAgICAgZnVuY3Rpb24gZXh0cmFjdFlQYXJhbXMoeVZhbHVlKSB7CiAgICAgICAgICAgIGNvbnN0IHlTdHIgPSB5VmFsdWUudG9TdHJpbmcoKTsKICAgICAgICAgICAgY29uc3QgZmVhdHVyZXMgPSBbXTsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB5U3RyLmxlbmd0aDsgaSArPSAyKSB7CiAgICAgICAgICAgICAgICBpZiAoaSArIDIgPD0geVN0ci5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBmZWF0dXJlcy5wdXNoKHBhcnNlSW50KHlTdHIuc2xpY2UoaSwgaSArIDIpKSAvIDEwMCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIHdoaWxlIChmZWF0dXJlcy5sZW5ndGggPCAxMikgewogICAgICAgICAgICAgICAgZmVhdHVyZXMucHVzaCgwLjUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICByZXR1cm4gZmVhdHVyZXMuc2xpY2UoMCwgMTIpOwogICAgICAgIH0KCiAgICAgICAgbGV0IGN1cnJlbnRZUGFyYW1zID0gZXh0cmFjdFlQYXJhbXMobGFyZ2VSYW5kb21ZKTsKICAgICAgICBjdXJyZW50WVBhcmFtcyA9IFswLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41LCAwLjUsIDAuNSwgMC41XTsKCiAgICAgICAgZnVuY3Rpb24gaW5pdEZsYW1lKCkgewogICAgICAgICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2xzbEZsYW1lJyk7CiAgICAgICAgICAgIGNvbnN0IGdsID0gY2FudmFzLmdldENvbnRleHQoJ3dlYmdsJykgfHwgY2FudmFzLmdldENvbnRleHQoJ2V4cGVyaW1lbnRhbC13ZWJnbCcpOwoKICAgICAgICAgICAgaWYgKCFnbCkgewogICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignV2ViR0wgbm90IHN1cHBvcnRlZCcpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjYW52YXMud2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsKICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDsKICAgICAgICAgICAgZ2wudmlld3BvcnQoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKCiAgICAgICAgICAgIGNvbnN0IHZlcnRleFNoYWRlclNvdXJjZSA9IGAKICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSB2ZWMyIGFfcG9zaXRpb247CiAgICAgICAgICAgICAgICB2YXJ5aW5nIHZlYzIgdl91djsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdm9pZCBtYWluKCkgewogICAgICAgICAgICAgICAgICAgIHZfdXYgPSAoYV9wb3NpdGlvbiArIDEuMCkgKiAwLjU7CiAgICAgICAgICAgICAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KGFfcG9zaXRpb24sIDAuMCwgMS4wKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgYDsKCiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50U2hhZGVyU291cmNlID0gYAogICAgICAgICAgICAgICAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CiAgICAgICAgICAgICAgICB2YXJ5aW5nIHZlYzIgdl91djsKICAgICAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV90aW1lOwogICAgICAgICAgICAgICAgdW5pZm9ybSB2ZWMyIHVfcmVzb2x1dGlvbjsKICAgICAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV95UGFyYW1zWzEyXTsgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZvaWQgbWFpbigpIHsKICAgICAgICAgICAgICAgICAgICB2ZWMyIGNlbnRlciA9IHZlYzIoMC41LCAwLjUpOwogICAgICAgICAgICAgICAgICAgIHZlYzIgcG9zID0gKHZfdXYgLSBjZW50ZXIpICogdmVjMigxLjAsIHVfcmVzb2x1dGlvbi55IC8gdV9yZXNvbHV0aW9uLngpOwogICAgICAgICAgICAgICAgICAgIHBvcyAqPSAyLjU7IGZsb2F0IGRpc3QgPSBsZW5ndGgocG9zKTsgZmxvYXQgYW5nbGUgPSBhdGFuKHBvcy55LCBwb3MueCk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBmbG9hdCB3YXZlMSA9IHNpbihhbmdsZSAqIDMuMCArIHVfdGltZSAqIDIuMCkgKiAoMC4yICsgdV95UGFyYW1zWzBdICogMC40KTsKICAgICAgICAgICAgICAgICAgICBmbG9hdCB3YXZlMiA9IGNvcyhhbmdsZSAqIDUuMCAtIHVfdGltZSAqIDEuNSkgKiAoMC4zICsgdV95UGFyYW1zWzFdICogMC4zKTsKICAgICAgICAgICAgICAgICAgICBmbG9hdCB3YXZlMyA9IHNpbihhbmdsZSAqIDcuMCArIHVfdGltZSAqIDMuMCkgKiAoMC40ICsgdV95UGFyYW1zWzJdICogMC4yKTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBmbG9hdCBwdWxzZSA9IHNpbih1X3RpbWUgKiAwLjUpICogKDAuMDIgKyB1X3lQYXJhbXNbM10gKiAxLjApICsgKDAuNSArIHVfeVBhcmFtc1s0XSAqIDAuMyk7IGZsb2F0IGZsYW1lUmFkaXVzID0gcHVsc2UgKyB3YXZlMSAqIDAuMSArIHdhdmUyICogMC4xICsgd2F2ZTMgKiAwLjE7IGZsb2F0IHNkZiA9IChkaXN0IC0gZmxhbWVSYWRpdXMpIC8gMC41OwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIGZsb2F0IHZlcnRpY2FsRGlzdG9ydGlvbiA9IHNpbihkaXN0ICogKDUuMCArIHVfeVBhcmFtc1s1XSAqIDE1LjApIC0gdV90aW1lICogKDIuMCArIHVfeVBhcmFtc1s2XSAqIDMuMCkpICogKDAuMjUgKyB1X3lQYXJhbXNbNl0gKiAyLjApOyBzZGYgKz0gdmVydGljYWxEaXN0b3J0aW9uICogKDAuNSArIHVfeVBhcmFtc1s2XSAqIDAuNSk7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgdmVjMyBjb2xvciA9IHZlYzMoMC4wKTsgZmxvYXQgYWxwaGEgPSAwLjA7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgaWYgKHNkZiA8IDAuMCkgewogICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBpbnRlbnNpdHkgPSAxLjAgLSBhYnMoc2RmKTsKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHIgPSB1X3lQYXJhbXNbN10gKiAwLjUgKyBzaW4odV90aW1lICogMC41KSAqIDAuMSArIHVfeVBhcmFtc1sxMF0gKiAwLjA1OwogICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBnID0gdV95UGFyYW1zWzhdICogMC41ICsgY29zKHVfdGltZSAqIDAuNykgKiAwLjEgKyB1X3lQYXJhbXNbMTFdICogMC4wMzsgIAogICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBiID0gdV95UGFyYW1zWzldICogMC41ICsgc2luKHVfdGltZSAqIDEuMykgKiAwLjEgKyB1X3lQYXJhbXNbOV0gKiAwLjAyOwogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgYXZnUGFyYW1zID0gKHVfeVBhcmFtc1swXSArIHVfeVBhcmFtc1sxXSArIHVfeVBhcmFtc1syXSkgLyAzLjA7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHBhbGV0dGVJbmRleCA9IGZsb29yKGF2Z1BhcmFtcyAqIDEwLjApOwogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgdmVjMyBwYWxldHRlQ29sb3I7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYWxldHRlSW5kZXggPT0gMC4wKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWxldHRlQ29sb3IgPSB2ZWMzKDEuMCwgMC4yLCAwLjEpOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhbGV0dGVJbmRleCA9PSAxLjApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbGV0dGVDb2xvciA9IHZlYzMoMC4xLCAwLjgsIDEuMCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFsZXR0ZUluZGV4ID09IDIuMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFsZXR0ZUNvbG9yID0gdmVjMygwLjIsIDEuMCwgMC4zKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYWxldHRlSW5kZXggPT0gMy4wKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWxldHRlQ29sb3IgPSB2ZWMzKDAuOCwgMC4xLCAxLjApOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhbGV0dGVJbmRleCA9PSA0LjApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbGV0dGVDb2xvciA9IHZlYzMoMS4wLCAwLjgsIDAuMSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFsZXR0ZUluZGV4ID09IDUuMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFsZXR0ZUNvbG9yID0gdmVjMygxLjAsIDEuMCwgMS4wKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYWxldHRlSW5kZXggPT0gNi4wKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWxldHRlQ29sb3IgPSB2ZWMzKDAuMywgMC45LCAwLjkpOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhbGV0dGVJbmRleCA9PSA3LjApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbGV0dGVDb2xvciA9IHZlYzMoMC45LCAwLjYsIDAuMik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFsZXR0ZUluZGV4ID09IDguMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFsZXR0ZUNvbG9yID0gdmVjMygwLjUsIDAuMiwgMC44KTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYWxldHRlSW5kZXggPT0gOS4wKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWxldHRlQ29sb3IgPSB2ZWMzKDAuOSwgMC45LCAwLjIpOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFsZXR0ZUNvbG9yID0gdmVjMygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAociArIGcgKyBiKSAqIDAuMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAociArIGcgKiAwLjUgKyBiICogMC44KSAqIDAuMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAociAqIDAuOCArIGcgKyBiKSAqIDAuMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgdmFyaWF0aW9uID0gc2luKHVfdGltZSAqIDIuMCArIGRpc3QgKiAzLjApICogMC4xICsgMC45OwogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgeFBvcyA9ICh2X3V2LnggLSAwLjUpICogMi4wOwogICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCB5UG9zID0gKHZfdXYueSAtIDAuNSkgKiAyLjA7CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICB2ZWMzIHBvc2l0aW9uU2hpZnQgPSB2ZWMzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2luKHhQb3MgKiAzLjE0MTU5ICsgdV90aW1lKSAqIDAuMjUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3MoeVBvcyAqIDMuMTQxNTkgKyB1X3RpbWUgKiAxLjUpICogMC4yNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbigoeFBvcyArIHlQb3MpICogMi4wICsgdV90aW1lICogMi4wKSAqIDAuMjUKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGNocm9tYXRpY01peDEgPSBzaW4odV90aW1lICogMS41ICsgZGlzdCAqIDIuMCkgKiAwLjIgKyAwLjI7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGNocm9tYXRpY01peDIgPSBjb3ModV90aW1lICogMi41IC0gYW5nbGUgKiAzLjApICogMC4xNSArIDAuMTU7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGNocm9tYXRpY01peDMgPSBzaW4odV90aW1lICogMy41ICsgeFBvcyAqIHlQb3MgKiA1LjApICogMC4xICsgMC4xOwogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgdmVjMyBjaHJvbWF0aWNCbGVuZDEgPSB2ZWMzKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25TaGlmdC5nICogY2hyb21hdGljTWl4MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uU2hpZnQuYiAqIGNocm9tYXRpY01peDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvblNoaWZ0LnIgKiBjaHJvbWF0aWNNaXgxCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICB2ZWMzIGNocm9tYXRpY0JsZW5kMiA9IHZlYzMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvblNoaWZ0LmIgKiBjaHJvbWF0aWNNaXgyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25TaGlmdC5yICogY2hyb21hdGljTWl4MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uU2hpZnQuZyAqIGNocm9tYXRpY01peDIKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIHZlYzMgY2hyb21hdGljQmxlbmQzID0gdmVjMygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb3NpdGlvblNoaWZ0LnIgKyBwb3NpdGlvblNoaWZ0LmcpICogMC41ICogY2hyb21hdGljTWl4MywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb3NpdGlvblNoaWZ0LmcgKyBwb3NpdGlvblNoaWZ0LmIpICogMC41ICogY2hyb21hdGljTWl4MywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb3NpdGlvblNoaWZ0LmIgKyBwb3NpdGlvblNoaWZ0LnIpICogMC41ICogY2hyb21hdGljTWl4MyAKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIHZlYzMgaW50ZXJmZXJlbmNlID0gdmVjMygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbihkaXN0ICogMTUuMCAtIHVfdGltZSAqIDQuMCkgKiAwLjA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29zKGFuZ2xlICogOC4wICsgdV90aW1lICogMy4wKSAqIDAuMDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaW4oKGRpc3QgKyBhbmdsZSkgKiAxMC4wIC0gdV90aW1lICogMi4wKSAqIDAuMDUKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gcGFsZXR0ZUNvbG9yICogdmFyaWF0aW9uICsgcG9zaXRpb25TaGlmdCArIGNocm9tYXRpY0JsZW5kMSArIGNocm9tYXRpY0JsZW5kMiArIGNocm9tYXRpY0JsZW5kMyArIGludGVyZmVyZW5jZTsKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnRlbnNpdHkgPiAwLjcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gbWl4KGNvbG9yLCBwYWxldHRlQ29sb3IgKyB2ZWMzKDAuMywgMC4zLCAwLjMpLCAoaW50ZW5zaXR5IC0gMC43KSAqIDMuMCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW50ZW5zaXR5IDwgMC4zKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IHBhbGV0dGVDb2xvciAqIGludGVuc2l0eSAqIDIuMDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgPSBpbnRlbnNpdHk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IsIGFscGhhKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgYDsKCiAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVNoYWRlcihnbCwgdHlwZSwgc291cmNlKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIodHlwZSk7CiAgICAgICAgICAgICAgICBnbC5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzb3VyY2UpOwogICAgICAgICAgICAgICAgZ2wuY29tcGlsZVNoYWRlcihzaGFkZXIpOwoKICAgICAgICAgICAgICAgIGlmICghZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHNoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignU2hhZGVyIGNvbXBpbGF0aW9uIGVycm9yOicsIGdsLmdldFNoYWRlckluZm9Mb2coc2hhZGVyKSk7CiAgICAgICAgICAgICAgICAgICAgZ2wuZGVsZXRlU2hhZGVyKHNoYWRlcik7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcmV0dXJuIHNoYWRlcjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29uc3QgdmVydGV4U2hhZGVyID0gY3JlYXRlU2hhZGVyKGdsLCBnbC5WRVJURVhfU0hBREVSLCB2ZXJ0ZXhTaGFkZXJTb3VyY2UpOwogICAgICAgICAgICBjb25zdCBmcmFnbWVudFNoYWRlciA9IGNyZWF0ZVNoYWRlcihnbCwgZ2wuRlJBR01FTlRfU0hBREVSLCBmcmFnbWVudFNoYWRlclNvdXJjZSk7CgogICAgICAgICAgICBjb25zdCBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwogICAgICAgICAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdmVydGV4U2hhZGVyKTsKICAgICAgICAgICAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGZyYWdtZW50U2hhZGVyKTsKICAgICAgICAgICAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7CgogICAgICAgICAgICBpZiAoIWdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpKSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdQcm9ncmFtIGxpbmtpbmcgZXJyb3I6JywgZ2wuZ2V0UHJvZ3JhbUluZm9Mb2cocHJvZ3JhbSkpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjb25zdCBwb3NpdGlvbnMgPSBuZXcgRmxvYXQzMkFycmF5KFsKICAgICAgICAgICAgICAgIC0xLjAsIC0xLjAsCiAgICAgICAgICAgICAgICAxLjAsIC0xLjAsCiAgICAgICAgICAgICAgICAtMS4wLCAxLjAsCiAgICAgICAgICAgICAgICAxLjAsIDEuMCwKICAgICAgICAgICAgXSk7CgogICAgICAgICAgICBjb25zdCBwb3NpdGlvbkJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwogICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgcG9zaXRpb25CdWZmZXIpOwogICAgICAgICAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgcG9zaXRpb25zLCBnbC5TVEFUSUNfRFJBVyk7CgogICAgICAgICAgICBjb25zdCBwb3NpdGlvbkF0dHJpYnV0ZUxvY2F0aW9uID0gZ2wuZ2V0QXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgJ2FfcG9zaXRpb24nKTsKICAgICAgICAgICAgY29uc3QgdGltZVVuaWZvcm1Mb2NhdGlvbiA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAndV90aW1lJyk7CiAgICAgICAgICAgIGNvbnN0IHJlc29sdXRpb25Vbmlmb3JtTG9jYXRpb24gPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgJ3VfcmVzb2x1dGlvbicpOwogICAgICAgICAgICBjb25zdCB5UGFyYW1zVW5pZm9ybUxvY2F0aW9uID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICd1X3lQYXJhbXMnKTsKCiAgICAgICAgICAgIGxldCBzdGFydFRpbWUgPSBEYXRlLm5vdygpOwoKICAgICAgICAgICAgZnVuY3Rpb24gYW5pbWF0ZSgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gKERhdGUubm93KCkgLSBzdGFydFRpbWUpIC8gMTAwMC4wOwogICAgICAgICAgICAgICAgZ2wuY2xlYXJDb2xvcigwLjAsIDAuMCwgMC4wLCAxLjApOwogICAgICAgICAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CgogICAgICAgICAgICAgICAgZ2wudXNlUHJvZ3JhbShwcm9ncmFtKTsKCiAgICAgICAgICAgICAgICBnbC51bmlmb3JtMWYodGltZVVuaWZvcm1Mb2NhdGlvbiwgY3VycmVudFRpbWUpOwogICAgICAgICAgICAgICAgZ2wudW5pZm9ybTJmKHJlc29sdXRpb25Vbmlmb3JtTG9jYXRpb24sIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTI7IGkrKykgewogICAgICAgICAgICAgICAgICAgIGdsLnVuaWZvcm0xZihnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgYHVfeVBhcmFtc1ske2l9XWApLCBjdXJyZW50WVBhcmFtc1tpXSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkocG9zaXRpb25BdHRyaWJ1dGVMb2NhdGlvbik7CiAgICAgICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgcG9zaXRpb25CdWZmZXIpOwogICAgICAgICAgICAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcihwb3NpdGlvbkF0dHJpYnV0ZUxvY2F0aW9uLCAyLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOwoKICAgICAgICAgICAgICAgIGdsLmVuYWJsZShnbC5CTEVORCk7CiAgICAgICAgICAgICAgICBnbC5ibGVuZEZ1bmMoZ2wuU1JDX0FMUEhBLCBnbC5PTkVfTUlOVVNfU1JDX0FMUEhBKTsKCiAgICAgICAgICAgICAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFX1NUUklQLCAwLCA0KTsKCiAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB7CiAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsKICAgICAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7CiAgICAgICAgICAgICAgICBnbC52aWV3cG9ydCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIGFuaW1hdGUoKTsKICAgICAgICB9CgogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgaW5pdEZsYW1lKTsKICAgIDwvc2NyaXB0Pgo8L2JvZHk+Cgo8L2h0bWw+
0xa88e4a19…250c·#23,879,685·0x6daba253…479238
{"name": "Token 1*", "descriptio_n": "Public ledgers are also int` imate systems...", "attributes":`@ [], "tags": [], "image": "", "media": {"uri":"","dimensions":"500x500","size":_"15638","mimeType":"image/jpeg"}` data:image/jpeg;base64,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Hj+VZkunXcP3kOB3HI/SupWWpVlpjucJg9KSu5khtpx+9RTWbNosLcwuV9jyKYzmKK05dKu4hnbuH+zzWbtI4oASiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//R5uiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooxQAU9EZztQZPoK0bTS57jDt8iep/oK6SG3t7QYhXB9e9AGPa6KeHuTt/2R1rbURQLsiUKPQUx5aqtJUOQrlh5arNJURaoi1SSSF6YWqMtUZNOwiQtTN1MzTc0DH7qbmmZpM0wH5ozUdFAyXNGajpaBEuadmoRTqAJs04GoKdmkBOGpwaoAacDTEWA1PD1VzTs0AXRJipVlrP3U4NTGaiy02SK3uBiVA1UA9SrJRcdyrPokbc2749m6fnWNPY3Ft/rE49R0rqVlqdZARg0xnB0V19xplrcDKDy2/wBnp+VYFzp1xbclcr/eXp/9amMz6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/0ubooooAKKKKACiiigAooooAKKKKACiiigAoorVstLluRvb5E9f8KAKEFvLcOEiXJrprPS4bbEk2Hf8AQVejjhtk8uEYFRPLUt2AmeWqrSVEz1CWqLkXHlqiLU0mmE0gHE0wmkptUAE02ikpgJTadRigBtJTsUYoAbRT8UYoAbilp2KXFADcU4CnYpcUANpadijFAhKWlxRigAozSUUAOzS5qOjNMZKGp4aq+aM0gLQepVkxVINTw1AGistWVlFZIepVei4yS60y3ufnj/dv7dD+Fc3cWk1q22Vceh7fhXUpLVg+XMnlyAFT2qkyjhKK2b7SnhzLB8yfqtY1MAooooAKKKKACiiigAooooAKKKKACiiigD//0+booooAKKKKACiiigAooooAKKKKACnKpYhVHtT4YZJ3EcYyTXV2VhHZqHcBpPX0+lAFSx0lUAluxk9k/wAa13kwMCo3kqoz1DkIe8lQM1MLVGTUEjiaYTSZptABSUUUwEpMU/FGKYDMUYqXbS7aBEOKNtT7aXbQBBto21Y20bKQEG2l21PspdlAFfbTttWPLNKI6BFfbTttWPLp3l0wKu2jbVry6Ty6AK22kxVnZTNtMCvikxU5WmFaAIKbUxFRkUDGUmaUimmgoXNLmo6TOKYF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+f0qzLDXEglTkcV0lhqwk/c3XXoG/wAaEArx4quVrckhB6VnSQ4rRMRQIpmKslajK0xEGKbUuKbikAykp2KTFIBKWkooAdS0ylpgOzS5ptFAD6M02igY7NGaSigBc0UlFAwooooAbRS0uKQDKMU/FGKQDMUuKkC04LQBGFp4WpAtSKmaQEYWp0iJqxHATV5Y0jXc2ABQBDDb1Be6hFZjyo/mkx+Aqneav1itOB/e/wAK58nPWkA+WV5m3yHJPrUdFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/9Pm6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDXsdUe2AikG6P9R9P8K6NTFcR+ZEQwPpXC1Yt7mW2ffEcfyoA6iSCqbR4q1aalBdAJJ8j+narjwA1SZNjEK1GVrSeAiqxjIqhFMrTcVaKUzbQBXxSYqfbSbaBkOKMVLtpNtAEeKXFPxRigYylxTsUuKAGUYp+KXFADMUYqTbRtoAZijFSbadtp2GRYo21NtpwSkBDtpwWpxGalWAmkBVC1IsZNXkt6tLCBSAz0tyaux24FQT6haW3y53MOy/5xWFc6rcT/ACqdi+i/41IG7cX9tafL95/QVzd1fT3R+c4Xso6VTpKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9Tm6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK0rXU7i2wudy+h/pWbRQB2NvqFrdYXOxvQ/0qy0INcLV2C/urcARvwO3UUAdI1vUBhIqGLW0OBNHj3X/AArQS8spuFkAPoeKdxWKBjIpmytrylPT9KjNuKq4rGRspNtapt6Z9mougMzbRtrS+ze1H2b2ougM3bRtrT+ze1OFtRdDMvZTvLNagtxTxbii4GV5ZpREa1xAKXy0XrgUcwzKEBqQW9WjdWKdZU/A1XfVbJB8uW+gpcwD1t6mW3rMfXFH+qi/M/4VRk1i8fhSEH+yKVwOmEKjrVeS8soOGcE+i8/yrkpbiab/AFjFvrUOaQHRS62oGII/xb/AVkT31zcf6xzj0HA/KqdFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB//9Xm6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApaSigCVJpI/8AVsV+nFW01S9TAEhIHrg1n0UAbS63dA/MFI9MYqQa5Ln5o1x7cVg0UAdF/bv/AExH/fX/ANaj+3f+mI/76/8ArVztFAHQNrr/AMESj6nP9KZ/bk/9xP1rCooA2P7au/8AZ/75qudUviMeYf0/wrPooAstd3LDDSMR9agLsxyeabRQAtJRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf//W5uiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9k=
0xa88e4a19…250c·#23,877,776·0xa310aede…ef2fd1
{"name": "Token 1*", "descriptio_n": "Public ledgers are also int` imate systems...", "attributes":`@ [], "tags": [], "image": "data:image/jpeg;base64,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Hj+VZkunXcP3kOB3HI/SupWWpVlpjucJg9KSu5khtpx+9RTWbNosLcwuV9jyKYzmKK05dKu4hnbuH+zzWbtI4oASiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//R5uiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooxQAU9EZztQZPoK0bTS57jDt8iep/oK6SG3t7QYhXB9e9AGPa6KeHuTt/2R1rbURQLsiUKPQUx5aqtJUOQrlh5arNJURaoi1SSSF6YWqMtUZNOwiQtTN1MzTc0DH7qbmmZpM0wH5ozUdFAyXNGajpaBEuadmoRTqAJs04GoKdmkBOGpwaoAacDTEWA1PD1VzTs0AXRJipVlrP3U4NTGaiy02SK3uBiVA1UA9SrJRcdyrPokbc2749m6fnWNPY3Ft/rE49R0rqVlqdZARg0xnB0V19xplrcDKDy2/wBnp+VYFzp1xbclcr/eXp/9amMz6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/0ubooooAKKKKACiiigAooooAKKKKACiiigAoorVstLluRvb5E9f8KAKEFvLcOEiXJrprPS4bbEk2Hf8AQVejjhtk8uEYFRPLUt2AmeWqrSVEz1CWqLkXHlqiLU0mmE0gHE0wmkptUAE02ikpgJTadRigBtJTsUYoAbRT8UYoAbilp2KXFADcU4CnYpcUANpadijFAhKWlxRigAozSUUAOzS5qOjNMZKGp4aq+aM0gLQepVkxVINTw1AGistWVlFZIepVei4yS60y3ufnj/dv7dD+Fc3cWk1q22Vceh7fhXUpLVg+XMnlyAFT2qkyjhKK2b7SnhzLB8yfqtY1MAooooAKKKKACiiigAooooAKKKKACiiigD//0+booooAKKKKACiiigAooooAKKKKACnKpYhVHtT4YZJ3EcYyTXV2VhHZqHcBpPX0+lAFSx0lUAluxk9k/wAa13kwMCo3kqoz1DkIe8lQM1MLVGTUEjiaYTSZptABSUUUwEpMU/FGKYDMUYqXbS7aBEOKNtT7aXbQBBto21Y20bKQEG2l21PspdlAFfbTttWPLNKI6BFfbTttWPLp3l0wKu2jbVry6Ty6AK22kxVnZTNtMCvikxU5WmFaAIKbUxFRkUDGUmaUimmgoXNLmo6TOKYF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+f0qzLDXEglTkcV0lhqwk/c3XXoG/wAaEArx4quVrckhB6VnSQ4rRMRQIpmKslajK0xEGKbUuKbikAykp2KTFIBKWkooAdS0ylpgOzS5ptFAD6M02igY7NGaSigBc0UlFAwooooAbRS0uKQDKMU/FGKQDMUuKkC04LQBGFp4WpAtSKmaQEYWp0iJqxHATV5Y0jXc2ABQBDDb1Be6hFZjyo/mkx+Aqneav1itOB/e/wAK58nPWkA+WV5m3yHJPrUdFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/9Pm6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDXsdUe2AikG6P9R9P8K6NTFcR+ZEQwPpXC1Yt7mW2ffEcfyoA6iSCqbR4q1aalBdAJJ8j+narjwA1SZNjEK1GVrSeAiqxjIqhFMrTcVaKUzbQBXxSYqfbSbaBkOKMVLtpNtAEeKXFPxRigYylxTsUuKAGUYp+KXFADMUYqTbRtoAZijFSbadtp2GRYo21NtpwSkBDtpwWpxGalWAmkBVC1IsZNXkt6tLCBSAz0tyaux24FQT6haW3y53MOy/5xWFc6rcT/ACqdi+i/41IG7cX9tafL95/QVzd1fT3R+c4Xso6VTpKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9Tm6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK0rXU7i2wudy+h/pWbRQB2NvqFrdYXOxvQ/0qy0INcLV2C/urcARvwO3UUAdI1vUBhIqGLW0OBNHj3X/AArQS8spuFkAPoeKdxWKBjIpmytrylPT9KjNuKq4rGRspNtapt6Z9mougMzbRtrS+ze1H2b2ougM3bRtrT+ze1OFtRdDMvZTvLNagtxTxbii4GV5ZpREa1xAKXy0XrgUcwzKEBqQW9WjdWKdZU/A1XfVbJB8uW+gpcwD1t6mW3rMfXFH+qi/M/4VRk1i8fhSEH+yKVwOmEKjrVeS8soOGcE+i8/yrkpbiab/AFjFvrUOaQHRS62oGII/xb/AVkT31zcf6xzj0HA/KqdFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB//9Xm6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApaSigCVJpI/8AVsV+nFW01S9TAEhIHrg1n0UAbS63dA/MFI9MYqQa5Ln5o1x7cVg0UAdF/bv/AExH/fX/ANaj+3f+mI/76/8ArVztFAHQNrr/AMESj6nP9KZ/bk/9xP1rCooA2P7au/8AZ/75qudUviMeYf0/wrPooAstd3LDDSMR9agLsxyeabRQAtJRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf//W5uiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9k=
1-50 of 147