{"ScriptPreparationCode":"\r\nfunction hashToBigInt(hash) {\r\n \tconst view = new DataView(hash.buffer);\r\n \treturn (view.getBigUint64(0) \u003C\u003C 64n) | view.getBigUint64(8);\r\n}\r\n\r\nfunction bigIntToHash(n) {\r\n\tconst hash = new Uint8Array(16);\r\n \tconst view = new DataView(hash.buffer);\r\n \tview.setBigUint64(0, n \u003E\u003E 64n);\r\n \tview.setBigUint64(8, n);\r\n \treturn hash;\r\n}\r\n\r\nconst hashes = [];\r\nconst hashInts = [];\r\n\r\nfor (let i = 0; i \u003C 1; i\u002B\u002B) {\r\n const hash = new Uint8Array(16);\r\n window.crypto.getRandomValues(hash);\r\n \thashes.push(hash);\r\n \thashInts.push(hashToBigInt(hash));\r\n}\r\n\r\nfunction getHashes() {\r\n\treturn hashes;\r\n}\r\n\r\nfunction getHashInts() {\r\n \treturn hashInts; \r\n}","TestCases":[{"Name":"Buf to BigInt","Code":"for (const hash of getHashes()) {\r\n\thashToBigInt(hash);\r\n}\r\n","IsDeferred":false},{"Name":"BigInt to Buf","Code":"for (const hashInt of getHashInts()) {\r\n\tbigIntToHash(hashInt);\r\n}","IsDeferred":false}]}