From 12f348ecf2a84b0b523829d49cab55fb86d6f4a6 Mon Sep 17 00:00:00 2001 From: Matteias Collet Date: Mon, 8 Jan 2018 09:27:23 +0100 Subject: [PATCH] markup fixes, optimizations & prettyprint --- changelog.html | 124 ++++++++-------- changelog.xml | 14 +- codes/GMSE01.xml | 6 +- codes/GMSJ01.xml | 2 +- codes/GMSP01.xml | 2 +- gctGenerator.js | 313 +++++++++++++++++++---------------------- guide.html | 20 +-- img/discord.png | Bin 26855 -> 0 bytes img/discord_bubble.png | Bin 0 -> 1761 bytes img/gdq.png | Bin 7782 -> 1816 bytes img/src_bubble.png | Bin 0 -> 926 bytes img/twitch_bubble.png | Bin 0 -> 1630 bytes img/twitter_bubble.png | Bin 0 -> 1584 bytes index.html | 21 ++- ios58.html | 130 ++++++++--------- sitemap.xml | 31 ---- style/common.css | 24 ++++ style/guide.css | 96 ++++++------- style/style.css | 283 +++++++++++++++++++------------------ 19 files changed, 531 insertions(+), 535 deletions(-) delete mode 100644 img/discord.png create mode 100644 img/discord_bubble.png create mode 100644 img/src_bubble.png create mode 100644 img/twitch_bubble.png create mode 100644 img/twitter_bubble.png delete mode 100644 sitemap.xml create mode 100644 style/common.css diff --git a/changelog.html b/changelog.html index 958b5d5..0347ed0 100644 --- a/changelog.html +++ b/changelog.html @@ -1,18 +1,16 @@ - - - - - - Changelog - - - -
-
-

Detailed Changelog

-

Main Page: https://bitpatty.github.io/gctGenerator/

+ + + + + Changelog + + +
+
+

Detailed Changelog

+

Main Page: https://bitpatty.github.io/gctGenerator/


Jan 8, 2018

Site changes

@@ -26,8 +24,8 @@

Dec 19, 2017

Updated 'Fast Any%'

Added FMV Skips except for Pinna 1.

-

Dec 05, 2017

-

Site Changes

+

Dec 05, 2017

+

Site Changes

Added option to download codes formatted for the Gecko Cheat Manager.

Nov 29, 2017

Updated 'Level Select' for PAL

@@ -48,45 +46,41 @@

Seperated these two codes again since they don't depend on each other.

Nov 06, 2017

Updated Ingame Timers and Level Select

-

The Original Ingame Timer has been marked as deprecated. You can still find it on the bottom of the codelist though if you still want to use it. Instead, there are now two other timers: -
-

    -
  • Shine Touch Timer: Starts on the last black frame of the loading screen and ends when you touch the shine.
  • -
  • Shine Get Timer: Starts on the last black frame of the loading screen and ends when the Shine Get animation starts (similiar to the x-cam timer of SM64).
  • -
-

+

The Original Ingame Timer has been marked as deprecated. You can still find it on the bottom of the codelist though if you still want to use it. Instead, there are now two other timers:

+
+
    +
  • Shine Touch Timer: Starts on the last black frame of the loading screen and ends when you touch the shine.
  • +
  • Shine Get Timer: Starts on the last black frame of the loading screen and ends when the Shine Get animation starts (similiar to the x-cam timer of SM64).
  • +

Since the Shine Get timer contained a way better Level Select, the Level Select code has been replaced with the one from the timer. It includes the most recent fixes and also has some maintenance advantages.


-

Level Select changes: -

    -
  • Mashing A during loading screens doesn't affect your level selection anymore.
  • -
  • Pinna game resets have been fixed.
  • -
  • Level Names in the intro have been fixed (shoutouts to Noki Doki).
  • -
  • Sirena 5 now loads the right casino.
  • -
  • Reloading Sirena does no longer respawn you in the Hotel. Reason: You can move earlier than usual if you do that, making it too inaccurate for practice.
  • -
-

-

Timer changes (compared to original timer): -

    -
  • Changed timing (see above).
  • -
  • Resets on death.
  • -
  • Resets when using Shine Select.
  • -
  • Only uses existing timers for Piantissimo, Sirena/Pianta 6 and Ricco 2 underground.
  • -
  • Fixed Pinna 8 HUD.
  • -
-

-

Known bugs: -

    -
  • Can't reset Pinna 8 properly after finishing the rollercoaster. Use the cannon to reenter or reset the game instead.
  • -
  • Box game timer doesn't work properly.
  • -
-

+

Level Select changes:

+
    +
  • Mashing A during loading screens doesn't affect your level selection anymore.
  • +
  • Pinna game resets have been fixed.
  • +
  • Level Names in the intro have been fixed (shoutouts to Noki Doki).
  • +
  • Sirena 5 now loads the right casino.
  • +
  • Reloading Sirena does no longer respawn you in the Hotel. Reason: You can move earlier than usual if you do that, making it too inaccurate for practice.
  • +
+

Timer changes (compared to original timer):

+
    +
  • Changed timing (see above).
  • +
  • Resets on death.
  • +
  • Resets when using Shine Select.
  • +
  • Only uses existing timers for Piantissimo, Sirena/Pianta 6 and Ricco 2 underground.
  • +
  • Fixed Pinna 8 HUD.
  • +
+

Known bugs:

+
    +
  • Can't reset Pinna 8 properly after finishing the rollercoaster. Use the cannon to reenter or reset the game instead.
  • +
  • Box game timer doesn't work properly.
  • +

Added 'Free Pause'

'Free Pause' replaces 'Enable Pause Mid-Air' and 'Enable Exit Area Everywhere'. It now also allows you to pause during cutscenes.

Site Changes

    -
  • Added detailed changelog.
  • -
  • Updated guide with more information about the maximum code size.
  • +
  • Added detailed changelog.
  • +
  • Updated guide with more information about the maximum code size.

Nov 04, 2017

Changed Shine Get Timer

@@ -100,22 +94,28 @@

Oct 28, 2017

Updated 'DPad Functions'

New functions have been added to the DPad Functions:

-

-

    -
  • X+D-Pad left: No FLUDD in secrets
  • -
  • X+D-Pad right: Always FLUDD in secrets
  • -
  • X+D-Pad up: Unlock Yoshi in stages
  • -
  • X+D-Pad down: Defauld FLUDD behaviour for secrets
  • -
-

+
    +
  • X+D-Pad left: No FLUDD in secrets
  • +
  • X+D-Pad right: Always FLUDD in secrets
  • +
  • X+D-Pad up: Unlock Yoshi in stages
  • +
  • X+D-Pad down: Defauld FLUDD behaviour for secrets
  • +

Oct 26, 2017

Added 'Enable Pause Mid-Air'

Allows you to pause mid-air.

Oct 24, 2017

-

Added 'Shine Outfit'

Always wear glasses and the shirt.

Oct 15, 2017

Site Changes

Fixed the download button not working for Firefox.

Oct 14, 2017

Added 'Fast Any%' for JP and PAL

-

Oct 11, 2017

Added 'Stage Randomizer' for NTSC-U

+

Added 'Shine Outfit'

+

Always wear glasses and the shirt.

+

Oct 15, 2017

+

Site Changes

+

Fixed the download button not working for Firefox.

+

Oct 14, 2017

+

Added 'Fast Any%' for JP and PAL

+

-

+

Oct 11, 2017

+

Added 'Stage Randomizer' for NTSC-U

Experimental! Loads a random stage after exiting of finishing a level.

