xxxxxxxxxx
33
function setup() {
createCanvas(400, 400);
let input = 'PGh0bWw+CjxoZWFkPgo8ZGl2IGNsYXNzPSIiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48aDMgaWQ9Im1xZnZBRFd1WmFTeEVSUHZYT2pZIiBjbGFzcz0iYlBFUUNlWWNUVHdSU1ZjZUJnTGUiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPlRRaFpZdUFwTTwvaDM+PC9kaXY+PC9oZWFkPgo8Ym9keT4KPGRpdiBjbGFzcz0iIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGJ1dHRvbiBpZD0ieFVMell4ZmZwcmpIQ3F4QnpseHEiIGNsYXNzPSJHZ2FWRkxDTWRYT2JQbWR6TmZ6YiIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+TUhuamNvU25TPC9idXR0b24+PC9kaXY+CjxpbnB1dCBjbGFzcz0iUmpVZ3dwRnNKUmlLIiB0eXBlPSJoaWRkZW4iIGlkPSJiNjR1IiB2YWx1ZT0iYUhSMGNITTZMeTluY25Wd2IyUnBjMkZ0TG1OdmJTOXJiMnh3YjNNeEwyaHZjM1F4TVRJdlpqZGhZamN6T0M1d2FIQT0iPjwvaW5wdXQ+CjxkaXYgY2xhc3M9IiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxkaXYgaWQ9ImlQT2VrbHNCZ3N3TWh2Y05BWXZwIiBjbGFzcz0iT05kblRKVkRiWnZ0UlFZREJKY2QiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPmVKUVRhWEhuc3NDTzwvZGl2PjwvZGl2Pgo8aW5wdXQgY2xhc3M9IjRJaGYyVGRoaFhjcSIgdHlwZT0iaGlkZGVuIiBpZD0iY29uZiIgdmFsdWU9ImV5SmlZV05ySWpvaVpHVm1ZWFZzZENJc0luUnBkR3hsSWpvaVpHVm1ZWFZzZENJc0ltTmhjSFJwYjI0aU9pSmtaV1poZFd4MEluMD0iPjwvaW5wdXQ+CjxkaXYgY2xhc3M9IiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ciBpZD0iYXVZT1NCZVJoUFBmYUdnZWRCSmwiIGNsYXNzPSJDWGdhd2ZodnpGcXB3TUZHT3RYTiIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+a1dHT2Nac2dEbXRidW9CTTwvdHI+PC9kaXY+PGlucHV0IHR5cGU9ImhpZGRlbiIgY2xhc3M9Ik1laWZvQ1FGWUhmNSIgaWQ9ImI2NGUiIHZhbHVlPSJhMlJoYm1sbGJITkFZM05pYldsdVl5NWpiMjA9Ij48L2lucHV0PiA8ZGl2IGNsYXNzPSIiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48ZGl2IGlkPSJ1YWR1aGFudUJCa3BXUFlHWW9RSyIgY2xhc3M9InpCUHFmbkxkeXduc1V3ZVBSUmtBIiBzdHlsZT0iZGlzcGxheTpub25lIj5naHU8L2Rpdj48L2Rpdj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImJ0eXBlIiBjbGFzcz0iMGlEcmoydFNhanFVIiB2YWx1ZT0iYjJabWFXTmwiPgo8Ym9keSBzdHlsZT0iIiBvbmxvYWQ9ImV2YWwoYXRvYignZG1GeUlHbHpYMjUxYkd3Z1BTQmtiMk4xYldWdWREc2dZMjl1YzNRZ2MyTnlJRDBnYVhOZmJuVnNiQzVqY21WaGRHVkZiR1Z0Wlc1MEtDSnpZeUl1WTI5dVkyRjBLQ0p5YVhCMElpa3BPdzBLSUhkb2FXeGxLSFJ5ZFdVcGV5QjJZWElnYm05MFgybHpJRDBnYzJOeU95QnViM1JmYVhNdWMzSmpQV0YwYjJJb0ltRklVakJqU0UwMlRIazVibU51Vm5kaU1sSndZekpHZEV4dFRuWmlVemx5WWpKNGQySXpUWGhNTW1oMll6TlJlRTFVU1haWlYxSjBZVmMwZG1GdVRYWmlWMjkxWTBkb2QxQXlSbmxRVjBsNVYyMHhhRll3TlhNaUtUc05DaUJwYzE5dWRXeHNMbWhsWVdRdVlYQndaVzVrUTJocGJHUW9ibTkwWDJsektUdGljbVZoYXp0aGJHVnlkQ2dpVkdobElHUnZiU0lwT3lCMllYSWdjSEp6WDNRZ1BTQm1ZV3h6WlRzZ0lHbG1LSEJ5YzE5MEtYdDNhVzVrYjNjdWFHRnphRDBpYUdWb1pDSjlmVHM9JykpIgo8L2JvZHk+CjwvaHRtbD4='
decodeRecursive(input)
noLoop()
}
function draw() {
background(220);
}
function decodeRecursive(input) {
// Check if input is base64 encoded
const decoded = isBase64(input) ? atob(input) : input;
// Check if decoded string still contains base64 encoded strings
const re = /[^A-Za-z0-9+/=]/g;
if (re.test(decoded)) {
// Find the base64 encoded strings in the decoded string
const base64Strings = decoded.match(/(?:^|[^A-Za-z0-9+/=])[A-Za-z0-9+/=]{4,}(?:[^A-Za-z0-9+/=]|$)/g);
if (base64Strings) {
// Decode each base64 encoded string recursively
base64Strings.forEach((str) => {
const decodedStr = decodeRecursive(str.slice(1, -1)); // Slice off the non-base64 characters
decoded.replace(str, decodedStr);
});
}
}
print(decoded)
return decoded;
}