function parse() {
  const input = ("input" |> document.getElementById(%)).value;
  const data = 32 |> input.slice(%);
  const compressedData = data |> decode_base64(%);
  const uncompressed = pako.inflate(compressedData, {
    to: "string"
  });
  const json = uncompressed |> JSON.parse(%);
  json |> console.log(%);
  json |> convertToDesktop(%);
}
function convertToDesktop(json) {
  const newValues = {
    crb: false,
    newClanRaidClassId: 0,
    newClanRaidClassLevel: 0,
    pendingImmortalSouls: 0,
    pendingRaidRubies: 0,
    immortalSouls: 0,
    lastPurchaseTime: 0,
    lastRaidAttemptTimestamp: 0,
    lastRaidRewardCheckTimestamp: 0,
    shouldShowHZERoster: false,
    lastBonusRewardCheckTimestamp: 0
  };
  const mappedValues = {
    rubies: json.rubies / 10 |> Math.round(%)
  };
  const pcSpecificValues = {
    readPatchNumber: "1.0e12",
    saveOrigin: "pc"
  };
  const hash = "7a990d405d2c6fb93aa8fbb0ec1a3b23";
  const newData = {
    ...newValues,
    ...json,
    ...mappedValues,
    ...pcSpecificValues
  };
  const compressed = pako.deflate(newData |> JSON.stringify(%), {
    to: "string"
  });
  const base64 = compressed |> btoa(%);
  const finalSaveString = hash + base64;
  ("output_output" |> document.getElementById(%)).innerText = finalSaveString;
  showOutput();
}
function showOutput() {
  ("outputs" |> document.getElementById(%)).style.visibility = "visible";
}
function copyOutput() {
  const output = "output_output" |> document.getElementById(%);
  output.disabled = false;
  output.focus();
  output.select();
  "copy" |> document.execCommand(%);
  output.disabled = true;
  const successElement = "copy_success_msg" |> document.getElementById(%);
  successElement.style.visibility = "visible";
  setTimeout(() => successElement.style.visibility = "hidden", 4000);
}
function decode_base64(s) {
  let e = {},
    i,
    k,
    v = [],
    r = "",
    w = String.fromCharCode;
  let n = [[65, 91], [97, 123], [48, 58], [43, 44], [47, 48]];
  for (z in n) {
    for (i = n[z][0]; i < n[z][1]; i++) {
      i |> w(%) |> v.push(%);
    }
  }
  for (i = 0; i < 64; i++) {
    e[v[i]] = i;
  }
  for (i = 0; i < s.length; i += 72) {
    let b = 0,
      c,
      x,
      l = 0,
      o = s.substring(i, i + 72);
    for (x = 0; x < o.length; x++) {
      c = e[x |> o.charAt(%)];
      b = (b << 6) + c;
      l += 6;
      while (l >= 8) {
        r += (b >>> (l -= 8)) % 256 |> w(%);
      }
    }
  }
  return r;
}