-
-
- - - +
+
+ + \ No newline at end of file diff --git a/changelog.xml b/changelog.xml index 8438be6..5dff845 100644 --- a/changelog.xml +++ b/changelog.xml @@ -1,11 +1,11 @@ - Jan 8, 2018 + Jan 08, 2018 Added guide for installing IOS58. - Jan 1, 2018 + Jan 01, 2018 Fixed 'D-Pad Functions' not removing dialogue properly. @@ -29,23 +29,23 @@ Fixed 'Free Pause' compatibility with 'Shine Get Timer'. - Nov 9, 2017 + Nov 09, 2017 Added 'Download for Dolphin' button. - Nov 8, 2017 + Nov 08, 2017 Added 'Fast 79 Shines' for NTSC-U. - Nov 7, 2017 + Nov 07, 2017 Seperated 'Free Pause' and 'Exit Area everywhere'. - Nov 6, 2017 + Nov 06, 2017 Updated 'Level Select'. Added 'Shine Touch Timer'. Marked original IGT as deprecated. Replaced 'Exit Area Everywhere' and 'Pause Mid-Air' with 'Free Pause'. - Nov 4, 2017 + Nov 04, 2017 Fixed 'Shine Get Timer' stopping in wrong cutscenes. diff --git a/codes/GMSE01.xml b/codes/GMSE01.xml index 81f217f..efa249e 100644 --- a/codes/GMSE01.xml +++ b/codes/GMSE01.xml @@ -4,7 +4,7 @@ DPad Functions Psychonauter, Noki Doki, Dan Salvato, Link Master, James0x57 2.3 -
CombinationResult
D-Pad leftSave Mario sposition
D-Pad rightLoad Marios Position
D-Pad upReplace all dialog with a single "!!!" line
D-Pad downRestore dialog boxes
B+D-Pad leftLock rocket nozzle
B+D-Pad rightLock turbo nozzle
B+D-Pad upLock hover nozzle
B+D-Pad downRelease nozzle lock
X+D-Pad leftNo FLUDD in secrets
X+D-Pad rightFLUDD in all secrets
X+D-Pad upUnlock Yoshi
X+D-Pad downFLUDD in completed secrets (default)
]]>
+
CombinationResult
D-Pad leftSave Mario sposition
D-Pad rightLoad Marios Position
D-Pad upReplace all dialog with a single "!!!" line
D-Pad downRestore dialog boxes
B+D-Pad leftLock rocket nozzle
B+D-Pad rightLock turbo nozzle
B+D-Pad upLock hover nozzle
B+D-Pad downRelease nozzle lock
X+D-Pad leftNo FLUDD in secrets
X+D-Pad rightFLUDD in all secrets
X+D-Pad upUnlock Yoshi
X+D-Pad downFLUDD in completed secrets (default)
]]>
Jan 1, 2018 2440E10C 80000000 @@ -617,7 +617,8 @@ 60000000 00000000 - + Stage Randomizer (Experimental) Noki Doki diff --git a/codes/GMSJ01.xml b/codes/GMSJ01.xml index 0fc0d8b..7dbbc85 100644 --- a/codes/GMSJ01.xml +++ b/codes/GMSJ01.xml @@ -4,7 +4,7 @@ DPad Functions Psychonauter, Noki Doki, Dan Salvato, Link Master, James0x57 2.3 -
CombinationResult
D-Pad leftSave Mario sposition
D-Pad rightLoad Marios Position
D-Pad upReplace all dialog with a single "!!!" line
D-Pad downRestore dialog boxes
B+D-Pad leftLock rocket nozzle
B+D-Pad rightLock turbo nozzle
B+D-Pad upLock hover nozzle
B+D-Pad downRelease nozzle lock
X+D-Pad leftNo FLUDD in secrets
X+D-Pad rightFLUDD in all secrets
X+D-Pad upUnlock Yoshi
X+D-Pad downFLUDD in completed secrets (default)
]]>
+
CombinationResult
D-Pad leftSave Mario sposition
D-Pad rightLoad Marios Position
D-Pad upReplace all dialog with a single "!!!" line
D-Pad downRestore dialog boxes
B+D-Pad leftLock rocket nozzle
B+D-Pad rightLock turbo nozzle
B+D-Pad upLock hover nozzle
B+D-Pad downRelease nozzle lock
X+D-Pad leftNo FLUDD in secrets
X+D-Pad rightFLUDD in all secrets
X+D-Pad upUnlock Yoshi
X+D-Pad downFLUDD in completed secrets (default)
]]>
Jan 1, 2018 2440A39C 80000000 diff --git a/codes/GMSP01.xml b/codes/GMSP01.xml index 6e52d92..88138ae 100644 --- a/codes/GMSP01.xml +++ b/codes/GMSP01.xml @@ -4,7 +4,7 @@ DPad Functions Psychonauter, Noki Doki, Dan Salvato, Link Master, James0x57 2.3 -
CombinationResult
D-Pad leftSave Mario sposition
D-Pad rightLoad Marios Position
D-Pad upReplace all dialog with a single "!!!" line
D-Pad downRestore dialog boxes
B+D-Pad leftLock rocket nozzle
B+D-Pad rightLock turbo nozzle
B+D-Pad upLock hover nozzle
B+D-Pad downRelease nozzle lock
X+D-Pad leftNo FLUDD in secrets
X+D-Pad rightFLUDD in all secrets
X+D-Pad upUnlock Yoshi
X+D-Pad downFLUDD in completed secrets (default)
]]>
+
CombinationResult
D-Pad leftSave Mario sposition
D-Pad rightLoad Marios Position
D-Pad upReplace all dialog with a single "!!!" line
D-Pad downRestore dialog boxes
B+D-Pad leftLock rocket nozzle
B+D-Pad rightLock turbo nozzle
B+D-Pad upLock hover nozzle
B+D-Pad downRelease nozzle lock
X+D-Pad leftNo FLUDD in secrets
X+D-Pad rightFLUDD in all secrets
X+D-Pad upUnlock Yoshi
X+D-Pad downFLUDD in completed secrets (default)
]]>
Jan 1, 2017 244057D4 80000000 diff --git a/gctGenerator.js b/gctGenerator.js index c142ff0..7c21d6b 100644 --- a/gctGenerator.js +++ b/gctGenerator.js @@ -1,210 +1,191 @@ if (navigator.userAgent.toLowerCase().indexOf("firefox") > -1) { - HTMLElement.prototype.click = function() { - var evt = this.ownerDocument.createEvent("MouseEvents"); - evt.initMouseEvent("click", true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null); - this.dispatchEvent(evt); - } + HTMLElement.prototype.click = function() { + var evt = this.ownerDocument.createEvent("MouseEvents"); + evt.initMouseEvent("click", true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null); + this.dispatchEvent(evt); + } } document.getElementById("checkList").addEventListener("click", function(ev) { - if (ev.target && ev.target.nodeName == "LI") { - ev.target.classList.toggle("checked"); - } + if (ev.target && ev.target.nodeName == "LI") { + ev.target.classList.toggle("checked"); + } }); function parseXML(name) { - var xml = new XMLHttpRequest(); - var file = "codes/" + name + ".xml"; - xml.onreadystatechange = function() { - if (this.status == 200 && this.readyState == 4) { - var xmlData = xml.responseXML; - xmlData = (new DOMParser()).parseFromString(xml.responseText, "text/xml"); - xmlData = xmlData.getElementsByTagName("code"); + var xml = new XMLHttpRequest(); + var file = "codes/" + name + ".xml"; + xml.onreadystatechange = function() { + if (this.status == 200 && this.readyState == 4) { + var xmlData = xml.responseXML; + xmlData = (new DOMParser()).parseFromString(xml.responseText, "text/xml"); + xmlData = xmlData.getElementsByTagName("code"); - var i = 0; - for (; i < xmlData.length; i++) { - var li = document.createElement("li"); - var desc = xmlData[i].getElementsByTagName("title")[0].textContent; - var t = document.createTextNode(desc); - li.appendChild(t); - li.setAttribute("data-codeName", xmlData[i].getElementsByTagName("title")[0].textContent); - li.setAttribute("data-codeAuthor", xmlData[i].getElementsByTagName("author")[0].textContent); - li.setAttribute("data-codeDesc", xmlData[i].getElementsByTagName("description")[0].textContent); - li.setAttribute("data-codeVersion", xmlData[i].getElementsByTagName("version")[0].textContent); - li.setAttribute("data-codeDate", xmlData[i].getElementsByTagName("date")[0].textContent); - li.setAttribute("data-codeSrc", xmlData[i].getElementsByTagName("source")[0].textContent.replace(/[\s\n\r\t]+/gm, "")); - li.setAttribute("onmouseover", "updateDescription(this)"); - document.getElementById("checkList").appendChild(li); - } + var i = 0; + for (; i < xmlData.length; i++) { + var li = document.createElement("li"); + var desc = xmlData[i].getElementsByTagName("title")[0].textContent; + var t = document.createTextNode(desc); + li.appendChild(t); + li.setAttribute("data-codename", xmlData[i].getElementsByTagName("title")[0].textContent); + li.setAttribute("data-codeauthor", xmlData[i].getElementsByTagName("author")[0].textContent); + li.setAttribute("data-codedesc", xmlData[i].getElementsByTagName("description")[0].textContent); + li.setAttribute("data-codeversion", xmlData[i].getElementsByTagName("version")[0].textContent); + li.setAttribute("data-codedate", xmlData[i].getElementsByTagName("date")[0].textContent); + li.setAttribute("data-codesrc", xmlData[i].getElementsByTagName("source")[0].textContent.replace(/[\s\n\r\t]+/gm, "")); + li.setAttribute("onmouseover", "updateDescription(this)"); + document.getElementById("checkList").appendChild(li); + } - button = document.getElementById("downloadButton"); - button.style.visibility = "visible"; - button.disabled = false; - button = document.getElementById("dolphinDownloadButton"); - button.style.visibility = "visible"; - button.disabled = false; - button = document.getElementById("gcmDownloadButton"); - button.style.visibility = "visible"; - button.disabled = false; - document.getElementById("gameID").disabled = false; - } - }; + button = document.getElementById("downloadButton"); + button.style.visibility = "visible"; + button.disabled = false; + button = document.getElementById("dolphinDownloadButton"); + button.style.visibility = "visible"; + button.disabled = false; + button = document.getElementById("gcmDownloadButton"); + button.style.visibility = "visible"; + button.disabled = false; + document.getElementById("gameID").disabled = false; + } + }; - xml.open("GET", file); - xml.send(); + xml.open("GET", file); + xml.send(); } -function downloadGCT(data, filename) { - var rawData = new Uint8Array(data.length / 2); +function downloadFile(data, filename) { - for (var x = 0; x < rawData.length; x++) { - rawData[x] = parseInt(data.substr(x * 2, 2), 16); - } + var file = new Blob([data], { + type: "application/octet-stream" + }); - var file = new Blob([rawData], { - type: "application/octet-stream" - }); - - if (window.navigator.msSaveOrOpenBlob) - window.navigator.msSaveOrOpenBlob(file, filename); - else { - var a = document.createElement("a"), - url = window.URL.createObjectURL(file); - a.href = url; - a.download = filename; - a.click(); - setTimeout(function() { - window.URL.revokeObjectURL(url); - }, 500); - } + if (window.navigator.msSaveOrOpenBlob) + window.navigator.msSaveOrOpenBlob(file, filename); + else { + var a = document.createElement("a"), + url = window.URL.createObjectURL(file); + a.href = url; + a.download = filename; + a.click(); + setTimeout(function() { + window.URL.revokeObjectURL(url); + }, 500); + } } function generateGCT() { - if (document.getElementById("gameID").value === "Choose Version") { - alert("Select the game version!"); - return; + if (document.getElementById("gameID").value === "Choose Version") { + alert("Select the game version!"); + return; + } + var data = "00D0C0DE00D0C0DE"; + var codeList = document.getElementById("checkList").getElementsByTagName("li"); + var valueSelected = false; + for (var i = 0; i < codeList.length; i++) { + if (codeList[i].className === "checked") { + data += codeList[i].getAttribute("data-codeSrc"); + valueSelected = true; } - var data = "00D0C0DE00D0C0DE"; - var codeList = document.getElementById("checkList").getElementsByTagName("li"); - var valueSelected = false; - for (var i = 0; i < codeList.length; i++) { - if (codeList[i].className === "checked") { - data += codeList[i].getAttribute("data-codeSrc"); - valueSelected = true; - } + } + + if (valueSelected) { + data += "FF00000000000000"; + var rawData = new Uint8Array(data.length / 2); + + for (var x = 0; x < rawData.length; x++) { + rawData[x] = parseInt(data.substr(x * 2, 2), 16); } - if (valueSelected) { - data += "FF00000000000000"; - - downloadGCT(data, document.getElementById("gameID").value + ".gct"); - } else { - alert("No cheat(s) selected!"); - } -} - -function downloadTXT(data, filename) { - var file = new Blob([data], { - type: "application/octet-stream" - }); - - if (window.navigator.msSaveOrOpenBlob) - window.navigator.msSaveOrOpenBlob(file, filename); - else { - var a = document.createElement("a"), - url = window.URL.createObjectURL(file); - a.href = url; - a.download = filename; - a.click(); - setTimeout(function() { - window.URL.revokeObjectURL(url); - }, 500); - } + downloadFile(rawData, document.getElementById("gameID").value + ".gct"); + } else { + alert("No cheat(s) selected!"); + } } function generateTXT(s) { - if (document.getElementById("gameID").value === "Choose Version") { - alert("Select the game version!"); - return; - } - if (s.id === "dolphinDownloadButton") var data = "Paste the following on top of your games .ini file:\r\n[Gecko]"; - else var data = document.getElementById("gameID").value + "\r\nSuper Mario Sunshine"; - var codeList = document.getElementById("checkList").getElementsByTagName("li"); - var valueSelected = false; - for (var i = 0; i < codeList.length; i++) { - if (codeList[i].className === "checked") { - data += "\r\n"; - if (s.id === "gcmDownloadButton") data += "\r\n"; - else data += "$"; - data += codeList[i].getAttribute("data-codeName") + " (" + codeList[i].getAttribute("data-codeDate") + ") [" + codeList[i].getAttribute("data-codeAuthor") + "]\r\n"; - data += (codeList[i].getAttribute("data-codeSrc").match(/.{8}/g).join(" ")).replace(/(.{17})./g, "$1\r\n"); - valueSelected = true; - } + if (document.getElementById("gameID").value === "Choose Version") { + alert("Select the game version!"); + return; + } + if (s.id === "dolphinDownloadButton") var data = "Paste the following on top of your games .ini file:\r\n[Gecko]"; + else var data = document.getElementById("gameID").value + "\r\nSuper Mario Sunshine"; + var codeList = document.getElementById("checkList").getElementsByTagName("li"); + var valueSelected = false; + for (var i = 0; i < codeList.length; i++) { + if (codeList[i].className === "checked") { + data += "\r\n"; + if (s.id === "gcmDownloadButton") data += "\r\n"; + else data += "$"; + data += codeList[i].getAttribute("data-codeName") + " (" + codeList[i].getAttribute("data-codeDate") + ") [" + codeList[i].getAttribute("data-codeAuthor") + "]\r\n"; + data += (codeList[i].getAttribute("data-codeSrc").match(/.{8}/g).join(" ")).replace(/(.{17})./g, "$1\r\n"); + valueSelected = true; } + } - if (valueSelected) { - downloadTXT(data, document.getElementById("gameID").value + ".txt"); - } else { - alert("No cheat(s) selected!"); - } + if (valueSelected) { + downloadFile(data, document.getElementById("gameID").value + ".txt"); + } else { + alert("No cheat(s) selected!"); + } } function updateCodelist() { - resetDescription(); - document.getElementById("gameID").disabled = true; - button = document.getElementById("downloadButton"); - button.style.visibility = "hidden"; - button.disabled = true; - button = document.getElementById("dolphinDownloadButton"); - button.style.visibility = "hidden"; - button.disabled = true; - button = document.getElementById("gcmDownloadButton"); - button.style.visibility = "hidden"; - button.disabled = true; - document.getElementById("checkList").innerHTML = ""; - var gameVersion = document.getElementById("gameID").value; - parseXML(gameVersion); + resetDescription(); + document.getElementById("gameID").disabled = true; + button = document.getElementById("downloadButton"); + button.style.visibility = "hidden"; + button.disabled = true; + button = document.getElementById("dolphinDownloadButton"); + button.style.visibility = "hidden"; + button.disabled = true; + button = document.getElementById("gcmDownloadButton"); + button.style.visibility = "hidden"; + button.disabled = true; + document.getElementById("checkList").innerHTML = ""; + var gameVersion = document.getElementById("gameID").value; + parseXML(gameVersion); } function updateDescription(s) { - document.getElementById("descriptionBox").innerHTML = "

" + - s.getAttribute("data-codeName") + "

Author(s): " + - s.getAttribute("data-codeAuthor") + "
Version: " + - s.getAttribute("data-codeVersion") + " (" + - s.getAttribute("data-codeDate") + ")

" + "

Description:
" + - s.getAttribute("data-codeDesc") + "

"; + document.getElementById("descriptionBox").innerHTML = "

" + + s.getAttribute("data-codeName") + "

Author(s): " + + s.getAttribute("data-codeAuthor") + "

Version: " + + s.getAttribute("data-codeVersion") + " (" + + s.getAttribute("data-codeDate") + ")

" + "

Description:

" + + s.getAttribute("data-codeDesc") + "

"; } function setButtonDescription(s) { - if (s.id === "downloadButton") - document.getElementById("descriptionBox").innerHTML = "

Download GCT

Download the cheats in the GCT format for use with Nintendont.

"; - else if (s.id === "dolphinDownloadButton") - document.getElementById("descriptionBox").innerHTML = "

Download for Dolphin

Download a textfile containing the formatted codes for use with Dolphin. Copy the contents of the file on top of your games .ini file.

"; - else - document.getElementById("descriptionBox").innerHTML = "

Download for Gecko Cheat Manager

Download the cheats in a textfile formatted for use with the Gecko Cheat Manager. Place the txt file in SD:/txtcodes/.

A zip archive containing pregenerated txt files with all available codes on this site can be downloaded here."; + if (s.id === "downloadButton") + document.getElementById("descriptionBox").innerHTML = "

Download GCT

Download the cheats in the GCT format for use with Nintendont.

"; + else if (s.id === "dolphinDownloadButton") + document.getElementById("descriptionBox").innerHTML = "

Download for Dolphin

Download a textfile containing the formatted codes for use with Dolphin. Copy the contents of the file on top of your games .ini file.

"; + else + document.getElementById("descriptionBox").innerHTML = "

Download for Gecko Cheat Manager

Download the cheats in a textfile formatted for use with the Gecko Cheat Manager. Place the txt file in SD:/txtcodes/.

A zip archive containing pregenerated txt files with all available codes on this site can be downloaded here."; } function resetDescription() { - document.getElementById("descriptionBox").innerHTML = "

Select your codes from the list...

"; + document.getElementById("descriptionBox").innerHTML = "

Select your codes from the list...

"; } function updateChangelog() { - var xml = new XMLHttpRequest(); - var file = "changelog.xml"; - xml.onload = function() { - if (this.status == 200 && this.responseXML != null) { - var changelogData = xml.responseXML; - changelogData = (new DOMParser()).parseFromString(xml.responseText, "text/xml"); - changelogData = changelogData.getElementsByTagName("update"); + var xml = new XMLHttpRequest(); + var file = "changelog.xml"; + xml.onload = function() { + if (this.status == 200 && this.responseXML != null) { + var changelogData = xml.responseXML; + changelogData = (new DOMParser()).parseFromString(xml.responseText, "text/xml"); + changelogData = changelogData.getElementsByTagName("update"); - for (var i = 0; i < changelogData.length && i < 5; i++) { - document.getElementById("changelog").innerHTML += "" + changelogData[i].getElementsByTagName("date")[0].textContent + ": " + changelogData[i].getElementsByTagName("change")[0].textContent + "
"; - } + for (var i = 0; i < changelogData.length && i < 5; i++) { + document.getElementById("changelog").innerHTML += "

" + changelogData[i].getElementsByTagName("date")[0].textContent + ": " + changelogData[i].getElementsByTagName("change")[0].textContent + "

"; + } - document.getElementById("changelog").innerHTML += "more ..."; - }; - } - xml.open("GET", file); - xml.send(); + document.getElementById("changelog").innerHTML += "more ..."; + }; + } + xml.open("GET", file); + xml.send(); } \ No newline at end of file diff --git a/guide.html b/guide.html index f88c74f..d9b309b 100644 --- a/guide.html +++ b/guide.html @@ -7,29 +7,29 @@ Guide -
+
-

How to install and use practice codes

-

This page is a simple guide to explain the recommended way to install practice codes on your Nintendo Wii.

+

How to install and use practice codes

+

This page is a simple guide to explain the recommended way to install practice codes on your Nintendo Wii.


1. Preparing your Wii

1.1 Install Homebrew

-

First of all you're gonna have to install Homebrew on your Wii. Click this link for a detailed guide on how to get Homebrew on your Wii. Make sure your SD card is formatted to FAT32!

+

First of all you're gonna have to install Homebrew on your Wii. Click this link for a detailed guide on how to get Homebrew on your Wii. Make sure your SD card is formatted to FAT32!


1.2 Install the necessary applications

-

Using Nintendont is the recommended way to use practice codes. Codes available on this site have been tested with Nintendont v4.434, which you can download directly from this site by clicking this link. To get the most recent build click this link.

-

Unpack the archive and place the Nintendont folder with all of its contents in the apps folder of your SD card. If there is no apps folder create one in the root of your SD card.

+

Using Nintendont is the recommended way to use practice codes. Codes available on this site have been tested with Nintendont v4.434, which you can download directly from this site by clicking this link. To get the most recent build click this link.

+

Unpack the archive and place the Nintendont folder with all of its contents in the "apps" folder of your SD card. If there is no "apps" folder create one in the root of your SD card.


2. Install and use the cheatfile

2.1 Generate the file

-

Visit the main site and select your game version from the dropdown menu. Then select all the cheats you want to have enabled from the list and click "Download". The name of the file you downloaded should be "GMSX01.gct" with X being E, P or J depending on the version you selected.

+

Visit the main site and select your game version from the dropdown menu. Then select all the cheats you want to have enabled from the list and click "Download". The name of the file you downloaded should be "GMSX01.gct" with X being E, P or J depending on the version you selected.


2.2 Copy the file onto your SD card

Create a codes folder in the root of your SD card if there is none. Then copy the GCT file you just downloaded into that folder.


2.3 Use the codes

-

Open your Homebrew channel and from there launch Nintendont. Select SD and then press B on your Gamecube controller to see the settings. In your settings, make sure that "Cheats" are "On". You can switch it on/off by pressing A on your controller. (See image below)

-

Nintendont

+

Open your Homebrew channel and from there launch Nintendont. Select SD and then press B on your Gamecube controller to see the settings. In your settings, make sure that "Cheats" are "On". You can switch it on/off by pressing A on your controller. (See image below)

+

Nintendont

Press B again to return to the game list and launch your game. And with that you're done already.


3. Troubleshooting

@@ -58,4 +58,4 @@
- + \ No newline at end of file diff --git a/img/discord.png b/img/discord.png deleted file mode 100644 index c6a954232b9fc4ba979c2c8db19db7b95a1cc1ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26855 zcmb4p#ddyo7eRU=Leo7243S0m6DuDoO}8p zpmXdi^qP$WIAp5$##YOT3uAkaa4D(gcahMcEa2MnY4+!{*L4Yauf^W%Z(*LB$)-eI zpAAhL8?lc;XeOON%{UxNYo6glhIdF#lj61izaEEpyQatn4CDazRYX@0@~a`OJoKUE zT==#V@@wlsdFZ!|iPks&er!DWcFX>A$j`jUwS~}c<*hW&@g&N=C3eqrwS$D5@u{Z= z|L@;lrYMYaqGDp`k{pz&(P@i;?COfp-p_}c=M_|o@P-R>;~m!UZ!H%#h8ul`4NFY~ zS#LurXJN%%^JzZi=J&0FXF3k4{OAivLM<0;gB~>NrCH$gFz;<*=X{PB;cE2!cHL8K z0F}(Lb~0m*dH)h4y>{ad@7=l~PdsahEcizHc=|BBxXF-Sb>EmxHZM7*^W`V5 zVDhKHDsn#A^IpNN;jjWB>#%|u>(GxM)5AW>r3XaS3-d9Y6(lr-TsgTYC%}fBYLEX| z>>y1oCQ?i-%g;FRv@Skth!hlM(|7_BODDN0365?vBWLNl)SW*OQ5w8WT(D3bqIB)RH>guahJjHImev$hQ; zga1q|&k(X%RvjQDY8}jM0rlD4vn2AnN~@VFAW}{147f@Rpy7Dsa@yvQYmRNOy`uDc%p&o zchrb5)f715*9edoV>@%zh!5oeI-$U)N!f>BOb65+T-$U0B*2Iu89cp^+(w`pE7{8O z>Xf;K-G-z7O^e$K>e07b|1swdwg{5b-aA9J(GhFehCC57dM%IswKtyEfs$V8wt2>G z$Rzve#5pMcof!=UqDR^>Y=goeZmd0UHCeQPT2wl}hDZd#Cn&na;|H!TV__bX*)4A# zwmmU$iaNP}tB$F{@?*CGKk8ov8eJ^8U5l~2ZW02`PgtCw>U5;d#wdj7_U~xyK`Vw;B)*qZ!TFeOs*bj7@9gRZ@fjWeYNAFq2iYB1yTVqRrm`J-s#VFYB$z|QnwcP zkk1UpTi+a1U`&8Z&eZR|I&sm!AZJgrKSO zpY&0@1j!6tB0oYfU?o_#hMN6RwRyVc%>>$v6?>%mCB{E&?@Eo%!*Q>g2a8J6XlY!+ zuPGgwBe~-dS|6?gdzILGFkBH`dlonazHnQ-Aqq#n@)Ogmx87pt|8Ls-_j?{;M);N+ z_Azy9jSpGGpS_XyjR@L4u09!y*F_xFhV&4sE~JtphAQ$crk0FFhd;q zw>V{gGYbCBBtVmiPlaRs+$DsspO(t}Wl{Y8sC~^bk(lCn;eK`aVpn-fI-`GYVD%g* zf*1at@$^aXyI=*ihlN*wI*T#^1;8UF!-)p9f5P25|aX-Vp0a^(MwY-KcrZ13CM7Eh5e-|` z#*)`NsRMlum3bwt1$+h)rV!k7`lv97ehilnJZs>`b@O8Gf(D=FaRYpm2om+#H)|=r zsi#$uwC(AC)0OVXF@45k^jh8_b%4h?i2x9dtdYD}9WxP{-~qv#OR$Ws;v&0u9b3LU zfb-$P_#Z5p;L7Cz-Hv+9C~nJL$*!!K{P_CjdUn%;OGhw&EV4N;HVr;aI4ZISgDpAeb;6R1%EQfA+CyjzfJ6oqwWGx@BWKKF3LEN?n(n}*t?w0 zcYx%Zp!*IGcd`;jnh$41GIAG~G6p+xVsH3+%};CkIbNeyO>C(mHHHHR*hb2I#dPXda3%N`jBr==!CSmmcwDgkH_VCQOvb|bX=I=$QmJT?UU zJq9Z1!7QA{tQ_SD0R^ODF4iqNx)9h^cv2N0i`bO|YQLmPny5fEW2$#xHFLJa^6Q@S zgfcrk16b|{p4l-cT6o8Pi(>-FAX{ZnuMVI^)TQJg(9V0+Ej-Mv>8{NnYVI;#+uo{8ta8V*x!^C#Y`Bjim71h@-ilXoUh?-wo- z@1rka1)O+LJqLsK-An1f=Ntk&)1k1vBHR<5;^}RT2n@haf&q4CZ?wrARY*q4gdiW?D>l_fH*BQ6EIyv--9IM z%Flq`>u}s0ADO#Wfk{9nWHdO17`uFlvhhAY}RQft!>|8FV485~=VD0UdOql3? z^6eOc3aFysaOo>hUkMrO)C4@)fp*L5;GJAMN`few+Ay(&L@pqY-vGeWla)wig)xt%-c$BT+EVIn$OUFi z_#S^9VQJb*T(yReAs&l{rY?M{`}w+~e3Zt9+pwj$g&YaU)-^Heg4qOd{yoR@P zmuI%>WIY*`N5$!)>pmAL8{@Q-350Ey+X<*rC;XVfMx`L{Pe%krS_$+se^EP=aK=_O z;Ix{T#pekrnygtqlU9A$!*3tkX%In@TscbcU@EsGJrB!kq23+HMPA@MX~F?~!U632 znKQqeVJd}_r60qDu%NXdsip#IZ{D5zW?f4FUKBI46*Ge^<3>N%MHep8jrUVIIhqz1Fq4>PH5bS#gwErl>0?G0|$U7E9 z5aD#*6BI1iW!_f@9+8H-aZYH;yaT}`GAXWIvZ7h+9%V>>^Bk_uYFGQ=TshYxw7wP- zm`^3J;pTZUm#F%!U@JEcmWkaafF~y@a;dq_cWf4uVo*^F+wAaypqhNq-E@X&9W7pG zucP-DtZ9p>P{&B!VpPqT=D%G<3wr_Y-ZKT*(Kd#a3I4yf3a9qb^-Dt&Q;RF{5*1&< z4rY&1hT-Kke^=_jXzPBez6W!|kUn~oZSd_$oL{Q|=FKMd4XXeF2;54?$**^9A|532 zrF!K)Sv0H2gIR2g8=Tajg>qv`YnTcDDzU-`PW)Iuu=6~n{7eaRV-oBe%7M56$P&Xe zeE;+h%(QHz2%a27qhLD4=;Z#lj#Yf{CP}pC098F=*i!vGvqXiV_K05E&y+M^Vz1o; z9_av8`aqu!pi6V0`pFK3O==y_Gw9K`yNYz*JEU~}uXM&`>E3_8q}}wpE43GCv*d*C z!ybz&L^3^U7^BBPQ+;qPU*KXDgYf&v$r8e0KKbNy?Zo8LN|`C+=%zG)N1J*cg5k_#Mf16ESk9qQl3B}eJRY=k z&@nVMxIM~7Sc%V@!V^~CIyDi)N)ElYIb=gsfl4rTgd-m>4m3bNlWZucc*|*r5VAoU z9bVVqqjfS2M@v)}`?sQXm~6`kkU+V>c13c8tl+I{5AokqeoxDamWs< z13+^x`)3jeoB3?r&TVS3%r3bkX4fgV$(^YgQ72QpkJ8b^3X>+9NL`FzW}gyWbDUlm zb(Ge@iILD{Lu>(p=ZDevNk*s0QvkZjXS)qQ(A1Y#JeNy-K;S2@#y0Ir{63l~+4MO# zfeh^@+@m6`$pkJca)F}Sv<32h%)|=w;f~wkmPnB+lqvG1h@=UrMlGUBi?!i5waNJ^ zNz}+!rz&B9I!f0M+=44WaNcZ#mB5%i^E?F60kRSU2or;6o8H#x{Irj5obW_r`(K34I^S ztE4PmhGfyE06TVViSfXezEoGt81)8%$TS`Y=7TAa_x}*WXW|JRm##zjY_kpYiYp9eIYT-vV5%{h!Caruxb<2P&?O z@JuaMUNiN~vm762|3~Pp&MhD%bkj_6VL@$aIodSn$f1`Bj-Qfad*stI3zIxxPPj0? zv7%*5Q;S-lJ-IkM^nZb#rq?zj-I<>A%!w~*~2Cj-LGLI3`#|I4H1G^pNlYE zTBtwcR;&|}JzoeU`vu3TpGyDOS-{-TDojmzW74Hy&Zsv9Mb%G5i$-b<=MN0im?Gby}7#r9+Vx8pc$fW?EW8_K2e)z?qqZtL-4dM6(CybXbd? zXLWXqH&euRqwvj2>C^Je{f-~>K4oeae#d8`85@@Zw@{|nu>9u{GshpOlz;h?lMxxk z-0S%!P~TU);kMY`*i2qp_q$Cg?cZfpkq0q^fBjga9#qb|BcInDa3to)sT8Cr288$J z3xt-2X4yP2`+(k-R5vWIDQ)oj*0Xhy_E8-hO?qIk)6;)MSXs<_U&Ca95tfU73Cyk%3UeLDMda!Zu z;0OJF2s2VWtiYsL;8XL9Iq%^zj>qfs9*+-;w+7#wA06CZ8x=}^V`Ap($B0X(*Q_%W zcFCX0v4=9z^nLQO{hanP>BkN4;eK`Rkl$)MyXM(Voa|=LMrl=Zo7mL9Og%i|Ilb`J zSkvn$teUubQ$rupcFvMz5x&GEq%eP5%%WC%WTpJz`%tAO-^O4x5 z7h@otQ&T9PLra7R4^Bi*LNzKjKDwgs;32$;2#aO*6QUwbD6KQxa88j6dSwnxsS^Fs zvHxl3$$tW{X29fj3)4LO$g-#tejf~whL_d-sXv%4OGxI7R@d7EEVCKNUfH@+E6}x* zz=IVc*?~@^V#^nvB-{$wc(O+)+nlaoQzW3721f@I$RTY)RBYAK=qVK^2KUBz@UiID zD42xC*JBn3|6Hcn^3s52Dt8Lzm! z_agDXcnF{Vq$ms}4?H@4#d&WM8}N@I$-2A7!vv+n4KGK4$V}?_@P2`{$6p4llUgW= zqe?ob68g`!ycCCL_m-;-AVpA=`#t}pO{oG7vUX`;0sMB;R%<%WVy?Kn)wGG6dnHc^ zpA;cbj2jdyPJ5CI1<8BYLmDS$ViT&!PcEOEVI!zhAxtk^eDqsP&gS@yrQx@NmbJSsw#%TA; zHBUoe4_jtJ9YZZv;(94(7AYw>WX)#Y(KWvDr)%Lw1iNK9>hGAsz~ye;YD$vCU*yk- z41D1;<9m6o8Akc43%ITs7%mYoP7}K8qD^0~WH#6WK_A-^Ok`V}bgy$C&p(AWTz%2$ zJeyov6f`XKczf2vK@9`kf+PT6*phpkqSJQHr_K?mp%eaej}gY29w6+)G#X)Yi@ns{ z{iSD4u_VJ8yYG3{`s0ExWzIY_NPkOM9!H%gsX7Kjr40h@Dr!FFBbx)n-;}_Ue_2f5 zTsMHk85Y9Xv3CGRWdwwU#~`jyhC_1B-IOz`V@a$Q+JxurmRVl;B@C+(1&+c^3_f6e z;UAhl^P|gBZAri9@A)>}a-t#mEU7VUC)%|4DxmHM<+7wgXSu7rzshEI7myXoy8niA2 z9rfSH(Lo}wj^#Xc;-Li)N1w_V*2yz3=%xACmbHbXxL;6SmP?h=H(NcDiS2o^e1mdR zHK8>_EcW)yt}eYHZ6>h%&4ASl2c1DzKoDjNT87X0aTdH&$QwGw!nN4?Wbxnr!G7M=-rK!tUQv!V z0(gSrd`ai1Lu;}165HfgiD(H@*6$;r?Mn}Vhq&eu`Fu6Ha417}?7stLIlN#Q1LdkU z-~uQRcZVXw**~bE#qPIy!q1iIJmrVATy5NVRPhJTHlE0-1`a1iy0KLjUm6?ez{X(E z<)cFhpsEvQsZR3d&0l;3J_c5W7D(|b7)M~aXTd+a6~0^si^kOVUb6p}@kzwz(GXs+ z1>A5R6Zn0`NB+u8HtmK90MtF+s~cLu8ZNG(CAeD7-5Ma*j!Z_A)#0I8TQBEo!u}9q z`msXG3&aOCM_-$0F6~(7CkA>cgs2NZvK0}D4}4m6I5wT`OQRm^*tq54FOh@ahEu-Ah*#ejc#`L)4u2|?IA+(|Y|K@_o?nlM5j%Sx)n7@nN6w2{vm81?EF$n}h@v>W&e=s% zFZ$OzK^)U8&iTQ<-R;-5ehl3wdzq7<6W{1|APg%Po4uciT1#cI>A9GV)~|XLQH=Ho zvFhV=!V>qn)btY5N3OgDGL*`(suLyzXRiPUG(64(Sn=XJtxDRK+mg z^45jd4RPN%XNTODhW<9_cT0YFDu6fCDLUTgRL$u(j(V-}*Os^fmMy3tc$0kE{UJ7uZ)SJq2v+Un$^uCy^K`2qjd%0PL*Km^hdW$Qly93*b*aag~fUt6)yp{ zti#dvB)iw?+DMZpM~^aDxeI9>+ajKlGFH{`_bW- zsOeMQ6aB+4_5n}zC`C~Ht5^r9aU|!1(A+E56)(>?%RTS(h*9-ZUe)|8wJ{d`hcr4b zkvZD^*h^;utBUk$irnme;_KB9~!LkDkmUz{oo&T;Z?^i=#lj}`- zb!bn;*~)c)aA?8cgVNo;$A{!ixaG7?#9(e`&5Bg^3>Rf=72O=Jsuw;F9%jc%RN4@^ zFrnRIpp6p4SXK_dGKqLZzH+CL@zUj14A#Uv`ecJX(%Kz;Qh{mvo1xK|Hr?3fH+_1J zB|914aTj z_L8kl!1~YA8v6w~iV{sR*ZH6i74UQR+3Vg2JIM-#otmUNUq^`LL3M5BC;ZM60lxkhJ3=w!u&p z!A!oTR@337jZ;bALhnhg@%{amXOtLoB@wFeg|3}W-nozt%HSzfFOJR9Ne+sbsFGiw)7@Mv6*yprX&W;>KIgR<>|rHHc(DT$;hrWnpie z?&)XbR94J$xP|!Kb#pxV7(Fhvlvd@oQf^4g1}F)B(_30(_iDe)Bgo{`sIO-x8xk6o zL>g|0qANE~3~hc0{*K4~*uFS^H<}yHFtvR*{FfLB&R2$zwDIVC&|N=WiJ-=c2q(4| z1N~-PV_csP2!gfry2kA;McN}g49p;SIX&d?0n?(FQl5q|XMnB8{{$N1#5&+E{W3eI zf52%fks)jm0<^&^h{Ag{j=_gJ9>+*wQhH@Co+CcRLziWa9zI?jm~DsEte2k#zxpU20BAu(`Nu~Z4eoPlaYg-1_bXuu*}!74Y_KZ4`pj@ z6Q!2x>~}40!g=7v{S|$j4spx{ZEF}B=GEVJj+7uG`cXU5R-uM*^6R?%4eP1+$yh>z zGdp09Ah#_%g`Vm*#yzAWGXWfP+jk!Y zE`{CDT9%=ivtdsV@-rr{$OD18?6$nzIzr2JZ7=tcN9*O!VDgb;qG6#>#`bg5 z#RgI_BCBmTAjxhhwX8c~nYKJ_k@|(dW^z;*BdPs&X2~A+v@X2WiO&DGjdqOno*NjNndfAf_m z#3ltmu*=f%6e;-CKoZb;#G^ad@r!)YPa9;2YcX5?^KwT za%{0jaA}tXNVV?hzoy*)uvNqU<8+moeInA3G;E7qsVA}$si1K_@{4jI!`A7bcnfe1 zWYN%fCO(tup2#iq2UZ=}XL{`iTx@n2T#Fgt#>vtek*$7)Ip{i<27Eh|CRov^-eU9P zJMh!UZP4l2Z3N`z=23bQX1^bsN?&4^{V@>lW7(2{@=51HOw`@hPkq~b6>VV0`7!;i`0dp>Y>erBochb$Om z0r@aHC~zK3YNLJl`atv&D%5_}r0@UD0_@+@tj~c=J*u^tPL0&p-7eI#%@piZdsi4XEgBr?vr9I2`FQ4O&*;lQrHS10xFv9BtsPpu2en@bHx43v zN1~Y2fABziz|lKvQlg)Z6`I+C=L!QlXhJM=k@q~wC>zxKT!Cs|!}MnhQct)`X~1L3 zhn|T~)GG~?@Fol6mdeyv+7&n%YAXmFw!_p9obCbvmky(Ddv&qPD(i&Rrw>Y&ZtNRL zqn^J|F0_BhGN`LhW(H?j@OekkiDPixshcyMzP&38922UjSnld=hdFQ#IwaS*7V?MM z1E!W!cil%?AH?LaPwUYBV?|18u-9DLL;y{&ogY*mzH&Z;sG0#qlqf0E)bP!Ulq9R$ z$S=@$274WkHU_v6NBQQ(ESt!l>xK_&{I$88w{MmUv_Mc&!J;FL7s*>%QreMYAh?6@ zg(sU9uNT}rz`$Tnr>s_%z&hl0IB{co7ikLIKJwRDSEQxY_8$%m4HuU`U>|oRrgRXH zG%Y1yqWcfwYc-ZcR*QKYT)#DvV=@*H!HW1ngN64uuX14q> zwSd02jetCaG5hi#Vf8;aJLMw9td32uNgz^( za)DRWy}5dNf_4EXGld5pBD^&));3D{vw}Tg3OVkNu}^{sRYc;EMeCOA#6+#ca{V(v zdG(FH47NuC^NYSMLL_$3i7pT3>+k8Q<7fefBn&0tlO*uM+|cvL@)iAb%H_@Ar_jCo zuz!D?94Jl29Rk~Rg~E+2vi+ojzqpSy$qFaQ=_C+7PFm~nLSwK4V}8r)PX;y#H)oF1 z1iktl<-s^DhU@(MJQ0kPBXC0K`7NQCfLhvrtcc}8MC6$lNDE^=3fGlt3WQO_rxo|O zLBuNNJMkvzA54EEk`bT6OrZw?J9O7IlTglP$ipJdb#Dv3^g{KlF*HlyDSuISZ?IO7 zgZZ-LMO*%AsZElzHn>$|uIK3h<9t%;cK!J{(^}Wa|6-6Z`e;8L)Np&nLHR( z=;%IQDvsGipzjmnEykai`)ua0>rM8ml&=|GVfh{;j}CXd1v^m2PNIe*hcbvsY9Z79 z)9e@cF@xpCMge6CjaMNJ+gZ(g+_L9Um+<6yIkyG^_e( zF!@k_XdXW?)XT0v^yiJH_in9Q(U0xdYl5qtok^KP2M!8@m3KA0kD7D5XZK3Ik1@nW zmBwRV^ay-RFO)!@pva}lAdj=lHog2!>y(>GsKf{ZG(B$k7Dv89z9&7zhQU(PG9Sdq zp!FE4wLG{g)t}fwbUQ!$&j`(kvG-H5q#(*S0OR~VhY`${9UW3Q^x1C0YIO2S#=G>i z0^s!aWyAQUG0&xse>Y8xPw>kauIa7&X6xXe8y@*;uZk)e4}Dt;nE$w}p%N7kx71i_ zWEdsA%`mNgLf!ThfQvc(j|QS$#}2-CIu7E#qzXjAa9w5^_HA5y7qAPX&w)z^kK5-C zcyLLH<=!6trCo0^+FS;>{->%?pr65_L7c;n2KWMG=LUWv6b^UQ)(;hRtuVKPc&u!A zZ;#5h1f|Uc|7L*YIet_2S_}-Y>M$t|QDrf>o{IBI@usxCB~7!jQ!ixo^PQ zLESS6YlPev=>I^VtKME*zF9F|E;ej=o=nFrKa+(l3(W_VnLYxGeBy<3Mr+F)_=ERc zapp=hni>e`u?vqo0=4{fB8T2=!G3zNm?p@wEw2{OrG^>L+B*P54kwh6`h8JVSYqJRCX0YX5mSd5Ydq>&@(g7=>woFA!^!u@4W@r}}M${RdtB)<>WT`3k` zqn{$b_~XRuN+1GqPM);#+Q58=E|wvEoT%_}X;4uRTp95+uj$Ou%I=?0K{?DW83DPt zYejgqc3OVXkm8!GFcE7)SpXBQ_aHAi*UQ0JD~`dzV;~-q5p5r~eLzsAycfH|1Ne;e zX{`6UKhY&UBE{039)ySLUu{94E5yJwK^@iCr!iDr{2#EO` z9XN`iOd%D(-@gf)7qml?vzp&y&JWNY8U!qMy*gw3@szFH^1l{Dwj6N^$dP*&KNXiw zVD606e4bITjry>nwhlop-+*w(`N-e&;h?a5w3`PZhvre)hD_V8a|9i|`NSip+Q8p@ zNoz|-?&jKAKeUhnAn^r=gWu;zryh?;Jb@9ufTt7)r4%d(|2W75ENc?cqg?f+I2HC> zzJAc&PjJ9tG18thH-*kAL0MN#$m8QhTb_enq8TiAv44Vg_kgBBh=VxYCkn0TqB!-) z%;%bhdHY->6oc7?Q<%e?SAg8aoS^8cUCqCOfm`IuW7uWSsKZ2Nk9GJF7Xo+o*uN$X z0Gq1!+P7?iL9S#%S9_kdd<^`BDZc_3XtJYPLWsX@saY7-&LY+AD{4xb#Yt}lZ?FSI zn5LhY9dk=-&lk69_<@e^RYefe+Xu`n-}5ZDy#=43ZGPgpI^zJiPmi!ur4Jcl>xS1B zckC#_PwLYj&cCP#zG8(a`~8>esuW198V2wK*JH>PH-aR?Yr0pRsLHF^# zn9l+j7xK0Pnu}H~)jdNj6w0ywj&YI)&XJ6&BQE}8Jj4~|CPkVEc$cR2Vfy+Bvl}v*f^sjt z&~bosg5Vpr7!%nO;|w!(8ztaC6%w)9Ft+6K!koX*;bj)5k2~mergnR%W~?I_rYoQ&$vS9;O=FN>a4u& zDML?t;4B-h*CG6eu+HQ8k~Lh9Tic)L+aST~m}4BMnvwxeCQCo@!lijmf?`;(|CB1E zHD8T&gZVWBj4wE5xYogs+=4nCaHQ>E6=`l+O+o_GAKKCP3tuJ1C3T&GUq|wy5`hX8 zOa^GOUA|~^gCTyD_WgJj7HfrpUwgG}LP>u@6tHhz86uf63*1g3I>}Jmmsp^j6MV!eP%Jtz|^0gtMX)k zB($4$2T-y1bsR=_rRFIVQ@rV_4{2OAtw9_J{+4P8@vHD@FpdnCP#wc6Lhng&n z!1d2~r!&B-JCL9eeWow%5c#TZTm=Y_y_)tatE>{?V-R{$krw^S|1=L~GCntDPGMl} zF~bCOb>#Pv6pj704Ccb=ZY5z3Q2pcIj64_OGM_x{W{2hL!{2V2lqV#%62MA`n5&=y z`2S3lo3IJ{6~YQI2JLhp63vg5whaLOu$U0TKAQc3>c2SnbvD#Fz!*aN(nvB}xMxq_ zFMlwOmW3wEoYZm*5Z+;p`}I<)zv49k7Z^P5-dXUUL$pDUDm&Jy(dVUDOo?Gpem@09i$1zItT-&ag>J-qz@0hqARmB*2l)-r)`U#<)zKrdmI#2DEyug z2oM?|q*8YlkoE}<%7*V+lI#ReiGTuE(^R>_2csFsOj631H-!CY@u!8XZL8xf_S^L}`L_0{@F1tZ`k+wN})-QA^G% z1Cff|(Q?;2e}K6;10TP9geugakVWo?9hXlzVyO<33B}9eJM!3JN=fK7vcbRNi_%T zPPBY&hvr7h69h9RSQ8Zp;ebDrImWn24u|vnGP+$k^XbZ3w7s^a_Dt*V+1wfRY-cI< zMQsCD24V&pK$~uYn73(Nk3(()dVp`JkqT!HyCaNI3Z_k|(bx!tf9qd?)AFRgFvT!u z@zq}%hkpynV{cG9)=%dXo&}J|68B=t>>E~>$pX~#hVN<|902ftjZVj7UCk*E1po+f zc{{1^AHxVIo;tMmd@K9d5J-@eBtoLf?)Hp=y4kO=ZY8c*hVp0mbswkbGdNsgVREC5 z$$0F$Mtp8wYvd1o%ubno!;P!9JkabB2P6h3$8Sa7KRuytZfM@4+DF?N-RP)6TR(@b zC-?mNl6+~7#~Rgk#hMgr{k&`Thx^@}HH>6pFJny{MEnOp@o-!m6#MS*G~eZ~8iGW! zj~DZ5qE1F4NqG5TzyN_6ka>@FB`4DsXcsTIcZ3+!kH|cTw`U8#mV9i3`AL)0Az|`4 zREgmVdpQ5Q@Zhg9`r|pudM#0tec${@-Iox3`*e@kxwo{SL9w+Lz)fb#`{t35ij-f2 zi4Szd5Mp$S_%fRmW#|$uAVqW?t#%UpXFkIIkrm zB8{+W{5xv9xa9hiGwb&?BmY=GjWhkzr+tZXeF!d^>!JdY=L_HYn6!uQxmFgI)oynHpI}K>Yz>BzE)d9wT zzns6FDuODiW5;*~W1Zx|V_eNyud(BSpm6=5_6z3uHM#1bFvVpPQUi1c4}&;UbJfd? z{IrPKxQ}z+c{QoaOJ>m(TqFOq)AB?j!0Db_RzK)})(83_^ZaFqg}Y`B3Ha-{L(DC_ z$>hVFy{;0Q`&S)mBKlv4IwM+D#&L><%>7K6yR|CXHFQp1>$ez3aQe zN@OX@Pg!GqV^8^|9-@{2i4^6Dw1W3Mp&xsvJHKml#_U2o(Up=LMTRR!b_!jdW@xvVX|Gw?`t!(Ij5vzPW748arLsZ!bN%|vqx2Gx2w^2g>Rc8}ePD-Q z{SYm20P{i%VtB+RIcF12_#5Ffet0Z#F-R7kZ}Lv=&H|BMlX-sdnrd{g0L^7$O4 z_pvO>ym0Rm6187^?|&4k^JlUOUY=7s!=vu)%oif(w*{}*IwnX7$izNs^#S~U1xT7| zyIO8M><3jOMS_oq;%@@NB|KI+OdE{Tub8c+MaJDK_^{Oapk{gHHDZDqYP@!6>h8rL zoy(VP;_T0x1__<`@jipCZ$k=`r8yZt*oSd6bHDc^JQvFv`dDFyysN}KQBq~AF1UGY zm1O-&(J0!~Ph#2~Oj=HF<&SZZRF1WXrH>t>ouJuE$pR+}H+}yV1IV`ll8CxFO5(2K zxg?p{-@Ut4wQ$*|1MLE`=PR+7z_*u0NY-AmR7z`t{Pd%Xpzw7rf;66O)M=E>j>msE zzo)WgUhO0xym&|d959$2JX_Hxc^1G(UWR1bKL|MLWnTwgJo~2Kh%>9?$He7{faD5% z>M@A-^3?OhLOem$@nq$T@+o@P!9gBdk@oG#H&PXl%DZDDPsIRu8M9DnY;9SRd5rn% zkxpbx_V$uivOkWH&E_ets`!Cx80iwLg8cyfK&N+Te-zIf(V;9dU*OQ&v!^S4 z_y4EXe|SoVpD-h8O@0LbGu@N9bFlIyB)hzZb2DO9hGEKHp1>6^W_NawJu|G98A|;43yEfu$}b+h zb^5`xX`izcq$!WHWF98?U4bco3+4sCrU&9yS}PQ!L>sgHF|mf)FPj!DvRg%@b;gK# zCGg`Exej!zE9}MZbH>u?yMwc;W6QsxU;(Y&0N}3nD^EHrP(ETZe|aVXQO%R@vs_<*0}@#% z1fQg{YmZQ{a71)jI-Dt_|MDy`3Vi>>`@igsnBKHO`!u9IE=s(DDS zPAbEc9qy(b{LMCMB4@XQ1Gq;v;3=y=*mS~+K+*=GsTqEuXxNX2FE<4+xoon+fYxpm zK5yXY)%>@aW3znSS5OAfL)$f3>EbZ=ze+1Kh~*p8;)TP0B^21po}hFrDZsCcypl}iawu+n50jQ(W> zgLx%$=A>658%8Iv-B3s;fyvlzyS<_W#9)&_P1&rJufAK{RxSu`SjcQ6=vG0dCMtJN zmT>{eWo_*z4?IFNSunB6nMpT>XuZz5uE);q2WIWSF!K+^dI0So++3|2Ql1qQuA~YEOH)In?SzyPQ=MSdx-FS zUv3Pz^I-w&t)3?O2e4KD17?s12~4usX=E#F7hp{bb)|wS$)3SJ6~#XTZUH!uy8!%5qy&^7i;_hqp&Txy8L5zY&Fk_Dv)hbqr)%Niuq4lMxhHG3q5rq6_*eP z_)lq4(;bSw_KSaPd^N-A!k$Hl4q#u+NUk#AfXj=-=G}TOuSNlwW8Wr*zWM=-vv+D1 zPK-D2pBS&*g?wX*;9*I-Kjx%ZdYeV=r8J8?e_o$xMBswUUpaQPrCq1u>p-A-ZcF$g z{3Q6?tY9a{gWY0J#zmos_iW*-3qs~~G#ek0U^8 zW+VT;_`R67Ap!(_4PJvFro4HDi7)Xg@n;cj=N0B2}bLk%?a0ta^<7abR zq*cV$ZT_Q-ORqNy{;)a>W4BxHE(9x#R~#OX!5(WW{x8Ms2UN-=t4>;B7PNF4Q!tJu z^2X%#FuY7if!{)3B*3I_@6}V5*YP}Gje%!|4V(-|Yo1$~y{@ysr^?P){rS@viM^e5 zRl~3H`JmPpz~kR?2iShU&A9E=rh)_yfwGHlI~VYmAoGo2;2=*2Py#mt?z|;erjAM! zx^7PJ@H+5?zgM~l5)1gyh$+bCDLSb_P4mof3Oeo;!OK__F8Z{pct6dp<7>gweFAIdWTR9!WtFlnKnl)b24A8rnNS7- zNZJ|!VCTm*#A`I9I@Knh-(mL_q`y(Plv{h$992fKv5E@d3nYbpwa_n#&Dk(8;+68wH69QAv5=pIsWeHpqD56?s>vVZBcI9b&QnU&iV3u~sBWJ_Yj@=iCpOP{B zf3pDg0ttSulqBM>tbo1RfF70Ye1Vo;r?R7LjonPiewv{4Fn4*KH-6@FT|;K_v-M_k zz`g!u6{a|P-9`u_bq>(c0To?YVbjXba1>eI6**8AV#&UGCj&0u=Z4A$mUdofO!Yxfk=bcPi%I(rCI{ z2Qe~07)5dT3-d*=dvFewq=gl~M_60TtQ%@B(<6xLwRr=yTmPrB>;8wrkN-~PeUa#lt^?W^F z+MD;KLCAQ$#`@7eGr;lnU}ERdX;sQ&t3S(}^@bp;h)L#CRDk$>VRnE}BwdPWi9y30 zJ?A%dk!iY1YUtErAxoN!lxC#P;v|Lx7zkn`Nw&UPo4TKmM)F57#VK^`>QC#RXJ-}XYxLX^x`n- z-xjp=q`(i`aRz`69TRb<`@T3_0VX|&o-5~#FtSh#T?Q8{OfTDC-lom8qwjJE+jFwi zS^r(an9Pf?ApL;inX0**&W<7gnZH6>k^Eo}>Fh8qBfNkzi;C}8K(-J7@94?sZ>a_3 z1K98Ty_xQk2n9)j0!S3+S^cYl>lS5CVr6w>{MdXZ4&s?JIP3%+^%bO|@Xzd+Vhu99 ze&6a-G@3ZRbAM-kV-R^+{O=_@i?^+Sr0x?i4YhM`!a!G&IPY>bc+;5Ha3?kT>>b>8 z=TmjFCsDndpunM;0ap*578jo+pug|UnLZgN#N43x;7G`5(U*Usz!u*H#n1C*xqElG z>6CV>rgx6~*9=OakrDfsnNEbS)2L=C$08NWCkjwpc@g>cn5*Z>4SfKJ^Vy+i^mv3)eKY9FL%6PRFxrMg>UB=waev!@+R2{EtZx_=R^Q*aerwz2lCnF2 z)dU$61><*O2M(1&{VBpok`F3-`b(q*qtnE!Fo54n!r_#k=^0w zpXUIi2}k?ZO|wIGCJf6PFl@p1c^spI0~7{i$F>3}80AwwJ@W4&jh!xt*uS#s))t1| zbYOdVn))YTwctuUVbH_0OncM%YU7ndN!>roRXXG0v7NB7l((?RJP7mZ#dr8?C9hEa z)FckI6JE{;9*w1L#F|r5Z;BxV5tBsuF=(UF zwTkGdZLIRmNn#5-+5p5PMsOcTh%2g>81E4z8Sz6R0m;L z2r__b=D0|ipD)QR6CqEt=DeL-cB9fV>N!;-cQ|2jT>6^_QBsLNhAuSIe ziJ46U0$3P9$S?nt3E0&SKkUv8HkRai-)j%Qs@jPMeKi*o4BVp_oUgxY=9SxP2u_hT zEhTr*UBUOFuOIiy(dBC%}^fZ^J#TvN!w=|dBckG^6UlJhX*g1+%XOVQHGozq~x28tEyqsAfI@7)jMc$lckpyuE#g%fx>rykY94yiO{+U2+`Y zE`Qq{=#U8Bl6$+*3n>znXq%K`8xh@U#x2PCUa#zi0zWhA)@x*Z^rB7A^=Jt?r!$kH zIA;inOD)QW?*krc=Gcvvq%0JC1BkU&dX?pUYajSWBx?88B+E=W$X!dz#0Bv$MvN( zI^ojXK+tjK^$66rrNVqn8?5yvJ1Jltfmr8bK#GMdul=*W(?nDf?V7ZfHxxO36`$~4 zC)HYrozd_@UQ_#M{23t6)Z6;BN({ooT>tc*a__&uSU?}Ip0L0jrkBi8po%a8!CIdk z|CY=czwkL6Sg6)z)yz1JJck6|{D3x>;XY?|pPe9s;R4z%Tte!z`CRA$I z4|FaIa%N`nkixn7;Gfa47~V_O$dv9#0pCO}Ot;*$P)Al#@y+t=e*6Q^FycHs>R_^J>q2TyM|L&oV6 zF0Fhl+8U`_8tKP|{bVdluKo17m?PG+g(tCg%Q(Pf>*4Go-ql0`fL1~7a3ntf+?+&S zkYW0MN{VU5q(>J4o3u$CEM_nLJ!J-{9Xc(QsE^1yRdO1s@yw7pfH^VTn{n;3u7hDI zb;-ZrWwQ``wJsa<*PsiMl@FmJ%XF~+>qbX^2X(C`S^K;`bQzc=eU2yV}rUJc6OXBjQ(>Q!*b zJ6Y=$HMM1h!4Y|C_b21 z(J12XFr?1l3RT>mU|4WkxKJJ?{&`a!_on+S+LKt_vDs7|_zQ5jq2P$)v;e*OCKbT+ z2!!GAkdir-!NKJ@miK&<{lUv)9gz%H7e1ntDe?s`rx#vgPRi*Oo>AoK{j7WU=shK8 zVD;&@ZW+MSWLsqPEFvosj9Kw+mSy<_aEs!zDx8i@A z4$3#TG%uBy1B+6F8AOz=f7V&>d59UoEO zU-Nyi_INetdo#9;DW}bYlQBMUa0e){_6WpkF3%Xt+MG|4oeH`xP58Q$H@{<<7jT2^ zmavAsfVl?di1oR(dF}kAy{{|tnp#Oagna^)tFvUl5T!63XsaU-ETTuhXMP?e#rx~6 z!gFK^cp4X12z0D&HB@QR%>cpW#KFTO>!WM72`sKZN}YDM4y<8x+W#=2jj#0SxX4-cDx@&{7XfB`7@xL8jB3ZZawWS zt(&lYDgWEyB0JJZ&`Mw7JpTYx_=*lh5=c?I^9t`M0ySm7led!pNWh1|MKigTB=rUY zEMhlu5tMl@VK@_!JV0?IC+!kjlF1>Yypnu^;TT(8g_tX)@?qV3HTH8;&x+^xm-q9k z&2kI#7`@dAdF#oI70gkkHPq6LoW^7>9SJi5{X9G>c0LKLEH<5C(l zr*s&lZd=>5qL=;1Mq1%d@#4BRR^;<-n^E^O8UPop}_&zl(WK zzZbpo;)->xNsC2oJ?7?vla--M$>iwpOJ`6*kw)|dkeJdcPz|VH5f32OKav5g=e^R^ zWycS%kQ^9nhk8P#3?RnS@n!eCQp;+BSk)!B^_z`7-G*HYAl2Nct30<)C&ipy-qt!5 z2D_yS&p0rU3|1EZshOT87_#&Q(&g>>RMC@c|g(7yQ@t5aAS(@`)riH zw>y+oF#MpR<_{+@#G)Qkox9QL_)W1#gLODWBe|f9kgWbvmeCZ;u6I>LE6T&Ff?%frv-};uC7Bm1t^e`ridAOH(42(8 z)$2*_i{B^c=F{I9sgKzTqVTx{6V>F*mmu=`fu*l`6(n10?7)a>F zA7xh1EL5Sr^awR8z^ED^o0AT@2Xq&Za=`2BT_n*W|nql zO>*T48LD_cS5jxi8B`>!=*Vv(6m2lP=YAc)LSwChTAkFT;POOZsG%`WFVC};Ya#9r zsTQm4p8PM>#`{45z_sX)0C~)S;FklX1tX+UO{ASMAeKG# z!<5HO!*9zsr0xK+F7hd?+E;ai>Z&F{Kc`6i?cE%emqz=zW-by;Z8oZR`iv^o!ojWhoh19@*Qrr(<|El-PoIdnx&bO)zEaz1>2?XEZkP2do z62}|mx|geR&^SKWhpI~B!QIXmZ^-1p+93@1<%H18wp5BU$`tLW?$@^NhC1XB)ifzG z1UEnGKn}OI0N9==0;S$S$Q&`C|uoyPQ6}G{%Gl4vo`J5 z=g~sx*XX+y^dVIS_~s2n-8sbd)6U}=(G)>EifDlR1J;EEIKBN?;Un{cebQ|{(KYzq zs+y7B=L=3o$hjX`t1B5h6t0f1O^7uWo$afRrtAWw0P@v+`BkSA(0OXH8dVUF-GGnn z6+0tX!)vx%ruVqgb&EU>zT434#`Y3)BCTqqESggNfIlI6!klUB2B-S{w|^MqUH0Jma2JcvSu~ zl_7uN%^oa78hs_jk^q=_%PgZOtFIi4Us(H=4X{0O$AEK9!qt?}rX3IQFM75RD$Ffi z+AUrnYZF)-MtOkt^;0I4x1E*$B4`J&Itu$uWO9I+J}42^?RROZJ; zwmZHYw78!+@=2XDp-;bwTtP%t{JP0PLzZl7uroXk^WKUxp;&4Ce%#npt8X#+IjmA6vKtrE0bsB>J8%i;R)ouaXzj zVOBqivvw1{5Q+mSCM29&|GazoY6AAL>24fqm<_6u;Yk@>F(Pr0T2DCxH@IIZEJUuf z@;xABvOgH_{DjJ0ur$v6(zsL2jEJs9S)Cln9JqBaF~YZV3XdJ04Gyd>MG=E?N_=08a_ zlA$Tl8j0#7-;D6#wLQ`LPyD0X#QW{rBUzf-+KKxik7C!%74q;hl%4uF|Cpv&EBZJ;U_(T zVwgS2^$OaixttB%*I=Tt-@~GJz0Rzb{JTmwgM6lE6vOu;x}3E+XDP#pj=T$SN=F3% zYumsw`z9VxG=62Y$GN+Lc#_DFmCim>9xB{itVNUhDX&g#-0wmOeuR2UaZ#sS(%V9mB&^>j`1QphIkdp|#6p8pw|{SS3vFEGML`lg`}Z`$+-9NLvcF^iQ<6n=#+#I) zjk|EaDf)1%cgNw>(5`$ygmh@leicvM^w|2zuYUV#vAUDm(G%msvKPp-K;y!tk@dhU zHBA=w-a_HO*kk31Re>;z0j_Mg`hG%r0V4&%i)$D6#L~L%ns&>i1UfGiRe9V3$RJNBLB5kSllsS~rhWTd32*^i zK2B5RxX-i9>!Z(qb~e z<}z22H9T|1vX?g9ujPNZJzT=@J|Wi2d{z6@rFlkN%|--FL7a|r{dJ&QB#lmObpGy2?iHrwqyZUZy!ua*`TBp+{@43Fi9Q47k2)~)cTGSYLOUfYZ(WhY=$9Lbl=B>MAO}gNkTiYZvVd*?hTG`!$W75SH6it znsh0io1n6DLRl44cT>9AB2kX}<(ndmNX!agw56fLvQHu7%yL8NZ( z(Bg1p&emS{D$?v|ZKG_-HT~d|^=M&j4k~*#VXTK{3SQ1T&y=lt=dZhcIxM8A|8L#& z^71z^NYnKToCz4UkG9^Nc%CWhsR@UBpa-N|9nb{!usGI(-!?Gb=CUomOXadjhND#H zTRB9-(k0ybq5A})_bRN+YQUWXkbRQjwfsKPTZ$S}{S|lXaOZQ}e3Bi4*t-%F=#!O^ z<*R+tRU~M~YZvo4&=l#VL9lnm6u*818oAQKgy10k^V_Xjc_svl2F@Z!Gn|f*q02b0 zgEY6cfj4>f;U8?!cDTKb355LNel-CtS@Vx_8p3_gH!CG8w283X0|;coP59>aA~o2X zB?(tQP~%(Uk#5WK7HF$a{YwP*tJHex?&UL3DXuewybZW>^?-Q>RAFatV}z=o<{qnp zp7=EPCxmWlw~VHD>>F0iEHAKK&WT`7(8G=5o&;i)2;XuG&BcEn`6hUS5c;6d)M6(% zXB8(6c$Sp;)@)uR&(iyVL*~?90RZbB@)6)?9U(pD56!K=CD&pZw|(FqK;8O7`~3+$ z9zB=1OWP=T(BN+$pe$Xa!o(Q$0wUr$X)eeNBe05~OfCz$gge&xceIr~$>jBLkQ`w{ z9r#`9Ru+8S8vRI`DP9Q9u!e!!{>6=BUwcBf!(=fB^e!>LI&if5SS3+pR`krMob#wq zQMR(iw!)(N81Wm%6$FrpjMww3j2C@=9mG$wVnryD&&Q|>q)C&|$I1~`ipg_Z=}8V-O$W9f z)Tv*`^dnZufoAQ^%-Gbl75JHu&uVpmhVUE*&q)=J)c^)N__YCuHi_?6&4djuay`F# zu!wqim*vMq7_np^9?+PdWN_9E0exeQEx%UNEk(0QpHrVgDd#Nj-&y&((sV<&-$VP* ziE^C%(Bf?DUE72QloE~46a4@_K(*x+B3ywmY9!Ti^YxFVB%Y$znxwtlitdVsks~}H zC;Ua>qgYtCJodm?9R8`8`mqFp-1)GC`%U-mEN3Mhg<-?8*6O#)(u4eOJ2dB+;6|N( zmClUK^5RGJaPb|pX$mc2*HLQ;LT6w+p}oqrBMnqwnrQ^GmjZlIVAe;FA^9@Sj6&IC z+6@LqNN$O`Ppr#Nr_XuAbHJtqc>9qYx_Dq}e7Jb0q-4OWe@@5!F?>89MS{e~%aa{HU`SgcvnOd5EBl3n1r<`~i8JEi(l1e#*_En@4wD*oAU-y9 z+46IL`3G_h(z5i(@Kv@wqWxyD50RcJpCd{6Jhk)8`_*MHbTK2@I9K{({qCKp4+Lag zWtRqLb2@uZt8i6I`lX(102ewQK>GL&eU&QSe5TN$U?8;FJ3s?9xM`*oF~WIZv*Ij{ zSje6Y^LuN%^PIR-e@+yq_+qJM^+0=*^+KX`c=W{Vi&eQ}q(hoQS=jZ;z00c7=6%Ol zUHM;~fynHZl=#@Hta8>CLB!s*-0CluR)dyh98C|yNQq-KZ}}9(*r8ey0Kgvq-;RJ5 zcQbA1qR!4VJ?o`5E^wSH`$LO1|NAP=&V`0ikCj;^TBusH_3Bb<98%Eh@f4$|#|J|O z9xe@s^$EiCxWW_fY5NwVE=EDF*BdfZD)1VEOBvA&y#C6c42!c0oo=+p-P84IEM6)- zdm3#Q{~B<^b5Ja)nGDW^(yRU_KMqJzn$PUYE0Y&O?>qXJ-G&<(g?@3 z^m!L9$;Sj5E8Qsfx2Ym&1Zf8+OzoI?UmXnIPUH8fKX=V6lvxx|+UM0ZJN06}My93k z>c0ldTaHIBoDeXifl3`!hQ@HCy8CRYnT&o&CH=j9tK?)#FtkhNd(Q`~Vr z)MJKPb606lO;hnh+K(G&1zL>Wzt}K;Izap;yv86=OOgN$>429q=4DyO@Pi*kMDj&t z4km7zo0p!$!Ukw+lPf56U@R0Wp1xnkLKrMQn+~UEO`Z4_PVE?a*K1EUsqXdj#$8Mb zx@#AgU(I>j+Ohj*_TXKHhgKsjR66?Hk9!(@hhK`=#En38>|LBcQp6Yf(Y2?6=dmW+ zZL(}IaYSh-bec%Z^Ehdo;r#3V{vv?>%uHMBAfRq8X!g1BLamk!eE>5ke%?`o054n| zRTzUk)glBG98rvg~qm)*0>fD@1zAnG0bI182ob5&q~X0!Mcx@gYpLpS)d-X zk+;;mpaoClvrcIn7L6Xqo102AT4zAIjYWd-qH(#Eh^wom#ZB$V zdQamQ#RLyk#_e^jd&oCE{CeOmn}UHUS|^9 zBcV*L;hgkheypj^ZX3P?Hg}kD!jQ^dNX+t>4s^xBw5I}tgOot7dhD8oCHj}?0_~Z) z5+q_3qd1e#{;0?`tkeajH@POF3fE&nB=(iFG|!}?{a7s*{465YG8uJlfu^OybZ8J2 z{*NJ3KOO3dMd?t>=M{H4;MP>rX_2C5Ll;!x>`1Zd!+B;%42*xKv-lIc5hMIdFR;~n zm_;?!+SOAGoDdA@&S&I#y+0byEI%yIUgXER<%E0P+Vl2`_=_dYKA-f#Md0gpBPwKOmjK4vf*F6hIfQUO`Ws zM=jeRcz}Sc6VpA-gV04^Zn{7P)md3`lXRZOGmQWT_e)jx71eFecMcd&=&ol{CF8(0w!H~8jS)dE5^l;EUj>C40=f?=(h zveDMdT6uNo)3we(?}*F4Zeaf;H5?xuzR`HpT^jV0(z$Pz6xaPOmmymo@RBwA!B}ol ziA<)bXw0m67mgWx$VHI$7~?P}Sp)IqRgwS}m>1Ra#U4wlI{KN7^!F{8>tZ~* zSb#g30rXR`k{jMQ9&yCASY}tsA%`fX$N6(-l2z?V+zK1ti@~b)Xs?sA&GU&B-6-(d z-s((=i+@RBzd9fqmg4quZ90SC{8C-rDseW3%Y;qKs_rQj5(!oYx2u8lY7xDAV z-j zk95b^W*Fa^Jm+;nXPCxCZJX-1GPNC{@Na9j{ep4RlI{K13sZqsr=B;RJ&{{aZek6% z({IRcB`Q;$aGO}+S|@m9xZk$qo==%F(}6O3&M zX~ypH=&)uaVa~K1H}e@yuOIH<#AoaCx|Hj*4^pU-@xiN+Frr{HV>_%r8L0=ce3Vs< z?{(KK6nRp?W!~*YE;9VBd0@I{a}e0(HX`Y|A9xv-t8rS-?3yfHhanm<~O82xPL{pP}N7a4NJ%0)B z8QhOyLqc=?G4;RwJ<{T6dH^<}vHUT^;9*7k(IiTc#K3&_N!u=KpwJFJNmgomNpfLD z^EjdDP1shnvQ1zMPs^JrXw3g__s{>W3>xV=VdKL0o67=0dC(gH7YZ3jQStG C`ocW` diff --git a/img/discord_bubble.png b/img/discord_bubble.png new file mode 100644 index 0000000000000000000000000000000000000000..60cd9f061e86eb8ab18c218ba268a694484d24fd GIT binary patch literal 1761 zcmV<71|Io|P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x00(qQO+^Rd0SEy*CV=q~ga7~qX`=BBhyi)i2j7gM7~~&Nh!Ks6K4_wEiiwv86B8rG zfQb>I(GXh7O&VyS720muThH#EIX;}T+ugR?JuNMMlYN<;o!@7E^PAty{8nNfdgJ&N z010RSI)UxL7GQ(hR^xU}0Jni_zy;tuaL#SBPaN6k*`_oPFh9@%>;<}kRv_ll&Ny%t zI0bwMTm(!npmPG2cx)5!3a}4o^g6LwWCKIMx4@^srD`6nXvl>N0sDbBT}XL>VACaB zxc7mtfpjIv8GtSrz$)Mf@G=lyB(Uka4}1ds33&xLV*xAdQhRQMQ2s54@H)+ZO?!b&S}*F zQ)y-|(Bx%mnj*2bF~H{aI+`jGPvjk7#ZS=h?5m7vAp|rx1c=nAnR3?Cdpa0 z7cVrqOg$>j(bet6YXQH^?#?Ki*6EDKa|i()tpRp-#_*|faVc#emlKRm+L%=gsC9SCs(73|qb| z<|SE=sK9lc_eMp)aEW&;%SMtwmL=-z{OswjoAH~VU*^fK@&}&~Ho^u~aj3$EiX>5O zqg<15o`7@8vZhAKn1Y*kCW~iqHQ6@A6M1glF_|={cC-+l5@D~3^Qewf;WQBf&YX`E zHdNL%1<^waW>%%|T8g}7Q(xzE;>;%(NB7+qIkxYeFarjE?8{>r#TV7bX~+$XAQOtH4cb~NlL7M9Qdwd>Ux0>sdBO`v63!BZ=pekvU9m{}@Y zP`!Yu<5am00gte_1%5wp87D(BJTZ$5JKOh!V0-go5P(Ckyx+;y;Po1Xma$*~tI^03~!q zSaf7zbY(hYa%Ew3WdJfTF*q$SF)c7SR4_3*H90ynI4v+WIxsM6_+owl001R)MObuX zVRU6WZEs|0W_bWIFflkSFflDKI8-n(IyE^uGdL|UH99ab8l~F800000NkvXXu0mjf DO^qFu literal 0 HcmV?d00001 diff --git a/img/gdq.png b/img/gdq.png index aa3dc77683474bbf002e174937071710b51ad915..b006b164b345b1318ccd74fe2dd90effcc094aa1 100644 GIT binary patch literal 1816 zcmV+z2j}>SP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 A0{{R3 literal 0 HcmV?d00001 diff --git a/img/twitch_bubble.png b/img/twitch_bubble.png new file mode 100644 index 0000000000000000000000000000000000000000..188edca3faa8106d3c355d90cbda99730b1d75d3 GIT binary patch literal 1630 zcmV-k2BG004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x00(qQO+^Rd0SE#B3}wEFGXMYuVo5|nR9M5snQd%SRT#&A z=iECcY^C0IvaCHKa@v zY^+%t?qlFPU|=H1`v5fnWmcpWev5FGl! z-v$bS9YELE3r0ED(evmhdgB4Z#Y_TKfE)Ou#@!e^<3D&mpoYr@b^)6n5?mr=HL6nl zUgK^I#~@__9H<4+MCKMls*oE|(<;uC2(kd!!bq|GKP(s6j7m8GMnVzZ4!lD8H7-+D z2t1 zJ8@DpYbHgr@~|zNP%uoOXAmJ{zpE5VDL{;T7gAu`HvNIHnuE>>3xK*8JUl zR_=85sRbp4TEMCC22IpSYf6AZ2yS%raJ{_;DFs3Zx;y*u{}lkBpeTp>m*!w(Ny3BC zR7#Cs0$0+3vZ6MTh($DFVMT3KN>Hg)V`|*>*mTxzUd-YZPjGDiMXq?ek%r@$b=gE6 z0bfonVo+J@iPy!u{(d@IZ&O${lete7seRT~XdaOyNiUQ@wQ1wfte*KEX`&8&IT%LJvy}(2#5|_9R1+}hjyPM)E7<# z4%9*ago!#xw`HZ7#2JU_lLTK2Wk+dY5~FcgY#w$NetO&%L1CX}hp1+?X``R$48MGb0Mf-`{qpnHQY)14O1*6X;RVW#v z%JDzhs!;$`{YyQK+)WgaM#&o*GKf+`Jr4;o zs-w0OxHVSYn#g$%nslaRBHPj3z*|T zN)7iQB;XFfN=pJB2Q((4uK`{lJrVtghVub~Qx?%D0FAwdSOP3Yy@sejt^7P-80ZK5 z8p;ct23kquHN<~fjQiW!8guOc001R)MObuXVRU6WV{&C-bY%cCFflkSFflDKI8-n) zIxsLgF)}SMH99aby(Q5L0000bbVXQnWMOn=I&E)cX=Zr004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x00(qQO+^Rd0SE#BEMCy5`v3q1G)Y83R9M5sncHtvMI6UJ zbN1}5yQN!-ZMjrTpbgT67b$4;4T!G@4`oZ4-9s%A5 zZdT2p&R!?*5%ByX!*OVK0r8hti3vRxMZ6tz>6&0 zkD(qJsQtdDl&KVCJ+P12V*4-@2HpmGivyyh2p!V3l` z0Y|DoDeIalP~9pDvrD`aaMd8)#FBvDBj{}MuqtfQ8ZZ!gTuLx%r=d$TVWL{sHaBn{ z0c`;f6ImOl0;vR6hD@GY6Q-{{K*(z_mbCc!Mv8O)W?9?fV=8AeG?}lpT-$&zOyEhN zrxu(eVR^{p<@GI`98Gg3mcilvJt0vK@M^S$EgeCG{;*}KkH?mnOk~1LWF3xPPT(~J zmQ!^-x`8bw>c|vvvurIsgXmHp>soy@`vj-PGGr||yJQkJw+GnN9+-hEs>w9y3L98X zfk&H7hT=I2RNeHgK%ar$jI|_yoGr=PlJ=m7*P;<#-wYa6He7kV(jE@a*akeH{UYC-V&4&2eqIKwF@41Ijy+ z{+nrHDXZ#3lxVGqItjZ{&=g#{mnYihqoc`0p!VD|%Y!`K8N`+nLsSl&w$&wIY)(AYEcSsbRdWvn>b2m+f64HZJqCEa)NNnIF}Wa4T(bdMv~7k)+C8V^ygi7%N^oj{z@G(wK>UQo{`b+5c^#R{$-(hS&@|fqD(m4J=1F zrUf7c+}2PRfIooWY2Y=)f73AAyPLxe5C8xGC3HntbYx+4WjbSWWnpw>05UK!I4v+S zEigD#FfuwYFgi3eEig4YFff)C>Qw*$03~!qSaf7zbY(hiZ)9m^c>ppnF*q$SF)c7S iR4_6+FfckaG%YYSIxsNjNK)wl0000SMS GCT Generator -
+