diff --git a/assets/calyx_web_bg-C9OgKtxc.wasm b/assets/calyx_web_bg-cUoSDG40.wasm similarity index 99% rename from assets/calyx_web_bg-C9OgKtxc.wasm rename to assets/calyx_web_bg-cUoSDG40.wasm index f4141d59a..3d6a278b7 100644 Binary files a/assets/calyx_web_bg-C9OgKtxc.wasm and b/assets/calyx_web_bg-cUoSDG40.wasm differ diff --git a/assets/index-DZL4AKCG.js b/assets/index-Camef5lR.js similarity index 96% rename from assets/index-DZL4AKCG.js rename to assets/index-Camef5lR.js index 3690b1b9b..612c87cf2 100644 --- a/assets/index-DZL4AKCG.js +++ b/assets/index-Camef5lR.js @@ -1,4 +1,4 @@ -(async()=>{(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const t of document.querySelectorAll('link[rel="modulepreload"]'))n(t);new MutationObserver(t=>{for(const s of t)if(s.type==="childList")for(const d of s.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&n(d)}).observe(document,{childList:!0,subtree:!0});function r(t){const s={};return t.integrity&&(s.integrity=t.integrity),t.referrerPolicy&&(s.referrerPolicy=t.referrerPolicy),t.crossOrigin==="use-credentials"?s.credentials="include":t.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(t){if(t.ep)return;t.ep=!0;const s=r(t);fetch(t.href,s)}})();const Me=""+new URL("calyx_web_bg-C9OgKtxc.wasm",import.meta.url).href,ze=async(e={},r)=>{let n;if(r.startsWith("data:")){const t=r.replace(/^data:.*?base64,/,"");let s;if(typeof Buffer=="function"&&typeof Buffer.from=="function")s=Buffer.from(t,"base64");else if(typeof atob=="function"){const d=atob(t);s=new Uint8Array(d.length);for(let l=0;l"u"?(0,module.require)("util").TextEncoder:TextEncoder;let G=new Ne("utf-8");const Oe=typeof G.encodeInto=="function"?function(e,r){return G.encodeInto(e,r)}:function(e,r){const n=G.encode(e);return r.set(n),{read:e.length,written:n.length}};function J(e,r,n){if(n===void 0){const a=G.encode(e),c=r(a.length);return U().subarray(c,c+a.length).set(a),z=a.length,c}let t=e.length,s=r(t);const d=U();let l=0;for(;l127)break;d[s+l]=a}if(l!==t){l!==0&&(e=e.slice(l)),s=n(s,t,t=l+e.length*3);const a=U().subarray(s+l,s+t),c=Oe(e,a);l+=c.written}return z=l,s}let K=null;function N(){return(K===null||K.buffer!==X.buffer)&&(K=new Int32Array(X.buffer)),K}let q=C.length;function Ie(e){e<36||(C[e]=q,q=e)}function qe(e){const r=ie(e);return Ie(e),r}let V=32;function He(e){if(V==1)throw new Error("out of js stack");return C[--V]=e,V}const Be=typeof TextDecoder>"u"?(0,module.require)("util").TextDecoder:TextDecoder;let he=new Be("utf-8",{ignoreBOM:!0,fatal:!0});he.decode();function ve(e,r){return he.decode(U().subarray(e,e+r))}function Re(e,r,n){try{const d=ye(-16),l=J(r,Y,Q),a=z,c=J(n,Y,Q),v=z;Ke(d,He(e),l,a,c,v);var t=N()[d/4+0],s=N()[d/4+1];return ve(t,s)}finally{ye(16),C[V++]=void 0,be(t,s)}}function De(e){q===C.length&&C.push(C.length+1);const r=q;return q=C[r],C[r]=e,r}function We(e,r){const n=ie(r),t=JSON.stringify(n===void 0?null:n),s=J(t,Y,Q),d=z;N()[e/4+1]=d,N()[e/4+0]=s}function Ze(){const e=new Error;return De(e)}function Ue(e,r){const n=ie(r).stack,t=J(n,Y,Q),s=z;N()[e/4+1]=s,N()[e/4+0]=t}function Ge(e,r){try{console.error(ve(e,r))}finally{be(e,r)}}function Je(e){qe(e)}URL=globalThis.URL;const O=await ze({"./calyx_web_bg.js":{__wbindgen_json_serialize:We,__wbg_new_693216e109162396:Ze,__wbg_stack_0ddaca5d1abfb52f:Ue,__wbg_error_09919627ac0992f5:Ge,__wbindgen_object_drop_ref:Je}},Me),X=O.memory,Ke=O.run,Y=O.__wbindgen_malloc,Q=O.__wbindgen_realloc,ye=O.__wbindgen_add_to_stack_pointer,be=O.__wbindgen_free,Ve="https://raw.githubusercontent.com/calyxir/calyx/",Xe=[{name:"Sequence",file:"tests/correctness/seq.futil",root:"/",passes:["tdcc"]},{name:"Conditional",file:"tests/correctness/if.futil",root:"/",passes:["simplify-with-control","tdcc"]},{name:"Loops",file:"tests/correctness/while.futil",root:"/",passes:["simplify-with-control","tdcc"]},{name:"Invoke (call)",file:"tests/passes/compile-invoke/compile-invoke.futil",root:"/",passes:["compile-invoke"]},{name:"Parallel",file:"tests/correctness/par.futil",root:"/",passes:["tdcc"]},{name:"Externalize",file:"tests/passes/externalize.futil",root:"/",passes:["externalize"]},{name:"Minimize Regs Simple",file:"tests/passes/cell-share/simple-liveness.futil",root:"/",passes:["dead-cell-removal"]},{name:"Minimize Regs (Nested Par)",file:"tests/passes/cell-share/nested-par.futil",root:"/",passes:["dead-cell-removal"]}],H={url_prefix:Ve,examples:Xe},Ye=[{name:"well-formed",title:"Well Formed",description:"well-formed"},{name:"papercut",title:"Papercut",description:"papercut"},{name:"externalize",title:"Externalize Memories",description:"externalize"},{name:"compile-invoke",title:"Compile Invoke",description:"compile-invoke"},{name:"collapse-control",title:"Collapse Control",description:"collapse-control"},{name:"simplify-with-control",title:"Remove combinational groups",description:"tdcc"},{name:"tdcc",title:"Top Down Compile Control",description:"tdcc"},{name:"dead-cell-removal",title:"Dead Cell Removal",description:"dead-cell-removal"},{name:"dead-group-removal",title:"Dead Group Removal",description:"dead-group-removal"},{name:"go-insertion",title:"Go Insertion",description:"go-insertion"},{name:"hole-inliner",title:"Hole Inliner",description:"hole-inliner"},{name:"clk-insertion",title:"Clk Insertion",description:"clk-insertion"}],se={passes:Ye},Qe="a1a2b3ee509f94a94c7bf17ae4fbdda13ab03411",le={version:Qe};function L(){}L.prototype={diff:function(e,r){var n,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},s=t.callback;typeof t=="function"&&(s=t,t={}),this.options=t;var d=this;function l(o){return s?(setTimeout(function(){s(void 0,o)},0),!0):o}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var a=r.length,c=e.length,v=1,y=a+c;t.maxEditLength&&(y=Math.min(y,t.maxEditLength));var h=(n=t.timeout)!==null&&n!==void 0?n:1/0,k=Date.now()+h,E=[{oldPos:-1,lastComponent:void 0}],_=this.extractCommon(E[0],r,e,0);if(E[0].oldPos+1>=c&&_+1>=a)return l([{value:this.join(r),count:r.length}]);var x=-1/0,w=1/0;function F(){for(var o=Math.max(x,-v);o<=Math.min(w,v);o+=2){var u=void 0,p=E[o-1],g=E[o+1];p&&(E[o-1]=void 0);var f=!1;if(g){var b=g.oldPos-o;f=g&&0<=b&&b=c&&_+1>=a)return l(et(d,u.lastComponent,r,e,d.useLongestToken));E[o]=u,u.oldPos+1>=c&&(w=Math.min(w,o-1)),_+1>=a&&(x=Math.max(x,o+1))}v++}if(s)(function o(){setTimeout(function(){if(v>y||Date.now()>k)return s();F()||o()},0)})();else for(;v<=y&&Date.now()<=k;){var i=F();if(i)return i}},addToPath:function(e,r,n,t){var s=e.lastComponent;return s&&s.added===r&&s.removed===n?{oldPos:e.oldPos+t,lastComponent:{count:s.count+1,added:r,removed:n,previousComponent:s.previousComponent}}:{oldPos:e.oldPos+t,lastComponent:{count:1,added:r,removed:n,previousComponent:s}}},extractCommon:function(e,r,n,t){for(var s=r.length,d=n.length,l=e.oldPos,a=l-t,c=0;a+1x.length?F:x}),h.value=e.join(E)}else h.value=e.join(n.slice(v,v+h.count));v+=h.count,h.added||(y+=h.count)}}var _=d[c-1];return c>1&&typeof _.value=="string"&&(_.added||_.removed)&&e.equals("",_.value)&&(d[c-2].value+=_.value,d.pop()),d}var we=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,xe=/\S/,ke=new L;ke.equals=function(e,r){return this.options.ignoreCase&&(e=e.toLowerCase(),r=r.toLowerCase()),e===r||this.options.ignoreWhitespace&&!xe.test(e)&&!xe.test(r)},ke.tokenize=function(e){for(var r=e.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),n=0;n"u"?n:l}:t;return typeof e=="string"?e:JSON.stringify(ue(e,null,null,s),s," ")},B.equals=function(e,r){return L.prototype.equals.call(B,e.replace(/,([\r\n])/g,"$1"),r.replace(/,([\r\n])/g,"$1"))};function ue(e,r,n,t,s){r=r||[],n=n||[],t&&(e=t(s,e));var d;for(d=0;d"u")return null;if("currentScript"in document&&1<2)return document.currentScript;try{throw new Error}catch(p){var i=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(p.stack)||[])[1];if(i){var o=document.getElementsByTagName("script");for(var u in o)if(o[u].src==i)return o[u]}return null}},isActive:function(i,o,u){for(var p="no-"+o;i;){var g=i.classList;if(g.contains(o))return!0;if(g.contains(p))return!1;i=i.parentElement}return!!u}},languages:{plain:l,plaintext:l,text:l,txt:l,extend:function(i,o){var u=a.util.clone(a.languages[i]);for(var p in o)u[p]=o[p];return u},insertBefore:function(i,o,u,p){p=p||a.languages;var g=p[i],f={};for(var b in g)if(g.hasOwnProperty(b)){if(b==o)for(var m in u)u.hasOwnProperty(m)&&(f[m]=u[m]);u.hasOwnProperty(b)||(f[b]=g[b])}var A=p[i];return p[i]=f,a.languages.DFS(a.languages,function(S,j){j===A&&S!=i&&(this[S]=f)}),f},DFS:function i(o,u,p,g){g=g||{};var f=a.util.objId;for(var b in o)if(o.hasOwnProperty(b)){u.call(o,b,o[b],p||b);var m=o[b],A=a.util.type(m);A==="Object"&&!g[f(m)]?(g[f(m)]=!0,i(m,u,null,g)):A==="Array"&&!g[f(m)]&&(g[f(m)]=!0,i(m,u,b,g))}}},plugins:{},highlightAll:function(i,o){a.highlightAllUnder(document,i,o)},highlightAllUnder:function(i,o,u){var p={callback:u,container:i,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};a.hooks.run("before-highlightall",p),p.elements=Array.prototype.slice.apply(p.container.querySelectorAll(p.selector)),a.hooks.run("before-all-elements-highlight",p);for(var g=0,f;f=p.elements[g++];)a.highlightElement(f,o===!0,p.callback)},highlightElement:function(i,o,u){var p=a.util.getLanguage(i),g=a.languages[p];a.util.setLanguage(i,p);var f=i.parentElement;f&&f.nodeName.toLowerCase()==="pre"&&a.util.setLanguage(f,p);var b=i.textContent,m={element:i,language:p,grammar:g,code:b};function A(j){m.highlightedCode=j,a.hooks.run("before-insert",m),m.element.innerHTML=m.highlightedCode,a.hooks.run("after-highlight",m),a.hooks.run("complete",m),u&&u.call(m.element)}if(a.hooks.run("before-sanity-check",m),f=m.element.parentElement,f&&f.nodeName.toLowerCase()==="pre"&&!f.hasAttribute("tabindex")&&f.setAttribute("tabindex","0"),!m.code){a.hooks.run("complete",m),u&&u.call(m.element);return}if(a.hooks.run("before-highlight",m),!m.grammar){A(a.util.encode(m.code));return}if(o&&t.Worker){var S=new Worker(a.filename);S.onmessage=function(j){A(j.data)},S.postMessage(JSON.stringify({language:m.language,code:m.code,immediateClose:!0}))}else A(a.highlight(m.code,m.grammar,m.language))},highlight:function(i,o,u){var p={code:i,grammar:o,language:u};if(a.hooks.run("before-tokenize",p),!p.grammar)throw new Error('The language "'+p.language+'" has no grammar.');return p.tokens=a.tokenize(p.code,p.grammar),a.hooks.run("after-tokenize",p),c.stringify(a.util.encode(p.tokens),p.language)},tokenize:function(i,o){var u=o.rest;if(u){for(var p in u)o[p]=u[p];delete o.rest}var g=new h;return k(g,g.head,i),y(i,g,o,g.head,0),_(g)},hooks:{all:{},add:function(i,o){var u=a.hooks.all;u[i]=u[i]||[],u[i].push(o)},run:function(i,o){var u=a.hooks.all[i];if(!(!u||!u.length))for(var p=0,g;g=u[p++];)g(o)}},Token:c};t.Prism=a;function c(i,o,u,p){this.type=i,this.content=o,this.alias=u,this.length=(p||"").length|0}c.stringify=function i(o,u){if(typeof o=="string")return o;if(Array.isArray(o)){var p="";return o.forEach(function(A){p+=i(A,u)}),p}var g={type:o.type,content:i(o.content,u),tag:"span",classes:["token",o.type],attributes:{},language:u},f=o.alias;f&&(Array.isArray(f)?Array.prototype.push.apply(g.classes,f):g.classes.push(f)),a.hooks.run("wrap",g);var b="";for(var m in g.attributes)b+=" "+m+'="'+(g.attributes[m]||"").replace(/"/g,""")+'"';return"<"+g.tag+' class="'+g.classes.join(" ")+'"'+b+">"+g.content+""};function v(i,o,u,p){i.lastIndex=o;var g=i.exec(u);if(g&&p&&g[1]){var f=g[1].length;g.index+=f,g[0]=g[0].slice(f)}return g}function y(i,o,u,p,g,f){for(var b in u)if(!(!u.hasOwnProperty(b)||!u[b])){var m=u[b];m=Array.isArray(m)?m:[m];for(var A=0;A=f.reach);T+=$.value.length,$=$.next){var I=$.value;if(o.length>i.length)return;if(!(I instanceof c)){var ne=1,P;if(Te){if(P=v(Le,T,i,Pe),!P||P.index>=i.length)break;var re=P.index,mt=P.index+P[0].length,M=T;for(M+=$.value.length;re>=M;)$=$.next,M+=$.value.length;if(M-=$.value.length,T=M,$.value instanceof c)continue;for(var W=$;W!==o.tail&&(Mf.reach&&(f.reach=fe);var oe=$.prev;ge&&(oe=k(o,oe,ge),T+=ge.length),E(o,oe,ne);var ht=new c(b,j?a.tokenize(ae,j):ae,gt,ae);if($=k(o,oe,ht),je&&k(o,$,je),ne>1){var me={cause:b+","+A,reach:fe};y(i,o,u,$.prev,T,me),f&&me.reach>f.reach&&(f.reach=me.reach)}}}}}}function h(){var i={value:null,prev:null,next:null},o={value:null,prev:i,next:null};i.next=o,this.head=i,this.tail=o,this.length=0}function k(i,o,u){var p=o.next,g={value:u,prev:o,next:p};return o.next=g,p.prev=g,i.length++,g}function E(i,o,u){for(var p=o.next,g=0;g/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},n.languages.markup.tag.inside["attr-value"].inside.entity=n.languages.markup.entity,n.languages.markup.doctype.inside["internal-subset"].inside=n.languages.markup,n.hooks.add("wrap",function(t){t.type==="entity"&&(t.attributes.title=t.content.replace(/&/,"&"))}),Object.defineProperty(n.languages.markup.tag,"addInlined",{value:function(t,s){var d={};d["language-"+s]={pattern:/(^$)/i,lookbehind:!0,inside:n.languages[s]},d.cdata=/^$/i;var l={"included-cdata":{pattern://i,inside:d}};l["language-"+s]={pattern:/[\s\S]+/,inside:n.languages[s]};var a={};a[t]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return t}),"i"),lookbehind:!0,greedy:!0,inside:l},n.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(n.languages.markup.tag,"addAttribute",{value:function(t,s){n.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+t+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[s,"language-"+s],inside:n.languages[s]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),n.languages.html=n.languages.markup,n.languages.mathml=n.languages.markup,n.languages.svg=n.languages.markup,n.languages.xml=n.languages.extend("markup",{}),n.languages.ssml=n.languages.xml,n.languages.atom=n.languages.xml,n.languages.rss=n.languages.xml,function(t){var s=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;t.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+s.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+s.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+s.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+s.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:s,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},t.languages.css.atrule.inside.rest=t.languages.css;var d=t.languages.markup;d&&(d.tag.addInlined("style","css"),d.tag.addAttribute("style","css"))}(n),n.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},n.languages.javascript=n.languages.extend("clike",{"class-name":[n.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),n.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,n.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:n.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:n.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:n.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:n.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:n.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),n.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:n.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),n.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),n.languages.markup&&(n.languages.markup.tag.addInlined("script","javascript"),n.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),n.languages.js=n.languages.javascript,function(){if(typeof n>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var t="Loading\u2026",s=function(x,w){return"\u2716 Error "+x+" while fetching file: "+w},d="\u2716 Error: File does not exist or is empty",l={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},a="data-src-status",c="loading",v="loaded",y="failed",h="pre[data-src]:not(["+a+'="'+v+'"]):not(['+a+'="'+c+'"])';function k(x,w,F){var i=new XMLHttpRequest;i.open("GET",x,!0),i.onreadystatechange=function(){i.readyState==4&&(i.status<400&&i.responseText?w(i.responseText):i.status>=400?F(s(i.status,i.statusText)):F(d))},i.send(null)}function E(x){var w=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(x||"");if(w){var F=Number(w[1]),i=w[2],o=w[3];return i?o?[F,Number(o)]:[F,void 0]:[F,F]}}n.hooks.add("before-highlightall",function(x){x.selector+=", "+h}),n.hooks.add("before-sanity-check",function(x){var w=x.element;if(w.matches(h)){x.code="",w.setAttribute(a,c);var F=w.appendChild(document.createElement("CODE"));F.textContent=t;var i=w.getAttribute("data-src"),o=x.language;if(o==="none"){var u=(/\.(\w+)$/.exec(i)||[,"none"])[1];o=l[u]||u}n.util.setLanguage(F,o),n.util.setLanguage(w,o);var p=n.plugins.autoloader;p&&p.loadLanguages(o),k(i,function(g){w.setAttribute(a,v);var f=E(w.getAttribute("data-range"));if(f){var b=g.split(/\r\n?|\n/g),m=f[0],A=f[1]==null?b.length:f[1];m<0&&(m+=b.length),m=Math.max(0,Math.min(m-1,b.length)),A<0&&(A+=b.length),A=Math.max(0,Math.min(A,b.length)),g=b.slice(m,A).join(` -`),w.hasAttribute("data-start")||w.setAttribute("data-start",String(m+1))}F.textContent=g,n.highlightElement(F)},function(g){w.setAttribute(a,y),F.textContent=g})}}),n.plugins.fileHighlight={highlight:function(x){for(var w=(x||document).querySelectorAll(h),F=0,i;i=w[F++];)n.highlightElement(i)}};var _=!1;n.fileHighlight=function(){_||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),_=!0),n.plugins.fileHighlight.highlight.apply(this,arguments)}}()})(Ee);var ot=Ee.exports;const R=at(ot);R.languages.futil={"diff-addition":{pattern:/^\+.*$/m},"diff-deletion":{pattern:/^-.*$/m},comment:R.languages.clike.comment,string:{pattern:/(["])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},namespace:{pattern:/\b(?:extern|component|primitive)\b/,lookbehind:!0},function:{pattern:/\b(?:cells|wires|control|group|comb)\b/,lookbehind:!0},keyword:{pattern:/\b(?:|seq|par|if|while|with|invoke)\b/,lookbehind:!0},number:[{pattern:/\b[0-9]+'b[0-1]+\b/},{pattern:/\b[0-9]+'d[0-9]+\b/},{pattern:/\b[0-9]+'x[0-9A-Fa-f]+\b/},{pattern:/\b[0-9]+'o[0-7]+\b/},{pattern:/\b(?:[0-9]+)(?!')\b/}]},function(){typeof Prism>"u"||typeof document>"u"||!document.createRange||(Prism.plugins.KeepMarkup=!0,Prism.hooks.add("before-highlight",function(e){if(!e.element.children.length||!Prism.util.isActive(e.element,"keep-markup",!0))return;var r=Prism.util.isActive(e.element,"drop-tokens",!1);function n(a){return!(r&&a.nodeName.toLowerCase()==="span"&&a.classList.contains("token"))}var t=0,s=[];function d(a){if(!n(a)){l(a);return}var c={element:a,posOpen:t};s.push(c),l(a),c.posClose=t}function l(a){for(var c=0,v=a.childNodes.length;ct.node.posOpen&&(t.nodeStart=l,t.nodeStartPos=t.node.posOpen-t.pos),t.nodeStart&&t.pos+l.data.length>=t.node.posClose&&(t.nodeEnd=l,t.nodeEndPos=t.node.posClose-t.pos),t.pos+=l.data.length);if(t.nodeStart&&t.nodeEnd){var a=document.createRange();return a.setStart(t.nodeStart,t.nodeStartPos),a.setEnd(t.nodeEnd,t.nodeEndPos),t.node.element.innerHTML="",t.node.element.appendChild(a.extractContents()),a.insertNode(t.node.element),a.detach(),!1}}return!0};e.keepMarkup.forEach(function(n){r(e.element,{node:n,pos:0})}),e.highlightedCode=e.element.innerHTML}}))}(),function(){if(typeof Prism>"u"||typeof document>"u")return;var e="line-numbers",r=/\n(?!$)/g,n=Prism.plugins.lineNumbers={getLine:function(l,a){if(!(l.tagName!=="PRE"||!l.classList.contains(e))){var c=l.querySelector(".line-numbers-rows");if(c){var v=parseInt(l.getAttribute("data-start"),10)||1,y=v+(c.children.length-1);ay&&(a=y);var h=a-v;return c.children[h]}}},resize:function(l){t([l])},assumeViewportIndependence:!0};function t(l){if(l=l.filter(function(c){var v=s(c),y=v["white-space"];return y==="pre-wrap"||y==="pre-line"}),l.length!=0){var a=l.map(function(c){var v=c.querySelector("code"),y=c.querySelector(".line-numbers-rows");if(!(!v||!y)){var h=c.querySelector(".line-numbers-sizer"),k=v.textContent.split(r);h||(h=document.createElement("span"),h.className="line-numbers-sizer",v.appendChild(h)),h.innerHTML="0",h.style.display="block";var E=h.getBoundingClientRect().height;return h.innerHTML="",{element:c,lines:k,lineHeights:[],oneLinerHeight:E,sizer:h}}}).filter(Boolean);a.forEach(function(c){var v=c.sizer,y=c.lines,h=c.lineHeights,k=c.oneLinerHeight;h[y.length-1]=void 0,y.forEach(function(E,_){if(E&&E.length>1){var x=v.appendChild(document.createElement("span"));x.style.display="block",x.textContent=E}else h[_]=k})}),a.forEach(function(c){for(var v=c.sizer,y=c.lineHeights,h=0,k=0;k");h=document.createElement("span"),h.setAttribute("aria-hidden","true"),h.className="line-numbers-rows",h.innerHTML=k,c.hasAttribute("data-start")&&(c.style.counterReset="linenumber "+(parseInt(c.getAttribute("data-start"),10)-1)),l.element.appendChild(h),t([c]),Prism.hooks.run("line-numbers",l)}}}),Prism.hooks.add("line-numbers",function(l){l.plugins=l.plugins||{},l.plugins.lineNumbers=!0})}();var de={},D={};H.url_prefix=H.url_prefix+le.version;function _e(e,r){e.active=r,r?e.button.classList.replace("off","on"):e.button.classList.replace("on","off")}function it(e){let r=document.createElement("button");return r.classList.add("toggle"),r.classList.add("off"),r.innerHTML=e.title,r.onclick=function(){_e(e,!e.active)},r}const st=document.getElementById("passes");for(let e of se.passes){let r=it(e);e.button=r,st.appendChild(r)}function lt(){return se.passes.filter(e=>e.active).map(e=>e.name)}function ut(e){if("passes"in e)for(let r of se.passes)_e(r,e.passes.includes(r.name))}document.getElementById("compile").onclick=function(){ct()};function ct(){let e=lt(),r=D.libraries.map(l=>l.code).join(` -`);var n=Re(e,r,D.code);const t=document.getElementById("diffEditor"),s=t.querySelector("#input"),d=t.querySelector("#output");d.innerHTML=n,R.highlightElement(s),R.highlightElement(d)}async function dt(e,r){if(e in de)return await de[e];{let n=`${H.url_prefix}${r}${e}`,t=await(await fetch(n)).text();if(/import/g.test(t)){let s=e.split("/").slice(0,-1).join("/"),d=Array.from(t.matchAll(/import "(.*)";/g)).map(c=>c[1]),l=await Se(d,`${r}/${s}/`),a=/import "(.*)";/g;t=t.replaceAll(a,"");for(let c of l)t+=c.code}return de[e]=t,t}}async function Se(e,r){let n=e.map(async function(t){let s=await dt(t,r);return{name:t,code:s}});return await Promise.all(n)}const $e=document.getElementById("input");$e.oninput=function(){D.code=$e.innerText};const te=document.getElementById("examples-select");for(let e of H.examples){let r=document.createElement("option");r.text=e.name,r.value=JSON.stringify(e),te.add(r)}async function pt(e,r){let n=`${H.url_prefix}${r}${e}`,t=await(await fetch(n)).text(),s=/import "(.*)";/g,d=Array.from(t.matchAll(s)).map(a=>a[1]),l=await Se(d,r);return t=t.replaceAll(s,""),{code:t.trim(),libraries:l}}te.onchange=function(){const e=document.getElementById("input"),r=document.getElementById("output");e.innerHTML="loading...",r.innerHTML="Compile `compile` to generate output.";let n=JSON.parse(te.value);pt(n.file,n.root).then(t=>D=t).then(()=>{e.innerHTML=D.code;const t=document.getElementById("diffEditor").querySelector("#input");R.highlightElement(t)}).then(()=>ut(n))},te.onchange();const Ce=document.getElementById("calyx-version"),pe=document.createElement("a");pe.appendChild(document.createTextNode(le.version.slice(0,8))),pe.href="https://github.com/calyxir/calyx/tree/"+le.version,Ce.appendChild(document.createTextNode("Built with Calyx version ")),Ce.appendChild(pe)})(); +(async()=>{(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const t of document.querySelectorAll('link[rel="modulepreload"]'))n(t);new MutationObserver(t=>{for(const s of t)if(s.type==="childList")for(const d of s.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&n(d)}).observe(document,{childList:!0,subtree:!0});function r(t){const s={};return t.integrity&&(s.integrity=t.integrity),t.referrerPolicy&&(s.referrerPolicy=t.referrerPolicy),t.crossOrigin==="use-credentials"?s.credentials="include":t.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(t){if(t.ep)return;t.ep=!0;const s=r(t);fetch(t.href,s)}})();const Me=""+new URL("calyx_web_bg-cUoSDG40.wasm",import.meta.url).href,ze=async(e={},r)=>{let n;if(r.startsWith("data:")){const t=r.replace(/^data:.*?base64,/,"");let s;if(typeof Buffer=="function"&&typeof Buffer.from=="function")s=Buffer.from(t,"base64");else if(typeof atob=="function"){const d=atob(t);s=new Uint8Array(d.length);for(let l=0;l"u"?(0,module.require)("util").TextEncoder:TextEncoder;let G=new Ne("utf-8");const Oe=typeof G.encodeInto=="function"?function(e,r){return G.encodeInto(e,r)}:function(e,r){const n=G.encode(e);return r.set(n),{read:e.length,written:n.length}};function J(e,r,n){if(n===void 0){const a=G.encode(e),c=r(a.length);return Z().subarray(c,c+a.length).set(a),z=a.length,c}let t=e.length,s=r(t);const d=Z();let l=0;for(;l127)break;d[s+l]=a}if(l!==t){l!==0&&(e=e.slice(l)),s=n(s,t,t=l+e.length*3);const a=Z().subarray(s+l,s+t),c=Oe(e,a);l+=c.written}return z=l,s}let K=null;function N(){return(K===null||K.buffer!==X.buffer)&&(K=new Int32Array(X.buffer)),K}let q=C.length;function Ie(e){e<36||(C[e]=q,q=e)}function qe(e){const r=ie(e);return Ie(e),r}let V=32;function He(e){if(V==1)throw new Error("out of js stack");return C[--V]=e,V}const Be=typeof TextDecoder>"u"?(0,module.require)("util").TextDecoder:TextDecoder;let he=new Be("utf-8",{ignoreBOM:!0,fatal:!0});he.decode();function ve(e,r){return he.decode(Z().subarray(e,e+r))}function Re(e,r,n){try{const d=ye(-16),l=J(r,Y,Q),a=z,c=J(n,Y,Q),v=z;Ke(d,He(e),l,a,c,v);var t=N()[d/4+0],s=N()[d/4+1];return ve(t,s)}finally{ye(16),C[V++]=void 0,be(t,s)}}function We(e){q===C.length&&C.push(C.length+1);const r=q;return q=C[r],C[r]=e,r}function De(e,r){const n=ie(r),t=JSON.stringify(n===void 0?null:n),s=J(t,Y,Q),d=z;N()[e/4+1]=d,N()[e/4+0]=s}function Ue(){const e=new Error;return We(e)}function Ze(e,r){const n=ie(r).stack,t=J(n,Y,Q),s=z;N()[e/4+1]=s,N()[e/4+0]=t}function Ge(e,r){try{console.error(ve(e,r))}finally{be(e,r)}}function Je(e){qe(e)}URL=globalThis.URL;const O=await ze({"./calyx_web_bg.js":{__wbindgen_json_serialize:De,__wbg_new_693216e109162396:Ue,__wbg_stack_0ddaca5d1abfb52f:Ze,__wbg_error_09919627ac0992f5:Ge,__wbindgen_object_drop_ref:Je}},Me),X=O.memory,Ke=O.run,Y=O.__wbindgen_malloc,Q=O.__wbindgen_realloc,ye=O.__wbindgen_add_to_stack_pointer,be=O.__wbindgen_free,Ve="https://raw.githubusercontent.com/calyxir/calyx/",Xe=[{name:"Sequence",file:"tests/correctness/seq.futil",root:"/",passes:["tdcc"]},{name:"Conditional",file:"tests/correctness/if.futil",root:"/",passes:["simplify-with-control","tdcc"]},{name:"Loops",file:"tests/correctness/while.futil",root:"/",passes:["simplify-with-control","tdcc"]},{name:"Invoke (call)",file:"tests/passes/compile-invoke/compile-invoke.futil",root:"/",passes:["compile-invoke"]},{name:"Parallel",file:"tests/correctness/par.futil",root:"/",passes:["tdcc"]},{name:"Externalize",file:"tests/passes/externalize.futil",root:"/",passes:["externalize"]},{name:"Minimize Regs Simple",file:"tests/passes/cell-share/simple-liveness.futil",root:"/",passes:["dead-cell-removal"]},{name:"Minimize Regs (Nested Par)",file:"tests/passes/cell-share/nested-par.futil",root:"/",passes:["dead-cell-removal"]}],H={url_prefix:Ve,examples:Xe},Ye=[{name:"well-formed",title:"Well Formed",description:"well-formed"},{name:"papercut",title:"Papercut",description:"papercut"},{name:"externalize",title:"Externalize Memories",description:"externalize"},{name:"compile-invoke",title:"Compile Invoke",description:"compile-invoke"},{name:"collapse-control",title:"Collapse Control",description:"collapse-control"},{name:"simplify-with-control",title:"Remove combinational groups",description:"tdcc"},{name:"tdcc",title:"Top Down Compile Control",description:"tdcc"},{name:"dead-cell-removal",title:"Dead Cell Removal",description:"dead-cell-removal"},{name:"dead-group-removal",title:"Dead Group Removal",description:"dead-group-removal"},{name:"go-insertion",title:"Go Insertion",description:"go-insertion"},{name:"hole-inliner",title:"Hole Inliner",description:"hole-inliner"},{name:"clk-insertion",title:"Clk Insertion",description:"clk-insertion"}],se={passes:Ye},Qe="ce58e29edde57989ca800ce51d43429e36b7e403",le={version:Qe};function L(){}L.prototype={diff:function(e,r){var n,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},s=t.callback;typeof t=="function"&&(s=t,t={}),this.options=t;var d=this;function l(o){return s?(setTimeout(function(){s(void 0,o)},0),!0):o}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var a=r.length,c=e.length,v=1,y=a+c;t.maxEditLength&&(y=Math.min(y,t.maxEditLength));var h=(n=t.timeout)!==null&&n!==void 0?n:1/0,k=Date.now()+h,E=[{oldPos:-1,lastComponent:void 0}],_=this.extractCommon(E[0],r,e,0);if(E[0].oldPos+1>=c&&_+1>=a)return l([{value:this.join(r),count:r.length}]);var x=-1/0,w=1/0;function F(){for(var o=Math.max(x,-v);o<=Math.min(w,v);o+=2){var u=void 0,p=E[o-1],g=E[o+1];p&&(E[o-1]=void 0);var f=!1;if(g){var b=g.oldPos-o;f=g&&0<=b&&b=c&&_+1>=a)return l(et(d,u.lastComponent,r,e,d.useLongestToken));E[o]=u,u.oldPos+1>=c&&(w=Math.min(w,o-1)),_+1>=a&&(x=Math.max(x,o+1))}v++}if(s)(function o(){setTimeout(function(){if(v>y||Date.now()>k)return s();F()||o()},0)})();else for(;v<=y&&Date.now()<=k;){var i=F();if(i)return i}},addToPath:function(e,r,n,t){var s=e.lastComponent;return s&&s.added===r&&s.removed===n?{oldPos:e.oldPos+t,lastComponent:{count:s.count+1,added:r,removed:n,previousComponent:s.previousComponent}}:{oldPos:e.oldPos+t,lastComponent:{count:1,added:r,removed:n,previousComponent:s}}},extractCommon:function(e,r,n,t){for(var s=r.length,d=n.length,l=e.oldPos,a=l-t,c=0;a+1x.length?F:x}),h.value=e.join(E)}else h.value=e.join(n.slice(v,v+h.count));v+=h.count,h.added||(y+=h.count)}}var _=d[c-1];return c>1&&typeof _.value=="string"&&(_.added||_.removed)&&e.equals("",_.value)&&(d[c-2].value+=_.value,d.pop()),d}var we=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,xe=/\S/,ke=new L;ke.equals=function(e,r){return this.options.ignoreCase&&(e=e.toLowerCase(),r=r.toLowerCase()),e===r||this.options.ignoreWhitespace&&!xe.test(e)&&!xe.test(r)},ke.tokenize=function(e){for(var r=e.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),n=0;n"u"?n:l}:t;return typeof e=="string"?e:JSON.stringify(ue(e,null,null,s),s," ")},B.equals=function(e,r){return L.prototype.equals.call(B,e.replace(/,([\r\n])/g,"$1"),r.replace(/,([\r\n])/g,"$1"))};function ue(e,r,n,t,s){r=r||[],n=n||[],t&&(e=t(s,e));var d;for(d=0;d"u")return null;if("currentScript"in document&&1<2)return document.currentScript;try{throw new Error}catch(p){var i=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(p.stack)||[])[1];if(i){var o=document.getElementsByTagName("script");for(var u in o)if(o[u].src==i)return o[u]}return null}},isActive:function(i,o,u){for(var p="no-"+o;i;){var g=i.classList;if(g.contains(o))return!0;if(g.contains(p))return!1;i=i.parentElement}return!!u}},languages:{plain:l,plaintext:l,text:l,txt:l,extend:function(i,o){var u=a.util.clone(a.languages[i]);for(var p in o)u[p]=o[p];return u},insertBefore:function(i,o,u,p){p=p||a.languages;var g=p[i],f={};for(var b in g)if(g.hasOwnProperty(b)){if(b==o)for(var m in u)u.hasOwnProperty(m)&&(f[m]=u[m]);u.hasOwnProperty(b)||(f[b]=g[b])}var A=p[i];return p[i]=f,a.languages.DFS(a.languages,function(S,j){j===A&&S!=i&&(this[S]=f)}),f},DFS:function i(o,u,p,g){g=g||{};var f=a.util.objId;for(var b in o)if(o.hasOwnProperty(b)){u.call(o,b,o[b],p||b);var m=o[b],A=a.util.type(m);A==="Object"&&!g[f(m)]?(g[f(m)]=!0,i(m,u,null,g)):A==="Array"&&!g[f(m)]&&(g[f(m)]=!0,i(m,u,b,g))}}},plugins:{},highlightAll:function(i,o){a.highlightAllUnder(document,i,o)},highlightAllUnder:function(i,o,u){var p={callback:u,container:i,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};a.hooks.run("before-highlightall",p),p.elements=Array.prototype.slice.apply(p.container.querySelectorAll(p.selector)),a.hooks.run("before-all-elements-highlight",p);for(var g=0,f;f=p.elements[g++];)a.highlightElement(f,o===!0,p.callback)},highlightElement:function(i,o,u){var p=a.util.getLanguage(i),g=a.languages[p];a.util.setLanguage(i,p);var f=i.parentElement;f&&f.nodeName.toLowerCase()==="pre"&&a.util.setLanguage(f,p);var b=i.textContent,m={element:i,language:p,grammar:g,code:b};function A(j){m.highlightedCode=j,a.hooks.run("before-insert",m),m.element.innerHTML=m.highlightedCode,a.hooks.run("after-highlight",m),a.hooks.run("complete",m),u&&u.call(m.element)}if(a.hooks.run("before-sanity-check",m),f=m.element.parentElement,f&&f.nodeName.toLowerCase()==="pre"&&!f.hasAttribute("tabindex")&&f.setAttribute("tabindex","0"),!m.code){a.hooks.run("complete",m),u&&u.call(m.element);return}if(a.hooks.run("before-highlight",m),!m.grammar){A(a.util.encode(m.code));return}if(o&&t.Worker){var S=new Worker(a.filename);S.onmessage=function(j){A(j.data)},S.postMessage(JSON.stringify({language:m.language,code:m.code,immediateClose:!0}))}else A(a.highlight(m.code,m.grammar,m.language))},highlight:function(i,o,u){var p={code:i,grammar:o,language:u};if(a.hooks.run("before-tokenize",p),!p.grammar)throw new Error('The language "'+p.language+'" has no grammar.');return p.tokens=a.tokenize(p.code,p.grammar),a.hooks.run("after-tokenize",p),c.stringify(a.util.encode(p.tokens),p.language)},tokenize:function(i,o){var u=o.rest;if(u){for(var p in u)o[p]=u[p];delete o.rest}var g=new h;return k(g,g.head,i),y(i,g,o,g.head,0),_(g)},hooks:{all:{},add:function(i,o){var u=a.hooks.all;u[i]=u[i]||[],u[i].push(o)},run:function(i,o){var u=a.hooks.all[i];if(!(!u||!u.length))for(var p=0,g;g=u[p++];)g(o)}},Token:c};t.Prism=a;function c(i,o,u,p){this.type=i,this.content=o,this.alias=u,this.length=(p||"").length|0}c.stringify=function i(o,u){if(typeof o=="string")return o;if(Array.isArray(o)){var p="";return o.forEach(function(A){p+=i(A,u)}),p}var g={type:o.type,content:i(o.content,u),tag:"span",classes:["token",o.type],attributes:{},language:u},f=o.alias;f&&(Array.isArray(f)?Array.prototype.push.apply(g.classes,f):g.classes.push(f)),a.hooks.run("wrap",g);var b="";for(var m in g.attributes)b+=" "+m+'="'+(g.attributes[m]||"").replace(/"/g,""")+'"';return"<"+g.tag+' class="'+g.classes.join(" ")+'"'+b+">"+g.content+""};function v(i,o,u,p){i.lastIndex=o;var g=i.exec(u);if(g&&p&&g[1]){var f=g[1].length;g.index+=f,g[0]=g[0].slice(f)}return g}function y(i,o,u,p,g,f){for(var b in u)if(!(!u.hasOwnProperty(b)||!u[b])){var m=u[b];m=Array.isArray(m)?m:[m];for(var A=0;A=f.reach);T+=$.value.length,$=$.next){var I=$.value;if(o.length>i.length)return;if(!(I instanceof c)){var ne=1,P;if(Te){if(P=v(Le,T,i,Pe),!P||P.index>=i.length)break;var re=P.index,mt=P.index+P[0].length,M=T;for(M+=$.value.length;re>=M;)$=$.next,M+=$.value.length;if(M-=$.value.length,T=M,$.value instanceof c)continue;for(var D=$;D!==o.tail&&(Mf.reach&&(f.reach=fe);var oe=$.prev;ge&&(oe=k(o,oe,ge),T+=ge.length),E(o,oe,ne);var ht=new c(b,j?a.tokenize(ae,j):ae,gt,ae);if($=k(o,oe,ht),je&&k(o,$,je),ne>1){var me={cause:b+","+A,reach:fe};y(i,o,u,$.prev,T,me),f&&me.reach>f.reach&&(f.reach=me.reach)}}}}}}function h(){var i={value:null,prev:null,next:null},o={value:null,prev:i,next:null};i.next=o,this.head=i,this.tail=o,this.length=0}function k(i,o,u){var p=o.next,g={value:u,prev:o,next:p};return o.next=g,p.prev=g,i.length++,g}function E(i,o,u){for(var p=o.next,g=0;g/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},n.languages.markup.tag.inside["attr-value"].inside.entity=n.languages.markup.entity,n.languages.markup.doctype.inside["internal-subset"].inside=n.languages.markup,n.hooks.add("wrap",function(t){t.type==="entity"&&(t.attributes.title=t.content.replace(/&/,"&"))}),Object.defineProperty(n.languages.markup.tag,"addInlined",{value:function(t,s){var d={};d["language-"+s]={pattern:/(^$)/i,lookbehind:!0,inside:n.languages[s]},d.cdata=/^$/i;var l={"included-cdata":{pattern://i,inside:d}};l["language-"+s]={pattern:/[\s\S]+/,inside:n.languages[s]};var a={};a[t]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return t}),"i"),lookbehind:!0,greedy:!0,inside:l},n.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(n.languages.markup.tag,"addAttribute",{value:function(t,s){n.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+t+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[s,"language-"+s],inside:n.languages[s]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),n.languages.html=n.languages.markup,n.languages.mathml=n.languages.markup,n.languages.svg=n.languages.markup,n.languages.xml=n.languages.extend("markup",{}),n.languages.ssml=n.languages.xml,n.languages.atom=n.languages.xml,n.languages.rss=n.languages.xml,function(t){var s=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;t.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+s.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+s.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+s.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+s.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:s,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},t.languages.css.atrule.inside.rest=t.languages.css;var d=t.languages.markup;d&&(d.tag.addInlined("style","css"),d.tag.addAttribute("style","css"))}(n),n.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},n.languages.javascript=n.languages.extend("clike",{"class-name":[n.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),n.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,n.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:n.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:n.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:n.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:n.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:n.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),n.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:n.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),n.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),n.languages.markup&&(n.languages.markup.tag.addInlined("script","javascript"),n.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),n.languages.js=n.languages.javascript,function(){if(typeof n>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var t="Loading\u2026",s=function(x,w){return"\u2716 Error "+x+" while fetching file: "+w},d="\u2716 Error: File does not exist or is empty",l={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},a="data-src-status",c="loading",v="loaded",y="failed",h="pre[data-src]:not(["+a+'="'+v+'"]):not(['+a+'="'+c+'"])';function k(x,w,F){var i=new XMLHttpRequest;i.open("GET",x,!0),i.onreadystatechange=function(){i.readyState==4&&(i.status<400&&i.responseText?w(i.responseText):i.status>=400?F(s(i.status,i.statusText)):F(d))},i.send(null)}function E(x){var w=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(x||"");if(w){var F=Number(w[1]),i=w[2],o=w[3];return i?o?[F,Number(o)]:[F,void 0]:[F,F]}}n.hooks.add("before-highlightall",function(x){x.selector+=", "+h}),n.hooks.add("before-sanity-check",function(x){var w=x.element;if(w.matches(h)){x.code="",w.setAttribute(a,c);var F=w.appendChild(document.createElement("CODE"));F.textContent=t;var i=w.getAttribute("data-src"),o=x.language;if(o==="none"){var u=(/\.(\w+)$/.exec(i)||[,"none"])[1];o=l[u]||u}n.util.setLanguage(F,o),n.util.setLanguage(w,o);var p=n.plugins.autoloader;p&&p.loadLanguages(o),k(i,function(g){w.setAttribute(a,v);var f=E(w.getAttribute("data-range"));if(f){var b=g.split(/\r\n?|\n/g),m=f[0],A=f[1]==null?b.length:f[1];m<0&&(m+=b.length),m=Math.max(0,Math.min(m-1,b.length)),A<0&&(A+=b.length),A=Math.max(0,Math.min(A,b.length)),g=b.slice(m,A).join(` +`),w.hasAttribute("data-start")||w.setAttribute("data-start",String(m+1))}F.textContent=g,n.highlightElement(F)},function(g){w.setAttribute(a,y),F.textContent=g})}}),n.plugins.fileHighlight={highlight:function(x){for(var w=(x||document).querySelectorAll(h),F=0,i;i=w[F++];)n.highlightElement(i)}};var _=!1;n.fileHighlight=function(){_||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),_=!0),n.plugins.fileHighlight.highlight.apply(this,arguments)}}()})(Ee);var ot=Ee.exports;const R=at(ot);R.languages.futil={"diff-addition":{pattern:/^\+.*$/m},"diff-deletion":{pattern:/^-.*$/m},comment:R.languages.clike.comment,string:{pattern:/(["])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},namespace:{pattern:/\b(?:extern|component|primitive)\b/,lookbehind:!0},function:{pattern:/\b(?:cells|wires|control|group|comb)\b/,lookbehind:!0},keyword:{pattern:/\b(?:|seq|par|if|while|with|invoke)\b/,lookbehind:!0},number:[{pattern:/\b[0-9]+'b[0-1]+\b/},{pattern:/\b[0-9]+'d[0-9]+\b/},{pattern:/\b[0-9]+'x[0-9A-Fa-f]+\b/},{pattern:/\b[0-9]+'o[0-7]+\b/},{pattern:/\b(?:[0-9]+)(?!')\b/}]},function(){typeof Prism>"u"||typeof document>"u"||!document.createRange||(Prism.plugins.KeepMarkup=!0,Prism.hooks.add("before-highlight",function(e){if(!e.element.children.length||!Prism.util.isActive(e.element,"keep-markup",!0))return;var r=Prism.util.isActive(e.element,"drop-tokens",!1);function n(a){return!(r&&a.nodeName.toLowerCase()==="span"&&a.classList.contains("token"))}var t=0,s=[];function d(a){if(!n(a)){l(a);return}var c={element:a,posOpen:t};s.push(c),l(a),c.posClose=t}function l(a){for(var c=0,v=a.childNodes.length;ct.node.posOpen&&(t.nodeStart=l,t.nodeStartPos=t.node.posOpen-t.pos),t.nodeStart&&t.pos+l.data.length>=t.node.posClose&&(t.nodeEnd=l,t.nodeEndPos=t.node.posClose-t.pos),t.pos+=l.data.length);if(t.nodeStart&&t.nodeEnd){var a=document.createRange();return a.setStart(t.nodeStart,t.nodeStartPos),a.setEnd(t.nodeEnd,t.nodeEndPos),t.node.element.innerHTML="",t.node.element.appendChild(a.extractContents()),a.insertNode(t.node.element),a.detach(),!1}}return!0};e.keepMarkup.forEach(function(n){r(e.element,{node:n,pos:0})}),e.highlightedCode=e.element.innerHTML}}))}(),function(){if(typeof Prism>"u"||typeof document>"u")return;var e="line-numbers",r=/\n(?!$)/g,n=Prism.plugins.lineNumbers={getLine:function(l,a){if(!(l.tagName!=="PRE"||!l.classList.contains(e))){var c=l.querySelector(".line-numbers-rows");if(c){var v=parseInt(l.getAttribute("data-start"),10)||1,y=v+(c.children.length-1);ay&&(a=y);var h=a-v;return c.children[h]}}},resize:function(l){t([l])},assumeViewportIndependence:!0};function t(l){if(l=l.filter(function(c){var v=s(c),y=v["white-space"];return y==="pre-wrap"||y==="pre-line"}),l.length!=0){var a=l.map(function(c){var v=c.querySelector("code"),y=c.querySelector(".line-numbers-rows");if(!(!v||!y)){var h=c.querySelector(".line-numbers-sizer"),k=v.textContent.split(r);h||(h=document.createElement("span"),h.className="line-numbers-sizer",v.appendChild(h)),h.innerHTML="0",h.style.display="block";var E=h.getBoundingClientRect().height;return h.innerHTML="",{element:c,lines:k,lineHeights:[],oneLinerHeight:E,sizer:h}}}).filter(Boolean);a.forEach(function(c){var v=c.sizer,y=c.lines,h=c.lineHeights,k=c.oneLinerHeight;h[y.length-1]=void 0,y.forEach(function(E,_){if(E&&E.length>1){var x=v.appendChild(document.createElement("span"));x.style.display="block",x.textContent=E}else h[_]=k})}),a.forEach(function(c){for(var v=c.sizer,y=c.lineHeights,h=0,k=0;k");h=document.createElement("span"),h.setAttribute("aria-hidden","true"),h.className="line-numbers-rows",h.innerHTML=k,c.hasAttribute("data-start")&&(c.style.counterReset="linenumber "+(parseInt(c.getAttribute("data-start"),10)-1)),l.element.appendChild(h),t([c]),Prism.hooks.run("line-numbers",l)}}}),Prism.hooks.add("line-numbers",function(l){l.plugins=l.plugins||{},l.plugins.lineNumbers=!0})}();var de={},W={};H.url_prefix=H.url_prefix+le.version;function _e(e,r){e.active=r,r?e.button.classList.replace("off","on"):e.button.classList.replace("on","off")}function it(e){let r=document.createElement("button");return r.classList.add("toggle"),r.classList.add("off"),r.innerHTML=e.title,r.onclick=function(){_e(e,!e.active)},r}const st=document.getElementById("passes");for(let e of se.passes){let r=it(e);e.button=r,st.appendChild(r)}function lt(){return se.passes.filter(e=>e.active).map(e=>e.name)}function ut(e){if("passes"in e)for(let r of se.passes)_e(r,e.passes.includes(r.name))}document.getElementById("compile").onclick=function(){ct()};function ct(){let e=lt(),r=W.libraries.map(l=>l.code).join(` +`);var n=Re(e,r,W.code);const t=document.getElementById("diffEditor"),s=t.querySelector("#input"),d=t.querySelector("#output");d.innerHTML=n,R.highlightElement(s),R.highlightElement(d)}async function dt(e,r){if(e in de)return await de[e];{let n=`${H.url_prefix}${r}${e}`,t=await(await fetch(n)).text();if(/import/g.test(t)){let s=e.split("/").slice(0,-1).join("/"),d=Array.from(t.matchAll(/import "(.*)";/g)).map(c=>c[1]),l=await Se(d,`${r}/${s}/`),a=/import "(.*)";/g;t=t.replaceAll(a,"");for(let c of l)t+=c.code}return de[e]=t,t}}async function Se(e,r){let n=e.map(async function(t){let s=await dt(t,r);return{name:t,code:s}});return await Promise.all(n)}const $e=document.getElementById("input");$e.oninput=function(){W.code=$e.innerText};const te=document.getElementById("examples-select");for(let e of H.examples){let r=document.createElement("option");r.text=e.name,r.value=JSON.stringify(e),te.add(r)}async function pt(e,r){let n=`${H.url_prefix}${r}${e}`,t=await(await fetch(n)).text(),s=/import "(.*)";/g,d=Array.from(t.matchAll(s)).map(a=>a[1]),l=await Se(d,r);return t=t.replaceAll(s,""),{code:t.trim(),libraries:l}}te.onchange=function(){const e=document.getElementById("input"),r=document.getElementById("output");e.innerHTML="loading...",r.innerHTML="Compile `compile` to generate output.";let n=JSON.parse(te.value);pt(n.file,n.root).then(t=>W=t).then(()=>{e.innerHTML=W.code;const t=document.getElementById("diffEditor").querySelector("#input");R.highlightElement(t)}).then(()=>ut(n))},te.onchange();const Ce=document.getElementById("calyx-version"),pe=document.createElement("a");pe.appendChild(document.createTextNode(le.version.slice(0,8))),pe.href="https://github.com/calyxir/calyx/tree/"+le.version,Ce.appendChild(document.createTextNode("Built with Calyx version ")),Ce.appendChild(pe)})(); diff --git a/index.html b/index.html index 43a413cb4..a0a710292 100644 --- a/index.html +++ b/index.html @@ -9,7 +9,7 @@ - +