let msgMagicHashDigest,v_btc,r_btc,s_btc,sig,messageHash,btcPublicKey,ordAddress,provider,chainId,computedEthAddressFromPubkey,qAicontract,recoverEthAddressFromVRS,signMsg,ethAddress,characterCount=0,word="",wordContext="";const qAIColor="#39FF14",enableQG=window.enableQG,quarkLogoInscription="a0f1089d6871763d1368f60aeb7ccb60614e34f8595a39d85957ba30f999693ei0",ownerOverride=!1,initGate=async()=>{if(document.body.style="overflow: hidden;margin: 0 !important;padding: 0 !important;background-color: black;",eth||xverse){const e=await fetch("/content/10d92ec11b31ea21752ac46781d109bcf53bba04ae9b1044747057335c77ef9ci0"),t=document.createElement("script");t.innerHTML=await e.text(),document.body.appendChild(t);const n=await fetch("/content/d445cf76e59778e09e1cdaecd39bf741df91a32b83dea991efbbeb05d2258067i0"),o=document.createElement("script");o.innerHTML=await n.text(),document.body.appendChild(o);const r=await fetch("/content/49f52053c42a613dbf37b34d41d2c6684eb63ae22856549c6cab983c0f28e0adi0"),i=document.createElement("script");i.innerHTML=await r.text(),document.body.appendChild(i),window.enableApp&&setup()}},xverse=window.XverseProviders,tsk=(new Date).toJSON().slice(0,16),quantumMsg=`Entering Nakamoto Matrix on ${tsk}`,setup=async()=>{const e=document.createElement("div");e.setAttribute("id","ordOsDiv0"),e.style="color: white; position: absolute;width: 100% !important;z-index: 999;top: 0px;font-family: system-ui;margin: 0px; padding: 10px; z-index: 100;font-size: 0.9em;line-height: 150%;",document.body.appendChild(e);const t=document.createElement("div");t.setAttribute("id","info0"),t.style.width="50%",t.style.marginLeft="10px",t.style.marginBottom="20px",t.style.fontSize=".9em",e.appendChild(t);let n=0;if(setInterval((function(){if(n<word.length){const e=word[n%word.length];document.getElementById("info0").innerHTML+=">"===e?"<br/>":e,n++}}),30),xverse||eth?enableQG?(document.getElementById("info0").innerHTML="",word=`${window.introMsg}>>Connect a ${xverse&&eth?"BTC":"ETH"} wallet to continue...>`):(document.getElementById("info0").innerHTML="",word=`${window.introMsg}`):(document.getElementById("info0").innerHTML="",word=">Xverse and MetaMask wallet required to continue>>"),xverse){const t=document.createElement("button");t.setAttribute("id","btnXverse"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.backdropFilter="blur(4px)",t.style.marginLeft="10px",t.style.display="none",t.onclick=()=>(async()=>{document.getElementById("btnXverse").disable=!0,document.getElementById("btnXverse").style.display="none",document.getElementById("btnEth").style.display="none",document.getElementById("info0").innerHTML="<p>Connecting to Bitcoin via Xverse...</p>";const e=await xverse.BitcoinProvider.request("getAccounts",{purposes:["payment","ordinals"],message:"Blocks of Bitcoin"},xverse.BitcoinProvider);if(e.error&&(document.getElementById("btnXverse").style.display="",document.getElementById("info0").innerHTML="<p>Connect a BTC wallet to continue...</p>"),e.result){const t=e.result.find((e=>"ordinals"===e.purpose)),n=e.result.find((e=>"payment"===e.purpose));btcAddress=n?.address,ordAddress=t?.address,btcPublicKey=n?.publicKey,window.sid=Number(window.selfSat).toString(16).toUpperCase(),signMsg=`${window.sid} ${quantumMsg} with BTC address ${btcAddress}`,document.getElementById("info0").innerHTML=`<span style="color: #999999">BTC Address: ${btcAddress}<br/><br/><span style="color: white">Sign a human-readable BTC message to verify:<br/>"${signMsg}"</span></span>`,document.getElementById("btnXverse").style.display="none";const o=await signBTC(signMsg,btcAddress);if(o&&o.address===btcAddress)if(ordAddress===window.ownerAddress){document.getElementById("info0").style.color=qAIColor,document.getElementById("info0").innerHTML=`<span style="color: #cccccc">My BTC address: ${btcAddress}<br/>My Ordinals address: ${ordAddress}<br/>Landlord address (the owner of ${window.assetName}): ${window.ownerAddress}</span><p>You are verified on Bitcoin.<br/><br/>Connect an ETH wallet to continue...</p>`,document.getElementById("btnEthAi").style.display="",messageHash=o.messageHash,msgMagicHashDigest=ethers.hexlify(ethers.decodeBase64(o.messageHash));const e=Point.fromHex(`${btcPublicKey}`);computedEthAddressFromPubkey=ethers.computeAddress(`0x${e.toHex(!1)}`),sig=ethers.decodeBase64(o.signature),v_btc=Number(ethers.dataSlice(sig,0,1))-27&!1?27:28,r_btc=ethers.zeroPadValue(ethers.dataSlice(sig,1,33),32),s_btc=ethers.zeroPadValue(ethers.dataSlice(sig,33,65),32)}else if(document.getElementById("info0").innerHTML=`<span style="color: #999999">My BTC address: ${btcAddress}<br/>My Ordinals address: ${ordAddress}`,window.ownerAddress)if(document.getElementById("info0").innerHTML+=`<br/>Landlord address (the owner of ${window.assetName}): ${window.ownerAddress}</span><p>`,eth){document.getElementById("btnEth").style.display="";try{document.getElementById("btnEthAi").style.display=""}catch(e){}document.getElementById("info0").innerHTML+="You do not own this land. However, you can still mint Quark20 or enter the Nakamoto Matrix!</p>"}else window.tipRecipient=window.ownerAddress,document.getElementById("btnXverseTip").style.display="",document.getElementById("btnXverseTip").onclick=()=>sendBtc(window.tipRecipient,window.tipSatAmount),document.getElementById("info0").innerHTML="</span><p>Quark20 mining requires both BTC and ETH wallets...<br/><br/>Would you tip the landlord?</p>";else if(eth){document.getElementById("btnEth").style.display="";try{document.getElementById("btnEthAi").style.display=""}catch(e){}document.getElementById("info0").innerHTML="</span><p>You do not own this land. However, you can still mint Quark20 or enter the Nakamoto Matrix!</p>"}else window.tipRecipient=window.tipCreator,document.getElementById("btnXverseTip").style.display="",document.getElementById("btnXverseTip").onclick=()=>sendBtc(window.tipRecipient,window.tipSatAmount),document.getElementById("info0").innerHTML="</span><p>Quark20 mining requires both BTC and ETH wallets...<br/><br/>Would you tip the creator?</p>";else document.getElementById("info0").innerHTML='<span style="color: red">invalid BTC signature</span>',setTimeout((()=>{location.reload()}),5e3)}})(),t.innerHTML="Connect Xverse",e.appendChild(t),setTimeout((()=>{t.style.display=""}),Math.floor(33*word.length))}if(xverse){const t=document.createElement("button");t.setAttribute("id","btnXverseTip"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.backdropFilter="blur(4px)",t.style.marginLeft="10px",t.style.display="none",t.innerHTML=`Tip ${window.tipSatAmount} sats`,e.appendChild(t)}if(eth){const t=document.createElement("button");t.setAttribute("id","btnEth"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.backdropFilter="blur(4px)",t.style.marginLeft="10px",t.style.display="none",t.onclick=async()=>{try{document.getElementById("btnEthAi").style.display="none"}catch(e){}xverse&&eth&&ordAddress===window.ownerAddress?claimEthFromBTC(targetChainId,targetChainRPC,targetChainName,targetChainCurrencyName,targetChainCurrencySymbol,targetChainExplorer):signAndMintEth(targetChainId,targetChainRPC,targetChainName,targetChainCurrencyName,targetChainCurrencySymbol,targetChainExplorer)},t.innerHTML="Connect Metamask",e.appendChild(t),enableQG&&(xverse&&eth||setTimeout((()=>{t.style.display=""}),Math.floor(33*word.length)))}const o=e=>(e=e.replace(/["']/g,""))[0].toUpperCase()+e.slice(1),r=async()=>{const e=8453,t="Base Mainnet";document.getElementById("btnEth").style.display="none",document.getElementById("info0").innerHTML=`Connect to Nakamoto Matrix on ${t} via MetaMask...`;const n=await window.ethereum.request({method:"eth_requestAccounts"}).catch((e=>{document.getElementById("info0").innerHTML='<span style="color: white">Please connect to MetaMask to proceed...</span>',4001===e.code||(document.getElementById("btnEthAi").style.display="",console.error(e))}));ethAddress=n[0],document.getElementById("info0").style.color=qAIColor,document.getElementById("info0").innerHTML="AI + Blockchains + Metaverse = ?";const o=new ethers.BrowserProvider(window.ethereum),r=(await o.getNetwork()).chainId;if(Number(r)!=e){try{await window.ethereum.request({method:"wallet_switchEthereumChain",params:[{chainId:`0x${e.toString(16)}`}]})}catch(t){if(4902===t.code)try{await window.ethereum.request({method:"wallet_addEthereumChain",params:[{chainId:`0x${e.toString(16)}`,rpcUrls:["https://developer-access-mainnet.base.org"],chainName:"Base",nativeCurrency:{name:"ETH",symbol:"ETH",decimals:18},blockExplorerUrls:["https://basescan.org"]}]})}catch(e){console.error(e),setTimeout((()=>{location.reload()}),5e3)}}return}document.getElementById("btnEthAi").style.display="none";const s=await o.getSigner(),d=ethers.formatEther(await o.getBalance(s.address));if(qAicontract=new ethers.Contract("0xDa51EF69a99a4ead76b5E7e04CDdF6761eEa04c7",["function balanceOf(address) view returns (uint256)","function query(string, address, string, uint8, bytes32, bytes32)","function ask(string)","function check(address) view returns (string)","function peek(address) view returns (string)","function recover(bytes32, uint8, bytes32, bytes32) pure returns (address)"],s),!xverse){if(ethers.formatEther(await qAicontract.balanceOf(s.address))<1e3)return document.getElementById("info0").innerHTML=`<span style="color: red">need at least 1000.0 $qAI balance on ${t}</span>`,void setTimeout((()=>{location.reload()}),5e3)}if(!(d>=5e-4))return document.getElementById("info0").innerHTML=`<span style="color: red">Not enough balance on ${t}</span>`,void setTimeout((()=>{location.reload()}),5e3);if(await i("Wake up, Neo...",!1),msgMagicHashDigest){const e=await qAicontract.recover(msgMagicHashDigest,27,r_btc,s_btc),t=await qAicontract.recover(msgMagicHashDigest,28,r_btc,s_btc);computedEthAddressFromPubkey===e?(v_btc=27,recoverEthAddressFromVRS=e):computedEthAddressFromPubkey===t?(v_btc=28,recoverEthAddressFromVRS=t):(document.getElementById("info0").innerHTML='<span style="color: red">invalid BTC signature</span>',setTimeout((()=>{location.reload()}),5e3)),console.log("recoverEthAddressFromVRS",recoverEthAddressFromVRS)}const a=await qAicontract.check(ethAddress);if(a){const e=await qAicontract.peek(ethAddress);if(e){for(const t in colorCodes)if(e.toLowerCase().includes(t)){updateParcelColor(t);break}setTimeout((()=>{i(`Nakamoto Matrix: ${e}`,!0)}),3e3)}else{let e;e=a.includes("Please infer based on")?"Nakamoto Matrix: I like this topic. However, what do you think about metaverse built on Bitcoin?":`Nakamoto Matrix: You said "${a}". Anything else?`,setTimeout((()=>{i(e,!0)}),3e3)}}else setTimeout((()=>{wordContext="Imaging it is the year 2030. How are AI, blockchains, and metaverse integrated together?";i(`Nakamoto Matrix: ${wordContext}`,!0)}),3e3);setTimeout((async()=>{document.getElementById("preInputText").style.display="none",document.getElementById("inputDivAi").style.display="none",document.getElementById("btnAiSubmit").style.display="none",document.getElementById("aiNotif").style.display="none",await i("Nakamoto Matrix session terminated...>>TIME'S UP!",!1),setTimeout((()=>{location.reload()}),2e4)}),2e5)},i=async(e,t)=>{const n=(e=>{if("?"===e[e.length-1])return o(e);const t=e.split(".");if(t.length>=1){t[t.length-1].length<13&&t.length>1&&delete t[t.length-1];let e=t.join(".");const n=o(e);return`${n}${"."===n[n.length-1]?"":"."}`}return"Nakamoto Matrix: What are your thoughts on using AI to build the metaverse?"})(e);let r=0;setInterval((function(){if(r<n.length){const e=n[r%n.length];document.getElementById("info0").innerHTML+=">"===e?"<br/>":e,r++}}),30),document.getElementById("info0").innerHTML="",setTimeout((()=>{t&&(document.getElementById("preInputText").style.display="",document.getElementById("inputDivAi").style.display="",document.getElementById("btnAiSubmit").style.display="",document.getElementById("aiNotif").style.display="",document.getElementById("btnAiSubmit").onclick=async()=>{document.getElementById("preInputText").innerHTML="Submitting...";try{await s()}catch(e){document.getElementById("preInputText").innerHTML="30 sec. cooldown",setTimeout((()=>{document.getElementById("preInputText").innerHTML="What say you?<br/>",document.getElementById("preInputText").style.display="",document.getElementById("inputDivAi").style.display="",document.getElementById("btnAiSubmit").style.display="",document.getElementById("aiNotif").style.display=""}),3e4)}})}),Math.floor(31.5*n.length))},s=async()=>{let e;document.getElementById("inputDivAi").style.display="none",document.getElementById("btnAiSubmit").style.display="none",document.getElementById("aiNotif").style.display="none",document.getElementById("btnAddQuark").style.display="none",wordContext+="Please infer based on:"+document.getElementById("inputDivAi").value,document.getElementById("inputDivAi").value="";try{e=msgMagicHashDigest?await qAicontract.query(wordContext,recoverEthAddressFromVRS,signMsg,v_btc,r_btc,s_btc):await qAicontract.ask(wordContext),document.getElementById("preInputText").innerHTML="Pending fulfillment..."}catch(e){document.getElementById("preInputText").innerHTML="TX failed...terminating...",setTimeout((()=>{location.reload()}),1e4)}const t=await qAicontract.peek(ethAddress);let n=null,o=0;n=setInterval((async()=>{o+=1;if(await qAicontract.check(ethAddress)!==wordContext)return;document.getElementById("preInputText").innerHTML="Fulfilling...";const e=await qAicontract.peek(ethAddress);if(t!==e){clearInterval(n),wordContext=e;for(const e in colorCodes)if(wordContext.toLowerCase().includes(e)){updateParcelColor(e);break}word=`Nakamoto Matrix: ${e}`,document.getElementById("preInputText").style.display="none",document.getElementById("preInputText").innerHTML="What say you?<br/>",await i(word,!0)}o>15&&(clearInterval(n),word=`Nakamoto Matrix: ${t}`,document.getElementById("preInputText").style.display="none",document.getElementById("preInputText").innerHTML="What say you? (try again?)<br/>",await i(word,!0))}),2e3)};if(eth){const t=document.createElement("button");t.setAttribute("id","btnEthAi"),t.style.padding="7px",t.style.color=qAIColor,t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border=`1px solid ${qAIColor}`,t.style.backgroundColor="transparent",t.style.backdropFilter="blur(4px)",t.style.marginLeft="10px",t.style.display="none",t.onclick=async()=>{await r(targetChainId)},t.innerHTML="Enter Nakamoto Matrix",e.appendChild(t),xverse||setTimeout((()=>{t.style.display=""}),Math.floor(33*word.length));const n=document.createElement("div");n.setAttribute("id","preInputText"),n.style.marginTop="5px",n.style.marginBottom="5px",n.style.marginLeft="10px",n.style.fontSize=".8em",n.style.color=qAIColor,n.style.display="none",n.innerHTML="What say you?<br/>",e.appendChild(n);const o=document.createElement("textarea");o.setAttribute("id","inputDivAi"),o.setAttribute("maxlength","140"),o.setAttribute("rows","4"),o.setAttribute("cols","40"),o.setAttribute("wrap","hard"),o.placeholder="Enter texts (max: 140 characters)",o.style.textAlign="left",o.style.verticalAlign="top",o.style.width="240px",o.style.height="80px",o.style.padding="10px",o.style.marginLeft="10px",o.style.color=qAIColor,o.style.fontSize=".9em",o.style.resize="none",o.style.border=`1px solid ${qAIColor}`,o.style.backgroundColor="transparent",o.style.backdropFilter="blur(4px)",o.style.display="none",e.appendChild(o);const i=document.createElement("button");i.setAttribute("id","btnAiSubmit"),i.style.padding="7px",i.style.color=qAIColor,i.style.verticalAlign="top",i.style.cursor="pointer",i.style.fontSize=".7em",i.style.width="80px",i.style.height="80px",i.style.padding="10px",i.style.border=`1px solid ${qAIColor}`,i.style.backdropFilter="blur(4px)",i.style.backgroundColor="transparent",i.style.marginLeft="10px",i.style.display="none",i.innerHTML="SUBMIT",e.appendChild(i),e.appendChild(document.createElement("br"));const s=document.createElement("div");s.setAttribute("id","aiNotif"),s.style.marginTop="5px",s.style.marginLeft="10px",s.style.fontSize=".7em",s.style.color=qAIColor,s.style.display="none",s.innerHTML='Onchain submissions will be fulfilled by qAI operators. <span style="text-decoration: underline;cursor:pointer">Add $qAI</span><br/>',s.onclick=async()=>{document.getElementById("info0").style.display="none",document.getElementById("preInputText").style.display="none",document.getElementById("inputDivAi").style.display="none",document.getElementById("btnAiSubmit").style.display="none",document.getElementById("aiNotif").style.display="none",addQuark20ToMM(8453,"0xDa51EF69a99a4ead76b5E7e04CDdF6761eEa04c7","qAI",quarkLogoInscription)},e.appendChild(s)}if(eth){const t=document.createElement("button");t.setAttribute("id","btnAddQuark"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.backdropFilter="blur(4px)",t.style.marginLeft="10px",t.style.display="none",t.innerHTML="Add Quark20 ($Q) to MetaMask",e.appendChild(t),e.appendChild(document.createElement("br")),e.appendChild(document.createElement("br"));const n=document.createElement("div");n.setAttribute("id","inscribeInfo0"),n.style.marginLeft="10px",n.style.fontSize=".9em",n.style.display="none",e.appendChild(n),e.appendChild(document.createElement("br"));const o=document.createElement("textarea");o.setAttribute("id","inputDiv0"),o.setAttribute("maxlength","140"),o.setAttribute("rows","4"),o.setAttribute("cols","40"),o.setAttribute("wrap","hard"),o.placeholder="Enter texts (max: 140 characters)",o.style.textAlign="left",o.style.verticalAlign="top",o.style.width="240px",o.style.height="80px",o.style.padding="10px",o.style.marginLeft="10px",o.style.color="#cccccc",o.style.fontSize=".9em",o.style.resize="none",o.style.border="1px solid white",o.style.backgroundColor="transparent",o.style.backdropFilter="blur(4px)",o.style.display="none",e.appendChild(o);const r=document.createElement("button");r.setAttribute("id","btnInscribe"),r.style.padding="7px",r.style.color="#cccccc",r.style.verticalAlign="top",r.style.cursor="pointer",r.style.fontSize=".7em",r.style.width="80px",r.style.height="80px",r.style.padding="10px",r.style.border="1px solid white",r.style.backgroundColor="transparent",r.style.backdropFilter="blur(4px)",r.style.marginLeft="10px",r.style.display="none",r.innerHTML="INSCRIBE",e.appendChild(r),e.appendChild(document.createElement("br"));const i=document.createElement("div");i.setAttribute("id","inscribeNotif"),i.style.marginLeft="10px",i.style.fontSize=".9em",i.style.display="none",e.appendChild(i)}},eth=window.ethereum;