diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..94f480d
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+* text=auto eol=lf
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index e2b49e0..d549c77 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
patches/*/*-custom.patch
-patches/*/*.patch-failed
+patches/*/*.patch-failed
\ No newline at end of file
diff --git a/patches/betterdmheader/89207.patch b/patches/betterdmheader/89207.patch
deleted file mode 100644
index 00f50eb..0000000
--- a/patches/betterdmheader/89207.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-diff --color -crB com.discord-base/res/menu/menu_chat_toolbar.xml com.discord/res/menu/menu_chat_toolbar.xml
-*** com.discord-base/res/menu/menu_chat_toolbar.xml 2021-06-03 15:00:13.923995379 +0000
---- com.discord/res/menu/menu_chat_toolbar.xml 2021-06-03 15:06:45.358117680 +0000
-***************
-*** 1,12 ****
-
-
-\ No newline at end of file
---- 1,12 ----
-
-
-diff -crB com.discord-base/smali_classes2/com/discord/widgets/home/WidgetHomeHeaderManager$getOnConfigureAction$1.smali com.discord/smali_classes2/com/discord/widgets/home/WidgetHomeHeaderManager$getOnConfigureAction$1.smali
-*** com.discord-base/smali_classes2/com/discord/widgets/home/WidgetHomeHeaderManager$getOnConfigureAction$1.smali 2021-06-03 15:00:16.264008075 +0000
---- com.discord/smali_classes2/com/discord/widgets/home/WidgetHomeHeaderManager$getOnConfigureAction$1.smali 2021-06-03 15:12:19.415927487 +0000
-***************
-*** 181,187 ****
-
- invoke-static {v3, v9}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
-
-! invoke-interface {v3, v1}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem;
-
- .line 7
- invoke-interface {p1, v8}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem;
---- 181,187 ----
-
- invoke-static {v3, v9}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
-
-! invoke-interface {v3, v2}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem;
-
- .line 7
- invoke-interface {p1, v8}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem;
-***************
-*** 260,266 ****
-
- xor-int/2addr v4, v2
-
-! invoke-interface {v3, v4}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem;
-
- .line 13
- invoke-interface {p1, v6}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem;
---- 260,266 ----
-
- xor-int/2addr v4, v2
-
-! invoke-interface {v3, v1}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem;
-
- .line 13
- invoke-interface {p1, v6}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem;
diff --git a/patchport.py b/patchport.py
index c3edaad..55bc0f3 100644
--- a/patchport.py
+++ b/patchport.py
@@ -10,7 +10,7 @@ import shutil
# Example invocation:
# python3 patchport.py /home/ave/apks/com.discord-900/
-with open("patchport-state.json", "r") as f:
+with open("resources/patchport-state.json", "r") as f:
jin = json.load(f)
from_versioncode = jin["versioncode"]
from_versionname = jin["versionname"]
@@ -134,36 +134,36 @@ with open(os.path.join(apk_folder, "res", "values", "strings.xml")) as f:
failures = []
-for patch in os.listdir(os.path.join(cutthecord_folder, "patches")):
+for patch in os.listdir(os.path.join(cutthecord_folder, "resources/patches")):
if debug:
print(f"going over patch: {patch}")
# Ignore non-dirs
- if not os.path.isdir(os.path.join(cutthecord_folder, "patches", patch)):
+ if not os.path.isdir(os.path.join(cutthecord_folder, "resources/patches", patch)):
if debug:
print(f"patch is not a folder, skipping: {patch}")
continue
- pre_in_path = os.path.join(cutthecord_folder, "patches", patch,
+ pre_in_path = os.path.join(cutthecord_folder, "resources/patches", patch,
f"{from_versioncode}-pre.sh")
- post_in_path = os.path.join(cutthecord_folder, "patches", patch,
+ post_in_path = os.path.join(cutthecord_folder, "resources/patches", patch,
f"{from_versioncode}-post.sh")
- pre_out_path = os.path.join(cutthecord_folder, "patches", patch,
+ pre_out_path = os.path.join(cutthecord_folder, "resources/patches", patch,
f"{to_versioncode}-pre.sh")
- post_out_path = os.path.join(cutthecord_folder, "patches", patch,
+ post_out_path = os.path.join(cutthecord_folder, "resources/patches", patch,
f"{to_versioncode}-post.sh")
- patch_path = os.path.join(cutthecord_folder, "patches", patch,
+ patch_path = os.path.join(cutthecord_folder, "resources/patches", patch,
f"{from_versioncode}.patch")
- out_path = os.path.join(cutthecord_folder, "patches", patch,
+ out_path = os.path.join(cutthecord_folder, "resources/patches", patch,
f"{to_versioncode}.patch")
- readme_path = os.path.join(cutthecord_folder, "patches", patch, "README.md")
+ readme_path = os.path.join(cutthecord_folder, "resources/patches", patch, "README.md")
# Handle copying of versioned scripts, untested and dirty!
- script_path = os.path.join(cutthecord_folder, "patches", patch,
+ script_path = os.path.join(cutthecord_folder, "resources/patches", patch,
f"{from_versioncode}.sh")
if os.path.exists(script_path):
- script_out_path = os.path.join(cutthecord_folder, "patches", patch,
+ script_out_path = os.path.join(cutthecord_folder, "resources/patches", patch,
f"{to_versioncode}.sh")
with open(script_path) as f:
with open(script_out_path, "w") as f2:
diff --git a/old-patches/README.md b/resources/old-patches/README.md
similarity index 100%
rename from old-patches/README.md
rename to resources/old-patches/README.md
diff --git a/old-patches/hqavatars/1371.patch b/resources/old-patches/hqavatars/1371.patch
similarity index 100%
rename from old-patches/hqavatars/1371.patch
rename to resources/old-patches/hqavatars/1371.patch
diff --git a/old-patches/hqavatars/1387.patch b/resources/old-patches/hqavatars/1387.patch
similarity index 100%
rename from old-patches/hqavatars/1387.patch
rename to resources/old-patches/hqavatars/1387.patch
diff --git a/old-patches/hqavatars/1456.patch b/resources/old-patches/hqavatars/1456.patch
similarity index 100%
rename from old-patches/hqavatars/1456.patch
rename to resources/old-patches/hqavatars/1456.patch
diff --git a/old-patches/hqavatars/1458.patch b/resources/old-patches/hqavatars/1458.patch
similarity index 100%
rename from old-patches/hqavatars/1458.patch
rename to resources/old-patches/hqavatars/1458.patch
diff --git a/old-patches/hqavatars/1474.patch b/resources/old-patches/hqavatars/1474.patch
similarity index 100%
rename from old-patches/hqavatars/1474.patch
rename to resources/old-patches/hqavatars/1474.patch
diff --git a/old-patches/hqavatars/1489.patch b/resources/old-patches/hqavatars/1489.patch
similarity index 100%
rename from old-patches/hqavatars/1489.patch
rename to resources/old-patches/hqavatars/1489.patch
diff --git a/old-patches/hqavatars/1505.patch b/resources/old-patches/hqavatars/1505.patch
similarity index 100%
rename from old-patches/hqavatars/1505.patch
rename to resources/old-patches/hqavatars/1505.patch
diff --git a/old-patches/hqavatars/1509.patch b/resources/old-patches/hqavatars/1509.patch
similarity index 100%
rename from old-patches/hqavatars/1509.patch
rename to resources/old-patches/hqavatars/1509.patch
diff --git a/old-patches/hqavatars/1510.patch b/resources/old-patches/hqavatars/1510.patch
similarity index 100%
rename from old-patches/hqavatars/1510.patch
rename to resources/old-patches/hqavatars/1510.patch
diff --git a/old-patches/hqavatars/1512.patch b/resources/old-patches/hqavatars/1512.patch
similarity index 100%
rename from old-patches/hqavatars/1512.patch
rename to resources/old-patches/hqavatars/1512.patch
diff --git a/old-patches/hqavatars/1514.patch b/resources/old-patches/hqavatars/1514.patch
similarity index 100%
rename from old-patches/hqavatars/1514.patch
rename to resources/old-patches/hqavatars/1514.patch
diff --git a/old-patches/hqavatars/1516.patch b/resources/old-patches/hqavatars/1516.patch
similarity index 100%
rename from old-patches/hqavatars/1516.patch
rename to resources/old-patches/hqavatars/1516.patch
diff --git a/old-patches/hqavatars/1518.patch b/resources/old-patches/hqavatars/1518.patch
similarity index 100%
rename from old-patches/hqavatars/1518.patch
rename to resources/old-patches/hqavatars/1518.patch
diff --git a/old-patches/hqavatars/1520.patch b/resources/old-patches/hqavatars/1520.patch
similarity index 100%
rename from old-patches/hqavatars/1520.patch
rename to resources/old-patches/hqavatars/1520.patch
diff --git a/old-patches/hqavatars/1522.patch b/resources/old-patches/hqavatars/1522.patch
similarity index 100%
rename from old-patches/hqavatars/1522.patch
rename to resources/old-patches/hqavatars/1522.patch
diff --git a/old-patches/hqavatars/1523.patch b/resources/old-patches/hqavatars/1523.patch
similarity index 100%
rename from old-patches/hqavatars/1523.patch
rename to resources/old-patches/hqavatars/1523.patch
diff --git a/old-patches/hqavatars/73001.patch b/resources/old-patches/hqavatars/73001.patch
similarity index 100%
rename from old-patches/hqavatars/73001.patch
rename to resources/old-patches/hqavatars/73001.patch
diff --git a/old-patches/hqavatars/73008.patch b/resources/old-patches/hqavatars/73008.patch
similarity index 100%
rename from old-patches/hqavatars/73008.patch
rename to resources/old-patches/hqavatars/73008.patch
diff --git a/old-patches/hqavatars/73111.patch b/resources/old-patches/hqavatars/73111.patch
similarity index 100%
rename from old-patches/hqavatars/73111.patch
rename to resources/old-patches/hqavatars/73111.patch
diff --git a/old-patches/hqavatars/74000.patch b/resources/old-patches/hqavatars/74000.patch
similarity index 100%
rename from old-patches/hqavatars/74000.patch
rename to resources/old-patches/hqavatars/74000.patch
diff --git a/old-patches/hqavatars/74010.patch b/resources/old-patches/hqavatars/74010.patch
similarity index 100%
rename from old-patches/hqavatars/74010.patch
rename to resources/old-patches/hqavatars/74010.patch
diff --git a/old-patches/hqavatars/76008.patch b/resources/old-patches/hqavatars/76008.patch
similarity index 100%
rename from old-patches/hqavatars/76008.patch
rename to resources/old-patches/hqavatars/76008.patch
diff --git a/old-patches/hqavatars/78105.patch b/resources/old-patches/hqavatars/78105.patch
similarity index 100%
rename from old-patches/hqavatars/78105.patch
rename to resources/old-patches/hqavatars/78105.patch
diff --git a/old-patches/hqavatars/78107.patch b/resources/old-patches/hqavatars/78107.patch
similarity index 100%
rename from old-patches/hqavatars/78107.patch
rename to resources/old-patches/hqavatars/78107.patch
diff --git a/old-patches/hqavatars/78109.patch b/resources/old-patches/hqavatars/78109.patch
similarity index 100%
rename from old-patches/hqavatars/78109.patch
rename to resources/old-patches/hqavatars/78109.patch
diff --git a/old-patches/hqavatars/79107.patch b/resources/old-patches/hqavatars/79107.patch
similarity index 100%
rename from old-patches/hqavatars/79107.patch
rename to resources/old-patches/hqavatars/79107.patch
diff --git a/old-patches/hqavatars/README.md b/resources/old-patches/hqavatars/README.md
similarity index 100%
rename from old-patches/hqavatars/README.md
rename to resources/old-patches/hqavatars/README.md
diff --git a/patches/noblocked/1371.patch b/resources/old-patches/noblocked/1371.patch
similarity index 100%
rename from patches/noblocked/1371.patch
rename to resources/old-patches/noblocked/1371.patch
diff --git a/patches/noblocked/1387.patch b/resources/old-patches/noblocked/1387.patch
similarity index 100%
rename from patches/noblocked/1387.patch
rename to resources/old-patches/noblocked/1387.patch
diff --git a/patches/noblocked/1456.patch b/resources/old-patches/noblocked/1456.patch
similarity index 100%
rename from patches/noblocked/1456.patch
rename to resources/old-patches/noblocked/1456.patch
diff --git a/patches/noblocked/1458.patch b/resources/old-patches/noblocked/1458.patch
similarity index 100%
rename from patches/noblocked/1458.patch
rename to resources/old-patches/noblocked/1458.patch
diff --git a/patches/noblocked/1474.patch b/resources/old-patches/noblocked/1474.patch
similarity index 100%
rename from patches/noblocked/1474.patch
rename to resources/old-patches/noblocked/1474.patch
diff --git a/patches/noblocked/1489.patch b/resources/old-patches/noblocked/1489.patch
similarity index 100%
rename from patches/noblocked/1489.patch
rename to resources/old-patches/noblocked/1489.patch
diff --git a/patches/noblocked/1505.patch b/resources/old-patches/noblocked/1505.patch
similarity index 100%
rename from patches/noblocked/1505.patch
rename to resources/old-patches/noblocked/1505.patch
diff --git a/patches/noblocked/1509.patch b/resources/old-patches/noblocked/1509.patch
similarity index 100%
rename from patches/noblocked/1509.patch
rename to resources/old-patches/noblocked/1509.patch
diff --git a/patches/noblocked/1510.patch b/resources/old-patches/noblocked/1510.patch
similarity index 100%
rename from patches/noblocked/1510.patch
rename to resources/old-patches/noblocked/1510.patch
diff --git a/patches/noblocked/1512.patch b/resources/old-patches/noblocked/1512.patch
similarity index 100%
rename from patches/noblocked/1512.patch
rename to resources/old-patches/noblocked/1512.patch
diff --git a/patches/noblocked/1514.patch b/resources/old-patches/noblocked/1514.patch
similarity index 100%
rename from patches/noblocked/1514.patch
rename to resources/old-patches/noblocked/1514.patch
diff --git a/patches/noblocked/1516.patch b/resources/old-patches/noblocked/1516.patch
similarity index 100%
rename from patches/noblocked/1516.patch
rename to resources/old-patches/noblocked/1516.patch
diff --git a/patches/noblocked/1518.patch b/resources/old-patches/noblocked/1518.patch
similarity index 100%
rename from patches/noblocked/1518.patch
rename to resources/old-patches/noblocked/1518.patch
diff --git a/patches/noblocked/1520.patch b/resources/old-patches/noblocked/1520.patch
similarity index 100%
rename from patches/noblocked/1520.patch
rename to resources/old-patches/noblocked/1520.patch
diff --git a/patches/noblocked/1522.patch b/resources/old-patches/noblocked/1522.patch
similarity index 100%
rename from patches/noblocked/1522.patch
rename to resources/old-patches/noblocked/1522.patch
diff --git a/patches/noblocked/1523.patch b/resources/old-patches/noblocked/1523.patch
similarity index 100%
rename from patches/noblocked/1523.patch
rename to resources/old-patches/noblocked/1523.patch
diff --git a/patches/noblocked/73001.patch b/resources/old-patches/noblocked/73001.patch
similarity index 100%
rename from patches/noblocked/73001.patch
rename to resources/old-patches/noblocked/73001.patch
diff --git a/patches/noblocked/73008.patch b/resources/old-patches/noblocked/73008.patch
similarity index 100%
rename from patches/noblocked/73008.patch
rename to resources/old-patches/noblocked/73008.patch
diff --git a/patches/noblocked/73111.patch b/resources/old-patches/noblocked/73111.patch
similarity index 100%
rename from patches/noblocked/73111.patch
rename to resources/old-patches/noblocked/73111.patch
diff --git a/patches/noblocked/74000.patch b/resources/old-patches/noblocked/74000.patch
similarity index 100%
rename from patches/noblocked/74000.patch
rename to resources/old-patches/noblocked/74000.patch
diff --git a/patches/noblocked/74010.patch b/resources/old-patches/noblocked/74010.patch
similarity index 100%
rename from patches/noblocked/74010.patch
rename to resources/old-patches/noblocked/74010.patch
diff --git a/patches/noblocked/76008.patch b/resources/old-patches/noblocked/76008.patch
similarity index 100%
rename from patches/noblocked/76008.patch
rename to resources/old-patches/noblocked/76008.patch
diff --git a/patches/noblocked/78105.patch b/resources/old-patches/noblocked/78105.patch
similarity index 100%
rename from patches/noblocked/78105.patch
rename to resources/old-patches/noblocked/78105.patch
diff --git a/patches/noblocked/78107.patch b/resources/old-patches/noblocked/78107.patch
similarity index 100%
rename from patches/noblocked/78107.patch
rename to resources/old-patches/noblocked/78107.patch
diff --git a/patches/noblocked/78109.patch b/resources/old-patches/noblocked/78109.patch
similarity index 100%
rename from patches/noblocked/78109.patch
rename to resources/old-patches/noblocked/78109.patch
diff --git a/patches/noblocked/79107.patch b/resources/old-patches/noblocked/79107.patch
similarity index 100%
rename from patches/noblocked/79107.patch
rename to resources/old-patches/noblocked/79107.patch
diff --git a/patches/noblocked/81109.patch b/resources/old-patches/noblocked/81109.patch
similarity index 100%
rename from patches/noblocked/81109.patch
rename to resources/old-patches/noblocked/81109.patch
diff --git a/patches/noblocked/81110.patch b/resources/old-patches/noblocked/81110.patch
similarity index 100%
rename from patches/noblocked/81110.patch
rename to resources/old-patches/noblocked/81110.patch
diff --git a/patches/noblocked/81111.patch b/resources/old-patches/noblocked/81111.patch
similarity index 100%
rename from patches/noblocked/81111.patch
rename to resources/old-patches/noblocked/81111.patch
diff --git a/patches/noblocked/82206.patch b/resources/old-patches/noblocked/82206.patch
similarity index 100%
rename from patches/noblocked/82206.patch
rename to resources/old-patches/noblocked/82206.patch
diff --git a/patches/noblocked/83210.patch b/resources/old-patches/noblocked/83210.patch
similarity index 100%
rename from patches/noblocked/83210.patch
rename to resources/old-patches/noblocked/83210.patch
diff --git a/patches/noblocked/86201.patch b/resources/old-patches/noblocked/86201.patch
similarity index 100%
rename from patches/noblocked/86201.patch
rename to resources/old-patches/noblocked/86201.patch
diff --git a/patches/noblocked/87201.patch b/resources/old-patches/noblocked/87201.patch
similarity index 100%
rename from patches/noblocked/87201.patch
rename to resources/old-patches/noblocked/87201.patch
diff --git a/patches/noblocked/87202.patch b/resources/old-patches/noblocked/87202.patch
similarity index 100%
rename from patches/noblocked/87202.patch
rename to resources/old-patches/noblocked/87202.patch
diff --git a/patches/noblocked/87203.patch b/resources/old-patches/noblocked/87203.patch
similarity index 100%
rename from patches/noblocked/87203.patch
rename to resources/old-patches/noblocked/87203.patch
diff --git a/patches/noblocked/88202.patch b/resources/old-patches/noblocked/88202.patch
similarity index 100%
rename from patches/noblocked/88202.patch
rename to resources/old-patches/noblocked/88202.patch
diff --git a/patches/noblocked/88203.patch b/resources/old-patches/noblocked/88203.patch
similarity index 100%
rename from patches/noblocked/88203.patch
rename to resources/old-patches/noblocked/88203.patch
diff --git a/patches/noblocked/88205.patch b/resources/old-patches/noblocked/88205.patch
similarity index 100%
rename from patches/noblocked/88205.patch
rename to resources/old-patches/noblocked/88205.patch
diff --git a/patches/noblocked/89201.patch b/resources/old-patches/noblocked/89201.patch
similarity index 100%
rename from patches/noblocked/89201.patch
rename to resources/old-patches/noblocked/89201.patch
diff --git a/patches/noblocked/89206.patch b/resources/old-patches/noblocked/89206.patch
similarity index 100%
rename from patches/noblocked/89206.patch
rename to resources/old-patches/noblocked/89206.patch
diff --git a/patches/noblocked/89207.patch b/resources/old-patches/noblocked/89207.patch
similarity index 100%
rename from patches/noblocked/89207.patch
rename to resources/old-patches/noblocked/89207.patch
diff --git a/patches/noblocked/README.md b/resources/old-patches/noblocked/README.md
similarity index 100%
rename from patches/noblocked/README.md
rename to resources/old-patches/noblocked/README.md
diff --git a/patches/squareavatars/1371.patch b/resources/old-patches/squareavatars/1371.patch
similarity index 100%
rename from patches/squareavatars/1371.patch
rename to resources/old-patches/squareavatars/1371.patch
diff --git a/patches/squareavatars/1387.patch b/resources/old-patches/squareavatars/1387.patch
similarity index 100%
rename from patches/squareavatars/1387.patch
rename to resources/old-patches/squareavatars/1387.patch
diff --git a/patches/squareavatars/1456.patch b/resources/old-patches/squareavatars/1456.patch
similarity index 100%
rename from patches/squareavatars/1456.patch
rename to resources/old-patches/squareavatars/1456.patch
diff --git a/patches/squareavatars/1458.patch b/resources/old-patches/squareavatars/1458.patch
similarity index 100%
rename from patches/squareavatars/1458.patch
rename to resources/old-patches/squareavatars/1458.patch
diff --git a/patches/squareavatars/1474.patch b/resources/old-patches/squareavatars/1474.patch
similarity index 100%
rename from patches/squareavatars/1474.patch
rename to resources/old-patches/squareavatars/1474.patch
diff --git a/patches/squareavatars/1489.patch b/resources/old-patches/squareavatars/1489.patch
similarity index 100%
rename from patches/squareavatars/1489.patch
rename to resources/old-patches/squareavatars/1489.patch
diff --git a/patches/squareavatars/1505.patch b/resources/old-patches/squareavatars/1505.patch
similarity index 100%
rename from patches/squareavatars/1505.patch
rename to resources/old-patches/squareavatars/1505.patch
diff --git a/patches/squareavatars/1509.patch b/resources/old-patches/squareavatars/1509.patch
similarity index 100%
rename from patches/squareavatars/1509.patch
rename to resources/old-patches/squareavatars/1509.patch
diff --git a/patches/squareavatars/1510.patch b/resources/old-patches/squareavatars/1510.patch
similarity index 100%
rename from patches/squareavatars/1510.patch
rename to resources/old-patches/squareavatars/1510.patch
diff --git a/patches/squareavatars/1512.patch b/resources/old-patches/squareavatars/1512.patch
similarity index 100%
rename from patches/squareavatars/1512.patch
rename to resources/old-patches/squareavatars/1512.patch
diff --git a/patches/squareavatars/1514.patch b/resources/old-patches/squareavatars/1514.patch
similarity index 100%
rename from patches/squareavatars/1514.patch
rename to resources/old-patches/squareavatars/1514.patch
diff --git a/patches/squareavatars/1516.patch b/resources/old-patches/squareavatars/1516.patch
similarity index 100%
rename from patches/squareavatars/1516.patch
rename to resources/old-patches/squareavatars/1516.patch
diff --git a/patches/squareavatars/1518.patch b/resources/old-patches/squareavatars/1518.patch
similarity index 100%
rename from patches/squareavatars/1518.patch
rename to resources/old-patches/squareavatars/1518.patch
diff --git a/patches/squareavatars/1520.patch b/resources/old-patches/squareavatars/1520.patch
similarity index 100%
rename from patches/squareavatars/1520.patch
rename to resources/old-patches/squareavatars/1520.patch
diff --git a/patches/squareavatars/1522.patch b/resources/old-patches/squareavatars/1522.patch
similarity index 100%
rename from patches/squareavatars/1522.patch
rename to resources/old-patches/squareavatars/1522.patch
diff --git a/patches/squareavatars/1523.patch b/resources/old-patches/squareavatars/1523.patch
similarity index 100%
rename from patches/squareavatars/1523.patch
rename to resources/old-patches/squareavatars/1523.patch
diff --git a/patches/squareavatars/73001.patch b/resources/old-patches/squareavatars/73001.patch
similarity index 100%
rename from patches/squareavatars/73001.patch
rename to resources/old-patches/squareavatars/73001.patch
diff --git a/patches/squareavatars/73008.patch b/resources/old-patches/squareavatars/73008.patch
similarity index 100%
rename from patches/squareavatars/73008.patch
rename to resources/old-patches/squareavatars/73008.patch
diff --git a/patches/squareavatars/73111.patch b/resources/old-patches/squareavatars/73111.patch
similarity index 100%
rename from patches/squareavatars/73111.patch
rename to resources/old-patches/squareavatars/73111.patch
diff --git a/patches/squareavatars/74000.patch b/resources/old-patches/squareavatars/74000.patch
similarity index 100%
rename from patches/squareavatars/74000.patch
rename to resources/old-patches/squareavatars/74000.patch
diff --git a/patches/squareavatars/74010.patch b/resources/old-patches/squareavatars/74010.patch
similarity index 100%
rename from patches/squareavatars/74010.patch
rename to resources/old-patches/squareavatars/74010.patch
diff --git a/patches/squareavatars/76008.patch b/resources/old-patches/squareavatars/76008.patch
similarity index 100%
rename from patches/squareavatars/76008.patch
rename to resources/old-patches/squareavatars/76008.patch
diff --git a/patches/squareavatars/78105.patch b/resources/old-patches/squareavatars/78105.patch
similarity index 100%
rename from patches/squareavatars/78105.patch
rename to resources/old-patches/squareavatars/78105.patch
diff --git a/patches/squareavatars/78107.patch b/resources/old-patches/squareavatars/78107.patch
similarity index 100%
rename from patches/squareavatars/78107.patch
rename to resources/old-patches/squareavatars/78107.patch
diff --git a/patches/squareavatars/78109.patch b/resources/old-patches/squareavatars/78109.patch
similarity index 100%
rename from patches/squareavatars/78109.patch
rename to resources/old-patches/squareavatars/78109.patch
diff --git a/patches/squareavatars/79107.patch b/resources/old-patches/squareavatars/79107.patch
similarity index 100%
rename from patches/squareavatars/79107.patch
rename to resources/old-patches/squareavatars/79107.patch
diff --git a/patches/squareavatars/81109.patch b/resources/old-patches/squareavatars/81109.patch
similarity index 100%
rename from patches/squareavatars/81109.patch
rename to resources/old-patches/squareavatars/81109.patch
diff --git a/patches/squareavatars/81110.patch b/resources/old-patches/squareavatars/81110.patch
similarity index 100%
rename from patches/squareavatars/81110.patch
rename to resources/old-patches/squareavatars/81110.patch
diff --git a/patches/squareavatars/81111.patch b/resources/old-patches/squareavatars/81111.patch
similarity index 100%
rename from patches/squareavatars/81111.patch
rename to resources/old-patches/squareavatars/81111.patch
diff --git a/patches/squareavatars/82206.patch b/resources/old-patches/squareavatars/82206.patch
similarity index 100%
rename from patches/squareavatars/82206.patch
rename to resources/old-patches/squareavatars/82206.patch
diff --git a/patches/squareavatars/83210.patch b/resources/old-patches/squareavatars/83210.patch
similarity index 100%
rename from patches/squareavatars/83210.patch
rename to resources/old-patches/squareavatars/83210.patch
diff --git a/patches/squareavatars/86201.patch b/resources/old-patches/squareavatars/86201.patch
similarity index 100%
rename from patches/squareavatars/86201.patch
rename to resources/old-patches/squareavatars/86201.patch
diff --git a/patches/squareavatars/87201.patch b/resources/old-patches/squareavatars/87201.patch
similarity index 100%
rename from patches/squareavatars/87201.patch
rename to resources/old-patches/squareavatars/87201.patch
diff --git a/patches/squareavatars/87202.patch b/resources/old-patches/squareavatars/87202.patch
similarity index 100%
rename from patches/squareavatars/87202.patch
rename to resources/old-patches/squareavatars/87202.patch
diff --git a/patches/squareavatars/87203.patch b/resources/old-patches/squareavatars/87203.patch
similarity index 100%
rename from patches/squareavatars/87203.patch
rename to resources/old-patches/squareavatars/87203.patch
diff --git a/patches/squareavatars/88202.patch b/resources/old-patches/squareavatars/88202.patch
similarity index 100%
rename from patches/squareavatars/88202.patch
rename to resources/old-patches/squareavatars/88202.patch
diff --git a/patches/squareavatars/88203.patch b/resources/old-patches/squareavatars/88203.patch
similarity index 100%
rename from patches/squareavatars/88203.patch
rename to resources/old-patches/squareavatars/88203.patch
diff --git a/patches/squareavatars/88205.patch b/resources/old-patches/squareavatars/88205.patch
similarity index 100%
rename from patches/squareavatars/88205.patch
rename to resources/old-patches/squareavatars/88205.patch
diff --git a/patches/squareavatars/89201.patch b/resources/old-patches/squareavatars/89201.patch
similarity index 100%
rename from patches/squareavatars/89201.patch
rename to resources/old-patches/squareavatars/89201.patch
diff --git a/patches/squareavatars/89206.patch b/resources/old-patches/squareavatars/89206.patch
similarity index 100%
rename from patches/squareavatars/89206.patch
rename to resources/old-patches/squareavatars/89206.patch
diff --git a/patches/squareavatars/89207.patch b/resources/old-patches/squareavatars/89207.patch
similarity index 100%
rename from patches/squareavatars/89207.patch
rename to resources/old-patches/squareavatars/89207.patch
diff --git a/patches/squareavatars/README.md b/resources/old-patches/squareavatars/README.md
similarity index 100%
rename from patches/squareavatars/README.md
rename to resources/old-patches/squareavatars/README.md
diff --git a/patches/betterdmheader/1371.patch b/resources/patches/betterdmheader/1371.patch
similarity index 100%
rename from patches/betterdmheader/1371.patch
rename to resources/patches/betterdmheader/1371.patch
diff --git a/patches/betterdmheader/1387.patch b/resources/patches/betterdmheader/1387.patch
similarity index 100%
rename from patches/betterdmheader/1387.patch
rename to resources/patches/betterdmheader/1387.patch
diff --git a/patches/betterdmheader/1456.patch b/resources/patches/betterdmheader/1456.patch
similarity index 100%
rename from patches/betterdmheader/1456.patch
rename to resources/patches/betterdmheader/1456.patch
diff --git a/patches/betterdmheader/1458.patch b/resources/patches/betterdmheader/1458.patch
similarity index 100%
rename from patches/betterdmheader/1458.patch
rename to resources/patches/betterdmheader/1458.patch
diff --git a/patches/betterdmheader/1474.patch b/resources/patches/betterdmheader/1474.patch
similarity index 100%
rename from patches/betterdmheader/1474.patch
rename to resources/patches/betterdmheader/1474.patch
diff --git a/patches/betterdmheader/1489.patch b/resources/patches/betterdmheader/1489.patch
similarity index 100%
rename from patches/betterdmheader/1489.patch
rename to resources/patches/betterdmheader/1489.patch
diff --git a/patches/betterdmheader/1505.patch b/resources/patches/betterdmheader/1505.patch
similarity index 100%
rename from patches/betterdmheader/1505.patch
rename to resources/patches/betterdmheader/1505.patch
diff --git a/patches/betterdmheader/1509.patch b/resources/patches/betterdmheader/1509.patch
similarity index 100%
rename from patches/betterdmheader/1509.patch
rename to resources/patches/betterdmheader/1509.patch
diff --git a/patches/betterdmheader/1510.patch b/resources/patches/betterdmheader/1510.patch
similarity index 100%
rename from patches/betterdmheader/1510.patch
rename to resources/patches/betterdmheader/1510.patch
diff --git a/patches/betterdmheader/1512.patch b/resources/patches/betterdmheader/1512.patch
similarity index 100%
rename from patches/betterdmheader/1512.patch
rename to resources/patches/betterdmheader/1512.patch
diff --git a/patches/betterdmheader/1514.patch b/resources/patches/betterdmheader/1514.patch
similarity index 100%
rename from patches/betterdmheader/1514.patch
rename to resources/patches/betterdmheader/1514.patch
diff --git a/patches/betterdmheader/1516.patch b/resources/patches/betterdmheader/1516.patch
similarity index 100%
rename from patches/betterdmheader/1516.patch
rename to resources/patches/betterdmheader/1516.patch
diff --git a/patches/betterdmheader/1518.patch b/resources/patches/betterdmheader/1518.patch
similarity index 100%
rename from patches/betterdmheader/1518.patch
rename to resources/patches/betterdmheader/1518.patch
diff --git a/patches/betterdmheader/1520.patch b/resources/patches/betterdmheader/1520.patch
similarity index 100%
rename from patches/betterdmheader/1520.patch
rename to resources/patches/betterdmheader/1520.patch
diff --git a/patches/betterdmheader/1522.patch b/resources/patches/betterdmheader/1522.patch
similarity index 100%
rename from patches/betterdmheader/1522.patch
rename to resources/patches/betterdmheader/1522.patch
diff --git a/patches/betterdmheader/1523.patch b/resources/patches/betterdmheader/1523.patch
similarity index 100%
rename from patches/betterdmheader/1523.patch
rename to resources/patches/betterdmheader/1523.patch
diff --git a/patches/betterdmheader/73001.patch b/resources/patches/betterdmheader/73001.patch
similarity index 100%
rename from patches/betterdmheader/73001.patch
rename to resources/patches/betterdmheader/73001.patch
diff --git a/patches/betterdmheader/73008.patch b/resources/patches/betterdmheader/73008.patch
similarity index 100%
rename from patches/betterdmheader/73008.patch
rename to resources/patches/betterdmheader/73008.patch
diff --git a/patches/betterdmheader/73111.patch b/resources/patches/betterdmheader/73111.patch
similarity index 100%
rename from patches/betterdmheader/73111.patch
rename to resources/patches/betterdmheader/73111.patch
diff --git a/patches/betterdmheader/74000.patch b/resources/patches/betterdmheader/74000.patch
similarity index 100%
rename from patches/betterdmheader/74000.patch
rename to resources/patches/betterdmheader/74000.patch
diff --git a/patches/betterdmheader/74010.patch b/resources/patches/betterdmheader/74010.patch
similarity index 100%
rename from patches/betterdmheader/74010.patch
rename to resources/patches/betterdmheader/74010.patch
diff --git a/patches/betterdmheader/76008.patch b/resources/patches/betterdmheader/76008.patch
similarity index 100%
rename from patches/betterdmheader/76008.patch
rename to resources/patches/betterdmheader/76008.patch
diff --git a/patches/betterdmheader/78105.patch b/resources/patches/betterdmheader/78105.patch
similarity index 100%
rename from patches/betterdmheader/78105.patch
rename to resources/patches/betterdmheader/78105.patch
diff --git a/patches/betterdmheader/78107.patch b/resources/patches/betterdmheader/78107.patch
similarity index 100%
rename from patches/betterdmheader/78107.patch
rename to resources/patches/betterdmheader/78107.patch
diff --git a/patches/betterdmheader/78109.patch b/resources/patches/betterdmheader/78109.patch
similarity index 100%
rename from patches/betterdmheader/78109.patch
rename to resources/patches/betterdmheader/78109.patch
diff --git a/patches/betterdmheader/79107.patch b/resources/patches/betterdmheader/79107.patch
similarity index 100%
rename from patches/betterdmheader/79107.patch
rename to resources/patches/betterdmheader/79107.patch
diff --git a/patches/betterdmheader/81109.patch b/resources/patches/betterdmheader/81109.patch
similarity index 100%
rename from patches/betterdmheader/81109.patch
rename to resources/patches/betterdmheader/81109.patch
diff --git a/patches/betterdmheader/81110.patch b/resources/patches/betterdmheader/81110.patch
similarity index 100%
rename from patches/betterdmheader/81110.patch
rename to resources/patches/betterdmheader/81110.patch
diff --git a/patches/betterdmheader/81111.patch b/resources/patches/betterdmheader/81111.patch
similarity index 100%
rename from patches/betterdmheader/81111.patch
rename to resources/patches/betterdmheader/81111.patch
diff --git a/patches/betterdmheader/82206.patch b/resources/patches/betterdmheader/82206.patch
similarity index 100%
rename from patches/betterdmheader/82206.patch
rename to resources/patches/betterdmheader/82206.patch
diff --git a/patches/betterdmheader/83210.patch b/resources/patches/betterdmheader/83210.patch
similarity index 100%
rename from patches/betterdmheader/83210.patch
rename to resources/patches/betterdmheader/83210.patch
diff --git a/patches/betterdmheader/86201.patch b/resources/patches/betterdmheader/86201.patch
similarity index 100%
rename from patches/betterdmheader/86201.patch
rename to resources/patches/betterdmheader/86201.patch
diff --git a/patches/betterdmheader/87201.patch b/resources/patches/betterdmheader/87201.patch
similarity index 100%
rename from patches/betterdmheader/87201.patch
rename to resources/patches/betterdmheader/87201.patch
diff --git a/patches/betterdmheader/87202.patch b/resources/patches/betterdmheader/87202.patch
similarity index 100%
rename from patches/betterdmheader/87202.patch
rename to resources/patches/betterdmheader/87202.patch
diff --git a/patches/betterdmheader/87203.patch b/resources/patches/betterdmheader/87203.patch
similarity index 100%
rename from patches/betterdmheader/87203.patch
rename to resources/patches/betterdmheader/87203.patch
diff --git a/patches/betterdmheader/88202.patch b/resources/patches/betterdmheader/88202.patch
similarity index 100%
rename from patches/betterdmheader/88202.patch
rename to resources/patches/betterdmheader/88202.patch
diff --git a/patches/betterdmheader/88203.patch b/resources/patches/betterdmheader/88203.patch
similarity index 100%
rename from patches/betterdmheader/88203.patch
rename to resources/patches/betterdmheader/88203.patch
diff --git a/patches/betterdmheader/88205.patch b/resources/patches/betterdmheader/88205.patch
similarity index 100%
rename from patches/betterdmheader/88205.patch
rename to resources/patches/betterdmheader/88205.patch
diff --git a/patches/betterdmheader/89201.patch b/resources/patches/betterdmheader/89201.patch
similarity index 100%
rename from patches/betterdmheader/89201.patch
rename to resources/patches/betterdmheader/89201.patch
diff --git a/patches/betterdmheader/89206.patch b/resources/patches/betterdmheader/89206.patch
similarity index 100%
rename from patches/betterdmheader/89206.patch
rename to resources/patches/betterdmheader/89206.patch
diff --git a/resources/patches/betterdmheader/89207.patch b/resources/patches/betterdmheader/89207.patch
new file mode 100644
index 0000000..a7ddc56
--- /dev/null
+++ b/resources/patches/betterdmheader/89207.patch
@@ -0,0 +1,37 @@
+diff -crB from/smali_classes2/com/discord/widgets/home/WidgetHomeHeaderManager$getOnConfigureAction$1.smali to/smali_classes2/com/discord/widgets/home/WidgetHomeHeaderManager$getOnConfigureAction$1.smali
+*** from/smali_classes2/com/discord/widgets/home/WidgetHomeHeaderManager$getOnConfigureAction$1.smali 2020-11-19 15:23:43.685245089 +0000
+--- to/smali_classes2/com/discord/widgets/home/WidgetHomeHeaderManager$getOnConfigureAction$1.smali 2020-11-19 15:26:07.886953277 +0000
+***************
+*** 181,187 ****
+
+ invoke-static {v3, v9}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
+
+! invoke-interface {v3, v1}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem;
+
+ .line 7
+ invoke-interface {p1, v8}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem;
+--- 181,187 ----
+
+ invoke-static {v3, v9}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
+
+! invoke-interface {v3, v2}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem;
+
+ .line 7
+ invoke-interface {p1, v8}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem;
+***************
+*** 360,366 ****
+
+ invoke-static {v3, v9}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
+
+! invoke-interface {v3, v1}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem;
+
+ .line 19
+ invoke-interface {p1, v6}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem;
+--- 360,366 ----
+
+ invoke-static {v3, v9}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
+
+! invoke-interface {v3, v2}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem;
+
+ .line 19
+ invoke-interface {p1, v6}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem;
\ No newline at end of file
diff --git a/patches/betterdmheader/README.md b/resources/patches/betterdmheader/README.md
similarity index 91%
rename from patches/betterdmheader/README.md
rename to resources/patches/betterdmheader/README.md
index 0dde333..ce86f40 100644
--- a/patches/betterdmheader/README.md
+++ b/resources/patches/betterdmheader/README.md
@@ -2,6 +2,8 @@
This patch replaces the call button on DM headers with search button. The call button is still available in the right menu.
+As of 89207, the patch is now split into an xml and smali patch
+
![](https://lasagna.cat/i/9njfeecd.png)
#### Available and tested on:
diff --git a/patches/bettertm/README.md b/resources/patches/bettertm/README.md
similarity index 100%
rename from patches/bettertm/README.md
rename to resources/patches/bettertm/README.md
diff --git a/patches/bettertm/bettertm.sh b/resources/patches/bettertm/bettertm.sh
similarity index 100%
rename from patches/bettertm/bettertm.sh
rename to resources/patches/bettertm/bettertm.sh
diff --git a/patches/bettertm/emoji_2122_fe0f.png b/resources/patches/bettertm/emoji_2122_fe0f.png
similarity index 100%
rename from patches/bettertm/emoji_2122_fe0f.png
rename to resources/patches/bettertm/emoji_2122_fe0f.png
diff --git a/patches/bettertm/emoji_2122_fe0f.xcf b/resources/patches/bettertm/emoji_2122_fe0f.xcf
similarity index 100%
rename from patches/bettertm/emoji_2122_fe0f.xcf
rename to resources/patches/bettertm/emoji_2122_fe0f.xcf
diff --git a/patches/bettertm/emoji_ae_fe0f.png b/resources/patches/bettertm/emoji_ae_fe0f.png
similarity index 100%
rename from patches/bettertm/emoji_ae_fe0f.png
rename to resources/patches/bettertm/emoji_ae_fe0f.png
diff --git a/patches/bettertm/emoji_ae_fe0f.xcf b/resources/patches/bettertm/emoji_ae_fe0f.xcf
similarity index 100%
rename from patches/bettertm/emoji_ae_fe0f.xcf
rename to resources/patches/bettertm/emoji_ae_fe0f.xcf
diff --git a/patches/blobs/README.md b/resources/patches/blobs/README.md
similarity index 100%
rename from patches/blobs/README.md
rename to resources/patches/blobs/README.md
diff --git a/patches/blobs/emojireplace.py b/resources/patches/blobs/emojireplace.py
similarity index 100%
rename from patches/blobs/emojireplace.py
rename to resources/patches/blobs/emojireplace.py
diff --git a/patches/branding/1371.patch b/resources/patches/branding/1371.patch
similarity index 100%
rename from patches/branding/1371.patch
rename to resources/patches/branding/1371.patch
diff --git a/patches/branding/1387.patch b/resources/patches/branding/1387.patch
similarity index 100%
rename from patches/branding/1387.patch
rename to resources/patches/branding/1387.patch
diff --git a/patches/branding/1456.patch b/resources/patches/branding/1456.patch
similarity index 100%
rename from patches/branding/1456.patch
rename to resources/patches/branding/1456.patch
diff --git a/patches/branding/1458.patch b/resources/patches/branding/1458.patch
similarity index 100%
rename from patches/branding/1458.patch
rename to resources/patches/branding/1458.patch
diff --git a/patches/branding/1474.patch b/resources/patches/branding/1474.patch
similarity index 100%
rename from patches/branding/1474.patch
rename to resources/patches/branding/1474.patch
diff --git a/patches/branding/1489.patch b/resources/patches/branding/1489.patch
similarity index 100%
rename from patches/branding/1489.patch
rename to resources/patches/branding/1489.patch
diff --git a/patches/branding/1505.patch b/resources/patches/branding/1505.patch
similarity index 100%
rename from patches/branding/1505.patch
rename to resources/patches/branding/1505.patch
diff --git a/patches/branding/1509.patch b/resources/patches/branding/1509.patch
similarity index 100%
rename from patches/branding/1509.patch
rename to resources/patches/branding/1509.patch
diff --git a/patches/branding/1510.patch b/resources/patches/branding/1510.patch
similarity index 100%
rename from patches/branding/1510.patch
rename to resources/patches/branding/1510.patch
diff --git a/patches/branding/1512.patch b/resources/patches/branding/1512.patch
similarity index 100%
rename from patches/branding/1512.patch
rename to resources/patches/branding/1512.patch
diff --git a/patches/branding/1514.patch b/resources/patches/branding/1514.patch
similarity index 100%
rename from patches/branding/1514.patch
rename to resources/patches/branding/1514.patch
diff --git a/patches/branding/1516.patch b/resources/patches/branding/1516.patch
similarity index 100%
rename from patches/branding/1516.patch
rename to resources/patches/branding/1516.patch
diff --git a/patches/branding/1518.patch b/resources/patches/branding/1518.patch
similarity index 100%
rename from patches/branding/1518.patch
rename to resources/patches/branding/1518.patch
diff --git a/patches/branding/1520.patch b/resources/patches/branding/1520.patch
similarity index 100%
rename from patches/branding/1520.patch
rename to resources/patches/branding/1520.patch
diff --git a/patches/branding/1522.patch b/resources/patches/branding/1522.patch
similarity index 100%
rename from patches/branding/1522.patch
rename to resources/patches/branding/1522.patch
diff --git a/patches/branding/1523.patch b/resources/patches/branding/1523.patch
similarity index 100%
rename from patches/branding/1523.patch
rename to resources/patches/branding/1523.patch
diff --git a/patches/branding/73001.patch b/resources/patches/branding/73001.patch
similarity index 100%
rename from patches/branding/73001.patch
rename to resources/patches/branding/73001.patch
diff --git a/patches/branding/73008.patch b/resources/patches/branding/73008.patch
similarity index 100%
rename from patches/branding/73008.patch
rename to resources/patches/branding/73008.patch
diff --git a/patches/branding/73111.patch b/resources/patches/branding/73111.patch
similarity index 100%
rename from patches/branding/73111.patch
rename to resources/patches/branding/73111.patch
diff --git a/patches/branding/74000.patch b/resources/patches/branding/74000.patch
similarity index 100%
rename from patches/branding/74000.patch
rename to resources/patches/branding/74000.patch
diff --git a/patches/branding/74010.patch b/resources/patches/branding/74010.patch
similarity index 100%
rename from patches/branding/74010.patch
rename to resources/patches/branding/74010.patch
diff --git a/patches/branding/76008.patch b/resources/patches/branding/76008.patch
similarity index 100%
rename from patches/branding/76008.patch
rename to resources/patches/branding/76008.patch
diff --git a/patches/branding/78105.patch b/resources/patches/branding/78105.patch
similarity index 100%
rename from patches/branding/78105.patch
rename to resources/patches/branding/78105.patch
diff --git a/patches/branding/78107.patch b/resources/patches/branding/78107.patch
similarity index 100%
rename from patches/branding/78107.patch
rename to resources/patches/branding/78107.patch
diff --git a/patches/branding/78109.patch b/resources/patches/branding/78109.patch
similarity index 100%
rename from patches/branding/78109.patch
rename to resources/patches/branding/78109.patch
diff --git a/patches/branding/79107.patch b/resources/patches/branding/79107.patch
similarity index 100%
rename from patches/branding/79107.patch
rename to resources/patches/branding/79107.patch
diff --git a/patches/branding/81109.patch b/resources/patches/branding/81109.patch
similarity index 100%
rename from patches/branding/81109.patch
rename to resources/patches/branding/81109.patch
diff --git a/patches/branding/81110.patch b/resources/patches/branding/81110.patch
similarity index 100%
rename from patches/branding/81110.patch
rename to resources/patches/branding/81110.patch
diff --git a/patches/branding/81111.patch b/resources/patches/branding/81111.patch
similarity index 100%
rename from patches/branding/81111.patch
rename to resources/patches/branding/81111.patch
diff --git a/patches/branding/82206.patch b/resources/patches/branding/82206.patch
similarity index 100%
rename from patches/branding/82206.patch
rename to resources/patches/branding/82206.patch
diff --git a/patches/branding/83210.patch b/resources/patches/branding/83210.patch
similarity index 100%
rename from patches/branding/83210.patch
rename to resources/patches/branding/83210.patch
diff --git a/patches/branding/86201.patch b/resources/patches/branding/86201.patch
similarity index 100%
rename from patches/branding/86201.patch
rename to resources/patches/branding/86201.patch
diff --git a/patches/branding/87201.patch b/resources/patches/branding/87201.patch
similarity index 100%
rename from patches/branding/87201.patch
rename to resources/patches/branding/87201.patch
diff --git a/patches/branding/87202.patch b/resources/patches/branding/87202.patch
similarity index 100%
rename from patches/branding/87202.patch
rename to resources/patches/branding/87202.patch
diff --git a/patches/branding/87203.patch b/resources/patches/branding/87203.patch
similarity index 100%
rename from patches/branding/87203.patch
rename to resources/patches/branding/87203.patch
diff --git a/patches/branding/88202.patch b/resources/patches/branding/88202.patch
similarity index 100%
rename from patches/branding/88202.patch
rename to resources/patches/branding/88202.patch
diff --git a/patches/branding/88203.patch b/resources/patches/branding/88203.patch
similarity index 100%
rename from patches/branding/88203.patch
rename to resources/patches/branding/88203.patch
diff --git a/patches/branding/88205.patch b/resources/patches/branding/88205.patch
similarity index 100%
rename from patches/branding/88205.patch
rename to resources/patches/branding/88205.patch
diff --git a/patches/branding/89201.patch b/resources/patches/branding/89201.patch
similarity index 100%
rename from patches/branding/89201.patch
rename to resources/patches/branding/89201.patch
diff --git a/patches/branding/89206.patch b/resources/patches/branding/89206.patch
similarity index 100%
rename from patches/branding/89206.patch
rename to resources/patches/branding/89206.patch
diff --git a/patches/branding/89207.patch b/resources/patches/branding/89207.patch
similarity index 100%
rename from patches/branding/89207.patch
rename to resources/patches/branding/89207.patch
diff --git a/patches/branding/README.md b/resources/patches/branding/README.md
similarity index 100%
rename from patches/branding/README.md
rename to resources/patches/branding/README.md
diff --git a/patches/branding/addpatch.py b/resources/patches/branding/addpatch.py
similarity index 100%
rename from patches/branding/addpatch.py
rename to resources/patches/branding/addpatch.py
diff --git a/patches/branding/customdynamicicon.sh b/resources/patches/branding/customdynamicicon.sh
similarity index 100%
rename from patches/branding/customdynamicicon.sh
rename to resources/patches/branding/customdynamicicon.sh
diff --git a/patches/branding/customicon.sh b/resources/patches/branding/customicon.sh
similarity index 100%
rename from patches/branding/customicon.sh
rename to resources/patches/branding/customicon.sh
diff --git a/patches/customfont/README.md b/resources/patches/customfont/README.md
similarity index 100%
rename from patches/customfont/README.md
rename to resources/patches/customfont/README.md
diff --git a/patches/customring/README.md b/resources/patches/customring/README.md
similarity index 100%
rename from patches/customring/README.md
rename to resources/patches/customring/README.md
diff --git a/resources/patches/customtheme/89207.patch b/resources/patches/customtheme/89207.patch
new file mode 100644
index 0000000..d7546f0
--- /dev/null
+++ b/resources/patches/customtheme/89207.patch
@@ -0,0 +1,20 @@
+diff -crB from/smali_classes2/com/discord/widgets/tabs/WidgetTabsHost$configureSystemStatusBar$1.smali to/smali_classes2/com/discord/widgets/tabs/WidgetTabsHost$configureSystemStatusBar$1.smali
+*** from/smali_classes2/com/discord/widgets/tabs/WidgetTabsHost$configureSystemStatusBar$1.smali 2020-12-13 04:52:13.078109887 +0000
+--- to/smali_classes2/com/discord/widgets/tabs/WidgetTabsHost$configureSystemStatusBar$1.smali 2020-12-13 04:52:26.076186978 +0000
+***************
+*** 107,113 ****
+ .line 3
+ iget-object v0, p0, Lcom/discord/widgets/tabs/WidgetTabsHost$configureSystemStatusBar$1;->this$0:Lcom/discord/widgets/tabs/WidgetTabsHost;
+
+! const v1, 0x7f0602e0
+
+ invoke-static {v0, v1}, Lcom/discord/utilities/color/ColorCompat;->getColor(Landroidx/fragment/app/Fragment;I)I
+
+--- 107,113 ----
+ .line 3
+ iget-object v0, p0, Lcom/discord/widgets/tabs/WidgetTabsHost$configureSystemStatusBar$1;->this$0:Lcom/discord/widgets/tabs/WidgetTabsHost;
+
+! const v1, 0x7f060024
+
+ invoke-static {v0, v1}, Lcom/discord/utilities/color/ColorCompat;->getColor(Landroidx/fragment/app/Fragment;I)I
+
\ No newline at end of file
diff --git a/resources/patches/customtheme/README.md b/resources/patches/customtheme/README.md
new file mode 100644
index 0000000..cf53df8
--- /dev/null
+++ b/resources/patches/customtheme/README.md
@@ -0,0 +1,32 @@
+## DisTok CutTheCord: Custom Theme Patch
+
+This patch replaces theme with a pitch black theme, similar to [0cord](https://gitlab.com/ao/0cord). However, you're free to design your own theme. A reference for the values you need are provided below.
+
+Run `fixsplash.sh ` to fix the splash.
+
+Self note: Top bar color is set by `setStatusBarColorResourceId`
+
+#### Bugs / Side effects
+- Not all colors are replaced (almost all are, though)
+- Status bar color is only changed on chat view (not on settings etc)
+
+#### Available and tested on:
+- 89.7 - Alpha
+
+#### Value reference
+
+These are mostly outdated.
+
+- primary_100 -> button/title color (Friends, User Settings, your name on bottom on sidebar, channel name)
+- primary_300 -> entry color (names on direct messages), also used on dtag on small user profile
+- primary_400 -> label color (Direct Messages, "online", your discrim on bottom of sidebar, note field, @/# on channel name bar)
+- primary_500 -> "Create Instant Invite"
+- primary_500_alpha_60 -> Used for muted channels
+- primary_600 -> chat background, also used by cutthecord for status bar
+- primary_630 -> sidebar color, bottom bar color (not chat), small user profile bg color, secondary color on many menus like settings
+- grey_guilds -> guild bar
+- purple_brand -> blurple, used for things like bottom circle button for message on someone's profile, bot icon, mentions
+- dark_grey_2 -> bottom chat bar
+- grey_account -> user sidebar background (user list)
+- grey_channels -> user sidebar background (channel information)
+- link_100-900 -> Link colors (pick a color, put to 500, fill in rest with 0to255.com)
diff --git a/resources/patches/customtheme/fixsplash.sh b/resources/patches/customtheme/fixsplash.sh
new file mode 100755
index 0000000..97edde1
--- /dev/null
+++ b/resources/patches/customtheme/fixsplash.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+\cp "$1" res/drawable-xxxhdpi/img_loading_logo.png
\ No newline at end of file
diff --git a/patches/customversion/1371.patch b/resources/patches/customversion/1371.patch
similarity index 100%
rename from patches/customversion/1371.patch
rename to resources/patches/customversion/1371.patch
diff --git a/patches/customversion/1387.patch b/resources/patches/customversion/1387.patch
similarity index 100%
rename from patches/customversion/1387.patch
rename to resources/patches/customversion/1387.patch
diff --git a/patches/customversion/1456.patch b/resources/patches/customversion/1456.patch
similarity index 100%
rename from patches/customversion/1456.patch
rename to resources/patches/customversion/1456.patch
diff --git a/patches/customversion/1458.patch b/resources/patches/customversion/1458.patch
similarity index 100%
rename from patches/customversion/1458.patch
rename to resources/patches/customversion/1458.patch
diff --git a/patches/customversion/1474.patch b/resources/patches/customversion/1474.patch
similarity index 100%
rename from patches/customversion/1474.patch
rename to resources/patches/customversion/1474.patch
diff --git a/patches/customversion/1489.patch b/resources/patches/customversion/1489.patch
similarity index 100%
rename from patches/customversion/1489.patch
rename to resources/patches/customversion/1489.patch
diff --git a/patches/customversion/1505.patch b/resources/patches/customversion/1505.patch
similarity index 100%
rename from patches/customversion/1505.patch
rename to resources/patches/customversion/1505.patch
diff --git a/patches/customversion/1509.patch b/resources/patches/customversion/1509.patch
similarity index 100%
rename from patches/customversion/1509.patch
rename to resources/patches/customversion/1509.patch
diff --git a/patches/customversion/1510.patch b/resources/patches/customversion/1510.patch
similarity index 100%
rename from patches/customversion/1510.patch
rename to resources/patches/customversion/1510.patch
diff --git a/patches/customversion/1512.patch b/resources/patches/customversion/1512.patch
similarity index 100%
rename from patches/customversion/1512.patch
rename to resources/patches/customversion/1512.patch
diff --git a/patches/customversion/1514.patch b/resources/patches/customversion/1514.patch
similarity index 100%
rename from patches/customversion/1514.patch
rename to resources/patches/customversion/1514.patch
diff --git a/patches/customversion/1516.patch b/resources/patches/customversion/1516.patch
similarity index 100%
rename from patches/customversion/1516.patch
rename to resources/patches/customversion/1516.patch
diff --git a/patches/customversion/1518.patch b/resources/patches/customversion/1518.patch
similarity index 100%
rename from patches/customversion/1518.patch
rename to resources/patches/customversion/1518.patch
diff --git a/patches/customversion/1520.patch b/resources/patches/customversion/1520.patch
similarity index 100%
rename from patches/customversion/1520.patch
rename to resources/patches/customversion/1520.patch
diff --git a/patches/customversion/1522.patch b/resources/patches/customversion/1522.patch
similarity index 100%
rename from patches/customversion/1522.patch
rename to resources/patches/customversion/1522.patch
diff --git a/patches/customversion/1523.patch b/resources/patches/customversion/1523.patch
similarity index 100%
rename from patches/customversion/1523.patch
rename to resources/patches/customversion/1523.patch
diff --git a/patches/customversion/73001.patch b/resources/patches/customversion/73001.patch
similarity index 100%
rename from patches/customversion/73001.patch
rename to resources/patches/customversion/73001.patch
diff --git a/patches/customversion/73008.patch b/resources/patches/customversion/73008.patch
similarity index 100%
rename from patches/customversion/73008.patch
rename to resources/patches/customversion/73008.patch
diff --git a/patches/customversion/73111.patch b/resources/patches/customversion/73111.patch
similarity index 100%
rename from patches/customversion/73111.patch
rename to resources/patches/customversion/73111.patch
diff --git a/patches/customversion/74000.patch b/resources/patches/customversion/74000.patch
similarity index 100%
rename from patches/customversion/74000.patch
rename to resources/patches/customversion/74000.patch
diff --git a/patches/customversion/74010.patch b/resources/patches/customversion/74010.patch
similarity index 100%
rename from patches/customversion/74010.patch
rename to resources/patches/customversion/74010.patch
diff --git a/patches/customversion/76008.patch b/resources/patches/customversion/76008.patch
similarity index 100%
rename from patches/customversion/76008.patch
rename to resources/patches/customversion/76008.patch
diff --git a/patches/customversion/78105.patch b/resources/patches/customversion/78105.patch
similarity index 100%
rename from patches/customversion/78105.patch
rename to resources/patches/customversion/78105.patch
diff --git a/patches/customversion/78107.patch b/resources/patches/customversion/78107.patch
similarity index 100%
rename from patches/customversion/78107.patch
rename to resources/patches/customversion/78107.patch
diff --git a/patches/customversion/78109.patch b/resources/patches/customversion/78109.patch
similarity index 100%
rename from patches/customversion/78109.patch
rename to resources/patches/customversion/78109.patch
diff --git a/patches/customversion/79107.patch b/resources/patches/customversion/79107.patch
similarity index 100%
rename from patches/customversion/79107.patch
rename to resources/patches/customversion/79107.patch
diff --git a/patches/customversion/81109.patch b/resources/patches/customversion/81109.patch
similarity index 100%
rename from patches/customversion/81109.patch
rename to resources/patches/customversion/81109.patch
diff --git a/patches/customversion/81110.patch b/resources/patches/customversion/81110.patch
similarity index 100%
rename from patches/customversion/81110.patch
rename to resources/patches/customversion/81110.patch
diff --git a/patches/customversion/81111.patch b/resources/patches/customversion/81111.patch
similarity index 100%
rename from patches/customversion/81111.patch
rename to resources/patches/customversion/81111.patch
diff --git a/patches/customversion/82206.patch b/resources/patches/customversion/82206.patch
similarity index 100%
rename from patches/customversion/82206.patch
rename to resources/patches/customversion/82206.patch
diff --git a/patches/customversion/83210.patch b/resources/patches/customversion/83210.patch
similarity index 100%
rename from patches/customversion/83210.patch
rename to resources/patches/customversion/83210.patch
diff --git a/patches/customversion/86201.patch b/resources/patches/customversion/86201.patch
similarity index 100%
rename from patches/customversion/86201.patch
rename to resources/patches/customversion/86201.patch
diff --git a/patches/customversion/87201.patch b/resources/patches/customversion/87201.patch
similarity index 100%
rename from patches/customversion/87201.patch
rename to resources/patches/customversion/87201.patch
diff --git a/patches/customversion/87202.patch b/resources/patches/customversion/87202.patch
similarity index 100%
rename from patches/customversion/87202.patch
rename to resources/patches/customversion/87202.patch
diff --git a/patches/customversion/87203.patch b/resources/patches/customversion/87203.patch
similarity index 100%
rename from patches/customversion/87203.patch
rename to resources/patches/customversion/87203.patch
diff --git a/patches/customversion/88202.patch b/resources/patches/customversion/88202.patch
similarity index 100%
rename from patches/customversion/88202.patch
rename to resources/patches/customversion/88202.patch
diff --git a/patches/customversion/88203.patch b/resources/patches/customversion/88203.patch
similarity index 100%
rename from patches/customversion/88203.patch
rename to resources/patches/customversion/88203.patch
diff --git a/patches/customversion/88205.patch b/resources/patches/customversion/88205.patch
similarity index 100%
rename from patches/customversion/88205.patch
rename to resources/patches/customversion/88205.patch
diff --git a/patches/customversion/89201.patch b/resources/patches/customversion/89201.patch
similarity index 100%
rename from patches/customversion/89201.patch
rename to resources/patches/customversion/89201.patch
diff --git a/patches/customversion/89206.patch b/resources/patches/customversion/89206.patch
similarity index 100%
rename from patches/customversion/89206.patch
rename to resources/patches/customversion/89206.patch
diff --git a/patches/customversion/89207.patch b/resources/patches/customversion/89207.patch
similarity index 100%
rename from patches/customversion/89207.patch
rename to resources/patches/customversion/89207.patch
diff --git a/patches/customversion/README.md b/resources/patches/customversion/README.md
similarity index 100%
rename from patches/customversion/README.md
rename to resources/patches/customversion/README.md
diff --git a/patches/customversion/addpatch.py b/resources/patches/customversion/addpatch.py
similarity index 100%
rename from patches/customversion/addpatch.py
rename to resources/patches/customversion/addpatch.py
diff --git a/patches/disable-mobileindicator/1371.patch b/resources/patches/disable-mobileindicator/1371.patch
similarity index 100%
rename from patches/disable-mobileindicator/1371.patch
rename to resources/patches/disable-mobileindicator/1371.patch
diff --git a/patches/disable-mobileindicator/74010.patch b/resources/patches/disable-mobileindicator/74010.patch
similarity index 100%
rename from patches/disable-mobileindicator/74010.patch
rename to resources/patches/disable-mobileindicator/74010.patch
diff --git a/patches/disable-mobileindicator/76008.patch b/resources/patches/disable-mobileindicator/76008.patch
similarity index 100%
rename from patches/disable-mobileindicator/76008.patch
rename to resources/patches/disable-mobileindicator/76008.patch
diff --git a/patches/disable-mobileindicator/78105.patch b/resources/patches/disable-mobileindicator/78105.patch
similarity index 100%
rename from patches/disable-mobileindicator/78105.patch
rename to resources/patches/disable-mobileindicator/78105.patch
diff --git a/patches/disable-mobileindicator/78107.patch b/resources/patches/disable-mobileindicator/78107.patch
similarity index 100%
rename from patches/disable-mobileindicator/78107.patch
rename to resources/patches/disable-mobileindicator/78107.patch
diff --git a/patches/disable-mobileindicator/78109.patch b/resources/patches/disable-mobileindicator/78109.patch
similarity index 100%
rename from patches/disable-mobileindicator/78109.patch
rename to resources/patches/disable-mobileindicator/78109.patch
diff --git a/patches/disable-mobileindicator/79107.patch b/resources/patches/disable-mobileindicator/79107.patch
similarity index 100%
rename from patches/disable-mobileindicator/79107.patch
rename to resources/patches/disable-mobileindicator/79107.patch
diff --git a/patches/disable-mobileindicator/81109.patch b/resources/patches/disable-mobileindicator/81109.patch
similarity index 100%
rename from patches/disable-mobileindicator/81109.patch
rename to resources/patches/disable-mobileindicator/81109.patch
diff --git a/patches/disable-mobileindicator/81110.patch b/resources/patches/disable-mobileindicator/81110.patch
similarity index 100%
rename from patches/disable-mobileindicator/81110.patch
rename to resources/patches/disable-mobileindicator/81110.patch
diff --git a/patches/disable-mobileindicator/81111.patch b/resources/patches/disable-mobileindicator/81111.patch
similarity index 100%
rename from patches/disable-mobileindicator/81111.patch
rename to resources/patches/disable-mobileindicator/81111.patch
diff --git a/patches/disable-mobileindicator/82206.patch b/resources/patches/disable-mobileindicator/82206.patch
similarity index 100%
rename from patches/disable-mobileindicator/82206.patch
rename to resources/patches/disable-mobileindicator/82206.patch
diff --git a/patches/disable-mobileindicator/83210.patch b/resources/patches/disable-mobileindicator/83210.patch
similarity index 100%
rename from patches/disable-mobileindicator/83210.patch
rename to resources/patches/disable-mobileindicator/83210.patch
diff --git a/patches/disable-mobileindicator/86201.patch b/resources/patches/disable-mobileindicator/86201.patch
similarity index 100%
rename from patches/disable-mobileindicator/86201.patch
rename to resources/patches/disable-mobileindicator/86201.patch
diff --git a/patches/disable-mobileindicator/87201.patch b/resources/patches/disable-mobileindicator/87201.patch
similarity index 100%
rename from patches/disable-mobileindicator/87201.patch
rename to resources/patches/disable-mobileindicator/87201.patch
diff --git a/patches/disable-mobileindicator/87202.patch b/resources/patches/disable-mobileindicator/87202.patch
similarity index 100%
rename from patches/disable-mobileindicator/87202.patch
rename to resources/patches/disable-mobileindicator/87202.patch
diff --git a/patches/disable-mobileindicator/87203.patch b/resources/patches/disable-mobileindicator/87203.patch
similarity index 100%
rename from patches/disable-mobileindicator/87203.patch
rename to resources/patches/disable-mobileindicator/87203.patch
diff --git a/patches/disable-mobileindicator/88202.patch b/resources/patches/disable-mobileindicator/88202.patch
similarity index 100%
rename from patches/disable-mobileindicator/88202.patch
rename to resources/patches/disable-mobileindicator/88202.patch
diff --git a/patches/disable-mobileindicator/88203.patch b/resources/patches/disable-mobileindicator/88203.patch
similarity index 100%
rename from patches/disable-mobileindicator/88203.patch
rename to resources/patches/disable-mobileindicator/88203.patch
diff --git a/patches/disable-mobileindicator/88205.patch b/resources/patches/disable-mobileindicator/88205.patch
similarity index 100%
rename from patches/disable-mobileindicator/88205.patch
rename to resources/patches/disable-mobileindicator/88205.patch
diff --git a/patches/disable-mobileindicator/89201.patch b/resources/patches/disable-mobileindicator/89201.patch
similarity index 100%
rename from patches/disable-mobileindicator/89201.patch
rename to resources/patches/disable-mobileindicator/89201.patch
diff --git a/patches/disable-mobileindicator/89206.patch b/resources/patches/disable-mobileindicator/89206.patch
similarity index 100%
rename from patches/disable-mobileindicator/89206.patch
rename to resources/patches/disable-mobileindicator/89206.patch
diff --git a/patches/disable-mobileindicator/89207.patch b/resources/patches/disable-mobileindicator/89207.patch
similarity index 100%
rename from patches/disable-mobileindicator/89207.patch
rename to resources/patches/disable-mobileindicator/89207.patch
diff --git a/patches/disable-mobileindicator/README.md b/resources/patches/disable-mobileindicator/README.md
similarity index 100%
rename from patches/disable-mobileindicator/README.md
rename to resources/patches/disable-mobileindicator/README.md
diff --git a/resources/patches/embedlinks/1371.patch b/resources/patches/embedlinks/1371.patch
new file mode 100644
index 0000000..0f21e10
--- /dev/null
+++ b/resources/patches/embedlinks/1371.patch
@@ -0,0 +1,91 @@
+diff -crB from/smali/com/discord/utilities/textprocessing/MessagePreprocessor.smali to/smali/com/discord/utilities/textprocessing/MessagePreprocessor.smali
+*** from/smali/com/discord/utilities/textprocessing/MessagePreprocessor.smali 2020-12-10 17:59:08.337855043 +0000
+--- to/smali/com/discord/utilities/textprocessing/MessagePreprocessor.smali 2020-12-10 18:09:12.282764604 +0000
+***************
+*** 693,769 ****
+ .end method
+
+ .method private final stripSimpleEmbedLink(Ljava/util/Collection;)V
+! .locals 3
+! .annotation system Ldalvik/annotation/Signature;
+! value = {
+! "(",
+! "Ljava/util/Collection<",
+! "Lcom/discord/simpleast/core/node/Node<",
+! "Lcom/discord/utilities/textprocessing/MessageRenderContext;",
+! ">;>;)V"
+! }
+! .end annotation
+
+- .line 1
+- invoke-interface {p1}, Ljava/util/Collection;->size()I
+-
+- move-result v0
+-
+- const/4 v1, 0x1
+-
+- if-ne v0, v1, :cond_2
+-
+- iget-object v0, p0, Lcom/discord/utilities/textprocessing/MessagePreprocessor;->embeds:Ljava/util/List;
+-
+- if-eqz v0, :cond_2
+-
+- invoke-interface {v0}, Ljava/util/List;->size()I
+-
+- move-result v0
+-
+- if-eq v0, v1, :cond_0
+-
+- goto :goto_0
+-
+- :cond_0
+- const/4 v0, 0x0
+-
+- .line 2
+- invoke-static {p1, v0}, Lx/h/f;->elementAt(Ljava/lang/Iterable;I)Ljava/lang/Object;
+-
+- move-result-object v1
+-
+- check-cast v1, Lcom/discord/simpleast/core/node/Node;
+-
+- .line 3
+- iget-object v2, p0, Lcom/discord/utilities/textprocessing/MessagePreprocessor;->embeds:Ljava/util/List;
+-
+- invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
+-
+- move-result-object v0
+-
+- check-cast v0, Lcom/discord/models/domain/ModelMessageEmbed;
+-
+- .line 4
+- instance-of v1, v1, Lcom/discord/utilities/textprocessing/node/UrlNode;
+-
+- if-nez v1, :cond_1
+-
+- return-void
+-
+- .line 5
+- :cond_1
+- invoke-virtual {v0}, Lcom/discord/models/domain/ModelMessageEmbed;->isSimpleEmbed()Z
+-
+- move-result v0
+-
+- if-eqz v0, :cond_2
+-
+- .line 6
+- invoke-interface {p1}, Ljava/util/Collection;->clear()V
+-
+- :cond_2
+- :goto_0
+ return-void
+ .end method
+
+--- 693,700 ----
+ .end method
+
+ .method private final stripSimpleEmbedLink(Ljava/util/Collection;)V
+! .locals 0
+
+ return-void
+ .end method
+
\ No newline at end of file
diff --git a/resources/patches/embedlinks/89207.patch b/resources/patches/embedlinks/89207.patch
new file mode 100644
index 0000000..50a82ea
--- /dev/null
+++ b/resources/patches/embedlinks/89207.patch
@@ -0,0 +1,92 @@
+diff -crB from/smali/com/discord/utilities/textprocessing/MessagePreprocessor.smali to/smali/com/discord/utilities/textprocessing/MessagePreprocessor.smali
+*** from/smali/com/discord/utilities/textprocessing/MessagePreprocessor.smali 2021-08-04 19:45:53.005373900 +0100
+--- to/smali/com/discord/utilities/textprocessing/MessagePreprocessor.smali 2021-08-04 21:16:24.965470600 +0100
+***************
+*** 773,851 ****
+ .end method
+
+ .method private final stripSimpleEmbedLink(Ljava/util/Collection;)V
+! .locals 3
+! .annotation system Ldalvik/annotation/Signature;
+! value = {
+! "(",
+! "Ljava/util/Collection<",
+! "Lcom/discord/simpleast/core/node/Node<",
+! "Lcom/discord/utilities/textprocessing/MessageRenderContext;",
+! ">;>;)V"
+! }
+! .end annotation
+
+- .line 1
+- invoke-interface {p1}, Ljava/util/Collection;->size()I
+-
+- move-result v0
+-
+- const/4 v1, 0x1
+-
+- if-ne v0, v1, :cond_2
+-
+- iget-object v0, p0, Lcom/discord/utilities/textprocessing/MessagePreprocessor;->embeds:Ljava/util/List;
+-
+- if-eqz v0, :cond_2
+-
+- invoke-interface {v0}, Ljava/util/List;->size()I
+-
+- move-result v0
+-
+- if-eq v0, v1, :cond_0
+-
+- goto :goto_0
+-
+- :cond_0
+- const/4 v0, 0x0
+-
+- .line 2
+- invoke-static {p1, v0}, Ld0/t/u;->elementAt(Ljava/lang/Iterable;I)Ljava/lang/Object;
+-
+- move-result-object v1
+-
+- check-cast v1, Lcom/discord/simpleast/core/node/Node;
+-
+- .line 3
+- iget-object v2, p0, Lcom/discord/utilities/textprocessing/MessagePreprocessor;->embeds:Ljava/util/List;
+-
+- invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
+-
+- move-result-object v0
+-
+- check-cast v0, Lcom/discord/api/message/embed/MessageEmbed;
+-
+- .line 4
+- instance-of v1, v1, Lcom/discord/utilities/textprocessing/node/UrlNode;
+-
+- if-nez v1, :cond_1
+-
+- return-void
+-
+- .line 5
+- :cond_1
+- sget-object v1, Lcom/discord/utilities/embed/EmbedResourceUtils;->INSTANCE:Lcom/discord/utilities/embed/EmbedResourceUtils;
+-
+- invoke-virtual {v1, v0}, Lcom/discord/utilities/embed/EmbedResourceUtils;->isSimpleEmbed(Lcom/discord/api/message/embed/MessageEmbed;)Z
+-
+- move-result v0
+-
+- if-eqz v0, :cond_2
+-
+- .line 6
+- invoke-interface {p1}, Ljava/util/Collection;->clear()V
+-
+- :cond_2
+- :goto_0
+ return-void
+ .end method
+
+--- 773,780 ----
+ .end method
+
+ .method private final stripSimpleEmbedLink(Ljava/util/Collection;)V
+! .locals 0
+
+ return-void
+ .end method
\ No newline at end of file
diff --git a/resources/patches/embedlinks/README.md b/resources/patches/embedlinks/README.md
new file mode 100644
index 0000000..e313065
--- /dev/null
+++ b/resources/patches/embedlinks/README.md
@@ -0,0 +1,13 @@
+## DisTok CutTheCord: Embed Links
+
+Bring back embed links when it's the only thing contained in the message.
+
+![](https://elixi.re/i/xcn7vul5.png)
+
+to
+
+![](https://elixi.re/i/xdkl2p9x.png)
+
+#### Available and tested on:
+- 56.0
+- 89.7 - Alpha
diff --git a/patches/mutan/1371.patch b/resources/patches/mutan/1371.patch
similarity index 100%
rename from patches/mutan/1371.patch
rename to resources/patches/mutan/1371.patch
diff --git a/patches/mutan/87202.patch b/resources/patches/mutan/87202.patch
similarity index 100%
rename from patches/mutan/87202.patch
rename to resources/patches/mutan/87202.patch
diff --git a/patches/mutan/89201.patch b/resources/patches/mutan/89201.patch
similarity index 100%
rename from patches/mutan/89201.patch
rename to resources/patches/mutan/89201.patch
diff --git a/patches/mutan/89206.patch b/resources/patches/mutan/89206.patch
similarity index 100%
rename from patches/mutan/89206.patch
rename to resources/patches/mutan/89206.patch
diff --git a/patches/mutan/89207.patch b/resources/patches/mutan/89207.patch
similarity index 100%
rename from patches/mutan/89207.patch
rename to resources/patches/mutan/89207.patch
diff --git a/patches/mutan/README.md b/resources/patches/mutan/README.md
similarity index 100%
rename from patches/mutan/README.md
rename to resources/patches/mutan/README.md
diff --git a/patches/mutan/emojipatch.py b/resources/patches/mutan/emojipatch.py
similarity index 100%
rename from patches/mutan/emojipatch.py
rename to resources/patches/mutan/emojipatch.py
diff --git a/patches/mutan/emojireplace.py b/resources/patches/mutan/emojireplace.py
similarity index 100%
rename from patches/mutan/emojireplace.py
rename to resources/patches/mutan/emojireplace.py
diff --git a/patches/mutan/gendiversitycode.py b/resources/patches/mutan/gendiversitycode.py
similarity index 100%
rename from patches/mutan/gendiversitycode.py
rename to resources/patches/mutan/gendiversitycode.py
diff --git a/patches/mutan/genemojitest.py b/resources/patches/mutan/genemojitest.py
similarity index 100%
rename from patches/mutan/genemojitest.py
rename to resources/patches/mutan/genemojitest.py
diff --git a/resources/patches/nospoiler/89207.patch b/resources/patches/nospoiler/89207.patch
new file mode 100644
index 0000000..8446407
--- /dev/null
+++ b/resources/patches/nospoiler/89207.patch
@@ -0,0 +1,58 @@
+diff -crB from/smali/com/discord/api/message/attachment/MessageAttachment.smali to/smali/com/discord/api/message/attachment/MessageAttachment.smali
+*** from/smali/com/discord/api/message/attachment/MessageAttachment.smali 2021-08-04 19:45:36.435878400 +0100
+--- to/smali/com/discord/api/message/attachment/MessageAttachment.smali 2021-08-04 21:31:37.148568400 +0100
+***************
+*** 376,398 ****
+ .end method
+
+ .method public final h()Z
+! .locals 5
+!
+! .line 1
+! iget-object v0, p0, Lcom/discord/api/message/attachment/MessageAttachment;->filename:Ljava/lang/String;
+!
+! const-string v1, "SPOILER_"
+!
+! const/4 v2, 0x0
+!
+! const/4 v3, 0x2
+!
+! const/4 v4, 0x0
+!
+! invoke-static {v0, v1, v2, v3, v4}, Ld0/g0/t;->startsWith$default(Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Z
+!
+! move-result v0
+!
+ return v0
+ .end method
+
+--- 376,383 ----
+ .end method
+
+ .method public final h()Z
+! .locals 1
+! const/4 v0, 0x0
+ return v0
+ .end method
+
+diff -crB from/smali/com/discord/utilities/textprocessing/node/SpoilerNode.smali to/smali/com/discord/utilities/textprocessing/node/SpoilerNode.smali
+*** from/smali/com/discord/utilities/textprocessing/node/SpoilerNode.smali 2020-12-10 17:59:08.345855134 +0000
+--- to/smali/com/discord/utilities/textprocessing/node/SpoilerNode.smali 2020-12-10 18:00:01.624468003 +0000
+***************
+*** 249,256 ****
+ .method public isRevealed()Z
+ .locals 1
+
+! .line 1
+! iget-boolean v0, p0, Lcom/discord/utilities/textprocessing/node/SpoilerNode;->isRevealed:Z
+
+ return v0
+ .end method
+--- 249,255 ----
+ .method public isRevealed()Z
+ .locals 1
+
+! const/4 v0, 0x1
+
+ return v0
+ .end method
\ No newline at end of file
diff --git a/resources/patches/nospoiler/README.md b/resources/patches/nospoiler/README.md
new file mode 100644
index 0000000..e8250cd
--- /dev/null
+++ b/resources/patches/nospoiler/README.md
@@ -0,0 +1,8 @@
+## DisTok CutTheCord: No Spoiler Patch
+
+This patch automatically reveals spoilers.
+
+I personally won't be using it as I like to use them as CWs, but I do acknowledge the potential moderation issues it causes (that will be fixed with a patch like this).
+
+#### Available and tested on:
+- 89.7 - Alpha
diff --git a/resources/patches/notrack/89207-post.sh b/resources/patches/notrack/89207-post.sh
new file mode 100755
index 0000000..27b03f0
--- /dev/null
+++ b/resources/patches/notrack/89207-post.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+mv smali/com/airbnb smali_classes2/com/
diff --git a/resources/patches/notrack/89207.patch b/resources/patches/notrack/89207.patch
new file mode 100644
index 0000000..1e81a04
--- /dev/null
+++ b/resources/patches/notrack/89207.patch
@@ -0,0 +1,1340 @@
+diff -crB from/smali/com/discord/utilities/analytics/AnalyticsUtils$Tracker.smali to/smali/com/discord/utilities/analytics/AnalyticsUtils$Tracker.smali
+*** from/smali/com/discord/utilities/analytics/AnalyticsUtils$Tracker.smali 2021-08-10 20:24:15.471210700 +0100
+--- to/smali/com/discord/utilities/analytics/AnalyticsUtils$Tracker.smali 2021-08-21 17:10:11.604448700 +0100
+***************
+*** 208,216 ****
+ .method public static final synthetic access$drainEventsQueue(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;)V
+ .locals 0
+
+- .line 1
+- invoke-direct {p0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->drainEventsQueue()V
+-
+ return-void
+ .end method
+
+--- 208,213 ----
+***************
+*** 233,337 ****
+ .end method
+
+ .method private final declared-synchronized drainEventsQueue()V
+! .locals 15
+!
+! monitor-enter p0
+!
+! .line 1
+! :try_start_0
+! invoke-direct {p0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->getCanDrain()Z
+!
+! move-result v0
+! :try_end_0
+! .catchall {:try_start_0 .. :try_end_0} :catchall_0
+!
+! if-nez v0, :cond_0
+!
+! .line 2
+! monitor-exit p0
+!
+! return-void
+!
+! .line 3
+! :cond_0
+! :try_start_1
+! new-instance v0, Ljava/util/ArrayList;
+!
+! iget-object v1, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->eventsQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
+!
+! invoke-direct {v0, v1}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V
+!
+! .line 4
+! iget-object v1, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->eventsQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
+!
+! invoke-virtual {v1}, Ljava/util/concurrent/ConcurrentLinkedQueue;->clear()V
+!
+! .line 5
+! iget-object v1, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->restAPI:Lcom/discord/utilities/rest/RestAPI;
+!
+! .line 6
+! new-instance v2, Lcom/discord/api/science/Science;
+!
+! iget-object v3, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->analyticsToken:Ljava/lang/String;
+!
+! invoke-direct {v2, v3, v0}, Lcom/discord/api/science/Science;->(Ljava/lang/String;Ljava/util/List;)V
+!
+! invoke-virtual {v1, v2}, Lcom/discord/utilities/rest/RestAPI;->science(Lcom/discord/api/science/Science;)Lrx/Observable;
+!
+! move-result-object v1
+!
+! const/4 v2, 0x0
+!
+! const/4 v3, 0x1
+!
+! const/4 v4, 0x0
+!
+! .line 7
+! invoke-static {v1, v2, v3, v4}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->restSubscribeOn$default(Lrx/Observable;ZILjava/lang/Object;)Lrx/Observable;
+!
+! move-result-object v5
+!
+! .line 8
+! invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
+!
+! move-result-object v6
+!
+! const/4 v7, 0x0
+!
+! const/4 v8, 0x0
+!
+! .line 9
+! sget-object v12, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$drainEventsQueue$1;->INSTANCE:Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$drainEventsQueue$1;
+!
+! const/4 v10, 0x0
+!
+! const/4 v11, 0x0
+!
+! .line 10
+! new-instance v9, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$drainEventsQueue$2;
+!
+! invoke-direct {v9, p0, v0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$drainEventsQueue$2;->(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;Ljava/util/ArrayList;)V
+!
+! const/16 v13, 0x36
+!
+! const/4 v14, 0x0
+!
+! .line 11
+! invoke-static/range {v5 .. v14}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->appSubscribe$default(Lrx/Observable;Ljava/lang/Class;Landroid/content/Context;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
+! :try_end_1
+! .catchall {:try_start_1 .. :try_end_1} :catchall_0
+!
+! .line 12
+! monitor-exit p0
+
+ return-void
+-
+- :catchall_0
+- move-exception v0
+-
+- monitor-exit p0
+-
+- throw v0
+ .end method
+
+ .method private final getCanDrain()Z
+--- 230,238 ----
+ .end method
+
+ .method private final declared-synchronized drainEventsQueue()V
+! .locals 0
+
+ return-void
+ .end method
+
+ .method private final getCanDrain()Z
+***************
+*** 605,636 ****
+ .method public static synthetic setTrackingData$default(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;Ljava/lang/String;ZILjava/lang/Object;)V
+ .locals 0
+
+- and-int/lit8 p3, p3, 0x2
+-
+- if-eqz p3, :cond_0
+-
+- const/4 p2, 0x0
+-
+- .line 1
+- :cond_0
+- invoke-virtual {p0, p1, p2}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->setTrackingData(Ljava/lang/String;Z)V
+-
+ return-void
+ .end method
+
+ .method public static synthetic track$default(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V
+ .locals 0
+
+- and-int/lit8 p3, p3, 0x2
+-
+- if-eqz p3, :cond_0
+-
+- const/4 p2, 0x0
+-
+- .line 1
+- :cond_0
+- invoke-virtual {p0, p1, p2}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->track(Ljava/lang/String;Ljava/util/Map;)V
+-
+ return-void
+ .end method
+
+--- 506,517 ----
+***************
+*** 703,943 ****
+ .end method
+
+ .method public final track(Lcom/discord/api/science/AnalyticsSchema;)V
+! .locals 1
+!
+! const-string v0, "analyticsSchema"
+!
+! invoke-static {p1, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
+!
+! .line 7
+! new-instance v0, Lcom/discord/api/science/Science$Event$SchemaObject;
+!
+! invoke-direct {v0, p1}, Lcom/discord/api/science/Science$Event$SchemaObject;->(Lcom/discord/api/science/AnalyticsSchema;)V
+!
+! invoke-virtual {p0, v0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->track(Lcom/discord/api/science/Science$Event;)V
+
+ return-void
+ .end method
+
+ .method public final track(Lcom/discord/api/science/Science$Event;)V
+! .locals 12
+!
+! const-string v0, "event"
+!
+! invoke-static {p1, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
+!
+! .line 8
+! iget-object v0, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->eventsQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
+!
+! invoke-virtual {v0, p1}, Ljava/util/concurrent/ConcurrentLinkedQueue;->add(Ljava/lang/Object;)Z
+!
+! .line 9
+! sget-object p1, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
+!
+! const-wide/16 v0, 0x5dc
+!
+! invoke-static {v0, v1, p1}, Lrx/Observable;->c0(JLjava/util/concurrent/TimeUnit;)Lrx/Observable;
+!
+! move-result-object v2
+!
+! const-string p1, "Observable\n .ti\u20260, TimeUnit.MILLISECONDS)"
+!
+! invoke-static {v2, p1}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
+!
+! .line 10
+! const-class v3, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;
+!
+! new-instance v9, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$track$1;
+!
+! invoke-direct {v9, p0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$track$1;->(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;)V
+!
+! const/4 v4, 0x0
+!
+! const/4 v5, 0x0
+!
+! const/4 v6, 0x0
+!
+! const/4 v7, 0x0
+!
+! const/4 v8, 0x0
+!
+! const/16 v10, 0x3e
+!
+! const/4 v11, 0x0
+!
+! invoke-static/range {v2 .. v11}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->appSubscribe$default(Lrx/Observable;Ljava/lang/Class;Landroid/content/Context;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
+!
+ return-void
+ .end method
+
+ .method public final track(Ljava/lang/String;Ljava/util/Map;)V
+! .locals 1
+! .annotation system Ldalvik/annotation/Signature;
+! value = {
+! "(",
+! "Ljava/lang/String;",
+! "Ljava/util/Map<",
+! "Ljava/lang/String;",
+! "+",
+! "Ljava/lang/Object;",
+! ">;)V"
+! }
+! .end annotation
+!
+! const-string v0, "event"
+!
+! invoke-static {p1, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
+!
+! .line 6
+! new-instance v0, Lcom/discord/api/science/Science$Event$MapObject;
+!
+! if-eqz p2, :cond_0
+!
+! goto :goto_0
+!
+! :cond_0
+! invoke-static {}, Ld0/t/h0;->emptyMap()Ljava/util/Map;
+!
+! move-result-object p2
+!
+! :goto_0
+! invoke-direct {v0, p1, p2}, Lcom/discord/api/science/Science$Event$MapObject;->(Ljava/lang/String;Ljava/util/Map;)V
+!
+! invoke-virtual {p0, v0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->track(Lcom/discord/api/science/Science$Event;)V
+!
+ return-void
+ .end method
+
+ .method public final track(Lkotlin/Pair;JLkotlin/jvm/functions/Function0;)V
+! .locals 2
+! .annotation system Ldalvik/annotation/Signature;
+! value = {
+! "(",
+! "Lkotlin/Pair<",
+! "Ljava/lang/String;",
+! "Ljava/lang/Long;",
+! ">;J",
+! "Lkotlin/jvm/functions/Function0<",
+! "+",
+! "Ljava/util/Map<",
+! "Ljava/lang/String;",
+! "+",
+! "Ljava/lang/Object;",
+! ">;>;)V"
+! }
+! .end annotation
+!
+! const-string/jumbo v0, "throttleKey"
+!
+! invoke-static {p1, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
+!
+! const-string v0, "lazyPropertyProvider"
+!
+! invoke-static {p4, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
+!
+! .line 1
+! invoke-direct {p0, p1}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->isEventThrottled(Lkotlin/Pair;)Z
+!
+! move-result v0
+!
+! if-eqz v0, :cond_0
+!
+! return-void
+!
+! .line 2
+! :cond_0
+! invoke-virtual {p1}, Lkotlin/Pair;->component1()Ljava/lang/Object;
+!
+! move-result-object v0
+!
+! check-cast v0, Ljava/lang/String;
+!
+! .line 3
+! invoke-interface {p4}, Lkotlin/jvm/functions/Function0;->invoke()Ljava/lang/Object;
+!
+! move-result-object p4
+!
+! check-cast p4, Ljava/util/Map;
+!
+! invoke-virtual {p0, v0, p4}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->track(Ljava/lang/String;Ljava/util/Map;)V
+!
+! .line 4
+! iget-object p4, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->clock:Lcom/discord/utilities/time/Clock;
+!
+! invoke-interface {p4}, Lcom/discord/utilities/time/Clock;->currentTimeMillis()J
+!
+! move-result-wide v0
+!
+! .line 5
+! iget-object p4, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->eventsThrottledUntilMillis:Ljava/util/concurrent/ConcurrentHashMap;
+!
+! add-long/2addr v0, p2
+!
+! invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
+!
+! move-result-object p2
+!
+! invoke-interface {p4, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+!
+ return-void
+ .end method
+
+ .method public final trackFireBase(Ljava/lang/String;Ljava/util/Map;)V
+! .locals 8
+! .annotation system Ldalvik/annotation/Signature;
+! value = {
+! "(",
+! "Ljava/lang/String;",
+! "Ljava/util/Map<",
+! "Ljava/lang/String;",
+! "+",
+! "Ljava/lang/Object;",
+! ">;)V"
+! }
+! .end annotation
+!
+! const-string v0, "event"
+!
+! invoke-static {p1, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
+!
+! const-string/jumbo v0, "properties"
+!
+! invoke-static {p2, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
+!
+! .line 1
+! new-instance v0, Landroid/os/Bundle;
+!
+! invoke-direct {v0}, Landroid/os/Bundle;->()V
+!
+! invoke-direct {p0, v0, p2}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->putMap(Landroid/os/Bundle;Ljava/util/Map;)Landroid/os/Bundle;
+!
+! move-result-object v4
+!
+! .line 2
+! sget-object p2, Lcom/discord/utilities/analytics/AnalyticsUtils;->INSTANCE:Lcom/discord/utilities/analytics/AnalyticsUtils;
+!
+! invoke-static {p2}, Lcom/discord/utilities/analytics/AnalyticsUtils;->access$getFireBaseInstance$p(Lcom/discord/utilities/analytics/AnalyticsUtils;)Lcom/google/firebase/analytics/FirebaseAnalytics;
+!
+! move-result-object p2
+!
+! if-eqz p2, :cond_0
+!
+! .line 3
+! iget-object v1, p2, Lcom/google/firebase/analytics/FirebaseAnalytics;->b:Lc/i/a/f/h/l/g;
+!
+! const/4 v2, 0x0
+!
+! const/4 v5, 0x0
+!
+! const/4 v6, 0x1
+!
+! const/4 v7, 0x0
+!
+! move-object v3, p1
+!
+! .line 4
+! invoke-virtual/range {v1 .. v7}, Lc/i/a/f/h/l/g;->c(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ZZLjava/lang/Long;)V
+!
+! :cond_0
+ return-void
+ .end method
+--- 584,610 ----
+ .end method
+
+ .method public final track(Lcom/discord/api/science/AnalyticsSchema;)V
+! .locals 0
+
+ return-void
+ .end method
+
+ .method public final track(Lcom/discord/api/science/Science$Event;)V
+! .locals 0
+ return-void
+ .end method
+
+ .method public final track(Ljava/lang/String;Ljava/util/Map;)V
+! .locals 0
+ return-void
+ .end method
+
+ .method public final track(Lkotlin/Pair;JLkotlin/jvm/functions/Function0;)V
+! .locals 0
+ return-void
+ .end method
+
+ .method public final trackFireBase(Ljava/lang/String;Ljava/util/Map;)V
+! .locals 0
+ return-void
+ .end method
+
+diff -crB from/smali/com/adjust/sdk/AdjustInstance.smali to/smali/com/adjust/sdk/AdjustInstance.smali
+*** from/smali/com/adjust/sdk/AdjustInstance.smali 2021-08-21 17:20:11.626794200 +0100
+--- to/smali/com/adjust/sdk/AdjustInstance.smali 2021-08-21 17:20:28.335287700 +0100
+***************
+*** 514,541 ****
+
+ .method public isEnabled()Z
+ .locals 1
+!
+! .line 1
+! invoke-direct {p0}, Lcom/adjust/sdk/AdjustInstance;->checkActivityHandler()Z
+!
+! move-result v0
+!
+! if-nez v0, :cond_0
+!
+! .line 2
+! invoke-direct {p0}, Lcom/adjust/sdk/AdjustInstance;->isInstanceEnabled()Z
+!
+! move-result v0
+!
+! return v0
+!
+! .line 3
+! :cond_0
+! iget-object v0, p0, Lcom/adjust/sdk/AdjustInstance;->activityHandler:Lcom/adjust/sdk/IActivityHandler;
+!
+! invoke-interface {v0}, Lcom/adjust/sdk/IActivityHandler;->isEnabled()Z
+!
+! move-result v0
+
+ return v0
+ .end method
+--- 514,521 ----
+
+ .method public isEnabled()Z
+ .locals 1
+!
+! const/4 v0, 0x0
+
+ return v0
+ .end method
+***************
+*** 1281,1344 ****
+ .end method
+
+ .method public trackAdRevenue(Ljava/lang/String;Lorg/json/JSONObject;)V
+! .locals 1
+!
+! .line 1
+! invoke-direct {p0}, Lcom/adjust/sdk/AdjustInstance;->checkActivityHandler()Z
+!
+! move-result v0
+!
+! if-nez v0, :cond_0
+!
+! return-void
+!
+! .line 2
+! :cond_0
+! iget-object v0, p0, Lcom/adjust/sdk/AdjustInstance;->activityHandler:Lcom/adjust/sdk/IActivityHandler;
+!
+! invoke-interface {v0, p1, p2}, Lcom/adjust/sdk/IActivityHandler;->trackAdRevenue(Ljava/lang/String;Lorg/json/JSONObject;)V
+
+ return-void
+ .end method
+
+ .method public trackEvent(Lcom/adjust/sdk/AdjustEvent;)V
+! .locals 1
+!
+! .line 1
+! invoke-direct {p0}, Lcom/adjust/sdk/AdjustInstance;->checkActivityHandler()Z
+!
+! move-result v0
+!
+! if-nez v0, :cond_0
+!
+! return-void
+!
+! .line 2
+! :cond_0
+! iget-object v0, p0, Lcom/adjust/sdk/AdjustInstance;->activityHandler:Lcom/adjust/sdk/IActivityHandler;
+!
+! invoke-interface {v0, p1}, Lcom/adjust/sdk/IActivityHandler;->trackEvent(Lcom/adjust/sdk/AdjustEvent;)V
+
+ return-void
+ .end method
+
+ .method public trackPlayStoreSubscription(Lcom/adjust/sdk/AdjustPlayStoreSubscription;)V
+! .locals 1
+!
+! .line 1
+! invoke-direct {p0}, Lcom/adjust/sdk/AdjustInstance;->checkActivityHandler()Z
+!
+! move-result v0
+!
+! if-nez v0, :cond_0
+!
+! return-void
+!
+! .line 2
+! :cond_0
+! iget-object v0, p0, Lcom/adjust/sdk/AdjustInstance;->activityHandler:Lcom/adjust/sdk/IActivityHandler;
+!
+! invoke-interface {v0, p1}, Lcom/adjust/sdk/IActivityHandler;->trackPlayStoreSubscription(Lcom/adjust/sdk/AdjustPlayStoreSubscription;)V
+
+ return-void
+ .end method
+--- 1261,1279 ----
+ .end method
+
+ .method public trackAdRevenue(Ljava/lang/String;Lorg/json/JSONObject;)V
+! .locals 0
+
+ return-void
+ .end method
+
+ .method public trackEvent(Lcom/adjust/sdk/AdjustEvent;)V
+! .locals 0
+
+ return-void
+ .end method
+
+ .method public trackPlayStoreSubscription(Lcom/adjust/sdk/AdjustPlayStoreSubscription;)V
+! .locals 0
+
+ return-void
+ .end method
+diff -crB from/smali/com/discord/utilities/analytics/AdjustConfig.smali to/smali/com/discord/utilities/analytics/AdjustConfig.smali
+*** from/smali/com/discord/utilities/analytics/AdjustConfig.smali 2020-11-20 16:30:28.163767600 +0000
+--- to/smali/com/discord/utilities/analytics/AdjustConfig.smali 2020-11-20 16:31:00.958556852 +0000
+***************
+*** 48,54 ****
+
+
+ # static fields
+! .field private static final ADJUST_APP_TOKEN:Ljava/lang/String; = "d8fcx8xdmrr4"
+
+ .field private static final ADJUST_ENVIRONMENT:Ljava/lang/String;
+
+--- 48,54 ----
+
+
+ # static fields
+! .field private static final ADJUST_APP_TOKEN:Ljava/lang/String; = "aaaaaaaaaaaa"
+
+ .field private static final ADJUST_ENVIRONMENT:Ljava/lang/String;
+
+diff -crB from/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali to/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali
+*** from/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali 2020-11-20 16:30:28.167767702 +0000
+--- to/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali 2020-11-20 16:31:13.916842340 +0000
+***************
+*** 261,267 ****
+ .method private final setBaselineProperties()V
+ .locals 8
+
+! const/16 v0, 0x9
+
+ new-array v0, v0, [Lkotlin/Pair;
+
+--- 261,267 ----
+ .method private final setBaselineProperties()V
+ .locals 8
+
+! const/16 v0, 0x3
+
+ new-array v0, v0, [Lkotlin/Pair;
+
+***************
+*** 291,357 ****
+
+ aput-object v1, v0, v2
+
+- const v1, 0x15c77
+-
+- .line 3
+- invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
+-
+- move-result-object v1
+-
+- const-string v2, "client_build_number"
+-
+- invoke-static {v2, v1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+-
+- move-result-object v1
+-
+- const/4 v2, 0x2
+-
+- aput-object v1, v0, v2
+-
+- const-string v1, "client_version"
+-
+- const-string v2, "89.7 - Alpha"
+-
+- .line 4
+- invoke-static {v1, v2}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+-
+- move-result-object v1
+-
+- const/4 v2, 0x3
+-
+- aput-object v1, v0, v2
+-
+- .line 5
+- new-instance v1, Ljava/lang/StringBuilder;
+-
+- invoke-direct {v1}, Ljava/lang/StringBuilder;->()V
+-
+- sget-object v2, Landroid/os/Build;->MODEL:Ljava/lang/String;
+-
+- invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+-
+- const-string v2, ", "
+-
+- invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+-
+- sget-object v2, Landroid/os/Build;->PRODUCT:Ljava/lang/String;
+-
+- invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+-
+- invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+-
+- move-result-object v1
+-
+- const-string v2, "device"
+-
+- invoke-static {v2, v1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+-
+- move-result-object v1
+-
+- const/4 v2, 0x4
+-
+- aput-object v1, v0, v2
+-
+ const-string/jumbo v1, "os"
+
+ const-string v2, "Android"
+--- 291,296 ----
+***************
+*** 361,434 ****
+
+ move-result-object v1
+
+! const/4 v2, 0x5
+!
+! aput-object v1, v0, v2
+!
+! .line 7
+! sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
+!
+! invoke-static {v1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
+!
+! move-result-object v1
+!
+! const-string/jumbo v2, "os_sdk_version"
+!
+! invoke-static {v2, v1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+!
+! move-result-object v1
+!
+! const/4 v2, 0x6
+!
+! aput-object v1, v0, v2
+!
+! .line 8
+! sget-object v1, Landroid/os/Build$VERSION;->RELEASE:Ljava/lang/String;
+!
+! const-string/jumbo v2, "os_version"
+!
+! invoke-static {v2, v1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+!
+! move-result-object v1
+!
+! const/4 v2, 0x7
+!
+! aput-object v1, v0, v2
+!
+! .line 9
+! invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
+!
+! move-result-object v1
+!
+! invoke-virtual {v1}, Ljava/util/Locale;->toString()Ljava/lang/String;
+!
+! move-result-object v2
+!
+! const-string v1, "Locale.getDefault().toString()"
+!
+! invoke-static {v2, v1}, Ld0/z/d/m;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
+!
+! const-string v3, "_"
+!
+! const-string v4, "-"
+!
+! const/4 v5, 0x0
+!
+! const/4 v6, 0x4
+!
+! const/4 v7, 0x0
+!
+! invoke-static/range {v2 .. v7}, Ld0/g0/t;->replace$default(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Ljava/lang/String;
+!
+! move-result-object v1
+!
+! const-string/jumbo v2, "system_locale"
+!
+! invoke-static {v2, v1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+!
+! move-result-object v1
+!
+! const/16 v2, 0x8
+
+ aput-object v1, v0, v2
+
+--- 300,306 ----
+
+ move-result-object v1
+
+! const/4 v2, 0x2
+
+ aput-object v1, v0, v2
+
+***************
+*** 561,1091 ****
+ .end method
+
+ .method public final setAccessibilityProperties(ZLjava/util/EnumSet;)V
+! .locals 4
+! .annotation system Ldalvik/annotation/Signature;
+! value = {
+! "(Z",
+! "Ljava/util/EnumSet<",
+! "Lcom/discord/utilities/accessibility/AccessibilityFeatureFlags;",
+! ">;)V"
+! }
+! .end annotation
+!
+! const-string v0, "features"
+!
+! invoke-static {p2, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
+!
+! .line 1
+! invoke-interface {p2}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
+!
+! move-result-object p2
+!
+! const-wide/16 v0, 0x0
+!
+! :goto_0
+! invoke-interface {p2}, Ljava/util/Iterator;->hasNext()Z
+!
+! move-result v2
+!
+! if-eqz v2, :cond_0
+!
+! invoke-interface {p2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
+!
+! move-result-object v2
+!
+! check-cast v2, Lcom/discord/utilities/accessibility/AccessibilityFeatureFlags;
+!
+! .line 2
+! invoke-virtual {v2}, Lcom/discord/utilities/accessibility/AccessibilityFeatureFlags;->getValue()J
+!
+! move-result-wide v2
+!
+! or-long/2addr v0, v2
+!
+! goto :goto_0
+!
+! :cond_0
+! const/4 p2, 0x2
+!
+! new-array p2, p2, [Lkotlin/Pair;
+!
+! const/4 v2, 0x0
+!
+! .line 3
+! invoke-static {p1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
+!
+! move-result-object p1
+!
+! const-string v3, "accessibility_support_enabled"
+!
+! invoke-static {v3, p1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+!
+! move-result-object p1
+!
+! aput-object p1, p2, v2
+!
+! const/4 p1, 0x1
+!
+! .line 4
+! invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
+!
+! move-result-object v0
+!
+! const-string v1, "accessibility_features"
+!
+! invoke-static {v1, v0}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+!
+! move-result-object v0
+!
+! aput-object v0, p2, p1
+!
+! .line 5
+! invoke-static {p2}, Ld0/t/h0;->mapOf([Lkotlin/Pair;)Ljava/util/Map;
+!
+! move-result-object p1
+!
+! .line 6
+! invoke-direct {p0, p1}, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->updateSuperProperties(Ljava/util/Map;)V
+
+ return-void
+ .end method
+
+ .method public final setAdvertiserId(Ljava/lang/String;)V
+! .locals 1
+!
+! const-string v0, "advertiserId"
+!
+! invoke-static {p1, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
+!
+! const-string v0, "device_advertiser_id"
+!
+! .line 1
+! invoke-static {v0, p1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+!
+! move-result-object p1
+!
+! invoke-static {p1}, Ld0/t/g0;->mapOf(Lkotlin/Pair;)Ljava/util/Map;
+!
+! move-result-object p1
+!
+! .line 2
+! invoke-direct {p0, p1}, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->updateSuperProperties(Ljava/util/Map;)V
+
+ return-void
+ .end method
+
+ .method public final setCampaignProperties(Ljava/lang/String;)V
+! .locals 11
+!
+! const-string/jumbo v0, "referrerUrl"
+!
+! invoke-static {p1, v0}, Ld0/z/d/m;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
+!
+! const/4 v0, 0x1
+!
+! new-array v1, v0, [Lkotlin/Pair;
+!
+! const-string/jumbo v2, "referrer"
+!
+! .line 1
+! invoke-static {v2, p1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+!
+! move-result-object v2
+!
+! const/4 v3, 0x0
+!
+! aput-object v2, v1, v3
+!
+! .line 2
+! invoke-static {v1}, Ld0/t/h0;->mutableMapOf([Lkotlin/Pair;)Ljava/util/Map;
+!
+! move-result-object v1
+!
+! const-string v2, "&"
+!
+! .line 3
+! filled-new-array {v2}, [Ljava/lang/String;
+!
+! move-result-object v5
+!
+! const/4 v6, 0x0
+!
+! const/4 v7, 0x0
+!
+! const/4 v8, 0x6
+!
+! const/4 v9, 0x0
+!
+! move-object v4, p1
+!
+! invoke-static/range {v4 .. v9}, Ld0/g0/w;->split$default(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
+!
+! move-result-object p1
+!
+! .line 4
+! new-instance v2, Ljava/util/ArrayList;
+!
+! const/16 v4, 0xa
+!
+! invoke-static {p1, v4}, Ld0/t/o;->collectionSizeOrDefault(Ljava/lang/Iterable;I)I
+!
+! move-result v4
+!
+! invoke-direct {v2, v4}, Ljava/util/ArrayList;->(I)V
+!
+! .line 5
+! invoke-interface {p1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
+!
+! move-result-object p1
+!
+! :goto_0
+! invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
+!
+! move-result v4
+!
+! if-eqz v4, :cond_0
+!
+! invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
+!
+! move-result-object v4
+!
+! .line 6
+! move-object v5, v4
+!
+! check-cast v5, Ljava/lang/String;
+!
+! const-string v4, "="
+!
+! .line 7
+! filled-new-array {v4}, [Ljava/lang/String;
+!
+! move-result-object v6
+!
+! const/4 v7, 0x0
+!
+! const/4 v8, 0x0
+!
+! const/4 v9, 0x6
+!
+! const/4 v10, 0x0
+!
+! invoke-static/range {v5 .. v10}, Ld0/g0/w;->split$default(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
+!
+! move-result-object v4
+!
+! invoke-interface {v2, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
+!
+! goto :goto_0
+!
+! .line 8
+! :cond_0
+! new-instance p1, Ljava/util/ArrayList;
+!
+! invoke-direct {p1}, Ljava/util/ArrayList;->()V
+!
+! .line 9
+! invoke-interface {v2}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
+!
+! move-result-object v2
+!
+! :cond_1
+! :goto_1
+! invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
+!
+! move-result v4
+!
+! if-eqz v4, :cond_3
+!
+! invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
+!
+! move-result-object v4
+!
+! move-object v5, v4
+!
+! check-cast v5, Ljava/util/List;
+!
+! .line 10
+! invoke-interface {v5}, Ljava/util/List;->size()I
+!
+! move-result v5
+!
+! const/4 v6, 0x2
+!
+! if-ne v5, v6, :cond_2
+!
+! const/4 v5, 0x1
+!
+! goto :goto_2
+!
+! :cond_2
+! const/4 v5, 0x0
+!
+! :goto_2
+! if-eqz v5, :cond_1
+!
+! invoke-interface {p1, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
+!
+! goto :goto_1
+!
+! .line 11
+! :cond_3
+! new-instance v2, Ljava/util/ArrayList;
+!
+! invoke-direct {v2}, Ljava/util/ArrayList;->()V
+!
+! .line 12
+! invoke-interface {p1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
+!
+! move-result-object p1
+!
+! :cond_4
+! :goto_3
+! invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
+!
+! move-result v4
+!
+! if-eqz v4, :cond_6
+!
+! invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
+!
+! move-result-object v4
+!
+! move-object v5, v4
+!
+! check-cast v5, Ljava/util/List;
+!
+! .line 13
+! invoke-interface {v5, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
+!
+! move-result-object v5
+!
+! check-cast v5, Ljava/lang/String;
+!
+! invoke-virtual {v5}, Ljava/lang/String;->hashCode()I
+!
+! move-result v6
+!
+! sparse-switch v6, :sswitch_data_0
+!
+! goto :goto_5
+!
+! :sswitch_0
+! const-string/jumbo v6, "utm_source"
+!
+! .line 14
+! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+!
+! move-result v5
+!
+! if-eqz v5, :cond_5
+!
+! goto :goto_4
+!
+! :sswitch_1
+! const-string v6, "location"
+!
+! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+!
+! move-result v5
+!
+! if-eqz v5, :cond_5
+!
+! goto :goto_4
+!
+! :sswitch_2
+! const-string/jumbo v6, "utm_medium"
+!
+! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+!
+! move-result v5
+!
+! if-eqz v5, :cond_5
+!
+! goto :goto_4
+!
+! :sswitch_3
+! const-string/jumbo v6, "search_engine"
+!
+! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+!
+! move-result v5
+!
+! if-eqz v5, :cond_5
+!
+! goto :goto_4
+!
+! :sswitch_4
+! const-string/jumbo v6, "mp_keyword"
+!
+! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+!
+! move-result v5
+!
+! if-eqz v5, :cond_5
+!
+! goto :goto_4
+!
+! :sswitch_5
+! const-string/jumbo v6, "utm_term"
+!
+! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+!
+! move-result v5
+!
+! if-eqz v5, :cond_5
+!
+! goto :goto_4
+!
+! :sswitch_6
+! const-string/jumbo v6, "utm_campaign"
+!
+! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+!
+! move-result v5
+!
+! if-eqz v5, :cond_5
+!
+! goto :goto_4
+!
+! :sswitch_7
+! const-string/jumbo v6, "referring_domain"
+!
+! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+!
+! move-result v5
+!
+! if-eqz v5, :cond_5
+!
+! goto :goto_4
+!
+! :sswitch_8
+! const-string/jumbo v6, "utm_content"
+!
+! invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+!
+! move-result v5
+!
+! if-eqz v5, :cond_5
+!
+! :goto_4
+! const/4 v5, 0x1
+!
+! goto :goto_6
+!
+! :cond_5
+! :goto_5
+! const/4 v5, 0x0
+!
+! :goto_6
+! if-eqz v5, :cond_4
+!
+! .line 15
+! invoke-interface {v2, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
+!
+! goto :goto_3
+!
+! .line 16
+! :cond_6
+! invoke-interface {v2}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
+!
+! move-result-object p1
+!
+! :goto_7
+! invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
+!
+! move-result v2
+!
+! if-eqz v2, :cond_7
+!
+! invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
+!
+! move-result-object v2
+!
+! .line 17
+! check-cast v2, Ljava/util/List;
+!
+! .line 18
+! invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
+!
+! move-result-object v4
+!
+! check-cast v4, Ljava/lang/String;
+!
+! invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
+!
+! move-result-object v2
+!
+! check-cast v2, Ljava/lang/String;
+!
+! invoke-interface {v1, v4, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+!
+! goto :goto_7
+!
+! .line 19
+! :cond_7
+! invoke-direct {p0, v1}, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->updateSuperProperties(Ljava/util/Map;)V
+
+ return-void
+-
+- nop
+-
+- :sswitch_data_0
+- .sparse-switch
+- -0x5bc8ed18 -> :sswitch_8
+- -0x40f32acd -> :sswitch_7
+- -0x3db0f7f -> :sswitch_6
+- 0x31ad945d -> :sswitch_5
+- 0x3d3a7f4d -> :sswitch_4
+- 0x3f4764b9 -> :sswitch_3
+- 0x70a1a726 -> :sswitch_2
+- 0x714f9fb5 -> :sswitch_1
+- 0x7b737fcc -> :sswitch_0
+- .end sparse-switch
+ .end method
+
+ .method public final setClientPerformanceProperties(IJ)V
+! .locals 2
+!
+! const/4 v0, 0x2
+!
+! new-array v0, v0, [Lkotlin/Pair;
+!
+! .line 1
+! invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
+!
+! move-result-object p1
+!
+! const-string v1, "client_performance_cpu"
+!
+! invoke-static {v1, p1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+!
+! move-result-object p1
+!
+! const/4 v1, 0x0
+!
+! aput-object p1, v0, v1
+!
+! .line 2
+! invoke-static {p2, p3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
+!
+! move-result-object p1
+!
+! const-string p2, "client_performance_memory"
+!
+! invoke-static {p2, p1}, Ld0/o;->to(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+!
+! move-result-object p1
+!
+! const/4 p2, 0x1
+!
+! aput-object p1, v0, p2
+!
+! .line 3
+! invoke-static {v0}, Ld0/t/h0;->mapOf([Lkotlin/Pair;)Ljava/util/Map;
+!
+! move-result-object p1
+!
+! invoke-direct {p0, p1}, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->updateSuperProperties(Ljava/util/Map;)V
+
+ return-void
+ .end method
+--- 433,457 ----
+ .end method
+
+ .method public final setAccessibilityProperties(ZLjava/util/EnumSet;)V
+! .locals 0
+
+ return-void
+ .end method
+
+ .method public final setAdvertiserId(Ljava/lang/String;)V
+! .locals 0
+
+ return-void
+ .end method
+
+ .method public final setCampaignProperties(Ljava/lang/String;)V
+! .locals 0
+
+ return-void
+ .end method
+
+ .method public final setClientPerformanceProperties(IJ)V
+! .locals 0
+
+ return-void
+ .end method
+
+diff -crB from/smali/com/discord/utilities/integrations/SpotifyHelper$openPlayStoreForSpotify$1.smali to/smali/com/discord/utilities/integrations/SpotifyHelper$openPlayStoreForSpotify$1.smali
+*** from/smali/com/discord/utilities/integrations/SpotifyHelper$openPlayStoreForSpotify$1.smali 2020-11-20 16:30:28.229769289 +0000
+--- to/smali/com/discord/utilities/integrations/SpotifyHelper$openPlayStoreForSpotify$1.smali 2020-11-20 16:31:00.958556852 +0000
+***************
+*** 68,74 ****
+
+ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V
+
+! const-string v2, "https://app.adjust.com/ndjczk?campaign="
+
+ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+
+--- 68,74 ----
+
+ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V
+
+! const-string v2, "https://play.google.com/store/apps/details?id=com.spotify.music&trash="
+
+ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
diff --git a/resources/patches/notrack/README.md b/resources/patches/notrack/README.md
new file mode 100644
index 0000000..d7edf97
--- /dev/null
+++ b/resources/patches/notrack/README.md
@@ -0,0 +1,10 @@
+## DisTok CutTheCord: No Track Patch
+
+This patch disables `track` (aka `science`) endpoint, firebase tracking, fabric.io tracking and crashlytics.
+
+As of 8.3.5g, it also removes various fields from `superProperties` that could be used to track your device. This was planned to be added all the way back in 8.3.2, but I apparently forgot to commit it. Bleh. Also as of 8.3.5, adjust and ganalytics are blocked as well. That should be all.
+
+Fuck telemetry.
+
+#### Available and tested on:
+- 89.7 - Alpha
diff --git a/resources/patches/nozlib/89207.patch b/resources/patches/nozlib/89207.patch
new file mode 100644
index 0000000..6bb6add
--- /dev/null
+++ b/resources/patches/nozlib/89207.patch
@@ -0,0 +1,34 @@
+diff -crB from/smali/com/discord/gateway/GatewaySocket.smali to/smali/com/discord/gateway/GatewaySocket.smali
+*** from/smali/com/discord/gateway/GatewaySocket.smali 2021-08-04 19:45:39.263375300 +0100
+--- to/smali/com/discord/gateway/GatewaySocket.smali 2021-08-04 23:26:38.221788200 +0100
+***************
+*** 1410,1416 ****
+
+ invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+
+! const-string p1, "/?encoding=json&v=9&compress=zlib-stream"
+
+ invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+
+--- 1410,1416 ----
+
+ invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+
+! const-string p1, "/?encoding=json&v=9"
+
+ invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+
+diff -crB from/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali to/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali
+*** from/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali 2021-08-04 19:45:39.360374800 +0100
+--- to/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali 2021-08-04 23:28:01.288223200 +0100
+***************
+*** 115,120 ****
+--- 115,122 ----
+
+ iput p2, p0, Lcom/discord/gateway/io/OutgoingPayload$Identify;->largeThreshold:I
+
++ const/4 p3, 0x0
++
+ iput-boolean p3, p0, Lcom/discord/gateway/io/OutgoingPayload$Identify;->compress:Z
+
+ iput-wide p4, p0, Lcom/discord/gateway/io/OutgoingPayload$Identify;->capabilities:J
\ No newline at end of file
diff --git a/resources/patches/nozlib/README.md b/resources/patches/nozlib/README.md
new file mode 100644
index 0000000..a059f3f
--- /dev/null
+++ b/resources/patches/nozlib/README.md
@@ -0,0 +1,6 @@
+## DisTok CutTheCord: No zlib-stream Patch
+
+This patch disables zlib-stream field on wss, making it easier to parse it.
+
+#### Available and tested on:
+- 89.7 - Alpha
diff --git a/patches/profilemention/1371.patch b/resources/patches/profilemention/1371.patch
similarity index 100%
rename from patches/profilemention/1371.patch
rename to resources/patches/profilemention/1371.patch
diff --git a/patches/profilemention/89207.patch b/resources/patches/profilemention/89207.patch
similarity index 100%
rename from patches/profilemention/89207.patch
rename to resources/patches/profilemention/89207.patch
diff --git a/patches/profilemention/README.md b/resources/patches/profilemention/README.md
similarity index 100%
rename from patches/profilemention/README.md
rename to resources/patches/profilemention/README.md
diff --git a/resources/patches/showtag/89207.patch b/resources/patches/showtag/89207.patch
new file mode 100644
index 0000000..d41527c
--- /dev/null
+++ b/resources/patches/showtag/89207.patch
@@ -0,0 +1,70 @@
+*** discord/com.discord/smali/com/discord/models/member/GuildMember$Companion.smali 2021-08-21 15:12:24.365015809 -0400
+--- com.discord/smali/com/discord/models/member/GuildMember$Companion.smali 2021-08-21 15:32:18.845023373 -0400
+***************
+*** 691,696 ****
+--- 691,728 ----
+ :goto_4
+ if-eqz v0, :cond_8
+
++ new-instance v1, Ljava/lang/StringBuilder;
++
++ invoke-direct {v1, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V
++
++ const-string v2, " ("
++
++ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++
++ invoke-interface {p1}, Lcom/discord/models/user/User;->getUsername()Ljava/lang/String;
++
++ move-result-object v2
++
++ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++
++ const-string v2, "#"
++
++ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++
++ invoke-interface {p1}, Lcom/discord/models/user/User;->getDiscriminator()I
++
++ move-result v2
++
++ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
++
++ const-string v2, ")"
++
++ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++
++ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
++
++ move-result-object v0
++
+ goto :goto_5
+
+ :cond_8
+***************
+*** 698,703 ****
+--- 730,753 ----
+
+ move-result-object v0
+
++ new-instance v1, Ljava/lang/StringBuilder;
++
++ invoke-direct {v1, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V
++
++ const-string v2, "#"
++
++ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++
++ invoke-interface {p1}, Lcom/discord/models/user/User;->getDiscriminator()I
++
++ move-result v2
++
++ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
++
++ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
++
++ move-result-object v0
++
+ :goto_5
+ return-object v0
+ .end method
diff --git a/resources/patches/showtag/README.md b/resources/patches/showtag/README.md
new file mode 100644
index 0000000..e70fda2
--- /dev/null
+++ b/resources/patches/showtag/README.md
@@ -0,0 +1,21 @@
+## DisTok CutTheCord: Show Tag Patch
+
+This patch shows user's username after their nickname, if user has a nickname.
+
+Example, no nickname:
+
+![](https://lasagna.cat/i/c28755s6.png)
+
+Example, with nickname:
+
+![](https://lasagna.cat/i/uy68njkr.png)
+
+
+#### Technical notes
+
+This hooks into `getNickOrUsername` function, specifically after `getNickname` is verified to be not empty. It creates a stringbuilder and appends ` (username#discriminator)` to it.
+
+As of 78.4 - Alpha, it also appends `#discriminator` to username.
+
+#### Available and tested on:
+- 89.7 - Alpha
diff --git a/patches/supplemental/87202.patch b/resources/patches/supplemental/87202.patch
similarity index 100%
rename from patches/supplemental/87202.patch
rename to resources/patches/supplemental/87202.patch
diff --git a/patches/supplemental/89201.patch b/resources/patches/supplemental/89201.patch
similarity index 100%
rename from patches/supplemental/89201.patch
rename to resources/patches/supplemental/89201.patch
diff --git a/patches/supplemental/89206.patch b/resources/patches/supplemental/89206.patch
similarity index 100%
rename from patches/supplemental/89206.patch
rename to resources/patches/supplemental/89206.patch
diff --git a/patches/supplemental/89207.patch b/resources/patches/supplemental/89207.patch
similarity index 100%
rename from patches/supplemental/89207.patch
rename to resources/patches/supplemental/89207.patch
diff --git a/patches/supplemental/README.md b/resources/patches/supplemental/README.md
similarity index 100%
rename from patches/supplemental/README.md
rename to resources/patches/supplemental/README.md
diff --git a/patchport-state.json b/resources/patchport-state.json
similarity index 100%
rename from patchport-state.json
rename to resources/patchport-state.json
diff --git a/resources/46620/res/font/whitney_bold.ttf b/resources/res/46620/res/font/whitney_bold.ttf
similarity index 100%
rename from resources/46620/res/font/whitney_bold.ttf
rename to resources/res/46620/res/font/whitney_bold.ttf
diff --git a/resources/46620/res/font/whitney_medium.ttf b/resources/res/46620/res/font/whitney_medium.ttf
similarity index 100%
rename from resources/46620/res/font/whitney_medium.ttf
rename to resources/res/46620/res/font/whitney_medium.ttf
diff --git a/resources/46620/res/font/whitney_semibold.ttf b/resources/res/46620/res/font/whitney_semibold.ttf
similarity index 100%
rename from resources/46620/res/font/whitney_semibold.ttf
rename to resources/res/46620/res/font/whitney_semibold.ttf
diff --git a/resources/46620/res/mipmap-xxxhdpi/logo.png b/resources/res/46620/res/mipmap-xxxhdpi/logo.png
similarity index 100%
rename from resources/46620/res/mipmap-xxxhdpi/logo.png
rename to resources/res/46620/res/mipmap-xxxhdpi/logo.png
diff --git a/resources/46620/res/mipmap-xxxhdpi/logo_debug.png b/resources/res/46620/res/mipmap-xxxhdpi/logo_debug.png
similarity index 100%
rename from resources/46620/res/mipmap-xxxhdpi/logo_debug.png
rename to resources/res/46620/res/mipmap-xxxhdpi/logo_debug.png
diff --git a/resources/46620/res/raw/call_calling.mp3 b/resources/res/46620/res/raw/call_calling.mp3
similarity index 100%
rename from resources/46620/res/raw/call_calling.mp3
rename to resources/res/46620/res/raw/call_calling.mp3
diff --git a/resources/46620/res/raw/call_ringing.mp3 b/resources/res/46620/res/raw/call_ringing.mp3
similarity index 100%
rename from resources/46620/res/raw/call_ringing.mp3
rename to resources/res/46620/res/raw/call_ringing.mp3
diff --git a/resources/46620/res/raw/emoji_2122_fe0f.png b/resources/res/46620/res/raw/emoji_2122_fe0f.png
similarity index 100%
rename from resources/46620/res/raw/emoji_2122_fe0f.png
rename to resources/res/46620/res/raw/emoji_2122_fe0f.png
diff --git a/resources/46620/res/raw/emoji_ae_fe0f.png b/resources/res/46620/res/raw/emoji_ae_fe0f.png
similarity index 100%
rename from resources/46620/res/raw/emoji_ae_fe0f.png
rename to resources/res/46620/res/raw/emoji_ae_fe0f.png
diff --git a/resources/t3ch/res/font/whitney_bold.ttf b/resources/res/t3ch/res/font/whitney_bold.ttf
similarity index 100%
rename from resources/t3ch/res/font/whitney_bold.ttf
rename to resources/res/t3ch/res/font/whitney_bold.ttf
diff --git a/resources/t3ch/res/font/whitney_medium.ttf b/resources/res/t3ch/res/font/whitney_medium.ttf
similarity index 100%
rename from resources/t3ch/res/font/whitney_medium.ttf
rename to resources/res/t3ch/res/font/whitney_medium.ttf
diff --git a/resources/t3ch/res/font/whitney_semibold.ttf b/resources/res/t3ch/res/font/whitney_semibold.ttf
similarity index 100%
rename from resources/t3ch/res/font/whitney_semibold.ttf
rename to resources/res/t3ch/res/font/whitney_semibold.ttf
diff --git a/resources/t3ch/res/raw/call_ringing.mp3 b/resources/res/t3ch/res/raw/call_ringing.mp3
similarity index 100%
rename from resources/t3ch/res/raw/call_ringing.mp3
rename to resources/res/t3ch/res/raw/call_ringing.mp3
diff --git a/resources/t3ch/res/raw/emoji_2122_fe0f.png b/resources/res/t3ch/res/raw/emoji_2122_fe0f.png
similarity index 100%
rename from resources/t3ch/res/raw/emoji_2122_fe0f.png
rename to resources/res/t3ch/res/raw/emoji_2122_fe0f.png
diff --git a/resources/t3ch/res/raw/emoji_ae_fe0f.png b/resources/res/t3ch/res/raw/emoji_ae_fe0f.png
similarity index 100%
rename from resources/t3ch/res/raw/emoji_ae_fe0f.png
rename to resources/res/t3ch/res/raw/emoji_ae_fe0f.png
diff --git a/ctcci/.gitignore b/resources/scripts/ctcci/.gitignore
similarity index 100%
rename from ctcci/.gitignore
rename to resources/scripts/ctcci/.gitignore
diff --git a/ctcci/cleanartifacts.py b/resources/scripts/ctcci/cleanartifacts.py
similarity index 100%
rename from ctcci/cleanartifacts.py
rename to resources/scripts/ctcci/cleanartifacts.py
diff --git a/ctcci/ctcci.py b/resources/scripts/ctcci/ctcci.py
similarity index 100%
rename from ctcci/ctcci.py
rename to resources/scripts/ctcci/ctcci.py
diff --git a/ctcci/ctcconfig.example.py b/resources/scripts/ctcci/ctcconfig.example.py
similarity index 100%
rename from ctcci/ctcconfig.example.py
rename to resources/scripts/ctcci/ctcconfig.example.py
diff --git a/patchbisect.py b/resources/scripts/patchbisect.py
similarity index 100%
rename from patchbisect.py
rename to resources/scripts/patchbisect.py
diff --git a/resources/xmlpatches/betterdmheader/89207.xml b/resources/xmlpatches/betterdmheader/89207.xml
new file mode 100644
index 0000000..6299abe
--- /dev/null
+++ b/resources/xmlpatches/betterdmheader/89207.xml
@@ -0,0 +1,7 @@
+
+
+ never
+ never
+ always
+
+
\ No newline at end of file
diff --git a/resources/xmlpatches/betterrotation/89207.xml b/resources/xmlpatches/betterrotation/89207.xml
new file mode 100644
index 0000000..a327c25
--- /dev/null
+++ b/resources/xmlpatches/betterrotation/89207.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/xmlpatches/betterrotation/README.md b/resources/xmlpatches/betterrotation/README.md
new file mode 100644
index 0000000..6d42a6c
--- /dev/null
+++ b/resources/xmlpatches/betterrotation/README.md
@@ -0,0 +1,5 @@
+## DisTok CutTheCord: Better Rotation
+
+This patch changes rotation settings to disallow upside down rotation.
+
+Contributed by [clienthax](https://gitdab.com/clienthax).
\ No newline at end of file
diff --git a/resources/xmlpatches/customtheme/82907.xml b/resources/xmlpatches/customtheme/82907.xml
new file mode 100644
index 0000000..0333f17
--- /dev/null
+++ b/resources/xmlpatches/customtheme/82907.xml
@@ -0,0 +1,43 @@
+
+
+
+ @android:color/transparent
+
+
+
+ @color/primary_500
+
+
+
+ @color/primary_600
+
+
+
+ #ff000000
+ #ff000000
+ #ff000000
+ #ff000000
+ #ff000000
+ #ff50f148
+ #ff333333
+ #330f0f0f
+ #4d0f0f0f
+ #510f0f0f
+ #990f0f0f
+ #ff000000
+ #99000000
+ #ff000000
+ #99000000
+ #e6000000
+ #ff000000
+ #e6000000
+ #ff000000
+ #80000000
+ #990f0f0f
+ #ff000000
+ #ff000000
+ #ff000000
+ #e6000000
+
+
+
\ No newline at end of file
diff --git a/resources/xmlpatches/noblocked/89207.xml b/resources/xmlpatches/noblocked/89207.xml
new file mode 100644
index 0000000..92e07dd
--- /dev/null
+++ b/resources/xmlpatches/noblocked/89207.xml
@@ -0,0 +1,13 @@
+
+
+ 0px
+ 0px
+ 0px
+ 0px
+ 0px
+ 0px
+ 0sp
+ 0dip
+ 0dip
+
+
\ No newline at end of file
diff --git a/resources/xmlpatches/noblocked/README.md b/resources/xmlpatches/noblocked/README.md
new file mode 100644
index 0000000..4cbd82b
--- /dev/null
+++ b/resources/xmlpatches/noblocked/README.md
@@ -0,0 +1,3 @@
+## DisTok CutTheCord: Custom Version Patch
+
+This patch completely hides the "# Blocked Message(s)" thing.
\ No newline at end of file
diff --git a/resources/xmlpatches/notrack/89207.xml b/resources/xmlpatches/notrack/89207.xml
new file mode 100644
index 0000000..b48873b
--- /dev/null
+++ b/resources/xmlpatches/notrack/89207.xml
@@ -0,0 +1,5 @@
+
+
+ 00000000-0000-0000-0000-000000000000
+
+
\ No newline at end of file
diff --git a/resources/xmlpatches/squareavatars/89207.xml b/resources/xmlpatches/squareavatars/89207.xml
new file mode 100644
index 0000000..73a7ed2
--- /dev/null
+++ b/resources/xmlpatches/squareavatars/89207.xml
@@ -0,0 +1,9 @@
+
+
+ 0.0dp
+
+
+ false
+ - 3dp
+
+
\ No newline at end of file
diff --git a/resources/xmlpatches/squareavatars/README.md b/resources/xmlpatches/squareavatars/README.md
new file mode 100644
index 0000000..85c4315
--- /dev/null
+++ b/resources/xmlpatches/squareavatars/README.md
@@ -0,0 +1,5 @@
+## DisTok CutTheCord: Square Avatars Patch
+
+This patch turns the circle avatars to their full square versions, letting you see the whole image.
+
+A very small amount of rounding is applied to make it look a little better.