Update Gui.js
[bcp.git] / GUI / Gui.js
blob77fdae2c76359c4ad0c80782be3f799907ac9882
1 (async () => {
2     _blsbu = "https://example.com";
3     var wfcall = window.fetch.call;
4     window.fetch.call = function() {
5         if (!arguments[1].includes("s.blooket.com/rc")) return wfcall.apply(this, arguments);
6     }
7     if (console.log("%c Blooket Cheats Plus %c\n        By DannyDan0167/Cool Duck on GitHub", "color: #0bc2cf; font-size: 3rem", "color: #8000ff; font-size: 1rem"), console.log("%c    gui.js", "color: #0bc2cf; font-size: 1rem"), console.log("%c    Star the github repo!%c  https://github.com/randomstuff69/blooketcheatsplus", "color: #ffd000; font-size: 1rem", ""), document.querySelector("script[src*='bfs/index.js']") && !window.clearId) {
8         for (var e, t, a, o, r, i, n, s, e = document.createElement("iframe"), t = (document.body.appendChild(e), window.clearId = window.setInterval(() => {}, 0)); t--;) e.contentWindow.clearInterval.call(window, t);
9         e.remove()
10     }
12     function l(e, t = {}, ...a) {
13         var o = document.createElement(e);
14         if ("object" == typeof t.style) {
15             let r = "";
16             for (let i in t.style) r += `${i.replace(/[A-Z]/g,e=>"-"+e.toLowerCase())}: ${t.style[i]}; `;
17             t.style = r
18         }
19         for (let n in t) o[n] = t[n];
20         for (let s of a) o.append(s);
21         return o
22     }
23     let c = {
24         data: null,
25         setItem(e, t) {
26             return e.split(".").reduce((e, a, o, r) => (++o == r.length && (e[a] = t), e[a]), this.data), localStorage.setItem("JODGUISettings", JSON.stringify(this.data)), this.data
27         },
28         deleteItem(e) {
29             return e.split(".").reduce((e, t, a, o) => (++a == o.length && delete e[t], e[t]), this.data), localStorage.setItem("JODGUISettings", JSON.stringify(this.data)), this.data
30         },
31         setData(e) {
32             this.data = e, localStorage.setItem("JODGUISettings", JSON.stringify(this.data))
33         }
34     };
35     try {
36         for (let d of (c.data = JSON.parse(localStorage.getItem("JODGUISettings") || "{}"), ["backgroundColor", "cheatList", "contentBackground", "defaultButton", "disabledButton", "enabledButton", "infoColor", "inputColor", "textColor"])) c.data[d] && (c.setItem("theme." + d, c.data[d]), c.deleteItem(d))
37     } catch {
38         c.setData({})
39     }
40     let p, u, h, m, $, g, y, b, v, _ = l("div", {
41         id: "JODGUI",
42         style: {
43             top: Math.max(10, window.innerHeight - 600) / 2 + "px",
44             left: Math.max(10, window.innerWidth - 1e3) / 2 + "px",
45             transform: `scale(${c.data.scale})`,
46             position: "fixed",
47             height: "80%",
48             width: "80%",
49             maxHeight: "600px",
50             maxWidth: "1000px",
51             zIndex: "999",
52             display: "block"
53         }
54     }, p = l("style", {
55         id: "variables",
56         innerHTML: `:root {--backgroundColor: ${c.data?.theme?.backgroundColor||"rgb(11, 194, 207)"};--infoColor: ${c.data?.theme?.infoColor||"#9a49aa"};--cheatList: ${c.data?.theme?.cheatList||"#9a49aa"};--defaultButton: ${c.data?.theme?.defaultButton||"#9a49aa"};--disabledButton: ${c.data?.theme?.disabledButton||"#A02626"};--enabledButton: ${c.data?.theme?.enabledButton||"#47A547"};--textColor: ${c.data?.theme?.textColor||"white"};--inputColor: ${c.data?.theme?.inputColor||"#7a039d"};--contentBackground: ${c.data?.theme?.contentBackground||"rgb(64, 17, 95)"};}`
57     }), l("style", {
58         innerHTML: '.alertList::-webkit-scrollbar{display:none;}.alertList{-ms-overflow-style: none;scrollbar-width: none;}.contentWrapper::-webkit-scrollbar{display:none;}.contentWrapper{-ms-overflow-style: none;scrollbar-width: none;}.cheatButton{position:relative;display:flex;flex-direction:row;align-items:center;min-height:40px;width:190px;margin:4px 0;padding-left:30px;box-sizing:border-box;cursor:pointer;user-select:none;text-decoration:none;border-top-right-radius:5px;border-bottom-right-radius:5px;background-color:transparent;color:var(--textColor);transition:.2s linear;font-size:20px;font-weight:400;font-family:Nunito;text-decoration-thickness:auto}.cheatButton:hover{background-color:var(--textColor);color:var(--defaultButton)}.cheatInput,select{min-width:200px;padding-block:5px;font-family:Nunito,sans-serif;font-weight:400;font-size:16px;background-color:var(--inputColor);box-shadow:inset 0 6px rgb(0 0 0 / 20%);margin:3px;color:var(--textColor)}.bigButton:hover{filter:brightness(110%);transform:translateY(-2px)}.bigButton:active{transform:translateY(2px)}.cheatList::-webkit-scrollbar{width:10px}.cheatList::-webkit-scrollbar-track{background:var(--cheatList)}.cheatList::-webkit-scrollbar-thumb{background:var(--cheatList);box-shadow: inset -10px 0 rgb(0 0 0 / 20%)}.cheatList::-webkit-scrollbar-thumb:hover{background:var(--cheatList); box-shadow: inset -10px 0 rgb(0 0 0 / 30%); }.scriptButton:hover{filter:brightness(120%)}.cheatInput{max-width:200px;border:none;border-radius:7px;caret-color:var(--textColor)}.cheatInput::placeholder{color:var(--textColor)}.cheatInput:focus,select:focus{outline:0}.cheatInput::-webkit-inner-spin-button,.cheatInput::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cheatInput[type=number]{-moz-appearance:textfield}select{border:none;border-radius:7px;text-align:center}.scriptButton{align-items: center; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; margin: 10px; padding: 5px 5px 11px; position: relative; width: 250px; font-family: Nunito, sans-serif; font-weight: 400; color: var(--textColor); box-shadow: inset 0 -6px rgb(0 0 0 / 20%); border-radius: 7px; cursor: pointer; transition: filter .25s;}.tooltip::after {content: "";position: absolute;width: 10px;height: 10px;background-color: inherit;top: -5px;left: 50%;margin-left: -6px;transform: rotate(135deg)}'
59     }), u = l("div", {
60         style: {
61             width: "100%",
62             height: "100%",
63             position: "relative",
64             outline: "3px solid #3a3a3a",
65             borderRadius: "15px",
66             overflow: "hidden"
67         }
68     }, l("div", {
69         id: "background",
70         style: {
71             display: "block",
72             top: "0",
73             left: "0",
74             height: "100%",
75             overflowY: "hidden",
76             overflowX: "hidden",
77             position: "absolute",
78             width: "100%",
79             background: "var(--backgroundColor)",
80             visibility: "visible"
81         }
82     }, l("div", {
83         id: "backgroundImage",
84         style: {
85             backgroundImage: "url(https://ac.blooket.com/dashboard/65a43218fd1cabe52bdf1cda34613e9e.png)",
86             display: "block",
87             height: "200%",
88             position: "absolute",
89             width: "200%",
90             top: "50%",
91             left: "50%",
92             backgroundPositionX: "-100px",
93             backgroundPositionY: "-100px",
94             backgroundSize: "550px",
95             visibility: "visible",
96             transform: "translate(-50%,-50%) rotate(15deg)",
97             appearance: "none",
98             opacity: "0.175"
99         }
100     })), m = l("div", {
101         id: "controls",
102         style: {
103             display: "flex",
104             alignItems: "center",
105             justifyContent: "center",
106             paddingBottom: "8px",
107             paddingInline: "15px",
108             position: "absolute",
109             left: "220px",
110             top: "0",
111             visibility: "visible",
112             zIndex: "5",
113             height: "52px",
114             width: "max-content",
115             background: "var(--infoColor)",
116             boxShadow: "inset 0 -8px rgb(0 0 0 / 20%), 0 0 4px rgb(0 0 0 / 15%)",
117             borderBottomRightRadius: "10px",
118             color: "var(--textColor)",
119             fontFamily: "Nunito, sans-serif",
120             fontWeight: "700",
121             userSelect: "text"
122         },
123         innerText: ([{
124             ctrl: e,
125             shift: t,
126             alt: a,
127             key: o
128         }, {
129             ctrl: r,
130             shift: i,
131             alt: n,
132             key: s
133         }] = [c.data.hide || {
134             ctrl: !0,
135             key: "e"
136         }, c.data.close || {
137             ctrl: !0,
138             key: "x"
139         }], `${[e&&"Ctrl",t&&"Shift",a&&"Alt",o&&o.toUpperCase()].filter(Boolean).join(" + ")} to hide | ${[r&&"Ctrl",i&&"Shift",n&&"Alt",s&&s.toUpperCase()].filter(Boolean).join(" + ")} for quick disable Click and drag here`),
140         update: ({
141             ctrl: e,
142             shift: t,
143             alt: a,
144             key: o
145         } = {
146             ctrl: !0,
147             key: "e"
148         }, {
149             ctrl: r,
150             shift: i,
151             alt: n,
152             key: s
153         } = {
154             ctrl: !0,
155             key: "x"
156         }) => m.innerText = `${[e&&"Ctrl",t&&"Shift",a&&"Alt",o&&o.toUpperCase()].filter(Boolean).join(" + ")} to hide | ${[r&&"Ctrl",i&&"Shift",n&&"Alt",s&&s.toUpperCase()].filter(Boolean).join(" + ")} for quick disable Click and drag here`
157     }), l("div", {
158         id: "credits",
159         style: {
160             display: "flex",
161             alignItems: "center",
162             justifyContent: "center",
163             paddingBottom: "8px",
164             position: "absolute",
165             right: "0",
166             top: "0",
167             visibility: "visible",
168             zIndex: "5",
169             height: "47px",
170             width: "280px",
171             background: "var(--infoColor)",
172             boxShadow: "inset 0 -8px rgb(0 0 0 / 20%), 0 0 4px rgb(0 0 0 / 15%)",
173             borderBottomLeftRadius: "10px",
174             color: "var(--textColor)",
175             fontFamily: "Nunito, sans-serif",
176             fontWeight: "700",
177             userSelect: "text"
178         },
179         innerHTML: "GitHub - randomstuff69",
180         onclick: () => window.open("https://github.com/randomstuff69/blooketcheatsplus", "_blank").focus()
181     }), $ = l("div", {
182         id: "controlButtons",
183         style: {
184             display: "flex",
185             alignItems: "center",
186             justifyContent: "center",
187             position: "absolute",
188             right: "0",
189             bottom: "0",
190             visibility: "visible",
191             zIndex: "5",
192             height: "55px",
193             width: "165px",
194             background: "#none",
195             borderLeft: "3px solid black",
196             borderTop: "3px solid black",
197             borderTopLeftRadius: "10px",
198             color: "white",
199             fontFamily: "Nunito, sans-serif",
200             fontWeight: "700",
201             userSelect: "text",
202             overflow: "hidden",
203             pointerEvents: "all"
204         }
205     }, g = l("button", {
206         style: {
207             height: "55px",
208             width: "55px",
209             fontFamily: "Nunito",
210             color: "white",
211             backgroundColor: "#00a0ff",
212             border: "none",
213             fontSize: "2rem",
214             cursor: "move"
215         },
216         innerHTML: "✥"
217     }), l("button", {
218         style: {
219             height: "55px",
220             width: "55px",
221             fontFamily: "Nunito",
222             color: "white",
223             backgroundColor: "grey",
224             border: "none",
225             fontSize: "2rem",
226             fontWeight: "bolder",
227             cursor: "pointer"
228         },
229         innerHTML: "-",
230         onclick: function() {
231             let e = !1;
232             return () => {
233                 for (var t of [...u.children]) t != $ && (e ? t.style.display = t.style._display : (t.style._display = t.style.display, t.style.display = "none"));
234                 u.style.height = e ? "100%" : "55px", u.style.width = e ? "100%" : "165px", _.style.top = parseInt(_.style.top) + (_.offsetHeight - 55) * (e ? -1 : 1) + "px", _.style.left = parseInt(_.style.left) + (_.offsetWidth - 165) * (e ? -1 : 1) + "px", _.style.pointerEvents = e ? "unset" : "none", e = !e
235             }
236         }()
237     }), l("button", {
238         style: {
239             height: "55px",
240             width: "55px",
241             fontFamily: "Nunito",
242             color: "white",
243             backgroundColor: "red",
244             border: "none",
245             fontSize: "2rem",
246             fontWeight: "bolder",
247             cursor: "pointer"
248         },
249         innerHTML: "X",
250         onclick: D
251     })), h = l("div", {
252         className: "cheatList",
253         style: {
254             overflowY: "scroll",
255             background: "var(--cheatList)",
256             boxShadow: "inset -10px 0 rgb(0 0 0 / 20%)",
257             zIndex: "5",
258             width: "220px",
259             position: "absolute",
260             top: "0",
261             left: "0",
262             height: "100%",
263             fontFamily: "Titan One",
264             color: "var(--textColor)",
265             fontSize: "40px",
266             textAlign: "center",
267             paddingTop: "20px",
268             userSelect: "none",
269             padding: "20px 10px 20px 0",
270             boxSizing: "border-box",
271             display: "flex",
272             flexDirection: "column"
273         },
274         innerHTML: '<span style="text-shadow: 1px 1px rgb(0 0 0 / 40%); font-size: 0.8em;">Cheats<sup>v15.4</sup></span>'
275     }, l("a", {
276         className: "bigButton",
277         style: {
278             cursor: "pointer",
279             display: "block",
280             fontFamily: "Titan One",
281             margin: "20px auto 10px",
282             position: "relative",
283             transition: ".25s",
284             textDecoration: "none",
285             userSelect: "none",
286             visibility: "visible"
287         },
288         target: "_blank",
289         href: "https://discord.gg/8A6J234n7v",
290         innerHTML: '<div style="background: rgba(0,0,0,.25); border-radius: 5px; display: block; width: 100%; height: 100%; left: 0; top: 0; position: absolute; transform: translateY(2px); width: 100%; transition: transform .6s cubic-bezier(.3,.7,.4,1)"></div> <div style="background-color: rgb(11, 194, 207); filter: brightness(.7); position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 5px;"></div> <div style="font-weight: 400; background-color: rgb(11, 194, 207); color: white; display: flex; flex-direction: row; align-items: center; justify-content: center; text-align: center; padding: 5px; border-radius: 5px; transform: translateY(-4px); transition: transform .6s cubic-bezier(.3,.7,.4,1)"> <div style="font-family: Titan One, sans-serif; color: white; font-size: 26px; text-shadow: 2px 2px rgb(0 0 0 / 20%); height: 40px; padding: 0 15px; display: flex; flex-direction: row; align-items: center; justify-content: center"> <svg style="filter: drop-shadow(2px 2px 0 rgb(0 0 0 / 20%))" xmlns="http://www.w3.org/2000/svg" width="35" height="35" fill="currentColor" viewBox="0 -1 21 16"> <path d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z"/> </svg> Discord </div> </div>'
291     })), l("div", {
292         className: "contentWrapper",
293         style: {
294             position: "absolute",
295             left: "220px",
296             top: "70px",
297             overflowY: "scroll",
298             width: "calc(100% - 220px)",
299             height: "calc(100% - 70px)",
300             borderRadius: "7px"
301         }
302     }, l("div", {
303         id: "content",
304         style: {
305             position: "absolute",
306             inset: "27px 50px 50px 50px"
307         }
308     }, y = l("div", {
309         className: "tooltip",
310         style: {
311             position: "absolute",
312             top: "0",
313             left: "0",
314             backgroundColor: "black",
315             height: "fit-content",
316             maxWidth: "300px",
317             zIndex: "5",
318             borderRadius: "7.5px",
319             color: "white",
320             display: "flex",
321             justifyContent: "center",
322             alignItems: "center",
323             padding: "5px",
324             paddingInline: "15px",
325             pointerEvents: "none",
326             opacity: "0",
327             textAlign: "center"
328         },
329         innerText: "description"
330     }), b = l("div", {
331         style: {
332             alignItems: "center",
333             boxSizing: "border-box",
334             display: "flex",
335             flexDirection: "row",
336             flexWrap: "wrap",
337             justifyContent: "space-evenly",
338             padding: "20px 5px 20px",
339             position: "relative",
340             width: "100%",
341             fontFamily: "Nunito, sans-serif",
342             fontWeight: "400",
343             color: "var(--textColor)",
344             background: "var(--contentBackground)",
345             boxShadow: "inset 0 -6px rgb(0 0 0 / 20%)",
346             borderRadius: "7px"
347         }
348     }, v = l("div", {
349         className: "headerText",
350         style: {
351             boxSizing: "border-box",
352             display: "block",
353             height: "45px",
354             left: "-10px",
355             padding: "4px 4px 8px",
356             position: "absolute",
357             top: "-28px",
358             backgroundColor: "#ef7426",
359             boxShadow: "0 4px rgb(0 0 0 / 20%), inset 0 -4px rgb(0 0 0 / 20%)",
360             borderRadius: "7px"
361         }
362     }, l("div", {
363         style: {
364             alignItems: "center",
365             boxSizing: "border-box",
366             display: "flex",
367             height: "100%",
368             justifyContent: "center",
369             padding: "0 15px",
370             width: "100%",
371             fontFamily: "Titan One, sans-serif",
372             fontSize: "26px",
373             fontWeight: "400",
374             textShadow: "-1px -1px 0 #646464, 1px -1px 0 #646464, -1px 1px 0 #646464, 2px 2px 0 #646464",
375             color: "white",
376             background: "linear-gradient(#fcd843,#fcd843 50%,#feb31a 50.01%,#feb31a)",
377             borderRadius: "5px"
378         }
379     })))))));
380     for (let f of document.querySelectorAll("#JODGUI")) f.remove();
382     function w(e, t, a, o) {
383         let r = l("div", {
384             className: "cheatButton",
385             innerHTML: ("string" == typeof t ? `<img style="height: 30px; margin-right: 5px" src="${t}">` : t || "") + e,
386             onclick: () => k(r.innerText, a, o)
387         });
388         return h.appendChild(r), r.onclick
389     }
391     function insertElemBefore(name, imgSrc, a, o, elem) {
392         let r = l("div", {
393             className: "cheatButton",
394             innerHTML: ("string" == typeof imgSrc ? `<img style="height: 30px; margin-right: 5px" src="${imgSrc}">` : imgSrc || "") + name,
395             onclick: () => k(r.innerText, a, o)
396         });
397         return h.insertBefore(r, elem), r.onclick
398     }
399     async function k(e, t, a) {
400         b.innerHTML = "", v.firstChild.innerText = e + (a ? "" : " Cheats"), b.append(v);
401         for (let o = 0; o < t.length; o++) {
402             let {
403                 name: r,
404                 description: i,
405                 type: n,
406                 inputs: s,
407                 enabled: c,
408                 run: d,
409                 element: p
410             } = t[o];
411             if (!p) {
412                 let u = l("div", {
413                     className: "scriptButton",
414                     style: {
415                         background: "toggle" == n ? c ? "var(--enabledButton)" : "var(--disabledButton)" : "var(--defaultButton)"
416                     }
417                 }, l("div", {
418                     className: "cheatName",
419                     innerHTML: r
420                 }));
421                 if (u.dataset.description = i, u.onclick = (function({
422                         target: e,
423                         key: t
424                     }) {
425                         (e == u || e.classList.contains("cheatName") || "Enter" == t && e.classList.contains("cheatInput")) && (t = [...u.children].slice(1), d.apply(this, t.map(e => "number" == e.type ? parseInt("0" + e.value) : "SELECT" == e.nodeName ? JSON.parse(e.value) : e.data || e.value)), "toggle" == n && (u.style.background = this.enabled ? "var(--enabledButton)" : "var(--disabledButton)"), C.alerts?.[0].addLog(`${"toggle"==n?this.enabled?"Enabled":"Disabled":"Ran"} <strong>${this.name}</strong>` + (s?.length ? ` with inputs: (${t.map(e=>"SELECT"==e.nodeName?e.selectedOptions[0].innerText:e.value).join(", ")})` : ""), "toggle" == n ? this.enabled ? "var(--enabledButton)" : "var(--disabledButton)" : null))
426                     }).bind(t[o]), s?.length)
427                     for (let h = 0; h < s.length; h++) {
428                         var {
429                             name: m,
430                             type: $,
431                             options: g,
432                             min: y,
433                             max: _,
434                             value: f
435                         } = s[h];
436                         let w;
437                         try {
438                             w = await ("function" == typeof g ? g?.() : g)
439                         } catch {
440                             w = []
441                         }
442                         if ("options" == $ && w?.length) {
443                             let k = document.createElement("select");
444                             w.forEach(e => {
445                                 var t = document.createElement("option");
446                                 t.value = JSON.stringify(e?.value || e), t.innerHTML = e?.name || e, k.appendChild(t)
447                             }), u.appendChild(k)
448                         } else if ("function" == $) {
449                             let S = document.createElement("input");
450                             S.classList.add("cheatInput"), S.placeholder = m, S.style.textAlign = "center";
451                             let x = (S.readOnly = !0, !1);
452                             S.onclick = async () => {
453                                 x || (S.value = "Waiting for input...", x = !0, S.data = await s[h].function(e => S.value = e + "..."), x = !1, S.value = S.value.slice(0, -3))
454                             }, u.appendChild(S)
455                         } else(g = document.createElement("input")).classList.add("cheatInput"), "number" == $ && (g.type = "number", g.min = y, g.max = _, g.value = f || (null != y ? y : 0)), g.placeholder = m, g.style.textAlign = "center", g.onkeyup = u.onclick, u.appendChild(g)
456                     }
457                 t[o].element = u
458             }
459             b.appendChild(t[o].element)
460         }
461     }
462     document.body.appendChild(_);
463     let C = {
464         global: [{
465             name: "Auto Answer",
466             description: "Toggles auto answer on",
467             type: "toggle",
468             enabled: !1,
469             data: null,
470             run: function() {
471                 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
472                     var {
473                         state: {
474                             question: e,
475                             stage: t,
476                             feedback: a
477                         },
478                         props: {
479                             client: {
480                                 question: o
481                             }
482                         }
483                     } = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
484                     let r = e || o;
485                     try {
486                         "typing" != r.qType ? ("feedback" === t || a ? document.querySelector('[class*="feedback"]')?.firstChild : [...document.querySelectorAll('[class*="answerContainer"]')][r.answers.map((e, t) => r.correctAnswers.includes(e) ? t : null).filter(e => null != e)[0]])?.click?.() : Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(r.answers[0])
487                     } catch {}
488                 }, 50))
489             }
490         }, {
491             name: "Highlight Answers",
492             description: "Toggles highlight answers on",
493             type: "toggle",
494             enabled: !1,
495             data: null,
496             run: function() {
497                 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
498                     let {
499                         stateNode: {
500                             state: e,
501                             props: t
502                         }
503                     } = Object.values(function e(t = document.querySelector("body>div")) {
504                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
505                     }())[1].children[0]._owner;
506                     [...document.querySelectorAll('[class*="answerContainer"]')].forEach((a, o) => {
507                         (e.question || t.client.question).correctAnswers.includes((e.question || t.client.question).answers[o]) ? a.style.backgroundColor = "rgb(0, 207, 119)" : a.style.backgroundColor = "rgb(189, 15, 38)"
508                     })
509                 }, 50))
510             }
511         }, {
512             name: "Subtle Highlight Answers",
513             description: "Toggles subtle highlight answers on",
514             type: "toggle",
515             enabled: !1,
516             data: null,
517             run: function() {
518                 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
519                     let {
520                         stateNode: {
521                             state: e,
522                             props: t
523                         }
524                     } = Object.values(function e(t = document.querySelector("body>div")) {
525                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
526                     }())[1].children[0]._owner;
527                     [...document.querySelectorAll('[class*="answerContainer"]')].forEach((a, o) => {
528                         (e.question || t.client.question).correctAnswers.includes((e.question || t.client.question).answers[o]) && (a.style.boxShadow = "unset")
529                     })
530                 }, 50))
531             }
532         }, {
533             name: "Freeze Leaderboard",
534             description: "Freezes the leaderboard on the host's screen",
535             type: "toggle",
536             enabled: !1,
537             data: null,
538             run: function() {
539                 var e = Object.values(function e(t = document.querySelector("#app")) {
540                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
541                 }())[1].children[0]._owner.stateNode;
542                 if (this.enabled) this.enabled = !1, clearInterval(this.data), this.data = null, e.props.liveGameController.removeVal(`c/${e.props.client.name}/tat`);
543                 else {
544                     this.enabled = !0;
545                     let t = () => {
546                         e.props.liveGameController.setVal({
547                             path: `c/${e.props.client.name}/tat/Freeze`,
548                             val: "freeze"
549                         })
550                     };
551                     this.data = setInterval(t, 25)
552                 }
553             }
554         }, {
555             name: "Percent Auto Answer",
556             description: "Answers questions correctly or incorrectly depending on the goal grade given (Disable and re-enable to update goal)",
557             inputs: [{
558                 name: "Target Grade",
559                 type: "number"
560             }],
561             type: "toggle",
562             enabled: !1,
563             data: null,
564             run: function(e) {
565                 if (this.enabled) this.enabled = !1, clearInterval(this.data), this.data = null;
566                 else {
567                     this.enabled = !0;
568                     let {
569                         stateNode: t
570                     } = Object.values(function e(t = document.querySelector("body>div")) {
571                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
572                     }())[1].children[0]._owner;
573                     this.data = setInterval(e => {
574                         try {
575                             let a = t.state.question || t.props.client.question;
576                             if ("feedback" == t.state.stage || t.state.feedback) return document.querySelector('[class*="feedback"], [id*="feedback"]')?.firstChild?.click?.();
577                             if (document.querySelector("[class*='answerContainer']") || document.querySelector("[class*='typingAnswerWrapper']")) {
578                                 let o = 0,
579                                     r = 0;
580                                 for (let i in t.corrects) o += t.corrects[i];
581                                 for (let n in t.incorrects) r += t.incorrects[n];
582                                 r += o;
583                                 let s = 0 == r || Math.abs(o / (r + 1) - e) >= Math.abs((o + 1) / (r + 1) - e);
584                                 if ("typing" != t.state.question.qType) {
585                                     let l = document.querySelectorAll("[class*='answerContainer']");
586                                     for (let c = 0; c < l.length; c++) {
587                                         let d = a.correctAnswers.includes(a.answers[c]);
588                                         if (s && d || !s && !d) return l[c]?.click?.()
589                                     }
590                                     l[0].click()
591                                 } else Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(s ? a.answers[0] : Math.random().toString(36).substring(2))
592                             }
593                         } catch {}
594                     }, 100, (e ?? 100) / 100)
595                 }
596             }
597         }, {
598             name: "Use any Banner",
599             description: "Unlocked all banners",
600             inputs: [{
601                 name: "Banner",
602                 type: "options",
603                 options: Object.entries({
604                     Starter: "starter",
605                     Fire: "fire",
606                     "Tech Chip": "techChip",
607                     Shamrocks: "shamrocks",
608                     "Orange Ice Pop": "orangeIcePop",
609                     Slime: "slime",
610                     Sushi: "sushi",
611                     "Falling Blocks": "fallingBlocks",
612                     Racetrack: "racetrack",
613                     "Football Field": "footballField",
614                     "Ice Cream Sandwich": "iceCreamSandwich",
615                     "Winter Landscape": "winterLandscape",
616                     Leaves: "leaves",
617                     "Music Class": "musicClass",
618                     "Science Class": "scienceClass",
619                     "Art Class": "artClass",
620                     Clockwork: "clockwork",
621                     "Hockey Rink": "hockeyRink",
622                     "Outer Space": "outerSpace",
623                     "Soccer Field": "soccerField",
624                     Ice: "ice",
625                     "Toaster Pastry": "toasterPastry",
626                     "Fish Tank": "fishTank",
627                     Theater: "theater",
628                     Farm: "farm",
629                     Spooky: "spooky",
630                     "Spooky Cat": "spookyCat",
631                     "Spooky Window": "spookyWindow",
632                     Frankenstein: "frankenstein",
633                     Ghosts: "ghosts",
634                     Mummy: "mummy",
635                     Spiders: "spiders",
636                     Coffin: "coffin",
637                     Pumpkins: "pumpkins",
638                     "Christmas Tree": "christmasTree",
639                     Chalkboard: "chalkboard",
640                     Balloons: "balloons",
641                     Skateboard: "skateboard",
642                     Sunset: "sunset",
643                     Tiger: "tiger",
644                     "Pirate Map": "pirateMap",
645                     Pencil: "pencil",
646                     "Road Sign": "roadSign",
647                     "Corn Dog": "cornDog",
648                     Leaf: "leaf",
649                     "Chili Pepper": "chiliPepper",
650                     "Love Letter": "loveLetter",
651                     Gifts: "gifts",
652                     "Winter Train": "winterTrain",
653                     "Winter Drive": "winterDrive",
654                     Workbench: "workbench",
655                     Harvest: "harvest",
656                     Chocolate: "chocolate",
657                     "Fall Picnic": "fallPicnic",
658                     Bookshelf: "bookshelf",
659                     "Easter Pattern": "easterPattern",
660                     Carrot: "carrot",
661                     "Easter Field": "easterField",
662                     Garden: "garden",
663                     Bakery: "bakery",
664                     "Gummy Worm": "gummyWorm",
665                     "Basketball Court": "basketballCourt",
666                     "Flying Kite": "flyingKite",
667                     "Hot Dog": "hotDog",
668                     "Japanese Garden": "japaneseGarden",
669                     Sandwich: "sandwich",
670                     Ruler: "ruler",
671                     "Ball Pit": "ballPit",
672                     "Xylophone": "xylophone",
673                     "Holiday Lights": "holidayLights",
674                     "Ice Cream Truck": "iceCreamTruck",
675                     "Holiday Gift Wrap": "holidayGiftWrap",
676                     "Winter Sweater": "winterSweater",
677                     "Holiday Ornaments": "holidayOrnaments",
678                     Watermelon: "watermelon",
679                     Baguette: "baguette",
680                     Rollerblades: "rollerblades",
681                     Surfboard: "surfboard",
682                     Cookout: "cookout",
683                     Comic: "comic",
684                     Crayon: "crayon",
685                     Lightning: "lightning",
686                     Baseball: "baseball",
687                     "Shamrock Coins": "shamrockCoins",
688                     "End Of The Rainbow": "endRainbow",
689                     "Easter Field": "easterField",
690                     Marker: "marker",
691                     Pizza: "pizza",
692                     Leaf: "leaf",
693                     "Alphabet Soup": "alphabetSoup"
694                 }).map(([e, t]) => ({
695                     name: e,
696                     value: t
697                 }))
698             }],
699             run: function(e) {
700                 var t = document.createElement("iframe");
702                 function a() {
703                     return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner
704                 }
705                 document.head.appendChild(t), window.alert = t.contentWindow.alert.bind(window), window.prompt = t.contentWindow.prompt.bind(window), t.remove(), a().stateNode.props.liveGameController.setVal({
706                     path: "c/" + a().stateNode.props.client.name + "/bg",
707                     val: e
708                 })
709             }
710         }, {
711             name: "Spam Buy Blooks",
712             description: "Opens a box an amount of times",
713             inputs: [{
714                 name: "Box",
715                 type: "options",
716                 options: () => Array.from(document.querySelectorAll("[class*='packsWrapper'] > div")).reduce((e, t) => (t.querySelector("[class*='blookContainer'] > img") || e.push(t.querySelector("[class*='packImgContainer'] > img").alt), e), [])
717             }, {
718                 name: "Amount",
719                 type: "number"
720             }, {
721                 name: "Show Unlocks",
722                 type: "options",
723                 options: [{
724                     name: "Show Unlocks",
725                     value: !0
726                 }, {
727                     name: "Don't Show Unlocks",
728                     value: !1
729                 }]
730             }],
731             run: async function(e, t, a) {
732                 let o = document.createElement("iframe");
733                 document.body.append(o), window.alert = o.contentWindow.alert.bind(window), window.prompt = o.contentWindow.prompt.bind(window), window.confirm = o.contentWindow.confirm.bind(window), o.remove();
734                 let {
735                     stateNode: r
736                 } = Object.values(function e(t = document.querySelector("body>div")) {
737                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
738                 }())[1].children[0]._owner, i = Array.from(document.querySelectorAll("[class*='packsWrapper'] > div")).reduce((e, t) => (t.querySelector("[class*='blookContainer'] > img") || (e[t.querySelector("[class*='packImgContainer'] > img").alt] = parseInt(t.querySelector("[class*='packBottom']").textContent)), e), {}), n = e.split(" ").map(e => e.charAt(0).toUpperCase() + e.slice(1).toLowerCase()).join(" "), s = i[n];
739                 if (!s) return alert("I couldn't find that box!");
740                 let l = Math.min(Math.floor(r.state.tokens / s), t);
741                 if (0 == l) return alert("You do not have enough tokens!");
742                 let c = {},
743                     d = Date.now();
744                 for (let p = 0; p < l; p++) {
745                     await r.buyPack(!0, n), c[r.state.unlockedBlook] ||= 0, c[r.state.unlockedBlook]++;
746                     let u = Date.now();
747                     d += Date.now() - u, r.setState({
748                         canOpen: !0,
749                         currentPack: "",
750                         opening: a,
751                         doneOpening: a,
752                         openPack: a
753                     }), clearTimeout(r.canOpenTimeout)
754                 }
755                 await new Promise(e => setTimeout(e)), alert(`(${Date.now()-d}ms) Results: ${Object.entries(c).map(([e,t])=>`    ${e} ${t}`).join(` `)}`)
756             }
757         }, {
758             name: "Flood Game",
759             description: "Floods a game with a number of fake accounts",
760             inputs: [{
761                 name: "Name",
762                 type: "string"
763             }, {
764                 name: "Amount",
765                 type: "number"
766             }, {
767                 name: "Blook",
768                 type: "options",
769                 options: ["Chick", "Chicken", "Cow", "Goat", "Horse", "Pig", "Sheep", "Duck", "Alpaca", "Dog", "Cat", "Rabbit", "Goldfish", "Hamster", "Turtle", "Kitten", "Puppy", "Bear", "Moose", "Fox", "Raccoon", "Squirrel", "Owl", "Hedgehog", "Deer", "Wolf", "Beaver", "Tiger", "Orangutan", "Cockatoo", "Parrot", "Anaconda", "Jaguar", "Macaw", "Toucan", "Panther", "Capuchin", "Gorilla", "Hippo", "Rhino", "Giraffe", "Snowy Owl", "Polar Bear", "Arctic Fox", "Baby Penguin", "Penguin", "Arctic Hare", "Seal", "Walrus", "Witch", "Wizard", "Elf", "Fairy", "Slime Monster", "Jester", "Dragon", "Queen", "Unicorn", "King", "Two of Spades", "Eat Me", "Drink Me", "Alice", "Queen of Hearts", "Dormouse", "White Rabbit", "Cheshire Cat", "Caterpillar", "Mad Hatter", "King of Hearts", "Toast", "Cereal", "Yogurt", "Breakfast Combo", "Orange Juice", "Milk", "Waffle", "Pancakes", "French Toast", "Pizza", "Earth", "Meteor", "Stars", "Alien", "Planet", "UFO", "Spaceship", "Astronaut", "Lil Bot", "Lovely Bot", "Angry Bot", "Happy Bot", "Watson", "Buddy Bot", "Brainy Bot", "Mega Bot", "Old Boot", "Jellyfish", "Clownfish", "Frog", "Crab", "Pufferfish", "Blobfish", "Octopus", "Narwhal", "Dolphin", "Baby Shark", "Megalodon", "Panda", "Sloth", "Tenrec", "Flamingo", "Zebra", "Elephant", "Lemur", "Peacock", "Chameleon", "Lion", "Amber", "Dino Egg", "Dino Fossil", "Stegosaurus", "Velociraptor", "Brontosaurus", "Triceratops", "Tyrannosaurus Rex", "Ice Bat", "Ice Bug", "Ice Elemental", "Rock Monster", "Dink", "Donk", "Bush Monster", "Yeti", "Dingo", "Echidna", "Koala", "Kookaburra", "Platypus", "Joey", "Kangaroo", "Crocodile", "Sugar Glider", "Deckhand", "Buccaneer", "Swashbuckler", "Treasure Map", "Seagull", "Jolly Pirate", "Pirate Ship", "Kraken", "Captain Blackbeard", "Snow Globe", "Holiday Gift", "Hot Chocolate", "Holiday Wreath", "Stocking", "Gingerbread Man", "Gingerbread House", "Reindeer", "Snowman", "Santa Claus", "Pumpkin", "Swamp Monster", "Frankenstein", "Vampire", "Zombie", "Mummy", "Caramel Apple", "Candy Corn", "Werewolf", "Ghost", "Rainbow Jellyfish", "Blizzard Clownfish", "Lovely Frog", "Lucky Frog", "Spring Frog", "Poison Dart Frog", "Lucky Hamster", "Chocolate Rabbit", "Spring Rabbit", "Lemon Crab", "Pirate Pufferfish", "Donut Blobfish", "Crimson Octopus", "Rainbow Narwhal", "Frost Wreath", "Tropical Globe", "New York Snow Globe", "London Snow Globe", "Japan Snow Globe", "Egypt Snow Globe", "Paris Snow Globe", "Red Sweater Snowman", "Blue Sweater Snowman", "Elf Sweater Snowman", "Santa Claws", "Cookies Combo", "Chilly Flamingo", "Snowy Bush Monster", "Nutcracker Koala", "Sandwich", "Ice Slime", "Frozen Fossil", "Ice Crab", "Rainbow Panda", "White Peacock", "Tiger Zebra", "Teal Platypus", "Red Astronaut", "Orange Astronaut", "Yellow Astronaut", "Lime Astronaut", "Green Astronaut", "Cyan Astronaut", "Blue Astronaut", "Pink Astronaut", "Purple Astronaut", "Brown Astronaut", "Black Astronaut", "Lovely Planet", "Lovely Peacock", "Haunted Pumpkin", "Pumpkin Cookie", "Ghost Cookie", "Red Gummy Bear", "Blue Gummy Bear", "Green Gummy Bear", "Chick Chicken", "Chicken Chick", "Raccoon Bandit", "Owl Sheriff", "Vampire Frog", "Pumpkin King", "Leprechaun", "Anaconda Wizard", "Spooky Pumpkin", "Spooky Mummy", "Agent Owl", "Master Elf", "Party Pig", "Wise Owl", "Spooky Ghost", "Phantom King", "Tim the Alien", "Rainbow Astronaut", "Hamsta Claus", "Light Blue", "Black", "Red", "Purple", "Pink", "Orange", "Lime", "Green", "Teal", "Tan", "Maroon", "Gray", "Mint", "Salmon", "Burgandy", "Baby Blue", "Dust", "Brown", "Dull Blue", "Yellow", "Blue"].map(e => ({
770                     name: e,
771                     value: e
772                 }))
773             }, {
774                 name: "Banner",
775                 type: "options",
776                 options: Object.entries({
777                     Starter: "starter",
778                     Fire: "fire",
779                     "Tech Chip": "techChip",
780                     Shamrocks: "shamrocks",
781                     "Orange Ice Pop": "orangeIcePop",
782                     Slime: "slime",
783                     Sushi: "sushi",
784                     "Falling Blocks": "fallingBlocks",
785                     Racetrack: "racetrack",
786                     "Football Field": "footballField",
787                     "Ice Cream Sandwich": "iceCreamSandwich",
788                     "Winter Landscape": "winterLandscape",
789                     Leaves: "leaves",
790                     "Music Class": "musicClass",
791                     "Science Class": "scienceClass",
792                     "Art Class": "artClass",
793                     Clockwork: "clockwork",
794                     "Hockey Rink": "hockeyRink",
795                     "Outer Space": "outerSpace",
796                     "Soccer Field": "soccerField",
797                     Ice: "ice",
798                     "Toaster Pastry": "toasterPastry",
799                     "Fish Tank": "fishTank",
800                     Theater: "theater",
801                     Farm: "farm",
802                     Spooky: "spooky",
803                     "Spooky Cat": "spookyCat",
804                     "Spooky Window": "spookyWindow",
805                     Frankenstein: "frankenstein",
806                     Ghosts: "ghosts",
807                     Mummy: "mummy",
808                     Spiders: "spiders",
809                     Coffin: "coffin",
810                     Pumpkins: "pumpkins",
811                     "Christmas Tree": "christmasTree",
812                     Chalkboard: "chalkboard",
813                     Balloons: "balloons",
814                     Skateboard: "skateboard",
815                     Sunset: "sunset",
816                     Tiger: "tiger",
817                     "Pirate Map": "pirateMap",
818                     Pencil: "pencil",
819                     "Road Sign": "roadSign",
820                     "Corn Dog": "cornDog",
821                     Leaf: "leaf",
822                     "Chili Pepper": "chiliPepper",
823                     "Love Letter": "loveLetter",
824                     Gifts: "gifts",
825                     "Winter Train": "winterTrain",
826                     "Winter Drive": "winterDrive",
827                     Workbench: "workbench",
828                     Harvest: "harvest",
829                     Chocolate: "chocolate",
830                     "Fall Picnic": "fallPicnic",
831                     Bookshelf: "bookshelf",
832                     "Easter Pattern": "easterPattern",
833                     Carrot: "carrot",
834                     "Easter Field": "easterField",
835                     Garden: "garden",
836                     Bakery: "bakery",
837                     "Gummy Worm": "gummyWorm",
838                     "Basketball Court": "basketballCourt",
839                     "Flying Kite": "flyingKite",
840                     "Hot Dog": "hotDog",
841                     "Japanese Garden": "japaneseGarden",
842                     Sandwich: "sandwich",
843                     Ruler: "ruler",
844                     "Ball Pit": "ballPit",
845                     "Xylophone": "xylophone",
846                     "Holiday Lights": "holidayLights",
847                     "Ice Cream Truck": "iceCreamTruck",
848                     "Holiday Gift Wrap": "holidayGiftWrap",
849                     "Winter Sweater": "winterSweater",
850                     "Holiday Ornaments": "holidayOrnaments",
851                     Watermelon: "watermelon",
852                     Baguette: "baguette",
853                     Rollerblades: "rollerblades",
854                     Surfboard: "surfboard",
855                     Cookout: "cookout",
856                     Comic: "comic",
857                     Crayon: "crayon",
858                     Lightning: "lightning",
859                     Baseball: "baseball",
860                     "Shamrock Coins": "shamrockCoins",
861                     "End Of The Rainbow": "endRainbow",
862                     "Easter Field": "easterField",
863                     Marker: "marker",
864                     Pizza: "pizza",
865                     Leaf: "leaf",
866                     "Alphabet Soup": "alphabetSoup"
867                 }).map(([e, t]) => ({
868                     name: e,
869                     value: t
870                 }))
871             }],
872             run: async function(e, t, a, o) {
873                 let r = document.createElement("iframe");
875                 function i() {
876                     return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode
877                 }
878                 document.body.append(r), window.prompt = r.contentWindow.prompt.bind(window), window.alert = r.contentWindow.alert.bind(window), r.remove();
879                 var n = {
880                     randomNames: !1
881                 };
882                 if (!i().props.liveGameController._liveApp) {
883                     alert("You must be in a game to use the flooder!");
884                     return
885                 }
886                 var s = i().props.liveGameController._liveApp.firebase;
887                 async function l(e, t) {
888                     let r = await fetch("https://fb.blooket.com/c/firebase/join", {
889                         body: JSON.stringify({
890                             id: e,
891                             name: t
892                         }),
893                         credentials: "include",
894                         method: "PUT"
895                     }).then(e => e.json());
896                     if (r.success) {
897                         let i = s.initializeApp({
898                             apiKey: "AIzaSyCA-cTOnX19f6LFnDVVsHXya3k6ByP_MnU",
899                             authDomain: "blooket-2020.firebaseapp.com",
900                             projectId: "blooket-2020",
901                             storageBucket: "blooket-2020.appspot.com",
902                             messagingSenderId: "741533559105",
903                             appId: "1:741533559105:web:b8cbb10e6123f2913519c0",
904                             measurementId: "G-S3H5NGN10Z",
905                             databaseURL: r.fbShardURL
906                         }, t);
907                         await i.auth().signInWithCustomToken(r.fbToken);
908                         let n = i.database();
909                         await n.ref(`${e}/c/${t}`).set({
910                             b: a,
911                             bg: o
912                         }), C.alerts[0].addLog(`Bot ${t} joined!`)
913                     } else alert("Connect error: " + r.msg)
914                 }
915                 async function c() {
916                     if (!i().props.liveGameController._liveApp) {
917                         alert("You must be in a game for the flooder to work!");
918                         return
919                     }
920                     var a, o = i().props.liveGameController._liveGameCode,
921                         r = parseInt(t);
922                     if (!r) {
923                         alert("You must use a valid number!");
924                         return
925                     }
926                     if (!n.randomNames) var s = e;
927                     for (var c = 0; c < r; c++) await l(o, a = n.randomNames ? d(15) : s + Math.floor(4e3 * Math.random()))
928                 }
930                 function d(e) {
931                     for (var t = "", a = 0; a < e; a++) t += String.fromCharCode(65 + Math.floor(25 * Math.random()));
932                     return t
933                 }
934                 c()
935             }
936         }, {
937             name: "Simulate Unlock",
938             description: "Simulates unlocking a certian blook",
939             inputs: [{
940                 name: "Blook (Case Sensitive)"
941             }],
942             run: (unlockedBlook) => {
943                 const stateNode = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
944                 stateNode.setState({
945                     loadingPack: !1,
946                     openPack: !0,
947                     unlockedBlook,
948                     newUnlock: !0,
949                     canOpen: !1
950                 });
951                 setTimeout(() => stateNode.setState({
952                     canOpen: !0
953                 }), 200);
954             }
955         }, {
956             name: "Bypass Filter",
957             description: "Bypasses the name filter",
958             inputs: [{
959                 name: "Text",
960                 type: "text",
961             }],
962             run: function(e) {
963                 var t, a, o;
964                 let r;
965                 a = function e(t) {
966                     for (var a = t.split(""), o = "", r = 0; r < a.length; r++) o += "\xad" + a[r];
967                     return o
968                 }(t = e), r = document.createElement("iframe"), document.body.appendChild(r), window.alert = r.contentWindow.alert.bind(r.contentWindow), (o = document.createElement("textarea")).value = a, o.style.position = "fixed", o.style.top = 0, o.style.left = 0, o.style.opacity = 0, document.body.appendChild(o), o.select(), document.execCommand("copy"), alert("Bypassed text copied to clipboard!"), r.remove(), document.body.removeChild(o)
969             }
970         }, {
971             name: "Change Name Ingame",
972             description: "Changes your name ingame",
973             inputs: [{
974                 name: "New Name",
975                 type: "text"
976             }],
977             run: (function(newname) {
978                 (async () => {
979                     const reactHandler = (e => Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode);
980                     let i = document.createElement('iframe');
981                     document.body.append(i);
982                     let alert = i.contentWindow.alert.bind(window);
983                     i.remove();
985                     async function genToken(name) {
986                         const res = await fetch("https://fb.blooket.com/c/firebase/join", {
987                             body: JSON.stringify({
988                                 id: reactHandler().props.client.hostId,
989                                 name
990                             }),
991                             headers: {
992                                 "Content-Type": "application/json"
993                             },
994                             method: "PUT",
995                             credentials: "include"
996                         }).then(e => e.json());
997                         if (!res.success) {
998                             alert("Error: " + res.msg);
999                             return;
1000                         }
1001                         return res.fbToken;
1002                     }
1004                     const oldname = reactHandler().props.client.name;
1005                     reactHandler().props.client.name = newname;
1006                     const olddata = await reactHandler().props.liveGameController.getDatabaseVal(`c/${oldname}`);
1007                     await reactHandler().props.liveGameController.removeVal(`c/${oldname}`);
1008                     const token = await genToken(newname);
1009                     if (!token) {
1010                         return;
1011                     }
1012                     await reactHandler().props.liveGameController._liveApp.auth().signInWithCustomToken(token);
1013                     reactHandler().props.liveGameController._liveApp.auth().onAuthStateChanged(e => {
1014                         if (e.uid.split(":")[1] === newname) {
1015                             reactHandler().props.liveGameController.setVal({
1016                                 path: `c/${newname}`,
1017                                 val: olddata
1018                             });
1019                         }
1020                     });
1021                     reactHandler().setState({});
1022                 })();
1023             })
1024         }, {
1025             name: "Use Banner IDs",
1026             description: "Enter Banner ID to use Banner",
1027             inputs: [{
1028                 name: "Banner ID",
1029                 type: "text",
1030             }],
1031             run: function(e) {
1032                 var t = document.createElement("iframe");
1034                 function a() {
1035                     return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner
1036                 }
1037                 document.head.appendChild(t), window.alert = t.contentWindow.alert.bind(window), window.prompt = t.contentWindow.prompt.bind(window), t.remove(), a().stateNode.props.liveGameController.setVal({
1038                     path: "c/" + a().stateNode.props.client.name + "/bg",
1039                     val: e
1040                 })
1041             }
1042         }, {
1043             name: "Change Blook Ingame",
1044             description: "Changes your blook",
1045             inputs: [{
1046                 name: "Blook",
1047                 type: "options",
1048                 async options() {
1049                     let {
1050                         webpack: e
1051                     } = webpackJsonp.push([
1052                         [], {
1053                             1234(e, t, a) {
1054                                 t.webpack = a
1055                             }
1056                         },
1057                         [
1058                             ["1234"]
1059                         ]
1060                     ]);
1061                     return Object.keys(Object.values(e.c).find(e => e.exports.a?.Chick && e.exports.a?.Elephant).exports.a)
1062                 }
1063             }],
1064             run: function(e) {
1065                 let {
1066                     props: t
1067                 } = Object.values(function e(t = document.querySelector("body>div")) {
1068                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1069                 }())[1].children[0]._owner.stateNode;
1070                 t.client.blook = e, t.liveGameController.setVal({
1071                     path: `c/${t.client.name}/b`,
1072                     val: e
1073                 })
1074             }
1075         }, {
1076             name: "Set Blook Ad Text",
1077             description: "Sets a load of text as your blook and floods teachers screen on lobby",
1078             inputs: [{
1079                 name: "Text",
1080                 type: "input",
1081             }],
1082             run: function(e) {
1083                 let t = Object.values(function e(t = document.querySelector("body>div")) {
1084                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
1085                 }())[1].children[0]._owner.stateNode;
1086                 if (!String.prototype.inc) {
1087                     String.prototype.inc = String.prototype.includes;
1088                 }
1089                 String.prototype.includes = function(a) {
1090                     if (a == "#" && this.length > 30) {
1091                         return !0;
1092                     }
1093                     return String.prototype.inc.apply(this, arguments);
1094                 }
1095                 let repeatedText = Array(500).fill(e).join(' ');
1096                 if (!t.state.unlocks) {
1097                     t.client.blook = repeatedText;
1098                 }
1099                 t.props.liveGameController.setVal({
1100                     path: `c/${t.props.client.name}/b`,
1101                     val: repeatedText
1102                 });
1103             }
1104         }, {
1105             name: "Set Blook Ad Text Ingame",
1106             description: "Sets a load of text as your blook",
1107             inputs: [{
1108                 name: "Text",
1109                 type: "options",
1110                 async options() {
1111                     let {
1112                         webpack: e
1113                     } = webpackJsonp.push([
1114                         [], {
1115                             1234(e, t, a) {
1116                                 t.webpack = a
1117                             }
1118                         },
1119                         [
1120                             ["1234"]
1121                         ]
1122                     ]);
1123                     return Object.keys(Object.values(e.c).find(e => e.exports.a?.Chick && e.exports.a?.Elephant).exports.a);
1124                 }
1125             }],
1126             run: function(e) {
1127                 let {
1128                     props: t
1129                 } = Object.values(function e(t = document.querySelector("body>div")) {
1130                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
1131                 }())[1].children[0]._owner.stateNode;
1133                 let repeatedText = Array(500).fill(e).join(' ');
1134                 t.client.blook = repeatedText;
1135                 t.liveGameController.setVal({
1136                     path: `c/${t.client.name}/b`,
1137                     val: repeatedText
1138                 });
1139             }
1140         }, {
1141             name: "Auto Answer",
1142             description: "Click the correct answer for you",
1143             run: function() {
1144                 let {
1145                     state: {
1146                         question: e,
1147                         stage: t,
1148                         feedback: a
1149                     },
1150                     props: {
1151                         client: {
1152                             question: o
1153                         }
1154                     }
1155                 } = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
1156                 try {
1157                     "typing" != e.qType ? ("feedback" === t || a ? document.querySelector('[class*="feedback"]')?.firstChild : [...document.querySelectorAll('[class*="answerContainer"]')][(e || o).answers.map((t, a) => (e || o).correctAnswers.includes(t) ? a : null).filter(e => null != e)[0]])?.click?.() : Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(e.answers[0])
1158                 } catch {}
1159             }
1160         }, {
1161             name: "Highlight Answers",
1162             description: "Colors answers to be red or green highlighting the correct ones",
1163             run: function() {
1164                 let {
1165                     stateNode: {
1166                         state: e,
1167                         props: t
1168                     }
1169                 } = Object.values(function e(t = document.querySelector("body>div")) {
1170                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1171                 }())[1].children[0]._owner;
1172                 [...document.querySelectorAll('[class*="answerContainer"]')].forEach((a, o) => {
1173                     (e.question || t.client.question).correctAnswers.includes((e.question || t.client.question).answers[o]) ? a.style.backgroundColor = "rgb(0, 207, 119)" : a.style.backgroundColor = "rgb(189, 15, 38)"
1174                 })
1175             }
1176         }, {
1177             name: "Subtle Highlight Answers",
1178             description: "Removes the shadow from correct answers",
1179             run: function() {
1180                 let {
1181                     stateNode: {
1182                         state: e,
1183                         props: t
1184                     }
1185                 } = Object.values(function e(t = document.querySelector("body>div")) {
1186                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1187                 }())[1].children[0]._owner;
1188                 [...document.querySelectorAll('[class*="answerContainer"]')].forEach((a, o) => {
1189                     (e.question || t.client.question).correctAnswers.includes((e.question || t.client.question).answers[o]) && (a.style.boxShadow = "unset")
1190                 })
1191             }
1192         }, {
1193             name: "Get Daily Rewards",
1194             description: "Gets max daily tokens and xp",
1195             run: async function() {
1196                 let e = document.createElement("iframe");
1197                 if (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), location.href.includes("play.blooket.com")) {
1198                     let {
1199                         t
1200                     } = await fetch("https://play.blooket.com/api/playersessions/solo", {
1201                         body: JSON.stringify({
1202                             gameMode: "Factory",
1203                             questionSetId: ["5fac96fe2ca0da00042b018f", "66702d024ec37ac03062cc06", "600b1491d42a140004d5215a", "65d4810a8a408800b6449e57", "5fac96fe2ca0da00042b018f", "615e9cd727d0720066bcf638", "5fac96fe2ca0da00042b018f", "600b1491d42a140004d5215a", "63ee6c1fbd7c007948b2f986", "65d8de5bd25f9bd49916d855", "600b14d8d42a140004d52165", "6352e93608ea4ee9d0a5fe7f", "64cd1b99ff6f69f3025fc25a", "600b1491d42a140004d5215a", "5db75fa3f1fa190017b61c0c", "65fb6005f986c984060ed92c", "65e88b461a39195a37309c57", "60cc9f943f191b00230ae2a2", "61f5484186dade0979280d54", "664418e736bd1bf1890b2dae", "640a7d9bde68f5243d403977", "66256e6b861ee38a258b8b61", "65119f1fba0bb577d186df8e", "661d7540a452254baf51b1dd", "65ff17a207a715061a6249e6", "61c3570ad8f92ff303ee4733", "63efbff8e2b70e8a1bb1a583", "644a30c06dd4d2c2c5c9c6ae", "66461ff5c671f7c7db225cb3", "664777444be95fa91fc9a4ee", "6425e5e052b1ba5ae2cb07a2", "612e2aad654d48002a4f384d", "6548ffabcbe542c105812e64", "666092337e18e9b7b044e6c8", "6277e6ca21e2151edc435c53", "6268270201c2a958b75af1cf", "61aa4f9c190f70ceda79cf92", "6680e522559ac110b3c6ef28", "6657d986e92bbd481c12a6e8", "61d877c1910d317630b69e02", "618e5d8b7242bec7572b53ca", "656d4a2ac3bc01302555bfbd", "61d7463d2250de5603ad8ba1", "6650bd7a87c4bb5302d69c08", "61b1fdb09a3347d1a298157b", "60b632ff2089ea0028d26fc8", "5fdcacc85d465a0004b021b9", "665e3161785c8a4e8853f995", "61b9d07a7a1e178d18ccd903", "6624a2cd861ee38a258b814d", "650b3ccd54b65594ff99e620", "61b2a39895bd185869e3844e", "6581df4af27a6029a933d954", "641eecaec2e1181b54481588", "668ce3d2eb8513f5ed4c79c1", "5fac96fe2ca0da00042b018f", "6192afff6cb94db501ecc7d5", "600b14d8d42a140004d52165", "665898ae99eca64187ffe7df", "5fe3d085a529560004cd3076", "64fb8fbfdbeffc06f36f8f5f", "654e79558169fc618f544ac7", "628d24107ffc913af879c58a", "617041e0e97439003084cb25", "6408cc2a52d433570018126b", "663c5686d93c1e441547529f", "666c3d24c9e069d6094bbcce", "6548ffabcbe542c105812e64", "663d4766d93c1e4415476a9d", "5f88953cdb209e00046522c7", "64fcec87be8604702a6e0559", "614b2b3747e4cd002c3c0e35", "600b14d8d42a140004d52165", "63640a18c5370a98f00349b1", "6690e0ec559ac110b3c7b4dd", "664644bd7ea36b003839459c", "600b153ad42a140004d52172", "63e638d8db4486e546547014", "61406d240c2275002a272a95", "627bced5fdb8934dfba749a8", "619c2736a7fb3a4c9d3810cc", "650a06c4fe5c6757ff82208c", "6060c2240db34f001ddfe119", "6525532901343f98c90eee3e", "60101da869e8c70013913b59", "625db660c6842334835cb4c6", "60268f8861bd520016eae038", "611e6c804abdf900668699e3", "60ba5ff6077eb600221b7145", "642467af9b704783215c1f1b", "605bd360e35779001bf57c5e", "6234cc7add097ff1c9cff3bd", "600b1491d42a140004d5215a", "5db75fa3f1fa190017b61c0c", "5fac96fe2ca0da00042b018f", "600b14d8d42a140004d52165", "5f88953cdb209e00046522c7", "600b153ad42a140004d52172", "5fe260e72a505b00040e2a11", "5fe3d085a529560004cd3076", "5f5fc017aee59500041a1456", "608b0a5863c4f2001eed43f4", "5fad491512c8620004918ace", "5fc91a9b4ea2e200046bd49a", "5c5d06a7deebc70017245da7", "5ff767051b68750004a6fd21", "5fdcacc85d465a0004b021b9", "5fb7eea20bd44300045ba495"][Math.floor(24 * Math.random())]
1204                         }),
1205                         credentials: "include",
1206                         method: "POST"
1207                     }).then(e => e.json());
1208                     await fetch("https://play.blooket.com/api/playersessions/landings", {
1209                         body: JSON.stringify({
1210                             t
1211                         }),
1212                         credentials: "include",
1213                         method: "POST"
1214                     }), await fetch("https://play.blooket.com/api/playersessions/questions?t=" + t, {
1215                         credentials: "include"
1216                     });
1217                     let {
1218                         name: a,
1219                         blook: {
1220                             name: o
1221                         }
1222                     } = Object.values(function e(t = document.querySelector("body>div")) {
1223                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1224                     }())[1].children[0]._owner.stateNode.props.user.data;
1225                     await fetch("https://play.blooket.com/api/users/factorystats", {
1226                         body: JSON.stringify({
1227                             blookUsed: o,
1228                             t,
1229                             name: a,
1230                             cash: Math.floor(9e7 * Math.random()) + 1e7,
1231                             correctAnswers: Math.floor(500 * Math.random()) + 500,
1232                             upgrades: Math.floor(300 * Math.random()) + 300,
1233                             mode: "Time-Solo",
1234                             nameUsed: "You",
1235                             place: 1,
1236                             playersDefeated: 0
1237                         }),
1238                         credentials: "include",
1239                         method: "PUT"
1240                     }), fetch("https://play.blooket.com/api/users/add-rewards", {
1241                         body: JSON.stringify({
1242                             t,
1243                             name: a,
1244                             addedTokens: 500,
1245                             addedXp: 300
1246                         }),
1247                         credentials: "include",
1248                         method: "PUT"
1249                     }).then(e => e.json()).then(({
1250                         dailyReward: e
1251                     }) => alert(`Added max tokens and xp, and got ${e} daily wheel tokens!`)).catch(() => alert("There was an error when adding rewards."))
1252                 } else alert("This cheat only works on play.blooket.com, opening a new tab."), window.open("https://play.blooket.com/")
1253             }
1254         }, {
1255             name: "Use any Blook",
1256             description: "Allows you to play as any blook.",
1257             run: function() {
1258                 (() => {
1259                     const stateNode = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
1260                     let i = document.createElement('iframe');
1261                     document.body.append(i);
1262                     const alert = i.contentWindow.alert.bind(window);
1263                     i.remove();
1264                     if (!(stateNode.state.unlocks || stateNode.state.blookData)) {
1265                         alert("This must be run on the lobby or dashboard!");
1266                         return;
1267                     }
1268                     if (stateNode.state.blookData) {
1269                         let oe = Object.entries;
1270                         Object.entries = function(a) {
1271                             if (a?.Chick) {
1272                                 allBlooks(a);
1273                                 Object.entries = oe;
1274                             }
1275                             return oe.apply(this, arguments);
1276                         }
1277                         stateNode.render();
1279                         function allBlooks(blooks) {
1280                             let blookData = {};
1281                             stateNode.setState({
1282                                 blookData: Object.keys(blooks).reduce((a, b) => (a[b] = stateNode.state.blookData[b] || 1, a), {}),
1283                                 allSets: Object.values(blooks).reduce((a, b) => {
1284                                     return !a.includes(b.set) && a.push(b.set), a
1285                                 }, [])
1286                             });
1287                         }
1288                     } else {
1289                         stateNode.setState({
1290                             unlocks: {
1291                                 includes: e => 1
1292                             }
1293                         });
1294                     }
1295                 })();
1296             }
1297         }, {
1298             name: "Get More Blooks (Lobby)",
1299             description: "Gives you an abundance of custom blooks to try (Some images might be blocked)",
1300             run: function() {
1301                 const containerClass = '_blooksHolder_1bg6w_141';
1302                 const targetContainer = document.querySelector(`.${containerClass}`);
1304                 if (targetContainer) {
1305                     const imageUrls = ["https://i.imghippo.com/files/wfNvV1725233960.webp", "https://i.imghippo.com/files/3kDQK1725233922.webp", "https://camo.githubusercontent.com/e471c0c3c98c8b0095b5cc645dfd4732db238c98632f1638d8fa153d4b6e003d/68747470733a2f2f63646e2e646973636f72646170702e636f6d2f656d6f6a69732f31303536393839373839363931333232343539", "https://i.ibb.co/YfwphhN/youtubelogo.png", "https://i.ibb.co/wCGsQD7/1107210565740396625.webp", "https://i.ibb.co/j3k7jYJ/1056899107844800522.webp", "https://i.ibb.co/xsQfVdm/1056898967801188404.webp", "https://i.ibb.co/LxHL2bP/1061744882496065566.webp", "https://ac.blooket.com/dashboard/assets/Cashier-BqZ02xhF.svg", "https://i.ibb.co/sm60M8q/merk.png", "https://ac.blooket.com/dashboard/assets/Token-DmrosBZF.svg", "https://media.blooket.com/image/upload/v1664334335/BlookParts/hat35.svg", "https://media.blooket.com/image/upload/v1664334335/BlookParts/hat36.svg", "https://media.blooket.com/image/upload/v1664334114/BlookParts/glasses16.svg", "https://media.blooket.com/image/upload/v1664334335/BlookParts/hat33.svg", "https://preview.redd.it/custom-blooks-i-made-v0-b0hneftessz91.png?width=300&format=png&auto=webp&s=f7cdba1490c1aba76b9bde994b082a3c76818466", "https://preview.redd.it/custom-blooks-i-made-v0-g3nvjltessz91.png?width=300&format=png&auto=webp&s=0d38efcec1212896912c1ec4e20b7601eaa686ea", "https://preview.redd.it/custom-blooks-i-made-v0-ka56tptessz91.png?width=300&format=png&auto=webp&s=0f247448aa4b0ca2b1f1fe8f0e1059767d3d15f8", "https://preview.redd.it/custom-blooks-i-made-v0-6asu9ztessz91.png?width=300&format=png&auto=webp&s=6bc047e638e0cb6596e619d0eb367d551dc455b0", "https://preview.redd.it/custom-blooks-i-made-v0-czdr64uessz91.png?width=500&format=png&auto=webp&s=858764ba17888fa8aaa487f97feb32b2d8b81f62", "https://preview.redd.it/custom-blooks-i-made-v0-lsgc29uessz91.png?width=500&format=png&auto=webp&s=cddb4dbf09a226c296d2e659aa80851bbd481921", "https://preview.redd.it/64mcrm1aceh91.png?width=1256&format=png&auto=webp&s=5f53991654cd7a45fe58de4097c9ae1177a10bfd", "https://preview.redd.it/trp3snp9ceh91.png?width=1419&format=png&auto=webp&s=663663e4d93424141cd6500c6b24d91042700cc2", "https://preview.redd.it/1d4uxcb9ceh91.png?width=1254&format=png&auto=webp&s=3a54cc9a95897f47c2f9007b8a49aa98cf46089f", "https://preview.redd.it/k0894xv8ceh91.png?width=1254&format=png&auto=webp&s=181019f5ef1c288cb9c855776dd14f6eec0ff993", "https://preview.redd.it/xrb6fug8ceh91.png?width=1273&format=png&auto=webp&s=7df11f3dddc5f1fd8354c99de670c2fb34cc2f10", "https://preview.redd.it/beicsi08ceh91.png?width=1258&format=png&auto=webp&s=313cc36ded78d3c3e386b85abf2d6ba498401d1f", "https://preview.redd.it/810eoco7ceh91.png?width=1258&format=png&auto=webp&s=16be55f32fda316611c41ab5dbc53da0b42a5891", "https://preview.redd.it/4iq2am87ceh91.png?width=1255&format=png&auto=webp&s=af5825a0f2a0e0680252767de622c8b16b8bd530", "https://preview.redd.it/9b0eq1v6ceh91.png?width=1258&format=png&auto=webp&s=3c570c3f2f70a156723f375ba1cc68b1879283d8", "https://preview.redd.it/0g4eflh6ceh91.png?width=1252&format=png&auto=webp&s=ba426c277dbf7a89dbd01e108bb4b397895bd9e2", "https://preview.redd.it/gq1ol7z5ceh91.png?width=1258&format=png&auto=webp&s=72eb5b3df4c152b0f1405c2fa1c8f6689c96e5ea", "https://preview.redd.it/zs746135ceh91.png?width=1254&format=png&auto=webp&s=fed0bb921be560d8fe254065b9a986ac88e08010", "https://preview.redd.it/custom-blooks-i-have-made-v0-uz0uxh4sh9gc1.png?width=485&format=png&auto=webp&s=f8fb21906226f94e64272616cbe37ce2292a0494", "https://preview.redd.it/custom-blooks-i-have-made-v0-gfdrycozh9gc1.png?width=536&format=png&auto=webp&s=445b74e0e1f1d12ae3c4c470cab1b46527792e18", "https://preview.redd.it/custom-blooks-i-have-made-v0-nojhsxb2i9gc1.png?width=504&format=png&auto=webp&s=e2b22b88b703ff7fb908248a7de93c7bc02861fe", "https://preview.redd.it/custom-blooks-i-have-made-v0-dagyqk2pi9gc1.png?width=522&format=png&auto=webp&s=5be59b74b295e5634fb7769efc2b78ed1a2d0ab2", "https://preview.redd.it/more-custom-blooks-that-i-made-v0-evaee2nzi92a1.png?width=300&format=png&auto=webp&s=e2910bcf63138d255d8f2d2a42819e04aa25b20c", "https://preview.redd.it/more-custom-blooks-that-i-made-v0-3jkr9dlzi92a1.png?width=300&format=png&auto=webp&s=36834cdd172dd4377f0f040a1cfa0348a0cf9f2c", "https://preview.redd.it/more-custom-blooks-that-i-made-v0-chgp4clzi92a1.png?width=300&format=png&auto=webp&s=2ba607d48f1a01c48cca5f5177ce609c8e3b740e", "https://preview.redd.it/more-custom-blooks-that-i-made-v0-esxetdlzi92a1.png?width=300&format=png&auto=webp&s=843674b51fecfc633c67386d6ec7a53664002229", "https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/7e7e889a-de90-46e6-b7e0-a80a0e698de6/dbpu9b-51118e9e-16bd-4a28-bbe6-921fc1da8181.gif?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7InBhdGgiOiJcL2ZcLzdlN2U4ODlhLWRlOTAtNDZlNi1iN2UwLWE4MGEwZTY5OGRlNlwvZGJwdTliLTUxMTE4ZTllLTE2YmQtNGEyOC1iYmU2LTkyMWZjMWRhODE4MS5naWYifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6ZmlsZS5kb3dubG9hZCJdfQ.h309S-rnZJWgrquS7zLKqNmCyGpKi6EydLGfeGlmwSY", "https://i.ibb.co/2tPhQQ9/Screenshot-2024-03-13-8-38-54-PM-removebg-preview.png", "https://i.ibb.co/hfGKRGg/5rcse2.png", "https://i.ibb.co/dk5X1Qx/wolf-svg-1.gif", "https://i.ibb.co/MRYh2jY/madhatter-svg-1-1.gif", "https://i.ibb.co/prhrSLG/penguin-svg.png", "https://i.ibb.co/y0Lz9KM/dog-2-svg-1.png", "https://i.ibb.co/ZVjPyyW/egyptsnowglobe-svg.gif", "https://i.ibb.co/27J4Tzc/hamster-1-svg-2.gif", "https://i.ibb.co/GWS1F1B/Untitled1942-20240816213512.png", "https://i.ibb.co/b1w1Zt3/Untitled1944-20240816220241-2.png", "https://i.ibb.co/sP1n7px/image-2.png", "https://i.ibb.co/749D31P/31-BFAFFD-21-D5-416-C-8-EDB-C1-EC31-FE9-B7-E.png", "https://i.ibb.co/k8y3Q3C/image-3.png", "https://i.ibb.co/h9sgDc3/1185712529960349726.png", "https://i.ibb.co/6X1mCwq/moai-blook.png", "https://i.imghippo.com/files/VfIxx1725062188.gif", "https://i.ibb.co/Rb8B8xH/pickle-jar-blook.png", "https://i.ibb.co/FntT4VR/c96edb96a2571742004c4240a5c4abe3.webp", "https://styles.redditmedia.com/t5_2zesh/styles/communityIcon_6gx6y4qpdw651.png", "https://play-lh.googleusercontent.com/AUGkRrKMtUCLVE9vCvlfMY9Ny9EBqzx17yejVtEEhvpkw-H6lJlvBHgCMqPJm8HV_tM=s256-rw", "https://play-lh.googleusercontent.com/JQqSn7wuCj0SxBqpBThNI33qCR9gwY0str2TIAnu-m_xrVCgZk3IPxYK2S7zC9WG0ig=s256-rw", "https://play-lh.googleusercontent.com/epeBd8ftLXNHy9TjcB4k2Ip0KzcMT-4oTjDUt_DwMjgDwrbSTuVI77ccVWMdoDMXDQ=s256-rw", "https://play-lh.googleusercontent.com/ndILnpPIPE5Kfqmwzjlbdz2duHMjh0yvnZ31PBJ_-oZOPa9iYfh1jedpj2-td2pyrKmj=w240-h256-rw", "https://i.ibb.co/Rp56kCC/bee-blook.png", "https://i.ibb.co/y0Sdwg0/golden-blook.gif", "https://i.ibb.co/B2ZyFBj/rainbow-blook.gif", "https://i.ibb.co/Y0mJq9g/blacket-legacy.png", "https://i.ibb.co/JHFsXdx/betastar.png", "https://i.ibb.co/h2m8fGf/blacket.png", "https://i.ibb.co/QKdZ1b4/logo-2.png", "https://i.ibb.co/pPVh8bt/Blooket-Emblem.png", "https://i.ibb.co/sWqBm0K/1024.png", "https://i.ibb.co/pdSYc4M/Site-logo.png", "https://raw.githubusercontent.com/The-Blooket-Hacks/Blooket-Hacks/main/images/animated_icon.gif", "https://raw.githubusercontent.com/The-Blooket-Hacks/Blooket-Hacks/main/images/icon.png", "https://i.ibb.co/bHks2LC/image-3.png", "https://i.ibb.co/0Z4Gn6n/logo.png", "https://i.ibb.co/LCZTRsY/e222502653c42a263899a4e6a9c58dca.webp", "https://i.ibb.co/1fH15Rs/yellow-submarine.png", "https://i.ibb.co/zRGywqm/watermelon20min.png", "https://i.ibb.co/6rs8hky/valentines-present.png", "https://i.ibb.co/g3hB9t3/turkey.png", "https://i.ibb.co/RzNPvNf/touch-grass-blook.png", "https://i.ibb.co/PDgmxqQ/taco.png", "https://i.ibb.co/vZ40Jf9/squash2.png", "https://i.ibb.co/CMVh9Yq/space-mug.png", "https://i.ibb.co/zVZb2Bq/rubber-duck.png", "https://i.ibb.co/8jchMBy/sombrero.png", "https://i.ibb.co/hKtyzDw/pumpkinking.png", "https://i.ibb.co/M9fq4zD/pumpkin-pie.png", "https://i.ibb.co/FV5Vj7r/prehistoric-globbe.png", "https://i.ibb.co/6Z8QWpp/pineapple.png", "https://i.ibb.co/1GtRrkj/pilgrim-hat.png", "https://i.ibb.co/R6zJhbc/static-assets-upload10217624323675156800.png", "https://i.ibb.co/NjyMT23/pig-snowman.png", "https://i.ibb.co/J70xZZZ/mrbaest.png", "https://i.ibb.co/QcSLKxC/moon.png", "https://i.ibb.co/vdhvvtz/meteor-impact.png", "https://i.ibb.co/1KBf6K5/mega-king.png", "https://i.ibb.co/0ZFjpF1/mayflower.png", "https://i.ibb.co/VCyKwMq/magic8ball.png", "https://i.ibb.co/vdH0sJ0/lunar-globe.png", "https://i.ibb.co/xFWDzNz/life-buoy.png", "https://i.ibb.co/nj8zHRd/lemonade.png", "https://i.ibb.co/hRLdSRn/ladybug.png", "https://i.ibb.co/51B9Yfw/blob-ghost.png", "https://i.ibb.co/87j9XBs/ghost-pumpkin.png", "https://i.ibb.co/vL53Qwt/jackinthebox.png", "https://i.ibb.co/LNzSYX8/freedom-frog.png", "https://i.ibb.co/NpV9VrQ/egg.png", "https://i.ibb.co/vzmCC55/dream.png", "https://i.ibb.co/b2w7f14/cyborg-santa.png", "https://i.ibb.co/2nXpv57/cooked-turkey.png", "https://i.ibb.co/NmPW8H6/comic-crew-inc-blook.png", "https://i.ibb.co/ynsBMVv/chili-pepper.png", "https://i.ibb.co/WyvtbNB/beehive.png", "https://i.ibb.co/34WM19w/candy-heart.png", "https://i.ibb.co/LYrF1xn/candy-basket.png", "https://i.ibb.co/RCLkQS8/box-of-white-chocolates.png", "https://i.ibb.co/N2nDcpB/box-of-chocolates.png", "https://i.ibb.co/N2nDcpB/box-of-chocolates.png", "https://i.ibb.co/6W6wvXJ/apple-barrel.png", "https://i.ibb.co/RNp7frY/acorn.png", "https://i.ibb.co/zsKsX4f/Button-Add-icon.png", "https://i.ibb.co/rfsnSyp/Button-Delete-icon.png", "https://blacket.org/content/blooks/Dinah.webp", "https://blacket.org/content/blooks/March%20Hare.webp", "https://blacket.org/content/blooks/Basketball.webp", "https://blacket.org/content/blooks/Baseball.webp", "https://blacket.org/content/blooks/Soccer%20Ball.webp", "https://blacket.org/content/blooks/Tennis%20Ball.webp", "https://blacket.org/content/blooks/Golf%20Ball.webp", "https://blacket.org/content/blooks/Football.webp", "https://blacket.org/content/blooks/Bowling%20Ball.webp", "https://blacket.org/content/blooks/Ping%20Pong%20Racket.webp", "https://blacket.org/content/blooks/Curling%20Stone.webp", "https://blacket.org/content/blooks/Football%20Helmet.webp", "https://blacket.org/content/blooks/Space%20Terminal.webp", "https://blacket.org/content/blooks/Space%20Debugger.webp", "https://blacket.org/content/blooks/Dark%20Dragon.webp", "https://blacket.org/content/blooks/Jasper.webp", "https://blacket.org/content/blooks/Jade.webp", "https://blacket.org/content/blooks/Onyx.webp", "https://blacket.org/content/blooks/Quartz.webp", "https://blacket.org/content/blooks/Lapis%20Lazuli.webp", "https://blacket.org/content/blooks/Topaz.webp", "https://blacket.org/content/blooks/Ruby.webp", "https://blacket.org/content/blooks/Sapphire.webp", "https://blacket.org/content/blooks/Amethyst.webp", "https://blacket.org/content/blooks/Opal.webp", "https://blacket.org/content/blooks/Moonstone.webp", "https://blacket.org/content/blooks/Rose%20Quartz.webp", "https://blacket.org/content/blooks/Black%20Opal.webp", "https://blacket.org/content/blooks/Apple.webp", "https://blacket.org/content/blooks/Orange.webp", "https://blacket.org/content/blooks/Lemon.webp", "https://blacket.org/content/blooks/Lime.webp", "https://blacket.org/content/blooks/Grape.webp", "https://blacket.org/content/blooks/Strawberry.webp", "https://blacket.org/content/blooks/Raspberry.webp", "https://i.imghippo.com/files/7cAht1725062940.png", "https://blacket.org/content/blooks/Watermelon.webp", "https://blacket.org/content/blooks/Dragon%20Fruit.webp", "https://blacket.org/content/blooks/Starfruit.webp", "https://blacket.org/content/blooks/Green%20Apple.webp", "https://blacket.org/content/blooks/Blue%20Raspberry.webp", "https://blacket.org/content/blooks/Golden%20Apple.webp", "https://blacket.org/content/blooks/Golden%20Amber.webp", "https://blacket.org/content/blooks/Rainbow%20Blook.webp", "https://blacket.org/content/blooks/Candy%20Corn.webp", "https://blacket.org/content/blooks/Jellybean.webp", "https://blacket.org/content/blooks/Lollipop.webp", "https://blacket.org/content/blooks/Black%20Licorice.webp", "https://blacket.org/content/blooks/Peppermint.webp", "https://blacket.org/content/blooks/Chocolate.webp", "https://blacket.org/content/blooks/Gummy%20Worm.webp", "https://blacket.org/content/blooks/Rock%20Candy.webp", "https://blacket.org/content/blooks/White%20Chocolate.webp", "https://blacket.org/content/blooks/Red%20Licorice.webp", "https://blacket.org/content/blooks/Blue%20Gummy%20Worm.webp", "https://blacket.org/content/blooks/Chocolate%20Milk.webp", "https://i.ibb.co/W0LDVvq/image-removebg-preview.png", "https://blacket.org/content/blooks/Forgotten%20Bot.webp", "https://blacket.org/content/blooks/Donut%20Blobfish.webp", "https://blacket.org/content/blooks/Magic%20Spellbook.webp", "https://blacket.org/content/blooks/Cursed%20Ring.webp", "https://blacket.org/content/blooks/Bubbling%20Cauldron.webp", "https://blacket.org/content/blooks/Fairy%20Dust.webp", "https://blacket.org/content/blooks/Enchantment%20Hall.webp", "https://blacket.org/content/blooks/Magician's%20Wand.webp", "https://blacket.org/content/blooks/Ancient%20Runes.webp", "https://blacket.org/content/blooks/Strength%20Potion.webp", "https://blacket.org/content/blooks/Magician's%20Hat.webp", "https://blacket.org/content/blooks/Sentient%20Spellbook.webp", "https://blacket.org/content/blooks/Golden%20Magician's%20Wand.webp", "https://blacket.org/content/blooks/Invisibility%20Cloak.webp", "https://blacket.org/content/blooks/Dial%20Telephone.webp", "https://blacket.org/content/blooks/EtchASketch.webp", "https://blacket.org/content/blooks/Cassette%20Tape.webp", "https://blacket.org/content/blooks/Polaroid%20Camera.webp", "https://blacket.org/content/blooks/Vending%20Machine.webp", "https://blacket.org/content/blooks/GameBlook.webp", "https://blacket.org/content/blooks/Donkey%20Kong%20Machine.webp", "https://blacket.org/content/blooks/BoomBox.webp", "https://blacket.org/content/blooks/CRT%20Television.webp", "https://blacket.org/content/blooks/GameBlook%20Color.webp", "https://blacket.org/content/blooks/PacMan%20Machine.webp", "https://blacket.org/content/blooks/Blackintosh.webp", "https://blacket.org/content/blooks/Gravity%20Switcher.webp", "https://blacket.org/content/blooks/Stealth%20Disguise%20Kit.webp", "https://blacket.org/content/blooks/Object%20Miniaturizer.webp", "https://blacket.org/content/blooks/Object%20Maximizer.webp", "https://blacket.org/content/blooks/Holographic%20Display.webp", "https://blacket.org/content/blooks/Flying%20Car.webp", "https://blacket.org/content/blooks/Void%20Pistol.webp", "https://blacket.org/content/blooks/Red%20Lightsaber.webp", "https://blacket.org/content/blooks/Neural%20Implant.webp", "https://blacket.org/content/blooks/Hijacked%20Radio.webp", "https://blacket.org/content/blooks/Eternal%20Prism%20Blade.webp", "https://blacket.org/content/blooks/Blue%20Lightsaber.webp", "https://blacket.org/content/blooks/Hijacked%20Neural%20Implant.webp", "https://blacket.org/content/blooks/Celestial%20Oracle%20Staff.webp", "https://blacket.org/content/blooks/Sea%20Monster.webp", "https://blacket.org/content/blooks/Pocket%20Watch.webp", "https://blacket.org/content/blooks/Hourglass.webp", "https://blacket.org/content/blooks/Cuckoo%20Clock.webp", "https://blacket.org/content/blooks/Calendar%20Scroll.webp", "https://blacket.org/content/blooks/Analog%20Clock.webp", "https://blacket.org/content/blooks/Astrolabe.webp", "https://blacket.org/content/blooks/Time%20Capsule.webp", "https://blacket.org/content/blooks/Orrey.webp", "https://blacket.org/content/blooks/Grandfather%20Clock.webp", "https://blacket.org/content/blooks/Clock%20Tower.webp", "https://blacket.org/content/blooks/Time%20Stone.webp", "https://blacket.org/content/blooks/Time%20Machine.webp", "https://blacket.org/content/blooks/Pac-Man.webp", "https://blacket.org/content/blooks/Space%20Invader.webp", "https://blacket.org/content/blooks/Among%20Us.webp", "https://blacket.org/content/blooks/Poke%20Ball.webp", "https://blacket.org/content/blooks/Flappy%20Bird.webp", "https://blacket.org/content/blooks/Goomba.webp", "https://blacket.org/content/blooks/Big%20Shield.webp", "https://blacket.org/content/blooks/Creeper.webp", "https://blacket.org/content/blooks/Red%20Bird.webp", "https://blacket.org/content/blooks/Companion%20Cube.webp", "https://blacket.org/content/blooks/Master%20Chief.webp", "https://blacket.org/content/blooks/Golden%20Among%20Us.webp", "https://blacket.org/content/blooks/Gaming%20Mouse.webp", "https://blacket.org/content/blooks/Sand%20Bucket.webp", "https://blacket.org/content/blooks/Beach%20Ball.webp", "https://blacket.org/content/blooks/Plastic%20Shovel.webp", "https://blacket.org/content/blooks/Popsicle.webp", "https://blacket.org/content/blooks/Life%20Float.webp", "https://blacket.org/content/blooks/Conch%20Shell.webp", "https://blacket.org/content/blooks/Surfboard.webp", "https://blacket.org/content/blooks/Sand%20Castle.webp", "https://blacket.org/content/blooks/Coconut%20Cocktail.webp", "https://blacket.org/content/blooks/Tropical%20Pig.webp", "https://blacket.org/content/blooks/Sheet%20Music.webp", "https://blacket.org/content/blooks/Music%20Disc.webp", "https://blacket.org/content/blooks/Xylophone.webp", "https://blacket.org/content/blooks/Drums.webp", "https://blacket.org/content/blooks/Metronome.webp", "https://blacket.org/content/blooks/Triangle.webp", "https://blacket.org/content/blooks/Speaker.webp", "https://blacket.org/content/blooks/Piano.webp", "https://blacket.org/content/blooks/White%20Piano.webp", "https://blacket.org/content/blooks/Golden%20Harp.webp", "https://blacket.org/content/blooks/Viking%20Helmet.webp", "https://blacket.org/content/blooks/Iron%20Chestplate.webp", "https://blacket.org/content/blooks/Spiked%20Boot.webp", "https://blacket.org/content/blooks/Silver%20Shuriken.webp", "https://blacket.org/content/blooks/Knight%20Shield.webp", "https://blacket.org/content/blooks/Knight%20Sword.webp", "https://blacket.org/content/blooks/Fragment%20Grenade.webp", "https://blacket.org/content/blooks/M12%20Shotgun.webp", "https://blacket.org/content/blooks/Diamond%20Sword.webp", "https://blacket.org/content/blooks/Golden%20Shuriken.webp", "https://blacket.org/content/blooks/Golden%20Gift.webp", "https://blacket.org/content/blooks/Diamond%20Gift.webp", "https://blacket.org/content/blooks/Ankha.webp", "https://blacket.org/content/blooks/Mummy%20Ankha.webp", "https://blacket.org/content/blooks/Realistic%20Ankha.webp", "https://blacket.org/content/blooks/Glowing%20Ankha.webp", "https://blacket.org/content/blooks/Mark%20Ankha.webp", "https://blacket.org/content/blooks/Ankha's%20House.webp", "https://blacket.org/content/blooks/High%20Ankha.webp", "https://blacket.org/content/blooks/Black%20Ankha.webp", "https://blacket.org/content/blooks/Golden%20Ankha.webp", "https://blacket.org/content/blooks/Zone%20Ankha.webp", "https://blacket.org/content/blooks/Rainbow%20Ankha.webp", "https://blacket.org/content/blooks/acai.webp", "https://blacket.org/content/blooks/alicialol.webp", "https://blacket.org/content/blooks/Pablo.webp", "https://blacket.org/content/blooks/fristic.webp", "https://blacket.org/content/blooks/Minesraft2.webp", "https://blacket.org/content/blooks/Piotr.webp", "https://blacket.org/content/blooks/GAMERYT.webp", "https://blacket.org/content/blooks/painbow.webp", "https://blacket.org/content/blooks/okr765.webp", "https://blacket.org/content/blooks/Cerulean.webp", "https://i.ibb.co/0DZt7cc/notAI.png", "https://blacket.org/content/blooks/iBlooket.webp", "https://blacket.org/content/blooks/root.webp", "https://blacket.org/content/blooks/envi.webp", "https://blacket.org/content/blooks/zastix.webp", "https://blacket.org/content/blooks/monkxy.webp", "https://blacket.org/content/blooks/Xotic.webp", "https://blacket.org/content/blooks/10k.webp", "https://blacket.org/content/blooks/Lunar%20Frog.webp", "https://blacket.org/content/blooks/Lucky%20Ankha.webp", "https://blacket.org/content/blooks/Spring%20Ankha.webp", "https://blacket.org/content/blooks/Turkey%20Ankha.webp", "https://blacket.org/content/blooks/Festive%20Xotic.webp", "https://blacket.org/content/blooks/Ukraine%20Ankha.webp", "https://blacket.org/content/blooks/American%20Ankha.webp", "https://blacket.org/content/blooks/Golden%20Shovel.webp", "https://blacket.org/content/blooks/Lunar%20Ankha.webp", "https://blacket.org/content/blooks/Lovely%20Ankha.webp", "https://blacket.org/content/blooks/Lucky%20Pablo.webp", "https://blacket.org/content/blooks/Festive%20Ankha.webp", "https://blacket.org/content/blooks/Naughty%20Ankha.webp", "https://blacket.org/content/blooks/Vampire%20Ankha.webp", "https://blacket.org/content/blooks/Bia.webp", "https://blacket.org/content/blooks/Gold%20Doubloon.webp", "https://blacket.org/content/blooks/Golden%20Crab.webp", "https://blacket.org/content/blooks/Golden%20Seashell.webp", "https://blacket.org/content/blooks/Treasure%20Chest.webp", "https://blacket.org/content/blooks/Tropical%20Island.webp", "https://blacket.org/content/blooks/Spring%20Globe.webp", "https://blacket.org/content/blooks/Patriotic%20Piotr.webp", "https://blacket.org/content/blooks/Nature%20Elemental1.webp", "https://blacket.org/content/blooks/Fire%20Elemental1.webp", "https://blacket.org/content/blooks/Air%20Elemental1.webp", "https://blacket.org/content/blooks/Frost%20Elemental1.webp", "https://blacket.org/content/blooks/Lava%20Elemental1.webp", "https://blacket.org/content/blooks/Electric%20Elemental1.webp", "https://blacket.org/content/blooks/Water%20Elemental1.webp", "https://blacket.org/content/blooks/Space%20Elemental1.webp", "https://blacket.org/content/blooks/Plasma%20Elemental1.webp", "https://blacket.org/content/blooks/Lovely%20zastix.webp", "https://blacket.org/content/blooks/Cookies%20Combo.webp", "https://blacket.org/content/logo.webp", "https://blacket.org/content/blooks/Giveaway.webp", "https://blacket.org/content/blooks/Error.webp", "https://blacket.org/content/blooks/Success.webp", "https://blacket.org/content/blooks/yesbutterjeff.webp", "https://blacket.org/content/blooks/Info.webp", "https://blacket.org/content/blooks/Magnet.webp", "https://blacket.org/content/blooks/DNA.webp", "https://blacket.org/content/blooks/Scale.webp", "https://blacket.org/content/blooks/Beaker.webp", "https://blacket.org/content/blooks/Blood%20Bag.webp", "https://blacket.org/content/blooks/Magnifying%20Glass.webp", "https://blacket.org/content/blooks/Battery.webp", "https://blacket.org/content/blooks/Atom.webp", "https://blacket.org/content/blooks/Test%20Tubes.webp", "https://blacket.org/content/blooks/Bunsen%20Burner.webp", "https://blacket.org/content/blooks/Bacteria.webp", "https://blacket.org/content/blooks/Microscope.webp", "https://blacket.org/content/blooks/Eyeball.webp", "https://blacket.org/content/blooks/Toxic%20Waste.webp", "https://blacket.org/content/blooks/Prism.webp", "https://blacket.org/content/blooks/Telescope.webp", "https://blacket.org/content/blooks/Skull.webp", "https://blacket.org/content/blooks/Lightbulb.webp", "https://blacket.org/content/blooks/Brain.webp", "https://blacket.org/content/blooks/Flask.webp", "https://blacket.org/content/blooks/Petri%20Dish.webp", "https://blacket.org/content/blooks/Albert%20Einstein.webp", "https://blacket.org/content/blooks/Neil%20deGrasse%20Tyson.webp", "https://blacket.org/content/blooks/Gregor%20Mendel.webp", "https://blacket.org/content/blooks/Nikola%20Tesla.webp", "https://blacket.org/content/blooks/Lava%20Lamp.webp", "https://blacket.org/content/blooks/Beating%20Heart.webp", "https://blacket.org/content/blooks/Blueberry%20Pie.webp", "https://blacket.org/content/blooks/Cherry%20Pie.webp", "https://blacket.org/content/blooks/Donut.webp", "https://blacket.org/content/blooks/Cake.webp", "https://blacket.org/content/blooks/Birthday%20Cake.webp", "https://blacket.org/content/blooks/Eclair.webp", "https://blacket.org/content/blooks/Chocolate%20Ice%20Cream.webp", "https://blacket.org/content/blooks/Strawberry%20Ice%20Cream.webp", "https://blacket.org/content/blooks/Macaroon.webp", "https://blacket.org/content/blooks/Golden%20Donut.webp", "https://blacket.org/content/blooks/Magic%20Chocolate.webp", "https://blacket.org/content/blooks/Pack%20of%20Peeps.webp", "https://i.ibb.co/kmZzpW7/xPCHhic.png", "https://i.imgur.com/oFAiMCP.png", "https://i.imgur.com/Cvy8nhz.png", "https://i.imgur.com/5bPl8d7.png", "https://i.imgur.com/PZ723dj.png", "https://i.imgur.com/gIWOeB8.png", "https://i.imgur.com/uqFXKVa.png", "https://i.imgur.com/njAnZv3.png", "https://i.imgur.com/roDRyAE.png", "https://i.imgur.com/Rfc6msP.png", "https://i.imgur.com/j6Xk43g.png", "https://i.ibb.co/WnYyWms/console.webp", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Black.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Blue.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Green.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/LightGreen.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Orange.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Purple.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Red.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Teal.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Yellow.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/Berry.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/BlooketWarrior.gif", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/Buenar.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/CurryEater.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/FrostyIce109.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/GAMERYT.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/Iamgamedude.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/ItsTornadoYT.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/IzumiiHD.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/Manny.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/NoButterJeff.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/Packman28.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/SOUNDGOD.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/Solid_Snake.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/ThatPlanet.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/Xotic.gif", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/School/Crayon.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/School/Eraser.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/School/Notebook.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/School/Paper.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/School/Pencil.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/School/Ruler.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/School/Scissors.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Tech/Camera.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Tech/Computer.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Tech/Microwave.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Tech/Remote.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Tech/Speaker.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Tech/Virus.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/rainbow.gif", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/lock-icon.png"];
1306                     imageUrls.forEach((url) => {
1307                         const newBlookContainer = document.createElement('div');
1308                         newBlookContainer.className = '_blookContainer_1bg6w_150';
1309                         newBlookContainer.setAttribute('role', 'button');
1310                         newBlookContainer.setAttribute('tabindex', '0');
1312                         const innerDiv = document.createElement('div');
1313                         innerDiv.className = '_blookContainer_12gbf_1 _blook_1bg6w_141';
1314                         innerDiv.setAttribute('data-tooltip-id', 'blook-tooltip');
1316                         const img = document.createElement('img');
1317                         img.src = url;
1318                         img.alt = 'Custom Blook';
1319                         img.draggable = false;
1320                         img.className = '_blook_12gbf_1';
1322                         newBlookContainer.addEventListener('click', () => {
1323                             setCustomBlookUrl(url);
1324                         });
1326                         innerDiv.appendChild(img);
1327                         newBlookContainer.appendChild(innerDiv);
1328                         targetContainer.appendChild(newBlookContainer);
1329                     });
1330                 } else {
1331                     console.error('Target container not found');
1332                 }
1334                 function setCustomBlookUrl(url) {
1335                     let t = Object.values(function e(t = document.querySelector("body>div")) {
1336                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
1337                     }())[1].children[0]._owner.stateNode;
1339                     if (!t.state.unlocks) {
1340                         t.props.client.blook = url;
1341                     }
1343                     t.props.liveGameController.setVal({
1344                         path: `c/${t.props.client.name}/b`,
1345                         val: url
1346                     });
1347                 }
1348             }
1349         }, {
1350             name: "Freeze Host",
1351             description: "Freezes the host's screen",
1352             run: function() {
1353                 const encodedChars = [
1354                     '\\u2f9f', '\\u4fff', '\\u4f52', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u4FF1', '\\u4FF2'
1355                 ];
1357                 const chars = encodedChars.map(char => eval(`"${char}"`));
1359                 function makeLongText() {
1360                     return new Array(3e+6).fill().map(e => chars[Math.floor(Math.random() * chars.length)]).join("");
1361                 }
1363                 let {
1364                     props: t
1365                 } = Object.values(function e(t = document.querySelector("body>div")) {
1366                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
1367                 }())[1].children[0]._owner.stateNode;
1369                 let repeatedText = makeLongText();
1370                 t.client.blook = repeatedText;
1371                 t.liveGameController.setVal({
1372                     path: `c/${t.client.name}/b`,
1373                     val: repeatedText
1374                 });
1375             }
1376         }, {
1377             name: "Remove all Taken Blooks",
1378             description: "Removes all taken blooks, allowing you to use any taken blook. Only works in lobby.",
1379             run: function() {
1380                 const stateNode = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
1381                 stateNode.setState({
1382                     takenBlooks: {
1383                         includes: e => !1
1384                     }
1385                 });
1386                 stateNode.setState = function(a, b) {
1387                     if (a?.takenBlooks) {
1388                         return;
1389                     }
1390                     stateNode.updater.enqueueSetState(stateNode, a, b, "setState");
1391                 }
1392             }
1393         }, {
1394             name: "Dynamic Player Count",
1395             description: "Updates the player count at the top of the screen in realtime as players join or leave.",
1396             run: function() {
1397                 (async () => {
1398                     const stateNode = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
1399                     const ref = await stateNode.props.liveGameController.getDatabaseRef("")
1400                     ref.on("value", e => {
1401                         document.querySelector("div[class*='headerTextCenter']").innerHTML = `Player Count | ${Object.keys(e.val()?.c)?.length} / ${stateNode.props.client.plus ? 300 : 60}`;
1402                     });
1403                 })()
1404             }
1405         }, {
1406             name: "Blooket Bot",
1407             description: "Opens Blooket Bot",
1408             run: function() {
1409                 function getGameCode() {
1410                     const appDiv = document.querySelector('#app>div>div');
1411                     if (appDiv) {
1412                         const reactComponent = Object.values(appDiv)[1]?.children[0]?._owner;
1413                         return reactComponent?.stateNode?.props?.client?.hostId || null;
1414                     }
1415                     return null;
1416                 }
1418                 const gameCode = getGameCode();
1419                 const url = gameCode ? "https://blooketbot.glitch.me/?code=" + gameCode : "https://blooketbot.glitch.me/";
1420                 window.open(url, "_blank", "width=500,height=500,resizable=yes,scrollbars=yes,status=yes");
1421             }
1422         }, {
1423             name: "Blooket Bot Unblocked",
1424             description: "Opens Blooket Bot",
1425             run: function() {
1426                 function getGameCode() {
1427                     const appDiv = document.querySelector('#app>div>div');
1428                     if (appDiv) {
1429                         const reactComponent = Object.values(appDiv)[1]?.children[0]?._owner;
1430                         return reactComponent?.stateNode?.props?.client?.hostId || null;
1431                     }
1432                     return null;
1433                 }
1435                 const gameCode = getGameCode();
1436                 const url = gameCode ? "https://blooketbot.vercel.app/?code=" + gameCode : "https://blooketbot.vercel.app/";
1437                 window.open(url, "_blank", "width=500,height=500,resizable=yes,scrollbars=yes,status=yes");
1438             }
1439         }, {
1440             name: "Blooket Homework Editor",
1441             description: "Opens Blooket Homework Editor",
1442             run: function() {
1443                 window.open("https://blookethwk.glitch.me/", "_blank", "width=500,height=500,resizable=yes,scrollbars=yes,status=yes")
1444             }
1445         }, {
1446             name: "Lobbychat",
1447             description: "Chat with other people and execute commands",
1448             run: function() {
1449                 if (window.run) {
1450                     return;
1451                 } else {
1452                     window.run = true;
1453                 }
1455                 function e() {
1456                     return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner
1457                 }
1458                 var t = 0,
1459                     a = !1;
1460                 document.addEventListener("keydown", function(e) {
1461                     "`" === e.key && (a = !a, o.style.display = a ? "none" : "block")
1462                 });
1463                 let o = document.createElement("div");
1464                 o.className = "chat-box", document.body.appendChild(o);
1465                 let r = document.createElement("div");
1466                 r.className = "chat-header", r.textContent = "Chat", o.appendChild(r);
1467                 let i = document.createElement("div");
1468                 i.className = "chat-body", o.appendChild(i);
1469                 let n = document.createElement("input");
1471                 function s(e) {
1472                     let t = document.createElement("div");
1473                     t.textContent = e, i.appendChild(t)
1474                 }
1475                 n.type = "text", n.className = "chat-input", n.placeholder = "Type a message...", o.appendChild(n), o.style.position = "fixed", o.style.bottom = "20px", o.style.right = "20px", o.style.width = "300px", o.style.backgroundColor = "#fff", o.style.border = "1px solid #ccc", o.style.boxShadow = "0px 0px 10px rgba(0, 0, 0, 0.2)", r.addEventListener("click", () => {
1476                     i.classList.toggle("open")
1477                 }), n.addEventListener("keydown", function(a) {
1478                     13 === a.keyCode && (function a(o) {
1479                         var r, n, l, c, d, p, u, h = function e(t) {
1480                             if ("/" !== t.charAt(0)) return !1;
1481                             var a = t.split(" "),
1482                                 o = a[0].replace("/", "");
1483                             return a.splice(0, 1), {
1484                                 cmd: o,
1485                                 args: a
1486                             }
1487                         }(o);
1488                         if (h) switch (h.cmd) {
1489                             case "cb":
1490                                 r = h.args.join(" "), (n = webpackJsonp.push([
1491                                     [], {
1492                                         1234(e, t, a) {
1493                                             t.webpack = a
1494                                         }
1495                                     },
1496                                     [
1497                                         ["1234"]
1498                                     ]
1499                                 ]).webpack("MDrD").a)[r = Object.keys(n).find(e => r.toLocaleLowerCase() === e.toLocaleLowerCase())] ? (s("Setting blook to " + r + "!"), e().stateNode.props.liveGameController.setVal({
1500                                     id: e().stateNode.props.client.hostId,
1501                                     path: "c/" + e().stateNode.props.client.name,
1502                                     val: {
1503                                         b: r
1504                                     }
1505                                 }), e().stateNode.props.client.blook = r) : s("No blook with that name was found!");
1506                                 break;
1507                             case "clear":
1508                                 i.innerHTML = "";
1509                                 break;
1510                             case "dumpstate":
1511                                 Object.keys(e().stateNode.state).map(t => {
1512                                     var a = e().stateNode.state[t];
1513                                     if (null == a) return "N/A";
1514                                     Array.from(a) && "object" == typeof a && (a = "[Array]"), s(t + ":" + a)
1515                                 }).join(";");
1516                                 break;
1517                             case "list":
1518                                 e().stateNode.props.liveGameController.getDatabaseVal("c").then(e => {
1519                                     s("Current Players(" + Object.keys(e).length + "): " + Object.keys(e).join(","))
1520                                 });
1521                                 break;
1522                             case "tlog":
1523                                 window.logsv = !window.logsv, s("SetVal log set to " + (window.logsv ? "Enabled" : "Disabled"));
1524                                 break;
1525                             case "setval":
1526                                 l = h.args, e().stateNode.props.liveGameController.setVal({
1527                                     path: "c/" + e().stateNode.props.client.name + "/" + l[0],
1528                                     val: l.slice(1, l.length).join(" ")
1529                                 });
1530                                 break;
1531                             case "setstate":
1532                                 c = h.args, d = {}, c.forEach(e => {
1533                                     var t = e.split(":");
1534                                     Number.isNaN(parseInt(t[1])) || parseInt(t[1]).toString() !== t[1] || (t[1] = parseInt(t[1])), d[t[0]] = t[1]
1535                                 }), e().stateNode.setState(d), s("Set Successful!");
1536                                 break;
1537                             case "ahelp":
1538                                 s("Advanced Commands: setval(sets val logged by tlog ex /setval b Chicken), tlog(toggles setval log), dumpstate(dumps react state),setstate(sets react state /setstate crypto:5 crypto2:5 etc)");
1539                                 break;
1540                             case "help":
1541                                 s("Available Commands: help(gives help),ahelp(advanced commands help), cb(changes blook /cb cow), list(lists players connected), dump(dumps all available info about a player, passwords, etc(/dump player)), clear(clears chat), code(gives game code), unlock(unlocks blook on lobby screen)");
1542                                 break;
1543                             case "dump":
1544                                 ! function t(a) {
1545                                     e().stateNode.props.liveGameController.getDatabaseVal("c/" + a).then(e => {
1546                                         null != e ? s("Dump: " + JSON.stringify(e)) : s("Player not found!")
1547                                     })
1548                                 }(h.args.join(" "));
1549                                 break;
1550                             case "unlock":
1551                                 p = h.args.join(" "), (u = webpackJsonp.push([
1552                                     [], {
1553                                         1234(e, t, a) {
1554                                             t.webpack = a
1555                                         }
1556                                     },
1557                                     [
1558                                         ["1234"]
1559                                     ]
1560                                 ]).webpack("MDrD").a)[p = Object.keys(u).find(e => p.toLocaleLowerCase() === e.toLocaleLowerCase())] ? (e().stateNode.state.unlocks.push(p), e().stateNode.forceUpdate()) : s("No blook with that name was found!");
1561                                 break;
1562                             case "code":
1563                                 s("Game Code: " + e().stateNode.props.client.hostId);
1564                                 break;
1565                             default:
1566                                 s("Unrecognized chat command!")
1567                         } else e().stateNode.props.liveGameController.setVal({
1568                             id: e().stateNode.props.client.hostId,
1569                             path: "c/" + e().stateNode.props.client.name + "/msg",
1570                             val: {
1571                                 i: t,
1572                                 msg: o
1573                             }
1574                         }), t++
1575                     }(a.srcElement.value), a.srcElement.value = "")
1576                 });
1577                 var l = e().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_;
1579                 function c(e) {
1580                     window.logsv && s("Path: " + e.path.split("/").splice(2, 2).join("/") + " Val: " + ("object" == typeof e.val ? JSON.stringify(e.val) : e.val))
1581                 }
1582                 e().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_ = function(e, t, a, o) {
1583                     var r, i;
1584                     console.log(e, t, a, o), r = e, null != (i = t) && r.includes("/msg") && i?.msg && (console.log(i.msg), s(r.split("/")[2] + ": " + i.msg)), l(e, t, a, o)
1585                 }, window.logsv = !1;
1586                 var d = e().stateNode.props.liveGameController.setVal;
1587                 e().stateNode.props.liveGameController.setVal = function() {
1588                     c.apply(this, arguments), d.apply(this, arguments)
1589                 }, e().stateNode.props.liveGameController._liveApp.database().ref(`${e().stateNode.props.liveGameController._liveGameCode}`).on("value", e => {}), s("Lobbychat successfully loaded!"), o.style.wordWrap = "break-word"
1590             }
1591         }, {
1592             name: "Pin Guesser",
1593             description: "Brute forces combinations for existing pins",
1594             run: function() {
1595                 var e = 0,
1596                     t = 0,
1597                     a = document.querySelector("div[class*='titleText']");
1599                 function o() {
1600                     return Object.values(function e(t = document.querySelector("body>div")) {
1601                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1602                     }())[1].children[0]._owner.stateNode
1603                 }! function r() {
1604                     let i = Math.floor(9e6 * Math.random()) + 1e6;
1605                     fetch(`https://fb.blooket.com/c/firebase/id?id=${i}`, {
1606                         method: "GET",
1607                         credentials: "include"
1608                     }).then(e => e.json()).then(n => {
1609                         !0 === n.success ? (console.log("Game found:", i), a.innerHTML = "Game Found!", o().setState({
1610                             client: {
1611                                 hostId: i.toString()
1612                             }
1613                         })) : (console.log("No game found for:", i), o().setState({
1614                             client: {
1615                                 hostId: i.toString()
1616                             }
1617                         }), e++, a.innerHTML = "Guesses: " + e, ++t > 15 ? (setTimeout(r, 1e3), t = 0) : r())
1618                     }).catch(e => {
1619                         alert("Error:" + e)
1620                     })
1621                 }()
1622             }
1623         }, {
1624             name: "Crash Game",
1625             description: "Crashes the host's game",
1626             run: function() {
1627                 var e = Object.values(function e(t = document.querySelector("#app")) {
1628                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1629                 }())[1].children[0]._owner.stateNode;
1630                 e.props.liveGameController.setVal({
1631                     path: `c/${e.props.client.name}/b/toString`,
1632                     val: "Crashed"
1633                 })
1634             }
1635         }, {
1636             name: "Every Answer Correct",
1637             description: "Sets every answer to be correct",
1638             run: function() {
1639                 let {
1640                     stateNode: e
1641                 } = Object.values(function e(t = document.querySelector("body>div")) {
1642                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1643                 }())[1].children[0]._owner;
1644                 e.freeQuestions = e.freeQuestions?.map?.(e => ({
1645                     ...e,
1646                     correctAnswers: e.answers
1647                 })), e.questions = e.questions?.map?.(e => ({
1648                     ...e,
1649                     correctAnswers: e.answers
1650                 })), e.props.client.questions = e.props.client.questions.map(e => ({
1651                     ...e,
1652                     correctAnswers: e.answers
1653                 }))
1654             }
1655         }, {
1656             name: "Remove Name Limit",
1657             description: "Sets the name limit to 120, which is the actual max name length limit",
1658             run: function() {
1659                 var e = document.createElement("iframe");
1660                 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), document.querySelector('input[class*="nameInput"]').maxLength = 120, alert("Removed name length limit")
1661             }
1662         }, {
1663             name: "Remove Random Name",
1664             description: "Allows you to put a custom name",
1665             run: function() {
1666                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
1667                     isRandom: !1,
1668                     client: {
1669                         name: ""
1670                     }
1671                 }), document.querySelector('[class*="nameInput"]')?.focus?.()
1672             }
1673         }, {
1674             name: "Sell Cheap Duplicates",
1675             description: "Sells all of your uncommon to epic dupes (not legendaries+)",
1676             run: function() {
1677                 var e = document.createElement("iframe");
1678                 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), window.confirm = e.contentWindow.confirm.bind(window), e.remove();
1679                 let t = webpackJsonp.push([
1680                         [], {
1681                             1234(e, t, a) {
1682                                 t.webpack = a
1683                             }
1684                         },
1685                         [
1686                             ["1234"]
1687                         ]
1688                     ]).webpack,
1689                     a = Object.values(t.c).find(e => e.exports?.a?.get).exports.a,
1690                     o = Object.values(t.c).find(e => e.exports.a?.sellBlook).exports.a.sellBlook;
1691                 a.get("https://dashboard.blooket.com/api/users").then(async ({
1692                     data: {
1693                         unlocks: e
1694                     }
1695                 }) => {
1696                     if (e = Object.entries(e).filter(([e, t]) => 1 < t && !["Legendary", "Chroma", "Mystical"].includes(webpackJsonp.push([
1697                             [], {
1698                                 1234(e, t, a) {
1699                                     t.webpack = a
1700                                 }
1701                             },
1702                             [
1703                                 ["1234"]
1704                             ]
1705                         ]).webpack("MDrD").a[e].rarity)), confirm("Are you sure you want to sell your uncommon to epic dupes?")) {
1706                         var t, a, r = Date.now();
1707                         for ([t, a] of e) await o({
1708                             blook: t,
1709                             numToSell: a - 1
1710                         });
1711                         alert(`(${Date.now()-r}ms) Results: ` + e.map(([e, t]) => `    ${e} ` + (t - 1)).join(" "))
1712                     }
1713                 }).catch(() => alert("There was an error user data!"))
1714             }
1715         }, {
1716             name: "Sell Duplicate Blooks",
1717             description: "Sell all duplicate blooks leaving you with 1 each",
1718             run: async function() {
1719                 let e = document.createElement("iframe");
1720                 if (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), window.confirm = e.contentWindow.confirm.bind(window), e.remove(), /dashboard.*\/blooks/.test(window.location.href)) {
1721                     if (confirm("Are you sure you want to sell your dupes? (Legendaries and rarer will not be sold)")) {
1722                         let {
1723                             stateNode: t
1724                         } = Object.values(function e(t = document.querySelector("body>div")) {
1725                             return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1726                         }())[1].children[0]._owner, a = Date.now(), o = "";
1727                         for (let r in t.state.blookData)
1728                             if (t.state.blookData[r] > 1) {
1729                                 if (t.setState({
1730                                         blook: r,
1731                                         numToSell: t.state.blookData[r] - 1
1732                                     }), ["Legendary", "Chroma", "Mystical"].includes(document.querySelector("[class*='highlightedRarity']").innerText.trim())) continue;
1733                                 o += `    ${r} ${t.state.blookData[r]-1} `, await t.sellBlook({
1734                                     preventDefault() {}
1735                                 }, !0)
1736                             } alert(`(${Date.now()-a}ms) Results: ${o.trim()}`)
1737                     }
1738                 } else alert("This can only be ran in the Blooks page.")
1739             }
1740         }],
1741         voyage: [{
1742             name: "Heist ESP",
1743             description: "Shows you what's under each chest during a heist",
1744             type: "toggle",
1745             enabled: false,
1746             data: null,
1747             run: function() {
1748                 if (this.enabled) {
1749                     this.enabled = false;
1750                     clearInterval(this.data);
1751                     this.data = null;
1752                     Array.prototype.forEach.call(document.querySelectorAll(".chestESP"), x => x.remove());
1753                 } else {
1754                     this.enabled = true;
1755                     this.data = setInterval(() => {
1756                         const cheat = (async () => {
1757                             let {
1758                                 stateNode
1759                             } = Object.values((function react(r = document.querySelector("body>div")) {
1760                                 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
1761                             })())[1].children[0]._owner;
1762                             if (stateNode.state.stage == "heist") {
1763                                 const imgs = Array.prototype.map.call(Array.prototype.slice.call(document.querySelector("[class*=prizesList]").children, 1, 4), (x) => x.querySelector("img").src);
1764                                 const esp = Object.values(document.querySelector("[class*=modal]"))[0].return.memoizedState.memoizedState;
1765                                 for (const e of document.querySelectorAll("[class*=boxContent] > div")) e.remove();
1766                                 const open = Object.values(document.querySelector("[class*=modal]"))[0].return.memoizedState.next.next.memoizedState;
1767                                 Array.prototype.forEach.call(document.querySelector("[class*=chestsWrapper]").children, (container, i) => {
1768                                     const box = container.firstChild.firstChild;
1769                                     if (open.includes(i)) return box.style.opacity = "";
1770                                     box.style.opacity = "0.5";
1771                                     let d = document.createElement("div");
1772                                     d.innerHTML = "<img src='" + imgs[2 - esp[i]] + "' style='max-width: 75%; max-height: 75%'></img>";
1773                                     d.className = "chestESP";
1774                                     d.style.position = "absolute";
1775                                     d.style.inset = "0";
1776                                     d.style.display = "grid";
1777                                     d.style.placeItems = "center";
1778                                     d.style.pointerEvents = "none";
1779                                     container.onclick = () => {
1780                                         d.remove();
1781                                         box.style.opacity = "";
1782                                     };
1783                                     container.firstChild.prepend(d);
1784                                 });
1785                             }
1786                         });
1787                         cheat();
1788                     }, 50);
1789                 }
1790             }
1791         }, {
1792             name: "Crash Host (Pirate)",
1793             description: "Crashes the Host's Game for Pirate's Voyage",
1794             run: function() {
1795                 function reactHandler() {
1796                     return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
1797                 }
1799                 function setv(args) {
1800                     reactHandler().stateNode.props.liveGameController.setVal({
1801                         path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
1802                         val: args.slice(1, args.length).join(" ")
1803                     });
1804                 }
1806                 setv(['d/t', 't']);
1807             }
1808         }, {
1809             name: "Max Levels",
1810             description: "Maxes out all islands and your boat",
1811             run: function() {
1812                 let {
1813                     stateNode: e
1814                 } = Object.values(function e(t = document.querySelector("body>div")) {
1815                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1816                 }())[1].children[0]._owner;
1817                 e.setState({
1818                     islandLevels: Array(e.state.islandLevels.length).fill(5)
1819                 }, e.updateBoatLevel)
1820             }
1821         }, {
1822             name: "Set Doubloons",
1823             description: "Sets Doubloons",
1824             inputs: [{
1825                 name: "Amount",
1826                 type: "number"
1827             }],
1828             run: function(e) {
1829                 let t = document.createElement("iframe");
1830                 document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
1831                 let {
1832                     stateNode: a
1833                 } = Object.values(function e(t = document.querySelector("body>div")) {
1834                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1835                 }())[1].children[0]._owner;
1836                 a.setState({
1837                     doubloons: e
1838                 }), a.props.liveGameController.setVal({
1839                     path: `c/${a.props.client.name}/d`,
1840                     val: e
1841                 })
1842             }
1843         }, {
1844             name: "Start Heist",
1845             description: "Starts a heist on someone",
1846             inputs: [{
1847                 name: "Player",
1848                 type: "options",
1849                 options() {
1850                     let {
1851                         stateNode: e
1852                     } = Object.values(function e(t = document.querySelector("body>div")) {
1853                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1854                     }())[1].children[0]._owner;
1855                     return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
1856                 }
1857             }],
1858             run: function(e) {
1859                 let t = document.createElement("iframe");
1860                 document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
1861                 let {
1862                     stateNode: a
1863                 } = Object.values(function e(t = document.querySelector("body>div")) {
1864                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1865                 }())[1].children[0]._owner;
1866                 a.props.liveGameController.getDatabaseVal("c", function(t) {
1867                     let o = Object.entries(t || {}).reduce((e, [t, o]) => (t != a.props.client.name && e.push({
1868                         name: t,
1869                         blook: o.b,
1870                         doubloons: o.d || 0
1871                     }), e), []);
1872                     if (0 === o.length) return a.questionsToAnswer = 1, void a.randomQ();
1873                     let {
1874                         name: r,
1875                         blook: i,
1876                         doubloons: n
1877                     } = o.find(t => t.name == e) || o.sort((e, t) => t.doubloons - e.doubloons)[0];
1878                     a.setState({
1879                         stage: "heist",
1880                         heistInfo: {
1881                             name: r,
1882                             blook: i
1883                         },
1884                         prizeAmount: Math.max(1e3, n)
1885                     })
1886                 })
1887             }
1888         }, {
1889             name: "Swap Doubloons",
1890             description: "Swaps Doubloons with someone",
1891             inputs: [{
1892                 name: "Player",
1893                 type: "options",
1894                 options() {
1895                     let {
1896                         stateNode: e
1897                     } = Object.values(function e(t = document.querySelector("body>div")) {
1898                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1899                     }())[1].children[0]._owner;
1900                     return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
1901                 }
1902             }],
1903             run: async function(e) {
1904                 let t = document.createElement("iframe");
1905                 document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
1906                 let {
1907                     stateNode: a
1908                 } = Object.values(function e(t = document.querySelector("body>div")) {
1909                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1910                 }())[1].children[0]._owner, o = Object.entries(await new Promise(e => a.props.liveGameController.getDatabaseVal("c", e))).sort((e, t) => t[1].d - e[1].d).filter(e => e[0] != a.props.client.name), r = o.find(t => t[0] == e) || o[0];
1911                 a.props.liveGameController.setVal({
1912                     path: `c/${a.props.client.name}`,
1913                     val: {
1914                         b: a.props.client.blook,
1915                         d: r[1].d,
1916                         tat: `${r[0]}:${r[1].d-a.state.doubloons}`
1917                     }
1918                 }), a.setState({
1919                     doubloons: r[1].d
1920                 })
1921             }
1922         }, {
1923             name: "Take Doubloons",
1924             description: "Takes Doubloons from someone",
1925             inputs: [{
1926                 name: "Player",
1927                 type: "options",
1928                 options() {
1929                     let {
1930                         stateNode: e
1931                     } = Object.values(function e(t = document.querySelector("body>div")) {
1932                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1933                     }())[1].children[0]._owner;
1934                     return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
1935                 }
1936             }],
1937             run: async function(e) {
1938                 let t = document.createElement("iframe");
1939                 document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
1940                 let {
1941                     stateNode: a
1942                 } = Object.values(function e(t = document.querySelector("body>div")) {
1943                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1944                 }())[1].children[0]._owner, o = Object.entries(await new Promise(e => a.props.liveGameController.getDatabaseVal("c", e))).sort((e, t) => t[1].d - e[1].d).filter(e => e[0] != a.props.client.name), r = o.find(t => t[0] == e) || o[0];
1945                 a.setState({
1946                     doubloons: a.state.doubloons + r[1].d
1947                 }), a.props.liveGameController.setVal({
1948                     path: `c/${a.props.client.name}`,
1949                     val: {
1950                         b: a.props.client.blook,
1951                         d: r[1].d,
1952                         tat: `${r[0]}:${r[1].d}`
1953                     }
1954                 })
1955             }
1956         }, {
1957             name: "Flood Alert Box",
1958             description: "Makes the alert box filled with text",
1959             inputs: [{
1960                 name: "Text",
1961                 type: "text"
1962             }],
1963             run: function(userInput) {
1964                 function getReactOwner() {
1965                     return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
1966                 }
1968                 function repeatText(text, times) {
1969                     return new Array(times).fill(text).join(" ");
1970                 }
1972                 function setValForPlayer() {
1973                     getReactOwner().stateNode.props.liveGameController.getDatabaseVal("c/").then(data => {
1974                         if (data != null) {
1976                             const playerName = Object.keys(data)[0];
1978                             if (userInput) {
1980                                 const id = "1,723,583,989,363";
1981                                 const repeatedText = repeatText(userInput, 1700);
1982                                 const finalText = `${id}${repeatedText}`;
1984                                 setv(['tat', `${playerName}:${finalText}`]);
1985                             } else {
1986                                 console.log("No text entered. Operation cancelled.");
1987                             }
1988                         } else {
1989                             console.log("Player not found!");
1990                         }
1991                     });
1992                 }
1994                 function setv(args) {
1995                     getReactOwner().stateNode.props.liveGameController.setVal({
1996                         path: "c/" + getReactOwner().stateNode.props.client.name + "/" + args[0],
1997                         val: args.slice(1, args.length).join(" ")
1998                     });
1999                 }
2001                 setValForPlayer();
2002             }
2003         }, {
2004             name: "Send Ad Text",
2005             description: "Sends a load of text to another player (This will override your blook!)",
2006             inputs: [{
2007                 name: "Player",
2008                 type: "options",
2009                 options() {
2010                     let {
2011                         stateNode: e
2012                     } = Object.values(function e(t = document.querySelector("body>div")) {
2013                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
2014                     }())[1].children[0]._owner;
2015                     return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]));
2016                 }
2017             }, {
2018                 name: "Text"
2019             }],
2020             run: async function(player, e) {
2021                 let {
2022                     props: t2
2023                 } = Object.values(function e(t = document.querySelector("body>div")) {
2024                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
2025                 }())[1].children[0]._owner.stateNode;
2027                 let repeatedText = `Dog:${Array(500).fill(e).join(' ')}`;
2028                 t2.client.blook = repeatedText;
2029                 t2.liveGameController.setVal({
2030                     path: `c/${t2.client.name}/b`,
2031                     val: repeatedText
2032                 });
2033                 t2.liveGameController.setVal({
2034                     path: `c/${t2.client.name}/tat`,
2035                     val: `${player}:196`
2036                 });
2037             }
2038         }],
2039         brawl: [{
2040             name: "Double Enemy XP",
2041             description: "Doubles enemy XP drop value",
2042             run: function() {
2043                 for (let e of Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.colliders._active.filter(e => e.callbackContext?.toString().includes("invulnerableTime"))) {
2044                     var t = e.object2;
2045                     let a = t.classType.prototype.start;
2046                     t.classType.prototype.start = function() {
2047                         a.apply(this, arguments), this.val *= 2
2048                     }, t.children.entries.forEach(e => e.val *= 2)
2049                 }
2050             }
2051         }, {
2052             name: "Half Enemy Speed",
2053             description: "Makes enemies move 2x slower",
2054             run: function() {
2055                 for (let e of Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.colliders._active.filter(e => e.callbackContext?.toString().includes("invulnerableTime"))) {
2056                     var t = e.object2;
2057                     let a = t.classType.prototype.start;
2058                     t.classType.prototype.start = function() {
2059                         a.apply(this, arguments), this.speed *= .5
2060                     }, t.children.entries.forEach(e => e.speed *= .5)
2061                 }
2062             }
2063         }, {
2064             name: "Instant Kill",
2065             description: "Sets all enemies health to 1",
2066             run: function() {
2067                 for (let e of Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.colliders._active.filter(e => e.callbackContext?.toString().includes("invulnerableTime"))) {
2068                     var t = e.object2;
2069                     let a = t.classType.prototype.start;
2070                     t.classType.prototype.start = function() {
2071                         a.apply(this, arguments), this.hp = 1
2072                     }, t.children.entries.forEach(e => e.hp = 1)
2073                 }
2074             }
2075         }, {
2076             name: "Invincibility",
2077             description: "Makes you invincible",
2078             run: function() {
2079                 for (let e of Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.colliders._active.filter(e => e.callbackContext?.toString().includes("invulnerableTime"))) e.collideCallback = () => {}
2080             }
2081         }, {
2082             name: "Magnet",
2083             description: "Pulls all xp towards you",
2084             run: function() {
2085                 Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.colliders._active.find(e => e.collideCallback?.toString().includes("magnetTime")).collideCallback({
2086                     active: !0
2087                 }, {
2088                     active: !0,
2089                     setActive() {},
2090                     setVisible() {}
2091                 })
2092             }
2093         }, {
2094             name: "Max Current Abilities",
2095             description: "Maxes out all your current abilities",
2096             run: function() {
2097                 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2098                 for (var [t, a] of Object.entries(e.state.abilities))
2099                     for (let o = 0; o < 10 - a; o++) e.game.current.scene.scenes[0].game.events.emit("level up", t, e.state.abilities[t]++);
2100                 e.setState({
2101                     level: e.game.current.scene.scenes[0].level = [1, 3, 5, 10, 15, 25, 35].sort((t, a) => Math.abs(t - e.state.level) - Math.abs(a - e.state.level))[0] - 1
2102                 })
2103             }
2104         }, {
2105             name: "Next Level",
2106             description: "Skips to the next level",
2107             run: function() {
2108                 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode,
2109                     {
2110                         object1: t,
2111                         object2: a
2112                     } = e.game.current.scene.scenes[0].physics.world.colliders._active.find(e => e.collideCallback?.toString().includes('emit("xp"'));
2113                 a.get().spawn(t.x, t.y, (1 === (a = e.state.level) ? 1 : a < 5 ? 5 : a < 10 ? 10 : a < 20 ? 20 : a < 30 ? 30 : a < 40 ? 40 : a < 50 ? 50 : 100) - e.xp)
2114             }
2115         }, {
2116             name: "Remove Obstacles",
2117             description: "Removes all rocks and obstacles",
2118             run: function() {
2119                 Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.bodies.entries.forEach(e => {
2120                     try {
2121                         e.gameObject.frame.texture.key.includes("obstacle") && e.gameObject.destroy()
2122                     } catch {}
2123                 })
2124             }
2125         }, {
2126             name: "Kill Enemies",
2127             description: "Kills all current enemies",
2128             run: function() {
2129                 Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.bodies.entries.forEach(e => e?.gameObject?.receiveDamage?.(e.gameObject.hp, 1))
2130             }
2131         }, {
2132             name: "Reset Health",
2133             description: "Resets health and gives invincibility for 3 seconds",
2134             run: function() {
2135                 Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].game.events._events.respawn.fn()
2136             }
2137         }, {
2138             name: "Crash Host (Brawl)",
2139             description: "Crashes the Host's Game for Monster Brawl",
2140             run: function() {
2141                 function reactHandler() {
2142                     return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
2143                 }
2145                 function setv(args) {
2146                     reactHandler().stateNode.props.liveGameController.setVal({
2147                         path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2148                         val: args.slice(1, args.length).join(" ")
2149                     });
2150                 }
2152                 setv(['xp/t', 't']);
2153             }
2154         }, {
2155             name: "Set XP",
2156             description: "Sets amount of XP",
2157             inputs: [{
2158                 name: "XP",
2159                 type: "number"
2160             }],
2161             run: function(e) {
2162                 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2163                 t.setState({
2164                     xp: e,
2165                     totalXp: e
2166                 }), t.xp = e, t.totalXp = e, t.props?.liveGameController.setVal({
2167                     path: "c/".concat(t.props.client.name),
2168                     val: {
2169                         b: t.props.client.blook,
2170                         xp: e
2171                     }
2172                 })
2173             }
2174         }, {
2175             name: "Set Level",
2176             description: "Sets your level",
2177             inputs: [{
2178                 name: "XP",
2179                 type: "number"
2180             }],
2181             run: function(e) {
2182                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2183                     level: e
2184                 })
2185             }
2186         }],
2187         cafe: [{
2188             name: "Max Items",
2189             description: "Maxes out items in the shop (Only usable in the shop)",
2190             run: function() {
2191                 var e = document.createElement("iframe");
2192                 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), "/cafe/shop" !== window.location.pathname ? alert("This can only be run in the shop") : (e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode).setState({
2193                     items: Object.fromEntries(Object.entries(e.state.items).map(e => [e[0], 5]))
2194                 })
2195             }
2196         }, {
2197             name: "Remove Customers",
2198             description: "Skips the current customers (Not usable in the shop)",
2199             run: function() {
2200                 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2201                 e.state.customers.forEach((t, a) => Object.keys(t).length && e.removeCustomer(a, !0))
2202             }
2203         }, {
2204             name: "Reset Abilities",
2205             description: "Resets used abilities in shop (Only usable in the shop)",
2206             run: function() {
2207                 var e = document.createElement("iframe");
2208                 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), "/cafe/shop" !== window.location.pathname ? alert("This can only be run in the shop") : (e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode).setState({
2209                     abilities: Object.fromEntries(Object.entries(e.state.abilities).map(e => [e[0], 5]))
2210                 })
2211             }
2212         }, {
2213             name: "Set Cash",
2214             description: "Sets cafe cash",
2215             inputs: [{
2216                 name: "Amount",
2217                 type: "number"
2218             }],
2219             run: function(e) {
2220                 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2221                 t.setState({
2222                     cafeCash: e
2223                 }), t.props.liveGameController.setVal({
2224                     path: "c/" + t.props.client.name,
2225                     val: {
2226                         b: t.props.client.blook,
2227                         ca: e
2228                     }
2229                 })
2230             }
2231         }, {
2232             name: "Spam Attack Player",
2233             description: "Attacks the player to make the game unplayable",
2234             inputs: [{
2235                 name: "Player",
2236                 type: "options",
2237                 options() {
2238                     let {
2239                         stateNode: e
2240                     } = Object.values(function e(t = document.querySelector("body>div")) {
2241                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2242                     }())[1].children[0]._owner;
2243                     return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
2244                 }
2245             }],
2246             type: "toggle",
2247             enabled: false,
2248             data: null,
2249             run: function(name) {
2250                 if (this.enabled) {
2251                     this.enabled = false;
2252                     clearInterval(this.data);
2253                     this.data = null;
2254                 } else {
2255                     this.enabled = true;
2257                     function reactHandler() {
2258                         return Object.values(document.querySelector('body div[class*="_body"]'))[1].children[0]._owner;
2259                     }
2261                     var action = name + ":inspect";
2263                     function spamAction() {
2264                         var handler = reactHandler();
2265                         if (handler && handler.stateNode && handler.stateNode.props && handler.stateNode.props.liveGameController) {
2266                             handler.stateNode.props.liveGameController.setVal({
2267                                 id: handler.stateNode.props.client.hostId,
2268                                 path: "c/" + handler.stateNode.props.client.name + "/tat",
2269                                 val: action
2270                             });
2271                         }
2272                     }
2274                     this.data = setInterval(spamAction, 50);
2275                 }
2276             }
2277         }, {
2278             name: "Attack Player",
2279             description: "Sends the player a health inspection",
2280             inputs: [{
2281                 name: "Player's Name",
2282                 type: "text"
2283             }],
2284             run: (function(targetPlayer) {
2285                 function reactHandler() {
2286                     return Object.values(document.querySelector('body div[class*="_body"]'))[1].children[0]._owner;
2287                 }
2289                 reactHandler().stateNode.props.liveGameController.setVal({
2290                     id: reactHandler().stateNode.props.client.hostId,
2291                     path: "c/" + reactHandler().stateNode.props.client.name + "/tat",
2292                     val: targetPlayer + ":inspect"
2293                 });
2294             })
2295         }, {
2296             name: "Tax Player",
2297             description: "Makes a player pay tax",
2298             inputs: [{
2299                 name: "Player's Name",
2300                 type: "text"
2301             }],
2302             run: function(playerName) {
2303                 function reactHandler() {
2304                     return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
2305                 }
2307                 function setv(args) {
2308                     reactHandler().stateNode.props.liveGameController.setVal({
2309                         path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2310                         val: args.slice(1, args.length).join(" ")
2311                     });
2312                 }
2314                 function taxPlayer() {
2315                     if (playerName) {
2316                         setv(['tat', playerName + ':tax']);
2317                     } else {
2318                         console.log("No player name entered. Operation cancelled.");
2319                     }
2320                 }
2322                 taxPlayer();
2323             }
2324         }, {
2325             name: "Stock Food",
2326             description: "Stocks all food to 99 (Not usable in the shop)",
2327             run: function() {
2328                 var e = document.createElement("iframe");
2329                 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), "/cafe" !== window.location.pathname ? alert("This can't be run in the shop") : (e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode).setState({
2330                     foods: e.state.foods.map(e => ({
2331                         ...e,
2332                         stock: 99,
2333                         level: 5
2334                     }))
2335                 })
2336             }
2337         }],
2338         crypto: [{
2339             name: "Choice ESP",
2340             description: "Shows what each choice will give you",
2341             type: "toggle",
2342             enabled: !1,
2343             data: null,
2344             run: function() {
2345                 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
2346                     let {
2347                         stateNode: e
2348                     } = Object.values(function e(t = document.querySelector("body>div")) {
2349                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2350                     }())[1].children[0]._owner, {
2351                         text: t
2352                     } = e.state.choices[0], a = document.querySelector("[class^=styles__feedbackContainer___]");
2353                     if (a.children.length <= 4) {
2354                         let o = document.createElement("div");
2355                         o.style.color = "white", o.style.fontFamily = "Inconsolata,Helvetica,monospace,sans-serif", o.style.fontSize = "2em", o.style.display = "flex", o.style.justifyContent = "center", o.style.marginTop = "675px", o.innerText = t, a.append(o)
2356                     }
2357                 }, 50))
2358             }
2359         }, {
2360             name: "Password ESP",
2361             description: "Highlights the wrong passwords",
2362             type: "toggle",
2363             enabled: !1,
2364             data: null,
2365             run: function() {
2366                 try {
2367                     let e = this;
2368                     e.enabled ? (e.enabled = !1, clearInterval(e.data), e.data = null) : (e.enabled = !0, e.data = setInterval(() => {
2369                         let {
2370                             state: e
2371                         } = Object.values(function e(t = document.querySelector("#app > div > div")) {
2372                             return Object.values(t)[1]?.children?.[1]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2373                         }())[1].children[1]._owner.stateNode;
2374                         "hack" === e.stage && Array.from(document.querySelectorAll('[role="button"]._button_mrhfb_157')).forEach(t => {
2375                             t.textContent.trim() !== e.correctPassword.trim() ? (t.style.outlineColor = "rgba(255, 64, 64, 0.8)", t.style.backgroundColor = "rgba(255, 64, 64, 0.8)", t.style.textShadow = "0 0 1px #f33") : (t.style.outlineColor = "", t.style.backgroundColor = "", t.style.textShadow = "")
2376                         })
2377                     }, 50))
2378                 } catch (t) {
2379                     console.error("An error occurred:", t)
2380                 }
2381             }
2382         }, {
2383             name: "Always Triple",
2384             description: "Always get triple crypto",
2385             type: "toggle",
2386             enabled: !1,
2387             data: null,
2388             run: function() {
2389                 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2390                     choices: [{
2391                         type: "mult",
2392                         val: 3,
2393                         rate: .075,
2394                         blook: "Brainy Bot",
2395                         text: "Triple Crypto"
2396                     }]
2397                 }), 50))
2398             }
2399         }, {
2400             name: "Always Quintuple",
2401             description: "Always get quintuple crypto",
2402             type: "toggle",
2403             enabled: !1,
2404             data: null,
2405             run: function() {
2406                 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2407                     choices: [{
2408                         type: "mult",
2409                         val: 5,
2410                         rate: .075,
2411                         blook: "Ice Elemental",
2412                         text: "Quintuple Crypto"
2413                     }]
2414                 }), 50))
2415             }
2416         }, {
2417             name: "Always Hack",
2418             description: "Always get hack",
2419             type: "toggle",
2420             enabled: !1,
2421             data: null,
2422             run: function() {
2423                 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2424                     choices: [{
2425                         type: "hack",
2426                         val: 3,
2427                         rate: .075,
2428                         blook: "Mega Bot",
2429                         text: "HACK"
2430                     }]
2431                 }), 50))
2432             }
2433         }, {
2434             name: "Crash Password",
2435             description: "Crashes other players when they attempt to hack you",
2436             type: "toggle",
2437             enabled: !1,
2438             data: null,
2439             run: function() {
2440                 var e = Object.values(function e(t = document.querySelector("#app")) {
2441                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2442                 }())[1].children[0]._owner.stateNode;
2443                 if (this.enabled) this.enabled = !1, clearInterval(this.data), this.data = null, e.props.liveGameController.setVal({
2444                     path: `c/${e.props.client.name}/p`,
2445                     val: e.state?.password
2446                 });
2447                 else {
2448                     this.enabled = !0;
2449                     let t = () => {
2450                         e.props.liveGameController.setVal({
2451                             path: `c/${e.props.client.name}/p/toString`,
2452                             val: "crash"
2453                         })
2454                     };
2455                     this.data = setInterval(t, 25)
2456                 }
2457             }
2458         }, {
2459             name: "Set Freeze Password",
2460             description: "Freezes other players when they attempt to hack you",
2461             type: "toggle",
2462             enabled: !1,
2463             data: null,
2464             run: function() {
2465                 const encodedChars = [
2466                     '\\u2f9f', '\\u4fff', '\\u4f52', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u4FF1', '\\u4FF2'
2467                 ];
2469                 const chars = encodedChars.map(char => eval(`"${char}"`));
2471                 function makeLongText() {
2472                     return new Array(3e+6).fill().map(e => chars[Math.floor(Math.random() * chars.length)]).join("");
2473                 }
2475                 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2477                 if (this.enabled) {
2478                     this.enabled = !1;
2479                     clearInterval(this.data);
2480                     this.data = null;
2481                     t.setState({
2482                         password: ''
2483                     });
2484                     t.props.liveGameController.setVal({
2485                         path: "c/".concat(t.props.client.name),
2486                         val: {
2487                             b: t.props.client.blook,
2488                             p: '',
2489                             cr: t.state.crypto
2490                         }
2491                     });
2492                 } else {
2493                     this.enabled = !0;
2494                     let lagFunction = () => {
2495                         var e = makeLongText();
2496                         t.setState({
2497                             password: e
2498                         });
2499                         t.props.liveGameController.setVal({
2500                             path: "c/".concat(t.props.client.name),
2501                             val: {
2502                                 b: t.props.client.blook,
2503                                 p: e,
2504                                 cr: t.state.crypto
2505                             }
2506                         });
2507                     };
2508                     this.data = setInterval(lagFunction, 25);
2509                 }
2510             }
2511         }, {
2512             name: "Auto Guess",
2513             description: "Automatically performs the hack for you",
2514             type: "toggle",
2515             enabled: !1,
2516             data: null,
2517             run: function() {
2518                 try {
2519                     let e = this;
2520                     e.enabled ? (e.enabled = !1, clearInterval(e.data), e.data = null) : (e.enabled = !0, e.data = setInterval(() => {
2521                         if ("hack" === ("hack" === window.location.pathname.split("/")[2] && "hack")) {
2522                             let {
2523                                 stage: e,
2524                                 correctPassword: t
2525                             } = Object.values(document.querySelector("#app > div > div"))[1].children[1]._owner.stateNode.state;
2526                             "hack" === e && Array.from(document.querySelectorAll("div")).filter(e => e.innerHTML === t)[0].click()
2527                         }
2528                     }, 50))
2529                 } catch (t) {
2530                     console.error("An error occurred:", t)
2531                 }
2532             }
2533         }, {
2534             name: "Set Host Screen Green",
2535             description: "Makes the whole screen filled with text",
2536             type: "toggle",
2537             enabled: !1,
2538             data: null,
2539             run: function() {
2540                 var a = Object.values(function e(t = document.querySelector("#app")) {
2541                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2542                 }())[1].children[0]._owner.stateNode;
2544                 if (this.enabled) {
2545                     this.enabled = !1;
2546                     clearInterval(this.data);
2547                     this.data = null;
2548                     a.props.liveGameController.setVal({
2549                         path: `c/${a.props.client.name}/cr`,
2550                         val: ""
2551                     });
2552                 } else {
2553                     this.enabled = !0;
2554                     let t = () => {
2555                         a.props.liveGameController.setVal({
2556                             path: `c/${a.props.client.name}/cr`,
2557                             val: `9999999999999999999999999999999999999999999999${new Array(999).fill("\u0e47".repeat(70)).join(" ")}`
2558                         });
2559                     };
2560                     this.data = setInterval(t, 25);
2561                 }
2562             }
2563         }, {
2564             name: "Remove Hack",
2565             description: "Removes an attacking hack",
2566             run: function() {
2567                 Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode.setState({
2568                     hack: ""
2569                 })
2570             }
2571         }, {
2572             name: "Crash Host (Crypto)",
2573             description: "Crashes the Host's Game for Crypto Hack",
2574             run: function() {
2575                 function reactHandler() {
2576                     return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
2577                 }
2579                 function setv(args) {
2580                     reactHandler().stateNode.props.liveGameController.setVal({
2581                         path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2582                         val: args.slice(1, args.length).join(" ")
2583                     });
2584                 }
2586                 setv(['cr/t', 't']);
2587             }
2588         }, {
2589             name: "Set Crypto",
2590             description: "Sets crypto",
2591             inputs: [{
2592                 name: "Amount",
2593                 type: "number"
2594             }],
2595             run: function(e) {
2596                 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2597                 t.setState({
2598                     crypto: e,
2599                     crypto2: e
2600                 }), t.props.liveGameController.setVal({
2601                     path: "c/" + t.props.client.name + "/cr",
2602                     val: e
2603                 })
2604             }
2605         }, {
2606             name: "Set Password",
2607             description: "Sets hacking password",
2608             inputs: [{
2609                 name: "Custom Password",
2610                 type: "string"
2611             }],
2612             run: function(e) {
2613                 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2614                 t.setState({
2615                     password: e
2616                 }), t.props.liveGameController.setVal({
2617                     path: "c/" + t.props.client.name + "/p",
2618                     val: e
2619                 })
2620             }
2621         }, {
2622             name: "Set Host Screen Text",
2623             description: "Makes the whole screen filled with text",
2624             inputs: [{
2625                 name: "Text",
2626                 type: "text",
2627             }],
2628             run: function(e) {
2629                 let t = document.createElement("iframe");
2630                 document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
2631                 var a = Object.values(function e(t = document.querySelector("#app")) {
2632                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2633                 }())[1].children[0]._owner.stateNode;
2634                 a.props.liveGameController.setVal({
2635                     path: `c/${a.props.client.name}/cr`,
2636                     val: `9999999999999999999999999999999999999999999999${new Array(999).fill(e).join(" ")}`
2637                 })
2638             }
2639         }, {
2640             name: "Steal Player's Crypto",
2641             description: "Steals all of someone's crypto",
2642             inputs: [{
2643                 name: "Player",
2644                 type: "options",
2645                 options() {
2646                     let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2647                     return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
2648                 }
2649             }],
2650             run: function(e) {
2651                 let t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2652                 t.props.liveGameController.getDatabaseVal("c", a => {
2653                     var o;
2654                     a && Object.keys(a).map(e => e.toLowerCase()).includes(e.toLowerCase()) && ([a, {
2655                         cr: o
2656                     }] = Object.entries(a).find(([t]) => t.toLowerCase() == e.toLowerCase()), t.setState({
2657                         crypto: t.state.crypto + o,
2658                         crypto2: t.state.crypto + o
2659                     }), t.props.liveGameController.setVal({
2660                         path: "c/".concat(t.props.client.name),
2661                         val: {
2662                             b: t.props.client.blook,
2663                             p: t.state.password,
2664                             cr: t.state.crypto + o,
2665                             tat: a + ":" + o
2666                         }
2667                     }))
2668                 })
2669             }
2670         }, {
2671             name: "Get Player's Password",
2672             description: "Shows the password of any player in an alert box",
2673             inputs: [{
2674                 name: "Player",
2675                 type: "options",
2676                 options() {
2677                     let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2678                     return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
2679                 }
2680             }],
2681             run: function(player) {
2682                 let i = document.createElement('iframe');
2683                 document.body.append(i);
2684                 const alert = i.contentWindow.alert.bind(window);
2685                 i.remove();
2686                 var t = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
2687                 t.props.liveGameController.getDatabaseVal("c", e => {
2688                     alert(e?.[player]?.p);
2689                 });
2690             }
2691         }, {
2692             name: "Flood Alert Box",
2693             description: "Makes the alert box filled with text",
2694             inputs: [{
2695                 name: "Text",
2696                 type: "text"
2697             }],
2698             run: function(userInput) {
2699                 function getReactOwner() {
2700                     return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
2701                 }
2703                 function repeatText(text, times) {
2704                     return new Array(times).fill(text).join(" ");
2705                 }
2707                 function setValForPlayer() {
2708                     getReactOwner().stateNode.props.liveGameController.getDatabaseVal("c/").then(data => {
2709                         if (data != null) {
2711                             const playerName = Object.keys(data)[0];
2713                             if (userInput) {
2715                                 const id = "1,723,583,989,363";
2716                                 const repeatedText = repeatText(userInput, 1700);
2717                                 const finalText = `${id}${repeatedText}`;
2719                                 setv(['tat', `${playerName}:${finalText}`]);
2720                             } else {
2721                                 console.log("No text entered. Operation cancelled.");
2722                             }
2723                         } else {
2724                             console.log("Player not found!");
2725                         }
2726                     });
2727                 }
2729                 function setv(args) {
2730                     getReactOwner().stateNode.props.liveGameController.setVal({
2731                         path: "c/" + getReactOwner().stateNode.props.client.name + "/" + args[0],
2732                         val: args.slice(1, args.length).join(" ")
2733                     });
2734                 }
2736                 setValForPlayer();
2737             }
2738         }, {
2739             name: "Send Ad Text",
2740             description: "Sends a load of text to another player (This will override your blook!)",
2741             inputs: [{
2742                 name: "Player",
2743                 type: "options",
2744                 options() {
2745                     let {
2746                         stateNode: e
2747                     } = Object.values(function e(t = document.querySelector("body>div")) {
2748                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
2749                     }())[1].children[0]._owner;
2750                     return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]));
2751                 }
2752             }, {
2753                 name: "Text"
2754             }],
2755             run: async function(player, e) {
2756                 let {
2757                     props: t2
2758                 } = Object.values(function e(t = document.querySelector("body>div")) {
2759                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
2760                 }())[1].children[0]._owner.stateNode;
2762                 let repeatedText = `Dog:${Array(500).fill(e).join(' ')}`;
2763                 t2.client.blook = repeatedText;
2764                 t2.liveGameController.setVal({
2765                     path: `c/${t2.client.name}/b`,
2766                     val: repeatedText
2767                 });
2768                 t2.liveGameController.setVal({
2769                     path: `c/${t2.client.name}/tat`,
2770                     val: `${player}:196`
2771                 });
2772             }
2773         }],
2774         defense: [{
2775             name: "Earthquake",
2776             description: "Shuffles around towers",
2777             run: function() {
2778                 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode,
2779                     t = (e.setState({
2780                         eventName: "Earthquake",
2781                         event: {
2782                             short: "e",
2783                             color: "#805500",
2784                             icon: "fas fa-mountain",
2785                             desc: "All of your towers get mixed up",
2786                             rate: .02
2787                         },
2788                         buyTowerName: "",
2789                         buyTower: {}
2790                     }, () => e.eventTimeout = setTimeout(() => e.setState({
2791                         event: {},
2792                         eventName: ""
2793                     }), 6e3)), e.tiles.forEach(e => e.forEach((t, a) => 3 === t && (e[a] = 0))), e.tiles.flatMap((e, t) => e.map((e, a) => 0 === e && {
2794                         x: a,
2795                         y: t
2796                     })).filter(Boolean).sort(() => .5 - Math.random()));
2797                 e.towers.forEach(a => {
2798                     var {
2799                         x: o,
2800                         y: r
2801                     } = t.shift();
2802                     a.move(o, r, e.tileSize), e.tiles[r][o] = 3
2803                 })
2804             }
2805         }, {
2806             name: "Max Tower Stats",
2807             description: "Makes all placed towers overpowered",
2808             run: function() {
2809                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.towers.forEach(e => {
2810                     e.range = 100, e.fullCd = e.cd = 0, e.damage = 1e6
2811                 })
2812             }
2813         }, {
2814             name: "Remove Ducks",
2815             description: "Removes ducks",
2816             run: function() {
2817                 let {
2818                     ducks: e,
2819                     tiles: t
2820                 } = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2821                 e.forEach(e => {
2822                     t[e.y][e.x] = 0
2823                 }), e.length = 0
2824             }
2825         }, {
2826             name: "Place Blooks Anywhere",
2827             description: "Be able to place your blooks anywhere",
2828             run: function() {
2829                 for (var i = 0; i < 10; i++) {
2830                     Object.values(document.querySelector("#app > div > div"))[1].children[1]._owner.stateNode.tiles[i] = Array(10).fill(0);
2831                 }
2832             }
2833         }, {
2834             name: "Remove Enemies",
2835             description: "Removes all the enemies",
2836             run: function() {
2837                 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2838                 e.enemies = e.futureEnemies = []
2839             }
2840         }, {
2841             name: "Remove Obstacles",
2842             description: "Lets you place towers anywhere",
2843             run: function() {
2844                 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2845                 e.tiles = e.tiles.map(e => e.fill(0))
2846             }
2847         }, {
2848             name: "Set Damage",
2849             description: "Sets damage",
2850             inputs: [{
2851                 name: "Damage",
2852                 type: "number"
2853             }],
2854             run: function(e) {
2855                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.dmg = e
2856             }
2857         }, {
2858             name: "Set Round",
2859             description: "Sets the current round",
2860             inputs: [{
2861                 name: "Round",
2862                 type: "number"
2863             }],
2864             run: function(e) {
2865                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2866                     round: e
2867                 })
2868             }
2869         }, {
2870             name: "Set Tokens",
2871             description: "Sets the amount of tokens you have",
2872             inputs: [{
2873                 name: "Tokens",
2874                 type: "number"
2875             }],
2876             run: function(e) {
2877                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2878                     tokens: e
2879                 })
2880             }
2881         }],
2882         defense2: [{
2883             name: "Max Tower Stats",
2884             description: "Makes all placed towers overpowered",
2885             run: function() {
2886                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.state.towers.forEach(e => {
2887                     if (e.stats.dmg = 1e6, e.stats.fireRate = 50, e.stats.ghostDetect = !0, e.stats.maxTargets = 1e6, e.stats.numProjectiles &&= 100, e.stats.range = 100, e.stats.auraBuffs)
2888                         for (let t in e.stats.auraBuffs) e.stats.auraBuffs[t] *= 100
2889                 })
2890             }
2891         }, {
2892             name: "Kill Enemies",
2893             description: "Kills all the enemies",
2894             run: function() {
2895                 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2896                 e.game.current.scene.scenes[0].enemyQueue.length = 0, e.game.current.scene.scenes[0].physics.world.bodies.entries.forEach(e => e?.gameObject?.receiveDamage?.(e.gameObject.hp, 1))
2897             }
2898         }, {
2899             name: "Crash Host (Defense 2)",
2900             description: "Crashes the Host's Game for Tower Defense 2 (May take a few tries)",
2901             run: function() {
2902                 function reactHandler() {
2903                     return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
2904                 }
2906                 function setv(args) {
2907                     reactHandler().stateNode.props.liveGameController.setVal({
2908                         path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2909                         val: args.slice(1, args.length).join(" ")
2910                     });
2911                 }
2913                 setv(['d/t', 't']);
2914             }
2915         }, {
2916             name: "Set Coins",
2917             description: "Sets coins",
2918             inputs: [{
2919                 name: "Coins",
2920                 type: "number"
2921             }],
2922             run: function(e) {
2923                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2924                     coins: e
2925                 })
2926             }
2927         }, {
2928             name: "Set Health",
2929             description: "Sets the amount of health you have",
2930             inputs: [{
2931                 name: "Health",
2932                 type: "number"
2933             }],
2934             run: function(e) {
2935                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2936                     health: e
2937                 })
2938             }
2939         }, {
2940             name: "Set Round",
2941             description: "Sets the current round",
2942             inputs: [{
2943                 name: "Round",
2944                 type: "number"
2945             }],
2946             run: function(e) {
2947                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2948                     round: e
2949                 })
2950             }
2951         }],
2952         dinos: [{
2953             name: "Auto Choose",
2954             description: "Automatically choose the best fossil when excavating",
2955             type: "toggle",
2956             enabled: false,
2957             data: null,
2958             run: function() {
2959                 if (this.enabled) {
2960                     this.enabled = false;
2961                     clearInterval(this.data);
2962                     this.data = null;
2963                 } else {
2964                     this.enabled = true;
2965                     this.data = setInterval(() => {
2966                         const cheat = (async () => {
2967                             function rand(e, t) {
2968                                 const s = [];
2969                                 while (s.length < t) {
2970                                     const i = Math.random();
2971                                     let r = 0,
2972                                         g = null;
2973                                     for (let o = 0; o < e.length; o++) {
2974                                         r += e[o].rate;
2975                                         if (r >= i) {
2976                                             g = e[o];
2977                                             break;
2978                                         }
2979                                     }
2980                                     g && !s.includes(g) && s.push(g);
2981                                 }
2982                                 return s;
2983                             }
2985                             try {
2986                                 let {
2987                                     stateNode
2988                                 } = Object.values((function react(r = document.querySelector("body>div")) {
2989                                     return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
2990                                 })())[1].children[0]._owner;
2992                                 if (stateNode.state.stage === "excavate") {
2993                                     stateNode.state.choices.length || (stateNode.state.choices = rand([{
2994                                             type: "fossil",
2995                                             val: 10,
2996                                             rate: .1,
2997                                             blook: "Amber"
2998                                         },
2999                                         {
3000                                             type: "fossil",
3001                                             val: 25,
3002                                             rate: .1,
3003                                             blook: "Dino Egg"
3004                                         },
3005                                         {
3006                                             type: "fossil",
3007                                             val: 50,
3008                                             rate: .175,
3009                                             blook: "Dino Fossil"
3010                                         },
3011                                         {
3012                                             type: "fossil",
3013                                             val: 75,
3014                                             rate: .175,
3015                                             blook: "Stegosaurus"
3016                                         },
3017                                         {
3018                                             type: "fossil",
3019                                             val: 100,
3020                                             rate: .15,
3021                                             blook: "Velociraptor"
3022                                         },
3023                                         {
3024                                             type: "fossil",
3025                                             val: 125,
3026                                             rate: .125,
3027                                             blook: "Brontosaurus"
3028                                         },
3029                                         {
3030                                             type: "fossil",
3031                                             val: 250,
3032                                             rate: .075,
3033                                             blook: "Triceratops"
3034                                         },
3035                                         {
3036                                             type: "fossil",
3037                                             val: 500,
3038                                             rate: .025,
3039                                             blook: "Tyrannosaurus Rex"
3040                                         },
3041                                         {
3042                                             type: "mult",
3043                                             val: 1.5,
3044                                             rate: .05
3045                                         },
3046                                         {
3047                                             type: "mult",
3048                                             val: 2,
3049                                             rate: .025
3050                                         }
3051                                     ], 3));
3053                                     let max = 0,
3054                                         index = -1;
3055                                     for (let i = 0; i < stateNode.state.choices.length; i++) {
3056                                         const {
3057                                             type,
3058                                             val
3059                                         } = stateNode.state.choices[i];
3060                                         const value = (type == "fossil" ? stateNode.state.fossils + val * stateNode.state.fossilMult : stateNode.state.fossils * val) || 0;
3061                                         if (value <= max && type != "mult") continue;
3062                                         max = value;
3063                                         index = i + 1;
3064                                     }
3066                                     document.querySelector('div[class*=rockRow] > div[role="button"]:nth-child(' + index + ')').click();
3067                                 }
3068                             } catch {}
3069                         });
3070                         cheat();
3071                     }, 50);
3072                 }
3073             }
3074         }, {
3075             name: "Rock ESP",
3076             description: "Shows what is under the rocks",
3077             type: "toggle",
3078             enabled: !1,
3079             data: null,
3080             run: function() {
3081                 let e = ["⁰", "\xb9", "\xb2", "\xb3", "⁴", "⁵", "⁶", "⁷", "⁸", "⁹"],
3082                     t = t => {
3083                         let a = "";
3084                         for (; t > 0;) a = e[t % parseInt("10")] + a, t = ~~(t / 10);
3085                         return a
3086                     },
3087                     a = e => {
3088                         let a = e.toString();
3089                         if (e >= 1e3) {
3090                             let o = ["", "K", "M", "B", "T"],
3091                                 r = ~~((digits(e) - 1) / 3);
3092                             if (r < o.length) {
3093                                 let i = "";
3094                                 for (let n = 3; n >= 1; n--) {
3095                                     i = parseFloat((0 !== r ? e / 1e3 ** r : e).toPrecision(n)).toString();
3096                                     let s = i.replace(/[^a-zA-Z 0-9]+/g, "");
3097                                     if (s.length <= 3) break
3098                                 }
3099                                 Number(i) % 1 != 0 && (i = Number(i).toFixed(1)), a = i + o[r]
3100                             } else {
3101                                 let l = e,
3102                                     c = 0;
3103                                 for (; l >= 100;) l = Math.floor(l / 10), c += 1;
3104                                 a = `${l/10} \xd7 10${t(c+1)}`
3105                             }
3106                         }
3107                         return a
3108                     };
3109                 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
3110                     let {
3111                         stateNode: e
3112                     } = Object.values(function e(t = document.querySelector("body>div")) {
3113                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
3114                     }())[1].children[0]._owner, t = [...document.querySelector('[class*="rockButton"]').parentElement.children];
3115                     t.every(e => e.querySelector("div")) || e.setState({
3116                         choices: [{
3117                             type: "fossil",
3118                             val: 10,
3119                             rate: .1,
3120                             blook: "Amber"
3121                         }, {
3122                             type: "fossil",
3123                             val: 25,
3124                             rate: .1,
3125                             blook: "Dino Egg"
3126                         }, {
3127                             type: "fossil",
3128                             val: 50,
3129                             rate: .175,
3130                             blook: "Dino Fossil"
3131                         }, {
3132                             type: "fossil",
3133                             val: 75,
3134                             rate: .175,
3135                             blook: "Stegosaurus"
3136                         }, {
3137                             type: "fossil",
3138                             val: 100,
3139                             rate: .15,
3140                             blook: "Velociraptor"
3141                         }, {
3142                             type: "fossil",
3143                             val: 125,
3144                             rate: .125,
3145                             blook: "Brontosaurus"
3146                         }, {
3147                             type: "fossil",
3148                             val: 250,
3149                             rate: .075,
3150                             blook: "Triceratops"
3151                         }, {
3152                             type: "fossil",
3153                             val: 500,
3154                             rate: .025,
3155                             blook: "Tyrannosaurus Rex"
3156                         }, {
3157                             type: "mult",
3158                             val: 1.5,
3159                             rate: .05
3160                         }, {
3161                             type: "mult",
3162                             val: 2,
3163                             rate: .025
3164                         }].sort(() => .5 - Math.random()).slice(0, 3)
3165                     }, () => {
3166                         t.forEach((t, o) => {
3167                             let r = e.state.choices[o];
3168                             t.querySelector("div") && t.querySelector("div").remove();
3169                             let i = document.createElement("div");
3170                             i.style.color = "white", i.style.fontFamily = "Macondo", i.style.fontSize = "1em", i.style.display = "flex", i.style.justifyContent = "center", i.style.transform = "translateY(25px)", i.innerText = "fossil" === r.type ? `+${Math.round(r.val*e.state.fossilMult)>99999999?a(Math.round(r.val*e.state.fossilMult)):Math.round(r.val*e.state.fossilMult)} Fossils` : `x${r.val} Fossils Per Excavation`, t.append(i)
3171                         })
3172                     })
3173                 }, 50))
3174             }
3175         }, {
3176             name: "Set Fossils",
3177             description: "Sets the amount of fossils you have",
3178             inputs: [{
3179                 name: "Fossils",
3180                 type: "number"
3181             }],
3182             run: function(e) {
3183                 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
3184                 t.setState({
3185                     fossils: e
3186                 }), t.props.liveGameController.setVal({
3187                     path: "c/" + t.props.client.name,
3188                     val: {
3189                         b: t.props.client.blook,
3190                         f: e,
3191                         ic: t.state.isCheating
3192                     }
3193                 })
3194             }
3195         }, {
3196             name: "Set Multiplier",
3197             description: "Sets fossil multiplier",
3198             inputs: [{
3199                 name: "Multiplier",
3200                 type: "number"
3201             }],
3202             run: function(e) {
3203                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
3204                     fossilMult: e
3205                 })
3206             }
3207         }, {
3208             name: "Crash Host (Dino)",
3209             description: "Crashes the Host's Game for Deceptive Dinos",
3210             run: function() {
3211                 function reactHandler() {
3212                     return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
3213                 }
3215                 function setv(args) {
3216                     reactHandler().stateNode.props.liveGameController.setVal({
3217                         path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
3218                         val: args.slice(1, args.length).join(" ")
3219                     });
3220                 }
3222                 setv(['f/t', 't']);
3223             }
3224         }, {
3225             name: "Stop Cheating",
3226             description: "Undoes cheating so that you can't be caught",
3227             run: function() {
3228                 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
3229                 e.setState({
3230                     isCheating: !1
3231                 }), e.props.liveGameController.setVal({
3232                     path: `c/${e.props.client.name}/ic`,
3233                     val: !1
3234                 })
3235             }
3236         }],
3237         doom: [{
3238             name: "Fill Deck",
3239             description: "Fills your deck with every maxed out card and artifact (Only works on towers page)",
3240             run: function() {
3241                 let e = document.createElement("iframe");
3242                 if (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), "/tower/map" == window.location.pathname) {
3243                     let {
3244                         stateNode: t
3245                     } = Object.values(function e(t = document.querySelector("body>div")) {
3246                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
3247                     }())[1].children[0]._owner;
3248                     t.props.tower.artifacts = "Medical Kit|Fury Relic|Survival Guide|Steel Socks|Piggy Bank|Lucky Feather|Coupon|Cheese|Tasty Egg|Training Weights|Mighty Shield|Toxic Waste|Lifeline Totem|Cursed Hourglass|Band-Aid|Elder Coins|Captain's Anchor|Chess Pieces|Pink Hippo|Anorak's Wizard Cap|Dave's Doggo|Anubis' Obelisk|Farm Tractor|Magic Seedling|Just A Bone|Cozy Igloo|King's Crown|Sacred Scroll".split("|"), t.props.tower.cards = "Chick,\uD83C\uDF3D|Chicken,\uD83C\uDF3D|Cow,\uD83C\uDF3D|Goat,\uD83C\uDF3D|Horse,\uD83C\uDF3D|Pig,\uD83C\uDF3D|Sheep,\uD83C\uDF3D|Duck,\uD83C\uDF3D|Dog,\uD83C\uDF3D|Cat,\uD83D\uDC3E|Rabbit,\uD83D\uDC3E|Goldfish,\uD83D\uDC3E|Hamster,\uD83D\uDC3E|Turtle,\uD83D\uDC3E|Kitten,\uD83D\uDC3E|Puppy,\uD83D\uDC3E|Bear,\uD83C\uDF32|Moose,\uD83C\uDF32|Fox,\uD83C\uDF32|Raccoon,\uD83C\uDF32|Squirrel,\uD83C\uDF32|Owl,\uD83C\uDF32|Hedgehog,\uD83C\uDF32|Baby Penguin,❄️|Penguin,❄️|Arctic Fox,❄️|Snowy Owl,❄️|Polar Bear,❄️|Arctic Hare,❄️|Seal,❄️|Walrus,❄️|Tiger,\uD83C\uDF34|Panther,\uD83C\uDF34|Cockatoo,\uD83C\uDF34|Orangutan,\uD83C\uDF34|Anaconda,\uD83C\uDF34|Macaw,\uD83C\uDF34|Jaguar,\uD83C\uDF34|Capuchin,\uD83C\uDF34|Toucan,\uD83C\uDF34|Parrot,\uD83C\uDF34|Elf,⚔️|Witch,⚔️|Wizard,⚔️|Fairy,⚔️|Slime Monster,⚔️|Jester,⚔️|Dragon,⚔️|Unicorn,⚔️|Queen,⚔️|King,⚔️|Snow Globe,☃️|Holiday Gift,☃️|Hot Chocolate,☃️|Gingerbread Man,☃️|Gingerbread House,☃️|Holiday Wreath,☃️|Snowman,☃️|Santa Claus,☃️|Two of Spades,\uD83C\uDFF0|Eat Me,\uD83C\uDFF0|Drink Me,\uD83C\uDFF0|Alice,\uD83C\uDFF0|Queen of Hearts,\uD83C\uDFF0|Dormouse,\uD83C\uDFF0|White Rabbit,\uD83C\uDFF0|Cheshire Cat,\uD83C\uDFF0|Caterpillar,\uD83C\uDFF0|Mad Hatter,\uD83C\uDFF0|King of Hearts,\uD83C\uDFF0".split("|").map(e => {
3249                         let [t, a] = e.split(",");
3250                         return {
3251                             strength: 20,
3252                             charisma: 20,
3253                             wisdom: 20,
3254                             class: a,
3255                             blook: t
3256                         }
3257                     });
3258                     try {
3259                         t.props.addTowerNode()
3260                     } catch {}
3261                     t.setState({
3262                         showDeck: !1
3263                     })
3264                 } else alert("You need to be on the map to run this cheat!")
3265             }
3266         }, {
3267             name: "Max Cards",
3268             description: "Maxes out all the cards in your deck",
3269             run: function() {
3270                 var e = document.createElement("iframe");
3271                 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), "/tower/map" == window.location.pathname ? (e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode).props.tower.cards.forEach(e => {
3272                     e.strength = 20, e.charisma = 20, e.wisdom = 20
3273                 }) : alert("You need to be on the map to run this cheat!")
3274             }
3275         }, {
3276             name: "Max Health",
3277             description: "Fills the player's health",
3278             run: function() {
3279                 var e = document.createElement("iframe");
3280                 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), "/tower/battle" == window.location.pathname ? Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
3281                     myHealth: 100
3282                 }) : alert("You need to be in battle to run this cheat!")
3283             }
3284         }, {
3285             name: "Max Card Stats",
3286             description: "Maxes out player's current card (Only works on attribute select page)",
3287             run: function() {
3288                 var e = document.createElement("iframe"),
3289                     e = (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner).stateNode;
3290                 "select" !== e.state.phase ? alert("You must be on the attribute selection page!") : e.setState({
3291                     myCard: {
3292                         ...e.state.myCard,
3293                         strength: 20,
3294                         charisma: 20,
3295                         wisdom: 20
3296                     }
3297                 })
3298             }
3299         }, {
3300             name: "Min Enemy Stats",
3301             description: "Makes the enemy card stats all 0 (Only works on attribute select page)",
3302             run: function() {
3303                 var e = document.createElement("iframe"),
3304                     e = (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner).stateNode;
3305                 "select" !== e.state.phase ? alert("You must be on the attribute selection page!") : e.setState({
3306                     enemyCard: {
3307                         ...e.state.enemyCard,
3308                         strength: 0,
3309                         charisma: 0,
3310                         wisdom: 0
3311                     }
3312                 })
3313             }
3314         }, {
3315             name: "Set Coins",
3316             description: "Try's to set amount of tower coins you have",
3317             inputs: [{
3318                 name: "Coins",
3319                 type: "number"
3320             }],
3321             run: function(e) {
3322                 var t = document.createElement("iframe");
3323                 if (document.body.append(t), window.alert = t.contentWindow.prompt.bind(window), t.remove(), "/tower/battle" == window.location.pathname) {
3324                     var t = parseInt("0" + alert("How many coins would you like?")),
3325                         a = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
3326                     try {
3327                         a.props.setTowerCoins(t)
3328                     } catch {}
3329                 } else alert("You need to be in battle to run this cheat!")
3330             }
3331         }, {
3332             name: "Set Streak",
3333             description: "Sets your streak to the desired amount",
3334             inputs: [{
3335                 name: "Streak",
3336                 type: "number"
3337             }],
3338             run: function(e) {
3339                 var t = document.createElement("iframe");
3340                 document.body.append(t), window.alert = t.contentWindow.alert.bind(window), t.remove(), "/tower/battle" == window.location.pathname ? Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
3341                     myStreak: !0,
3342                     streak: e
3343                 }) : alert("You need to be in battle to run this cheat!")
3344             }
3345         }],
3346         factory: [{
3347             name: "Choose Blook",
3348             description: "Gives you a blook",
3349             inputs: [{
3350                 name: "Blook",
3351                 type: "options",
3352                 options: [{
3353                     name: "Chick",
3354                     color: "#ffcd05",
3355                     class: "\uD83C\uDF3D",
3356                     rarity: "Common",
3357                     cash: [3, 7, 65, 400, 2500],
3358                     time: [1, 1, 1, 1, 1],
3359                     price: [300, 3e3, 3e4, 2e5]
3360                 }, {
3361                     name: "Chicken",
3362                     color: "#ed1c24",
3363                     class: "\uD83C\uDF3D",
3364                     rarity: "Common",
3365                     cash: [10, 40, 200, 1400, 1e4],
3366                     time: [5, 4, 3, 2, 1],
3367                     price: [570, 4e3, 5e4, 8e5]
3368                 }, {
3369                     name: "Cow",
3370                     color: "#58595b",
3371                     class: "\uD83C\uDF3D",
3372                     rarity: "Common",
3373                     cash: [25, 75, 1500, 25e3, 25e4],
3374                     time: [15, 10, 10, 10, 5],
3375                     price: [500, 9500, 16e4, 4e6]
3376                 }, {
3377                     name: "Duck",
3378                     color: "#4ab96d",
3379                     class: "\uD83C\uDF3D",
3380                     rarity: "Common",
3381                     cash: [4, 24, 200, 3e3, 4e4],
3382                     time: [3, 3, 3, 3, 3],
3383                     price: [450, 4200, 7e4, 11e5]
3384                 }, {
3385                     name: "Goat",
3386                     color: "#c59a74",
3387                     class: "\uD83C\uDF3D",
3388                     rarity: "Common",
3389                     cash: [5, 28, 200, 1300, 12e3],
3390                     time: [3, 3, 2, 2, 2],
3391                     price: [500, 6400, 45e3, 5e5]
3392                 }, {
3393                     name: "Horse",
3394                     color: "#995b3c",
3395                     class: "\uD83C\uDF3D",
3396                     rarity: "Common",
3397                     cash: [5, 20, 270, 1800, 15e3],
3398                     time: [2, 2, 2, 2, 2],
3399                     price: [550, 8200, 65e3, 6e5]
3400                 }, {
3401                     name: "Pig",
3402                     color: "#f6a9cb",
3403                     class: "\uD83C\uDF3D",
3404                     rarity: "Common",
3405                     cash: [20, 50, 1300, 8e3, 8e4],
3406                     time: [7, 7, 7, 7, 5],
3407                     price: [400, 11e3, 8e4, 13e5]
3408                 }, {
3409                     name: "Sheep",
3410                     color: "#414042",
3411                     class: "\uD83C\uDF3D",
3412                     rarity: "Common",
3413                     cash: [6, 25, 250, 1500, 11e3],
3414                     time: [3, 3, 3, 2, 2],
3415                     price: [500, 5e3, 5e4, 43e4]
3416                 }, {
3417                     name: "Cat",
3418                     color: "#f49849",
3419                     class: "\uD83D\uDC3E",
3420                     rarity: "Common",
3421                     cash: [5, 18, 170, 1700, 13e3],
3422                     time: [2, 2, 2, 2, 2],
3423                     price: [480, 5500, 6e4, 5e5]
3424                 }, {
3425                     name: "Dog",
3426                     color: "#995b3c",
3427                     class: "\uD83D\uDC3E",
3428                     rarity: "Common",
3429                     cash: [7, 25, 220, 1900, 9e3],
3430                     time: [3, 3, 2, 2, 1],
3431                     price: [460, 6600, 7e4, 73e4]
3432                 }, {
3433                     name: "Goldfish",
3434                     color: "#f18221",
3435                     class: "\uD83D\uDC3E",
3436                     rarity: "Common",
3437                     cash: [5, 40, 350, 3500, 35e3],
3438                     time: [3, 3, 3, 3, 3],
3439                     price: [750, 7200, 84e3, 95e4]
3440                 }, {
3441                     name: "Rabbit",
3442                     color: "#e7bf9a",
3443                     class: "\uD83D\uDC3E",
3444                     rarity: "Common",
3445                     cash: [3, 18, 185, 800, 7e3],
3446                     time: [2, 2, 2, 1, 1],
3447                     price: [500, 5800, 56e3, 55e4]
3448                 }, {
3449                     name: "Hamster",
3450                     color: "#ce9176",
3451                     class: "\uD83D\uDC3E",
3452                     rarity: "Common",
3453                     cash: [10, 45, 450, 4500, 45e3],
3454                     time: [4, 4, 4, 4, 4],
3455                     price: [650, 6500, 8e4, 93e4]
3456                 }, {
3457                     name: "Turtle",
3458                     color: "#619a3c",
3459                     class: "\uD83D\uDC3E",
3460                     rarity: "Common",
3461                     cash: [23, 120, 1400, 15e3, 17e4],
3462                     time: [10, 10, 10, 10, 10],
3463                     price: [700, 8500, 11e4, 13e5]
3464                 }, {
3465                     name: "Puppy",
3466                     color: "#414042",
3467                     class: "\uD83D\uDC3E",
3468                     rarity: "Common",
3469                     cash: [4, 10, 75, 500, 3e3],
3470                     time: [1, 1, 1, 1, 1],
3471                     price: [450, 4e3, 35e3, 25e4]
3472                 }, {
3473                     name: "Kitten",
3474                     color: "#58595b",
3475                     class: "\uD83D\uDC3E",
3476                     rarity: "Common",
3477                     cash: [4, 8, 60, 400, 2e3],
3478                     time: [1, 1, 1, 1, 1],
3479                     price: [350, 3500, 26e3, 17e4]
3480                 }, {
3481                     name: "Bear",
3482                     color: "#995b3c",
3483                     class: "\uD83C\uDF32",
3484                     rarity: "Common",
3485                     cash: [12, 70, 550, 4500, 1e5],
3486                     time: [7, 7, 6, 5, 5],
3487                     price: [550, 5500, 63e3, 16e5]
3488                 }, {
3489                     name: "Moose",
3490                     color: "#995b3c",
3491                     class: "\uD83C\uDF32",
3492                     rarity: "Common",
3493                     cash: [8, 45, 400, 3500, 26e3],
3494                     time: [5, 5, 4, 4, 3],
3495                     price: [520, 6500, 58e3, 7e5]
3496                 }, {
3497                     name: "Fox",
3498                     color: "#f49849",
3499                     class: "\uD83C\uDF32",
3500                     rarity: "Common",
3501                     cash: [7, 15, 80, 550, 3e3],
3502                     time: [2, 2, 1, 1, 1],
3503                     price: [400, 4e3, 36e3, 24e4]
3504                 }, {
3505                     name: "Raccoon",
3506                     color: "#6d6e71",
3507                     class: "\uD83C\uDF32",
3508                     rarity: "Common",
3509                     cash: [5, 14, 185, 1900, 19e3],
3510                     time: [2, 2, 2, 2, 2],
3511                     price: [400, 5e3, 71e3, 8e5]
3512                 }, {
3513                     name: "Squirrel",
3514                     color: "#d25927",
3515                     class: "\uD83C\uDF32",
3516                     rarity: "Common",
3517                     cash: [3, 10, 65, 470, 2600],
3518                     time: [1, 1, 1, 1, 1],
3519                     price: [420, 3600, 32e3, 21e4]
3520                 }, {
3521                     name: "Owl",
3522                     color: "#594a42",
3523                     class: "\uD83C\uDF32",
3524                     rarity: "Common",
3525                     cash: [4, 17, 155, 1500, 15e3],
3526                     time: [2, 2, 2, 2, 2],
3527                     price: [500, 4800, 55e3, 58e4]
3528                 }, {
3529                     name: "Hedgehog",
3530                     color: "#3f312b",
3531                     class: "\uD83C\uDF32",
3532                     rarity: "Common",
3533                     cash: [11, 37, 340, 2200, 3e4],
3534                     time: [5, 4, 3, 2, 2],
3535                     price: [540, 7e3, 77e3, 12e5]
3536                 }, {
3537                     name: "Seal",
3538                     color: "#7ca1d5",
3539                     class: "❄️",
3540                     rarity: "Common",
3541                     cash: [6, 17, 150, 1200, 13e3],
3542                     time: [2, 2, 2, 2, 2],
3543                     price: [480, 4500, 43e3, 52e4]
3544                 }, {
3545                     name: "Arctic Fox",
3546                     color: "#7ca1d5",
3547                     class: "❄️",
3548                     rarity: "Common",
3549                     cash: [5, 18, 180, 850, 8500],
3550                     time: [2, 2, 2, 1, 1],
3551                     price: [520, 550, 61e3, 68e4]
3552                 }, {
3553                     name: "Snowy Owl",
3554                     color: "#feda3f",
3555                     class: "❄️",
3556                     rarity: "Common",
3557                     cash: [5, 20, 190, 1900, 16e3],
3558                     time: [3, 3, 2, 2, 2],
3559                     price: [370, 5300, 76e3, 62e4]
3560                 }, {
3561                     name: "Arctic Hare",
3562                     color: "#7ca1d5",
3563                     class: "❄️",
3564                     rarity: "Common",
3565                     cash: [6, 19, 85, 900, 7e3],
3566                     time: [2, 2, 1, 1, 1],
3567                     price: [540, 5200, 66e3, 55e4]
3568                 }, {
3569                     name: "Penguin",
3570                     color: "#fb8640",
3571                     class: "❄️",
3572                     rarity: "Common",
3573                     cash: [4, 21, 310, 3200, 33e3],
3574                     time: [3, 3, 3, 3, 3],
3575                     price: [400, 6500, 76e3, 87e4]
3576                 }, {
3577                     name: "Baby Penguin",
3578                     color: "#414042",
3579                     class: "❄️",
3580                     rarity: "Common",
3581                     cash: [3, 8, 70, 450, 2700],
3582                     time: [1, 1, 1, 1, 1],
3583                     price: [420, 3300, 33e3, 23e4]
3584                 }, {
3585                     name: "Polar Bear",
3586                     color: "#7ca1d5",
3587                     class: "❄️",
3588                     rarity: "Common",
3589                     cash: [12, 75, 700, 6500, 85e3],
3590                     time: [8, 7, 6, 5, 5],
3591                     price: [630, 7e3, 91e3, 14e5]
3592                 }, {
3593                     name: "Walrus",
3594                     color: "#7d4f33",
3595                     class: "❄️",
3596                     rarity: "Common",
3597                     cash: [11, 46, 420, 3700, 51e3],
3598                     time: [5, 5, 4, 4, 4],
3599                     price: [550, 6200, 68e3, 1e6]
3600                 }, {
3601                     name: "Tiger",
3602                     color: "#f18221",
3603                     class: "\uD83C\uDF34",
3604                     rarity: "Common",
3605                     cash: [6, 20, 100, 975, 7500],
3606                     time: [3, 3, 1, 1, 1],
3607                     price: [390, 6e3, 7e4, 61e4]
3608                 }, {
3609                     name: "Jaguar",
3610                     color: "#fbb040",
3611                     class: "\uD83C\uDF34",
3612                     rarity: "Common",
3613                     cash: [8, 28, 230, 1600, 17e3],
3614                     time: [3, 3, 2, 2, 2],
3615                     price: [390, 6e3, 7e4, 61e4]
3616                 }, {
3617                     name: "Toucan",
3618                     color: "#ffca34",
3619                     class: "\uD83C\uDF34",
3620                     rarity: "Common",
3621                     cash: [9, 20, 175, 625, 3800],
3622                     time: [2, 2, 2, 1, 1],
3623                     price: [520, 4800, 42e3, 3e5]
3624                 }, {
3625                     name: "Cockatoo",
3626                     color: "#7ca1d5",
3627                     class: "\uD83C\uDF34",
3628                     rarity: "Common",
3629                     cash: [6, 35, 160, 1700, 18e3],
3630                     time: [4, 4, 2, 2, 2],
3631                     price: [500, 5e3, 63e3, 7e5]
3632                 }, {
3633                     name: "Macaw",
3634                     color: "#00aeef",
3635                     class: "\uD83C\uDF34",
3636                     rarity: "Common",
3637                     cash: [3, 8, 85, 850, 8500],
3638                     time: [1, 1, 1, 1, 1],
3639                     price: [480, 5400, 62e3, 63e4]
3640                 }, {
3641                     name: "Parrot",
3642                     color: "#ed1c24",
3643                     class: "\uD83C\uDF34",
3644                     rarity: "Common",
3645                     cash: [3, 9, 90, 900, 9e3],
3646                     time: [1, 1, 1, 1, 1],
3647                     price: [540, 5700, 65e3, 69e4]
3648                 }, {
3649                     name: "Panther",
3650                     color: "#2f2c38",
3651                     class: "\uD83C\uDF34",
3652                     rarity: "Common",
3653                     cash: [12, 28, 215, 2100, 21e3],
3654                     time: [5, 3, 2, 2, 2],
3655                     price: [530, 6500, 76e3, 87e4]
3656                 }, {
3657                     name: "Anaconda",
3658                     color: "#8a9143",
3659                     class: "\uD83C\uDF34",
3660                     rarity: "Common",
3661                     cash: [3, 15, 85, 1500, 7600],
3662                     time: [1, 2, 1, 2, 1],
3663                     price: [410, 5100, 58e3, 59e4]
3664                 }, {
3665                     name: "Orangutan",
3666                     color: "#bc6234",
3667                     class: "\uD83C\uDF34",
3668                     rarity: "Common",
3669                     cash: [13, 52, 570, 4300, 7e4],
3670                     time: [5, 5, 5, 4, 4],
3671                     price: [600, 7e3, 8e4, 14e5]
3672                 }, {
3673                     name: "Capuchin",
3674                     color: "#e0b0a6",
3675                     class: "\uD83C\uDF34",
3676                     rarity: "Common",
3677                     cash: [4, 14, 160, 780, 8200],
3678                     time: [2, 2, 2, 1, 1],
3679                     price: [390, 4700, 57e3, 68e4]
3680                 }, {
3681                     name: "Elf",
3682                     color: "#a7d054",
3683                     class: "⚔️",
3684                     rarity: "Uncommon",
3685                     cash: [5e3, 15e3, 15e4, 15e5, 1e7],
3686                     time: [1, 1, 1, 1, 1],
3687                     price: [8e5, 9e6, 11e7, 8e8]
3688                 }, {
3689                     name: "Witch",
3690                     color: "#4ab96d",
3691                     class: "⚔️",
3692                     rarity: "Uncommon",
3693                     cash: [18e3, 6e4, 4e4, 4e6, 35e6],
3694                     time: [3, 3, 2, 2, 2],
3695                     price: [11e5, 12e6, 15e7, 14e8]
3696                 }, {
3697                     name: "Wizard",
3698                     color: "#5a459c",
3699                     class: "⚔️",
3700                     rarity: "Uncommon",
3701                     cash: [19500, 65e3, 44e4, 46e5, 4e6],
3702                     time: [3, 3, 2, 2, 2],
3703                     price: [13e5, 135e5, 16e7, 16e8]
3704                 }, {
3705                     name: "Fairy",
3706                     color: "#df6d9c",
3707                     class: "⚔️",
3708                     rarity: "Uncommon",
3709                     cash: [18500, 6e4, 62e4, 44e5, 38e6],
3710                     time: [3, 3, 3, 2, 2],
3711                     price: [12e5, 125e5, 15e6, 15e8]
3712                 }, {
3713                     name: "Slime Monster",
3714                     color: "#2fa04a",
3715                     class: "⚔️",
3716                     rarity: "Uncommon",
3717                     cash: [35e3, 14e4, 1e6, 11e6, 11e7],
3718                     time: [5, 5, 4, 4, 4],
3719                     price: [16e5, 15e6, 2e8, 23e8]
3720                 }, {
3721                     name: "Jester",
3722                     color: "#be1e2d",
3723                     class: "⚔️",
3724                     rarity: "Rare",
3725                     cash: [25e3, 1e5, 68e4, 65e5, 32e6],
3726                     time: [3, 3, 2, 2, 1],
3727                     price: [2e6, 21e6, 23e7, 26e8]
3728                 }, {
3729                     name: "Dragon",
3730                     color: "#2fa04a",
3731                     class: "⚔️",
3732                     rarity: "Rare",
3733                     cash: [36e3, 15e4, 15e5, 15e6, 15e7],
3734                     time: [4, 4, 4, 4, 4],
3735                     price: [23e5, 24e6, 27e7, 3e9]
3736                 }, {
3737                     name: "Unicorn",
3738                     color: "#f6afce",
3739                     class: "⚔️",
3740                     rarity: "Epic",
3741                     cash: [24e3, 15e4, 14e5, 7e6, 75e6],
3742                     time: [2, 2, 2, 1, 1],
3743                     price: [45e5, 45e6, 55e7, 65e8]
3744                 }, {
3745                     name: "Queen",
3746                     color: "#9e1f63",
3747                     class: "⚔️",
3748                     rarity: "Rare",
3749                     cash: [24e3, 95e3, 95e4, 97e5, 95e6],
3750                     time: [3, 3, 3, 3, 3],
3751                     price: [19e5, 2e7, 23e7, 25e8]
3752                 }, {
3753                     name: "King",
3754                     color: "#ee2640",
3755                     class: "⚔️",
3756                     rarity: "Legendary",
3757                     cash: [75e3, 4e5, 6e6, 9e7, 125e7],
3758                     time: [5, 5, 5, 5, 5],
3759                     price: [6e6, 95e6, 16e8, 25e9]
3760                 }, {
3761                     name: "Two of Spades",
3762                     color: "#414042",
3763                     class: "\uD83C\uDFF0",
3764                     rarity: "Uncommon",
3765                     cash: [4500, 14e3, 14e4, 14e5, 9e6],
3766                     time: [1, 1, 1, 1, 1],
3767                     price: [77e4, 83e5, 98e6, 71e7]
3768                 }, {
3769                     name: "Eat Me",
3770                     color: "#d58c55",
3771                     class: "\uD83C\uDFF0",
3772                     rarity: "Uncommon",
3773                     cash: [13e3, 45e3, 45e4, 45e5, 5e7],
3774                     time: [2, 2, 2, 2, 2],
3775                     price: [13e5, 14e6, 16e7, 2e9]
3776                 }, {
3777                     name: "Drink Me",
3778                     color: "#dd7399",
3779                     class: "\uD83C\uDFF0",
3780                     rarity: "Uncommon",
3781                     cash: [12e3, 4e4, 4e5, 4e6, 45e6],
3782                     time: [2, 2, 2, 2, 2],
3783                     price: [12e5, 12e6, 14e7, 18e8]
3784                 }, {
3785                     name: "Alice",
3786                     color: "#4cc9f5",
3787                     class: "\uD83C\uDFF0",
3788                     rarity: "Uncommon",
3789                     cash: [13e3, 42e3, 21e4, 21e5, 23e6],
3790                     time: [2, 2, 1, 1, 1],
3791                     price: [12e5, 13e6, 15e7, 19e8]
3792                 }, {
3793                     name: "Queen of Hearts",
3794                     color: "#d62027",
3795                     class: "\uD83C\uDFF0",
3796                     rarity: "Uncommon",
3797                     cash: [23e3, 87e3, 62e4, 75e5, 9e7],
3798                     time: [4, 4, 3, 3, 3],
3799                     price: [13e5, 13e6, 18e7, 24e8]
3800                 }, {
3801                     name: "Dormouse",
3802                     color: "#89d6f8",
3803                     class: "\uD83C\uDFF0",
3804                     rarity: "Rare",
3805                     cash: [17e3, 68e3, 7e5, 35e5, 35e6],
3806                     time: [2, 2, 1, 1, 1],
3807                     price: [2e6, 22e6, 25e7, 28e8]
3808                 }, {
3809                     name: "White Rabbit",
3810                     color: "#ffcd05",
3811                     class: "\uD83C\uDFF0",
3812                     rarity: "Rare",
3813                     cash: [26e3, 105e3, 11e6, 77e5, 72e6],
3814                     time: [3, 3, 3, 2, 2],
3815                     price: [2e6, 23e6, 28e7, 29e8]
3816                 }, {
3817                     name: "Cheshire Cat",
3818                     color: "#dd7399",
3819                     class: "\uD83C\uDFF0",
3820                     rarity: "Rare",
3821                     cash: [32e3, 1e5, 9e5, 9e6, 6e7],
3822                     time: [4, 3, 3, 3, 2],
3823                     price: [18e5, 19e6, 22e7, 24e8]
3824                 }, {
3825                     name: "Caterpillar",
3826                     color: "#00c0f3",
3827                     class: "\uD83C\uDFF0",
3828                     rarity: "Epic",
3829                     cash: [1e4, 7e4, 65e4, 75e5, 85e6],
3830                     time: [1, 1, 1, 1, 1],
3831                     price: [42e5, 42e6, 54e7, 69e8]
3832                 }, {
3833                     name: "Mad Hatter",
3834                     color: "#914f93",
3835                     class: "\uD83C\uDFF0",
3836                     rarity: "Epic",
3837                     cash: [38e3, 25e4, 15e5, 14e6, 8e7],
3838                     time: [3, 3, 2, 2, 1],
3839                     price: [48e5, 48e6, 52e7, 66e8]
3840                 }, {
3841                     name: "King of Hearts",
3842                     color: "#c62127",
3843                     class: "\uD83C\uDFF0",
3844                     rarity: "Legendary",
3845                     cash: [8e4, 42e4, 68e5, 1e8, 15e8],
3846                     time: [5, 5, 5, 5, 5],
3847                     price: [7e6, 11e7, 18e8, 3e10]
3848                 }, {
3849                     name: "Earth",
3850                     color: "#416eb5",
3851                     class: "\uD83D\uDE80",
3852                     rarity: "Uncommon",
3853                     cash: [15e3, 45e3, 6e5, 65e5, 65e6],
3854                     time: [3, 3, 3, 3, 3],
3855                     price: [1e6, 11e6, 15e7, 17e8]
3856                 }, {
3857                     name: "Meteor",
3858                     color: "#c68c3c",
3859                     class: "\uD83D\uDE80",
3860                     rarity: "Uncommon",
3861                     cash: [23e3, 65e3, 7e5, 45e5, 2e7],
3862                     time: [5, 4, 3, 2, 1],
3863                     price: [95e4, 13e6, 16e7, 16e8]
3864                 }, {
3865                     name: "Stars",
3866                     color: "#19184d",
3867                     class: "\uD83D\uDE80",
3868                     rarity: "Uncommon",
3869                     cash: [1e4, 4e4, 2e5, 2e6, 18e6],
3870                     time: [2, 2, 1, 1, 1],
3871                     price: [14e5, 14e6, 15e7, 15e8]
3872                 }, {
3873                     name: "Alien",
3874                     color: "#8dc63f",
3875                     class: "\uD83D\uDE80",
3876                     rarity: "Uncommon",
3877                     cash: [3e4, 1e5, 1e6, 11e6, 85e6],
3878                     time: [4, 4, 4, 4, 4],
3879                     price: [15e5, 17e6, 19e7, 17e8]
3880                 }, {
3881                     name: "Planet",
3882                     color: "#9dc6ea",
3883                     class: "\uD83D\uDE80",
3884                     rarity: "Rare",
3885                     cash: [25e3, 1e5, 9e5, 9e6, 9e7],
3886                     time: [3, 3, 3, 3, 3],
3887                     price: [2e6, 21e6, 21e7, 24e8]
3888                 }, {
3889                     name: "UFO",
3890                     color: "#a15095",
3891                     class: "\uD83D\uDE80",
3892                     rarity: "Rare",
3893                     cash: [17e3, 7e4, 7e5, 7e6, 7e7],
3894                     time: [2, 2, 2, 2, 2],
3895                     price: [21e5, 23e6, 25e7, 28e8]
3896                 }, {
3897                     name: "Spaceship",
3898                     color: "#ffcb29",
3899                     class: "\uD83D\uDE80",
3900                     rarity: "Epic",
3901                     cash: [6e4, 32e4, 21e5, 15e6, 85e6],
3902                     time: [5, 4, 3, 2, 1],
3903                     price: [48e5, 46e6, 54e7, 68e8]
3904                 }, {
3905                     name: "Astronaut",
3906                     color: "#9bd4ee",
3907                     class: "\uD83D\uDE80",
3908                     rarity: "Legendary",
3909                     cash: [45e3, 26e4, 25e5, 38e6, 55e7],
3910                     time: [3, 3, 2, 2, 2],
3911                     price: [65e5, 1e8, 17e8, 27e9]
3912                 }, {
3913                     name: "Lil Bot",
3914                     color: "#3e564a",
3915                     class: "\uD83E\uDD16",
3916                     rarity: "Uncommon",
3917                     cash: [4e3, 12e3, 18e4, 19e5, 25e6],
3918                     time: [1, 1, 1, 1, 1],
3919                     price: [73e4, 12e6, 13e7, 19e8]
3920                 }, {
3921                     name: "Lovely Bot",
3922                     color: "#f179af",
3923                     class: "\uD83E\uDD16",
3924                     rarity: "Uncommon",
3925                     cash: [16e3, 65e3, 65e4, 48e5, 42e6],
3926                     time: [3, 3, 3, 2, 2],
3927                     price: [13e5, 14e6, 17e7, 16e8]
3928                 }, {
3929                     name: "Angry Bot",
3930                     color: "#f1613a",
3931                     class: "\uD83E\uDD16",
3932                     rarity: "Uncommon",
3933                     cash: [22e3, 85e3, 8e5, 62e5, 65e6],
3934                     time: [4, 4, 4, 3, 3],
3935                     price: [12e5, 13e6, 15e7, 17e8]
3936                 }, {
3937                     name: "Happy Bot",
3938                     color: "#51ba6b",
3939                     class: "\uD83E\uDD16",
3940                     rarity: "Uncommon",
3941                     cash: [11e3, 45e3, 5e5, 25e5, 3e7],
3942                     time: [2, 2, 2, 1, 1],
3943                     price: [14e5, 15e6, 18e7, 24e8]
3944                 }, {
3945                     name: "Watson",
3946                     color: "#d69b5a",
3947                     class: "\uD83E\uDD16",
3948                     rarity: "Rare",
3949                     cash: [24e3, 1e5, 1e6, 1e7, 1e8],
3950                     time: [3, 3, 3, 3, 3],
3951                     price: [2e6, 22e6, 24e7, 26e8]
3952                 }, {
3953                     name: "Buddy Bot",
3954                     color: "#9dc6ea",
3955                     class: "\uD83E\uDD16",
3956                     rarity: "Rare",
3957                     cash: [22e3, 95e3, 65e4, 65e5, 65e6],
3958                     time: [3, 3, 2, 2, 2],
3959                     price: [19e5, 21e6, 23e7, 25e8]
3960                 }, {
3961                     name: "Brainy Bot",
3962                     color: "#9ecf7a",
3963                     class: "\uD83E\uDD16",
3964                     rarity: "Epic",
3965                     cash: [5e4, 25e4, 21e5, 21e6, 17e7],
3966                     time: [4, 3, 3, 3, 2],
3967                     price: [5e6, 46e6, 5e8, 67e8]
3968                 }, {
3969                     name: "Mega Bot",
3970                     color: "#d71f27",
3971                     class: "\uD83E\uDD16",
3972                     rarity: "Legendary",
3973                     cash: [8e4, 43e4, 42e5, 62e6, 1e9],
3974                     time: [5, 5, 3, 3, 3],
3975                     price: [7e6, 12e7, 19e8, 35e9]
3976                 }].map(e => ({
3977                     name: e.name,
3978                     value: JSON.stringify(e)
3979                 }))
3980             }],
3981             run: function(e) {
3982                 let t = document.createElement("iframe");
3983                 document.body.append(t), window.alert = t.contentWindow.alert.bind(window), t.remove();
3984                 let {
3985                     stateNode: a
3986                 } = Object.values(function e(t = document.querySelector("body>div")) {
3987                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
3988                 }())[1].children[0]._owner;
3989                 a.state.blooks.length >= 10 && alert("Choose a blook to replace"), a.chooseBlook(JSON.parse(e))
3990             }
3991         }, {
3992             name: "Free Upgrades",
3993             description: "Sets upgrade prices to 0 for all current blooks",
3994             run: function() {
3995                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState(e => ({
3996                     ...e,
3997                     blooks: e.blooks.map(e => ({
3998                         ...e,
3999                         price: [0, 0, 0, 0]
4000                     }))
4001                 }))
4002             }
4003         }, {
4004             name: "Max Blooks",
4005             description: "Maxes out all your blooks' levels",
4006             run: function() {
4007                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.state.blooks.forEach(e => e.level = 4)
4008             }
4009         }, {
4010             name: "Remove Glitches",
4011             description: "Removes all enemy glitches",
4012             run: function() {
4013                 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4014                 e.setState({
4015                     bits: 0,
4016                     ads: [],
4017                     hazards: [],
4018                     color: "",
4019                     lol: !1,
4020                     joke: !1,
4021                     slow: !1,
4022                     dance: !1,
4023                     glitch: "",
4024                     glitcherName: "",
4025                     glitcherBlook: ""
4026                 }), clearTimeout(e.adTimeout), clearInterval(e.hazardInterval), clearTimeout(e.nightTimeout), clearTimeout(e.glitchTimeout), clearTimeout(e.lolTimeout), clearTimeout(e.jokeTimeout), clearTimeout(e.slowTimeout), clearTimeout(e.danceTimeout), clearTimeout(e.nameTimeout)
4027             }
4028         }, {
4029             name: "Send Glitch",
4030             description: "Sends a glitch to everyone else playing",
4031             inputs: [{
4032                 name: "Glitch",
4033                 type: "options",
4034                 options: Object.entries({
4035                     lb: "Lunch Break",
4036                     as: "Ad Spam",
4037                     e37: "Error 37",
4038                     nt: "Night Time",
4039                     lo: "#LOL",
4040                     j: "Jokester",
4041                     sm: "Slow Mo",
4042                     dp: "Dance Party",
4043                     v: "Vortex",
4044                     r: "Reverse",
4045                     f: "Flip",
4046                     m: "Micro"
4047                 }).map(([e, t]) => ({
4048                     name: t,
4049                     value: e
4050                 }))
4051             }],
4052             run: function(e) {
4053                 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4054                 t.safe = !0, t.props.liveGameController.setVal({
4055                     path: `c/${t.props.client.name}/tat`,
4056                     val: e
4057                 })
4058             }
4059         }, {
4060             name: "Set All MegaBot",
4061             description: "Sets all your blooks to maxed out Mega Bots",
4062             run: function() {
4063                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
4064                     blooks: Array(10).fill({
4065                         name: "Mega Bot",
4066                         color: "#d71f27",
4067                         class: "\uD83E\uDD16",
4068                         rarity: "Legendary",
4069                         cash: [8e4, 43e4, 42e5, 62e6, 1e9],
4070                         time: [5, 5, 3, 3, 3],
4071                         price: [7e6, 12e7, 19e8, 35e9],
4072                         active: !1,
4073                         level: 4,
4074                         bonus: 5.5
4075                     })
4076                 })
4077             }
4078         }, {
4079             name: "Set Cash",
4080             description: "Sets amount of cash you have",
4081             inputs: [{
4082                 name: "Cash",
4083                 type: "number"
4084             }],
4085             run: function(e) {
4086                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
4087                     cash: e
4088                 })
4089             }
4090         }],
4091         fishing: [{
4092             name: "Always Frenzy",
4093             description: "Always sets everyone to frenzy mode",
4094             type: "toggle",
4095             enabled: false,
4096             data: null,
4097             run: function() {
4098                 if (this.enabled) {
4099                     this.enabled = false;
4100                     clearInterval(this.data);
4101                     this.data = null;
4102                 } else {
4103                     this.enabled = true;
4104                     this.data = setInterval(() => {
4105                         const cheat = (async () => {
4106                             let {
4107                                 stateNode
4108                             } = Object.values((function react(r = document.querySelector("body>div")) {
4109                                 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
4110                             })())[1].children[0]._owner;
4111                             stateNode.props.liveGameController.setVal({
4112                                 path: `c/${stateNode.props.client.name}`,
4113                                 val: {
4114                                     b: stateNode.props.client.blook,
4115                                     w: stateNode.state.weight,
4116                                     f: "Frenzy",
4117                                     s: true
4118                                 }
4119                             });
4120                         });
4121                         cheat();
4122                     }, 50);
4123                 }
4124             }
4125         }, {
4126             name: "Client Sided Frenzy",
4127             description: "Frenzy for you only",
4128             type: "toggle",
4129             enabled: !1,
4130             run: function() {
4131                 const componentInstance = Object.values(document.querySelector("#app > div > div"))[1].children[1]._owner.stateNode;
4132                 if (this.enabled) {
4133                     this.enabled = !1;
4134                     componentInstance.setState({
4135                         isFrenzy: false
4136                     });
4137                 } else {
4138                     this.enabled = !0;
4139                     componentInstance.setState({
4140                         isFrenzy: true
4141                     });
4142                 }
4143             }
4144         }, {
4145             name: "Remove Distractions",
4146             description: "Removes distractions",
4147             type: "toggle",
4148             enabled: !1,
4149             data: null,
4150             run: function() {
4151                 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
4152                     Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
4153                         party: ""
4154                     })
4155                 }, 50))
4156             }
4157         }, {
4158             name: "Frenzy",
4159             description: "Sets everyone to frenzy mode",
4160             run: function() {
4161                 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4162                 e.props.liveGameController.setVal({
4163                     path: "c/" + e.props.client.name,
4164                     val: {
4165                         b: e.props.client.blook,
4166                         w: e.state.weight,
4167                         f: "Frenzy",
4168                         s: !0
4169                     }
4170                 })
4171             }
4172         }, {
4173             name: "Send Distraction",
4174             description: "Sends a distraction to everyone",
4175             inputs: [{
4176                 name: "Distraction",
4177                 type: "options",
4178                 options: ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"]
4179             }],
4180             run: function(e) {
4181                 var t = document.createElement("iframe"),
4182                     t = (document.body.append(t), window.alert = t.contentWindow.alert.bind(window), t.remove(), Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner).stateNode;
4183                 t.safe = !0, t.props.liveGameController.setVal({
4184                     path: "c/" + t.props.client.name,
4185                     val: {
4186                         b: t.props.client.blook,
4187                         w: t.state.weight,
4188                         f: e,
4189                         s: !0
4190                     }
4191                 })
4192             }
4193         }, {
4194             name: "Set Lure",
4195             description: "Sets fishing lure (range 1 - 5)",
4196             inputs: [{
4197                 name: "Lure (1 - 5)",
4198                 type: "number",
4199                 min: 1,
4200                 max: 5
4201             }],
4202             run: function(e) {
4203                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
4204                     lure: Math.max(Math.min(e - 1, 4), 0)
4205                 })
4206             }
4207         }, {
4208             name: "Set Next Fish",
4209             description: "Sets the next fish to catch",
4210             inputs: [{
4211                 name: "Fish",
4212                 type: "options",
4213                 options: ["Old Boot", "Waffle", "Two of Spades", "Jellyfish", "Clownfish", "Goldfish", "Frog", "Blizzard Clownfish", "Turtle", "Cat", "Lovely Frog", "Lucky Frog", "Poison Dart Frog", "Seal", "Walrus", "Fairy", "Crab", "Lemon Crab", "Pufferfish", "Blobfish", "Rainbow Jellyfish", "Octopus", "Pirate Pufferfish", "Donut Blobfish", "Crimson Octopus", "Narwhal", "Baby Shark", "Megalodon", "Alien", "Rainbow Narwhal", "UFO", "Santa Claus", "Swamp Monster", "Red Astronaut", "Spooky Pumpkin", "Dragon", "Tim the Alien"]
4214             }],
4215             run: function(e) {
4216                 function t() {
4217                     return Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner
4218                 }
4219                 var a = {
4220                         "Old Boot": {
4221                             rarity: "Trash",
4222                             minWeight: 1,
4223                             maxWeight: 10,
4224                             tiers: ["F", "D", "C"]
4225                         },
4226                         Waffle: {
4227                             rarity: "Trash",
4228                             minWeight: 1,
4229                             maxWeight: 10,
4230                             tiers: ["F", "D", "C"]
4231                         },
4232                         "Two of Spades": {
4233                             rarity: "Trash",
4234                             minWeight: 1,
4235                             maxWeight: 10,
4236                             tiers: ["F", "D", "C"]
4237                         },
4238                         Jellyfish: {
4239                             rarity: "Easy One",
4240                             minWeight: 10,
4241                             maxWeight: 25,
4242                             tiers: ["D", "C", "B"]
4243                         },
4244                         Clownfish: {
4245                             rarity: "Easy One",
4246                             minWeight: 20,
4247                             maxWeight: 45,
4248                             tiers: ["D", "C", "B"]
4249                         },
4250                         Goldfish: {
4251                             rarity: "Easy One",
4252                             minWeight: 30,
4253                             maxWeight: 65,
4254                             tiers: ["D", "C", "B"]
4255                         },
4256                         Frog: {
4257                             rarity: "Easy One",
4258                             minWeight: 50,
4259                             maxWeight: 100,
4260                             tiers: ["D", "C", "B"]
4261                         },
4262                         "Blizzard Clownfish": {
4263                             rarity: "Great Catch",
4264                             minWeight: 75,
4265                             maxWeight: 125,
4266                             tiers: ["D", "C", "B"]
4267                         },
4268                         Turtle: {
4269                             rarity: "Great Catch",
4270                             minWeight: 100,
4271                             maxWeight: 150,
4272                             tiers: ["D", "C", "B", "A"]
4273                         },
4274                         Cat: {
4275                             rarity: "Great Catch",
4276                             minWeight: 100,
4277                             maxWeight: 200,
4278                             tiers: ["D", "C", "B", "A"]
4279                         },
4280                         "Lovely Frog": {
4281                             rarity: "Great Catch",
4282                             minWeight: 150,
4283                             maxWeight: 350,
4284                             tiers: ["D", "C", "B", "A"]
4285                         },
4286                         "Lucky Frog": {
4287                             rarity: "Great Catch",
4288                             minWeight: 200,
4289                             maxWeight: 400,
4290                             tiers: ["D", "C", "B", "A"]
4291                         },
4292                         "Poison Dart Frog": {
4293                             rarity: "Great Catch",
4294                             minWeight: 250,
4295                             maxWeight: 750,
4296                             tiers: ["D", "C", "B", "A"]
4297                         },
4298                         Seal: {
4299                             rarity: "Rare Find",
4300                             minWeight: 500,
4301                             maxWeight: 1e3,
4302                             tiers: ["D", "C", "B", "A"]
4303                         },
4304                         Walrus: {
4305                             rarity: "Rare Find",
4306                             minWeight: 700,
4307                             maxWeight: 2200,
4308                             tiers: ["D", "C", "B", "A"]
4309                         },
4310                         Fairy: {
4311                             rarity: "Rare Find",
4312                             minWeight: 1500,
4313                             maxWeight: 2500,
4314                             tiers: ["D", "C", "B", "A"]
4315                         },
4316                         Crab: {
4317                             rarity: "Rare Find",
4318                             minWeight: 1e3,
4319                             maxWeight: 3e3,
4320                             tiers: ["D", "C", "B", "A"]
4321                         },
4322                         "Lemon Crab": {
4323                             rarity: "Rare Find",
4324                             minWeight: 2e3,
4325                             maxWeight: 5e3,
4326                             tiers: ["C", "B", "A"]
4327                         },
4328                         Pufferfish: {
4329                             rarity: "Rare Find",
4330                             minWeight: 2e3,
4331                             maxWeight: 4e3,
4332                             tiers: ["D", "C", "B", "A"]
4333                         },
4334                         Blobfish: {
4335                             rarity: "Rare Find",
4336                             minWeight: 3e3,
4337                             maxWeight: 5e3,
4338                             tiers: ["D", "C", "B", "A"]
4339                         },
4340                         "Rainbow Jellyfish": {
4341                             rarity: "Epic Grab",
4342                             minWeight: 7e3,
4343                             maxWeight: 1e4,
4344                             tiers: ["C", "B", "A"]
4345                         },
4346                         Octopus: {
4347                             rarity: "Epic Grab",
4348                             minWeight: 1e4,
4349                             maxWeight: 15e3,
4350                             tiers: ["C", "B", "A"]
4351                         },
4352                         "Pirate Pufferfish": {
4353                             rarity: "Epic Grab",
4354                             minWeight: 12e3,
4355                             maxWeight: 2e4,
4356                             tiers: ["C", "B", "A"]
4357                         },
4358                         "Donut Blobfish": {
4359                             rarity: "Epic Grab",
4360                             minWeight: 13e3,
4361                             maxWeight: 25e3,
4362                             tiers: ["C", "B", "A"]
4363                         },
4364                         "Crimson Octopus": {
4365                             rarity: "Epic Grab",
4366                             minWeight: 15e3,
4367                             maxWeight: 3e4,
4368                             tiers: ["B", "A"]
4369                         },
4370                         Narwhal: {
4371                             rarity: "Catch of the Day",
4372                             minWeight: 25e3,
4373                             maxWeight: 5e4,
4374                             tiers: ["B", "A", "S"]
4375                         },
4376                         "Baby Shark": {
4377                             rarity: "Catch of the Day",
4378                             minWeight: 5e4,
4379                             maxWeight: 1e5,
4380                             tiers: ["B", "A", "S"]
4381                         },
4382                         Megalodon: {
4383                             rarity: "Catch of the Day",
4384                             minWeight: 25e4,
4385                             maxWeight: 5e5,
4386                             tiers: ["B", "A", "S"]
4387                         },
4388                         Alien: {
4389                             rarity: "Angler's Legend",
4390                             minWeight: 5e5,
4391                             maxWeight: 7e5,
4392                             tiers: ["A", "S"]
4393                         },
4394                         "Rainbow Narwhal": {
4395                             rarity: "Angler's Legend",
4396                             minWeight: 75e4,
4397                             maxWeight: 1e6,
4398                             tiers: ["A", "S", "S+"]
4399                         },
4400                         UFO: {
4401                             rarity: "Angler's Legend",
4402                             minWeight: 1e6,
4403                             maxWeight: 2e6,
4404                             tiers: ["A", "S", "S+"]
4405                         },
4406                         "Santa Claus": {
4407                             rarity: "Angler's Legend",
4408                             minWeight: 1e6,
4409                             maxWeight: 2e6,
4410                             tiers: ["A", "S", "S+"]
4411                         },
4412                         "Swamp Monster": {
4413                             rarity: "Angler's Legend",
4414                             minWeight: 1e6,
4415                             maxWeight: 2e6,
4416                             tiers: ["A", "S", "S+"]
4417                         },
4418                         "Red Astronaut": {
4419                             rarity: "Angler's Legend",
4420                             minWeight: 1e6,
4421                             maxWeight: 2e6,
4422                             tiers: ["A", "S", "S+"]
4423                         },
4424                         "Spooky Pumpkin": {
4425                             rarity: "Angler's Legend",
4426                             minWeight: 1e6,
4427                             maxWeight: 2e6,
4428                             tiers: ["A", "S", "S+"]
4429                         },
4430                         Dragon: {
4431                             rarity: "Angler's Legend",
4432                             minWeight: 1e6,
4433                             maxWeight: 2e6,
4434                             tiers: ["A", "S", "S+"]
4435                         },
4436                         "Tim the Alien": {
4437                             rarity: "Angler's Legend",
4438                             minWeight: 15e5,
4439                             maxWeight: 25e5,
4440                             tiers: ["A", "S", "S+"]
4441                         }
4442                     },
4443                     o = ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"];
4444                 if (!window.functionSet) {
4445                     var r = t().stateNode.answerNext;
4446                     t().stateNode.answerNext = function() {
4447                         if (t().stateNode.state.hackFish) {
4448                             var i, n, s;
4449                             t().stateNode.setState({
4450                                 stage: "caught",
4451                                 isCast: !1,
4452                                 fish: {
4453                                     name: i = e,
4454                                     rarity: a[i].rarity,
4455                                     weight: (n = a[i].minWeight, Math.floor(Math.random() * ((s = a[i].maxWeight) - n) + n)),
4456                                     tier: a[i].tiers[Math.floor(Math.random() * a[i].tiers.length)],
4457                                     isSpecial: o.includes(i) && 8 > Math.floor(100 * Math.random())
4458                                 },
4459                                 claimReady: !1
4460                             }), setTimeout(function() {
4461                                 t().stateNode.setState({
4462                                     claimReady: !0
4463                                 })
4464                             }, 1600), t().stateNode.state.hackFish = null
4465                         } else r.apply(this, arguments)
4466                     }
4467                 }
4468                 window.functionSet = !0, ! function e(o) {
4469                     if (Object.keys(a).includes(o)) t().stateNode.state.hackFish = o;
4470                     else {
4471                         alert("That fish does not exist!");
4472                         return
4473                     }
4474                 }(e)
4475             }
4476         }, {
4477             name: "Set Weight",
4478             description: "Sets weight",
4479             inputs: [{
4480                 name: "Weight",
4481                 type: "number"
4482             }],
4483             run: function(e) {
4484                 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4485                 t.setState({
4486                     weight: e,
4487                     weight2: e
4488                 }), t.props.liveGameController.setVal({
4489                     path: "c/" + t.props.client.name,
4490                     val: {
4491                         b: t.props.client.blook,
4492                         w: e,
4493                         f: ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"][Math.floor(9 * Math.random())]
4494                     }
4495                 })
4496             }
4497         }],
4498         flappy: [{
4499                 name: "Toggle Ghost",
4500                 description: "Lets you go through the pipes",
4501                 type: "toggle",
4502                 enabled: false,
4503                 run: function() {
4504                     this.enabled = !this.enabled;
4505                     for (const body of Object.values(document.querySelector("#phaser-bouncy"))[0].return.updateQueue.lastEffect.deps[0].current.config.sceneConfig.physics.world.bodies.entries) {
4506                         if (!body.gameObject.frame.texture.key.startsWith("blook")) continue;
4507                         body.checkCollision.none = this.enabled;
4508                         body.gameObject.setAlpha(this.enabled ? 0.5 : 1);
4509                         break;
4510                     };
4511                 }
4512             },
4513             {
4514                 name: "Set Score",
4515                 description: "Sets flappy blook score",
4516                 inputs: [{
4517                     name: "Score",
4518                     type: "number"
4519                 }],
4520                 run: function(score) {
4521                     Object.values(document.querySelector("#phaser-bouncy"))[0].return.updateQueue.lastEffect.deps[1](score || 0);
4522                 }
4523             }, {
4524                 name: "Change Game Code",
4525                 description: "Replace the old game with new HTML content",
4526                 inputs: [{
4527                     name: "HTML Code",
4528                     type: "text"
4529                 }],
4530                 run: function(newHtml) {
4531                     (function() {
4533                         if (newHtml) {
4535                             var canvas = document.querySelector('canvas[width="320"][height="480"]');
4537                             if (canvas) {
4539                                 var tempContainer = document.createElement('div');
4540                                 tempContainer.innerHTML = newHtml;
4542                                 var wrapperDiv = document.createElement('div');
4543                                 wrapperDiv.style.width = '320px';
4544                                 wrapperDiv.style.height = '480px';
4545                                 wrapperDiv.style.overflow = 'auto';
4546                                 wrapperDiv.style.boxSizing = 'border-box';
4547                                 wrapperDiv.style.position = canvas.style.position;
4548                                 wrapperDiv.style.marginLeft = canvas.style.marginLeft;
4549                                 wrapperDiv.style.marginTop = canvas.style.marginTop;
4550                                 wrapperDiv.style.cursor = canvas.style.cursor;
4551                                 wrapperDiv.style.backgroundColor = '#f0f0f0';
4553                                 while (tempContainer.firstChild) {
4554                                     wrapperDiv.appendChild(tempContainer.firstChild);
4555                                 }
4557                                 canvas.parentNode.replaceChild(wrapperDiv, canvas);
4558                             }
4560                             var scoreTextDiv = document.querySelector('div._scoreText_e2c5l_7');
4561                             if (scoreTextDiv) {
4562                                 scoreTextDiv.parentNode.removeChild(scoreTextDiv);
4563                             }
4564                         }
4565                     })();
4566                 }
4567             }, {
4568                 name: "Change Settings",
4569                 description: "Changes various game mechanics and lets you play with the spacebar",
4570                 inputs: [{
4571                     name: "Bird Gravity",
4572                     type: "number",
4573                     value: 800
4574                 }, {
4575                     name: "Bird Speed",
4576                     type: "number",
4577                     value: 125
4578                 }, {
4579                     name: "Bird Flap Power",
4580                     type: "number",
4581                     value: 300
4582                 }],
4583                 run: function(a, b, c) {
4584                     const scene = Object.values(document.querySelector("#phaser-bouncy"))[0].return.updateQueue.lastEffect.deps[0].current.config.sceneConfig;
4585                     scene.birdGravity = a;
4586                     scene.birdSpeed = b;
4587                     scene.birdFlapPower = c;
4588                     scene.flap = function() {
4589                         this.isStarted || (this.bird.body.gravity.y = this.birdGravity,
4590                                 this.pipeGroup.setVelocityX(-this.birdSpeed),
4591                                 this.groundGroup.setVelocityX(-this.birdSpeed),
4592                                 this.isStarted = !0),
4593                             this.bird.body.velocity.y = -this.birdFlapPower
4594                     }
4595                     scene.input._events.pointerdown = [];
4596                     scene.create();
4597                     scene.input.keyboard.addKey('SPACE').on("down", e => {
4598                         scene.flap.call(scene);
4599                     });
4600                 }
4601             }
4602         ],
4603         gold: [{
4604             name: "Always Triple",
4605             description: "Always get triple gold",
4606             type: "toggle",
4607             enabled: !1,
4608             data: null,
4609             run: function() {
4610                 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4611                 e._choosePrize ||= e.choosePrize, this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null, e.choosePrize = e._choosePrize || e.choosePrize) : (this.enabled = !0, this.data = setInterval(() => {
4612                     e.choosePrize = function(t) {
4613                         e.state.choices[t] = {
4614                             type: "multiply",
4615                             val: 3,
4616                             text: "Triple Gold!",
4617                             blook: "Unicorn"
4618                         }, e._choosePrize(t)
4619                     }
4620                 }, 50))
4621             }
4622         }, {
4623             name: "Always Quintuple",
4624             description: "Always get quintuple gold",
4625             type: "toggle",
4626             enabled: !1,
4627             data: null,
4628             run: function() {
4629                 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4630                 e._choosePrize ||= e.choosePrize, this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null, e.choosePrize = e._choosePrize || e.choosePrize) : (this.enabled = !0, this.data = setInterval(() => {
4631                     e.choosePrize = function(t) {
4632                         e.state.choices[t] = {
4633                             type: "multiply",
4634                             val: 5,
4635                             text: "Quintuple Gold!",
4636                             blook: "Ice Elemental"
4637                         }, e._choosePrize(t)
4638                     }
4639                 }, 50))
4640             }
4641         }, {
4642             name: "Auto Choose",
4643             description: "Automatically picks the option that would give you the most gold",
4644             type: "toggle",
4645             enabled: false,
4646             data: null,
4647             run: function() {
4648                 if (this.enabled) {
4649                     this.enabled = false;
4650                     clearInterval(this.data);
4651                     this.data = null;
4652                 } else {
4653                     this.enabled = true;
4654                     this.data = setInterval(() => {
4655                         let {
4656                             stateNode
4657                         } = Object.values((function react(r = document.querySelector("body>div")) {
4658                             return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
4659                         })())[1].children[0]._owner;
4661                         if (stateNode.state.stage == "prize") {
4662                             stateNode.props.liveGameController.getDatabaseVal("c", (players) => {
4663                                 if (players == null) return;
4664                                 players = Object.entries(players);
4665                                 let most = 0,
4666                                     max = 0,
4667                                     index = -1;
4668                                 for (let i = 0; i < players.length; i++) {
4669                                     if (players[i][0] != stateNode.props.client.name && players[i][1] > most) {
4670                                         most = players[i][1];
4671                                     }
4672                                 }
4673                                 for (let i = 0; i < stateNode.state.choices.length; i++) {
4674                                     const choice = stateNode.state.choices[i];
4675                                     let value = stateNode.state.gold;
4676                                     if (choice.type == "gold") {
4677                                         value = stateNode.state.gold + (choice.val || 0);
4678                                     } else if (choice.type == "multiply" || choice.type == "divide") {
4679                                         value = Math.round(stateNode.state.gold * choice.val) || stateNode.state.gold;
4680                                     } else if (choice.type == "swap") {
4681                                         value = most || stateNode.state.gold;
4682                                     } else if (choice.type == "take") {
4683                                         value = stateNode.state.gold + (most * choice.val || 0);
4684                                     }
4685                                     if ((value || 0) <= max) continue;
4686                                     max = value;
4687                                     index = i + 1;
4688                                 }
4689                                 document.querySelector("div[class*='choice" + index + "']")?.click();
4690                             });
4691                         }
4692                     }, 50);
4693                 }
4694             }
4695         }, {
4696             name: "Chest ESP",
4697             description: "Shows what each chest will give you",
4698             type: "toggle",
4699             enabled: false,
4700             data: null,
4701             run: function() {
4702                 if (this.enabled) {
4703                     this.enabled = false;
4704                     clearInterval(this.data);
4705                     this.data = null;
4706                 } else {
4707                     this.enabled = true;
4708                     this.data = setInterval(() => {
4709                         const cheat = (async () => {
4710                             Object.values((function react(r = document.querySelector("body>div")) {
4711                                 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
4712                             })())[1].children[0]._owner.stateNode.state.choices.forEach(({
4713                                 text
4714                             }, index) => {
4715                                 let chest = document.querySelector(`div[class*='choice${index + 1}']`);
4716                                 if (!chest || chest.querySelector('div')) return;
4717                                 let choice = document.createElement('div')
4718                                 choice.style.color = "white";
4719                                 choice.style.fontFamily = "Eczar";
4720                                 choice.style.fontSize = "2em";
4721                                 choice.style.display = "flex";
4722                                 choice.style.justifyContent = "center";
4723                                 choice.style.transform = "translateY(200px)";
4724                                 choice.innerText = text;
4725                                 chest.append(choice)
4726                             });
4727                         });
4728                         cheat();
4729                     }, 50);
4730                 }
4731             }
4732         }, {
4733             name: "Remove Lose 25%-50%",
4734             description: "Removes Lose 25%-50% chests",
4735             type: "toggle",
4736             enabled: !1,
4737             data: null,
4738             run: function() {
4739                 let e = this,
4740                     t = this;
4742                 function a() {
4743                     return Object.values(document.querySelector("#app > div > div"))[1].children[1]._owner
4744                 }
4745                 e.enabled || t.enabled ? (clearInterval(e.data), clearInterval(t.data), e.data = null, t.data = null, e.enabled = !1, t.enabled = !1) : (e.enabled = !0, t.enabled = !0, e.data = setInterval(() => {
4746                     document.querySelectorAll('div[role="button"]').forEach(e => {
4747                         ("Lose 25%" === e.innerText || "Lose 50%" === e.innerText) && (e.style.display = "none")
4748                     })
4749                 }, 50), t.data = setInterval(() => {
4750                     var e;
4751                     if ("gold" === ("gold" === window.location.pathname.split("/")[2] && "gold") && t.enabled) try {
4752                         if ("prize" === a().stateNode.state.stage) {
4753                             let {
4754                                 choices: o
4755                             } = a().stateNode.state, r = document.querySelector("div[class*='regularBody']").children[1];
4756                             r && (document.querySelectorAll(".chest-esp").length ? o.forEach((e, t) => {
4757                                 3 == r.children.length && r.children[t].children[1].innerText != e.text && (r.children[t].children[1].innerText = e.text)
4758                             }) : o.forEach((e, t) => {
4759                                 (textElement = document.createElement("p")).className = "chest-esp", textElement.innerText = e.text, textElement.style = "text-align: center; font-size: 30px; color: white; font-family:Titan One, sans-serif; border-color: black; margin-top: 200px; opacity: 0;";
4760                                 try {
4761                                     r.children[t].appendChild(textElement)
4762                                 } catch (a) {
4763                                     console.log(a)
4764                                 }
4765                             }))
4766                         }
4767                     } catch (i) {
4768                         console.log(i)
4769                     }
4770                 }, 50))
4771             }
4772         }, {
4773             name: "Flood Alert Box",
4774             description: "Makes the alert box filled with text",
4775             inputs: [{
4776                 name: "Text",
4777                 type: "text"
4778             }],
4779             run: function(userInput) {
4780                 function getReactOwner() {
4781                     return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
4782                 }
4784                 function repeatText(text, times) {
4785                     return new Array(times).fill(text).join(" ");
4786                 }
4788                 function setValForPlayer() {
4789                     getReactOwner().stateNode.props.liveGameController.getDatabaseVal("c/").then(data => {
4790                         if (data != null) {
4792                             const playerName = Object.keys(data)[0];
4794                             if (userInput) {
4796                                 const id = "1,723,583,989,363";
4797                                 const repeatedText = repeatText(userInput, 1700);
4798                                 const finalText = `${id}${repeatedText}`;
4800                                 setv(['tat', `${playerName}:${finalText}`]);
4801                             } else {
4802                                 console.log("No text entered. Operation cancelled.");
4803                             }
4804                         } else {
4805                             console.log("Player not found!");
4806                         }
4807                     });
4808                 }
4810                 function setv(args) {
4811                     getReactOwner().stateNode.props.liveGameController.setVal({
4812                         path: "c/" + getReactOwner().stateNode.props.client.name + "/" + args[0],
4813                         val: args.slice(1, args.length).join(" ")
4814                     });
4815                 }
4817                 setValForPlayer();
4818             }
4819         }, {
4820             name: "Reset Players Gold",
4821             description: "Sets a player's gold to 0",
4822             inputs: [{
4823                 name: "Player",
4824                 type: "options",
4825                 options() {
4826                     let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4827                     return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
4828                 }
4829             }],
4830             run: function(e) {
4831                 var {
4832                     props: t,
4833                     state: a
4834                 } = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4835                 t.liveGameController.setVal({
4836                     path: "c/".concat(t.client.name),
4837                     val: {
4838                         b: t.client.blook,
4839                         g: a.gold,
4840                         tat: e + ":swap:0"
4841                     }
4842                 })
4843             }
4844         }, {
4845             name: "Set Gold",
4846             description: "Sets amount of gold",
4847             inputs: [{
4848                 name: "Gold",
4849                 type: "number"
4850             }],
4851             run: function(e) {
4852                 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4853                 t.setState({
4854                     gold: e,
4855                     gold2: e
4856                 }), t.props.liveGameController.setVal({
4857                     path: "c/".concat(t.props.client.name),
4858                     val: {
4859                         b: t.props.client.blook,
4860                         g: e
4861                     }
4862                 })
4863             }
4864         }, {
4865             name: "Swap Gold",
4866             description: "Swaps gold with someone",
4867             inputs: [{
4868                 name: "Player",
4869                 type: "options",
4870                 options() {
4871                     let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4872                     return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
4873                 }
4874             }],
4875             run: function(e) {
4876                 let t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4877                 t.props.liveGameController.getDatabaseVal("c", a => {
4878                     a?.[e] && (a = a[e].g, t.props.liveGameController.setVal({
4879                         path: "c/".concat(t.props.client.name),
4880                         val: {
4881                             b: t.props.client.blook,
4882                             g: a,
4883                             tat: e + ":swap:" + t.state.gold
4884                         }
4885                     }), t.setState({
4886                         gold: a,
4887                         gold2: a
4888                     }))
4889                 })
4890             }
4891         }, {
4892             name: "Set Player's Gold",
4893             description: "Sets a players gold to any amount.",
4894             inputs: [{
4895                 name: "Player",
4896                 type: "options",
4897                 options() {
4898                     let e = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
4899                     return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
4900                 }
4901             }, {
4902                 name: "Amount",
4903                 type: "input"
4904             }],
4905             run: (player, amount) => {
4906                 const sn = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
4907                 sn.props.liveGameController.setVal({
4908                     path: `c/${sn.props.client.name}/tat`,
4909                     val: `${player}:swap:${amount}`
4910                 });
4911             }
4912         }, {
4913             name: "Send Ad Text",
4914             description: "Sends a load of text to another player (This will override your blook!)",
4915             inputs: [{
4916                 name: "Player",
4917                 type: "options",
4918                 options() {
4919                     let {
4920                         stateNode: e
4921                     } = Object.values(function e(t = document.querySelector("body>div")) {
4922                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
4923                     }())[1].children[0]._owner;
4924                     return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]));
4925                 }
4926             }, {
4927                 name: "Text"
4928             }],
4929             run: async function(player, e) {
4930                 let {
4931                     props: t2
4932                 } = Object.values(function e(t = document.querySelector("body>div")) {
4933                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
4934                 }())[1].children[0]._owner.stateNode;
4936                 let repeatedText = `Dog:${Array(500).fill(e).join(' ')}`;
4937                 t2.client.blook = repeatedText;
4938                 t2.liveGameController.setVal({
4939                     path: `c/${t2.client.name}/b`,
4940                     val: repeatedText
4941                 });
4942                 t2.liveGameController.setVal({
4943                     path: `c/${t2.client.name}/tat`,
4944                     val: `${player}:196`
4945                 });
4946             }
4947         }, {
4948             name: "Reset All Players' Gold",
4949             description: "Set's everyone else's gold to 0",
4950             run: function() {
4951                 var e = document.createElement("iframe");
4952                 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove();
4953                 let {
4954                     props: t,
4955                     state: a
4956                 } = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode, o = 0;
4957                 t.liveGameController.getDatabaseVal("c", async e => {
4958                     if (e)
4959                         for (let r of Object.keys(e)) t.liveGameController.setVal({
4960                             path: "c/".concat(t.client.name),
4961                             val: {
4962                                 b: t.client.blook,
4963                                 g: a.gold,
4964                                 tat: r + ":swap:0"
4965                             }
4966                         }), o++, await new Promise(e => setTimeout(e, 4e3));
4967                     alert(`Reset ${o} players' gold!`)
4968                 })
4969             }
4970         }, {
4971             name: "Crash Host (Gold)",
4972             description: "Crashes the Host's Game for Gold Quest",
4973             run: function() {
4974                 function reactHandler() {
4975                     return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
4976                 }
4978                 function setv(args) {
4979                     reactHandler().stateNode.props.liveGameController.setVal({
4980                         path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
4981                         val: args.slice(1, args.length).join(" ")
4982                     });
4983                 }
4985                 setv(['g/t', 't']);
4986             }
4987         }],
4988         kingdom: [{
4989             name: "Choice ESP",
4990             description: "Shows you what will happen if you say Yes or No",
4991             type: "toggle",
4992             enabled: false,
4993             data: null,
4994             run: function() {
4995                 if (this.enabled) {
4996                     this.enabled = false;
4997                     clearInterval(this.data);
4998                     this.data = null;
4999                 } else {
5000                     this.enabled = true;
5001                     this.data = setInterval((stats => {
5002                         let {
5003                             stateNode
5004                         } = Object.values((function react(r = document.querySelector("body>div")) {
5005                             return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
5006                         })())[1].children[0]._owner;
5008                         let elements = Array.prototype.reduce.call(
5009                             document.querySelectorAll('[class*=statContainer]'),
5010                             (obj, container, i) => (obj[stats[i]] = container, obj), {}
5011                         );
5013                         if (stateNode.state.phase == "choice") {
5014                             Array.prototype.forEach.call(document.querySelectorAll('.choiceESP'), x => x.remove());
5016                             Object.keys(stateNode.state.guest.yes || {}).forEach(x => {
5017                                 if (elements[x] == null) return;
5018                                 let element = document.createElement('div');
5019                                 element.className = 'choiceESP';
5020                                 element.style = 'font-size: 24px; color: rgb(75, 194, 46); font-weight: bolder;';
5021                                 element.innerText = String(stateNode.state.guest.yes[x]);
5022                                 elements[x].appendChild(element);
5023                             });
5025                             Object.keys(stateNode.state.guest.no || {}).forEach(x => {
5026                                 if (elements[x] == null) return;
5027                                 let element = document.createElement('div');
5028                                 element.className = 'choiceESP';
5029                                 element.style = 'font-size: 24px; color: darkred; font-weight: bolder;';
5030                                 element.innerText = String(stateNode.state.guest.no[x]);
5031                                 elements[x].appendChild(element);
5032                             });
5034                             Array.prototype.forEach.call(
5035                                 document.querySelectorAll("[class*=guestButton][role=button]"),
5036                                 x => (x.onclick = () => Array.prototype.forEach.call(document.querySelectorAll(".choiceESP"), x => x.remove()))
5037                             );
5038                         }
5039                     }), 50, ['materials', 'people', 'happiness', 'gold']);
5040                 }
5041             }
5042         }, {
5043             name: "Disable Tax Toucan",
5044             description: "Tax evasion",
5045             run: function() {
5046                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.taxCounter = Number.MAX_VALUE
5047             }
5048         }, {
5049             name: "Max Stats",
5050             description: "Sets all resources to the max",
5051             run: function() {
5052                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
5053                     materials: 100,
5054                     people: 100,
5055                     happiness: 100,
5056                     gold: 100
5057                 })
5058             }
5059         }, {
5060             name: "Set Guests",
5061             description: "Sets the amount of guests you've seen",
5062             inputs: [{
5063                 name: "Guests",
5064                 type: "number"
5065             }],
5066             run: function(e) {
5067                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
5068                     guestScore: e
5069                 })
5070             }
5071         }, {
5072             name: "Skip Guest",
5073             description: "Skips the current guest",
5074             run: function() {
5075                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.nextGuest()
5076             }
5077         }],
5078         racing: [{
5079             name: "Instant Win",
5080             description: "Instantly Wins the race",
5081             run: function() {
5082                 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5083                 e.setState({
5084                     progress: e.state.goalAmount
5085                 }, () => {
5086                     let {
5087                         question: t
5088                     } = e.state;
5089                     try {
5090                         [...document.querySelectorAll('[class*="answerContainer"]')][t.answers.map((e, a) => t.correctAnswers.includes(e) ? a : null).filter(e => null != e)[0]]?.click?.()
5091                     } catch {}
5092                 })
5093             }
5094         }, {
5095             name: "Set Questions",
5096             description: "Sets the number of questions left",
5097             inputs: [{
5098                 name: "Questions",
5099                 type: "number"
5100             }],
5101             run: function(progress) {
5102                 let {
5103                     stateNode
5104                 } = Object.values((function react(r = document.querySelector("body>div")) {
5105                     return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
5106                 })())[1].children[0]._owner;
5107                 progress = stateNode.props.client.amount - progress;
5108                 stateNode.setState({
5109                     progress
5110                 });
5111                 stateNode.props.liveGameController.setVal({
5112                     path: "c/".concat(stateNode.props.client.name),
5113                     val: {
5114                         b: stateNode.props.client.blook,
5115                         pr: progress
5116                     }
5117                 });
5118             }
5119         }, {
5120             name: "Attack Player",
5121             description: "Sends the specified attack to a player",
5122             inputs: [{
5123                 name: "Player",
5124                 type: "options",
5125                 options() {
5126                     let {
5127                         stateNode: e
5128                     } = Object.values(function e(t = document.querySelector("body>div")) {
5129                         return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
5130                     }())[1].children[0]._owner;
5131                     return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
5132                 }
5133             }, {
5134                 name: "Attack",
5135                 type: "options",
5136                 options: Object.entries({
5137                     "Woosh(-1)": "wind",
5138                     "Rocket(-1)": "rocket",
5139                     "Fire(-3)": "fire",
5140                     "Freeze": "freeze"
5141                 }).map(([e, t]) => ({
5142                     name: e,
5143                     value: t
5144                 }))
5145             }],
5146             run: function(player, attack) {
5147                 let {
5148                     stateNode
5149                 } = Object.values((function react(r = document.querySelector("body>div")) {
5150                     return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
5151                 })())[1].children[0]._owner;
5152                 stateNode.props.liveGameController.setVal({
5153                     path: `c/${stateNode.props.client.name}/tat`,
5154                     val: player + ":" + attack
5155                 });
5156             }
5157         }],
5158         extras: [{
5159             name: "Toggle Invert Colors",
5160             description: "Toggle between inverting and restoring colors on the page",
5161             run: function() {
5162                 "invert()" == document.getElementsByTagName("html")[0].style.filter ? document.getElementsByTagName("html")[0].style.filter = "" : document.getElementsByTagName("html")[0].style.filter = "invert()", elems = document.querySelectorAll(" a, img, video");
5163                 for (let e = 0; e < elems.length; e++)("A" == elems[e].nodeName && ("" != elems[e].style.background || "" != elems[e].style.backgroundImage) || "A" != elems[e].nodeName) && ("invert()" == elems[e].style.filter ? elems[e].style.filter = "" : elems[e].style.filter = "invert()")
5164             }
5165         }, {
5166             name: "Toggle Dark Mode",
5167             description: "Toggles Dark Mode",
5168             run: function() {
5169                 var e = document.createElement("iframe");
5170                 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), ! function e() {
5171                     let t = document.querySelectorAll("#nightify");
5172                     if (t.length) t[0].parentNode.removeChild(t[0]);
5173                     else {
5174                         var a = document.getElementsByTagName("head")[0],
5175                             o = document.createElement("style");
5176                         o.setAttribute("type", "text/css"), o.setAttribute("id", "nightify"), o.appendChild(document.createTextNode(`html{-webkit-filter:invert(100%) hue-rotate(180deg) contrast(70%) !important; background: #222;} .line-content {background-color: #333;} html img{-webkit-filter:invert(100%) hue-rotate(0deg) contrast(100%) !important;}`)), a.appendChild(o)
5177                     }
5178                 }()
5179             }
5180         }, {
5181             name: "3D Page",
5182             description: "Makes the page 3D",
5183             run: function() {
5184                 var e = {
5185                     menu: document.createElement("div"),
5186                     limit: document.createElement("input"),
5187                     gap: document.createElement("input"),
5188                     sag: document.createElement("input"),
5189                     fov: document.createElement("input"),
5190                     flo: document.createElement("input"),
5191                     off: document.createElement("input"),
5192                     non: document.createElement("input"),
5193                     end: document.createElement("input"),
5194                     tgl: document.createElement("input"),
5195                     cssStatic: document.createElement("style"),
5196                     cssDynamic: document.createElement("style"),
5197                     orientation: {
5198                         yaw: 0,
5199                         pitch: 0,
5200                         roll: 0
5201                     },
5202                     mouseMove: function(t) {
5203                         e.orientation.yaw = -(180 * Math.cos(Math.PI * t.clientX / innerWidth)) * e.limit.value, e.orientation.pitch = 180 * Math.cos(Math.PI * t.clientY / innerHeight) * e.limit.value, e.updateBody()
5204                     },
5205                     gyroMove: function(t) {
5206                         innerWidth > innerHeight ? (e.orientation.yaw = -(t.alpha + t.beta), e.orientation.pitch = t.gamma - 90 * Math.sign(90 - Math.abs(t.beta))) : (e.orientation.yaw = -(t.alpha + t.gamma), e.orientation.pitch = t.beta - 90), e.updateBody()
5207                     },
5208                     updateOrigin: function(e) {
5209                         document.body.style.transformOrigin = innerWidth / 2 + pageXOffset + "px " + (innerHeight / 2 + pageYOffset) + "px"
5210                     },
5211                     updateBody: function() {
5212                         document.body.style.transform = "perspective(" + Math.pow(2, e.fov.value) + "px) translateZ(-" + e.gap.value + "px) rotateX(" + e.orientation.pitch + "deg) rotateY(" + e.orientation.yaw + "deg)"
5213                     },
5214                     updateCSS: function() {
5215                         if (e.non.checked) e.cssDynamic.innerHTML = "";
5216                         else if (e.off.checked) e.cssDynamic.innerHTML = "* { transform-style: preserve-3d; }";
5217                         else {
5218                             for (var t = 0; document.querySelector("body" + " > *".repeat(t)); t++);
5219                             var a = e.gap.value / t,
5220                                 o = -Math.PI * e.sag.value / t;
5221                             e.cssDynamic.innerHTML = ` * { transform: translateZ(${a}px) rotateX(${o}rad); transform-style: preserve-3d; transition: transform 1s; outline: 1px solid rgba(0, 0, 0, 0.0625); ${e.flo.checked?"overflow: visible !important;":""} } *:hover { transform: translateZ(${2*a}px) rotateX(${2*o}rad); ${e.flo.checked?"":"overflow: visible;"} } `
5222                         }
5223                     },
5224                     toggle: function() {
5225                         "active" == e.menu.className ? e.menu.removeAttribute("class") : e.menu.className = "active"
5226                     },
5227                     quit: function() {
5228                         window.removeEventListener("deviceorientation", e.gyroMove), window.removeEventListener("mousemove", e.mouseMove), window.removeEventListener("scroll", e.updateOrigin), window.addEventListener("resize", e.updateOrigin), e.menu.remove(), e.cssStatic.remove(), e.cssDynamic.remove(), document.body.removeAttribute("style")
5229                     },
5230                     newRange: function(t, a, o, r, i, n, s) {
5231                         e.menu.appendChild(t), t.type = "range", t.min = o, t.max = i, t.step = r, t.value = n, t.addEventListener("input", s), e.menu.appendChild(document.createElement("span")).innerHTML = a, e.menu.appendChild(document.createElement("br"))
5232                     },
5233                     newCheckbox: function(t, a, o) {
5234                         e.menu.appendChild(t), t.type = "checkbox", t.addEventListener("click", o), e.menu.appendChild(document.createElement("span")).innerHTML = a, e.menu.appendChild(document.createElement("br"))
5235                     },
5236                     newButton: function(t, a, o) {
5237                         e.menu.appendChild(t), t.type = "button", t.value = a, t.addEventListener("click", o)
5238                     },
5239                     init: function() {
5240                         document.body.parentNode.appendChild(e.menu).id = "tri-menu", e.newRange(e.limit, "limit", 0, .03125, 1, .125, e.updateBody), e.newRange(e.gap, "gap / distance", 0, 32, 512, 128, function() {
5241                             e.updateCSS(), e.updateBody()
5242                         }), e.newRange(e.sag, "sag", -.25, .03125, .25, 0, e.updateCSS), e.newRange(e.fov, "field of view", 7, 1, 13, 10, e.updateBody), e.newCheckbox(e.flo, "force overflow", e.updateCSS), e.flo.setAttribute("checked", ""), e.newCheckbox(e.off, "flatten layers", e.updateCSS), e.newCheckbox(e.non, "flatten everything", e.updateCSS), e.newButton(e.end, "Quit", e.quit), e.newButton(e.tgl, "≡", e.toggle), e.tgl.id = "tri-toggle", e.menu.appendChild(e.cssStatic).innerHTML = " html, body { transition-property: none; height: 100%25; width: 100%25; } html, html:hover, #tri-menu, #tri-menu > *, #tri-menu > *:hover { transform: none; outline: none; overflow: auto !important; float: none; } #tri-menu { position: fixed; top: 0; left: 0; background: rgba(0, 0, 0, 0.5); color: white; border: 1px solid rgba(255, 255, 255, 0.5);; border-radius: 0 0 16px 0; padding: 8px; transform: translate(-100%25, -100%25) translate(32px, 32px); } #tri-menu.active { transform: none; } #tri-toggle { position: absolute; bottom: 0; right: 0; height: 32px; width: 32px; background: transparent; color: white; border: none; cursor: pointer; } #tri-menu.active > #tri-toggle { background: white; color: black; border-radius: 8px 0 0 0; }", e.menu.appendChild(e.cssDynamic), e.updateCSS(), window.addEventListener("deviceorientation", e.gyroMove), window.addEventListener("mousemove", e.mouseMove), window.addEventListener("scroll", e.updateOrigin), window.addEventListener("resize", e.updateOrigin), window.scrollBy(0, 1)
5243                     }
5244                 };
5245                 e.init()
5246             }
5247         }, {
5248             name: "History Flooder",
5249             description: "Floods browser history with specified amount of entries",
5250             inputs: [{
5251                 name: "Amount",
5252                 type: "number"
5253             }],
5254             run: function(e) {
5255                 var t = e;
5256                 done = !1, C = window.location.href;
5257                 for (var a = 1; a <= t; a++) history.pushState(0, 0, a == t ? C : a.toString()), a == t && (done = !0);
5258                 !0 === done && alert("History flood successful! " + window.location.href + " now appears in your history " + t + (1 == t ? " time." : " times. "))
5259             }
5260         }, {
5261             name: "Auto Clicker",
5262             description: "Automatically clicks for you. Press S to toggle.",
5263             inputs: [{
5264                 name: "Click Delay",
5265                 type: "number"
5266             }],
5267             run: function(inputs) {
5268                 clicker: {
5269                     "use strict";
5271                     let clickInterval = null;
5272                     let clickingEnabled = true;
5274                     const {
5275                         Number,
5276                         self
5277                     } = window;
5278                     const milliseconds = Number.parseInt(inputs, 10);
5280                     if (false === Number.isSafeInteger(milliseconds)) {
5281                         self.alert("Input was not an integer");
5282                         break clicker;
5283                     }
5285                     let clientX = 0,
5286                         clientY = 0;
5287                     const {
5288                         document
5289                     } = self;
5291                     function startClicking() {
5292                         clickInterval = self.setInterval(() => {
5293                             document.elementFromPoint(clientX, clientY)?.click?.();
5294                         }, milliseconds);
5295                     }
5297                     function stopClicking() {
5298                         self.clearInterval(clickInterval);
5299                         clickInterval = null;
5300                     }
5302                     startClicking();
5304                     document.addEventListener("mousemove", event => {
5305                         ({
5306                             clientX,
5307                             clientY
5308                         } = event);
5309                     }, {
5310                         passive: true
5311                     });
5313                     self.addEventListener("keydown", event => {
5314                         if (event.key === "s") {
5315                             if (clickingEnabled) {
5316                                 stopClicking();
5317                             } else {
5318                                 startClicking();
5319                             }
5320                             clickingEnabled = !clickingEnabled;
5321                         }
5322                     });
5323                 }
5324             }
5325         }, {
5326             name: "Tab Cloaker",
5327             description: "Changes the tab image and name",
5328             inputs: [{
5329                 name: "Icon URL",
5330                 type: "text",
5331             }, {
5332                 name: "Tab Title",
5333                 type: "text",
5334             }],
5335             run: function(e, t) {
5336                 var a = document.querySelector("link[rel*='icon']") || document.createElement("link");
5337                 a.type = "image/x-icon", a.rel = "shortcut icon", a.href = e || "https://www.blooket.com/favicon.ico", document.getElementsByTagName("head")[0].appendChild(a), document.title = t || "Blooket"
5338             }
5339         }],
5340         host: [{
5341             name: "Host Any Gamemode",
5342             description: "Change the selected gamemode on the host settings page",
5343             inputs: [{
5344                 name: "Gamemode",
5345                 type: "options",
5346                 options: ["Racing", "Classic", "Factory", "Cafe", "Defense2", "Defense", "Royale", "Gold", "Candy", "Brawl", "Hack", "Pirate", "Fish", "Dino", "Toy", "Rush"]
5347             }],
5348             run: function(e) {
5349                 let t = document.createElement("iframe");
5350                 if (document.body.append(t), window.alert = t.contentWindow.alert.bind(window), window.prompt = t.contentWindow.prompt.bind(window), t.remove(), "/host/settings" != location.pathname) return alert("Run this script on the host settings page");
5351                 let {
5352                     stateNode: a
5353                 } = Object.values(function e(t = document.querySelector("body>div")) {
5354                     return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
5355                 }())[1].children[0]._owner;
5356                 a.setState({
5357                     settings: {
5358                         type: e
5359                     }
5360                 })
5361             }
5362         }, {
5363             name: "Toggle Spooky Theme",
5364             description: "Toggles the spooky theme for Gold Quest",
5365             run: function() {
5366                 (() => {
5367                     const sn = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
5368                     sn.season = sn.season ? 0 : 1;
5369                     sn.render();
5370                 })();
5371             }
5372         }, {
5373             name: "Freeze Timer",
5374             description: "Makes the host timer stop ingame",
5375             run: function() {
5376                 (() => {
5377                     const {
5378                         stateNode
5379                     } = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner;
5380                     clearInterval(stateNode.timerInterval);
5381                     stateNode.timerInterval = setInterval(function() {
5382                         stateNode?.getClients?.(!1);
5383                     }, 4000);
5384                 })();
5385             }
5386         }, {
5387             name: "Render Hours on Host Timer",
5388             description: "Renders hours on host timer(use with remove host time limit). Can only render up to 24 hours.",
5389             run: function() {
5390                 (() => {
5391                     const format = "HH:mm:ss";
5392                     const reg = '/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g';
5393                     if (!RegExp.prototype.tes) {
5394                         RegExp.prototype.tes = RegExp.prototype.test;
5395                     }
5396                     RegExp.prototype.test = function(a) {
5397                         if (a == "mm:ss" && this.toString() == reg) {
5398                             return !0;
5399                         }
5400                         return RegExp.prototype.tes.apply(this, arguments);
5401                     }
5402                     if (!String.prototype.rep) {
5403                         String.prototype.rep = String.prototype.replace;
5404                     }
5405                     String.prototype.replace = function(a, b) {
5406                         if (this == "mm:ss" && a.toString() == reg) {
5407                             return format;
5408                         }
5409                         return String.prototype.rep.apply(this, arguments);
5410                     }
5411                 })();
5412             }
5413         }, {
5414             name: "View Lobbychat Logs",
5415             description: "View messages players type in chat",
5416             run: function() {
5417                 function reactHandler() {
5418                     return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
5419                 }
5421                 document.addEventListener("keydown", function(e) {
5422                     if (e.key === "Shift" && e.code === "ShiftRight") {
5423                         c.style.display = c.style.display === "none" ? "block" : "none";
5424                     }
5425                 });
5427                 const c = document.createElement("div");
5428                 c.className = "chat-box";
5429                 document.body.appendChild(c);
5430                 const h = document.createElement("div");
5431                 h.className = "chat-header";
5432                 h.textContent = "Chat Logs (RSHIFT to hide)";
5433                 c.appendChild(h);
5434                 const b = document.createElement("div");
5435                 b.className = "chat-body";
5436                 c.appendChild(b);
5438                 function a(e) {
5439                     const t = document.createElement("div");
5440                     t.textContent = e;
5441                     b.appendChild(t);
5442                     b.scrollTop = b.scrollHeight;
5443                 }
5445                 c.style.position = "fixed";
5446                 c.style.bottom = "20px";
5447                 c.style.right = "20px";
5448                 c.style.width = "300px";
5449                 c.style.height = "400px";
5450                 c.style.backgroundColor = "#fff";
5451                 c.style.border = "1px solid #ccc";
5452                 c.style.boxShadow = "0px 0px 10px rgba(0, 0, 0, 0.2)";
5453                 c.style.display = "block";
5455                 b.style.height = "360px";
5456                 b.style.overflowY = "scroll";
5457                 b.style.padding = "10px";
5459                 h.addEventListener("click", () => {
5460                     b.classList.toggle("open");
5461                 });
5463                 var da = reactHandler().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_;
5465                 function handleChat(e, t) {
5466                     if (t != null) {
5467                         if (e.includes("/msg")) {
5468                             t?.msg && (console.log(t.msg), a(e.split("/")[2] + ": " + t.msg));
5469                         }
5470                     }
5471                 }
5473                 reactHandler().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_ = function(e, t, a, n) {
5474                     console.log(e, t, a, n);
5475                     handleChat(e, t);
5476                     da(e, t, a, n);
5477                 };
5479                 window.logsv = false;
5481                 function onsv(e) {
5482                     if (window.logsv) {
5483                         a("Path: " + e.path.split("/").splice(2, 2).join("/") + " Val: " + ((typeof e.val === 'object') ? JSON.stringify(e.val) : e.val));
5484                     }
5485                 }
5487                 var orgsv = reactHandler().stateNode.props.liveGameController.setVal;
5488                 reactHandler().stateNode.props.liveGameController.setVal = function() {
5489                     onsv.apply(this, arguments);
5490                     orgsv.apply(this, arguments);
5491                 };
5493                 reactHandler().stateNode.props.liveGameController._liveApp.database().ref(`${reactHandler().stateNode.props.liveGameController._liveGameCode}`).on("value", e => {});
5494                 a("Lobbychat successfully loaded!");
5496                 function app() {
5497                     c.style.wordWrap = "break-word";
5498                 }
5500                 app();
5501             }
5502         }, {
5503             name: "Remove Host Time Limit",
5504             description: "Removes the host time limit",
5505             run: function() {
5506                 (() => {
5507                     const sn = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
5508                     sn.onAmountUpdate = function(t) {
5509                         let settings = sn.state.settings;
5510                         settings.amount = parseInt(t.target.value);
5511                         sn.setState({
5512                             settings
5513                         });
5514                     }
5515                 })();
5516             }
5517         }, {
5518             name: "Free Player Slots",
5519             description: "Allows more players to join if the game is full",
5520             run: async () => {
5521                 let i = document.createElement('iframe');
5522                 document.body.append(i);
5523                 const alert = i.contentWindow.alert.bind(window);
5524                 i.remove();
5525                 const stateNode = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
5526                 const players = await stateNode.props.liveGameController.getDatabaseVal("c");
5527                 let freed = 0;
5528                 if (!stateNode.state.blockedUsers) {
5529                     stateNode.state.blockedUsers = [];
5530                 }
5531                 async function wait(time) {
5532                     return new Promise(e => {
5533                         setTimeout(e, time);
5534                     });
5535                 }
5536                 async function blockUser(name) {
5537                     if (stateNode.state.blockedUsers.includes(name)) {
5538                         return;
5539                     }
5540                     const res = await fetch("https://fb.blooket.com/c/firebase/block", {
5541                         headers: {
5542                             "Content-Type": "application/json"
5543                         },
5544                         method: "POST",
5545                         body: JSON.stringify({
5546                             g: stateNode.props.host.id,
5547                             u: name
5548                         }),
5549                         credentials: "include"
5550                     });
5551                     if (res.status !== 200) {
5552                         return;
5553                     }
5554                     stateNode.state.blockedUsers.push(name);
5555                     freed++;
5556                     if (freed % parseInt("15") == 0) {
5557                         await wait(600);
5558                     }
5559                     C.alerts?.[0].addLog("Freed user: " + name);
5560                 }
5561                 for (let i in players) {
5562                     await blockUser(i);
5563                 }
5564                 alert(`Freed slots: ${freed}`);
5565             }
5566         }, {
5567             name: "Realtime Updates",
5568             description: "Makes leaderboard updates happen in real-time.",
5569             run: async () => {
5570                 const stateNode = () => Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
5571                 (await stateNode().props.liveGameController.getDatabaseRef("")).on("value", e => stateNode()?.getClients?.(!1));
5572             }
5573         }, {
5574             name: "Anti-Flood",
5575             description: "Prevents bots from flooding the game",
5576             enabled: false,
5577             data: null,
5578             run: function() {
5579                 if (this.enabled) {
5580                     return;
5581                 }
5583                 this.enabled = true;
5584                 this.data = setInterval(async () => {
5585                     var iframe = document.createElement("iframe");
5586                     document.body.append(iframe);
5587                     window.confirm = iframe.contentWindow.confirm.bind(window);
5588                     iframe.style.display = "none";
5590                     try {
5591                         let stateNode = Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode;
5592                         var dbRef = await stateNode.props.liveGameController.getDatabaseRef("c");
5593                         let currentClients = {},
5594                             clientCounts = {};
5596                         dbRef.on("value", snapshot => {
5597                             var clients = snapshot.val() || {};
5598                             var newClients = [];
5600                             for (const key in clients) {
5601                                 if (!currentClients[key]) {
5602                                     newClients.push(key);
5603                                     clientCounts[key.replace(/[0-9]/g, "")] = (clientCounts[key.replace(/[0-9]/g, "")] || 0) + 1;
5604                                 }
5605                             }
5607                             currentClients = clients;
5609                             for (const client of newClients) {
5610                                 if (currentClients[client].g || clientCounts[client.replace(/[0-9]/g, "")] > 1) {
5611                                     stateNode.props.liveGameController.blockUser(client);
5612                                     clientCounts[client.replace(/[0-9]/g, "")]--;
5613                                 }
5614                             }
5615                         });
5616                     } catch (error) {
5617                         console.error("An error occurred", error);
5618                     }
5619                 }, 2000);
5620             }
5621         }, {
5622             name: "Enable Mobile Hosting",
5623             description: "Makes it so that you can host on mobile",
5624             run: function() {
5625                 (function() {
5626                     var metaViewport = document.querySelector('meta[name="viewport"]');
5627                     if (metaViewport) {
5628                         metaViewport.parentNode.removeChild(metaViewport);
5629                     }
5630                     var newMetaViewport = document.createElement('meta');
5631                     newMetaViewport.name = 'viewport';
5632                     newMetaViewport.content = 'width=1280, initial-scale=1';
5633                     document.head.appendChild(newMetaViewport);
5634                 })();
5635             }
5636         }, {
5637             name: "Kick All Players",
5638             description: "Kicks all players from your game.",
5639             run: async () => {
5640                 const sn = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
5641                 const db = await sn.props.liveGameController.getDatabaseVal("");
5642                 sn.props.liveGameController.setVal({
5643                     path: "bu",
5644                     val: Object.keys(db.c).reduce((a, b) => (a[b] = 1, a), db.bu ? db.bu : {})
5645                 });
5646                 sn.props.liveGameController.setVal({
5647                     path: "c",
5648                     val: {}
5649                 });
5650             }
5651         }],
5652         royale: [{
5653             name: "Auto Answer (Toggle)",
5654             description: "Toggles auto answer on",
5655             type: "toggle",
5656             enabled: !1,
5657             data: null,
5658             run: function() {
5659                 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
5660                     var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5661                     e?.onAnswer?.(!0, e.props.client.question.correctAnswers[0])
5662                 }, 50))
5663             }
5664         }, {
5665             name: "Auto Answer",
5666             description: "Chooses the correct answer for you. Will answer with the time provided.",
5667             inputs: [{
5668                 name: "Time (milliseconds)",
5669                 type: "number",
5670                 min: 0,
5671                 max: 20000,
5672             }],
5673             run: (a) => {
5674                 const stateNode = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
5675                 stateNode.startTime = performance.now() - a;
5676                 stateNode?.onAnswer?.(true, stateNode.props.client.question.correctAnswers[0]);
5677             }
5678         }],
5679         rush: [{
5680             name: "Set Blooks",
5681             description: "Sets amount of blooks you or your team has",
5682             inputs: [{
5683                 name: "Blooks",
5684                 type: "number"
5685             }],
5686             run: function(e) {
5687                 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5688                 t.setState({
5689                     numBlooks: e
5690                 }), t.isTeam ? t.props.liveGameController.setVal({
5691                     path: `a/${t.props.client.name}/bs`,
5692                     val: e
5693                 }) : t.props.liveGameController.setVal({
5694                     path: `c/${t.props.client.name}/bs`,
5695                     val: numDefense
5696                 })
5697             }
5698         }, {
5699             name: "Set Defense",
5700             description: "Sets amount of defense you or your team has (Max 4)",
5701             inputs: [{
5702                 name: "Defense (max 4)",
5703                 type: "number",
5704                 max: 4
5705             }],
5706             run: function(e) {
5707                 var e = Math.min(e, 4),
5708                     t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5709                 t.setState({
5710                     numDefense: e
5711                 }), t.isTeam ? t.props.liveGameController.setVal({
5712                     path: `a/${t.props.client.name}/d`,
5713                     val: e
5714                 }) : t.props.liveGameController.setVal({
5715                     path: `c/${t.props.client.name}/d`,
5716                     val: e
5717                 })
5718             }
5719         }, {
5720             name: "Freeze Host :)",
5721             description: "They aint coming back with this one",
5722             run: function() {
5723                 var largeNumber = "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999";
5724                 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5725                 t.setState({
5726                     numBlooks: largeNumber
5727                 });
5728                 if (t.isTeam) {
5729                     t.props.liveGameController.setVal({
5730                         path: `a/${t.props.client.name}/bs`,
5731                         val: largeNumber
5732                     });
5733                 } else {
5734                     t.props.liveGameController.setVal({
5735                         path: `c/${t.props.client.name}/bs`,
5736                         val: largeNumber
5737                     });
5738                 }
5739             }
5740         }],
5741         workshop: [{
5742             name: "Remove Distractions",
5743             description: "Removes all enemy distractions",
5744             run: function() {
5745                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
5746                     fog: !1,
5747                     dusk: !1,
5748                     wind: !1,
5749                     plow: !1,
5750                     blizzard: !1,
5751                     force: !1,
5752                     canada: !1,
5753                     trees: [!1, !1, !1, !1, !1, !1, !1, !1, !1, !1]
5754                 })
5755             }
5756         }, {
5757             name: "Send Distraction",
5758             description: "Sends a distraction to everyone else playing",
5759             inputs: [{
5760                 name: "Distraction",
5761                 type: "options",
5762                 options: Object.entries({
5763                     c: "Oh Canada",
5764                     b: "Blizzard",
5765                     f: "Fog Spell",
5766                     d: "Dark & Dusk",
5767                     w: "Howling Wind",
5768                     g: "Gift Time!",
5769                     t: "TREES",
5770                     s: "Snow Plow",
5771                     fr: "Use The Force"
5772                 }).map(([e, t]) => ({
5773                     name: t,
5774                     value: e
5775                 }))
5776             }],
5777             run: function(e) {
5778                 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5779                 t.safe = !0, t.props.liveGameController.setVal({
5780                     path: `c/${t.props.client.name}/tat`,
5781                     val: e
5782                 })
5783             }
5784         }, {
5785             name: "Set Toys",
5786             description: "Sets amount of toys",
5787             inputs: [{
5788                 name: "Toys",
5789                 type: "number"
5790             }],
5791             run: function(e) {
5792                 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5793                 t.setState({
5794                     toys: e
5795                 }), t.props.liveGameController.setVal({
5796                     path: "c/".concat(t.props.client.name),
5797                     val: {
5798                         b: t.props.client.blook,
5799                         t: e
5800                     }
5801                 })
5802             }
5803         }, {
5804             name: "Set Toys Per Question",
5805             description: "Sets amount of toys per question",
5806             inputs: [{
5807                 name: "Toys Per Question",
5808                 type: "number"
5809             }],
5810             run: function(e) {
5811                 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
5812                     toysPerQ: e
5813                 })
5814             }
5815         }, {
5816             name: "Swap Toys",
5817             description: "Swaps toys with someone",
5818             inputs: [{
5819                 name: "Player",
5820                 type: "options",
5821                 options() {
5822                     let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5823                     return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
5824                 }
5825             }],
5826             run: function(e) {
5827                 let t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5828                 t.props.liveGameController.getDatabaseVal("c", a => {
5829                     var o;
5830                     a && Object.keys(a).map(e => e.toLowerCase()).includes(e.toLowerCase()) && ([a, {
5831                         t: o
5832                     }] = Object.entries(a).find(([t]) => t.toLowerCase() == e.toLowerCase()), t.props.liveGameController.setVal({
5833                         path: "c/".concat(t.props.client.name),
5834                         val: {
5835                             b: t.props.client.blook,
5836                             t: o,
5837                             tat: a + ":swap:" + t.state.toys
5838                         }
5839                     }), t.setState({
5840                         toys: o
5841                     }))
5842                 })
5843             }
5844         }],
5845         settings: [{
5846             name: "Import Settings",
5847             description: "Import a custom theme",
5848             inputs: [{
5849                 name: "JSON Data",
5850                 type: "string"
5851             }],
5852             run: function(e) {
5853                 try {
5854                     JSON.parse(e)
5855                 } catch (t) {
5856                     return alert("Invalid JSON provided")
5857                 }
5858                 for (let a in e = {
5859                         backgroundColor: "rgb(11, 194, 207)",
5860                         infoColor: "#9a49aa",
5861                         cheatList: "#9a49aa",
5862                         defaultButton: "#9a49aa",
5863                         disabledButton: "#A02626",
5864                         enabledButton: "#47A547",
5865                         textColor: "white",
5866                         inputColor: "#7a039d",
5867                         contentBackground: "rgb(64, 17, 95)",
5868                         ...JSON.parse(e)
5869                     }, c.setItem("theme", e), e) p.sheet.cssRules[0].style.setProperty("--" + a, e[a])
5870             }
5871         }, {
5872             name: "Export Settings",
5873             description: "Export the current theme to JSON",
5874             run: async function() {
5875                 await navigator.clipboard.writeText(JSON.stringify(c.data.theme, null, 4)), prompt("Text copied to clipboard. (Paste below to test)")
5876             }
5877         }, {
5878             name: "Defaults",
5879             description: "Changes all the settings to a preset",
5880             inputs: [{
5881                 name: "Theme",
5882                 type: "options",
5883                 options: [{
5884                     name: "Default",
5885                     value: {
5886                         backgroundColor: "rgb(11, 194, 207)",
5887                         infoColor: "#9a49aa",
5888                         cheatList: "#9a49aa",
5889                         defaultButton: "#9a49aa",
5890                         disabledButton: "#A02626",
5891                         enabledButton: "#47A547",
5892                         textColor: "white",
5893                         inputColor: "#7a039d",
5894                         contentBackground: "rgb(64, 17, 95)"
5895                     }
5896                 }, {
5897                     name: "Landscapes (Random)",
5898                     value: {
5899                         backgroundColor: "url(https://source.unsplash.com/1600x900/?landscape)",
5900                         infoColor: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
5901                         cheatList: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
5902                         defaultButton: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
5903                         disabledButton: "linear-gradient(rgba(225, 0, 0, 0.3), rgba(225, 0, 0, 0.3))",
5904                         enabledButton: "linear-gradient(rgba(0, 128, 0, 0.3), rgba(0, 128, 0, 0.3))",
5905                         textColor: "white",
5906                         inputColor: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
5907                         contentBackground: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))"
5908                     }
5909                 }, {
5910                     name: "Blacket",
5911                     value: {
5912                         backgroundColor: "#4f4f4f",
5913                         infoColor: "#2f2f2f",
5914                         cheatList: "#2f2f2f",
5915                         defaultButton: "#4f4f4f",
5916                         disabledButton: "#eb6234",
5917                         enabledButton: "#00c20c",
5918                         textColor: "white",
5919                         inputColor: "#3f3f3f",
5920                         contentBackground: "#2f2f2f"
5921                     }
5922                 }, {
5923                     name: "Ploopit",
5924                     value: {
5925                         backgroundColor: "url(https://i.ibb.co/6vvdq3f/ploopit.png)",
5926                         infoColor: "#3C75F5",
5927                         cheatList: "#204DD0",
5928                         defaultButton: "#204DD0",
5929                         disabledButton: "#A02626",
5930                         enabledButton: "#47A547",
5931                         textColor: "white",
5932                         inputColor: "#3f3f3f",
5933                         contentBackground: "#3C75F5"
5934                     }
5935                 }, {
5936                     name: "Betastar",
5937                     value: {
5938                         backgroundColor: "url(https://i.ibb.co/8bkDpCn/GIFMaker-me.gif)",
5939                         infoColor: "#282828",
5940                         cheatList: "#282828",
5941                         defaultButton: "white",
5942                         disabledButton: "#9D0000",
5943                         enabledButton: "#013220",
5944                         textColor: "black",
5945                         inputColor: "gray",
5946                         contentBackground: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))"
5947                     }
5948                 }, {
5949                     name: "Skool.lol",
5950                     value: {
5951                         backgroundColor: "linear-gradient(90deg, rgba(104,45,140,1) 220px, rgba(237,30,121,1) 100%)",
5952                         cheatList: "#1e2124",
5953                         infoColor: "#1e2124",
5954                         defaultButton: "#36393e",
5955                         inputColor: "#1e2124",
5956                         enabledButton: "#9c9a9a",
5957                         textColor: "white",
5958                         disabledButton: "#171717",
5959                         contentBackground: "#292929"
5960                     }
5961                 }, {
5962                     name: "Blue - Purple Background",
5963                     value: {
5964                         backgroundColor: "linear-gradient(162.5deg, rgba(0,183,255,1) 220px, rgba(128,0,255,1) 100%)"
5965                     }
5966                 }, {
5967                     name: "Saint Patricks Background",
5968                     value: {
5969                         backgroundColor: "rgb(9, 148, 65)"
5970                     }
5971                 }, {
5972                     name: "Halloween Background",
5973                     value: {
5974                         backgroundColor: "rgb(41, 41, 41)"
5975                     }
5976                 }, {
5977                     name: "Fall Background",
5978                     value: {
5979                         backgroundColor: "rgb(224, 159, 62)"
5980                     }
5981                 }, {
5982                     name: "Winter Background",
5983                     value: {
5984                         backgroundColor: "linear-gradient(rgb(49, 170, 224), rgb(187, 221, 255))"
5985                     }
5986                 }, {
5987                     name: "Crypto Hack",
5988                     value: {
5989                         backgroundColor: "radial-gradient(#11581e,#041607)",
5990                         infoColor: "#1a1a1a",
5991                         cheatList: "#1a1a1a",
5992                         defaultButton: "rgb(88 175 88)",
5993                         disabledButton: "#A02626",
5994                         enabledButton: "#0b601b",
5995                         textColor: "white",
5996                         inputColor: "rgb(0 0 0 / 25%)",
5997                         contentBackground: "#11581e"
5998                     }
5999                 }, {
6000                     name: "Fishing Frenzy",
6001                     value: {
6002                         backgroundColor: "linear-gradient(180deg,#9be2fe 0,#67d1fb)",
6003                         infoColor: "#c8591e",
6004                         cheatList: "#c8591e",
6005                         defaultButton: "#ff751a",
6006                         disabledButton: "#bf0e0e",
6007                         enabledButton: "#2fb62f",
6008                         textColor: "white",
6009                         inputColor: "rgb(0 0 0 / 25%)",
6010                         contentBackground: "radial-gradient(#02b0ea 40%, #1d86ea)"
6011                     }
6012                 }, {
6013                     name: "Deceptive Dinos",
6014                     value: {
6015                         backgroundColor: 'radial-gradient(rgba(220, 184, 86, 0), rgba(220, 184, 86, 0.4)), url("https://ac.blooket.com/play/111cb7e0ee6607ac3d1a13d534c0e0f1.png"), #ead49a',
6016                         infoColor: "#af8942",
6017                         cheatList: "#af8942",
6018                         defaultButton: "#af8942",
6019                         disabledButton: "#A02626",
6020                         enabledButton: "#47A547",
6021                         textColor: "white",
6022                         inputColor: "rgb(0 0 0 / 10%)",
6023                         contentBackground: "radial-gradient(rgba(1,104,162,.6),rgba(24,55,110,.5)),radial-gradient(#2783b4 1.5px,#18376e 0) center / 24px 24px"
6024                     }
6025                 }, {
6026                     name: "Blook Rush",
6027                     value: {
6028                         backgroundColor: "repeating-linear-gradient(45deg,white,white 8%,#e6e6e6 0,#e6e6e6 16%)",
6029                         defaultButton: "#36c",
6030                         inputColor: "rgb(0 0 0 / 25%)",
6031                         infoColor: "#36c",
6032                         cheatList: "#36c",
6033                         contentBackground: "#888",
6034                         textColor: "white",
6035                         disabledButton: "#A02626",
6036                         enabledButton: "#47A547"
6037                     }
6038                 }, {
6039                     name: "Factory",
6040                     value: {
6041                         defaultButton: "#1563bf",
6042                         infoColor: "#a5aabe",
6043                         cheatList: "#a5aabe",
6044                         contentBackground: "#2d313d",
6045                         backgroundColor: "#3a3a3a",
6046                         enabledButton: "rgb(75, 194, 46)",
6047                         disabledButton: "#9a49aa",
6048                         inputColor: "rgb(0 0 0 / 25%)",
6049                         textColor: "white"
6050                     }
6051                 }, {
6052                     name: "Cafe",
6053                     value: {
6054                         backgroundColor: "linear-gradient(90deg,rgba(200,0,0,.5) 50%,transparent 0) center / 50px 50px,linear-gradient(rgba(200,0,0,0.5) 50%,transparent 0) white center / 50px 50px",
6055                         defaultButton: "#0bc2cf",
6056                         inputColor: "rgb(0 0 0 / 25%)",
6057                         infoColor: "#ac7339",
6058                         cheatList: "#ac7339",
6059                         contentBackground: "rgb(64, 64, 64)",
6060                         textColor: "white",
6061                         disabledButton: "#A02626",
6062                         enabledButton: "#47A547"
6063                     }
6064                 }, {
6065                     name: "Tower of Doom",
6066                     value: {
6067                         backgroundColor: "rgb(41 41 41)",
6068                         disabledButton: "rgb(151, 15, 5)",
6069                         defaultButton: "#333",
6070                         inputColor: "rgb(0 0 0 / 25%)",
6071                         contentBackground: "#404040",
6072                         enabledButton: "#4bc22e",
6073                         textColor: "white",
6074                         infoColor: "#9a49aa",
6075                         cheatList: "#9a49aa"
6076                     }
6077                 }, {
6078                     name: "Monster Brawl",
6079                     value: {
6080                         defaultButton: "rgb(45, 51, 67)",
6081                         backgroundColor: "rgb(78, 95, 124)",
6082                         inputColor: "rgb(0 0 0 / 25%)",
6083                         contentBackground: "linear-gradient(0deg,#374154,#4f5b74)",
6084                         infoColor: "#374154",
6085                         cheatList: "#374154",
6086                         textColor: "white",
6087                         enabledButton: "#47A547",
6088                         disabledButton: "#A02626"
6089                     }
6090                 }, {
6091                     name: "Tower Defense 2",
6092                     value: {
6093                         backgroundColor: "url(https://media.blooket.com/image/upload/v1676164454/Media/defense/backgroundTd1-02.svg) center / cover",
6094                         cheatList: "#a33c22",
6095                         infoColor: "#a33c22",
6096                         defaultButton: "#40b1d8",
6097                         inputColor: "#3e8cbe",
6098                         contentBackground: "#293c82",
6099                         enabledButton: "#47A547",
6100                         disabledButton: "#A02626",
6101                         textColor: "white"
6102                     }
6103                 }]
6104             }],
6105             run: function(e) {
6106                 for (let t in c.setItem("theme", {
6107                         ...c.data.theme,
6108                         ...e
6109                     }), e) p.sheet.cssRules[0].style.setProperty("--" + t, e[t])
6110             }
6111         }, {
6112             name: "Scale",
6113             description: "Forces the GUI to scale from 25%-100%",
6114             inputs: [{
6115                 type: "number",
6116                 name: "Percent scale",
6117                 min: 25,
6118                 max: 100,
6119                 value: 100 * (c.data.scale || 1)
6120             }],
6121             run: function(e) {
6122                 e = Math.min(Math.max(e, 25), 100), c.setItem("scale", e / 100), _.style.transform = `scale(${e/100})`
6123             }
6124         }, {
6125             name: "Hide Keybind",
6126             description: "Change the hide keybind (Click button after input to change)",
6127             inputs: [{
6128                 type: "function",
6129                 name: "Input",
6130                 function: e => B(({
6131                     shift: t,
6132                     ctrl: a,
6133                     alt: o,
6134                     key: r
6135                 }) => e("" + [a && "Ctrl", t && "Shift", o && "Alt", r && r.toUpperCase()].filter(Boolean).join(" + ")))
6136             }],
6137             run: function(e) {
6138                 c.setItem("hide", e), m.update(c.data.hide || {
6139                     ctrl: !0,
6140                     key: "e"
6141                 }, c.data.close || {
6142                     ctrl: !0,
6143                     key: "x"
6144                 })
6145             }
6146         }, {
6147             name: "Close Keybind",
6148             description: "Change the quick close keybind (Click button after input to change)",
6149             inputs: [{
6150                 type: "function",
6151                 name: "Input",
6152                 function: e => B(({
6153                     shift: t,
6154                     ctrl: a,
6155                     alt: o,
6156                     key: r
6157                 }) => e("" + [a && "Ctrl", t && "Shift", o && "Alt", r && r.toUpperCase()].filter(Boolean).join(" + ")))
6158             }],
6159             run: function(e) {
6160                 c.setItem("close", e), m.update(c.data.hide || {
6161                     ctrl: !0,
6162                     key: "e"
6163                 }, c.data.close || {
6164                     ctrl: !0,
6165                     key: "x"
6166                 })
6167             }
6168         }, {
6169             name: "Background Color",
6170             description: "Changes the background color of the GUI",
6171             inputs: [{
6172                 type: "string",
6173                 name: "Color"
6174             }],
6175             run: function(e) {
6176                 p.sheet.cssRules[0].style.setProperty("--backgroundColor", e), c.setItem("theme.backgroundColor", e)
6177             }
6178         }, {
6179             name: "Category List Color",
6180             description: "Changes the categories list background color",
6181             inputs: [{
6182                 type: "string",
6183                 name: "Color"
6184             }],
6185             run: function(e) {
6186                 p.sheet.cssRules[0].style.setProperty("--cheatList", e), c.setItem("theme.cheatList", e)
6187             }
6188         }, {
6189             name: "Info Color",
6190             description: "Changes the color of the information at the top of the GUI",
6191             inputs: [{
6192                 type: "string",
6193                 name: "Color"
6194             }],
6195             run: function(e) {
6196                 p.sheet.cssRules[0].style.setProperty("--infoColor", e), c.setItem("theme.infoColor", e)
6197             }
6198         }, {
6199             name: "Button Color",
6200             description: "Changes the color of the cheats",
6201             inputs: [{
6202                 type: "string",
6203                 name: "Color"
6204             }],
6205             run: function(e) {
6206                 p.sheet.cssRules[0].style.setProperty("--defaultButton", e), c.setItem("theme.defaultButton", e)
6207             }
6208         }, {
6209             name: "Enabled Toggle Color",
6210             description: "Changes the color of enabled toggle cheats",
6211             inputs: [{
6212                 type: "string",
6213                 name: "Color"
6214             }],
6215             run: function(e) {
6216                 c.setItem("theme.enabledButton", e)
6217             }
6218         }, {
6219             name: "Disabled Toggle Color",
6220             description: "Changes the color of disabled toggle cheats",
6221             inputs: [{
6222                 type: "string",
6223                 name: "Color"
6224             }],
6225             run: function(e) {
6226                 p.sheet.cssRules[0].style.setProperty("--disabledButton", e), c.setItem("theme.disabledButton", e)
6227             }
6228         }, {
6229             name: "Text Color",
6230             description: "Changes the text color",
6231             inputs: [{
6232                 type: "string",
6233                 name: "Color"
6234             }],
6235             run: function(e) {
6236                 p.sheet.cssRules[0].style.setProperty("--textColor", e), c.setItem("theme.textColor", e)
6237             }
6238         }, {
6239             name: "Input Color",
6240             description: "Changes the color of inputs, like the set gold number input",
6241             inputs: [{
6242                 type: "string",
6243                 name: "Color"
6244             }],
6245             run: function(e) {
6246                 p.sheet.cssRules[0].style.setProperty("--inputColor", e), c.setItem("theme.inputColor", e)
6247             }
6248         }, {
6249             name: "Content Color",
6250             description: "Changes the background color of the cheats",
6251             inputs: [{
6252                 type: "string",
6253                 name: "Color"
6254             }],
6255             run: function(e) {
6256                 p.sheet.cssRules[0].style.setProperty("--contentBackground", e), c.setItem("theme.contentBackground", e)
6257             }
6258         }],
6259         alerts: [{
6260             element: l("div", {
6261                 className: "alertContainer",
6262                 style: {
6263                     margin: "15px 15px 5px 15px",
6264                     backgroundColor: "rgb(0 0 0 / 50%)",
6265                     width: "95%",
6266                     height: "370px",
6267                     borderRadius: "7px",
6268                     display: "block",
6269                     alignItems: "center",
6270                     justifyContent: "center"
6271                 }
6272             }, l("ul", {
6273                 className: "alertList",
6274                 style: {
6275                     margin: "10px 10px 0 10px",
6276                     padding: "0",
6277                     listStyleType: "none",
6278                     display: "flex",
6279                     flexDirection: "column-reverse",
6280                     height: "355px",
6281                     overflowY: "scroll",
6282                     wordWrap: "break-word"
6283                 }
6284             }, l("li", {
6285                 style: {
6286                     margin: "5px"
6287                 }
6288             }, l("span", {
6289                 style: {
6290                     color: "var(--textColor)"
6291                 },
6292                 innerText: "[LOG] GUI opened"
6293             })))),
6294             addLog(e, t) {
6295                 return this.element.firstChild.prepend(l("li", {
6296                     style: {
6297                         margin: "5px"
6298                     }
6299                 }, l("span", {
6300                     style: {
6301                         color: t || "var(--textColor)"
6302                     },
6303                     innerHTML: "[LOG] " + e
6304                 })))
6305             },
6306             addAlert(e, t, a) {
6307                 return this.element.firstChild.prepend(l("li", {
6308                     style: {
6309                         margin: "5px"
6310                     }
6311                 }, l("strong", {}, e), " ", a))
6312             },
6313             connection: null,
6314             data: {},
6315             updateLeaderboard(e) {
6316                 for (var {
6317                         blook: t,
6318                         name: a,
6319                         value: o
6320                     }
6321                     of(this.leaderboardEl || this.addLeaderboard(), this.leaderboard.innerHTML = "", e)) {
6322                     this.leaderboard.append(l("li", {
6323                         style: {
6324                             fontSize: "2rem",
6325                             paddingInline: "15px 15px",
6326                             paddingBlock: "1.25px",
6327                             position: "relative",
6328                             borderBottom: "2px solid orange",
6329                             color: (a === Object.values(document.querySelector("#app>div>div"))?.[1]?.children?.[0]?._owner?.stateNode?.props?.client?.name) ? "#00FF00" : "#FFFFFF"
6330                         }
6331                     }, a, l("span", {
6332                         innerText: this.parseNumber(parseInt(o)),
6333                         style: {
6334                             float: "right"
6335                         }
6336                     })))
6337                 }
6338             },
6339             parseNumber(e = 0) {
6340                 var t = e;
6341                 if (e < 1e3) return t.toString();
6342                 var a = ["", "K", "M", "B", "T"],
6343                     o = Math.floor((e.toString().length - 1) / 3);
6344                 if (o < a.length) {
6345                     let r = 0;
6346                     for (let i = 3; 1 <= i && !((r = parseFloat((0 !== o ? e / Math.pow(1e3, o) : e).toPrecision(i))).toString().replace(/[^a-zA-Z 0-9]+/g, "").length <= 3); i--);
6347                     t = (r = r % 1 != 0 ? r.toFixed(1) : r) + a[o]
6348                 } else {
6349                     let n = e,
6350                         s = 0;
6351                     for (; 100 <= n; s++) n = Math.floor(n / 10);
6352                     let l = "";
6353                     var c = ["⁰", "\xb9", "\xb2", "\xb3", "⁴", "⁵", "⁶", "⁷", "⁸", "⁹"];
6354                     for (let d of (s + 1).toString().split("")) l += c[Number(d)];
6355                     t = n / 10 + " \xd7 10" + l
6356                 }
6357                 return t
6358             },
6359             addLeaderboard() {
6360                 this.leaderboardEl = l("div", {
6361                     className: "alertContainer",
6362                     style: {
6363                         margin: "15px 15px 5px 15px",
6364                         backgroundColor: "rgb(0 0 0 / 50%)",
6365                         width: "95%",
6366                         height: "370px",
6367                         borderRadius: "7px",
6368                         display: "flex",
6369                         alignItems: "center",
6370                         justifyContent: "center"
6371                     }
6372                 }, this.leaderboard = l("nl", {
6373                     className: "alertList",
6374                     style: {
6375                         marginTop: "10px",
6376                         padding: "0",
6377                         listStyleType: "decimal",
6378                         width: "100%",
6379                         height: "355px",
6380                         overflowY: "scroll",
6381                         wordWrap: "break-word"
6382                     }
6383                 }));
6384                 insertElemBefore("Leaderboard", "https://i.ibb.co/hZQjjVP/trophy-icon.webp", [{
6385                     element: this.leaderboardEl
6386                 }], !0, h.children[3]);
6387                 this.addLog("Leaderboard Loaded!");
6388             },
6389             async connect() {
6390                 try {
6391                     var e = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
6392                     if (!e?.props?.liveGameController?._liveGameCode) return !1;
6393                     this.connection = await e.props.liveGameController.getDatabaseRef("");
6394                     let t = "Cow",
6395                         a = this.getGamemode(),
6396                         o = {
6397                             lb: "Lunch Break",
6398                             as: "Ad Spam",
6399                             e37: "Error 37",
6400                             nt: "Night Time",
6401                             lo: "#LOL",
6402                             j: "Jokester",
6403                             sm: "Slow Mo",
6404                             dp: "Dance Party",
6405                             v: "Vortex",
6406                             r: "Reverse",
6407                             f: "Flip",
6408                             m: "Micro"
6409                         };
6410                     this.connection.on("value", e => {
6411                         var r = e.val()?.c || {};
6412                         if (r && this.diffObjects(this.data, r)) {
6413                             var i, n, s, l, c, d, p, u, h = this.diffObjects(this.data, r);
6414                             this.data = r;
6415                             let m = [];
6416                             switch (this.getGamemode()) {
6417                                 case "pirate":
6418                                     m = Object.entries(r).map(([e, {
6419                                         b: t,
6420                                         d: a
6421                                     }]) => ({
6422                                         name: e,
6423                                         blook: t,
6424                                         value: a || 0
6425                                     }));
6426                                     break;
6427                                 case "racing":
6428                                     m = Object.entries(r).map(([e, {
6429                                         b: t,
6430                                         pr: a
6431                                     }]) => ({
6432                                         name: e,
6433                                         blook: t,
6434                                         value: a || 0
6435                                     }));
6436                                     break;
6437                                 case "classic":
6438                                     m = Object.entries(r).map(([e, {
6439                                         b: t,
6440                                         p: a
6441                                     }]) => ({
6442                                         name: e,
6443                                         blook: t,
6444                                         value: a || 0
6445                                     }));
6446                                     break;
6447                                 case "royale":
6448                                     m = Object.entries(r).map(([e, {
6449                                         b: t,
6450                                         e: a
6451                                     }]) => ({
6452                                         name: e,
6453                                         blook: t,
6454                                         value: a || 0
6455                                     }));
6456                                     break;
6457                                 case "toy":
6458                                     m = Object.entries(r).map(([e, {
6459                                         b: t,
6460                                         t: a
6461                                     }]) => ({
6462                                         name: e,
6463                                         blook: t,
6464                                         value: a || 0
6465                                     }));
6466                                     break;
6467                                 case "brawl":
6468                                     m = Object.entries(r).map(([e, {
6469                                         b: t,
6470                                         xp: a
6471                                     }]) => ({
6472                                         name: e,
6473                                         blook: t,
6474                                         value: a || 0
6475                                     }));
6476                                     break;
6477                                 case "defense":
6478                                 case "defense2":
6479                                     m = Object.entries(r).map(([e, {
6480                                         b: t,
6481                                         d: a
6482                                     }]) => ({
6483                                         name: e,
6484                                         blook: t,
6485                                         value: a || 0
6486                                     }));
6487                                     break;
6488                                 case "gold":
6489                                     for (let $ in h) h[$].tat?.split && ([i, n] = h[$].tat.split(":"), "swap" == n ? this.addAlert($, t[r[$].b]?.url, "just swapped with " + i) : this.addAlert($, t[r[$].b]?.url, `just took ${this.parseNumber(parseInt(n))} gold from ` + i));
6490                                     m = Object.entries(r).map(([e, {
6491                                         b: t,
6492                                         g: a
6493                                     }]) => ({
6494                                         name: e,
6495                                         blook: t,
6496                                         value: a || 0
6497                                     }));
6498                                     break;
6499                                 case "hack":
6500                                     for (let g in h) h[g].tat?.split && ([s, l] = h[g].tat.split(":"), this.addAlert(g, t[r[g].b]?.url, `just took ${this.parseNumber(parseInt(l))} crypto from ` + s));
6501                                     m = Object.entries(r).map(([e, {
6502                                         b: t,
6503                                         cr: a
6504                                     }]) => ({
6505                                         name: e,
6506                                         blook: t,
6507                                         value: a || 0
6508                                     }));
6509                                     break;
6510                                 case "fishing":
6511                                     for (let y in h) "Frenzy" == h[y].f ? this.addAlert(y, t[r[y].b]?.url, "just started a frenzy") : h[y].s && this.addAlert(y, t[r[y].b]?.url, `just sent a ${h[y].f} distraction`);
6512                                     m = Object.entries(r).map(([e, {
6513                                         b: t,
6514                                         w: a
6515                                     }]) => ({
6516                                         name: e,
6517                                         blook: t,
6518                                         value: a || 0
6519                                     }));
6520                                     break;
6521                                 case "dino":
6522                                     for (let b in h) h[b].tat && ([c, d] = h[b].tat.split(":"), "true" == d ? this.addAlert(b, t[r[b].b]?.url, `just caught ${c} CHEATING!`) : this.addAlert(b, t[r[b].b]?.url, "investigated " + c));
6523                                     m = Object.entries(r).map(([e, {
6524                                         b: t,
6525                                         f: a
6526                                     }]) => ({
6527                                         name: e,
6528                                         blook: t,
6529                                         value: a || 0
6530                                     }));
6531                                     break;
6532                                 case "cafe":
6533                                     for (let v in h) h[v].up && ([p, u] = h[v].up.split(":"), u) && this.addAlert(v, t[r[v].b]?.url, `upgraded ${p} to level ` + u);
6534                                     m = Object.entries(r).map(([e, {
6535                                         b: t,
6536                                         ca: a
6537                                     }]) => ({
6538                                         name: e,
6539                                         blook: t,
6540                                         value: a || 0
6541                                     }));
6542                                     break;
6543                                 case "factory":
6544                                     for (let _ in h) {
6545                                         var f, w, k = h[_];
6546                                         k.g ? this.addAlert(_, t[r[_].b]?.url, `activated the ${o[k.g]} glitch!`) : k.s ? ([f, w] = k.s.split("-"), this.addAlert(_, t[r[_].b]?.url, `has a ${f} ${w} synergy!`)) : k.t && this.addAlert(_, t[r[_].b]?.url, "now has 10 Blooks!")
6547                                     }
6548                                     m = Object.entries(r).map(([e, {
6549                                         b: t,
6550                                         ca: a
6551                                     }]) => ({
6552                                         name: e,
6553                                         blook: t,
6554                                         value: a || 0
6555                                     }))
6556                             }
6557                             this.updateLeaderboard(m.sort((e, t) => t.value - e.value));
6558                         }
6559                     })
6560                 } catch {
6561                     return !1
6562                 }
6563             },
6564             diffObjects(e, t) {
6565                 var a, o = {};
6566                 for (let r in e) r in t && ("object" == typeof e[r] && "object" == typeof t[r] ? (a = this.diffObjects(e[r], t[r])) && 0 !== Object.keys(a).length && (o[r] = a) : JSON.stringify(e[r]) !== JSON.stringify(t[r]) && (o[r] = t[r]));
6567                 for (let i in t) i in e || (o[i] = t[i]);
6568                 return 0 == Object.keys(o).length ? null : o
6569             },
6570             getGamemode() {
6571                 if (Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode.props?.client?.type) {
6572                     return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode.props.client.type.toLowerCase();
6573                 }
6574                 switch (window.location.pathname) {
6575                     case "/play/racing":
6576                         return "racing";
6577                     case "/play/extras":
6578                         return "extras";
6579                     case "/play/host":
6580                         return "host";
6581                     case "/play/pirate":
6582                         return "voyage";
6583                     case "/play/factory":
6584                         return "factory";
6585                     case "/play/classic/get-ready":
6586                     case "/play/classic/question":
6587                     case "/play/classic/answer/sent":
6588                     case "/play/classic/answer/result":
6589                     case "/play/classic/standings":
6590                         return "classic";
6591                     case "/play/battle-royale/match/preview":
6592                     case "/play/battle-royale/question":
6593                     case "/play/battle-royale/answer/sent":
6594                     case "/play/battle-royale/answer/result":
6595                     case "/play/battle-royale/match/result":
6596                         return "royale";
6597                     case "/play/toy":
6598                         return "toy";
6599                     case "/play/gold":
6600                         return "gold";
6601                     case "/play/brawl":
6602                         return "brawl";
6603                     case "/play/hack":
6604                         return "hack";
6605                     case "/play/fishing":
6606                         return "fishing";
6607                     case "/play/rush":
6608                         return "rush";
6609                     case "/play/dino":
6610                         return "dino";
6611                     case "/tower/map":
6612                     case "/tower/battle":
6613                     case "/tower/rest":
6614                     case "/tower/risk":
6615                     case "/tower/shop":
6616                     case "/tower/victory":
6617                         return "doom";
6618                     case "/cafe":
6619                     case "/cafe/shop":
6620                         return "cafe";
6621                     case "/defense":
6622                         return "defense";
6623                     case "/play/defense2":
6624                         return "defense2";
6625                     case "/kingdom":
6626                         return "kingdom";
6627                     default:
6628                         return !1
6629                 }
6630             }
6631         }]
6632     };
6634     function S(e, t) {
6635         var a, o, r = 0,
6636             i = 0;
6637         e.onpointerdown = function(e = window.event) {
6638             r = e.clientX, i = e.clientY, document.onpointerup = function() {
6639                 document.onpointerup = null, document.onpointermove = null
6640             }, document.onpointermove = function(e = window.event) {
6641                 a = r - e.clientX, o = i - e.clientY, r = e.clientX, i = e.clientY, t.style.top = t.offsetTop - o + "px", t.style.left = t.offsetLeft - a + "px"
6642             }
6643         }
6644     }
6645     w("Alerts", "https://i.ibb.co/hBNyCXG/559343-1.png", C.alerts, !0), w("Global", "https://i.ibb.co/gd4Qs8L/11507ef5615c554fe88fc22c86768501-simple-earth-icon-1.webp", C.global)(), w("Host", "https://i.ibb.co/QpDgysb/computer-1865273-1.png", C.host, !0), w('<span style="font-size: 18px">Pirate\'s Voyage</span>', "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAzMDAgMzAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MjsiPjxnIGlkPSJCb2F0Ij48cGF0aCBkPSJNMTcwLjQsNTYuMDU0Yy02OC43ODgsMTAuMTc0IC0xMTUuOTcxLDU2LjkzOCAtMTQ1LjQxMSwxMzMuNzVsMTUuNDY5LDcuNzM0YzMwLjk2MiwtMjguMTc1IDc0LjcwNSwtMzcuNzg3IDEzMi4zMjIsLTI3LjI1bDAsLTE3LjYxMWMtMjUuNjI5LC0yNy45NTIgLTI2Ljk2NiwtNTYuNzcyIDAuNzE0LC04Ni42MjhsLTMuMDk0LC05Ljk5NVoiIHN0eWxlPSJmaWxsOiNmNmUwYmQ7Ii8+PHBhdGggZD0iTTE5OS42NzMsNjAuODEzYzMyLjc4NCw0Mi45ODIgNjUuODIyLDkwLjg4NyA5Ny4zMzcsMTM5LjU4MWwtNi42NjMsMGMtMTIuMDg1LC0zMS4xMTEgLTU3Ljg4MiwtMzkuNjk0IC05MS42MjYsLTI3LjI1YzIyLjUxNCwtMzQuNTc5IDE3Ljc5NiwtNzIuNjczIDAuOTUyLC0xMTIuMzMxWiIgc3R5bGU9ImZpbGw6I2Y2ZTBiZDsiLz48cGF0aCBkPSJNNjkuNDQ4LDE5Ny41MzhjMCwwIC01OS43MDcsLTE1LjI0MyAtNjguMzk4LC0xNy40NjJjLTAuMDc2LC0wLjAxOSAtMC4xNTQsMC4wMiAtMC4xODQsMC4wOTJjLTAuMDMsMC4wNzIgLTAuMDAyLDAuMTU1IDAuMDY1LDAuMTk1YzkuNjgyLDUuNzc1IDkxLjY0Nyw1NC42NTggOTEuNjQ3LDU0LjY1OGwtMjMuMTMsLTM3LjQ4M1oiIHN0eWxlPSJmaWxsOiM4ZDZlNDE7Ii8+PHBhdGggZD0iTTE2NC40NSw0Ny45MDNjMCwtNS4zNTMgNC4zNDYsLTkuNjk4IDkuNjk4LC05LjY5OGwxOS4zOTcsLTBjNS4zNTIsLTAgOS42OTgsNC4zNDUgOS42OTgsOS42OThsLTAsMTU2Ljk1M2MtMCw1LjM1MyAtNC4zNDYsOS42OTggLTkuNjk4LDkuNjk4bC0xOS4zOTcsMGMtNS4zNTIsMCAtOS42OTgsLTQuMzQ1IC05LjY5OCwtOS42OThsMCwtMTU2Ljk1M1oiIHN0eWxlPSJmaWxsOiM3ZjY4NDU7Ii8+PHBhdGggZD0iTTI2My45OTMsMjU2LjEwM2MyMi4xNzEsLTE0LjcxIDM2LjAwNywtMzUuNTE1IDM2LjAwNywtNTguNTY1bC0yMzAuNTUyLDBjMCwyMy43MTMgMTQuNjQzLDQ1LjA1IDM3Ljk0LDU5LjgxOWM5Ljg3NSwtMy43MjkgMjAuMDQxLC0xMS4zMzQgMzAuNDYzLC0yMi4zMzZjMzIuODExLDM1LjQ1NSA2NC4wNjksMzUuOTQzIDkzLjcwOCwwYzYuODM4LDkuNjc3IDE3LjczNiwxNi42NDYgMzIuNDM0LDIxLjA4MloiIHN0eWxlPSJmaWxsOiNiNjkyNWY7Ii8+PC9nPjwvc3ZnPg==", C.voyage), w("Gold quest", "https://media.blooket.com/image/upload/v1661496292/Media/uiTest/Gold.svg", C.gold), w("Cafe", "https://i.ibb.co/t8pqdYL/hot-beverage-1.png", C.cafe), w("Crypto Hack", "https://media.blooket.com/image/upload/v1661496293/Media/uiTest/CryptoIcon.svg", C.crypto), w('<span style="font-size: 17px">Deceptive Dinos</span>', "https://i.ibb.co/JFq5j88/Screenshot-2024-03-26-7-30-21-PM-removebg-preview-1.png", C.dinos), w('<span style="font-size: 18px">Tower Defense</span>', ['<img style="width: 30px; margin-right: 5px" src="https://media.blooket.com/image/upload/v1657235025/Media/survivor/Laser_Lvl1.svg">'], C.defense), w('<span style="font-size: 16px">Tower Defense 2</span>', ['<img style="width: 30px; margin-right: 5px; rotate: 45deg" src="https://media.blooket.com/image/upload/v1593095354/Media/defense/missile.svg">'], C.defense2), w("Factory", "https://i.ibb.co/VMrTd39/images-removebg-preview-1.png", C.factory), w('<span style="font-size: 19px">Fishing Frenzy</span>', "https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Fish_Weight.svg", C.fishing), w("Flappy Blook", "https://media.blooket.com/image/upload/v1645222006/Blooks/yellowBird.svg", C.flappy), w('<span style="font-size: 17px">Tower of Doom</span>', ['<img style="height: 30px; margin-left: 5px; margin-right: 10px" src="https://media.blooket.com/image/upload/v1657235023/Media/survivor/cards-05.svg">'], C.doom), w('<span style="font-size: 18px">Crazy Kingdom</span>', "https://i.ibb.co/10mZ6dx/3763864-1.png", C.kingdom), w("Racing", "https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Racing_Progress.svg", C.racing), w("Battle Royale", "https://media.blooket.com/image/upload/v1655936179/Media/br/VS_Lightning_Bolt_Bottom.svg", C.royale), w("Blook Rush", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAADdgAAA3YBfdWCzAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAA7YSURBVHic7Z17tFxVfcc/e59zZib3kcfN456YQObOTB43PBIKoeIqSlwIBXwiCCytXe2qxabSWrAqLKmwXKthVRe2BFxitYpasSIPV0sI8mhV5GHVdpWaoCRIvAnZSW/uzeuG3Nec/jFzk8mYOXNm73PmeT7/zt6/s+/d399vv/cWnufRSSilZgEXAZcBl42MHF5m23KrlPJBKcU9mUx6pLElrC+iEwSglFpOscIpVH5q5rfh4YPH0wkBlmUNW5b8oZTyi9ls+ol6l7XetKUAyrz8ciBbKW2pAMqRUk62e3RoGwH4ebkffgIopV2jQ8sKoOjl6zlR6RW93I+gAiinGB22SSkfklJsatXo0FICUEqt4ESFv4WAXu6HrgBKKYkOPypGh+8bG60TTS0ApVQXJ3t5JuxvhCGAcorR4aVidLg7k0kPh/6RkGg6AUTh5X5EIYBSmj06NFwA9fByP6IWQDnNFh0aIgCl1EpO9vJk3QtRpN4CKKUYHfYXo8O92Wx6S93LUA8BFL38rZyo9IHIPxqQRgqgHCnlVEl02FSP6BCZAIpefjmFCn8zDfRyP5pJAKWURIdnin2HSKJDaAJQSnVzclveNF7uR7MKoJyy6HBPJpPeF4ZdIwEopVZxosKb1sv9aBUBlFIWHb6UzaY3a9uqRQBFLy9ty9O6H24WWlEA5RSjwy+llA8X+w6Bo0NVASilBjlR4RfSgl5+KiY9eP6g4IWhad7Xf4Qu2VzzIboUo8NISXR41De9nwCUUpcAj4ddyEaxaxyeHhU8PQLPHBSMTQP7FoHwWDBrnPPnjXFd/yHW9kw0uqihkUolbsnlBjZW+t2ukl+GXJ66MunBcwcFT48WKv7loxUSeoLhoyk2H02xefd8HHuK5b2v8/sLj3DNosOtHh0svx+rCaDlKPXyHx0UHJ2u3cbklM3W0V62jvZy58tu20YHaAMBTOTh+UMBvFwXn+hw9cLD9FgtHR1aUwBDx4pePlpoy3W8XJfy6DD/eHQ4zDk94/UrSEi0hAAm8vDcjJePCLa/3ugSFfEE+4+meOxoisd2z8dxCtHhkvmFvkMrRIemFcBvSrz8x3X2cl0mJ222jvSydaSXv9/uMr9rnHVzxri2/zDn9jZndGgaATStl+viCfaPpdgylmLLa80bHRoqgFIvf+aA4PV8I0sTLc0aHeoqgBkvf2qkUPE7Wt3LdSmPDvYUudmF6HBtnaND5ALYWdqWt7mX6zI5ZbNtpJdtI738w3aXvlnjrJtXiA7nRTyyiEwAvxiDP31J8kqnerkunmDkaIrHj6Z4vDjvsHHVHi7tC3uCo0BkU737JkRc+SEwOWXz6rgTmf2WnuuPMScWQIcTC6DDiQXQ4cQC6HBiAXQ4sQA6nFgAHU4sgA4nFkCHEwugw4kF0OHEAuhwYgF0OLEAOpxqAtDei2sL3Zwx5SQx2kY16fdjNQFob+mYazfHrtd2YFFCf0+8EOKw3+/VBKC9D2lu02w4b30WJ40ORRzw+zG6CBDdLqaO4w3JKZPsvjdgRBYBeq24HxAKAvodowhgJACjbZ1z4mbAGCHM9tELge8l1pEKIO4HmGNL44MUo34/VhPAEUD7RoR5sQCMSVjGAtjr96OvAFzX9YBdul+e68RDQVOSBgKQUk5mMmlfA0FmAod0CxA3AeZ02SYCEGNV0wSwoy2ABfFQ0Jg5tv4QUAjh2/5DxAI4o1s3Z8wMqw0OhwohVLU0kQpgTU/cBzDlonn6AzEhxM5qaYIIoKqRSmS7oMf3lroYP4TweNNsEwHwUrU0QQTwM90CSOCsHt3cMT3JSaPZVCnFg1XTVEvguu5e4BXdQsTNgD6ndx3TzlscAv5v1XQB7T2rW5A1cQTQZk2vvgAsSwaav4leAL1xBNBl/Tz9W0GklC8EShfQ3nO6BUmnYHY8IVQzQnqcP1t/CCileCRQuoD2XqSwLlAzgrgfoENvckJ7w6YQwhOCh4OkDfQN13WngUAh5VSc26ubs3PJdRu1/6OZTDrQIl4tItPuB7xzQRwBauUPFus/ZWNZ8hdB09ZFAIPdsKpLN3fnkXCmuNhsBjDw87S1COB5QNuVr1wUR4GgrOvT6m4dR0rxjcBpgyZ0XfcAsE2rRMB7FnrEWwSD8eElVRfxKmJZcjyTSQeevq+1o6ndDCxNwrrZurk7h57khNGzNJYlX60lfa0C+GGN6U/iyoVxM1CNCxf4nuOoipTyP2pKX6P9h4Gqu0wq8Y4FXrxV3A8BG5b6nuPwzy4EUopP15KnJgG4rnsEeKCmUpXQ58BF8+IoUIm+WcdIGxwCsW1reyaT9t0EWo7OZNNXNfIc5z0LTXK3N5cuNAv/ti3vqjWP1uPRSqmXgVzNGSk8GvHGn0n2NMsTOvsWNboEAFjWNM+8cYf2YxFSysnVq5cnas6n9TX4mmY+EhI+elrcDJRzqXvA6KUQx7F+oJNPVwD3gf6h9ev6PZa2xRPU4WBZ09w+sN/IhpTyFq18Oplc190FPKGTF8ARcRQo5YrFB0gZvE9s29ZwNpv+T528JlfE/JNBXq7p91iWMrHQHtjWNJ9Om3m/bVvf1M1rIoDvgf/JUz9sATeeHkeBdy0ZIWHg/UIIr9axfynaAnBddxz4lm5+gPcu9MjMMrHQ2jj2FJ9Ka/tQwYZjvZjJpA/p5je9JcyoGbAE3NTBUeDKJaPGz7ZZlnWHSX6teYBSlFI/B87RzZ8H1v9c8qtoXkWrToPmARL2FC9csMNoatyy5OuDg8uNdlqEcU/graYF+Gwu33EXFv51bq/xuojj2H9nWg7j/7vruo8CT5rYOH82/NnSzmkKzpp/iGsXmW36sG1rJJcbuM20LGE53k0YTAwBfGKZx+oOOE2cdCb58mDVQ7tVcRz7+hCKE44AXNf9Hww7hI6ATSvyOG29XOyxcdUeugyGfQCJhP3LbDb93TBKFGbT+ynAaDlrdTd8fFn7NgW/13+Atxls9oTCuN+2ratCKlJ4AigeIjUakgBsWOq15dax7tQEm1bsM7aTSNhPBjn0GZSwO993Ar8xMSApNAXd7XSvgPC4e/Vrxr1+KeWUZcn3hVOoos0wjbmuewz4pKmdZSm4baB9moK3LxnhPIOrXmZIJOwvZjJp/T1jpyCK4fe3MThGNsMHXI9r+ltfBKfPHmNjZtjYjm1bR6QUfxlCkU4idAEU7xa8MQxbn8t5XNzXuiLo6zrGw2fvDsWW49gfq3bnnw6RTMC5rvss8B1TO7aAL63yOK8FD5d2Jyf43toho5W+GRzHHspm0/eGUKzfIsoZ2I9S5ZrSIMyS8I0z8qxoobOFCXuKB9YOMdfgkscZpBR527beGUKxTm0/KsOu6+4BrsPg2ZkZ5trw7TPyvKEFtpFZ1jT3rRniNLM7/o+TTDofy2bT/x2KsVMQ6RqM67r/juFi0QyLkwURNPP1s0LkuevM3ZzZrX+0q5Rk0vl+Njvw+VCMVaAei3B3AP8WhqHlXYXmYFYzLh0Kj79ZtYc3zzGb6ZvBcay9liUvC8WYD5H/K4ujgg8Cr4Zh77xe+PKgR6qZRCA8PpLby1ULzVb4ZpBSTjmOfUEUvf7f+lbUHwBwXXcUuBoI5TjIW+d5PHJ2nv6aj0GEj5R5/nb1Lq43uNGjFCEgmXT+OJNJ/zoUg1Womx+5rvtTCiODUFjTA4+tyTf0QupUYpJ/Pmcn75gf3namRCJxfzabDnzBgynGW8JqRSn1TeD9Ydk7Og1//ivBlv2aE+2aW8IWdB/jwbN30Wf2oNNJOI796sqV2YHQDAagES3p9UDgS4yq0WXBVwY9NtRxR9FZ8w/xxO/sDLXyLUuOO471u6EZDEjdBeC67hhwFZr3Dp4KCdya9rhzuRf5hpJ3nzbMt87YE+o9B0IIL5Fwrsxk0ubrxTXSkL6067ovAR+gyru2tXJdv8e/nJmP5LEqIfN8cuVrfMbwDN+pSCadO7LZ9ObQDQeg7n2AUpRS76KwZhBqf373OHxiu+Cp0QBuGqAP0Nd1jLsG97AmpAmeUlKpxMZcbkDrYGcYNFQAAEqpy4GHgNAneh/5P8GtrwiG/eKMjwCkzHPtacPcvEz/1q5KFIZ7idtyuYHbQzdeSzkaLQAApdQlwCNA6AfFDk7B7b8W3L+3QjSoIIBls8e4d1CxJKQ5/VKEECSTzi253MDG0I3XWpZmEACAUmo98K9AJCP7Hx8UfHy74JXymdoyAdj2NH+V3csH+82ua6mEEIJUyrkx6jn+oDSNAACUUhcCm4FInpkYz8PnhwRf2CWYnPmzSwSwdsEhvrByL73mr3WeEiGEl0o5N2SzA/dE8gENmkoAAEqpC4AtQGR7g7eNwc07JC8cAvYtoic5wWdWKKP7eatRqPzE9dls+h8j+4gGTScAAKXUOuBxYF6U33lyRPDskMeGJeHM41eiWPl/lM2m74v0Qxo0pQAAlFLnULiGZn6U3xkerkvlvz+bTd8f6Yc0aaZF1ZNwXfe/gPVAXVbFokBKOZVKJa5q1sqHJhYAgOu6LwJrgab9B1bCceydqZSTzmbTDzW6LH40bRNQjlLqD4G7CXmEEHYTIITwkknnK7ncwIdCNRwRTR0BSnFd9z4KN5H8tNFlqYRlWWOpVOJtrVL50EICAHBddzvwJuCzGLxeEgWJhPOTZNJelM2mn2p0WWqhZZqAcpRSFwNfBxab2DFtAqQU+UTCuTmXGzC+rqURtKwAAJRSCyncXn6Frg0TATiOtc9x7LdkMumqr3Q3Ky0tgBmUUjdQaBZqXlHUEYAQkEg4312+PHN1zZmbjJbqA1TCdd1NwLkY3F8cFNu29qdSyXe3Q+VDm0SAUpRSVwCfA1YFSR80AliWnHAce2MYN3M1E20RAUopXlt3FnADYLx/qziufyCZdOa0W+VDG0aAUpRSc4GbgQ1UmECqFAGEEJ7j2D+xbXlNLe/wtRptLYAZlFJ9FCLCXwB9pb+VC6CwQ9f+gWXJP8lk0jvqV8rG0BECmEEp1UPhXMJNFOcPZgQgpcg7jv2oZckP1fryVivTUQKYQSmVpHBg9cOjo4dXOY79oJTiIybXrrcq/w99zo6mO4xCQAAAAABJRU5ErkJggg==", C.rush), w('<span style="font-size: 18px">Monster Brawl</span>', ['<img style="height: 28px; margin-left: 5px; margin-right: 8px" src="https://media.blooket.com/image/upload/v1655233787/Media/survivor/xp/Blue_xp_2.svg">'], C.brawl), w('<span style="font-size: 15px">Santa\'s Workshop</span>', "https://i.ibb.co/Y2SFc9Y/Santa-Workshop-Finished-icon-1.webp", C.workshop), w("Extras", "https://i.ibb.co/mb0R9HX/Star-icon-stylized-svg-1-removebg-preview.png", C.extras, !0), w("Settings", "https://i.ibb.co/jrWKgyn/Windows-Settings-icon-1.png", C.settings, !0), S(m, _), S(g, _), window.addEventListener("keydown", A);
6646     let x = setInterval(() => {
6647         C.alerts[0].connection ? clearInterval(x) : C.alerts[0].connect()
6648     }, 5e3);
6650     function D() {
6651         for (let e in _.remove(), clearInterval(x), C)
6652             for (let t of C[e]) t.enabled && t.run();
6653         Object.keys(C).forEach(e => C[e].forEach(e => e.enabled && (e.run(), k(...currentMode)))), window.removeEventListener("keydown", A)
6654     }
6656     function A(e) {
6657         var t = c.data.hide || {
6658                 ctrl: !0,
6659                 key: "e"
6660             },
6661             a = c.data.close || {
6662                 ctrl: !0,
6663                 key: "x"
6664             };
6665         (t.ctrl && e.ctrlKey || !t.ctrl && !e.ctrlKey) && (t.shift && e.shiftKey || !t.shift && !e.shiftKey) && (t.alt && e.altKey || !t.alt && !e.altKey) && e.key.toLowerCase() == t.key ? (e.preventDefault(), _.style.display = "block" === _.style.display ? "none" : "block") : (a.ctrl && e.ctrlKey || !a.ctrl && !e.ctrlKey) && (a.shift && e.shiftKey || !a.shift && !e.shiftKey) && (a.alt && e.altKey || !a.alt && !e.altKey) && e.key.toLowerCase() == a.key && (e.preventDefault(), D())
6666     }
6668     function B(e, t = window) {
6669         return new Promise(a => {
6670             let o = {},
6671                 r, i, n, s, l = t => {
6672                     t.preventDefault(), o[t.code] = !0, r ||= t.shiftKey, i ||= t.ctrlKey, n ||= t.altKey, ["shift", "control", "alt", "meta"].includes(t.key.toLowerCase()) || (s = t.key.toLowerCase()), e?.({
6673                         shift: r,
6674                         ctrl: i,
6675                         alt: n,
6676                         key: s
6677                     })
6678                 },
6679                 c = e => {
6680                     delete o[e.code], 0 < Object.keys(o).length || (t.removeEventListener("keydown", l), t.removeEventListener("keyup", c), a({
6681                         shift: r,
6682                         ctrl: i,
6683                         alt: n,
6684                         key: s
6685                     }))
6686                 };
6687             t.addEventListener("keydown", l), t.addEventListener("keyup", c)
6688         })
6689     };
6690     _.addEventListener("mousemove", e => {
6691         var t, a;
6692         "cheatName" != e.target.className && "scriptButton" != e.target.className ? "0" != y.style.opacity && (y.animate([{
6693             opacity: .9
6694         }, {
6695             opacity: 0
6696         }], {
6697             duration: 200
6698         }), y.style.opacity = "0") : (e = "scriptButton" == e.target.className ? e.target : e.target.parentElement, y.innerText == e.dataset.description && "0.9" == y.style.opacity || (t = e.getBoundingClientRect(), a = e.offsetParent.getBoundingClientRect(), y.innerText = e.dataset.description, "0" == y.style.opacity && (y.animate([{
6699             opacity: 0
6700         }, {
6701             opacity: .9
6702         }], {
6703             duration: 200
6704         }), y.style.opacity = "0.9"), y.style.left = t.x - a.x + (t.width - y.clientWidth) / 2 + "px", y.style.top = t.y - a.y + t.height + "px"))
6705     }), window.fetch.call = function() {
6706         if (!arguments[1].includes("s.blooket.com/rc")) return wfcall.apply(this, arguments);
6707         C.alerts?.[0].addLog("Blooket Cheat Report Blocked!")
6708     }
6709 })();