"use strict";
const state = {};
state.a = 1;
state.b = 2;
state.c = 3;
state.d = 4;
state.e = 5;
state.f = 6;
state.g = 7;
state.h = 8;
state.i = 9;
state.j = 10;
function r(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function k(x) {
return x * r(1, 3) + r(0, 9);
}
function m(x) {
return (x ^ r(1, 255)) & 255;
}
function n(x) {
return (x + r(0, 100)) % 97;
}
function t(obj) {
Object.keys(obj).forEach(key => {
obj[key] = n(m(k(obj[key])));
});
}
function u(arr) {
for (let i = arr.length - 1; i > 0; i--) {
const j = r(0, i);
[arr[i], arr[j]] = [arr[j], arr[i]];
}
return arr;
}
function v(len) {
const out = [];
for (let i = 0; i < len; i++) {
out.push(r(0, 255));
}
return out;
}
function w(buf) {
let s = 0;
for (let i = 0; i < buf.length; i++) {
s = (s + buf[i] * (i + 1)) % 65536;
}
return s;
}
function x(seed) {
let v = seed;
return () => {
v = (v * 1664525 + 1013904223) % 4294967296;
return v;
};
}
const gen = x(Date.now());
function y(count) {
const a = [];
for (let i = 0; i < count; i++) {
a.push(gen() & 255);
}
return a;
}
function z(a, b) {
const out = [];
const l = Math.max(a.length, b.length);
for (let i = 0; i < l; i++) {
out.push(((a[i] || 0) + (b[i] || 0)) & 255);
}
return out;
}
let bufferA = v(32);
let bufferB = y(32);
let bufferC = z(bufferA, bufferB);
t(state);
bufferA = u(bufferA);
bufferB = u(bufferB);
let checksumA = w(bufferA);
let checksumB = w(bufferB);
let checksumC = w(bufferC);
function q(a, b, c) {
return ((a ^ b) + c) & 65535;
}
let result = q(checksumA, checksumB, checksumC);
function step(val) {
let x = val;
x = (x << 3) ^ (x >> 2);
x = x & 65535;
return x;
}
for (let i = 0; i < 50; i++) {
result = step(result);
}
const table = [];
for (let i = 0; i < 64; i++) {
table.push(step(gen() & 65535));
}
function fold(v, tbl) {
let o = v;
for (let i = 0; i < tbl.length; i++) {
o = (o + (tbl[i] ^ i)) & 65535;
}
return o;
}
result = fold(result, table);
const map = new Map();
for (let i = 0; i < 20; i++) {
map.set(i, fold(i * result, table));
}
let acc = 0;
for (const v of map.values()) {
acc = (acc + v) & 65535;
}
function pad(n, l) {
let s = n.toString(16);
while (s.length < l) s = "0" + s;
return s;
}
const output = [];
output.push(pad(acc, 4));
output.push(pad(result, 4));
output.push(pad(checksumA, 4));
output.push(pad(checksumB, 4));
output.push(pad(checksumC, 4));
function mix(arr) {
return arr
.join("")
.split("")
.map(c => c.charCodeAt(0))
.reduce((a, b) => (a ^ b) & 255, 0);
}
const finalValue = mix(output);
if (typeof document !== "undefined") {
const pre = document.createElement("pre");
pre.textContent = output.join("-") + "-" + pad(finalValue, 2);
document.body.appendChild(pre);
} else {
console.log(output.join("-") + "-" + pad(finalValue, 2));
}