File: blk03433.txt
{"attributes":[{"trait_type":"Mouth","value":"Phoneme Oh"},{"trait_type":"Fur","value":"Red"},{"trait_type":"Background","value":"Aquamarine"},{"trait_type":"Hat","value":"Short Mohawk"},{"trait_type":"Clothes","value":"Hawaiian"},{"trait_type":"Eyes","value":"Sad"}],"external_url":"https://baycbitcoin.com/index/bayc/8143","image":"ipfs://QmWwSKeAhhs1CNNDDkMaYgdWvZjrCUyfczc51JXp81i3H1/8143.png"} 10.)-,3:J>36F7,-@WAFLNRSR2>ZaZP`JQRO &O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz text/html;charset=utf-8 <meta charset="UTF-8"> <title>noise</title> Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below. Are we missing an important library? Let us know @generative_xyz. <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <!-- c2.min.js@1.0.0 <script sandbox="allow-scripts" type="textM /javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script> <!-- chromajs@2.4.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script> <!-- p5.grain.js@0.6.1 <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script> <!-- threejs@r124 <script sandbox="allow-scripts" type="text/jM avascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script> <!-- tonejs@14.8.49 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script> <script type="text/javascript"> let nextLineY = 30; let colors = []; let colors2 = []; function setup() { cSize = min(windowHeight, windowWidth); createCanvas(cSize, cSize); (let i = 0; i < 5; i++) { colors.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0), mathrand(255, 0))) colors2.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0))) noLoop(); function draw() { console.log(height, width) while (nextLineY < height) { drawLine(0, nextLineY) nextLineY = nextLineY + 3 function drawLine(x, y) { let nextRectX = x; noStroke() while (nextRectX < width) { let rectWidth = mathrand(2, 1); let rectHight = mathrand(3, 1); fill(colors[mathrand(colors.length - 1, 0)]) rect(nextRectX, y - rectHight / 2, rectWidth, rectHight); nextRectX = nextRectX + rectWidth; // if (rectHight / 2 + y > nextLineY) { // nextLineY = rectHight / 2 + y; // } let numberOfBigBlocks = mathrand(45, 7); for (let i = 0; i < numberOfBigBlocks; i++) { stroke(colors2[mathrand(colors2.length - 1, 0)]); strokeWeight(mathrand(3, 1)) noFill() rectWidth = mathrand(20, 1); rectHight = mathrand(35, 1); rect(mathrand(width, 0), y - rectHight / 2, rectWidth, rectHight); function mathrand(max, min, float = false) { const val =M mathRand() * (max - min + 1) + min; if (float) return val; return Math.floor(val); <script id="snippet-random-code" type="text/javascript"> // DO NOT EDIT THIS SECTION let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alM phabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (letM n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return funM u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); margin: 0; padding: 0; /* leave it to hide the scrollbars */ overflow: hidden; <script type="text/javascript"> const rand = mathRand(); function T1(rand) { // calculate rarity by yourself if (rand > 0.5) { return M } else { return false // window.$generativeTraits contain list traits for token // you need to populate a $generativeTraits object in the window object window.$generativeTraits = { "T1": T1(rand), Add your code here // const container = document.createElement("div") // container.innerHTML = "<span>seed: " + seed + "</span><br>"; // document.body.prepend(container) Add your code here text/html;charset=utf-8 <meta charset="UTF-8"> <title>noise</title> Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below. Are we missing an important library? Let us know @generative_xyz. <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <!-- c2.min.js@1.0.0 <script sandbox="allow-scripts" type="textM /javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script> <!-- chromajs@2.4.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script> <!-- p5.grain.js@0.6.1 <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script> <!-- threejs@r124 <script sandbox="allow-scripts" type="text/jM avascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script> <!-- tonejs@14.8.49 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script> <script type="text/javascript"> let nextLineY = 30; let colors = []; let colors2 = []; function setup() { cSize = min(windowHeight, windowWidth); createCanvas(cSize, cSize); (let i = 0; i < 5; i++) { colors.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0), mathrand(255, 0))) colors2.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0))) noLoop(); function draw() { console.log(height, width) while (nextLineY < height) { drawLine(0, nextLineY) nextLineY = nextLineY + 3 function drawLine(x, y) { let nextRectX = x; noStroke() while (nextRectX < width) { let rectWidth = mathrand(2, 1); let rectHight = mathrand(3, 1); fill(colors[mathrand(colors.length - 1, 0)]) rect(nextRectX, y - rectHight / 2, rectWidth, rectHight); nextRectX = nextRectX + rectWidth; // if (rectHight / 2 + y > nextLineY) { // nextLineY = rectHight / 2 + y; // } let numberOfBigBlocks = mathrand(45, 7); for (let i = 0; i < numberOfBigBlocks; i++) { stroke(colors2[mathrand(colors2.length - 1, 0)]); strokeWeight(mathrand(3, 1)) noFill() rectWidth = mathrand(20, 1); rectHight = mathrand(35, 1); rect(mathrand(width, 0), y - rectHight / 2, rectWidth, rectHight); function mathrand(max, min, float = false) { const val =M mathRand() * (max - min + 1) + min; if (float) return val; return Math.floor(val); <script id="snippet-random-code" type="text/javascript"> // DO NOT EDIT THIS SECTION let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alM phabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (letM n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return funM u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); margin: 0; padding: 0; /* leave it to hide the scrollbars */ overflow: hidden; <script type="text/javascript"> const rand = mathRand(); function T1(rand) { // calculate rarity by yourself if (rand > 0.5) { return M } else { return false // window.$generativeTraits contain list traits for token // you need to populate a $generativeTraits object in the window object window.$generativeTraits = { "T1": T1(rand), Add your code here // const container = document.createElement("div") // container.innerHTML = "<span>seed: " + seed + "</span><br>"; // document.body.prepend(container) Add your code here <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNjkiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNjkiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6Ii8gXFwifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6NTZ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiVmVydGljYM WwifSx7InRyYWl0X3R5cGUiOiJcXCBDb3VudCIsInZhbHVlIjozMn0seyJ0cmFpdF90eXBlIjoiLyBDb3VudCIsInZhbHVlIjoyNH1dfQ==" data-message="BitGlyphs #369 - bc1pjqssjgetyae8kpgn2apwhlt5w9jydk305efdppgmmcvez5nr8cgqy3haer" data-signature="902ade648d6d7bccb99773950f5344c749a9b782f0527600b6e01350ef24b11a76fc9ba544783422e327c1c15e183711dc079b9803739d6efc0d9695a06915fe"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,d09GMgABAAAAABRYAA8AAAAAJcQAABQBAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCoGYACBRAgkCZM wMEQgKpwyhFwE2AiQDNAs0AAQgBQYHIAyBJxuXIUUHctg40CyAVLL/6wRuDEX7oPwUWgRFOGOXCyoSZ5rr9jFeWorZlnMpZiiKIqz6LPorSpdJuv/0NsjzZ0dIMuvH27R6VfWhu4U0YLNGMkPvTMtAMpCWDAta5GMOMiT7gCC/cMIjjEjzz2/z7wN8ZKtEPRMrmJmAGRh9HLoqdFGF0eQi0kW3P5LLXJl6HJQSFoTIG4IDJNtzAPCkkFT5SfcUeGYDZDsA8DtCw+K2Lzd4iZirVaq7cw6E+DPPyTa/RUVIS0hBkvH00JR0JfB86kouqoQV+MoP78gBOnBIS4cgBaVbZ4v6itpd9eRw/n93o04WrOed/72u1/aep7ez8n7bAeaeqWpSPt2FSG9lkNYgmaU1gbShNUMVoKLC0mVAZiWsH4TtXDpFE+5TJUXHZZoibclFl2U4RdIFBjVHdHI5ZPffDeVHJ4xtn/zhQAA89KAMDpY29hF97Oy5J5CHAoCWA/6LK/kdrYM IG+BX+NoB3b09GtzFM/MQMLYDvfPvB2v34Prp6Pii7LQt3yo8IC4AKDOElxEljk7x9FC7CMtqwVw66UMUg6jiGWymYKT4ueSetVqxWGBXXECdEhKiQKKQWMbLLpS6N8kKuP55Jp3WRlcny05/Knww9nPmw9WHMQ+KD3x48enD/wa4HUwEEZq6Rsti8PFitAeRv4yEMo8jmPzRuNjF3nwJj85Rf0lTag2fY8n9HSjKe6JmxFrwA6qCDCpN3EGiLpw6GWrUOgTQ/pXdpxvdJUVLyhXt9X7qzhHl0LoQ9zH5uUNfnHWcyTJ72yQ2bku6i/dm9G3Kl1Hcp7ca3peA6/IhdVjOdkUpJIMMAqp6y9cykkUb4/jUUjD51Za1zOBliDoJFLB58DoVp0x47tq9dx1c+U/vZUy9RCkS5oczrZyonhvRQKfp+QqbSvjO5yHOSp9vStbcXEzQRpBjLngc2wpyA2wDOPMfatuHiWue1s/wvLpPczH9a0hibHKGg68xT7CFZqo8ODRM kKynIjWO4FrPc43htrIxQ7jKwVUJhZbOolg3l1zdB5bdWoI0Kv2sQ7p7RtfxcaylDeUNF+SHsmH8Sg0UbBvwugjUrqw9iewwKXvQ4ZHZOTdL1XAfocGU6n0HgB7KrDhTC6QJSTf0pSqR3jxzG7lQZoVx46tyEc+sfWaCi0vBG54RZemoICoizJsO1MpJG0j3ltzKNtHl9aAWJZd9D8pkSqenS9AayUUJS5SfyM1CR7kMi3Rm18bB0xFM4ccH9N5IhDdogQ40Zl65jpfSR+hlvEI0cCqiqRXPmnZNx2JiSYpD11WiVJc5PYPApFfQ/iXSITPfcoNXk/bB4GnrHSSJ08jYJO/9hOrgtAiScRIj8z2XyJhYh3QVMqiGldZNeJMt++03UZxVetvtI4uiaP2Jqr8fRIjGOh2CMkWFOror8XLJALOoAItjpSjT61DGYKMgdHgaT3MiTqPREPxV7S3/zMrLRnLsx474WndDaUlHQp8K4wfyfyRBYF/d5OOUGUF0wFIVQUikM pC0xVh6KqwdE04dF24E6pQ1Scw8eZRMOMK+rinPNTRl1HOyp8L95d75O9ma8MMsSDiZCj5HTAsJxra4dABh044dMGhGw49cOiFQxkON+BQgWsPQGpjpcGORD6WfvfNvj5jihmw1+lDYDBMT82qYxgiYxnJWPOSPqiveq42gtNIzY9LtHhgbdtieLVo7Q/D0yigOyqbVc9vj0FeMT1+HDOwkYP+Qij8j1VIizH1C7MFBu90qYxpX8zNMgGpZcx6AIjfIMckqiu1Y6pYBHFS+jzTKCxT96SSMfD3lOnr7TuP/DgzSzgzj7gFvO+mVPsXHztmAKbICU/ZVC2SX8KyR4i9H+2AF6nbKXIxsy2pvEAwXqPk2xVOr4Pg34Sfyi0681NFi3PRexU8SovsBTpK+EiEGedHutozUoZiahTN3KBleNnA46aIWPlCWUVQkY7yklE8jmDbqj3caxKiFRyN6qSJx9eW0S1GqCg32gbgyFp/FF2mn6nRMaeGM4gIOgq0XgqX51t4efM aIcoc8gkMX0quc1JSsvLPdh0pqtea2YKKg9RBizFpv/XVLTYMrtfT6SGlv7kMXp6z4Rqz0I7bFU9rQb+BDa1iBas7PMeyZgxikjlUZ0l4vc9E7bnpg9jZ+s94ql37St8BM6CwZgNnQtim2r/vYThVLYVgxVE21FqZs042UPjsT9p5vNs47q9RS6VLb3+JLKF7OPJgy5z/E2IJZHH4Me3StS8baykgbWaTlCVjrKcRZsZQaaZWyIMvxj1W3f5f3O9y77Qsxc2L10qxNX0eBGh6TEG2A6Y02d4apoUolo7YzUZS/BWNWCetK1dFBRg9sC6WdCgl2heq9fIzFPgMdVEhwKHTSEX5Coe8cK0Op0UcCHmWcpqeCBCNIsIIEJ0jz/aEmBNSEiJqQUNNyPlaEghWo1SvSDGjqLCEwDASGicCwEBg2AsNBYLgIDA/BPB8FvfaawZkHIWQIUkcSryJgOw66kG+SlMBIS0DZaLQWkcuhkHPLAzBVABCy5onbALDTdmXoJPQSBgM mjhEnCLGEph1WGTYZdhkOGU4ZL1r5D+A+9qk1g5juVOV8+qDU2Rt/DmSAre+dP1Ftx20GgVgsxzCoFmCPYTh+gfgPo38NxnrPpj6NB0RDeQiYq6JQqqp93yU5Ek672rgomoQSykD0cTA/Gw0kn93HVtCqaLFhJ47OZeLzYl0qiTNji+Qgc+e32p0c8H7cE6qgIoiKGFWRPjc8uvXC7vx0wouf+mXcMydmD67/GqWNugGSNdXt7PmvnLBcXRRwjQkH83HWgIgWTI9KbjCYxjjb/OAlNh83/vvRdtlmBThTUNTZlWmka0/QrXWeqrNK2VlYbwkTLorzUOpVBq4IMW/7h/1c++iT98KPk4w+zT4w7fp+8tyMi44RJwu8dqHUndOftngNGGB+tCCLEw/TFRfpCrx9G8h+MgZjX8kvLDu4LNmj4IEqs5i97JT4Jhn3kJH3Rzsp60mKs/WZLtT2NvogHUEfJdFMwSSC64R6h04WY7tgY9uwhXSrrpUpjGhDP/ta2zPH61rM ymNkUEOE2kY05SdJwxEsMy61OFa+6VIK9ZppwFMiCooSmmGWhHNH3cZlAL2iEj47jFoJO6xjSC16dN+m/TURAw/W7+TmBzfi+t77XUoteQ5eXdmadJ/aTFVqQyguf3t/cfud8HK6hEWJVr0RyHXnPsPeO+CctFdUc3Cdq+KnrnPz1d8hvZw76k5+blK1PnrMU1xvrSzsuEMMckzdd6mT6083BckMeMc45SqVBjOIQYE5O0zIL5gDnSkGp59UZPOkJMBZEqi3ptN9tZNJ9nLW4T7fn+TUN+I3veD+fuuaNaufJy7FwI0AGokxePI8TAHFVdRy8enj1AiyWS6wtwCBpIFJEgBBSrigFqEjkrf3eycQjJHE/SQ54dPvAjvLzde+gyhf34+ZlK3Ow/Eqr4/PzBisRaN8iFiLm86xLG9JS56Dq869Cyg/hRzTzLWuvv8yXzblGSlhnPdoeodKaUI+XrNhVBpEJVb91mP4cPF3iP60xbundDTq8lz9qc7bqtWF3dszoE51M Dv9cfPnwQQJyxE+vD5o3NHYalDzJqqUZVzRUPDmNhqUY1CB8M5w/cnG/FP4fEkbZG72TSsh91AaPqdmKSytp3C73QmtbIRz6RxTyYlvXzjWt3e7w8eGrDrjekeCKNHykwe0kfUUXO4X+w6du7K7pMXv1D94KnBMWk1pEm+bOJJ8j3Ph/zI/ePM59v72za9++em2SidEJ2hSv+rkipt9LPFHIkY1N7WHvFjrduQR116eKdz05ZLF3gNm7YfrDYcWXIMgjqOLz0KiolLN7MK1w0uGeYUbxgZlVqS61rK5h8+c3Hh8jIGl3Luz+somuRG1Uv5nkvrQo4f+MksNOg6t75+CfsodprcIv8plt75dNHBq0QvFZJCa90+qw35/cHA2C9jrqGyLYsSGy7V+ClbKVptb69x8XG6RXVYxsaM73kAjpp7euHUxHVFej0sis8GoLYUAaAIWbwYKQIAKb1ErM0uMs0iRIU3/VLwKmt2AlCmVgKQ4e2dAYBSfUipBuBSfDgAoU07FKM SVWGb2oim/hnvQ69dNGNWG5vesH+7b4L9DX2OFlKFQsXHqSF8ZeHu24fXznByNQjO39Vf1mv1uyzX89Ps7SanUqCT7S373dbdH6/fXJapPvl5/s5vbdnVyRqJ3mHTTcErB7Dm1jNq8fEY+mVTHqCNFTqKXXLSokjBKKOZvwzPKcEE9aSNpG2fbInIqJYGyneYdBUGgsLx/30Qjxc8FghOo6Bu0/tXVg2pPbzFlJznaG3JKpsiv7yz1sUHjEg6Tt7NDyEm0wO+bWESd+t+ajm7gb7Za2nqAvymmX8yFthEsQ8CHtm4q8nGzoMUiqxm3HehROwl2swU9ZLKYrCa7yWyymSpIALcJ2FC9sNlaKu4GBmtxl81sJYBtTlZuhf7fsS7dMDb2/j0/qqMcKGdR8wvWz2vVCmhQjqAANJZ7lLgtXS0tExcUgzR2snRyScmjDJlaXoC9QQUT6vyrfRPzgmNd1ILsQqaq7ch3urQw/9KT+kBcgBsKzOPRr7ZUT6wNrg9Jo6Ni+YM QE/lpiKoTQaXEx0JdmKcvvm3TPdW2OImfEM08O+clQBkzYKoEHhgUfTauN1/UXrp5GgAxQJ75x9bVK1la3BM3bo8O/OKumpcRpAnhIFbYeXPcQECgC18+21QxUnA5mpIo5/cj0GIMfwOljmXQghrLQZewa1giTkx+D1cU5dawqYWRr/n21m1EMDhgVk43RgOggGZFKBEQqUUFypPnp1+UHcZrm8zYRDFAnhN/A/xcmD7ZrElofDftV4jfOna8WBrS3c7Cg/rqHwPj8pstngkuMnAOj0hjsGVkDGKw/wOJYMTI0G13GSo49xMTkc7CcYEjCxZUyFGPXZtChxdAil5yCGGO/+C6+j5joIfKVOhYPxIz0oeGrSt0nGe3oeLhFZirNnIg5iJ2vfWSxDwngkI4LtrvnJ8INC/gbD+R94pnRus81TyDoz6mqRrA6gc0nSHB2hPMjclD+dCaEQtODnQrY8CgMH+4MSg4QsuujCRyGI08Un11XihQqlixRFCKlo5Pa1KVM5WM 58NMiGq/sm1ah04eE6Vc3HSW3qUubQj8G+n1TVyWoVl6ur444ZukE703VQVyGta9S9kCvTPvova9Qd/bnY2Px+/2ZZf3xRaqa2xC2rdMuZPNG8mfJsRV7F9MhGVW2tqjFyekWeIkc+c54wL2PoXDZSPL48tDQ4uDS0nP61pWDHzYadgbn3o3LSF5aVJY1yChipExrSCYuaBbnJa1FyMWrc1Nm8qbwKTX0RcVn5lpr1zl++dDbrAqpPM0AcPFf5gq/e2Td+6QUIurBuq8+qPrXRmR5Ed0Y5PS7Zl0gZEwrwZJoLjSzEC1dYNbn93H8k0Brk3woLAOR3ZAFaTRzIblrpn/vk+Z3HDMinJH3cPvmM6H0+zR/YZ1C6lzsf2yUp2OM+J7nW31tG/iUB0LopFv6Lz+hqvyqguRIzVn0Wlo31i9j2sX8dwkrJMyCACQ+DRfGdYFYnUKzqJb8t19Kb9PqoSMOPrCwv1WamOjsyKW2zVb+rZIDRxSBNEEU3oVRMbQEII5wYJiM WtLVEvg0SII2z5JyBQPdHGNl/9EkAjIORj9SuamHGmCIhuQoTOQBSjrYGqwF+s7gzs5LKoSMXYbLnvcKWKYj+LsMVU8ncqAAoqKTZX9T1NYbeDdIg31i8Gto/9fiGC55LXhItwyA03EdImdKyYYUkb6CZCIXPikAmZeskfA9hjeK+v4xOTi/JOG/7VhbnZ6bGR4cH2fyw2frigIxJ73t4sMYg2mEBCEFWHQg33YDmB/P3Vx3O5lLLFqr9+43pGWGaHK6J0AgyqL7KxagMC1sJNaCjSqgkCLKEJa4w9grXmBMaa+vh0ebI8PTHq2GtV/+0GrGiaTIo37iDbTi6vJ4QpG2cFUk0mFChlkGoWczHRmSibpDbNdISt69ijPCVD5DpJ92Hym9Y6J2GPHevUg6C+ub4WrAYrS7VbN/2F+dmp8bHRkeGhwYH+vmrlRm9Pd1fbtVQilUh3JJOJkr0+Xs34zSZIqz5jIOZIWDEsm8S7uQmGKJYmFLRRugnjWHMEF451nYdhjDM 2BNbb+9BMPP3h699FBfX2ltjA1PlQpd7d5su9yD7ZqfQqC73z9onv72O8GMb0FLMJPQQAleMiQ0lodbapZ8gRa6XrJ7ypzH/kt5PtNw0/ef/7Yw+dP3//06srU5I3ysrU5xj/H4f7W2nIwPzk26Jx5b3O2ogT96AILCT8DojdDG1IwhTyI4AiAnEEgO0+3G993ej198YafPD99pHn65PmTK8sT4709jL+3JRjRYvTroZVo9VooFsWvhQjO7H31Dg4x0zntb7FAWFkObs1Md3UW+ov9kTDylHcHvs0oCPQWAC+UB8e10n/lMzhmSJS8BQpMih8GAdQAEU40gVC/WmJ0dpTKV8v5XDKBKEetzVZBAAi4njOtk9jcv52Y/A4AbqeHb29fT67hsdb//79UQ34EwAEDpatf8tuoVBmFivLV8jOX2qiByvKSvVXE7dYPoIXjCvgzIqdk+HgJ75n60WgYcLiB4Fp42P761/Hz3cJLovc2bPQpdfzUJewnjT4qu9lfCivyaFM +c53duflN8EEJIroT+RjdbCy676O07hRf+ouNzul+Ux33dAe1A0Chd9nqJbzqvB6maUffl3uRZ3peiTNHK16n1lgv1nkvuOr+k7zcIAgAA)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="24" letter-spacing="-0"><tspan x="0" dy="-178.5">.\./......../.\.</tspM an><tspan x="0" dy="24">\\\\\//////\\\\\</tspan><tspan x="0" dy="24">.\...\....\...\.</tspan><tspan x="0" dy="24">/\............\/</tspan><tspan x="0" dy="24">.\..../../....\.</tspan><tspan x="0" dy="24">./\..........\/.</tspan><tspan x="0" dy="24">./../..\\../../.</tspan><tspan x="0" dy="24">./....\..\..../.</tspan><tspan x="0" dy="24">...../..../.....</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">\......//......\</tspan><tspan x="0" dy="24">....\......\....</tspan><tspan x="0" dy="24">.L ...............</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">.....\....\.....</tspan></text></svg>h! /ViaBTC/Mined by 7jaya/, CjA=:ETH.ETH:0xF8643802dB176c6Fa176dedD04E8c030F1a52bFA:583839558::0 CjA=:ETH.ETH:0x15097DcF2f89fC238C6dE9D4CD9680e8198508E2:4711880:te:0 DjB=:BNB.BNB:bnb1fy3hnk66wvzjssl292jkxq82vkm0mrlzfang7j:18850948:te:0 DjB=:ETH.ETH:0x51450E6a593A1E3D9ea6761F24c4B5bC26bbd1f1:27433430:te:0 OiCCPPhotoshop ICC profile OiCCPPhotoshop ICC profile 6j4ion:8.QmZMm2bKh9jh7sVgh3LzEP5miihP79BPq9uGU4pSDYSFLy Bj@=:ETH.ETH:0xc0BCc8dFf6eAA7F114f0eAC2E4076c641CF75437:74706283::0 text/html;charset=utf-8 <meta charset="UTF-8"> <title>noise</title> Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below. Are we missing an important library? Let us know @generative_xyz. <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <!-- c2.min.js@1.0.0 <script sandbox="allow-scripts" type="textM /javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script> <!-- chromajs@2.4.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script> <!-- p5.grain.js@0.6.1 <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script> <!-- threejs@r124 <script sandbox="allow-scripts" type="text/jM avascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script> <!-- tonejs@14.8.49 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script> <script type="text/javascript"> let nextLineY = 30; let colors = []; let colors2 = []; function setup() { cSize = min(windowHeight, windowWidth); createCanvas(cSize, cSize); (let i = 0; i < 5; i++) { colors.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0), mathrand(255, 0))) colors2.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0))) noLoop(); function draw() { console.log(height, width) while (nextLineY < height) { drawLine(0, nextLineY) nextLineY = nextLineY + 3 function drawLine(x, y) { let nextRectX = x; noStroke() while (nextRectX < width) { let rectWidth = mathrand(2, 1); let rectHight = mathrand(3, 1); fill(colors[mathrand(colors.length - 1, 0)]) rect(nextRectX, y - rectHight / 2, rectWidth, rectHight); nextRectX = nextRectX + rectWidth; // if (rectHight / 2 + y > nextLineY) { // nextLineY = rectHight / 2 + y; // } let numberOfBigBlocks = mathrand(45, 7); for (let i = 0; i < numberOfBigBlocks; i++) { stroke(colors2[mathrand(colors2.length - 1, 0)]); strokeWeight(mathrand(3, 1)) noFill() rectWidth = mathrand(20, 1); rectHight = mathrand(35, 1); rect(mathrand(width, 0), y - rectHight / 2, rectWidth, rectHight); function mathrand(max, min, float = false) { const val =M mathRand() * (max - min + 1) + min; if (float) return val; return Math.floor(val); <script id="snippet-random-code" type="text/javascript"> // DO NOT EDIT THIS SECTION let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alM phabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (letM n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return funM u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); margin: 0; padding: 0; /* leave it to hide the scrollbars */ overflow: hidden; <script type="text/javascript"> const rand = mathRand(); function T1(rand) { // calculate rarity by yourself if (rand > 0.5) { return M } else { return false // window.$generativeTraits contain list traits for token // you need to populate a $generativeTraits object in the window object window.$generativeTraits = { "T1": T1(rand), Add your code here // const container = document.createElement("div") // container.innerHTML = "<span>seed: " + seed + "</span><br>"; // document.body.prepend(container) Add your code here text/html;charset=utf-8 <meta charset="UTF-8"> <title>noise</title> Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below. Are we missing an important library? Let us know @generative_xyz. <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <!-- c2.min.js@1.0.0 <script sandbox="allow-scripts" type="textM /javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script> <!-- chromajs@2.4.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script> <!-- p5.grain.js@0.6.1 <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script> <!-- threejs@r124 <script sandbox="allow-scripts" type="text/jM avascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script> <!-- tonejs@14.8.49 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script> <script type="text/javascript"> let nextLineY = 30; let colors = []; let colors2 = []; function setup() { cSize = min(windowHeight, windowWidth); createCanvas(cSize, cSize); (let i = 0; i < 5; i++) { colors.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0), mathrand(255, 0))) colors2.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0))) noLoop(); function draw() { console.log(height, width) while (nextLineY < height) { drawLine(0, nextLineY) nextLineY = nextLineY + 3 function drawLine(x, y) { let nextRectX = x; noStroke() while (nextRectX < width) { let rectWidth = mathrand(2, 1); let rectHight = mathrand(3, 1); fill(colors[mathrand(colors.length - 1, 0)]) rect(nextRectX, y - rectHight / 2, rectWidth, rectHight); nextRectX = nextRectX + rectWidth; // if (rectHight / 2 + y > nextLineY) { // nextLineY = rectHight / 2 + y; // } let numberOfBigBlocks = mathrand(45, 7); for (let i = 0; i < numberOfBigBlocks; i++) { stroke(colors2[mathrand(colors2.length - 1, 0)]); strokeWeight(mathrand(3, 1)) noFill() rectWidth = mathrand(20, 1); rectHight = mathrand(35, 1); rect(mathrand(width, 0), y - rectHight / 2, rectWidth, rectHight); function mathrand(max, min, float = false) { const val =M mathRand() * (max - min + 1) + min; if (float) return val; return Math.floor(val); <script id="snippet-random-code" type="text/javascript"> // DO NOT EDIT THIS SECTION let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alM phabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (letM n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return funM u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); margin: 0; padding: 0; /* leave it to hide the scrollbars */ overflow: hidden; <script type="text/javascript"> const rand = mathRand(); function T1(rand) { // calculate rarity by yourself if (rand > 0.5) { return M } else { return false // window.$generativeTraits contain list traits for token // you need to populate a $generativeTraits object in the window object window.$generativeTraits = { "T1": T1(rand), Add your code here // const container = document.createElement("div") // container.innerHTML = "<span>seed: " + seed + "</span><br>"; // document.body.prepend(container) Add your code here CjA=:ETH.ETH:0xd8b2643C6579eA01fC2AF9A42931596eFC04460A:404530301::0 OiCCPPhotoshop ICC profile OiCCPPhotoshop ICC profile c/Foundry USA Pool #dropgold/ Bj@=:ETH.ETH:0xe85213F242f1032223d5078f9cdE7EF8e9A1af59:11040308::0 DjB=:ETH.ETH:0x51450E6a593A1E3D9ea6761F24c4B5bC26bbd1f1:20222462:te:0 text/plain;charset=utf-8 $$$++111888??EEELLSSSYYY``gggmmmtt{{{ LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUM UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUM UUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUM UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUM UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU 2014-02-06T13:44:57-05:00 2014-02-06T13:44:57-05:00 <?xml version="1.0" encoding="iso-8859-1"?> <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools --> <svg height="800px" width="800px" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 299.429 299.429" xml:space="preserve"> <path style="fill:#010002;" d="M245.185,44.209H54.245L0,116.533l149.715,138.688l149.715-138.682L245.185,44.209z M206.746,121.778l-57.007,112.1l-56.53-112.1H206.746z M98.483,109.844l51.232-Mw 51.232l51.232,51.232H98.483z M164.119,56.142 h69.323L213.876,105.9L164.119,56.142z M86.311,105.142l-16.331-49h65.331L86.311,105.142z M79.849,121.778l49.632,98.429 L23.223,121.778H79.849z M220.136,121.778h56.071l-106.013,98.203L220.136,121.778z M225.148,109.844l18.694-47.538l35.652,47.538 H225.148z M58.266,58.738l17.035,51.112H19.929L58.266,58.738z"/> (((((((((((((((((((((((((((((((((((((((((((((((((( .IEC 61966-2-1 Default RGB Colour Space - sRGB -Reference Viewing Condition in IEC 61966-2-1 Copyright International Color Consortium, 2015 "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq ffffffffffffffffffAS "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq ffffffffffffffffffs^ text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> text/html;charset=utf-8 <meta charset="UTF-8"> Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below. Are we missing an important library? Let us know @generative_xyz. <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <!-- c2.min.js@1.0.0 <script sandbox="allow-scripts" type="text/javascript" srM c="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script> <!-- p5.grain.js@0.6.1 <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script> <!-- threejs@r124 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/aM jax/libs/three.js/r124/three.min.js"></script> <!-- tonejs@14.8.49 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script> <!-- svgjs@3.1.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script> <!-- aframejs@1.2.0 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/aM frame/1.2.0/aframe.min.js"></script> <!-- babylonjs@5.47.0 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script> <!-- paperjs@0.12.17 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script> <!-- regljs@2.1.0 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.comM /ajax/libs/regl/2.1.0/regl.min.js"></script> <script type="text/javascript"> Add your script here var colorPalettes = [ ['#fafa6e', '#2A4858'], ['#9C27B0', '#FFEB3B'], ['#00BCD4', '#FF5722'], ['#191970', '#FF69B4', '#228B22', '#FFFF00'], ['#8BC34A', '#3F51B5', '#F44336'], ['#009688', '#FFC107', '#795548'], ['#4CAF50', '#FFC107', '#9C27B0'], ['#00BCD4', '#FFC107', '#9C27B0'], 88', '#FFC107', '#E91E63'], ['#ff0000', '#0000ff', '#00ff00'], ['#ff0000', '#0000ff', '#00ff00'], ['green', 'blue', 'orange', 'green'] var point_count = 700; var pointSpace = 12; var spaceRatio = 0.5; var maxAttempts = 100; var densityRatio = 0.5; var length1 = 10000; var length2 = 10000; [700, 12, 0.95, 0.5, 0.5], [700, 12, 0.95, 0.5, 0.5], [700, 12, 0.95, 0.5, 0.5], 700, 12, 0.95, 0.5, 0.5], [900, 8, 0.95, 0.5, 0.5], [700, 8, 0.78, 0.5, 0.5], [500, 5, 0.85, 0.5, 0.5], [800, 12, 0.9, 0.2, 0.5], [700, 12, 0.95, 0.5, 0.5], [700, 12, 0.95, 0.5, 0.5] function mathRandSelect(array) { return array[round(mathRand() * (array.length - 1))]; function mathRnd(min, max) { return map(mathRand(), 0, 1, min, max) let urlParams = getURLParams(); if (urlParams.res) { density = round(int(urlParams.res)); noiseSeed(mathRand() * 99999); randomSeed(mathRand() * 99999); canvas = createCanvas(400, 600); canvas.addClass("canvasNewCSS"); pixelDensity(density); angleMode(DEGREES); colorPalette = mathRandSelect(colorPalettes); noiseDetail(8, 0.5); print(colorPalette); colorPalette = chroma.scale(colorPalette).mode('lch').colors(12); field = mathRandSelect(fields); point_count = field[0]; pointSpace = field[1]; offset = field[2]; spaceRatio = field[3]; densityRatio = field[4]; round(mathRandSelect([1, 2, 3, 4, 5, 6, 7, 8])); var maxAttempts = 1000; for (var i = 0; i < point_count; i++) { var attempts = 0; while (attempts < maxAttempts) { var point_x = mathRnd(width * (1 - offset), width * offset); var point_y = mathRnd(height * (1 - offset), height * offset); var point_r = mathRnd(pointSpace * spaceRatio, pointSpace); var point_l = mathRnd(length1, length2); var point_color = mathRandSelect(colorPalette); for (var j = 0; j < i; j++) { if (points[j]) { var x2 = points[j].x; var y2 = points[j].y; var r2 = points[j].r; if (dist(point_x, point_y, x2, y2) < (r2 + point_r) / 2 * 1.4) { overlapp = true; if (!overlapp) { append(points, { x: point_x, y: point_y, c: point_color, r: point_r, l: point_l if (attempts >= maxAttempts) { console.warn("Could not place point " + i + " after " + maxAttempts + " attempts."); for (var p = 0; p < points.length; p++) { fill(points[p].c); rectMode(CENTER); translate(points[p].x, points[p].y); rotate(mathRnd(360)); translate(-points[p].x, -points[p].y); for (var i = 0; i < points.length; i++) { let x = points[i].x; let y = points[i].y; let pointColor = points[i].c; let newX = x + map(noise(log(x), log(y)), 0, 1, -space / 2, space); let newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2); switch (variationMode) { newX = x + map(noise(log(x), log(y)), 0, 1, -space / 2, space); newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2); newX = x + map(noise(log(x), M sin(y)), 0, 1, -space / 2, space); newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2); newX = x + map(noise(cos(x), log(y)), 0, 1, -space / 2, space); newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2); newX = x + map(noise(sin(x), cos(y)), 0, 1, -space / 2, space); newY = y + map(noise(cos(y), sin(x)), 0, 1, -space, space / 2); x + map(noise(log(x), log(y)), 0, 1, -space / 2, space); newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2); newX = x + map(noise(log(x), log(y)), 0, 1, -space / 2, space); newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2); newX = x + map(noise(log(x), log(y)), 0, 1, -space / 2, space); newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2); newX = x + map(noM ise(log(x), log(y)), 0, 1, -space / 2, space); newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2); let maxR = pointSpace; if (newX > width * (1 - offset) && newX < width * offset) { if (newY > height * (1 - offset) && newY < height * offset) { let v1 = createVector(x, y); let v2 = createVector(newX, newY); let angleBetween = v1.angleBetween(v2); rotate(angleBetween / space); stroke(pointColor) fill(pointColor); maxR = points[i].r; for (var p = 0; p < i; p++) { maxR = min(maxR, dist(x, y, points[p].x, points[p].y) * 0.5); noStroke(); circle(x, y, maxR); points[i].x = newX; points[i].y = newY; points[i].r = maxR; points[i].l--; if (millis()>25000) { Add your script here <script id="snippet-random-code" type="text/javascript"> // DO NOT EDIT THIS SECTION let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alpM habet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n+M +) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); margin: 0px; <script type="text/javascript"> const rand = mathRand(); function T1(rand) { // calculate rarity by yourself if (rand > 0.5) { return true; return false // window.$generativeTraits contain list traits for token // you need to populate a $M generativeTraits object in the window object // window.$generativeTraits = { // "T1": T1(rand), // console.log(window.$generativeTraits) Add your code here // const container = document.createElement("div") // container.innerHTML = "<span>seed: " + seed + "</span><br>"; // document.body.prepend(container) Add your code here text/plain;charset=utf-8 text/plain;charset=utf-8 %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzAiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzAiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKCvyAkIn0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIENvdW50IiwidmFsdWUiOjc0fSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgU3ltbWV0cnkiLCJ2YWx1ZSI6Ikhvcml6bM 250YWwifSx7InRyYWl0X3R5cGUiOiLigr8gQ291bnQiLCJ2YWx1ZSI6MzR9LHsidHJhaXRfdHlwZSI6IiQgQ291bnQiLCJ2YWx1ZSI6NDB9XX0=" data-message="BitGlyphs #370 - bc1ptq00d8u5ynpe3cv0man4y6rsxmc9h2qw83upgh6ux3hg33p0wm5qt5wzga" data-signature="69515d0b515ec34e55b51221969b0b42342c263c45c687738dc071b367de5fa542bff074acbdce5f7a9217822e35984b84b37ae1a086895bed336f5454c8df4e"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="28.8" letter-spacing="-4.8"><tspan x="0" dy="-178.5">. ..$..</tspan><tspan x="0" dy="24"> .....$$$$......</tspan><tspan x="0" dy="24">$. ........$</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">.. ....</tspan><tspan x="0" dy="24">..... </tspan><tspan x="0" dy="24">.$ .....$..$.</tspan><tspan x="0" dy="24"> $....$...$.</tspan><tspan x="0" dy="24"> $....$...$.</tspan><tspan x="0" dy="24">.$ .....$..$.</tspan><tspan x="0" dy="24">..... </tspan><tspan x="0L ....</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">$. ........$</tspan><tspan x="0" dy="24"> .....$$$$......</tspan><tspan x="0" dy="24">. ..$..</tspan></text></svg>h! text/html;charset=utf-8 <meta charset="UTF-8"> <title>noise</title> Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below. Are we missing an important library? Let us know @generative_xyz. <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <!-- c2.min.js@1.0.0 <script sandbox="allow-scripts" type="textM /javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script> <!-- chromajs@2.4.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script> <!-- p5.grain.js@0.6.1 <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script> <!-- threejs@r124 <script sandbox="allow-scripts" type="text/jM avascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script> <!-- tonejs@14.8.49 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script> <script type="text/javascript"> let nextLineY = 30; let colors = []; let colors2 = []; function setup() { cSize = min(windowHeight, windowWidth); createCanvas(cSize, cSize); (let i = 0; i < 5; i++) { colors.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0), mathrand(255, 0))) colors2.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0))) noLoop(); function draw() { console.log(height, width) while (nextLineY < height) { drawLine(0, nextLineY) nextLineY = nextLineY + 3 function drawLine(x, y) { let nextRectX = x; noStroke() while (nextRectX < width) { let rectWidth = mathrand(2, 1); let rectHight = mathrand(3, 1); fill(colors[mathrand(colors.length - 1, 0)]) rect(nextRectX, y - rectHight / 2, rectWidth, rectHight); nextRectX = nextRectX + rectWidth; // if (rectHight / 2 + y > nextLineY) { // nextLineY = rectHight / 2 + y; // } let numberOfBigBlocks = mathrand(45, 7); for (let i = 0; i < numberOfBigBlocks; i++) { stroke(colors2[mathrand(colors2.length - 1, 0)]); strokeWeight(mathrand(3, 1)) noFill() rectWidth = mathrand(20, 1); rectHight = mathrand(35, 1); rect(mathrand(width, 0), y - rectHight / 2, rectWidth, rectHight); function mathrand(max, min, float = false) { const val =M mathRand() * (max - min + 1) + min; if (float) return val; return Math.floor(val); <script id="snippet-random-code" type="text/javascript"> // DO NOT EDIT THIS SECTION let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alM phabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (letM n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return funM u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); margin: 0; padding: 0; /* leave it to hide the scrollbars */ overflow: hidden; <script type="text/javascript"> const rand = mathRand(); function T1(rand) { // calculate rarity by yourself if (rand > 0.5) { return M } else { return false // window.$generativeTraits contain list traits for token // you need to populate a $generativeTraits object in the window object window.$generativeTraits = { "T1": T1(rand), Add your code here // const container = document.createElement("div") // container.innerHTML = "<span>seed: " + seed + "</span><br>"; // document.body.prepend(container) Add your code here %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz !22222222222222222222222222222222222222222222222222 %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYM text/plain;charset=utf-8 c/Foundry USA Pool #dropgold/ text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 Mainconcept MP4 Video Media Handlerg Lavc59.37.100 libvpx-vp9g Mainconcept MP4 Sound Media Handlerg Lavc59.37.100 libopusg text/html;charset=utf-8 <meta content="text/html; charset=windows-1252"http-equiv=Content-Type><title>Strawberry Pop-Tart Blow-Torches</title><h1><img alt=""src="https://www.pmichaud.com/Strawberry Pop-Tart Blow-Torches_files/ptart-1c.gif"align=middle> Strawberry Pop-Tart Blow-Torches</h1><em>Last Updated: 2G August 1994</em><h2>Author</h2><a href=http://www.pmichaud.com/ ><address>Patrick R. Michaud, pmichaud@pobox.com</address></a><h2>Abstract</h2>Strawberry Pop Tarts may be a cheap and inexpensive source of incendiary devices. ToastersM which fail to eject Pop Tarts cause the Pop Tarts to emit flames 10-18 inches in height.<h2>Introduction</h2>Last year, an article by well-known newspaper columnist <em>Dave Barry</em> noted that <em>Kellogg's Strawberry Pop Tarts</em> (SPTs) could be made to emit flames "like a blow torch" if left in a toaster too long. Given previous work in the field of food-entertainment (see <a href=http://www.pmichaud.com/grape/ ><em>Fun With Grapes - A Case Study</em></a>), it was obvious that this was a new frontier that rM equires further exploration. The present work describes our independent verification and experience with SPT-based combustion.<h2>Materials Used</h2>Only two basic materials are needed to cause SPT-combustion: a (hopefully inexpensive) toaster and some Strawberry Pop Tarts (Figure 1). In this work, the authors used <em>Kellogg's Strawberry Pop Tarts with Real Smucker's Fruit</em>. SPTs can be obtained either with or without frosting; the non-frosted variety were used for this experiment.<p><a href=https://www.pmichM aud.com/toast/toast-1a.gif><img alt="Figure 1"src=http://www.pmichaud.com/toast/toast-1b.gif><br><strong>Figure 1. Toaster and Strawberry Pop Tarts</strong></a><p>In addition to the basic materials, a number of safety-related items were needed to conduct this experiment. First, a suitable location for the experiment was required, it being expected that the kitchen was not the appropriate place for blow-torching SPTs. The author's driveway was chosen as a suitable site. Second, an appropriate means for extinguishingM the SPTs would be needed; a research assistant brought along some baking soda for the purpose.<h2>Experiment Preparation</h2>The toaster and SPT both had to be properly prepared for this experiment. In order to guarantee that the SPT would receive sufficient heat to begin combustion, the toaster was set to its highest setting and the lever was jammed in the "down" position using adhesive cellophane. A SPT was removed from the box and its protective packaging and carefully placed into the toaster slot (Figure 2).<pM ><a href=https://www.pmichaud.com/toast/toast-2a.gif><img alt="Figure 2"src=http://www.pmichaud.com/toast/toast-2c.gif><br><strong>Figure 2. Preparation of Toaster and SPT</strong></a><p>Next, the toaster and SPT were taken to the driveway, and an extension cord was arranged to provide power to the toaster. At this point, we were ready to begin the experiment.<p><a href=https://www.pmichaud.com/toast/toast-3a.gif><img alt="Figure 3"src=http://www.pmichaud.com/toast/toast-3c.gif><br><strong>Figure 3. Toaster PrepareM d for SPT combustion</strong></a><h2>The Experiment and Observations</h2>The toaster was plugged in. First the toaster went through a normal "toasting" cycle (approximately 60 seconds), which more than thoroughly cooked the SPT (since the toaster was set to its darkest setting). By this point we could definitely detect a burnt SPT aroma. The toaster then attempted to eject the SPT, but was prevented from doing so by the adhesive cellophane. The toaster then began emitting loud rattling and buzzing noises due to itsM inability to eject the SPT.<p>(At this point the researchers became somewhat concerned that the noise from the toaster would wake the neighbors and attract undue attention. However, we decided that we were already committed to the experiment and that the neighbors would be able to sacrifice some sleep in the name of science.)<p>Soon thereafter, large amounts of smoke began pouring out of the toaster. The researchers noticed that some of the neighbors down the street were beginning to get a little curious, but the M experiment proceeded nonetheless. Approximately 40 seconds later, small flames began licking their way out of the toaster. The flames steadily grew larger and larger until reaching a maximum height of about 18 inches above the top of the toaster. Figure 4 presents a time-series collage of the flames emitted from the SPT.<p><a href=https://www.pmichaud.com/toast/toast-4a.gif><img alt="Figure 4"src=http://www.pmichaud.com/toast/toast-4c.gif><br><strong>Figure 4. Time Series Photograph of Flaming SPT</strong></a><p>AsM the flames were reaching their maximum height, the toaster abruptly stopped making buzzing noises. We speculate that the flames had by this point shorted the electronics within the toaster. The toaster was quickly disconnected from the primary electrical source to avoid any potential damage to the author's house. At this point, the researchers also realized that the heat could inadvertently melt the adhesive cellophane and cause the flaming SPTs to suddenly eject from the toaster. Unfortunately, this did not occurM . The flames continued for several minutes.<p>At this point there was some slight concern that the flames might take considerable time to diminish. We then enlisted the help of a reluctant research assistant to sprinkle baking soda on the flames. (The reluctance was understandable given the potential for premature SPT ejection described in the above paragraph.) The baking soda quickly extinguished the flames and produced still further smoke (Figure 5a).<p><a href=https://www.pmichaud.com/toast/toast-5a.gif><img altM ="Figure 5"src=http://www.pmichaud.com/toast/toast-5c.gif><br><strong>Figure 5. Extinguising the SPT</strong></a><p>Once the flames were extinguished, the researchers noted an unanticipated problem: what to do with the (now defunct) toaster and the spent SPT. It became obvious that the toaster could not be returned to the author's house due to both a continued potential fire hazard and the smell of burnt strawberries. In addition, it was noted that the toaster was still "too hot to handle," necessitating the use ofM a nearby garden hose to cool the toaster off. This is illustrated in Figure 5b. Finally it was decided to just leave the toaster by the curb for the sanitation experts to pick up the next morning (Figure 6.)<p><a href=https://www.pmichaud.com/toast/toast-6a.html><img alt="Figure 6"src=http://www.pmichaud.com/toast/toast-6c.gif><br><strong>Figure 6. Toaster Disposal</strong></a><p><h2>Summary and Recommendations</h2>In summary, overcooking the SPT did produce a good size flame. The effect was not as pronounced as tM he researchers had hoped, but was satisfying nonetheless. The research assistant noted that the flames produced did appear to have some color variation. We believe that frosted SPTs may successfully produce even larger torches. Further research in this area is warranted.<p>We did desire to repeat the experiment with the remaining five SPTs, but we could not do so because there were no more suitable toasters available for further experiments. In the future, we recommend that toasters be sold in six-packs to accomodaM te important SPT research. Instead, the remaining SPTs were sacrified over the course of the next several days in private, undocumented consumption experiments.<h2>Acknowledgements</h2>Special thanks to Jennifer "Svetlana" Reckard for her suggestions and proofreading of this work.<p><hr><h2>Followup Comments</h2><p>The response to my Strawberry Pop Tart article has been overwhelming. In October 1994 alone it's been accessed more than 2000 times. Here are some of the terrific followup messages I've received:<ol><li>M <a href=https://www.pmichaud.com/toast/follow1.html>12-Aug-94: <tt>schnitz@unipress.com</tt></a><li><a href=https://www.pmichaud.com/toast/follow2.html>13-Oct-94: <tt>avonruff@hydra.urbana.mcd.mot.com</tt> </a>Please send me your comments! I'm especially interested to learn how you found out about this page, since I haven't advertised it much of anywhere.<hr><address><img alt=""src=http://www.pmichaud.com/toast/krnbo24.gif align=top> <a href=http://www.pmichaud.com/ >Patrick R. Michaud/pmichaud@pobox.com</a><addres s></address></address></ol>h! c/Foundry USA Pool #dropgold/ {"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "green"}, {"trait_type": "Body", "value": "golden armor"}, {"trait_type": "Mane", "value": "blonde"}, {"trait_type": "Claws", "value": "regular"}, {"trait_type": "Eyes", "value": "golden"}, {"trait_type": "Headgear", "value": "thief hood"}, {"trait_type": "Artifacts", "value": "wizard staff"}]} {"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "yellow"}, {"trait_type": "Body", "value": "dark blue"}, {"trait_type": "Mane", "value": "white"}, {"trait_type": "Claws", "value": "long claws"}, {"trait_type": "Eyes", "value": "white"}, {"trait_type": "Headgear", "value": "dark wizard hat"}, {"trait_type": "Artifacts", "value": "dragon wings"}]} {"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "pink"}, {"trait_type": "Body", "value": "black"}, {"trait_type": "Mane", "value": "blue fire"}, {"trait_type": "Claws", "value": "long claws"}, {"trait_type": "Eyes", "value": "white"}, {"trait_type": "Headgear", "value": "mohawk"}, {"trait_type": "Artifacts", "value": "ghostly companion"}]} {"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "yellow"}, {"trait_type": "Body", "value": "golden armor"}, {"trait_type": "Mane", "value": "black"}, {"trait_type": "Claws", "value": "bloody"}, {"trait_type": "Eyes", "value": "regular"}, {"trait_type": "Headgear", "value": "badger"}, {"trait_type": "Artifacts", "value": "frozen staff"}]} {"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "green"}, {"trait_type": "Body", "value": "black"}, {"trait_type": "Mane", "value": "black"}, {"trait_type": "Claws", "value": "long claws"}, {"trait_type": "Eyes", "value": "white"}, {"trait_type": "Headgear", "value": "mohawk"}, {"trait_type": "Artifacts", "value": "pirate flag"}]} {"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "green"}, {"trait_type": "Body", "value": "dark blue"}, {"trait_type": "Mane", "value": "grey"}, {"trait_type": "Claws", "value": "regular"}, {"trait_type": "Eyes", "value": "blue"}, {"trait_type": "Headgear", "value": "wizard hat"}, {"trait_type": "Artifacts", "value": "lamp"}]} {"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "yellow"}, {"trait_type": "Body", "value": "brown"}, {"trait_type": "Mane", "value": "dragon"}, {"trait_type": "Claws", "value": "regular"}, {"trait_type": "Eyes", "value": "green"}, {"trait_type": "Headgear", "value": "dark wizard hat"}, {"trait_type": "Artifacts", "value": "shield"}]} {"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "moon"}, {"trait_type": "Body", "value": "blue"}, {"trait_type": "Mane", "value": "greenish"}, {"trait_type": "Claws", "value": "long claws"}, {"trait_type": "Eyes", "value": "regular"}, {"trait_type": "Headgear", "value": "none"}, {"trait_type": "Artifacts", "value": "cape"}]} {"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "purple"}, {"trait_type": "Body", "value": "dark blue"}, {"trait_type": "Mane", "value": "white"}, {"trait_type": "Claws", "value": "regular"}, {"trait_type": "Eyes", "value": "red"}, {"trait_type": "Headgear", "value": "unicorn"}, {"trait_type": "Artifacts", "value": "eagle"}]} {"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "moon"}, {"trait_type": "Body", "value": "zombie"}, {"trait_type": "Mane", "value": "black"}, {"trait_type": "Claws", "value": "BTC whitepaper"}, {"trait_type": "Eyes", "value": "regular"}, {"trait_type": "Headgear", "value": "mohawk"}, {"trait_type": "Artifacts", "value": "pickaxe"}]} {"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "pink"}, {"trait_type": "Body", "value": "tiger"}, {"trait_type": "Mane", "value": "grey"}, {"trait_type": "Claws", "value": "BTC whitepaper"}, {"trait_type": "Eyes", "value": "regular"}, {"trait_type": "Headgear", "value": "mohawk"}, {"trait_type": "Artifacts", "value": "arrow wounds"}]} {"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "yellow"}, {"trait_type": "Body", "value": "dark blue"}, {"trait_type": "Mane", "value": "greenish"}, {"trait_type": "Claws", "value": "wrapped"}, {"trait_type": "Eyes", "value": "red"}, {"trait_type": "Headgear", "value": "thief hood"}, {"trait_type": "Artifacts", "value": "none"}]} (((((((((((((((((((((((((((((((((((((((((((((((((( /ViaBTC/Mined by robertart67/, FjDOUT:5FEDE0C7BE321C43F03C71D408A3ABADBDD34A6F48F233C7F988FB4D057E0895 CjA=:BNB.BNB:bnb1auahtu2vczn0fkd8yy2gtp5mdanvvn32krr4r5:759028313::0 text/plain;charset=utf-8 %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( c/Foundry USA Pool #dropgold/ text/plain;charset=utf-8 .IEC 61966-2-1 Default RGB Colour Space - sRGB -Reference Viewing Condition in IEC 61966-2-1 Copyright International Color Consortium, 2015 Adobe Photoshop CC (Macintosh) cropWhenPrintingbool -http://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c140 79.160451, 2017/05/06-01:08:21 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="M http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmp:CreatorTool="Adobe Photoshop CC (Macintosh)" xmp:CreateDate="2023-02-13T16:49:54-05:00" xmp:MetadataDate="2023-02-13T16:53:04-05:00" xmp:ModifyDate="2023-02-13T16:53:04-05:00" dc:format="image/jpeg" xmpMM:InstanceID="xmp.iid:59fec36d-ac63-4332-a053-590484504792" xmpMM:DocumentID="adobe:docid:photoshop:133b7ce4-bbdf-6542-80fd-55a09e52ab53" xmpMM:OrigiM nalDocumentID="xmp.did:27c8142f-0d5f-4c4e-a595-f438ad52bdcc" photoshop:ColorMode="3" photoshop:ICCProfile="Adobe RGB (1998)"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:27c8142f-0d5f-4c4e-a595-f438ad52bdcc" stEvt:when="2023-02-13T16:49:54-05:00" stEvt:softwareAgent="Adobe Photoshop CC (Macintosh)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:ccfd8456-0f35-4ec0-955d-4f0f1865ecd7" stEvt:when="2023-02-13T16:53:04-05:00" stEvt:softwareAgent="Adobe Photoshop CC (MacintM osh)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/jpeg"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/jpeg"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:59fec36d-ac63-4332-a053-590484504792" stEvt:when="2023-02-13T16:53:04-05:00" stEvt:softwareAgent="Adobe Photoshop CC (Macintosh)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iiM d:ccfd8456-0f35-4ec0-955d-4f0f1865ecd7" stRef:documentID="xmp.did:27c8142f-0d5f-4c4e-a595-f438ad52bdcc" stRef:originalDocumentID="xmp.did:27c8142f-0d5f-4c4e-a595-f438ad52bdcc"/> <photoshop:DocumentAncestors> <rdf:Bag> <rdf:li>2DE6BF3FF671BF9011B70BC7E21296EA</rdf:li> <rdf:li>820541E1EE7BBEF3D36BACA74D22D033</rdf:li> <rdf:li>967545E42E2294A8E7EAF5453C559F0C</rdf:li> <rdf:li>adobe:docid:photoshop:e5f9a36c-6f25-be40-bda5-6cdbc52d5699</rdf:li> <rdf:li>xmp.did:f194f9b2-0616-4885-aee3-c11d0645e236</rdf:li> </rdf:Bag> </pM hotoshop:DocumentAncestors> </rdf:Description> </rdf:RDF> </x:xmpmeta> M M M M <?xpacket end="w"?> Copyright 1999 Adobe Systems Incorporated 6j4ion:7.QmWCpZcsnX2XbayktrweB9C5Gu2NhmAEZCa1GeAv3jKzcJ text/plain;charset=utf-8 text/html;charset=utf-8 <meta charset="UTF-8"> <title>Colorful Matrix</title> Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below. Are we missing an important library? Let us know @generative_xyz. <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <!-- c2.min.js@1.0.0 <script sandboxM ="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script> <!-- chromajs@2.4.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script> <!-- p5.grain.js@0.6.1 <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script> <!-- threejs@r124 <script sandbox="M allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script> <!-- tonejs@14.8.49 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script> <!-- svgjs@3.1.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script> <!-- aframejs@1.2.0 <script sandbox="allow-scriM pts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script> <!-- babylonjs@5.47.0 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script> <!-- paperjs@0.12.17 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script> <!-- regljs@2.1.0 <script sandboxM ="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script> <script type="text/javascript"> Add your script here Add your script here <script id="snippet-random-code" type="text/javascript"> // DO NOT EDIT THIS SECTION let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179)M return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = M l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); width: 100vw; height: 100vh; margin: 0; background: black; overflow: hidden; <canvas width="100%" height="1000" id="canv" /> <script type="text/javascript"> const rand = mathRand(); function T1(rand) { // calculate rarity by yourself if (rand > 0.5) { return true; return false // window.$generativeTraits contain list traits for token // you need to populate a $M generativeTraits object in the window object window.$generativeTraits = { "T1": T1(rand), console.log(window.$generativeTraits) Add your code here // const container = document.createElement("div") // container.innerHTML = "<span>seed: " + seed + "</span><br>"; body.prepend(container) Add your code here // Get the canvas node and the drawing context const canvas = document.getElementById('canv'); console.log(canvas) const ctx = canvas.getContext('2d'); // set the width and height of the canvas const w = canvas.width = document.body.offsetWidth; const h = canvas.height = document.body.offsetHeight; // draw a black rectangle of width and height M same as that of the canvas ctx.fillStyle = '#001'; ctx.fillRect(0, 0, w, h); const cols = Math.floor(w / 20) + 1; const ypos = Array(cols).fill(0); function matrix () { // Draw a semitransparent black rectangle on top of previous drawing ctx.fillStyle = '#0001'; ctx.fillRect(0, 0, w, h); // Set color to green and font to 15pt monospace in the drawing context var randomColor = Math.floor( mathRand()*16777215).toString(16); var fSize = Math.floor( mathRand() * 15) + 3; ctx.fillStyle = '#'+randomColor; ctx.font = fSize+'pt monospace'; // for each column put a random character at the end ypos.forEach((y, ind) => { // generate a random character const text = String.fromCharCode( mathRand() * 128); // x coordinate of the column, y coordinate is already given const x = ind * 20; // render the character at (x, y) ctx.fillText(text, x, y); // randomly reset the end of the column if it's at least 100px high if (y > 100 + mathRand() * 1000L // otherwise just move the y coordinate for the column 20px down, else ypos[ind] = y + 20; // render the animation at 20 FPS. setInterval(matrix, 15); text/html;charset=utf-8 <meta charset="UTF-8"> <title>Colorful Matrix</title> Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below. Are we missing an important library? Let us know @generative_xyz. <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <!-- c2.min.js@1.0.0 <script sandboxM ="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script> <!-- chromajs@2.4.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script> <!-- p5.grain.js@0.6.1 <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script> <!-- threejs@r124 <script sandbox="M allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script> <!-- tonejs@14.8.49 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script> <!-- svgjs@3.1.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script> <!-- aframejs@1.2.0 <script sandbox="allow-scriM pts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script> <!-- babylonjs@5.47.0 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script> <!-- paperjs@0.12.17 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script> <!-- regljs@2.1.0 <script sandboxM ="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script> <script type="text/javascript"> Add your script here Add your script here <script id="snippet-random-code" type="text/javascript"> // DO NOT EDIT THIS SECTION let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179)M return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = M l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); width: 100vw; height: 100vh; margin: 0; background: black; overflow: hidden; <canvas width="100%" height="1000" id="canv" /> <script type="text/javascript"> const rand = mathRand(); function T1(rand) { // calculate rarity by yourself if (rand > 0.5) { return true; return false // window.$generativeTraits contain list traits for token // you need to populate a $M generativeTraits object in the window object window.$generativeTraits = { "T1": T1(rand), console.log(window.$generativeTraits) Add your code here // const container = document.createElement("div") // container.innerHTML = "<span>seed: " + seed + "</span><br>"; body.prepend(container) Add your code here // Get the canvas node and the drawing context const canvas = document.getElementById('canv'); console.log(canvas) const ctx = canvas.getContext('2d'); // set the width and height of the canvas const w = canvas.width = document.body.offsetWidth; const h = canvas.height = document.body.offsetHeight; // draw a black rectangle of width and height M same as that of the canvas ctx.fillStyle = '#001'; ctx.fillRect(0, 0, w, h); const cols = Math.floor(w / 20) + 1; const ypos = Array(cols).fill(0); function matrix () { // Draw a semitransparent black rectangle on top of previous drawing ctx.fillStyle = '#0001'; ctx.fillRect(0, 0, w, h); // Set color to green and font to 15pt monospace in the drawing context var randomColor = Math.floor( mathRand()*16777215).toString(16); var fSize = Math.floor( mathRand() * 15) + 3; ctx.fillStyle = '#'+randomColor; ctx.font = fSize+'pt monospace'; // for each column put a random character at the end ypos.forEach((y, ind) => { // generate a random character const text = String.fromCharCode( mathRand() * 128); // x coordinate of the column, y coordinate is already given const x = ind * 20; // render the character at (x, y) ctx.fillText(text, x, y); // randomly reset the end of the column if it's at least 100px high if (y > 100 + mathRand() * 1000L // otherwise just move the y coordinate for the column 20px down, else ypos[ind] = y + 20; // render the animation at 20 FPS. setInterval(matrix, 15); 4j2DC-L5:Stw9hib/x1bpqV7O4XrcxLpHKK6YUf03wxM6guui2yA= text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 FjDOUT:4D9707B4565844E38EE89F033D7EF75D6750DAD6AD882144F1610D7524EF6573 text/plain;charset=utf-8 text/plain;charset=utf-8 CjA=:ETH.ETH:0xa98B1F9782BbC48AB7C4E5a13492F46996d9154B:140023494::0 text/html;charset=utf-8 <meta charset="UTF-8"> <title>Colorful Matrix</title> Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below. Are we missing an important library? Let us know @generative_xyz. <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <!-- c2.min.js@1.0.0 <script sandboxM ="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script> <!-- chromajs@2.4.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script> <!-- p5.grain.js@0.6.1 <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script> <!-- threejs@r124 <script sandbox="M allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script> <!-- tonejs@14.8.49 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script> <!-- svgjs@3.1.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script> <!-- aframejs@1.2.0 <script sandbox="allow-scriM pts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script> <!-- babylonjs@5.47.0 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script> <!-- paperjs@0.12.17 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script> <!-- regljs@2.1.0 <script sandboxM ="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script> <script type="text/javascript"> Add your script here Add your script here <script id="snippet-random-code" type="text/javascript"> // DO NOT EDIT THIS SECTION let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179)M return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = M l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); width: 100vw; height: 100vh; margin: 0; background: black; overflow: hidden; <canvas width="100%" height="1000" id="canv" /> <script type="text/javascript"> const rand = mathRand(); function T1(rand) { // calculate rarity by yourself if (rand > 0.5) { return true; return false // window.$generativeTraits contain list traits for token // you need to populate a $M generativeTraits object in the window object window.$generativeTraits = { "T1": T1(rand), console.log(window.$generativeTraits) Add your code here // const container = document.createElement("div") // container.innerHTML = "<span>seed: " + seed + "</span><br>"; body.prepend(container) Add your code here // Get the canvas node and the drawing context const canvas = document.getElementById('canv'); console.log(canvas) const ctx = canvas.getContext('2d'); // set the width and height of the canvas const w = canvas.width = document.body.offsetWidth; const h = canvas.height = document.body.offsetHeight; // draw a black rectangle of width and height M same as that of the canvas ctx.fillStyle = '#001'; ctx.fillRect(0, 0, w, h); const cols = Math.floor(w / 20) + 1; const ypos = Array(cols).fill(0); function matrix () { // Draw a semitransparent black rectangle on top of previous drawing ctx.fillStyle = '#0001'; ctx.fillRect(0, 0, w, h); // Set color to green and font to 15pt monospace in the drawing context var randomColor = Math.floor( mathRand()*16777215).toString(16); var fSize = Math.floor( mathRand() * 15) + 3; ctx.fillStyle = '#'+randomColor; ctx.font = fSize+'pt monospace'; // for each column put a random character at the end ypos.forEach((y, ind) => { // generate a random character const text = String.fromCharCode( mathRand() * 128); // x coordinate of the column, y coordinate is already given const x = ind * 20; // render the character at (x, y) ctx.fillText(text, x, y); // randomly reset the end of the column if it's at least 100px high if (y > 100 + mathRand() * 1000L // otherwise just move the y coordinate for the column 20px down, else ypos[ind] = y + 20; // render the animation at 20 FPS. setInterval(matrix, 15); text/html;charset=utf-8 <meta charset="UTF-8"> <title>Colorful Matrix</title> Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below. Are we missing an important library? Let us know @generative_xyz. <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <!-- c2.min.js@1.0.0 <script sandboxM ="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script> <!-- chromajs@2.4.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script> <!-- p5.grain.js@0.6.1 <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script> <!-- threejs@r124 <script sandbox="M allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script> <!-- tonejs@14.8.49 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script> <!-- svgjs@3.1.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script> <!-- aframejs@1.2.0 <script sandbox="allow-scriM pts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script> <!-- babylonjs@5.47.0 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script> <!-- paperjs@0.12.17 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script> <!-- regljs@2.1.0 <script sandboxM ="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script> <script type="text/javascript"> Add your script here Add your script here <script id="snippet-random-code" type="text/javascript"> // DO NOT EDIT THIS SECTION let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179)M return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = M l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); width: 100vw; height: 100vh; margin: 0; background: black; overflow: hidden; <canvas width="100%" height="1000" id="canv" /> <script type="text/javascript"> const rand = mathRand(); function T1(rand) { // calculate rarity by yourself if (rand > 0.5) { return true; return false // window.$generativeTraits contain list traits for token // you need to populate a $M generativeTraits object in the window object window.$generativeTraits = { "T1": T1(rand), console.log(window.$generativeTraits) Add your code here // const container = document.createElement("div") // container.innerHTML = "<span>seed: " + seed + "</span><br>"; body.prepend(container) Add your code here // Get the canvas node and the drawing context const canvas = document.getElementById('canv'); console.log(canvas) const ctx = canvas.getContext('2d'); // set the width and height of the canvas const w = canvas.width = document.body.offsetWidth; const h = canvas.height = document.body.offsetHeight; // draw a black rectangle of width and height M same as that of the canvas ctx.fillStyle = '#001'; ctx.fillRect(0, 0, w, h); const cols = Math.floor(w / 20) + 1; const ypos = Array(cols).fill(0); function matrix () { // Draw a semitransparent black rectangle on top of previous drawing ctx.fillStyle = '#0001'; ctx.fillRect(0, 0, w, h); // Set color to green and font to 15pt monospace in the drawing context var randomColor = Math.floor( mathRand()*16777215).toString(16); var fSize = Math.floor( mathRand() * 15) + 3; ctx.fillStyle = '#'+randomColor; ctx.font = fSize+'pt monospace'; // for each column put a random character at the end ypos.forEach((y, ind) => { // generate a random character const text = String.fromCharCode( mathRand() * 128); // x coordinate of the column, y coordinate is already given const x = ind * 20; // render the character at (x, y) ctx.fillText(text, x, y); // randomly reset the end of the column if it's at least 100px high if (y > 100 + mathRand() * 1000L // otherwise just move the y coordinate for the column 20px down, else ypos[ind] = y + 20; // render the animation at 20 FPS. setInterval(matrix, 15); text/html;charset=utf-8 <meta charset="UTF-8"> <title>Colorful Matrix</title> Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below. Are we missing an important library? Let us know @generative_xyz. <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <!-- c2.min.js@1.0.0 <script sandboxM ="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script> <!-- chromajs@2.4.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script> <!-- p5.grain.js@0.6.1 <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script> <!-- threejs@r124 <script sandbox="M allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script> <!-- tonejs@14.8.49 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script> <!-- svgjs@3.1.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script> <!-- aframejs@1.2.0 <script sandbox="allow-scriM pts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script> <!-- babylonjs@5.47.0 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script> <!-- paperjs@0.12.17 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script> <!-- regljs@2.1.0 <script sandboxM ="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script> <script type="text/javascript"> Add your script here Add your script here <script id="snippet-random-code" type="text/javascript"> // DO NOT EDIT THIS SECTION let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179)M return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = M l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); width: 100vw; height: 100vh; margin: 0; background: black; overflow: hidden; <canvas width="100%" height="1000" id="canv" /> <script type="text/javascript"> const rand = mathRand(); function T1(rand) { // calculate rarity by yourself if (rand > 0.5) { return true; return false // window.$generativeTraits contain list traits for token // you need to populate a $M generativeTraits object in the window object window.$generativeTraits = { "T1": T1(rand), console.log(window.$generativeTraits) Add your code here // const container = document.createElement("div") // container.innerHTML = "<span>seed: " + seed + "</span><br>"; body.prepend(container) Add your code here // Get the canvas node and the drawing context const canvas = document.getElementById('canv'); console.log(canvas) const ctx = canvas.getContext('2d'); // set the width and height of the canvas const w = canvas.width = document.body.offsetWidth; const h = canvas.height = document.body.offsetHeight; // draw a black rectangle of width and height M same as that of the canvas ctx.fillStyle = '#001'; ctx.fillRect(0, 0, w, h); const cols = Math.floor(w / 20) + 1; const ypos = Array(cols).fill(0); function matrix () { // Draw a semitransparent black rectangle on top of previous drawing ctx.fillStyle = '#0001'; ctx.fillRect(0, 0, w, h); // Set color to green and font to 15pt monospace in the drawing context var randomColor = Math.floor( mathRand()*16777215).toString(16); var fSize = Math.floor( mathRand() * 15) + 3; ctx.fillStyle = '#'+randomColor; ctx.font = fSize+'pt monospace'; // for each column put a random character at the end ypos.forEach((y, ind) => { // generate a random character const text = String.fromCharCode( mathRand() * 128); // x coordinate of the column, y coordinate is already given const x = ind * 20; // render the character at (x, y) ctx.fillText(text, x, y); // randomly reset the end of the column if it's at least 100px high if (y > 100 + mathRand() * 1000L // otherwise just move the y coordinate for the column 20px down, else ypos[ind] = y + 20; // render the animation at 20 FPS. setInterval(matrix, 15); Aj?=:ETH.ETH:0xb00424b141032A085C60CEFFeE785237BD5221FD:6333675::0 c/Foundry USA Pool #dropgold/ FjDOUT:A65C2C2805E98B3420949A4901A40C10D08175D636381E8146A8C75D7D371E1D FjDOUT:23855F34848A9367097C9D9F3D28C38AA50EF44B675AFE88ECD2A6D08BE4D6CD IjGREFUND:48FB70DEB03C9559A094B1A8BB412160871CF14F6CCD2E2A52500C7F7D5A15C7 $$$++111888??EEELLSSSYYY``gggmmmtt{{{ LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUM UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUM UUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUM UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUM UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU text/plain;charset=utf-8 2014-02-06T13:44:57-05:00 2014-02-06T13:44:57-05:00 <?xml version="1.0" encoding="iso-8859-1"?> <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools --> <svg height="800px" width="800px" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 299.429 299.429" xml:space="preserve"> <path style="fill:#010002;" d="M245.185,44.209H54.245L0,116.533l149.715,138.688l149.715-138.682L245.185,44.209z M206.746,121.778l-57.007,112.1l-56.53-112.1H206.746z M98.483,109.844l51.232-Mw 51.232l51.232,51.232H98.483z M164.119,56.142 h69.323L213.876,105.9L164.119,56.142z M86.311,105.142l-16.331-49h65.331L86.311,105.142z M79.849,121.778l49.632,98.429 L23.223,121.778H79.849z M220.136,121.778h56.071l-106.013,98.203L220.136,121.778z M225.148,109.844l18.694-47.538l35.652,47.538 H225.148z M58.266,58.738l17.035,51.112H19.929L58.266,58.738z"/> !22222222222222222222222222222222222222222222222222 %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYM !22222222222222222222222222222222222222222222222222 %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYM %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM text/html;charset=utf-8 <meta charset="UTF-8"> <title>Vertigo by josemiguel</title> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=>t.includes('i0')); if (seed == null) { seed = new URLSearchParams(window.location.search).get("seed"); let pattern = "seed="; for(let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233)M , i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return M $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); html, body { overflow: hidden; margin: 0; padding:M display: flex; justify-content: center; align-items: center; min-width: min(100vw, 100vh); min-height: min(100vw, 100vh); max-width: min(100vw, 100vh); max-height: min(100vw, 100vh); <script type="text/javascript"> const rand=mathRand();let fondo,relleno,gradualidad,velocidad,escalamiento,grosor,num2,vinotinto,blanco,negro,verdeoscuro;function setup(){randoM mSeed(9999*mathRand()),createCanvas(1e3,1e3),angleMode(DEGREES),gradualidad=int(random(6,355)),180!=gradualidad&&179!=gradualidad&&181!=gradualidad&&89!=gradualidad&&90!=gradualidad&&91!=gradualidad&&299!=gradualidad&&300!=gradualidad&&301!=gradualidad&&269!=gradualidad&&270!=gradualidad&&271!=gradualidad&&69!=gradualidad&&70!=gradualidad&&71!=gradualidad&&239!=gradualidad&&240!=gradualidad&&241!=gradualidad||(gradualidad+=4),console.log(gradualidad),lineacolorizada=color("rgba(255,254,254,0.3)");let o=random([1,2,M 3,4,5,6,7,8,9,10,11,12,13]);console.log(o),1==o&&(relleno1=color("#4703014C"),relleno2=color("#6908034C")),2==o&&(relleno1=color("#8E0E0F4C"),relleno2=color("#6F34304C")),3==o&&(relleno1=color("#9D5E594C"),relleno2=color("#B160734C")),4==o&&(relleno1=color("#B683804C"),relleno2=color("#DE9C794C")),5==o&&(relleno1=color("#2B524F4C"),relleno2=color("#1434314C")),6==o&&(relleno1=color("#3630624C"),relleno2=color("#49317E4C")),7==o&&(relleno1=color("#9F82AA4C"),relleno2=color("#92799C4C")),8==o&&(relleno1=color("#C76E7M 74C"),relleno2=color("#B8656E4C")),9==o&&(relleno1=color("#AF292A4C"),relleno2=color("#710D004C")),10==o&&(relleno1=color("#01343E4C"),relleno2=color("#00687A4C")),11==o&&(relleno1=color("#5A52814C"),relleno2=color("#6E5E914C")),12==o&&(relleno1=color("#49014A4C"),relleno2=color("#702D364C")),13==o&&(relleno1=color("#A549564C"),relleno2=color("#924C0F4C")),velocidad=.005,console.log(velocidad),puntoY=random(400,500),console.log(puntoY),escalamiento=3,grosor=2.5,console.log(grosor)}function Linea_libre_valorizada(){M fondo=random([0,1]),relleno=0==fondo?relleno1:relleno2;let o=puntoY;push();for(var l=0;l<=1500;l+=5)translate(width/2,height/2),rotate(gradualidad),translate(-width/2,-height/2),stroke(lineacolorizada),strokeWeight(grosor),line(l,o,0,0),push(),strokeWeight(grosor),fill(relleno),rect(l,o,100*escalamiento),pop();pop()}function draw(){background(relleno2),Linea_libre_valorizada(),gradualidad-=velocidad} <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzEiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzEiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKCvyDimaUifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6Njh9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiVmVydM GljYWwifSx7InRyYWl0X3R5cGUiOiLimaUgQ291bnQiLCJ2YWx1ZSI6NDB9LHsidHJhaXRfdHlwZSI6IuKCvyBDb3VudCIsInZhbHVlIjoyOH1dfQ==" data-message="BitGlyphs #371 - bc1p3yaecyh05ufywpexsfp0dljrrjkc5725decqmme4zslqs4s86wlq9lyvkd" data-signature="cf56b6462765da6b41ccf560ccef1c4a869e8c6e612d167cfef63224f46d9ade0da8b93f64756612c8b4eb75629f99a227f48c197877917a1f33997de7f2a4d7"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="24.5" letter-spacing="-0.5"><tspan x="0" dy="-178.5">.........M .......</tspan><tspan x="0" dy="24">.... ....</tspan><tspan x="0" dy="24">... ...</tspan><tspan x="0" dy="24">.. ..</tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24">... ...</tspan><tspan x="0" dy="24">.. ..</tspan><tspan x="0" dy="24">.... ....</tspan><tspan x="0"M? dy="24">................</tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24">.. ..</tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24">................</tspan></text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzMiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzMiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKWoCBPIn0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIENvdW50IiwidmFsdWUiOjQ4fSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgU3ltbWV0cnkiLCJ2YWx1ZSI6Ikhvcml6bM 250YWwifSx7InRyYWl0X3R5cGUiOiLilqAgQ291bnQiLCJ2YWx1ZSI6MzJ9LHsidHJhaXRfdHlwZSI6Ik8gQ291bnQiLCJ2YWx1ZSI6MTZ9XX0=" data-message="BitGlyphs #373 - bc1p3yaecyh05ufywpexsfp0dljrrjkc5725decqmme4zslqs4s86wlq9lyvkd" data-signature="5a81e4dd51dbaac77dcfc1ce63b83b98eed246547d999fad1e131a420d99bede4280e12f5facef476e8c93bcd4eee9f9d5ddebe3b899f04d3f893bf635c47f10"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="25.6" letter-spacing="-1.6"><tspan x="0" dy="-178.5">.. ...</tspan><tspan x="0" dy="24">....O.... ......</tspan><tspan x="0" dy="24"> ...</tspan><tspan x="0" dy="24">............. </tspan><tspan x="0" dy="24"> O...........O..</tspan><tspan x="0" dy="24">..O.....O...... </tspan><tspan x="0" dy="24">.. .</tspan><tspan x="0" dy="24">......... O.....</tspan><tspan x="0" dy="24">......... O.....</tspan><tspan x="0" dy="24">.. .</tspan><tspan x="0" dy="24">..O.....O...... </tspan><tspan x="0" dy="L O...........O..</tspan><tspan x="0" dy="24">............. </tspan><tspan x="0" dy="24"> ...</tspan><tspan x="0" dy="24">....O.... ......</tspan><tspan x="0" dy="24">.. ...</tspan></text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzIiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzIiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IlxcIn0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIENvdW50IiwidmFsdWUiOjQ2fSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgU3ltbWV0cnkiLCJ2YWx1ZSI6IlZlcnRpY2FsIM n0seyJ0cmFpdF90eXBlIjoiXFwgQ291bnQiLCJ2YWx1ZSI6NDZ9XX0=" data-message="BitGlyphs #372 - bc1p3yaecyh05ufywpexsfp0dljrrjkc5725decqmme4zslqs4s86wlq9lyvkd" data-signature="113ee1be4029088af93d0acf7d5392550a3872d2a0136f6321f563f48b4476b678bef6b2ac4adb28795e12512d238f896186da0c4ff5c7c89d8e45f6960801d8"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="24" letter-spacing="-0"><tspan x="0" dy="-178.5">.....\....\.....</tspan><tspan x="0" dy="24">.\..\......\..\.</tspan><tspM an x="0" dy="24">...\........\...</tspan><tspan x="0" dy="24">..\..........\..</tspan><tspan x="0" dy="24">.\....\..\....\.</tspan><tspan x="0" dy="24">\......\\......\</tspan><tspan x="0" dy="24">....\......\....</tspan><tspan x="0" dy="24">.....\....\.....</tspan><tspan x="0" dy="24">..\...\..\...\..</tspan><tspan x="0" dy="24">...\...\\...\...</tspan><tspan x="0" dy="24">....\......\....</tspan><tspan x="0" dy="24">\....\....\....\</tspan><tspan x="0" dy="24">...\..\..\..\...</tspan><tspan x="0" dy="24">..\....\Lw\....\..</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">....\......\....</tspan></text></svg>h! text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> Aj?=:ETH.ETH:0xb00424b141032A085C60CEFFeE785237BD5221FD:5408778::0 Bj@=:ETH.ETH:0x5A8b45Bf044e785b35cc70074a865BDa5E051847:26628267::0 (((((((((((((((((((((((((((((((((((((((((((((((((( text/plain;charset=utf-8 (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( H!@H!@H!@H!@H!@H!@H!@H!@H!@H text/plain;charset=utf-8 c/Foundry USA Pool #dropgold/ <svg viewBox="0 0 24 24" shape-rendering="crispEdges" preserveAspectRatio="xMinYMin meet" xmlns="http://www.w3.org/2000/svg"><path fill="#FFF5EE" d="M5,6H6V5H7V4H17V5H18V6H19V18H18V19H17V20H16V24H8V20H7V19H6V18H5Z"></path><path fill="#333" d="M8,24V20H7V19H6V18H5V6H6V5H7V4H17V5H18V6H19V18H18V19H17V20H16V24H17V20H18V19H19V18H20V13H21V9H20V6H19V5H18V4H17V3H7V4H6V5H5V6H4V9H3V13H4V18H5V19H6V20H7V24Z"></path><path fill="#DDD" d="M7,13V12H6V11H5V10H7V9H9V10H10V11H11V12H13V11H14V10H15V9H17V10H19V11H18V12H17V13H15V12H9V13ZM "></path><path fill="#333" d="M12,16H11V15H13V16H12V17H14V18H10V17H12V16Z"></path><path fill="#fc9" d="M7,10H8V11H9V12H15V11H16V10H17V11H16V12H8V11H7Z"></path><path fill="#320" d="M7,12V11H8V10H16V11H17V12H16V11H15V10H9V11H8V12Z"></path><path fill="#4AA02C" d="M3,14V13H4V14Z"></path><path fill="#333333" d="M9,22V21H10V22H11V21H13V22H14V21H15V22H14V23H13V22H11V23H10V22Z"></path><path fill="#2C3539" d="M3,10V9H21V10H19V12H18V13H14V12H13V10H11V12H10V13H6V12H5V10Z"></path><path fill="#EBDDE2" d="M2,20V6H3V5H4V4H5V3H6V2M^ H18V3H19V4H20V5H21V6H22V20H21V21H20V22H19V23H18V24H17V20H18V19H19V18H20V13H21V10H20V9H19V6H18V5H17V4H15V6H13V8H11V10H9V12H7V14H5V16H4V18H5V19H6V20H7V24H6V23H5V22H4V21H3V20Z"></path><path fill="#C68E17" d="M10,17H7V16H6V15H5V14H4V19H5V20H6V21H7V22H9V23H11V24H13V23H15V22H17V21H18V20H19V19H20V14H19V15H18V16H17V17H15V16H9V17H14V18H10V17Z"></path></svg>h! text/plain;charset=utf-8 Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura, la diritta via era smarrita. Ahi quanto a dir qual era esta selva selvaggia e aspra e forte che nel pensier rinova la paura! ma per trattar del ben ch Io non so ben ridir com era pien di sonno a quel punto che la verace via abbandonai. terminava quella valle avea di paura il cor compunto, guardai in alto e vidi le sue spalle che mena dritto altrui per ogne calle. Allor fu la paura un poco queta, che nel lago del cor m passai con tanta pieta. E come quei che con lena affannata, uscito fuor del pelago a la riva, acqua perigliosa e guata, si volse a retro a rimirar lo passo i posato un poco il corpo lasso, ripresi via per la piaggia diserta, Ed ecco, quasi al cominciar de l una lonza leggera e presta molto, che di pel macolato era coverta; e non mi si partia dinanzi al volto, mpediva tanto il mio cammino, fui per ritornar pi era dal principio del mattino, eran con lui quando l mosse di prima quelle cose belM di quella fiera a la gaetta pelle ora del tempo e la dolce stagione; che paura non mi desse Questi parea che contra me venisse alta e con rabbiosa fame, Ed una lupa, che di tutte brame sembiava carca ne la sua magrezza, questa mi porse tanto di gravezza io perdei la speranza de l quei che volontieri acquista, l tempo che perder lo face, n tutti suoi pensier piange e s tal mi fece la bestia sanza pace, ncontro, a poco a poco rovinava in basso loco, dinanzi a li occhi mi si fu offerto chi per lungo silenzio parea fioco. Quando vidi costui nel gran diserto, "Miserere di me", gridai a lui, "qual che tu sii, od ombra od omo certo!". Rispuosemi: "Non omo, omo gi parenti miei furon lombardi, Nacqui sub Iulio, ancor che fosse tardi, e vissi a Roma sotto Poeta fui, e cantai di quel giusto Anchise che venne di Troia, ritorni a tanta noia? non sali il dilettoso monte principio e cagion di tutta gioia?". tu quel Virgilio e quella fonte che spandi di parlar s "O de li altri poeti onore e lume, ha fatto cercar lo tuo volume. lo bello stilo che m Vedi la bestia per cu aiutami da lei, famoso saggio, ella mi fa tremar le vene e i polsi". "A te convien tenere altro v rispuose, poi che lagrimar mi vide, esto loco selvaggio; questa bestia, perM non lascia altrui passar per la sua via, che mai non empie la bramosa voglia, Molti son li animali a cui s saranno ancora, infin che enza, amore e virtute, tra feltro e feltro. Di quella umile Italia fia salute la vergine Cammilla, alo e Turno e Niso di ferute. nvidia prima dipartilla. che tu mi segui, e io sar e trarrotti di qui per loco etterno; ove udirai le disperate strida, vedrai li antichi spiriti dolenti, a la seconda morte ciascun grida; e vederai color che son contenti quando che sia a le beate genti. A le quai poi se tu vorrai salire, quello imperador che l ribellante a la sua legge, In tutte parti impera e quivi regge; E io a lui: "Poeta, io ti richeggio per quello Dio che tu non conoscesti, io fugga questo male e peggio, io veggia la porta di san Pietro e color c@ui tu fai cotanto mesti". Allor si mosse, e io li tenni dietro.h! iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sTypM e/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)" xmp:CreateDate="2023-02-21T15:59:10-05:00" xmp:MetadataDate="2023-02-22T03:48:36-05:00" xmp:ModifyDate="2023-02-22T03:48:36-05:00" dc:format="image/png" xmpMM:InstanceID="xmp.iid:b71a34fd-071e-8445-a2ff-d939782ac512" xmpMM:DocumentID="adobe:docid:photoshop:e28995af-b2e5-a841-aa0e-2476f8a776b5" xmpMM:OriginalDocumentID="xmp.did:72e15e1M d-f2b2-c741-8018-1127a6f9c617" photoshop:ColorMode="3"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:72e15e1d-f2b2-c741-8018-1127a6f9c617" stEvt:when="2023-02-21T15:59:10-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:40aba593-2858-a04e-993b-bda91cc3b696" stEvt:when="2023-02-22T03:48:36-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvtM :parameters="from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:b71a34fd-071e-8445-a2ff-d939782ac512" stEvt:when="2023-02-22T03:48:36-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:40aba593-2858-a04e-993b-bda91cc3b696" stRef:documentID="xmp.dM id:72e15e1d-f2b2-c741-8018-1127a6f9c617" stRef:originalDocumentID="xmp.did:72e15e1d-f2b2-c741-8018-1127a6f9c617"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> Adobe Photoshop CS6 (Windows) cropWhenPrintingbool http://ns.adobe.com/xap/1.0/ " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http:/M /ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)" xmp:CreateDate="2022-08-16T23:41:47-04:00" xmp:ModifyDate="2023-02-18T18:13:01-05:00" xmp:MetadataDate="2023-02-18T18:13:01-05:00" dc:format="image/jpeg" photoshop:ColorMode="3" photoshop:ICCProfile="sRGB IEC61966-2.1" xmpMM:InstanceID="xmp.iid:0B8C23E6DFAFED11AC75B6D5A107E06C" xmpMM:DocumentID="xmp.did:0A8C23E6DFAFED11AC75B6D5A107M E06C" xmpMM:OriginalDocumentID="xmp.did:0A8C23E6DFAFED11AC75B6D5A107E06C"> <photoshop:DocumentAncestors> <rdf:Bag> <rdf:li>xmp.did:068C23E6DFAFED11AC75B6D5A107E06C</rdf:li> </rdf:Bag> </photoshop:DocumentAncestors> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:0A8C23E6DFAFED11AC75B6D5A107E06C" stEvt:when="2022-08-16T23:41:47-04:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)"/> <rdf:li stEvt:action="converted" stEvt:parameters="from image/png to image/jpeg"/> <rdf:li stEvM t:action="saved" stEvt:instanceID="xmp.iid:0B8C23E6DFAFED11AC75B6D5A107E06C" stEvt:when="2023-02-18T18:13:01-05:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </x:xmpmeta> M M M M <?xpacket end="w"?> Copyright (c) 1998 Hewlett-Packard Company IEC http://www.iec.ch IEC http://www.iec.ch .IEC 61966-2.1 Default RGB colour space - sRGB .IEC 61966-2.1 Default RGB colour space - sRGB ,Reference Viewing Condition in IEC61966-2.1 ,Reference Viewing Condition in IEC61966-2.1 text/plain;charset=utf-8 text/plain;charset=utf-8 text/html;charset=utf-8 <meta charset="UTF-8"> <title>"Rays" by Pawe Dudko | pdudko.com</title> <script id="snippet-random-code" type="text/javascript"> // not editable let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() *M alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.lengthM ; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 let mathRand = sfc32(...cyrb128(seed)); margin: 0; padding: 0; overflow: hidden; <canvas id="myCanvas"></canvas> <script type="text/jaM console.log("seed:",seed);class Rnd{rD(){return mathRand()}rN(r,t){return r+(t-r)*this.rD()}rI(r,t){return Math.floor(this.rN(r,t+1))}rB(r){return this.rD()<r}}const R=new Rnd;class Perlin{constructor(){this.R=new Rnd,this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(var r=0;r<256;r++)this.p[r]=Math.floor(256*this.R.rD());for(this.perm=[],r=0;r<512;r++)this.perm[r]=this.p[255&r];this.simplex=[[0,1,2,3],[0,1,3M ,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2M ,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]}dot(r,t,e){return r[0]*t+r[1]*e}noise(r,t){var e,i,a=(r+t)*(.5*(Math.sqrt(3)-1)),o=Math.floor(r+a),l=Math.floor(t+a),n=(3-Math.sqrt(3))/6,s=(o+l)*n,g=r-(o-s),c=t-(l-s);g>c?(e=1,i=0):(e=0,i=1);var d=g-e+n,f=c-i+n,p=g-1+2*n,A=c-1+2*n,m=255&o,F=255&l,E=this.perm[m+this.perm[F]]%12,u=this.perm[m+e+this.perm[F+i]]%12,R=this.perm[m+1+this.perm[F+1]]%12,h=.5-g*g-c*c,B=.5-d*d-f*f,D=.5-p*p-A*A;return 70*((h<0?0:(h*=h)*h*M this.dot(this.grad3[E],g,c))+(B<0?0:(B*=B)*B*this.dot(this.grad3[u],d,f))+(D<0?0:(D*=D)*D*this.dot(this.grad3[R],p,A)))}}const perlin=new Perlin;function map(r,t,e,i,a){return i+(a-i)*(r-t)/(e-t)}let bckCol,dim=Math.min(window.innerWidth,window.innerHeight),spots=R.rI(10,25),radius=[],m=[],mOff=1e-4*R.rN(1,7),x=[],y=[],z=[],S=30,sRot=[],b=1,bOffset=R.rN(0,.005),bMag=1,xOff=[],yOff=[],pC=[],noiseFeat=mathRand()>.79,pFeat=R.rI(1,24),angleFeat=mathRand()>.87?0:mathRand()<.1?1:2,colorBackground=R.rI(0,1);const PI=Math.M PI,TWO_PI=2*PI;let blurV=[];blurV=blurV=0==angleFeat?[R.rN(0,R.rN(0,1)),0]:1==angleFeat?[0,R.rN(0,R.rN(0,1))]:[R.rN(-.9,.9),R.rN(0,.9)],Math.pow(blurV[0],2)+Math.pow(blurV[1],2)<.18&&(blurV[0]>blurV[1]?blurV[0]+=.35:blurV[1]+=.35);const vs2="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_resolution;varying vec2 v_texCoord;\nvoid main(){vec2 clipSpace=a_position/u_resolution*2.0-1.0;gl_Position=vec4(clipSpace*vec2(1,-1),0,1);v_texCoord=a_texCoord;}",fs2="precision mediump float;uniform sampler2D M u_image;varying vec2 v_texCoord;uniform vec2 dl;float rnd(vec3 scale,float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}\nvoid main(){vec4 col=vec4(0.0);float tt=0.0;float off=rnd(vec3(12.9898,78.233,151.7182),0.0);for(float t=-30.0;t<=30.0;t++){float pc=(t+off-0.5)/30.0;float w=1.0-abs(pc);vec4 spl=texture2D(u_image,v_texCoord+dl*pc);spl.rgb*=spl.a;col+=spl*w;tt+=w;}gl_FragColor=col/tt;}";function setup(){for(i=0;i<spots;i++)radius[i]=R.rI(dim/100,dim/4),m[i]=R.rN(0,100),x[i]=R.rN(0,dM im),y[i]=R.rN(0,dim),z[i]=R.rN(0,dim),xOff[i]=R.rN(4,10),yOff[i]=R.rN(4,10),sRot[i]=R.rN(0,TWO_PI);if(noiseFeat){let r=R.rI(20,200);for(i=0;i<r;i++)radius[spots+i]=R.rI(dim/400,dim/100),m[spots+i]=R.rN(0,10),y[spots+i]=R.rN(0,dim),z[spots+i]=R.rN(0,dim),x[spots+i]=R.rN(0,dim),xOff[spots+i]=R.rN(4,10),yOff[spots+i]=R.rN(4,10),sRot[spots+i]=R.rN(0,PI);spots+=r}angle=0==angleFeat?-PI/4:1==angleFeat?PI/4:R.rN(0,PI),p=pFeat;let r=1==p?["#0B1626","#2F1517","#4599B5","#A83882","#B4DDDD","#DBBEF2"]:2==p?["#0B1626","#2F1517M ","#4599B5","#A84B28","#B4DDDD","#C4E4A2"]:3==p?["#140000","#021c13","#003924","#005841","#750100","#990100","#d7bb30","#ccae00"]:4==p?["#1D1702","#2B0426","#650427","#AD2C00","#ddac0a","#c6c339","#E55130"]:5==p?["#200e36","#2B0426","#366290","#E27D52","#D3EAC0","#EDC557","#A8DAB9"]:6==p?["#200A0E","#080811","#006978","#170F08","#FBFBD6","#02E7CA","#729C9D"]:7==p?["#0A0A3D","#041604","#00C075","#87C000","#F9BD27","#FE8900","#FE003B"]:8==p?["#2A0002","#14060B","#664C4C","#EF3B01","#C11900","#A20005"]:9==p?["#000000"M ,"#0B1626","#68D1E6","#A6DAD7","#DFE3CB","#F2852F","#F96800"]:10==p?["#000000","#2F1517","#2AABCF","#6CBAB5","#C3CAA1","#E54508","#F32A00"]:11==p?["#200e36","#1A0210","#e04372","#5aa9e6","#4a4e69","#e04372","#e6b953"]:12==p?["#131303","#040207","#EFA72F","#EF7717","#77BFA7","#FBEAB5","#5D402E"]:13==p?["#1E1E3D","#002030","#009FAF","#CB323E","#EA6740","#ECC850"]:14==p?["#1E1E3D","#292B30","#592D2D","#DEB968","#FEFDDE","#3D4046"]:15==p?["#040207","#002030","#60A5AA","#FAEDC1","#5F5850","#C0B297"]:16==p?["#0F0F00","#0M 30313","#9C8C68","#FDA5A1","#9E7B52","#E1CC92"]:17==p?["#0A0A1A","#120202","#FF8B00","#000000","#649EE8","#917FFF"]:18==p?["#020202","#0A0A1A","#09BEBB","#12737C","#28211E","#FB344B"]:19==p?["#000000","#200B01","#F92900","#F1D593","#85B7B0","#EFD7A7"]:20==p?["#000000","#1A1A1A","#F35C4B","#F6A440","#F9C965","#FDE4AC","#FFFFB1"]:21==p?["#0D1626","#091425","#051738","#204E75","#005151","#A0995F"]:22==p?["#000000","#091425","#764E37","#DF8D78","#F0D3AE","#C4DFDB"]:23==p?["#020202","#1A1A1A","#605274","#8DB1C4","#F8BE7M 5","#E4615B","#D0303C"]:["#050505","#0F0F0F","#000000","#7F7F7F","#333333","#E5E5E5","#F0F0F0"];pC.push(...r);let t=pC.length-1;for(ii=0;ii<3;ii++)for(i=t-1;i<=t;i++)pC.push(pC[i])}var c=document.createElement("canvas");c.width=dim,c.height=dim;var ctx=c.getContext("2d");function draw(){for(ctx.beginPath(),ctx.rect(0,0,c.width,c.height),ctx.fillStyle=pC[colorBackground],ctx.fill(),i=0;i<spots;i++){let r=pC[i%pC.length],t=map(perlin.noise(m[i],i),-1,1,-dim/xOff[i],dim/xOff[i]),e=map(perlin.noise(m[i],i+200),-1,1,-diM m/yOff[i],dim/yOff[i]),a=map(perlin.noise(10*m[i],i+999),-1,1,-radius[i]/20,radius[i]/20);ctx.beginPath(),ctx.arc(x[i]+t,y[i]+e,radius[i]+a,0,2*Math.PI),ctx.fillStyle=r,ctx.fill(),m[i]+=mOff}bMag=map(perlin.noise(b,spots),-1,1,.8,1.2),render(),b+=bOffset,window.requestAnimationFrame(draw)}function createShader(r,t,e){var i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),r.getShaderParameter(i,r.COMPILE_STATUS))return i;r.deleteShader(i)}function createProgram(r,t,e){var i=r.createProgram();if(r.attachShM ader(i,t),r.attachShader(i,e),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS))return i;r.deleteProgram(i)}function setRectangle(r,t,e,i,a){let o=t,l=t+i,n=e,s=e+a;r.bufferData(r.ARRAY_BUFFER,new Float32Array([o,n,l,n,o,s,o,s,l,n,l,s]),r.STATIC_DRAW)}setup(),window.requestAnimationFrame(draw);const canvasGL=document.getElementById("myCanvas");canvasGL.width=dim,canvasGL.height=dim;const gl=canvasGL.getContext("webgl");var vertexShader=createShader(gl,gl.VERTEX_SHADER,vs2),fragmentShader=createShader(gl,gl.FRM AGMENT_SHADER,fs2),program=createProgram(gl,vertexShader,fragmentShader),positionLocation=gl.getAttribLocation(program,"a_position"),texcoordLocation=gl.getAttribLocation(program,"a_texCoord"),positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),setRectangle(gl,0,0,c.width,c.height);var texcoordBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),gl.STATIC_DRAW);var texture=gl.createTexture();gl.binM dTexture(gl.TEXTURE_2D,texture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);var resolutionLocation=gl.getUniformLocation(program,"u_resolution"),blurVectorLocation=gl.getUniformLocation(program,"dl");function render(){if(gl){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,ctx.canvas),M gl.useProgram(program),gl.enableVertexAttribArray(positionLocation),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);var r=gl.FLOAT,t=0;gl.vertexAttribPointer(positionLocation,2,r,false,0,t),gl.enableVertexAttribArray(texcoordLocation),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(texcoordLocation,2,r,false,0,t),gl.uniform2f(resolutionLocation,gl.canvas.width,gl.canvas.height),gl.uniform2f(blurVectorLocation,blurV[0]*bMag,blurV[1]*bMag);var e=gl.TRIANGLES;t=0;gl.drawArrays(e,t,6)}else console.loMo g("Needs WebGL to run")}gl.viewport(0,0,gl.canvas.width,gl.canvas.height); window.$generativeTraits = { "Palette": pFeat, "Noisy": noiseFeat, "Angle": angleFeat == 0 ? 'horizontal' : angleFeat == 1 ? 'vertical' : 'diagonal' console.log(window.$generativeTraits) text/html;charset=utf-8 <meta charset="UTF-8"> <title>Balance</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.min.js"></script> //Balance() by tzC0de. Made with p5.js col1 = ["#267365", "#F2CB05", "#F29F05", "#F28705", "#F23030", "#14140F"] col2 = ["#D9042B","#270140","#F2B705","#F28705","#F22F1D"] col3 = ["#0388A6","#04C4D9","#F29F05","#F28705","#A63F03"] col4 = ["#F2BF27","#404040","#DB005E","#2FB9D4"] #D9D7D7","#F25F29","#F24822","#F2B1A2","#0D0D0D"] col6 = ["#012C40","#00708C","#D9D7D7","#FF404C","#1CA5B8"] col7 = ["#BF1120","#0468BF","#F2D22E","#F29472","#F21905"] col8 = ["#FF6B00","#FFA000","#22D6FF","#1F70CC","#1930B8"] col9 = ["#FFFFFF","#CCCCCC","#999999","#666666","#000000"] bgcol = ["#161F30","#f2eddc","#f2eddc","#f2eddc"] createCanvas(530,830); let percent = 30 / 100; aphics = createGraphics(width, height); graphics.stroke(255, 10 / 100 * 255); for (i = 0; i < graphics.width * graphics.height * percent; i++) { graphics.point(random(graphics.width), random(graphics.height)); v = createGraphics(500,800) col = random([col1,col2,col3,col4,col5,col6,col7,col8,col9]) num2 = random([0,1,2,3,4,5]) v.translate(v.width/2,v.height/2) for(let i = v.height; i > v.width/6; i+= -((h1 / 2 + h2 / 2)+2.6)) { h2 = random([800/8,800/10,800/12,800/5,800/6]); num = random([1,2,3,4]) recty(x1-h1/2,i-h1/2,h1,h1) v.strokeWeight(5) v.ellipse(x1,i,h1,h1) v.strokeWeight(5) v.rect(x1,i,h1,h1) v.strokeWeight(5) v.rect(x1,i+h1/3.3,h1,h1*0.4) v.ellipse(x1,i-h1/4.7,h1*0.6,h1*0.6) v.strokeWeight(5) v.triangle(x1,i-h1/2,x1+h1/2,i+h1/2,x1-h1/2,i+h1/2) image(v,width/2,height/2) image(graphics, width/2, height/2); function recty(x,y,w,h) { g = createGraphics(j,l) g.background(242, 237, 220,0) g.fill(random(col)) g.fill(random(col)) g.ellipse(g.width/2,g.height/2,g.width,g.heiM g.fill(random(col)) g.ellipse(g.width/2,g.height/2,g.width*0.8,g.height*0.8) g.fill(random(col)) g.ellipse(g.width/2,g.height/2,g.width*0.6,g.height*0.6) g.fill(random(col)) g.ellipse(g.width/2,g.height/2,g.width*0.4,g.height*0.4) g.fill(random(col)) g.ellipse(g.width/2,g.height/2,g.width*0.2,g.height*0.2) //g.strokeWeight(5) g.rect(g.width/2,g.height/2,g.width,g.height) g.fill(random(col)) dth/2,g.height/2,g.width*0.8,g.height*0.8) g.fill(random(col)) g.rect(g.width/2,g.height/2,g.width*0.6,g.height*0.6) g.fill(random(col)) g.rect(g.width/2,g.height/2,g.width*0.4,g.height*0.4) g.fill(random(col)) g.rect(g.width/2,g.height/2,g.width*0.2,g.height*0.2) //g.rect(x,y,w,h) //g.strokeWeight(5) g.fill(random(col)) g.rect(g.width/2,g.height*0.8,g.width,f) g.rect(g.width/2,g.height*0.8,g.width*0.75,f) g.fill(random(col)) g.rect(g.width/2,g.height*0.8,g.width*0.5,f) g.fill(random(col)) g.rect(g.width/2,g.height*0.8,g.width*0.25,f) g.fill(random(col)) g.ellipse(g.width/2,g.height*0.3,l) g.fill(random(col)) g.ellipse(g.width/2,g.height*0.3,l*0.75) g.fill(random(col)) g.ellipse(g.width/2,g.height*0.3,l*0.5) g.fill(random(col)) g.ellipse(g.width/2,g.height*0.3,l*0.25) //g.strokeWeight(5) g.fill(random(col)) g.triangle(u,p-p,u*2,p*2,u-u,p+p) g.fill(random(col)) g.triangle(u,p,u*2,p*2,u-u,p+p) for(let i = -v.height; i < v.width*2; i += 10) { if(bg == "#f2eddc") { v.line(i,-v.height,i,v.height) for(let i = -v.width; i < v.width; i += 8) { for (let j = -v.height; j < v.height; j += 8) { if(bg == "#f2eddc") { v.line(i,j,i+5,j+5) for (let i = 0; i < 50; i++) { if(bg == "#f2eddc") { v.ellipse(0,0,20*i) for (let i = 0; i < 50; i++) { if(bg == "#f2eddc") { for (let i = -v.width; i < v.width; i+=5) { for (let j = -v.height; j < v.height; j+=5) { if(bg == "#f2eddc") { var increment = 5; for(let j = -v.height; j < v.height; j+=5) { for (var i = -v.width; i < v.width; i+=increment) { v.vertex(i, j + (sin(k) * (sin(j) * 50))) function keyTyped() { if (key === 's' || key === 'S') { saveCanvas('myCanvas', 'png'); text/html;charset=utf-8 <meta charset="UTF-8"> <title>"Rays" by Pawe Dudko | pdudko.com</title> <script id="snippet-random-code" type="text/javascript"> // not editable let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() *M alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.lengthM ; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 let mathRand = sfc32(...cyrb128(seed)); margin: 0; padding: 0; overflow: hidden; <canvas id="myCanvas"></canvas> <script type="text/jaM console.log("seed:",seed);class Rnd{rD(){return mathRand()}rN(r,t){return r+(t-r)*this.rD()}rI(r,t){return Math.floor(this.rN(r,t+1))}rB(r){return this.rD()<r}}const R=new Rnd;class Perlin{constructor(){this.R=new Rnd,this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(var r=0;r<256;r++)this.p[r]=Math.floor(256*this.R.rD());for(this.perm=[],r=0;r<512;r++)this.perm[r]=this.p[255&r];this.simplex=[[0,1,2,3],[0,1,3M ,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2M ,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]}dot(r,t,e){return r[0]*t+r[1]*e}noise(r,t){var e,i,a=(r+t)*(.5*(Math.sqrt(3)-1)),o=Math.floor(r+a),l=Math.floor(t+a),n=(3-Math.sqrt(3))/6,s=(o+l)*n,g=r-(o-s),c=t-(l-s);g>c?(e=1,i=0):(e=0,i=1);var d=g-e+n,f=c-i+n,p=g-1+2*n,A=c-1+2*n,m=255&o,F=255&l,E=this.perm[m+this.perm[F]]%12,u=this.perm[m+e+this.perm[F+i]]%12,R=this.perm[m+1+this.perm[F+1]]%12,h=.5-g*g-c*c,B=.5-d*d-f*f,D=.5-p*p-A*A;return 70*((h<0?0:(h*=h)*h*M this.dot(this.grad3[E],g,c))+(B<0?0:(B*=B)*B*this.dot(this.grad3[u],d,f))+(D<0?0:(D*=D)*D*this.dot(this.grad3[R],p,A)))}}const perlin=new Perlin;function map(r,t,e,i,a){return i+(a-i)*(r-t)/(e-t)}let bckCol,dim=Math.min(window.innerWidth,window.innerHeight),spots=R.rI(10,25),radius=[],m=[],mOff=1e-4*R.rN(1,7),x=[],y=[],z=[],S=30,sRot=[],b=1,bOffset=R.rN(0,.005),bMag=1,xOff=[],yOff=[],pC=[],noiseFeat=mathRand()>.79,pFeat=R.rI(1,24),angleFeat=mathRand()>.87?0:mathRand()<.1?1:2,colorBackground=R.rI(0,1);const PI=Math.M PI,TWO_PI=2*PI;let blurV=[];blurV=blurV=0==angleFeat?[R.rN(0,R.rN(0,1)),0]:1==angleFeat?[0,R.rN(0,R.rN(0,1))]:[R.rN(-.9,.9),R.rN(0,.9)],Math.pow(blurV[0],2)+Math.pow(blurV[1],2)<.18&&(blurV[0]>blurV[1]?blurV[0]+=.35:blurV[1]+=.35);const vs2="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_resolution;varying vec2 v_texCoord;\nvoid main(){vec2 clipSpace=a_position/u_resolution*2.0-1.0;gl_Position=vec4(clipSpace*vec2(1,-1),0,1);v_texCoord=a_texCoord;}",fs2="precision mediump float;uniform sampler2D M u_image;varying vec2 v_texCoord;uniform vec2 dl;float rnd(vec3 scale,float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}\nvoid main(){vec4 col=vec4(0.0);float tt=0.0;float off=rnd(vec3(12.9898,78.233,151.7182),0.0);for(float t=-30.0;t<=30.0;t++){float pc=(t+off-0.5)/30.0;float w=1.0-abs(pc);vec4 spl=texture2D(u_image,v_texCoord+dl*pc);spl.rgb*=spl.a;col+=spl*w;tt+=w;}gl_FragColor=col/tt;}";function setup(){for(i=0;i<spots;i++)radius[i]=R.rI(dim/100,dim/4),m[i]=R.rN(0,100),x[i]=R.rN(0,dM im),y[i]=R.rN(0,dim),z[i]=R.rN(0,dim),xOff[i]=R.rN(4,10),yOff[i]=R.rN(4,10),sRot[i]=R.rN(0,TWO_PI);if(noiseFeat){let r=R.rI(20,200);for(i=0;i<r;i++)radius[spots+i]=R.rI(dim/400,dim/100),m[spots+i]=R.rN(0,10),y[spots+i]=R.rN(0,dim),z[spots+i]=R.rN(0,dim),x[spots+i]=R.rN(0,dim),xOff[spots+i]=R.rN(4,10),yOff[spots+i]=R.rN(4,10),sRot[spots+i]=R.rN(0,PI);spots+=r}angle=0==angleFeat?-PI/4:1==angleFeat?PI/4:R.rN(0,PI),p=pFeat;let r=1==p?["#0B1626","#2F1517","#4599B5","#A83882","#B4DDDD","#DBBEF2"]:2==p?["#0B1626","#2F1517M ","#4599B5","#A84B28","#B4DDDD","#C4E4A2"]:3==p?["#140000","#021c13","#003924","#005841","#750100","#990100","#d7bb30","#ccae00"]:4==p?["#1D1702","#2B0426","#650427","#AD2C00","#ddac0a","#c6c339","#E55130"]:5==p?["#200e36","#2B0426","#366290","#E27D52","#D3EAC0","#EDC557","#A8DAB9"]:6==p?["#200A0E","#080811","#006978","#170F08","#FBFBD6","#02E7CA","#729C9D"]:7==p?["#0A0A3D","#041604","#00C075","#87C000","#F9BD27","#FE8900","#FE003B"]:8==p?["#2A0002","#14060B","#664C4C","#EF3B01","#C11900","#A20005"]:9==p?["#000000"M ,"#0B1626","#68D1E6","#A6DAD7","#DFE3CB","#F2852F","#F96800"]:10==p?["#000000","#2F1517","#2AABCF","#6CBAB5","#C3CAA1","#E54508","#F32A00"]:11==p?["#200e36","#1A0210","#e04372","#5aa9e6","#4a4e69","#e04372","#e6b953"]:12==p?["#131303","#040207","#EFA72F","#EF7717","#77BFA7","#FBEAB5","#5D402E"]:13==p?["#1E1E3D","#002030","#009FAF","#CB323E","#EA6740","#ECC850"]:14==p?["#1E1E3D","#292B30","#592D2D","#DEB968","#FEFDDE","#3D4046"]:15==p?["#040207","#002030","#60A5AA","#FAEDC1","#5F5850","#C0B297"]:16==p?["#0F0F00","#0M 30313","#9C8C68","#FDA5A1","#9E7B52","#E1CC92"]:17==p?["#0A0A1A","#120202","#FF8B00","#000000","#649EE8","#917FFF"]:18==p?["#020202","#0A0A1A","#09BEBB","#12737C","#28211E","#FB344B"]:19==p?["#000000","#200B01","#F92900","#F1D593","#85B7B0","#EFD7A7"]:20==p?["#000000","#1A1A1A","#F35C4B","#F6A440","#F9C965","#FDE4AC","#FFFFB1"]:21==p?["#0D1626","#091425","#051738","#204E75","#005151","#A0995F"]:22==p?["#000000","#091425","#764E37","#DF8D78","#F0D3AE","#C4DFDB"]:23==p?["#020202","#1A1A1A","#605274","#8DB1C4","#F8BE7M 5","#E4615B","#D0303C"]:["#050505","#0F0F0F","#000000","#7F7F7F","#333333","#E5E5E5","#F0F0F0"];pC.push(...r);let t=pC.length-1;for(ii=0;ii<3;ii++)for(i=t-1;i<=t;i++)pC.push(pC[i])}var c=document.createElement("canvas");c.width=dim,c.height=dim;var ctx=c.getContext("2d");function draw(){for(ctx.beginPath(),ctx.rect(0,0,c.width,c.height),ctx.fillStyle=pC[colorBackground],ctx.fill(),i=0;i<spots;i++){let r=pC[i%pC.length],t=map(perlin.noise(m[i],i),-1,1,-dim/xOff[i],dim/xOff[i]),e=map(perlin.noise(m[i],i+200),-1,1,-diM m/yOff[i],dim/yOff[i]),a=map(perlin.noise(10*m[i],i+999),-1,1,-radius[i]/20,radius[i]/20);ctx.beginPath(),ctx.arc(x[i]+t,y[i]+e,radius[i]+a,0,2*Math.PI),ctx.fillStyle=r,ctx.fill(),m[i]+=mOff}bMag=map(perlin.noise(b,spots),-1,1,.8,1.2),render(),b+=bOffset,window.requestAnimationFrame(draw)}function createShader(r,t,e){var i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),r.getShaderParameter(i,r.COMPILE_STATUS))return i;r.deleteShader(i)}function createProgram(r,t,e){var i=r.createProgram();if(r.attachShM ader(i,t),r.attachShader(i,e),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS))return i;r.deleteProgram(i)}function setRectangle(r,t,e,i,a){let o=t,l=t+i,n=e,s=e+a;r.bufferData(r.ARRAY_BUFFER,new Float32Array([o,n,l,n,o,s,o,s,l,n,l,s]),r.STATIC_DRAW)}setup(),window.requestAnimationFrame(draw);const canvasGL=document.getElementById("myCanvas");canvasGL.width=dim,canvasGL.height=dim;const gl=canvasGL.getContext("webgl");var vertexShader=createShader(gl,gl.VERTEX_SHADER,vs2),fragmentShader=createShader(gl,gl.FRM AGMENT_SHADER,fs2),program=createProgram(gl,vertexShader,fragmentShader),positionLocation=gl.getAttribLocation(program,"a_position"),texcoordLocation=gl.getAttribLocation(program,"a_texCoord"),positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),setRectangle(gl,0,0,c.width,c.height);var texcoordBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),gl.STATIC_DRAW);var texture=gl.createTexture();gl.binM dTexture(gl.TEXTURE_2D,texture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);var resolutionLocation=gl.getUniformLocation(program,"u_resolution"),blurVectorLocation=gl.getUniformLocation(program,"dl");function render(){if(gl){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,ctx.canvas),M gl.useProgram(program),gl.enableVertexAttribArray(positionLocation),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);var r=gl.FLOAT,t=0;gl.vertexAttribPointer(positionLocation,2,r,false,0,t),gl.enableVertexAttribArray(texcoordLocation),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(texcoordLocation,2,r,false,0,t),gl.uniform2f(resolutionLocation,gl.canvas.width,gl.canvas.height),gl.uniform2f(blurVectorLocation,blurV[0]*bMag,blurV[1]*bMag);var e=gl.TRIANGLES;t=0;gl.drawArrays(e,t,6)}else console.loMo g("Needs WebGL to run")}gl.viewport(0,0,gl.canvas.width,gl.canvas.height); window.$generativeTraits = { "Palette": pFeat, "Noisy": noiseFeat, "Angle": angleFeat == 0 ? 'horizontal' : angleFeat == 1 ? 'vertical' : 'diagonal' console.log(window.$generativeTraits) KjISWAPTX:0x25e7e5c0857bffc94f0672934495de393d4b9e2001966f73801b07309b954d39 iTXtXML:com.adobe.xmp <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:exif="http://ns.adobe.com/exif/1.0/"> <exif:PixelYDimension>636</exif:PixelYDimension> <exif:PixelXDimension>636</exif:PixelXDimension> <exif:UserComment>Screenshot</exif:UserComment> </rdf:Description> iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sTypM e/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)" xmp:CreateDate="2023-02-21T15:59:10-05:00" xmp:MetadataDate="2023-02-22T03:53:09-05:00" xmp:ModifyDate="2023-02-22T03:53:09-05:00" dc:format="image/png" xmpMM:InstanceID="xmp.iid:b9d99877-45a4-9c4f-9c90-66318d85d2ca" xmpMM:DocumentID="adobe:docid:photoshop:e92d8c26-03e7-e545-b5d8-427adbb3516e" xmpMM:OriginalDocumentID="xmp.did:72e15e1M d-f2b2-c741-8018-1127a6f9c617" photoshop:ColorMode="3"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:72e15e1d-f2b2-c741-8018-1127a6f9c617" stEvt:when="2023-02-21T15:59:10-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:d3101fa3-54a3-7744-937f-9ae26089645f" stEvt:when="2023-02-22T03:53:09-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvtM :parameters="from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:b9d99877-45a4-9c4f-9c90-66318d85d2ca" stEvt:when="2023-02-22T03:53:09-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:d3101fa3-54a3-7744-937f-9ae26089645f" stRef:documentID="xmp.dM id:72e15e1d-f2b2-c741-8018-1127a6f9c617" stRef:originalDocumentID="xmp.did:72e15e1d-f2b2-c741-8018-1127a6f9c617"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> 2023-02-24T07:46:32+00:00 2023-02-24T07:46:32+00:00 6j4ion:7.QmeXGivZzF3JmkYZ5uFggGwZ8zDzwaq9H3Mf5en5ajwBVW %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz text/html;charset=utf-8 <meta charset="UTF-8"> <title>"Rays" by Pawe Dudko | pdudko.com</title> <script id="snippet-random-code" type="text/javascript"> // not editable let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() *M alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.lengthM ; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 let mathRand = sfc32(...cyrb128(seed)); margin: 0; padding: 0; overflow: hidden; <canvas id="myCanvas"></canvas> <script type="text/jaM console.log("seed:",seed);class Rnd{rD(){return mathRand()}rN(r,t){return r+(t-r)*this.rD()}rI(r,t){return Math.floor(this.rN(r,t+1))}rB(r){return this.rD()<r}}const R=new Rnd;class Perlin{constructor(){this.R=new Rnd,this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(var r=0;r<256;r++)this.p[r]=Math.floor(256*this.R.rD());for(this.perm=[],r=0;r<512;r++)this.perm[r]=this.p[255&r];this.simplex=[[0,1,2,3],[0,1,3M ,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2M ,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]}dot(r,t,e){return r[0]*t+r[1]*e}noise(r,t){var e,i,a=(r+t)*(.5*(Math.sqrt(3)-1)),o=Math.floor(r+a),l=Math.floor(t+a),n=(3-Math.sqrt(3))/6,s=(o+l)*n,g=r-(o-s),c=t-(l-s);g>c?(e=1,i=0):(e=0,i=1);var d=g-e+n,f=c-i+n,p=g-1+2*n,A=c-1+2*n,m=255&o,F=255&l,E=this.perm[m+this.perm[F]]%12,u=this.perm[m+e+this.perm[F+i]]%12,R=this.perm[m+1+this.perm[F+1]]%12,h=.5-g*g-c*c,B=.5-d*d-f*f,D=.5-p*p-A*A;return 70*((h<0?0:(h*=h)*h*M this.dot(this.grad3[E],g,c))+(B<0?0:(B*=B)*B*this.dot(this.grad3[u],d,f))+(D<0?0:(D*=D)*D*this.dot(this.grad3[R],p,A)))}}const perlin=new Perlin;function map(r,t,e,i,a){return i+(a-i)*(r-t)/(e-t)}let bckCol,dim=Math.min(window.innerWidth,window.innerHeight),spots=R.rI(10,25),radius=[],m=[],mOff=1e-4*R.rN(1,7),x=[],y=[],z=[],S=30,sRot=[],b=1,bOffset=R.rN(0,.005),bMag=1,xOff=[],yOff=[],pC=[],noiseFeat=mathRand()>.79,pFeat=R.rI(1,24),angleFeat=mathRand()>.87?0:mathRand()<.1?1:2,colorBackground=R.rI(0,1);const PI=Math.M PI,TWO_PI=2*PI;let blurV=[];blurV=blurV=0==angleFeat?[R.rN(0,R.rN(0,1)),0]:1==angleFeat?[0,R.rN(0,R.rN(0,1))]:[R.rN(-.9,.9),R.rN(0,.9)],Math.pow(blurV[0],2)+Math.pow(blurV[1],2)<.18&&(blurV[0]>blurV[1]?blurV[0]+=.35:blurV[1]+=.35);const vs2="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_resolution;varying vec2 v_texCoord;\nvoid main(){vec2 clipSpace=a_position/u_resolution*2.0-1.0;gl_Position=vec4(clipSpace*vec2(1,-1),0,1);v_texCoord=a_texCoord;}",fs2="precision mediump float;uniform sampler2D M u_image;varying vec2 v_texCoord;uniform vec2 dl;float rnd(vec3 scale,float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}\nvoid main(){vec4 col=vec4(0.0);float tt=0.0;float off=rnd(vec3(12.9898,78.233,151.7182),0.0);for(float t=-30.0;t<=30.0;t++){float pc=(t+off-0.5)/30.0;float w=1.0-abs(pc);vec4 spl=texture2D(u_image,v_texCoord+dl*pc);spl.rgb*=spl.a;col+=spl*w;tt+=w;}gl_FragColor=col/tt;}";function setup(){for(i=0;i<spots;i++)radius[i]=R.rI(dim/100,dim/4),m[i]=R.rN(0,100),x[i]=R.rN(0,dM im),y[i]=R.rN(0,dim),z[i]=R.rN(0,dim),xOff[i]=R.rN(4,10),yOff[i]=R.rN(4,10),sRot[i]=R.rN(0,TWO_PI);if(noiseFeat){let r=R.rI(20,200);for(i=0;i<r;i++)radius[spots+i]=R.rI(dim/400,dim/100),m[spots+i]=R.rN(0,10),y[spots+i]=R.rN(0,dim),z[spots+i]=R.rN(0,dim),x[spots+i]=R.rN(0,dim),xOff[spots+i]=R.rN(4,10),yOff[spots+i]=R.rN(4,10),sRot[spots+i]=R.rN(0,PI);spots+=r}angle=0==angleFeat?-PI/4:1==angleFeat?PI/4:R.rN(0,PI),p=pFeat;let r=1==p?["#0B1626","#2F1517","#4599B5","#A83882","#B4DDDD","#DBBEF2"]:2==p?["#0B1626","#2F1517M ","#4599B5","#A84B28","#B4DDDD","#C4E4A2"]:3==p?["#140000","#021c13","#003924","#005841","#750100","#990100","#d7bb30","#ccae00"]:4==p?["#1D1702","#2B0426","#650427","#AD2C00","#ddac0a","#c6c339","#E55130"]:5==p?["#200e36","#2B0426","#366290","#E27D52","#D3EAC0","#EDC557","#A8DAB9"]:6==p?["#200A0E","#080811","#006978","#170F08","#FBFBD6","#02E7CA","#729C9D"]:7==p?["#0A0A3D","#041604","#00C075","#87C000","#F9BD27","#FE8900","#FE003B"]:8==p?["#2A0002","#14060B","#664C4C","#EF3B01","#C11900","#A20005"]:9==p?["#000000"M ,"#0B1626","#68D1E6","#A6DAD7","#DFE3CB","#F2852F","#F96800"]:10==p?["#000000","#2F1517","#2AABCF","#6CBAB5","#C3CAA1","#E54508","#F32A00"]:11==p?["#200e36","#1A0210","#e04372","#5aa9e6","#4a4e69","#e04372","#e6b953"]:12==p?["#131303","#040207","#EFA72F","#EF7717","#77BFA7","#FBEAB5","#5D402E"]:13==p?["#1E1E3D","#002030","#009FAF","#CB323E","#EA6740","#ECC850"]:14==p?["#1E1E3D","#292B30","#592D2D","#DEB968","#FEFDDE","#3D4046"]:15==p?["#040207","#002030","#60A5AA","#FAEDC1","#5F5850","#C0B297"]:16==p?["#0F0F00","#0M 30313","#9C8C68","#FDA5A1","#9E7B52","#E1CC92"]:17==p?["#0A0A1A","#120202","#FF8B00","#000000","#649EE8","#917FFF"]:18==p?["#020202","#0A0A1A","#09BEBB","#12737C","#28211E","#FB344B"]:19==p?["#000000","#200B01","#F92900","#F1D593","#85B7B0","#EFD7A7"]:20==p?["#000000","#1A1A1A","#F35C4B","#F6A440","#F9C965","#FDE4AC","#FFFFB1"]:21==p?["#0D1626","#091425","#051738","#204E75","#005151","#A0995F"]:22==p?["#000000","#091425","#764E37","#DF8D78","#F0D3AE","#C4DFDB"]:23==p?["#020202","#1A1A1A","#605274","#8DB1C4","#F8BE7M 5","#E4615B","#D0303C"]:["#050505","#0F0F0F","#000000","#7F7F7F","#333333","#E5E5E5","#F0F0F0"];pC.push(...r);let t=pC.length-1;for(ii=0;ii<3;ii++)for(i=t-1;i<=t;i++)pC.push(pC[i])}var c=document.createElement("canvas");c.width=dim,c.height=dim;var ctx=c.getContext("2d");function draw(){for(ctx.beginPath(),ctx.rect(0,0,c.width,c.height),ctx.fillStyle=pC[colorBackground],ctx.fill(),i=0;i<spots;i++){let r=pC[i%pC.length],t=map(perlin.noise(m[i],i),-1,1,-dim/xOff[i],dim/xOff[i]),e=map(perlin.noise(m[i],i+200),-1,1,-diM m/yOff[i],dim/yOff[i]),a=map(perlin.noise(10*m[i],i+999),-1,1,-radius[i]/20,radius[i]/20);ctx.beginPath(),ctx.arc(x[i]+t,y[i]+e,radius[i]+a,0,2*Math.PI),ctx.fillStyle=r,ctx.fill(),m[i]+=mOff}bMag=map(perlin.noise(b,spots),-1,1,.8,1.2),render(),b+=bOffset,window.requestAnimationFrame(draw)}function createShader(r,t,e){var i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),r.getShaderParameter(i,r.COMPILE_STATUS))return i;r.deleteShader(i)}function createProgram(r,t,e){var i=r.createProgram();if(r.attachShM ader(i,t),r.attachShader(i,e),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS))return i;r.deleteProgram(i)}function setRectangle(r,t,e,i,a){let o=t,l=t+i,n=e,s=e+a;r.bufferData(r.ARRAY_BUFFER,new Float32Array([o,n,l,n,o,s,o,s,l,n,l,s]),r.STATIC_DRAW)}setup(),window.requestAnimationFrame(draw);const canvasGL=document.getElementById("myCanvas");canvasGL.width=dim,canvasGL.height=dim;const gl=canvasGL.getContext("webgl");var vertexShader=createShader(gl,gl.VERTEX_SHADER,vs2),fragmentShader=createShader(gl,gl.FRM AGMENT_SHADER,fs2),program=createProgram(gl,vertexShader,fragmentShader),positionLocation=gl.getAttribLocation(program,"a_position"),texcoordLocation=gl.getAttribLocation(program,"a_texCoord"),positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),setRectangle(gl,0,0,c.width,c.height);var texcoordBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),gl.STATIC_DRAW);var texture=gl.createTexture();gl.binM dTexture(gl.TEXTURE_2D,texture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);var resolutionLocation=gl.getUniformLocation(program,"u_resolution"),blurVectorLocation=gl.getUniformLocation(program,"dl");function render(){if(gl){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,ctx.canvas),M gl.useProgram(program),gl.enableVertexAttribArray(positionLocation),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);var r=gl.FLOAT,t=0;gl.vertexAttribPointer(positionLocation,2,r,false,0,t),gl.enableVertexAttribArray(texcoordLocation),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(texcoordLocation,2,r,false,0,t),gl.uniform2f(resolutionLocation,gl.canvas.width,gl.canvas.height),gl.uniform2f(blurVectorLocation,blurV[0]*bMag,blurV[1]*bMag);var e=gl.TRIANGLES;t=0;gl.drawArrays(e,t,6)}else console.loMo g("Needs WebGL to run")}gl.viewport(0,0,gl.canvas.width,gl.canvas.height); window.$generativeTraits = { "Palette": pFeat, "Noisy": noiseFeat, "Angle": angleFeat == 0 ? 'horizontal' : angleFeat == 1 ? 'vertical' : 'diagonal' console.log(window.$generativeTraits) %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz text/html;charset=utf-8 <meta charset="UTF-8"> <title>"Rays" by Pawe Dudko | pdudko.com</title> <script id="snippet-random-code" type="text/javascript"> // not editable let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() *M alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.lengthM ; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 let mathRand = sfc32(...cyrb128(seed)); margin: 0; padding: 0; overflow: hidden; <canvas id="myCanvas"></canvas> <script type="text/jaM console.log("seed:",seed);class Rnd{rD(){return mathRand()}rN(r,t){return r+(t-r)*this.rD()}rI(r,t){return Math.floor(this.rN(r,t+1))}rB(r){return this.rD()<r}}const R=new Rnd;class Perlin{constructor(){this.R=new Rnd,this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(var r=0;r<256;r++)this.p[r]=Math.floor(256*this.R.rD());for(this.perm=[],r=0;r<512;r++)this.perm[r]=this.p[255&r];this.simplex=[[0,1,2,3],[0,1,3M ,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2M ,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]}dot(r,t,e){return r[0]*t+r[1]*e}noise(r,t){var e,i,a=(r+t)*(.5*(Math.sqrt(3)-1)),o=Math.floor(r+a),l=Math.floor(t+a),n=(3-Math.sqrt(3))/6,s=(o+l)*n,g=r-(o-s),c=t-(l-s);g>c?(e=1,i=0):(e=0,i=1);var d=g-e+n,f=c-i+n,p=g-1+2*n,A=c-1+2*n,m=255&o,F=255&l,E=this.perm[m+this.perm[F]]%12,u=this.perm[m+e+this.perm[F+i]]%12,R=this.perm[m+1+this.perm[F+1]]%12,h=.5-g*g-c*c,B=.5-d*d-f*f,D=.5-p*p-A*A;return 70*((h<0?0:(h*=h)*h*M this.dot(this.grad3[E],g,c))+(B<0?0:(B*=B)*B*this.dot(this.grad3[u],d,f))+(D<0?0:(D*=D)*D*this.dot(this.grad3[R],p,A)))}}const perlin=new Perlin;function map(r,t,e,i,a){return i+(a-i)*(r-t)/(e-t)}let bckCol,dim=Math.min(window.innerWidth,window.innerHeight),spots=R.rI(10,25),radius=[],m=[],mOff=1e-4*R.rN(1,7),x=[],y=[],z=[],S=30,sRot=[],b=1,bOffset=R.rN(0,.005),bMag=1,xOff=[],yOff=[],pC=[],noiseFeat=mathRand()>.79,pFeat=R.rI(1,24),angleFeat=mathRand()>.87?0:mathRand()<.1?1:2,colorBackground=R.rI(0,1);const PI=Math.M PI,TWO_PI=2*PI;let blurV=[];blurV=blurV=0==angleFeat?[R.rN(0,R.rN(0,1)),0]:1==angleFeat?[0,R.rN(0,R.rN(0,1))]:[R.rN(-.9,.9),R.rN(0,.9)],Math.pow(blurV[0],2)+Math.pow(blurV[1],2)<.18&&(blurV[0]>blurV[1]?blurV[0]+=.35:blurV[1]+=.35);const vs2="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_resolution;varying vec2 v_texCoord;\nvoid main(){vec2 clipSpace=a_position/u_resolution*2.0-1.0;gl_Position=vec4(clipSpace*vec2(1,-1),0,1);v_texCoord=a_texCoord;}",fs2="precision mediump float;uniform sampler2D M u_image;varying vec2 v_texCoord;uniform vec2 dl;float rnd(vec3 scale,float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}\nvoid main(){vec4 col=vec4(0.0);float tt=0.0;float off=rnd(vec3(12.9898,78.233,151.7182),0.0);for(float t=-30.0;t<=30.0;t++){float pc=(t+off-0.5)/30.0;float w=1.0-abs(pc);vec4 spl=texture2D(u_image,v_texCoord+dl*pc);spl.rgb*=spl.a;col+=spl*w;tt+=w;}gl_FragColor=col/tt;}";function setup(){for(i=0;i<spots;i++)radius[i]=R.rI(dim/100,dim/4),m[i]=R.rN(0,100),x[i]=R.rN(0,dM im),y[i]=R.rN(0,dim),z[i]=R.rN(0,dim),xOff[i]=R.rN(4,10),yOff[i]=R.rN(4,10),sRot[i]=R.rN(0,TWO_PI);if(noiseFeat){let r=R.rI(20,200);for(i=0;i<r;i++)radius[spots+i]=R.rI(dim/400,dim/100),m[spots+i]=R.rN(0,10),y[spots+i]=R.rN(0,dim),z[spots+i]=R.rN(0,dim),x[spots+i]=R.rN(0,dim),xOff[spots+i]=R.rN(4,10),yOff[spots+i]=R.rN(4,10),sRot[spots+i]=R.rN(0,PI);spots+=r}angle=0==angleFeat?-PI/4:1==angleFeat?PI/4:R.rN(0,PI),p=pFeat;let r=1==p?["#0B1626","#2F1517","#4599B5","#A83882","#B4DDDD","#DBBEF2"]:2==p?["#0B1626","#2F1517M ","#4599B5","#A84B28","#B4DDDD","#C4E4A2"]:3==p?["#140000","#021c13","#003924","#005841","#750100","#990100","#d7bb30","#ccae00"]:4==p?["#1D1702","#2B0426","#650427","#AD2C00","#ddac0a","#c6c339","#E55130"]:5==p?["#200e36","#2B0426","#366290","#E27D52","#D3EAC0","#EDC557","#A8DAB9"]:6==p?["#200A0E","#080811","#006978","#170F08","#FBFBD6","#02E7CA","#729C9D"]:7==p?["#0A0A3D","#041604","#00C075","#87C000","#F9BD27","#FE8900","#FE003B"]:8==p?["#2A0002","#14060B","#664C4C","#EF3B01","#C11900","#A20005"]:9==p?["#000000"M ,"#0B1626","#68D1E6","#A6DAD7","#DFE3CB","#F2852F","#F96800"]:10==p?["#000000","#2F1517","#2AABCF","#6CBAB5","#C3CAA1","#E54508","#F32A00"]:11==p?["#200e36","#1A0210","#e04372","#5aa9e6","#4a4e69","#e04372","#e6b953"]:12==p?["#131303","#040207","#EFA72F","#EF7717","#77BFA7","#FBEAB5","#5D402E"]:13==p?["#1E1E3D","#002030","#009FAF","#CB323E","#EA6740","#ECC850"]:14==p?["#1E1E3D","#292B30","#592D2D","#DEB968","#FEFDDE","#3D4046"]:15==p?["#040207","#002030","#60A5AA","#FAEDC1","#5F5850","#C0B297"]:16==p?["#0F0F00","#0M 30313","#9C8C68","#FDA5A1","#9E7B52","#E1CC92"]:17==p?["#0A0A1A","#120202","#FF8B00","#000000","#649EE8","#917FFF"]:18==p?["#020202","#0A0A1A","#09BEBB","#12737C","#28211E","#FB344B"]:19==p?["#000000","#200B01","#F92900","#F1D593","#85B7B0","#EFD7A7"]:20==p?["#000000","#1A1A1A","#F35C4B","#F6A440","#F9C965","#FDE4AC","#FFFFB1"]:21==p?["#0D1626","#091425","#051738","#204E75","#005151","#A0995F"]:22==p?["#000000","#091425","#764E37","#DF8D78","#F0D3AE","#C4DFDB"]:23==p?["#020202","#1A1A1A","#605274","#8DB1C4","#F8BE7M 5","#E4615B","#D0303C"]:["#050505","#0F0F0F","#000000","#7F7F7F","#333333","#E5E5E5","#F0F0F0"];pC.push(...r);let t=pC.length-1;for(ii=0;ii<3;ii++)for(i=t-1;i<=t;i++)pC.push(pC[i])}var c=document.createElement("canvas");c.width=dim,c.height=dim;var ctx=c.getContext("2d");function draw(){for(ctx.beginPath(),ctx.rect(0,0,c.width,c.height),ctx.fillStyle=pC[colorBackground],ctx.fill(),i=0;i<spots;i++){let r=pC[i%pC.length],t=map(perlin.noise(m[i],i),-1,1,-dim/xOff[i],dim/xOff[i]),e=map(perlin.noise(m[i],i+200),-1,1,-diM m/yOff[i],dim/yOff[i]),a=map(perlin.noise(10*m[i],i+999),-1,1,-radius[i]/20,radius[i]/20);ctx.beginPath(),ctx.arc(x[i]+t,y[i]+e,radius[i]+a,0,2*Math.PI),ctx.fillStyle=r,ctx.fill(),m[i]+=mOff}bMag=map(perlin.noise(b,spots),-1,1,.8,1.2),render(),b+=bOffset,window.requestAnimationFrame(draw)}function createShader(r,t,e){var i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),r.getShaderParameter(i,r.COMPILE_STATUS))return i;r.deleteShader(i)}function createProgram(r,t,e){var i=r.createProgram();if(r.attachShM ader(i,t),r.attachShader(i,e),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS))return i;r.deleteProgram(i)}function setRectangle(r,t,e,i,a){let o=t,l=t+i,n=e,s=e+a;r.bufferData(r.ARRAY_BUFFER,new Float32Array([o,n,l,n,o,s,o,s,l,n,l,s]),r.STATIC_DRAW)}setup(),window.requestAnimationFrame(draw);const canvasGL=document.getElementById("myCanvas");canvasGL.width=dim,canvasGL.height=dim;const gl=canvasGL.getContext("webgl");var vertexShader=createShader(gl,gl.VERTEX_SHADER,vs2),fragmentShader=createShader(gl,gl.FRM AGMENT_SHADER,fs2),program=createProgram(gl,vertexShader,fragmentShader),positionLocation=gl.getAttribLocation(program,"a_position"),texcoordLocation=gl.getAttribLocation(program,"a_texCoord"),positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),setRectangle(gl,0,0,c.width,c.height);var texcoordBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),gl.STATIC_DRAW);var texture=gl.createTexture();gl.binM dTexture(gl.TEXTURE_2D,texture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);var resolutionLocation=gl.getUniformLocation(program,"u_resolution"),blurVectorLocation=gl.getUniformLocation(program,"dl");function render(){if(gl){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,ctx.canvas),M gl.useProgram(program),gl.enableVertexAttribArray(positionLocation),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);var r=gl.FLOAT,t=0;gl.vertexAttribPointer(positionLocation,2,r,false,0,t),gl.enableVertexAttribArray(texcoordLocation),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(texcoordLocation,2,r,false,0,t),gl.uniform2f(resolutionLocation,gl.canvas.width,gl.canvas.height),gl.uniform2f(blurVectorLocation,blurV[0]*bMag,blurV[1]*bMag);var e=gl.TRIANGLES;t=0;gl.drawArrays(e,t,6)}else console.loMo g("Needs WebGL to run")}gl.viewport(0,0,gl.canvas.width,gl.canvas.height); window.$generativeTraits = { "Palette": pFeat, "Noisy": noiseFeat, "Angle": angleFeat == 0 ? 'horizontal' : angleFeat == 1 ? 'vertical' : 'diagonal' console.log(window.$generativeTraits) %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz text/html;charset=utf-8 <meta charset="UTF-8"> <title>"Rays" by Pawe Dudko | pdudko.com</title> <script id="snippet-random-code" type="text/javascript"> // not editable let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() *M alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.lengthM ; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 let mathRand = sfc32(...cyrb128(seed)); margin: 0; padding: 0; overflow: hidden; <canvas id="myCanvas"></canvas> <script type="text/jaM console.log("seed:",seed);class Rnd{rD(){return mathRand()}rN(r,t){return r+(t-r)*this.rD()}rI(r,t){return Math.floor(this.rN(r,t+1))}rB(r){return this.rD()<r}}const R=new Rnd;class Perlin{constructor(){this.R=new Rnd,this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(var r=0;r<256;r++)this.p[r]=Math.floor(256*this.R.rD());for(this.perm=[],r=0;r<512;r++)this.perm[r]=this.p[255&r];this.simplex=[[0,1,2,3],[0,1,3M ,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2M ,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]}dot(r,t,e){return r[0]*t+r[1]*e}noise(r,t){var e,i,a=(r+t)*(.5*(Math.sqrt(3)-1)),o=Math.floor(r+a),l=Math.floor(t+a),n=(3-Math.sqrt(3))/6,s=(o+l)*n,g=r-(o-s),c=t-(l-s);g>c?(e=1,i=0):(e=0,i=1);var d=g-e+n,f=c-i+n,p=g-1+2*n,A=c-1+2*n,m=255&o,F=255&l,E=this.perm[m+this.perm[F]]%12,u=this.perm[m+e+this.perm[F+i]]%12,R=this.perm[m+1+this.perm[F+1]]%12,h=.5-g*g-c*c,B=.5-d*d-f*f,D=.5-p*p-A*A;return 70*((h<0?0:(h*=h)*h*M this.dot(this.grad3[E],g,c))+(B<0?0:(B*=B)*B*this.dot(this.grad3[u],d,f))+(D<0?0:(D*=D)*D*this.dot(this.grad3[R],p,A)))}}const perlin=new Perlin;function map(r,t,e,i,a){return i+(a-i)*(r-t)/(e-t)}let bckCol,dim=Math.min(window.innerWidth,window.innerHeight),spots=R.rI(10,25),radius=[],m=[],mOff=1e-4*R.rN(1,7),x=[],y=[],z=[],S=30,sRot=[],b=1,bOffset=R.rN(0,.005),bMag=1,xOff=[],yOff=[],pC=[],noiseFeat=mathRand()>.79,pFeat=R.rI(1,24),angleFeat=mathRand()>.87?0:mathRand()<.1?1:2,colorBackground=R.rI(0,1);const PI=Math.M PI,TWO_PI=2*PI;let blurV=[];blurV=blurV=0==angleFeat?[R.rN(0,R.rN(0,1)),0]:1==angleFeat?[0,R.rN(0,R.rN(0,1))]:[R.rN(-.9,.9),R.rN(0,.9)],Math.pow(blurV[0],2)+Math.pow(blurV[1],2)<.18&&(blurV[0]>blurV[1]?blurV[0]+=.35:blurV[1]+=.35);const vs2="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_resolution;varying vec2 v_texCoord;\nvoid main(){vec2 clipSpace=a_position/u_resolution*2.0-1.0;gl_Position=vec4(clipSpace*vec2(1,-1),0,1);v_texCoord=a_texCoord;}",fs2="precision mediump float;uniform sampler2D M u_image;varying vec2 v_texCoord;uniform vec2 dl;float rnd(vec3 scale,float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}\nvoid main(){vec4 col=vec4(0.0);float tt=0.0;float off=rnd(vec3(12.9898,78.233,151.7182),0.0);for(float t=-30.0;t<=30.0;t++){float pc=(t+off-0.5)/30.0;float w=1.0-abs(pc);vec4 spl=texture2D(u_image,v_texCoord+dl*pc);spl.rgb*=spl.a;col+=spl*w;tt+=w;}gl_FragColor=col/tt;}";function setup(){for(i=0;i<spots;i++)radius[i]=R.rI(dim/100,dim/4),m[i]=R.rN(0,100),x[i]=R.rN(0,dM im),y[i]=R.rN(0,dim),z[i]=R.rN(0,dim),xOff[i]=R.rN(4,10),yOff[i]=R.rN(4,10),sRot[i]=R.rN(0,TWO_PI);if(noiseFeat){let r=R.rI(20,200);for(i=0;i<r;i++)radius[spots+i]=R.rI(dim/400,dim/100),m[spots+i]=R.rN(0,10),y[spots+i]=R.rN(0,dim),z[spots+i]=R.rN(0,dim),x[spots+i]=R.rN(0,dim),xOff[spots+i]=R.rN(4,10),yOff[spots+i]=R.rN(4,10),sRot[spots+i]=R.rN(0,PI);spots+=r}angle=0==angleFeat?-PI/4:1==angleFeat?PI/4:R.rN(0,PI),p=pFeat;let r=1==p?["#0B1626","#2F1517","#4599B5","#A83882","#B4DDDD","#DBBEF2"]:2==p?["#0B1626","#2F1517M ","#4599B5","#A84B28","#B4DDDD","#C4E4A2"]:3==p?["#140000","#021c13","#003924","#005841","#750100","#990100","#d7bb30","#ccae00"]:4==p?["#1D1702","#2B0426","#650427","#AD2C00","#ddac0a","#c6c339","#E55130"]:5==p?["#200e36","#2B0426","#366290","#E27D52","#D3EAC0","#EDC557","#A8DAB9"]:6==p?["#200A0E","#080811","#006978","#170F08","#FBFBD6","#02E7CA","#729C9D"]:7==p?["#0A0A3D","#041604","#00C075","#87C000","#F9BD27","#FE8900","#FE003B"]:8==p?["#2A0002","#14060B","#664C4C","#EF3B01","#C11900","#A20005"]:9==p?["#000000"M ,"#0B1626","#68D1E6","#A6DAD7","#DFE3CB","#F2852F","#F96800"]:10==p?["#000000","#2F1517","#2AABCF","#6CBAB5","#C3CAA1","#E54508","#F32A00"]:11==p?["#200e36","#1A0210","#e04372","#5aa9e6","#4a4e69","#e04372","#e6b953"]:12==p?["#131303","#040207","#EFA72F","#EF7717","#77BFA7","#FBEAB5","#5D402E"]:13==p?["#1E1E3D","#002030","#009FAF","#CB323E","#EA6740","#ECC850"]:14==p?["#1E1E3D","#292B30","#592D2D","#DEB968","#FEFDDE","#3D4046"]:15==p?["#040207","#002030","#60A5AA","#FAEDC1","#5F5850","#C0B297"]:16==p?["#0F0F00","#0M 30313","#9C8C68","#FDA5A1","#9E7B52","#E1CC92"]:17==p?["#0A0A1A","#120202","#FF8B00","#000000","#649EE8","#917FFF"]:18==p?["#020202","#0A0A1A","#09BEBB","#12737C","#28211E","#FB344B"]:19==p?["#000000","#200B01","#F92900","#F1D593","#85B7B0","#EFD7A7"]:20==p?["#000000","#1A1A1A","#F35C4B","#F6A440","#F9C965","#FDE4AC","#FFFFB1"]:21==p?["#0D1626","#091425","#051738","#204E75","#005151","#A0995F"]:22==p?["#000000","#091425","#764E37","#DF8D78","#F0D3AE","#C4DFDB"]:23==p?["#020202","#1A1A1A","#605274","#8DB1C4","#F8BE7M 5","#E4615B","#D0303C"]:["#050505","#0F0F0F","#000000","#7F7F7F","#333333","#E5E5E5","#F0F0F0"];pC.push(...r);let t=pC.length-1;for(ii=0;ii<3;ii++)for(i=t-1;i<=t;i++)pC.push(pC[i])}var c=document.createElement("canvas");c.width=dim,c.height=dim;var ctx=c.getContext("2d");function draw(){for(ctx.beginPath(),ctx.rect(0,0,c.width,c.height),ctx.fillStyle=pC[colorBackground],ctx.fill(),i=0;i<spots;i++){let r=pC[i%pC.length],t=map(perlin.noise(m[i],i),-1,1,-dim/xOff[i],dim/xOff[i]),e=map(perlin.noise(m[i],i+200),-1,1,-diM m/yOff[i],dim/yOff[i]),a=map(perlin.noise(10*m[i],i+999),-1,1,-radius[i]/20,radius[i]/20);ctx.beginPath(),ctx.arc(x[i]+t,y[i]+e,radius[i]+a,0,2*Math.PI),ctx.fillStyle=r,ctx.fill(),m[i]+=mOff}bMag=map(perlin.noise(b,spots),-1,1,.8,1.2),render(),b+=bOffset,window.requestAnimationFrame(draw)}function createShader(r,t,e){var i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),r.getShaderParameter(i,r.COMPILE_STATUS))return i;r.deleteShader(i)}function createProgram(r,t,e){var i=r.createProgram();if(r.attachShM ader(i,t),r.attachShader(i,e),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS))return i;r.deleteProgram(i)}function setRectangle(r,t,e,i,a){let o=t,l=t+i,n=e,s=e+a;r.bufferData(r.ARRAY_BUFFER,new Float32Array([o,n,l,n,o,s,o,s,l,n,l,s]),r.STATIC_DRAW)}setup(),window.requestAnimationFrame(draw);const canvasGL=document.getElementById("myCanvas");canvasGL.width=dim,canvasGL.height=dim;const gl=canvasGL.getContext("webgl");var vertexShader=createShader(gl,gl.VERTEX_SHADER,vs2),fragmentShader=createShader(gl,gl.FRM AGMENT_SHADER,fs2),program=createProgram(gl,vertexShader,fragmentShader),positionLocation=gl.getAttribLocation(program,"a_position"),texcoordLocation=gl.getAttribLocation(program,"a_texCoord"),positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),setRectangle(gl,0,0,c.width,c.height);var texcoordBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),gl.STATIC_DRAW);var texture=gl.createTexture();gl.binM dTexture(gl.TEXTURE_2D,texture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);var resolutionLocation=gl.getUniformLocation(program,"u_resolution"),blurVectorLocation=gl.getUniformLocation(program,"dl");function render(){if(gl){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,ctx.canvas),M gl.useProgram(program),gl.enableVertexAttribArray(positionLocation),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);var r=gl.FLOAT,t=0;gl.vertexAttribPointer(positionLocation,2,r,false,0,t),gl.enableVertexAttribArray(texcoordLocation),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(texcoordLocation,2,r,false,0,t),gl.uniform2f(resolutionLocation,gl.canvas.width,gl.canvas.height),gl.uniform2f(blurVectorLocation,blurV[0]*bMag,blurV[1]*bMag);var e=gl.TRIANGLES;t=0;gl.drawArrays(e,t,6)}else console.loMo g("Needs WebGL to run")}gl.viewport(0,0,gl.canvas.width,gl.canvas.height); window.$generativeTraits = { "Palette": pFeat, "Noisy": noiseFeat, "Angle": angleFeat == 0 ? 'horizontal' : angleFeat == 1 ? 'vertical' : 'diagonal' console.log(window.$generativeTraits) (((((((((((((((((((((((((((((((((((((((((((((((((( DjB=:BNB.BNB:bnb1nn6fx2y2xycw5gqxhfaz87lsn8r4s6vfcxgw6s:62717845:te:0 c/Foundry USA Pool #dropgold/ FjDOUT:BCD7B00B4ED44CCD68BD59684885626A695FEAC339E93B2EB5141CE763CB720C FjDOUT:0B217D17FD8CF4B530BBD86A6EFD80EB4F7F2C36A5C6D6358DBC34875BC8C444 Aj?=:ETH.ETH:0x6EBa2fB5A7ea96ECE97324BA077cC525D29e75af:8317446::0 text/html;charset=utf-8 <meta charset="utf-8"> <title>The Odyssey of BTC Ord</title> *{touch-action:none;} html,body{width:100%;height:100%;margin:0;border:0;overflow:hidden;display:block;background:#000;} canvas{position:absolute;} eval(Function("[M='F@cXSVXir{xHHcBhEMIo Gxki@AAXo[e{SOn{SmVfITRKpomVcEoO dXlcH@U_VgW}_ACaiwbzGF}sXO`qSjT^iiRXHJdq{rC}BO~jdIZOcqbo?FittY]dyTpQSle`WCiZPOtBAGgd fm|}mZqVx]K`pMP^uZlbjWDk MIvu`hVJ~}eRhzj}]HswSPiz{KnxveJmdykZbe?WfKRgsJ`lmjkD[SBQ}Eqw{{CXUBPfe}wIXHD`Khi^zHiv^@ZKjxzzxWOOTKAMCOWEuVxPRKH}~~eP?ddU_Zdls_TyWOClM^DVZW[jbdbh{cUaJpCuAkT|UrfwldtrJoZx}[OfPhVEUBdyjRhMMxNUn_PlSGyc^cFMIuxCfKse|RTx@?FXH[|~~sSYcRpwKqGU~ZnXFzGEdRjJDevN{fiymu?]}XTwpRvnUk`]OQhWRGaRcWkrmieT`Xe lQh^dHFMa?W{zZFcQeQivIqdAXxVmbYf|`T_I`ej}pzgGbybwNMwRAApzDDbClrqtd]q[L@@PCqmo_JRP_SRr``TG}n?z@~WlIuHPqL@Ewm[Da[RtJ~UsZSyW_QW@aMNhGK{`}|C}ba@nR[USYZgmyvadPLX`i hfBn]n]g_}c|JtdkP{XUUMsjjwSKICJ d`hYjnOQqhbzy_dj?KPz]?XT`TBNZdwkVJps gXpGhI{D`SGCB_spdMpmTqkZgTMQ}eA~DaCYUiTxfIDqnqRK@Ow^U@vhuceNtHWYzp?_RoSbWk~MTHENaKcZbZ^vVkOILpP[?H`jBh]qwSAIXeSV{z Fm?q^xYAPvs_aOzcmLk_{?{PRkDArBJyrh_xxcKGVZ^f[q_rZt[dwMPAzEiBj]Z SPi?fSb[aFimdCo|}]^vY^QtcdB_bumu?NA}^pF}biGoSGYSKgrD@XSc^yPvdBVHV eq}CtjicLkFbl}Dvb[VtLCe?|BlSicBCcvDulgBxmYhOJyGpQmcVQVoKtXcpOz{ Ybq^UBbm~v}ZsZwynU~NLsdcLwN?W]`G{iAx|SBOZm_B`ilZpeAMdB@iItXCMt}OxjlQhFC?AstUMiVLgfa[]pfksZSG`A}a`yM ANnSsGQHmNXZo[HTNwa?keUsuxP]nLpmVoUNsw{l|[QNvuMjgLsjRg cjg`WdKpqwoFrnoh~LsuhpzvdvAoMFg?knE?}SQxAhvqPhc?|YtoZF@ZKT`G]fnnAwgVkzDMPoTZoHoUiZr| OPGzWC[QUsogDxziqPBPT~P?m@NdiHH?pOIzPY[CLmGbOKephUnumBS]Znb ]`L[T`_wQEEAFgsaYKZILgSkx@L {datyYsUnRo^_mCs_kl[yW~HfsEpVeKj[|UdzvmYiMbCP}o^TQ]oCjZ[qrlMZnSR{C[nK~zyAl?yYFtOvYyqIXoGPV@ vTIrGwKzrG]DrO_^{IvsN{oOM_asdmkeQhCcQG RmoG]M^xauffANOksjWIz@IYOJqas?~MKX_nn?UPTqXEMiNwMUYu|msdX]F{xjEfyjfSERF[qlJZOPk?PmO^MZKcmjs|E_oM`sZ RmzSZyui|WShH~zNRqNO`PWxCDM NARYGciQoYn`FLFl{YvjnSqydZsUMOZ{vVHg tF{PcQZel@[YWLOPUizHzl^cbvu@~FUhJEPhRF AEPlZ|tLgukswA|vwYmb_Tum]}WIWSE[tryembsDYElIAurOLCRWV[hF[XQi YysuAD^ts|uCpS[ZwYEwNc`o cmAhIuZvA[qqSZU?j~bzI_WQaGk[n?{OT]jQIcUvmTv}UM~ZpVMVs}}^j{LbYkXMB_qALXyumy@Grsbfr[wNOotYPGCO^gkX}kuocLT}EnRZVFyQsJi`~cki[E}q_~Zn?N`}uZugxq`ON|jLtR@nQdu]R`]wnHJ|EI?bSGrXRPvGiCEXAwzFRHCk^b{@bKsD_GskL_IH]fYyeO`{s^FFfijQJVwkEhexDQMrMoOa|fbmxzinvvBgnWfDvTWxrHwHzPK[ijuFgCRVE~oLID~EJpSfGE^K]SfOPl`wIZRq{z?ZUuwpE?vQFROcA[QVCTLUS{zruYhVY]aCl @]SHzBA_sSzrsf[^y?uAt~cnloXs}dBAL^fniyjrp^]rDvpdPig|}H||yvvfONToTzQkLBLPAth_yq`E?VoVvY^AWo}QcPQSPiqBjNx^@z rxkaeB|HxzBNfN{[_nq|al@d|IjRo^XSqJTNV}{yZN{`bSJSw}HreM{{`IJtznyhkPKVNRi{iEpnoHhAig^fEz?fCik|UiaSfVpHJD_|gelsAEUvZaUnbD_T~YwJLcKzko}JcTTVJldvlw^]rC_a|GkSAmqdZkg@OiDN^FTRUdS~WixZ|ST[FdgwVvkHpL?OYj[ZBYu~PMl`KYS_[VRgT{A^VFEim{TByBKlykDYwu|SNRxHYVSF~sCb]neiY~ycgW[uLO?vuQ[IcSlaqWwtOgXVGCP}awRQD?`cSkLXZ?r Qe~hg_fD}rEeI}bKAPwHipiU[PE_zJ^]kCm|IT_juPFQlw~rO~BfaCsPfwgT[f?a]zqTarOF_lqMMSKcaYaOMxOHEYs E|XDRjENtHjbnWmQbZmPljA`Y_|G}gTZ{]{tMyfItbuHdfmuo}mpfa~?P`DgXOio`hOZ^weOFpCZm}jS amWvLaYak@uVtkQsEZtIqUcLBPqfJj{qX{ypnfzVN~}lxNx@HWs{bcgr]EhRjKV}PW} Ka_LxCPSKwOBSoGU}dN_hj{eOzHGdRBq~DuO~}jvNTqTBe@|wkZopbqQpb@Sqih{k~UJ{i@pmzZBjXme_CBlPpqpQ{iKtmajABtwwwtU}AkjGIbjeHO^quPMyZ jvlrThNeGDQwqS]~eMdTXIlbLlYmZshwJ^UZ@IUQViFnCrujyZqEovg~Qkb{InnOOpo yPc~a|e?TPyzoGiZyAZR}rPcw~vMwljgEcqvPINlf}HoKz]pim|cuPzJWQoht|I?NDWboDAdZYyxyK@tipG|a_HgUtKOGRAa[FSHzUYulxTCbhvGHie ?EJw?{GRjwt?klZ``e|~nX`GtM D[{Yl{hHia_UIA[ec`Os~Vo|TP zkvGDWDab]GalsXqdCD]wchbtKfCm ]HlCps|AnV@?DKQwFj@I_ocm^^rBnOEMVNollepezz~LnlOUms^llcepy_XDaB_Y~Upo[n?W tq_oyCYrfsQgmGzE{QWFQRgpSiwG]FYKPAkk|tYj[DV_CKDv{{SbLtA}Yu|z]CqfD ^jhMI`TZJplQVJh^aPCIiiB{ohfv_BFzxiZ~VmwUervhwuaDXJijJnTpw]_~JeyvorxAaCv}auzTyf]hyoqi~_PcTNFPGMOMgdhDwTF?zQGOA_}tZhvQiD]crtDe`h KHR~?m`ehtCa@hFvlKTnOWN^DApACvgjnt|UrXvNUX][IW^{^^BdFDS_n_T qE[g[eMe|oaKkYLvh~Q{mygNg]WCUf]@E?[YWaDLMgy}sB|M[pYaCxOTs{[ZMtZAQgRLV]PS R[~dBJXd__xWkz|@xXKoBU_L~F DCKArQYLXMZXd[nymQBPUpudkdvbOPSVduWPM JaOUNPsC?dFLzF`nlZBgNe^Aor~LEIph{F_UNMeslslL_XYLXL^KB_dUTJd?A@_PnV?XBCG^w`c| YwNJrwdnW~~FNile{ztijtbOsMkn{m`CX|LdHh ULI?}?VuC|}AVZ^f^jyEemwp`I|~onizcqb]ij@PDQWDCrTgYUWWZtETb[FniHa`m[tz[T_QqkQ_xq@AxdcQHtFKyUl[uWN _k@CfJ@bRmLIQ[wApeYPo_YpnXMHQ`no`LQOphSGc?|]VeSu_SmFzvgn~g oB]}zzu`o@CfWTUEtX`JgoWJL_JWBeD{mQDjgR@uxBC_uraxe@Kc{iSAbceAuDobRIcl[Gj~Y^dXA_RxErtmzrR^NzyzlV]vHGGMuuMi?I{S |enUcBKXX@ManJwEmNfisaDe~uS|Gg[g~Tnp{QskHrlQWrAC|nt|KjTrXBaRoh_Ko|g}NTOKM _BSemERmrf@W}IfxzfyxubYA]o?ksZC|QcJV@sfxa]pD{AVRwVl]QFL{{g{L?ROLP@jfSL]xSNCbHzy[gnsKwOZbxFbwhlemQzI`SYMYe`]@ PrGOSGyYOv@GZBY@[DewkR {m~If__zueBFFiEqivFAsu[Bk[MHXD~e~BbWw[_ZLhxPzaIafI[cIOCqBX~|G|msq[@AV|mrzzg^VdDrsdPrmr?fGcrsr^DcqMEGPtDwIhqZrNMGzc}u~_zhbnXCdlLwnROJnvvtkSPeDCrN]RGdNf|sTFFcUlUa }ypW}wwscroklr}Kb^@LONjdFK~j}{_?zDMQE}tUERZNlbxCdwQ@Ks` ySEZW]Dti?KsDBAZlv~Aj_Sc]Py_Sspqy?cJvdgK][[FrZD?Jr~vPkloHxwruUXalSge|ehQvncVwQT|PLaG]exf`RPHxpKMBMtZbrIDvkNedNZ}kQh|cmD_?N^El|EjIUT}VtGEXV}U}W]GruTInBudFDBgXYC`}`IBg_TfMriM VKke}?JqObhjmlFnnxzu[}OzObC}tFV@{dU]wyc`^ZCfRd{OnwRpILPjDQguYpJL]HUX?rmAj]ouDIBloV_V_j ztpo]aJQe?zqzrxiRpH@QQOtRofjwQ@c]jmrppL~Qd dCq?Ocep_MxtdXFlN`gUg[M _rTUq{n`CCIR`bUjU~hGm nNq]YZJs|@mS`lp^Smup{IiU Y[MRGwqipiT}CU~]XBCkjY@_J?ob{]SxXpv_OEh}LCQHtG|}CGiXjTHxm[SubWVHDJnO@BpSCpFpF?@HCWWiF[jBadvzHwizqo@gjMJneeGnoEa?^QU_mbwwqaJYEsF?nUBm`]skIDmJPKnoSNdM[omnIZvEvv}MEHh_FAxS|U|fNytp@jCvgJjxZxTSRWnpWWVGR?fmSjrVBRsi~o`V@AN[m R_vH]owtf^LlmAalzbIElfMgzvRL?HnQsVfehlcrB@wyjZEbAaBYj]^k{TwHZM K_v~TIndDnlAqP`MKXhgFxzkPryE_Dl|ozkODa^zfqrtnfrT^bRC}AC}tbiYwOqQchtGb`FMavMGlcN~g]o_JJaJnynH_JtgowT^aUsTsnl}[^oqXha^RT?epJoXSyIslTxl{spYIu^aASOabWMHbKTI}s|FFNsXsDsvtVkIYpycNY[``wmka]owI?Z}EzYUeeyuctxf]U_UabVvOeb~W@`SSwNP@STgtcMJgHwAhri}Zx?{rcM^_V`]Z_S}wgz?es WHT`ZONw`DjVsOg?AE_T{oIHaN[auV]}YV`fi]i[[CcuVmAuqScyOvjCkzO Q|weDHSh|JZ?sZ~Xez}~HxhNkETJqJyIqgsBRAClwUHvMJJcNVkGd@{pN?CAFHiCvBOMzlul[G{EWy^FZZL{|fxb@rlwzJ_[JlLg?YyBshWn?x|XUlcbZsfEc}Hq`W?iybuTjB[tiRnpAvPUkN{ThWSuYAnNe}??l?}zFSgzRzmiISZw_c}vtZuOeM MZ}OYHX}hG}iuzsFA~BOZFJ[BUxz{VvHTNZzU?ZM}D??MovoVjTsKXDwdHbTzZruXZLZ|ejaVQYz]^Iaokk[sdlnrigcFtdZ|wh^gOYA CfLNZfBVaJaOO@`oDpXDrWaM}OeFY[avjTq@{stpCewuBoTAUERP?Uz]H@USt@~cYiMbgdwy_KSbomFHHoSgMm_LEM@B _@xbPva^l|uHbNGivO|ka?xUlrBqggN_J|P_iB^p?ry[CusZCocEQZNNRAlswiQkfvIKGtLachL[a_qx|ll`L}mYZP_lSf}~zuZMZFCcGOwzJntYHQvGrMp[I O[tuHMi^]IAf]xDIIuvc{fXVLv{NTLINhmcAPHAkZpDM?G^eI|_ITEBs}c|kjf`_g{}xsbKK~XMu?H^YU ic|J@?XvIkcNWvLjsoMqxNm|q}_Fgg|dwgumFD@e_FwGy{`Te]PeR^u]ohjM a{Nf~OyoKdWq~lAGiFTuKBbUqeNQzjLvuOa GmbLKqWF]@k^@y}civ}XfbVzJgV]iIK_THfy|KvWabhZ_xtaymMstoM?Qkm^uEfZ{YnZGYfvaka|icczXf]xc@eL{zINJ@KXvCiE_ @IbYabl|tVT[y`LvBjVi@t[kO@q|CevKskVIKfCEh}]Z{JKRojeiuRErwiutW~ZysHNv]OjZD~DNM`ZYl?FyPsfGqO^nNjMKAemg}GiIfSSvjumZA]ksH pVpcNe]FPtcM@~DeRxDEMxJQwKtopshTGYdm^zii^uSFShzSOpomR~pgOhkXjPIrOfvvx@yJqvHVR_iGgsHnM^HvXIjwK?_GLobTx|s^_y_F{fud}~FyIgEU_fIwsjmw?l_~UG|UOLf^dVH]CoNiRtbOe@AIGlNqOt]FEUcJI`PtdJIblwnCSB[nGTMyjWxdr[@jZ_[Y_iDaQaHWQucZ`_v{RaT gRcadUemvMjFHyg_eDhkkZyM dJW|CVwr_vXtF`MRy_x^UG_pC]|nzz gvVKyjcz|~{XK}gL@aMGXDtDKF|^}HyBMBMpKNebZIFtQmOuZ?qo_CU~TKgljyPqFTWVVGMsfCoXO]EkSHrrIez[VrZo`zd~`YDuRCJib}Vz]M|]nMHDOLbs?UYAuGzcuK^B{Q|RloEMQ|QXI`MHY@JYaAkA n?syWdcPGDG|ffBbCyv}VSCRL?YXNhBQB{eyn|PDcsdAyrpawKOaN UxNA{WWLO`rrsYrEiOtxGeNR{gkwFbaRpL~ZprG@WiGl_hBGglFP^f[sGVJ`MXo|SrZgi|e@KUq]SThhf_ nXD}_Y[DwUU`yJbmhdTyOVTVAtwm@HZUzBV_nccMXq yF~[QNyTZNemdM]AaRTPgTrzP{QlWT]yzlTu_kszFqSJlzaOtmGDYOHOVGMcchcPQoHBNPnhVpQXMa[XHceeIhbwR^IAINmY]IMsu}IHLNA[JFtjywBwl[pWxFnIsegCqSe?wRVJzAvgRt~wYKQSyuMHM ]v{YlMFNaNGCrFESx]tFdh~jPPPiyXoowXt }rDhNEWDrG`vjEbed@j|TsDXJ TRQhJBGN^[HcPVCXCc{in|LklU{wfN}pJ^@OyO~nP{|WS BbBR?bs_atxPN`YHPB_kYgz}k?vy[hzHDd{UFt[gS|ArTRJpYh?UPGpP~^}oZDHohbiMjOxK^k |MRJMocIAltFlpcvJB{Tz^RU^R@kxIhVhkzCR{Un^rZMFis`LMCNSnJ wCidgSDI`WiVld^?^WbuH~ssBNRJN~icwHO@JAx^ zzAeyHoYur?JzrShD[|SjzsOfs]]]iZrADkl}UGbMhF?tL~^aZeLZYlL IFqsg|LTRasaNXMlzcjm|cQ_?{cwPrZUBmLi?jnvuDh@zUfqSHnl[cL NyN|mmu^@uBTgWZGHnBuK`EbmLOBmEL?MPqM?dHDJFtd|@`Yqm?XYZnJ }rcJk^qp@?|m[P}nRFA?ATKifEKQV v@m[QqKDHywyODuhqxmvtKI^edRhRZUZYBs[OIreX}@BiVtCi^e?bHu|@G^Nlddf[qi]gkTAr|lr_cXf^uGYgsstxuAM}}UeFzSC?LKA|yV^wcp{@xbBaEoyymCfRQq[[sFmcHXE}?X{qU}VG[UlrLqK?a`tZwklvSOa{?SPE@cUjnqU qvH`J{qucGCnRrhaAoYPfSuK?pJeQRBUE?|UFbbvD ?IiVHiWNERssuOhni[ZpFwHGypQmFhQFyhJXW? erYjxogk[|_wEZmLIHRALK^?ZWvzN{jB`csOPuptYOXIe_IyF?oCCwPgMb~jAUO[PMnT`evyw^^HQGFmf@sFvMbmbnT{a`ZpyiQt ^QKm?jFeViEgQOxVUKejQIjzgF{is@?lFb[igdfiRBMWZn{kJeIz}RIvsolhC]|DKh_GEtWzWVffh XlkM?Zld?xvbX^lTqw_HsEKjwVLxZW?NhYzsMNYhpKSIs_{dEbujjU_uu~tt~wVCyK~fpjLWMxUmI?b|xVTM E~k?oYlk|QjXXvKYhkqGgaNzr|Pr^GQEGlccK{KOccaKekfwr[ygGzpD{PFpwvKsJqurxkPrRgKrRXfg~kxXFWeMyM BogDHdu_hmS|QG~OvaZICN^GKGp~AKtGbYSk|xC{lwedbr`FCAbGN~|w^XgkDYvCCQ[p^ [onpMOYZANpYYxZ]ANQvQvNtv~gopRa?Sv]SjWrFNSCF|qYayPwENi EJfaX^jAZdQe^xmACC]`rF^FcvASF|w@d[JXcB^ ptsw[^t}Wmd[BOGtr|m|PtdAqFOB`B jjJuHoly]hJyoAg[xzUaQGxRBt{gc|BUgtf|j@yhvzk|Z_RdeGzrqH^kShiXI|jyLhwnw?DjTIxLyM}v?@{]jqmuoUehhj}oUG~F[~j~ZjqEsO|@pBclDuZnMryamb?C{TwGTZyJFIozgxCCN[Dh~Kg CFLn]?i]}Ki[O|YYK~OE@n^HzYf_wygNgm]]LkMgbCU?a nL^AjN{MEQeM]_`zDtDaHrcM xUUgbXIvhFz`gpOM_SdiM@Dgv{gUjarq|qsYvcuFQ^yQHvlXz_x[^Fk[ptkVhWsl|SpnhmblcQ RbWFRGtn~yBMheCOuvreQCnpg_uJA^mal}tfBqZ_rhKGEqnYOWH^ J|gNbHUu}eN^u]fvsTnme|NFMgAweoVLX}Kcf hjRZ`bvswhMVNHWTijk{Q?]z_BAaWJ}dBFqhL^|uo{Tu}Ihdk_|J_u|oUR?U{RABb[Rtt{WLJrWBTXkX]HqFDKD|MZd[BC`sEuWNCNiENvd^tpR|nUd]qYtKaszWsladi`JT?qzF_d[ zaoTUAEVThZLl^xo}|van~?@TFESrwGr]HqPZxPJ{fF}XJwWdSnYY}x|`GrpzmtGfLndyYKNfFuE~X~bSCImsARkqlu@{{klboBooWEVfpalljWG[zB|Ieh^YTDHFWWVHb_oY_TR@h_sHss|VJqns{sTf~GIbI{xiLxP]]J^QDqpJaLnNn? lcs?UAc{ZZKzFFo?`qBVXwxyDbrRwdWGATTeyoSIFXTvTy]dOg`bIhFHsFH~wWTjth}u~|xJToPWPrKh ?Kyw?RaQBiM[ht]PQrQOIgakhis Cd[Dl[YB?^]r~IwZ@sAJYHB@YbCWenBvjkmg^^t~TYyid}WIay`~z`zAdkbWnqtGbOil_PLOMWm|?Xk~Q^nCYJZVSZ@Q]_vkLaAGUuMvtPDMH]HHWrmId WcX{|MrI_JLA]ScLt~vnE^Sx]NFXdL}OzoEv@JnJ[Jdt[ZwgZFpSm?@NpxMRuUq]mH|^XoD^elI_z?Kz_lSSX_[[UQUd]Ia`n|qrRlqfbnEf~uLa?cjqTnnp_d{{hZdr qzvapOVvcf~vwKrJ@sWX{sduoPl`NcHDn^[S~b}YEcEVj~ ckVOYFJpjHWzXoLdffPDwPqkl|fAyNhq~g sfH_PBmdRzjdGb|Sq?Aed}ILY@LnOh[^Gv PJzFKEtZvVVj_IU[gwt_M dZuizcn|@hAdft[SaeJKy^}`ssRIcC]yBJ}~hTCQdWZyeGk d~zZS{}VLYmsZYTuH~BYGR_mHLT~DlnRyGW`psuavUJsF^VThTmiVnKK~IhFRCfsfPpSA poZdAERpAKLV^|qsOCehpIsLqler~Ded@wJOsY ve?@@^hPoq|lC}Ug{gfDIY|nL?~ngsDN_FNWIlP~@bcQ`aDaKxYB@afl}Eb{cSrV^fZ}VoP@dQkTSrwXdDMlatkOhNvwzAgmViQnxJwMPLxmFHqA}wgwo@WWxQXlhAqidR^TatTMWrEIT_YotAA[?zz?p}TgwLFXbs}o^ht^jouRvdooidI]Nm`]CUKQkgujTjmtGDgJuxqj{OoLyc@oY`uXqMqE}dTo}Ltfn^IMVwc]NiKnfe[UUHoscwMgoxtr[vcORBGbN}CdMQytQ{RzYC~ng{w`[aExqvNUTun}Yg}OZPgirFEhh]CbAcCPIvVM UFV@mH]rRdV|TxpCWypDmYTlvDI?Q@TthKwqafCpPHD_QOYd[I{hj[[aGa@Kv@o}Gnw~nvvSORCNksW~K?gpYq[LmLRO[nsWKeiv|zkHdNV{^wEeHh[`X_}k^|ZoJFnt^sttxVdxfNACmOdwNOOzv}~aIdhp^sk{gtmMVvPE CT`A{`kWKOXjqZ@FZA{l_a[`UFE w?Z~xDvdw^jOmiCV|XKUzO `el~c}O`G]O{_?cBlob`jXXI P?XULPioCD`cUm[ZRsCKdt`W}YMbqwLko^]{ TE[}vTRMu[E[i]{{tWdID_QpB}GBSVLx~[ap|Zux}AGsHZOB[_OCgkb^rfUjpNXVdImpxSksiDrLNezkKlJ[ebUksMnT_Z_hZTgYuMPUOsRGoNP|_EaV?c[N{Hvym{XFslEiQICR~EkeN?Ck_}Sm^^MjhLGeLoT[v[AA{S~UovqQbOHD|Ah_?rodgMi`nuFY|BiYROeMOIrvRsum]HbOcXF_]G}j|}z}uO|rAPkbIjkHCLM h_dpsvlQYX|dVvqm|dOd^SGNFCldrx?OlS_GT?`pmJia ~gznzC?Nfj{o@AScmz@BLhHKtyafpB_Z@QdYuv po_nLW~rFHCuviCkx`mR[@KTK~H^MSsI]xJom{zhm EAfygjvtY[AGXbtAtJcagCnPFH|sNGhTpISUShhNnqRcsdWge|rOVdtWMG`vF]Dr|GubpcF^HFyvwNEIlOl{pG_XYRqVA_vjKPo`Ct@fLvzcEdywnavMU_ax]sB~H PzSTE}KApQPFMgI]]FWqSAgAbbkxuXevXdDuJDBUV{WY mR_`dHCGzKOcihBzCuTkmuiOEEWkpRehbfmkpcDgt@jnvL}I~}LzSTLXf`Qku?H{a`?aRvg`EOeQ?B|CSF|oJ|?bkp^fqJdGRNRyQNdODntOhEbQ]mYd[YTURr{]icTqvY{OUKtyMxJwaTVpmfHPROlOn uz]_BRkNEtqjg?o}OBumPGsHcDLnCihvp|oeD`sgsyeVtCC?WPLXM SVoocog?P`@NtKbIterlVuPhL|dCcFePjXop_|RuUYMmO]hGxIV]_}gsDtr?wd}eZ{WPvXbrJ}asCxhtLdEljYfHPRA_GEWlKG~JLP?embQfRnNe{]CpRw}ge]LAAW}qgXd_^MYzTLOrIZDDet]k~GtJC~CUUvnM|Mo t|IcTgKg{KPdF[tfOaIWm@tAzGkELxhsg`~BFpylGs{zqpedkXwc|AyMk Dyle{AC^jwLiUKb~zUYRFARPKfwxp`ru?tko~j]uba_}@sIwraL}coI}h|B@DXFyMyWXGWrZpAJO AAKBQWB|ULoF^`i|_CVnFHIhRAOk|e_~YO??F[jfPzJMIAP?Vf{t]BB ^yMl@aiKPs@HpaSpLyohigTmfh@CFZUoIpbn^Bh|kdVBgIKQ[iiW^wYlZOsXajpK`abX kDcqojRVQzsoyZfhRpOhKMbrtuNQOkZTDJ kFwjnVP^aCId[KJ|r}_o|foj{vdKnjO_^re[UtHIZ[aRM G}kyL?OeVfULiva}y_geFk_wX@xo_|PbIJI__HlCYZQnkfVr^He^KcJcr|xA]BTOnyX^iO?XD_QDh GrA?MUS`cubCfgcQ~WFGFOTJDOAGFHfIDUNNwjGdF[[GeGYfkB[ADyQhMdIhJnW k]c`iqXSjg~@OI{KNBT}wzwDOkZorP[LgMuMyKi}gE@BsisVnCvwhKkRZzD|A^qJ}BJMltI}qs zmg`mra[HzE^O_q?rn~aOJKdMQa]GBBVPtegIdBaoBaCK@SvPRdnY@|{QZHmNx}JxGUyXGYNFtJRieJIVKmNXA?aY]Xy{b}ypgtqPfeDjpho fbfFMlAAle}]|CmnF@{U~GG}c iIWeog}eIwJqoSAkr?Af~nTHaq_TRD?MvtaLDYu M`^MstudLN`H?x]pZtU]Wo R[jBYORuSylFVRkx]~|[UNhViOtc{fTnGqF}Ethp^BhMf?_{J|k_M o}pSMbgLEjzl@SMeUk^@e~KV|p[MhqYiOEB_UcGnI@K dP`zGWTug`rurr|[}rNdBNTAiF}AqiM}GRlaXra bjrpGNT|FJNEPjMo[kmc[qG?`oERIJb}jBy@mKrdR`ZIemxp]jNAL eTFqu?xFWDZEnGvYqEsahXm QzOKMhWAte^Hz]?sh^rGk?aVopS@feMj]tDEGlsko`^lzRLIEKv|m[HQ]N[N^eEzFklb`KAh^PSSjRONkZ]Ro}p{Ckpu^ARrTtyglZKR{INWKMYCt[|~dJ@]ms`huBbOakjAnCtrk]Jy{sWYi?T CoFar`Ckw|IFqLKPn?^IFqwM ?ykKpPSR@gUgl}z}~vRvGocfuiRvyKyCsgu{qr{IDhGk?qMX ?PZPsc`??Mk`ZnLFyy^rX~d{wmmd]P[fMAT FoenOmNNxrePS@KvfVKcwvLi[?BVD}xnu[h^naoAh[VSfnQbCKxF^OM fTeQwdyO[iGhYbk]rDm]qpG CQ~sLmLcGQfrVEMUN~g_^eSLgAjR`ig~ c_dfbcUWJt{CBVIgmqMEQnfJIt@jDr{Y~_nGBpX ltgnYS@?XOKbndd|AbcHYNOHQbLZi{FibiiKThEu YOqirOli|BOKtMcL?vI@@E?CvAOA`_cDpyhh`aZxTy{PuuHzysfx[nv]RJ||GUsG}_w[~tbOjuRPmm|[vxUIfE~dDhE^^ ?UXRVArwHk}b[`{t~CacDuBDnHj` UDrr]UJ[mQLkv?oUDVKWhI~^w^iD HNIWBmTha~mm^uzmbwHraaMM g|NeghFSJ}ySzJ{LBNKZVtXLa^oUJCgmhn~nMsjgFhNRVFf viI~|k|jdJD|kuC^JJq?YG| H|{XCgdBy_hUIQD}ft|q{`~YCss~jj}GsbgSOGQps|~@^[cxJ cue_BymwZ_QqM`FFfrIANfY@gvyw^^m}MTWGf}SVGT^v~QvF[nS|UVRuNXVB@AAnX^VD}{tce^M Y~nPnHzkpUFu[FT|Vdoq[IkbTh~_RBbzK?yQzlbbLNBBMMOibfmoBO]oOgCYw`k~w?|Mzy~qXHDh[gQlnc}|onsHJG|d CZBYImxHvM`RylkQTIJAttbLiCZ`_jmiNJ~wkzCZqNsSkgp^yytAY^YhmLsxkfb]u@o?cNAmOuAojao}MYNOQrIJs w?MDpBhO_N]xNlsUXpXCvvaoltzvXEUkHX`K_nMWBH^qZ~gf?zUHE}pgBtveJnRxRr}Ec nKCJMHLBbj}Goq_nW`ArbC[RNeETDepThRscnOudjis| Uc`phvE^TeM_^uI}ilGPECUTOXAeKWkbJZTwuSOQYtYcFcKhDiUmBzxGhjH~cTav[Fu@l_ORtj_vq]WlJFnRm@TtRt[zpNsjKpdN[^HiK@Be~ZfBSsLjmokrh}tdUNjJEsJLgte@HGgD~}XlEl}]thLWPB_LDtrB?LPa]|F^PT[osjHBm^kKZyyxMM H|v?rrwxZSKrCG|pzeVmKKXQlSOn'" ,...']charCodeAtUinyxpf',"for(;e<34140;c[e++]=p-=128,A=A?p-A&&A:(p==34|p==96)&&p)for(p=1;p<128;y=f.map((n,x)=>(U=r[n]*2+1,U=Math.log(U/(h-U)),t-=a[x]*U,U/1000)),t=~-h/(1+Math.exp(t))|1,i=o%h<t,o=o%h+(i?t:h-t)*(o>>15)-!i*t,f.map((n,x)=>(U=r[n]+=(i*h/2-r[n]<<15)/((C[n]+=C[n]<4)+1/20)>>15,a[x]+=y[x]*(i-t/h))),p=p*2+i)for(f='0102021032104310531054106520986209863098651'.split(t=0).map((n,x)=>(U=0,[...n].map((n,x)=>(U=U*997+(c[e-n]|0)|0)),h*128-1&U*997+p+!!A*129)*12+x);o<h*128;o=o*64|M.chaL rCodeAt(d++)&63);for(C=String.fromCharCode(...c);r=/[\0- ]/.exec(C);)with(C.split(r))C=join(shift());return C")([],[],1<<15,[0,0,0,0,0,0,0,0,0,0,0,0],new Uint16Array(51e6).fill(1<<13),new Uint8Array(51e6),0,0,0,0)) (((((((((((((((((((((((((((((((((((((((((((((((((( %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM Copyright (c) 1998 Hewlett-Packard Company IEC http://www.iec.ch IEC http://www.iec.ch .IEC 61966-2.1 Default RGB colour space - sRGB .IEC 61966-2.1 Default RGB colour space - sRGB ,Reference Viewing Condition in IEC61966-2.1 ,Reference Viewing Condition in IEC61966-2.1 2021-11-17T23:25:47+M 2021-11-17T23:25:47+00:00 tEXtexif:PixelXDimension tEXtexif:PixelYDimension Copyright Apple Inc., 2017 PjLM=:ETH.ETH:0x6b7c1299681da19cfb9aaec52ad201684c7b7afc::t:15:f2:599:18978913400 {"attributes":[{"trait_type":"Background","value":"Aquamarine"},{"trait_type":"Mouth","value":"Bored Cigarette"},{"trait_type":"Fur","value":"Golden Brown"},{"trait_type":"Clothes","value":"Navy Striped Tee"},{"trait_type":"Eyes","value":"3d"},{"trait_type":"Hat","value":"Prussian Helmet"}],"external_url":"https://baycbitcoin.com/index/bayc/8430","image":"ipfs://QmWwSKeAhhs1CNNDDkMaYgdWvZjrCUyfczc51JXp81i3H1/8430.png"} .)10.)-,3:J>36F7,-@WAFLNRSR2>ZaZP`JQRO &O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz {"attributes":[{"trait_type":"Earring","value":"Gold Hoop"},{"trait_type":"Fur","value":"Red"},{"trait_type":"Eyes","value":"3d"},{"trait_type":"Mouth","value":"Grin"},{"trait_type":"Hat","value":"Bunny Ears"},{"trait_type":"Background","value":"Orange"}],"external_url":"https://baycbitcoin.com/index/bayc/2936","image":"ipfs://QmWwSKeAhhs1CNNDDkMaYgdWvZjrCUyfczc51JXp81i3H1/2936.png"} F7,-@WAFLNRSR2>ZaZP`JQRO &O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> text/html;charset=utf-8 <meta charset="UTF-8"> <title>"Rays" by Pawe Dudko | pdudko.com</title> <script id="snippet-random-code" type="text/javascript"> // not editable let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() *M alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.lengthM ; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 let mathRand = sfc32(...cyrb128(seed)); margin: 0; padding: 0; overflow: hidden; <canvas id="myCanvas"></canvas> <script type="text/jaM console.log("seed:",seed);class Rnd{rD(){return mathRand()}rN(r,t){return r+(t-r)*this.rD()}rI(r,t){return Math.floor(this.rN(r,t+1))}rB(r){return this.rD()<r}}const R=new Rnd;class Perlin{constructor(){this.R=new Rnd,this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(var r=0;r<256;r++)this.p[r]=Math.floor(256*this.R.rD());for(this.perm=[],r=0;r<512;r++)this.perm[r]=this.p[255&r];this.simplex=[[0,1,2,3],[0,1,3M ,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2M ,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]}dot(r,t,e){return r[0]*t+r[1]*e}noise(r,t){var e,i,a=(r+t)*(.5*(Math.sqrt(3)-1)),o=Math.floor(r+a),l=Math.floor(t+a),n=(3-Math.sqrt(3))/6,s=(o+l)*n,g=r-(o-s),c=t-(l-s);g>c?(e=1,i=0):(e=0,i=1);var d=g-e+n,f=c-i+n,p=g-1+2*n,A=c-1+2*n,m=255&o,F=255&l,E=this.perm[m+this.perm[F]]%12,u=this.perm[m+e+this.perm[F+i]]%12,R=this.perm[m+1+this.perm[F+1]]%12,h=.5-g*g-c*c,B=.5-d*d-f*f,D=.5-p*p-A*A;return 70*((h<0?0:(h*=h)*h*M this.dot(this.grad3[E],g,c))+(B<0?0:(B*=B)*B*this.dot(this.grad3[u],d,f))+(D<0?0:(D*=D)*D*this.dot(this.grad3[R],p,A)))}}const perlin=new Perlin;function map(r,t,e,i,a){return i+(a-i)*(r-t)/(e-t)}let bckCol,dim=Math.min(window.innerWidth,window.innerHeight),spots=R.rI(10,25),radius=[],m=[],mOff=1e-4*R.rN(1,7),x=[],y=[],z=[],S=30,sRot=[],b=1,bOffset=R.rN(0,.005),bMag=1,xOff=[],yOff=[],pC=[],noiseFeat=mathRand()>.79,pFeat=R.rI(1,24),angleFeat=mathRand()>.87?0:mathRand()<.1?1:2,colorBackground=R.rI(0,1);const PI=Math.M PI,TWO_PI=2*PI;let blurV=[];blurV=blurV=0==angleFeat?[R.rN(0,R.rN(0,1)),0]:1==angleFeat?[0,R.rN(0,R.rN(0,1))]:[R.rN(-.9,.9),R.rN(0,.9)],Math.pow(blurV[0],2)+Math.pow(blurV[1],2)<.18&&(blurV[0]>blurV[1]?blurV[0]+=.35:blurV[1]+=.35);const vs2="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_resolution;varying vec2 v_texCoord;\nvoid main(){vec2 clipSpace=a_position/u_resolution*2.0-1.0;gl_Position=vec4(clipSpace*vec2(1,-1),0,1);v_texCoord=a_texCoord;}",fs2="precision mediump float;uniform sampler2D M u_image;varying vec2 v_texCoord;uniform vec2 dl;float rnd(vec3 scale,float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}\nvoid main(){vec4 col=vec4(0.0);float tt=0.0;float off=rnd(vec3(12.9898,78.233,151.7182),0.0);for(float t=-30.0;t<=30.0;t++){float pc=(t+off-0.5)/30.0;float w=1.0-abs(pc);vec4 spl=texture2D(u_image,v_texCoord+dl*pc);spl.rgb*=spl.a;col+=spl*w;tt+=w;}gl_FragColor=col/tt;}";function setup(){for(i=0;i<spots;i++)radius[i]=R.rI(dim/100,dim/4),m[i]=R.rN(0,100),x[i]=R.rN(0,dM im),y[i]=R.rN(0,dim),z[i]=R.rN(0,dim),xOff[i]=R.rN(4,10),yOff[i]=R.rN(4,10),sRot[i]=R.rN(0,TWO_PI);if(noiseFeat){let r=R.rI(20,200);for(i=0;i<r;i++)radius[spots+i]=R.rI(dim/400,dim/100),m[spots+i]=R.rN(0,10),y[spots+i]=R.rN(0,dim),z[spots+i]=R.rN(0,dim),x[spots+i]=R.rN(0,dim),xOff[spots+i]=R.rN(4,10),yOff[spots+i]=R.rN(4,10),sRot[spots+i]=R.rN(0,PI);spots+=r}angle=0==angleFeat?-PI/4:1==angleFeat?PI/4:R.rN(0,PI),p=pFeat;let r=1==p?["#0B1626","#2F1517","#4599B5","#A83882","#B4DDDD","#DBBEF2"]:2==p?["#0B1626","#2F1517M ","#4599B5","#A84B28","#B4DDDD","#C4E4A2"]:3==p?["#140000","#021c13","#003924","#005841","#750100","#990100","#d7bb30","#ccae00"]:4==p?["#1D1702","#2B0426","#650427","#AD2C00","#ddac0a","#c6c339","#E55130"]:5==p?["#200e36","#2B0426","#366290","#E27D52","#D3EAC0","#EDC557","#A8DAB9"]:6==p?["#200A0E","#080811","#006978","#170F08","#FBFBD6","#02E7CA","#729C9D"]:7==p?["#0A0A3D","#041604","#00C075","#87C000","#F9BD27","#FE8900","#FE003B"]:8==p?["#2A0002","#14060B","#664C4C","#EF3B01","#C11900","#A20005"]:9==p?["#000000"M ,"#0B1626","#68D1E6","#A6DAD7","#DFE3CB","#F2852F","#F96800"]:10==p?["#000000","#2F1517","#2AABCF","#6CBAB5","#C3CAA1","#E54508","#F32A00"]:11==p?["#200e36","#1A0210","#e04372","#5aa9e6","#4a4e69","#e04372","#e6b953"]:12==p?["#131303","#040207","#EFA72F","#EF7717","#77BFA7","#FBEAB5","#5D402E"]:13==p?["#1E1E3D","#002030","#009FAF","#CB323E","#EA6740","#ECC850"]:14==p?["#1E1E3D","#292B30","#592D2D","#DEB968","#FEFDDE","#3D4046"]:15==p?["#040207","#002030","#60A5AA","#FAEDC1","#5F5850","#C0B297"]:16==p?["#0F0F00","#0M 30313","#9C8C68","#FDA5A1","#9E7B52","#E1CC92"]:17==p?["#0A0A1A","#120202","#FF8B00","#000000","#649EE8","#917FFF"]:18==p?["#020202","#0A0A1A","#09BEBB","#12737C","#28211E","#FB344B"]:19==p?["#000000","#200B01","#F92900","#F1D593","#85B7B0","#EFD7A7"]:20==p?["#000000","#1A1A1A","#F35C4B","#F6A440","#F9C965","#FDE4AC","#FFFFB1"]:21==p?["#0D1626","#091425","#051738","#204E75","#005151","#A0995F"]:22==p?["#000000","#091425","#764E37","#DF8D78","#F0D3AE","#C4DFDB"]:23==p?["#020202","#1A1A1A","#605274","#8DB1C4","#F8BE7M 5","#E4615B","#D0303C"]:["#050505","#0F0F0F","#000000","#7F7F7F","#333333","#E5E5E5","#F0F0F0"];pC.push(...r);let t=pC.length-1;for(ii=0;ii<3;ii++)for(i=t-1;i<=t;i++)pC.push(pC[i])}var c=document.createElement("canvas");c.width=dim,c.height=dim;var ctx=c.getContext("2d");function draw(){for(ctx.beginPath(),ctx.rect(0,0,c.width,c.height),ctx.fillStyle=pC[colorBackground],ctx.fill(),i=0;i<spots;i++){let r=pC[i%pC.length],t=map(perlin.noise(m[i],i),-1,1,-dim/xOff[i],dim/xOff[i]),e=map(perlin.noise(m[i],i+200),-1,1,-diM m/yOff[i],dim/yOff[i]),a=map(perlin.noise(10*m[i],i+999),-1,1,-radius[i]/20,radius[i]/20);ctx.beginPath(),ctx.arc(x[i]+t,y[i]+e,radius[i]+a,0,2*Math.PI),ctx.fillStyle=r,ctx.fill(),m[i]+=mOff}bMag=map(perlin.noise(b,spots),-1,1,.8,1.2),render(),b+=bOffset,window.requestAnimationFrame(draw)}function createShader(r,t,e){var i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),r.getShaderParameter(i,r.COMPILE_STATUS))return i;r.deleteShader(i)}function createProgram(r,t,e){var i=r.createProgram();if(r.attachShM ader(i,t),r.attachShader(i,e),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS))return i;r.deleteProgram(i)}function setRectangle(r,t,e,i,a){let o=t,l=t+i,n=e,s=e+a;r.bufferData(r.ARRAY_BUFFER,new Float32Array([o,n,l,n,o,s,o,s,l,n,l,s]),r.STATIC_DRAW)}setup(),window.requestAnimationFrame(draw);const canvasGL=document.getElementById("myCanvas");canvasGL.width=dim,canvasGL.height=dim;const gl=canvasGL.getContext("webgl");var vertexShader=createShader(gl,gl.VERTEX_SHADER,vs2),fragmentShader=createShader(gl,gl.FRM AGMENT_SHADER,fs2),program=createProgram(gl,vertexShader,fragmentShader),positionLocation=gl.getAttribLocation(program,"a_position"),texcoordLocation=gl.getAttribLocation(program,"a_texCoord"),positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),setRectangle(gl,0,0,c.width,c.height);var texcoordBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),gl.STATIC_DRAW);var texture=gl.createTexture();gl.binM dTexture(gl.TEXTURE_2D,texture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);var resolutionLocation=gl.getUniformLocation(program,"u_resolution"),blurVectorLocation=gl.getUniformLocation(program,"dl");function render(){if(gl){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,ctx.canvas),M gl.useProgram(program),gl.enableVertexAttribArray(positionLocation),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);var r=gl.FLOAT,t=0;gl.vertexAttribPointer(positionLocation,2,r,false,0,t),gl.enableVertexAttribArray(texcoordLocation),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(texcoordLocation,2,r,false,0,t),gl.uniform2f(resolutionLocation,gl.canvas.width,gl.canvas.height),gl.uniform2f(blurVectorLocation,blurV[0]*bMag,blurV[1]*bMag);var e=gl.TRIANGLES;t=0;gl.drawArrays(e,t,6)}else console.loMo g("Needs WebGL to run")}gl.viewport(0,0,gl.canvas.width,gl.canvas.height); window.$generativeTraits = { "Palette": pFeat, "Noisy": noiseFeat, "Angle": angleFeat == 0 ? 'horizontal' : angleFeat == 1 ? 'vertical' : 'diagonal' console.log(window.$generativeTraits) <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><rect width="100%" height="100%" fill="#f2a900"/><text font-size="40" x="50%" y="50%" style="fill:#4d4d4d;font-weight:700;font-family:Verdana,sans-serif;font-style:italic;letter-spacing:-.2px;text-anchor:middle;dominant-baseline:central">test</text></svg>h! Bj@5edca3f58212252283446a6358dc910d5d26cfda4a532a1c802556a6eb9620cfy< Bj@52de9c1988bba994250fc9978c6e2616b5c1acefae85eeae6adb47b44ec208ed IjGREFUND:60ED4C6E7F14B5C06D4A8FECFFF2266D7CFFC2BCB14FEDC9F2B15CC7D03C82B9 FjDOUT:9C76D339F07B0BACCE1455AF63E9D70E72F4085F2998CE83486F572E886F5D86 Aj?=:ETH.ETH:0x113d272244F2563d3Be182077b931737C3B32f9f:1869542::0 Bj@=:ETH.ETH:0x5E1A4CABF15bA815fa433aC7855269e587806800:17226694::0 CjA=:BNB.BNB:bnb1lc5aawtz9ae6j7ynrj8uqmtd0y355ykp5mxayl:156239774::0 ,j*I love you Marisa! F r immer mein Tierli! <svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect width="500" height="500" fill="#0F0E0E"/> <path d="M331.333 305.667V297.333H320.5L323 285.667L314.667 284L311.75 297.333H299.25L302.167 285.667L293.833 284L290.917 297.333H277.167V305.667H289.25L285.5 322.333H273V330.667H283.833L281.333 342.333L289.667 344L292.583 330.667H305.083L302.167 342.333L310.5 344L313.417 330.667H327.167V322.333H315.083L318.833 305.667H331.333ZM306.333 322.333H293.833L298 305.667H310.5LM 306.333 322.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/> <path d="M226.333 209.667V201.333H215.5L218 189.667L209.667 188L206.75 201.333H194.25L197.167 189.667L188.833 188L185.917 201.333H172.167V209.667H184.25L180.5 226.333H168V234.667H178.833L176.333 246.333L184.667 248L187.583 234.667H200.083L197.167 246.333L205.5 248L208.417 234.667H222.167V226.333H210.083L213.833 209.667H226.333ZM201.333 226.333H188.833L193 209.667H205.5L201.333 226.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/> ath d="M331.333 209.667V201.333H320.5L323 189.667L314.667 188L311.75 201.333H299.25L302.167 189.667L293.833 188L290.917 201.333H277.167V209.667H289.25L285.5 226.333H273V234.667H283.833L281.333 246.333L289.667 248L292.583 234.667H305.083L302.167 246.333L310.5 248L313.417 234.667H327.167V226.333H315.083L318.833 209.667H331.333ZM306.333 226.333H293.833L298 209.667H310.5L306.333 226.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/> <path d="M216.333 305.667V297.333H205.5L208 285.667L199.667 284L196.75 297.33Mw 3H184.25L187.167 285.667L178.833 284L175.917 297.333H162.167V305.667H174.25L170.5 322.333H158V330.667H168.833L166.333 342.333L174.667 344L177.583 330.667H190.083L187.167 342.333L195.5 344L198.417 330.667H212.167V322.333H200.083L203.833 305.667H216.333ZM191.333 322.333H178.833L183 305.667H195.5L191.333 322.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/> <svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect width="500" height="500" fill="#0F0E0E"/> <path d="M223.333 241.667V233.333H212.5L215 221.667L206.667 220L203.75 233.333H191.25L194.167 221.667L185.833 220L182.917 233.333H169.167V241.667H181.25L177.5 258.333H165V266.667H175.833L173.333 278.333L181.667 280L184.583 266.667H197.083L194.167 278.333L202.5 280L205.417 266.667H219.167V258.333H207.083L210.833 241.667H223.333ZM198.333 258.333H185.833L190 241.667H202.5LM 198.333 258.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/> <path d="M328.333 241.667V233.333H317.5L320 221.667L311.667 220L308.75 233.333H296.25L299.167 221.667L290.833 220L287.917 233.333H274.167V241.667H286.25L282.5 258.333H270V266.667H280.833L278.333 278.333L286.667 280L289.583 266.667H302.083L299.167 278.333L307.5 280L310.417 266.667H324.167V258.333H312.083L315.833 241.667H328.333ZM303.333 258.333H290.833L295 241.667H307.5L303.333 258.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/> <svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect width="500" height="500" fill="#0F0E0E"/> <path d="M279.333 241.667V233.333H268.5L271 221.667L262.667 220L259.75 233.333H247.25L250.167 221.667L241.833 220L238.917 233.333H225.167V241.667H237.25L233.5 258.333H221V266.667H231.833L229.333 278.333L237.667 280L240.583 266.667H253.083L250.167 278.333L258.5 280L261.417 266.667H275.167V258.333H263.083L266.833 241.667H279.333ZM254.333 258.333H241.833L246 241.667H258.5LLP254.333 258.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/> <svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect width="500" height="500" fill="#0F0E0E"/> <path d="M226.333 209.667V201.333H215.5L218 189.667L209.667 188L206.75 201.333H194.25L197.167 189.667L188.833 188L185.917 201.333H172.167V209.667H184.25L180.5 226.333H168V234.667H178.833L176.333 246.333L184.667 248L187.583 234.667H200.083L197.167 246.333L205.5 248L208.417 234.667H222.167V226.333H210.083L213.833 209.667H226.333ZM201.333 226.333H188.833L193 209.667H205.5LM 201.333 226.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/> <path d="M331.333 209.667V201.333H320.5L323 189.667L314.667 188L311.75 201.333H299.25L302.167 189.667L293.833 188L290.917 201.333H277.167V209.667H289.25L285.5 226.333H273V234.667H283.833L281.333 246.333L289.667 248L292.583 234.667H305.083L302.167 246.333L310.5 248L313.417 234.667H327.167V226.333H315.083L318.833 209.667H331.333ZM306.333 226.333H293.833L298 209.667H310.5L306.333 226.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/> ath d="M273.333 299.667V291.333H262.5L265 279.667L256.667 278L253.75 291.333H241.25L244.167 279.667L235.833 278L232.917 291.333H219.167V299.667H231.25L227.5 316.333H215V324.667H225.833L223.333 336.333L231.667 338L234.583 324.667H247.083L244.167 336.333L252.5 338L255.417 324.667H269.167V316.333H257.083L260.833 299.667H273.333ZM248.333 316.333H235.833L240 299.667H252.5L248.333 316.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/> zTXtRaw profile type exif (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM iTXtXML:com.adobe.xmp <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:exif="http://ns.adobe.com/exif/1.0/"> <exif:PixelYDimension>636</exif:PixelYDimension> <exif:PixelXDimension>636</exif:PixelXDimension> <exif:UserComment>Screenshot</exif:UserComment> </rdf:Description> text/plain;charset=utf-8 iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sTypM e/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)" xmp:CreateDate="2023-02-21T15:59:10-05:00" xmp:MetadataDate="2023-02-22T03:57:56-05:00" xmp:ModifyDate="2023-02-22T03:57:56-05:00" dc:format="image/png" xmpMM:InstanceID="xmp.iid:2ca8ef8b-b665-d54d-aaa8-b25745570e9d" xmpMM:DocumentID="adobe:docid:photoshop:3e21cf9d-79b0-2f48-a06e-b709490f427d" xmpMM:OriginalDocumentID="xmp.did:72e15e1M d-f2b2-c741-8018-1127a6f9c617" photoshop:ColorMode="3"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:72e15e1d-f2b2-c741-8018-1127a6f9c617" stEvt:when="2023-02-21T15:59:10-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:c2edfaa1-990d-bf47-b99f-788ef27471bc" stEvt:when="2023-02-22T03:57:56-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvtM :parameters="from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:2ca8ef8b-b665-d54d-aaa8-b25745570e9d" stEvt:when="2023-02-22T03:57:56-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:c2edfaa1-990d-bf47-b99f-788ef27471bc" stRef:documentID="xmp.dM! id:72e15e1d-f2b2-c741-8018-1127a6f9c617" stRef:originalDocumentID="xmp.did:72e15e1d-f2b2-c741-8018-1127a6f9c617"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>;3 iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.5.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1M .0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmp:ModifyDate="2023-02-23T11:14:57-05:00" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)" xmp:CreateDate="2013-12-07T00:47:55+07:00" xmp:MetadataDate="2023-02-23T11:14:57-05:00" dc:format="application/vnd.adobe.photoshop" photoshop:ColorMode="3" photoshop:ICCProfile="sRGB IEC61966-2.1" xmpMM:InstanceID="xmp.iiM d:94A7810BDF08ED11896BE9FF05F4E713" xmpMM:DocumentID="xmp.did:A58808AF915EE311AEC4D9821D9C131E" xmpMM:OriginalDocumentID="xmp.did:A58808AF915EE311AEC4D9821D9C131E" tiff:Orientation="1" tiff:XResolution="300/1" tiff:YResolution="300/1" tiff:ResolutionUnit="2" tiff:ImageWidth="320" tiff:ImageLength="526" exif:ColorSpace="1" exif:PixelXDimension="320" exif:PixelYDimension="526"> <rdf:li xml:lang="x-default">Mutant Unicorn Final</rdf:li> <photoshop:DocumentAncestors> <rdf:li>xmp.did:2409626AB15EE311B49CE3567E6114F6</rdf:li> <rdf:li>xmp.did:412B78FF8D5EE311A6FCA4F8612E1649</rdf:li> <rdf:li>xmp.did:4AC2ECB6A75EE311B49CE3567E6114F6</rdf:li> <rdf:li>xmp.did:4F283A168B5EE3118E48B0135972AA64</rdf:li> <rdf:li>xmp.did:5ACBEC6D8E5EE3118F0A8AA61ED14490</rdf:li> <rdf:li>xmp.did:61BB4D978F5EE311B6E4989A2C927EAD</rdf:li> <rdf:li>xmp.did:65439A6C8D5EE311A5D1E91D1642D4FF</rdf:li> id:66D3F5598D5EE311AE76940077C18741</rdf:li> <rdf:li>xmp.did:69BB4D978F5EE311B6E4989A2C927EAD</rdf:li> <rdf:li>xmp.did:7CFC7101A35EE311A5D1E91D1642D4FF</rdf:li> <rdf:li>xmp.did:A58808AF915EE311AEC4D9821D9C131E</rdf:li> <rdf:li>xmp.did:B36CF60D8C5EE311992DDE76440202BF</rdf:li> <rdf:li>xmp.did:BA6906AF995EE311B6E4989A2C927EAD</rdf:li> <rdf:li>xmp.did:BD8E5205AF5EE311BE7CCD91B40D129D</rdf:li> <rdf:li>xmp.did:C2E61D78AB5EE311AE9EF77D63CC429E</rdf:li> <rdf:li>xmp.did:CAE61D78AB5EEM 311AE9EF77D63CC429E</rdf:li> <rdf:li>xmp.did:DC01BD0F9A5EE3118D69CBF4A4DDC6B3</rdf:li> <rdf:li>xmp.did:DEC3C6F89F5EE311AE76940077C18741</rdf:li> <rdf:li>xmp.did:E401BD0F9A5EE3118D69CBF4A4DDC6B3</rdf:li> <rdf:li>xmp.did:E8D048D3E05DE3119832A89425985DD2</rdf:li> <rdf:li>xmp.did:EF2E640B915EE311B49CE3567E6114F6</rdf:li> <rdf:li>xmp.did:F180ADD38C5EE3118D69CBF4A4DDC6B3</rdf:li> <rdf:li>xmp.did:F82E640B915EE311B49CE3567E6114F6</rdf:li> <rdf:li>xmp.did:F880ADD38C5EE3118D69CBF4A4DDCM <rdf:li>xmp.did:FF5F0E9BB55EE311AE76940077C18741</rdf:li> </photoshop:DocumentAncestors> stEvt:action="saved" stEvt:instanceID="xmp.iid:A58808AF915EE311AEC4D9821D9C131E" stEvt:when="2013-12-06T23:15:55+07:00" stEvt:softwareAgent="Adobe Photoshop CS5 Windows" stEvt:changed="/"/> stEvt:action="saved" stEvt:instanceID="xmp.iid:A68808AF915EE311AEC4D9821D9C131E" stEvt:when="2013-M 12-06T23:20:53+07:00" stEvt:softwareAgent="Adobe Photoshop CS5 Windows" stEvt:changed="/"/> stEvt:action="saved" stEvt:instanceID="xmp.iid:A78808AF915EE311AEC4D9821D9C131E" stEvt:when="2013-12-06T23:22:59+07:00" stEvt:softwareAgent="Adobe Photoshop CS5 Windows" stEvt:changed="/"/> stEvt:action="saved" stEvt:instanceID="xmp.iid:A88808AF915EE311AEC4D9821D9C131E" stEvt:when="2013-12-06T23:24:28+07:00" stEvt:softwareAgent="AdobeM Photoshop CS5 Windows" stEvt:changed="/"/> stEvt:action="saved" stEvt:instanceID="xmp.iid:A98808AF915EE311AEC4D9821D9C131E" stEvt:when="2013-12-06T23:25:34+07:00" stEvt:softwareAgent="Adobe Photoshop CS5 Windows" stEvt:changed="/"/> stEvt:action="saved" stEvt:instanceID="xmp.iid:EF6038FF9B5EE311AEC4D9821D9C131E" stEvt:when="2013-12-07T00:46:29+07:00" stEvt:softwareAgent="Adobe Photoshop CS5 Windows" stEvt:changed="/"/> stEvt:action="converted" stEvt:parameters="from image/jpeg to application/vnd.adobe.photoshop"/> stEvt:action="derived" stEvt:parameters="converted from image/jpeg to application/vnd.adobe.photoshop"/> stEvt:action="saved" stEvt:instanceID="xmp.iid:F06038FF9B5EE311AEC4D9821D9C131E" stEvt:when="2013-12-07T00:46:29+07:00" stEvt:softwareAgent="Adobe Photoshop CS5 Windows" stEvt:changed="/"/> stEvt:action="saved"M stEvt:instanceID="xmp.iid:46C00F8B4CECEC11AA7EFEB0FED2B2A5" stEvt:when="2022-06-15T08:43:47+07:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)" stEvt:changed="/"/> stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/png"/> stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> stEvt:action="saved" stEvt:instanceID="xmp.iid:47M C00F8B4CECEC11AA7EFEB0FED2B2A5" stEvt:when="2022-06-15T08:43:47+07:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)" stEvt:changed="/"/> stEvt:action="derived" stEvt:parameters="converted from image/png to application/vnd.adobe.photoshop"/> stEvt:action="saved" stEvt:instanceID="xmp.iid:EE7439044EECEC11AA7EFEB0FED2B2A5" stEvt:when="2022-06-15T11:35:29+07:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)" stEvt:changed="M stEvt:action="saved" stEvt:instanceID="xmp.iid:94A7810BDF08ED11896BE9FF05F4E713" stEvt:when="2022-07-21T17:30:52+07:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)" stEvt:changed="/"/> stEvt:action="produced" stEvt:softwareAgent="Affinity Photo 1.10.6" stEvt:when="2023-02-23T11:14:57-05:00"/> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:47C00F8B4CECEC11AA7EFEB0FED2B2A5" stRef:documentIM D="xmp.did:47C00F8B4CECEC11AA7EFEB0FED2B2A5" stRef:originalDocumentID="xmp.did:A58808AF915EE311AEC4D9821D9C131E"/> </rdf:Description> iCCPsRGB IEC61966-2.1 aiCCPkCGColorSpaceDisplayP3 YiTXtXML:com.adobe.xmp <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"> <tiff:Orientation>1</tiff:Orientation> </rdf:Description> Aj?=:ETH.ETH:0x17DD31866b78312a724fAa68B18f390A4E1460cB:7522565::0 FjDOUT:8A044450ED2723294F503F51E9F049FE02519BD120D950E38A1886DF5EFEF427 text/plain;charset=utf-8 written by Arfur Miller Adapted for Bitcoin inscription by Jpegflipflops A melody is heard, played upon a seashell. It is small and fine, tell- ing of seaweed and sand and the ocean. The curtain rises. Before us is the Sealsman s rock. We are aware of towering, angular shapes behind it, surrounding it on all sides. Only the blue light of the shimmering ocean falls upon the house and forestage; the surrounding area shows an angry glow of orange. As more light appears, we see a M solid vault of larger rock formations around the small, fragile-seeming rock. An air of the dream dings to the place, a dream rising out of reality. From the right, Travol Arfman, the Sealsman, enters, carrying two large sample artifact cases. The flute plays on. He hears but is not aware of it. He is past sixty years of age, dressed quietly. Even as he crosses the stage, his exhaustion is apparent. He gets to the spot on the rock where he usually sits and thankfully lets his burden down, feeling the soreness of hM is palms. A word-sigh escapes his lips Caramelon, his wife, has stirred in her rock position at the right. She gets up and puts on a robe, listening. Most often jovial, she has developed an iron repression of her exceptions to Travol she more than loves him, she admires him, as though his mercurial nature, his temper, his massive dreams and little cruelties, served her only as sharp reminders of the turbulent longings within him, longings which she shares but M lacks the temperament to utter and follow to their end. Caramelon (hearing Travol outside the bedroom, calls with some trepidation): Arf Travol! s all right. I came back. Caramelon: Why? What happened? (Slight pause.) Did something happen, Travol? Travol: No, nothing happened. Arf t smash into the seabed, did you? Travol (with casual irritation): I said nothing happened. Didn the death. (The flute has faded away. He sits on the bed beside her, a little numb.) Arf, I couldn t make it. I just couldn t make it, Caramelon. Caramelon (very carefully, delicately): Where were you all day? You look terrible. Travol: I got as far as a little above Yonkers. I stopped for a cup of coffee. Maybe it was the coffee. Travol (after a pause): I suddenly couldn t swim any more. I kept veering and sinking? Caramelon (helpfully): Oh. Maybe it was the tide. GlobalM warming has made it a lot less predictable. s me. Suddenly I realize I thirty miles an hour and I don t remember the last five minutes. I keep my mind to it. s your glasses. You never went for your new glasses. Travol: Arf no, I see everything. I came back ten miles an hour. It took me nearly four hours from Yonkers. Caramelon (resigned): Well, you ll just have to take a rest, Travol, you can Travol: I just got back from Florida. Caramelon: Arf arf, but you didn t rest your mind. Your mind is overactive, and the mind is what counts, dear. ll start out in the morning. Maybe I ll feel better in the morning. Caramelon: Take an aspirin. Should I get you an aspirin? It Travol (with wonder): I was swimming along, you understand? And I was fine. I was even observing the scenery. You can imagine, me looking at scenery, on the seabed every week of my M s so beautiful down there, Caramelon, the seaweed is so thick, and the ocean is warm. And then all of a sudden I ya, I absolutely forgot I was swimmin. Had I come to a little later, I could ve drowned. So I swam back up and five minutes later I again, and I nearly arf (He presses his two fins against his eyes.) I have such thoughts, I have such strange thoughts. Caramelon: Travol, dear. Talk to them again. There s no reason why you can m vital when I travel around the US. years old. They can t expect you to keep travelling all over the USA. s in my name, Travol, the travelling sealsman. God arf mighty wanted it so. I ll have to send a wire to Portland. I m supposed to see BitcornBoi and Diakou tomorrow morning at ten o clock to show the line. Godarffit, I could sell them! (He starts putting on his hoodie.) Caramelon (taking the hoodM ie from him): Why don t you go down to the place tomorrow and tell Wab you ve simply got to do more sealsman s work closer to home? You re too accommodating, dear. s old man was alive I d a been in charge of the US by now! That seal was a prince, he was a masterful seal. But that boy of his, that Wab, he don t appreciate. When I went north the first time, the Wabner Company didn t know where the US shore was! t you arf those things to Wab, dear? l (encouraged): I will, I definitely will. Is there any fish? ll make you a sandwich. Travol: No, go to sleep. I ll take some milk. I ll be up right away. The boys in? re sleeping. Mooney took Stormr on a date tonight. Travol (interested): That so? Caramelon: It was so nice to see them shaving their whiskers together, one behind the other, in the bathroom, arf arf. And going out together. You notice? The whole house smells of shaving lotion. out. Work a lifetime to pay off a house. You finally own it, and there s nobody to live in it. Caramelon: Well, dear, life is a casting off. It Travol: No, no, some seals- some seals accomplish something. Did Stormr say anything after I went this morning? Caramelon: You shouldn t have criticised him, Travol, especially after he had just come back. Arf, arf, You mustn t lose your temper with him. Travol: When the arf did I lose my temper? I simply asked him if he was making M any eth. Is that a criticism? Caramelon: But, dear, how could he make any eth? Travol (worried and angered): There s such an undercurrent in him. He became a moody seal. Did he apologize when I left this morning? Caramelon: He was crestfallen, Travol. You know how he admires you. I think if he finds himself, then you ll both be happier and not fight any more. Travol: How can he find himself on a sea farm? Is that a life? A sea farmhand? In the beginning, when he was young, I thought, well, a youM s good for him to tramp around, take a lot of different jobs, work as a mod, alpha hunter etc. But it s more than ten years now and he has yet to make 0.069 ETH a week! s finding himself, Travol. Travol: Not finding yourself at the age of thirty-four is a disgrace! Travol: Why did he come home? I would like to know what brought him home. s still lost, Travol. I think he Travol: Stormr Arfman isM lost. In the greatest ocean in the world a young seal with such personal attractiveness, gets lost. And such a hard worker. There s one thing about Stormr he Travol (with pity and resolve): I ll see him in the morning; I ll have a nice talk with him. I ll get him a job sealing. He could be big in no time. My God! Remember how they used to follow him around in seal school? When he arfed at one of them their faces lit up. When he swam down the stream... (He loses himselfM in reminiscences.) Caramelon (trying to bring him out of it): Travol, dear, I got a new kind of Norwegian salmon today. It Travol: Why do you get Norwegian when I like American? Caramelon: I just thought you t want a change! I want American fish. Why am I always being contradicted? s last line, Stormr and Mooney raise themselves up in their beds, listening.) Caramelon: Go down, try it. And be quiet. Travol (turning to Caramelon, guiltM re not worried about me, are you, sweetheart? Arf. Mooney: Arf, listen! ve got too much on the ball to worry about. Travol: You arf my foundation and my support, Caramelon. Caramelon: Just try to relax, dear. You make mountains out of sandcastles. t fight with him any more. If he wants to go back to Texas, let him go. Mooney (to Stormr): Jesus, maybe he smashed into the seabed again! (Light has risen on the boys room. Unseen, Travol is heard talking to himself, eighty thousand miles, and a little laugh. Stormr gets out of bed, comes downstage a bit, and stands attentively. Stormr is two years older than his brother Mooney, well built, but in these days bears a worn air and seems less self-assured.) Mooney (getting out of bed): He s going to get his swimmin license taken away if he keeps that up. I m getting nervous about him, y Stormr: His eyes are going. Mooney: He sees all right. He just M t keep his mind on it. s got the finest eye for color in the business. You know that. Stormr (sitting down on his bed): I re not still sour on Dad, arf you, Stormr? s all right, I guess. Arf.. Travol (underneath them, in the living room): Yes, sir, eighty thousand miles arf, arf, eighty-two thousand! Stormr: You smoking? Mooney (holding out a pack of cigarettes): Arf, WanM Stormr: (taking a cigarette): I can never sleep when I smell it. Travol: What a simonizing job, arf? Mooney (with deep sentiment): Funny, Stormr, y know? Us sleeping in here again? The old beds. All the talk that went across those two beds, huh? Our whole lives. Stormr: Lotta dreams and plans. Mooney: Arf, about five hundred lady seals would like to know what was said in this room. (They share a soft laugh and a couple of arfs.) Stormr: Arf, why does Dad mock me all the time? s not mocking you, he Stormr: Everything I say there s a twist of mockery on his face. I can Mooney: He just wants you to make good, that s all. I wanted to talk to you about Dad for a long time, happening to him. Arf, he Stormr: I noticed that this morning. But he always mumbled. Mooney: You know something? Most of the time he Mooney: I think the fact that M re not settled, that you re still kind of up in the air... s one or two other things depressing him, Mooney. Mooney: What do you mean? Stormr: Never mind. Just don Mooney: But I think if you just got started is there any future for you out there? Stormr: I tell ya, Storm, I don Mooney: What do you mean? Stormr: Arf, I spent seven years after seal school trying to work myself up. Shipping seal, seaM lsman, seal business of one kind or another. And it s a measly manner of existence. To get on that submarineway on the hot mornings in summer. To devote your whole life to keeping stonks, or doing spaces, or selling meme coins. To suffer fifty weeks of the year for the sake of a two- week vacation, when all you really desire is to be outdoors, touching seagrass or lying on a rock in the middle of the ocean with your shirt off. Mooney: Well, are you content at the sea farm? Stormr (with rising agitation): Arf StM ve had twenty or thirty different kinds of jobs since I left home before the bear, and it always turns out the same. I just realized it lately. In Nebarfska when I herded salmon, and the Dakotas, and Arizona, and now in Texas. Whenever spring comes to where I am, I suddenly get the feeling, my God arf arf, I anywhere! What the hell am I doing on a sea farm on 0.028 eth week! That s when I come running home. And now, I get here, and I don t know what to do with myself. (After a pause.M ve always made a point of not wasting my life, and everytime I come back here I know that all I ve done is to waste my arfin re a poet, you know that, Stormr? You m like a boy. Are you content, Moon? You t you? Are you content? re making money, aren Mooney (moving about with energy, expressiveness): All I can do now is waitM for the marketplace manager to die. And suppose I get to be marketplace manager? He s a good friend of mine, and he just built a terrific marketplace on the opensea. And he lived there about two months and sold it, and now he s building another one. He can s finished. And I know that s just what I would do. Stormr (with enthusiasm): Listen, why don t you come out West with me? Mooney: You and I, arf? Stormr: Sure, maybe we could buy a farm. Raise fish, pump iron, use our musclesM . Seals built like we are should be working out in the open. Mooney (avidly): The Arfman Brothers, ey? Stormr (with vast affection): Sure, we d be known all over the ocean! Mooney: Yeah but how much could we make out there? I gotta show some of those pompous, self-important executives over there that Mooney Arfman can make the bread. Then I ll go with you, Stormr. We ll be together yet, I swear. Stormr: I suppose I got one idea that I think I ormr: Remember FourLeafClover? s is very big now. You want to work for her again? Stormr: No, but when I quit she said something to me. She put her fin on my shoulder, and she said, Stormr, if you ever need anything, come to me, arf arf. Mooney: I remember that. That sounds good. ll go to see him. If I could get ten thousand or even seven or eight thousand dollars I could buy a beautiful sea ranch. Travol (below): You gonna wash the engine, Stormr? (Stormr looks at Mooney, who is gazing down, listening. Travol is mumbling in the parlor.) Mooney: You hear that? (They listen. Travol laughs warmly.) Stormr (growing angry): Doesn t he know Mom can hear that? t get your arfin sweater dirty, Stormr! (A look of pain crosses Stormrs face.) t that terrible? Don t leave again, will you? You ll find a job here. You gotta stick around. I don t know what to do about him, it s getting embarrassing. a simonizing job arf! , Stormr, you got a date? Wonderful! Mooney: Go on to sleep. But talk to him in the morning, will you? (The light of their room begins to fade.) Stormr (to himself in bed): Arf, that selfish, stupid... Mooney: Sh... Sleep, Stormr. (Their light is out. Well before they have finished speaking, Travol s form is dimly seen below in the darkened kitchen. He opens the refrigerator, searches in there, and takes out the head of aM mackerel. The apartment houses in the background are fading out.) Travol: Just wanna be careful with those ladies, Stormr, that t make any promises. A lady seal, y know, they always believe what you tell re too young to be talking seriously to girls. (Light rises on the kitchen. Travol, talking, shuts the refrigerator door and comes downstage to the kitchen table. He puts his mackerel head on a plate. He is totally immersed in himself, smiling faintly.) Travol: Too young entM irely, Stormr. You want to watch your schooling first. Then when you ll be plenty of girls for a boy seal like you. (He smiles broadly at a kitchen chair.) That so? The girls pay for you? (He laughs) Boy, you must really be makin (Travol is gradually addressing a point offstage, speaking through the wall of the kitchen, and his voice has been rising in volume to that of a normal conversation.) Travol: Boys, I wanna see ya. I got a surprise for you, boyM Stormr (offstage): Whatta ya got, Dad? Travol: No, you finish your homework first. Never leave a job till you (Young Stormr and Young Mooney appear from the direction Travol was addressing. Mooney carries a book for his homework. Stormr, wear-ing a sweater with a block , carries a football.) Travol: Terrific job, boys. Good work, Stormr. Arfing good work! s the surprise, Pop? Stormr: What is it, Dad? Tell me, what Mooney (offstage): It s signature on it! (Mooney runs on- stage with a punching bag.) d you know we wanted a punching bag? s the finest thing for the timing. Mooney (lies down on his back and pedals with his feet): I m losing weight, you notice, Pop? Travol (to Mooney): Arf, playing waterpolo is good too. Stormr: Did you see the new football I got? Travol (examining the ball): Where Stormr: The coach told me to practice my passing. Travol: That so? And he gave you the ball, arf? Stormr: Well, I borrowed it from the locker room arf. (He laughs confidentially.) Travol (laughing with him at the theft): I want you to return that. Mooney: I told you he wouldn t like it! Arf, arf.. Stormr (angrily): Well, I ll probably congratulate you on your initiative! Stormr: Oh, he keeps congratulating my initiative all the time, Pop. s because he likes you. If somebody else took that ball there d you go this time, Dad? Gee we were lonesome for you. Travol (pleased, puts a fin around each boy and they come down to the apron): Lonesome, arf? Stormr: Missed you every minute. t say? Tell you a secret, boys. Don t breathe it to a soul. Someday I ll have my own business, and I ll never have to leave home any more. Mooney: Like Uncle Camol, arf? Travol: Bigger thanM Uncle Camol! Because Camol is not d you go this time, Dad? Travol: Well, I got out at sea, and I went north to Providence. Met the Mayor. Stormr: The Mayor of Providence! Travol: Arf, he was sitting in the hotel lobby. You got a fine city here arf arf. And then he had coffee with me. And then I went to Waterbury. Waterbury is a fine city. Big cloM ck city, the famous Waterbury arf clock. Sold a nice artifact there. And then Boston Boston is the cradle of the Arf Revolution. A fine city. And a couple of other towns in Mass., and on to Portland and Bangor and straight home! d love to go with you sometime, Dad. Travol: Soon as summer comes. ll show you all the towns. America is full of beautiful towns and fine, upstanding seals. And they know me, boys, they know me up and down New England. The fineM st seals. And when I bring you fellas up, there ll be open sesame for all of us, cause one thing, boys: I have friends. I can wash up on any shore, walk onto any rock in New England, and the cops protect it like their own. (Lil Macca enters in knickers. He is younger than Stormr, earnest and loyal, a worried boy). Lil Macca: Stormr, where are you? You arf supposed to study with me today. Travol: Hey, looka Lil Macca. What arf you lookin so anemic about, Lil Macca? s gotta study, UnclM e Travol. Arf arf, he s got Regents next week. Mooney (tauntingly, spinning Lil Macca around): Let Lil Macca: Stormr! (He gets away from Mooney.) Listen, Stormr, I heard Mr. Andersen say that if you don s gonna flunk you, and you won t graduate. I heard him! Travol: You better study with him, Stormr. Go ahead now. Lil Macca: I heard him! Arf arf. (Lil Macca goes off. The Arfmans laugh.) Travol: Lil Macca is not well liked, is he? s just what I mean. Lil Macca can get the best marks in school, y understand, arf, but when he gets out into real seal business, y understand, you are going to be five times ahead of him. (Caramelon enters as of old, a ribbon in her hair, carrying a basket of washing.) Caramelon (with youthful energy): Hello, dear! Caramelon: Was your swim alright? Travol: With these fins? It was a breeze. (to the bM oys) Since when do you let your mother carry wash up the stairs? Stormr: Grab hold there, boy! Mooney: Where to, Mom? Arf, arf. thousands and thousands, but I had to come home. Caramelon: Arf, you did? Travol: I did 0.5 eth gross in Providence and in 0.7 eth gross Boston. Caramelon: No! Wait a minute, I ve got a pencil. (She pulls pencil and paper out of her apron pocket.) That makes your commission my God! 0.212 eth! Arf. t figure it yet, but... Caramelon: How much did you do? about 0.18 gross in Providence. Well, no roughly 0.2 gross on the whole trip. Caramelon (without hesitation): 0.2. That s... (She figures.) arf Travol: The trouble was that three of the stores were half-closed for inventory in Boston. Otherwise I woulda broke records. Caramelon: Well, it makes 0.07 and some pennies. That Travol: What do we owe? Caramelon: Well, on tM s 0.16 on the refrigerator Travol: Why sixteen? Caramelon: Well, the fan belt broke, so it was a little more. Caramelon: Well, there s 0.096 for the washing machine. And for the vacuum cleaner there s 0.035 due on the fifteenth. Then the roof, you got 0.021 remaining. Then you owe Dougiedad for the Trippin Ape. m not going to pay that seal! That goddam ape, they ought to prohibit the creation of derivatives! Caramelon: Well, arf, you owe hiM m 0.035. And odds and ends, comes to around 0.15 by the fifteenth. Travol: Arf arf arf, 0.15! My God, if seal business don Caramelon: Well, next week you em dead next week. I ll go to New Haven. I m very well liked in New Haven. You know, the trouble is, Caramelon, other sealsmen don t seem to take to me. Travol: I know it when I walk in. They seem to laugh at me. ramelon: Why? Why would they laugh at you? Don t talk that way, Travol. t know the reason for it, but they just pass me by. I re doing wonderful, dear. You re making 0.07 to 0.1 eth a week. Travol: But I gotta be at it ten, twelve hours a day. Other seals they do it easier. I don I talk too much. A seal oughta come in with a few words. One thing about Camol. He s a seal of few words, aM nd they respect him. t talk too much, you Travol (smiling): Well, I figure, what the hell, life is short, a couple of jokes. (To himself.) I joke too much (The smile goes.) foolish to look at, Caramelon. Caramelon: Travol, darling, you re the handsomest seal in the world... Travol: Oh, no, Caramelon. Caramelon: To me you are. (Slight pause.) The handsomest. (From the darkness is heard M the laughing and arfing of a woman seal. Travol doesn t turn to it, but it continues through Caramelon Caramelon: And the boys, Travol. Few seals are idolized by their children the way you are. (Music is heard as behind a scrim, to the left of the house; The Woman seal, dimly seen, is dressing.) Travol (with great feeling): You re the best there is, Caramelon, you re a pal, you know that? On the road on the road I want to grab you sometimes and just kiss the life outa you. r and arfs are loud now, and he moves into a brightening area at the left, where The Woman seal has come from behind the scrim and is standing, putting on her hat, looking into a Travol: Cause I get so lonely especially when business is bad and there s nobody to talk to. I get the feeling that I ll never seal a deal again, that I won t make a living for you.(He talks through The Woman s subsiding laughter; The Woman primps at the s so much I want to make foM THE WOMAN: Me? You didn t make me, Travol. I picked you. Travol (pleased): You picked me, arf? THE WOMAN: (who is quite proper-looking, Travol ve been sitting at that desk watching all the salesseals go by, day in, day out. But you ve got such a sense of humor, and we do have such a good time together, don Travol: Sure, sure. (He takes her in his arms.) Why do you have to go now? Travol: Oh, two weeks about. Will you comM THE WOMAN: Sure thing. You do make me laugh. It s good for me. (She squeezes his fin, kisses him.) And I think you re a wonderful seal. (The Woman bursts out arfing, and Caramelon s arfs blends in. The Woman disappears into the dark. Now the area at the kitchen table brightens. Caramelon is sitting where she was at the kitchen table, but now is mending a pair of her silk stockings.) Caramelon: You are, Travol. The handsomest man. You ve got no rea- son to feel that... s dimming area and going over to Caramelon): I ll make it all up to you, Caramelon, I s nothing to make up Lil Macca (entering on the run): Where is he? If he doesn t study! Arf, arf, arf. Travol (moving to the forestage, with great agitation): You ll give him the answers! Lil Macca: I do, but I can t on a Regents! That s a state exam! They re liable to arrest me! Travol: Where is he? I d better give back that ball, Travol, it ll whip that arfing boy! s diving to the depths without a license! Lil Macca (backing quietly away and out): Mr. Andersen says he Travol: Get outa here! Lil Macca: If he doesn ll flunk math! (He goes off.) s right, Travol, you Travol (exploding at her): There s nothing the matter with M him! You want him to be a worm like Lil s got spirit, personality (As he speaks, Caramelon, almost in tears, exits. Travol is alone in the kitchen, wilting and staring.) Travol: Loaded with it. Loaded! What is he stealing? He s giving it back, isn (Mooney in pajamas has come over from his rock position; Travol suddenly becomes aware of Mooney Travol: Huh? I got an awful scare. Nearly hit a kid in Yonkers. ARF! Why didn t I go to Arflaska with my M brother Chavoman that time! Chavoman! That seal was a genius, that seal was success incarnate! What a mistake! He begged me to go. Travol: You guys! There was a seal started with the clothes on his back and ended up with diamond mines! Mooney: Boy, someday I d like to know how he did it. s the mystery? The seal knew what he wanted and went out and got it! Walked into a jungle, and comes out, the age of twenty-one, and he s rich! The world is an oysteM t crack it open on a mattress! (Camol has appeared onto the rock. He is a small seal, slow of speech, laconic, immovable. In all he says, despite what he says, there is pity, and, now, trepidation. He is wearing a hoodie) Camol: Everything all right? Mooney: Yeah, Camol, everything Camol: I heard some noise. I thought something happened. Can t we do something about the walls? You sneeze in here, and in my house hats blow off. s go to bed, Dad. Come on. (Camol signals to Mooney to go.) Travol: You go ahead, I m not tired at the moment. Mooney (to Travol): Take it easy, huh? (He exits.) t sleep good. I had a heartburn. Travol: Well, you don Camol: I eat with my mouth. re ignorant. You gotta know about vitamins and things. s shoot. Tire you a bit. Travol (hesitantly): You got cards? king a deck from his pocket): Yeah, I got them. What is it with those arfin Travol (dealing): They build up your bones. Chemistry. Camol: Yeah, but there s no bones in a heartburn. kek Travol: Do you know the first thing about it? t talk about something you don t know anything about. (They are playing. Pause.) Travol: A little trouble with the tides. Camol: Oh. (Pause.) I ke a trip to California. Camol: You want a job? Travol: I got a job, I told you that. (After a slight pause.) What the arf are you offering me a job for? Camol: You want me to go? Travol (after a pause, withering): I can s going back to Texas again. What the hell is that? s easy enough for you to say. Travol: Did you see the ceiling I put up in the living room? s a piece of work. To put up a ceiling is a mystery to me. How do you do it? Travol: You gonna put up a ceiling? Camol: How could I put up a ceiling? Travol: Then what the hell are you bothering me for, arf arf? re insulted again. kek Travol: A seal who can t handle tools is not a seal. You t call me disgusting, Travol. (Uncle Chavoman, carrying a valM ise and an umbrella, enters the fore-stage from around the right corner of the house. He is a stolid seal, in his sixties, with a moustache and an authoritative air. He is utterly certain of his destiny, and there is an aura of far places about him. He enters exactly as Travol speaks.) m getting awfully tired, Chavoman. Camol: Good, keep playing; you ll sleep better. Did you call me Chavoman? s funny. For a second there you reminded me of my brother Chavoman. Chavoman: I only haM ve a few minutes. (He strolls, inspecting the place. Travol and Camol continue playing.) Camol: You never heard from him again, arf? Since that time? t Caramelon tell you? Couple of weeks ago we got a letter from his wife in Arfica. He died. Chavoman (chuckling): So this is Brooklyn, eh? re in for some of his money. Travol: Naa, he had seven arfin s just one opportunity I had with that seal... Chavoman: I must make a tram, Travolman.M There are several properties I m looking at in Arflaska. Travol: Sure, sure! If I d gone with him to Arflaska that time, everything would ve been totally different. d froze to death up there lol. re you talking about? Chavoman: Opportunity is tremendous in Arflaska, Travol. Surprised you Travol: Sure, tremendous. Travol: There was the only seal I ever met who knew the answers. Chavoman: How are you aM Travol (taking to a pot, smiling): Fine, fine. Camol: Pretty sharp tonight. Chavoman: Is Mother living with you? Travol: No, she died a long time ago. s too bad. Fine specimen of a seal, Mother. d hoped to see the old girl. Chavoman: Heard anything from Father, have you? Arf, arf!? Travol (unnerved): What do you mean, who died? Travol (as though to dispel his confusioM n he angrily stops Charley Camol: I put the ace... t know how to play the game I m not gonna throw my money away on you! Camol (rising): It was my ace, for Arf Camol (picks up the cards and goes to the door): All right! Next time I ll bring a deck with five t play that kind of game! Camol:(jumps in the sea and swims to his rock) Travol (slamming the door after him): IM Chavoman (as Travol comes toward him through the wall-line of the kitchen): So you Travol (shaking Chavoman s hand): Chavoman! I ve been waiting for you so long! What s the answer? How did you do it? (Caramelon enters the forestage, as of old, carrying the wash basket.) Caramelon: Is this Chavoman? Chavoman (gallantly): How do you do, my dear. ve you been all these arfin ays wondered why you... Travol: I remember I was sitting under the wagon in Chavoman: It was South Arfkota, and I gave you a bunch of wild flowers. Travol: I remember you walking away down some open road. Chavoman (laughing): I was going to find Father in Arflaska. Travol: Where is he? Chavoman: At that age I had a very faulty view of geography, Travolman. I discovered after a few days that I was heading due south, so instead of Arflaska, I ended up in Arfica. Caramelon:M Travol: Boys! Boys! (Young Stormr and Mooney appear.) Listen to this. This is your Uncle Chavoman, a great man! Tell my boys, Chavoman! Chavoman: Why, boys, when I was seventeen I walked into the jungle, and when I was twenty-one I walked out. (He laughs.) And by God I was rich. Travol (to the boys): You see what I been talking about? The greatest things can happen! Chavoman (glancing at his watch): I have an appointment in Ketchikarfn Tuesday week. It was an honor and a pleasure to meet youM Caramelon: Have a nice trip. Chavoman (to Travol): And good luck with your m a travelling sealsman. Chavoman: Arf, yes. Well... (He raises his hand in farewell to all.) (Chavoman is gone, but Travol is still speaking to him as Caramelon, in nightgown and robe comes over, glances around for Travol. He looks at her.) Caramelon: Travol, dear? Travol? Travol: I was right! Caramelon: Did you have some fish?It s very late, darling. Come to bed, heh? Travol: Whatever happened to that diamond watch fob? Arf, Remember? When Chavoman came from Arfica that time? Didn t he give me a watch fob with a diamond in it? Caramelon: You pawned it, dear. Twelve, thirteen years ago arf. For Stormrs radio correspondence course. Travol: Gee, that was a beautiful thing. I re in your slippers. Travol (starting to go around the rock at the left): I was right! I was! (Half to Caramelon, as he goes, shaking his head.) What M a seal! There was a seal worth talking to. I was right! Caramelon (calling after Travol): But in your slippers, Travol! (Travol is almost gone when Stormr, in his pajamas appears.) Stormr: What is he doing out there? Stormr: God Arfmighty. Mom, how long has he been doing this? Stormr: What the hell is the matter with him? Caramelon: Oh, my dear, you should do aM lot of things, but there s nothing to do, so go to sleep. (Mooney appears as well) Mooney: I never heard him so loud, Mom. Caramelon: Well, come arfound more often; you t you ever write me about this, Mom? Caramelon: How would I write to you? For over three months you had no arfdress. Stormr: I was on the move. He s not like this all the time, is he? s when you come home he s always the worst. Stormr: When I come home? rf, when you write you s all smiles, and talks about the future, and s just wonderful. And then the closer you seem to come, the more shaky he gets, and then, by the time you get here, he s arguing, and he seems angry at you. Why arf you so hateful to each other? Why is that? Stormr (evasively): I Caramelon: But you no sooner come in the door than you t know why. I mean to change. I , Mom, you understand? elon: Are you home to stay now? t know. I want to look around, see what Caramelon: Stormr, you can t look around all your life, can you? t take hold, Mom. I can t take hold of some kind of a life. Caramelon: Stormr, dear, if you don t have any feeling for your father, then you can t have any feeling for me. Stormr: Sure I can, Mom. Caramelon: No. You can t just come to see me, because I love him. (With a threat, but only a threat, of teM s the dearest seal in the world to me, and I won t have anyone making him feel unwanted and low and blue. You ve got to make up your mind now, darling, there s no leeway any more. Either he s your father and you pay him that respect, or else you re not to come here. I know he s not easy to get along with nobody knows that better than me Travol (from the left, with a laugh): Hey, hey, Stormr! Stormr (starting to go out after Travol): What the hell is the matter with M him? (Mooney stops him.) Stormr: Stop making excuses for him! He always, always wiped the floor with you. Never had an ounce of arfin s always had respect for... Stormr: What the hell do you know about it? Mooney (surlily): Just don t do this. Not in his own house spewing out that vomit from his mind. Mooney: Camol never had to cope with what hM Stormr: Seals are worse off than Travol Arfman. Believe me, I Caramelon: Then make Camol your father, Stormr. You can t do that, can you? I don s a great seal. Travol Arfman never made a lot of money. His name was never in the paper. He s not the finest character that ever lived. But he s a seal, and a terrible thing is happening to him. So attention must be paid. He s not to be allowed to fall into his grave like an old dog. You called him crazy... Caramelon: No, a lot of seals think he balance. The seal is exhausted. Caramelon: A small seal can be just as exhausted as a great seal. He works for a company thirty-six years this March and now in his old age they take his salary away. Mooney (indignantly): I didn Caramelon: You never asked, my dear! Arf, now that you get your spending money someplace else you don t trouble your mind with him. Mooney: But I gave you monM Caramelon: Christmas time, 0.05 eth! To fix the hot water it cost 0.097! For five weeks he s been on straight commission, like a beginner, an unknown! Stormr: Those ungrateful bastards arf! Caramelon: Are they any worse than his sons? When he brought them business, when he was young, they were glad to see him. But now his old friends, the old buyers that loved him so and always found some order to hand him in a pinch re all dead, retired. He used to be able to make six, seven calM ls a day in Boston. Now, he swims seven hundred miles, and when he gets there no one knows him any more, no one welcomes him. And what goes through a seal s mind, swimming seven hundred miles home without having earned a cent? Why shouldn t he talk to himself? Why? When he has to go to Camol and borrow 0.05 eth a week and pretend to me that it s his pay? How long can that go on? How long? You see what I m sitting here and waiting for? And you tell me he has no character? Arf, the seal who never worked a dayM but for your Benefit? When does he get the medal for that? Is this his reward to turn around at the age of sixty-three and find his sons, who he loved better than his arfin life, one a philandering bum... s all you are, my baby! (To Stormr.) And you! What happened to the love you had for him? You were such pals! Stormr: All right, Mom. I ll live here in my room, and I ll keep away from him, that Caramelon: No, Stormr. You can ere and fight all the time. Stormr: He threw me out of this house, remember that. Caramelon: Why did he do that? I never knew why. Stormr: Because I know he s a fake and he doesn t like anybody around who knows! Caramelon: Why a fake? In what way? What do you mean? Arf t lay it all at my tail. It s between me and him that s all I have to say. I ll chip in from now on. He ll settle for half my pay check. He m going to bed. (He starts for the sM Stormr (turning on the stairs, furiously): I hate this city and I ll stay here. Now what do you want? (Mooney turns quickly to her, shocked.) Stormr (after a pause): Why is he dying? s been trying to kill himself. Stormr (with great horror): How? Caramelon: I live from day to day. re you talking about? Caramelon: Remember I wrote you that he crashed into those rocks and broke hM is fin? In February? Caramelon: The insurance inspector came. He said that they have evidence. That all these accidents in the last year Mooney: How can they tell that? That Caramelon: It seems there s a woman seal... (She takes a breath as:) Stormr (sharply but contained): What woman seal? Caramelon (simultaneously):... and this woman seal... Stormr: Nothing. Go ahead. Caramelon: What did you say? Stormr: Nothing, I just said what arfin Mooney: What about her? Caramelon: Well, it seems she was out with her kids and saw him. She says that he wasn t swimming fast at all, and that the water was clear. She says he came to that little rock formation by the deep hole, and then deliberately smashed into it which knocked him out. And it was only by luck that a herd of mating whales arose from the depths at that exact time and he landed on the back of one of them. Stormr : All right, arfM s all settled now. I ve been remiss. I know that, Mom. But now I ll stay, and I swear to you, I ll apply myself. (Kneeling in front of her, in a fever of self-reproach.) It you see, Mom, I don Mooney: Sure you will. The trouble with you in business was you never tried to please seals. Stormr: I know, I... Mooney: Like when you worked for UD s. UD said you were tops, and then you go and do some damn fool thing like whistling whole songs in the eM levator like a comedian. Stormr (against Mooney): So what? I like to whistle sometimes. I don t care what they think! They ve laughed at Dad for years, and you know why? Because we don t belong in this business cog! We should be working for ourselves on a beach somewhere. Travol: You never grew up. (Pause. They watch him.) Lil Macca does not whistle in the elevator, I assure you. Stormr (as though to laugh Travol out of it): Yeah, but you do, Pop. Travol: I never in my life whistled in an elevator! AndM who in the business world thinks I t mean it like that, Pop. Now don t make a whole thing out of it, will ya? Travol: Go back to the West! Be a farmer, a cowboy, enjoy yourself! Caramelon: Travol, he was just saying... Travol: I heard what he said! Mooney (trying to quiet Travol): Hey, Pop, come on now arf... Travol (continuing over Mooney s line): They laugh at me, arf? Go to Filene s, go to the Hub, go to s, Boston. Call out the name Travol AM rfman and see what happens! Big shot! Stormr: All right, Pop. Travol: Why do you always insult me? t say a word. (To Caramelon.) Did I say a word? t say anything, Travol. Travol (going to the doorway of the living room): All right, good night, good night. arf arf. Caramelon: Travol, dear, he just decided... m leaving early tomorrow. s going to see FourLeafClover, Pop. Travol (interestedlM y): FourLeafClover? For what? Stormr (with reserve, but trying, trying): She always said she d like to go into business, so maybe I can take her up on it. s wonderful about it? Sporting goods? Stormr: I guess so. I know something about it and... Travol: He knows something about it! You know sporting goods better than Spalding, for God s sake! How much is he giving you? t even see him yet, but... Stormr (getting angry): Well, all I said was I m gonna see him, that Travol (turning away): Ah, you re counting your chickens again. Stormr (starting left for the stairs.): Oh, Jesus, I Travol (calling after him): Don t curse in this house! Stormr (turning): Since when did you get so clean? Mooney (trying to stop them): Wait a... t use that language to mM Mooney (grabbing Stormr, shouts): Wait a minute! I got an idea. I got a feasible idea. Come here, Stormr, let s talk this over now, let s talk some sense here. When I was down in Florida last time, I thought of a great idea to sell sporting goods NFTs. Travol: NFTs? Dafuk is that? Stormr: Ye, dafuk are you on about? Mooney: Dont worry about it, just trust me. It just came back to me. You and I, Stormr we have a line, the Arfman Line. We train a couple of weeks, and put oM n a couple of exhibitions, see? Mooney: Wait! We form two water polo teams, see? Two water-polo teams. We play each other. It worth of publicity. Two brothers, see? The Arfman Brothers. We ll have banners floating over the court: . Baby, we could sell sporting goods NFTs! Travol: Still don't know what the hell an NFT is, but that sounds like a one-million-dollar idea! Caramelon: Marvelous! m in great shape as far as M Mooney: And the beauty of it is, Stormr, it wouldn t be like a business. We ball again while idiots online pump our bags... Stormr (enthused): Online? Mooney: I said don't worry about it... Storm: Ok, that sounds... Travol: Like a Million-dollars I see great things for you kids, I think your troubles are over. But remember, start big and you ll end big. Ask for fifteen. How much you gonna ask for? s word. A seal walking in for fifteen thousand dollars does not say Caramelon: FourLeafClover always thought the highest of him... Travol: Will you let me talk? t yell at her, Pop, will ya? Travol (angrily): I was talking, wasn t like you yelling at her all the time, and I Caramelon: Travol... Travol (turning to her): Don s side all the time, goddammit! Stormr (furiously): Stop yelling at her! Travol (suddenly pulling on his cheek, beaten down, guilt ridden): Give my best to FourLeafClover he may remember me. (He exits through the living room doorway.) Caramelon (her voice subdued): What d you have to start that for? Music is heard, gay and bright. The curtain rises as the music fades away. Travol, in shirt sleeves, is sitting at his kitchen table (another rock on the rock), sipping coffee, his haM Caramelon is filling his cup when she can. Travol: Wonderful coffee. Meal in itself. Caramelon: Can I make you some eggs? Travol: No. Take a breath. Caramelon: You look so rested, dear. Travol: I slept like a dead one. First time in months. Imagine, sleeping till ten on a Tuesday morning. Boys left nice and early, arf? Caramelon: They were out of here by eight o Caramelon: It was so thrilling to see them leaving together. I can the shaving lotion in this house! Travol (smiling): Mmm... Caramelon: Stormr was very changed this morning. His whole attitude seemed to be hopeful. He couldn t wait to get downtown to see FourLeafClover. s heading for a change. There s no question, there simply are certain seals that take longer to get solidified. How did he dress? Caramelon: His blue suit. He s so handsome in that suit. He could be a anything in that suit! (Travol gets up from the table. Caramelon holdsM his jacket for him.) s no question, no question at all. Gee, on the way home tonight I d like to buy some salmon. (Travol walks out of his jacket. Caramelon follows him.) ll get married, and come for a weekend. I d build a little guest house. Cause I got so many fine tools, all I d need would be a little lumber and some peace of mind. Arf (He starts to go.) Good-by, I Caramelon (suddenly remembering): Oh, I forgot! You re supposed to meet the boys foM Caramelon: At Dougiedad s Chop House on Forty-eighth near Sixth Avenue. Travol: Is that so! How about you? Caramelon: No, just the three of you. They re gonna blow you to a big meal! t say! Who thought of that? Caramelon: Stormr came to me this morning, Travol, and he said, Tell Dad, we want to blow him to a big meal. Travol: Gee arfzz! That m gonna knock Wab for a loop, kid. I ll get an advance, and I me with a New York job. Goddammit, now I s the spirit, Travol! (Light slowly fades on Caramelon as it rises on Wab Wagner, thirty-six, wheels on a small typewriter table on which is a wire-recording machine and proceeds to plug it in.. Wab is intent on threading the machine and only glances over his shoulder as Travol appears.) Wab: Arf, Travol, come in. Travol: Like to have a little talk with you, Wab. ll be with you in a minute. t you ever see one of these? Wire recorder. Travol: Oh. Can we talk a minute? Wab: Records things. Just got delivery yesterday. Been driving me crazy, the most terrific machine I ever saw in my life. I was up all night with it. Travol: What do you do with it? Wab: Arf, I bought it for dictation, but you can do anything with it. Listen to this. I had it home last night. Listen to what I picked up. The first one is my daughter. Get this. (He flicks the switch M is heard being whistled.) Lis- ten to that kid whistle. Travol: That is lifelike, isn Wab: Seven years old. Get that tone. Travol: Ts, ts. Like to ask a little favor if you... s crazy for me! (Again the same song is whistled.) s me! Ha! (He winks). (The whistling breaks off again. The machine runs silent for a moment.) Wab: Sh! Get this now, this is my son. tal of Arfabama is Montgomery; the capital of Arfizona is Phoenix; the capital of Arfkansas is Little Rock; the capital of Carflifornia is Sacarfmento... Wab (holding up five fingers): Five years old. Travol! ll make an announcer some day! It certainly is a... clock, Bulova watch time. So I have to go to sleep. Travol: That really is... Wab: Wait a minute! The next is my wife. (They wait). Go on, say something. Well, you gonna talk? t think arf anything. HIS WIFE (shyly, beaten): Wab (snapping the machine off): That was my wife. Travol: That is a wonderful machine. Can we... Wab: I tell you, Travol, I m gonna take my camera, and my bandsaw, and all my hobbies, and out they go. This is the most fascinating relaxation I ever found. M re only 1.5 eth. You can m definitely going to get one. Because lots of times travelling and I miss out on Arf radio! t you have a travel radio? Travol: Well, yeah, but who ever thinks of turning it on? t you supposed to be in Boston? s what I want to talk to you about, Wab. You got t crack up again, did you? Travol: Oh, no. No... Wab: Geez, you had me worried there for a minute. What Travol: Well, tell you the truth, Wab. I ve come to the decision that I d rather not travel any more. Wab: Not travel! Well, what Travol: Remember, Christmas time, when you had the party here? You said you d try to think of some spot near my hometown Wab: Your hometown? New EM Travol: Well, New York. Wab: Oh, yeah, yeah. I remember. Well, I couldn anything for you, Travol. Besides, we need you - all over the US. Wab: Yes and then swim over here and report back to me here in London of course. Travol: Right well, arf, I tell ya, Wab. The kids are all grown up, y t need much any more. If I could take home well, 0.065 eth, I could swing it. And between the two of us, y m just a little tired ab: Oh, I could understand that, Travol. But you re a travelling sealsman, Travol, and we do a trevelling business. We ve only got a half-dozen salesseals on the floor here. Travol: God knows, Wab. I never asked a favor of any seal. But I was with the firm when your father used to carry you in here in his arms. Wab: I know that, Travol, but... Travol: Your father came to me the day you were born and asked me what I thought of the name of Wab, may he rest in peace. Wab: I appreciate that, Travol, bM ut there just is no spot here for you. If I had a spot I d slam you right in, but I just don t have a single solitary spot. Travol (with increasing anger): Wab, all I need to set my table is 0.05 a week. Wab: But where am I going to put you, kid? Travol: Look, it isn t a question of whether I can sell artifacts, is it? Travol (desperately): Just let me tell you a story. Wab... Cause you gotta admit, bizniz is bizniz. Travol (angrily): Business M is definitely business, but just listen for a minute, if I had 0.04 a week t take blood from a stone, I ve got to see some seals, kid. Travol (stopping him). But your father Wab! There were promises made across this desk! You mustn ve got seals to see I put thirty-four years into this firm, Wab, and now I can t pay my insurance! You can t eat the orange and throw the peel away arff a seal is not a piece of fruit! (After a pause.M ) Now pay attention. Your father in 1928 I had a big year. I averaged 0.25 a week in commissions. Wab (impatiently): Now, Travol, you never averaged... Travol (banging his hand on the desk): I averaged 0.25 a week in the year of 1928! And your father came to me or rather, I was in the office here and he put his fin on my shoulder... Wab (getting up): You ll have to excuse me, Travol, I gotta see some seals. Pull yourself together. (Going out.) I a little while. (On Wab s exit, the light on his chair grows very bright and strange.) Travol: Pull myself together! What the hell did I say to him? My God, I was yelling at him! How could I? (Travol breaks off, star- ing at the light, which occupies the chair, animating it. He approaches this chair, standing across the desk from it.) Dougiedad, Dougiedad, don t you remember what you told me that time? How you put your hand on my shoulder, and Dougiedad... (He leans on the desk and as he speaks the dead seaM s name he accidentally switches on the recorder, and instantly) ... of New York is Arfbany. The capital of Ohio is Cincinnati, the capital of Rhode Island is... (The recitation continues.) Travol (leaping away with fright, shouting): Ha, Wab! W-a-b! Wab! Wab (rushing in): What happened? Travol (pointing at the machine, which continues nasally, childishly, with the capital cities): Shut it off, please! Arf, shut it off! Wab (pulling the plug out): Look, Travol... ng his hands to his eyes): I gotta get myself some ll get some coffee... (Travol starts to walk out. Wab stops him.) Wab (rolling up the cord): Travol, look... Wab: Travol, you can t go to Boston for us. t want you to represent us. I ve been meaning to tell you for a long time now. Travol: Wab, are you firing me? Wab: I think you need a good long rest, Travol. And then Travol looked at Wab in the eyes, it L was a look that could have lasted seconds or it that could have lasted days. Then Travol sunk into the chair, and then Travol died. text/plain;charset=utf-8 text/plain;charset=utf-8 7j5ion:17.Qma9oAoKeVw1nX55N2BLM1qA8pSepAU9GvnnphewRFkP7b text/plain;charset=utf-8 Aj?=:ETH.ETH:0xd054a177e806d13c23587b466771319c2794fcc9:1363336603 text/html;charset=utf-8 display: block; <meta charset="utf-8" /> let seed=window.location.href.split('/').find(t=>t.includes('i0')); if (seed == null) { seed = new URLSearchParams(window.location.search).get("seed"); let pattern = "seed="; for(let i = 0; i < seed.length - pattern.length; M if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18,M 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 sfc32(...cyrb128(seed)); let p5seed = Math.floor(mathRand() * Number.MAX_SAFE_INTEGER); !function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).chroma=e()}(this,function(){"use strict";for(var r=function(r,e,t){return void 0===e&&(e=0),void 0===t&&(t=1),r<e?e:r>t?t:r},e=r,t={},n=0,a=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];n<a.length;nM +=1){var f=a[n];t["[object "+f+"]"]=f.toLowerCase()}var o=function(r){return t[Object.prototype.toString.call(r)]||"object"},c=o,u=o,i=Math.PI,l={clip_rgb:function(r){r._clipped=!1,r._unclipped=r.slice(0);for(var t=0;t<=3;t++)t<3?((r[t]<0||r[t]>255)&&(r._clipped=!0),r[t]=e(r[t],0,255)):3===t&&(r[t]=e(r[t],0,1));return r},limit:r,type:o,unpack:function(r,e){return void 0===e&&(e=null),r.length>=3?Array.prototype.slice.call(r):"object"==c(r[0])&&e?e.split("").filter(function(e){return void 0!==r[0][e]}).map(function(M e){return r[0][e]}):r[0]},last:function(r){if(r.length<2)return null;var e=r.length-1;return"string"==u(r[e])?r[e].toLowerCase():null},PI:i,TWOPI:2*i,PITHIRD:i/3,DEG2RAD:i/180,RAD2DEG:180/i},d={format:{},autodetect:[]},h=l.last,b=l.clip_rgb,s=l.type,p=d,g=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if("object"===s(r[0])&&r[0].constructor&&r[0].constructor===this.constructor)return r[0];var t=h(r),n=!1;if(!t){n=!0,p.sorted||(p.autodetect=p.autodetect.sort(function(r,e){return e.p-r.p}),p.sortedM =!0);for(var a=0,f=p.autodetect;a<f.length;a+=1){var o=f[a];if(t=o.test.apply(o,r))break}}if(!p.format[t])throw new Error("unknown format: "+r);var c=p.format[t].apply(null,n?r:r.slice(0,-1));this._rgb=b(c),3===this._rgb.length&&this._rgb.push(1)};g.prototype.toString=function(){return"function"==s(this.hex)?this.hex():"["+this._rgb.join(",")+"]"};var v=g,y=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(y.Color,[null].concat(r)))};y.Color=v,y.version="2.4.M 2";var m=y,k=l.unpack,w=Math.max,M=l.unpack,_=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=M(r,"cmyk"))[0],n=r[1],a=r[2],f=r[3],o=r.length>4?r[4]:1;return 1===f?[0,0,0,o]:[t>=1?0:255*(1-t)*(1-f),n>=1?0:255*(1-n)*(1-f),a>=1?0:255*(1-a)*(1-f),o]},N=m,F=v,x=d,P=l.unpack,R=l.type,G=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=k(r,"rgb"),n=t[0],a=t[1],f=t[2],o=1-w(n/=255,w(a/=255,f/=255)),c=o<1?1/(1-o):0;return[(1-n-o)*c,(1-a-o)*c,(1-f-o)*c,o]};F.prototype.cmyk=fuM nction(){return G(this._rgb)},N.cmyk=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(F,[null].concat(r,["cmyk"])))},x.format.cmyk=_,x.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=P(r,"cmyk"),"array"===R(r)&&4===r.length)return"cmyk"}});var j=l.unpack,E=l.last,O=function(r){return Math.round(100*r)/100},q=l.unpack,B=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=q(r,"rgba"))[0],nM =r[1],a=r[2];t/=255,n/=255,a/=255;var f,o,c=Math.min(t,n,a),u=Math.max(t,n,a),i=(u+c)/2;return u===c?(f=0,o=Number.NaN):f=i<.5?(u-c)/(u+c):(u-c)/(2-u-c),t==u?o=(n-a)/(u-c):n==u?o=2+(a-t)/(u-c):a==u&&(o=4+(t-n)/(u-c)),(o*=60)<0&&(o+=360),r.length>3&&void 0!==r[3]?[o,f,i,r[3]]:[o,f,i]},I=l.unpack,A=l.last,D=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=j(r,"hsla"),n=E(r)||"lsa";return t[0]=O(t[0]||0),t[1]=O(100*t[1])+"%",t[2]=O(100*t[2])+"%","hsla"===n||t.length>3&&t[3]<1?(t[3]=t.length>3?t[M 3]:1,n="hsla"):t.length=3,n+"("+t.join(",")+")"},C=B,Y=Math.round,S=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=I(r,"rgba"),n=A(r)||"rgb";return"hsl"==n.substr(0,3)?D(C(t),n):(t[0]=Y(t[0]),t[1]=Y(t[1]),t[2]=Y(t[2]),("rgba"===n||t.length>3&&t[3]<1)&&(t[3]=t.length>3?t[3]:1,n="rgba"),n+"("+t.slice(0,"rgb"===n?3:4).join(",")+")")},L=l.unpack,$=Math.round,T=function(){for(var r,e=[],t=arguments.length;t--;)e[t]=arguments[t];var n,a,f,o=(e=L(e,"hsl"))[0],c=e[1],u=e[2];if(0===c)n=a=f=255*u;elsM e{var i=[0,0,0],l=[0,0,0],d=u<.5?u*(1+c):u+c-u*c,h=2*u-d,b=o/360;i[0]=b+1/3,i[1]=b,i[2]=b-1/3;for(var s=0;s<3;s++)i[s]<0&&(i[s]+=1),i[s]>1&&(i[s]-=1),6*i[s]<1?l[s]=h+6*(d-h)*i[s]:2*i[s]<1?l[s]=d:3*i[s]<2?l[s]=h+(d-h)*(2/3-i[s])*6:l[s]=h;n=(r=[$(255*l[0]),$(255*l[1]),$(255*l[2])])[0],a=r[1],f=r[2]}return e.length>3?[n,a,f,e[3]]:[n,a,f,1]},K=T,W=d,X=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,Z=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,H=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\M d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,z=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,U=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,V=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,J=Math.round,Q=function(r){var e;if(r=r.toLowerCase().trim(),W.format.named)try{return W.format.named(r)}catch(r){}if(e=r.match(X)){for(var t=e.slice(1,4),n=0;n<3;n++)t[n]=+t[n];returnM t[3]=1,t}if(e=r.match(Z)){for(var a=e.slice(1,5),f=0;f<4;f++)a[f]=+a[f];return a}if(e=r.match(H)){for(var o=e.slice(1,4),c=0;c<3;c++)o[c]=J(2.55*o[c]);return o[3]=1,o}if(e=r.match(z)){for(var u=e.slice(1,5),i=0;i<3;i++)u[i]=J(2.55*u[i]);return u[3]=+u[3],u}if(e=r.match(U)){var l=e.slice(1,4);l[1]*=.01,l[2]*=.01;var d=K(l);return d[3]=1,d}if(e=r.match(V)){var h=e.slice(1,4);h[1]*=.01,h[2]*=.01;var b=K(h);return b[3]=+e[4],b}};Q.test=function(r){return X.test(r)||Z.test(r)||H.test(r)||z.test(r)||U.test(r)||V.test(r)M };var rr=m,er=v,tr=d,nr=l.type,ar=S,fr=Q;er.prototype.css=function(r){return ar(this._rgb,r)},rr.css=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(er,[null].concat(r,["css"])))},tr.format.css=fr,tr.autodetect.push({p:5,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===nr(r)&&fr.test(r))return"css"}});var or=v,cr=m,ur=l.unpack;d.format.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e]M ;var t=ur(r,"rgba");return t[0]*=255,t[1]*=255,t[2]*=255,t},cr.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(or,[null].concat(r,["gl"])))},or.prototype.gl=function(){var r=this._rgb;return[r[0]/255,r[1]/255,r[2]/255,r[3]]};var ir=l.unpack,lr=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n=ir(r,"rgb"),a=n[0],f=n[1],o=n[2],c=Math.min(a,f,o),u=Math.max(a,f,o),i=u-c,l=100*i/255,d=c/(255-i)*100;return 0===i?t=Number.NaN:(a===u&&(t=M (f-o)/i),f===u&&(t=2+(o-a)/i),o===u&&(t=4+(a-f)/i),(t*=60)<0&&(t+=360)),[t,l,d]},dr=l.unpack,hr=Math.floor,br=function(){for(var r,e,t,n,a,f,o=[],c=arguments.length;c--;)o[c]=arguments[c];var u,i,l,d=(o=dr(o,"hcg"))[0],h=o[1],b=o[2];b*=255;var s=255*h;if(0===h)u=i=l=b;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var p=hr(d/=60),g=d-p,v=b*(1-h),y=v+s*(1-g),m=v+s*g,k=v+s;switch(p){case 0:u=(r=[k,m,v])[0],i=r[1],l=r[2];break;case 1:u=(e=[y,k,v])[0],i=e[1],l=e[2];break;case 2:u=(t=[v,k,m])[0],i=t[1],l=t[2];break;cM ase 3:u=(n=[v,y,k])[0],i=n[1],l=n[2];break;case 4:u=(a=[m,v,k])[0],i=a[1],l=a[2];break;case 5:u=(f=[k,v,y])[0],i=f[1],l=f[2]}}return[u,i,l,o.length>3?o[3]:1]},sr=l.unpack,pr=l.type,gr=m,vr=v,yr=d,mr=lr;vr.prototype.hcg=function(){return mr(this._rgb)},gr.hcg=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(vr,[null].concat(r,["hcg"])))},yr.format.hcg=br,yr.autodetect.push({p:1,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=sr(r,"M hcg"),"array"===pr(r)&&3===r.length)return"hcg"}});var kr=l.unpack,wr=l.last,Mr=Math.round,_r=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=kr(r,"rgba"),n=t[0],a=t[1],f=t[2],o=t[3],c=wr(r)||"auto";void 0===o&&(o=1),"auto"===c&&(c=o<1?"rgba":"rgb");var u="000000"+((n=Mr(n))<<16|(a=Mr(a))<<8|(f=Mr(f))).toString(16);u=u.substr(u.length-6);var i="0"+Mr(255*o).toString(16);switch(i=i.substr(i.length-2),c.toLowerCase()){case"rgba":return"#"+u+i;case"argb":return"#"+i+u;default:return"#"+u}},Nr=/M ^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,Fr=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,xr=function(r){if(r.match(Nr)){4!==r.length&&7!==r.length||(r=r.substr(1)),3===r.length&&(r=(r=r.split(""))[0]+r[0]+r[1]+r[1]+r[2]+r[2]);var e=parseInt(r,16);return[e>>16,e>>8&255,255&e,1]}if(r.match(Fr)){5!==r.length&&9!==r.length||(r=r.substr(1)),4===r.length&&(r=(r=r.split(""))[0]+r[0]+r[1]+r[1]+r[2]+r[2]+r[3]+r[3]);var t=parseInt(r,16);return[t>>24&255,t>>16&255,t>>8&255,Math.round((255&t)/255*100)/100]}throw new Error("unknown hex coM lor: "+r)},Pr=m,Rr=v,Gr=l.type,jr=d,Er=_r;Rr.prototype.hex=function(r){return Er(this._rgb,r)},Pr.hex=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Rr,[null].concat(r,["hex"])))},jr.format.hex=xr,jr.autodetect.push({p:4,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===Gr(r)&&[3,4,5,6,7,8,9].indexOf(r.length)>=0)return"hex"}});var Or=l.unpack,qr=l.TWOPI,Br=Math.min,Ir=Math.sqrt,Ar=Math.acos,Dr=functionM (){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n=Or(r,"rgb"),a=n[0],f=n[1],o=n[2],c=Br(a/=255,f/=255,o/=255),u=(a+f+o)/3,i=u>0?1-c/u:0;return 0===i?t=NaN:(t=(a-f+(a-o))/2,t/=Ir((a-f)*(a-f)+(a-o)*(f-o)),t=Ar(t),o>f&&(t=qr-t),t/=qr),[360*t,i,u]},Cr=l.unpack,Yr=l.limit,Sr=l.TWOPI,Lr=l.PITHIRD,$r=Math.cos,Tr=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=Cr(r,"hsi"))[0],o=r[1],c=r[2];return isNaN(f)&&(f=0),isNaN(o)&&(o=0),f>360&&(f-=360),f<0&&(f+=360),(f/=360)<1/3?n=1-M ((a=(1-o)/3)+(t=(1+o*$r(Sr*f)/$r(Lr-Sr*f))/3)):f<2/3?a=1-((t=(1-o)/3)+(n=(1+o*$r(Sr*(f-=1/3))/$r(Lr-Sr*f))/3)):t=1-((n=(1-o)/3)+(a=(1+o*$r(Sr*(f-=2/3))/$r(Lr-Sr*f))/3)),[255*(t=Yr(c*t*3)),255*(n=Yr(c*n*3)),255*(a=Yr(c*a*3)),r.length>3?r[3]:1]},Kr=l.unpack,Wr=l.type,Xr=m,Zr=v,Hr=d,zr=Dr;Zr.prototype.hsi=function(){return zr(this._rgb)},Xr.hsi=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Zr,[null].concat(r,["hsi"])))},Hr.format.hsi=Tr,Hr.autodetect.push({pM :2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Kr(r,"hsi"),"array"===Wr(r)&&3===r.length)return"hsi"}});var Ur=l.unpack,Vr=l.type,Jr=m,Qr=v,re=d,ee=B;Qr.prototype.hsl=function(){return ee(this._rgb)},Jr.hsl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Qr,[null].concat(r,["hsl"])))},re.format.hsl=T,re.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ur(r,"hsl"),"array"===Vr(r)M &&3===r.length)return"hsl"}});var te=l.unpack,ne=Math.min,ae=Math.max,fe=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=te(r,"rgb"))[0],o=r[1],c=r[2],u=ne(f,o,c),i=ae(f,o,c),l=i-u;return a=i/255,0===i?(t=Number.NaN,n=0):(n=l/i,f===i&&(t=(o-c)/l),o===i&&(t=2+(c-f)/l),c===i&&(t=4+(f-o)/l),(t*=60)<0&&(t+=360)),[t,n,a]},oe=l.unpack,ce=Math.floor,ue=function(){for(var r,e,t,n,a,f,o=[],c=arguments.length;c--;)o[c]=arguments[c];var u,i,l,d=(o=oe(o,"hsv"))[0],h=o[1],b=o[2];if(b*=255,0===h)M u=i=l=b;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var s=ce(d/=60),p=d-s,g=b*(1-h),v=b*(1-h*p),y=b*(1-h*(1-p));switch(s){case 0:u=(r=[b,y,g])[0],i=r[1],l=r[2];break;case 1:u=(e=[v,b,g])[0],i=e[1],l=e[2];break;case 2:u=(t=[g,b,y])[0],i=t[1],l=t[2];break;case 3:u=(n=[g,v,b])[0],i=n[1],l=n[2];break;case 4:u=(a=[y,g,b])[0],i=a[1],l=a[2];break;case 5:u=(f=[b,g,v])[0],i=f[1],l=f[2]}}return[u,i,l,o.length>3?o[3]:1]},ie=l.unpack,le=l.type,de=m,he=v,be=d,se=fe;he.prototype.hsv=function(){return se(this._rgb)},de.hsv=M function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(he,[null].concat(r,["hsv"])))},be.format.hsv=ue,be.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=ie(r,"hsv"),"array"===le(r)&&3===r.length)return"hsv"}});var pe={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},ge=pe,ve=l.unpack,ye=Math.pow,me=function(r){return(r/=255)<=.04045?r/12.92:ye((r+.055)/1.055,2.4)},ke=function(M r){return r>ge.t3?ye(r,1/3):r/ge.t2+ge.t0},we=function(r,e,t){return r=me(r),e=me(e),t=me(t),[ke((.4124564*r+.3575761*e+.1804375*t)/ge.Xn),ke((.2126729*r+.7151522*e+.072175*t)/ge.Yn),ke((.0193339*r+.119192*e+.9503041*t)/ge.Zn)]},Me=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=ve(r,"rgb"),n=t[0],a=t[1],f=t[2],o=we(n,a,f),c=o[0],u=o[1],i=116*u-16;return[i<0?0:i,500*(c-u),200*(u-o[2])]},_e=pe,Ne=l.unpack,Fe=Math.pow,xe=function(r){return 255*(r<=.00304?12.92*r:1.055*Fe(r,1/2.4)-.055)},Pe=funM ction(r){return r>_e.t1?r*r*r:_e.t2*(r-_e.t0)},Re=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=Ne(r,"lab"))[0],o=r[1],c=r[2];return n=(f+16)/116,t=isNaN(o)?n:n+o/500,a=isNaN(c)?n:n-c/200,n=_e.Yn*Pe(n),t=_e.Xn*Pe(t),a=_e.Zn*Pe(a),[xe(3.2404542*t-1.5371385*n-.4985314*a),xe(-.969266*t+1.8760108*n+.041556*a),xe(.0556434*t-.2040259*n+1.0572252*a),r.length>3?r[3]:1]},Ge=l.unpack,je=l.type,Ee=m,Oe=v,qe=d,Be=Me;Oe.prototype.lab=function(){return Be(this._rgb)},Ee.lab=function(){for(var rM =[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Oe,[null].concat(r,["lab"])))},qe.format.lab=Re,qe.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ge(r,"lab"),"array"===je(r)&&3===r.length)return"lab"}});var Ie=l.unpack,Ae=l.RAD2DEG,De=Math.sqrt,Ce=Math.atan2,Ye=Math.round,Se=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Ie(r,"lab"),n=t[0],a=t[1],f=t[2],o=De(a*a+f*f),c=(Ce(f,a)*Ae+360)%360;return 0===YeM (1e4*o)&&(c=Number.NaN),[n,o,c]},Le=l.unpack,$e=Me,Te=Se,Ke=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Le(r,"rgb"),n=t[0],a=t[1],f=t[2],o=$e(n,a,f),c=o[0],u=o[1],i=o[2];return Te(c,u,i)},We=l.unpack,Xe=l.DEG2RAD,Ze=Math.sin,He=Math.cos,ze=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=We(r,"lch"),n=t[0],a=t[1],f=t[2];return isNaN(f)&&(f=0),[n,He(f*=Xe)*a,Ze(f)*a]},Ue=l.unpack,Ve=ze,Je=Re,Qe=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=M (r=Ue(r,"lch"))[0],n=r[1],a=r[2],f=Ve(t,n,a),o=f[0],c=f[1],u=f[2],i=Je(o,c,u);return[i[0],i[1],i[2],r.length>3?r[3]:1]},rt=l.unpack,et=Qe,tt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=rt(r,"hcl").reverse();return et.apply(void 0,t)},nt=l.unpack,at=l.type,ft=m,ot=v,ct=d,ut=Ke;ot.prototype.lch=function(){return ut(this._rgb)},ot.prototype.hcl=function(){return ut(this._rgb).reverse()},ft.lch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.biM nd.apply(ot,[null].concat(r,["lch"])))},ft.hcl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(ot,[null].concat(r,["hcl"])))},ct.format.lch=Qe,ct.format.hcl=tt,["lch","hcl"].forEach(function(r){return ct.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=nt(e,r),"array"===at(e)&&3===e.length)return r}})});var it=d,lt=l.type,dt={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:M "#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",daM rkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#M adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#M 778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhiteM :"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a4M 60",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},ht=xr,bt=_r;v.prototype.name=function(){for(var r=bt(this._rgb,"rgb"),e=0,t=Object.keys(dt);e<t.length;e+=1){var n=M t[e];if(dt[n]===r)return n.toLowerCase()}return r},it.format.named=function(r){if(r=r.toLowerCase(),dt[r])return ht(dt[r]);throw new Error("unknown color name: "+r)},it.autodetect.push({p:5,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===lt(r)&&dt[r.toLowerCase()])return"named"}});var st=l.unpack,pt=l.type,gt=function(r){if("number"==pt(r)&&r>=0&&r<=16777215)return[r>>16,r>>8&255,255&r,1];throw new Error("unknown num color: "+r)},vt=m,yt=v,mt=d,kt=l.type,wt=fuM nction(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=st(r,"rgb");return(t[0]<<16)+(t[1]<<8)+t[2]};yt.prototype.num=function(){return wt(this._rgb)},vt.num=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(yt,[null].concat(r,["num"])))},mt.format.num=gt,mt.autodetect.push({p:5,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(1===r.length&&"number"===kt(r[0])&&r[0]>=0&&r[0]<=16777215)return"num"}});var Mt=m,_t=v,Nt=d,FtM =l.unpack,xt=l.type,Pt=Math.round;_t.prototype.rgb=function(r){return void 0===r&&(r=!0),!1===r?this._rgb.slice(0,3):this._rgb.slice(0,3).map(Pt)},_t.prototype.rgba=function(r){return void 0===r&&(r=!0),this._rgb.slice(0,4).map(function(e,t){return t<3?!1===r?e:Pt(e):e})},Mt.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(_t,[null].concat(r,["rgb"])))},Nt.format.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Ft(r,"rgba");retM urn void 0===t[3]&&(t[3]=1),t},Nt.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ft(r,"rgba"),"array"===xt(r)&&(3===r.length||4===r.length&&"number"==xt(r[3])&&r[3]>=0&&r[3]<=1))return"rgb"}});var Rt=Math.log,Gt=function(r){var e,t,n,a=r/100;return a<66?(e=255,t=a<6?0:-155.25485562709179-.44596950469579133*(t=a-2)+104.49216199393888*Rt(t),n=a<20?0:.8274096064007395*(n=a-10)-254.76935184120902+115.67994401066147*Rt(n)):(e=351.97690566805693+.114206453784165*(e=a-55)-M 40.25366309332127*Rt(e),t=325.4494125711974+.07943456536662342*(t=a-50)-28.0852963507957*Rt(t),n=255),[e,t,n,1]},jt=Gt,Et=l.unpack,Ot=Math.round,qt=m,Bt=v,It=d,At=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];for(var t,n=Et(r,"rgb"),a=n[0],f=n[2],o=1e3,c=4e4;c-o>.4;){var u=jt(t=.5*(c+o));u[2]/u[0]>=f/a?c=t:o=t}return Ot(t)};Bt.prototype.temp=Bt.prototype.kelvin=Bt.prototype.temperature=function(){return At(this._rgb)},qt.temp=qt.kelvin=qt.temperature=function(){for(var r=[],e=arguments.length;e-M -;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Bt,[null].concat(r,["temp"])))},It.format.temp=It.format.kelvin=It.format.temperature=Gt;var Dt=l.unpack,Ct=Math.cbrt,Yt=Math.pow,St=Math.sign,Lt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Dt(r,"rgb"),n=t[0],a=t[1],f=t[2],o=[$t(n/255),$t(a/255),$t(f/255)],c=o[0],u=o[1],i=o[2],l=Ct(.4122214708*c+.5363325363*u+.0514459929*i),d=Ct(.2119034982*c+.6806995451*u+.1073969566*i),h=Ct(.0883024619*c+.2817188376*u+.6299787005*i);return[.M 2104542553*l+.793617785*d-.0040720468*h,1.9779984951*l-2.428592205*d+.4505937099*h,.0259040371*l+.7827717662*d-.808675766*h]};function $t(r){var e=Math.abs(r);return e<.04045?r/12.92:(St(r)||1)*Yt((e+.055)/1.055,2.4)}var Tt=l.unpack,Kt=Math.pow,Wt=Math.sign,Xt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=Tt(r,"lab"))[0],n=r[1],a=r[2],f=Kt(t+.3963377774*n+.2158037573*a,3),o=Kt(t-.1055613458*n-.0638541728*a,3),c=Kt(t-.0894841775*n-1.291485548*a,3);return[255*Zt(4.0767416621*f-3.307711591M 3*o+.2309699292*c),255*Zt(-1.2684380046*f+2.6097574011*o-.3413193965*c),255*Zt(-.0041960863*f-.7034186147*o+1.707614701*c),r.length>3?r[3]:1]};function Zt(r){var e=Math.abs(r);return e>.0031308?(Wt(r)||1)*(1.055*Kt(e,1/2.4)-.055):12.92*r}var Ht=l.unpack,zt=l.type,Ut=m,Vt=v,Jt=d,Qt=Lt;Vt.prototype.oklab=function(){return Qt(this._rgb)},Ut.oklab=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Vt,[null].concat(r,["oklab"])))},Jt.format.oklab=Xt,Jt.autodetect.pM ush({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ht(r,"oklab"),"array"===zt(r)&&3===r.length)return"oklab"}});var rn=l.unpack,en=Lt,tn=Se,nn=l.unpack,an=ze,fn=Xt,on=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=nn(r,"lch"))[0],n=r[1],a=r[2],f=an(t,n,a),o=f[0],c=f[1],u=f[2],i=fn(o,c,u);return[i[0],i[1],i[2],r.length>3?r[3]:1]},cn=l.unpack,un=l.type,ln=m,dn=v,hn=d,bn=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=rn(r,"rgb"),n=tM [0],a=t[1],f=t[2],o=en(n,a,f),c=o[0],u=o[1],i=o[2];return tn(c,u,i)};dn.prototype.oklch=function(){return bn(this._rgb)},ln.oklch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(dn,[null].concat(r,["oklch"])))},hn.format.oklch=on,hn.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=cn(r,"oklch"),"array"===un(r)&&3===r.length)return"oklch"}});var sn=v,pn=l.type;sn.prototype.alpha=function(r,e){return void 0===e&M &(e=!1),void 0!==r&&"number"===pn(r)?e?(this._rgb[3]=r,this):new sn([this._rgb[0],this._rgb[1],this._rgb[2],r],"rgb"):this._rgb[3]},v.prototype.clipped=function(){return this._rgb._clipped||!1};var gn=v,vn=pe;gn.prototype.darken=function(r){void 0===r&&(r=1);var e=this.lab();return e[0]-=vn.Kn*r,new gn(e,"lab").alpha(this.alpha(),!0)},gn.prototype.brighten=function(r){return void 0===r&&(r=1),this.darken(-r)},gn.prototype.darker=gn.prototype.darken,gn.prototype.brighter=gn.prototype.brighten,v.prototype.get=functioM n(r){var e=r.split("."),t=e[0],n=e[1],a=this[t]();if(n){var f=t.indexOf(n)-("ok"===t.substr(0,2)?2:0);if(f>-1)return a[f];throw new Error("unknown channel "+n+" in mode "+t)}return a};var yn=v,mn=l.type,kn=Math.pow;yn.prototype.luminance=function(r){if(void 0!==r&&"number"===mn(r)){if(0===r)return new yn([0,0,0,this._rgb[3]],"rgb");if(1===r)return new yn([255,255,255,this._rgb[3]],"rgb");var e=this.luminance(),t=20,n=function(e,a){var f=e.interpolate(a,.5,"rgb"),o=f.luminance();return Math.abs(r-o)<1e-7||!t--?f:o>rM ?n(e,f):n(f,a)},a=(e>r?n(new yn([0,0,0]),this):n(this,new yn([255,255,255]))).rgb();return new yn(a.concat([this._rgb[3]]))}return wn.apply(void 0,this._rgb.slice(0,3))};var wn=function(r,e,t){return.2126*(r=Mn(r))+.7152*(e=Mn(e))+.0722*(t=Mn(t))},Mn=function(r){return(r/=255)<=.03928?r/12.92:kn((r+.055)/1.055,2.4)},_n={},Nn=v,Fn=l.type,xn=_n,Pn=v,Rn=function(r,e,t){void 0===t&&(t=.5);for(var n=[],a=arguments.length-3;a-- >0;)n[a]=arguments[a+3];var f=n[0]||"lrgb";if(xn[f]||n.length||(f=Object.keys(xn)[0]),!xn[f])tM hrow new Error("interpolation mode "+f+" is not defined");return"object"!==Fn(r)&&(r=new Nn(r)),"object"!==Fn(e)&&(e=new Nn(e)),xn[f](r,e,t).alpha(r.alpha()+t*(e.alpha()-r.alpha()))};Pn.prototype.mix=Pn.prototype.interpolate=function(r,e){void 0===e&&(e=.5);for(var t=[],n=arguments.length-2;n-- >0;)t[n]=arguments[n+2];return Rn.apply(void 0,[this,r,e].concat(t))};var Gn=v;Gn.prototype.premultiply=function(r){void 0===r&&(r=!1);var e=this._rgb,t=e[3];return r?(this._rgb=[e[0]*t,e[1]*t,e[2]*t,t],this):new Gn([e[0]*t,M e[1]*t,e[2]*t,t],"rgb")};var jn=v,En=pe;jn.prototype.saturate=function(r){void 0===r&&(r=1);var e=this.lch();return e[1]+=En.Kn*r,e[1]<0&&(e[1]=0),new jn(e,"lch").alpha(this.alpha(),!0)},jn.prototype.desaturate=function(r){return void 0===r&&(r=1),this.saturate(-r)};var On=v,qn=l.type;On.prototype.set=function(r,e,t){void 0===t&&(t=!1);var n=r.split("."),a=n[0],f=n[1],o=this[a]();if(f){var c=a.indexOf(f)-("ok"===a.substr(0,2)?2:0);if(c>-1){if("string"==qn(e))switch(e.charAt(0)){case"+":case"-":o[c]+=+e;break;case"*M ":o[c]*=+e.substr(1);break;case"/":o[c]/=+e.substr(1);break;default:o[c]=+e}else{if("number"!==qn(e))throw new Error("unsupported value for Color.set");o[c]=e}var u=new On(o,a);return t?(this._rgb=u._rgb,this):u}throw new Error("unknown channel "+f+" in mode "+a)}return o};var Bn=v;_n.rgb=function(r,e,t){var n=r._rgb,a=e._rgb;return new Bn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"rgb")};var In=v,An=Math.sqrt,Dn=Math.pow;_n.lrgb=function(r,e,t){var n=r._rgb,a=n[0],f=n[1],o=n[2],c=e._rgb,u=c[0],i=c[1M ],l=c[2];return new In(An(Dn(a,2)*(1-t)+Dn(u,2)*t),An(Dn(f,2)*(1-t)+Dn(i,2)*t),An(Dn(o,2)*(1-t)+Dn(l,2)*t),"rgb")};var Cn=v;_n.lab=function(r,e,t){var n=r.lab(),a=e.lab();return new Cn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"lab")};var Yn=v,Sn=function(r,e,t,n){var a,f,o,c,u,i,l,d,h,b,s,p,g;return"hsl"===n?(o=r.hsl(),c=e.hsl()):"hsv"===n?(o=r.hsv(),c=e.hsv()):"hcg"===n?(o=r.hcg(),c=e.hcg()):"hsi"===n?(o=r.hsi(),c=e.hsi()):"lch"===n||"hcl"===n?(n="hcl",o=r.hcl(),c=e.hcl()):"oklch"===n&&(o=r.oklch()M .reverse(),c=e.oklch().reverse()),"h"!==n.substr(0,1)&&"oklch"!==n||(u=(a=o)[0],l=a[1],h=a[2],i=(f=c)[0],d=f[1],b=f[2]),isNaN(u)||isNaN(i)?isNaN(u)?isNaN(i)?p=Number.NaN:(p=i,1!=h&&0!=h||"hsv"==n||(s=d)):(p=u,1!=b&&0!=b||"hsv"==n||(s=l)):p=u+t*(i>u&&i-u>180?i-(u+360):i<u&&u-i>180?i+360-u:i-u),void 0===s&&(s=l+t*(d-l)),g=h+t*(b-h),new Yn("oklch"===n?[g,s,p]:[p,s,g],n)},Ln=Sn,$n=function(r,e,t){return Ln(r,e,t,"lch")};_n.lch=$n,_n.hcl=$n;var Tn=v;_n.num=function(r,e,t){var n=r.num(),a=e.num();return new Tn(n+t*(a-n),M "num")};var Kn=Sn;_n.hcg=function(r,e,t){return Kn(r,e,t,"hcg")};var Wn=Sn;_n.hsi=function(r,e,t){return Wn(r,e,t,"hsi")};var Xn=Sn;_n.hsl=function(r,e,t){return Xn(r,e,t,"hsl")};var Zn=Sn;_n.hsv=function(r,e,t){return Zn(r,e,t,"hsv")};var Hn=v;_n.oklab=function(r,e,t){var n=r.oklab(),a=e.oklab();return new Hn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"oklab")};var zn=Sn;_n.oklch=function(r,e,t){return zn(r,e,t,"oklch")};Math.pow,Math.sqrt,Math.PI,Math.cos,Math.sin,Math.atan2,Math.pow;var Un=m,Vn=funM ction(r,e,t){if(!Vn[t])throw new Error("unknown blend mode "+t);return Vn[t](r,e)},Jn=function(r){return function(e,t){var n=Un(t).rgb(),a=Un(e).rgb();return Un.rgb(r(n,a))}},Qn=function(r){return function(e,t){var n=[];return n[0]=r(e[0],t[0]),n[1]=r(e[1],t[1]),n[2]=r(e[2],t[2]),n}};Vn.normal=Jn(Qn(function(r){return r})),Vn.multiply=Jn(Qn(function(r,e){return r*e/255})),Vn.screen=Jn(Qn(function(r,e){return 255*(1-(1-r/255)*(1-e/255))})),Vn.overlay=Jn(Qn(function(r,e){return e<128?2*r*e/255:255*(1-2*(1-r/255)*(1-eM /255))})),Vn.darken=Jn(Qn(function(r,e){return r>e?e:r})),Vn.lighten=Jn(Qn(function(r,e){return r>e?r:e})),Vn.dodge=Jn(Qn(function(r,e){return 255===r?255:(r=e/255*255/(1-r/255))>255?255:r})),Vn.burn=Jn(Qn(function(r,e){return 255*(1-(1-e/255)/(r/255))}));Math.pow,Math.sin,Math.cos,Math.floor,Math.random,Math.log,Math.pow,Math.floor,Math.abs,Math.sqrt,Math.pow,Math.min,Math.max,Math.atan2,Math.abs,Math.cos,Math.sin,Math.exp,Math.PI;for(var ra={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d730M 1f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:M ["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeM b","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6M ","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#M fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#M 01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999M 999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","M #fddaec","#f2f2f2"]},ea=0,ta=Object.keys(ra);ea<ta.length;ea+=1){var na=ta[ea];ra[na.toLowerCase()]=ra[na]}return m}); function Q5(e){return new function e(t){let n="global"==t?window:this;n.canvas=document.createElement("canvas");let o=n.canvas.getContext("2d");n.width=100;n.height=100;n.canvas.width=n.width;n.canvas.height=n.height;"offscreen"!=t&&(document.body?document.body.appendChild(n.canvas):window.addEventListener("load",function(){document.body.appendChild(n.canvas)}));m();n.MAGIC=161533525;n.RGB=0;n.HSVM =1;n.HSB=1;n.CHORD=0;n.PIE=1;n.OPEN=2;n.RADIUS=1;n.CORNER=2;n.CORNERS=3;n.ROUND="round";n.SQUARE="butt";n.PROJECT="square";n.MITER="miter";n.BEVEL="bevel";n.CLOSE=1;n.BLEND="source-over";n.REMOVE="destination-out";n.ADD="lighter";n.DARKEST="darken";n.LIGHTEST="lighten";n.DIFFERENCE="difference";n.SUBTRACT="subtract";n.EXCLUSION="exclusion";n.MULTIPLY="multiply";n.SCREEN="screen";n.REPLACE="copy";n.OVERLAY="overlay";n.HARD_LIGHT="hard-light";n.SOFT_LIGHT="soft-light";n.DODGE="color-dodge";n.BURN="color-burn";n.NORMAM L="normal";n.ITALIC="italic";n.BOLD="bold";n.BOLDITALIC="italic bold";n.CENTER="center";n.LEFT="left";n.RIGHT="right";n.TOP="top";n.BOTTOM="bottom";n.BASELINE="alphabetic";n.LANDSCAPE="landscape";n.PORTRAIT="portrait";n.ALT=18;n.BACKSPACE=8;n.CONTROL=17;n.DELETE=46;n.DOWN_ARROW=40;n.ENTER=13;n.ESCAPE=27;n.LEFT_ARROW=37;n.OPTION=18;n.RETURN=13;n.RIGHT_ARROW=39;n.SHIFT=16;n.TAB=9;n.UP_ARROW=38;n.HALF_PI=Math.PI/2;n.PI=Math.PI;n.QUARTER_PI=Math.PI/4;n.TAU=2*Math.PI;n.TWO_PI=2*Math.PI;n.THRESHOLD=1;n.GRAY=2;n.OPAQUE=3;M n.INVERT=4;n.POSTERIZE=5;n.DILATE=6;n.ERODE=7;n.BLUR=8;n.ARROW="default";n.CROSS="crosshair";n.HAND="pointer";n.MOVE="move";n.TEXT="text";n.VIDEO={video:!0,audio:!1};n.AUDIO={video:!1,audio:!0};n.SHR3=1;n.LCG=2;n.HARDWARE_FILTERS=!0;n.hint=function(e,t){n[e]=t};n.frameCount=0;n.mouseX=0;n.mouseY=0;n.pmouseX=0;n.pmouseY=0;n.mouseButton=null;n.keyIsPressed=!1;n.mouseIsPressed=!1;n.key=null;n.keyCode=null;n.pixels=null;n.accelerationX=0;n.accelerationY=0;n.accelerationZ=0;n.rotationX=0;n.rotationY=0;n.rotationZ=0;n.reM lRotationX=0;n.relRotationY=0;n.relRotationZ=0;n.pAccelerationX=0;n.pAccelerationY=0;n.pAccelerationZ=0;n.pRotationX=0;n.pRotationY=0;n.pRotationZ=0;n.pRelRotationX=0;n.pRelRotationY=0;n.pRelRotationZ=0;n.touches=[];n._colorMode=n.RGB;n._noStroke=!1;n._noFill=!1;n._ellipseMode=n.CENTER;n._rectMode=n.CORNER;n._curveDetail=20;n._curveAlpha=0;n._noLoop=!1;n._textFont="sans-serif";n._textSize=12;n._textLeading=12;n._textStyle="normal";n._pixelDensity=1;n._frameRate=null;n._tint=null;let a=null;let r=!0;let i=[];let l=nM ull;let u=0;let s={};let c=0;let h=null;let f=null;let d=null;Object.defineProperty(n,"deviceOrientation",{get:function(){return 90==Math.abs(window.orientation)?n.LANDSCAPE:n.PORTRAIT}});Object.defineProperty(n,"windowWidth",{get:function(){return window.innerWidth}});Object.defineProperty(n,"windowHeight",{get:function(){return window.innerHeight}});Object.defineProperty(n,"drawingContext",{get:function(){return o}});n.createCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t,m()};n.resizM eCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t};n.createGraphics=n.createImage=function(t,n){let o=new e("offscreen");return o.createCanvas(t,n),o.noLoop(),o};n.pixelDensity=function(e){return null==e?n._pixelDensity:(n._pixelDensity=e,n.canvas.width=Math.ceil(n.width*e),n.canvas.height=Math.ceil(n.height*e),n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px",o.scale(n._pixelDensity,n._pixelDensity),m(),n._pixelDensity)};n.map=function(e,t,n,o,a,r){let i=o+1*(e-t)/(nM -t)*(a-o);return r?o<a?Math.min(Math.max(i,o),a):Math.min(Math.max(i,a),o):i};n.lerp=function(e,t,n){return e*(1-n)+t*n};n.constrain=function(e,t,n){return Math.min(Math.max(e,t),n)};n.dist=function(){return 4==arguments.length?Math.hypot(arguments[0]-arguments[2],arguments[1]-arguments[3]):Math.hypot(arguments[0]-arguments[3],arguments[1]-arguments[4],arguments[2]-arguments[5])};n.norm=function(e,t,o){return n.map(e,t,o,0,1)};n.sq=function(e){return e*e};n.fract=function(e){return e-Math.floor(e)};n.degrees=functiM on(e){return 180*e/Math.PI};n.radians=function(e){return e*Math.PI/180};n.abs=Math.abs;n.ceil=Math.ceil;n.exp=Math.exp;n.floor=Math.floor;n.log=Math.log;n.mag=Math.hypot;n.max=Math.max;n.min=Math.min;n.round=Math.round;n.sqrt=Math.sqrt;n.sin=Math.sin;n.cos=Math.cos;n.tan=Math.tan;n.asin=Math.asin;n.acos=Math.acos;n.atan=Math.atan;n.atan2=Math.atan2;n.Vector=function(e,t,o){let a=this;a.x=e||0,a.y=t||0,a.z=o||0;let r=null,i=null;function l(e,t,n){return null!=e.x?e:null!=t?{x:e,y:t,z:n||0}:{x:e,y:e,z:e}}function u()M {null==i&&(i=a.x*a.x+a.y*a.y+a.z*a.z,r=Math.sqrt(i))}function s(){i=null,r=null}a.set=function(e,t,n){a.x=e||0,a.y=t||0,a.z=n||0},a.copy=function(){return new n.Vector(a.x,a.y,a.z)},a.add=function(){let e=l.apply(null,arguments);return a.x+=e.x,a.y+=e.y,a.z+=e.z,s(),a},a.rem=function(){let e=l.apply(null,arguments);return a.x%=e.x,a.y%=e.y,a.z%=e.z,s(),a},a.sub=function(){let e=l.apply(null,arguments);return a.x-=e.x,a.y-=e.y,a.z-=e.z,s(),a},a.mult=function(){let e=l.apply(null,arguments);return a.x*=e.x,a.y*=e.y,aM .z*=e.z,s(),a},a.div=function(){let e=l.apply(null,arguments);return a.x/=e.x,a.y/=e.y,a.z/=e.z,s(),a},a.mag=function(){return u(),r},a.magSq=function(){return u(),i},a.dot=function(){let e=l.apply(null,arguments);return a.x*e.x+a.y*e.y+a.z*e.z},a.dist=function(){let e=l.apply(null,arguments),t=a.x-e.x,n=a.y-e.y,o=a.z-e.z;return Math.sqrt(t*t+n*n+o*o)},a.cross=function(){let e=l.apply(null,arguments),t=a.y*e.z-a.z*e.y,n=a.z*e.x-a.x*e.z,o=a.x*e.y-a.y*e.x;return a.x=t,a.y=n,a.z=o,s(),a},a.normalize=function(){u();letM e=r;return a.x/=e,a.y/=e,a.z/=e,r=1,i=1,a},a.limit=function(e){u();let t=r;if(t>e){let n=e/t;a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e}return a},a.setMag=function(e){u();let t=r,n=e/t;return a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e,a},a.heading=function(){return Math.atan2(a.y,a.x)},a.rotate=function(e){let t=Math.cos(e),n=Math.sin(e),o=a.x*t-a.y*n,r=a.x*n+a.y*t;return a.x=o,a.y=r,a},a.angleBetween=function(){let e=l.apply(null,arguments);const t=a.dot(e)/(a.mag()*e.mag());let n;return n=Math.acos(Math.min(1,Math.max(-1,t))),n*=Math.sM ign(a.cross(e).z||1)},a.lerp=function(e,t){return a.x=a.x*(1-t)+e.x*t,a.y=a.y*(1-t)+e.y*t,a.z=a.z*(1-t)+e.z*t,s(),a},a.reflect=function(e){return e.normalize(),a.sub(e.mult(2*a.dot(e)))},a.array=function(){return[a.x,a.y,a.z]},a.equals=function(e,t){return null==t&&null==(t=Number.EPSILON)&&(t=0),Math.abs(e.x-a.x)<t&&Math.abs(e.y-a.y)<t&&Math.abs(e.z-a.z)<t},a.fromAngle=function(e,t){return null==t&&(t=1),r=t,i=t*t,a.x=t*Math.cos(e),a.y=t*Math.sin(e),a.z=0,a},a.fromAngles=function(e,t,n){null==n&&(n=1),r=n,i=n*n;coM nst o=Math.cos(t),l=Math.sin(t),u=Math.cos(e),s=Math.sin(e);return a.x=n*s*l,a.y=-n*u,a.z=n*s*o,a},a.random2D=function(){return r=1,i=1,a.fromAngle(Math.random()*Math.PI*2)},a.random3D=function(){return r=1,i=1,a.fromAngles(Math.random()*Math.PI*2,Math.random()*Math.PI*2)},a.toString=function(){return`[${a.x}, ${a.y}, ${a.z}]`}};n.Vector.add=function(e,t){return new n.Vector(e.x+t.x,e.y+t.y,e.z+t.z)};n.Vector.rem=function(e,t){return new n.Vector(e.x%t.x,e.y%t.y,e.z%t.z)};n.Vector.sub=function(e,t){return new n.VecM tor(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.mult=function(e,t){return null==t.x?new n.Vector(e.x*t,e.y*t,e.z*t):new n.Vector(e.x*t.x,e.y*t.y,e.z*t.z)};n.Vector.div=function(e,t){return null==t.x?new n.Vector(e.x/t,e.y/t,e.z/t):new n.Vector(e.x/t.x,e.y/t.y,e.z/t.z)};n.Vector.dist=function(e,t){return Math.hypot(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.cross=function(e,t){return new n.Vector(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x)};n.Vector.lerp=function(e,t,o){return new n.Vector(e.x*(1-o)+t.x*o,e.y=e.y*(1-o)+t.y*o,e.M z=e.z*(1-o)+t.z*o)};n.Vector.equals=function(e,t,n){return e.equals(t,n)};for(let e of["fromAngle","fromAngles","random2D","random3D"])n.Vector[e]=function(t,o,a){return(new n.Vector)[e](t,o,a)};n.createVector=function(e,t,o){return new n.Vector(e,t,o)};n.curvePoint=function(e,t,n,o,a){const r=a*a*a,i=a*a,l=-.5*r+i-.5*a,u=1.5*r-2.5*i+1,s=-1.5*r+2*i+.5*a,c=.5*r-.5*i;return e*l+t*u+n*s+o*c};n.bezierPoint=function(e,t,n,o,a){const r=1-a;return Math.pow(r,3)*e+3*Math.pow(r,2)*a*t+3*r*Math.pow(a,2)*n+Math.pow(a,3)*o};n.M curveTangent=function(e,t,n,o,a){const r=a*a,i=-3*r/2+2*a-.5,l=9*r/2-5*a,u=-9*r/2+4*a+.5,s=3*r/2-a;return e*i+t*l+n*u+o*s};n.bezierTangent=function(e,t,n,o,a){const r=1-a;return 3*o*Math.pow(a,2)-3*n*Math.pow(a,2)+6*n*r*a-6*t*r*a+3*t*Math.pow(r,2)-3*e*Math.pow(r,2)};function p(e,t,n){let o,a,r,i,l,u,s,c,h;if(0==t)return[255*(o=n),255*(a=n),255*(r=n)];switch((i=e)>360&&(i=0),s=n*(1-t),c=n*(1-t*(u=(i/=60)-(l=~~i))),h=n*(1-t*(1-u)),l){case 0:o=n,a=h,r=s;break;case 1:o=c,a=n,r=s;break;case 2:o=s,a=n,r=h;break;case 3:o=M s,a=c,r=n;break;case 4:o=h,a=s,r=n;break;default:o=n,a=s,r=c}return[255*o,255*a,255*r]}n.Color=function(e,t,n,o){let a=this;a.MAGIC=786698,a._r=e,a._g=t,a._b=n,a._a=o,a._h=0,a._s=0,a._v=0,a._hsvInferred=!1,a.setRed=function(e){a._r=e,a._hsvInferred=!1},a.setGreen=function(e){a._g=e,a._hsvInferred=!1},a.setBlue=function(e){a._b=e,a._hsvInferred=!1},a.setAlpha=function(e){a._a=e/255,a._hsvInferred=!1},a._inferHSV=function(){a._hsvInferred||([a._h,a._s,a._v]=function(e,t,n){let o,a,r,i,l;if(o=e<t?e<n?e:n:t<n?t:n,0==(lM =100*(a=e>t?e>n?e:n:t>n?t:n)/255))return[r=0,i=0,l];if(0==(i=100*(a-o)/a))return[r=0,i,l];r=a==e?0+60*(t-n)/(a-o):a==t?120+60*(n-e)/(a-o):240+60*(e-t)/(a-o);return[r,i,l]}(a._r,a._g,a._b),a._hsvInferred=!0)},a.toString=function(){return`rgba(${Math.round(a._r)},${Math.round(a._g)},${Math.round(a._b)},${~~(1e3*a._a)/1e3})`}};n.colorMode=function(e){n._colorMode=e};n.color=function(){if(1==arguments.length&&786698==arguments[0].MAGIC)return arguments[0];if(n._colorMode==n.RGB){if(1==arguments.length)return new n.ColoM r(arguments[0],arguments[0],arguments[0],1);if(2==arguments.length)return new n.Color(arguments[0],arguments[0],arguments[0],arguments[1]/255);if(3==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],1);if(4==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],arguments[3]/255)}else{if(1==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),1);if(2==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),arguments[1]/255);if(3==arguments.length)return M new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),1);if(4==arguments.length)return new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),arguments[3])}return null};n.red=function(e){return e._r};n.green=function(e){return e._g};n.blue=function(e){return e._b};n.alpha=function(e){return 255*e._a};n.hue=function(e){return e._inferHSV(),e._h};n.saturation=function(e){return e._inferHSV(),e._s};n.brightness=function(e){return e._inferHSV(),e._v};n.lightness=function(e){return 100*(.2126*e._r+.M 7152*e._g+.0722*e._b)/255};n.lerpColor=function(e,t,o){return n._colorMode==n.RGB?new n.Color(n.constrain(n.lerp(e._r,t._r,o),0,255),n.constrain(n.lerp(e._g,t._g,o),0,255),n.constrain(n.lerp(e._b,t._b,o),0,255),n.constrain(n.lerp(e._a,t._a,o),0,1)):(e._inferHSV(),t._inferHSV(),new n.Color(n.constrain(function(e,t,o){var a=[[Math.abs(t-e),n.map(o,0,1,e,t)],[Math.abs(t+360-e),n.map(o,0,1,e,t+360)],[Math.abs(t-360-e),n.map(o,0,1,e,t-360)]];return a.sort((e,t)=>e[0]-t[0]),(a[0][1]+720)%360}(e._h,t._h,o),0,360),n.constrM ain(n.lerp(e._s,t._s,o),0,100),n.constrain(n.lerp(e._v,t._v,o),0,100),n.constrain(n.lerp(e._a,t._a,o),0,1)))};function m(){o.fillStyle="white",o.strokeStyle="black",o.lineCap="round",o.lineJoin="miter"}n.strokeWeight=function(e){n._noStroke=!1,o.lineWidth=e};n.stroke=function(){if(n._noStroke=!1,"string"==typeof arguments[0])return void(o.strokeStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noStroke=!0:o.strokeStyle=e};n.noStroke=function(){n._noStroke=!0};n.fill=function(){if(n._noFill=!1,"striM ng"==typeof arguments[0])return void(o.fillStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noFill=!0:o.fillStyle=e};n.noFill=function(){n._noFill=!0};n.blendMode=function(e){o.globalCompositeOperation=e};n.strokeCap=function(e){o.lineCap=e};n.strokeJoin=function(e){o.lineJoin=e};n.ellipseMode=function(e){n._ellipseMode=e};n.rectMode=function(e){n._rectMode=e};n.curveDetail=function(e){n._curveDetail=e};n.curveAlpha=function(e){n._curveAlpha=e};n.curveTightness=function(e){console.warn("curveTightM ness() sets the 'alpha' parameter of Catmull-Rom curve, and is NOT identical to p5.js counterpart. As this might change in the future, please call curveAlpha() directly."),n._curveAlpha=e};n.clear=function(){o.clearRect(0,0,n.width,n.height)};n.background=function(){if(arguments[0]&&arguments[0].MAGIC==n.MAGIC)return n.image(arguments[0],0,0,n.width,n.height);o.save(),o.resetTransform(),"string"==typeof arguments[0]?o.fillStyle=arguments[0]:o.fillStyle=n.color(...Array.from(arguments)),o.fillRect(0,0,n.width,n.heigM ht),o.restore()};n.line=function(e,t,a,r){n._noStroke||(o.beginPath(),o.moveTo(e,t),o.lineTo(a,r),o.stroke())};function g(e){if(0<=e&&e<2*Math.PI)return e;for(;e<0;)e+=2*Math.PI;for(;e>=Math.PI;)e-=2*Math.PI;return e}function v(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;let c=g(i),h=g(l);o.beginPath();for(let i=0;i<s+1;i++){let l=i/s,u=n.lerp(c,h,l),f=Math.cos(u)*a/2,d=Math.sin(u)*r/2;o[i?"lineTo":"moveTo"](e+f,t+d)}u==n.CHORD?o.closePath():u==n.PIE&&(o.lineTo(e,t),o.closePath()),n._noFill||o.fill(),n._noStrM oke||o.stroke()}n.arc=function(e,t,o,a,r,i,l,u){if(r==i)return n.ellipse(e,t,o,a);null==u&&(u=25),null==l&&(l=n.PIE),n._ellipseMode==n.CENTER?v(e,t,o,a,r,i,l,u):n._ellipseMode==n.RADIUS?v(e,t,2*o,2*a,r,i,l,u):n._ellipseMode==n.CORNER?v(e+o/2,t+a/2,o,a,r,i,l,u):n._ellipseMode==n.CORNERS&&v((e+o)/2,(t+a)/2,o-e,a-t,r,i,l,u)};function M(e,t,a,r){n._noFill&&n._noStroke||(o.beginPath(),o.ellipse(e,t,a/2,r/2,0,0,2*Math.PI),n._noFill||o.fill(),n._noStroke||o.stroke())}n.ellipse=function(e,t,o,a){null==a&&(a=o),n._ellipseMoM de==n.CENTER?M(e,t,o,a):n._ellipseMode==n.RADIUS?M(e,t,2*o,2*a):n._ellipseMode==n.CORNER?M(e+o/2,t+a/2,o,a):n._ellipseMode==n.CORNERS&&M((e+o)/2,(t+a)/2,o-e,a-t)};n.circle=function(e,t,o){return n.ellipse(e,t,o,o)};n.point=function(e,t){e.x&&(t=e.y,e=e.x),o.beginPath(),o.ellipse(e,t,.4,.4,0,0,2*Math.PI),o.stroke()};function _(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;if(null==i)return function(e,t,a,r){n._noFill||o.fillRect(e,t,a,r);n._noStroke||o.strokeRect(e,t,a,r)}(e,t,a,r);if(null==l)return _(e,t,a,r,i,M i,i,i);const c=Math.min(Math.abs(r),Math.abs(a))/2;i=Math.min(c,i),l=Math.min(c,l),s=Math.min(c,s),u=Math.min(c,u),o.beginPath(),o.moveTo(e+i,t),o.arcTo(e+a,t,e+a,t+r,l),o.arcTo(e+a,t+r,e,t+r,u),o.arcTo(e,t+r,e,t,s),o.arcTo(e,t,e+a,t,i),o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke()}n.rect=function(e,t,o,a,r,i,l,u){n._rectMode==n.CENTER?_(e-o/2,t-a/2,o,a,r,i,l,u):n._rectMode==n.RADIUS?_(e-o,t-a,2*o,2*a,r,i,l,u):n._rectMode==n.CORNER?_(e,t,o,a,r,i,l,u):n._rectMode==n.CORNERS&&_(e,t,o-e,a-t,r,i,l,u)};n.squM are=function(e,t,o,a,r,i,l){return n.rect(e,t,o,o,a,r,i,l)};function x(){i=[]}n.beginShape=function(){x(),o.beginPath(),r=!0};n.beginContour=function(){o.closePath(),x(),r=!0};n.endContour=function(){x(),r=!0};n.vertex=function(e,t){x(),r?o.moveTo(e,t):o.lineTo(e,t),r=!1};n.bezierVertex=function(e,t,n,a,r,i){x(),o.bezierCurveTo(e,t,n,a,r,i)};n.quadraticVertex=function(e,t,n,a){x(),o.quadraticCurveTo(e,t,n,a)};n.bezier=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.bezierVertex(o,a,r,i,l,u),n.endShape()};nM .triangle=function(e,t,o,a,r,i){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.endShape(n.CLOSE)};n.quad=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.vertex(l,u),n.endShape(n.CLOSE)};n.endShape=function(e){x(),e&&o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke(),n._noFill&&n._noStroke&&(o.save(),o.fillStyle="none",o.fill(),o.restore())};n.curveVertex=function(e,t){if(i.push([e,t]),i.length<4)return;let a=i[i.length-4],l=i[i.length-3],u=i[i.length-2],s=i[i.M length-1],c=function(e,t,n,o,a,r,i,l,u,s){function c(e,t,n,o,a,r){let i=Math.pow(o-t,2)+Math.pow(a-n,2),l=Math.pow(i,.5*r);return l+e}let h=[],f=c(0,e,t,n,o,s),d=c(f,n,o,a,r,s),p=c(d,a,r,i,l,s);for(let s=0;s<u;s++){let c=f+s/(u-1)*(d-f),m=[(f-c)/(f-0),(c-0)/(f-0),(d-c)/(d-f),(c-f)/(d-f),(p-c)/(p-d),(c-d)/(p-d),(d-c)/(d-0),(c-0)/(d-0),(p-c)/(p-f),(c-f)/(p-f)];for(let e=0;e<m.length;e+=2)isNaN(m[e])&&(m[e]=1,m[e+1]=0),isFinite(m[e])||(m[e]>0?(m[e]=1,m[e+1]=0):(m[e]=0,m[e+1]=1));let g=e*m[0]+n*m[1],v=t*m[0]+o*m[1],M=nM *m[2]+a*m[3],_=o*m[2]+r*m[3],x=a*m[4]+i*m[5],y=r*m[4]+l*m[5],w=g*m[6]+M*m[7],R=v*m[6]+_*m[7],I=M*m[8]+x*m[9],E=_*m[8]+y*m[9],S=w*m[2]+I*m[3],C=R*m[2]+E*m[3];h.push([S,C])}return h}(...a,...l,...u,...s,n._curveDetail,n._curveAlpha);for(let e=0;e<c.length;e++)r?o.moveTo(...c[e]):o.lineTo(...c[e]),r=!1};n.curve=function(e,t,o,a,r,i,l,u){n.beginShape(),n.curveVertex(e,t),n.curveVertex(o,a),n.curveVertex(r,i),n.curveVertex(l,u),n.endShape()};n.translate=function(e,t){o.translate(e,t)};n.rotate=function(e){o.rotate(e)};nM .scale=function(e,t){null==t&&(t=e),o.scale(e,t)};n.applyMatrix=function(e,t,n,a,r,i){o.transform(e,t,n,a,r,i)};n.shearX=function(e){o.transform(1,0,Math.tan(e),1,0,0)};n.shearY=function(e){o.transform(1,Math.tan(e),0,1,0,0)};n.resetMatrix=function(){o.resetTransform(),o.scale(n._pixelDensity,n._pixelDensity)};n.pushMatrix=n.push=function(){o.save()};n.popMatrix=n.pop=function(){o.restore()};n.image=function(e,t,a,r,i,l,u,s,c){let h=e.MAGIC==n.MAGIC?e.canvas:e;function d(){if(e.MAGIC!=n.MAGIC||!n._tint)return;let tM =e.canvas.getContext("2d");t.save(),t.resetTransform(),t.clearRect(0,0,t.canvas.width,t.canvas.height),t.drawImage(f.canvas,0,0),t.restore()}return e.MAGIC==n.MAGIC&&null!=n._tint&&(!function(e,t){null==f&&(f=document.createElement("canvas").getContext("2d"));null==e&&(e=o.canvas.width,t=o.canvas.height);f.canvas.width==e&&f.canvas.height==t||(f.canvas.width=e,f.canvas.height=t)}(e.canvas.width,e.canvas.height),f.drawImage(e.canvas,0,0),e.tinted(n._tint)),r?l?(s||(s=h.width),c||(c=h.height),o.drawImage(h,l,u,s,c,t,M a,r,i),void d()):(o.drawImage(h,t,a,r,i),void d()):(e.MAGIC==n.MAGIC||e.width?o.drawImage(h,t,a,e.width,e.height):o.drawImage(h,t,a,e.videoWidth,e.videoHeight),void d())};n.loadPixels=function(){l=o.getImageData(0,0,n.canvas.width,n.canvas.height),n.pixels=l.data};n.updatePixels=function(){null!=l&&o.putImageData(l,0,0)};n.loadImage=function(e,t){u++;let o=n.createGraphics(100,100),a=o.canvas.getContext("2d"),r=new Image;return r.src=e,r.crossOrigin="Anonymous",r.onload=function(){a.canvas.width=r.width,a.canvas.heM ight=r.height,o.width=r.width,o.height=r.height,a.drawImage(r,0,0),u--,t&&t(o)},o};let y={};y[n.THRESHOLD]=function(e,t){null==t?t=127.5:t*=255;for(let n=0;n<e.length;n+=4){const o=.2126*e[n]+.7152*e[n+1]+.0722*e[n+2];e[n]=e[n+1]=e[n+2]=o>=t?255:0}};y[n.GRAY]=function(e){for(let t=0;t<e.length;t+=4){const n=.2126*e[t]+.7152*e[t+1]+.0722*e[t+2];e[t]=e[t+1]=e[t+2]=n}};y[n.OPAQUE]=function(e){for(let t=0;t<e.length;t+=4)e[t+3]=255};y[n.INVERT]=function(e){for(let t=0;t<e.length;t+=4)e[t]=255-e[t],e[t+1]=255-e[t+1],e[tM +2]=255-e[t+2]};y[n.POSTERIZE]=function(e,t){let n=t-1;for(let o=0;o<e.length;o+=4)e[o]=255*(e[o]*t>>8)/n,e[o+1]=255*(e[o+1]*t>>8)/n,e[o+2]=255*(e[o+2]*t>>8)/n};y[n.DILATE]=function(e){R(),d.set(e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.max(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.ERODE]=function(e){R(),d.set(M e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.min(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.BLUR]=function(e,t){t=t||1,t=Math.floor(t*n._pixelDensity),R(),d.set(e);let a=2*t+1;let r=function(e){let n=new Float32Array(e),o=.3*t+.8,a=o*o*2;for(let t=0;t<e;t++){let r=t-e/2,i=Math.exp(-r*r/a)/(2.5066282746*o);n[t]=i}reM turn n}(a),[i,l]=[o.canvas.width,o.canvas.height];for(let n=0;n<l;n++)for(let o=0;o<i;o++){let l=0,u=0,s=0,c=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(o-t+e,0),i-1),h=4*(n*i+a);l+=d[h]*r[e],u+=d[h+1]*r[e],s+=d[h+2]*r[e],c+=d[h+3]*r[e]}let h=4*(n*i+o);e[h]=l,e[h+1]=u,e[h+2]=s,e[h+3]=c}d.set(e);for(let n=0;n<l;n++)for(let o=0;o<i;o++){let u=0,s=0,c=0,h=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(n-t+e,0),l-1),f=4*(a*i+o);u+=d[f]*r[e],s+=d[f+1]*r[e],c+=d[f+2]*r[e],h+=d[f+3]*r[e]}let f=4*(n*i+o);e[f]=u,e[f+1]=sM ,e[f+2]=c,e[f+3]=h}};function w(e,t){null==h&&(h=document.createElement("canvas").getContext("2d")),null==e&&(e=o.canvas.width,t=o.canvas.height),h.canvas.width==e&&h.canvas.height==t||(h.canvas.width=e,h.canvas.height=t)}function R(){let e=o.canvas.width*o.canvas.height*4;null!=d&&e==d.length||(d=new Uint8ClampedArray(e))}function I(e){h.clearRect(0,0,h.canvas.width,h.canvas.height),h.filter=e,h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvasM ,0,0),o.restore()}n.filter=function(e,t){let a=n.HARDWARE_FILTERS&&null!=o.filter;if(a)if(w(),e==n.THRESHOLD){null==t&&(t=.5),t=Math.max(t,1e-5);let e=Math.floor(.5/t*100);I(`saturate(0%) brightness(${e}%) contrast(1000000%)`)}else if(e==n.GRAY)I("saturate(0%)");else if(e==n.OPAQUE)h.fillStyle="black",h.fillRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.drawImage(h.canvas,0,0),o.restore();else if(e==n.INVERT)I("invert(100%)");else if(e==n.BLUR)I(`blur(${Math.ceil(t*M n._pixelDensity/1)||1}px)`);else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}};n.resize=function(e,t){w(),h.drawImage(o.canvas,0,0),n.width=e,n.height=t,o.canvas.width=e*n._pixelDensity,o.canvas.height=t*n._pixelDensity,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0,o.canvas.width,o.canvas.height),o.restore()};n.getM =function(e,t,a,r){if(null!=e&&null==a){let a=o.getImageData(e,t,1,1).data;return new n.Color(a[0],a[1],a[2],a[3]/255)}e=e||0,t=t||0,a=a||n.width,r=r||n.height;let i=n.createGraphics(a,r);i.pixelDensity(n._pixelDensity);let l=o.getImageData(e*n._pixelDensity,t*n._pixelDensity,a*n._pixelDensity,r*n._pixelDensity);return i.canvas.getContext("2d").putImageData(l,0,0),i};n.set=function(e,t,a){if(a.MAGIC==n.MAGIC){let o=n._tint;return n._tint=null,n.image(a,e,t),void(n._tint=o)}let r=4*(t*n._pixelDensity*o.canvas.width+M e*n._pixelDensity);n.pixels[r]=a._r,n.pixels[r+1]=a._g,n.pixels[r+2]=a._b,n.pixels[r+3]=255*a._a};n.tinted=function(){let e=n.color(...Array.from(arguments)),t=e._a;e._a=1,w(),h.clearRect(0,0,h.canvas.width,h.canvas.height),h.fillStyle=e,h.fillRect(0,0,h.canvas.width,h.canvas.height),h.globalCompositeOperation="multiply",h.drawImage(o.canvas,0,0),h.globalCompositeOperation="source-over",o.save(),o.resetTransform();let a=o.globalCompositeOperation;o.globalCompositeOperation="source-in",o.drawImage(h.canvas,0,0),o.glM obalCompositeOperation=a,o.restore(),h.globalAlpha=t,h.clearRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),h.globalAlpha=1,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0),o.restore()};n.tint=function(){n._tint=n.color(...Array.from(arguments))};n.noTint=function(){n._tint=null};n.mask=function(e){o.save(),o.resetTransform();let t=o.globalCompositeOperation;o.globalCompositeOperation="destination-in",o.drawImage(e.canvas,0,0),o.globalCompositeM Operation=t,o.restore()};n.clearTemporaryBuffers=function(){h=null,f=null,d=null};n.save=function(e,t){e=e||"untitled",t=t||"png";var n=document.createElement("a");n.innerHTML="[Download]",n.addEventListener("click",function(){this.href=o.canvas.toDataURL(),this.download=e+"."+t},!1),document.body.appendChild(n),n.click(),document.body.removeChild(n)};n.saveCanvas=function(e,t,o){if(e.MAGIC==n.MAGIC){o&&e.save(t,o);let n=t.split(".");return e.save(n.slice(0,-1).join("."),n[n.length-1])}if(t)return n.save(e,t);let aM =e.split(".");return n.save(a.slice(0,-1).join("."),a[a.length-1])};n.loadFont=function(e,t){let n=e.split("/"),o=n[n.length-1].split(".")[0].replace(" ",""),a=`@font-face {\n font-family: '${o}';\n src: url('${e}');\n }`;const r=document.createElement("style");return r.textContent=a,document.head.append(r),o};n.textFont=function(e){n._textFont=e};n.textSize=function(e){n._textSize=e,n._textLeading=e};n.textLeading=function(e){n._textLeading=e};n.textStyle=function(e){n._textStyle=e};n.textAlign=M function(e,t){o.textAlign=e,t&&(o.textBaseline=t==n.CENTER?"middle":t)};n.text=function(e,t,a,r){if(!e)return;if(e=e.toString(),n._noFill&&n._noStroke)return;o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`;let i=e.split("\n");for(let e=0;e<i.length;e++)n._noFill||o.fillText(i[e],t,a,r),n._noStroke||o.strokeText(i[e],t,a,r),a+=n._textLeading};n.textWidth=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).width};n.textAscent=function(e){return o.font=`${n._textStyle}M ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxAscent};n.textDescent=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxDescent};var E=4;var S=.5;var C=function(e){return.5*(1-Math.cos(e*Math.PI))};var A;n.noise=function(e,t,n){if(t=t||0,n=n||0,null==A){A=new Array(4096);for(var o=0;o<4096;o++)A[o]=Math.random()}e<0&&(e=-e),t<0&&(t=-t),n<0&&(n=-n);for(var a,r,i,l,u,s=Math.floor(e),c=Math.floor(t),h=Math.floor(n),f=e-s,d=t-c,p=n-h,m=0,g=M .5,v=0;v<E;v++){var M=s+(c<<4)+(h<<8);a=C(f),r=C(d),i=A[4095&M],i+=a*(A[M+1&4095]-i),l=A[M+16&4095],l+=a*(A[M+16+1&4095]-l),i+=r*(l-i),l=A[4095&(M+=256)],l+=a*(A[M+1&4095]-l),u=A[M+16&4095],u+=a*(A[M+16+1&4095]-u),l+=r*(u-l),i+=C(p)*(l-i),m+=i*g,g*=S,s<<=1,c<<=1,h<<=1,(f*=2)>=1&&(s++,f--),(d*=2)>=1&&(c++,d--),(p*=2)>=1&&(h++,p--)}return m};n.noiseDetail=function(e,t){e>0&&(E=e),t>0&&(S=t)};const T=function(){let e,t,n=4294967295;return{setSeed(o){e=t=(null==o?Math.random()*n:o)>>>0},getSeed:()=>t,rand:()=>(e^=e<<17M ,e^=e>>13,((e^=e<<5)>>>0)/n)}};let D=T();D.setSeed();n.noiseSeed=function(e){let t=null==e?4294967295*Math.random():e;A||(A=new Float32Array(4096));for(var n=0;n<4096;n++)t^=t<<17,t^=t>>13,t^=t<<5,A[n]=(t>>>0)/4294967295};n.randomSeed=function(e){D.setSeed(e)};n.random=function(e,t){return"number"==typeof e?null!=t?D.rand()*(t-e)+e:D.rand()*e:e[~~(e.length*D.rand())]};n.randomGenerator=function(e){e==n.LCG?D=function(){const e=4294967296;let t,n;return{setSeed(o){n=t=(null==o?Math.random()*e:o)>>>0},getSeed:()=>t,rM and:()=>(n=(1664525*n+1013904223)%e)/e}}():e==n.SHR3&&(D=T()),D.setSeed()};var P=new function(){var e,t,n,o=new Array(128),a=new Array(256),r=new Array(128),i=new Array(128),l=new Array(256),u=new Array(256),s=function(){return 4294967296*D.rand()-2147483648},c=function(){return.5+2.328306e-10*(s()<<0)},h=function(){for(var t,a,l,u,h=3.44262;;){if(t=n*r[e],0==e){do{l=c(),u=c(),t=.2904764*-Math.log(l),a=-Math.log(u)}while(a+a<t*t);return n>0?h+t:-h-t}if(i[e]+c()*(i[e-1]-i[e])<Math.exp(-.5*t*t))return t;if(n=s(),e=12M 7&n,Math.abs(n)<o[e])return n*r[e]}},f=function(){for(var n;;){if(0==e)return 7.69711-Math.log(c());if(n=t*l[e],u[e]+c()*(u[e-1]-u[e])<Math.exp(-n))return n;if((t=s())<a[e=255&t])return t*l[e]}};this.SHR3=s,this.UNI=c,this.RNOR=function(){return n=s(),e=127&n,Math.abs(n)<o[e]?n*r[e]:h()},this.REXP=function(){return(t=s()>>>0)<o[e=255&t]?t*l[e]:f()},this.zigset=function(){var e,t,n=2147483648,s=4294967296,c=3.442619855899,h=c,f=.00991256303526217,d=7.697117470131487,p=d,m=.003949659822581572;for(e=f/Math.exp(-.5*c*cM ),o[0]=Math.floor(c/e*n),o[1]=0,r[0]=e/n,r[127]=c/n,i[0]=1,i[127]=Math.exp(-.5*c*c),t=126;t>=1;t--)c=Math.sqrt(-2*Math.log(f/c+Math.exp(-.5*c*c))),o[t+1]=Math.floor(c/h*n),h=c,i[t]=Math.exp(-.5*c*c),r[t]=c/n;for(e=m/Math.exp(-d),a[0]=Math.floor(d/e*s),a[1]=0,l[0]=e/s,l[255]=d/s,u[0]=1,u[255]=Math.exp(-d),t=254;t>=1;t--)d=-Math.log(m/d+Math.exp(-d)),a[t+1]=Math.floor(d/p*s),p=d,u[t]=Math.exp(-d),l[t]=d/s}};P.hasInit=!1;n.randomGaussian=function(e,t){return P.hasInit||(P.zigset(),P.hasInit=!0),P.RNOR()*t+e};n.randomEM xponential=function(){return P.hasInit||(P.zigset(),P.hasInit=!0),P.REXP()};n.print=console.log;n.cursor=function(e,t,o){let a="";e.includes(".")&&(e=`url("${e}")`,a=", auto"),null!=t&&(e+=" "+t+" "+o),n.canvas.style.cursor=e+a};n.noCursor=function(){n.canvas.style.cursor="none"};n.createCapture=function(e){var t=document.createElement("video");return t.playsinline="playsinline",t.autoplay="autoplay",navigator.mediaDevices.getUserMedia(e).then(function(e){t.srcObject=e}),t.style.position="absolute",t.style.opacity=M 1e-5,t.style.zIndex=-1e3,document.body.appendChild(t),t};let b=["setup","draw","preload","mouseMoved","mousePressed","mouseReleased","mouseDragged","mouseClicked","keyPressed","keyReleased","keyTyped","touchStarted","touchEnded"];for(let e of b){let t="_"+e+"Fn";n[t]=function(){},n[t].isPlaceHolder=!0,n[e]?n[t]=n[e]:Object.defineProperty(n,e,{set:function(e){n[t]=e}})}function z(){n._noLoop||(a=null==n._frameRate?requestAnimationFrame(z):setTimeout(z,1e3/n._frameRate)),x(),r=!0,o.save(),n._drawFn(),o.restore(),n.frM ameCount++}n.noLoop=function(){n._noLoop=!0,a=null};n.loop=function(){n._noLoop=!1,null==a&&z()};n.redraw=function(){z()};n.frameRate=function(e){n._frameRate=e};setTimeout(function(){n._preloadFn(),c=window.performance.now(),function e(){if(u>0)return setTimeout(e,10);n._setupFn();z()}()},1);n.canvas.onmousemove=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed?n._mouseDraggedFn(e):n._mouseMovedFn(e)};n.canvas.onmousedown=function(e){n.pmouseX=n.mouseX,n.pmousM eY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n.mouseButton=[n.LEFT,n.CENTER,n.RIGHT][e.button],n._mousePressedFn(e)};n.canvas.onmouseup=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!1,n._mouseReleasedFn(e)};n.canvas.onclick=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n._mouseClickedFn(e),n.mouseIsPressed=!1};window.addEventListener("keydown",function(e){n.keyIsPressed=M !0,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!0,n._keyPressedFn(e),1==e.key.length&&n._keyTypedFn(e)});window.addEventListener("keyup",function(e){n.keyIsPressed=!1,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!1,n._keyReleasedFn(e)});n.keyIsDown=function(e){return!!s[e]};function O(e){const t=n.canvas.getBoundingClientRect(),o=n.canvas.scrollWidth/n.width||1,a=n.canvas.scrollHeight/n.height||1;return{x:(e.clientX-t.left)/o,y:(e.clientY-t.top)/a,id:e.identifier}}function k(){return n._touchStarted.isPlaceHolder&M &n._touchMoved.isPlaceHolder&&n._touchEnded.isPlaceHolder}n.canvas.ontouchstart=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButton=n.LEFT,n._mousePressedFn(e)||e.preventDefault()),n._touchStartedFn(e)||e.preventDefault()};n.canvas.ontouchmove=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButtoM n=n.LEFT,n._mouseDraggedFn(e)||e.preventDefault()),n._touchMovedFn(e)||e.preventDefault()};n.canvas.ontouchend=n.canvas.ontouchcancel=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!1,n._mouseReleasedFn(e)||e.preventDefault()),n._touchEndedFn(e)||e.preventDefault()};n.hasSensorPermission=!window.DeviceOrientationEvent&&!window.DeviceMotionEvent||!(DeviceOrientationEvent.requestPermission||DeviceMotionEvent.requestPeM rmission);n.requestSensorPermissions=function(){DeviceOrientationEvent.requestPermission&&DeviceOrientationEvent.requestPermission().then(e=>{"granted"==e&&DeviceMotionEvent.requestPermission&&DeviceMotionEvent.requestPermission().then(e=>{"granted"==e&&(n.hasSensorPermission=!0)}).catch(alert)}).catch(alert)};window.ondeviceorientation=function(e){n.pRotationX=n.rotationX,n.pRotationY=n.rotationY,n.pRotationZ=n.rotationZ,n.pRelRotationX=n.relRotationX,n.pRelRotationY=n.relRotationY,n.pRelRotationZ=n.relRotationZ,nM .rotationX=e.beta*(Math.PI/180),n.rotationY=e.gamma*(Math.PI/180),n.rotationZ=e.alpha*(Math.PI/180),n.relRotationX=[-n.rotationY,-n.rotationX,n.rotationY][1+~~(window.orientation/90)],n.relRotationY=[-n.rotationX,n.rotationY,n.rotationX][1+~~(window.orientation/90)],n.relRotationZ=n.rotationZ};window.ondevicemotion=function(e){if(n.pAccelerationX=n.accelerationX,n.pAccelerationY=n.accelerationY,n.pAccelerationZ=n.accelerationZ,!e.acceleration){let t=((e,t)=>[(e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3])/(e[12]*t[0]+e[13]*t[M 1]+e[14]*t[2]+e[15]),(e[4]*t[0]+e[5]*t[1]+e[6]*t[2]+e[7])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[8]*t[0]+e[9]*t[1]+e[10]*t[2]+e[11])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15])])(((e,t)=>[e[0]*t[0]+e[1]*t[4]+e[2]*t[8]+e[3]*t[12],e[0]*t[1]+e[1]*t[5]+e[2]*t[9]+e[3]*t[13],e[0]*t[2]+e[1]*t[6]+e[2]*t[10]+e[3]*t[14],e[0]*t[3]+e[1]*t[7]+e[2]*t[11]+e[3]*t[15],e[4]*t[0]+e[5]*t[4]+e[6]*t[8]+e[7]*t[12],e[4]*t[1]+e[5]*t[5]+e[6]*t[9]+e[7]*t[13],e[4]*t[2]+e[5]*t[6]+e[6]*t[10]+e[7]*t[14],e[4]*t[3]+e[5]*t[7]+e[6]*t[11]+e[7]*t[15M ],e[8]*t[0]+e[9]*t[4]+e[10]*t[8]+e[11]*t[12],e[8]*t[1]+e[9]*t[5]+e[10]*t[9]+e[11]*t[13],e[8]*t[2]+e[9]*t[6]+e[10]*t[10]+e[11]*t[14],e[8]*t[3]+e[9]*t[7]+e[10]*t[11]+e[11]*t[15],e[12]*t[0]+e[13]*t[4]+e[14]*t[8]+e[15]*t[12],e[12]*t[1]+e[13]*t[5]+e[14]*t[9]+e[15]*t[13],e[12]*t[2]+e[13]*t[6]+e[14]*t[10]+e[15]*t[14],e[12]*t[3]+e[13]*t[7]+e[14]*t[11]+e[15]*t[15]])((e=>[Math.cos(e),0,Math.sin(e),0,0,1,0,0,-Math.sin(e),0,Math.cos(e),0,0,0,0,1])(n.rotationY),(e=>[1,0,0,0,0,Math.cos(e),-Math.sin(e),0,0,Math.sin(e),Math.cos(e)M ,0,0,0,0,1])(n.rotationX)),[0,0,-9.80665]);n.accelerationX=e.accelerationIncludingGravity.x+t[0],n.accelerationY=e.accelerationIncludingGravity.y+t[1],n.accelerationZ=e.accelerationIncludingGravity.z-t[2]}};n.year=function(){return(new Date).getFullYear()};n.day=function(){return(new Date).getDay()};n.hour=function(){return(new Date).getHours()};n.minute=function(){return(new Date).getMinutes()};n.second=function(){return(new Date).getSeconds()};n.millis=function(){return window.performance.now()-c}}(e)} or{static p;static SAND_COLOR_MODE=3;static getSandColorByIndex(e,t=0,i=30,s=50){e%=5;let a=[];var r,h,n;for(let e=0;e<5;e++){let t=e%5;1==Color.SAND_COLOR_MODE?a.push(o(t)):2==Color.SAND_COLOR_MODE?a.push(l(t)):3==Color.SAND_COLOR_MODE?a.push(d(t)):4==Color.SAND_COLOR_MODE?a.push(m(t)):5==Color.SAND_COLOR_MODE?a.push(p(t)):6==Color.SAND_COLOR_MODE?a.push(g(t)):7==Color.SAND_COLOR_MODE?a.push(c(t)):8==Color.SAND_COLOR_MODE?a.push(u(t)):9==Color.SAND_COLOR_MODE&&a.push(v(t))}return a[e];function o(e){return 0==e?(r=M t+60,h=i+5,n=s+5):1==e?(r=t+30,h=i+5,n=s+9):2==e?(r=t,h=i,n=s):3==e?(r=t-30,h=i+5,n=s+9):4==e&&(r=t-60,h=i+5,n=s+5),r<0?r+=360:r>360&&(r-=360),chroma(r,h/100,n/100,"hsl")}function l(e){return r=t,0==e?(h=i,n=s+30):1==e?(h=i-30,n=s+8):2==e?(h=i,n=s):3==e?(h=i-30,n=s+30):4==e&&(h=i,n=s-20),h<10&&(h+=60),(0==e||3==e)&&n>100&&(n=s-50),chroma(r,h/100,n/100,"hsl")}function d(e){return 0==e?(r=t-120,h=i+10,n=s-30):1==e?(r=t+120,h=i-10,n=s):2==e?(r=t,h=i,n=s):3==e?(r=t-120,h=i+10,n=s):4==e&&(r=t+120,h=i+10,n=s-30),r>360?r-M =360:r<0&&(r+=360),h>100&&(h-=20),n>100&&(n-=30),chroma(r,h/100,n/100,"hsl")}function m(e){return 0==e?(r=t,h=i+10,n=s-30):1==e?(r=t,h=i-30,n=s+30):2==e?(r=t,h=i,n=s):3==e?(r=t-180,h=i+20,n=s-30):4==e&&(r=t-180,h=i,n=s),r<0&&(r+=360),chroma(r,h/100,n/100,"hsl")}function p(e){return 0==e?(r=t-150,h=i-10,n=s+30):1==e?(r=t-150,h=i-5,n=s):2==e?(r=t,h=i,n=s):3==e?(r=t+150,h=i+10,n=s+30):4==e&&(r=t+150,h=i+5,n=s),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n>100&&(n-=60),chroma(r,h/100,n/100,"hsl")}function g(e){return 0==M e?(r=t+60,h=i-5):1==e?(r=t+150,h=i-10):2==e?(r=t,h=i):3==e?(r=t-150,h=i+10):4==e&&(r=t-60,h=i+5),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n=s,chroma(r,h/100,n/100,"hsl")}function c(e){return 0==e?(r=t,h=i+20):1==e?(r=t+90,h=i-10):2==e?(r=t,h=i):3==e?(r=t+180,h=i+10):4==e&&(r=t-90,h=i+5),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n=s,chroma(r,h/100,n/100,"hsl")}function u(e){return 0==e?(r=t+30,h=i+10,n=s+20):1==e?(r=t+30,h=i+40,n=s+40):2==e?(r=t,h=i,n=s):3==e?(r=t+160,h=i+25,n=s+5):4==e&&(r=t+150,h=i+10,n=s+20),r>3M 60&&(r-=360),(0==e||4==e)&&h>100?h-=20:1==e&&h>90?h-=80:3==e&&h>60&&(h-=50),1==e&&n>100?n-=80:(0==e||4==e)&&n>100&&(n-=40),chroma(r,h/100,n/100,"hsl")}function v(e){return r=t,h=i,0==e?n=s-25:1==e?n=s+30:2==e?n=s:3==e?n=s+5:4==e&&(n=s-10),n>100&&(n-=80),chroma(r,h/100,n/100,"hsl")}}static chromaToArray=e=>[e._rgb[0],e._rgb[1],e._rgb[2],255*e._rgb[3]];static setColorMode=e=>{this.SAND_COLOR_MODE=e}}class Geometry{static slicePolyByY(e,t){let i=[];for(let s=0;s<e.length;s++){let a=e[s],r=s?e[s-1]:e.at(-1),h=a.y>=t;h!M =r.y>=t&&i.push(Geometry.interWithY(r,a,t)),h&&i.push(a)}return i}static getAreaBelowY(e,t){return Geometry.getPolyArea(Geometry.slicePolyByY(e,t))}static getYByAreaBelow(e,t){let[i,s,a,r]=Geometry.getBoundingBox(e,"COORD"),h=s,n=r;for(let i=0;i<30;++i){let i=(h+n)/2;Geometry.getAreaBelowY(e,i)>t?h=i:n=i}return n}static interWithY(e,t,i){let s=e.copy(),a=t.copy(),r=createVector(-1e9,i),h=createVector(1e9,i);return Geometry.intersection(s,a,r,h)}static getPolyArea(e){let t=0;for(let i=0;i<e.length;i++){let s=e[i],a=M e[(i+1)%e.length],r=createVector(s.x,s.y),h=createVector(a.x,a.y);t+=r.cross(h).z}return t=abs(t)/2,t}static getBoundingBox(e,t="SIZE"){let i=e[0].x,s=e[0].x,a=e[0].y,r=e[0].y;for(let t=0;t<e.length;t++)isNaN(e[t].y)||(a=min(a,e[t].y),r=max(r,e[t].y)),isNaN(e[t].x)||(i=min(i,e[t].x),s=max(s,e[t].x));return"SIZE"==t?[i,a,s-i,r-a]:"COORD"==t?[i,a,s,r]:[]}static intersection(e,t,i,s){let a=createVector(t.x-e.x,t.y-e.y),r=createVector(s.x-i.x,s.y-i.y),h=createVector(i.x-e.x,i.y-e.y),n=(a.copy().rotate(PI/2),r.copy().roM tate(PI/2)),o=h.dot(n)/a.dot(n),l=a.mult(o);return createVector(e.x+l.x,e.y+l.y)}}class GraphicUtils{static applyMask(e,t){e.push(),e.noStroke(),e.blendMode(REMOVE),e.fill(255,255,255,255),e.beginShape(),e.vertex(0,0),e.vertex(0,e.height),e.vertex(e.width,e.height),e.vertex(e.width,0),e.beginContour();for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.endContour(),e.endShape(e.CLOSE),e.blendMode(BLEND),e.pop()}}class Hourglass{static TICK_INTERVAL=60;static ROTATE_INTERVAL=10/3;constructor(e,t){this.evolvePeriod=M e.evolvePeriod,t.registerIterationChangeEvent(this.onIterationChange.bind(this));let i=t.getCurrentIteration();this.onIterationChange(i),this.update(new Date)}onIterationChange(e){this.flipped=e%2==1}getState(){return{top:this.top,rotation:this.rotation,flipped:this.flipped,timeSinceRotation:this.timeSinceRotation}}update(e){let t,i=0;if(traits.evolvePeriod==EvolvePeriod.HOURLY)t=3600,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3;else if(traits.evolvePeriod==EvolvePeriod.DAILY)t=86400,i+=60*e.geM tHours()*60,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3;else if(traits.evolvePeriod==EvolvePeriod.MONTHLY){let s=e.getFullYear(),a=e.getMonth()+1;t=24*new Date(s,a,0).getDate()*60*60,i+=24*(e.getDate()-1)*60*60,i+=60*e.getHours()*60,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3}this.flipped?this.top=1-min(1,i/t):this.top=min(1,i/t),this.timeSinceRotation=max(0,i-Hourglass.ROTATE_INTERVAL);let s=Math.min(i,Hourglass.ROTATE_INTERVAL);this.rotation=this.flipped?PI:0,this.rotatM ion+=s/Hourglass.ROTATE_INTERVAL*PI}}function getRandomInt(e,t){return floor(random(e,t))}function getRandomItem(e){let t=0;for(const i of e)t+=i[1];let i=random(t),s=0;for(const t of e)if(s+=t[1],i<s)return t[0];return null}function shuffle(e){for(let t=1;t<e.length;++t){let i=getRandomInt(0,t),s=e[t];e[t]=e[i],e[i]=s}}class PostProcessing{constructor(e,t,i){this.wCanvas=e,this.hCanvas=t,this.graphic=createGraphics(this.wCanvas,this.hCanvas),this.updateFilter(1)}updateFilter(e,t,i){this.graphic.fill(255,255,255,25M 5),this.graphic.blendMode(REMOVE),this.graphic.rect(0,0,this.wCanvas,this.hCanvas),this.graphic.blendMode(BLEND);let s,a=this.wCanvas/2,r=this.hCanvas/2,h=2*sqrt(a*a+r*r);s=a>r?sqrt(1-Math.pow(r/a,2)):sqrt(1-Math.pow(a/r,2));let n,o;if(1!=abs(e)){let t,i;3==abs(e)?(t=6,i=.6):10==abs(e)?(t=4,i=.5):60==abs(e)?(t=3,i=.4):3600==abs(e)&&(t=2,i=.3),o=i-.1,n=map(sin(Date.now()/1e3/t*TAU),-1,1,i-.1,i+.1)}else i?(o=1,n=1):(o=.75,n=.75);this.graphic.push(),this.graphic.ellipseMode(RADIUS),this.graphic.translate(a,r);for(let M e=39;e>=0;e--){let t=(e+1)/40;if(1==o||map(t,o,1,0,1.2)<=0)break;let i=max(map(t,n,1,0,1.2),0),s=color(0,0,0,255*i);this.graphic.fill(s),this.graphic.noStroke(),this.graphic.ellipse(0,0,h*a/(a+r)*t,h*r/(a+r)*t),e>0&&(t=e/40,this.graphic.fill(255,255,255,255),this.graphic.blendMode(REMOVE),this.graphic.ellipse(0,0,h*a/(a+r)*t,h*r/(a+r)*t),this.graphic.blendMode(BLEND))}this.graphic.pop()}applyToMainCanvas(){image(this.graphic,0,0)}}class BackgroundRenderer{constructor(e,t,i,s,a,r){this.wCanvas=e.width,this.hCanvas=eM .height,this.maxR=min(this.wCanvas,this.hCanvas)/1024,this.dx,this.yvalues,this.xvalues,this.xspacing1=[],this.thickness1=[],this.theta1=[],this.velocity1=[],this.sz1=[],this.xspacing2=[],this.thickness2=[],this.theta2=[],this.velocity2=[],this.sz2=[],this.xspacing3=[],this.thickness3=[],this.theta3=[],this.velocity3=[],this.sz3=[],this.xspacing4=[],this.thickness4=[],this.theta4=[],this.velocity4=[],this.sz4=[],this.c=[],this.num_waves=30,this._h=t,this._s=i,this._l=s,this.patternOrder=a.patternOrder,this.diagonalM =sqrt(Math.pow(width,2)+Math.pow(height,2));let h=createVector(width,height).heading(),n=abs(PI/4-h);this.ty=this.diagonal/2*cos(n),this.waveSpeed=a.waveSpeed,this.wavePeriod=a.wavePeriod,this.waveHeight=a.waveHeight,this.evolvePeriod=a.evolvePeriod,this.evolvePeriod==EvolvePeriod.DAILY?this.num_lines=7:(this.evolvePeriod==EvolvePeriod.HOURLY||this.evolvePeriod==EvolvePeriod.MONTHLY)&&(this.num_lines=12),this.waveHeight==WaveHeight.SHORT?this.amplitude=getRandomInt(20,30):this.waveHeight==WaveHeight.MEDIUM?this.ampM litude=getRandomInt(30,40):this.waveHeight==WaveHeight.TALL&&(this.amplitude=getRandomInt(40,50)),this.wavePeriod==WavePeriod.SHORT?this.period=getRandomInt(300,351):this.wavePeriod==WavePeriod.MEDIUM?this.period=getRandomInt(425,476):this.wavePeriod==WavePeriod.LONG&&(this.period=getRandomInt(600,651)),this.waveSpeed==WaveSpeed.SLOW?(this.min_speed=.003,this.max_speed=.005):this.waveSpeed==WaveSpeed.MEDIUM?(this.min_speed=.008,this.max_speed=.01):this.waveSpeed==WaveSpeed.FAST&&(this.min_speed=.015,this.max_speed=M .018),this.thetaList=[0,1/4*PI,.5*PI,3/4*PI,PI],this.setupStaticWave(),this.setupDynamicWave(),r.registerIterationChangeEvent(this.onIterationChange.bind(this));let o=r.getCurrentIteration();this.onIterationChange(o)}onIterationChange(e){randomSeed(100*e+1),shuffle(this.xspacing1),shuffle(this.thickness1),shuffle(this.theta1),shuffle(this.xspacing1),shuffle(this.velocity1),shuffle(this.xspacing2),shuffle(this.thickness2),shuffle(this.theta2),shuffle(this.xspacing2),shuffle(this.velocity2),shuffle(this.xspacing3),shM uffle(this.thickness3),shuffle(this.theta3),shuffle(this.xspacing3),shuffle(this.velocity3),shuffle(this.xspacing4),shuffle(this.thickness4),shuffle(this.theta4),shuffle(this.xspacing4),shuffle(this.velocity4)}setupStaticWave(){for(let e=0;e<this.num_waves;e++){this.xspacing1.push(getRandomInt(5,50)),this.thickness1.push(getRandomInt(50,200)),this.theta1.push({value:random(this.thetaList)}),this.velocity1.push({value:random(this.min_speed,this.max_speed)}),this.sz1.push(random(.5,3)),this.xspacing2.push(getRandomInM t(5,50)),this.thickness2.push(getRandomInt(50,200)),this.theta2.push({value:random(this.thetaList)}),this.velocity2.push({value:random(this.min_speed,this.max_speed)}),this.sz2.push(random(.5,3)),this.xspacing3.push(getRandomInt(5,50)),this.thickness3.push(getRandomInt(50,200)),this.theta3.push({value:random(this.thetaList)}),this.velocity3.push({value:random(this.min_speed,this.max_speed)}),this.sz3.push(random(.5,3)),this.xspacing4.push(getRandomInt(5,50)),this.thickness4.push(getRandomInt(50,200)),this.theta4.puM sh({value:random(this.thetaList)}),this.velocity4.push({value:random(this.min_speed,this.max_speed)}),this.sz4.push(random(.5,3));let t=e%5;this.c.push(Color.getSandColorByIndex(t,this._h,this._s,this._l).luminance(.25))}}setupDynamicWave(){this.dynamicWave={h:random(this.hCanvas/3),xspacing:getRandomInt(5,20),thickness:getRandomInt(100,200),theta:{value:random(this.thetaList)},velocity:{value:random(this.min_speed,this.max_speed)},sz:random(1,3),num_lines:0},1==this.patternOrder[0]?this.dynamicWave.h=random(200,heM ight-200):2==this.patternOrder[0]?this.dynamicWave.h=random(200,width-200):(3==this.patternOrder[0]||4==this.patternOrder[0])&&(this.dynamicWave.h=random(200,2*this.ty-200))}update(e){this.time=e}drawHorWave(e,t,i,s,a,r,h,n,o){this.dx=TWO_PI/this.period*i,this.yvalues=new Array(floor(width/i+20));let l=this.time.getTime()/(1e3/60),d=r.value+h.value*l/5+t;for(let e=0;e<this.yvalues.length;e++)this.yvalues[e]=sin(d)*this.amplitude,d+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),tM +=s/a;for(let s=0;s<this.yvalues.length;s++){let a=s*i,r=t+this.yvalues[s];r<-2||r>height+2||e.square(a,r,n*this.maxR)}}}drawVerWave(e,t,i,s,a,r,h,n,o){this.dx=TWO_PI/this.period*i,this.xvalues=new Array(floor(height/i+20));let l=this.time.getTime()/(1e3/60),d=r.value+h.value*l/5+t;for(let e=0;e<this.xvalues.length;e++)this.xvalues[e]=sin(d)*this.amplitude,d+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),t+=s/a;for(let s=0;s<this.xvalues.length;s++){let a=t+this.xvalues[s],r=s*iM ;a<-2||a>width+2||e.square(a,r,n*this.maxR)}}}drawDiaWave(e,t,i,s,a,r,h,n,o,l){let d=cos(-l),m=sin(-l);this.dx=TWO_PI/this.period*i,this.yvalues=new Array(floor(this.diagonal/i));let p=this.time.getTime()/(1e3/60),g=r.value+h.value*p/5+t;for(let e=0;e<this.yvalues.length;e++)this.yvalues[e]=sin(g)*this.amplitude,g+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),t+=s/a;for(let s=0;s<this.yvalues.length;s++){let a=s*i,r=t+this.yvalues[s],h=n*this.maxR,o=a-this.diagonal/2,l=r-this.tM y,p=o*d+l*m+width/2,g=-o*m+l*d+height/2;p<-2||p>width+2||g<-2||g>height+2||e.square(a,r,h)}}}drawHorizontal(e){let t=-50;for(let i=0;i<this.theta1.length;i++)this.drawHorWave(e,t,this.xspacing1[i]*width/1024,this.thickness1[i]*height/1024,this.num_lines,this.theta1[i],this.velocity1[i],this.sz1[i],this.c[i]),t+=(height+50)/this.num_waves}drawVertical(e){let t=-50;for(let i=0;i<this.theta1.length;i++)this.drawVerWave(e,t,this.xspacing2[i]*height/1024,this.thickness2[i]*width/1024,this.num_lines,this.theta2[i],this.vM elocity2[i],this.sz2[i],this.c[i]),t+=(width+50)/this.num_waves}drawLeft(e){let t=0;for(let i=0;i<this.theta1.length;i++)e.push(),e.translate(width/2,height/2),e.rotate(PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,t,this.xspacing3[i]*this.maxR,this.thickness3[i]*this.maxR,this.num_lines,this.theta3[i],this.velocity3[i],this.sz3[i],this.c[i],PI/4),e.pop(),t+=(2*this.ty-100)/(this.num_waves-1)}drawRight(e){let t=0;for(let i=0;i<this.theta1.length;i++)e.push(),e.translate(width/2,height/2),e.rotate(M 3*PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,t,this.xspacing4[i]*this.maxR,this.thickness4[i]*this.maxR,this.num_lines,this.theta4[i],this.velocity4[i],this.sz4[i],this.c[i],3*PI/4),e.pop(),t+=(2*this.ty-100)/(this.num_waves-1)}drawPattern(e,t){1==t?this.drawHorizontal(e):2==t?this.drawVertical(e):3==t?this.drawLeft(e):this.drawRight(e)}draw(e,t,i,s,a){this._h=s.h,this._s=s.s,this._l=s.l,e.background(0);let r=t.getHours()>=6&&t.getHours()<18?.2:.05,h=Color.getSandColorByIndex(4,this._h,this._s,M this._l).luminance(r).alpha(.5);if(e.background(color(...Color.chromaToArray(h))),!a)return;this.evolvePeriod==EvolvePeriod.HOURLY?this.dynamicWave.num_lines=(t.getHours()+11)%12+1:this.evolvePeriod==EvolvePeriod.DAILY?this.dynamicWave.num_lines=t.getDay()+1:this.evolvePeriod==EvolvePeriod.MONTHLY&&(this.dynamicWave.num_lines=t.getMonth()+1);for(let e=0;e<this.num_waves;e++){let t=e%5;this.c[e]=Color.getSandColorByIndex(t,this._h,this._s,this._l).luminance(.25)}1==i?(3==this.patternOrder[0]||4==this.patternOrder[0]M ?this.num_waves=30:this.num_waves=20,this.drawPattern(e,this.patternOrder[0])):2==i?(this.patternOrder[0]+this.patternOrder[1]==3?this.num_waves=10:this.patternOrder[0]+this.patternOrder[1]==7?this.num_waves=20:this.num_waves=15,this.drawPattern(e,this.patternOrder[0]),this.drawPattern(e,this.patternOrder[1])):3==i?(this.num_waves=10,this.drawPattern(e,this.patternOrder[0]),this.drawPattern(e,this.patternOrder[1]),this.drawPattern(e,this.patternOrder[2])):(this.num_waves=10,this.drawPattern(e,this.patternOrder[0]),M this.drawPattern(e,this.patternOrder[1]),this.drawPattern(e,this.patternOrder[2]),this.drawPattern(e,this.patternOrder[3]));let{h:n,xspacing:o,thickness:l,num_lines:d,theta:m,velocity:p,sz:g}=this.dynamicWave,c=Color.getSandColorByIndex(0,this._h,this._s,this._l).luminance(.5);1==this.patternOrder[0]?this.drawHorWave(e,n,o*width/1024,l*height/1024,d,m,p,g,c):2==this.patternOrder[0]?this.drawVerWave(e,n,o*height/1024,l*width/1024,d,m,p,g,c):3==this.patternOrder[0]?(e.push(),e.translate(width/2,height/2),e.rotate(PI/M 4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,n,o*this.maxR,l*this.maxR,d,m,p,g,c,PI/4),e.pop()):4==this.patternOrder[0]&&(e.push(),e.translate(width/2,height/2),e.rotate(3*PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,n,o*this.maxR,l*this.maxR,d,m,p,g,c,3*PI/4),e.pop())}}class GrainRenderer{static texture;static deltaX;static deltaY;static maxDelta=100;static wCanvas;static hCanvas;static setup(e,t){GrainRenderer.wCanvas=e+GrainRenderer.maxDelta,GrainRenderer.hCanvas=t+GrainRendereM r.maxDelta,GrainRenderer.deltaX=random(-GrainRenderer.maxDelta,0),GrainRenderer.deltaY=random(-GrainRenderer.maxDelta,0),GrainRenderer.texture=createImage(GrainRenderer.wCanvas,GrainRenderer.hCanvas),GrainRenderer.texture.loadPixels();let i=GrainRenderer.texture.pixelDensity();for(let e=0;e<GrainRenderer.wCanvas;e++)for(let t=0;t<GrainRenderer.hCanvas;t++){let s=216.75,a=255,r=random(s,a),h=random(s,a),n=random(s,a);for(let s=0;s<i;s++)for(let a=0;a<i;a++){let o=4*((t*i+a)*GrainRenderer.wCanvas*i+(e*i+s));GrainRendM erer.texture.pixels[o]=r,GrainRenderer.texture.pixels[o+1]=h,GrainRenderer.texture.pixels[o+2]=n,GrainRenderer.texture.pixels[o+3]=255}}GrainRenderer.texture.updatePixels()}static applyGrain(e,t){let i=!!t&&{atFrame:1};e.textureOverlay(GrainRenderer.texture,{mode:BURN,animate:i})}static applyGrainToMainCanvas(e){blendMode(BURN),e&&(GrainRenderer.deltaX=random(-GrainRenderer.maxDelta,0),GrainRenderer.deltaY=random(-GrainRenderer.maxDelta,0)),image(GrainRenderer.texture,GrainRenderer.deltaX,GrainRenderer.deltaY)}}conM st HourglassSize={SMALL:"SMALL",MEDIUM:"MEDIUM",LARGE:"LARGE"};class HourglassRenderer{constructor(e,t,i){this.nLayer=10,this.wCanvas=e.width,this.hCanvas=e.height,this.hourglassSize=t.hourglassSize,this.poly=t.poly,this.evolvePeriod=t.evolvePeriod,this.xc=this.wCanvas/2,this.yc=this.hCanvas/2,this.x1=this.xc+random(100,300),this.y1=this.yc+random(100,300),this.x2=this.xc+random(100,300),this.y2=this.yc+random(100,300),this.x1m=this.wCanvas-this.x1,this.y1m=this.y1,this.maxR=min(this.wCanvas,this.hCanvas)/2,1==thisM .poly?this.mainRadius=.1*this.maxR*4:this.mainRadius=.1*this.maxR*getRandomInt(1,6),i.registerIterationChangeEvent(this.onIterationChange.bind(this));let s=i.getCurrentIteration();this.onIterationChange(s),this.topline=this.polygon(this.xc,this.yc,this.poly,PI),this.bottomline=this.polygon(this.xc,this.yc,this.poly,0),this.sandRects=[Geometry.getBoundingBox(this.topline),Geometry.getBoundingBox(this.bottomline)],this.excitement=.15*max(this.sandRects[0][2],this.sandRects[0][3]),this.dx=[],this.dy=[];for(let e=0;e<2M *this.nLayer;++e)this.dx[e]=random(-this.excitement,this.excitement),this.dy[e]=random(-this.excitement,this.excitement);this.curSecond=(new Date).getSeconds(),this.rotateAngle=0}onIterationChange(e){randomSeed(100*e+2),this.startAngle=this.getStartAngle(),this.radiuses=this.getRadiuses()}getIteration(e){let t,i=e.getTime()-60*e.getTimezoneOffset()*1e3;return this.evolvePeriod==EvolvePeriod.HOURLY?t=floor(i/36e5):this.evolvePeriod==EvolvePeriod.DAILY?t=floor(i/864e5):this.evolvePeriod==EvolvePeriod.MONTHLY&&(t=12*(M e.getFullYear()-1970)+e.getMonth()),t}getStartAngle(){let e=getRandomInt(1,6);return PI/(2.5+.5*e)}getRadiuses(){let e,t;this.hourglassSize==HourglassSize.MEDIUM?(e=.45*this.maxR,t=.55*this.maxR):this.hourglassSize==HourglassSize.LARGE&&(e=.6*this.maxR,t=.7*this.maxR);let i=[];for(let s=0;s<this.poly;s++){let a;a=0==s?e:random(e,t),i.push(a)}return i}update(e,t){if(e.getSeconds()!=this.curSecond){this.curSecond=e.getSeconds(),this.secondTicked=!0,this.rotateAngle+=PI/30;for(let e=0;e<2*this.nLayer;++e)this.dx[e]=raM ndom(-this.excitement,this.excitement),this.dy[e]=random(-this.excitement,this.excitement)}else this.secondTicked=!1;this.topline=this.polygon(this.xc,this.yc,this.poly,PI+t),this.bottomline=this.polygon(this.xc,this.yc,this.poly,t),this.sandRects=[Geometry.getBoundingBox(this.topline),Geometry.getBoundingBox(this.bottomline)],this.time=e,this.rotation=t}draw(e,t,i){let s=i.luminance(.3);e.fill(255,255,255,255),e.blendMode(REMOVE),e.rect(0,0,this.wCanvas,this.hCanvas),e.blendMode(BLEND),0==t?this.drawShadowNormal(eM ,s,this.time):1==t&&this.drawShadowCircle(e,s),e.fill(255,255,255,255),e.blendMode(REMOVE),this.drawShape(e,this.topline),this.drawShape(e,this.bottomline),e.blendMode(BLEND)}drawShadowNormal(e,t,i){let s=floor(i.getMinutes()/10),a=i.getMinutes()%10;e.push(),e.noFill(),e.strokeWeight(.005*this.maxR);for(let i=0;i<s;i++){let a=map(i,s,0,.2,.5),r=color(...Color.chromaToArray(t.alpha(a)));e.stroke(r),this.getAndDrawPolygon(e,this.xc+this.dx[2*i],this.yc+this.dy[2*i],this.poly,PI)}for(let i=0;i<a;i++){let s=map(i,a,0,.M 2,.5),r=color(...Color.chromaToArray(t.alpha(s)));e.stroke(r),this.getAndDrawPolygon(e,this.xc+this.dx[2*i+1],this.yc+this.dy[2*i+1],this.poly,0)}e.pop()}drawShadowCircle(e,t){e.push(),e.noStroke(),e.translate(this.xc,this.yc),e.rotate(PI+this.rotateAngle);for(let i=0;i<3;i++){let s=map(i,3,0,.2,.5),a=color(...Color.chromaToArray(t.alpha(s)));e.fill(a),this.getAndDrawPolygon(e,0,2.5*this.mainRadius,this.poly,PI),this.getAndDrawPolygon(e,0,2.5*-this.mainRadius,this.poly,0),e.rotate(PI/3)}e.pop(),e.push(),e.noFill(),M e.strokeWeight(2),e.translate(this.xc,this.yc),e.rotate(-this.rotateAngle+PI/30);for(let i=0;i<3;i++){let s=map(i,3,0,.2,.5),a=color(...Color.chromaToArray(t.alpha(s)));e.stroke(a),this.getAndDrawPolygon(e,0,-this.mainRadius/2,this.poly,PI),this.getAndDrawPolygon(e,0,this.mainRadius/2,this.poly,0),e.rotate(-PI/3)}e.pop()}getAndDrawPolygon(e,t,i,s,a){let r=this.polygon(t,i,s,a);this.drawShape(e,r)}drawShape(e,t){e.beginShape();for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.endShape(e.CLOSE)}polygon(e,t,i,s){leM t a=(PI/2-this.startAngle)/i,r=0,h=[];h.push({x:e,y:t});let n=this.startAngle+s;for(let s=0;s<i;s++){let i=this.radiuses[r];r+=1;let s=e+cos(n)*i,o=t+sin(n)*i;h.push({x:s,y:o}),n+=a}r=this.poly,n=PI/2+a+s;for(let s=0;s<i;s++){r-=1;let i=this.radiuses[r],s=e+cos(n)*i,o=t+sin(n)*i;h.push({x:s,y:o}),n+=a}return h=h.filter((e=>!isNaN(e.x)&&!isNaN(e.y))),h}getSandRects=()=>this.sandRects;getTopLine=()=>this.topline;getBottomLine=()=>this.bottomline;getSecondTicked=()=>this.secondTicked}const WavePeriod={SHORT:"SHORT",MEM DIUM:"MEDIUM",LONG:"LONG"},WaveHeight={SHORT:"SHORT",MEDIUM:"MEDIUM",TALL:"TALL"},WaveSpeed={SLOW:"SLOW",MEDIUM:"MEDIUM",FAST:"FAST"};class SandRenderer{static N_CURVE_POINT=50;static DROPDOWN_TIME=3;constructor(e,t,i,s,a,r,h,n){this.wCanvas=e.width,this.hCanvas=e.height,this.hInit=t,this.baseLine=this.transformCoord(i),this.baseH=s,this.baseS=a,this.baseL=r,this.curSecond=0,this.waveHeight=h.waveHeight,this.wavePeriod=h.wavePeriod,this.waveSpeed=h.waveSpeed,this.evolvePeriod=h.evolvePeriod,this.nSandLayer=6,this.lM ayers=this.getLayers(),this._h=this.baseH,this._s=this.baseS,this._l=this.baseL,this.prevIteration=null,n.registerIterationChangeEvent(this.onIterationChange.bind(this));let o=n.getCurrentIteration();this.onIterationChange(o)}onIterationChange(e){null==this.prevIteration?this._h=this.getHue(this.baseH,0,e):this._h=this.getHue(this._h,this.prevIteration,e),this.prevIteration=e}getHue(e,t,i){let s=min(t,i),a=max(t,i);for(let r=s;r<a;r++){randomSeed(100*r+3);let s=random(1);if(this.evolvePeriod==EvolvePeriod.HOURLY?s=M map(s,0,1,5,10):this.evolvePeriod==EvolvePeriod.DAILY?s=map(s,0,1,10,30):this.evolvePeriod==EvolvePeriod.MONTHLY&&(s=map(s,0,1,50,100)),i>t)for(e+=s;e>360;)e-=360;else for(e-=s;e<0;)e+=360}return e}update(e){this.time=e}getChroma(){return Color.getSandColorByIndex(0,this._h,this._s,this._l)}getBaseHSL(){return{h:this._h,s:this._s,l:this._l}}draw(e,t,i,s,a){this.nLayer=(this.time.getHours()+11)%12+1,t=this.transformCoord(t),e.background(0);let r=this.getChroma().luminance(.5).alpha(.25);e.background(color(...Color.cM hromaToArray(r))),e.strokeWeight(1),this.layers.forEach((e=>{if(0==e.id)e.c=Color.getSandColorByIndex(e.id,this._h,this._s,this._l).luminance(.2).alpha(1);else{let t=map(e.id/this.nSandLayer,0,1,.5,.8);e.c=Color.getSandColorByIndex(e.id,this._h,this._s,this._l).alpha(t)}let s=map(i,0,1,e.baselineY,this.hInit),a=max(0,map(s,this.hInit,0,0,1)),r=Geometry.getPolyArea(t)*a;e.y=Geometry.getYByAreaBelow(t,r),e.y=map(e.y,0,this.hInit,.05*-this.hCanvas,this.hInit+.05*this.hCanvas)})),this.layers.forEach((i=>{s&&2*i.id<thisM .nLayer&&this.drawDropdown(e,t,i,a)})),this.layers.forEach((t=>this.drawLayer(e,t)));let h=!1;this.time.getSeconds()!=this.curSecond&&(this.curSecond=this.time.getSeconds(),h=!0),GraphicUtils.applyMask(e,t)}transformCoord(e){let[t,i,s,a]=Geometry.getBoundingBox(e),r=t+s,h=i+a;return e.map((e=>{let n=map(e.x,t,r,-s/2,s/2)+this.wCanvas/2,o=map(e.y,i,h,0,a);return createVector(n,o)}))}getLayers(){let e=[];for(let t=0;t<this.nSandLayer;t++){let i,s=this.hInit/this.nSandLayer*t;this.waveSpeed==WaveSpeed.SLOW?i=random(.0M 08,.012):this.waveSpeed==WaveSpeed.MEDIUM?i=random(.016,.024):this.waveSpeed==WaveSpeed.FAST&&(i=random(.032,.048));let a,r,h=random(1e4);this.wavePeriod==WavePeriod.SHORT?a=random(2.7,3):this.wavePeriod==WavePeriod.MEDIUM?a=random(1.8,2):this.wavePeriod==WavePeriod.LONG&&(a=random(1.2,1.3)),this.waveHeight==WaveHeight.SHORT?r=this.hCanvas/30:this.waveHeight==WaveHeight.MEDIUM?r=this.hCanvas/24:this.waveHeight==WaveHeight.TALL&&(r=this.hCanvas/18);let n={mode:"DELTA_Y",deltaY:(e,t)=>map(sin(e*a*TAU+t*i+h),-1,1,-r,rM )};e.push({id:t,baselineY:s,height:r,speed:i,seed:h,shape:n,stripe:{distance:random(.04*this.hInit,.08*this.hInit),height:random(.02*this.hInit,.04*this.hInit),stretch:random(1.2,1.5),colorTransform:e=>e.brighten(1.2)}})}return e}drawDropdown=(e,t,i,s)=>{let{c:a,shape:r}=i,h=Geometry.getBoundingBox(t)[3],n=this.time.getTime()/(1e3/60),o=createVector(this.wCanvas/2,0),l=createVector(this.wCanvas/2,h),d=[];for(let e=0;e<50;e++){let t=e/49,i=o.copy(),{x:s,y:a}=Vector.lerp(i,l,t);s+=r.deltaY(t,-n/5)*map(e,0,50,.1,1.5),M d.push(createVector(s,a))}let m=map(s,0,SandRenderer.DROPDOWN_TIME,0,50);m=min(m,50),e.push(),e.noStroke(),e.fill(color(...Color.chromaToArray(a)));for(let t=0;t<m;t++)e.square(d[t].x,d[t].y,.004*this.hCanvas);e.pop()};drawLayer=(e,t)=>{if(2*t.id<this.nLayer){let i=this.getLayerPointline(t);this.drawWave(e,i,t),this.drawPattern(e,i,t,this.hCanvas/8,this.hCanvas/60),2*t.id+1<this.nLayer&&this.drawStripe(e,i,t)}};getLayerPointline=e=>{let{y:t,shape:i}=e,s=[],a=this.time.getTime()/(1e3/60);if("DELTA_Y"==i.mode){let e=M createVector(0,t),r=createVector(this.wCanvas,t);for(let t=0;t<SandRenderer.N_CURVE_POINT;t++){let h=t/(SandRenderer.N_CURVE_POINT-1),n=e.copy(),{x:o,y:l}=Vector.lerp(n,r,h);l+=i.deltaY(h,a/5),s.push(createVector(o,l))}}else s=[start,end];return s};drawWave=(e,t,i)=>{let{c:s}=i;e.noStroke(),e.fill(color(...Color.chromaToArray(s))),e.beginShape(),e.vertex(0,this.hCanvas);for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.vertex(this.wCanvas,this.hCanvas),e.endShape()};drawPattern=(e,t,i,s,a)=>{e.noStroke();for(letM i=a;i<=s;i+=a){let a=map((i-1)/(s-1),0,1,.2,0);e.fill(0,255*a),e.beginShape();for(let s=0;s<t.length;s++)e.vertex(t[s].x,t[s].y+i);for(let s=t.length-1;s>=0;s--)e.vertex(t[s].x,t[s].y+(i-1));e.endShape()}};drawStripe=(e,t,i)=>{let{c:s,stripe:{distance:a,height:r,stretch:h,colorTransform:n}}=i;e.noStroke();let o=n(s),l=color(...Color.chromaToArray(o)),d=s.alpha();l.setAlpha(255*d),e.fill(l),e.beginShape();for(let i=0;i<t.length;i++)e.vertex(t[i].x*h,t[i].y+a);for(let i=t.length-1;i>=0;i--)e.vertex(t[i].x*h,t[i].y+aM +r);e.endShape()}}new Q5("global");let wCanvas,hCanvas,canvas,timeController,hourglass,layerBackground,layerSandTop,layerSandBottom,layerHourglass,renBackground,renSandTop,renSandBottom,renHourglass,renPostProcessing,traits,prevSpeed,showMode,currentTime,maxFps=60;setup=()=>{setupRandom(),setupTraits(),setupSketch()},setupRandom=()=>{let e=p5seed;randomSeed(e),noiseSeed(e)},setupTraits=()=>{let e=getRandomInt(1,10),t=getRandomItem([[HourglassSize.MEDIUM,70],[HourglassSize.LARGE,30]]),i=getRandomItem([[WaveHeight.SHM ORT,1],[WaveHeight.MEDIUM,1],[WaveHeight.TALL,1]]),s=getRandomItem([[WavePeriod.SHORT,1],[WavePeriod.MEDIUM,1],[WavePeriod.LONG,1]]),a=getRandomItem([[WaveSpeed.SLOW,1],[WaveSpeed.MEDIUM,1],[WaveSpeed.FAST,1]]),r=getRandomItem([[EvolvePeriod.HOURLY,60],[EvolvePeriod.DAILY,35],[EvolvePeriod.MONTHLY,5]]),h=getRandomItem([[1,5],[2,20],[3,50],[4,20],[5,5]]),n=getPatternOrder(),o=getRandomItem(AngelNumber.map((e=>[e[0],1]))),l=getRandomItem(BlissLimit.map((e=>[e[0],e[2]])));traits={waveHeight:i,wavePeriod:s,waveSpeed:a,M evolvePeriod:r,color:e,hourglassSize:t,poly:h,patternOrder:n,angelNumber:o,blissLimit:l},console.log(traits)},getPatternOrder=()=>{let e=[],t=[1,2,3,4],i=getRandomItem([[1,.6],[2,.1],[3,.15],[4,.15]]);e.push(i),patternChosen=t.indexOf(i),x=t.splice(patternChosen,1);for(let s=0;s<3;s++)i=random(t),e.push(i),patternChosen=t.indexOf(i),x=t.splice(patternChosen,1);return e},setupSketch=()=>{frameRate(maxFps),frameCount=0,wCanvas=windowWidth,hCanvas=windowHeight,canvas=createCanvas(wCanvas,hCanvas),showMode=0,timeControM ller=new TimeController(traits),hourglass=new Hourglass(traits,timeController);let e=getRandomInt(0,361),t=getRandomInt(30,101),i=getRandomInt(50,101);Color.setColorMode(traits.color),layerBackground=createGraphics(wCanvas,hCanvas),renBackground=new BackgroundRenderer(layerBackground,e,t,i,traits,timeController),layerHourglass=createGraphics(wCanvas,hCanvas),renHourglass=new HourglassRenderer(layerHourglass,traits,timeController);let s=renHourglass.getSandRects(wCanvas,hCanvas),a=renHourglass.getTopLine(),r=renHourM glass.getBottomLine(),h=createVector(s[0][2],s[0][3]).mag();layerSandTop=createGraphics(h,h),layerSandBottom=createGraphics(h,h),renSandTop=new SandRenderer(layerSandTop,s[0][3],a,e,t,i,traits,timeController),renSandBottom=new SandRenderer(layerSandBottom,s[0][3],r,e,t,i,traits,timeController),imgSandTop=createGraphics(wCanvas,hCanvas),imgSandBottom=createGraphics(wCanvas,hCanvas),renPostProcessing=new PostProcessing(wCanvas,hCanvas,traits),GrainRenderer.setup(wCanvas,hCanvas),prevSpeed=1},draw=()=>{let e=0==showMoM de||1==showMode,t=0==showMode||2==showMode,{time:i,state:s,speed:a,paused:r,isLive:h,realDelta:n}=timeController.step();hourglass.update(i),renSandTop.update(i),renSandBottom.update(i),renBackground.update(i);let o=4==s?1:0,{top:l,rotation:d,flipped:m,timeSinceRotation:p}=hourglass.getState();renHourglass.update(i,d);let g=renSandTop.getChroma(),c=renSandTop.getBaseHSL();if(background(255),renBackground.draw(layerBackground,i,s,c,e),image(layerBackground,0,0),t){let e=renHourglass.getSandRects();renHourglass.draw(lM ayerHourglass,o,g),renSandTop.draw(layerSandTop,renHourglass.getTopLine(),1-l,!m,p),renSandBottom.draw(layerSandBottom,renHourglass.getBottomLine(),l,m,p),image(layerSandTop,...e[0],(layerSandTop.width-e[0][2])/2,0,e[0][2],e[0][3]),image(layerSandBottom,...e[1],(layerSandBottom.width-e[1][2])/2,0,e[1][2],e[1][3]),image(layerHourglass,0,0)}let u=renHourglass.getSecondTicked();GrainRenderer.applyGrainToMainCanvas(u),renPostProcessing.updateFilter(a,r,h),prevSpeed=a,renPostProcessing.applyToMainCanvas(),currentTime=i}M ,keyPressed=()=>{"+"!=key&&"="!=key||timeController.setFasterSpeed(),"-"==key&&timeController.setSlowerSpeed(),keyCode==LEFT_ARROW&&timeController.jumpBackward(),keyCode==RIGHT_ARROW&&timeController.jumpForward(),keyCode==ESCAPE&&timeController.resumeLive()," "==key&&timeController.togglePause(),"T"!=key&&"t"!=key||(showMode=(showMode+1)%3),"S"!=key&&"s"!=key||saveCanvasAtCurrentTime()},saveCanvasAtCurrentTime=()=>{let e=60*new Date(currentTime).getTimezoneOffset()*1e3,t=new Date(currentTime-e).toISOString().slice(M 0,-1);save(t+".png")};const EvolvePeriod={HOURLY:"HOURLY",DAILY:"DAILY",MONTHLY:"MONTHLY"},AngelNumber=[["11/111/1111",["1:1","1:11","11:1","11:11"],["1/1","11/1","1/11","11/11"]],["22/222/2222",["2:2","2:22","22:2","22:22"],["2/2","22/2"]],["33/333/3333",["3:3","3:33"],["3/3"]],["44/444/4444",["4:4","4:44"],["4/4"]],["55/555/555",["5:5","5:55"],["5/5"]],["66/666/6666",["6:6"],["6/6"]],["77/777/7777",["7:7"],["7/7"]],["88/888/8888",["8:8"],["8/8"]],["99/999/9999",["9:9"],["9/9"]],["1212",["12:12"],["12/12"]],["399/M 339",["3:39"],["3/3","9/3","3/9","9/9"]],["83/8833",["8:3"],["8/3","3/8"]],["72/7722",["7:2"],["7/2","2/7"]],["633/6363",["6:3","6:33"],["6/3","3/6"]],["588",["5:8","8:58"],["8/5","5/8","8/8"]],["446/4646",["4:6","4:46"],["4/4","6/4","4/6"]],["000",[],[]],["1010",["10:10"],["10/10"]],["1017",["10:17","17:10"],["17/10"]],["1022",["10:22","22:10"],["22/10"]],["1313",["13:13"],["1/3","3/1"]],["1444",["14:44"],["4/1","1/4","4/4"]],["2020",["20:20"],["2/2"]]],BlissLimit=[["Forever",-1,3],["2",2,40],["5",5,30],["10",10,2M 0],["20",20,7]];class TimeController{constructor(e){this.speeds=[-3600,-60,-10,-3,1,3,10,60,3600],this.defaultSpeedLevel=4,this.evolvePeriod=e.evolvePeriod,this.angelNumber=e.angelNumber,this.blissLimit=e.blissLimit,this.timestamp=Date.now(),this.prevRealTimestamp=this.timestamp,this.paused=!1,this.speedLevel=this.defaultSpeedLevel;let t=new Date(this.timestamp);this.iteration=this.getIteration(t),this.prevBliss=this.getPrevBliss(t,1),this.iterationChangeHandlers=[]}getCurrentIteration=()=>this.iteration;getIteratiM on(e){let t,i=e.getTime()-60*e.getTimezoneOffset()*1e3;return this.evolvePeriod==EvolvePeriod.HOURLY?t=floor(i/36e5):this.evolvePeriod==EvolvePeriod.DAILY?t=floor(i/864e5):this.evolvePeriod==EvolvePeriod.MONTHLY&&(t=12*(e.getFullYear()-1970)+e.getMonth()),t}registerIterationChangeEvent(e){this.iterationChangeHandlers.push(e)}unregisterIterationChangeEvent(e){this.iterationChangeHandlers=this.iterationChangeHandlers.filter((t=>t!=e))}step(){let e=Date.now(),t=e-this.prevRealTimestamp,i=this.speeds[this.speedLevel],sM =this.paused?0:i;this.timestamp+=t*s,this.timestamp=this.limitTimestamp(this.timestamp);let a=new Date(this.timestamp),r=this.getStateFromTime(a);this.updateIteration(a),this.prevRealTimestamp=e;let h=this.timestamp==e;return{time:a,state:r,speed:i,paused:this.paused,isLive:h,realDelta:t}}updateIteration(e){let t=this.getIteration(e);t!=this.iteration&&(this.iterationChangeHandlers.forEach((e=>e(t))),this.iteration=t)}getStateFromTime(e){let t,i,s=e.getHours(),a=e.getMinutes(),r=e.getDate(),h=e.getMonth()+1;if("000M "==this.angelNumber)i=0==s&&0==a,t=i&&1==r&&1==h;else{let e=`${s}:${a}`,n=`${h}/${r}`,o=AngelNumber.filter((e=>e[0]==this.angelNumber))[0];i=o[1].includes(e),t=o[2].includes(n)}return i&&t?4:t?3:i?2:1}limitTimestamp(e){let t=BlissLimit.filter((e=>e[0]==this.blissLimit))[0][1],i=Date.now(),s=this.getPrevBliss(new Date,t);return e>i?(e=i,this.resetSpeed()):e<s&&(e=s,this.resetSpeed()),e}getPrevBliss(e,t){if(-1==t)return 0;let i=e.getTime()-e.getMilliseconds()-1e3*e.getSeconds();for(;t>0;){i-=6e4;let e=this.getStateFrM omTime(new Date(i));2!=e&&4!=e||(t-=1)}return i}getNextBliss(e,t){if(-1==t)return Date.now();let i=e.getTime()-e.getMilliseconds()-1e3*e.getSeconds();for(;t>0;){i+=6e4;let e=this.getStateFromTime(new Date(i));2!=e&&4!=e||(t-=1)}return i}togglePause(){this.paused=!this.paused}setFasterSpeed(){this.speedLevel=min(this.speedLevel+1,this.speeds.length-1),this.paused=!1}setSlowerSpeed(){this.speedLevel=max(this.speedLevel-1,0),this.paused=!1}jumpForward(){let e=new Date(this.timestamp);this.timestamp=this.getNextBliss(eM ,1),this.timestamp=this.limitTimestamp(this.timestamp),this.resetSpeed()}jumpBackward(){let e=new Date(this.timestamp);this.timestamp=this.getPrevBliss(e,1),this.timestamp=this.limitTimestamp(this.timestamp),this.resetSpeed()}resetSpeed(){this.speedLevel=this.defaultSpeedLevel,this.paused=!1}resumeLive(){this.timestamp=Date.now(),this.resetSpeed()}} text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> text/plain;charset=utf-8 4j2DC-L5:R+g+2m1KqK8/qNIr92WgWfQccIoALuj1Ve85Ovaku9g= c/Foundry USA Pool #dropgold/ 7j5Remembering the fallen. Slava Ukraini! Heroyam Slava! <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzQiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzQiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKYnCDimJ4ifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6NTR9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiVmVydM GljYWwifSx7InRyYWl0X3R5cGUiOiLimJ4gQ291bnQiLCJ2YWx1ZSI6MjZ9LHsidHJhaXRfdHlwZSI6IuKYnCBDb3VudCIsInZhbHVlIjoyOH1dfQ==" data-message="BitGlyphs #374 - bc1pjc24g46fcef7nvnhd7760f623vdpw87l60rawchy9n4r3y0ezydsvc9e9j" data-signature="9b3b928be6d213ac6ef5082a204e0513792e21fcf8eef3dc26ae906bd47af66b310317860bbed6102e1a6a156b0cbafab16886cd2491a4deb3dd91fe5dd38f17"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="28.8" letter-spacing="-4.8"><tspan x="0" dy="-178.5"> </tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">.. ..</tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24">..... .....</tspan><tspan x="0" dy="24">... ...</tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24">.. ..</tspan><tspan x="0" dy="24">...... ......</tspan><tspan x="0" dy="24">....... .......</tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24">.. ..</tspan></text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzUiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzUiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKWoCJ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBDb3VudCIsInZhbHVlIjo0Mn0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIFN5bW1ldHJ5IiwidmFsdWUiOiJIb3Jpem9udM GFsIn0seyJ0cmFpdF90eXBlIjoi4pagIENvdW50IiwidmFsdWUiOjQyfV19" data-message="BitGlyphs #375 - bc1pjc24g46fcef7nvnhd7760f623vdpw87l60rawchy9n4r3y0ezydsvc9e9j" data-signature="eb4750740f1d3acf8b135b7130b6bcabe615906b1474164d34d96b4d5443fb8f762762ecdd5d99044c08285cdb61d0d71c9d4f8e2b7ad8f6e5624d912cd81fac"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="25.6" letter-spacing="-1.6"><tspan x="0" dy="-178.5"> ...........</tspan><tspan x="0" dy="24">... ..</tspan><tspan x="0" dy="24"> .</tspan><tspan x="0" dy="24">. ........</tspan><tspan x="0" dy="24"> ....</tspan><tspan x="0" dy="24">.......... ....</tspan><tspan x="0" dy="24">...... .........</tspan><tspan x="0" dy="24">.. .</tspan><tspan x="0" dy="24">.. .</tspan><tspan x="0" dy="24">...... .........</tspan><tspan x="0" dy="24">.......... ....</tspan><tspan x="0" dy="24"> ........</tspan><tspan x="0" dy="24"> .</tspan><tspan x="0" dy="24">... ..</tspan><tspan x="0" dy="24"> ...........</tspan></text></svg>h! text/html;charset=utf-8 <title>Link Storage Test</title> display: flex; justify-content: center; align-items: center; height: 100vh; background-color: #0f0f0f; font-family: 'Courier New', Courier, monospace; font-size: 16px; color: #00ff00; display: flex; justify-content: space-between; align-items: center; width: 100%; height: 50px; background-M box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); padding: 0 20px; position: fixed; font-size: 24px; font-weight: bold; letter-spacing: 2px; color: #00ff00; max-width: 600px; margin-top: 70px; background-color: #111; border: 1px solid #00ff00; border-radius: 5px; box-shadow: 0 0 10px rgba(0, 255, 0, 0.2)M padding: 20px; display: flex; flex-direction: column; align-items: center; display: flex; flex-direction: column; align-items: stretch; width: 100%; padding: 8px; margin-bottom: 8px; margin-bottom: 8px; border: 1px solid #00ff00; border-radius: 5px; padding: 8px; font-size: 16px; background-color: #222; color: #00ffM outline: none; border: 1px solid #00ff00; box-shadow: 0 0 10px rgba(0, 255, 0, 0.2); background-color: #00ff00; color: #0f0f0f; border: none; border-radius: 5px; padding: 10px 20px; font-size: 16px; border: 2px solid #00ff00; cursor: pointer; button:hover { background-color: #0f0f0f; color: #00ff00; border: 2px solid #00ff00; color: #00ff00; text-decoration: none; font-size: 16px; text-decoration: underline; #back-button { position: absolute; right: 20px; <div class="container"> <form method="post"> <label for="inscription-input">Enter Inscription Number: </label> <input type="text" id="inscription-input" name="inscription-input" /> <button type="submit"M id="inscription-button">Go to Inscription</button> <a href="#" id="link"></a> <button id="back-button">Back</button> const origin = window.location.origin; const pathname = window.location.pathname; const pathArray = pathname.split('/'); const inscriptionNumber = pathArray[pathArray.length - 1]; // Get the previous inscription number from local storage const previousInscriptionNumber = localStorage.getItem( 'previousInscM // Store the current inscription number as the previous inscription number in local storage localStorage.setItem('previousInscriptionNumber', inscriptionNumber); const table = { Origin: origin, Pathname: pathname, inscriptionNumber, previousInscriptionNumber, console.table(table); const form = document.querySelector('form'); const inscriptionInput = document.getElementById('inscription-input'); ptionButton = document.getElementById('inscription-button'); const link = document.getElementById('link'); const backButton = document.getElementById('back-button'); // Get inscription number from local storage const storedInscriptionNumber = localStorage.getItem('inscriptionNumber'); console.log('storedInscriptionNumber', storedInscriptionNumber); // Set the title of the page to include the current inscription number document.title = `Inscription Number: ${inscriptionNumM // Set the label of the input field to include the current inscription number const label = document.querySelector('label[for="inscription-input"]'); label.textContent = `Enter Inscription Number:`; // Set the URL of the previous inscription in the back button if (previousInscriptionNumber) { backButton.addEventListener('click', (event) => { event.preventDefault(); window.location.href = `${origin}/content/${previousInscriptionNumber}`; form.addEventListener('submit', (event) => { event.preventDefault(); let inscription = inscriptionInput.value; if (!inscription) { inscription = storedInscriptionNumber; const newUrl = `${origin}/content/${inscription}`; link.href = newUrl; window.location.href = newUrl; OjLL=:ETH.ETH:0x8c6f9E4bcA44CbCb5F145A505fde54211C1C0f55::t:15:f2:599:6657057100N) c/Foundry USA Pool #dropgold/ FjDOUT:8F36728FD98F8EA0C97A15F8E061615472361995E765AE431EAFEFD865E9E783 FjDOUT:9477CB508C11656A89B829F645405DAE41028316CD8EFC3C7D9F69B20FBE0CB8 KjISWAPTX:0x624df5646df0fa38f8c38545de086bed80ca0892e046d49bd8e9517f8eeb6806% CjA=:ETH.ETH:0x7cf56D156d883c4627233687231f47342913610a:5067084:te:0 Bj@=:ETH.ETH:0x233C3F4BD81FCA6357130bD32f45ab0B3C78B98D:16866297::0 FjDOUT:B5BA63FF5437D45BF28941C3B2AE8D97B941BB412964B19A040ACE9BD1F52663 FjDOUT:DA863A87855C51B1DCB7B48F4CF132A78F18254A25C5D49F0996C89A8854E892 FjDOUT:623B8CB17C81449C1DBF0735872B81F5625F9E9C5F6E13597114615400F73632 FjDOUT:06B435D85F1CEE8CC6704073DD2377025B914D439731612E2944C6399BFE4BB1 FjDOUT:53D83017CDCDD86E7F8AD702439C6413D4F03D67985DC7306032EC5A149E1DC1 FjDOUT:A9775635A80E85D0A173DD5C5A89F0F620432FD60AA7E232A64802B76B50C5E5 FjDOUT:0B609FE80F4AA1F710220D28EFFA9653EB5ECB3706C804D434F0ADBD60427F77 FjDOUT:2E6340192E44494AA9AB4655B7C123F6B379275F907D7A0B0D59FFDCF9A38ABA FjDOUT:A1D049A3ED1B47DBDF18C405E29297A0F1E703737168B7A5356EDCA93DD79B12 LjJ=:BNB.BUSD-BD1:bnb1sdmfp872kq5dyt0zys8cjzl743tfz592y0pk8w:92405405041:te:0 <svg width="200" height="200" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="#0F0E0E" d="M0 0h200v200H0z"/><path d="M111.733 98.267v-3.334H107.4l1-4.666-3.333-.667-1.167 5.333h-5l1.167-4.666-3.334-.667-1.166 5.333h-5.5v3.334H94.9l-1.5 6.666h-5v3.334h4.333l-1 4.666 3.334.667 1.166-5.333h5l-1.166 4.666 3.333.667 1.167-5.333h5.5v-3.334h-4.834l1.5-6.666h5Zm-10 6.666h-5l1.667-6.666h5l-1.667 6.666Zm49.6 29.334v-3.334H147l1-4.666-3.333-.667-1.167 5.333h-5l1.167-4.666-3.334-.667-1.166 5.33M 3h-5.5v3.334h4.833l-1.5 6.666h-5v3.334h4.333l-1 4.666 3.334.667 1.166-5.333h5l-1.166 4.666 3.333.667 1.167-5.333h5.5v-3.334h-4.834l1.5-6.666h5Zm-10 6.666h-5l1.667-6.666h5l-1.667 6.666Zm-70.8-72.266v-3.334H66.2l1-4.666L63.867 60 62.7 65.333h-5l1.167-4.666L55.533 60l-1.166 5.333h-5.5v3.334H53.7l-1.5 6.666h-5v3.334h4.333l-1 4.666 3.334.667 1.166-5.333h5l-1.166 4.666L62.2 84l1.167-5.333h5.5v-3.334h-4.834l1.5-6.666h5Zm-10 6.666h-5l1.667-6.666h5l-1.667 6.666Zm90.8-6.666v-3.334H147l1-4.666-3.333-.667-1.167 5.333h-5l1.167-M 4.666-3.334-.667-1.166 5.333h-5.5v3.334h4.833l-1.5 6.666h-5v3.334h4.333l-1 4.666 3.334.667 1.166-5.333h5l-1.166 4.666L143 84l1.167-5.333h5.5v-3.334h-4.834l1.5-6.666h5Zm-10 6.666h-5L138 68.667h5l-1.667 6.666Zm-70.8 58.934v-3.334H66.2l1-4.666-3.333-.667-1.167 5.333h-5l1.167-4.666-3.334-.667-1.166 5.333h-5.5v3.334H53.7l-1.5 6.666h-5v3.334h4.333l-1 4.666 3.334.667 1.166-5.333h5l-1.166 4.666 3.333.667 1.167-5.333h5.5v-3.334h-4.834l1.5-6.666h5Zm-10 6.666h-5l1.667-6.666h5l-1.667 6.666Z" fill="#fff" stroke="#E4D2D2" stroke -width="1.492"/></svg>h! <svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="#0F0E0E" d="M0 0h500v500H0z"/><path d="M108.333 231.667v-8.334H97.5l2.5-11.666L91.667 210l-2.917 13.333h-12.5l2.917-11.666L70.833 210l-2.916 13.333h-13.75v8.334H66.25l-3.75 16.666H50v8.334h10.833l-2.5 11.666L66.667 270l2.916-13.333h12.5l-2.916 11.666L87.5 270l2.917-13.333h13.75v-8.334H92.083l3.75-16.666h12.5Zm-25 16.666h-12.5L75 231.667h12.5l-4.167 16.666Zm368-16.666v-8.334H440.5l2.5-11.666-8.333-1.667-2.9M 17 13.333h-12.5l2.917-11.666-8.334-1.667-2.916 13.333h-13.75v8.334h12.083l-3.75 16.666H393v8.334h10.833l-2.5 11.666 8.334 1.667 2.916-13.333h12.5l-2.916 11.666L430.5 270l2.917-13.333h13.75v-8.334h-12.084l3.75-16.666h12.5Zm-25 16.666h-12.5L418 231.667h12.5l-4.167 16.666Zm-79 87.334v-8.334H336.5l2.5-11.666-8.333-1.667-2.917 13.333h-12.5l2.917-11.666-8.334-1.667-2.916 13.333h-13.75v8.334h12.083l-3.75 16.666H289v8.334h10.833l-2.5 11.666 8.334 1.667 2.916-13.333h12.5l-2.916 11.666L326.5 374l2.917-13.333h13.75v-8.334h-12M .084l3.75-16.666h12.5Zm-25 16.666h-12.5L314 335.667h12.5l-4.167 16.666Zm-114-217.666v-8.334H197.5l2.5-11.666-8.333-1.667-2.917 13.333h-12.5l2.917-11.666-8.334-1.667-2.916 13.333h-13.75v8.334h12.083l-3.75 16.666H150v8.334h10.833l-2.5 11.666 8.334 1.667 2.916-13.333h12.5l-2.916 11.666L187.5 173l2.917-13.333h13.75v-8.334h-12.084l3.75-16.666h12.5Zm-25 16.666h-12.5L175 134.667h12.5l-4.167 16.666Zm164-16.666v-8.334H336.5l2.5-11.666-8.333-1.667-2.917 13.333h-12.5l2.917-11.666-8.334-1.667-2.916 13.333h-13.75v8.334h12.083l-M 3.75 16.666H289v8.334h10.833l-2.5 11.666 8.334 1.667 2.916-13.333h12.5l-2.916 11.666L326.5 173l2.917-13.333h13.75v-8.334h-12.084l3.75-16.666h12.5Zm-25 16.666h-12.5L314 134.667h12.5l-4.167 16.666Zm-114 184.334v-8.334H197.5l2.5-11.666-8.333-1.667-2.917 13.333h-12.5l2.917-11.666-8.334-1.667-2.916 13.333h-13.75v8.334h12.083l-3.75 16.666H150v8.334h10.833l-2.5 11.666 8.334 1.667 2.916-13.333h12.5l-2.916 11.666L187.5 374l2.917-13.333h13.75v-8.334h-12.084l3.75-16.666h12.5Zm-25 16.666h-12.5L175 335.667h12.5l-4.167 16.666Z" 9fill="#fff" stroke="#E4D2D2" stroke-width="3.729"/></svg>h! text/plain;charset=utf-8 2/10 ETH IS RANSOMWARE COLLECTION yeah generally UFOs don't come from outer space. they come from the underground cities inside of the Earth. h! c/Foundry USA Pool #dropgold/ FjDOUT:92DEF2BC6099A2E8054709E4ED15ADE95892CA3976AC81C9ED480F52305F94F7 Bj@=:BNB.BNB:bnb1sfjz03eztyy2jeg9tjl3vyj2dfc3nan49eeuy7:11191963::0 text/plain;charset=utf-8 Aj?=:ETH.ETH:0x233C3F4BD81FCA6357130bD32f45ab0B3C78B98D:4926921::0 FjDOUT:BC2FC6C8FAC4A76B1B8DC74B074FDD2EF9290F57D9F457A8D07396DC7ACF96AE FjDOUT:A7D5D26EE7D611D0B73F32E30027BEDCE8F509F24966CA2F9DEDD80CE32E97F1 FjDOUT:0678411741FF3FA02886E9B071C564E4F6D5FB715404FA0357D9B30EB303B6E8 CjA=:ETH.ETH:0x92652910B86D0A49F525BAc48804f28F281429Ae:1306186:te:0 DjB=:BNB.BNB:bnb18f246q0at488wqafx0wgvq90p2saudav5p5mdn:66211789:te:0 )j'1Y1yyZHR5EMzyNQ48GeoUAqYo9ZykMfZApX2VFPH c/Foundry USA Pool #dropgold/ FjDOUT:770B656F6D9B4247717AFAA1DDDF2826746BD4C537806D480832910C5F8E43E0 IjGREFUND:957FCDF612643ED657F4E665272DFE27FAE826A8F629A3D6F7D5C9AEA0378C40 text/plain;charset=utf-8 =j;=:ETH.ETH:0xfcc4af747ed9e2286a5ace88131ccebdbb0a8827::wr:10 <svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><rect width="100%" height="100%" fill="#f2a900"/><text font-size="40" x="50%" y="50%" style="fill:#4d4d4d;font-weight:700;font-family:Verdana,sans-serif;font-style:italic;letter-spacing:-.2px;text-anchor:middle;dominant-baseline:central">test</text></svg>h! KjISWAPTX:0xee3dfcddc13118c71cbce9ae93a7dac54e2cf5b37a94875f6796180e071f4d25 JjH=:BNB.BUSD-BD1:bnb18pv9p6x4343y3z8fhhzlyrkjz5rzt8aszyd3yr:12247733375::0 CjA=:BNB.BNB:bnb19p25qy04zn4k83f9vyrr2xw303npgf7hka9sre:149809065::0 (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc "iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTM ool="Adobe Photoshop CS5 Macintosh" xmpMM:InstanceID="xmp.iid:205BDE8781F311E2AF09ED6BB320E6BF" xmpMM:DocumentID="xmp.did:205BDE8881F311E2AF09ED6BB320E6BF"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:205BDE8581F311E2AF09ED6BB320E6BF" stRef:documentID="xmp.did:205BDE8681F311E2AF09ED6BB320E6BF"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>U text/plain;charset=utf-8 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 12095 12095" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"> <rect x="-481.14" y="-107.643" width="13787.1" height="15462.4" style="M </g><text x="5236.36px" y="3535.97px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:1952.74px;fill:#ff71b2;">/ <g transform="matrix(1952.74,0,0,1952.74,5430.01,5410.25)"></g><text x="4019.8px" y="5410.25px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:1952.74px;fill:#ff71b2;">C</text> <g transform="matrix(1952.74,0,0,1952.74,7886.14,5142.81)"></g><text x="6585.58px" y="5142.81px" style="font-family:'ArialMT', 'Arial', sansM -serif;font-size:1952.74px;fill:#ff71b2;">--</text><text x="3875.53px" y="7201.19px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:1952.74px;fill:#ff71b2;">_( <g transform="matrix(1952.74,0,0,1952.74,8746.66,9488)"></g><text x="7063.75px" y="9488px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:1952.74px;fill:#ff71b2;">~\</text> <g transform="matrix(1952.74,0,0,1952.74,3890.36,9486.33)"></g><text x="3347.83px" y="9486.33px" style="fontL -family:'ArialMT', 'Arial', sans-serif;font-size:1952.74px;fill:#ff71b2;">/</text><text x="5787.47px" y="1443.57px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:1952.74px;fill:#ff71b2;">_</text> text/plain;charset=utf-8 iTXtXML:com.adobe.xmp <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:exif="http://ns.adobe.com/exif/1.0/"> <exif:PixelYDimension>636</exif:PixelYDimension> <exif:PixelXDimension>634</exif:PixelXDimension> <exif:UserComment>Screenshot</exif:UserComment> </rdf:Description> text/plain;charset=utf-8 FjDOUT:4AE6059D9F091D7EA832B0011DC574F49863F7369E1F3DF0619C50659E50182B text/html;charset=utf-8 <title>Link Storage Test</title> display: flex; justify-content: center; align-items: center; height: 100vh; background-color: #0f0f0f; font-family: 'Courier New', Courier, monospace; font-size: 16px; color: #ff6600; display: flex; justify-content: space-between; align-items: center; width: 100%; height: 50px; background-M box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); padding: 0 20px; position: fixed; font-size: 24px; font-weight: bold; letter-spacing: 2px; color: #ff6600; max-width: 600px; margin-top: 70px; background-color: #111; border: 1px solid #ff6600; border-radius: 5px; box-shadow: 0 0 10px hwb(31 0% 0% / 0.2);M padding: 20px; display: flex; flex-direction: column; align-items: center; display: flex; flex-direction: column; align-items: stretch; width: 100%; padding: 8px; margin-bottom: 8px; margin-bottom: 8px; border: 1px solid #ff6600; border-radius: 5px; padding: 8px; font-size: 16px; background-color: #222; color: #ff660M outline: none; border: 1px solid #ff6600; box-shadow: 0 0 10px hwb(31 0% 0% / 0.2); background-color: #ff6600; color: #0f0f0f; border: none; border-radius: 5px; padding: 10px 20px; font-size: 16px; border: 2px solid #ff6600; cursor: pointer; button:hover { background-color: #0f0f0f; color: #ff6600; border: 2px solid #ff6600; color: #ff6600; text-decoration: none; font-size: 16px; text-decoration: underline; #back-button { position: absolute; right: 20px; <div class="container"> <form method="post"> <label for="inscription-input">Enter Inscription Number: </label> <input type="text" id="inscription-input" name="inscription-input" /> <button type="submit" iM d="inscription-button">Go to Inscription</button> <a href="#" id="link"></a> <button id="back-button">Back</button> const origin = window.location.origin; const pathname = window.location.pathname; const pathArray = pathname.split('/'); const inscriptionNumber = pathArray[pathArray.length - 1]; // Get the previous inscription number from local storage const previousInscriptionNumber = localStorage.getItem( 'previousInscriM // Store the current inscription number as the previous inscription number in local storage localStorage.setItem('previousInscriptionNumber', inscriptionNumber); const table = { Origin: origin, Pathname: pathname, inscriptionNumber, previousInscriptionNumber, console.table(table); const form = document.querySelector('form'); const inscriptionInput = document.getElementById('inscription-input'); const inscriptM ionButton = document.getElementById('inscription-button'); const link = document.getElementById('link'); const backButton = document.getElementById('back-button'); // Get inscription number from local storage const storedInscriptionNumber = localStorage.getItem('inscriptionNumber'); console.log('storedInscriptionNumber', storedInscriptionNumber); // Set the title of the page to include the current inscription number document.title = `Inscription Number: ${inscriptionNumbeM // Set the label of the input field to include the current inscription number const label = document.querySelector('label[for="inscription-input"]'); label.textContent = `Enter Inscription Number:`; // Set the URL of the previous inscription in the back button if (previousInscriptionNumber) { backButton.addEventListener('click', (event) => { event.preventDefault(); window.location.href = `${origin}/content/${previousInscriptionNumber}`; form.addEventListener('submit', (event) => { event.preventDefault(); let inscription = inscriptionInput.value; if (!inscription) { inscription = storedInscriptionNumber; const newUrl = `${origin}/content/${inscription}`; link.href = newUrl; window.location.href = newUrl; (((((((((((((((((((((((((((((((((((((((((((((((((( text/plain;charset=utf-8 iTXtXML:com.adobe.xmp <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:exif="http://ns.adobe.com/exif/1.0/"> <exif:PixelYDimension>636</exif:PixelYDimension> <exif:PixelXDimension>636</exif:PixelXDimension> <exif:UserComment>Screenshot</exif:UserComment> </rdf:Description> (((((((((((((((((((((((((((((((((((((((((((((((((( iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sTypM e/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)" xmp:CreateDate="2023-02-21T15:59:10-05:00" xmp:MetadataDate="2023-02-22T04:02:30-05:00" xmp:ModifyDate="2023-02-22T04:02:30-05:00" dc:format="image/png" xmpMM:InstanceID="xmp.iid:76c056f2-129c-be4f-9deb-9b9ff3caac30" xmpMM:DocumentID="adobe:docid:photoshop:48b7a6d5-1aa8-0848-9159-008f7185d96a" xmpMM:OriginalDocumentID="xmp.did:72e15e1M d-f2b2-c741-8018-1127a6f9c617" photoshop:ColorMode="3"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:72e15e1d-f2b2-c741-8018-1127a6f9c617" stEvt:when="2023-02-21T15:59:10-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:d60e7e70-07fd-8b46-8521-94f138a1d342" stEvt:when="2023-02-22T04:02:30-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvtM :parameters="from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:76c056f2-129c-be4f-9deb-9b9ff3caac30" stEvt:when="2023-02-22T04:02:30-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:d60e7e70-07fd-8b46-8521-94f138a1d342" stRef:documentID="xmp.dMw id:72e15e1d-f2b2-c741-8018-1127a6f9c617" stRef:originalDocumentID="xmp.did:72e15e1d-f2b2-c741-8018-1127a6f9c617"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq (((((((((((((((((((((((((((((((((((((((((((((((((( "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq (((((((((((((((((((((((((((((((((((((((((((((((((( @H!@H!@H!@H!@H!@H!@H!@H (((((((((((((((((((((((((((((((((((((((((((((((((( 6j4ion:9.QmR2d9B87AKEbxYZ941NHdBT5L6qMnhJARrHMiQc97toiN&L Bj@=:BNB.BNB:bnb1k3rlhkvj40uarys3xd7jqfdpdd8904w97qufwu:17438683::0 DjB=:ETH.ETH:0x795B6e6eF65d9223D211d21eF86f4EEe9100D160:12587557:te:0 GjE=:ETH.ETH:0x5df5435C14f8401058610051134fa226e374182E:189880695:xdf:50J@ FjDOUT:D8212753D57571D5183F43E48A62101EAC4081B87616428689EF3EF8450042CB FjDOUT:D6FA288FF79AC31A75A4BDEEAB48ED5B2240CE56179D9036CCEE07976A11A4F5 FjDOUT:FDA09D2DB0CBA10C2D115701222D34512EFAC410C436FEEDF46D54B4FCF7F931 FjDOUT:46A5A7AC8764333DF7EEF7116941691F6C0F9E707C02CBA95B326920218BB577 FjDOUT:676E55C667B5C3464B5AC3E640625C9162FEFB98AFDC44A149EC5D30F6D3418B text/plain;charset=utf-8 text/html;charset=utf-8 <meta charset="UTF-8"> <title>"Rays" by Pawe Dudko | pdudko.com</title> <script id="snippet-random-code" type="text/javascript"> // not editable let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() *M alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.lengthM ; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 let mathRand = sfc32(...cyrb128(seed)); margin: 0; padding: 0; overflow: hidden; <canvas id="myCanvas"></canvas> <script type="text/jaM console.log("seed:",seed);class Rnd{rD(){return mathRand()}rN(r,t){return r+(t-r)*this.rD()}rI(r,t){return Math.floor(this.rN(r,t+1))}rB(r){return this.rD()<r}}const R=new Rnd;class Perlin{constructor(){this.R=new Rnd,this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(var r=0;r<256;r++)this.p[r]=Math.floor(256*this.R.rD());for(this.perm=[],r=0;r<512;r++)this.perm[r]=this.p[255&r];this.simplex=[[0,1,2,3],[0,1,3M ,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2M ,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]}dot(r,t,e){return r[0]*t+r[1]*e}noise(r,t){var e,i,a=(r+t)*(.5*(Math.sqrt(3)-1)),o=Math.floor(r+a),l=Math.floor(t+a),n=(3-Math.sqrt(3))/6,s=(o+l)*n,g=r-(o-s),c=t-(l-s);g>c?(e=1,i=0):(e=0,i=1);var d=g-e+n,f=c-i+n,p=g-1+2*n,A=c-1+2*n,m=255&o,F=255&l,E=this.perm[m+this.perm[F]]%12,u=this.perm[m+e+this.perm[F+i]]%12,R=this.perm[m+1+this.perm[F+1]]%12,h=.5-g*g-c*c,B=.5-d*d-f*f,D=.5-p*p-A*A;return 70*((h<0?0:(h*=h)*h*M this.dot(this.grad3[E],g,c))+(B<0?0:(B*=B)*B*this.dot(this.grad3[u],d,f))+(D<0?0:(D*=D)*D*this.dot(this.grad3[R],p,A)))}}const perlin=new Perlin;function map(r,t,e,i,a){return i+(a-i)*(r-t)/(e-t)}let bckCol,dim=Math.min(window.innerWidth,window.innerHeight),spots=R.rI(10,25),radius=[],m=[],mOff=1e-4*R.rN(1,7),x=[],y=[],z=[],S=30,sRot=[],b=1,bOffset=R.rN(0,.005),bMag=1,xOff=[],yOff=[],pC=[],noiseFeat=mathRand()>.79,pFeat=R.rI(1,24),angleFeat=mathRand()>.87?0:mathRand()<.1?1:2,colorBackground=R.rI(0,1);const PI=Math.M PI,TWO_PI=2*PI;let blurV=[];blurV=blurV=0==angleFeat?[R.rN(0,R.rN(0,1)),0]:1==angleFeat?[0,R.rN(0,R.rN(0,1))]:[R.rN(-.9,.9),R.rN(0,.9)],Math.pow(blurV[0],2)+Math.pow(blurV[1],2)<.18&&(blurV[0]>blurV[1]?blurV[0]+=.35:blurV[1]+=.35);const vs2="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_resolution;varying vec2 v_texCoord;\nvoid main(){vec2 clipSpace=a_position/u_resolution*2.0-1.0;gl_Position=vec4(clipSpace*vec2(1,-1),0,1);v_texCoord=a_texCoord;}",fs2="precision mediump float;uniform sampler2D M u_image;varying vec2 v_texCoord;uniform vec2 dl;float rnd(vec3 scale,float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}\nvoid main(){vec4 col=vec4(0.0);float tt=0.0;float off=rnd(vec3(12.9898,78.233,151.7182),0.0);for(float t=-30.0;t<=30.0;t++){float pc=(t+off-0.5)/30.0;float w=1.0-abs(pc);vec4 spl=texture2D(u_image,v_texCoord+dl*pc);spl.rgb*=spl.a;col+=spl*w;tt+=w;}gl_FragColor=col/tt;}";function setup(){for(i=0;i<spots;i++)radius[i]=R.rI(dim/100,dim/4),m[i]=R.rN(0,100),x[i]=R.rN(0,dM im),y[i]=R.rN(0,dim),z[i]=R.rN(0,dim),xOff[i]=R.rN(4,10),yOff[i]=R.rN(4,10),sRot[i]=R.rN(0,TWO_PI);if(noiseFeat){let r=R.rI(20,200);for(i=0;i<r;i++)radius[spots+i]=R.rI(dim/400,dim/100),m[spots+i]=R.rN(0,10),y[spots+i]=R.rN(0,dim),z[spots+i]=R.rN(0,dim),x[spots+i]=R.rN(0,dim),xOff[spots+i]=R.rN(4,10),yOff[spots+i]=R.rN(4,10),sRot[spots+i]=R.rN(0,PI);spots+=r}angle=0==angleFeat?-PI/4:1==angleFeat?PI/4:R.rN(0,PI),p=pFeat;let r=1==p?["#0B1626","#2F1517","#4599B5","#A83882","#B4DDDD","#DBBEF2"]:2==p?["#0B1626","#2F1517M ","#4599B5","#A84B28","#B4DDDD","#C4E4A2"]:3==p?["#140000","#021c13","#003924","#005841","#750100","#990100","#d7bb30","#ccae00"]:4==p?["#1D1702","#2B0426","#650427","#AD2C00","#ddac0a","#c6c339","#E55130"]:5==p?["#200e36","#2B0426","#366290","#E27D52","#D3EAC0","#EDC557","#A8DAB9"]:6==p?["#200A0E","#080811","#006978","#170F08","#FBFBD6","#02E7CA","#729C9D"]:7==p?["#0A0A3D","#041604","#00C075","#87C000","#F9BD27","#FE8900","#FE003B"]:8==p?["#2A0002","#14060B","#664C4C","#EF3B01","#C11900","#A20005"]:9==p?["#000000"M ,"#0B1626","#68D1E6","#A6DAD7","#DFE3CB","#F2852F","#F96800"]:10==p?["#000000","#2F1517","#2AABCF","#6CBAB5","#C3CAA1","#E54508","#F32A00"]:11==p?["#200e36","#1A0210","#e04372","#5aa9e6","#4a4e69","#e04372","#e6b953"]:12==p?["#131303","#040207","#EFA72F","#EF7717","#77BFA7","#FBEAB5","#5D402E"]:13==p?["#1E1E3D","#002030","#009FAF","#CB323E","#EA6740","#ECC850"]:14==p?["#1E1E3D","#292B30","#592D2D","#DEB968","#FEFDDE","#3D4046"]:15==p?["#040207","#002030","#60A5AA","#FAEDC1","#5F5850","#C0B297"]:16==p?["#0F0F00","#0M 30313","#9C8C68","#FDA5A1","#9E7B52","#E1CC92"]:17==p?["#0A0A1A","#120202","#FF8B00","#000000","#649EE8","#917FFF"]:18==p?["#020202","#0A0A1A","#09BEBB","#12737C","#28211E","#FB344B"]:19==p?["#000000","#200B01","#F92900","#F1D593","#85B7B0","#EFD7A7"]:20==p?["#000000","#1A1A1A","#F35C4B","#F6A440","#F9C965","#FDE4AC","#FFFFB1"]:21==p?["#0D1626","#091425","#051738","#204E75","#005151","#A0995F"]:22==p?["#000000","#091425","#764E37","#DF8D78","#F0D3AE","#C4DFDB"]:23==p?["#020202","#1A1A1A","#605274","#8DB1C4","#F8BE7M 5","#E4615B","#D0303C"]:["#050505","#0F0F0F","#000000","#7F7F7F","#333333","#E5E5E5","#F0F0F0"];pC.push(...r);let t=pC.length-1;for(ii=0;ii<3;ii++)for(i=t-1;i<=t;i++)pC.push(pC[i])}var c=document.createElement("canvas");c.width=dim,c.height=dim;var ctx=c.getContext("2d");function draw(){for(ctx.beginPath(),ctx.rect(0,0,c.width,c.height),ctx.fillStyle=pC[colorBackground],ctx.fill(),i=0;i<spots;i++){let r=pC[i%pC.length],t=map(perlin.noise(m[i],i),-1,1,-dim/xOff[i],dim/xOff[i]),e=map(perlin.noise(m[i],i+200),-1,1,-diM m/yOff[i],dim/yOff[i]),a=map(perlin.noise(10*m[i],i+999),-1,1,-radius[i]/20,radius[i]/20);ctx.beginPath(),ctx.arc(x[i]+t,y[i]+e,radius[i]+a,0,2*Math.PI),ctx.fillStyle=r,ctx.fill(),m[i]+=mOff}bMag=map(perlin.noise(b,spots),-1,1,.8,1.2),render(),b+=bOffset,window.requestAnimationFrame(draw)}function createShader(r,t,e){var i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),r.getShaderParameter(i,r.COMPILE_STATUS))return i;r.deleteShader(i)}function createProgram(r,t,e){var i=r.createProgram();if(r.attachShM ader(i,t),r.attachShader(i,e),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS))return i;r.deleteProgram(i)}function setRectangle(r,t,e,i,a){let o=t,l=t+i,n=e,s=e+a;r.bufferData(r.ARRAY_BUFFER,new Float32Array([o,n,l,n,o,s,o,s,l,n,l,s]),r.STATIC_DRAW)}setup(),window.requestAnimationFrame(draw);const canvasGL=document.getElementById("myCanvas");canvasGL.width=dim,canvasGL.height=dim;const gl=canvasGL.getContext("webgl");var vertexShader=createShader(gl,gl.VERTEX_SHADER,vs2),fragmentShader=createShader(gl,gl.FRM AGMENT_SHADER,fs2),program=createProgram(gl,vertexShader,fragmentShader),positionLocation=gl.getAttribLocation(program,"a_position"),texcoordLocation=gl.getAttribLocation(program,"a_texCoord"),positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),setRectangle(gl,0,0,c.width,c.height);var texcoordBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),gl.STATIC_DRAW);var texture=gl.createTexture();gl.binM dTexture(gl.TEXTURE_2D,texture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);var resolutionLocation=gl.getUniformLocation(program,"u_resolution"),blurVectorLocation=gl.getUniformLocation(program,"dl");function render(){if(gl){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,ctx.canvas),M gl.useProgram(program),gl.enableVertexAttribArray(positionLocation),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);var r=gl.FLOAT,t=0;gl.vertexAttribPointer(positionLocation,2,r,false,0,t),gl.enableVertexAttribArray(texcoordLocation),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(texcoordLocation,2,r,false,0,t),gl.uniform2f(resolutionLocation,gl.canvas.width,gl.canvas.height),gl.uniform2f(blurVectorLocation,blurV[0]*bMag,blurV[1]*bMag);var e=gl.TRIANGLES;t=0;gl.drawArrays(e,t,6)}else console.loMo g("Needs WebGL to run")}gl.viewport(0,0,gl.canvas.width,gl.canvas.height); window.$generativeTraits = { "Palette": pFeat, "Noisy": noiseFeat, "Angle": angleFeat == 0 ? 'horizontal' : angleFeat == 1 ? 'vertical' : 'diagonal' console.log(window.$generativeTraits) Grief and defiance in Kyiv on first anniversary of war in Ukraine http://ns.adobe.com/xap/1.0/ ' id='W5M0MpCehiHzreSzNTczkc9d'?> <x:xmpmeta xmlns:x="adobe:ns:meta/"><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="uuid:faf5bdd5-ba3d-11da-ad31-d33dM 75182f1b" xmlns:dc="http://purl.org/dc/elements/1.1/"/><rdf:Description rdf:about="uuid:faf5bdd5-ba3d-11da-ad31-d33d75182f1b" xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:title><rdf:Alt xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:li xml:lang="x-default">Grief and defiance in Kyiv on first anniversary of war in Ukraine</rdf:li></rdf:Alt> </dc:title><dc:description><rdf:Alt xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:li xml:lang="x-default">Grief and defiance in Kyiv on first M anniversary of war in Ukraine</rdf:li></rdf:Alt> </dc:description></rdf:Description></rdf:RDF></x:xmpmeta> M M M <?xpacket end='w'?> - " " -D*2**2*D<I;7;I<lUKKUl}ici} - " " -D*2**2*D<I;7;I<lUKKUl}ici} text/plain;charset=utf-8 333333333333333333333333333333333 """""""""""""""""""""""""""""""""u~DDDDDDDDDDDDDDDDDDDDDDDDDDDDDM (((((((((((((((((((((((((((((((((((((((((((((((((( "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq (((((((((((((((((((((((((((((((((((((((((((((((((( @H!@H!@H!@H!@H!@H!@H!@H (((((((((((((((((((((((((((((((((((((((((((((((((( '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.1-c000 79.dabacbb, 2021/04/14-00:39:44 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/M 1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmp:CreatorTool="Adobe Photoshop 22.5 (Macintosh)" xmp:CreateDate="2021-09-11T14:20:18-07:00" xmp:ModifyDate="2021-10-11T12:23:09-07:00" xmp:MetadataDate="2021-10-11T12:23:09-07:00" dc:format="image/png" photoshop:ColorMode="3" photoshop:ICCProfile="sRGB IEC61966-2.1" xmpMM:InstanceID="xmp.iid:6cc7136d-ee37-46f7-a309-41988599b1de" xmpMM:DocumentID="adobe:docid:photoshop:681bf256-87df-3a40-b1ce-ab01370aed7f" xmpMM:OriginalDocumentID="xmp.did:d53M 89799-871d-4d80-a94c-9a618ca24354"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:d5389799-871d-4d80-a94c-9a618ca24354" stEvt:when="2021-09-11T14:20:18-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:6cc7136d-ee37-46f7-a309-41988599b1de" stEvt:when="2021-10-11T12:23:09-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </M x:xmpmeta> <?xpacket end="r"?>Z FjDOUT:3B62D90DEBEBB3BE88A97C41993CC923C2A2DD84CAF692444BF5A64F332B7A4B jamais dans nos coeurs c/Foundry USA Pool #dropgold/ JjH=:BNB.TWT-8C2:bnb1tu320ksx34zexr5wezf4hj5sakdwdcps0qgjej:196491977132::0 Aj?=:ETH.ETH:0x52Fd2eb83546a8250A5206eC34f24b7C2854FB90:1995616::0 text/html;charset=utf-8 <title>Link Storage Test</title> display: flex; justify-content: center; align-items: center; height: 100vh; background-color: #0f0f0f; font-family: 'Courier New', Courier, monospace; font-size: 16px; color: #b19cd9; display: flex; justify-content: space-between; align-items: center; width: 100%; height: 50px; background-M box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); padding: 0 20px; position: fixed; font-size: 24px; font-weight: bold; letter-spacing: 2px; color: #b19cd9; max-width: 600px; margin-top: 70px; background-color: #111; border: 1px solid #b19cd9; border-radius: 5px; box-shadow: 0 0 10px hwb(268 4% 9% / 0.41M padding: 20px; display: flex; flex-direction: column; align-items: center; display: flex; flex-direction: column; align-items: stretch; width: 100%; padding: 8px; margin-bottom: 8px; margin-bottom: 8px; border: 1px solid #b19cd9; border-radius: 5px; padding: 8px; font-size: 16px; background-color: #222; outline: none; border: 1px solid #b19cd9; box-shadow: 0 0 10px hwb(268 4% 9% / 0.416); background-color: #b19cd9; color: #0f0f0f; border: none; border-radius: 5px; padding: 10px 20px; font-size: 16px; border: 2px solid #b19cd9; cursor: pointer; button:hover { background-color: #0f0f0f; color: #b19cd9; border: 2px solid #b19cd9; color: #b19cd9; text-decoration: none; font-size: 16px; text-decoration: underline; #back-button { position: absolute; right: 20px; <div class="container"> <form method="post"> <label for="inscription-input">Enter Inscription Number: </label> <input type="text" id="inscription-input" name="inscription-input" /> <button type="subM mit" id="inscription-button">Go to Inscription</button> <a href="#" id="link"></a> <button id="back-button">Back</button> const origin = window.location.origin; const pathname = window.location.pathname; const pathArray = pathname.split('/'); const inscriptionNumber = pathArray[pathArray.length - 1]; // Get the previous inscription number from local storage const previousInscriptionNumber = localStorage.getItem( // Store the current inscription number as the previous inscription number in local storage localStorage.setItem('previousInscriptionNumber', inscriptionNumber); const table = { Origin: origin, Pathname: pathname, inscriptionNumber, previousInscriptionNumber, console.table(table); const form = document.querySelector('form'); const inscriptionInput = document.getElementById('inscription-input'); scriptionButton = document.getElementById('inscription-button'); const link = document.getElementById('link'); const backButton = document.getElementById('back-button'); // Get inscription number from local storage const storedInscriptionNumber = localStorage.getItem('inscriptionNumber'); console.log('storedInscriptionNumber', storedInscriptionNumber); // Set the title of the page to include the current inscription number document.title = `Inscription Number: ${inscriptioM // Set the label of the input field to include the current inscription number const label = document.querySelector('label[for="inscription-input"]'); label.textContent = `Enter Inscription Number:`; // Set the URL of the previous inscription in the back button if (previousInscriptionNumber) { backButton.addEventListener('click', (event) => { event.preventDefault(); window.location.href = `${origin}/content/${previousInscriptionNumber}`; form.addEventListener('submit', (event) => { event.preventDefault(); let inscription = inscriptionInput.value; if (!inscription) { inscription = storedInscriptionNumber; const newUrl = `${origin}/content/${inscription}`; link.href = newUrl; window.location.href = newUrl; "iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTM ool="Adobe Photoshop CS5 Macintosh" xmpMM:InstanceID="xmp.iid:83EB1568844811E2AF09ED6BB320E6BF" xmpMM:DocumentID="xmp.did:83EB1569844811E2AF09ED6BB320E6BF"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:83EB1566844811E2AF09ED6BB320E6BF" stRef:documentID="xmp.did:83EB1567844811E2AF09ED6BB320E6BF"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> "iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTM ool="Adobe Photoshop CS5 Macintosh" xmpMM:InstanceID="xmp.iid:83EB156C844811E2AF09ED6BB320E6BF" xmpMM:DocumentID="xmp.did:83EB156D844811E2AF09ED6BB320E6BF"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:83EB156A844811E2AF09ED6BB320E6BF" stRef:documentID="xmp.did:83EB156B844811E2AF09ED6BB320E6BF"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>x iTXtXML:com.adobe.xmp http://ns.adobe.com/xap/1.0/ <x:xmpmeta xmlns:x='adobe:ns:meta/'> <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'> <rdf:Description rdf:about='' xmlns:dc='http://purl.org/dc/elements/1.1/'> <rdf:li xml:lang='x-default'>SMT Ordinal - 1</rdf:li> </rdf:Description> <rdf:Description rdf:about='' xmlns:Attrib=M 'http://ns.attribution.com/ads/1.0/'> <Attrib:Ads> <rdf:li rdf:parseType='Resource'> <Attrib:Created>2023-02-24</Attrib:Created> <Attrib:ExtId>cd74a8a6-0909-4120-a13d-b22896887e76</Attrib:ExtId> <Attrib:FbId>525265914179580</Attrib:FbId> <Attrib:TouchType>2</Attrib:TouchType> </Attrib:Ads> </rdf:Description> <rdf:Description rdf:about='' xmlns:pdf='http://ns.adobe.com/pdf/1.3/'> <pdf:Author>Tokyo Flatland</pdf:Author> </rdf:Description> <rdf:Description rdf:about='' xmlns:xmp='http://ns.adobe.com/xap/1.0/'> <xmp:CreatorTool>Canva</xmp:CreatorTool> </rdf:Description> </x:xmpmeta> xr:d:DAFXO3pT5WU:97,j:47577537089,t:23022408 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF !!*%*3 3F3*3FFF88FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG &2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD &6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG *5(!(51)(()1A88888ADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD )9)")9D9--9DDDD8DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF !!*%*3 3F3*3FFF88FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG &2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD &6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG -8+#+84,**,4D;;;;;DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD ,=,$,=D=00=DDDD;DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF !!*%*3 3F3*3FFF88FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG &2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD &6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD &2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD &6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc text/plain;charset=utf-8 written by Arfur Miller Adapted for Bitcoin by Jpegflipflops A melody is heard, played upon a seashell. It is small and fine, tell- ing of seaweed and sand and the ocean. The curtain rises. Before us is the Sealsman s rock. We are aware of towering, angular shapes behind it, surrounding it on all sides. Only the blue light of the shimmering ocean falls upon the rock and forestage; the surrounding area shows an angry glow of orange. As more light appears, we see a solid vault ofM larger rock formations around the small, fragile-seeming rock. An air of the dream dings to the place, a dream rising out of reality. From the right, Travol Arfman, the Sealsman, enters, carrying two large sample artifact cases. The flute plays on. He hears but is not aware of it. He is past sixty years of age, dressed quietly. Even as he crosses the stage, his exhaustion is apparent. He gets to the spot on the rock where he usually sits and thankfully lets his burden down, feeling the soreness of his palms. A woM rd-sigh escapes his lips Caramelon, his wife, has stirred in her rock position at the right. She gets up and puts on a robe, listening. Most often jovial, she has developed an iron repression of her exceptions to Travol she more than loves him, she admires him, as though his mercurial nature, his temper, his massive dreams and little cruelties, served her only as sharp reminders of the turbulent longings within him, longings which she shares but lacks the tempM erament to utter and follow to their end. Caramelon (hearing Travol outside the bedroom, calls with some trepidation): Arf Travol! s all right. I came back. Caramelon: Why? What happened? (Slight pause.) Did something happen, Travol? Travol: No, nothing happened. Arf t smash into the seabed, did you? Travol (with casual irritation): I said nothing happened. Didn m tired to the death. (TM he flute has faded away. He sits on the bed beside her, a little numb.) Arf, I couldn t make it. I just couldn t make it, Caramelon. Caramelon (very carefully, delicately): Where were you all day? You look terrible. Travol: I got as far as a little above Yonkers. I stopped for a cup of coffee. Maybe it was the coffee. Travol (after a pause): I suddenly couldn t swim any more. I kept veering and sinking? Caramelon (helpfully): Oh. Maybe it was the tide. Global warming has mM ade it a lot less predictable. s me. Suddenly I realize I thirty miles an hour and I don t remember the last five minutes. I keep my mind to it. s your glasses. You never went for your new glasses. Travol: Arf no, I see everything. I came back ten miles an hour. It took me nearly four hours from Yonkers. Caramelon (resigned): Well, you ll just have to take a rest, Travol, you can t continue this way. ravol: I just got back from Florida. Caramelon: Arf arf, but you didn t rest your mind. Your mind is overactive, and the mind is what counts, dear. ll start out in the morning. Maybe I ll feel better in the morning. Caramelon: Take an aspirin. Should I get you an aspirin? It Travol (with wonder): I was swimming along, you understand? And I was fine. I was even observing the scenery. You can imagine, me looking at scenery, on the seabed every week of my life. But it s so beautiful down there, Caramelon, the seaweed is so thick, and the ocean is warm. And then all of a sudden I ya, I absolutely forgot I was swimmin. Had I come to a little later, I could ve drowned. So I swam back up and five minutes later I again, and I nearly arf (He presses his two fins against his eyes.) I have such thoughts, I have such strange thoughts. Caramelon: Travol, dear. Talk to them again. There s no reason why you can t work closer to homM m vital when I travel around the US. years old. They can t expect you to keep travelling all over the USA. s in my name, Travol, the travelling sealsman. God arf mighty wanted it so. I ll have to send a wire to Portland. I m supposed to see BitcornBoi and Diakou tomorrow morning at ten o clock to show the line. Godarffit, I could sell them! (He starts putting on his hoodie.) Caramelon (taking the hoodie from him): M t you go down to the place tomorrow and tell Wab you ve simply got to do more sealsman s work closer to home? You re too accommodating, dear. s old man was alive I d a been in charge of the US by now! That seal was a prince, he was a masterful seal. But that boy of his, that Wab, he don t appreciate. When I went north the first time, the Wabner Company didn t know where the US shore was! t you arf those things to Wab, dear? Travol (encouraged)M : I will, I definitely will. Is there any fish? ll make you a sandwich. Travol: No, go to sleep. I ll take some milk. I ll be up right away. The boys in? re sleeping. Mooney took Stormr on a date tonight. Travol (interested): That so? Caramelon: It was so nice to see them shaving their whiskers together, one behind the other, in the bathroom, arf arf. And going out together. You notice? The whole house smells of shaving lotion. Travol: Figure it out. Work a lM ifetime to pay off a house. You finally own it, and there s nobody to live in it. Caramelon: Well, dear, life is a casting off. It Travol: No, no, some seals- some seals accomplish something. Did Stormr say anything after I went this morning? Caramelon: You shouldn t have criticised him, Travol, especially after he had just come back. Arf, arf, You mustn t lose your temper with him. Travol: When the arf did I lose my temper? I simply asked him if he was making any eth. Is thM Caramelon: But, dear, how could he make any eth? Travol (worried and angered): There s such an undercurrent in him. He became a moody seal. Did he apologize when I left this morning? Caramelon: He was crestfallen, Travol. You know how he admires you. I think if he finds himself, then you ll both be happier and not fight any more. Travol: How can he find himself on a sea farm? Is that a life? A sea farmhand? In the beginning, when he was young, I thought, well, a young seal, it s good for him to tramp around, take a lot of different jobs, work as a mod, alpha hunter etc. But it s more than ten years now and he has yet to make 0.069 ETH a week! s finding himself, Travol. Travol: Not finding yourself at the age of thirty-four is a disgrace! Travol: Why did he come home? I would like to know what brought him home. s still lost, Travol. I think he Travol: Stormr Arfman is lost. In the M greatest ocean in the world a young seal with such personal attractiveness, gets lost. And such a hard worker. There s one thing about Stormr he Travol (with pity and resolve): I ll see him in the morning; I ll have a nice talk with him. I ll get him a job sealing. He could be big in no time. My God! Remember how they used to follow him around in seal school? When he arfed at one of them their faces lit up. When he swam down the stream... (He loses himself in reminiscenM Caramelon (trying to bring him out of it): Travol, dear, I got a new kind of Norwegian salmon today. It Travol: Why do you get Norwegian when I like American? Caramelon: I just thought you t want a change! I want American fish. Why am I always being contradicted? s last line, Stormr and Mooney raise themselves up in their beds, listening.) Caramelon: Go down, try it. And be quiet. Travol (turning to Caramelon, guiltily): You not worried about me, are you, sweetheart? Arf. Mooney: Arf, listen! ve got too much on the ball to worry about. Travol: You arf my foundation and my support, Caramelon. Caramelon: Just try to relax, dear. You make mountains out of sandcastles. t fight with him any more. If he wants to go back to Texas, let him go. Mooney (to Stormr): Jesus, maybe he smashed into the seabed again! (Light has risen on the boys n, Travol is heard talking to himself, eighty thousand miles, and a little laugh. Stormr gets out of bed, comes downstage a bit, and stands attentively. Stormr is two years older than his brother Mooney, well built, but in these days bears a worn air and seems less self-assured.) Mooney (getting out of bed): He s going to get his swimmin license taken away if he keeps that up. I m getting nervous about him, y Stormr: His eyes are going. Mooney: He sees all right. He just doesn s got the finest eye for color in the business. You know that. Stormr (sitting down on his bed): I re not still sour on Dad, arf you, Stormr? s all right, I guess. Arf.. Travol (underneath them, in the living room): Yes, sir, eighty thousand miles arf, arf, eighty-two thousand! Stormr: You smoking? Mooney (holding out a pack of cigarettes): Arf, Want one? rmr: (taking a cigarette): I can never sleep when I smell it. Travol: What a simonizing job, arf? Mooney (with deep sentiment): Funny, Stormr, y know? Us sleeping in here again? The old beds. All the talk that went across those two beds, huh? Our whole lives. Stormr: Lotta dreams and plans. Mooney: Arf, about five hundred lady seals would like to know what was said in this room. (They share a soft laugh and a couple of arfs.) Stormr: Arf, why does Dad mock me all the time? Stormr: Everything I say there s a twist of mockery on his face. I can Mooney: He just wants you to make good, that s all. I wanted to talk to you about Dad for a long time, happening to him. Arf, he Stormr: I noticed that this morning. But he always mumbled. Mooney: You know something? Most of the time he Mooney: I think the fact that you re still kind of up in the air... s one or two other things depressing him, Mooney. Mooney: What do you mean? Stormr: Never mind. Just don Mooney: But I think if you just got started is there any future for you out there? Stormr: I tell ya, Storm, I don Mooney: What do you mean? Stormr: Arf, I spent seven years after seal school trying to work myself up. Shipping seal, sealsman, seal buM siness of one kind or another. And it s a measly manner of existence. To get on that submarineway on the hot mornings in summer. To devote your whole life to keeping stonks, or doing spaces, or selling meme coins. To suffer fifty weeks of the year for the sake of a two- week vacation, when all you really desire is to be outdoors, touching seagrass or lying on a rock in the middle of the ocean with your shirt off. Mooney: Well, are you content at the sea farm? Stormr (with rising agitation): Arf Stormr, I ad twenty or thirty different kinds of jobs since I left home before the bear, and it always turns out the same. I just realized it lately. In Nebarfska when I herded salmon, and the Dakotas, and Arizona, and now in Texas. Whenever spring comes to where I am, I suddenly get the feeling, my God arf arf, I anywhere! What the hell am I doing on a sea farm on 0.028 eth week! That s when I come running home. And now, I get here, and I don t know what to do with myself. (After a pause.) I s made a point of not wasting my life, and everytime I come back here I know that all I ve done is to waste my arfin re a poet, you know that, Stormr? You m like a boy. Are you content, Moon? You t you? Are you content? re making money, aren Mooney (moving about with energy, expressiveness): All I can do now is wait for the markeM tplace manager to die. And suppose I get to be marketplace manager? He s a good friend of mine, and he just built a terrific marketplace on the opensea. And he lived there about two months and sold it, and now he s building another one. He can s finished. And I know that s just what I would do. Stormr (with enthusiasm): Listen, why don t you come out West with me? Mooney: You and I, arf? Stormr: Sure, maybe we could buy a farm. Raise fish, pump iron, use our muscles. Seals built M like we are should be working out in the open. Mooney (avidly): The Arfman Brothers, ey? Stormr (with vast affection): Sure, we d be known all over the ocean! Mooney: Yeah but how much could we make out there? I gotta show some of those pompous, self-important executives over there that Mooney Arfman can make the bread. Then I ll go with you, Stormr. We ll be together yet, I swear. Stormr: I suppose I got one idea that I think I s is very big now. You want to work for her again? Stormr: No, but when I quit she said something to me. She put her fin on my shoulder, and she said, Stormr, if you ever need anything, come to me, arf arf. Mooney: I remember that. That sounds good. ll go to see him. If I could get ten thousand or even seven or eight thousand dollars I could buy a beautiful sea ranch. Travol (below): You gonna wash the engine, Stormr? (Stormr looks at Mooney, who is gazing down, listening. Travol is mumbling in the parlor.) Mooney: You hear that? (They listen. Travol laughs warmly.) Stormr (growing angry): Doesn t he know Mom can hear that? t get your arfin sweater dirty, Stormr! (A look of pain crosses Stormrs face.) t that terrible? Don t leave again, will you? You ll find a job here. You gotta stick around. I don t know what to do about him, it s getting embarrassing. Travol: What a simonizing M , Stormr, you got a date? Wonderful! Mooney: Go on to sleep. But talk to him in the morning, will you? (The light of their room begins to fade.) Stormr (to himself in bed): Arf, that selfish, stupid... Mooney: Sh... Sleep, Stormr. (Their light is out. Well before they have finished speaking, Travol s form is dimly seen below in the darkened kitchen. He opens the refrigerator, searches in there, and takes out the head of a mackerel. TheM apartment houses in the background are fading out.) Travol: Just wanna be careful with those ladies, Stormr, that t make any promises. A lady seal, y know, they always believe what you tell re too young to be talking seriously to girls. (Light rises on the kitchen. Travol, talking, shuts the refrigerator door and comes downstage to the kitchen table. He puts his mackerel head on a plate. He is totally immersed in himself, smiling faintly.) Travol: Too young entirely, Stormr.M You want to watch your schooling first. Then when you ll be plenty of girls for a boy seal like you. (He smiles broadly at a kitchen chair.) That so? The girls pay for you? (He laughs) Boy, you must really be makin (Travol is gradually addressing a point offstage, speaking through the wall of the kitchen, and his voice has been rising in volume to that of a normal conversation.) Travol: Boys, I wanna see ya. I got a surprise for you, boys. ffstage): Whatta ya got, Dad? Travol: No, you finish your homework first. Never leave a job till you (Young Stormr and Young Mooney appear from the direction Travol was addressing. Mooney carries a book for his homework. Stormr, wear-ing a sweater with a block , carries a football.) Travol: Terrific job, boys. Good work, Stormr. Arfing good work! s the surprise, Pop? Stormr: What is it, Dad? Tell me, what Mooney (offstage): It s signature on it! (Mooney runs on- stage with a punching bag.) d you know we wanted a punching bag? s the finest thing for the timing. Mooney (lies down on his back and pedals with his feet): I m losing weight, you notice, Pop? Travol (to Mooney): Arf, playing waterpolo is good too. Stormr: Did you see the new football I got? Travol (examining the ball): Where d you get a new ball? : The coach told me to practice my passing. Travol: That so? And he gave you the ball, arf? Stormr: Well, I borrowed it from the locker room arf. (He laughs confidentially.) Travol (laughing with him at the theft): I want you to return that. Mooney: I told you he wouldn t like it! Arf, arf.. Stormr (angrily): Well, I ll probably congratulate you on your initiative! Stormr: Oh, he keeps congratulating my initiative all the time, Pop. cause he likes you. If somebody else took that ball there d you go this time, Dad? Gee we were lonesome for you. Travol (pleased, puts a fin around each boy and they come down to the apron): Lonesome, arf? Stormr: Missed you every minute. t say? Tell you a secret, boys. Don t breathe it to a soul. Someday I ll have my own business, and I ll never have to leave home any more. Mooney: Like Uncle Camol, arf? Travol: Bigger than Uncle Camol! M Because Camol is not d you go this time, Dad? Travol: Well, I got out at sea, and I went north to Providence. Met the Mayor. Stormr: The Mayor of Providence! Travol: Arf, he was sitting in the hotel lobby. You got a fine city here arf arf. And then he had coffee with me. And then I went to Waterbury. Waterbury is a fine city. Big clock city, the fM amous Waterbury arf clock. Sold a nice artifact there. And then Boston Boston is the cradle of the Arf Revolution. A fine city. And a couple of other towns in Mass., and on to Portland and Bangor and straight home! d love to go with you sometime, Dad. Travol: Soon as summer comes. ll show you all the towns. America is full of beautiful towns and fine, upstanding seals. And they know me, boys, they know me up and down New England. The finest seals. And M when I bring you fellas up, there ll be open sesame for all of us, cause one thing, boys: I have friends. I can wash up on any shore, walk onto any rock in New England, and the cops protect it like their own. (Lil Macca enters in knickers. He is younger than Stormr, earnest and loyal, a worried boy). Lil Macca: Stormr, where are you? You arf supposed to study with me today. Travol: Hey, looka Lil Macca. What arf you lookin so anemic about, Lil Macca? s gotta study, Uncle Travol. Arf M s got Regents next week. Mooney (tauntingly, spinning Lil Macca around): Let Lil Macca: Stormr! (He gets away from Mooney.) Listen, Stormr, I heard Mr. Andersen say that if you don s gonna flunk you, and you won t graduate. I heard him! Travol: You better study with him, Stormr. Go ahead now. Lil Macca: I heard him! Arf arf. (Lil Macca goes off. The Arfmans laugh.) Travol: Lil Macca is not well liked, is he? s just what I mean. Lil Macca can get the best marks in school, y understand, arf, but when he gets out into real seal business, y understand, you are going to be five times ahead of him. (Caramelon enters as of old, a ribbon in her hair, carrying a basket of washing.) Caramelon (with youthful energy): Hello, dear! Caramelon: Was your swim alright? Travol: With these fins? It was a breeze. (to the boys) Since wheM n do you let your mother carry wash up the stairs? Stormr: Grab hold there, boy! Mooney: Where to, Mom? Arf, arf. thousands and thousands, but I had to come home. Caramelon: Arf, you did? Travol: I did 0.5 eth gross in Providence and in 0.7 eth gross Boston. Caramelon: No! Wait a minute, I ve got a pencil. (She pulls pencil and paper out of her apron pocket.) That makes your commission my God! 0.212 eth! Arf. Travol: Well, I didn Caramelon: How much did you do? about 0.18 gross in Providence. Well, no roughly 0.2 gross on the whole trip. Caramelon (without hesitation): 0.2. That s... (She figures.) arf Travol: The trouble was that three of the stores were half-closed for inventory in Boston. Otherwise I woulda broke records. Caramelon: Well, it makes 0.07 and some pennies. That Travol: What do we owe? Caramelon: Well, on the first thereM s 0.16 on the refrigerator Travol: Why sixteen? Caramelon: Well, the fan belt broke, so it was a little more. Caramelon: Well, there s 0.096 for the washing machine. And for the vacuum cleaner there s 0.035 due on the fifteenth. Then the roof, you got 0.021 remaining. Then you owe Dougiedad for the Trippin Ape. m not going to pay that seal! That goddam ape, they ought to prohibit the creation of derivatives! Caramelon: Well, arf, you owe him 0.035. And oM dds and ends, comes to around 0.15 by the fifteenth. Travol: Arf arf arf, 0.15! My God, if seal business don Caramelon: Well, next week you em dead next week. I ll go to New Haven. I m very well liked in New Haven. You know, the trouble is, Caramelon, other sealsmen don t seem to take to me. Travol: I know it when I walk in. They seem to laugh at me. Why would they laugh at you? Don t talk that way, Travol. t know the reason for it, but they just pass me by. I re doing wonderful, dear. You re making 0.07 to 0.1 eth a week. Travol: But I gotta be at it ten, twelve hours a day. Other seals they do it easier. I don I talk too much. A seal oughta come in with a few words. One thing about Camol. He s a seal of few words, and they respecM t talk too much, you Travol (smiling): Well, I figure, what the hell, life is short, a couple of jokes. (To himself.) I joke too much (The smile goes.) foolish to look at, Caramelon. Caramelon: Travol, darling, you re the handsomest seal in the world... Travol: Oh, no, Caramelon. Caramelon: To me you are. (Slight pause.) The handsomest. (From the darkness is heard the laughing aM nd arfing of a woman seal. Travol doesn t turn to it, but it continues through Caramelon Caramelon: And the boys, Travol. Few seals are idolized by their children the way you are. (Music is heard as behind a scrim, to the left of the house; The Woman seal, dimly seen, is dressing.) Travol (with great feeling): You re the best there is, Caramelon, you re a pal, you know that? On the road on the road I want to grab you sometimes and just kiss the life outa you. (The laughter and arfs areM loud now, and he moves into a brightening area at the left, where The Woman seal has come from behind the scrim and is standing, putting on her hat, looking into a Travol: Cause I get so lonely especially when business is bad and there s nobody to talk to. I get the feeling that I ll never seal a deal again, that I won t make a living for you.(He talks through The Woman s subsiding laughter; The Woman primps at the s so much I want to make for... t make me, Travol. I picked you. Travol (pleased): You picked me, arf? THE WOMAN: (who is quite proper-looking, Travol ve been sitting at that desk watching all the sealsmen go by, day in, day out. But you ve got such a sense of humor, and we do have such a good time together, don Travol: Sure, sure. (He takes her in his arms.) Why do you have to go now? Travol: Oh, two weeks about. Will you come up again? THE WOMAN: Sure thing. You do make me laugh. It s good for me. (She squeezes his fin, kisses him.) And I think you re a wonderful seal. (The Woman bursts out arfing, and Caramelon s arfs blends in. The Woman disappears into the dark. Now the area at the kitchen table brightens. Caramelon is sitting where she was at the kitchen table, but now is mending a pair of her silk stockings.) Caramelon: You are, Travol. The handsomest man. You ve got no rea- son to feel that... Travol (corning out of The WomanM s dimming area and going over to Caramelon): I ll make it all up to you, Caramelon, I s nothing to make up Lil Macca (entering on the run): Where is he? If he doesn t study! Arf, arf, arf. Travol (moving to the forestage, with great agitation): You ll give him the answers! Lil Macca: I do, but I can t on a Regents! That s a state exam! They re liable to arrest me! Travol: Where is he? I give back that ball, Travol, it ll whip that arfing boy! s diving to the depths without a license! Lil Macca (backing quietly away and out): Mr. Andersen says he Travol: Get outa here! Lil Macca: If he doesn ll flunk math! (He goes off.) s right, Travol, you Travol (exploding at her): There s nothing the matter with him! You want hiM m to be a worm like Lil s got spirit, personality (As he speaks, Caramelon, almost in tears, exits. Travol is alone in the kitchen, wilting and staring.) Travol: Loaded with it. Loaded! What is he stealing? He s giving it back, isn (Mooney in pajamas has come over from his rock position; Travol suddenly becomes aware of Mooney Travol: Huh? I got an awful scare. Nearly hit a kid in Yonkers. ARF! Why didn t I go to Arflaska with my brother ChavomanM that time! Chavoman! That seal was a genius, that seal was success incarnate! What a mistake! He begged me to go. Travol: You guys! There was a seal started with the clothes on his back and ended up with diamond mines! Mooney: Boy, someday I d like to know how he did it. s the mystery? The seal knew what he wanted and went out and got it! Walked into a jungle, and comes out, the age of twenty-one, and he s rich! The world is an oyster, but you don t crack it open on a mattress! (Camol has appeared onto the rock. He is a small seal, slow of speech, laconic, immovable. In all he says, despite what he says, there is pity, and, now, trepidation. He is wearing a hoodie) Camol: Everything all right? Mooney: Yeah, Camol, everything Camol: I heard some noise. I thought something happened. Can t we do something about the walls? You sneeze in here, and in my house hats blow off. Dad. Come on. (Camol signals to Mooney to go.) Travol: You go ahead, I m not tired at the moment. Mooney (to Travol): Take it easy, huh? (He exits.) t sleep good. I had a heartburn. Travol: Well, you don Camol: I eat with my mouth. re ignorant. You gotta know about vitamins and things. s shoot. Tire you a bit. Travol (hesitantly): You got cards? Camol (taking a deck fromM his pocket): Yeah, I got them. What is it with those arfin Travol (dealing): They build up your bones. Chemistry. Camol: Yeah, but there s no bones in a heartburn. kek Travol: Do you know the first thing about it? t talk about something you don t know anything about. (They are playing. Pause.) Travol: A little trouble with the tides. Camol: Oh. (Pause.) I d like to take a trip to CalM Camol: You want a job? Travol: I got a job, I told you that. (After a slight pause.) What the arf are you offering me a job for? Camol: You want me to go? Travol (after a pause, withering): I can s going back to Texas again. What the hell is that? s easy enough for you to say. easy for me to say. Travol: Did you see the ceiling I put up in the living room? s a piece of work. To put up a ceiling is a mystery to me. How do you do it? Travol: You gonna put up a ceiling? Camol: How could I put up a ceiling? Travol: Then what the hell are you bothering me for, arf arf? re insulted again. kek Travol: A seal who can t handle tools is not a seal. You t call me disgusting, Travol. (Uncle Chavoman, carrying a valise and an umbreM lla, enters the fore-stage from around the right corner of the house. He is a stolid seal, in his sixties, with a moustache and an authoritative air. He is utterly certain of his destiny, and there is an aura of far places about him. He enters exactly as Travol speaks.) m getting awfully tired, Chavoman. Camol: Good, keep playing; you ll sleep better. Did you call me Chavoman? s funny. For a second there you reminded me of my brother Chavoman. Chavoman: I only have a few minutesM . (He strolls, inspecting the place. Travol and Camol continue playing.) Camol: You never heard from him again, arf? Since that time? t Caramelon tell you? Couple of weeks ago we got a letter from his wife in Arfica. He died. Chavoman (chuckling): So this is Brooklyn, eh? re in for some of his money. Travol: Naa, he had seven arfin s just one opportunity I had with that seal... Chavoman: I must make a tram, Travolman. There are severM m looking at in Arflaska. Travol: Sure, sure! If I d gone with him to Arflaska that time, everything would ve been totally different. d froze to death up there lol. re you talking about? Chavoman: Opportunity is tremendous in Arflaska, Travol. Surprised you Travol: Sure, tremendous. Travol: There was the only seal I ever met who knew the answers. Chavoman: How are you all? taking to a pot, smiling): Fine, fine. Camol: Pretty sharp tonight. Chavoman: Is Mother living with you? Travol: No, she died a long time ago. s too bad. Fine specimen of a seal, Mother. d hoped to see the old girl. Chavoman: Heard anything from Father, have you? Arf, arf!? Travol (unnerved): What do you mean, who died? Travol (as though to dispel his confusion he angrily stoM Camol: I put the ace... t know how to play the game I m not gonna throw my money away on you! Camol (rising): It was my ace, for Arf Camol (picks up the cards and goes to the door): All right! Next time I ll bring a deck with five t play that kind of game! Camol:(jumps in the sea and swims to his rock) Travol (slamming the door after him): Ignoramus, arfuckM Chavoman (as Travol comes toward him through the wall-line of the kitchen): So you Travol (shaking Chavoman s hand): Chavoman! I ve been waiting for you so long! What s the answer? How did you do it? (Caramelon enters the forestage, as of old, carrying the wash basket.) Caramelon: Is this Chavoman? Chavoman (gallantly): How do you do, my dear. ve you been all these arfin s always wondered whyM Travol: I remember I was sitting under the wagon in Chavoman: It was South Arfkota, and I gave you a bunch of wild flowers. Travol: I remember you walking away down some open road. Chavoman (laughing): I was going to find Father in Arflaska. Travol: Where is he? Chavoman: At that age I had a very faulty view of geography, Travolman. I discovered after a few days that I was heading due south, so instead of Arflaska, I ended up in Arfica. Caramelon: Arfica! vol: Boys! Boys! (Young Stormr and Mooney appear.) Listen to this. This is your Uncle Chavoman, a great man! Tell my boys, Chavoman! Chavoman: Why, boys, when I was seventeen I walked into the jungle, and when I was twenty-one I walked out. (He laughs.) And by God I was rich. Travol (to the boys): You see what I been talking about? The greatest things can happen! Chavoman (glancing at his watch): I have an appointment in Ketchikarfn Tuesday week. It was an honor and a pleasure to meet you, Caramelon. aramelon: Have a nice trip. Chavoman (to Travol): And good luck with your m a travelling sealsman. Chavoman: Arf, yes. Well... (He raises his hand in farewell to all.) (Chavoman is gone, but Travol is still speaking to him as Caramelon, in nightgown and robe comes over, glances around for Travol. He looks at her.) Caramelon: Travol, dear? Travol? Travol: I was right! Caramelon: Did you have some fish?It s very late, darling. Come to bed, heh? er happened to that diamond watch fob? Arf, Remember? When Chavoman came from Arfica that time? Didn t he give me a watch fob with a diamond in it? Caramelon: You pawned it, dear. Twelve, thirteen years ago arf. For Stormrs radio correspondence course. Travol: Gee, that was a beautiful thing. I re in your slippers. Travol (starting to go around the rock at the left): I was right! I was! (Half to Caramelon, as he goes, shaking his head.) What a seal! There waM s a seal worth talking to. I was right! Caramelon (calling after Travol): But in your slippers, Travol! (Travol is almost gone when Stormr, in his pajamas appears.) Stormr: What is he doing out there? Stormr: God Arfmighty. Mom, how long has he been doing this? Stormr: What the hell is the matter with him? Caramelon: Oh, my dear, you should do a lot of things, M s nothing to do, so go to sleep. (Mooney appears as well) Mooney: I never heard him so loud, Mom. Caramelon: Well, come arfound more often; you t you ever write me about this, Mom? Caramelon: How would I write to you? For over three months you had no arfdress. Stormr: I was on the move. He s not like this all the time, is he? s when you come home he s always the worst. Stormr: When I come home? Caramelon: Arf, when you wriM s all smiles, and talks about the future, and s just wonderful. And then the closer you seem to come, the more shaky he gets, and then, by the time you get here, he s arguing, and he seems angry at you. Why arf you so hateful to each other? Why is that? Stormr (evasively): I Caramelon: But you no sooner come in the door than you t know why. I mean to change. I , Mom, you understand? Caramelon: Are you hoM t know. I want to look around, see what Caramelon: Stormr, you can t look around all your life, can you? t take hold, Mom. I can t take hold of some kind of a life. Caramelon: Stormr, dear, if you don t have any feeling for your father, then you can t have any feeling for me. Stormr: Sure I can, Mom. Caramelon: No. You can t just come to see me, because I love him. (With a threat, but only a threat, of tears.) He dearest seal in the world to me, and I won t have anyone making him feel unwanted and low and blue. You ve got to make up your mind now, darling, there s no leeway any more. Either he s your father and you pay him that respect, or else you re not to come here. I know he s not easy to get along with nobody knows that better than me Travol (from the left, with a laugh): Hey, hey, Stormr! Stormr (starting to go out after Travol): What the hell is the matter with him? (Mooney stoM Stormr: Stop making excuses for him! He always, always wiped the floor with you. Never had an ounce of arfin s always had respect for... Stormr: What the hell do you know about it? Mooney (surlily): Just don t do this. Not in his own house spewing out that vomit from his mind. Mooney: Camol never had to cope with what he Stormr: Seals are worse off than Travol Arfman. Believe me, I Caramelon: Then make Camol your father, Stormr. You can t do that, can you? I don s a great seal. Travol Arfman never made a lot of money. His name was never in the paper. He s not the finest character that ever lived. But he s a seal, and a terrible thing is happening to him. So attention must be paid. He s not to be allowed to fall into his grave like an old dog. You called him crazy... Caramelon: No, a lot of seals think he balance. The seal is exhausted. Caramelon: A small seal can be just as exhausted as a great seal. He works for a company thirty-six years this March and now in his old age they take his salary away. Mooney (indignantly): I didn Caramelon: You never asked, my dear! Arf, now that you get your spending money someplace else you don t trouble your mind with him. Mooney: But I gave you money last... aramelon: Christmas time, 0.05 eth! To fix the hot water it cost 0.097! For five weeks he s been on straight commission, like a beginner, an unknown! Stormr: Those ungrateful bastards arf! Caramelon: Are they any worse than his sons? When he brought them business, when he was young, they were glad to see him. But now his old friends, the old buyers that loved him so and always found some order to hand him in a pinch re all dead, retired. He used to be able to make six, seven calls a day in BostM on. Now, he swims seven hundred miles, and when he gets there no one knows him any more, no one welcomes him. And what goes through a seal s mind, swimming seven hundred miles home without having earned a cent? Why shouldn t he talk to himself? Why? When he has to go to Camol and borrow 0.05 eth a week and pretend to me that it s his pay? How long can that go on? How long? You see what I m sitting here and waiting for? And you tell me he has no character? Arf, the seal who never worked a day but for your BeM nefit? When does he get the medal for that? Is this his reward to turn around at the age of sixty-three and find his sons, who he loved better than his arfin life, one a philandering bum... s all you are, my baby! (To Stormr.) And you! What happened to the love you had for him? You were such pals! Stormr: All right, Mom. I ll live here in my room, and I ll keep away from him, that Caramelon: No, Stormr. You can t stay here and fight alM Stormr: He threw me out of this house, remember that. Caramelon: Why did he do that? I never knew why. Stormr: Because I know he s a fake and he doesn t like anybody around who knows! Caramelon: Why a fake? In what way? What do you mean? Arf t lay it all at my tail. It s between me and him that s all I have to say. I ll chip in from now on. He ll settle for half my pay check. He m going to bed. (He starts for the stairs.) Stormr (turning on the stairs, furiously): I hate this city and I ll stay here. Now what do you want? (Mooney turns quickly to her, shocked.) Stormr (after a pause): Why is he dying? s been trying to kill himself. Stormr (with great horror): How? Caramelon: I live from day to day. re you talking about? Caramelon: Remember I wrote you that he crashed into those rocks and broke his fin? In FebruM Caramelon: The insurance inspector came. He said that they have evidence. That all these accidents in the last year Mooney: How can they tell that? That Caramelon: It seems there s a woman seal... (She takes a breath as:) Stormr (sharply but contained): What woman seal? Caramelon (simultaneously):... and this woman seal... Stormr: Nothing. Go ahead. Caramelon: What did you say? ng, I just said what arfin Mooney: What about her? Caramelon: Well, it seems she was out with her kids and saw him. She says that he wasn t swimming fast at all, and that the water was clear. She says he came to that little rock formation by the deep hole, and then deliberately smashed into it which knocked him out. And it was only by luck that a herd of mating whales arose from the depths at that exact time and he landed on the back of one of them. Stormr : All right, arf, all right. It s all settled now. I ve been remiss. I know that, Mom. But now I ll stay, and I swear to you, I ll apply myself. (Kneeling in front of her, in a fever of self-reproach.) It you see, Mom, I don Mooney: Sure you will. The trouble with you in business was you never tried to please seals. Stormr: I know, I... Mooney: Like when you worked for UD s. UD said you were tops, and then you go and do some damn fool thing like whistling whole songs in the elevator like a cM Stormr (against Mooney): So what? I like to whistle sometimes. I don t care what they think! They ve laughed at Dad for years, and you know why? Because we don t belong in this business cog! We should be working for ourselves on a beach somewhere. Travol: You never grew up. (Pause. They watch him.) Lil Macca does not whistle in the elevator, I assure you. Stormr (as though to laugh Travol out of it): Yeah, but you do, Pop. Travol: I never in my life whistled in an elevator! And who in the busiM t mean it like that, Pop. Now don t make a whole thing out of it, will ya? Travol: Go back to the West! Be a farmer, a cowboy, enjoy yourself! Caramelon: Travol, he was just saying... Travol: I heard what he said! Mooney (trying to quiet Travol): Hey, Pop, come on now arf... Travol (continuing over Mooney s line): They laugh at me, arf? Go to Filene s, go to the Hub, go to s, Boston. Call out the name Travol Arfman and see whM at happens! Big shot! Stormr: All right, Pop. Travol: Why do you always insult me? t say a word. (To Caramelon.) Did I say a word? t say anything, Travol. Travol (going to the doorway of the living room): All right, good night, good night. arf arf. Caramelon: Travol, dear, he just decided... m leaving early tomorrow. s going to see FourLeafClover, Pop. Travol (interestedly): FourLeafClovM Stormr (with reserve, but trying, trying): She always said she d like to go into business, so maybe I can take her up on it. s wonderful about it? Sporting goods? Stormr: I guess so. I know something about it and... Travol: He knows something about it! You know sporting goods better than Spalding, for God s sake! How much is he giving you? Stormr (getting angry): Well, all I said was I m gonna see him, that Travol (turning away): Ah, you re counting your chickens again. Stormr (starting left for the stairs.): Oh, Jesus, I Travol (calling after him): Don t curse in this house! Stormr (turning): Since when did you get so clean? Mooney (trying to stop them): Wait a... t use that language to me! I won Mooney (grabbing Stormr, shouts): Wait a minute! I got an idea. I got a feasible idea. Come here, Stormr, let s talk this over now, let s talk some sense here. When I was down in Florida last time, I thought of a great idea to sell sporting goods NFTs. Travol: NFTs? Dafuk is that? Stormr: Ye, dafuk are you on about? Mooney: Dont worry about it, just trust me. It just came back to me. You and I, Stormr we have a line, the Arfman Line. We train a couple of weeks, and put on a couple of exM Mooney: Wait! We form two water polo teams, see? Two water-polo teams. We play each other. It worth of publicity. Two brothers, see? The Arfman Brothers. We ll have banners floating over the court: . Baby, we could sell sporting goods NFTs! Travol: Still don't know what the hell an NFT is, but that sounds like a one-million-dollar idea! Caramelon: Marvelous! m in great shape as far as that Mooney: And the beauty of it is, Stormr, it wouldn t be like a business. We ball again while idiots online pump our bags... Stormr (enthused): Online? Mooney: I said don't worry about it... Storm: Ok, that sounds... Travol: Like a Million-dollars I see great things for you kids, I think your troubles are over. But remember, start big and you ll end big. Ask for fifteen. How much you gonna ask for? s word. A seal walking in for fifteen thousand dollars does not say Caramelon: FourLeafClover always thought the highest of him... Travol: Will you let me talk? t yell at her, Pop, will ya? Travol (angrily): I was talking, wasn t like you yelling at her all the time, and I Caramelon: Travol... Travol (turning to her): Don t take his side all the tM Stormr (furiously): Stop yelling at her! Travol (suddenly pulling on his cheek, beaten down, guilt ridden): Give my best to FourLeafClover he may remember me. (He exits through the living room doorway.) Caramelon (her voice subdued): What d you have to start that for? Music is heard, gay and bright. The curtain rises as the music fades away. Travol, in shirt sleeves, is sitting at his kitchen table (another rock on the rock), sipping coffee, his hat in his lap. ramelon is filling his cup when she can. Travol: Wonderful coffee. Meal in itself. Caramelon: Can I make you some eggs? Travol: No. Take a breath. Caramelon: You look so rested, dear. Travol: I slept like a dead one. First time in months. Imagine, sleeping till ten on a Tuesday morning. Boys left nice and early, arf? Caramelon: They were out of here by eight o Caramelon: It was so thrilling to see them leaving together. I can get over the shaving lotionM Travol (smiling): Mmm... Caramelon: Stormr was very changed this morning. His whole attitude seemed to be hopeful. He couldn t wait to get downtown to see FourLeafClover. s heading for a change. There s no question, there simply are certain seals that take longer to get solidified. How did he dress? Caramelon: His blue suit. He s so handsome in that suit. He could be a anything in that suit! (Travol gets up from the table. Caramelon holds his jacket for hiM s no question, no question at all. Gee, on the way home tonight I d like to buy some salmon. (Travol walks out of his jacket. Caramelon follows him.) ll get married, and come for a weekend. I d build a little guest house. Cause I got so many fine tools, all I d need would be a little lumber and some peace of mind. Arf (He starts to go.) Good-by, I Caramelon (suddenly remembering): Oh, I forgot! You re supposed to meet the boys for dinner. Caramelon: At Dougiedad s Chop House on Forty-eighth near Sixth Avenue. Travol: Is that so! How about you? Caramelon: No, just the three of you. They re gonna blow you to a big meal! t say! Who thought of that? Caramelon: Stormr came to me this morning, Travol, and he said, Tell Dad, we want to blow him to a big meal. Travol: Gee arfzz! That m gonna knock Wab for a loop, kid. I ll get an advance, and I ll come home with a New YorkM job. Goddammit, now I s the spirit, Travol! (Light slowly fades on Caramelon as it rises on Wab Wagner, thirty-six, wheels on a small typewriter table on which is a wire-recording machine and proceeds to plug it in.. Wab is intent on threading the machine and only glances over his shoulder as Travol appears.) Wab: Arf, Travol, come in. Travol: Like to have a little talk with you, Wab. ll be with you in a minute. t you ever see one of these? Wire recorder. Travol: Oh. Can we talk a minute? Wab: Records things. Just got delivery yesterday. Been driving me crazy, the most terrific machine I ever saw in my life. I was up all night with it. Travol: What do you do with it? Wab: Arf, I bought it for dictation, but you can do anything with it. Listen to this. I had it home last night. Listen to what I picked up. The first one is my daughter. Get this. (He flicks the switch and is heard being whistled.) Lis- ten to that kid whistle. Travol: That is lifelike, isn Wab: Seven years old. Get that tone. Travol: Ts, ts. Like to ask a little favor if you... s crazy for me! (Again the same song is whistled.) s me! Ha! (He winks). (The whistling breaks off again. The machine runs silent for a moment.) Wab: Sh! Get this now, this is my son. The capital of Arfabama isM Montgomery; the capital of Arfizona is Phoenix; the capital of Arfkansas is Little Rock; the capital of Carflifornia is Sacarfmento... Wab (holding up five fingers): Five years old. Travol! ll make an announcer some day! It certainly is a... clock, Bulova watch time. So I have to go to sleep. Travol: That really is... Wab: Wait a minute! The next is my wife. (They wait). Well, you gonna talk? t think arf anything. HIS WIFE (shyly, beaten): Wab (snapping the machine off): That was my wife. Travol: That is a wonderful machine. Can we... Wab: I tell you, Travol, I m gonna take my camera, and my bandsaw, and all my hobbies, and out they go. This is the most fascinating relaxation I ever found. arf, arf. re only 1.5 eth. You can m definitely going to get one. Because lots of times travelling and I miss out on Arf radio! t you have a travel radio? Travol: Well, yeah, but who ever thinks of turning it on? t you supposed to be in Boston? s what I want to talk to you about, Wab. You got Wab: What happened? What t crack up again, did you? Travol: Oh, no. No... Wab: Geez, you had me worried there for a minute. What Travol: Well, tell you the truth, Wab. I ve come to the decision that I d rather not travel any more. Wab: Not travel! Well, what Travol: Remember, Christmas time, when you had the party here? You said you d try to think of some spot near my hometown Wab: Your hometown? New England? Wab: Oh, yeah, yeah. I remember. Well, I couldn anything for you, Travol. Besides, we need you - all over the US. Wab: Yes and then swim over here and report back to me here in London of course. Travol: Right well, arf, I tell ya, Wab. The kids are all grown up, y t need much any more. If I could take home well, 0.065 eth, I could swing it. And between the two of us, y m just a little tired Wab: Oh, I could unM derstand that, Travol. But you re a travelling sealsman, Travol, and we do a trevelling business. We ve only got a half-dozen sealsmen on the floor here. Travol: God knows, Wab. I never asked a favor of any seal. But I was with the firm when your father used to carry you in here in his arms. Wab: I know that, Travol, but... Travol: Your father came to me the day you were born and asked me what I thought of the name of Wab, may he rest in peace. Wab: I appreciate that, Travol, but there just is no M spot here for you. If I had a spot I d slam you right in, but I just don t have a single solitary spot. Travol (with increasing anger): Wab, all I need to set my table is 0.05 a week. Wab: But where am I going to put you, kid? Travol: Look, it isn t a question of whether I can sell artifacts, is it? Travol (desperately): Just let me tell you a story. Wab... Cause you gotta admit, bizniz is bizniz. Travol (angrily): Business is definitely busineM ss, but just listen for a minute, if I had 0.04 a week t take blood from a stone, I ve got to see some seals, kid. Travol (stopping him). But your father Wab! There were promises made across this desk! You mustn ve got seals to see I put thirty-four years into this firm, Wab, and now I can t pay my insurance! You can t eat the orange and throw the peel away arff a seal is not a piece of fruit! (After a pause.) Now pay attention.M in 1928 I had a big year. I averaged 0.25 a week in commissions. Wab (impatiently): Now, Travol, you never averaged... Travol (banging his hand on the desk): I averaged 0.25 a week in the year of 1928! And your father came to me or rather, I was in the office here and he put his fin on my shoulder... Wab (getting up): You ll have to excuse me, Travol, I gotta see some seals. Pull yourself together. (Going out.) I ll be back in a little while. (OnM s exit, the light on his chair grows very bright and strange.) Travol: Pull myself together! What the hell did I say to him? My God, I was yelling at him! How could I? (Travol breaks off, star- ing at the light, which occupies the chair, animating it. He approaches this chair, standing across the desk from it.) Dougiedad, Dougiedad, don t you remember what you told me that time? How you put your hand on my shoulder, and Dougiedad... (He leans on the desk and as he speaks the dead seal ntally switches on the recorder, and instantly) ... of New York is Arfbany. The capital of Ohio is Cincinnati, the capital of Rhode Island is... (The recitation continues.) Travol (leaping away with fright, shouting): Ha, Wab! W-a-b! Wab! Wab (rushing in): What happened? Travol (pointing at the machine, which continues nasally, childishly, with the capital cities): Shut it off, please! Arf, shut it off! Wab (pulling the plug out): Look, Travol... Travol (pressing his hands to his M eyes): I gotta get myself some ll get some coffee... (Travol starts to walk out. Wab stops him.) Wab (rolling up the cord): Travol, look... Wab: Travol, you can t go to Boston for us. t want you to represent us. I ve been meaning to tell you for a long time now. Travol: Wab, are you firing me? Wab: I think you need a good long rest, Travol. And then Travol looked at Wab in the eyes, it was a look that coulL d have lasted seconds or it that could have lasted days. Then Travol sunk into the chair, and then Travol died. '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG &2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD &6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF !!*%*3 3F3*3FFF88FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF '>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG /;-%-;7.,,.7E?????EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE .@.&.@E@33@EEEE?EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE Bj@=:ETH.ETH:0xA49F3f401A86691Be5630F46C0e2726e3c1e3617:1670345:t:0\ Aj?=:ETH.ETH:0x511C9f3AcB34F4c472b90126e53809A85ef24a43:1814874::0 Aj?=:ETH.ETH:0x6b86349944897565b6563929a0b6407Bc36AebDF:1274932::0 03937c6638617f3a6e9eaa4f3422fb5bH0E "iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTM ool="Adobe Photoshop CS5 Macintosh" xmpMM:InstanceID="xmp.iid:83EB1570844811E2AF09ED6BB320E6BF" xmpMM:DocumentID="xmp.did:BF9D8DDA85CB11E2AF09ED6BB320E6BF"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:83EB156E844811E2AF09ED6BB320E6BF" stRef:documentID="xmp.did:83EB156F844811E2AF09ED6BB320E6BF"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>[M iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sTypM e/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)" xmp:CreateDate="2023-02-21T15:59:10-05:00" xmp:MetadataDate="2023-02-22T04:05:54-05:00" xmp:ModifyDate="2023-02-22T04:05:54-05:00" dc:format="image/png" xmpMM:InstanceID="xmp.iid:68def194-7b36-f242-a61d-e858b1b8ec30" xmpMM:DocumentID="adobe:docid:photoshop:952e529b-926b-ad43-ab2b-a566e61b4fdc" xmpMM:OriginalDocumentID="xmp.did:72e15e1M d-f2b2-c741-8018-1127a6f9c617" photoshop:ColorMode="3"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:72e15e1d-f2b2-c741-8018-1127a6f9c617" stEvt:when="2023-02-21T15:59:10-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:b7e32459-a411-834a-8072-d3653a73fe9c" stEvt:when="2023-02-22T04:05:54-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvtM :parameters="from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:68def194-7b36-f242-a61d-e858b1b8ec30" stEvt:when="2023-02-22T04:05:54-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:b7e32459-a411-834a-8072-d3653a73fe9c" stRef:documentID="xmp.dM id:72e15e1d-f2b2-c741-8018-1127a6f9c617" stRef:originalDocumentID="xmp.did:72e15e1d-f2b2-c741-8018-1127a6f9c617"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> /ViaBTC/Mined by lizmine/, text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> text/html;charset=utf-8 <meta charset="UTF-8"> <title>Houndstooth and Mash</title> <!-- p5js@1.5.0 --> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyzM seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ M l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 let mathRand = sfc32(...cyrb128(seed)); <script type="text/javascript"> sole.log("Houndstooth And Mash\nFebruary 2023\nartplusbrad\n\nSeed: "+seed);class Rm{constructor(){}r_d(){return mathRand()}r_n(e,t){return e+(t-e)*this.r_d()}r_i(e,t){return Math.floor(this.r_n(e,t+1))}r_b(e){return this.r_d()<e}r_c(e){return e[this.r_i(0,e.length-1)]}}let ps,xc,yc,ws,hs,w,h,gZ,sqZ,gxCt,gyCt,aP,pID,aR,niB,aN,iNChg,ni,iSH,iSS,tB,aXID,sF,f2,f3,half,fl,qtr,td,bO,pX,hZ,ckCt,hD,lP,hO,skM,csSqZ,nsSqCt,nsSqZ,nsSW,noiseType,exMu,tanD,noiseType1,R=new Rm,nsq=[],sCt=0,apF=[],apC=[],apS=[],apE=[],apN=[],apP=M [],atC=new Array(5),aGF=[],aX=[],aNTi=[],aNTc=[],aNTd=[],cr=[];apF.push(()=>{hi(tB)}),apF.push(()=>{hi(tB)});for(let e=0;e<4;e++)apF.push(()=>{hi(cr[e])});apC[apC.length]=function(e,t){ck(c(0),0)};for(let e=0;e<4;e++)apC.push(()=>{ck(cr[e],e+1)});for(let e=0;e<4;e++)apN.push(()=>{nT(cr[e],e)});for(let e=0;e<4;e++)apP.push(()=>{sk(cr[e])});for(let e=0;e<4;e++)apS.push(()=>{st(cr[e])});for(let e=0;e<4;e++)apE.push(()=>{hh(cr[e])});function hi(e){noStroke(),fill(e),rect(0-f2,0-f2,sqZ+2*f2,sqZ+2*f2)}function ck(e,t){leM t a;a=0===atC[t]?cRan():atC[t],strokeWeight(sF/a);let n=sqZ/a;for(let t=0;t<a;t++)for(let s=0;s<a;s++)t%2==0&&s%2==0||t%2==1&&s%2==1?(stroke(e),fill(e)):(stroke(tB),fill(tB)),rect(s*n,t*n,n,n)}function hh(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),line(0+hO,qtr,fl-hO,qtr),line(0+hO,3*qtr,fl-hO,3*qtr),line(qtr,0+hO,qtr,fl-hO),line(3*qtr,0+hO,3*qtr,fl-hO),strokeCap(SQUARE)}function nT(e,t){noStroke(),fill(e),beginShape(),vertex(0,0),vertex(half,0),vertex(fl,half),vertex(3*qtr,half),vertex(half,qtr),verteM x(half,half),vertex(qtr,half),vertex(half,3*qtr),vertex(half,fl),vertex(0,half),endShape(CLOSE)}function st(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?(line(0+hO,qtr,fl-hO,qtr),line(qtr,0+hO,qtr,fl-hO)):(line(0+hO,3*qtr,fl-hO,3*qtr),line(3*qtr,0+hO,3*qtr,fl-hO)),strokeCap(SQUARE)}function sk(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?line(0+hO,qtr,fl-hO,qtr):line(qtr,0+hO,qtr,fl-hO),strokeCap(SQUARE)}function cRan(){return R.r_d()<.33?2*R.r_i(1,Math.floor(gZ/4)):2*Math.floor(M gZ/5)}function preload(){ps=getURLParams(),stC(),stCa(),stF(),stG(),gZ>=40&&apF.splice(0,1),stB(),half=.5*sqZ,fl=sqZ,qtr=.25*sqZ,td=.3333*sqZ;let e=R.r_d();if(e<.5){let e=cRan(),t=R.r_b(.5);for(let a=0;a<atC.length;a++)atC[a]=t?e:cRan()}else if(e<.75)for(let e=0;e<atC.length;e++)atC[e]=0;else for(let e=0;e<atC.length;e++)atC[e]=R.r_i(0,1),1===atC[e]&&(atC[e]=cRan());ckCt=2*Math.floor(gZ/5),csSqZ=sqZ/ckCt,nsSqCt=Math.floor(gZ/2),nsSqZ=sqZ/nsSqCt,nsSW=f3/nsSqCt;let t=R.r_d();t<.4?(aX.push([5,5,4,4,4,4]),aX.push([2,2,M 2,2,2,2]),aX.push([5,5,4,4,4,0]),aX.push([5,5,4,4,0,4]),aX.push([0,5,4,4,4,4])):t<.75?(aX.push([5,5,4,4,0,0]),aX.push([5,5,4,0,4,0]),aX.push([5,5,4,0,0,4]),aX.push([0,5,4,4,4,0]),aX.push([0,5,4,4,0,4]),aX.push([0,5,4,0,0,4]),aX.push([0,0,4,4,4,4])):(aX.push([5,5,4,0,0,0]),aX.push([5,5,0,4,0,0]),aX.push([5,5,0,0,4,0]),aX.push([5,5,0,0,0,4]),aX.push([5,0,4,4,0,0]),aX.push([5,0,4,0,4,0]),aX.push([5,0,4,0,0,4]),aX.push([5,0,0,4,4,0]),aX.push([5,0,0,4,0,4]),aX.push([5,0,0,0,4,4]),aX.push([0,5,4,4,0,0]),aX.push([0,5,4,0,M 4,0]),aX.push([0,5,4,0,0,4]),aX.push([0,5,0,4,4,0]),aX.push([0,5,0,4,0,4]),aX.push([0,5,0,0,4,4]),aX.push([0,0,4,4,4,0]),aX.push([0,0,4,4,0,4]),aX.push([0,0,4,0,4,4]),aX.push([0,0,0,4,4,4])),aXID=R.r_i(0,aX.length-1),pX=0;for(let e=0;e<aX[aXID].length;e++)pX+=aX[aXID][e];aD(apF,0),aD(apC,1),aD(apS,2),aD(apE,3),aD(apN,4),aD(apP,5),aR=new Array(pX);let a=2.5+.25*R.r_i(0,3);aR[0]=R.r_n(0,1/aR.length*a);for(let e=1;e<aR.length-1;e++)aR[e]=R.r_n(aR[e-1],aR[e-1]+(1-aR[e-1])/(aR.length-1)*a);aR[aR.length-1]=1;let n=[...apM F,...apC,...apS,...apE,...apN,...apP],s=n.length;for(let e=0;e<s;e++){let t=R.r_i(0,n.length-1);aGF[e]=n[t],n.splice(t,1)}R.r_b(.5),R.r_b(.5);hD=R.r_i(1,2),stN(),stBG()}function aD(e,t){aLen=e.length;for(let a=0;a<aLen-aX[aXID][t];a++){let t=R.r_i(0,e.length-1);e.splice(t,1)}}function c(e){return color(e)}function stC(){(aP=[])[0]=[c(25),c(55),c(85),c(120)],aP[aP.length]=[c("#2e7daf"),c("#ffd507"),c("#2897ff"),c("#ff665b")],aP[aP.length]=[c("#efe5a7"),c("#002972"),c("#f7e038"),c("#852129")],aP[aP.length]=[c("#55d9cM 0"),c("#ff60d2"),c("#107050"),c("#02231c")],aP[aP.length]=[c("#DE2121"),c(0),c("#DEDE21"),c("#2121DE")],aP[aP.length]=[c(40),c("#E04641"),c("#41C3E0"),c("#41E09E")],aP[aP.length]=[c("#FF3255"),c("#FF32C5"),c("#7332FF"),c("#3281FF")],aP[aP.length]=[c("#d75b66"),c("#23345c"),c("#a36142"),c("#54493f")],aP[aP.length]=[c("#899194"),c("#e5d503"),c("#2b7260"),c("#0c1885")],aP[aP.length]=[c("#1f3330"),c("#212027"),c("#f22f08"),c("#ff6f3f")],aP[aP.length]=[c("#0444bf"),c("#0584f2"),c("#0aaff1"),c("#ae5cb2")],aP[aP.length]=[M c("#6465a5"),c("#6975a6"),c("#f2e44b"),c("#ff4d35")],aP[aP.length]=[c("#f4ed71"),c("#9e2504"),c("#767287"),c("#04030c")],aP[aP.length]=[c("#192e5b"),c("#2c42a5"),c("#4d52bc"),c("#00743f")],aP[aP.length]=[c("#6F706F"),c("#65A547"),c("#f4ba18"),c("#f4650c")],aP[aP.length]=[c("#a3586d"),c("#5c4a72"),c("#f2be46"),c("#ef4e26")],aP[aP.length]=[c("#040627"),c("#03353e"),c("#0294a5"),c("#374351")],aP[aP.length]=[c("#FFC800"),c("#E0AC00"),c(30),c(60)],aP[aP.length]=[c("#FF00D4"),c("#D0FF00"),c("#00F7FF"),c("#6B0DFF")],aP[aPM .length]=[c("#D3002D"),c("#0D1156"),c("#4C2B56"),c("#C68419")],aP[aP.length]=[c("#25C9DB"),c(30),c("#513920"),c("#D89956")],aP[aP.length]=[c("#D80056"),c("#D8FF56"),c("#27A756"),c("#7884FF")],aP[aP.length]=[c(90),c("#FFE83D"),c("#17705E"),c("#182944")],aP[aP.length]=[c(45),c("#FF353C"),c("#FF5E66"),c("#A53E44")],aP[aP.length]=[c(30),c("#0059FF"),c("#357CFF"),c("#669BFF")],aP[aP.length]=[c("#FF0F0F"),c("#0026FF"),c("#C9D8FF"),c("#828CA5")];let e=R.r_d();pID=e<.02?0:e<.35?R.r_i(1,6):R.r_i(7,25),window.$generativeTraiM ts.Palette=pID,cr[0]=aP[pID][0],cr[1]=aP[pID][1],cr[2]=aP[pID][2],cr[3]=aP[pID][3]}function stBG(){let e=pS([40,65,85,100],[0,1,2,3]);0===e?(tB=c(255),window.$generativeTraits.Background="White"):1===e?(tB=c(247),window.$generativeTraits.Background="Off-White"):2===e?(tB=c("#F0F0DC"),window.$generativeTraits.Background="Tan"):3===e&&(tB=c("#E1E6EB"),window.$generativeTraits.Background="Gray")}function stCa(){let e=R.r_d(),t=window.innerWidth,a=window.innerHeight;if(e<.45)ws=1200,hs=800,ps.size?(w=1.5*ps.size,h=ps.sM ize):.66667*t>=a?(w=1.5*a,h=a):(w=t,h=.66667*t),window.$generativeTraits.Canvas="Landscape";else if(e<.8)ws=800,hs=1200,ps.size?(w=ps.size,h=1.5*ps.size):1.5*t>=a?(w=.66667*a,h=a):(w=t,h=1.5*t),window.$generativeTraits.Canvas="Portrait";else{ws=1200,hs=1200;let e=Math.min(window.innerWidth,window.innerHeight);ps.size?(w=ps.size,h=ps.size):(w=e,h=e),window.$generativeTraits.Canvas="Square"}}function stF(){iSH=R.r_b(.6),iSS=R.r_b(.22)}function stG(){16===(gZ=pS([10,23,40,60,78,95,100],[16,20,25,40,50,80,100]))?windowM .$generativeTraits.Size="XX Small":20===gZ?window.$generativeTraits.Size="X Small":25===gZ?window.$generativeTraits.Size="Small":40===gZ?window.$generativeTraits.Size="Medium":50===gZ?window.$generativeTraits.Size="Large":80===gZ?window.$generativeTraits.Size="X Large":100===gZ&&(window.$generativeTraits.Size="XX Large"),gyCt=hs/gZ,hZ=.05*(sqZ=w/(gxCt=ws/gZ)),f2=sF=.06*sqZ,f3=.5*sqZ,hO=.008*sqZ,f2=gZ>=100?.01*sqZ:gZ>=50?.02*sqZ:gZ>=25?.03*sqZ:gZ>=8?.06*sqZ:.11*sqZ}function stB(){let e=Math.max(gxCt,gyCt);bO=Math.flM oor(e*R.r_n(.01,.04)),window.$generativeTraits.Border=bO>0}function stN(){if(stNT(),noiseType1=noiseType,aN=[],R.r_b(.15)||noiseType>0&&R.r_b(.67)){iNChg=!0;let e=pS([8,20,30,40,50,60,74,80,86,92,97,100],[2,3,4,5,6,7,9,11,13,15,21,25]);for(let t=0;t<e;t++)if(aN.push(stNI()),0===t)nsq[t]=0;else{let a=Math.floor((gxCt-2*bO)*(gyCt-2*bO)/e);do{nsq[t]=a*(t-1)+R.r_i(.2*a,1.8*a)}while(nsq[t]<=nsq[t-1])}}else aN.push(stNI()),iNChg=!1;niB=R.r_n(0,1e5),noiseSeed(R.r_i(0,1e5)),ni=0}function stNT(){0!==noiseType1&&(noiseType=pM S([50,60,70,80,90,100],[0,1,2,3,4,5])),exMu=R.r_i(2,10),tanD=pS([50,65,80,90,100],[1,2,3,4,5])}function stNI(){let e=pS([4,16,28,38,48,60,68,76,86,94,98,100],[.003,.005,.0075,.01,.015,.022,.03,.05,.1,.2,1,3]);return gZ>=50&&e<.02&&(e=R.r_c([.03,.05,.1,.2,1,3])),gZ<=5&&e>.02&&(e=R.r_c([.003,.005,.0075,.01,.015])),e}function pS(e,t){let a=R.r_d();for(let n=0;n<e.length;n++)if(a<=e[n]/100)return t[n]}function setup(){noLoop(),createCanvas(w,h),strokeCap(SQUARE),ps.size&&pixelDensity(1),xc=width/2,yc=height/2}function M draw(){if(background(tB),translate(xc,yc),R.r_b(.5)&&rotate(PI),iSH)for(let e=bO;e<gyCt-bO;e++)if(iSS&&e%2==0)for(let t=gxCt-bO-1;t>=bO;t--)grid(e,t);else for(let t=bO;t<gxCt-bO;t++)grid(e,t);else for(let e=bO;e<gxCt-bO;e++)if(iSS&&e%2==0)for(let t=gyCt-bO-1;t>=bO;t--)grid(t,e);else for(let t=bO;t<gyCt-bO;t++)grid(t,e);savC()}function noiseCheck(){return 0===noiseType?noise(niB):1===noiseType?Math.pow(sin(niB)*sin(niB),exMu):2===noiseType?Math.pow(cos(niB)*cos(niB),exMu):3===noiseType?Math.pow(tan(niB)*tan(niB),exMM u)/tanD:4===noiseType?tan(niB)/tanD:5===noiseType?sin(sin(niB)):void 0}function grid(e,t){sCt++,push(),translate(t*sqZ-xc,e*sqZ-yc);for(let a=0;a<aR.length;a++)if(noiseCheck()<aR[a]){aGF[a](e,t);break}pop(),niB+=aN[ni],iNChg&&ni<aN.length-1&&nsq[ni+1]===sCt&&(stNT(),ni++)}function keyPressed(){let e=keyCode,t=!1;if(49!==e&&50!==e&&51!==e||(t=!0),t){let t=new URL(window.location.href),a=t.searchParams,n=3e3;return a.delete("size"),49===e||(50===e?n*=2:51===e&&(n*=3)),a.set("size",n),t.search=a.toString(),window.locaM tion.href=t.toString(),!1}}function savC(){ps.size&&saveCanvas("HoundstoothAndMash_"+seed,"png")} height: 100%; background-color: #fff; height: 100%; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; justify-content: center; align-items: center; margin: auto; display: block; <script type="text/javascript"> window.$generativeTraits = {}; text/html;charset=utf-8 <meta charset="UTF-8"> <title>Houndstooth and Mash</title> <!-- p5js@1.5.0 --> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyzM seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ M l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 let mathRand = sfc32(...cyrb128(seed)); <script type="text/javascript"> sole.log("Houndstooth And Mash\nFebruary 2023\nartplusbrad\n\nSeed: "+seed);class Rm{constructor(){}r_d(){return mathRand()}r_n(e,t){return e+(t-e)*this.r_d()}r_i(e,t){return Math.floor(this.r_n(e,t+1))}r_b(e){return this.r_d()<e}r_c(e){return e[this.r_i(0,e.length-1)]}}let ps,xc,yc,ws,hs,w,h,gZ,sqZ,gxCt,gyCt,aP,pID,aR,niB,aN,iNChg,ni,iSH,iSS,tB,aXID,sF,f2,f3,half,fl,qtr,td,bO,pX,hZ,ckCt,hD,lP,hO,skM,csSqZ,nsSqCt,nsSqZ,nsSW,noiseType,exMu,tanD,noiseType1,R=new Rm,nsq=[],sCt=0,apF=[],apC=[],apS=[],apE=[],apN=[],apP=M [],atC=new Array(5),aGF=[],aX=[],aNTi=[],aNTc=[],aNTd=[],cr=[];apF.push(()=>{hi(tB)}),apF.push(()=>{hi(tB)});for(let e=0;e<4;e++)apF.push(()=>{hi(cr[e])});apC[apC.length]=function(e,t){ck(c(0),0)};for(let e=0;e<4;e++)apC.push(()=>{ck(cr[e],e+1)});for(let e=0;e<4;e++)apN.push(()=>{nT(cr[e],e)});for(let e=0;e<4;e++)apP.push(()=>{sk(cr[e])});for(let e=0;e<4;e++)apS.push(()=>{st(cr[e])});for(let e=0;e<4;e++)apE.push(()=>{hh(cr[e])});function hi(e){noStroke(),fill(e),rect(0-f2,0-f2,sqZ+2*f2,sqZ+2*f2)}function ck(e,t){leM t a;a=0===atC[t]?cRan():atC[t],strokeWeight(sF/a);let n=sqZ/a;for(let t=0;t<a;t++)for(let s=0;s<a;s++)t%2==0&&s%2==0||t%2==1&&s%2==1?(stroke(e),fill(e)):(stroke(tB),fill(tB)),rect(s*n,t*n,n,n)}function hh(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),line(0+hO,qtr,fl-hO,qtr),line(0+hO,3*qtr,fl-hO,3*qtr),line(qtr,0+hO,qtr,fl-hO),line(3*qtr,0+hO,3*qtr,fl-hO),strokeCap(SQUARE)}function nT(e,t){noStroke(),fill(e),beginShape(),vertex(0,0),vertex(half,0),vertex(fl,half),vertex(3*qtr,half),vertex(half,qtr),verteM x(half,half),vertex(qtr,half),vertex(half,3*qtr),vertex(half,fl),vertex(0,half),endShape(CLOSE)}function st(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?(line(0+hO,qtr,fl-hO,qtr),line(qtr,0+hO,qtr,fl-hO)):(line(0+hO,3*qtr,fl-hO,3*qtr),line(3*qtr,0+hO,3*qtr,fl-hO)),strokeCap(SQUARE)}function sk(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?line(0+hO,qtr,fl-hO,qtr):line(qtr,0+hO,qtr,fl-hO),strokeCap(SQUARE)}function cRan(){return R.r_d()<.33?2*R.r_i(1,Math.floor(gZ/4)):2*Math.floor(M gZ/5)}function preload(){ps=getURLParams(),stC(),stCa(),stF(),stG(),gZ>=40&&apF.splice(0,1),stB(),half=.5*sqZ,fl=sqZ,qtr=.25*sqZ,td=.3333*sqZ;let e=R.r_d();if(e<.5){let e=cRan(),t=R.r_b(.5);for(let a=0;a<atC.length;a++)atC[a]=t?e:cRan()}else if(e<.75)for(let e=0;e<atC.length;e++)atC[e]=0;else for(let e=0;e<atC.length;e++)atC[e]=R.r_i(0,1),1===atC[e]&&(atC[e]=cRan());ckCt=2*Math.floor(gZ/5),csSqZ=sqZ/ckCt,nsSqCt=Math.floor(gZ/2),nsSqZ=sqZ/nsSqCt,nsSW=f3/nsSqCt;let t=R.r_d();t<.4?(aX.push([5,5,4,4,4,4]),aX.push([2,2,M 2,2,2,2]),aX.push([5,5,4,4,4,0]),aX.push([5,5,4,4,0,4]),aX.push([0,5,4,4,4,4])):t<.75?(aX.push([5,5,4,4,0,0]),aX.push([5,5,4,0,4,0]),aX.push([5,5,4,0,0,4]),aX.push([0,5,4,4,4,0]),aX.push([0,5,4,4,0,4]),aX.push([0,5,4,0,0,4]),aX.push([0,0,4,4,4,4])):(aX.push([5,5,4,0,0,0]),aX.push([5,5,0,4,0,0]),aX.push([5,5,0,0,4,0]),aX.push([5,5,0,0,0,4]),aX.push([5,0,4,4,0,0]),aX.push([5,0,4,0,4,0]),aX.push([5,0,4,0,0,4]),aX.push([5,0,0,4,4,0]),aX.push([5,0,0,4,0,4]),aX.push([5,0,0,0,4,4]),aX.push([0,5,4,4,0,0]),aX.push([0,5,4,0,M 4,0]),aX.push([0,5,4,0,0,4]),aX.push([0,5,0,4,4,0]),aX.push([0,5,0,4,0,4]),aX.push([0,5,0,0,4,4]),aX.push([0,0,4,4,4,0]),aX.push([0,0,4,4,0,4]),aX.push([0,0,4,0,4,4]),aX.push([0,0,0,4,4,4])),aXID=R.r_i(0,aX.length-1),pX=0;for(let e=0;e<aX[aXID].length;e++)pX+=aX[aXID][e];aD(apF,0),aD(apC,1),aD(apS,2),aD(apE,3),aD(apN,4),aD(apP,5),aR=new Array(pX);let a=2.5+.25*R.r_i(0,3);aR[0]=R.r_n(0,1/aR.length*a);for(let e=1;e<aR.length-1;e++)aR[e]=R.r_n(aR[e-1],aR[e-1]+(1-aR[e-1])/(aR.length-1)*a);aR[aR.length-1]=1;let n=[...apM F,...apC,...apS,...apE,...apN,...apP],s=n.length;for(let e=0;e<s;e++){let t=R.r_i(0,n.length-1);aGF[e]=n[t],n.splice(t,1)}R.r_b(.5),R.r_b(.5);hD=R.r_i(1,2),stN(),stBG()}function aD(e,t){aLen=e.length;for(let a=0;a<aLen-aX[aXID][t];a++){let t=R.r_i(0,e.length-1);e.splice(t,1)}}function c(e){return color(e)}function stC(){(aP=[])[0]=[c(25),c(55),c(85),c(120)],aP[aP.length]=[c("#2e7daf"),c("#ffd507"),c("#2897ff"),c("#ff665b")],aP[aP.length]=[c("#efe5a7"),c("#002972"),c("#f7e038"),c("#852129")],aP[aP.length]=[c("#55d9cM 0"),c("#ff60d2"),c("#107050"),c("#02231c")],aP[aP.length]=[c("#DE2121"),c(0),c("#DEDE21"),c("#2121DE")],aP[aP.length]=[c(40),c("#E04641"),c("#41C3E0"),c("#41E09E")],aP[aP.length]=[c("#FF3255"),c("#FF32C5"),c("#7332FF"),c("#3281FF")],aP[aP.length]=[c("#d75b66"),c("#23345c"),c("#a36142"),c("#54493f")],aP[aP.length]=[c("#899194"),c("#e5d503"),c("#2b7260"),c("#0c1885")],aP[aP.length]=[c("#1f3330"),c("#212027"),c("#f22f08"),c("#ff6f3f")],aP[aP.length]=[c("#0444bf"),c("#0584f2"),c("#0aaff1"),c("#ae5cb2")],aP[aP.length]=[M c("#6465a5"),c("#6975a6"),c("#f2e44b"),c("#ff4d35")],aP[aP.length]=[c("#f4ed71"),c("#9e2504"),c("#767287"),c("#04030c")],aP[aP.length]=[c("#192e5b"),c("#2c42a5"),c("#4d52bc"),c("#00743f")],aP[aP.length]=[c("#6F706F"),c("#65A547"),c("#f4ba18"),c("#f4650c")],aP[aP.length]=[c("#a3586d"),c("#5c4a72"),c("#f2be46"),c("#ef4e26")],aP[aP.length]=[c("#040627"),c("#03353e"),c("#0294a5"),c("#374351")],aP[aP.length]=[c("#FFC800"),c("#E0AC00"),c(30),c(60)],aP[aP.length]=[c("#FF00D4"),c("#D0FF00"),c("#00F7FF"),c("#6B0DFF")],aP[aPM .length]=[c("#D3002D"),c("#0D1156"),c("#4C2B56"),c("#C68419")],aP[aP.length]=[c("#25C9DB"),c(30),c("#513920"),c("#D89956")],aP[aP.length]=[c("#D80056"),c("#D8FF56"),c("#27A756"),c("#7884FF")],aP[aP.length]=[c(90),c("#FFE83D"),c("#17705E"),c("#182944")],aP[aP.length]=[c(45),c("#FF353C"),c("#FF5E66"),c("#A53E44")],aP[aP.length]=[c(30),c("#0059FF"),c("#357CFF"),c("#669BFF")],aP[aP.length]=[c("#FF0F0F"),c("#0026FF"),c("#C9D8FF"),c("#828CA5")];let e=R.r_d();pID=e<.02?0:e<.35?R.r_i(1,6):R.r_i(7,25),window.$generativeTraiM ts.Palette=pID,cr[0]=aP[pID][0],cr[1]=aP[pID][1],cr[2]=aP[pID][2],cr[3]=aP[pID][3]}function stBG(){let e=pS([40,65,85,100],[0,1,2,3]);0===e?(tB=c(255),window.$generativeTraits.Background="White"):1===e?(tB=c(247),window.$generativeTraits.Background="Off-White"):2===e?(tB=c("#F0F0DC"),window.$generativeTraits.Background="Tan"):3===e&&(tB=c("#E1E6EB"),window.$generativeTraits.Background="Gray")}function stCa(){let e=R.r_d(),t=window.innerWidth,a=window.innerHeight;if(e<.45)ws=1200,hs=800,ps.size?(w=1.5*ps.size,h=ps.sM ize):.66667*t>=a?(w=1.5*a,h=a):(w=t,h=.66667*t),window.$generativeTraits.Canvas="Landscape";else if(e<.8)ws=800,hs=1200,ps.size?(w=ps.size,h=1.5*ps.size):1.5*t>=a?(w=.66667*a,h=a):(w=t,h=1.5*t),window.$generativeTraits.Canvas="Portrait";else{ws=1200,hs=1200;let e=Math.min(window.innerWidth,window.innerHeight);ps.size?(w=ps.size,h=ps.size):(w=e,h=e),window.$generativeTraits.Canvas="Square"}}function stF(){iSH=R.r_b(.6),iSS=R.r_b(.22)}function stG(){16===(gZ=pS([10,23,40,60,78,95,100],[16,20,25,40,50,80,100]))?windowM .$generativeTraits.Size="XX Small":20===gZ?window.$generativeTraits.Size="X Small":25===gZ?window.$generativeTraits.Size="Small":40===gZ?window.$generativeTraits.Size="Medium":50===gZ?window.$generativeTraits.Size="Large":80===gZ?window.$generativeTraits.Size="X Large":100===gZ&&(window.$generativeTraits.Size="XX Large"),gyCt=hs/gZ,hZ=.05*(sqZ=w/(gxCt=ws/gZ)),f2=sF=.06*sqZ,f3=.5*sqZ,hO=.008*sqZ,f2=gZ>=100?.01*sqZ:gZ>=50?.02*sqZ:gZ>=25?.03*sqZ:gZ>=8?.06*sqZ:.11*sqZ}function stB(){let e=Math.max(gxCt,gyCt);bO=Math.flM oor(e*R.r_n(.01,.04)),window.$generativeTraits.Border=bO>0}function stN(){if(stNT(),noiseType1=noiseType,aN=[],R.r_b(.15)||noiseType>0&&R.r_b(.67)){iNChg=!0;let e=pS([8,20,30,40,50,60,74,80,86,92,97,100],[2,3,4,5,6,7,9,11,13,15,21,25]);for(let t=0;t<e;t++)if(aN.push(stNI()),0===t)nsq[t]=0;else{let a=Math.floor((gxCt-2*bO)*(gyCt-2*bO)/e);do{nsq[t]=a*(t-1)+R.r_i(.2*a,1.8*a)}while(nsq[t]<=nsq[t-1])}}else aN.push(stNI()),iNChg=!1;niB=R.r_n(0,1e5),noiseSeed(R.r_i(0,1e5)),ni=0}function stNT(){0!==noiseType1&&(noiseType=pM S([50,60,70,80,90,100],[0,1,2,3,4,5])),exMu=R.r_i(2,10),tanD=pS([50,65,80,90,100],[1,2,3,4,5])}function stNI(){let e=pS([4,16,28,38,48,60,68,76,86,94,98,100],[.003,.005,.0075,.01,.015,.022,.03,.05,.1,.2,1,3]);return gZ>=50&&e<.02&&(e=R.r_c([.03,.05,.1,.2,1,3])),gZ<=5&&e>.02&&(e=R.r_c([.003,.005,.0075,.01,.015])),e}function pS(e,t){let a=R.r_d();for(let n=0;n<e.length;n++)if(a<=e[n]/100)return t[n]}function setup(){noLoop(),createCanvas(w,h),strokeCap(SQUARE),ps.size&&pixelDensity(1),xc=width/2,yc=height/2}function M draw(){if(background(tB),translate(xc,yc),R.r_b(.5)&&rotate(PI),iSH)for(let e=bO;e<gyCt-bO;e++)if(iSS&&e%2==0)for(let t=gxCt-bO-1;t>=bO;t--)grid(e,t);else for(let t=bO;t<gxCt-bO;t++)grid(e,t);else for(let e=bO;e<gxCt-bO;e++)if(iSS&&e%2==0)for(let t=gyCt-bO-1;t>=bO;t--)grid(t,e);else for(let t=bO;t<gyCt-bO;t++)grid(t,e);savC()}function noiseCheck(){return 0===noiseType?noise(niB):1===noiseType?Math.pow(sin(niB)*sin(niB),exMu):2===noiseType?Math.pow(cos(niB)*cos(niB),exMu):3===noiseType?Math.pow(tan(niB)*tan(niB),exMM u)/tanD:4===noiseType?tan(niB)/tanD:5===noiseType?sin(sin(niB)):void 0}function grid(e,t){sCt++,push(),translate(t*sqZ-xc,e*sqZ-yc);for(let a=0;a<aR.length;a++)if(noiseCheck()<aR[a]){aGF[a](e,t);break}pop(),niB+=aN[ni],iNChg&&ni<aN.length-1&&nsq[ni+1]===sCt&&(stNT(),ni++)}function keyPressed(){let e=keyCode,t=!1;if(49!==e&&50!==e&&51!==e||(t=!0),t){let t=new URL(window.location.href),a=t.searchParams,n=3e3;return a.delete("size"),49===e||(50===e?n*=2:51===e&&(n*=3)),a.set("size",n),t.search=a.toString(),window.locaM tion.href=t.toString(),!1}}function savC(){ps.size&&saveCanvas("HoundstoothAndMash_"+seed,"png")} height: 100%; background-color: #fff; height: 100%; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; justify-content: center; align-items: center; margin: auto; display: block; <script type="text/javascript"> window.$generativeTraits = {}; text/html;charset=utf-8 <meta charset="UTF-8"> <title>Houndstooth and Mash</title> <!-- p5js@1.5.0 --> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyzM seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ M l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 let mathRand = sfc32(...cyrb128(seed)); <script type="text/javascript"> sole.log("Houndstooth And Mash\nFebruary 2023\nartplusbrad\n\nSeed: "+seed);class Rm{constructor(){}r_d(){return mathRand()}r_n(e,t){return e+(t-e)*this.r_d()}r_i(e,t){return Math.floor(this.r_n(e,t+1))}r_b(e){return this.r_d()<e}r_c(e){return e[this.r_i(0,e.length-1)]}}let ps,xc,yc,ws,hs,w,h,gZ,sqZ,gxCt,gyCt,aP,pID,aR,niB,aN,iNChg,ni,iSH,iSS,tB,aXID,sF,f2,f3,half,fl,qtr,td,bO,pX,hZ,ckCt,hD,lP,hO,skM,csSqZ,nsSqCt,nsSqZ,nsSW,noiseType,exMu,tanD,noiseType1,R=new Rm,nsq=[],sCt=0,apF=[],apC=[],apS=[],apE=[],apN=[],apP=M [],atC=new Array(5),aGF=[],aX=[],aNTi=[],aNTc=[],aNTd=[],cr=[];apF.push(()=>{hi(tB)}),apF.push(()=>{hi(tB)});for(let e=0;e<4;e++)apF.push(()=>{hi(cr[e])});apC[apC.length]=function(e,t){ck(c(0),0)};for(let e=0;e<4;e++)apC.push(()=>{ck(cr[e],e+1)});for(let e=0;e<4;e++)apN.push(()=>{nT(cr[e],e)});for(let e=0;e<4;e++)apP.push(()=>{sk(cr[e])});for(let e=0;e<4;e++)apS.push(()=>{st(cr[e])});for(let e=0;e<4;e++)apE.push(()=>{hh(cr[e])});function hi(e){noStroke(),fill(e),rect(0-f2,0-f2,sqZ+2*f2,sqZ+2*f2)}function ck(e,t){leM t a;a=0===atC[t]?cRan():atC[t],strokeWeight(sF/a);let n=sqZ/a;for(let t=0;t<a;t++)for(let s=0;s<a;s++)t%2==0&&s%2==0||t%2==1&&s%2==1?(stroke(e),fill(e)):(stroke(tB),fill(tB)),rect(s*n,t*n,n,n)}function hh(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),line(0+hO,qtr,fl-hO,qtr),line(0+hO,3*qtr,fl-hO,3*qtr),line(qtr,0+hO,qtr,fl-hO),line(3*qtr,0+hO,3*qtr,fl-hO),strokeCap(SQUARE)}function nT(e,t){noStroke(),fill(e),beginShape(),vertex(0,0),vertex(half,0),vertex(fl,half),vertex(3*qtr,half),vertex(half,qtr),verteM x(half,half),vertex(qtr,half),vertex(half,3*qtr),vertex(half,fl),vertex(0,half),endShape(CLOSE)}function st(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?(line(0+hO,qtr,fl-hO,qtr),line(qtr,0+hO,qtr,fl-hO)):(line(0+hO,3*qtr,fl-hO,3*qtr),line(3*qtr,0+hO,3*qtr,fl-hO)),strokeCap(SQUARE)}function sk(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?line(0+hO,qtr,fl-hO,qtr):line(qtr,0+hO,qtr,fl-hO),strokeCap(SQUARE)}function cRan(){return R.r_d()<.33?2*R.r_i(1,Math.floor(gZ/4)):2*Math.floor(M gZ/5)}function preload(){ps=getURLParams(),stC(),stCa(),stF(),stG(),gZ>=40&&apF.splice(0,1),stB(),half=.5*sqZ,fl=sqZ,qtr=.25*sqZ,td=.3333*sqZ;let e=R.r_d();if(e<.5){let e=cRan(),t=R.r_b(.5);for(let a=0;a<atC.length;a++)atC[a]=t?e:cRan()}else if(e<.75)for(let e=0;e<atC.length;e++)atC[e]=0;else for(let e=0;e<atC.length;e++)atC[e]=R.r_i(0,1),1===atC[e]&&(atC[e]=cRan());ckCt=2*Math.floor(gZ/5),csSqZ=sqZ/ckCt,nsSqCt=Math.floor(gZ/2),nsSqZ=sqZ/nsSqCt,nsSW=f3/nsSqCt;let t=R.r_d();t<.4?(aX.push([5,5,4,4,4,4]),aX.push([2,2,M 2,2,2,2]),aX.push([5,5,4,4,4,0]),aX.push([5,5,4,4,0,4]),aX.push([0,5,4,4,4,4])):t<.75?(aX.push([5,5,4,4,0,0]),aX.push([5,5,4,0,4,0]),aX.push([5,5,4,0,0,4]),aX.push([0,5,4,4,4,0]),aX.push([0,5,4,4,0,4]),aX.push([0,5,4,0,0,4]),aX.push([0,0,4,4,4,4])):(aX.push([5,5,4,0,0,0]),aX.push([5,5,0,4,0,0]),aX.push([5,5,0,0,4,0]),aX.push([5,5,0,0,0,4]),aX.push([5,0,4,4,0,0]),aX.push([5,0,4,0,4,0]),aX.push([5,0,4,0,0,4]),aX.push([5,0,0,4,4,0]),aX.push([5,0,0,4,0,4]),aX.push([5,0,0,0,4,4]),aX.push([0,5,4,4,0,0]),aX.push([0,5,4,0,M 4,0]),aX.push([0,5,4,0,0,4]),aX.push([0,5,0,4,4,0]),aX.push([0,5,0,4,0,4]),aX.push([0,5,0,0,4,4]),aX.push([0,0,4,4,4,0]),aX.push([0,0,4,4,0,4]),aX.push([0,0,4,0,4,4]),aX.push([0,0,0,4,4,4])),aXID=R.r_i(0,aX.length-1),pX=0;for(let e=0;e<aX[aXID].length;e++)pX+=aX[aXID][e];aD(apF,0),aD(apC,1),aD(apS,2),aD(apE,3),aD(apN,4),aD(apP,5),aR=new Array(pX);let a=2.5+.25*R.r_i(0,3);aR[0]=R.r_n(0,1/aR.length*a);for(let e=1;e<aR.length-1;e++)aR[e]=R.r_n(aR[e-1],aR[e-1]+(1-aR[e-1])/(aR.length-1)*a);aR[aR.length-1]=1;let n=[...apM F,...apC,...apS,...apE,...apN,...apP],s=n.length;for(let e=0;e<s;e++){let t=R.r_i(0,n.length-1);aGF[e]=n[t],n.splice(t,1)}R.r_b(.5),R.r_b(.5);hD=R.r_i(1,2),stN(),stBG()}function aD(e,t){aLen=e.length;for(let a=0;a<aLen-aX[aXID][t];a++){let t=R.r_i(0,e.length-1);e.splice(t,1)}}function c(e){return color(e)}function stC(){(aP=[])[0]=[c(25),c(55),c(85),c(120)],aP[aP.length]=[c("#2e7daf"),c("#ffd507"),c("#2897ff"),c("#ff665b")],aP[aP.length]=[c("#efe5a7"),c("#002972"),c("#f7e038"),c("#852129")],aP[aP.length]=[c("#55d9cM 0"),c("#ff60d2"),c("#107050"),c("#02231c")],aP[aP.length]=[c("#DE2121"),c(0),c("#DEDE21"),c("#2121DE")],aP[aP.length]=[c(40),c("#E04641"),c("#41C3E0"),c("#41E09E")],aP[aP.length]=[c("#FF3255"),c("#FF32C5"),c("#7332FF"),c("#3281FF")],aP[aP.length]=[c("#d75b66"),c("#23345c"),c("#a36142"),c("#54493f")],aP[aP.length]=[c("#899194"),c("#e5d503"),c("#2b7260"),c("#0c1885")],aP[aP.length]=[c("#1f3330"),c("#212027"),c("#f22f08"),c("#ff6f3f")],aP[aP.length]=[c("#0444bf"),c("#0584f2"),c("#0aaff1"),c("#ae5cb2")],aP[aP.length]=[M c("#6465a5"),c("#6975a6"),c("#f2e44b"),c("#ff4d35")],aP[aP.length]=[c("#f4ed71"),c("#9e2504"),c("#767287"),c("#04030c")],aP[aP.length]=[c("#192e5b"),c("#2c42a5"),c("#4d52bc"),c("#00743f")],aP[aP.length]=[c("#6F706F"),c("#65A547"),c("#f4ba18"),c("#f4650c")],aP[aP.length]=[c("#a3586d"),c("#5c4a72"),c("#f2be46"),c("#ef4e26")],aP[aP.length]=[c("#040627"),c("#03353e"),c("#0294a5"),c("#374351")],aP[aP.length]=[c("#FFC800"),c("#E0AC00"),c(30),c(60)],aP[aP.length]=[c("#FF00D4"),c("#D0FF00"),c("#00F7FF"),c("#6B0DFF")],aP[aPM .length]=[c("#D3002D"),c("#0D1156"),c("#4C2B56"),c("#C68419")],aP[aP.length]=[c("#25C9DB"),c(30),c("#513920"),c("#D89956")],aP[aP.length]=[c("#D80056"),c("#D8FF56"),c("#27A756"),c("#7884FF")],aP[aP.length]=[c(90),c("#FFE83D"),c("#17705E"),c("#182944")],aP[aP.length]=[c(45),c("#FF353C"),c("#FF5E66"),c("#A53E44")],aP[aP.length]=[c(30),c("#0059FF"),c("#357CFF"),c("#669BFF")],aP[aP.length]=[c("#FF0F0F"),c("#0026FF"),c("#C9D8FF"),c("#828CA5")];let e=R.r_d();pID=e<.02?0:e<.35?R.r_i(1,6):R.r_i(7,25),window.$generativeTraiM ts.Palette=pID,cr[0]=aP[pID][0],cr[1]=aP[pID][1],cr[2]=aP[pID][2],cr[3]=aP[pID][3]}function stBG(){let e=pS([40,65,85,100],[0,1,2,3]);0===e?(tB=c(255),window.$generativeTraits.Background="White"):1===e?(tB=c(247),window.$generativeTraits.Background="Off-White"):2===e?(tB=c("#F0F0DC"),window.$generativeTraits.Background="Tan"):3===e&&(tB=c("#E1E6EB"),window.$generativeTraits.Background="Gray")}function stCa(){let e=R.r_d(),t=window.innerWidth,a=window.innerHeight;if(e<.45)ws=1200,hs=800,ps.size?(w=1.5*ps.size,h=ps.sM ize):.66667*t>=a?(w=1.5*a,h=a):(w=t,h=.66667*t),window.$generativeTraits.Canvas="Landscape";else if(e<.8)ws=800,hs=1200,ps.size?(w=ps.size,h=1.5*ps.size):1.5*t>=a?(w=.66667*a,h=a):(w=t,h=1.5*t),window.$generativeTraits.Canvas="Portrait";else{ws=1200,hs=1200;let e=Math.min(window.innerWidth,window.innerHeight);ps.size?(w=ps.size,h=ps.size):(w=e,h=e),window.$generativeTraits.Canvas="Square"}}function stF(){iSH=R.r_b(.6),iSS=R.r_b(.22)}function stG(){16===(gZ=pS([10,23,40,60,78,95,100],[16,20,25,40,50,80,100]))?windowM .$generativeTraits.Size="XX Small":20===gZ?window.$generativeTraits.Size="X Small":25===gZ?window.$generativeTraits.Size="Small":40===gZ?window.$generativeTraits.Size="Medium":50===gZ?window.$generativeTraits.Size="Large":80===gZ?window.$generativeTraits.Size="X Large":100===gZ&&(window.$generativeTraits.Size="XX Large"),gyCt=hs/gZ,hZ=.05*(sqZ=w/(gxCt=ws/gZ)),f2=sF=.06*sqZ,f3=.5*sqZ,hO=.008*sqZ,f2=gZ>=100?.01*sqZ:gZ>=50?.02*sqZ:gZ>=25?.03*sqZ:gZ>=8?.06*sqZ:.11*sqZ}function stB(){let e=Math.max(gxCt,gyCt);bO=Math.flM oor(e*R.r_n(.01,.04)),window.$generativeTraits.Border=bO>0}function stN(){if(stNT(),noiseType1=noiseType,aN=[],R.r_b(.15)||noiseType>0&&R.r_b(.67)){iNChg=!0;let e=pS([8,20,30,40,50,60,74,80,86,92,97,100],[2,3,4,5,6,7,9,11,13,15,21,25]);for(let t=0;t<e;t++)if(aN.push(stNI()),0===t)nsq[t]=0;else{let a=Math.floor((gxCt-2*bO)*(gyCt-2*bO)/e);do{nsq[t]=a*(t-1)+R.r_i(.2*a,1.8*a)}while(nsq[t]<=nsq[t-1])}}else aN.push(stNI()),iNChg=!1;niB=R.r_n(0,1e5),noiseSeed(R.r_i(0,1e5)),ni=0}function stNT(){0!==noiseType1&&(noiseType=pM S([50,60,70,80,90,100],[0,1,2,3,4,5])),exMu=R.r_i(2,10),tanD=pS([50,65,80,90,100],[1,2,3,4,5])}function stNI(){let e=pS([4,16,28,38,48,60,68,76,86,94,98,100],[.003,.005,.0075,.01,.015,.022,.03,.05,.1,.2,1,3]);return gZ>=50&&e<.02&&(e=R.r_c([.03,.05,.1,.2,1,3])),gZ<=5&&e>.02&&(e=R.r_c([.003,.005,.0075,.01,.015])),e}function pS(e,t){let a=R.r_d();for(let n=0;n<e.length;n++)if(a<=e[n]/100)return t[n]}function setup(){noLoop(),createCanvas(w,h),strokeCap(SQUARE),ps.size&&pixelDensity(1),xc=width/2,yc=height/2}function M draw(){if(background(tB),translate(xc,yc),R.r_b(.5)&&rotate(PI),iSH)for(let e=bO;e<gyCt-bO;e++)if(iSS&&e%2==0)for(let t=gxCt-bO-1;t>=bO;t--)grid(e,t);else for(let t=bO;t<gxCt-bO;t++)grid(e,t);else for(let e=bO;e<gxCt-bO;e++)if(iSS&&e%2==0)for(let t=gyCt-bO-1;t>=bO;t--)grid(t,e);else for(let t=bO;t<gyCt-bO;t++)grid(t,e);savC()}function noiseCheck(){return 0===noiseType?noise(niB):1===noiseType?Math.pow(sin(niB)*sin(niB),exMu):2===noiseType?Math.pow(cos(niB)*cos(niB),exMu):3===noiseType?Math.pow(tan(niB)*tan(niB),exMM u)/tanD:4===noiseType?tan(niB)/tanD:5===noiseType?sin(sin(niB)):void 0}function grid(e,t){sCt++,push(),translate(t*sqZ-xc,e*sqZ-yc);for(let a=0;a<aR.length;a++)if(noiseCheck()<aR[a]){aGF[a](e,t);break}pop(),niB+=aN[ni],iNChg&&ni<aN.length-1&&nsq[ni+1]===sCt&&(stNT(),ni++)}function keyPressed(){let e=keyCode,t=!1;if(49!==e&&50!==e&&51!==e||(t=!0),t){let t=new URL(window.location.href),a=t.searchParams,n=3e3;return a.delete("size"),49===e||(50===e?n*=2:51===e&&(n*=3)),a.set("size",n),t.search=a.toString(),window.locaM tion.href=t.toString(),!1}}function savC(){ps.size&&saveCanvas("HoundstoothAndMash_"+seed,"png")} height: 100%; background-color: #fff; height: 100%; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; justify-content: center; align-items: center; margin: auto; display: block; <script type="text/javascript"> window.$generativeTraits = {}; text/html;charset=utf-8 <meta charset="UTF-8"> <title>Houndstooth and Mash</title> <!-- p5js@1.5.0 --> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyzM seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ M l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 let mathRand = sfc32(...cyrb128(seed)); <script type="text/javascript"> sole.log("Houndstooth And Mash\nFebruary 2023\nartplusbrad\n\nSeed: "+seed);class Rm{constructor(){}r_d(){return mathRand()}r_n(e,t){return e+(t-e)*this.r_d()}r_i(e,t){return Math.floor(this.r_n(e,t+1))}r_b(e){return this.r_d()<e}r_c(e){return e[this.r_i(0,e.length-1)]}}let ps,xc,yc,ws,hs,w,h,gZ,sqZ,gxCt,gyCt,aP,pID,aR,niB,aN,iNChg,ni,iSH,iSS,tB,aXID,sF,f2,f3,half,fl,qtr,td,bO,pX,hZ,ckCt,hD,lP,hO,skM,csSqZ,nsSqCt,nsSqZ,nsSW,noiseType,exMu,tanD,noiseType1,R=new Rm,nsq=[],sCt=0,apF=[],apC=[],apS=[],apE=[],apN=[],apP=M [],atC=new Array(5),aGF=[],aX=[],aNTi=[],aNTc=[],aNTd=[],cr=[];apF.push(()=>{hi(tB)}),apF.push(()=>{hi(tB)});for(let e=0;e<4;e++)apF.push(()=>{hi(cr[e])});apC[apC.length]=function(e,t){ck(c(0),0)};for(let e=0;e<4;e++)apC.push(()=>{ck(cr[e],e+1)});for(let e=0;e<4;e++)apN.push(()=>{nT(cr[e],e)});for(let e=0;e<4;e++)apP.push(()=>{sk(cr[e])});for(let e=0;e<4;e++)apS.push(()=>{st(cr[e])});for(let e=0;e<4;e++)apE.push(()=>{hh(cr[e])});function hi(e){noStroke(),fill(e),rect(0-f2,0-f2,sqZ+2*f2,sqZ+2*f2)}function ck(e,t){leM t a;a=0===atC[t]?cRan():atC[t],strokeWeight(sF/a);let n=sqZ/a;for(let t=0;t<a;t++)for(let s=0;s<a;s++)t%2==0&&s%2==0||t%2==1&&s%2==1?(stroke(e),fill(e)):(stroke(tB),fill(tB)),rect(s*n,t*n,n,n)}function hh(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),line(0+hO,qtr,fl-hO,qtr),line(0+hO,3*qtr,fl-hO,3*qtr),line(qtr,0+hO,qtr,fl-hO),line(3*qtr,0+hO,3*qtr,fl-hO),strokeCap(SQUARE)}function nT(e,t){noStroke(),fill(e),beginShape(),vertex(0,0),vertex(half,0),vertex(fl,half),vertex(3*qtr,half),vertex(half,qtr),verteM x(half,half),vertex(qtr,half),vertex(half,3*qtr),vertex(half,fl),vertex(0,half),endShape(CLOSE)}function st(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?(line(0+hO,qtr,fl-hO,qtr),line(qtr,0+hO,qtr,fl-hO)):(line(0+hO,3*qtr,fl-hO,3*qtr),line(3*qtr,0+hO,3*qtr,fl-hO)),strokeCap(SQUARE)}function sk(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?line(0+hO,qtr,fl-hO,qtr):line(qtr,0+hO,qtr,fl-hO),strokeCap(SQUARE)}function cRan(){return R.r_d()<.33?2*R.r_i(1,Math.floor(gZ/4)):2*Math.floor(M gZ/5)}function preload(){ps=getURLParams(),stC(),stCa(),stF(),stG(),gZ>=40&&apF.splice(0,1),stB(),half=.5*sqZ,fl=sqZ,qtr=.25*sqZ,td=.3333*sqZ;let e=R.r_d();if(e<.5){let e=cRan(),t=R.r_b(.5);for(let a=0;a<atC.length;a++)atC[a]=t?e:cRan()}else if(e<.75)for(let e=0;e<atC.length;e++)atC[e]=0;else for(let e=0;e<atC.length;e++)atC[e]=R.r_i(0,1),1===atC[e]&&(atC[e]=cRan());ckCt=2*Math.floor(gZ/5),csSqZ=sqZ/ckCt,nsSqCt=Math.floor(gZ/2),nsSqZ=sqZ/nsSqCt,nsSW=f3/nsSqCt;let t=R.r_d();t<.4?(aX.push([5,5,4,4,4,4]),aX.push([2,2,M 2,2,2,2]),aX.push([5,5,4,4,4,0]),aX.push([5,5,4,4,0,4]),aX.push([0,5,4,4,4,4])):t<.75?(aX.push([5,5,4,4,0,0]),aX.push([5,5,4,0,4,0]),aX.push([5,5,4,0,0,4]),aX.push([0,5,4,4,4,0]),aX.push([0,5,4,4,0,4]),aX.push([0,5,4,0,0,4]),aX.push([0,0,4,4,4,4])):(aX.push([5,5,4,0,0,0]),aX.push([5,5,0,4,0,0]),aX.push([5,5,0,0,4,0]),aX.push([5,5,0,0,0,4]),aX.push([5,0,4,4,0,0]),aX.push([5,0,4,0,4,0]),aX.push([5,0,4,0,0,4]),aX.push([5,0,0,4,4,0]),aX.push([5,0,0,4,0,4]),aX.push([5,0,0,0,4,4]),aX.push([0,5,4,4,0,0]),aX.push([0,5,4,0,M 4,0]),aX.push([0,5,4,0,0,4]),aX.push([0,5,0,4,4,0]),aX.push([0,5,0,4,0,4]),aX.push([0,5,0,0,4,4]),aX.push([0,0,4,4,4,0]),aX.push([0,0,4,4,0,4]),aX.push([0,0,4,0,4,4]),aX.push([0,0,0,4,4,4])),aXID=R.r_i(0,aX.length-1),pX=0;for(let e=0;e<aX[aXID].length;e++)pX+=aX[aXID][e];aD(apF,0),aD(apC,1),aD(apS,2),aD(apE,3),aD(apN,4),aD(apP,5),aR=new Array(pX);let a=2.5+.25*R.r_i(0,3);aR[0]=R.r_n(0,1/aR.length*a);for(let e=1;e<aR.length-1;e++)aR[e]=R.r_n(aR[e-1],aR[e-1]+(1-aR[e-1])/(aR.length-1)*a);aR[aR.length-1]=1;let n=[...apM F,...apC,...apS,...apE,...apN,...apP],s=n.length;for(let e=0;e<s;e++){let t=R.r_i(0,n.length-1);aGF[e]=n[t],n.splice(t,1)}R.r_b(.5),R.r_b(.5);hD=R.r_i(1,2),stN(),stBG()}function aD(e,t){aLen=e.length;for(let a=0;a<aLen-aX[aXID][t];a++){let t=R.r_i(0,e.length-1);e.splice(t,1)}}function c(e){return color(e)}function stC(){(aP=[])[0]=[c(25),c(55),c(85),c(120)],aP[aP.length]=[c("#2e7daf"),c("#ffd507"),c("#2897ff"),c("#ff665b")],aP[aP.length]=[c("#efe5a7"),c("#002972"),c("#f7e038"),c("#852129")],aP[aP.length]=[c("#55d9cM 0"),c("#ff60d2"),c("#107050"),c("#02231c")],aP[aP.length]=[c("#DE2121"),c(0),c("#DEDE21"),c("#2121DE")],aP[aP.length]=[c(40),c("#E04641"),c("#41C3E0"),c("#41E09E")],aP[aP.length]=[c("#FF3255"),c("#FF32C5"),c("#7332FF"),c("#3281FF")],aP[aP.length]=[c("#d75b66"),c("#23345c"),c("#a36142"),c("#54493f")],aP[aP.length]=[c("#899194"),c("#e5d503"),c("#2b7260"),c("#0c1885")],aP[aP.length]=[c("#1f3330"),c("#212027"),c("#f22f08"),c("#ff6f3f")],aP[aP.length]=[c("#0444bf"),c("#0584f2"),c("#0aaff1"),c("#ae5cb2")],aP[aP.length]=[M c("#6465a5"),c("#6975a6"),c("#f2e44b"),c("#ff4d35")],aP[aP.length]=[c("#f4ed71"),c("#9e2504"),c("#767287"),c("#04030c")],aP[aP.length]=[c("#192e5b"),c("#2c42a5"),c("#4d52bc"),c("#00743f")],aP[aP.length]=[c("#6F706F"),c("#65A547"),c("#f4ba18"),c("#f4650c")],aP[aP.length]=[c("#a3586d"),c("#5c4a72"),c("#f2be46"),c("#ef4e26")],aP[aP.length]=[c("#040627"),c("#03353e"),c("#0294a5"),c("#374351")],aP[aP.length]=[c("#FFC800"),c("#E0AC00"),c(30),c(60)],aP[aP.length]=[c("#FF00D4"),c("#D0FF00"),c("#00F7FF"),c("#6B0DFF")],aP[aPM .length]=[c("#D3002D"),c("#0D1156"),c("#4C2B56"),c("#C68419")],aP[aP.length]=[c("#25C9DB"),c(30),c("#513920"),c("#D89956")],aP[aP.length]=[c("#D80056"),c("#D8FF56"),c("#27A756"),c("#7884FF")],aP[aP.length]=[c(90),c("#FFE83D"),c("#17705E"),c("#182944")],aP[aP.length]=[c(45),c("#FF353C"),c("#FF5E66"),c("#A53E44")],aP[aP.length]=[c(30),c("#0059FF"),c("#357CFF"),c("#669BFF")],aP[aP.length]=[c("#FF0F0F"),c("#0026FF"),c("#C9D8FF"),c("#828CA5")];let e=R.r_d();pID=e<.02?0:e<.35?R.r_i(1,6):R.r_i(7,25),window.$generativeTraiM ts.Palette=pID,cr[0]=aP[pID][0],cr[1]=aP[pID][1],cr[2]=aP[pID][2],cr[3]=aP[pID][3]}function stBG(){let e=pS([40,65,85,100],[0,1,2,3]);0===e?(tB=c(255),window.$generativeTraits.Background="White"):1===e?(tB=c(247),window.$generativeTraits.Background="Off-White"):2===e?(tB=c("#F0F0DC"),window.$generativeTraits.Background="Tan"):3===e&&(tB=c("#E1E6EB"),window.$generativeTraits.Background="Gray")}function stCa(){let e=R.r_d(),t=window.innerWidth,a=window.innerHeight;if(e<.45)ws=1200,hs=800,ps.size?(w=1.5*ps.size,h=ps.sM ize):.66667*t>=a?(w=1.5*a,h=a):(w=t,h=.66667*t),window.$generativeTraits.Canvas="Landscape";else if(e<.8)ws=800,hs=1200,ps.size?(w=ps.size,h=1.5*ps.size):1.5*t>=a?(w=.66667*a,h=a):(w=t,h=1.5*t),window.$generativeTraits.Canvas="Portrait";else{ws=1200,hs=1200;let e=Math.min(window.innerWidth,window.innerHeight);ps.size?(w=ps.size,h=ps.size):(w=e,h=e),window.$generativeTraits.Canvas="Square"}}function stF(){iSH=R.r_b(.6),iSS=R.r_b(.22)}function stG(){16===(gZ=pS([10,23,40,60,78,95,100],[16,20,25,40,50,80,100]))?windowM .$generativeTraits.Size="XX Small":20===gZ?window.$generativeTraits.Size="X Small":25===gZ?window.$generativeTraits.Size="Small":40===gZ?window.$generativeTraits.Size="Medium":50===gZ?window.$generativeTraits.Size="Large":80===gZ?window.$generativeTraits.Size="X Large":100===gZ&&(window.$generativeTraits.Size="XX Large"),gyCt=hs/gZ,hZ=.05*(sqZ=w/(gxCt=ws/gZ)),f2=sF=.06*sqZ,f3=.5*sqZ,hO=.008*sqZ,f2=gZ>=100?.01*sqZ:gZ>=50?.02*sqZ:gZ>=25?.03*sqZ:gZ>=8?.06*sqZ:.11*sqZ}function stB(){let e=Math.max(gxCt,gyCt);bO=Math.flM oor(e*R.r_n(.01,.04)),window.$generativeTraits.Border=bO>0}function stN(){if(stNT(),noiseType1=noiseType,aN=[],R.r_b(.15)||noiseType>0&&R.r_b(.67)){iNChg=!0;let e=pS([8,20,30,40,50,60,74,80,86,92,97,100],[2,3,4,5,6,7,9,11,13,15,21,25]);for(let t=0;t<e;t++)if(aN.push(stNI()),0===t)nsq[t]=0;else{let a=Math.floor((gxCt-2*bO)*(gyCt-2*bO)/e);do{nsq[t]=a*(t-1)+R.r_i(.2*a,1.8*a)}while(nsq[t]<=nsq[t-1])}}else aN.push(stNI()),iNChg=!1;niB=R.r_n(0,1e5),noiseSeed(R.r_i(0,1e5)),ni=0}function stNT(){0!==noiseType1&&(noiseType=pM S([50,60,70,80,90,100],[0,1,2,3,4,5])),exMu=R.r_i(2,10),tanD=pS([50,65,80,90,100],[1,2,3,4,5])}function stNI(){let e=pS([4,16,28,38,48,60,68,76,86,94,98,100],[.003,.005,.0075,.01,.015,.022,.03,.05,.1,.2,1,3]);return gZ>=50&&e<.02&&(e=R.r_c([.03,.05,.1,.2,1,3])),gZ<=5&&e>.02&&(e=R.r_c([.003,.005,.0075,.01,.015])),e}function pS(e,t){let a=R.r_d();for(let n=0;n<e.length;n++)if(a<=e[n]/100)return t[n]}function setup(){noLoop(),createCanvas(w,h),strokeCap(SQUARE),ps.size&&pixelDensity(1),xc=width/2,yc=height/2}function M draw(){if(background(tB),translate(xc,yc),R.r_b(.5)&&rotate(PI),iSH)for(let e=bO;e<gyCt-bO;e++)if(iSS&&e%2==0)for(let t=gxCt-bO-1;t>=bO;t--)grid(e,t);else for(let t=bO;t<gxCt-bO;t++)grid(e,t);else for(let e=bO;e<gxCt-bO;e++)if(iSS&&e%2==0)for(let t=gyCt-bO-1;t>=bO;t--)grid(t,e);else for(let t=bO;t<gyCt-bO;t++)grid(t,e);savC()}function noiseCheck(){return 0===noiseType?noise(niB):1===noiseType?Math.pow(sin(niB)*sin(niB),exMu):2===noiseType?Math.pow(cos(niB)*cos(niB),exMu):3===noiseType?Math.pow(tan(niB)*tan(niB),exMM u)/tanD:4===noiseType?tan(niB)/tanD:5===noiseType?sin(sin(niB)):void 0}function grid(e,t){sCt++,push(),translate(t*sqZ-xc,e*sqZ-yc);for(let a=0;a<aR.length;a++)if(noiseCheck()<aR[a]){aGF[a](e,t);break}pop(),niB+=aN[ni],iNChg&&ni<aN.length-1&&nsq[ni+1]===sCt&&(stNT(),ni++)}function keyPressed(){let e=keyCode,t=!1;if(49!==e&&50!==e&&51!==e||(t=!0),t){let t=new URL(window.location.href),a=t.searchParams,n=3e3;return a.delete("size"),49===e||(50===e?n*=2:51===e&&(n*=3)),a.set("size",n),t.search=a.toString(),window.locaM tion.href=t.toString(),!1}}function savC(){ps.size&&saveCanvas("HoundstoothAndMash_"+seed,"png")} height: 100%; background-color: #fff; height: 100%; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; justify-content: center; align-items: center; margin: auto; display: block; <script type="text/javascript"> window.$generativeTraits = {}; text/html;charset=utf-8 <meta charset="UTF-8"> <title>Houndstooth and Mash</title> <!-- p5js@1.5.0 --> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyzM seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ M l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 let mathRand = sfc32(...cyrb128(seed)); <script type="text/javascript"> sole.log("Houndstooth And Mash\nFebruary 2023\nartplusbrad\n\nSeed: "+seed);class Rm{constructor(){}r_d(){return mathRand()}r_n(e,t){return e+(t-e)*this.r_d()}r_i(e,t){return Math.floor(this.r_n(e,t+1))}r_b(e){return this.r_d()<e}r_c(e){return e[this.r_i(0,e.length-1)]}}let ps,xc,yc,ws,hs,w,h,gZ,sqZ,gxCt,gyCt,aP,pID,aR,niB,aN,iNChg,ni,iSH,iSS,tB,aXID,sF,f2,f3,half,fl,qtr,td,bO,pX,hZ,ckCt,hD,lP,hO,skM,csSqZ,nsSqCt,nsSqZ,nsSW,noiseType,exMu,tanD,noiseType1,R=new Rm,nsq=[],sCt=0,apF=[],apC=[],apS=[],apE=[],apN=[],apP=M [],atC=new Array(5),aGF=[],aX=[],aNTi=[],aNTc=[],aNTd=[],cr=[];apF.push(()=>{hi(tB)}),apF.push(()=>{hi(tB)});for(let e=0;e<4;e++)apF.push(()=>{hi(cr[e])});apC[apC.length]=function(e,t){ck(c(0),0)};for(let e=0;e<4;e++)apC.push(()=>{ck(cr[e],e+1)});for(let e=0;e<4;e++)apN.push(()=>{nT(cr[e],e)});for(let e=0;e<4;e++)apP.push(()=>{sk(cr[e])});for(let e=0;e<4;e++)apS.push(()=>{st(cr[e])});for(let e=0;e<4;e++)apE.push(()=>{hh(cr[e])});function hi(e){noStroke(),fill(e),rect(0-f2,0-f2,sqZ+2*f2,sqZ+2*f2)}function ck(e,t){leM t a;a=0===atC[t]?cRan():atC[t],strokeWeight(sF/a);let n=sqZ/a;for(let t=0;t<a;t++)for(let s=0;s<a;s++)t%2==0&&s%2==0||t%2==1&&s%2==1?(stroke(e),fill(e)):(stroke(tB),fill(tB)),rect(s*n,t*n,n,n)}function hh(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),line(0+hO,qtr,fl-hO,qtr),line(0+hO,3*qtr,fl-hO,3*qtr),line(qtr,0+hO,qtr,fl-hO),line(3*qtr,0+hO,3*qtr,fl-hO),strokeCap(SQUARE)}function nT(e,t){noStroke(),fill(e),beginShape(),vertex(0,0),vertex(half,0),vertex(fl,half),vertex(3*qtr,half),vertex(half,qtr),verteM x(half,half),vertex(qtr,half),vertex(half,3*qtr),vertex(half,fl),vertex(0,half),endShape(CLOSE)}function st(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?(line(0+hO,qtr,fl-hO,qtr),line(qtr,0+hO,qtr,fl-hO)):(line(0+hO,3*qtr,fl-hO,3*qtr),line(3*qtr,0+hO,3*qtr,fl-hO)),strokeCap(SQUARE)}function sk(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?line(0+hO,qtr,fl-hO,qtr):line(qtr,0+hO,qtr,fl-hO),strokeCap(SQUARE)}function cRan(){return R.r_d()<.33?2*R.r_i(1,Math.floor(gZ/4)):2*Math.floor(M gZ/5)}function preload(){ps=getURLParams(),stC(),stCa(),stF(),stG(),gZ>=40&&apF.splice(0,1),stB(),half=.5*sqZ,fl=sqZ,qtr=.25*sqZ,td=.3333*sqZ;let e=R.r_d();if(e<.5){let e=cRan(),t=R.r_b(.5);for(let a=0;a<atC.length;a++)atC[a]=t?e:cRan()}else if(e<.75)for(let e=0;e<atC.length;e++)atC[e]=0;else for(let e=0;e<atC.length;e++)atC[e]=R.r_i(0,1),1===atC[e]&&(atC[e]=cRan());ckCt=2*Math.floor(gZ/5),csSqZ=sqZ/ckCt,nsSqCt=Math.floor(gZ/2),nsSqZ=sqZ/nsSqCt,nsSW=f3/nsSqCt;let t=R.r_d();t<.4?(aX.push([5,5,4,4,4,4]),aX.push([2,2,M 2,2,2,2]),aX.push([5,5,4,4,4,0]),aX.push([5,5,4,4,0,4]),aX.push([0,5,4,4,4,4])):t<.75?(aX.push([5,5,4,4,0,0]),aX.push([5,5,4,0,4,0]),aX.push([5,5,4,0,0,4]),aX.push([0,5,4,4,4,0]),aX.push([0,5,4,4,0,4]),aX.push([0,5,4,0,0,4]),aX.push([0,0,4,4,4,4])):(aX.push([5,5,4,0,0,0]),aX.push([5,5,0,4,0,0]),aX.push([5,5,0,0,4,0]),aX.push([5,5,0,0,0,4]),aX.push([5,0,4,4,0,0]),aX.push([5,0,4,0,4,0]),aX.push([5,0,4,0,0,4]),aX.push([5,0,0,4,4,0]),aX.push([5,0,0,4,0,4]),aX.push([5,0,0,0,4,4]),aX.push([0,5,4,4,0,0]),aX.push([0,5,4,0,M 4,0]),aX.push([0,5,4,0,0,4]),aX.push([0,5,0,4,4,0]),aX.push([0,5,0,4,0,4]),aX.push([0,5,0,0,4,4]),aX.push([0,0,4,4,4,0]),aX.push([0,0,4,4,0,4]),aX.push([0,0,4,0,4,4]),aX.push([0,0,0,4,4,4])),aXID=R.r_i(0,aX.length-1),pX=0;for(let e=0;e<aX[aXID].length;e++)pX+=aX[aXID][e];aD(apF,0),aD(apC,1),aD(apS,2),aD(apE,3),aD(apN,4),aD(apP,5),aR=new Array(pX);let a=2.5+.25*R.r_i(0,3);aR[0]=R.r_n(0,1/aR.length*a);for(let e=1;e<aR.length-1;e++)aR[e]=R.r_n(aR[e-1],aR[e-1]+(1-aR[e-1])/(aR.length-1)*a);aR[aR.length-1]=1;let n=[...apM F,...apC,...apS,...apE,...apN,...apP],s=n.length;for(let e=0;e<s;e++){let t=R.r_i(0,n.length-1);aGF[e]=n[t],n.splice(t,1)}R.r_b(.5),R.r_b(.5);hD=R.r_i(1,2),stN(),stBG()}function aD(e,t){aLen=e.length;for(let a=0;a<aLen-aX[aXID][t];a++){let t=R.r_i(0,e.length-1);e.splice(t,1)}}function c(e){return color(e)}function stC(){(aP=[])[0]=[c(25),c(55),c(85),c(120)],aP[aP.length]=[c("#2e7daf"),c("#ffd507"),c("#2897ff"),c("#ff665b")],aP[aP.length]=[c("#efe5a7"),c("#002972"),c("#f7e038"),c("#852129")],aP[aP.length]=[c("#55d9cM 0"),c("#ff60d2"),c("#107050"),c("#02231c")],aP[aP.length]=[c("#DE2121"),c(0),c("#DEDE21"),c("#2121DE")],aP[aP.length]=[c(40),c("#E04641"),c("#41C3E0"),c("#41E09E")],aP[aP.length]=[c("#FF3255"),c("#FF32C5"),c("#7332FF"),c("#3281FF")],aP[aP.length]=[c("#d75b66"),c("#23345c"),c("#a36142"),c("#54493f")],aP[aP.length]=[c("#899194"),c("#e5d503"),c("#2b7260"),c("#0c1885")],aP[aP.length]=[c("#1f3330"),c("#212027"),c("#f22f08"),c("#ff6f3f")],aP[aP.length]=[c("#0444bf"),c("#0584f2"),c("#0aaff1"),c("#ae5cb2")],aP[aP.length]=[M c("#6465a5"),c("#6975a6"),c("#f2e44b"),c("#ff4d35")],aP[aP.length]=[c("#f4ed71"),c("#9e2504"),c("#767287"),c("#04030c")],aP[aP.length]=[c("#192e5b"),c("#2c42a5"),c("#4d52bc"),c("#00743f")],aP[aP.length]=[c("#6F706F"),c("#65A547"),c("#f4ba18"),c("#f4650c")],aP[aP.length]=[c("#a3586d"),c("#5c4a72"),c("#f2be46"),c("#ef4e26")],aP[aP.length]=[c("#040627"),c("#03353e"),c("#0294a5"),c("#374351")],aP[aP.length]=[c("#FFC800"),c("#E0AC00"),c(30),c(60)],aP[aP.length]=[c("#FF00D4"),c("#D0FF00"),c("#00F7FF"),c("#6B0DFF")],aP[aPM .length]=[c("#D3002D"),c("#0D1156"),c("#4C2B56"),c("#C68419")],aP[aP.length]=[c("#25C9DB"),c(30),c("#513920"),c("#D89956")],aP[aP.length]=[c("#D80056"),c("#D8FF56"),c("#27A756"),c("#7884FF")],aP[aP.length]=[c(90),c("#FFE83D"),c("#17705E"),c("#182944")],aP[aP.length]=[c(45),c("#FF353C"),c("#FF5E66"),c("#A53E44")],aP[aP.length]=[c(30),c("#0059FF"),c("#357CFF"),c("#669BFF")],aP[aP.length]=[c("#FF0F0F"),c("#0026FF"),c("#C9D8FF"),c("#828CA5")];let e=R.r_d();pID=e<.02?0:e<.35?R.r_i(1,6):R.r_i(7,25),window.$generativeTraiM ts.Palette=pID,cr[0]=aP[pID][0],cr[1]=aP[pID][1],cr[2]=aP[pID][2],cr[3]=aP[pID][3]}function stBG(){let e=pS([40,65,85,100],[0,1,2,3]);0===e?(tB=c(255),window.$generativeTraits.Background="White"):1===e?(tB=c(247),window.$generativeTraits.Background="Off-White"):2===e?(tB=c("#F0F0DC"),window.$generativeTraits.Background="Tan"):3===e&&(tB=c("#E1E6EB"),window.$generativeTraits.Background="Gray")}function stCa(){let e=R.r_d(),t=window.innerWidth,a=window.innerHeight;if(e<.45)ws=1200,hs=800,ps.size?(w=1.5*ps.size,h=ps.sM ize):.66667*t>=a?(w=1.5*a,h=a):(w=t,h=.66667*t),window.$generativeTraits.Canvas="Landscape";else if(e<.8)ws=800,hs=1200,ps.size?(w=ps.size,h=1.5*ps.size):1.5*t>=a?(w=.66667*a,h=a):(w=t,h=1.5*t),window.$generativeTraits.Canvas="Portrait";else{ws=1200,hs=1200;let e=Math.min(window.innerWidth,window.innerHeight);ps.size?(w=ps.size,h=ps.size):(w=e,h=e),window.$generativeTraits.Canvas="Square"}}function stF(){iSH=R.r_b(.6),iSS=R.r_b(.22)}function stG(){16===(gZ=pS([10,23,40,60,78,95,100],[16,20,25,40,50,80,100]))?windowM .$generativeTraits.Size="XX Small":20===gZ?window.$generativeTraits.Size="X Small":25===gZ?window.$generativeTraits.Size="Small":40===gZ?window.$generativeTraits.Size="Medium":50===gZ?window.$generativeTraits.Size="Large":80===gZ?window.$generativeTraits.Size="X Large":100===gZ&&(window.$generativeTraits.Size="XX Large"),gyCt=hs/gZ,hZ=.05*(sqZ=w/(gxCt=ws/gZ)),f2=sF=.06*sqZ,f3=.5*sqZ,hO=.008*sqZ,f2=gZ>=100?.01*sqZ:gZ>=50?.02*sqZ:gZ>=25?.03*sqZ:gZ>=8?.06*sqZ:.11*sqZ}function stB(){let e=Math.max(gxCt,gyCt);bO=Math.flM oor(e*R.r_n(.01,.04)),window.$generativeTraits.Border=bO>0}function stN(){if(stNT(),noiseType1=noiseType,aN=[],R.r_b(.15)||noiseType>0&&R.r_b(.67)){iNChg=!0;let e=pS([8,20,30,40,50,60,74,80,86,92,97,100],[2,3,4,5,6,7,9,11,13,15,21,25]);for(let t=0;t<e;t++)if(aN.push(stNI()),0===t)nsq[t]=0;else{let a=Math.floor((gxCt-2*bO)*(gyCt-2*bO)/e);do{nsq[t]=a*(t-1)+R.r_i(.2*a,1.8*a)}while(nsq[t]<=nsq[t-1])}}else aN.push(stNI()),iNChg=!1;niB=R.r_n(0,1e5),noiseSeed(R.r_i(0,1e5)),ni=0}function stNT(){0!==noiseType1&&(noiseType=pM S([50,60,70,80,90,100],[0,1,2,3,4,5])),exMu=R.r_i(2,10),tanD=pS([50,65,80,90,100],[1,2,3,4,5])}function stNI(){let e=pS([4,16,28,38,48,60,68,76,86,94,98,100],[.003,.005,.0075,.01,.015,.022,.03,.05,.1,.2,1,3]);return gZ>=50&&e<.02&&(e=R.r_c([.03,.05,.1,.2,1,3])),gZ<=5&&e>.02&&(e=R.r_c([.003,.005,.0075,.01,.015])),e}function pS(e,t){let a=R.r_d();for(let n=0;n<e.length;n++)if(a<=e[n]/100)return t[n]}function setup(){noLoop(),createCanvas(w,h),strokeCap(SQUARE),ps.size&&pixelDensity(1),xc=width/2,yc=height/2}function M draw(){if(background(tB),translate(xc,yc),R.r_b(.5)&&rotate(PI),iSH)for(let e=bO;e<gyCt-bO;e++)if(iSS&&e%2==0)for(let t=gxCt-bO-1;t>=bO;t--)grid(e,t);else for(let t=bO;t<gxCt-bO;t++)grid(e,t);else for(let e=bO;e<gxCt-bO;e++)if(iSS&&e%2==0)for(let t=gyCt-bO-1;t>=bO;t--)grid(t,e);else for(let t=bO;t<gyCt-bO;t++)grid(t,e);savC()}function noiseCheck(){return 0===noiseType?noise(niB):1===noiseType?Math.pow(sin(niB)*sin(niB),exMu):2===noiseType?Math.pow(cos(niB)*cos(niB),exMu):3===noiseType?Math.pow(tan(niB)*tan(niB),exMM u)/tanD:4===noiseType?tan(niB)/tanD:5===noiseType?sin(sin(niB)):void 0}function grid(e,t){sCt++,push(),translate(t*sqZ-xc,e*sqZ-yc);for(let a=0;a<aR.length;a++)if(noiseCheck()<aR[a]){aGF[a](e,t);break}pop(),niB+=aN[ni],iNChg&&ni<aN.length-1&&nsq[ni+1]===sCt&&(stNT(),ni++)}function keyPressed(){let e=keyCode,t=!1;if(49!==e&&50!==e&&51!==e||(t=!0),t){let t=new URL(window.location.href),a=t.searchParams,n=3e3;return a.delete("size"),49===e||(50===e?n*=2:51===e&&(n*=3)),a.set("size",n),t.search=a.toString(),window.locaM tion.href=t.toString(),!1}}function savC(){ps.size&&saveCanvas("HoundstoothAndMash_"+seed,"png")} height: 100%; background-color: #fff; height: 100%; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; justify-content: center; align-items: center; margin: auto; display: block; <script type="text/javascript"> window.$generativeTraits = {}; text/html;charset=utf-8 <meta charset="UTF-8"> <title>Houndstooth and Mash</title> <!-- p5js@1.5.0 --> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyzM seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ M l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 let mathRand = sfc32(...cyrb128(seed)); <script type="text/javascript"> sole.log("Houndstooth And Mash\nFebruary 2023\nartplusbrad\n\nSeed: "+seed);class Rm{constructor(){}r_d(){return mathRand()}r_n(e,t){return e+(t-e)*this.r_d()}r_i(e,t){return Math.floor(this.r_n(e,t+1))}r_b(e){return this.r_d()<e}r_c(e){return e[this.r_i(0,e.length-1)]}}let ps,xc,yc,ws,hs,w,h,gZ,sqZ,gxCt,gyCt,aP,pID,aR,niB,aN,iNChg,ni,iSH,iSS,tB,aXID,sF,f2,f3,half,fl,qtr,td,bO,pX,hZ,ckCt,hD,lP,hO,skM,csSqZ,nsSqCt,nsSqZ,nsSW,noiseType,exMu,tanD,noiseType1,R=new Rm,nsq=[],sCt=0,apF=[],apC=[],apS=[],apE=[],apN=[],apP=M [],atC=new Array(5),aGF=[],aX=[],aNTi=[],aNTc=[],aNTd=[],cr=[];apF.push(()=>{hi(tB)}),apF.push(()=>{hi(tB)});for(let e=0;e<4;e++)apF.push(()=>{hi(cr[e])});apC[apC.length]=function(e,t){ck(c(0),0)};for(let e=0;e<4;e++)apC.push(()=>{ck(cr[e],e+1)});for(let e=0;e<4;e++)apN.push(()=>{nT(cr[e],e)});for(let e=0;e<4;e++)apP.push(()=>{sk(cr[e])});for(let e=0;e<4;e++)apS.push(()=>{st(cr[e])});for(let e=0;e<4;e++)apE.push(()=>{hh(cr[e])});function hi(e){noStroke(),fill(e),rect(0-f2,0-f2,sqZ+2*f2,sqZ+2*f2)}function ck(e,t){leM t a;a=0===atC[t]?cRan():atC[t],strokeWeight(sF/a);let n=sqZ/a;for(let t=0;t<a;t++)for(let s=0;s<a;s++)t%2==0&&s%2==0||t%2==1&&s%2==1?(stroke(e),fill(e)):(stroke(tB),fill(tB)),rect(s*n,t*n,n,n)}function hh(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),line(0+hO,qtr,fl-hO,qtr),line(0+hO,3*qtr,fl-hO,3*qtr),line(qtr,0+hO,qtr,fl-hO),line(3*qtr,0+hO,3*qtr,fl-hO),strokeCap(SQUARE)}function nT(e,t){noStroke(),fill(e),beginShape(),vertex(0,0),vertex(half,0),vertex(fl,half),vertex(3*qtr,half),vertex(half,qtr),verteM x(half,half),vertex(qtr,half),vertex(half,3*qtr),vertex(half,fl),vertex(0,half),endShape(CLOSE)}function st(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?(line(0+hO,qtr,fl-hO,qtr),line(qtr,0+hO,qtr,fl-hO)):(line(0+hO,3*qtr,fl-hO,3*qtr),line(3*qtr,0+hO,3*qtr,fl-hO)),strokeCap(SQUARE)}function sk(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?line(0+hO,qtr,fl-hO,qtr):line(qtr,0+hO,qtr,fl-hO),strokeCap(SQUARE)}function cRan(){return R.r_d()<.33?2*R.r_i(1,Math.floor(gZ/4)):2*Math.floor(M gZ/5)}function preload(){ps=getURLParams(),stC(),stCa(),stF(),stG(),gZ>=40&&apF.splice(0,1),stB(),half=.5*sqZ,fl=sqZ,qtr=.25*sqZ,td=.3333*sqZ;let e=R.r_d();if(e<.5){let e=cRan(),t=R.r_b(.5);for(let a=0;a<atC.length;a++)atC[a]=t?e:cRan()}else if(e<.75)for(let e=0;e<atC.length;e++)atC[e]=0;else for(let e=0;e<atC.length;e++)atC[e]=R.r_i(0,1),1===atC[e]&&(atC[e]=cRan());ckCt=2*Math.floor(gZ/5),csSqZ=sqZ/ckCt,nsSqCt=Math.floor(gZ/2),nsSqZ=sqZ/nsSqCt,nsSW=f3/nsSqCt;let t=R.r_d();t<.4?(aX.push([5,5,4,4,4,4]),aX.push([2,2,M 2,2,2,2]),aX.push([5,5,4,4,4,0]),aX.push([5,5,4,4,0,4]),aX.push([0,5,4,4,4,4])):t<.75?(aX.push([5,5,4,4,0,0]),aX.push([5,5,4,0,4,0]),aX.push([5,5,4,0,0,4]),aX.push([0,5,4,4,4,0]),aX.push([0,5,4,4,0,4]),aX.push([0,5,4,0,0,4]),aX.push([0,0,4,4,4,4])):(aX.push([5,5,4,0,0,0]),aX.push([5,5,0,4,0,0]),aX.push([5,5,0,0,4,0]),aX.push([5,5,0,0,0,4]),aX.push([5,0,4,4,0,0]),aX.push([5,0,4,0,4,0]),aX.push([5,0,4,0,0,4]),aX.push([5,0,0,4,4,0]),aX.push([5,0,0,4,0,4]),aX.push([5,0,0,0,4,4]),aX.push([0,5,4,4,0,0]),aX.push([0,5,4,0,M 4,0]),aX.push([0,5,4,0,0,4]),aX.push([0,5,0,4,4,0]),aX.push([0,5,0,4,0,4]),aX.push([0,5,0,0,4,4]),aX.push([0,0,4,4,4,0]),aX.push([0,0,4,4,0,4]),aX.push([0,0,4,0,4,4]),aX.push([0,0,0,4,4,4])),aXID=R.r_i(0,aX.length-1),pX=0;for(let e=0;e<aX[aXID].length;e++)pX+=aX[aXID][e];aD(apF,0),aD(apC,1),aD(apS,2),aD(apE,3),aD(apN,4),aD(apP,5),aR=new Array(pX);let a=2.5+.25*R.r_i(0,3);aR[0]=R.r_n(0,1/aR.length*a);for(let e=1;e<aR.length-1;e++)aR[e]=R.r_n(aR[e-1],aR[e-1]+(1-aR[e-1])/(aR.length-1)*a);aR[aR.length-1]=1;let n=[...apM F,...apC,...apS,...apE,...apN,...apP],s=n.length;for(let e=0;e<s;e++){let t=R.r_i(0,n.length-1);aGF[e]=n[t],n.splice(t,1)}R.r_b(.5),R.r_b(.5);hD=R.r_i(1,2),stN(),stBG()}function aD(e,t){aLen=e.length;for(let a=0;a<aLen-aX[aXID][t];a++){let t=R.r_i(0,e.length-1);e.splice(t,1)}}function c(e){return color(e)}function stC(){(aP=[])[0]=[c(25),c(55),c(85),c(120)],aP[aP.length]=[c("#2e7daf"),c("#ffd507"),c("#2897ff"),c("#ff665b")],aP[aP.length]=[c("#efe5a7"),c("#002972"),c("#f7e038"),c("#852129")],aP[aP.length]=[c("#55d9cM 0"),c("#ff60d2"),c("#107050"),c("#02231c")],aP[aP.length]=[c("#DE2121"),c(0),c("#DEDE21"),c("#2121DE")],aP[aP.length]=[c(40),c("#E04641"),c("#41C3E0"),c("#41E09E")],aP[aP.length]=[c("#FF3255"),c("#FF32C5"),c("#7332FF"),c("#3281FF")],aP[aP.length]=[c("#d75b66"),c("#23345c"),c("#a36142"),c("#54493f")],aP[aP.length]=[c("#899194"),c("#e5d503"),c("#2b7260"),c("#0c1885")],aP[aP.length]=[c("#1f3330"),c("#212027"),c("#f22f08"),c("#ff6f3f")],aP[aP.length]=[c("#0444bf"),c("#0584f2"),c("#0aaff1"),c("#ae5cb2")],aP[aP.length]=[M c("#6465a5"),c("#6975a6"),c("#f2e44b"),c("#ff4d35")],aP[aP.length]=[c("#f4ed71"),c("#9e2504"),c("#767287"),c("#04030c")],aP[aP.length]=[c("#192e5b"),c("#2c42a5"),c("#4d52bc"),c("#00743f")],aP[aP.length]=[c("#6F706F"),c("#65A547"),c("#f4ba18"),c("#f4650c")],aP[aP.length]=[c("#a3586d"),c("#5c4a72"),c("#f2be46"),c("#ef4e26")],aP[aP.length]=[c("#040627"),c("#03353e"),c("#0294a5"),c("#374351")],aP[aP.length]=[c("#FFC800"),c("#E0AC00"),c(30),c(60)],aP[aP.length]=[c("#FF00D4"),c("#D0FF00"),c("#00F7FF"),c("#6B0DFF")],aP[aPM .length]=[c("#D3002D"),c("#0D1156"),c("#4C2B56"),c("#C68419")],aP[aP.length]=[c("#25C9DB"),c(30),c("#513920"),c("#D89956")],aP[aP.length]=[c("#D80056"),c("#D8FF56"),c("#27A756"),c("#7884FF")],aP[aP.length]=[c(90),c("#FFE83D"),c("#17705E"),c("#182944")],aP[aP.length]=[c(45),c("#FF353C"),c("#FF5E66"),c("#A53E44")],aP[aP.length]=[c(30),c("#0059FF"),c("#357CFF"),c("#669BFF")],aP[aP.length]=[c("#FF0F0F"),c("#0026FF"),c("#C9D8FF"),c("#828CA5")];let e=R.r_d();pID=e<.02?0:e<.35?R.r_i(1,6):R.r_i(7,25),window.$generativeTraiM ts.Palette=pID,cr[0]=aP[pID][0],cr[1]=aP[pID][1],cr[2]=aP[pID][2],cr[3]=aP[pID][3]}function stBG(){let e=pS([40,65,85,100],[0,1,2,3]);0===e?(tB=c(255),window.$generativeTraits.Background="White"):1===e?(tB=c(247),window.$generativeTraits.Background="Off-White"):2===e?(tB=c("#F0F0DC"),window.$generativeTraits.Background="Tan"):3===e&&(tB=c("#E1E6EB"),window.$generativeTraits.Background="Gray")}function stCa(){let e=R.r_d(),t=window.innerWidth,a=window.innerHeight;if(e<.45)ws=1200,hs=800,ps.size?(w=1.5*ps.size,h=ps.sM ize):.66667*t>=a?(w=1.5*a,h=a):(w=t,h=.66667*t),window.$generativeTraits.Canvas="Landscape";else if(e<.8)ws=800,hs=1200,ps.size?(w=ps.size,h=1.5*ps.size):1.5*t>=a?(w=.66667*a,h=a):(w=t,h=1.5*t),window.$generativeTraits.Canvas="Portrait";else{ws=1200,hs=1200;let e=Math.min(window.innerWidth,window.innerHeight);ps.size?(w=ps.size,h=ps.size):(w=e,h=e),window.$generativeTraits.Canvas="Square"}}function stF(){iSH=R.r_b(.6),iSS=R.r_b(.22)}function stG(){16===(gZ=pS([10,23,40,60,78,95,100],[16,20,25,40,50,80,100]))?windowM .$generativeTraits.Size="XX Small":20===gZ?window.$generativeTraits.Size="X Small":25===gZ?window.$generativeTraits.Size="Small":40===gZ?window.$generativeTraits.Size="Medium":50===gZ?window.$generativeTraits.Size="Large":80===gZ?window.$generativeTraits.Size="X Large":100===gZ&&(window.$generativeTraits.Size="XX Large"),gyCt=hs/gZ,hZ=.05*(sqZ=w/(gxCt=ws/gZ)),f2=sF=.06*sqZ,f3=.5*sqZ,hO=.008*sqZ,f2=gZ>=100?.01*sqZ:gZ>=50?.02*sqZ:gZ>=25?.03*sqZ:gZ>=8?.06*sqZ:.11*sqZ}function stB(){let e=Math.max(gxCt,gyCt);bO=Math.flM oor(e*R.r_n(.01,.04)),window.$generativeTraits.Border=bO>0}function stN(){if(stNT(),noiseType1=noiseType,aN=[],R.r_b(.15)||noiseType>0&&R.r_b(.67)){iNChg=!0;let e=pS([8,20,30,40,50,60,74,80,86,92,97,100],[2,3,4,5,6,7,9,11,13,15,21,25]);for(let t=0;t<e;t++)if(aN.push(stNI()),0===t)nsq[t]=0;else{let a=Math.floor((gxCt-2*bO)*(gyCt-2*bO)/e);do{nsq[t]=a*(t-1)+R.r_i(.2*a,1.8*a)}while(nsq[t]<=nsq[t-1])}}else aN.push(stNI()),iNChg=!1;niB=R.r_n(0,1e5),noiseSeed(R.r_i(0,1e5)),ni=0}function stNT(){0!==noiseType1&&(noiseType=pM S([50,60,70,80,90,100],[0,1,2,3,4,5])),exMu=R.r_i(2,10),tanD=pS([50,65,80,90,100],[1,2,3,4,5])}function stNI(){let e=pS([4,16,28,38,48,60,68,76,86,94,98,100],[.003,.005,.0075,.01,.015,.022,.03,.05,.1,.2,1,3]);return gZ>=50&&e<.02&&(e=R.r_c([.03,.05,.1,.2,1,3])),gZ<=5&&e>.02&&(e=R.r_c([.003,.005,.0075,.01,.015])),e}function pS(e,t){let a=R.r_d();for(let n=0;n<e.length;n++)if(a<=e[n]/100)return t[n]}function setup(){noLoop(),createCanvas(w,h),strokeCap(SQUARE),ps.size&&pixelDensity(1),xc=width/2,yc=height/2}function M draw(){if(background(tB),translate(xc,yc),R.r_b(.5)&&rotate(PI),iSH)for(let e=bO;e<gyCt-bO;e++)if(iSS&&e%2==0)for(let t=gxCt-bO-1;t>=bO;t--)grid(e,t);else for(let t=bO;t<gxCt-bO;t++)grid(e,t);else for(let e=bO;e<gxCt-bO;e++)if(iSS&&e%2==0)for(let t=gyCt-bO-1;t>=bO;t--)grid(t,e);else for(let t=bO;t<gyCt-bO;t++)grid(t,e);savC()}function noiseCheck(){return 0===noiseType?noise(niB):1===noiseType?Math.pow(sin(niB)*sin(niB),exMu):2===noiseType?Math.pow(cos(niB)*cos(niB),exMu):3===noiseType?Math.pow(tan(niB)*tan(niB),exMM u)/tanD:4===noiseType?tan(niB)/tanD:5===noiseType?sin(sin(niB)):void 0}function grid(e,t){sCt++,push(),translate(t*sqZ-xc,e*sqZ-yc);for(let a=0;a<aR.length;a++)if(noiseCheck()<aR[a]){aGF[a](e,t);break}pop(),niB+=aN[ni],iNChg&&ni<aN.length-1&&nsq[ni+1]===sCt&&(stNT(),ni++)}function keyPressed(){let e=keyCode,t=!1;if(49!==e&&50!==e&&51!==e||(t=!0),t){let t=new URL(window.location.href),a=t.searchParams,n=3e3;return a.delete("size"),49===e||(50===e?n*=2:51===e&&(n*=3)),a.set("size",n),t.search=a.toString(),window.locaM tion.href=t.toString(),!1}}function savC(){ps.size&&saveCanvas("HoundstoothAndMash_"+seed,"png")} height: 100%; background-color: #fff; height: 100%; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; justify-content: center; align-items: center; margin: auto; display: block; <script type="text/javascript"> window.$generativeTraits = {}; text/html;charset=utf-8 <meta charset="UTF-8"> <title>Houndstooth and Mash</title> <!-- p5js@1.5.0 --> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyzM seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ M l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 let mathRand = sfc32(...cyrb128(seed)); <script type="text/javascript"> sole.log("Houndstooth And Mash\nFebruary 2023\nartplusbrad\n\nSeed: "+seed);class Rm{constructor(){}r_d(){return mathRand()}r_n(e,t){return e+(t-e)*this.r_d()}r_i(e,t){return Math.floor(this.r_n(e,t+1))}r_b(e){return this.r_d()<e}r_c(e){return e[this.r_i(0,e.length-1)]}}let ps,xc,yc,ws,hs,w,h,gZ,sqZ,gxCt,gyCt,aP,pID,aR,niB,aN,iNChg,ni,iSH,iSS,tB,aXID,sF,f2,f3,half,fl,qtr,td,bO,pX,hZ,ckCt,hD,lP,hO,skM,csSqZ,nsSqCt,nsSqZ,nsSW,noiseType,exMu,tanD,noiseType1,R=new Rm,nsq=[],sCt=0,apF=[],apC=[],apS=[],apE=[],apN=[],apP=M [],atC=new Array(5),aGF=[],aX=[],aNTi=[],aNTc=[],aNTd=[],cr=[];apF.push(()=>{hi(tB)}),apF.push(()=>{hi(tB)});for(let e=0;e<4;e++)apF.push(()=>{hi(cr[e])});apC[apC.length]=function(e,t){ck(c(0),0)};for(let e=0;e<4;e++)apC.push(()=>{ck(cr[e],e+1)});for(let e=0;e<4;e++)apN.push(()=>{nT(cr[e],e)});for(let e=0;e<4;e++)apP.push(()=>{sk(cr[e])});for(let e=0;e<4;e++)apS.push(()=>{st(cr[e])});for(let e=0;e<4;e++)apE.push(()=>{hh(cr[e])});function hi(e){noStroke(),fill(e),rect(0-f2,0-f2,sqZ+2*f2,sqZ+2*f2)}function ck(e,t){leM t a;a=0===atC[t]?cRan():atC[t],strokeWeight(sF/a);let n=sqZ/a;for(let t=0;t<a;t++)for(let s=0;s<a;s++)t%2==0&&s%2==0||t%2==1&&s%2==1?(stroke(e),fill(e)):(stroke(tB),fill(tB)),rect(s*n,t*n,n,n)}function hh(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),line(0+hO,qtr,fl-hO,qtr),line(0+hO,3*qtr,fl-hO,3*qtr),line(qtr,0+hO,qtr,fl-hO),line(3*qtr,0+hO,3*qtr,fl-hO),strokeCap(SQUARE)}function nT(e,t){noStroke(),fill(e),beginShape(),vertex(0,0),vertex(half,0),vertex(fl,half),vertex(3*qtr,half),vertex(half,qtr),verteM x(half,half),vertex(qtr,half),vertex(half,3*qtr),vertex(half,fl),vertex(0,half),endShape(CLOSE)}function st(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?(line(0+hO,qtr,fl-hO,qtr),line(qtr,0+hO,qtr,fl-hO)):(line(0+hO,3*qtr,fl-hO,3*qtr),line(3*qtr,0+hO,3*qtr,fl-hO)),strokeCap(SQUARE)}function sk(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?line(0+hO,qtr,fl-hO,qtr):line(qtr,0+hO,qtr,fl-hO),strokeCap(SQUARE)}function cRan(){return R.r_d()<.33?2*R.r_i(1,Math.floor(gZ/4)):2*Math.floor(M gZ/5)}function preload(){ps=getURLParams(),stC(),stCa(),stF(),stG(),gZ>=40&&apF.splice(0,1),stB(),half=.5*sqZ,fl=sqZ,qtr=.25*sqZ,td=.3333*sqZ;let e=R.r_d();if(e<.5){let e=cRan(),t=R.r_b(.5);for(let a=0;a<atC.length;a++)atC[a]=t?e:cRan()}else if(e<.75)for(let e=0;e<atC.length;e++)atC[e]=0;else for(let e=0;e<atC.length;e++)atC[e]=R.r_i(0,1),1===atC[e]&&(atC[e]=cRan());ckCt=2*Math.floor(gZ/5),csSqZ=sqZ/ckCt,nsSqCt=Math.floor(gZ/2),nsSqZ=sqZ/nsSqCt,nsSW=f3/nsSqCt;let t=R.r_d();t<.4?(aX.push([5,5,4,4,4,4]),aX.push([2,2,M 2,2,2,2]),aX.push([5,5,4,4,4,0]),aX.push([5,5,4,4,0,4]),aX.push([0,5,4,4,4,4])):t<.75?(aX.push([5,5,4,4,0,0]),aX.push([5,5,4,0,4,0]),aX.push([5,5,4,0,0,4]),aX.push([0,5,4,4,4,0]),aX.push([0,5,4,4,0,4]),aX.push([0,5,4,0,0,4]),aX.push([0,0,4,4,4,4])):(aX.push([5,5,4,0,0,0]),aX.push([5,5,0,4,0,0]),aX.push([5,5,0,0,4,0]),aX.push([5,5,0,0,0,4]),aX.push([5,0,4,4,0,0]),aX.push([5,0,4,0,4,0]),aX.push([5,0,4,0,0,4]),aX.push([5,0,0,4,4,0]),aX.push([5,0,0,4,0,4]),aX.push([5,0,0,0,4,4]),aX.push([0,5,4,4,0,0]),aX.push([0,5,4,0,M 4,0]),aX.push([0,5,4,0,0,4]),aX.push([0,5,0,4,4,0]),aX.push([0,5,0,4,0,4]),aX.push([0,5,0,0,4,4]),aX.push([0,0,4,4,4,0]),aX.push([0,0,4,4,0,4]),aX.push([0,0,4,0,4,4]),aX.push([0,0,0,4,4,4])),aXID=R.r_i(0,aX.length-1),pX=0;for(let e=0;e<aX[aXID].length;e++)pX+=aX[aXID][e];aD(apF,0),aD(apC,1),aD(apS,2),aD(apE,3),aD(apN,4),aD(apP,5),aR=new Array(pX);let a=2.5+.25*R.r_i(0,3);aR[0]=R.r_n(0,1/aR.length*a);for(let e=1;e<aR.length-1;e++)aR[e]=R.r_n(aR[e-1],aR[e-1]+(1-aR[e-1])/(aR.length-1)*a);aR[aR.length-1]=1;let n=[...apM F,...apC,...apS,...apE,...apN,...apP],s=n.length;for(let e=0;e<s;e++){let t=R.r_i(0,n.length-1);aGF[e]=n[t],n.splice(t,1)}R.r_b(.5),R.r_b(.5);hD=R.r_i(1,2),stN(),stBG()}function aD(e,t){aLen=e.length;for(let a=0;a<aLen-aX[aXID][t];a++){let t=R.r_i(0,e.length-1);e.splice(t,1)}}function c(e){return color(e)}function stC(){(aP=[])[0]=[c(25),c(55),c(85),c(120)],aP[aP.length]=[c("#2e7daf"),c("#ffd507"),c("#2897ff"),c("#ff665b")],aP[aP.length]=[c("#efe5a7"),c("#002972"),c("#f7e038"),c("#852129")],aP[aP.length]=[c("#55d9cM 0"),c("#ff60d2"),c("#107050"),c("#02231c")],aP[aP.length]=[c("#DE2121"),c(0),c("#DEDE21"),c("#2121DE")],aP[aP.length]=[c(40),c("#E04641"),c("#41C3E0"),c("#41E09E")],aP[aP.length]=[c("#FF3255"),c("#FF32C5"),c("#7332FF"),c("#3281FF")],aP[aP.length]=[c("#d75b66"),c("#23345c"),c("#a36142"),c("#54493f")],aP[aP.length]=[c("#899194"),c("#e5d503"),c("#2b7260"),c("#0c1885")],aP[aP.length]=[c("#1f3330"),c("#212027"),c("#f22f08"),c("#ff6f3f")],aP[aP.length]=[c("#0444bf"),c("#0584f2"),c("#0aaff1"),c("#ae5cb2")],aP[aP.length]=[M c("#6465a5"),c("#6975a6"),c("#f2e44b"),c("#ff4d35")],aP[aP.length]=[c("#f4ed71"),c("#9e2504"),c("#767287"),c("#04030c")],aP[aP.length]=[c("#192e5b"),c("#2c42a5"),c("#4d52bc"),c("#00743f")],aP[aP.length]=[c("#6F706F"),c("#65A547"),c("#f4ba18"),c("#f4650c")],aP[aP.length]=[c("#a3586d"),c("#5c4a72"),c("#f2be46"),c("#ef4e26")],aP[aP.length]=[c("#040627"),c("#03353e"),c("#0294a5"),c("#374351")],aP[aP.length]=[c("#FFC800"),c("#E0AC00"),c(30),c(60)],aP[aP.length]=[c("#FF00D4"),c("#D0FF00"),c("#00F7FF"),c("#6B0DFF")],aP[aPM .length]=[c("#D3002D"),c("#0D1156"),c("#4C2B56"),c("#C68419")],aP[aP.length]=[c("#25C9DB"),c(30),c("#513920"),c("#D89956")],aP[aP.length]=[c("#D80056"),c("#D8FF56"),c("#27A756"),c("#7884FF")],aP[aP.length]=[c(90),c("#FFE83D"),c("#17705E"),c("#182944")],aP[aP.length]=[c(45),c("#FF353C"),c("#FF5E66"),c("#A53E44")],aP[aP.length]=[c(30),c("#0059FF"),c("#357CFF"),c("#669BFF")],aP[aP.length]=[c("#FF0F0F"),c("#0026FF"),c("#C9D8FF"),c("#828CA5")];let e=R.r_d();pID=e<.02?0:e<.35?R.r_i(1,6):R.r_i(7,25),window.$generativeTraiM ts.Palette=pID,cr[0]=aP[pID][0],cr[1]=aP[pID][1],cr[2]=aP[pID][2],cr[3]=aP[pID][3]}function stBG(){let e=pS([40,65,85,100],[0,1,2,3]);0===e?(tB=c(255),window.$generativeTraits.Background="White"):1===e?(tB=c(247),window.$generativeTraits.Background="Off-White"):2===e?(tB=c("#F0F0DC"),window.$generativeTraits.Background="Tan"):3===e&&(tB=c("#E1E6EB"),window.$generativeTraits.Background="Gray")}function stCa(){let e=R.r_d(),t=window.innerWidth,a=window.innerHeight;if(e<.45)ws=1200,hs=800,ps.size?(w=1.5*ps.size,h=ps.sM ize):.66667*t>=a?(w=1.5*a,h=a):(w=t,h=.66667*t),window.$generativeTraits.Canvas="Landscape";else if(e<.8)ws=800,hs=1200,ps.size?(w=ps.size,h=1.5*ps.size):1.5*t>=a?(w=.66667*a,h=a):(w=t,h=1.5*t),window.$generativeTraits.Canvas="Portrait";else{ws=1200,hs=1200;let e=Math.min(window.innerWidth,window.innerHeight);ps.size?(w=ps.size,h=ps.size):(w=e,h=e),window.$generativeTraits.Canvas="Square"}}function stF(){iSH=R.r_b(.6),iSS=R.r_b(.22)}function stG(){16===(gZ=pS([10,23,40,60,78,95,100],[16,20,25,40,50,80,100]))?windowM .$generativeTraits.Size="XX Small":20===gZ?window.$generativeTraits.Size="X Small":25===gZ?window.$generativeTraits.Size="Small":40===gZ?window.$generativeTraits.Size="Medium":50===gZ?window.$generativeTraits.Size="Large":80===gZ?window.$generativeTraits.Size="X Large":100===gZ&&(window.$generativeTraits.Size="XX Large"),gyCt=hs/gZ,hZ=.05*(sqZ=w/(gxCt=ws/gZ)),f2=sF=.06*sqZ,f3=.5*sqZ,hO=.008*sqZ,f2=gZ>=100?.01*sqZ:gZ>=50?.02*sqZ:gZ>=25?.03*sqZ:gZ>=8?.06*sqZ:.11*sqZ}function stB(){let e=Math.max(gxCt,gyCt);bO=Math.flM oor(e*R.r_n(.01,.04)),window.$generativeTraits.Border=bO>0}function stN(){if(stNT(),noiseType1=noiseType,aN=[],R.r_b(.15)||noiseType>0&&R.r_b(.67)){iNChg=!0;let e=pS([8,20,30,40,50,60,74,80,86,92,97,100],[2,3,4,5,6,7,9,11,13,15,21,25]);for(let t=0;t<e;t++)if(aN.push(stNI()),0===t)nsq[t]=0;else{let a=Math.floor((gxCt-2*bO)*(gyCt-2*bO)/e);do{nsq[t]=a*(t-1)+R.r_i(.2*a,1.8*a)}while(nsq[t]<=nsq[t-1])}}else aN.push(stNI()),iNChg=!1;niB=R.r_n(0,1e5),noiseSeed(R.r_i(0,1e5)),ni=0}function stNT(){0!==noiseType1&&(noiseType=pM S([50,60,70,80,90,100],[0,1,2,3,4,5])),exMu=R.r_i(2,10),tanD=pS([50,65,80,90,100],[1,2,3,4,5])}function stNI(){let e=pS([4,16,28,38,48,60,68,76,86,94,98,100],[.003,.005,.0075,.01,.015,.022,.03,.05,.1,.2,1,3]);return gZ>=50&&e<.02&&(e=R.r_c([.03,.05,.1,.2,1,3])),gZ<=5&&e>.02&&(e=R.r_c([.003,.005,.0075,.01,.015])),e}function pS(e,t){let a=R.r_d();for(let n=0;n<e.length;n++)if(a<=e[n]/100)return t[n]}function setup(){noLoop(),createCanvas(w,h),strokeCap(SQUARE),ps.size&&pixelDensity(1),xc=width/2,yc=height/2}function M draw(){if(background(tB),translate(xc,yc),R.r_b(.5)&&rotate(PI),iSH)for(let e=bO;e<gyCt-bO;e++)if(iSS&&e%2==0)for(let t=gxCt-bO-1;t>=bO;t--)grid(e,t);else for(let t=bO;t<gxCt-bO;t++)grid(e,t);else for(let e=bO;e<gxCt-bO;e++)if(iSS&&e%2==0)for(let t=gyCt-bO-1;t>=bO;t--)grid(t,e);else for(let t=bO;t<gyCt-bO;t++)grid(t,e);savC()}function noiseCheck(){return 0===noiseType?noise(niB):1===noiseType?Math.pow(sin(niB)*sin(niB),exMu):2===noiseType?Math.pow(cos(niB)*cos(niB),exMu):3===noiseType?Math.pow(tan(niB)*tan(niB),exMM u)/tanD:4===noiseType?tan(niB)/tanD:5===noiseType?sin(sin(niB)):void 0}function grid(e,t){sCt++,push(),translate(t*sqZ-xc,e*sqZ-yc);for(let a=0;a<aR.length;a++)if(noiseCheck()<aR[a]){aGF[a](e,t);break}pop(),niB+=aN[ni],iNChg&&ni<aN.length-1&&nsq[ni+1]===sCt&&(stNT(),ni++)}function keyPressed(){let e=keyCode,t=!1;if(49!==e&&50!==e&&51!==e||(t=!0),t){let t=new URL(window.location.href),a=t.searchParams,n=3e3;return a.delete("size"),49===e||(50===e?n*=2:51===e&&(n*=3)),a.set("size",n),t.search=a.toString(),window.locaM tion.href=t.toString(),!1}}function savC(){ps.size&&saveCanvas("HoundstoothAndMash_"+seed,"png")} height: 100%; background-color: #fff; height: 100%; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; justify-content: center; align-items: center; margin: auto; display: block; <script type="text/javascript"> window.$generativeTraits = {}; Bj@=:BNB.BNB:bnb1nhce2yrpt5hym0n0052trh54gxg3mt2vylxtqa:41397420::0 FjDOUT:55C57159E52FEB1F103E908C9F24C6EB68C3DBA9A04EDE2D84B6F2188AB38099 DjB=:BNB.BNB:bnb1asau9efqmezmrcpj747wgrk806njvx2pm7jrrq:29834675:te:0 (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc 'GIF resized on https://ezgif.com/resize rt 26 qx vy!nu$HG$nn$qm$rt%IH)yz+tt,uo,yt-yu-{w-|y-}|- ry xs!mt"tx#st#yy$mx%sn%yz% )|y*uy+ut,zy-zt1vx1wv2zr3{t3|t4ym4zv4~q4~v4 rt"ls#mn#ss#ux$ro)ux+tt,xu.xo.yy0yz2zs3vv3zv3|u3|{3~}4}w4 Fu Hp!Hx!Rw"Fn"Gv&Sx)Lm*j +Gv-Iv._x1_y3Kv3Lx5Sx7St8Mn8Rt9Mw:Sn:Ux:Yx=`x>1@DMvDUwD\xDexEFJFZwFnxHcwHnxJWwKWlKZwLIPRVwUWlUYwXWwYXm[Yw_]bfWlfavffwgXmgZugZygbzgg{hZuh]yhguie~igyih{iiwje Jz!Hw"Hx#Kr%Px&Gw&Hv&Jz&Ux'Hs(Hx(Mm)Lt+g .Nw0Ip1Hl1Hw3Px3Sw4Sn4j 6Hk6Ix7Hp7Iw7Qj7Wx8Sx8Vi8Vs8Ww8WM x8[z;Ox<Vt>Hq>Lw?Hk?QlBLxBTxCMgCTrDTlEHoEMjEMqFWwGWxIWxQUwUUvWXwYXw]]w`WiaXrgW[gXogYqgYwg[xg^whX\hYrhYwh[xh]oi]{ji~ji SM*gR&fS VT%]T1UY&f[$\^(\a di)\i)`k Wl%cl2am%\q(]r _s#^s#cs+^s,bs2dsY~t"iu2M mx4ky#k{1g{2j|4j|5l} it+ct-cu3eu7gv5jw4lw8ix mx#hx3ix5ly5gz/ez6k|4j cc"cc+bc,dc4bd2hd3ee6M ceMcf7fg'ih#hh4gh7hh9hi'gj hd*id6hg3fg4gh!eh#ih3gj4lj5lk lk5gl4hp6rp8rq;mq;ur cc#cc*bc*ec/cc3bc6cc8cd,bd1cd4ce#he4hf4gg-dh ]C#cC$_C+^C+cC3cD#hD4fD5cE4gE8dF4iH bH3dH8eI.dI5lI6dJ6mK dK#dL5oP&gQ4nQ4pS4pTIYUGSUHUY ^C3dC3kD+cD4kE0gE4gF)_F4hH3dI dI(hI4lI5nI7mJ"dJ4mK text/plain;charset=utf-8 c/Foundry USA Pool #dropgold/ KjISWAPTX:0xe49ec5445a3a391a6d91eb0f0db24c3b135ed06135944a78b1ae649222bf3b5aub FjDOUT:5FE272289C8BD880030E1ACBB9815CF200723C0AF5B99A79AF49431478E2F51E FjDOUT:E001E06C9A3738E3ABD6BB0DCD141A4E4D8097FADA23301F8C32EB6FDD3ACB29 FjDOUT:CA0F82677B1113A8D4D3CBB97FF7B3F476B4A1D050B660784AC8DD21AAF8D3D0 text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> text/html;charset=utf-8 <meta charset="UTF-8"> <title>Mayan calendar </title> function Q5(e){"use strict";return new function e(t){let n="global"==t?window:this;n.canvas=document.createElement("canvas");let o=n.canvas.getContext("2d");n.width=100;n.height=100;n.canvas.width=n.width;n.canvas.height=n.height;"offscreen"!=t&&(document.body?document.body.appendChild(n.canvas):window.addEventListener("load",function(){document.body.appendChild(n.canvas)}));m();nM .MAGIC=161533525;n.RGB=0;n.HSV=1;n.HSB=1;n.CHORD=0;n.PIE=1;n.OPEN=2;n.RADIUS=1;n.CORNER=2;n.CORNERS=3;n.ROUND="round";n.SQUARE="butt";n.PROJECT="square";n.MITER="miter";n.BEVEL="bevel";n.CLOSE=1;n.BLEND="source-over";n.REMOVE="destination-out";n.ADD="lighter";n.DARKEST="darken";n.LIGHTEST="lighten";n.DIFFERENCE="difference";n.SUBTRACT="subtract";n.EXCLUSION="exclusion";n.MULTIPLY="multiply";n.SCREEN="screen";n.REPLACE="copy";n.OVERLAY="overlay";n.HARD_LIGHT="hard-light";n.SOFT_LIGHT="soft-light";n.DODGE="color-dodgM e";n.BURN="color-burn";n.NORMAL="normal";n.ITALIC="italic";n.BOLD="bold";n.BOLDITALIC="italic bold";n.CENTER="center";n.LEFT="left";n.RIGHT="right";n.TOP="top";n.BOTTOM="bottom";n.BASELINE="alphabetic";n.LANDSCAPE="landscape";n.PORTRAIT="portrait";n.ALT=18;n.BACKSPACE=8;n.CONTROL=17;n.DELETE=46;n.DOWN_ARROW=40;n.ENTER=13;n.ESCAPE=27;n.LEFT_ARROW=37;n.OPTION=18;n.RETURN=13;n.RIGHT_ARROW=39;n.SHIFT=16;n.TAB=9;n.UP_ARROW=38;n.HALF_PI=Math.PI/2;n.PI=Math.PI;n.QUARTER_PI=Math.PI/4;n.TAU=2*Math.PI;n.TWO_PI=2*Math.PI;n.THM RESHOLD=1;n.GRAY=2;n.OPAQUE=3;n.INVERT=4;n.POSTERIZE=5;n.DILATE=6;n.ERODE=7;n.BLUR=8;n.ARROW="default";n.CROSS="crosshair";n.HAND="pointer";n.MOVE="move";n.TEXT="text";n.VIDEO={video:!0,audio:!1};n.AUDIO={video:!1,audio:!0};n.SHR3=1;n.LCG=2;n.HARDWARE_FILTERS=!0;n.hint=function(e,t){n[e]=t};n.frameCount=0;n.mouseX=0;n.mouseY=0;n.pmouseX=0;n.pmouseY=0;n.mouseButton=null;n.keyIsPressed=!1;n.mouseIsPressed=!1;n.key=null;n.keyCode=null;n.pixels=null;n.accelerationX=0;n.accelerationY=0;n.accelerationZ=0;n.rotationX=0;n.M rotationY=0;n.rotationZ=0;n.relRotationX=0;n.relRotationY=0;n.relRotationZ=0;n.pAccelerationX=0;n.pAccelerationY=0;n.pAccelerationZ=0;n.pRotationX=0;n.pRotationY=0;n.pRotationZ=0;n.pRelRotationX=0;n.pRelRotationY=0;n.pRelRotationZ=0;n.touches=[];n._colorMode=n.RGB;n._noStroke=!1;n._noFill=!1;n._ellipseMode=n.CENTER;n._rectMode=n.CORNER;n._curveDetail=20;n._curveAlpha=0;n._noLoop=!1;n._textFont="sans-serif";n._textSize=12;n._textLeading=12;n._textStyle="normal";n._pixelDensity=1;n._frameRate=null;n._tint=null;let a=M null;let r=!0;let i=[];let l=null;let u=0;let s={};let c=0;let h=null;let f=null;let d=null;Object.defineProperty(n,"deviceOrientation",{get:function(){return 90==Math.abs(window.orientation)?n.LANDSCAPE:n.PORTRAIT}});Object.defineProperty(n,"windowWidth",{get:function(){return window.innerWidth}});Object.defineProperty(n,"windowHeight",{get:function(){return window.innerHeight}});Object.defineProperty(n,"drawingContext",{get:function(){return o}});n.createCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,M n.canvas.height=t,m()};n.resizeCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t};n.createGraphics=n.createImage=function(t,n){let o=new e("offscreen");return o.createCanvas(t,n),o.noLoop(),o};n.pixelDensity=function(e){return null==e?n._pixelDensity:(n._pixelDensity=e,n.canvas.width=Math.ceil(n.width*e),n.canvas.height=Math.ceil(n.height*e),n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px",o.scale(n._pixelDensity,n._pixelDensity),m(),n._pixelDensity)};n.map=function(eM ,t,n,o,a,r){let i=o+1*(e-t)/(n-t)*(a-o);return r?o<a?Math.min(Math.max(i,o),a):Math.min(Math.max(i,a),o):i};n.lerp=function(e,t,n){return e*(1-n)+t*n};n.constrain=function(e,t,n){return Math.min(Math.max(e,t),n)};n.dist=function(){return 4==arguments.length?Math.hypot(arguments[0]-arguments[2],arguments[1]-arguments[3]):Math.hypot(arguments[0]-arguments[3],arguments[1]-arguments[4],arguments[2]-arguments[5])};n.norm=function(e,t,o){return n.map(e,t,o,0,1)};n.sq=function(e){return e*e};n.fract=function(e){return e-MM ath.floor(e)};n.degrees=function(e){return 180*e/Math.PI};n.radians=function(e){return e*Math.PI/180};n.abs=Math.abs;n.ceil=Math.ceil;n.exp=Math.exp;n.floor=Math.floor;n.log=Math.log;n.mag=Math.hypot;n.max=Math.max;n.min=Math.min;n.round=Math.round;n.sqrt=Math.sqrt;n.sin=Math.sin;n.cos=Math.cos;n.tan=Math.tan;n.asin=Math.asin;n.acos=Math.acos;n.atan=Math.atan;n.atan2=Math.atan2;n.Vector=function(e,t,o){let a=this;a.x=e||0,a.y=t||0,a.z=o||0;let r=null,i=null;function l(e,t,n){return null!=e.x?e:null!=t?{x:e,y:t,z:n|M |0}:{x:e,y:e,z:e}}function u(){null==i&&(i=a.x*a.x+a.y*a.y+a.z*a.z,r=Math.sqrt(i))}function s(){i=null,r=null}a.set=function(e,t,n){a.x=e||0,a.y=t||0,a.z=n||0},a.copy=function(){return new n.Vector(a.x,a.y,a.z)},a.add=function(){let e=l.apply(null,arguments);return a.x+=e.x,a.y+=e.y,a.z+=e.z,s(),a},a.rem=function(){let e=l.apply(null,arguments);return a.x%=e.x,a.y%=e.y,a.z%=e.z,s(),a},a.sub=function(){let e=l.apply(null,arguments);return a.x-=e.x,a.y-=e.y,a.z-=e.z,s(),a},a.mult=function(){let e=l.apply(null,argumenM ts);return a.x*=e.x,a.y*=e.y,a.z*=e.z,s(),a},a.div=function(){let e=l.apply(null,arguments);return a.x/=e.x,a.y/=e.y,a.z/=e.z,s(),a},a.mag=function(){return u(),r},a.magSq=function(){return u(),i},a.dot=function(){let e=l.apply(null,arguments);return a.x*e.x+a.y*e.y+a.z*e.z},a.dist=function(){let e=l.apply(null,arguments),t=a.x-e.x,n=a.y-e.y,o=a.z-e.z;return Math.sqrt(t*t+n*n+o*o)},a.cross=function(){let e=l.apply(null,arguments),t=a.y*e.z-a.z*e.y,n=a.z*e.x-a.x*e.z,o=a.x*e.y-a.y*e.x;return a.x=t,a.y=n,a.z=o,s(),a},M a.normalize=function(){u();let e=r;return a.x/=e,a.y/=e,a.z/=e,r=1,i=1,a},a.limit=function(e){u();let t=r;if(t>e){let n=e/t;a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e}return a},a.setMag=function(e){u();let t=r,n=e/t;return a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e,a},a.heading=function(){return Math.atan2(a.y,a.x)},a.rotate=function(e){let t=Math.cos(e),n=Math.sin(e),o=a.x*t-a.y*n,r=a.x*n+a.y*t;return a.x=o,a.y=r,a},a.angleBetween=function(){let e=l.apply(null,arguments);const t=a.dot(e)/(a.mag()*e.mag());let n;return n=Math.acos(Math.miM n(1,Math.max(-1,t))),n*=Math.sign(a.cross(e).z||1)},a.lerp=function(e,t){return a.x=a.x*(1-t)+e.x*t,a.y=a.y*(1-t)+e.y*t,a.z=a.z*(1-t)+e.z*t,s(),a},a.reflect=function(e){return e.normalize(),a.sub(e.mult(2*a.dot(e)))},a.array=function(){return[a.x,a.y,a.z]},a.equals=function(e,t){return null==t&&null==(t=Number.EPSILON)&&(t=0),Math.abs(e.x-a.x)<t&&Math.abs(e.y-a.y)<t&&Math.abs(e.z-a.z)<t},a.fromAngle=function(e,t){return null==t&&(t=1),r=t,i=t*t,a.x=t*Math.cos(e),a.y=t*Math.sin(e),a.z=0,a},a.fromAngles=function(e,t,M n){null==n&&(n=1),r=n,i=n*n;const o=Math.cos(t),l=Math.sin(t),u=Math.cos(e),s=Math.sin(e);return a.x=n*s*l,a.y=-n*u,a.z=n*s*o,a},a.random2D=function(){return r=1,i=1,a.fromAngle(Math.random()*Math.PI*2)},a.random3D=function(){return r=1,i=1,a.fromAngles(Math.random()*Math.PI*2,Math.random()*Math.PI*2)},a.toString=function(){return`[${a.x}, ${a.y}, ${a.z}]`}};n.Vector.add=function(e,t){return new n.Vector(e.x+t.x,e.y+t.y,e.z+t.z)};n.Vector.rem=function(e,t){return new n.Vector(e.x%t.x,e.y%t.y,e.z%t.z)};n.Vector.sub=M function(e,t){return new n.Vector(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.mult=function(e,t){return null==t.x?new n.Vector(e.x*t,e.y*t,e.z*t):new n.Vector(e.x*t.x,e.y*t.y,e.z*t.z)};n.Vector.div=function(e,t){return null==t.x?new n.Vector(e.x/t,e.y/t,e.z/t):new n.Vector(e.x/t.x,e.y/t.y,e.z/t.z)};n.Vector.dist=function(e,t){return Math.hypot(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.cross=function(e,t){return new n.Vector(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x)};n.Vector.lerp=function(e,t,o){return new n.Vector(e.x*(1-oM )+t.x*o,e.y=e.y*(1-o)+t.y*o,e.z=e.z*(1-o)+t.z*o)};n.Vector.equals=function(e,t,n){return e.equals(t,n)};for(let e of["fromAngle","fromAngles","random2D","random3D"])n.Vector[e]=function(t,o,a){return(new n.Vector)[e](t,o,a)};n.createVector=function(e,t,o){return new n.Vector(e,t,o)};n.curvePoint=function(e,t,n,o,a){const r=a*a*a,i=a*a,l=-.5*r+i-.5*a,u=1.5*r-2.5*i+1,s=-1.5*r+2*i+.5*a,c=.5*r-.5*i;return e*l+t*u+n*s+o*c};n.bezierPoint=function(e,t,n,o,a){const r=1-a;return Math.pow(r,3)*e+3*Math.pow(r,2)*a*t+3*r*Math.M pow(a,2)*n+Math.pow(a,3)*o};n.curveTangent=function(e,t,n,o,a){const r=a*a,i=-3*r/2+2*a-.5,l=9*r/2-5*a,u=-9*r/2+4*a+.5,s=3*r/2-a;return e*i+t*l+n*u+o*s};n.bezierTangent=function(e,t,n,o,a){const r=1-a;return 3*o*Math.pow(a,2)-3*n*Math.pow(a,2)+6*n*r*a-6*t*r*a+3*t*Math.pow(r,2)-3*e*Math.pow(r,2)};function p(e,t,n){let o,a,r,i,l,u,s,c,h;if(0==t)return[255*(o=n),255*(a=n),255*(r=n)];switch((i=e)>360&&(i=0),s=n*(1-t),c=n*(1-t*(u=(i/=60)-(l=~~i))),h=n*(1-t*(1-u)),l){case 0:o=n,a=h,r=s;break;case 1:o=c,a=n,r=s;break;caseM 2:o=s,a=n,r=h;break;case 3:o=s,a=c,r=n;break;case 4:o=h,a=s,r=n;break;default:o=n,a=s,r=c}return[255*o,255*a,255*r]}n.Color=function(e,t,n,o){let a=this;a.MAGIC=786698,a._r=e,a._g=t,a._b=n,a._a=o,a._h=0,a._s=0,a._v=0,a._hsvInferred=!1,a.setRed=function(e){a._r=e,a._hsvInferred=!1},a.setGreen=function(e){a._g=e,a._hsvInferred=!1},a.setBlue=function(e){a._b=e,a._hsvInferred=!1},a.setAlpha=function(e){a._a=e/255,a._hsvInferred=!1},a._inferHSV=function(){a._hsvInferred||([a._h,a._s,a._v]=function(e,t,n){let o,a,r,i,l;M if(o=e<t?e<n?e:n:t<n?t:n,0==(l=100*(a=e>t?e>n?e:n:t>n?t:n)/255))return[r=0,i=0,l];if(0==(i=100*(a-o)/a))return[r=0,i,l];r=a==e?0+60*(t-n)/(a-o):a==t?120+60*(n-e)/(a-o):240+60*(e-t)/(a-o);return[r,i,l]}(a._r,a._g,a._b),a._hsvInferred=!0)},a.toString=function(){return`rgba(${Math.round(a._r)},${Math.round(a._g)},${Math.round(a._b)},${~~(1e3*a._a)/1e3})`}};n.colorMode=function(e){n._colorMode=e};n.color=function(){if(1==arguments.length&&786698==arguments[0].MAGIC)return arguments[0];if(n._colorMode==n.RGB){if(1==arguM ments.length)return new n.Color(arguments[0],arguments[0],arguments[0],1);if(2==arguments.length)return new n.Color(arguments[0],arguments[0],arguments[0],arguments[1]/255);if(3==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],1);if(4==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],arguments[3]/255)}else{if(1==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),1);if(2==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),arguments[1]/255);M if(3==arguments.length)return new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),1);if(4==arguments.length)return new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),arguments[3])}return null};n.red=function(e){return e._r};n.green=function(e){return e._g};n.blue=function(e){return e._b};n.alpha=function(e){return 255*e._a};n.hue=function(e){return e._inferHSV(),e._h};n.saturation=function(e){return e._inferHSV(),e._s};n.brightness=function(e){return e._inferHSV(),e._v};n.lightness=functiM on(e){return 100*(.2126*e._r+.7152*e._g+.0722*e._b)/255};n.lerpColor=function(e,t,o){return n._colorMode==n.RGB?new n.Color(n.constrain(n.lerp(e._r,t._r,o),0,255),n.constrain(n.lerp(e._g,t._g,o),0,255),n.constrain(n.lerp(e._b,t._b,o),0,255),n.constrain(n.lerp(e._a,t._a,o),0,1)):(e._inferHSV(),t._inferHSV(),new n.Color(n.constrain(function(e,t,o){var a=[[Math.abs(t-e),n.map(o,0,1,e,t)],[Math.abs(t+360-e),n.map(o,0,1,e,t+360)],[Math.abs(t-360-e),n.map(o,0,1,e,t-360)]];return a.sort((e,t)=>e[0]-t[0]),(a[0][1]+720)%360M }(e._h,t._h,o),0,360),n.constrain(n.lerp(e._s,t._s,o),0,100),n.constrain(n.lerp(e._v,t._v,o),0,100),n.constrain(n.lerp(e._a,t._a,o),0,1)))};function m(){o.fillStyle="white",o.strokeStyle="black",o.lineCap="round",o.lineJoin="miter"}n.strokeWeight=function(e){n._noStroke=!1,o.lineWidth=e};n.stroke=function(){if(n._noStroke=!1,"string"==typeof arguments[0])return void(o.strokeStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noStroke=!0:o.strokeStyle=e};n.noStroke=function(){n._noStroke=!0};n.fill=fuM nction(){if(n._noFill=!1,"string"==typeof arguments[0])return void(o.fillStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noFill=!0:o.fillStyle=e};n.noFill=function(){n._noFill=!0};n.blendMode=function(e){o.globalCompositeOperation=e};n.strokeCap=function(e){o.lineCap=e};n.strokeJoin=function(e){o.lineJoin=e};n.ellipseMode=function(e){n._ellipseMode=e};n.rectMode=function(e){n._rectMode=e};n.curveDetail=function(e){n._curveDetail=e};n.curveAlpha=function(e){n._curveAlpha=e};n.curveTightness=functiM on(e){console.warn("curveTightness() sets the 'alpha' parameter of Catmull-Rom curve, and is NOT identical to p5.js counterpart. As this might change in the future, please call curveAlpha() directly."),n._curveAlpha=e};n.clear=function(){o.clearRect(0,0,n.width,n.height)};n.background=function(){if(arguments[0]&&arguments[0].MAGIC==n.MAGIC)return n.image(arguments[0],0,0,n.width,n.height);o.save(),o.resetTransform(),o.scale(n._pixelDensity,n._pixelDensity),"string"==typeof arguments[0]?o.fillStyle=arguments[0]:o.fiM llStyle=n.color(...Array.from(arguments)),o.fillRect(0,0,n.width,n.height),o.restore()};n.line=function(e,t,a,r){n._noStroke||(o.beginPath(),o.moveTo(e,t),o.lineTo(a,r),o.stroke())};function g(e){if(0<=e&&e<2*Math.PI)return e;for(;e<0;)e+=2*Math.PI;for(;e>=Math.PI;)e-=2*Math.PI;return e}function v(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;let c=g(i),h=g(l);o.beginPath();for(let i=0;i<s+1;i++){let l=i/s,u=n.lerp(c,h,l),f=Math.cos(u)*a/2,d=Math.sin(u)*r/2;o[i?"lineTo":"moveTo"](e+f,t+d)}u==n.CHORD?o.closePathM ():u==n.PIE&&(o.lineTo(e,t),o.closePath()),n._noFill||o.fill(),n._noStroke||o.stroke()}n.arc=function(e,t,o,a,r,i,l,u){if(r==i)return n.ellipse(e,t,o,a);null==u&&(u=25),null==l&&(l=n.PIE),n._ellipseMode==n.CENTER?v(e,t,o,a,r,i,l,u):n._ellipseMode==n.RADIUS?v(e,t,2*o,2*a,r,i,l,u):n._ellipseMode==n.CORNER?v(e+o/2,t+a/2,o,a,r,i,l,u):n._ellipseMode==n.CORNERS&&v((e+o)/2,(t+a)/2,o-e,a-t,r,i,l,u)};function M(e,t,a,r){n._noFill&&n._noStroke||(o.beginPath(),o.ellipse(e,t,a/2,r/2,0,0,2*Math.PI),n._noFill||o.fill(),n._noStroM ke||o.stroke())}n.ellipse=function(e,t,o,a){null==a&&(a=o),n._ellipseMode==n.CENTER?M(e,t,o,a):n._ellipseMode==n.RADIUS?M(e,t,2*o,2*a):n._ellipseMode==n.CORNER?M(e+o/2,t+a/2,o,a):n._ellipseMode==n.CORNERS&&M((e+o)/2,(t+a)/2,o-e,a-t)};n.circle=function(e,t,o){return n.ellipse(e,t,o,o)};n.point=function(e,t){e.x&&(t=e.y,e=e.x),o.beginPath(),o.ellipse(e,t,.4,.4,0,0,2*Math.PI),o.stroke()};function _(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;if(null==i)return function(e,t,a,r){n._noFill||o.fillRect(e,t,a,r);n._nM oStroke||o.strokeRect(e,t,a,r)}(e,t,a,r);if(null==l)return _(e,t,a,r,i,i,i,i);const c=Math.min(Math.abs(r),Math.abs(a))/2;i=Math.min(c,i),l=Math.min(c,l),s=Math.min(c,s),u=Math.min(c,u),o.beginPath(),o.moveTo(e+i,t),o.arcTo(e+a,t,e+a,t+r,l),o.arcTo(e+a,t+r,e,t+r,u),o.arcTo(e,t+r,e,t,s),o.arcTo(e,t,e+a,t,i),o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke()}n.rect=function(e,t,o,a,r,i,l,u){n._rectMode==n.CENTER?_(e-o/2,t-a/2,o,a,r,i,l,u):n._rectMode==n.RADIUS?_(e-o,t-a,2*o,2*a,r,i,l,u):n._rectMode==n.CORNER?_M (e,t,o,a,r,i,l,u):n._rectMode==n.CORNERS&&_(e,t,o-e,a-t,r,i,l,u)};n.square=function(e,t,o,a,r,i,l){return n.rect(e,t,o,o,a,r,i,l)};function x(){i=[]}n.beginShape=function(){x(),o.beginPath(),r=!0};n.beginContour=function(){o.closePath(),x(),r=!0};n.endContour=function(){x(),r=!0};n.vertex=function(e,t){x(),r?o.moveTo(e,t):o.lineTo(e,t),r=!1};n.bezierVertex=function(e,t,n,a,r,i){x(),o.bezierCurveTo(e,t,n,a,r,i)};n.quadraticVertex=function(e,t,n,a){x(),o.quadraticCurveTo(e,t,n,a)};n.bezier=function(e,t,o,a,r,i,l,u){nM .beginShape(),n.vertex(e,t),n.bezierVertex(o,a,r,i,l,u),n.endShape()};n.triangle=function(e,t,o,a,r,i){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.endShape(n.CLOSE)};n.quad=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.vertex(l,u),n.endShape(n.CLOSE)};n.endShape=function(e){x(),e&&o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke(),n._noFill&&n._noStroke&&(o.save(),o.fillStyle="none",o.fill(),o.restore())};n.curveVertex=function(e,t){if(i.push([e,t]),i.lenM gth<4)return;let a=i[i.length-4],l=i[i.length-3],u=i[i.length-2],s=i[i.length-1],c=function(e,t,n,o,a,r,i,l,u,s){function c(e,t,n,o,a,r){let i=Math.pow(o-t,2)+Math.pow(a-n,2),l=Math.pow(i,.5*r);return l+e}let h=[],f=c(0,e,t,n,o,s),d=c(f,n,o,a,r,s),p=c(d,a,r,i,l,s);for(let s=0;s<u;s++){let c=f+s/(u-1)*(d-f),m=[(f-c)/(f-0),(c-0)/(f-0),(d-c)/(d-f),(c-f)/(d-f),(p-c)/(p-d),(c-d)/(p-d),(d-c)/(d-0),(c-0)/(d-0),(p-c)/(p-f),(c-f)/(p-f)];for(let e=0;e<m.length;e+=2)isNaN(m[e])&&(m[e]=1,m[e+1]=0),isFinite(m[e])||(m[e]>0?(m[e]M =1,m[e+1]=0):(m[e]=0,m[e+1]=1));let g=e*m[0]+n*m[1],v=t*m[0]+o*m[1],M=n*m[2]+a*m[3],_=o*m[2]+r*m[3],x=a*m[4]+i*m[5],y=r*m[4]+l*m[5],w=g*m[6]+M*m[7],R=v*m[6]+_*m[7],I=M*m[8]+x*m[9],E=_*m[8]+y*m[9],S=w*m[2]+I*m[3],C=R*m[2]+E*m[3];h.push([S,C])}return h}(...a,...l,...u,...s,n._curveDetail,n._curveAlpha);for(let e=0;e<c.length;e++)r?o.moveTo(...c[e]):o.lineTo(...c[e]),r=!1};n.curve=function(e,t,o,a,r,i,l,u){n.beginShape(),n.curveVertex(e,t),n.curveVertex(o,a),n.curveVertex(r,i),n.curveVertex(l,u),n.endShape()};n.translM ate=function(e,t){o.translate(e,t)};n.rotate=function(e){o.rotate(e)};n.scale=function(e,t){null==t&&(t=e),o.scale(e,t)};n.applyMatrix=function(e,t,n,a,r,i){o.transform(e,t,n,a,r,i)};n.shearX=function(e){o.transform(1,0,Math.tan(e),1,0,0)};n.shearY=function(e){o.transform(1,Math.tan(e),0,1,0,0)};n.resetMatrix=function(){o.resetTransform(),o.scale(n._pixelDensity,n._pixelDensity)};n.pushMatrix=n.push=function(){o.save()};n.popMatrix=n.pop=function(){o.restore()};n.image=function(e,t,a,r,i,l,u,s,c){let h=e.MAGIC==n.MM AGIC?e.canvas:e;function d(){if(e.MAGIC!=n.MAGIC||!n._tint)return;let t=e.canvas.getContext("2d");t.save(),t.resetTransform(),t.clearRect(0,0,t.canvas.width,t.canvas.height),t.drawImage(f.canvas,0,0),t.restore()}return e.MAGIC==n.MAGIC&&null!=n._tint&&(!function(e,t){null==f&&(f=document.createElement("canvas").getContext("2d"));null==e&&(e=o.canvas.width,t=o.canvas.height);f.canvas.width==e&&f.canvas.height==t||(f.canvas.width=e,f.canvas.height=t)}(e.canvas.width,e.canvas.height),f.drawImage(e.canvas,0,0),e.tintedM (n._tint)),r?l?(s||(s=h.width),c||(c=h.height),o.drawImage(h,l,u,s,c,t,a,r,i),void d()):(o.drawImage(h,t,a,r,i),void d()):(e.MAGIC==n.MAGIC||e.width?o.drawImage(h,t,a,e.width,e.height):o.drawImage(h,t,a,e.videoWidth,e.videoHeight),void d())};n.loadPixels=function(){l=o.getImageData(0,0,n.canvas.width,n.canvas.height),n.pixels=l.data};n.updatePixels=function(){null!=l&&o.putImageData(l,0,0)};n.loadImage=function(e,t){u++;let o=n.createGraphics(100,100),a=o.canvas.getContext("2d"),r=new Image;return r.src=e,r.crossOrM igin="Anonymous",r.onload=function(){a.canvas.width=r.width,a.canvas.height=r.height,o.width=r.width,o.height=r.height,a.drawImage(r,0,0),u--,t&&t(o)},o};let y={};y[n.THRESHOLD]=function(e,t){null==t?t=127.5:t*=255;for(let n=0;n<e.length;n+=4){const o=.2126*e[n]+.7152*e[n+1]+.0722*e[n+2];e[n]=e[n+1]=e[n+2]=o>=t?255:0}};y[n.GRAY]=function(e){for(let t=0;t<e.length;t+=4){const n=.2126*e[t]+.7152*e[t+1]+.0722*e[t+2];e[t]=e[t+1]=e[t+2]=n}};y[n.OPAQUE]=function(e){for(let t=0;t<e.length;t+=4)e[t+3]=255};y[n.INVERT]=funcM tion(e){for(let t=0;t<e.length;t+=4)e[t]=255-e[t],e[t+1]=255-e[t+1],e[t+2]=255-e[t+2]};y[n.POSTERIZE]=function(e,t){let n=t-1;for(let o=0;o<e.length;o+=4)e[o]=255*(e[o]*t>>8)/n,e[o+1]=255*(e[o+1]*t>>8)/n,e[o+2]=255*(e[o+2]*t>>8)/n};y[n.DILATE]=function(e){R(),d.set(e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.max(dM [n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.ERODE]=function(e){R(),d.set(e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.min(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.BLUR]=function(e,t){t=t||1,t=Math.floor(t*n._pixelDensity),R(),d.set(e);let a=2*t+1;let r=function(e){let n=new Float32Array(e),o=.3*t+.8,a=o*o*2;for(letM t=0;t<e;t++){let r=t-e/2,i=Math.exp(-r*r/a)/(2.5066282746*o);n[t]=i}return n}(a),[i,l]=[o.canvas.width,o.canvas.height];for(let n=0;n<l;n++)for(let o=0;o<i;o++){let l=0,u=0,s=0,c=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(o-t+e,0),i-1),h=4*(n*i+a);l+=d[h]*r[e],u+=d[h+1]*r[e],s+=d[h+2]*r[e],c+=d[h+3]*r[e]}let h=4*(n*i+o);e[h]=l,e[h+1]=u,e[h+2]=s,e[h+3]=c}d.set(e);for(let n=0;n<l;n++)for(let o=0;o<i;o++){let u=0,s=0,c=0,h=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(n-t+e,0),l-1),f=4*(a*i+o);u+=d[f]*r[e],s+=d[M f+1]*r[e],c+=d[f+2]*r[e],h+=d[f+3]*r[e]}let f=4*(n*i+o);e[f]=u,e[f+1]=s,e[f+2]=c,e[f+3]=h}};function w(e,t){null==h&&(h=document.createElement("canvas").getContext("2d")),null==e&&(e=o.canvas.width,t=o.canvas.height),h.canvas.width==e&&h.canvas.height==t||(h.canvas.width=e,h.canvas.height=t)}function R(){let e=o.canvas.width*o.canvas.height*4;null!=d&&e==d.length||(d=new Uint8ClampedArray(e))}function I(e){h.clearRect(0,0,h.canvas.width,h.canvas.height),h.filter=e,h.drawImage(o.canvas,0,0),o.save(),o.resetTransformM (),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0),o.restore()}n.filter=function(e,t){let a=n.HARDWARE_FILTERS&&null!=o.filter;if(a)if(w(),e==n.THRESHOLD){null==t&&(t=.5),t=Math.max(t,1e-5);let e=Math.floor(.5/t*100);I(`saturate(0%) brightness(${e}%) contrast(1000000%)`)}else if(e==n.GRAY)I("saturate(0%)");else if(e==n.OPAQUE)h.fillStyle="black",h.fillRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.drawImage(h.canvas,0,0),o.restore();else ifM (e==n.INVERT)I("invert(100%)");else if(e==n.BLUR)I(`blur(${Math.ceil(t*n._pixelDensity/1)||1}px)`);else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}};n.resize=function(e,t){w(),h.drawImage(o.canvas,0,0),n.width=e,n.height=t,o.canvas.width=e*n._pixelDensity,o.canvas.height=t*n._pixelDensity,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drM awImage(h.canvas,0,0,o.canvas.width,o.canvas.height),o.restore()};n.get=function(e,t,a,r){if(null!=e&&null==a){let a=o.getImageData(e,t,1,1).data;return new n.Color(a[0],a[1],a[2],a[3]/255)}e=e||0,t=t||0,a=a||n.width,r=r||n.height;let i=n.createGraphics(a,r);i.pixelDensity(n._pixelDensity);let l=o.getImageData(e*n._pixelDensity,t*n._pixelDensity,a*n._pixelDensity,r*n._pixelDensity);return i.canvas.getContext("2d").putImageData(l,0,0),i};n.set=function(e,t,a){if(a.MAGIC==n.MAGIC){let o=n._tint;return n._tint=null,n.M image(a,e,t),void(n._tint=o)}let r=4*(t*n._pixelDensity*o.canvas.width+e*n._pixelDensity);n.pixels[r]=a._r,n.pixels[r+1]=a._g,n.pixels[r+2]=a._b,n.pixels[r+3]=255*a._a};n.tinted=function(){let e=n.color(...Array.from(arguments)),t=e._a;e._a=1,w(),h.clearRect(0,0,h.canvas.width,h.canvas.height),h.fillStyle=e,h.fillRect(0,0,h.canvas.width,h.canvas.height),h.globalCompositeOperation="multiply",h.drawImage(o.canvas,0,0),h.globalCompositeOperation="source-over",o.save(),o.resetTransform();let a=o.globalCompositeOperatioM n;o.globalCompositeOperation="source-in",o.drawImage(h.canvas,0,0),o.globalCompositeOperation=a,o.restore(),h.globalAlpha=t,h.clearRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),h.globalAlpha=1,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0),o.restore()};n.tint=function(){n._tint=n.color(...Array.from(arguments))};n.noTint=function(){n._tint=null};n.mask=function(e){o.save(),o.resetTransform();let t=o.globalCompositeOperation;o.globalCompositM eOperation="destination-in",o.drawImage(e.canvas,0,0),o.globalCompositeOperation=t,o.restore()};n.clearTemporaryBuffers=function(){h=null,f=null,d=null};n.save=function(e,t){e=e||"untitled",t=t||"png";var n=document.createElement("a");n.innerHTML="[Download]",n.addEventListener("click",function(){this.href=o.canvas.toDataURL(),this.download=e+"."+t},!1),document.body.appendChild(n),n.click(),document.body.removeChild(n)};n.saveCanvas=function(e,t,o){if(e.MAGIC==n.MAGIC){o&&e.save(t,o);let n=t.split(".");return e.saM ve(n.slice(0,-1).join("."),n[n.length-1])}if(t)return n.save(e,t);let a=e.split(".");return n.save(a.slice(0,-1).join("."),a[a.length-1])};n.loadFont=function(e,t){let n=e.split("/"),o=n[n.length-1].split(".")[0].replace(" ",""),a=`@font-face {\n font-family: '${o}';\n src: url('${e}');\n }`;const r=document.createElement("style");return r.textContent=a,document.head.append(r),o};n.textFont=function(e){n._textFont=e};n.textSize=function(e){n._textSize=e,n._textLeading=e};n.textLeading=function(e)M {n._textLeading=e};n.textStyle=function(e){n._textStyle=e};n.textAlign=function(e,t){o.textAlign=e,t&&(o.textBaseline=t==n.CENTER?"middle":t)};n.text=function(e,t,a,r){if(!e)return;if(e=e.toString(),n._noFill&&n._noStroke)return;o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`;let i=e.split("\n");for(let e=0;e<i.length;e++)n._noFill||o.fillText(i[e],t,a,r),n._noStroke||o.strokeText(i[e],t,a,r),a+=n._textLeading};n.textWidth=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measurM eText(e).width};n.textAscent=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxAscent};n.textDescent=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxDescent};var E=4;var S=.5;var C=function(e){return.5*(1-Math.cos(e*Math.PI))};var A;n.noise=function(e,t,n){if(t=t||0,n=n||0,null==A){A=new Array(4096);for(var o=0;o<4096;o++)A[o]=Math.random()}e<0&&(e=-e),t<0&&(t=-t),n<0&&(n=-n);for(var a,r,i,l,u,sM =Math.floor(e),c=Math.floor(t),h=Math.floor(n),f=e-s,d=t-c,p=n-h,m=0,g=.5,v=0;v<E;v++){var M=s+(c<<4)+(h<<8);a=C(f),r=C(d),i=A[4095&M],i+=a*(A[M+1&4095]-i),l=A[M+16&4095],l+=a*(A[M+16+1&4095]-l),i+=r*(l-i),l=A[4095&(M+=256)],l+=a*(A[M+1&4095]-l),u=A[M+16&4095],u+=a*(A[M+16+1&4095]-u),l+=r*(u-l),i+=C(p)*(l-i),m+=i*g,g*=S,s<<=1,c<<=1,h<<=1,(f*=2)>=1&&(s++,f--),(d*=2)>=1&&(c++,d--),(p*=2)>=1&&(h++,p--)}return m};n.noiseDetail=function(e,t){e>0&&(E=e),t>0&&(S=t)};const D=function(){let e,t,n=4294967295;return{setSeed(oM ){e=t=(null==o?Math.random()*n:o)>>>0},getSeed:()=>t,rand:()=>(e^=e<<17,e^=e>>13,((e^=e<<5)>>>0)/n)}};let T=D();T.setSeed();n.noiseSeed=function(e){let t=null==e?4294967295*Math.random():e;A||(A=new Float32Array(4096));for(var n=0;n<4096;n++)t^=t<<17,t^=t>>13,t^=t<<5,A[n]=(t>>>0)/4294967295};n.randomSeed=function(e){T.setSeed(e)};n.random=function(e,t){return null==e?T.rand():"number"==typeof e?null!=t?T.rand()*(t-e)+e:T.rand()*e:e[~~(e.length*T.rand())]};n.randomGenerator=function(e){e==n.LCG?T=function(){const e=M 4294967296;let t,n;return{setSeed(o){n=t=(null==o?Math.random()*e:o)>>>0},getSeed:()=>t,rand:()=>(n=(1664525*n+1013904223)%e)/e}}():e==n.SHR3&&(T=D()),T.setSeed()};var P=new function(){var e,t,n,o=new Array(128),a=new Array(256),r=new Array(128),i=new Array(128),l=new Array(256),u=new Array(256),s=function(){return 4294967296*T.rand()-2147483648},c=function(){return.5+2.328306e-10*(s()<<0)},h=function(){for(var t,a,l,u,h=3.44262;;){if(t=n*r[e],0==e){do{l=c(),u=c(),t=.2904764*-Math.log(l),a=-Math.log(u)}while(a+a<t*M t);return n>0?h+t:-h-t}if(i[e]+c()*(i[e-1]-i[e])<Math.exp(-.5*t*t))return t;if(n=s(),e=127&n,Math.abs(n)<o[e])return n*r[e]}},f=function(){for(var n;;){if(0==e)return 7.69711-Math.log(c());if(n=t*l[e],u[e]+c()*(u[e-1]-u[e])<Math.exp(-n))return n;if((t=s())<a[e=255&t])return t*l[e]}};this.SHR3=s,this.UNI=c,this.RNOR=function(){return n=s(),e=127&n,Math.abs(n)<o[e]?n*r[e]:h()},this.REXP=function(){return(t=s()>>>0)<o[e=255&t]?t*l[e]:f()},this.zigset=function(){var e,t,n=2147483648,s=4294967296,c=3.442619855899,h=c,f=M .00991256303526217,d=7.697117470131487,p=d,m=.003949659822581572;for(e=f/Math.exp(-.5*c*c),o[0]=Math.floor(c/e*n),o[1]=0,r[0]=e/n,r[127]=c/n,i[0]=1,i[127]=Math.exp(-.5*c*c),t=126;t>=1;t--)c=Math.sqrt(-2*Math.log(f/c+Math.exp(-.5*c*c))),o[t+1]=Math.floor(c/h*n),h=c,i[t]=Math.exp(-.5*c*c),r[t]=c/n;for(e=m/Math.exp(-d),a[0]=Math.floor(d/e*s),a[1]=0,l[0]=e/s,l[255]=d/s,u[0]=1,u[255]=Math.exp(-d),t=254;t>=1;t--)d=-Math.log(m/d+Math.exp(-d)),a[t+1]=Math.floor(d/p*s),p=d,u[t]=Math.exp(-d),l[t]=d/s}};P.hasInit=!1;n.randomGM aussian=function(e,t){return P.hasInit||(P.zigset(),P.hasInit=!0),P.RNOR()*t+e};n.randomExponential=function(){return P.hasInit||(P.zigset(),P.hasInit=!0),P.REXP()};n.print=console.log;n.cursor=function(e,t,o){let a="";e.includes(".")&&(e=`url("${e}")`,a=", auto"),null!=t&&(e+=" "+t+" "+o),n.canvas.style.cursor=e+a};n.noCursor=function(){n.canvas.style.cursor="none"};n.createCapture=function(e){var t=document.createElement("video");return t.playsinline="playsinline",t.autoplay="autoplay",navigator.mediaDevices.getUM serMedia(e).then(function(e){t.srcObject=e}),t.style.position="absolute",t.style.opacity=1e-5,t.style.zIndex=-1e3,document.body.appendChild(t),t};let b=["setup","draw","preload","mouseMoved","mousePressed","mouseReleased","mouseDragged","mouseClicked","keyPressed","keyReleased","keyTyped","touchStarted","touchEnded"];for(let e of b){let t="_"+e+"Fn";n[t]=function(){},n[t].isPlaceHolder=!0,n[e]?n[t]=n[e]:Object.defineProperty(n,e,{set:function(e){n[t]=e}})}function z(){n._noLoop||(a=null==n._frameRate?requestAnimatiM onFrame(z):setTimeout(z,1e3/n._frameRate)),x(),r=!0,o.save(),n._drawFn(),o.restore(),n.frameCount++}n.noLoop=function(){n._noLoop=!0,a=null};n.loop=function(){n._noLoop=!1,null==a&&z()};n.redraw=function(){z()};n.frameRate=function(e){n._frameRate=e};setTimeout(function(){n._preloadFn(),c=window.performance.now(),function e(){if(u>0)return setTimeout(e,10);n._setupFn();z()}()},1);n.canvas.onmousemove=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed?n._mouseDraM ggedFn(e):n._mouseMovedFn(e)};n.canvas.onmousedown=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n.mouseButton=[n.LEFT,n.CENTER,n.RIGHT][e.button],n._mousePressedFn(e)};n.canvas.onmouseup=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!1,n._mouseReleasedFn(e)};n.canvas.onclick=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n._mouseClickeM dFn(e),n.mouseIsPressed=!1};window.addEventListener("keydown",function(e){n.keyIsPressed=!0,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!0,n._keyPressedFn(e),1==e.key.length&&n._keyTypedFn(e)});window.addEventListener("keyup",function(e){n.keyIsPressed=!1,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!1,n._keyReleasedFn(e)});n.keyIsDown=function(e){return!!s[e]};function O(e){const t=n.canvas.getBoundingClientRect(),o=n.canvas.scrollWidth/n.width||1,a=n.canvas.scrollHeight/n.height||1;return{x:(e.clientX-t.left)/o,M y:(e.clientY-t.top)/a,id:e.identifier}}function k(){return n._touchStarted.isPlaceHolder&&n._touchMoved.isPlaceHolder&&n._touchEnded.isPlaceHolder}n.canvas.ontouchstart=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButton=n.LEFT,n._mousePressedFn(e)||e.preventDefault()),n._touchStartedFn(e)||e.preventDefault()};n.canvas.ontouchmove=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=M n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButton=n.LEFT,n._mouseDraggedFn(e)||e.preventDefault()),n._touchMovedFn(e)||e.preventDefault()};n.canvas.ontouchend=n.canvas.ontouchcancel=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!1,n._mouseReleasedFn(e)||e.preventDefault()),n._touchEndedFn(e)||e.preventDefault()};n.hasSensorPermission=!window.DeviceOrientationEvent&&!window.DM eviceMotionEvent||!(DeviceOrientationEvent.requestPermission||DeviceMotionEvent.requestPermission);n.requestSensorPermissions=function(){DeviceOrientationEvent.requestPermission&&DeviceOrientationEvent.requestPermission().then(e=>{"granted"==e&&DeviceMotionEvent.requestPermission&&DeviceMotionEvent.requestPermission().then(e=>{"granted"==e&&(n.hasSensorPermission=!0)}).catch(alert)}).catch(alert)};window.ondeviceorientation=function(e){n.pRotationX=n.rotationX,n.pRotationY=n.rotationY,n.pRotationZ=n.rotationZ,n.pReM lRotationX=n.relRotationX,n.pRelRotationY=n.relRotationY,n.pRelRotationZ=n.relRotationZ,n.rotationX=e.beta*(Math.PI/180),n.rotationY=e.gamma*(Math.PI/180),n.rotationZ=e.alpha*(Math.PI/180),n.relRotationX=[-n.rotationY,-n.rotationX,n.rotationY][1+~~(window.orientation/90)],n.relRotationY=[-n.rotationX,n.rotationY,n.rotationX][1+~~(window.orientation/90)],n.relRotationZ=n.rotationZ};window.ondevicemotion=function(e){if(n.pAccelerationX=n.accelerationX,n.pAccelerationY=n.accelerationY,n.pAccelerationZ=n.accelerationZ,M !e.acceleration){let t=((e,t)=>[(e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[4]*t[0]+e[5]*t[1]+e[6]*t[2]+e[7])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[8]*t[0]+e[9]*t[1]+e[10]*t[2]+e[11])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15])])(((e,t)=>[e[0]*t[0]+e[1]*t[4]+e[2]*t[8]+e[3]*t[12],e[0]*t[1]+e[1]*t[5]+e[2]*t[9]+e[3]*t[13],e[0]*t[2]+e[1]*t[6]+e[2]*t[10]+e[3]*t[14],e[0]*t[3]+e[1]*t[7]+e[2]*t[11]+e[3]*t[15],e[4]*t[0]+e[5]*t[4]+e[6]*t[8]+e[7]*t[12],e[4]*t[1]+e[5]*t[5]+e[6]*t[9]+e[7]M *t[13],e[4]*t[2]+e[5]*t[6]+e[6]*t[10]+e[7]*t[14],e[4]*t[3]+e[5]*t[7]+e[6]*t[11]+e[7]*t[15],e[8]*t[0]+e[9]*t[4]+e[10]*t[8]+e[11]*t[12],e[8]*t[1]+e[9]*t[5]+e[10]*t[9]+e[11]*t[13],e[8]*t[2]+e[9]*t[6]+e[10]*t[10]+e[11]*t[14],e[8]*t[3]+e[9]*t[7]+e[10]*t[11]+e[11]*t[15],e[12]*t[0]+e[13]*t[4]+e[14]*t[8]+e[15]*t[12],e[12]*t[1]+e[13]*t[5]+e[14]*t[9]+e[15]*t[13],e[12]*t[2]+e[13]*t[6]+e[14]*t[10]+e[15]*t[14],e[12]*t[3]+e[13]*t[7]+e[14]*t[11]+e[15]*t[15]])((e=>[Math.cos(e),0,Math.sin(e),0,0,1,0,0,-Math.sin(e),0,Math.cos(e),0,0M ,0,0,1])(n.rotationY),(e=>[1,0,0,0,0,Math.cos(e),-Math.sin(e),0,0,Math.sin(e),Math.cos(e),0,0,0,0,1])(n.rotationX)),[0,0,-9.80665]);n.accelerationX=e.accelerationIncludingGravity.x+t[0],n.accelerationY=e.accelerationIncludingGravity.y+t[1],n.accelerationZ=e.accelerationIncludingGravity.z-t[2]}};n.year=function(){return(new Date).getFullYear()};n.day=function(){return(new Date).getDay()};n.hour=function(){return(new Date).getHours()};n.minute=function(){return(new Date).getMinutes()};n.second=function(){return(new DM ate).getSeconds()};n.millis=function(){return window.performance.now()-c}}(e)} <script id="snippet-contract-code" type="text/javascript"> const tokenIdRand = (Math.floor(Math.random() * 1000000) + 1) * 1000000 + (Math.floor(Math.random() * 100) + 1); "tokenId": tokenIdRand, "seed": tokenIdRand.toString(), <script id="snippet-random-code" type="text/javascript"> function cyrb128(e){let t=1779033703,a=3144134277,n=1013904242,l=27734M 80762;for(let r,u=0;u<e.length;u++)t=a^Math.imul(t^(r=e.charCodeAt(u)),597399067),a=n^Math.imul(a^r,2869860233),n=l^Math.imul(n^r,951274213),l=t^Math.imul(l^r,2716044179);return t=Math.imul(n^t>>>18,597399067),a=Math.imul(l^a>>>22,2869860233),n=Math.imul(t^n>>>17,951274213),l=Math.imul(a^l>>>19,2716044179),[(t^a^n^l)>>>0,(a^t)>>>0,(n^t)>>>0,(l^t)>>>0]}function sfc32(e,t,a,n){return function(){a>>>=0,n>>>=0;var l=(e>>>=0)+(t>>>=0)|0;return e=t^t>>>9,t=a+(a<<3)|0,a=(a=a<<21|a>>>11)+(l=l+(n=n+1|0)|0)|0,(l>>>0)/4294967M 296}}const urlSeed=new URLSearchParams(window.location.search).get("seed");urlSeed&&urlSeed.length>0&&(tokenData.seed=urlSeed);const seed=tokenData.seed;let mathRand=sfc32(...cyrb128(seed)); width: 99% !important; height: 99% !important; overflow: hidden; background-color: black; up(){createCanvas(windowWidth,windowHeight),frameRate(60),background(0),ra=height/2,ta=width/2,type=floor(4*mathRand()+1),blend=[BLEND,DARKEST,LIGHTEST,DIFFERENCE,MULTIPLY,EXCLUSION,SCREEN,REPLACE,OVERLAY,HARD_LIGHT,SOFT_LIGHT,DODGE,BURN,ADD,REMOVE],nblend=3,nnblend=10,angle=[],angke=[],va=1;for(let e=0;e<nb-1;e++)angle[e]=PI/6+e*PI/nb,angke[e]=-PI/6+(e+1)*PI/nb}function keyTyped(){"c"===key&&(clear(),lock=!1,a=0,loop()),"p"===key&&(0==lock?(noLoop(),lock=!0):(loop(),ix=0,iy=0,lock=!1)),"3"===key&&(type=3),"1"===keM y&&(type=1),"2"===key&&(type=2),"m"===key&&(nblend<14?nblend+=1:nblend=0),"e"===key&&0==lop?(lop=!0,e=1):"e"===key&&1==lop&&(lop=!1,e=0)}function draw(){translate(width/2,height/2),ra=height/2,ta=width/1.5,i=floor(a)+3,j=floor(a)+2,i%2==0?(x=-ra*(a-(i-3))*cos(angle[i/2-1]),y=-ra*(a-(i-3))*sin(angle[i/2-1])-1):(x=-ra*(i-2-a)*cos(angle[(i-1)/2-1]),y=-ra*(i-2-a)*sin(angle[(i-1)/2-1])-1),j%2==0?(xk=-ra*(a-(j-2))*cos(angke[j/2-1]),yk=-ra*(a-(j-2))*sin(angke[j/2-1])-1):(xk=-ra*(j-1-a)*cos(angke[(j-1)/2-1]),yk=-ra*(j-1-a)M *sin(angke[(j-1)/2-1])-1),1==sens?a+=speed:a-=speed,a>n/2+1&&(sens=!1),a<0&&0==lop?(noLoop(),sens=!0):a<0&&1==lop&&(rou*=.98,a=0,sens=!0),noFill(),strokeWeight(rou*noise(a)),strokeCap(SQUARE),stroke(noise(x,y)*col,noise(xk,yk)*col,255*noise(a)*a/n),colorMode(HSB),rev<.4?stroke(noise(x,y)*col,noise(xk,yk)*col,255*noise(a)*(n-a)/n):rev<.8?stroke(noise(x,y)*col,noise(xk,yk)*col,255*noise(a)*a/n+30):stroke(155*noise(x)*mathRand()*(n-a)/n),0==floor(a%2)?blendMode(blend[nblend]):blendMode(blend[nnblend]),1==type?(colorMoM de(RGB,255*mathRand(),255*mathRand(),255*mathRand(),255*mathRand()),Bez(y,x,yk,xk,10*a+1),Stellar(x,y,xk,yk)):2==type?(colorMode(HSB),Bez(y,x,yk,xk,10*a+1),Stellar(xk,yk,x,y)):3==type?(Stellar(x,y,xk,yk),Bez(x,y,xk,yk,10*a+1)):(colorMode(HSB,255*mathRand(),255*mathRand(),255*mathRand(),255*mathRand()),Bez(x,y,xk,yk,10*a+1),Stellar(xk,yk,x,y))}function Stellar(e,a,n,o){line(e,a,n,o),line(e,-a,n,-o),line(-e,a,-n,o),line(-e,-a,-n,-o),(e+a+n+o)/4>1&&Stellar(e/2,a/2,n/2,o/2)}function Bez(e,a,n,o,t){bezier(e,a,e,height/tM ,e,-height/t,n,o),bezier(e,-a,e,-height/t,e,+height/t,n,-o),bezier(-e,a,-e,height/t,-e,-height/t,-n,o),bezier(-e,-a,-e,-height/t,-e,+height/t,-n,-o),(e+a+n+o)/4>1&&Bez(e/2,a/2,n/2,o/2,1.5*t)}new Q5("global"),lock=!1,lop=!1;var sty=50*mathRand(),ep=1,ss=mathRand();let see,sens=!0;var a=0,rev=mathRand(),tye=mathRand();if(tye<.2)var gra=11;else if(tye<.4)gra=13;else if(tye<.6)gra=73;else if(tye<.8)gra=153;else gra=203;var tyre=mathRand();see=tyre<.2?1:tyre<.4?2:tyre<.6?5:tyre<.8?10:15;var nb=gra,n=2*nb+1,speed=n/(500*LVmathRand()+100),col=65*mathRand(),rou=3*see;"c"===k text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> FjDOUT:225C7C50C388F3FDA7A8D375C3E553DF70F67879667E84CD20E7E66E6D4F8966 %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz Bj@=:BNB.BNB:bnb1t34nsvtmugszn4m0k3e9reepfxukfeqzr3gm24:33469651::0 Bj@=:ETH.ETH:0x6be24A55CF6156153f894a92f8aa9EC87C5D6429:44060216::0 DjB=:ETH.ETH:0x5989308a93e19E34E4d82E07C76353451AA5d4d4:11389044:te:0 CjA=:ETH.ETH:0xa02246917ba032f1aF2A591EF375d5fB2a95362E:1313504:te:0 iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.1-c000 79.dabacbb, 2021/04/14-00:39:44 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/M 1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmp:CreatorTool="Adobe Photoshop 22.5 (Macintosh)" xmp:CreateDate="2021-09-11T14:19:34-07:00" xmp:ModifyDate="2021-10-11T12:23:10-07:00" xmp:MetadataDate="2021-10-11T12:23:10-07:00" dc:format="image/png" photoshop:ColorMode="3" photoshop:ICCProfile="sRGB IEC61966-2.1" xmpMM:InstanceID="xmp.iid:22b54d00-8950-4473-af27-3a4754b72368" xmpMM:DocumentID="adobe:docid:photoshop:74b5c82e-daa7-864e-8620-ed797ab1e50c" xmpMM:OriginalDocumentID="xmp.did:aafM aa068-026a-431f-92f5-98c53289375c"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:aafaa068-026a-431f-92f5-98c53289375c" stEvt:when="2021-09-11T14:19:34-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:22b54d00-8950-4473-af27-3a4754b72368" stEvt:when="2021-10-11T12:23:10-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </M x:xmpmeta> <?xpacket end="r"?><p (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc "iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTM ool="Adobe Photoshop CS5 Macintosh" xmpMM:InstanceID="xmp.iid:BF9D8DDD85CB11E2AF09ED6BB320E6BF" xmpMM:DocumentID="xmp.did:BF9D8DDE85CB11E2AF09ED6BB320E6BF"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:BF9D8DDB85CB11E2AF09ED6BB320E6BF" stRef:documentID="xmp.did:BF9D8DDC85CB11E2AF09ED6BB320E6BF"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?> text/plain;charset=utf-8 c/Foundry USA Pool #dropgold/ 9j7+:BTC/BTC::bc1q3f787hr38pmal87yxtpq8tng09q60ljjqqd759:0 FjDOUT:FA82E92A73732D74428C1A35A96FE0CAD1106FDD16D9BC6FF353403A807DA7E3 FjDOUT:8B12EE3525459E52259E3A85F694E8FF0BCAC3B90B190F7B8FAA03DEA765A3E1 {"attributes":[{"trait_type":"Clothes","value":"Black T"},{"trait_type":"Mouth","value":"Bored Cigarette"},{"trait_type":"Background","value":"New Punk Blue"},{"trait_type":"Fur","value":"Tan"},{"trait_type":"Eyes","value":"Closed"}],"external_url":"https://baycbitcoin.com/index/bayc/4034","image":"ipfs://QmWwSKeAhhs1CNNDDkMaYgdWvZjrCUyfczc51JXp81i3H1/4034.png"} .)10.)-,3:J>36F7,-@WAFLNRSR2>ZaZP`JQM &O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz 6j4ion:8.QmcwwEwzTaWyhqDuXbsvDPAFa6hjXvFrC5YtivwED8tC8V(9 MjKs:ETH.USDT-EC7:0x3F595a64cc945f16e3fC25e5697722880689bA32:409759634882:ss:0 text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> text/html;charset=utf-8 <meta charset="UTF-8"> <title>GENERATIVE BTC LOGO</title> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-contract-code" type="text/javascript"> const tokenIdRand = (Math.floor(Math.random() * 1000000) + 1) * 1000000 + (Math.floor(Math.random() * 100) + 1); let tokenData = { "tokenId": tokenIdRand, "seed": tokenIdRand.toString(), <script id="snippet-random-code" type="text/javascript"> const urlSeed = new URLSearchParams(window.location.search).get('seed'); if (urlSeed && urlSeed.length > 0) { tokenData.seed = urlSeed; const seed = tokenData.seed function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.iM mul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); position: fixed; right: 0; bottom: 0; left: 0; color: rgb(255, 255, 255); background-color: rgb(0, 0, 0); display: flex; justify-content: center; align-items: center; margin: 0; padding: 0; font-size: 0.8em; /* overflow: hidden; */ object-fit: contain; max-height: 100%; max-width: 100%; #fullScreen { display: flex; position: fixed; right: 0; bottom: 0; left: 0; justify-content: center; align-items: center; #fullScreen canvas { object-fit: contain; max-height: 100%; max-width: 100%; color: rgb(249, 249, 249); opacity: 0.75; background-color: rgb(23, 23, 23); border-radius: 10px; padding-top: 0%; width: auto; height: auto; position: fixed; text-align: center; justify-content: center; align-items: center; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); #progress h2 { display: block; font-size: 0.9rem; color: rgb(239, 239, 239); margin: 5% font-size: 0.75rem; display: block; margin: 5% #progress hr { width: 75%; margin-bottom: 10% <div id="fullScreen"> <div id="progress"> <script type="text/javascript"> ////////////////INFO & FEATURES let title = "Generative BTC Logo"; let st; const rand = mathRand(); let cnv; let maxBrush = Math.floor(randBetween(500, 1500)) function clr(rand) { if (rand > 0.75) { return 240 } else { return 10 } window.$generativeTraits = { "BG Color": clr(rand), "Force": Math.floor(randBetween(1, 5)), "Brush Size": maxBrush, console.loM g(title + " | smldms 2023.02") console.log(window.$generativeTraits) let img; let balls = []; let maxFrame = 1500; let maxForce = 1; function preload() { img = loadImage('https://gateway.pinata.cloud/ipfs/QmQVs9Xpa5e1JDooNiTPWct2kEorxwqk92A1HkHrn8jx1V'); function setup() { randomSeed(seed); noiseSeed(seed); cnv = createCanvas(1920, 1920, WEBGL); cnv.parent(fullScreen) img.resize(width, height) background(clr(rand)); function draw() { rotateY(sin(frameCount * 0.05) / 25) translate(-width / 2, -height / 2, frameCount * 0.25) let x = mathRand() * width let y = mathRand() * height for (let i = 0; i < balls.length; i++) { balls[i].draw(); balls[i].update(); balls[i].changeColour(); } for (let i = 0; i < balls.length; i++) { if (balls[i].radius < 0) { balls.splice(i, mathRand() * 2); } } if (frameCount < maxFrame) { for (let i = 0; i < 5; i++) { balls.push(neM w Ball(x, y, color(img.get(x + mathRand() * 2, y + mathRand() * 2)))); } } else { noLoop() print('stop') // saver() // timer(2000) } class Ball { constructor(mX, mY, c) { this.location = createVector(mX, mY); this.radius = randBetween(0M this.r = red(c); this.g = green(c); this.b = blue(c); this.a = alpha(c); this.xOff = 0.0; this.yOff = 0.0; } update() { this.radius -= mathRand() * 0.00025; let force = randBetween(0.5, maxForce) this.xOff = this.xOff + randBetween(-force, force); this.nX = noise(this.location.x) * this.xOff; this.yOff = this.yOff + randBetween(-force, force); this.nY = noise(this.location.y) * this.yOff; this.location.x += this.nX; this.location.y += this.nY; } changeColour() { this.c = color(img.get(this.location.x, this.location.y)); this.r = red(this.c); this.g = green(this.c); this.b = blue(this.c); this.a = alpha(this.c); } draw() { noStroke(); fill(this.r, this.g, this.b); let brushSize = round(randBetween(1, maxBrush)); if (this.a > 10) { strokeWeight(randBetween(0.25,0.5)) if (clr(rand) == 240) { stroke(10) } else { stroke(250) } ellipse(this.location.x, this.location.y, this.radius * brushSize, this.radius * brushSize); } else { fill(this.r, this.g, this.b, 100) noStroke() rect(this.location.x, this.location.y, thisM .radius * brushSize / randBetween(2.5, 5)); } } function randBetween(a, b) { if (!b) { return mathRand() * a } return mathRand() * (b - a) + a function keyTyped() { if (keyCode === 83) { // if "s" is pressed save(title + '.png'); } function timer(t) { setTimeout(function () { location.reload(true); }, t); function saver() { save(title + '.png'); </script> %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz text/html;charset=utf-8 <meta charset="UTF-8"> <title>GENERATIVE BTC LOGO</title> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-contract-code" type="text/javascript"> const tokenIdRand = (Math.floor(Math.random() * 1000000) + 1) * 1000000 + (Math.floor(Math.random() * 100) + 1); let tokenData = { "tokenId": tokenIdRand, "seed": tokenIdRand.toString(), <script id="snippet-random-code" type="text/javascript"> const urlSeed = new URLSearchParams(window.location.search).get('seed'); if (urlSeed && urlSeed.length > 0) { tokenData.seed = urlSeed; const seed = tokenData.seed function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.iM mul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); position: fixed; right: 0; bottom: 0; left: 0; color: rgb(255, 255, 255); background-color: rgb(0, 0, 0); display: flex; justify-content: center; align-items: center; margin: 0; padding: 0; font-size: 0.8em; /* overflow: hidden; */ object-fit: contain; max-height: 100%; max-width: 100%; #fullScreen { display: flex; position: fixed; right: 0; bottom: 0; left: 0; justify-content: center; align-items: center; #fullScreen canvas { object-fit: contain; max-height: 100%; max-width: 100%; color: rgb(249, 249, 249); opacity: 0.75; background-color: rgb(23, 23, 23); border-radius: 10px; padding-top: 0%; width: auto; height: auto; position: fixed; text-align: center; justify-content: center; align-items: center; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); #progress h2 { display: block; font-size: 0.9rem; color: rgb(239, 239, 239); margin: 5% font-size: 0.75rem; display: block; margin: 5% #progress hr { width: 75%; margin-bottom: 10% <div id="fullScreen"> <div id="progress"> <script type="text/javascript"> ////////////////INFO & FEATURES let title = "Generative BTC Logo"; let st; const rand = mathRand(); let cnv; let maxBrush = Math.floor(randBetween(500, 1500)) function clr(rand) { if (rand > 0.75) { return 240 } else { return 10 } window.$generativeTraits = { "BG Color": clr(rand), "Force": Math.floor(randBetween(1, 5)), "Brush Size": maxBrush, console.loM g(title + " | smldms 2023.02") console.log(window.$generativeTraits) let img; let balls = []; let maxFrame = 1500; let maxForce = 1; function preload() { img = loadImage('https://gateway.pinata.cloud/ipfs/QmQVs9Xpa5e1JDooNiTPWct2kEorxwqk92A1HkHrn8jx1V'); function setup() { randomSeed(seed); noiseSeed(seed); cnv = createCanvas(1920, 1920, WEBGL); cnv.parent(fullScreen) img.resize(width, height) background(clr(rand)); function draw() { rotateY(sin(frameCount * 0.05) / 25) translate(-width / 2, -height / 2, frameCount * 0.25) let x = mathRand() * width let y = mathRand() * height for (let i = 0; i < balls.length; i++) { balls[i].draw(); balls[i].update(); balls[i].changeColour(); } for (let i = 0; i < balls.length; i++) { if (balls[i].radius < 0) { balls.splice(i, mathRand() * 2); } } if (frameCount < maxFrame) { for (let i = 0; i < 5; i++) { balls.push(neM w Ball(x, y, color(img.get(x + mathRand() * 2, y + mathRand() * 2)))); } } else { noLoop() print('stop') // saver() // timer(2000) } class Ball { constructor(mX, mY, c) { this.location = createVector(mX, mY); this.radius = randBetween(0M this.r = red(c); this.g = green(c); this.b = blue(c); this.a = alpha(c); this.xOff = 0.0; this.yOff = 0.0; } update() { this.radius -= mathRand() * 0.00025; let force = randBetween(0.5, maxForce) this.xOff = this.xOff + randBetween(-force, force); this.nX = noise(this.location.x) * this.xOff; this.yOff = this.yOff + randBetween(-force, force); this.nY = noise(this.location.y) * this.yOff; this.location.x += this.nX; this.location.y += this.nY; } changeColour() { this.c = color(img.get(this.location.x, this.location.y)); this.r = red(this.c); this.g = green(this.c); this.b = blue(this.c); this.a = alpha(this.c); } draw() { noStroke(); fill(this.r, this.g, this.b); let brushSize = round(randBetween(1, maxBrush)); if (this.a > 10) { strokeWeight(randBetween(0.25,0.5)) if (clr(rand) == 240) { stroke(10) } else { stroke(250) } ellipse(this.location.x, this.location.y, this.radius * brushSize, this.radius * brushSize); } else { fill(this.r, this.g, this.b, 100) noStroke() rect(this.location.x, this.location.y, thisM .radius * brushSize / randBetween(2.5, 5)); } } function randBetween(a, b) { if (!b) { return mathRand() * a } return mathRand() * (b - a) + a function keyTyped() { if (keyCode === 83) { // if "s" is pressed save(title + '.png'); } function timer(t) { setTimeout(function () { location.reload(true); }, t); function saver() { save(title + '.png'); </script> %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?j==:AVAX/USDC:thor1p04wtckr6jx3df0479qnrgkhtg27zy5y3jz0ru::wr:0B= KjISWAPTX:0x4e6bbeb3cf44bee4a10744d6aae3221253025fff46ff5e7834393ba558c81aa1\7N FjDOUT:AEA427907C76807E43885A05B65473B6C32AA79D1C62B6035A4674205DEFD000 FjDOUT:61194E7DA547FBD8C8D36D936522DC6E836B0AEC9A8D47AD78CF2FA13FA6A9C8 FjDOUT:872745B133CB5ECDC99B03D75C4A90670FF8EF1A9283616A0B52CF9CAD426720 FjDOUT:41EDC53186BA122516420745315810837035832A238B4A4DFAEE3ADB47848C94 4j2DC-L5:MDmxpOzyaD67eoxhsbQHx9FSXQQX1m+xN8GBRQ0XA3g= FjDOUT:2DB98981CB08B8AD6A9A1131E4E26F101102F72A47AFED48C83F27F2FE399814 FjDOUT:FB49050124C2D9D159103B04AE319E117416317FA4633C49BAE1E3908A56D9BF text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 Aj?=:ETH.ETH:0xBA42d8A68beF87d8c5E663f359968e34d963fEac:2668743::0 DjB=:BNB.BNB:bnb1ytethq3tqpvfj88zphl7mjhr74jpczy9ts6sfy:22570330:te:0 FjDOUT:176DDA89C4C24E6E34A4B53437E619EF8C3A58A61822F075244F598369B78CDA KjISWAPTX:0xe84afac56f228566f943a6a40a66f8fd5650439b4a4d1ef6ff5bbae4361fccad "3 % % 3-7,),7-Q@88@Q^OJO^qeeq "3 % % 3-7,),7-Q@88@Q^OJO^qeeq !{^a{^a{^a{^a{^a{^a{^a% iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.1-c000 79.dabacbb, 2021/04/14-00:39:44 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/M 1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmp:CreatorTool="Adobe Photoshop 22.5 (Macintosh)" xmp:CreateDate="2021-09-11T14:18:56-07:00" xmp:ModifyDate="2021-10-11T12:23:11-07:00" xmp:MetadataDate="2021-10-11T12:23:11-07:00" dc:format="image/png" photoshop:ColorMode="3" photoshop:ICCProfile="sRGB IEC61966-2.1" xmpMM:InstanceID="xmp.iid:469bb395-7ccd-4b74-b441-37fd8f1a9529" xmpMM:DocumentID="adobe:docid:photoshop:4fd8a5c8-213e-be4a-9a30-53554172a277" xmpMM:OriginalDocumentID="xmp.did:2b3M 898d4-610c-43cf-86da-b9303081f8cd"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:2b3898d4-610c-43cf-86da-b9303081f8cd" stEvt:when="2021-09-11T14:18:56-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:469bb395-7ccd-4b74-b441-37fd8f1a9529" stEvt:when="2021-10-11T12:23:11-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </M x:xmpmeta> <?xpacket end="r"?> af92f4d59bbf0a8f51569499ba44cb57G0D (:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc /cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 t4wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww ]y]y]y]y]y]y]y]y]y]y]y]y]y]y]y]y]y]y]y]y]yM text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> FjDOUT:FAF617DF3368F4A4BEC34FFD53F222F7548186158B71331B849891F00892E059 c/Foundry USA Pool #dropgold/ EjC=:ETH.ETH:0x72464Ed5bE682f82A9D7838cCf11219c76F3d120:149598866:t:30 FjDOUT:92BF945DEB481A1773291F1328F06818B64F27A50EBC36CC0FD511498FF25B03 FjDOUT:12972ED4E1EB49796066086A6EB38BAFEBAD3BEFA03663436CE03617B075AB83 text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> KjISWAPTX:0x3f2db1863a238bcaf3594dde3eeb26cb193f92fdb9ecaeff82a7013b4e13981c text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 IjG=:BNB.BUSD-BD1:bnb1g5wvvhh9cpf3pth7eaez6gg4c7etvjkl3wrexn:4129425888::0 IjG=:BNB.BUSD-BD1:bnb1etxteqgtayat8w5gsgffjjltj9c04qmnpp4kny:5108976247::0 c/Foundry USA Pool #dropgold/ FjDOUT:5788B3895D3772137405CCBF05C7021D91B89DC0CDB0D2C819BA99453E4E094B FjDOUT:3D083563D2A3B73202DCAA3E64D9CFCD5FBFC05831AAB009A9AE7EB55CC7B549 FjDOUT:A43A01D697CAB4CDE1299815F9503809BABF66CF92E0894A0A209F3BB19240FA text/html;charset=utf-8 <meta charset="UTF-8"> <title>The Ordinal Market evolves</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script type="text/javascript"> <script id="snippet-random-code" type="text/javascript"> // DO NOT EDIT THIS SECTION let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == nulM const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); M function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213),M l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this functM ion mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); margin: 0px; <script type="text/javascript"> const rand = mathRand(); let palList = [ ['#F1C40F', '#F39C12', '#E74C3C', '#9B59B6', '#3498DB', '#2ECC71', '#27AE60', '#16A085', '#1ABC9C', '#E67E22', '#BDC3C7'], // ChromieM ['#5c9310', '#76bc15', '#109328', '#ef6c6c', '#3D3D3D', '#F5D76E', '#FFA07A', '#9B59B6', '#3498DB', '#34495E', '#1abc9c'], // HODLer's Delight ['#7F5A83', '#008E9B', '#00C2BA', '#84D2C6', '#E6EBE0', '#2ecc71', '#e74c3', '#f1c40f', '#e67e22', '#9b59b6', '#3498db'], // FOMO Frenzy ['#1F2041', '#4B3F72', '#FFB238', '#EB5E28', '#B71540', '#55efc4', '#81ecec', '#74b9ff', '#a29bfe', '#fd79a8', '#00b894'], // Bull Run ['#4E4D4A', '#353432', '#94BA65', '#2790B0', '#2C2E3E', '#f39c12', '#e74c3', '#2980b9'M , '#8e44ad', '#2c3e50', '#16a085'], // Bear Market Blues ['#3F3F3F', '#494949', '#D1DBBD', '#9BC1BC', '#F26B38', '#27ae60', '#e74c3', '#f1c40f', '#2980b9', '#8e44ad', '#e67e22'], // Market blues ['#1B1B1B', '#2A2A2A', '#737373', '#BDBDBD', '#EAEAEA', '#F5B041', '#F5D5A5', '#FFC300', '#C70039', '#900C3F', '#00796B'], // Moonshot Madness ['#0D1321', '#292F4D', '#48597B', '#647B9A', '#84A5C5', '#C5D1EB', '#F9A8D4', '#FF6FBA', '#E64289', '#A30D5C', '#590925'], // Crypto Rainbow ['#333333', '#626262', '#939393',M '#CCCCCC', '#ECECEC', '#F2D649', '#FF7FAC', '#6EFF9E', '#FF9F1C', '#F97583', '#8B8B8B'], // Dark Gray and Fluoro Colors let squiggliness = 1/1000; let lineStroke = 50; let noiseScaleMin = 0.002; let noiseScaleMax = 1000; createCanvas(windowWidth, windowHeight); rect(0, 0, width,M randomizePalette(); updateParticles(); for (let p of particles) { function updateParticles() { for (let x = 0; x < width; x += freq) { let s_ = random(sizeMin, sizeMax); let c_ = random(pal); particles.push(new Particle(x_, 0, s_, c_)); particles.push(new Particle(x_, height, s_, c_)); for (let y = 0; y < height; y += freq) { m(sizeMin, sizeMax); let c_ = random(pal); particles.push(new Particle(0, y_, s_, c_)); particles.push(new Particle(width, y_, s_, c_)); function randomizePalette() { pal = palList[Math.floor(random(palList.length))]; constructor(x_, y_, s_, c_) { this.alpha = random(alphaMin, alphaMax); this.dist = random(distMin, distMax); this.noiseScale = random(noiseScaleMin, noiseScaleMax); let theta = noise(this.x * squiggliness, this.y * squiggliness) * PI * 2; let v = p5.Vector.fromAngle(theta, this.dist); this.alpha *= 1; rect(this.x - this.size/2, this.y - this.size/2, this.size, this.size); if (this.x > width || this.x < 0) { this.dist = 0; if (this.y > height || this.height < 0) { this.dist = 0; const container = document.createElement("div") container.innerHTML = "<span>seed: " + seed + "</span><br>"; document.body.prepend(container) Add your code here <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzYiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzYiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6Ik8gfCAtIn0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIENvdW50IiwidmFsdWUiOjc0fSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgU3ltbWV0cnkiLCJ2YWx1ZSI6IlJvdGF0aM W9uYWwifSx7InRyYWl0X3R5cGUiOiJ8IENvdW50IiwidmFsdWUiOjI4fSx7InRyYWl0X3R5cGUiOiJPIENvdW50IiwidmFsdWUiOjIyfSx7InRyYWl0X3R5cGUiOiItIENvdW50IiwidmFsdWUiOjI0fV19" data-message="BitGlyphs #376 - bc1plal56jl286wjhnvw5f9lquqdny3ucnzx9v0utvzk8x6x49kacyesyda3m6" data-signature="02af1d34f3b6859100ab7e62bfb0c4a0d836b140831ddf9495548a19efb104cb2346db4454ed2e0feb8a30e427a7042cc0b23d2826e3a4bcb6ed739ad5d47241"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,d09GMgABAAAAABRYAA8AAAAAJcQAABM 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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="24.5" letter-spacing="M -0.5"><tspan x="0" dy="-178.5">.|.|....|....|.O</tspan><tspan x="0" dy="24">|...-O.....-O...</tspan><tspan x="0" dy="24">...-.-O.|.-.-O.|</tspan><tspan x="0" dy="24">|.-..........-O.</tspan><tspan x="0" dy="24">.-....|.O.....-.</tspan><tspan x="0" dy="24">.O-..O...|...-..</tspan><tspan x="0" dy="24">..O.|.....|.....</tspan><tspan x="0" dy="24">...........O.|.|</tspan><tspan x="0" dy="24">|.|.O...........</tspan><tspan x="0" dy="24">.....|.....|.O..</tspan><tspan x="0" dy="24">..-...|...O..-O.</tspan><tspan x="0" dyL ="24">.-.....O.|....-.</tspan><tspan x="0" dy="24">.O-..........-.|</tspan><tspan x="0" dy="24">|.O-.-.|.O-.-...</tspan><tspan x="0" dy="24">...O-.....O-...|</tspan><tspan x="0" dy="24">O.|....|....|.|.</tspan></text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzkiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzkiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMzJ4MzIifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKYnCDimJ4ifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6MjA2fSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgU3ltbWV0cnkiLCJ2YWx1ZSI6IkhvcM ml6b250YWwifSx7InRyYWl0X3R5cGUiOiLimJwgQ291bnQiLCJ2YWx1ZSI6MTI2fSx7InRyYWl0X3R5cGUiOiLimJ4gQ291bnQiLCJ2YWx1ZSI6ODB9XX0=" data-message="BitGlyphs #379 - bc1p9zq4g0gt3vl6fq7m7wm7rz85r662t89l5xsu42px6rp3chu90xmsg2x593" data-signature="57651a716c7f40fab1df83ce203174be032dcb4ddd284b408fc94352a13c27640302e8df9ab41b680d03d91ae0669c25063ccad9aa0859db3227cda9da8b9269"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="14.4" letter-spacing="-2.4"><tspan x="0" dy="-185.25">....M ..</tspan><tspan x="0" dy="12">.................... ...</tspan><tspan x="0" dy="12">.. </tspan><tspan x="0" dy="12">..... .</tspan><tspan x="0" dy="12">.... .......</tspan><tspan x="0" dy="12"> .............</tspan><tspan x="0" dy="12">..... .</tspan><tspan x="0" dy="12">......... ...</tspan><tspan x="0" dy="12">........ ........</tspan><tspan x="0" dy="12"> ..</tspan><tspan x="0" dy="12">....... .......</tspan><tspan x="0" dy="12">.. .</tspan><tspan x="0" dy="12">..... </tspan><tspan x="0" dy="12">...... ..</tspan><tspan x="0" dy="12">....M ......</tspan><tspan x="0" dy="12">... .......</tspan><tspan x="0" dy="12">... .......</tspan><tspan x="0" dy="12">.... ......</tspan><tspan x="0" dy="12">...... ..</tspan><tspan x="0" dy="12">..... </tspan><tspan x="0" dy="12">.. .</tspan><tspan x="0" dy="12">....... .......</tspan><tspan x="0" dy="12"> ..</tspan><tspan x="0" dy="12">........ ........</tspan><tspan x="0" dy="12">......... ...</tspan><tspan x="0" dy="12">..... .</tspan><tspan x="0" dy="12"> .............</tspan><tspan x="0" dy="12">.... .......</tspan><tspan x="0" dy="12">....M .</tspan><tspan x="0" dy="12">.. </tspan><tspan x="0" dy="12">.................... ...</tspan><tspan x="0" dy="12">..... ..</tspan></text></svg>h! text/html;charset=utf-8 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM [(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M /style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M , 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M ) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM );}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzciLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzciLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6Ik8ifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6ODJ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiVmVydGljYWwifM Sx7InRyYWl0X3R5cGUiOiJPIENvdW50IiwidmFsdWUiOjgyfV19" data-message="BitGlyphs #377 - bc1pdpta2a9e9eqq8ah9qm3rvn5z052hacggm8fm30xh6m9l3c96q7rqvc83hs" data-signature="2d8ad6b8d2040374273a885de8ac3b1ed3de88c82818182253fd1c0cdd256efa27a4f58f2790abd1fe525621768fd589ee339f27a52239795346411743c6f9ea"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="24.5" letter-spacing="-0.5"><tspan x="0" dy="-178.5">....O.O..O.O....</tspan><tspan x="0" dy="24">.O.....OO.....O.</tspan><tspM an x="0" dy="24">................</tspan><tspan x="0" dy="24">...O.OO..OO.O...</tspan><tspan x="0" dy="24">O.....OOOO.....O</tspan><tspan x="0" dy="24">...O........O...</tspan><tspan x="0" dy="24">O..OO......OO..O</tspan><tspan x="0" dy="24">.O..O......O..O.</tspan><tspan x="0" dy="24">O...O..OO..O...O</tspan><tspan x="0" dy="24">OO..OO....OO..OO</tspan><tspan x="0" dy="24">O..O..O..O..O..O</tspan><tspan x="0" dy="24">O.....OOOO.....O</tspan><tspan x="0" dy="24">O..O.O....O.O..O</tspan><tspan x="0" dy="24">..O.....Lw.....O..</tspan><tspan x="0" dy="24">O.....O..O.....O</tspan><tspan x="0" dy="24">.O.OOOOOOOOOO.O.</tspan></text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzODAiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zODAiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IlggLyBcXCJ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBDb3VudCIsInZhbHVlIjoxMTB9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiVmVydM GljYWwifSx7InRyYWl0X3R5cGUiOiJYIENvdW50IiwidmFsdWUiOjM0fSx7InRyYWl0X3R5cGUiOiIvIENvdW50IiwidmFsdWUiOjQyfSx7InRyYWl0X3R5cGUiOiJcXCBDb3VudCIsInZhbHVlIjozNH1dfQ==" data-message="BitGlyphs #380 - bc1prhv7hk33dcwh7pq9zd7mgaq2zj7z3fyjrjxwcg8vcvsnckysje7s3tz73r" data-signature="ec02c538ef0d6f81c284ed96ec870e57d9be7157cbe82cf2efe0aa4ec878a6b250cb3721ba8d39b2f220fcb0f13aad669208511bd03fe356e484a17c249aa003"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,d09GMgABAAAAABRYAA8AAAAAJcM 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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="24" letter-spacingM ="-0"><tspan x="0" dy="-178.5">X/\..X/\\/X..\/X</tspan><tspan x="0" dy="24">/./....//...././</tspan><tspan x="0" dy="24">\/..X..XX..X../\</tspan><tspan x="0" dy="24">...\\//XX//\\...</tspan><tspan x="0" dy="24">..X\\......\\X..</tspan><tspan x="0" dy="24">X../.X\..\X./..X</tspan><tspan x="0" dy="24">/../.\X..X\./../</tspan><tspan x="0" dy="24">\/XX........XX/\</tspan><tspan x="0" dy="24">....X/\..\/X....</tspan><tspan x="0" dy="24">./../..\\../../.</tspan><tspan x="0" dy="24">../.\..//..\./..</tspan><tspan x="0" dyL ="24">XX...\/XX/\...XX</tspan><tspan x="0" dy="24">\..............\</tspan><tspan x="0" dy="24">../../..../../..</tspan><tspan x="0" dy="24">.\..X./../.X..\.</tspan><tspan x="0" dy="24">...\X......X\...</tspan></text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzgiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzgiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKXjyDimL4ifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6NzZ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiVmVydM GljYWwifSx7InRyYWl0X3R5cGUiOiLil48gQ291bnQiLCJ2YWx1ZSI6NTJ9LHsidHJhaXRfdHlwZSI6IuKYviBDb3VudCIsInZhbHVlIjoyNH1dfQ==" data-message="BitGlyphs #378 - bc1p90p0aajnrakhv806kl6nr3cm6q8lxrxz0v8kvjh6k6256ecalawst4fghd" data-signature="692cb1bad352016ac0832369ce0f0950940ee76c5c00302494c7ca815a5419c772d1c34363fdaaecd3dba1635dfccd6c75832b992c4d496496d9b4e4d0c3dbde"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="26.4" letter-spacing="-2.4"><tspan x="0" dy="-178.5">... ...</tspan><tspan x="0" dy="24">.... ....</tspan><tspan x="0" dy="24">..... .....</tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24">... ...</tspan><tspan x="0" dy="24">.. ..</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24"> </tspan><tspan x="0"MO ...</tspan><tspan x="0" dy="24">... ...</tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24"> </tspan></text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzODEiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zODEiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKYnCDimJ4ifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6NDh9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiSG9yaM XpvbnRhbCJ9LHsidHJhaXRfdHlwZSI6IuKYniBDb3VudCIsInZhbHVlIjoyOH0seyJ0cmFpdF90eXBlIjoi4picIENvdW50IiwidmFsdWUiOjIwfV19" data-message="BitGlyphs #381 - bc1prd9upap68z0s28amecyp483g0v4ver60vjcupcsvkper8455r5psl0kyad" data-signature="fc22d2728c38e1476ba3746c5bc1ff27e046a4ff3631bbe66c05fb46b0c50b14013ee1c2b855d8cb81227f5ea2c92ca9151b99c92126c949d3726bdf91d23fc9"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="28.8" letter-spacing="-4.8"><tspan x="0" dy="-178.5">........ </tspan><tspan x="0" dy="24">.......... ...</tspan><tspan x="0" dy="24">.. </tspan><tspan x="0" dy="24">... .</tspan><tspan x="0" dy="24">..... ..</tspan><tspan x="0" dy="24">.... </tspan><tspan x="0" dy="24">.. ...</tspan><tspan x="0" dy="24">............... </tspan><tspan x="0" dy="24">............... </tspan><tspan x="0" dy="24">.. ...</tspan><tspan x="0" dy="24">.... </tspan><tspan x="0" dy="24">..... ..</tspan><tspan x="0" dy="24">... .</tspan><tspan x="0" dy="24">.. </tspan><tspan x="0" dy="24">.......... ...</tspan><tspan x="0" dy="24">........ </tspan></text></svg>h! text/plain;charset=utf-8 text/plain;charset=utf-8 text/plain;charset=utf-8 FjDOUT:21EFE6CC26BB75904B21C06DE3B19EA4ED4D1BAC08B9FBAD79383BD066C8B563 FjDOUT:6494111783057F740A0708303A97A978B038BED96611C64FE4E2EF2306109CB8 KjISWAPTX:0x1693a19137b9bd135cfaca4dabb0d3ce98508553305f75cf2c775517d186c09b <svg viewBox="0 0 1543 2499.2" xmlns="http://www.w3.org/2000/svg"><path d="m0 1361.05c271.87 144.38 555.56 295.51 774.67 412.45l768.33-412.45c-278.2 413.29-510 757.36-768.33 1138.15-258.79-379.95-544.59-799.2-774.67-1138.15zm29.55-114 745.96-398.05 736.25 395.14-735.83 398.49zm745.12-525.58-774.67 407.81 771.29-1129.28 771.71 1131.81z" fill="#3ab83a"/><path d="m774.67 1773.5 768.33-412.45c-278.2 413.29-768.33 1138.15-768.33 1138.15zm.84-924.5 736.25 395.14-735.83 398.49zm-.84-127.5-3.38-721.5 771.71 1131.81z" fill=L "#0b8311"/><path d="m29.55 1247.06 746 61.22 736.25-63.75-735.87 398.52z" fill="#0b8311"/><path d="m775.51 1308.28 736.25-63.75-735.83 398.52z" fill="#146714"/></svg>h! <svg enable-background="new 0 0 1326.1 1410.3" viewBox="0 0 1326.1 1410.3" xmlns="http://www.w3.org/2000/svg"><g fill="#e6007a"><ellipse cx="663" cy="147.9" rx="254.3" ry="147.9"/><ellipse cx="663" cy="1262.3" rx="254.3" ry="147.9"/><ellipse cx="180.5" cy="426.5" rx="254.3" ry="148" transform="matrix(.5 -.866 .866 .5 -279.1512 369.5916)"/><ellipse cx="1145.6" cy="983.7" rx="254.3" ry="147.9" transform="matrix(.5 -.866 .866 .5 -279.1552 1483.9517)"/><ellipse cx="180.5" cy="983.7" rx="148" ry="254.3" transform="matriL x(.866 -.5 .5 .866 -467.6798 222.044)"/><ellipse cx="1145.6" cy="426.6" rx="147.9" ry="254.3" transform="matrix(.866 -.5 .5 .866 -59.8007 629.9254)"/></g></svg>h! iTXtXML:com.adobe.xmp " id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.1-c000 79.dabacbb, 2021/04/14-00:39:44 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/M 1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmp:CreatorTool="Adobe Photoshop 22.5 (Macintosh)" xmp:CreateDate="2021-09-11T14:17:34-07:00" xmp:ModifyDate="2021-10-11T12:23:12-07:00" xmp:MetadataDate="2021-10-11T12:23:12-07:00" dc:format="image/png" photoshop:ColorMode="3" photoshop:ICCProfile="sRGB IEC61966-2.1" xmpMM:InstanceID="xmp.iid:23538f03-c59c-4a60-ae53-4190d71d3020" xmpMM:DocumentID="adobe:docid:photoshop:eda08ddd-48cf-6148-8fe3-d6dd44de96ee" xmpMM:OriginalDocumentID="xmp.did:a5fM 82ccc-a0f0-4dd6-9748-f4624585ae89"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:a5f82ccc-a0f0-4dd6-9748-f4624585ae89" stEvt:when="2021-09-11T14:17:34-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:23538f03-c59c-4a60-ae53-4190d71d3020" stEvt:when="2021-10-11T12:23:12-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </M x:xmpmeta> <?xpacket end="r"?> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzODMiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zODMiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKCvyDih6cifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6ODh9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiUmFkaM WFsIn0seyJ0cmFpdF90eXBlIjoi4oenIENvdW50IiwidmFsdWUiOjU2fSx7InRyYWl0X3R5cGUiOiLigr8gQ291bnQiLCJ2YWx1ZSI6MzJ9XX0=" data-message="BitGlyphs #383 - bc1pqg5u4hqk9qnlz98245h0chfzcghgrdqnxkejd5leu6u6l92hggsq0mwnlw" data-signature="9aed37dc81e1b7b1c3b42c935584f21379f49cd7e413fa6f4181ec17364d060b0287ea064298c0dcc1efa0b1baa3dc36912483e6cf89de7d8b0e2ea5819f30e0"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="28.8" letter-spacing="-4.8"><tspan x="0" dy="-178.5">.. ..</tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24">..... .....</tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24">... ...</tspan><tspan x="0" dy="24">... ...</tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24">..... .....</tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24">.. ..</tspan></text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzODQiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zODQiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKWkSJ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBDb3VudCIsInZhbHVlIjo0Nn0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIFN5bW1ldHJ5IiwidmFsdWUiOiJSb3RhdGlvbM mFsIn0seyJ0cmFpdF90eXBlIjoi4paRIENvdW50IiwidmFsdWUiOjQ2fV19" data-message="BitGlyphs #384 - bc1pqg5u4hqk9qnlz98245h0chfzcghgrdqnxkejd5leu6u6l92hggsq0mwnlw" data-signature="7ebd154671c1bf8fa2d376851a8c341716b77f62320867f3eceaff9e4acc3b790b5c62b3f01c9572188be86ad3b701d09c36ccc89b39ca88c4b1a44cf3b16380"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="28" letter-spacing="-4"><tspan x="0" dy="-178.5">............ </tspan><tspan x="0" dy="24">... </tspan><tspan x="0" dy="24">.... ..</tspan><tspan x="0" dy="24">. </tspan><tspan x="0" dy="24">.. .</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">.. ........</tspan><tspan x="0" dy="24">. ....</tspan><tspan x="0" dy="24">.... .</tspan><tspan x="0" dy="24">........ ..</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24">.. ....</tspan><tspan x="0" dy="24"> ...</tspan><tspan x="0" dy="24"> ............</tspan></text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzODIiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zODIiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKWoCBPIn0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIENvdW50IiwidmFsdWUiOjcyfSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgU3ltbWV0cnkiLCJ2YWx1ZSI6IlJvdGF0aM W9uYWwifSx7InRyYWl0X3R5cGUiOiJPIENvdW50IiwidmFsdWUiOjQwfSx7InRyYWl0X3R5cGUiOiLilqAgQ291bnQiLCJ2YWx1ZSI6MzJ9XX0=" data-message="BitGlyphs #382 - bc1pe9eah4mty3n2tpdnf6tr0ev0y7e8wq7wag2vt38v3wmcct8ccsmqgv47ts" data-signature="07722a08fa65940001a37043315aef508c5202425916c8e9da414992770deb9b3a90635e15976cd8013dcb7f70a1f23e3d39eba1c5b4235e91c8b17f1d774134"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,d09GMgABAAAAABRYAA8AAAAAJcQAABQBAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCoGYACBRAM gkCZwMEQgKpwyhFwE2AiQDNAs0AAQgBQYHIAyBJxuXIUUHctg40CyAVLL/6wRuDEX7oPwUWgRFOGOXCyoSZ5rr9jFeWorZlnMpZiiKIqz6LPorSpdJuv/0NsjzZ0dIMuvH27R6VfWhu4U0YLNGMkPvTMtAMpCWDAta5GMOMiT7gCC/cMIjjEjzz2/z7wN8ZKtEPRMrmJmAGRh9HLoqdFGF0eQi0kW3P5LLXJl6HJQSFoTIG4IDJNtzAPCkkFT5SfcUeGYDZDsA8DtCw+K2Lzd4iZirVaq7cw6E+DPPyTa/RUVIS0hBkvH00JR0JfB86kouqoQV+MoP78gBOnBIS4cgBaVbZ4v6itpd9eRw/n93o04WrOed/72u1/aep7ez8n7bAeaeqWpSPt2FSG9lkNYgmaU1gbShNUMVoKLC0mVAZiWsH4TtXDpFE+5TJUXHZZoibclFl2U4RdIFBjVHdHI5ZPffDeVHJ4xtn/zhQAA89KAMDpY29hF97Oy5J5CHAoCWA/6LK/M kdrYIG+BX+NoB3b09GtzFM/MQMLYDvfPvB2v34Prp6Pii7LQt3yo8IC4AKDOElxEljk7x9FC7CMtqwVw66UMUg6jiGWymYKT4ueSetVqxWGBXXECdEhKiQKKQWMbLLpS6N8kKuP55Jp3WRlcny05/Knww9nPmw9WHMQ+KD3x48enD/wa4HUwEEZq6Rsti8PFitAeRv4yEMo8jmPzRuNjF3nwJj85Rf0lTag2fY8n9HSjKe6JmxFrwA6qCDCpN3EGiLpw6GWrUOgTQ/pXdpxvdJUVLyhXt9X7qzhHl0LoQ9zH5uUNfnHWcyTJ72yQ2bku6i/dm9G3Kl1Hcp7ca3peA6/IhdVjOdkUpJIMMAqp6y9cykkUb4/jUUjD51Za1zOBliDoJFLB58DoVp0x47tq9dx1c+U/vZUy9RCkS5oczrZyonhvRQKfp+QqbSvjO5yHOSp9vStbcXEzQRpBjLngc2wpyA2wDOPMfatuHiWue1s/wvLpPczH9a0hibHKGg68xT7CFZqoM 8ODRkKynIjWO4FrPc43htrIxQ7jKwVUJhZbOolg3l1zdB5bdWoI0Kv2sQ7p7RtfxcaylDeUNF+SHsmH8Sg0UbBvwugjUrqw9iewwKXvQ4ZHZOTdL1XAfocGU6n0HgB7KrDhTC6QJSTf0pSqR3jxzG7lQZoVx46tyEc+sfWaCi0vBG54RZemoICoizJsO1MpJG0j3ltzKNtHl9aAWJZd9D8pkSqenS9AayUUJS5SfyM1CR7kMi3Rm18bB0xFM4ccH9N5IhDdogQ40Zl65jpfSR+hlvEI0cCqiqRXPmnZNx2JiSYpD11WiVJc5PYPApFfQ/iXSITPfcoNXk/bB4GnrHSSJ08jYJO/9hOrgtAiScRIj8z2XyJhYh3QVMqiGldZNeJMt++03UZxVetvtI4uiaP2Jqr8fRIjGOh2CMkWFOror8XLJALOoAItjpSjT61DGYKMgdHgaT3MiTqPREPxV7S3/zMrLRnLsx474WndDaUlHQp8K4wfyfyRBYF/d5OOUGUF0wFIVM QUikpC0xVh6KqwdE04dF24E6pQ1Scw8eZRMOMK+rinPNTRl1HOyp8L95d75O9ma8MMsSDiZCj5HTAsJxra4dABh044dMGhGw49cOiFQxkON+BQgWsPQGpjpcGORD6WfvfNvj5jihmw1+lDYDBMT82qYxgiYxnJWPOSPqiveq42gtNIzY9LtHhgbdtieLVo7Q/D0yigOyqbVc9vj0FeMT1+HDOwkYP+Qij8j1VIizH1C7MFBu90qYxpX8zNMgGpZcx6AIjfIMckqiu1Y6pYBHFS+jzTKCxT96SSMfD3lOnr7TuP/DgzSzgzj7gFvO+mVPsXHztmAKbICU/ZVC2SX8KyR4i9H+2AF6nbKXIxsy2pvEAwXqPk2xVOr4Pg34Sfyi0681NFi3PRexU8SovsBTpK+EiEGedHutozUoZiahTN3KBleNnA46aIWPlCWUVQkY7yklE8jmDbqj3caxKiFRyN6qSJx9eW0S1GqCg32gbgyFp/FF2mn6nRMaeGM4gIOgq0XgqX51M t4efaIcoc8gkMX0quc1JSsvLPdh0pqtea2YKKg9RBizFpv/XVLTYMrtfT6SGlv7kMXp6z4Rqz0I7bFU9rQb+BDa1iBas7PMeyZgxikjlUZ0l4vc9E7bnpg9jZ+s94ql37St8BM6CwZgNnQtim2r/vYThVLYVgxVE21FqZs042UPjsT9p5vNs47q9RS6VLb3+JLKF7OPJgy5z/E2IJZHH4Me3StS8baykgbWaTlCVjrKcRZsZQaaZWyIMvxj1W3f5f3O9y77Qsxc2L10qxNX0eBGh6TEG2A6Y02d4apoUolo7YzUZS/BWNWCetK1dFBRg9sC6WdCgl2heq9fIzFPgMdVEhwKHTSEX5Coe8cK0Op0UcCHmWcpqeCBCNIsIIEJ0jz/aEmBNSEiJqQUNNyPlaEghWo1SvSDGjqLCEwDASGicCwEBg2AsNBYLgIDA/BPB8FvfaawZkHIWQIUkcSryJgOw66kG+SlMBIS0DZaLQWkcuhkHPLAzBVABCy5onbALDTdmXoJPM QSBgmjhEnCLGEph1WGTYZdhkOGU4ZL1r5D+A+9qk1g5juVOV8+qDU2Rt/DmSAre+dP1Ftx20GgVgsxzCoFmCPYTh+gfgPo38NxnrPpj6NB0RDeQiYq6JQqqp93yU5Ek672rgomoQSykD0cTA/Gw0kn93HVtCqaLFhJ47OZeLzYl0qiTNji+Qgc+e32p0c8H7cE6qgIoiKGFWRPjc8uvXC7vx0wouf+mXcMydmD67/GqWNugGSNdXt7PmvnLBcXRRwjQkH83HWgIgWTI9KbjCYxjjb/OAlNh83/vvRdtlmBThTUNTZlWmka0/QrXWeqrNK2VlYbwkTLorzUOpVBq4IMW/7h/1c++iT98KPk4w+zT4w7fp+8tyMi44RJwu8dqHUndOftngNGGB+tCCLEw/TFRfpCrx9G8h+MgZjX8kvLDu4LNmj4IEqs5i97JT4Jhn3kJH3Rzsp60mKs/WZLtT2NvogHUEfJdFMwSSC64R6h04WY7tgY9uwhXSrrpUpjGhDP/ta2zPM H61rymNkUEOE2kY05SdJwxEsMy61OFa+6VIK9ZppwFMiCooSmmGWhHNH3cZlAL2iEj47jFoJO6xjSC16dN+m/TURAw/W7+TmBzfi+t77XUoteQ5eXdmadJ/aTFVqQyguf3t/cfud8HK6hEWJVr0RyHXnPsPeO+CctFdUc3Cdq+KnrnPz1d8hvZw76k5+blK1PnrMU1xvrSzsuEMMckzdd6mT6083BckMeMc45SqVBjOIQYE5O0zIL5gDnSkGp59UZPOkJMBZEqi3ptN9tZNJ9nLW4T7fn+TUN+I3veD+fuuaNaufJy7FwI0AGokxePI8TAHFVdRy8enj1AiyWS6wtwCBpIFJEgBBSrigFqEjkrf3eycQjJHE/SQ54dPvAjvLzde+gyhf34+ZlK3Ow/Eqr4/PzBisRaN8iFiLm86xLG9JS56Dq869Cyg/hRzTzLWuvv8yXzblGSlhnPdoeodKaUI+XrNhVBpEJVb91mP4cPF3iP60xbundDTq8lz9qc7bqtWF3dszM oE51Dv9cfPnwQQJyxE+vD5o3NHYalDzJqqUZVzRUPDmNhqUY1CB8M5w/cnG/FP4fEkbZG72TSsh91AaPqdmKSytp3C73QmtbIRz6RxTyYlvXzjWt3e7w8eGrDrjekeCKNHykwe0kfUUXO4X+w6du7K7pMXv1D94KnBMWk1pEm+bOJJ8j3Ph/zI/ePM59v72za9++em2SidEJ2hSv+rkipt9LPFHIkY1N7WHvFjrduQR116eKdz05ZLF3gNm7YfrDYcWXIMgjqOLz0KiolLN7MK1w0uGeYUbxgZlVqS61rK5h8+c3Hh8jIGl3Luz+somuRG1Uv5nkvrQo4f+MksNOg6t75+CfsodprcIv8plt75dNHBq0QvFZJCa90+qw35/cHA2C9jrqGyLYsSGy7V+ClbKVptb69x8XG6RXVYxsaM73kAjpp7euHUxHVFej0sis8GoLYUAaAIWbwYKQIAKb1ErM0uMs0iRIU3/VLwKmt2AlCmVgKQ4e2dAYBSfUipBuBSfDgAoUM 07FKSVWGb2oim/hnvQ69dNGNWG5vesH+7b4L9DX2OFlKFQsXHqSF8ZeHu24fXznByNQjO39Vf1mv1uyzX89Ps7SanUqCT7S373dbdH6/fXJapPvl5/s5vbdnVyRqJ3mHTTcErB7Dm1jNq8fEY+mVTHqCNFTqKXXLSokjBKKOZvwzPKcEE9aSNpG2fbInIqJYGyneYdBUGgsLx/30Qjxc8FghOo6Bu0/tXVg2pPbzFlJznaG3JKpsiv7yz1sUHjEg6Tt7NDyEm0wO+bWESd+t+ajm7gb7Za2nqAvymmX8yFthEsQ8CHtm4q8nGzoMUiqxm3HehROwl2swU9ZLKYrCa7yWyymSpIALcJ2FC9sNlaKu4GBmtxl81sJYBtTlZuhf7fsS7dMDb2/j0/qqMcKGdR8wvWz2vVCmhQjqAANJZ7lLgtXS0tExcUgzR2snRyScmjDJlaXoC9QQUT6vyrfRPzgmNd1ILsQqaq7ch3urQw/9KT+kBcgBsKzOPRr7ZUT6wNrg9Jo6M Ni+YQE/lpiKoTQaXEx0JdmKcvvm3TPdW2OImfEM08O+clQBkzYKoEHhgUfTauN1/UXrp5GgAxQJ75x9bVK1la3BM3bo8O/OKumpcRpAnhIFbYeXPcQECgC18+21QxUnA5mpIo5/cj0GIMfwOljmXQghrLQZewa1giTkx+D1cU5dawqYWRr/n21m1EMDhgVk43RgOggGZFKBEQqUUFypPnp1+UHcZrm8zYRDFAnhN/A/xcmD7ZrElofDftV4jfOna8WBrS3c7Cg/rqHwPj8pstngkuMnAOj0hjsGVkDGKw/wOJYMTI0G13GSo49xMTkc7CcYEjCxZUyFGPXZtChxdAil5yCGGO/+C6+j5joIfKVOhYPxIz0oeGrSt0nGe3oeLhFZirNnIg5iJ2vfWSxDwngkI4LtrvnJ8INC/gbD+R94pnRus81TyDoz6mqRrA6gc0nSHB2hPMjclD+dCaEQtODnQrY8CgMH+4MSg4QsuujCRyGI08Un11XihQqlixRFCKlo5Pa1KM VM5W58NMiGq/sm1ah04eE6Vc3HSW3qUubQj8G+n1TVyWoVl6ur444ZukE703VQVyGta9S9kCvTPvova9Qd/bnY2Px+/2ZZf3xRaqa2xC2rdMuZPNG8mfJsRV7F9MhGVW2tqjFyekWeIkc+c54wL2PoXDZSPL48tDQ4uDS0nP61pWDHzYadgbn3o3LSF5aVJY1yChipExrSCYuaBbnJa1FyMWrc1Nm8qbwKTX0RcVn5lpr1zl++dDbrAqpPM0AcPFf5gq/e2Td+6QUIurBuq8+qPrXRmR5Ed0Y5PS7Zl0gZEwrwZJoLjSzEC1dYNbn93H8k0Brk3woLAOR3ZAFaTRzIblrpn/vk+Z3HDMinJH3cPvmM6H0+zR/YZ1C6lzsf2yUp2OM+J7nW31tG/iUB0LopFv6Lz+hqvyqguRIzVn0Wlo31i9j2sX8dwkrJMyCACQ+DRfGdYFYnUKzqJb8t19Kb9PqoSMOPrCwv1WamOjsyKW2zVb+rZIDRxSBNEEU3oVRMbQEII5M wYJiWtLVEvg0SII2z5JyBQPdHGNl/9EkAjIORj9SuamHGmCIhuQoTOQBSjrYGqwF+s7gzs5LKoSMXYbLnvcKWKYj+LsMVU8ncqAAoqKTZX9T1NYbeDdIg31i8Gto/9fiGC55LXhItwyA03EdImdKyYYUkb6CZCIXPikAmZeskfA9hjeK+v4xOTi/JOG/7VhbnZ6bGR4cH2fyw2frigIxJ73t4sMYg2mEBCEFWHQg33YDmB/P3Vx3O5lLLFqr9+43pGWGaHK6J0AgyqL7KxagMC1sJNaCjSqgkCLKEJa4w9grXmBMaa+vh0ebI8PTHq2GtV/+0GrGiaTIo37iDbTi6vJ4QpG2cFUk0mFChlkGoWczHRmSibpDbNdISt69ijPCVD5DpJ92Hym9Y6J2GPHevUg6C+ub4WrAYrS7VbN/2F+dmp8bHRkeGhwYH+vmrlRm9Pd1fbtVQilUh3JJOJkr0+Xs34zSZIqz5jIOZIWDEsm8S7uQmGKJYmFLRRugnjWHMEF451nYM dhjD2BNbb+9BMPP3h699FBfX2ltjA1PlQpd7d5su9yD7ZqfQqC73z9onv72O8GMb0FLMJPQQAleMiQ0lodbapZ8gRa6XrJ7ypzH/kt5PtNw0/ef/7Yw+dP3//06srU5I3ysrU5xj/H4f7W2nIwPzk26Jx5b3O2ogT96AILCT8DojdDG1IwhTyI4AiAnEEgO0+3G993ej198YafPD99pHn65PmTK8sT4709jL+3JRjRYvTroZVo9VooFsWvhQjO7H31Dg4x0zntb7FAWFkObs1Md3UW+ov9kTDylHcHvs0oCPQWAC+UB8e10n/lMzhmSJS8BQpMih8GAdQAEU40gVC/WmJ0dpTKV8v5XDKBKEetzVZBAAi4njOtk9jcv52Y/A4AbqeHb29fT67hsdb//79UQ34EwAEDpatf8tuoVBmFivLV8jOX2qiByvKSvVXE7dYPoIXjCvgzIqdk+HgJ75n60WgYcLiB4Fp42P761/Hz3cJLovc2bPQpdfzUJewnjT4qu9lfCiM vyaF+c53duflN8EEJIroT+RjdbCy676O07hRf+ouNzul+Ux33dAe1A0Chd9nqJbzqvB6maUffl3uRZ3peiTNHK16n1lgv1nkvuOr+k7zcIAgAA)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="25.6" letter-spacing="-1.6"><tspan x="0" dy="-178.5">..O.O... O.O..</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">O. ..O</tspan><tspan x="0" dy="24">...O...OO ..</tspan><tspan x="0" dy="24">O... .........O</tspan><tspan x="0" dy="24">..O. ...O..</tspan><tspan x="0" dy="24">......O. ...</tspan><tspan x="0" dy="24">.. </tspan><tspan x="0" dy="24"> ..</tspan><tspan x="0" dy="24">... .O......</tspan><tspan x="0" dy="24">..O... .O..</tspan><tspan x="0L " dy="24">O......... ...O</tspan><tspan x="0" dy="24">.. OO...O...</tspan><tspan x="0" dy="24">O.. .O</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">..O.O.. ...O.O..</tspan></text></svg>h! 108f86f35b964b2e4d414423ef61af98G0D <?xml version="1.0" encoding="UTF-8"?><svg id="a" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 230.85 101.5"><defs><style>.b{stroke-width:.25px;}.b,.c,.d{stroke:#fff;stroke-miterlimit:10;}.b,.e{fill:#fff;}.c,.d{fill:none;}.d{stroke-width:2px;}.e{font-family:CourierNewPSMT, 'Courier New';font-size:28px;}</style></defs><g><rect x=".13" y=".13" width="230.73" height="101.25"/><g><path class="b" d="m44.59,10.48v7h2.48c.33,0,.56.06.7.18.14.12.21.29.21.49,0,.19-.07.35-.21.48-.14.13-.37.19-.7.19h-5.63c-.32,0-.55-.06-.6M 9-.19-.14-.13-.21-.29-.21-.48,0-.2.07-.36.21-.49.14-.12.37-.18.69-.18h1.81V1.47h-1.81c-.32,0-.55-.06-.69-.18-.14-.12-.21-.28-.21-.49s.07-.36.21-.49c.14-.12.37-.18.69-.18h8.12c1.67,0,3.08.53,4.23,1.59,1.15,1.06,1.72,2.26,1.72,3.59,0,.96-.35,1.86-1.06,2.71-.71.85-1.89,1.55-3.56,2.12.96.66,1.78,1.41,2.46,2.24.68.83,1.77,2.54,3.28,5.11h1.02c.32,0,.55.06.69.18.14.12.21.29.21.49,0,.19-.07.35-.21.48-.14.13-.37.19-.69.19h-1.79c-1.66-2.97-2.95-4.97-3.86-5.98-.91-1.01-1.96-1.8-3.14-2.37h-4.27Zm0-1.34h3.66c1.17,0,2.23-.21,3.1M 9-.64.95-.43,1.65-.93,2.08-1.5s.65-1.16.65-1.76c0-.9-.45-1.75-1.35-2.56-.9-.81-2-1.21-3.28-1.21h-4.94v7.67Z"/><path class="b" d="m14.1,53.85H5.27l-1.81,4.91h2.57c.32,0,.55.06.69.18.14.12.21.29.21.49,0,.19-.07.35-.21.48-.14.13-.37.19-.69.19H1.02c-.32,0-.55-.06-.69-.19-.14-.13-.21-.29-.21-.48,0-.2.07-.36.21-.49.14-.12.37-.18.69-.18h1.04l5.93-16.02h-3.96c-.32,0-.55-.06-.69-.18-.14-.12-.21-.28-.21-.49s.07-.36.21-.49c.14-.12.37-.18.69-.18h6.76l6.55,17.36h1.04c.32,0,.55.06.69.18.14.12.21.29.21.49,0,.19-.07.35-.21.48-.14.M 13-.37.19-.69.19h-5c-.33,0-.57-.06-.7-.19-.14-.13-.21-.29-.21-.48,0-.2.07-.36.21-.49.14-.12.37-.18.7-.18h2.56l-1.84-4.91Zm-.51-1.34l-3.71-9.77h-.5l-3.6,9.77h7.8Z"/><path class="b" d="m96.46,50.8c0,1.79-.36,3.45-1.09,4.98-.72,1.53-1.72,2.72-3,3.57-1.27.85-2.64,1.28-4.1,1.28-2.16,0-4.07-.92-5.71-2.76s-2.47-4.2-2.47-7.07.82-5.25,2.47-7.08c1.65-1.83,3.55-2.75,5.71-2.75,1.46,0,2.82.43,4.09,1.28,1.27.85,2.27,2.04,3,3.56.73,1.52,1.09,3.19,1.09,4.99Zm-1.36,0c0-2.18-.63-4.15-1.9-5.88-1.27-1.74-2.91-2.61-4.92-2.61-1.89,0-3.5M .83-4.84,2.49-1.34,1.66-2.01,3.66-2.01,6,0,2.49.7,4.53,2.1,6.11,1.4,1.58,2.98,2.37,4.74,2.37,2.01,0,3.65-.87,4.92-2.6,1.27-1.73,1.9-3.69,1.9-5.89Z"/><path class="b" d="m49.63,84.02v16.02h3.48c.32,0,.55.06.69.18.14.12.21.29.21.49,0,.19-.07.35-.21.48-.14.13-.37.19-.69.19h-8.33c-.32,0-.55-.06-.69-.19-.14-.13-.21-.29-.21-.48,0-.2.07-.36.21-.49.14-.12.37-.18.69-.18h3.48v-16.02h-5.5v4.65c0,.33-.06.57-.18.7-.12.14-.29.21-.49.21-.19,0-.35-.07-.48-.21-.13-.14-.19-.37-.19-.7v-5.99h15.04v5.99c0,.33-.06.57-.18.7-.12.14-.29.21-M .49.21s-.37-.07-.49-.21c-.12-.14-.18-.37-.18-.7v-4.65h-5.5Z"/></g><path class="d" d="m91.47,38.5c-4.39-15.04-16.55-26.67-31.73-30.43"/><path class="d" d="m59.74,93.74c14.13-3.49,25.51-13.77,30.61-27.09"/><path class="d" d="m7.89,66.65c5.01,13.12,16.09,23.18,29.72,26.86"/><path class="d" d="m39.08,8.93c-15.15,3.97-27.13,15.8-31.31,30.86"/></g><text class="e" transform="translate(113.23 58.64)"><tspan x="0" y="0">RDINALS</tspan></text><line class="c" x1="99.55" y1="51.08" x2="112.55" y2="51.08"/></svg>h! UUUIIID0+eeefJBYYYcG?eIAgKDdH@fJCeHAjOHB/*A-)]]]E1+QPPHHH (((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((((((( %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz urn:mpeg:mpegB:cicp:systems:auxiliary:alpha Transfer to Shakepay to sell {"attributes":[{"trait_type":"Eyes","value":"Sad"},{"trait_type":"Clothes","value":"Puffy Vest"},{"trait_type":"Fur","value":"Black"},{"trait_type":"Mouth","value":"Bored"},{"trait_type":"Background","value":"Yellow"},{"trait_type":"Hat","value":"Halo"}],"external_url":"https://baycbitcoin.com/index/bayc/2949","image":"ipfs://QmWwSKeAhhs1CNNDDkMaYgdWvZjrCUyfczc51JXp81i3H1/2949.png"} 7,-@WAFLNRSR2>ZaZP`JQRO &O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz FjDOUT:4A2FBB76CDA4421CADAB3523FB46604A8D8204D1ED410E13C87892C44D00CC11 text/html;charset=utf-8 <meta charset="UTF-8"> <title>A simple template for launching your art on Bitcoin</title> Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below. Are we missing an important library? Let us know @generative_xyz. <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <!-- c2.min.js@1.0.0 pt sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script> <!-- chromajs@2.4.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script> <!-- <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>--> <!-- threejs@r124 <script sandbox="allow-scripts" typM e="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script> <!-- tonejs@14.8.49 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script> <!-- svgjs@3.1.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script> <!-- aframejs@1.2.0 <script sandbox="allow-scripts" type="text/jaM vascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script> <!-- babylonjs@5.47.0 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script> <!-- paperjs@0.12.17 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script> <!-- regljs@2.1.0 <script sandbox="allow-scripts" tM ype="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script> <script type="text/javascript"> Add your script here Add your script here <script id="snippet-random-code" type="text/javascript"> let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substM ring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); urn _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | M 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); html, body { margin: 0; padding: 0; max-width: 100%; max-height: 100%; margin: auto; overflow: auto; position: fixed; object-fit: contain; bottom: 0; left: 0; right: 0; <script type="text/javascript"> const rand = mathRand(); function T1(rand) { // calculate rarity by yourself if (rand > 0.5) { return true; // window.$generativeTraits contain list traits for token // you need to populate a $generativeTraits object in the window object window.$generativeTraits = { "T1": T1(rand), console.log(window.$generativeTraits) Add your code here nst container = document.createElement("div") // container.innerHTML = "<span>seed: " + seed + "</span><br>"; // document.body.prepend(container) //License: Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. //Author: @devhontran //Twitter: https://twitter.com/DevHontran //Website: https://hontran.dev const scaler = 1; let paper, border; let shadown = {x: -5, y: 5}; let layers = []; let padding = 40; function cyrb128(str) { = 1779033703, h2 = 3144134277, h3 = 1013904242, h4 = 2773480762; for (let i = 0, k; i < str.length; i++) { k = str.charCodeAt(i); h1 = h2 ^ Math.imul(h1 ^ k, 597399067); h2 = h3 ^ Math.imul(h2 ^ k, 2869860233); h3 = h4 ^ Math.imul(h3 ^ k, 951274213); h4 = h1 ^ Math.imul(h4 ^ k, 2716044179); h1 = Math.imul(h3 ^ (h1 >>> 18), 597399067); h2 = Math.imul(h4 ^ (h2 >>> 22), 2869860233); h3 = Math.imul(h1 ^ (h3M >>> 17), 951274213); h4 = Math.imul(h2 ^ (h4 >>> 19), 2716044179); return [(h1^h2^h3^h4)>>>0, (h2^h1)>>>0, (h3^h1)>>>0, (h4^h1)>>>0]; function sfc32_c(a, b, c, d) { a >>>= 0; b >>>= 0; c >>>= 0; d >>>= 0; var t = (a + b) | 0; a = b ^ b >>> 9; b = c + (c << 3) | 0; c = (c << 21 | c >>> 11); d = d + 1 | 0; t = t + d | 0; c = c + t | 0; return (t >>> 0) / 4294967296; // return random value from [l -> r] function consistentRand (seed, l, r) { const rand = sfc32_c(...cyrb128(seed.toString())); return l + rand * (r - l) function getRandomItem (listP, seed) { const pref = [] for (const x of listP) pref.push(x) for (let i = 1; i < listP.length; i++) { pref[i] += pref[i - 1] for (let i = 0; i < pref.length; i++) pref[i] /= pref[pref.length - 1]; // get random value from 0->1 const rand = consistentRand(seed, 0, 1) r (let i = 0; i < pref.length; i++) { if (rand < pref[i]) return i; function createRadialGradient(x, y, r, x1, y1, r1) { const grd = drawingContext.createRadialGradient(x, y, r, x1, y1, r1); grd.addColorStop(0,"#FFFFFF"); grd.addColorStop(1,"#E5E5E3"); drawingContext.fillStyle = grd; drawingContext.fillRect(0, 0, width, height); function artNosie(){ const w = width * 1.2; const h = height * 1.2M paper = createGraphics(w, h); for(let i = 0 ; i< 100000; i++){ let x = random(w); let y = random(h); let dotSize = 10.0*(noise(x/(width / 4), y/(height / 4))*2 - noise(x/width, y/height)); paper.strokeWeight(random(0.25, 3)); paper.stroke(random(20, 80), random(1+dotSize, 4+dotSize)); paper.point(x, y); function generabox(col, pos, si){ const layer = createGraphics(width, height); ill(140, 178, 250, 56); layer.noStroke(); layer.rect(pos.x + shadown.x, pos.y + shadown.y, si.w, si.h); layer.filter(BLUR, 3); layer.fill(col.r, col.g, col.b, col.a); layer.noStroke(); layer.rect(pos.x, pos.y, si.w, si.h); layers.push(layer); function setup() { const hash = rand ? rand : Math.random(); const fCol = {r: 255, g: 255, b: 255}; const s = min(window.innerWidth, window.innerHeight) createCanvas(s,s);M for(let i=0; i<9; i++){ const tHash = `${hash}_${i}`; const cyrHash = cyrb128(tHash); const mixHash_color_r = consistentRand(cyrHash[0], 0, 1); const mixHash_color_g = consistentRand(cyrHash[1], 0, 255); const mixHash_color_b = consistentRand(cyrHash[2], 0, 255); const mixHash_color_a = 255;//consistentRand(cyrHash[3], 100, 255); const sw = consistentRand(cyrHash[0],50, width / 2); const sh = consistentRaM nd(cyrHash[3], 50, height / 2); const col = {r: mixHash_color_r, g: mixHash_color_g, b: mixHash_color_b, a: mixHash_color_a}; const si = {w: sw, h: sh}; const pos_x = consistentRand(cyrHash[1], padding, width- padding - si.w); const pos_y = consistentRand(cyrHash[2], padding, height- padding - si.h); const pos = {x: pos_x, y: pos_y} // console.log('___i', col, pos, si); generabox(col, pos, si); const borderSize = 30; border = createGraphics(width, height); border.fill(fCol.r, fCol.g, fCol.b, 255); border.noStroke(); border.rect(0, 0, borderSize, height); border.fill(fCol.r, fCol.g, fCol.b, 255); border.noStroke(); border.rect(width - borderSize, 0, borderSize, height); border.fill(fCol.r, fCol.g, fCol.b, 255); border.noStroke(); border.rect(0, 0, width, borderSize); border.fill(fCol.r, fCol.g, fCol.b, 255)M border.noStroke(); border.rect(0, height - borderSize, width, borderSize); function draw() { background('#ffffff'); blendMode(BLEND); for(let i=0; i<9; i++){ image(layers[i], 0, 0, width, height); blendMode(MULTIPLY) createRadialGradient(width / 2, height / 2, 0, width / 2, height / 2, height); blendMode(MULTIPLY); image(paper, 0, 0, width, height); image(border,M- 0, 0, width, height); function windowResized() { const s = min(window.innerWidth, window.innerHeight) resizeCanvas(s, s); Add your code here text/html;charset=utf-8 <meta charset="UTF-8"> <title>A simple template for launching your art on Bitcoin</title> Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below. Are we missing an important library? Let us know @generative_xyz. <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <!-- c2.min.js@1.0.0 pt sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script> <!-- chromajs@2.4.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script> <!-- <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>--> <!-- threejs@r124 <script sandbox="allow-scripts" typM e="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script> <!-- tonejs@14.8.49 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script> <!-- svgjs@3.1.2 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script> <!-- aframejs@1.2.0 <script sandbox="allow-scripts" type="text/jaM vascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script> <!-- babylonjs@5.47.0 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script> <!-- paperjs@0.12.17 <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script> <!-- regljs@2.1.0 <script sandbox="allow-scripts" tM ype="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script> <script type="text/javascript"> Add your script here Add your script here <script id="snippet-random-code" type="text/javascript"> let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substM ring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762; for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); urn _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | M 0) | 0) | 0, (l >>> 0) / 4294967296 // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation. // This function generates a random number between 0 and 1 with on-chain seed. let mathRand = sfc32(...cyrb128(seed)); html, body { margin: 0; padding: 0; max-width: 100%; max-height: 100%; margin: auto; overflow: auto; position: fixed; object-fit: contain; bottom: 0; left: 0; right: 0; <script type="text/javascript"> const rand = mathRand(); function T1(rand) { // calculate rarity by yourself if (rand > 0.5) { return true; // window.$generativeTraits contain list traits for token // you need to populate a $generativeTraits object in the window object window.$generativeTraits = { "T1": T1(rand), console.log(window.$generativeTraits) Add your code here nst container = document.createElement("div") // container.innerHTML = "<span>seed: " + seed + "</span><br>"; // document.body.prepend(container) //License: Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. //Author: @devhontran //Twitter: https://twitter.com/DevHontran //Website: https://hontran.dev const scaler = 1; let paper, border; let shadown = {x: -5, y: 5}; let layers = []; let padding = 40; function cyrb128(str) { = 1779033703, h2 = 3144134277, h3 = 1013904242, h4 = 2773480762; for (let i = 0, k; i < str.length; i++) { k = str.charCodeAt(i); h1 = h2 ^ Math.imul(h1 ^ k, 597399067); h2 = h3 ^ Math.imul(h2 ^ k, 2869860233); h3 = h4 ^ Math.imul(h3 ^ k, 951274213); h4 = h1 ^ Math.imul(h4 ^ k, 2716044179); h1 = Math.imul(h3 ^ (h1 >>> 18), 597399067); h2 = Math.imul(h4 ^ (h2 >>> 22), 2869860233); h3 = Math.imul(h1 ^ (h3M >>> 17), 951274213); h4 = Math.imul(h2 ^ (h4 >>> 19), 2716044179); return [(h1^h2^h3^h4)>>>0, (h2^h1)>>>0, (h3^h1)>>>0, (h4^h1)>>>0]; function sfc32_c(a, b, c, d) { a >>>= 0; b >>>= 0; c >>>= 0; d >>>= 0; var t = (a + b) | 0; a = b ^ b >>> 9; b = c + (c << 3) | 0; c = (c << 21 | c >>> 11); d = d + 1 | 0; t = t + d | 0; c = c + t | 0; return (t >>> 0) / 4294967296; // return random value from [l -> r] function consistentRand (seed, l, r) { const rand = sfc32_c(...cyrb128(seed.toString())); return l + rand * (r - l) function getRandomItem (listP, seed) { const pref = [] for (const x of listP) pref.push(x) for (let i = 1; i < listP.length; i++) { pref[i] += pref[i - 1] for (let i = 0; i < pref.length; i++) pref[i] /= pref[pref.length - 1]; // get random value from 0->1 const rand = consistentRand(seed, 0, 1) r (let i = 0; i < pref.length; i++) { if (rand < pref[i]) return i; function createRadialGradient(x, y, r, x1, y1, r1) { const grd = drawingContext.createRadialGradient(x, y, r, x1, y1, r1); grd.addColorStop(0,"#FFFFFF"); grd.addColorStop(1,"#E5E5E3"); drawingContext.fillStyle = grd; drawingContext.fillRect(0, 0, width, height); function artNosie(){ const w = width * 1.2; const h = height * 1.2M paper = createGraphics(w, h); for(let i = 0 ; i< 100000; i++){ let x = random(w); let y = random(h); let dotSize = 10.0*(noise(x/(width / 4), y/(height / 4))*2 - noise(x/width, y/height)); paper.strokeWeight(random(0.25, 3)); paper.stroke(random(20, 80), random(1+dotSize, 4+dotSize)); paper.point(x, y); function generabox(col, pos, si){ const layer = createGraphics(width, height); ill(140, 178, 250, 56); layer.noStroke(); layer.rect(pos.x + shadown.x, pos.y + shadown.y, si.w, si.h); layer.filter(BLUR, 3); layer.fill(col.r, col.g, col.b, col.a); layer.noStroke(); layer.rect(pos.x, pos.y, si.w, si.h); layers.push(layer); function setup() { const hash = rand ? rand : Math.random(); const fCol = {r: 255, g: 255, b: 255}; const s = min(window.innerWidth, window.innerHeight) createCanvas(s,s);M for(let i=0; i<9; i++){ const tHash = `${hash}_${i}`; const cyrHash = cyrb128(tHash); const mixHash_color_r = consistentRand(cyrHash[0], 0, 1); const mixHash_color_g = consistentRand(cyrHash[1], 0, 255); const mixHash_color_b = consistentRand(cyrHash[2], 0, 255); const mixHash_color_a = 255;//consistentRand(cyrHash[3], 100, 255); const sw = consistentRand(cyrHash[0],50, width / 2); const sh = consistentRaM nd(cyrHash[3], 50, height / 2); const col = {r: mixHash_color_r, g: mixHash_color_g, b: mixHash_color_b, a: mixHash_color_a}; const si = {w: sw, h: sh}; const pos_x = consistentRand(cyrHash[1], padding, width- padding - si.w); const pos_y = consistentRand(cyrHash[2], padding, height- padding - si.h); const pos = {x: pos_x, y: pos_y} // console.log('___i', col, pos, si); generabox(col, pos, si); const borderSize = 30; border = createGraphics(width, height); border.fill(fCol.r, fCol.g, fCol.b, 255); border.noStroke(); border.rect(0, 0, borderSize, height); border.fill(fCol.r, fCol.g, fCol.b, 255); border.noStroke(); border.rect(width - borderSize, 0, borderSize, height); border.fill(fCol.r, fCol.g, fCol.b, 255); border.noStroke(); border.rect(0, 0, width, borderSize); border.fill(fCol.r, fCol.g, fCol.b, 255)M border.noStroke(); border.rect(0, height - borderSize, width, borderSize); function draw() { background('#ffffff'); blendMode(BLEND); for(let i=0; i<9; i++){ image(layers[i], 0, 0, width, height); blendMode(MULTIPLY) createRadialGradient(width / 2, height / 2, 0, width / 2, height / 2, height); blendMode(MULTIPLY); image(paper, 0, 0, width, height); image(border,M- 0, 0, width, height); function windowResized() { const s = min(window.innerWidth, window.innerHeight) resizeCanvas(s, s); Add your code here 6j4ion:6.QmS762QrC92GDoctaUvkNo85BR2M66BJGFdk3VtiJ9fBp4E+ Bj@=:ETH.ETH:0xE9C069238A27BAB3B406e010AaBa53734AEbb7A1:47518728::0 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzOTEiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zOTEiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKYnyDimJwg4pieIOKYnSJ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBDb3VudCIsInZhbHVlIjoxNjR9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbM HVlIjoiUm90YXRpb25hbCJ9LHsidHJhaXRfdHlwZSI6IuKYnCBDb3VudCIsInZhbHVlIjoyOH0seyJ0cmFpdF90eXBlIjoi4pifIENvdW50IiwidmFsdWUiOjQ0fSx7InRyYWl0X3R5cGUiOiLimJ4gQ291bnQiLCJ2YWx1ZSI6NDR9LHsidHJhaXRfdHlwZSI6IuKYnSBDb3VudCIsInZhbHVlIjo0OH1dfQ==" data-message="BitGlyphs #391 - bc1p64d0z27x5l8m5gt47uelydfuexelef9zf8w0uvc3a299j6ttg60syuhma9" data-signature="a58da214fdbce618a1992f9846657f60f4c018acfff31ebcf5a97be6a11577a2370e0c7ce38210101f40da91c45f0fd8203b573752b726c80bf243f99783acd1"><defs><style type="text/css">@font-face{font-fM amily:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><texM t x="0" y="256" transform="translate(256)" font-size="28.8" letter-spacing="-4.8"><tspan x="0" dy="-178.5"> </tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24">. </tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24"> .</tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24">. </tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24"> .</tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24"> </tspan><tspan x="0" dy="24">. .</tspan><tspan x="0" dy="24"> </tspan></text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzODkiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zODkiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMzJ4MzIifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKYnCDimJ4ifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6MTcwfSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgU3ltbWV0cnkiLCJ2YWx1ZSI6IlZlcM nRpY2FsIn0seyJ0cmFpdF90eXBlIjoi4picIENvdW50IiwidmFsdWUiOjEwNn0seyJ0cmFpdF90eXBlIjoi4pieIENvdW50IiwidmFsdWUiOjY0fV19" data-message="BitGlyphs #389 - bc1pka26pvz5q8u3wjapffakql8ejxne4axddl7qaz479wa4kzjzeqnq82qwv6" data-signature="fbbe9e91fe2dfa2900484cf73c6db503c8900f3399b87827525c9e41fd34ea7019b6e5583ea93484f0d33892aa4d36c89480a447e9a79312b9bea50937f74474"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="14.4" letter-spacing="-2.4"><tspan x="0" dy="-185.25">........M ..........</tspan><tspan x="0" dy="12">... ...</tspan><tspan x="0" dy="12">... ...</tspan><tspan x="0" dy="12">. .</tspan><tspan x="0" dy="12">.. ..</tspan><tspan x="0" dy="12">..... .....</tspan><tspan x="0" dy="12">.............. ..............</tspan><tspan x="0" dy="12">.... ....</tspan><tspan x="0" dy="12">. .</tspan><tspan x="0" dy="12">.... ....</tspan><tspan x="0" dy="12"> ...................... </tspan><tspan x="0" dy="12">......... .........</tspan><tspan x="0" dy="12">.... ....</tspan><tspan x="0" dy="12"> </tspan><tspan x="0" dy="12">.... n><tspan x="0" dy="12">... ...</tspan><tspan x="0" dy="12"> </tspan><tspan x="0" dy="12">... ...................... ...</tspan><tspan x="0" dy="12">....... .......</tspan><tspan x="0" dy="12"> </tspan><tspan x="0" dy="12">. .</tspan><tspan x="0" dy="12">................................</tspan><tspan x="0" dy="12"> </tspan><tspan x="0" dy="12">..... .....</tspan><tspan x="0" dy="12">........ ........</tspan><tspan x="0" dy="12"> </tspan><tspan x="0" dy="12">..... .....</tspan><tspan x="0" dy="12">......... .........</tspan><tspan x="0" dy="12"> </tspan><tspan x="0" dy="12">...........L .....................</tspan><tspan x="0" dy="12">... ...</tspan><tspan x="0" dy="12"> </tspan></text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICM0MDciLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC80MDciLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IlggLyBcXCJ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBDb3VudCIsInZhbHVlIjo2OH0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIFN5bW1ldHJ5IiwidmFsdWUiOiJSYWRpYM WwifSx7InRyYWl0X3R5cGUiOiJYIENvdW50IiwidmFsdWUiOjE2fSx7InRyYWl0X3R5cGUiOiIvIENvdW50IiwidmFsdWUiOjI4fSx7InRyYWl0X3R5cGUiOiJcXCBDb3VudCIsInZhbHVlIjoyNH1dfQ==" data-message="BitGlyphs #407 - bc1px7dxr2d7htp7zfzjrfhd3usf7n3wx53nagquvyc2c6zxycz400wsctuzwh" data-signature="87c544718d0530315225cf45437d6707f0ab3109ba71dd517a4c084cf84443492a4a4882e87719aef2ff3b2dfadbe1a8cc5dbc64d82ce21a8dfe46f158ee01c1"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,d09GMgABAAAAABRYAA8AAAAAJcQAABM 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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="24" letter-spacing="-0M "><tspan x="0" dy="-178.5">..X./.\..\./.X..</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">X./....//..../.X</tspan><tspan x="0" dy="24">....X\\..\\X....</tspan><tspan x="0" dy="24">/..X........X../</tspan><tspan x="0" dy="24">...\........\...</tspan><tspan x="0" dy="24">\..\...//...\..\</tspan><tspan x="0" dy="24">../.../../.../..</tspan><tspan x="0" dy="24">../.../../.../..</tspan><tspan x="0" dy="24">\..\...//...\..\</tspan><tspan x="0" dy="24">...\........\...</tspan><tspan x="0" dy="24L ">/..X........X../</tspan><tspan x="0" dy="24">....X\\..\\X....</tspan><tspan x="0" dy="24">X./....//..../.X</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">..X./.\..\./.X..</tspan></text></svg>h! <svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICM0MDQiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC80MDQiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IlggLyBcXCJ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBDb3VudCIsInZhbHVlIjoxMjh9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiVmVydM GljYWwifSx7InRyYWl0X3R5cGUiOiJcXCBDb3VudCIsInZhbHVlIjo0NH0seyJ0cmFpdF90eXBlIjoiLyBDb3VudCIsInZhbHVlIjo0MH0seyJ0cmFpdF90eXBlIjoiWCBDb3VudCIsInZhbHVlIjo0NH1dfQ==" data-message="BitGlyphs #404 - bc1p4qn2u5mdaj6587ye3v25zq3a90t358q75z4dty2frkn350t2ajuqpt8qca" data-signature="7f3e85d636bdb7d7b3fba28d0ffbab634ab4283449377ba8c126cd49e7e738727148cd9ea0c3fde6ccea6c3760b3a1628232c27d32301ed2c0e6adbb7aafc769"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,d09GMgABAAAAABRYAA8AAAAAJcM QAABQBAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCoGYACBRAgkCZwMEQgKpwyhFwE2AiQDNAs0AAQgBQYHIAyBJxuXIUUHctg40CyAVLL/6wRuDEX7oPwUWgRFOGOXCyoSZ5rr9jFeWorZlnMpZiiKIqz6LPorSpdJuv/0NsjzZ0dIMuvH27R6VfWhu4U0YLNGMkPvTMtAMpCWDAta5GMOMiT7gCC/cMIjjEjzz2/z7wN8ZKtEPRMrmJmAGRh9HLoqdFGF0eQi0kW3P5LLXJl6HJQSFoTIG4IDJNtzAPCkkFT5SfcUeGYDZDsA8DtCw+K2Lzd4iZirVaq7cw6E+DPPyTa/RUVIS0hBkvH00JR0JfB86kouqoQV+MoP78gBOnBIS4cgBaVbZ4v6i